@mcp-b/react-components 0.48.0 → 0.49.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AgentChatQueue-v5890eA1.d.ts +48 -0
- package/dist/AgentToolRunsContext-GMe_hSnD.d.ts +35 -0
- package/dist/Avatar-o2NO1fCG.d.ts +124 -0
- package/dist/{Button-CZt3yywF.d.ts → Button-DjONW5UW.d.ts} +1 -1
- package/dist/{CodeBlock-C380GD5t.d.ts → CodeBlock--r6GS8YV.d.ts} +8 -2
- package/dist/{CodeBlock-BSJl682D.js → CodeBlock-g8sADidM.js} +8 -8
- package/dist/{FileTree-DvE0hNZu.js → FileTree-DruTQ-oa.js} +38 -36
- package/dist/{IconButton-BAUFhUk8.d.ts → IconButton-ByiyjkYE.d.ts} +2 -2
- package/dist/{Menu-yb6QXWA3.d.ts → Menu-CgfUZhZd.d.ts} +1 -1
- package/dist/{Message-D_vCVEGB.d.ts → Message-DyaTBiV7.d.ts} +17 -4
- package/dist/MessageScrollerVirtual-D4afYwVB.d.ts +84 -0
- package/dist/{PromptInput-DtJHyp0S.d.ts → PromptInput-4kCz3T9P.d.ts} +45 -32
- package/dist/PromptInputApproval-D2hpn54U.d.ts +44 -0
- package/dist/Separator-CzhtLYE1.d.ts +41 -0
- package/dist/Toolbar-CGY004u0.d.ts +155 -0
- package/dist/{Workspace-LIoU30n7.d.ts → Workspace-HzGrWDX3.d.ts} +1 -1
- package/dist/{WorkspaceFile-Dq-GC0_T.d.ts → WorkspaceFile-Bouauobc.d.ts} +1 -1
- package/dist/{WorkspaceFileView-C_WnYm-a.js → WorkspaceFileView-DYPtRVpM.js} +5 -4
- package/dist/{WorkspaceLink-B1d2GIGl.js → WorkspaceLink-BYZG-V_I.js} +8 -91
- package/dist/{WorkspaceMessageResponse-BqOezptB.js → WorkspaceMessageResponse-CUJk9_P5.js} +2 -2
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.d.ts +198 -2
- package/dist/components/agents-sdk/AgentChat.js +527 -672
- package/dist/components/agents-sdk/AgentChatQueue.d.ts +2 -0
- package/dist/components/agents-sdk/AgentChatQueue.js +206 -0
- package/dist/components/agents-sdk/AgentEvent.js +2 -2
- package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +2 -2
- package/dist/components/agents-sdk/AgentToolRunsContext.js +1 -36
- package/dist/components/agents-sdk/BrowserLiveScreen.js +22 -14
- package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
- package/dist/components/agents-sdk/BrowserReplay.d.ts +1 -1
- package/dist/components/agents-sdk/BrowserReplay.js +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.d.ts +3 -0
- package/dist/components/agents-sdk/BrowserRunPanel.js +32 -31
- package/dist/components/agents-sdk/EmployeeChrome.d.ts +212 -0
- package/dist/components/agents-sdk/EmployeeChrome.js +555 -0
- package/dist/components/agents-sdk/ManagerOffice.d.ts +79 -40
- package/dist/components/agents-sdk/ManagerOffice.js +291 -281
- package/dist/components/agents-sdk/McpConnectionRequest.d.ts +4 -4
- package/dist/components/agents-sdk/McpConnectionRequest.js +4 -3
- package/dist/components/agents-sdk/McpConnectorForm.d.ts +38 -1
- package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.d.ts +93 -1
- package/dist/components/agents-sdk/McpPluginCatalog.js +5 -4
- package/dist/components/agents-sdk/McpServerIcon.d.ts +17 -0
- package/dist/components/agents-sdk/McpServerIcon.js +25 -0
- package/dist/components/agents-sdk/McpServerPicker.d.ts +5 -4
- package/dist/components/agents-sdk/McpServerPicker.js +4 -3
- package/dist/components/agents-sdk/ModelSelector.d.ts +4 -4
- package/dist/components/agents-sdk/ModelSelector.js +4 -4
- package/dist/components/agents-sdk/PromptInputApproval.d.ts +1 -43
- package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.js +2 -3
- package/dist/components/agents-sdk/SessionCompaction.d.ts +88 -1
- package/dist/components/agents-sdk/SessionCompaction.js +2 -2
- package/dist/components/agents-sdk/SubagentRunDetails.d.ts +30 -1
- package/dist/components/agents-sdk/SubagentRunDetails.js +57 -1
- package/dist/components/agents-sdk/SubagentRunIndicator.d.ts +9 -9
- package/dist/components/agents-sdk/SubagentRunIndicator.js +19 -24
- package/dist/components/agents-sdk/SubagentRunList.d.ts +6 -3
- package/dist/components/agents-sdk/SubagentRunList.js +4 -2
- package/dist/components/agents-sdk/SubagentRunPanel.d.ts +60 -0
- package/dist/components/agents-sdk/SubagentRunPanel.js +255 -0
- package/dist/components/agents-sdk/SubagentRunSelector.d.ts +8 -4
- package/dist/components/agents-sdk/SubagentRunSelector.js +5 -3
- package/dist/components/agents-sdk/ThinkChat.d.ts +102 -2
- package/dist/components/agents-sdk/ThinkChat.js +233 -2
- package/dist/components/agents-sdk/ThinkChatActivity.d.ts +76 -1
- package/dist/components/agents-sdk/ThinkChatActivity.js +18 -10
- package/dist/components/agents-sdk/ThinkChatContext.d.ts +27 -1
- package/dist/components/agents-sdk/ThinkChatContext.js +1 -1
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +24 -19
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +85 -28
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +159 -102
- package/dist/components/agents-sdk/ThinkFullApp.d.ts +40 -158
- package/dist/components/agents-sdk/ThinkFullApp.js +71 -290
- package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +18 -1
- package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineActions.d.ts +51 -0
- package/dist/components/agents-sdk/ThinkRoutineActions.js +201 -0
- package/dist/components/agents-sdk/ThinkRoutineBrowser.d.ts +4 -1
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +17 -15
- package/dist/components/agents-sdk/ThinkRoutineDetail.js +11 -11
- package/dist/components/agents-sdk/ThinkRoutineForm.d.ts +2 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +14 -14
- package/dist/components/agents-sdk/ThinkRoutineRuns.js +7 -7
- package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +90 -1
- package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
- package/dist/components/agents-sdk/Workspace.d.ts +1 -1
- package/dist/components/agents-sdk/Workspace.js +7 -13
- package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceConcept.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceCorrespondence.d.ts +10 -1
- package/dist/components/agents-sdk/WorkspaceCorrespondence.js +10 -7
- package/dist/components/agents-sdk/WorkspaceExecution.d.ts +5 -14
- package/dist/components/agents-sdk/WorkspaceExecution.js +24 -38
- package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +5 -2
- package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -2
- package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
- package/dist/components/agents-sdk/WorkspaceLink.js +1 -1
- package/dist/components/agents-sdk/WorkspaceLive.d.ts +60 -1
- package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +47 -1
- package/dist/components/agents-sdk/WorkspaceMessageResponse.js +1 -1
- package/dist/components/agents-sdk/WorkspaceMountManager.d.ts +3 -2
- package/dist/components/agents-sdk/WorkspaceMountManager.js +6 -9
- package/dist/components/agents-sdk/WorkspaceNavigationRestoration.d.ts +38 -0
- package/dist/components/agents-sdk/WorkspaceNavigationRestoration.js +86 -0
- package/dist/components/agents-sdk/WorkspaceProject.d.ts +5 -14
- package/dist/components/agents-sdk/WorkspaceProject.js +21 -35
- package/dist/components/agents-sdk/WorkspaceUserScript.d.ts +1 -1
- package/dist/components/agents-sdk/WorkspaceUserScript.js +8 -5
- package/dist/components/ai-sdk/Activity.d.ts +1 -1
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentAttention.d.ts +2 -2
- package/dist/components/ai-sdk/AgentChatMessageEditor.js +5 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +89 -2
- package/dist/components/ai-sdk/AgentChatStartScreen.js +64 -43
- package/dist/components/ai-sdk/AgentMessageParts.d.ts +45 -1
- package/dist/components/ai-sdk/Approval.d.ts +1 -1
- package/dist/components/ai-sdk/Approval.js +2 -2
- package/dist/components/ai-sdk/Artifact.d.ts +2 -2
- package/dist/components/ai-sdk/Artifact.js +1 -1
- package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
- package/dist/components/ai-sdk/ChainOfThought.js +1 -1
- package/dist/components/ai-sdk/Checkpoint.js +1 -1
- package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/ComposerLink.js +2 -3
- package/dist/components/ai-sdk/ConnectedAppCards.d.ts +9 -1
- package/dist/components/ai-sdk/ConnectedAppCards.js +28 -21
- package/dist/components/ai-sdk/Context.d.ts +7 -3
- package/dist/components/ai-sdk/Context.js +7 -17
- package/dist/components/ai-sdk/Conversation.d.ts +2 -2
- package/dist/components/ai-sdk/Conversation.js +1 -1
- package/dist/components/ai-sdk/Goal.d.ts +3 -3
- package/dist/components/ai-sdk/Goal.js +3 -3
- package/dist/components/ai-sdk/InlineCitation.d.ts +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.d.ts +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.d.ts +2 -2
- package/dist/components/ai-sdk/Message.js +12 -3
- package/dist/components/ai-sdk/MessageScroller.d.ts +1 -1
- package/dist/components/ai-sdk/MessageScroller.js +1 -1
- package/dist/components/ai-sdk/MessageScrollerVirtual.d.ts +2 -76
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +40 -5
- package/dist/components/ai-sdk/Plan.d.ts +1 -1
- package/dist/components/ai-sdk/Plan.js +1 -1
- package/dist/components/ai-sdk/PromptInput.d.ts +2 -2
- package/dist/components/ai-sdk/PromptInput.js +175 -231
- package/dist/components/ai-sdk/PromptInputComposerEditor.js +32 -9
- package/dist/components/ai-sdk/Queue.d.ts +28 -5
- package/dist/components/ai-sdk/Queue.js +20 -5
- package/dist/components/ai-sdk/Reasoning.d.ts +1 -1
- package/dist/components/ai-sdk/Reasoning.js +5 -5
- package/dist/components/ai-sdk/Sources.d.ts +1 -1
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.d.ts +1 -1
- package/dist/components/ai-sdk/Task.js +1 -1
- package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -1
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.d.ts +6 -1
- package/dist/components/extension/CodexModelSelector.js +3 -3
- package/dist/components/extension/ConversationTabPicker.d.ts +1 -0
- package/dist/components/extension/ConversationTabPicker.js +2 -2
- package/dist/components/foundations/AlertDialog.d.ts +1 -1
- package/dist/components/foundations/AppIcon.d.ts +3 -2
- package/dist/components/foundations/Autocomplete.js +6 -1
- package/dist/components/foundations/Avatar.d.ts +1 -121
- package/dist/components/foundations/Button.d.ts +1 -1
- package/dist/components/foundations/Card.d.ts +22 -27
- package/dist/components/foundations/Card.js +51 -32
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/CheckboxGroup.d.ts +1 -1
- package/dist/components/foundations/Collapsible.d.ts +1 -1
- package/dist/components/foundations/Collapsible.js +1 -1
- package/dist/components/foundations/Combobox.js +6 -1
- package/dist/components/foundations/ContextMenu.d.ts +10 -23
- package/dist/components/foundations/ContextMenu.js +3 -2
- package/dist/components/foundations/Dialog.d.ts +106 -1
- package/dist/components/foundations/EmptyState.d.ts +1 -1
- package/dist/components/foundations/Field.d.ts +2 -1
- package/dist/components/foundations/Fieldset.d.ts +1 -1
- package/dist/components/foundations/Form.d.ts +4 -4
- package/dist/components/foundations/IconButton.d.ts +1 -1
- package/dist/components/foundations/Label.d.ts +1 -1
- package/dist/components/foundations/LinkButton.d.ts +2 -2
- package/dist/components/foundations/Menu.d.ts +1 -1
- package/dist/components/foundations/Menubar.d.ts +1 -1
- package/dist/components/foundations/Menubar.js +1 -1
- package/dist/components/foundations/Meter.d.ts +1 -1
- package/dist/components/foundations/NumberField.d.ts +1 -1
- package/dist/components/foundations/PreviewCard.d.ts +1 -1
- package/dist/components/foundations/ScrollArea.d.ts +1 -1
- package/dist/components/foundations/SearchField.d.ts +1 -1
- package/dist/components/foundations/SearchField.js +1 -1
- package/dist/components/foundations/Select.js +7 -2
- package/dist/components/foundations/Separator.d.ts +1 -40
- package/dist/components/foundations/Stepper.d.ts +1 -1
- package/dist/components/foundations/Stepper.js +1 -1
- package/dist/components/foundations/Textarea.d.ts +1 -1
- package/dist/components/foundations/Toast.d.ts +5 -1
- package/dist/components/foundations/Toast.js +1 -1
- package/dist/components/foundations/Toggle.d.ts +70 -1
- package/dist/components/foundations/ToggleGroup.d.ts +4 -3
- package/dist/components/foundations/ToggleGroup.js +1 -1
- package/dist/components/foundations/Toolbar.d.ts +1 -151
- package/dist/components/foundations/Tooltip.d.ts +1 -1
- package/dist/components/foundations/TransitionSurface.d.ts +1 -1
- package/dist/components/foundations/icons.js +1 -1
- package/dist/components/general-purpose/ActionGuide.d.ts +10 -26
- package/dist/components/general-purpose/ActionGuide.js +4 -18
- package/dist/components/general-purpose/AppTopBar.d.ts +4 -2
- package/dist/components/general-purpose/Commit.d.ts +2 -2
- package/dist/components/general-purpose/Commit.js +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
- package/dist/components/general-purpose/FileTree.d.ts +1 -7
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/PricingPlanCard.d.ts +4 -0
- package/dist/components/general-purpose/PricingPlanCard.js +2 -2
- package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
- package/dist/components/general-purpose/ResizableSidePanel.d.ts +2 -2
- package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +128 -2
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +120 -102
- package/dist/components/general-purpose/SettingsFormDialog.d.ts +14 -27
- package/dist/components/general-purpose/SettingsFormDialog.js +42 -72
- package/dist/components/general-purpose/SetupChecklist.d.ts +1 -0
- package/dist/components/general-purpose/SetupChecklist.js +76 -1
- package/dist/components/general-purpose/Terminal.d.ts +3 -3
- package/dist/components/general-purpose/Terminal.js +11 -6
- package/dist/components/general-purpose/TestResults.d.ts +23 -11
- package/dist/components/general-purpose/TestResults.js +49 -51
- package/dist/components/general-purpose/ThemeModeControl.d.ts +2 -0
- package/dist/components/general-purpose/ThemeModeControl.js +2 -2
- package/dist/components/general-purpose/WebPreview.d.ts +29 -4
- package/dist/components/general-purpose/WebPreview.js +39 -14
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.d.ts +13 -11
- package/dist/components/nanites/AgentToolDetail.js +21 -42
- package/dist/{copy-button-Dk2vRe9j.js → copy-button-CSDuDfdP.js} +1 -1
- package/dist/{copy-button-C0JyjClr.d.ts → copy-button-OUwOdgEm.d.ts} +1 -1
- package/dist/mcp-server-mAErsxHU.js +27 -0
- package/dist/styles/accessibility.css +20 -0
- package/dist/styles/activity.css +1 -96
- package/dist/styles/agent-chat.css +75 -102
- package/dist/styles/agent-tool-detail.css +0 -16
- package/dist/styles/base.css +1 -9
- package/dist/styles/browser-run-panel.css +1 -15
- package/dist/styles/button.css +7 -1
- package/dist/styles/code-block.css +12 -0
- package/dist/styles/codex-model-selector.css +4 -0
- package/dist/styles/color-contrast.test.ts +212 -0
- package/dist/styles/composition-motion.css +0 -2
- package/dist/styles/employee-chrome.css +43 -0
- package/dist/styles/file-tree.css +10 -1
- package/dist/styles/index.css +4 -2
- package/dist/styles/manager-office.css +5 -5
- package/dist/styles/message.css +2 -10
- package/dist/styles/queue.css +71 -0
- package/dist/styles/responsive-sidebar-shell.css +1 -1
- package/dist/styles/subagent-run.css +122 -6
- package/dist/styles/test-results.css +2 -5
- package/dist/styles/think-chat-activity.css +13 -0
- package/dist/styles/think-chat-tool-panels.css +81 -0
- package/dist/styles/think-execution-workbench.css +2 -8
- package/dist/styles/think-full-app.css +42 -251
- package/dist/styles/{think-routine-library.css → think-routine.css} +64 -80
- package/dist/styles/web-preview.css +15 -1
- package/dist/utils/codex-model-catalog.d.ts +25 -6
- package/dist/utils/codex-model-catalog.js +22 -5
- package/dist/utils/mcp-server-catalog.d.ts +1112 -2
- package/dist/utils/mcp-server-catalog.js +28 -9
- package/dist/utils/structured-code.d.ts +1 -1
- package/dist/{workspace-assets-GqsCYxqT.js → workspace-assets-Bg7XhPsk.js} +2 -2
- package/package.json +8 -4
- package/dist/AgentChat-BLmQghkt.d.ts +0 -327
- package/dist/AgentChatStartScreen-Bkv7Avni.d.ts +0 -84
- package/dist/AgentMessageParts-C7L-Mv9U.d.ts +0 -46
- package/dist/AgentToolRunsContext-jtmveaRE.d.ts +0 -57
- package/dist/Dialog-B_FhRWaz.d.ts +0 -107
- package/dist/McpConnectorForm-CeYNY0MI.d.ts +0 -39
- package/dist/McpPluginCatalog-3qWu8oK1.d.ts +0 -92
- package/dist/ResponsiveSidebarShell-BTVPxLJK.d.ts +0 -123
- package/dist/SessionCompaction-CmTJFpzj.d.ts +0 -89
- package/dist/SetupChecklist-DeTU9YpW.js +0 -77
- package/dist/ThinkChat-CwMdEum8.d.ts +0 -185
- package/dist/ThinkChat-DiI6hhDP.js +0 -332
- package/dist/ThinkChatActivity-B3lGVS-6.d.ts +0 -77
- package/dist/ThinkChatContext-COIgzkYp.d.ts +0 -28
- package/dist/ThinkRecoveryNotice-DGWr94rk.d.ts +0 -19
- package/dist/ThinkThreadPicker-yFz4vvIf.d.ts +0 -91
- package/dist/Toggle-DLrIf5YH.d.ts +0 -69
- package/dist/WorkspaceLive-DfjH1Ypm.d.ts +0 -61
- package/dist/WorkspaceMessageResponse-kJYU8Onj.d.ts +0 -48
- package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +0 -31
- package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +0 -34
- package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +0 -80
- package/dist/components/agents-sdk/ThinkRoutineLibrary.js +0 -159
- package/dist/components/agents-sdk/ThinkSidepanel.d.ts +0 -200
- package/dist/components/agents-sdk/ThinkSidepanel.js +0 -775
- package/dist/mcp-server-7NR24ASj.js +0 -69
- package/dist/mcp-server-catalog-C_g7C-9o.d.ts +0 -1108
- package/dist/styles/think-sidepanel.css +0 -78
- package/dist/think-agent-Cip5KAPj.d.ts +0 -7
- package/dist/{icons-CeGfXO21.js → icons-cuEtsgj9.js} +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ThinkRoutine } from "./ThinkRoutine.js";
|
|
2
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/agents-sdk/ThinkRoutineActions.d.ts
|
|
6
|
+
interface ThinkRoutineActionsRootProps<TRoutine extends ThinkRoutine = ThinkRoutine> {
|
|
7
|
+
/** Whole selected routine, including app-owned extensions and native task/run values. */
|
|
8
|
+
routine: TRoutine;
|
|
9
|
+
/** Stable non-secret identity of the source backing this routine. */
|
|
10
|
+
sourceKey: string;
|
|
11
|
+
/** Host mutation that runs the whole selected routine; its promise controls pending and error feedback. */
|
|
12
|
+
onRun?: (routine: TRoutine) => void | Promise<void>;
|
|
13
|
+
/** Host mutation for the requested enabled state; the host supplies the updated routine after success. */
|
|
14
|
+
onEnabledChange?: (routine: TRoutine, enabled: boolean) => void | Promise<void>;
|
|
15
|
+
/** Host removal invoked after confirmation; rejection keeps the confirmation open with its error. */
|
|
16
|
+
onDelete?: (routine: TRoutine) => void | Promise<void>;
|
|
17
|
+
/** Caller-composed controls and detail sharing this source/routine mutation scope; no layout is inserted. */
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
/** Connect an independently mounted detail to its selected routine action scope. */
|
|
21
|
+
declare function useThinkRoutineActions(): {
|
|
22
|
+
busy: boolean;
|
|
23
|
+
onEnabledChange: ((enabled: boolean) => void) | undefined;
|
|
24
|
+
};
|
|
25
|
+
/** No layout or routing. Source/routine changes reset actions without remounting caller navigation. */
|
|
26
|
+
declare function ThinkRoutineActionsRoot<TRoutine extends ThinkRoutine>({
|
|
27
|
+
routine,
|
|
28
|
+
sourceKey,
|
|
29
|
+
onRun,
|
|
30
|
+
onEnabledChange,
|
|
31
|
+
onDelete,
|
|
32
|
+
children
|
|
33
|
+
}: ThinkRoutineActionsRootProps<TRoutine>): React.JSX.Element;
|
|
34
|
+
type ThinkRoutineActionProps = Omit<React.ComponentProps<typeof AppTopBar.Button>, "label"> & {
|
|
35
|
+
label?: string;
|
|
36
|
+
};
|
|
37
|
+
/** Explicit run control; preserves the complete shared button composition contract. */
|
|
38
|
+
declare function ThinkRoutineRun(props: ThinkRoutineActionProps): React.JSX.Element | null;
|
|
39
|
+
/** Delete confirmation stays open on failure; only its source-scoped action can settle it. */
|
|
40
|
+
declare function ThinkRoutineDelete(props: ThinkRoutineActionProps): React.JSX.Element | null;
|
|
41
|
+
declare function ThinkRoutineError(props: React.ComponentPropsWithRef<"div">): React.JSX.Element | null;
|
|
42
|
+
declare function ThinkRoutineStatus(props: React.ComponentPropsWithRef<"div">): React.JSX.Element;
|
|
43
|
+
declare const ThinkRoutineActions: {
|
|
44
|
+
Root: typeof ThinkRoutineActionsRoot;
|
|
45
|
+
Run: typeof ThinkRoutineRun;
|
|
46
|
+
Delete: typeof ThinkRoutineDelete;
|
|
47
|
+
Error: typeof ThinkRoutineError;
|
|
48
|
+
Status: typeof ThinkRoutineStatus;
|
|
49
|
+
};
|
|
50
|
+
//#endregion
|
|
51
|
+
export { ThinkRoutineActionProps, ThinkRoutineActions, ThinkRoutineActionsRootProps, useThinkRoutineActions };
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { K as SpinnerIcon, Q as TrashIcon, z as PlayIcon } from "../../icons-cuEtsgj9.js";
|
|
2
|
+
import { Button } from "../foundations/Button.js";
|
|
3
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
4
|
+
import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
|
|
5
|
+
import { AlertDialog } from "../foundations/AlertDialog.js";
|
|
6
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
10
|
+
//#region src/components/agents-sdk/ThinkRoutineActions.tsx
|
|
11
|
+
const RoutineActionsContext = React.createContext(null);
|
|
12
|
+
/** Selected-routine mutation state for explicitly composed detail and controls. */
|
|
13
|
+
function useRoutineActions() {
|
|
14
|
+
const value = React.useContext(RoutineActionsContext);
|
|
15
|
+
if (!value) throw new Error("Routine actions require ThinkRoutineActions.Root.");
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
/** Connect an independently mounted detail to its selected routine action scope. */
|
|
19
|
+
function useThinkRoutineActions() {
|
|
20
|
+
const { busy, onEnabledChange } = useRoutineActions();
|
|
21
|
+
return {
|
|
22
|
+
busy,
|
|
23
|
+
onEnabledChange
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** No layout or routing. Source/routine changes reset actions without remounting caller navigation. */
|
|
27
|
+
function ThinkRoutineActionsRoot({ routine, sourceKey, onRun, onEnabledChange, onDelete, children }) {
|
|
28
|
+
const identity = JSON.stringify([sourceKey, routine.id]);
|
|
29
|
+
const initial = () => ({
|
|
30
|
+
scope: { identity },
|
|
31
|
+
busy: false,
|
|
32
|
+
error: null,
|
|
33
|
+
announcement: "",
|
|
34
|
+
action: null
|
|
35
|
+
});
|
|
36
|
+
const [state, setState] = React.useState(initial);
|
|
37
|
+
if (state.scope.identity !== identity) setState(initial());
|
|
38
|
+
const inFlight = React.useRef(null);
|
|
39
|
+
const value = React.useMemo(() => {
|
|
40
|
+
const perform = async (operation, action, success) => {
|
|
41
|
+
const scope = state.scope;
|
|
42
|
+
if (inFlight.current === scope) return false;
|
|
43
|
+
inFlight.current = scope;
|
|
44
|
+
setState((current) => current.scope === scope ? {
|
|
45
|
+
...current,
|
|
46
|
+
busy: true,
|
|
47
|
+
error: null,
|
|
48
|
+
announcement: "",
|
|
49
|
+
action: operation
|
|
50
|
+
} : current);
|
|
51
|
+
try {
|
|
52
|
+
await action();
|
|
53
|
+
setState((current) => current.scope === scope ? {
|
|
54
|
+
...current,
|
|
55
|
+
announcement: success
|
|
56
|
+
} : current);
|
|
57
|
+
return true;
|
|
58
|
+
} catch (next) {
|
|
59
|
+
setState((current) => current.scope === scope ? {
|
|
60
|
+
...current,
|
|
61
|
+
error: formatErrorMessage(next)
|
|
62
|
+
} : current);
|
|
63
|
+
return false;
|
|
64
|
+
} finally {
|
|
65
|
+
if (inFlight.current === scope) inFlight.current = null;
|
|
66
|
+
setState((current) => current.scope === scope ? {
|
|
67
|
+
...current,
|
|
68
|
+
busy: false
|
|
69
|
+
} : current);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
scope: state.scope,
|
|
74
|
+
name: routine.name,
|
|
75
|
+
busy: state.busy,
|
|
76
|
+
error: state.action === "delete" ? null : state.error,
|
|
77
|
+
deleteError: state.action === "delete" ? state.error : null,
|
|
78
|
+
announcement: state.announcement,
|
|
79
|
+
run: onRun ? () => perform("run", () => onRun(routine), `Started ${routine.name}.`) : void 0,
|
|
80
|
+
remove: onDelete ? () => perform("delete", () => onDelete(routine), `Deleted ${routine.name}.`) : void 0,
|
|
81
|
+
onEnabledChange: onEnabledChange ? (enabled) => {
|
|
82
|
+
perform("enable", () => onEnabledChange(routine, enabled), `${routine.name} ${enabled ? "activated" : "paused"}.`);
|
|
83
|
+
} : void 0
|
|
84
|
+
};
|
|
85
|
+
}, [
|
|
86
|
+
state,
|
|
87
|
+
routine,
|
|
88
|
+
onRun,
|
|
89
|
+
onDelete,
|
|
90
|
+
onEnabledChange
|
|
91
|
+
]);
|
|
92
|
+
return /* @__PURE__ */ jsx(RoutineActionsContext.Provider, {
|
|
93
|
+
value,
|
|
94
|
+
children
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/** Explicit run control; preserves the complete shared button composition contract. */
|
|
98
|
+
function ThinkRoutineRun(props) {
|
|
99
|
+
const { busy, run } = useRoutineActions();
|
|
100
|
+
if (!run) return null;
|
|
101
|
+
return /* @__PURE__ */ jsx(AppTopBar.Button, {
|
|
102
|
+
...mergeProps({
|
|
103
|
+
label: "Run schedule",
|
|
104
|
+
onClick: () => {
|
|
105
|
+
run();
|
|
106
|
+
},
|
|
107
|
+
children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : /* @__PURE__ */ jsx(PlayIcon, {})
|
|
108
|
+
}, props),
|
|
109
|
+
label: props.label ?? "Run schedule",
|
|
110
|
+
disabled: busy || props.disabled
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/** Delete confirmation stays open on failure; only its source-scoped action can settle it. */
|
|
114
|
+
function ThinkRoutineDelete(props) {
|
|
115
|
+
const { scope, name, busy, deleteError: error, remove } = useRoutineActions();
|
|
116
|
+
const [dialog, setDialog] = React.useState({
|
|
117
|
+
scope,
|
|
118
|
+
open: false
|
|
119
|
+
});
|
|
120
|
+
if (dialog.scope !== scope) setDialog({
|
|
121
|
+
scope,
|
|
122
|
+
open: false
|
|
123
|
+
});
|
|
124
|
+
const open = dialog.scope === scope && dialog.open;
|
|
125
|
+
const setOpen = (open) => setDialog((current) => current.scope === scope ? {
|
|
126
|
+
scope,
|
|
127
|
+
open
|
|
128
|
+
} : current);
|
|
129
|
+
const triggerRef = React.useRef(null);
|
|
130
|
+
if (!remove) return null;
|
|
131
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
|
|
132
|
+
...mergeProps({
|
|
133
|
+
label: "Delete schedule",
|
|
134
|
+
onClick: () => setOpen(true),
|
|
135
|
+
children: /* @__PURE__ */ jsx(TrashIcon, {})
|
|
136
|
+
}, props),
|
|
137
|
+
ref: mergeRefs(triggerRef, props.ref),
|
|
138
|
+
label: props.label ?? "Delete schedule",
|
|
139
|
+
disabled: busy || props.disabled
|
|
140
|
+
}), /* @__PURE__ */ jsx(AlertDialog.Root, {
|
|
141
|
+
open,
|
|
142
|
+
onOpenChange: (next, details) => {
|
|
143
|
+
if (busy && !next) details.cancel();
|
|
144
|
+
else setOpen(next);
|
|
145
|
+
},
|
|
146
|
+
children: /* @__PURE__ */ jsxs(AlertDialog.Portal, { children: [/* @__PURE__ */ jsx(AlertDialog.Backdrop, {}), /* @__PURE__ */ jsx(AlertDialog.Viewport, { children: /* @__PURE__ */ jsxs(AlertDialog.Popup, {
|
|
147
|
+
finalFocus: triggerRef,
|
|
148
|
+
children: [
|
|
149
|
+
/* @__PURE__ */ jsxs(AlertDialog.Title, { children: [
|
|
150
|
+
"Delete ",
|
|
151
|
+
name,
|
|
152
|
+
"?"
|
|
153
|
+
] }),
|
|
154
|
+
/* @__PURE__ */ jsx(AlertDialog.Description, { children: "This permanently deletes the schedule and stops its future runs." }),
|
|
155
|
+
error ? /* @__PURE__ */ jsx("p", {
|
|
156
|
+
role: "alert",
|
|
157
|
+
children: error
|
|
158
|
+
}) : null,
|
|
159
|
+
/* @__PURE__ */ jsxs(AlertDialog.Footer, { children: [/* @__PURE__ */ jsx(AlertDialog.Close, {
|
|
160
|
+
disabled: busy,
|
|
161
|
+
children: "Cancel"
|
|
162
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
163
|
+
"aria-label": "Confirm delete schedule",
|
|
164
|
+
color: "destructive",
|
|
165
|
+
disabled: busy,
|
|
166
|
+
onClick: async () => {
|
|
167
|
+
if (await remove()) setOpen(false);
|
|
168
|
+
},
|
|
169
|
+
children: "Delete schedule"
|
|
170
|
+
})] })
|
|
171
|
+
]
|
|
172
|
+
}) })] })
|
|
173
|
+
})] });
|
|
174
|
+
}
|
|
175
|
+
function ThinkRoutineError(props) {
|
|
176
|
+
const { error } = useRoutineActions();
|
|
177
|
+
return error ? /* @__PURE__ */ jsx("div", {
|
|
178
|
+
role: "alert",
|
|
179
|
+
...props,
|
|
180
|
+
children: error
|
|
181
|
+
}) : null;
|
|
182
|
+
}
|
|
183
|
+
function ThinkRoutineStatus(props) {
|
|
184
|
+
const { announcement } = useRoutineActions();
|
|
185
|
+
return /* @__PURE__ */ jsx("div", {
|
|
186
|
+
role: "status",
|
|
187
|
+
"aria-atomic": "true",
|
|
188
|
+
className: "sigvelo-visually-hidden",
|
|
189
|
+
...props,
|
|
190
|
+
children: announcement
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
const ThinkRoutineActions = {
|
|
194
|
+
Root: ThinkRoutineActionsRoot,
|
|
195
|
+
Run: ThinkRoutineRun,
|
|
196
|
+
Delete: ThinkRoutineDelete,
|
|
197
|
+
Error: ThinkRoutineError,
|
|
198
|
+
Status: ThinkRoutineStatus
|
|
199
|
+
};
|
|
200
|
+
//#endregion
|
|
201
|
+
export { ThinkRoutineActions, useThinkRoutineActions };
|
|
@@ -13,7 +13,10 @@ interface ThinkRoutineBrowserProps<TRoutine extends ThinkRoutine = ThinkRoutine>
|
|
|
13
13
|
renderRoutineLink: (routine: TRoutine) => React.ReactElement;
|
|
14
14
|
/** App-authored TanStack Router Link to the routine creation route. */
|
|
15
15
|
createRoutineLink?: React.ReactElement;
|
|
16
|
-
/**
|
|
16
|
+
/** UI-only response to ordinary same-tab activation, including keyboard clicks.
|
|
17
|
+
* Modified, non-primary, download, and other-target clicks leave this UI unchanged.
|
|
18
|
+
* Receives the original React anchor event; routing remains with the rendered link.
|
|
19
|
+
*/
|
|
17
20
|
onRoutineLinkClick?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
18
21
|
}
|
|
19
22
|
/** Searchable, filterable navigation for an app-owned collection of Think routines. */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { B as PlusIcon } from "../../icons-
|
|
2
|
+
import { B as PlusIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { buttonVariants } from "../foundations/Button.js";
|
|
4
4
|
import { Tooltip } from "../foundations/Tooltip.js";
|
|
5
5
|
import { t as capitalize } from "../../format-COCyV98Z.js";
|
|
6
|
-
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
7
6
|
import { EmptyState } from "../foundations/EmptyState.js";
|
|
7
|
+
import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
8
8
|
import { SearchField } from "../foundations/SearchField.js";
|
|
9
|
-
import { ToggleGroup } from "../foundations/ToggleGroup.js";
|
|
10
9
|
import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
|
|
10
|
+
import { ToggleGroup } from "../foundations/ToggleGroup.js";
|
|
11
11
|
import * as React from "react";
|
|
12
12
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
//#region src/components/agents-sdk/ThinkRoutineBrowser.tsx
|
|
@@ -27,18 +27,18 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
27
27
|
const visibleRoutines = filterRoutines(routines, filter, query, showOwner);
|
|
28
28
|
return /* @__PURE__ */ jsxs("nav", {
|
|
29
29
|
ref,
|
|
30
|
-
className: cx("think-routine-browser", "think-
|
|
30
|
+
className: cx("think-routine-browser", "think-routine__browser", className),
|
|
31
31
|
...props,
|
|
32
32
|
children: [
|
|
33
33
|
/* @__PURE__ */ jsx("h2", {
|
|
34
|
-
className: "
|
|
34
|
+
className: "sigvelo-visually-hidden",
|
|
35
35
|
children: "Schedules"
|
|
36
36
|
}),
|
|
37
37
|
/* @__PURE__ */ jsxs("div", {
|
|
38
|
-
className: "think-
|
|
38
|
+
className: "think-routine__browser-toolbar",
|
|
39
39
|
children: [/* @__PURE__ */ jsx(ToggleGroup.Root, {
|
|
40
40
|
segmented: true,
|
|
41
|
-
className: "think-
|
|
41
|
+
className: "think-routine__filters",
|
|
42
42
|
size: "sm",
|
|
43
43
|
"aria-label": "Filter schedules",
|
|
44
44
|
value: [filter],
|
|
@@ -75,10 +75,10 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
75
75
|
}) })] }) : null]
|
|
76
76
|
}),
|
|
77
77
|
/* @__PURE__ */ jsxs(SearchField.Root, {
|
|
78
|
-
className: "think-
|
|
78
|
+
className: "think-routine__search",
|
|
79
79
|
name: "routine-search",
|
|
80
80
|
children: [/* @__PURE__ */ jsx(SearchField.Label, {
|
|
81
|
-
className: "
|
|
81
|
+
className: "sigvelo-visually-hidden",
|
|
82
82
|
children: "Search schedules"
|
|
83
83
|
}), /* @__PURE__ */ jsx(SearchField.Control, {
|
|
84
84
|
value: query,
|
|
@@ -87,7 +87,7 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
87
87
|
})]
|
|
88
88
|
}),
|
|
89
89
|
/* @__PURE__ */ jsxs("p", {
|
|
90
|
-
className: "
|
|
90
|
+
className: "sigvelo-visually-hidden",
|
|
91
91
|
role: "status",
|
|
92
92
|
"aria-atomic": "true",
|
|
93
93
|
children: [
|
|
@@ -98,7 +98,7 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
98
98
|
]
|
|
99
99
|
}),
|
|
100
100
|
visibleRoutines.length ? /* @__PURE__ */ jsx("ul", {
|
|
101
|
-
className: "think-
|
|
101
|
+
className: "think-routine__routine-list",
|
|
102
102
|
role: "list",
|
|
103
103
|
children: visibleRoutines.map((routine) => {
|
|
104
104
|
const selected = routine.id === selectedRoutineId;
|
|
@@ -113,19 +113,21 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
113
113
|
className: "think-routine-browser__routine"
|
|
114
114
|
}),
|
|
115
115
|
"aria-current": selected ? "page" : void 0,
|
|
116
|
-
onClick:
|
|
116
|
+
onClick: (event) => {
|
|
117
|
+
if (isPlainPrimaryLinkActivation(event)) onRoutineLinkClick?.(event);
|
|
118
|
+
},
|
|
117
119
|
children: [
|
|
118
120
|
/* @__PURE__ */ jsx("span", {
|
|
119
|
-
className: "think-
|
|
121
|
+
className: "think-routine__routine-status",
|
|
120
122
|
"data-enabled": routine.enabled || void 0,
|
|
121
123
|
"aria-hidden": "true"
|
|
122
124
|
}),
|
|
123
125
|
/* @__PURE__ */ jsx("span", {
|
|
124
|
-
className: "
|
|
126
|
+
className: "sigvelo-visually-hidden",
|
|
125
127
|
children: routine.enabled ? "Active" : "Paused"
|
|
126
128
|
}),
|
|
127
129
|
/* @__PURE__ */ jsxs("span", {
|
|
128
|
-
className: "think-
|
|
130
|
+
className: "think-routine__routine-copy",
|
|
129
131
|
children: [
|
|
130
132
|
/* @__PURE__ */ jsx("strong", { children: routine.name }),
|
|
131
133
|
/* @__PURE__ */ jsx("span", { children: routine.task.schedule }),
|
|
@@ -16,14 +16,14 @@ function ThinkRoutineDetail({ busy = false, className, routine, showOwner = true
|
|
|
16
16
|
const enabledLabelId = React.useId();
|
|
17
17
|
return /* @__PURE__ */ jsxs("article", {
|
|
18
18
|
ref,
|
|
19
|
-
className: cx("think-routine-detail", "think-
|
|
19
|
+
className: cx("think-routine-detail", "think-routine__detail", className),
|
|
20
20
|
"aria-labelledby": titleId,
|
|
21
21
|
...props,
|
|
22
22
|
children: [
|
|
23
23
|
/* @__PURE__ */ jsx("header", {
|
|
24
|
-
className: "think-
|
|
24
|
+
className: "think-routine__detail-header",
|
|
25
25
|
children: /* @__PURE__ */ jsxs("div", {
|
|
26
|
-
className: "think-
|
|
26
|
+
className: "think-routine__detail-heading",
|
|
27
27
|
children: [/* @__PURE__ */ jsx("h1", {
|
|
28
28
|
id: titleId,
|
|
29
29
|
children: routine.name
|
|
@@ -31,33 +31,33 @@ function ThinkRoutineDetail({ busy = false, className, routine, showOwner = true
|
|
|
31
31
|
})
|
|
32
32
|
}),
|
|
33
33
|
/* @__PURE__ */ jsxs("div", {
|
|
34
|
-
className: "think-
|
|
34
|
+
className: "think-routine__detail-grid",
|
|
35
35
|
children: [/* @__PURE__ */ jsxs("section", {
|
|
36
|
-
className: "think-
|
|
36
|
+
className: "think-routine__definition",
|
|
37
37
|
"aria-labelledby": definitionId,
|
|
38
38
|
children: [/* @__PURE__ */ jsx("div", {
|
|
39
|
-
className: "think-
|
|
39
|
+
className: "think-routine__section-heading",
|
|
40
40
|
children: /* @__PURE__ */ jsx("h2", {
|
|
41
41
|
id: definitionId,
|
|
42
42
|
children: "Instructions"
|
|
43
43
|
})
|
|
44
44
|
}), /* @__PURE__ */ jsx("p", {
|
|
45
|
-
className: "think-
|
|
45
|
+
className: "think-routine__instructions",
|
|
46
46
|
children: taskInstructions(routine)
|
|
47
47
|
})]
|
|
48
48
|
}), /* @__PURE__ */ jsxs("aside", {
|
|
49
|
-
className: "think-
|
|
49
|
+
className: "think-routine__settings",
|
|
50
50
|
"aria-labelledby": settingsId,
|
|
51
51
|
children: [
|
|
52
52
|
/* @__PURE__ */ jsx("div", {
|
|
53
|
-
className: "think-
|
|
53
|
+
className: "think-routine__section-heading",
|
|
54
54
|
children: /* @__PURE__ */ jsx("h2", {
|
|
55
55
|
id: settingsId,
|
|
56
56
|
children: "Schedule"
|
|
57
57
|
})
|
|
58
58
|
}),
|
|
59
59
|
/* @__PURE__ */ jsxs("dl", {
|
|
60
|
-
className: "think-
|
|
60
|
+
className: "think-routine__facts",
|
|
61
61
|
children: [
|
|
62
62
|
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Repeats" }), /* @__PURE__ */ jsx("dd", { children: routine.task.schedule })] }),
|
|
63
63
|
routine.schedule ? /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Next run" }), /* @__PURE__ */ jsx("dd", { children: getThinkRoutineNextRun(routine) })] }) : null,
|
|
@@ -65,7 +65,7 @@ function ThinkRoutineDetail({ busy = false, className, routine, showOwner = true
|
|
|
65
65
|
]
|
|
66
66
|
}),
|
|
67
67
|
/* @__PURE__ */ jsxs("div", {
|
|
68
|
-
className: "think-
|
|
68
|
+
className: "think-routine__status-control",
|
|
69
69
|
children: [/* @__PURE__ */ jsx("div", {
|
|
70
70
|
id: enabledLabelId,
|
|
71
71
|
children: /* @__PURE__ */ jsx("strong", { children: "Enabled" })
|
|
@@ -32,6 +32,7 @@ interface ThinkRoutineFormProps extends Omit<React.HTMLAttributes<HTMLDivElement
|
|
|
32
32
|
routine?: ThinkRoutineFormRoutine;
|
|
33
33
|
/** App-authored TanStack Router Link to the routine catalog. */
|
|
34
34
|
cancelLink?: React.ReactElement;
|
|
35
|
+
/** Receives the validated routine fields when the user creates or updates the schedule. */
|
|
35
36
|
onSubmit: (value: ThinkRoutineFormValue) => void | Promise<void>;
|
|
36
37
|
}
|
|
37
38
|
/** Complete create/edit surface for a prompt-based Think scheduled task. */
|
|
@@ -43,7 +44,7 @@ declare function ThinkRoutineForm({
|
|
|
43
44
|
ref,
|
|
44
45
|
...props
|
|
45
46
|
}: ThinkRoutineFormProps & {
|
|
46
|
-
ref?: React.Ref<HTMLDivElement>;
|
|
47
|
+
/** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
|
|
47
48
|
}): React.JSX.Element;
|
|
48
49
|
//#endregion
|
|
49
50
|
export { ThinkRoutineForm, ThinkRoutineFormProps, ThinkRoutineFormRoutine, ThinkRoutineFormSchedule, ThinkRoutineFormValue };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, r as ArrowLeftIcon } from "../../icons-
|
|
2
|
+
import { K as SpinnerIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
+
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
4
5
|
import { Field } from "../foundations/Field.js";
|
|
5
6
|
import { Form } from "../foundations/Form.js";
|
|
6
7
|
import { Textarea } from "../foundations/Textarea.js";
|
|
7
|
-
import {
|
|
8
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
9
|
+
import { Fieldset } from "../foundations/Fieldset.js";
|
|
8
10
|
import { Select } from "../foundations/Select.js";
|
|
9
11
|
import { Checkbox } from "../foundations/Checkbox.js";
|
|
10
12
|
import { CheckboxGroup } from "../foundations/CheckboxGroup.js";
|
|
11
13
|
import { Combobox } from "../foundations/Combobox.js";
|
|
12
|
-
import { Fieldset } from "../foundations/Fieldset.js";
|
|
13
14
|
import { NumberField } from "../foundations/NumberField.js";
|
|
14
|
-
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
15
15
|
import * as React from "react";
|
|
16
16
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
17
17
|
//#region src/components/agents-sdk/ThinkRoutineForm.tsx
|
|
@@ -101,7 +101,7 @@ function timezoneOptions() {
|
|
|
101
101
|
const TIMEZONE_OPTIONS = timezoneOptions();
|
|
102
102
|
function RoutineSelect({ label, onValueChange, options, value }) {
|
|
103
103
|
return /* @__PURE__ */ jsx("div", {
|
|
104
|
-
className: "think-
|
|
104
|
+
className: "think-routine__select-field",
|
|
105
105
|
children: /* @__PURE__ */ jsxs(Select.Root, {
|
|
106
106
|
items: options,
|
|
107
107
|
value,
|
|
@@ -198,7 +198,7 @@ function ThinkRoutineForm({ cancelLink, className, routine, onSubmit, ref, ...pr
|
|
|
198
198
|
}
|
|
199
199
|
return /* @__PURE__ */ jsxs("div", {
|
|
200
200
|
ref,
|
|
201
|
-
className: cx("think-
|
|
201
|
+
className: cx("think-routine__editor", className),
|
|
202
202
|
...props,
|
|
203
203
|
children: [
|
|
204
204
|
/* @__PURE__ */ jsxs(AppTopBar.Root, {
|
|
@@ -210,18 +210,18 @@ function ThinkRoutineForm({ cancelLink, className, routine, onSubmit, ref, ...pr
|
|
|
210
210
|
}) }) : null, /* @__PURE__ */ jsx(AppTopBar.Title, { children: editing ? "Edit schedule" : "New schedule" })]
|
|
211
211
|
}),
|
|
212
212
|
error ? /* @__PURE__ */ jsxs("div", {
|
|
213
|
-
className: "think-
|
|
213
|
+
className: "think-routine__editor-error",
|
|
214
214
|
role: "alert",
|
|
215
215
|
children: [/* @__PURE__ */ jsx(WarningIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", { children: error })]
|
|
216
216
|
}) : null,
|
|
217
217
|
/* @__PURE__ */ jsxs("main", {
|
|
218
|
-
className: "think-routine-form think-
|
|
218
|
+
className: "think-routine-form think-routine__create",
|
|
219
219
|
"aria-labelledby": titleId,
|
|
220
220
|
children: [/* @__PURE__ */ jsx("header", {
|
|
221
|
-
className: "think-
|
|
221
|
+
className: "think-routine__create-header",
|
|
222
222
|
children: /* @__PURE__ */ jsxs("div", { children: [
|
|
223
223
|
/* @__PURE__ */ jsx("p", {
|
|
224
|
-
className: "think-
|
|
224
|
+
className: "think-routine__eyebrow",
|
|
225
225
|
children: editing ? "Edit schedule" : "New schedule"
|
|
226
226
|
}),
|
|
227
227
|
/* @__PURE__ */ jsx("h1", {
|
|
@@ -231,7 +231,7 @@ function ThinkRoutineForm({ cancelLink, className, routine, onSubmit, ref, ...pr
|
|
|
231
231
|
/* @__PURE__ */ jsx("p", { children: "Each run starts a new conversation with these instructions." })
|
|
232
232
|
] })
|
|
233
233
|
}), /* @__PURE__ */ jsxs(Form, {
|
|
234
|
-
className: "think-
|
|
234
|
+
className: "think-routine__form",
|
|
235
235
|
validationMode: "onBlur",
|
|
236
236
|
onSubmit: submit,
|
|
237
237
|
children: [/* @__PURE__ */ jsxs(Field.Group, { children: [
|
|
@@ -279,7 +279,7 @@ function ThinkRoutineForm({ cancelLink, className, routine, onSubmit, ref, ...pr
|
|
|
279
279
|
onValueChange: setScheduleKind
|
|
280
280
|
}),
|
|
281
281
|
scheduleKind === "interval" ? /* @__PURE__ */ jsxs("div", {
|
|
282
|
-
className: "think-
|
|
282
|
+
className: "think-routine__form-row",
|
|
283
283
|
children: [/* @__PURE__ */ jsxs(Field.Root, {
|
|
284
284
|
name: "interval",
|
|
285
285
|
children: [/* @__PURE__ */ jsx(Field.Label, {
|
|
@@ -341,7 +341,7 @@ function ThinkRoutineForm({ cancelLink, className, routine, onSubmit, ref, ...pr
|
|
|
341
341
|
}) : null
|
|
342
342
|
]
|
|
343
343
|
}) : null, /* @__PURE__ */ jsxs("div", {
|
|
344
|
-
className: "think-
|
|
344
|
+
className: "think-routine__form-row",
|
|
345
345
|
children: [/* @__PURE__ */ jsxs(Field.Root, {
|
|
346
346
|
name: "time",
|
|
347
347
|
children: [
|
|
@@ -410,7 +410,7 @@ function ThinkRoutineForm({ cancelLink, className, routine, onSubmit, ref, ...pr
|
|
|
410
410
|
})]
|
|
411
411
|
})] })
|
|
412
412
|
] }), /* @__PURE__ */ jsxs("footer", {
|
|
413
|
-
className: "think-
|
|
413
|
+
className: "think-routine__form-actions",
|
|
414
414
|
children: [cancelLink ? /* @__PURE__ */ jsx(Button, {
|
|
415
415
|
variant: "ghost",
|
|
416
416
|
color: "neutral",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
2
|
import { buttonVariants } from "../foundations/Button.js";
|
|
3
|
-
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
4
3
|
import { EmptyState } from "../foundations/EmptyState.js";
|
|
4
|
+
import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
|
|
5
5
|
import { getThinkExecutionRunAccessibleName, getThinkExecutionRunId, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
|
|
6
6
|
import { ThinkExecutionRunSummary } from "./ThinkExecutionStatus.js";
|
|
7
7
|
import * as React from "react";
|
|
@@ -12,17 +12,17 @@ function ThinkRoutineRuns({ className, runs, title = "Recent runs", emptyState =
|
|
|
12
12
|
const titleId = React.useId();
|
|
13
13
|
return /* @__PURE__ */ jsxs("section", {
|
|
14
14
|
ref,
|
|
15
|
-
className: cx("think-routine-runs", "think-
|
|
15
|
+
className: cx("think-routine-runs", "think-routine__runs", className),
|
|
16
16
|
"aria-labelledby": titleId,
|
|
17
17
|
...props,
|
|
18
18
|
children: [/* @__PURE__ */ jsx("div", {
|
|
19
|
-
className: "think-
|
|
19
|
+
className: "think-routine__section-heading",
|
|
20
20
|
children: /* @__PURE__ */ jsx("h2", {
|
|
21
21
|
id: titleId,
|
|
22
22
|
children: title
|
|
23
23
|
})
|
|
24
24
|
}), runs.length ? /* @__PURE__ */ jsx("ol", {
|
|
25
|
-
className: "think-
|
|
25
|
+
className: "think-routine__run-list",
|
|
26
26
|
children: runs.map((run) => {
|
|
27
27
|
const kind = isThinkSubmissionRun(run) ? "submission" : "workflow";
|
|
28
28
|
const content = /* @__PURE__ */ jsx(ThinkExecutionRunSummary, { run });
|
|
@@ -30,7 +30,7 @@ function ThinkRoutineRuns({ className, runs, title = "Recent runs", emptyState =
|
|
|
30
30
|
variant: "ghost",
|
|
31
31
|
color: "neutral",
|
|
32
32
|
size: "sm",
|
|
33
|
-
className: "think-
|
|
33
|
+
className: "think-routine__run"
|
|
34
34
|
});
|
|
35
35
|
return /* @__PURE__ */ jsx("li", { children: renderRunLink ? /* @__PURE__ */ jsx(NavigationLink, {
|
|
36
36
|
render: renderRunLink(run),
|
|
@@ -38,12 +38,12 @@ function ThinkRoutineRuns({ className, runs, title = "Recent runs", emptyState =
|
|
|
38
38
|
"aria-label": getThinkExecutionRunAccessibleName(run),
|
|
39
39
|
children: content
|
|
40
40
|
}) : /* @__PURE__ */ jsx("div", {
|
|
41
|
-
className: "think-
|
|
41
|
+
className: "think-routine__run",
|
|
42
42
|
children: content
|
|
43
43
|
}) }, `${kind}:${getThinkExecutionRunId(run)}`);
|
|
44
44
|
})
|
|
45
45
|
}) : /* @__PURE__ */ jsx(EmptyState, {
|
|
46
|
-
className: "think-
|
|
46
|
+
className: "think-routine__empty-runs",
|
|
47
47
|
description: emptyState
|
|
48
48
|
})]
|
|
49
49
|
});
|