windmill-components 1.677.1 → 1.687.0
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/package/components/AppConnectInner.svelte +6 -0
- package/package/components/CiTestResults.svelte +64 -0
- package/package/components/CiTestResults.svelte.d.ts +7 -0
- package/package/components/CompareWorkspaces.svelte +626 -418
- package/package/components/DBManager.svelte +35 -4
- package/package/components/DBManager.svelte.d.ts +2 -0
- package/package/components/DBManagerContent.svelte +3 -1
- package/package/components/DBManagerContent.svelte.d.ts +3 -0
- package/package/components/DBManagerDrawer.svelte +145 -3
- package/package/components/DBTableEditor.svelte +14 -4
- package/package/components/DatatablePicker.svelte +2 -5
- package/package/components/DatatableSchemaDiff.svelte +531 -0
- package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
- package/package/components/DedicatedWorkersSelector.svelte +4 -2
- package/package/components/DefaultTagsInner.svelte +42 -2
- package/package/components/DeployWorkspaceDrawer.svelte +1 -1
- package/package/components/Dev.svelte +20 -3
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +1 -1
- package/package/components/EditorBar.svelte.d.ts +1 -1
- package/package/components/FlowStatusViewerInner.svelte +269 -220
- package/package/components/FlowTimeline.svelte +1 -1
- package/package/components/FolderEditor.svelte +189 -4
- package/package/components/ForkWorkspaceBanner.svelte +82 -11
- package/package/components/GlobalUserOffboardingModal.svelte +293 -0
- package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/InstanceSettings.svelte +22 -3
- package/package/components/Login.svelte +22 -10
- package/package/components/ModuleTest.svelte +2 -1
- package/package/components/NoMainFuncBadge.svelte +1 -1
- package/package/components/OffboardItemsBox.svelte +56 -0
- package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
- package/package/components/OffboardReassignControls.svelte +47 -0
- package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
- package/package/components/OffboardWorkspaceSection.svelte +110 -0
- package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
- package/package/components/OnBehalfOfSelector.svelte +21 -3
- package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
- package/package/components/QueueAlerts.svelte +10 -10
- package/package/components/ResourcePicker.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +52 -11
- package/package/components/ScriptEditor.svelte +1 -3
- package/package/components/ScriptEditor.svelte.d.ts +1 -1
- package/package/components/ShareModal.svelte +236 -98
- package/package/components/SuperadminSettingsInner.svelte +362 -315
- package/package/components/UserOffboardingModal.svelte +238 -0
- package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
- package/package/components/WorkspaceDeployLayout.svelte +3 -3
- package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
- package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
- package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
- package/package/components/assets/AssetsDropdownButton.svelte +1 -1
- package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
- package/package/components/common/table/AppRow.svelte +3 -3
- package/package/components/common/table/FlowRow.svelte +3 -3
- package/package/components/common/table/RawAppRow.svelte +4 -4
- package/package/components/common/table/Row.svelte +6 -2
- package/package/components/common/table/ScriptRow.svelte +11 -3
- package/package/components/copilot/chat/AIChatManager.svelte.js +2 -2
- package/package/components/copilot/chat/anthropic.d.ts +7 -1
- package/package/components/copilot/chat/anthropic.js +5 -2
- package/package/components/copilot/chat/app/core.js +129 -1
- package/package/components/copilot/chat/app/core.test.js +192 -0
- package/package/components/copilot/chat/chatLoop.d.ts +3 -0
- package/package/components/copilot/chat/chatLoop.js +13 -5
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +55 -76
- package/package/components/copilot/chat/flow/core.d.ts +13 -3
- package/package/components/copilot/chat/flow/core.js +467 -116
- package/package/components/copilot/chat/flow/helperUtils.d.ts +19 -0
- package/package/components/copilot/chat/flow/helperUtils.js +68 -0
- package/package/components/copilot/chat/flow/helperUtils.test.js +116 -0
- package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
- package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
- package/package/components/copilot/chat/flow/utils.test.js +59 -0
- package/package/components/copilot/chat/openai-responses.d.ts +7 -1
- package/package/components/copilot/chat/openai-responses.js +5 -2
- package/package/components/copilot/chat/shared.d.ts +1 -2
- package/package/components/copilot/chat/shared.js +94 -52
- package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
- package/package/components/copilot/chat/tokenUsage.js +42 -0
- package/package/components/copilot/lib.d.ts +5 -1
- package/package/components/copilot/lib.js +21 -5
- package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
- package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
- package/package/components/details/CopyableCodeBlock.svelte +18 -8
- package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +19 -21
- package/package/components/flows/agentToolTree.d.ts +17 -0
- package/package/components/flows/agentToolTree.js +114 -0
- package/package/components/flows/agentToolTree.test.d.ts +1 -0
- package/package/components/flows/agentToolTree.test.js +86 -0
- package/package/components/flows/agentToolUtils.d.ts +0 -5
- package/package/components/flows/agentToolUtils.js +0 -49
- package/package/components/flows/content/FlowLoop.svelte +7 -4
- package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
- package/package/components/flows/content/FlowSettings.svelte +29 -0
- package/package/components/flows/dfs.d.ts +6 -2
- package/package/components/flows/dfs.js +19 -11
- package/package/components/flows/flowDeleteController.d.ts +32 -0
- package/package/components/flows/flowDeleteController.js +54 -0
- package/package/components/flows/flowDeleteController.test.d.ts +1 -0
- package/package/components/flows/flowDeleteController.test.js +121 -0
- package/package/components/flows/flowDeleteUtils.d.ts +48 -0
- package/package/components/flows/flowDeleteUtils.js +150 -0
- package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
- package/package/components/flows/flowDeleteUtils.test.js +131 -0
- package/package/components/flows/flowDiff.d.ts +2 -47
- package/package/components/flows/flowDiff.js +16 -293
- package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
- package/package/components/flows/flowDiff.testUtils.js +26 -0
- package/package/components/flows/flowDiffManager.svelte.js +20 -75
- package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
- package/package/components/flows/flowExplorer.d.ts +4 -0
- package/package/components/flows/flowExplorer.js +7 -30
- package/package/components/flows/flowState.d.ts +1 -0
- package/package/components/flows/flowStateUtils.svelte.js +6 -1
- package/package/components/flows/flowTree.d.ts +91 -0
- package/package/components/flows/flowTree.js +326 -0
- package/package/components/flows/flowTree.test.d.ts +1 -0
- package/package/components/flows/flowTree.test.js +236 -0
- package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +70 -227
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +0 -2
- package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
- package/package/components/flows/previousResults.js +13 -41
- package/package/components/flows/previousResults.test.d.ts +1 -0
- package/package/components/flows/previousResults.test.js +65 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
- package/package/components/flows/propPicker/StepHistory.svelte +9 -1
- package/package/components/git_sync/GitSyncContext.svelte.js +11 -5
- package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
- package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
- package/package/components/graph/FlowGraphV2.svelte +2 -2
- package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
- package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
- package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
- package/package/components/graph/renderers/triggers/TriggersBadge.svelte +5 -2
- package/package/components/home/HomeConnectDrawer.svelte +125 -0
- package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
- package/package/components/icons/GithubIcon.svelte +4 -4
- package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
- package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
- package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
- package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
- package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
- package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
- package/package/components/instanceSettings.d.ts +1 -0
- package/package/components/instanceSettings.js +42 -8
- package/package/components/offboarding-utils.d.ts +11 -0
- package/package/components/offboarding-utils.js +100 -0
- package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -0
- package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
- package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
- package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
- package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
- package/package/components/runs/runsFilter.d.ts +1 -1
- package/package/components/script_builder.d.ts +1 -1
- package/package/components/select/Select.svelte +2 -1
- package/package/components/select/Select.svelte.d.ts +1 -0
- package/package/components/settings/CreateToken.svelte +113 -64
- package/package/components/settings/CreateToken.svelte.d.ts +3 -0
- package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
- package/package/components/sidebar/SidebarContent.svelte +58 -2
- package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
- package/package/components/triggers/AddTriggersButton.svelte +11 -0
- package/package/components/triggers/PermissionedAsLine.svelte +37 -3
- package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
- package/package/components/triggers/TriggersEditor.svelte +5 -1
- package/package/components/triggers/TriggersWrapper.svelte +10 -0
- package/package/components/triggers/email/EmailTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
- package/package/components/triggers/http/RouteEditorInner.svelte +14 -14
- package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
- package/package/components/triggers/http/RoutesPanel.svelte +1 -1
- package/package/components/triggers/http/utils.d.ts +1 -1
- package/package/components/triggers/http/utils.js +2 -2
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
- package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
- package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
- package/package/components/triggers/native/utils.js +14 -0
- package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +13 -11
- package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +13 -11
- package/package/components/triggers/triggers.svelte.js +1 -0
- package/package/components/triggers/utils.js +27 -6
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +13 -11
- package/package/components/triggers.d.ts +1 -1
- package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
- package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
- package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
- package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
- package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
- package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
- package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
- package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
- package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
- package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
- package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
- package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
- package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
- package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
- package/package/consts.d.ts +3 -0
- package/package/consts.js +10 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +485 -19
- package/package/gen/schemas.gen.js +489 -20
- package/package/gen/services.gen.d.ts +229 -2
- package/package/gen/services.gen.js +463 -1
- package/package/gen/types.gen.d.ts +866 -29
- package/package/githubApp.js +5 -1
- package/package/hubPaths.json +1 -4
- package/package/infer.js +13 -1
- package/package/infer.svelte.js +10 -1
- package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
- package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
- package/package/script_helpers.d.ts +8 -2
- package/package/script_helpers.js +14 -0
- package/package/stores.d.ts +4 -0
- package/package/stores.js +1 -0
- package/package/system_prompts/prompts.d.ts +4 -3
- package/package/system_prompts/prompts.js +270 -20
- package/package/templates/ci_test_bun.ts.template +19 -0
- package/package/templates/ci_test_python.py.template +18 -0
- package/package/utils_workspace_deploy.d.ts +8 -8
- package/package/utils_workspace_deploy.js +86 -420
- package/package.json +3 -3
- package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
- package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
- package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
- package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
- package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
- package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
- package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
- package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
- package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
- package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
- package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
- package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
- package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
- package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
- package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
- package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
- package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
- package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
- package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
- package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
- package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
- package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
- package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
- package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
- package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
- package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
- package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
- package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
- package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
- package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
- package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
- package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
- package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
- package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
- package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
- package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
- package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
- package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
- package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
- package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
- package/package/components/copilot/chat/flow/utils.d.ts +0 -14
- package/package/components/copilot/chat/flow/utils.js +0 -108
- package/package/components/flows/agentToolUtils.test.js +0 -55
- /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
- /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
- /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { FileItem } from '../index';
|
|
3
|
-
interface FileListProps {
|
|
4
|
-
files: FileItem[];
|
|
5
|
-
onDelete: (item: FileItem) => void;
|
|
6
|
-
onRename: (item: FileItem, newName: string) => void;
|
|
7
|
-
onFolderOpen: (folder: FileItem) => void;
|
|
8
|
-
}
|
|
9
|
-
export declare const FileList: React.FC<FileListProps>;
|
|
10
|
-
export {};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { FileItem as FileItemComponent } from './FileItem'
|
|
3
|
-
import type { FileItem } from '../index'
|
|
4
|
-
|
|
5
|
-
interface FileListProps {
|
|
6
|
-
files: FileItem[]
|
|
7
|
-
onDelete: (item: FileItem) => void
|
|
8
|
-
onRename: (item: FileItem, newName: string) => void
|
|
9
|
-
onFolderOpen: (folder: FileItem) => void
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const FileList: React.FC<FileListProps> = ({ files, onDelete, onRename, onFolderOpen }) => {
|
|
13
|
-
if (files.length === 0) {
|
|
14
|
-
return (
|
|
15
|
-
<div className="text-center text-gray-500 py-8">This folder is empty</div>
|
|
16
|
-
)
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// Sort: folders first, then files
|
|
20
|
-
const sortedFiles = [...files].sort((a, b) => {
|
|
21
|
-
if (a.type === 'folder' && b.type !== 'folder') return -1
|
|
22
|
-
if (a.type !== 'folder' && b.type === 'folder') return 1
|
|
23
|
-
return a.name.localeCompare(b.name)
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<div className="bg-white rounded-lg border">
|
|
28
|
-
<div className="grid grid-cols-12 gap-4 px-4 py-2 border-b bg-gray-50 font-medium text-sm text-gray-600">
|
|
29
|
-
<div className="col-span-6">Name</div>
|
|
30
|
-
<div className="col-span-2">Type</div>
|
|
31
|
-
<div className="col-span-2">Modified</div>
|
|
32
|
-
<div className="col-span-2">Actions</div>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
{sortedFiles.map((file) => (
|
|
36
|
-
<FileItemComponent
|
|
37
|
-
key={file.id}
|
|
38
|
-
item={file}
|
|
39
|
-
onDelete={onDelete}
|
|
40
|
-
onRename={onRename}
|
|
41
|
-
onFolderOpen={onFolderOpen}
|
|
42
|
-
/>
|
|
43
|
-
))}
|
|
44
|
-
</div>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { Folder } from '../index';
|
|
3
|
-
interface FolderTreeProps {
|
|
4
|
-
folders: Folder[];
|
|
5
|
-
currentFolderId: string | null;
|
|
6
|
-
onFolderSelect: (folderId: string | null, folderName: string) => void;
|
|
7
|
-
depth?: number;
|
|
8
|
-
}
|
|
9
|
-
export declare const FolderTree: React.FC<FolderTreeProps>;
|
|
10
|
-
export {};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { Folder } from '../index'
|
|
3
|
-
|
|
4
|
-
interface FolderTreeProps {
|
|
5
|
-
folders: Folder[]
|
|
6
|
-
currentFolderId: string | null
|
|
7
|
-
onFolderSelect: (folderId: string | null, folderName: string) => void
|
|
8
|
-
depth?: number
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const FolderTree: React.FC<FolderTreeProps> = ({
|
|
12
|
-
folders,
|
|
13
|
-
currentFolderId,
|
|
14
|
-
onFolderSelect,
|
|
15
|
-
depth = 0
|
|
16
|
-
}) => {
|
|
17
|
-
return (
|
|
18
|
-
<div>
|
|
19
|
-
{depth === 0 && (
|
|
20
|
-
<div
|
|
21
|
-
className={`px-4 py-2 cursor-pointer hover:bg-gray-100 ${
|
|
22
|
-
currentFolderId === null ? 'bg-blue-100 text-blue-700' : ''
|
|
23
|
-
}`}
|
|
24
|
-
onClick={() => onFolderSelect(null, 'Root')}
|
|
25
|
-
>
|
|
26
|
-
<span className="mr-2">📁</span>
|
|
27
|
-
Root
|
|
28
|
-
</div>
|
|
29
|
-
)}
|
|
30
|
-
|
|
31
|
-
{folders.map((folder) => (
|
|
32
|
-
<div key={folder.id}>
|
|
33
|
-
<div
|
|
34
|
-
className={`px-4 py-2 cursor-pointer hover:bg-gray-100 ${
|
|
35
|
-
currentFolderId === folder.id ? 'bg-blue-100 text-blue-700' : ''
|
|
36
|
-
}`}
|
|
37
|
-
style={{ paddingLeft: `${(depth + 1) * 16 + 16}px` }}
|
|
38
|
-
onClick={() => onFolderSelect(folder.id, folder.name)}
|
|
39
|
-
>
|
|
40
|
-
<span className="mr-2">📁</span>
|
|
41
|
-
{folder.name}
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
{folder.children && folder.children.length > 0 && (
|
|
45
|
-
<FolderTree
|
|
46
|
-
folders={folder.children}
|
|
47
|
-
currentFolderId={currentFolderId}
|
|
48
|
-
onFolderSelect={onFolderSelect}
|
|
49
|
-
depth={depth + 1}
|
|
50
|
-
/>
|
|
51
|
-
)}
|
|
52
|
-
</div>
|
|
53
|
-
))}
|
|
54
|
-
</div>
|
|
55
|
-
)
|
|
56
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react'
|
|
2
|
-
|
|
3
|
-
interface ToolbarProps {
|
|
4
|
-
onCreateFolder: (name: string) => void
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export const Toolbar: React.FC<ToolbarProps> = ({ onCreateFolder }) => {
|
|
8
|
-
const [isCreating, setIsCreating] = useState(false)
|
|
9
|
-
const [folderName, setFolderName] = useState('')
|
|
10
|
-
|
|
11
|
-
const handleCreate = () => {
|
|
12
|
-
if (folderName.trim()) {
|
|
13
|
-
onCreateFolder(folderName.trim())
|
|
14
|
-
setFolderName('')
|
|
15
|
-
setIsCreating(false)
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return (
|
|
20
|
-
<div className="px-4 py-3 bg-white border-b flex items-center gap-4">
|
|
21
|
-
{isCreating ? (
|
|
22
|
-
<div className="flex items-center gap-2">
|
|
23
|
-
<input
|
|
24
|
-
type="text"
|
|
25
|
-
value={folderName}
|
|
26
|
-
onChange={(e) => setFolderName(e.target.value)}
|
|
27
|
-
onKeyDown={(e) => e.key === 'Enter' && handleCreate()}
|
|
28
|
-
placeholder="Folder name"
|
|
29
|
-
className="border rounded px-3 py-1"
|
|
30
|
-
autoFocus
|
|
31
|
-
/>
|
|
32
|
-
<button
|
|
33
|
-
onClick={handleCreate}
|
|
34
|
-
className="px-3 py-1 bg-blue-500 text-white rounded hover:bg-blue-600"
|
|
35
|
-
>
|
|
36
|
-
Create
|
|
37
|
-
</button>
|
|
38
|
-
<button
|
|
39
|
-
onClick={() => {
|
|
40
|
-
setIsCreating(false)
|
|
41
|
-
setFolderName('')
|
|
42
|
-
}}
|
|
43
|
-
className="px-3 py-1 text-gray-600 hover:text-gray-800"
|
|
44
|
-
>
|
|
45
|
-
Cancel
|
|
46
|
-
</button>
|
|
47
|
-
</div>
|
|
48
|
-
) : (
|
|
49
|
-
<button
|
|
50
|
-
onClick={() => setIsCreating(true)}
|
|
51
|
-
className="px-3 py-1 bg-blue-500 text-white rounded hover:bg-blue-600 flex items-center gap-2"
|
|
52
|
-
>
|
|
53
|
-
<span>+</span>
|
|
54
|
-
New Folder
|
|
55
|
-
</button>
|
|
56
|
-
)}
|
|
57
|
-
</div>
|
|
58
|
-
)
|
|
59
|
-
}
|
package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface FileItem {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
type: 'file' | 'folder';
|
|
5
|
-
size?: number;
|
|
6
|
-
modifiedAt: string;
|
|
7
|
-
parentId: string | null;
|
|
8
|
-
}
|
|
9
|
-
export interface Folder {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
parentId: string | null;
|
|
13
|
-
children: Folder[];
|
|
14
|
-
}
|
|
15
|
-
declare const App: () => any;
|
|
16
|
-
export default App;
|
package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react'
|
|
2
|
-
import { backend } from 'wmill'
|
|
3
|
-
import { FolderTree } from './components/FolderTree'
|
|
4
|
-
import { FileList } from './components/FileList'
|
|
5
|
-
import { Breadcrumb } from './components/Breadcrumb'
|
|
6
|
-
import { Toolbar } from './components/Toolbar'
|
|
7
|
-
|
|
8
|
-
export interface FileItem {
|
|
9
|
-
id: string
|
|
10
|
-
name: string
|
|
11
|
-
type: 'file' | 'folder'
|
|
12
|
-
size?: number
|
|
13
|
-
modifiedAt: string
|
|
14
|
-
parentId: string | null
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface Folder {
|
|
18
|
-
id: string
|
|
19
|
-
name: string
|
|
20
|
-
parentId: string | null
|
|
21
|
-
children: Folder[]
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const App = () => {
|
|
25
|
-
const [folders, setFolders] = useState<Folder[]>([])
|
|
26
|
-
const [files, setFiles] = useState<FileItem[]>([])
|
|
27
|
-
const [currentFolderId, setCurrentFolderId] = useState<string | null>(null)
|
|
28
|
-
const [path, setPath] = useState<{ id: string | null; name: string }[]>([
|
|
29
|
-
{ id: null, name: 'Root' }
|
|
30
|
-
])
|
|
31
|
-
const [loading, setLoading] = useState(true)
|
|
32
|
-
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
loadFolders()
|
|
35
|
-
}, [])
|
|
36
|
-
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
loadFiles(currentFolderId)
|
|
39
|
-
}, [currentFolderId])
|
|
40
|
-
|
|
41
|
-
const loadFolders = async () => {
|
|
42
|
-
const data = await backend.listFolders()
|
|
43
|
-
setFolders(data)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const loadFiles = async (folderId: string | null) => {
|
|
47
|
-
setLoading(true)
|
|
48
|
-
const data = await backend.listFiles({ folderId })
|
|
49
|
-
setFiles(data)
|
|
50
|
-
setLoading(false)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const handleFolderSelect = (folderId: string | null, folderName: string) => {
|
|
54
|
-
setCurrentFolderId(folderId)
|
|
55
|
-
|
|
56
|
-
if (folderId === null) {
|
|
57
|
-
setPath([{ id: null, name: 'Root' }])
|
|
58
|
-
} else {
|
|
59
|
-
// Find if folder is already in path
|
|
60
|
-
const existingIndex = path.findIndex((p) => p.id === folderId)
|
|
61
|
-
if (existingIndex >= 0) {
|
|
62
|
-
setPath(path.slice(0, existingIndex + 1))
|
|
63
|
-
} else {
|
|
64
|
-
setPath([...path, { id: folderId, name: folderName }])
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const handleCreateFolder = async (name: string) => {
|
|
70
|
-
await backend.createFolder({ name, parentId: currentFolderId })
|
|
71
|
-
await loadFolders()
|
|
72
|
-
await loadFiles(currentFolderId)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const handleDeleteItem = async (item: FileItem) => {
|
|
76
|
-
await backend.deleteItem({ id: item.id, type: item.type })
|
|
77
|
-
await loadFolders()
|
|
78
|
-
await loadFiles(currentFolderId)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const handleRenameItem = async (item: FileItem, newName: string) => {
|
|
82
|
-
await backend.renameItem({ id: item.id, type: item.type, newName })
|
|
83
|
-
await loadFolders()
|
|
84
|
-
await loadFiles(currentFolderId)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return (
|
|
88
|
-
<div className="flex h-screen bg-gray-100">
|
|
89
|
-
<div className="w-64 bg-white border-r overflow-auto">
|
|
90
|
-
<div className="p-4 font-semibold border-b">Folders</div>
|
|
91
|
-
<FolderTree
|
|
92
|
-
folders={folders}
|
|
93
|
-
currentFolderId={currentFolderId}
|
|
94
|
-
onFolderSelect={handleFolderSelect}
|
|
95
|
-
/>
|
|
96
|
-
</div>
|
|
97
|
-
|
|
98
|
-
<div className="flex-1 flex flex-col">
|
|
99
|
-
<Toolbar onCreateFolder={handleCreateFolder} />
|
|
100
|
-
<Breadcrumb path={path} onNavigate={handleFolderSelect} />
|
|
101
|
-
|
|
102
|
-
<div className="flex-1 p-4 overflow-auto">
|
|
103
|
-
{loading ? (
|
|
104
|
-
<div className="text-center text-gray-500 py-8">Loading...</div>
|
|
105
|
-
) : (
|
|
106
|
-
<FileList
|
|
107
|
-
files={files}
|
|
108
|
-
onDelete={handleDeleteItem}
|
|
109
|
-
onRename={handleRenameItem}
|
|
110
|
-
onFolderOpen={(folder) => handleFolderSelect(folder.id, folder.name)}
|
|
111
|
-
/>
|
|
112
|
-
)}
|
|
113
|
-
</div>
|
|
114
|
-
</div>
|
|
115
|
-
</div>
|
|
116
|
-
)
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export default App
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
interface Product {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
price: number;
|
|
5
|
-
image: string;
|
|
6
|
-
}
|
|
7
|
-
interface CartItem {
|
|
8
|
-
product: Product;
|
|
9
|
-
quantity: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function main({ cart, product }: {
|
|
12
|
-
cart: CartItem[];
|
|
13
|
-
product: Product;
|
|
14
|
-
}): Promise<CartItem[]>;
|
|
15
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export async function main({ cart, product }) {
|
|
2
|
-
const existingIndex = cart.findIndex((item) => item.product.id === product.id);
|
|
3
|
-
if (existingIndex >= 0) {
|
|
4
|
-
// Increment quantity if already in cart
|
|
5
|
-
const updatedCart = [...cart];
|
|
6
|
-
updatedCart[existingIndex] = {
|
|
7
|
-
...updatedCart[existingIndex],
|
|
8
|
-
quantity: updatedCart[existingIndex].quantity + 1
|
|
9
|
-
};
|
|
10
|
-
return updatedCart;
|
|
11
|
-
}
|
|
12
|
-
// Add new item to cart
|
|
13
|
-
return [...cart, { product, quantity: 1 }];
|
|
14
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
interface Product {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
price: number;
|
|
5
|
-
image: string;
|
|
6
|
-
}
|
|
7
|
-
interface CartItem {
|
|
8
|
-
product: Product;
|
|
9
|
-
quantity: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function main({ items }: {
|
|
12
|
-
items: CartItem[];
|
|
13
|
-
}): Promise<number>;
|
|
14
|
-
export {};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export async function main() {
|
|
2
|
-
// Mock product catalog
|
|
3
|
-
return [
|
|
4
|
-
{
|
|
5
|
-
id: '1',
|
|
6
|
-
name: 'Wireless Headphones',
|
|
7
|
-
price: 79.99,
|
|
8
|
-
image: 'https://picsum.photos/seed/headphones/300/200'
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
id: '2',
|
|
12
|
-
name: 'Smart Watch',
|
|
13
|
-
price: 199.99,
|
|
14
|
-
image: 'https://picsum.photos/seed/watch/300/200'
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
id: '3',
|
|
18
|
-
name: 'Laptop Stand',
|
|
19
|
-
price: 49.99,
|
|
20
|
-
image: 'https://picsum.photos/seed/stand/300/200'
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: '4',
|
|
24
|
-
name: 'Mechanical Keyboard',
|
|
25
|
-
price: 129.99,
|
|
26
|
-
image: 'https://picsum.photos/seed/keyboard/300/200'
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
id: '5',
|
|
30
|
-
name: 'USB-C Hub',
|
|
31
|
-
price: 39.99,
|
|
32
|
-
image: 'https://picsum.photos/seed/hub/300/200'
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: '6',
|
|
36
|
-
name: 'Webcam HD',
|
|
37
|
-
price: 89.99,
|
|
38
|
-
image: 'https://picsum.photos/seed/webcam/300/200'
|
|
39
|
-
}
|
|
40
|
-
];
|
|
41
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
interface Product {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
price: number;
|
|
5
|
-
image: string;
|
|
6
|
-
}
|
|
7
|
-
interface CartItem {
|
|
8
|
-
product: Product;
|
|
9
|
-
quantity: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function main({ cart, productId }: {
|
|
12
|
-
cart: CartItem[];
|
|
13
|
-
productId: string;
|
|
14
|
-
}): Promise<CartItem[]>;
|
|
15
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { CartItem } from '../index'
|
|
3
|
-
|
|
4
|
-
interface CartProps {
|
|
5
|
-
items: CartItem[]
|
|
6
|
-
total: number
|
|
7
|
-
onRemoveItem: (productId: string) => void
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const Cart: React.FC<CartProps> = ({ items, total, onRemoveItem }) => {
|
|
11
|
-
return (
|
|
12
|
-
<div className="flex flex-col h-full">
|
|
13
|
-
<h2 className="text-xl font-bold mb-4">Cart</h2>
|
|
14
|
-
|
|
15
|
-
{items.length === 0 ? (
|
|
16
|
-
<p className="text-gray-500 text-center py-8">Your cart is empty</p>
|
|
17
|
-
) : (
|
|
18
|
-
<>
|
|
19
|
-
<div className="flex-1 overflow-auto">
|
|
20
|
-
{items.map((item) => (
|
|
21
|
-
<div
|
|
22
|
-
key={item.product.id}
|
|
23
|
-
className="flex items-center justify-between py-3 border-b"
|
|
24
|
-
>
|
|
25
|
-
<div className="flex-1">
|
|
26
|
-
<p className="font-medium">{item.product.name}</p>
|
|
27
|
-
<p className="text-sm text-gray-500">
|
|
28
|
-
${item.product.price.toFixed(2)} x {item.quantity}
|
|
29
|
-
</p>
|
|
30
|
-
</div>
|
|
31
|
-
<button
|
|
32
|
-
onClick={() => onRemoveItem(item.product.id)}
|
|
33
|
-
className="text-red-500 hover:text-red-700 px-2"
|
|
34
|
-
>
|
|
35
|
-
Remove
|
|
36
|
-
</button>
|
|
37
|
-
</div>
|
|
38
|
-
))}
|
|
39
|
-
</div>
|
|
40
|
-
|
|
41
|
-
<div className="border-t pt-4 mt-4">
|
|
42
|
-
<div className="flex justify-between text-lg font-bold">
|
|
43
|
-
<span>Total:</span>
|
|
44
|
-
<span>${total.toFixed(2)}</span>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</>
|
|
48
|
-
)}
|
|
49
|
-
</div>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import type { Product } from '../index'
|
|
3
|
-
|
|
4
|
-
interface ProductCardProps {
|
|
5
|
-
product: Product
|
|
6
|
-
onAddToCart: (product: Product) => void
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const ProductCard: React.FC<ProductCardProps> = ({ product, onAddToCart }) => {
|
|
10
|
-
return (
|
|
11
|
-
<div className="border rounded-lg p-4 bg-white shadow-sm">
|
|
12
|
-
<img
|
|
13
|
-
src={product.image}
|
|
14
|
-
alt={product.name}
|
|
15
|
-
className="w-full h-48 object-cover rounded mb-4"
|
|
16
|
-
/>
|
|
17
|
-
<h3 className="font-semibold text-lg">{product.name}</h3>
|
|
18
|
-
<p className="text-gray-600 mb-4">${product.price.toFixed(2)}</p>
|
|
19
|
-
<button
|
|
20
|
-
onClick={() => onAddToCart(product)}
|
|
21
|
-
className="w-full py-2 bg-blue-500 text-white rounded hover:bg-blue-600 transition"
|
|
22
|
-
>
|
|
23
|
-
Add to Cart
|
|
24
|
-
</button>
|
|
25
|
-
</div>
|
|
26
|
-
)
|
|
27
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import { ProductCard } from './ProductCard'
|
|
3
|
-
import type { Product } from '../index'
|
|
4
|
-
|
|
5
|
-
interface ProductListProps {
|
|
6
|
-
products: Product[]
|
|
7
|
-
onAddToCart: (product: Product) => void
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const ProductList: React.FC<ProductListProps> = ({ products, onAddToCart }) => {
|
|
11
|
-
return (
|
|
12
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
13
|
-
{products.map((product) => (
|
|
14
|
-
<ProductCard key={product.id} product={product} onAddToCart={onAddToCart} />
|
|
15
|
-
))}
|
|
16
|
-
</div>
|
|
17
|
-
)
|
|
18
|
-
}
|