@parhelia/core 0.1.12368 → 0.1.12393
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/agents-view/AgentsView.js +1 -1
- package/dist/agents-view/AgentsView.js.map +1 -1
- package/dist/components/ui/LanguageSelector.js +1 -3
- package/dist/components/ui/LanguageSelector.js.map +1 -1
- package/dist/components/ui/dialog.js +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/config/config.js +53 -16
- package/dist/config/config.js.map +1 -1
- package/dist/config/notificationRoutes.js +10 -0
- package/dist/config/notificationRoutes.js.map +1 -1
- package/dist/config/types/workspace.d.ts +6 -0
- package/dist/config/types.d.ts +2 -5
- package/dist/editor/Editor.js +37 -15
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/SetupWizard.js +20 -2
- package/dist/editor/SetupWizard.js.map +1 -1
- package/dist/editor/ai/AgentCostDisplay.d.ts +1 -0
- package/dist/editor/ai/AgentCostDisplay.js +1 -1
- package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
- package/dist/editor/ai/AgentTerminal.js +158 -39
- package/dist/editor/ai/AgentTerminal.js.map +1 -1
- package/dist/editor/ai/AgentTerminalStatusBar.d.ts +2 -0
- package/dist/editor/ai/AgentTerminalStatusBar.js +22 -37
- package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
- package/dist/editor/ai/AiResponseMessage.js +0 -1
- package/dist/editor/ai/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/ContentInspectorPopover.d.ts +17 -0
- package/dist/editor/ai/ContentInspectorPopover.js +136 -0
- package/dist/editor/ai/ContentInspectorPopover.js.map +1 -0
- package/dist/editor/ai/ContextInfoBar.js +55 -2
- package/dist/editor/ai/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.js +1 -7
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/ToolCallDisplay.d.ts +4 -0
- package/dist/editor/ai/ToolCallDisplay.js +43 -8
- package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
- package/dist/editor/ai/dialogs/AgentDialogHandler.js +46 -22
- package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
- package/dist/editor/client/EditorShell.js +69 -26
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +3 -2
- package/dist/editor/client/hooks/useQuota.d.ts +2 -1
- package/dist/editor/client/hooks/useQuota.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +28 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/operations.d.ts +1 -0
- package/dist/editor/client/operations.js +67 -15
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/waitForEditOperationTerminal.d.ts +11 -0
- package/dist/editor/client/waitForEditOperationTerminal.js +40 -0
- package/dist/editor/client/waitForEditOperationTerminal.js.map +1 -0
- package/dist/editor/commands/commands.d.ts +11 -1
- package/dist/editor/commands/commands.js +12 -1
- package/dist/editor/commands/commands.js.map +1 -1
- package/dist/editor/commands/customCommandConverter.d.ts +8 -1
- package/dist/editor/commands/customCommandConverter.js +33 -4
- package/dist/editor/commands/customCommandConverter.js.map +1 -1
- package/dist/editor/commands/handlers/uiActionHandlers.d.ts +6 -0
- package/dist/editor/commands/handlers/uiActionHandlers.js +84 -0
- package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -0
- package/dist/editor/commands/itemCommands.js +6 -2
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/commands/keyboardCommands.d.ts +10 -0
- package/dist/editor/commands/keyboardCommands.js +142 -0
- package/dist/editor/commands/keyboardCommands.js.map +1 -0
- package/dist/editor/commands/undo.d.ts +9 -15
- package/dist/editor/commands/undo.js +24 -0
- package/dist/editor/commands/undo.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +1 -3
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/VersionSelector.js +1 -3
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +7 -36
- package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
- package/dist/editor/notifications/notificationRoutes.js +1 -0
- package/dist/editor/notifications/notificationRoutes.js.map +1 -1
- package/dist/editor/page-editor-chrome/InlineEditor.js +53 -36
- package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +283 -298
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +60 -6
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/reviews/Comment.js +12 -10
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/reviews/CommentDisplayPopover.js +1 -3
- package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/PreviewInfo.js +1 -4
- package/dist/editor/reviews/PreviewInfo.js.map +1 -1
- package/dist/editor/reviews/reviewCommands.js +4 -1
- package/dist/editor/reviews/reviewCommands.js.map +1 -1
- package/dist/editor/reviews/useReviews.d.ts +2 -2
- package/dist/editor/reviews/useReviews.js +12 -30
- package/dist/editor/reviews/useReviews.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +26 -0
- package/dist/editor/services/agentService.js +41 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +7 -1
- package/dist/editor/services/aiService.js +13 -1
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/services/notificationService.d.ts +1 -0
- package/dist/editor/services/notificationService.js +1 -0
- package/dist/editor/services/notificationService.js.map +1 -1
- package/dist/editor/services/reviewsService.d.ts +2 -5
- package/dist/editor/services/reviewsService.js +0 -10
- package/dist/editor/services/reviewsService.js.map +1 -1
- package/dist/editor/services/systemService.d.ts +2 -1
- package/dist/editor/services/systemService.js +3 -0
- package/dist/editor/services/systemService.js.map +1 -1
- package/dist/editor/services/templateBuilderService.d.ts +7 -0
- package/dist/editor/services/templateBuilderService.js +7 -1
- package/dist/editor/services/templateBuilderService.js.map +1 -1
- package/dist/editor/settings/About.js +25 -19
- package/dist/editor/settings/About.js.map +1 -1
- package/dist/editor/settings/QuotaInfo.js +15 -7
- package/dist/editor/settings/QuotaInfo.js.map +1 -1
- package/dist/editor/settings/index/useIndexStatus.js +1 -1
- package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
- package/dist/editor/settings/panels/AgentProfileConfigPanel.d.ts +10 -0
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js +61 -0
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -0
- package/dist/editor/settings/panels/AgentsPanel.d.ts +0 -4
- package/dist/editor/settings/panels/AgentsPanel.js +101 -109
- package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
- package/dist/editor/settings/panels/CreateAgentProfileDialog.d.ts +7 -0
- package/dist/editor/settings/panels/CreateAgentProfileDialog.js +48 -0
- package/dist/editor/settings/panels/CreateAgentProfileDialog.js.map +1 -0
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.d.ts +33 -0
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +91 -0
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -0
- package/dist/editor/settings/panels/ModelConfigPanel.d.ts +10 -0
- package/dist/editor/settings/panels/ModelConfigPanel.js +51 -0
- package/dist/editor/settings/panels/ModelConfigPanel.js.map +1 -0
- package/dist/editor/settings/panels/ModelsPanel.js +201 -70
- package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.d.ts +10 -0
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +46 -0
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -0
- package/dist/editor/settings/panels/ProjectTemplatesPanel.d.ts +2 -0
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1340 -0
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -0
- package/dist/editor/settings/panels/ProviderConfigPanel.d.ts +10 -0
- package/dist/editor/settings/panels/ProviderConfigPanel.js +32 -0
- package/dist/editor/settings/panels/ProviderConfigPanel.js.map +1 -0
- package/dist/editor/settings/panels/ProvidersPanel.js +46 -4
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
- package/dist/editor/settings/panels/SearchConfigPanel.js +3 -3
- package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/index.d.ts +1 -2
- package/dist/editor/settings/panels/index.js +1 -2
- package/dist/editor/settings/panels/index.js.map +1 -1
- package/dist/editor/setup-wizard/steps/CompleteStep.d.ts +2 -1
- package/dist/editor/setup-wizard/steps/CompleteStep.js +2 -1
- package/dist/editor/setup-wizard/steps/CompleteStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/LicenseActivationStep.d.ts +9 -0
- package/dist/editor/setup-wizard/steps/LicenseActivationStep.js +160 -0
- package/dist/editor/setup-wizard/steps/LicenseActivationStep.js.map +1 -0
- package/dist/editor/setup-wizard/steps/LicenseEmailStep.d.ts +10 -0
- package/dist/editor/setup-wizard/steps/LicenseEmailStep.js +101 -0
- package/dist/editor/setup-wizard/steps/LicenseEmailStep.js.map +1 -0
- package/dist/editor/template-wizard/TemplateStructureInlineEditor.js +422 -65
- package/dist/editor/template-wizard/TemplateStructureInlineEditor.js.map +1 -1
- package/dist/editor/ui/ItemNameDialogNew.js +15 -9
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
- package/dist/editor/utils/keyboardNavigation.d.ts +6 -20
- package/dist/editor/utils/keyboardNavigation.js +48 -139
- package/dist/editor/utils/keyboardNavigation.js.map +1 -1
- package/dist/licensing/EmailEntry.js +1 -1
- package/dist/licensing/EmailEntry.js.map +1 -1
- package/dist/licensing/LicenseActivationForm.js +1 -1
- package/dist/licensing/LicenseActivationForm.js.map +1 -1
- package/dist/licensing/LicenseCodeEntry.js +2 -2
- package/dist/licensing/LicenseCodeEntry.js.map +1 -1
- package/dist/licensing/LicenseContext.js +18 -9
- package/dist/licensing/LicenseContext.js.map +1 -1
- package/dist/licensing/LicenseOverlay.js +2 -1
- package/dist/licensing/LicenseOverlay.js.map +1 -1
- package/dist/licensing/licenseService.d.ts +10 -0
- package/dist/licensing/licenseService.js +28 -0
- package/dist/licensing/licenseService.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/setup/services/setupWizardService.d.ts +8 -10
- package/dist/setup/services/setupWizardService.js +4 -17
- package/dist/setup/services/setupWizardService.js.map +1 -1
- package/dist/splash-screen/ModernSplashScreen.js +100 -18
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/splash-screen/ParheliaAssistantChat.js +3 -22
- package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +70 -3
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/AssignAgentDialog.js +9 -4
- package/dist/task-board/components/AssignAgentDialog.js.map +1 -1
- package/dist/task-board/components/CreateProjectDialog.js +32 -34
- package/dist/task-board/components/CreateProjectDialog.js.map +1 -1
- package/dist/task-board/components/CreateTaskDialog.d.ts +2 -0
- package/dist/task-board/components/CreateTaskDialog.js +35 -11
- package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
- package/dist/task-board/components/ProjectPropertiesPanel.js +4 -1
- package/dist/task-board/components/ProjectPropertiesPanel.js.map +1 -1
- package/dist/task-board/components/TaskAgentPanel.js +13 -4
- package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
- package/dist/task-board/components/TaskAssigneePicker.d.ts +2 -2
- package/dist/task-board/components/TaskAssigneePicker.js +12 -4
- package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
- package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
- package/dist/task-board/components/TaskCard.js +2 -2
- package/dist/task-board/components/TaskCard.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.js +2 -2
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/dist/task-board/components/TaskRow.js +2 -2
- package/dist/task-board/components/TaskRow.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationCenter.js +10 -4
- package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
- package/dist/task-board/services/taskService.d.ts +11 -2
- package/dist/task-board/services/taskService.js +20 -2
- package/dist/task-board/services/taskService.js.map +1 -1
- package/dist/task-board/types.d.ts +52 -7
- package/dist/task-board/views/DependencyGraphView.d.ts +31 -4
- package/dist/task-board/views/DependencyGraphView.js +383 -64
- package/dist/task-board/views/DependencyGraphView.js.map +1 -1
- package/dist/types.d.ts +23 -15
- package/package.json +7 -7
- package/dist/editor/settings/Setup.d.ts +0 -1
- package/dist/editor/settings/Setup.js +0 -211
- package/dist/editor/settings/Setup.js.map +0 -1
- package/dist/editor/settings/panels/DatabasePanel.d.ts +0 -6
- package/dist/editor/settings/panels/DatabasePanel.js +0 -50
- package/dist/editor/settings/panels/DatabasePanel.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +0 -2
- package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +0 -195
- package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +0 -2
- package/dist/editor/settings/setup-steps/AiSetupStep/index.js +0 -21
- package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +0 -233
- package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +0 -15
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +0 -14
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +0 -94
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/types.js +0 -2
- package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +0 -1
- package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +0 -5
- package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +0 -44
- package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +0 -1
- package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +0 -2
- package/dist/editor/settings/setup-steps/IndexSetupStep.js +0 -36
- package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +0 -1
- package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +0 -2
- package/dist/editor/settings/setup-steps/SettingsSetupStep.js +0 -111
- package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +0 -1
- package/dist/editor/settings/setup-steps/SetupOverview.d.ts +0 -14
- package/dist/editor/settings/setup-steps/SetupOverview.js +0 -38
- package/dist/editor/settings/setup-steps/SetupOverview.js.map +0 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { Button } from "../../../components/ui/button";
|
|
4
|
+
import { Input } from "../../../components/ui/input";
|
|
5
|
+
import { clearLicenseCache, requestLicense, storeLicense, verifyActivationCode, } from "../../../licensing/licenseService";
|
|
6
|
+
import { setupWizardService } from "../../../setup/services/setupWizardService";
|
|
7
|
+
import { AlertCircle, ArrowLeft, ArrowRight, CheckCircle, KeyRound, RefreshCw, } from "lucide-react";
|
|
8
|
+
export function LicenseActivationStep({ email, mode, onBack, onActivated, }) {
|
|
9
|
+
const [name, setName] = useState("");
|
|
10
|
+
const [companyName, setCompanyName] = useState("");
|
|
11
|
+
const [codeDigits, setCodeDigits] = useState(["", "", "", "", "", ""]);
|
|
12
|
+
const codeInputRefs = useRef([]);
|
|
13
|
+
const [loading, setLoading] = useState(false);
|
|
14
|
+
const [success, setSuccess] = useState(false);
|
|
15
|
+
const [error, setError] = useState(null);
|
|
16
|
+
const isTrialFlow = useMemo(() => mode === "trial_form", [mode]);
|
|
17
|
+
const trialFormComplete = useMemo(() => name.trim().length > 0 && companyName.trim().length > 0, [name, companyName]);
|
|
18
|
+
const codeComplete = useMemo(() => codeDigits.every((d) => d.length === 1) && codeDigits.join("").length === 6, [codeDigits]);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (!isTrialFlow) {
|
|
21
|
+
codeInputRefs.current[0]?.focus();
|
|
22
|
+
}
|
|
23
|
+
}, [isTrialFlow]);
|
|
24
|
+
const handleStoreLicense = useCallback(async (license) => {
|
|
25
|
+
const settingsExist = await setupWizardService.getSettingsExists();
|
|
26
|
+
if (!settingsExist) {
|
|
27
|
+
await setupWizardService.createSettingsItem();
|
|
28
|
+
}
|
|
29
|
+
const result = await storeLicense(license);
|
|
30
|
+
if (!result.success) {
|
|
31
|
+
throw new Error(result.message || "Failed to store license.");
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
await clearLicenseCache();
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// Non-fatal cache clear; backend will refresh eventually.
|
|
38
|
+
}
|
|
39
|
+
}, []);
|
|
40
|
+
const completePurchasedActivation = useCallback(async (fullCode) => {
|
|
41
|
+
try {
|
|
42
|
+
setLoading(true);
|
|
43
|
+
setError(null);
|
|
44
|
+
const response = await verifyActivationCode({ email, code: fullCode });
|
|
45
|
+
if (response.status !== "purchased" || !response.license) {
|
|
46
|
+
throw new Error(response.message || "Activation code is invalid.");
|
|
47
|
+
}
|
|
48
|
+
await handleStoreLicense(response.license);
|
|
49
|
+
setSuccess(true);
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
onActivated();
|
|
52
|
+
}, 800);
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
setError(e?.message || "License activation failed.");
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
setLoading(false);
|
|
59
|
+
}
|
|
60
|
+
}, [email, handleStoreLicense, onActivated]);
|
|
61
|
+
const handleActivate = useCallback(async () => {
|
|
62
|
+
if (isTrialFlow) {
|
|
63
|
+
try {
|
|
64
|
+
setLoading(true);
|
|
65
|
+
setError(null);
|
|
66
|
+
if (!name.trim() || !companyName.trim()) {
|
|
67
|
+
setError("Please provide your name and company name.");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const response = await requestLicense({
|
|
71
|
+
email,
|
|
72
|
+
name: name.trim(),
|
|
73
|
+
companyName: companyName.trim(),
|
|
74
|
+
});
|
|
75
|
+
if (response.status !== "trial" || !response.license) {
|
|
76
|
+
throw new Error(response.message || "Trial activation failed.");
|
|
77
|
+
}
|
|
78
|
+
await handleStoreLicense(response.license);
|
|
79
|
+
setSuccess(true);
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
onActivated();
|
|
82
|
+
}, 800);
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
setError(e?.message || "License activation failed.");
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
setLoading(false);
|
|
89
|
+
}
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const code = codeDigits.join("");
|
|
93
|
+
if (code.length !== 6) {
|
|
94
|
+
setError("Please enter the activation code.");
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
await completePurchasedActivation(code);
|
|
98
|
+
}, [
|
|
99
|
+
isTrialFlow,
|
|
100
|
+
name,
|
|
101
|
+
companyName,
|
|
102
|
+
email,
|
|
103
|
+
codeDigits,
|
|
104
|
+
handleStoreLicense,
|
|
105
|
+
onActivated,
|
|
106
|
+
completePurchasedActivation,
|
|
107
|
+
]);
|
|
108
|
+
const handleCodeDigitChange = (index, value) => {
|
|
109
|
+
const digit = value.replace(/\D/g, "").slice(-1);
|
|
110
|
+
setError(null);
|
|
111
|
+
setCodeDigits((prev) => {
|
|
112
|
+
const next = [...prev];
|
|
113
|
+
next[index] = digit;
|
|
114
|
+
if (digit && index < 5) {
|
|
115
|
+
queueMicrotask(() => codeInputRefs.current[index + 1]?.focus());
|
|
116
|
+
}
|
|
117
|
+
const full = next.join("");
|
|
118
|
+
if (digit && index === 5 && full.length === 6) {
|
|
119
|
+
queueMicrotask(() => void completePurchasedActivation(full));
|
|
120
|
+
}
|
|
121
|
+
return next;
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
const handleCodeKeyDown = (index, e) => {
|
|
125
|
+
if (e.key === "Backspace" && !codeDigits[index] && index > 0) {
|
|
126
|
+
codeInputRefs.current[index - 1]?.focus();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const handleCodePaste = (e) => {
|
|
130
|
+
e.preventDefault();
|
|
131
|
+
const pasted = e.clipboardData.getData("text").replace(/\D/g, "").slice(0, 6);
|
|
132
|
+
if (!pasted)
|
|
133
|
+
return;
|
|
134
|
+
setError(null);
|
|
135
|
+
const padded = Array.from({ length: 6 }, (_, i) => pasted.charAt(i) || "");
|
|
136
|
+
setCodeDigits(padded);
|
|
137
|
+
const focusIdx = Math.min(pasted.length, 5);
|
|
138
|
+
queueMicrotask(() => codeInputRefs.current[focusIdx]?.focus());
|
|
139
|
+
if (pasted.length === 6) {
|
|
140
|
+
void completePurchasedActivation(pasted);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
return (_jsxs("div", { className: "flex flex-col items-center text-center p-12", children: [_jsx("div", { className: "mb-8 rounded-2xl bg-blue-50 p-6 ring-1 ring-blue-100", children: _jsx(KeyRound, { className: "h-16 w-12 text-blue-600", strokeWidth: 1.5 }) }), _jsx("h2", { className: "text-3xl font-bold text-gray-900 mb-4 tracking-tight", children: isTrialFlow ? "Start Trial License" : "Enter Activation Code" }), _jsx("p", { className: "text-gray-500 mb-8 max-w-md leading-relaxed", children: isTrialFlow
|
|
144
|
+
? "Complete your trial registration. We will store the signed license in Sitecore Settings."
|
|
145
|
+
: "Enter the one-time code sent to your email. We will verify and store your purchased license." }), success ? (_jsxs("div", { className: "flex flex-col items-center gap-3 text-green-600 animate-in fade-in zoom-in duration-500", children: [_jsx("div", { className: "rounded-full bg-green-100 p-3", children: _jsx(CheckCircle, { className: "h-10 w-10", strokeWidth: 2 }) }), _jsx("span", { className: "font-semibold text-lg", children: "License Activated" })] })) : (_jsxs("form", { className: "w-full max-w-md", onSubmit: (e) => {
|
|
146
|
+
e.preventDefault();
|
|
147
|
+
if (loading)
|
|
148
|
+
return;
|
|
149
|
+
if (isTrialFlow && !trialFormComplete)
|
|
150
|
+
return;
|
|
151
|
+
if (!isTrialFlow && !codeComplete)
|
|
152
|
+
return;
|
|
153
|
+
void handleActivate();
|
|
154
|
+
}, children: [_jsx("div", { className: "space-y-4 mb-6", children: isTrialFlow ? (_jsxs(_Fragment, { children: [_jsx(Input, { id: "name", value: name, onChange: (e) => setName(e.target.value), placeholder: "Your name", className: "h-11 rounded-xl border-gray-200 bg-white focus:ring-blue-500" }), _jsx(Input, { id: "company", value: companyName, onChange: (e) => setCompanyName(e.target.value), placeholder: "Company name", className: "h-11 rounded-xl border-gray-200 bg-white focus:ring-blue-500" })] })) : (_jsx("div", { className: "flex justify-center gap-2", "data-testid": "license-code-inputs", children: codeDigits.map((digit, index) => (_jsx("input", { ref: (el) => {
|
|
155
|
+
codeInputRefs.current[index] = el;
|
|
156
|
+
}, type: "text", inputMode: "numeric", maxLength: 1, "aria-label": `Activation code digit ${index + 1}`, "data-testid": index === 0 ? "license-code-input-0" : undefined, value: digit, onChange: (e) => handleCodeDigitChange(index, e.target.value), onKeyDown: (e) => handleCodeKeyDown(index, e), onPaste: handleCodePaste, disabled: loading, className: "h-14 w-12 rounded-xl border border-gray-200 bg-white text-center text-2xl font-bold text-gray-900 focus:outline-none focus:ring-2 focus:ring-blue-500/30 disabled:opacity-50" }, index))) })) }), error && (_jsxs("div", { className: "mb-8 flex items-start gap-3 rounded-xl border border-red-100 bg-red-50 p-4 text-left max-w-md", children: [_jsx(AlertCircle, { className: "h-5 w-5 shrink-0 text-red-600" }), _jsx("p", { className: "text-sm text-red-800", children: error })] })), _jsxs("div", { className: "flex items-center gap-4", children: [_jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, disabled: loading, className: "rounded-full h-10 px-6 text-xs font-bold uppercase tracking-widest text-gray-400", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), "Back"] }), _jsx(Button, { type: "submit", disabled: loading ||
|
|
157
|
+
(isTrialFlow && !trialFormComplete) ||
|
|
158
|
+
(!isTrialFlow && !codeComplete), className: "px-8 h-10 rounded-full shadow-lg shadow-blue-200 transition-all active:scale-95 min-w-[220px] text-xs font-black uppercase tracking-widest bg-blue-600 hover:bg-blue-700 text-white", children: loading ? (_jsxs(_Fragment, { children: [_jsx(RefreshCw, { className: "mr-2 h-4 w-4 animate-spin" }), "Activating..."] })) : (_jsxs(_Fragment, { children: ["Activate License", _jsx(ArrowRight, { className: "ml-2 h-4 w-4", strokeWidth: 3 })] })) })] })] }))] }));
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=LicenseActivationStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LicenseActivationStep.js","sourceRoot":"","sources":["../../../../src/editor/setup-wizard/steps/LicenseActivationStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type LicenseActivationMode = "trial_form" | "code_entry";
|
|
2
|
+
interface LicenseEmailStepProps {
|
|
3
|
+
onNext: (payload: {
|
|
4
|
+
email: string;
|
|
5
|
+
mode: LicenseActivationMode;
|
|
6
|
+
}) => void;
|
|
7
|
+
onBack: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function LicenseEmailStep({ onNext, onBack }: LicenseEmailStepProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { Button } from "../../../components/ui/button";
|
|
4
|
+
import { Input } from "../../../components/ui/input";
|
|
5
|
+
import { getLicenseStatus, requestLicense, formatRetryTimeSimple, } from "../../../licensing/licenseService";
|
|
6
|
+
import { AlertCircle, ArrowLeft, ArrowRight, KeyRound, RefreshCw, } from "lucide-react";
|
|
7
|
+
export function LicenseEmailStep({ onNext, onBack }) {
|
|
8
|
+
const [email, setEmail] = useState("");
|
|
9
|
+
const [buildDate, setBuildDate] = useState("");
|
|
10
|
+
const [loading, setLoading] = useState(false);
|
|
11
|
+
const [error, setError] = useState(null);
|
|
12
|
+
const [countdownSeconds, setCountdownSeconds] = useState(null);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
let disposed = false;
|
|
15
|
+
getLicenseStatus()
|
|
16
|
+
.then((status) => {
|
|
17
|
+
if (!disposed) {
|
|
18
|
+
setBuildDate(status.buildDate || "");
|
|
19
|
+
}
|
|
20
|
+
})
|
|
21
|
+
.catch(() => {
|
|
22
|
+
// Non-fatal. License request works without build date as well.
|
|
23
|
+
});
|
|
24
|
+
return () => {
|
|
25
|
+
disposed = true;
|
|
26
|
+
};
|
|
27
|
+
}, []);
|
|
28
|
+
// Countdown timer for rate limit (update frequency depends on remaining time)
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (countdownSeconds === null || countdownSeconds <= 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Update every second when < 1 minute, every minute when >= 1 minute
|
|
34
|
+
const updateInterval = countdownSeconds > 60 ? 60000 : 1000;
|
|
35
|
+
const timer = setInterval(() => {
|
|
36
|
+
setCountdownSeconds((prev) => {
|
|
37
|
+
if (prev === null)
|
|
38
|
+
return null;
|
|
39
|
+
const next = prev - (updateInterval === 60000 ? 60 : 1);
|
|
40
|
+
return next > 0 ? next : 0;
|
|
41
|
+
});
|
|
42
|
+
}, updateInterval);
|
|
43
|
+
return () => clearInterval(timer);
|
|
44
|
+
}, [countdownSeconds]);
|
|
45
|
+
const handleContinue = useCallback(async () => {
|
|
46
|
+
if (!email) {
|
|
47
|
+
setError("Please enter your email address.");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
setLoading(true);
|
|
52
|
+
setError(null);
|
|
53
|
+
const response = await requestLicense({
|
|
54
|
+
email,
|
|
55
|
+
// Placeholder values are only used for branching trial-vs-code on this first step.
|
|
56
|
+
name: "Setup",
|
|
57
|
+
companyName: "Setup",
|
|
58
|
+
parheliaBuildDate: buildDate,
|
|
59
|
+
});
|
|
60
|
+
if (response.status === "trial") {
|
|
61
|
+
onNext({ email, mode: "trial_form" });
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (response.status === "code_sent") {
|
|
65
|
+
onNext({ email, mode: "code_entry" });
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (response.status === "trial_expired") {
|
|
69
|
+
setError(response.message ||
|
|
70
|
+
"Trial period expired for this email. Use activation code flow.");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (response.status === "rate_limited") {
|
|
74
|
+
const retrySeconds = response.retryAfterSeconds || 60;
|
|
75
|
+
setCountdownSeconds(retrySeconds);
|
|
76
|
+
setError(`Too many requests for sending a new code. If you already have one, use "I already have a code". Otherwise try again in ${formatRetryTimeSimple(retrySeconds)}.`);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
setError(response.message || "Failed to start license activation.");
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
setError(e?.message || "Failed to contact license service.");
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
setLoading(false);
|
|
86
|
+
}
|
|
87
|
+
}, [email, buildDate, onNext]);
|
|
88
|
+
return (_jsxs("div", { className: "flex flex-col items-center text-center p-12", children: [_jsx("div", { className: "mb-8 rounded-2xl bg-blue-50 p-6 ring-1 ring-blue-100", children: _jsx(KeyRound, { className: "h-16 w-12 text-blue-600", strokeWidth: 1.5 }) }), _jsx("h2", { className: "text-3xl font-bold text-gray-900 mb-4 tracking-tight", children: "License Activation" }), _jsx("p", { className: "text-gray-500 mb-8 max-w-md leading-relaxed", children: "Enter your email to start license activation. We will detect whether to continue with trial registration or one-time activation code." }), _jsxs("form", { className: "w-full max-w-md", onSubmit: (e) => {
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
if (loading)
|
|
91
|
+
return;
|
|
92
|
+
void handleContinue();
|
|
93
|
+
}, children: [_jsx("div", { className: "space-y-4 mb-6", children: _jsx(Input, { id: "email", type: "email", "data-testid": "license-email-input", value: email, onChange: (e) => setEmail(e.target.value), placeholder: "you@company.com", className: "h-11 rounded-xl border-gray-200 bg-white focus:ring-blue-500" }) }), error && (_jsxs("div", { className: "mb-8 flex items-start gap-3 rounded-xl border border-red-100 bg-red-50 p-4 text-left max-w-md", children: [_jsx(AlertCircle, { className: "h-5 w-5 shrink-0 text-red-600" }), _jsxs("div", { className: "flex-1", children: [_jsx("p", { className: "text-sm text-red-800", children: error }), countdownSeconds !== null && countdownSeconds > 0 && (_jsxs("p", { className: "text-xs text-red-700 mt-2 font-medium", children: ["Retry available in ", formatRetryTimeSimple(countdownSeconds)] }))] })] })), _jsxs("div", { className: "flex items-center gap-4", children: [_jsxs(Button, { type: "button", variant: "ghost", onClick: onBack, disabled: loading, className: "rounded-full h-10 px-6 text-xs font-bold uppercase tracking-widest text-gray-400", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), "Back"] }), _jsx(Button, { type: "submit", disabled: loading || !email, className: "px-8 h-10 rounded-full shadow-lg shadow-blue-200 transition-all active:scale-95 min-w-[220px] text-xs font-black uppercase tracking-widest bg-blue-600 hover:bg-blue-700 text-white", children: loading ? (_jsxs(_Fragment, { children: [_jsx(RefreshCw, { className: "mr-2 h-4 w-4 animate-spin" }), "Checking..."] })) : (_jsxs(_Fragment, { children: ["Continue", _jsx(ArrowRight, { className: "ml-2 h-4 w-4", strokeWidth: 3 })] })) })] })] }), _jsx("button", { type: "button", onClick: () => {
|
|
94
|
+
if (!email) {
|
|
95
|
+
setError("Please enter your email address first.");
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
onNext({ email, mode: "code_entry" });
|
|
99
|
+
}, disabled: loading, className: "mt-5 text-xs font-semibold uppercase tracking-wider text-blue-600 hover:text-blue-700 disabled:opacity-50", children: "I already have a code" })] }));
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=LicenseEmailStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LicenseEmailStep.js","sourceRoot":"","sources":["../../../../src/editor/setup-wizard/steps/LicenseEmailStep.tsx"],"names":[],"mappings":"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"}
|