@parhelia/page-wizard 0.1.10745

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.
Files changed (91) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +28 -0
  3. package/dist/PageWizard.d.ts +78 -0
  4. package/dist/PageWizard.js +57 -0
  5. package/dist/PageWizard.js.map +1 -0
  6. package/dist/SplashScreen.d.ts +1 -0
  7. package/dist/SplashScreen.js +110 -0
  8. package/dist/SplashScreen.js.map +1 -0
  9. package/dist/WizardBoxConnector.d.ts +4 -0
  10. package/dist/WizardBoxConnector.js +6 -0
  11. package/dist/WizardBoxConnector.js.map +1 -0
  12. package/dist/WizardSteps.d.ts +8 -0
  13. package/dist/WizardSteps.js +174 -0
  14. package/dist/WizardSteps.js.map +1 -0
  15. package/dist/config.d.ts +2 -0
  16. package/dist/config.js +86 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/service.d.ts +15 -0
  22. package/dist/service.js +29 -0
  23. package/dist/service.js.map +1 -0
  24. package/dist/startPageWizardCommand.d.ts +13 -0
  25. package/dist/startPageWizardCommand.js +31 -0
  26. package/dist/startPageWizardCommand.js.map +1 -0
  27. package/dist/steps/BuildPageStep.d.ts +2 -0
  28. package/dist/steps/BuildPageStep.js +138 -0
  29. package/dist/steps/BuildPageStep.js.map +1 -0
  30. package/dist/steps/CollectStep.d.ts +2 -0
  31. package/dist/steps/CollectStep.js +115 -0
  32. package/dist/steps/CollectStep.js.map +1 -0
  33. package/dist/steps/ComponentTypesSelector.d.ts +13 -0
  34. package/dist/steps/ComponentTypesSelector.js +155 -0
  35. package/dist/steps/ComponentTypesSelector.js.map +1 -0
  36. package/dist/steps/Components.d.ts +9 -0
  37. package/dist/steps/Components.js +89 -0
  38. package/dist/steps/Components.js.map +1 -0
  39. package/dist/steps/ContentStep.d.ts +2 -0
  40. package/dist/steps/ContentStep.js +809 -0
  41. package/dist/steps/ContentStep.js.map +1 -0
  42. package/dist/steps/EditButton.d.ts +8 -0
  43. package/dist/steps/EditButton.js +5 -0
  44. package/dist/steps/EditButton.js.map +1 -0
  45. package/dist/steps/FieldEditor.d.ts +5 -0
  46. package/dist/steps/FieldEditor.js +27 -0
  47. package/dist/steps/FieldEditor.js.map +1 -0
  48. package/dist/steps/FindItemsStep.d.ts +2 -0
  49. package/dist/steps/FindItemsStep.js +294 -0
  50. package/dist/steps/FindItemsStep.js.map +1 -0
  51. package/dist/steps/Generate.d.ts +6 -0
  52. package/dist/steps/Generate.js +31 -0
  53. package/dist/steps/Generate.js.map +1 -0
  54. package/dist/steps/ImagesStep.d.ts +2 -0
  55. package/dist/steps/ImagesStep.js +178 -0
  56. package/dist/steps/ImagesStep.js.map +1 -0
  57. package/dist/steps/LayoutStep.d.ts +2 -0
  58. package/dist/steps/LayoutStep.js +128 -0
  59. package/dist/steps/LayoutStep.js.map +1 -0
  60. package/dist/steps/MetaDataStep.d.ts +2 -0
  61. package/dist/steps/MetaDataStep.js +112 -0
  62. package/dist/steps/MetaDataStep.js.map +1 -0
  63. package/dist/steps/SchottSelectImagesStep.d.ts +2 -0
  64. package/dist/steps/SchottSelectImagesStep.js +55 -0
  65. package/dist/steps/SchottSelectImagesStep.js.map +1 -0
  66. package/dist/steps/SelectStep.d.ts +2 -0
  67. package/dist/steps/SelectStep.js +151 -0
  68. package/dist/steps/SelectStep.js.map +1 -0
  69. package/dist/steps/StructureStep.d.ts +2 -0
  70. package/dist/steps/StructureStep.js +205 -0
  71. package/dist/steps/StructureStep.js.map +1 -0
  72. package/dist/steps/TranslateStep.d.ts +2 -0
  73. package/dist/steps/TranslateStep.js +613 -0
  74. package/dist/steps/TranslateStep.js.map +1 -0
  75. package/dist/steps/schema.d.ts +13 -0
  76. package/dist/steps/schema.js +139 -0
  77. package/dist/steps/schema.js.map +1 -0
  78. package/dist/steps/usePageCreator.d.ts +7 -0
  79. package/dist/steps/usePageCreator.js +285 -0
  80. package/dist/steps/usePageCreator.js.map +1 -0
  81. package/dist/types.d.ts +27 -0
  82. package/dist/types.js +2 -0
  83. package/dist/types.js.map +1 -0
  84. package/dist/usePageWizard.d.ts +22 -0
  85. package/dist/usePageWizard.js +69 -0
  86. package/dist/usePageWizard.js.map +1 -0
  87. package/dist/utils/dataAccessor.d.ts +57 -0
  88. package/dist/utils/dataAccessor.js +323 -0
  89. package/dist/utils/dataAccessor.js.map +1 -0
  90. package/package.json +48 -0
  91. package/styles.css +1 -0
package/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ Parhelia - AI-Powered Editor for Sitecore
2
+
3
+ Copyright © 2025 Canvas REPLY GmbH. All rights reserved.
4
+
5
+ For full license terms and legal notice, please visit:
6
+ https://parhelia.ai/license
7
+
8
+ This software is proprietary and confidential.
package/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # @parhelia/page-wizard
2
+
3
+ Page creation wizard for Parhelia visual editor.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @parhelia/page-wizard
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { PageWizard, usePageWizard } from '@parhelia/page-wizard';
15
+ import '@parhelia/page-wizard/styles.css';
16
+ ```
17
+
18
+ ## Features
19
+
20
+ - Step-by-step page creation
21
+ - Template selection
22
+ - Page configuration
23
+ - Guided setup process
24
+
25
+ ## License
26
+
27
+ See LICENSE file for details.
28
+
@@ -0,0 +1,78 @@
1
+ import { type ItemDescriptor, type Thumbnail } from "@parhelia/core";
2
+ export type Wizard = {
3
+ id: string;
4
+ name: string;
5
+ description: string;
6
+ steps: WizardStep[];
7
+ icon: string;
8
+ schema: PageSchema;
9
+ templateId: string;
10
+ };
11
+ export type PageSchema = {
12
+ placeholders: SchemaPlaceholder[];
13
+ pageFields: SchemaField[];
14
+ };
15
+ export type SchemaComponent = {
16
+ type: string;
17
+ typeId: string;
18
+ fields: SchemaField[];
19
+ placeholders: SchemaPlaceholder[];
20
+ };
21
+ export type SchemaPlaceholder = {
22
+ name: string;
23
+ components: SchemaComponent[];
24
+ };
25
+ export type SchemaField = {
26
+ id: string;
27
+ name: string;
28
+ type: string;
29
+ };
30
+ export type WizardSchemaComponent = {
31
+ type: string;
32
+ fields: WizardSchemaField[];
33
+ validParentPlaceholders?: string[];
34
+ allowedChildrenComponentTypes?: string[];
35
+ allowedOnRoot: boolean;
36
+ };
37
+ export type WizardSchemaField = {
38
+ name: string;
39
+ type: string;
40
+ };
41
+ export type WizardStep = {
42
+ id: string;
43
+ name: string;
44
+ type: string;
45
+ fields: {
46
+ [key: string]: string;
47
+ };
48
+ children?: WizardStep[];
49
+ };
50
+ export type WizardData = {
51
+ [key: string]: any;
52
+ currentItem?: ItemDescriptor;
53
+ };
54
+ export type WizardPageModel = {
55
+ components: WizardPageComponent[];
56
+ name: string;
57
+ metaDescription: string;
58
+ metaKeywords: string;
59
+ message?: string;
60
+ images?: Thumbnail[];
61
+ fields: WizardField[];
62
+ };
63
+ export type WizardPageComponent = {
64
+ id: string;
65
+ name: string;
66
+ type: string;
67
+ fields: WizardField[];
68
+ children?: WizardPageComponent[];
69
+ description: string;
70
+ placeholder?: string;
71
+ };
72
+ export type WizardField = {
73
+ name: string;
74
+ value: string;
75
+ type: string;
76
+ writtenValue?: string;
77
+ };
78
+ export declare function PageWizard(): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { useEditContext, Spinner } from "@parhelia/core";
4
+ import { getWizard } from "./service";
5
+ import { WizardSteps } from "./WizardSteps";
6
+ export function PageWizard() {
7
+ const editContext = useEditContext();
8
+ const [wizard, setWizard] = useState(null);
9
+ const [parentItem, setParentItem] = useState(null);
10
+ const [isLoading, setIsLoading] = useState(true);
11
+ useEffect(() => {
12
+ const wizardId = editContext?.currentWizardId;
13
+ async function loadWizard() {
14
+ if (wizard)
15
+ return;
16
+ if (!wizardId) {
17
+ // If no wizard ID, we can't proceed
18
+ console.log("PageWizard - No wizard ID, cannot load wizard");
19
+ setIsLoading(false);
20
+ return;
21
+ }
22
+ // If no content editor item yet, keep waiting (don't give up)
23
+ if (!editContext?.contentEditorItem) {
24
+ setIsLoading(true);
25
+ return;
26
+ }
27
+ setIsLoading(true);
28
+ try {
29
+ const foundWizard = await getWizard(wizardId, editContext.contentEditorItem.descriptor);
30
+ setWizard(foundWizard);
31
+ setParentItem(editContext.contentEditorItem.descriptor);
32
+ }
33
+ catch (error) {
34
+ console.error("PageWizard: Error loading wizard:", error);
35
+ // If the wizard couldn't be loaded (not found, not valid for context, etc.)
36
+ editContext?.switchView("content-tree", { skipConfirmation: true });
37
+ }
38
+ finally {
39
+ setIsLoading(false);
40
+ }
41
+ }
42
+ loadWizard();
43
+ }, [editContext?.contentEditorItem, editContext?.currentWizardId]);
44
+ // Only switch away if we have no wizard AND no wizard ID (i.e., we're not supposed to be here)
45
+ if (!wizard && !editContext?.currentWizardId) {
46
+ console.log("PageWizard - No wizard and no wizard ID, switching to content-tree");
47
+ editContext?.switchView("content-tree", { skipConfirmation: true });
48
+ return null;
49
+ }
50
+ // If we have a wizard, render it
51
+ if (wizard && parentItem) {
52
+ return _jsx(WizardSteps, { wizard: wizard, parentItem: parentItem });
53
+ }
54
+ // Still waiting for wizard to load
55
+ return (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsx(Spinner, {}) }));
56
+ }
57
+ //# sourceMappingURL=PageWizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageWizard.js","sourceRoot":"","sources":["../src/PageWizard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAU,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAuC,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAwF5C,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,EAAE,eAAe,CAAC;QAE9C,KAAK,UAAU,UAAU;YACvB,IAAI,MAAM;gBAAE,OAAO;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,oCAAoC;gBACpC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,8DAA8D;YAC9D,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC;gBACpC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC,QAAQ,EACR,WAAW,CAAC,iBAAiB,CAAC,UAAU,CACzC,CAAC;gBACF,SAAS,CAAC,WAAW,CAAC,CAAC;gBACvB,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAC1D,4EAA4E;gBAC5E,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAEnE,+FAA+F;IAC/F,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CACT,oEAAoE,CACrE,CAAC;QACF,WAAW,EAAE,UAAU,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAI,CAAC;IACjE,CAAC;IAED,mCAAmC;IACnC,OAAO,CACL,cAAK,SAAS,EAAC,yCAAyC,YACtD,KAAC,OAAO,KAAG,GACP,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function SplashScreen(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { useEditContext, SplashScreen as DefaultSplashScreen, Card, ActionButton, Spinner, AgentProfilesOverview, loadAiProfiles } from "@parhelia/core";
4
+ import { getWizards } from "./service";
5
+ import { Bot } from "lucide-react";
6
+ export function SplashScreen() {
7
+ const editContext = useEditContext();
8
+ const [demoId, setDemoId] = useState(null);
9
+ const [demoWizard, setDemoWizard] = useState(null);
10
+ const [profiles, setProfiles] = useState(null);
11
+ const [loadingProfiles, setLoadingProfiles] = useState(false);
12
+ useEffect(() => {
13
+ if (typeof window !== "undefined") {
14
+ const searchParams = new URLSearchParams(window.location.search);
15
+ const demoIdParam = searchParams.get("demoId");
16
+ setDemoId(demoIdParam);
17
+ }
18
+ }, []);
19
+ useEffect(() => {
20
+ const loadDemoData = async () => {
21
+ if (!demoId || !editContext)
22
+ return;
23
+ try {
24
+ const wizards = await getWizards({
25
+ id: demoId,
26
+ language: "en",
27
+ version: 0,
28
+ });
29
+ if (wizards && wizards.length > 0) {
30
+ setDemoWizard(wizards[0] || null);
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.error("Failed to load demo data:", error);
35
+ }
36
+ };
37
+ loadDemoData();
38
+ }, [demoId]);
39
+ // Load AI agent profiles (same behavior as core splash)
40
+ useEffect(() => {
41
+ const loadProfiles = async () => {
42
+ try {
43
+ if (!editContext)
44
+ return;
45
+ const itemDescriptor = demoId
46
+ ? { id: demoId, language: "en", version: 0 }
47
+ : editContext.currentItemDescriptor || undefined;
48
+ setLoadingProfiles(true);
49
+ const list = await loadAiProfiles(itemDescriptor);
50
+ setProfiles(list || []);
51
+ }
52
+ catch (e) {
53
+ console.error("Failed to load AI profiles on splash:", e);
54
+ setProfiles([]);
55
+ }
56
+ finally {
57
+ setLoadingProfiles(false);
58
+ }
59
+ };
60
+ loadProfiles();
61
+ }, [editContext?.currentItemDescriptor?.id, demoId]);
62
+ const launchDemoWizard = () => {
63
+ if (!demoWizard || !demoId || !editContext)
64
+ return;
65
+ editContext.executeCommand({
66
+ command: editContext.configuration.extensions["page-wizard"].startWizardCommand,
67
+ data: {
68
+ wizard: demoWizard,
69
+ item: {
70
+ id: demoId,
71
+ language: "en",
72
+ version: 0,
73
+ },
74
+ },
75
+ });
76
+ };
77
+ if (!demoId) {
78
+ return _jsx(DefaultSplashScreen, {});
79
+ }
80
+ if (demoId && !demoWizard) {
81
+ return (_jsxs("div", { className: "relative flex h-full w-full bg-gray-100 md:items-center md:justify-center", children: [_jsx(Spinner, {}), _jsx("div", { className: "bg-wizard absolute inset-0" })] }));
82
+ }
83
+ if (demoWizard) {
84
+ return (_jsxs("div", { className: "relative flex h-full w-full bg-gray-100 md:items-center md:justify-center", children: [_jsxs("div", { className: "mt-2 flex flex-col gap-6 p-4 md:mt-6 md:gap-12", children: [_jsxs("div", { className: "z-10", children: [_jsx("h1", { className: "text-xl font-semibold", children: "Your global website" }), _jsx("div", { className: "text-sm text-gray-500", children: "Add a new page or manage existing ones" })] }), _jsx("div", { className: "z-10 flex flex-1 flex-col items-stretch gap-4 md:max-w-screen-xl md:flex-row", children: _jsx("div", { className: "flex flex-1 flex-col gap-4", children: _jsxs("div", { className: "flex-1 flex-col gap-7 rounded-lg bg-white p-6", children: [_jsxs("div", { className: "flex flex-col gap-4 md:flex-row", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("h1", { className: "text-normal flex items-center gap-2 font-bold", children: "Create content like magic" }), _jsx("h2", { className: "mb-2 text-xs text-gray-500", children: "Stunning business pages in no time. Just describe your idea and let the AI-wizard do the magic." })] }), _jsx(ActionButton, { onClick: launchDemoWizard, children: "Launch wizard" })] }), _jsx("div", { className: "bg-wizard-demo mt-3 aspect-[1.75] w-full rounded-lg" })] }) }) }), _jsx(Card, { title: "AI Agent Profiles", description: "Choose a profile to start a new agent", icon: _jsx(Bot, { strokeWidth: 1 }), className: "w-full md:max-w-screen-xl", children: loadingProfiles ? (_jsx("div", { className: "flex h-80 items-center justify-center text-xs text-gray-500", children: "Loading profiles..." })) : profiles && profiles.length > 0 ? (_jsx(AgentProfilesOverview, { profiles: profiles, onSelectProfile: (profileId) => {
85
+ // Switch to agents overview to show both overview and agents panel
86
+ editContext?.switchView("agents-overview");
87
+ editContext?.setShowAgentsPanel?.(true);
88
+ // Longer delay to allow view switch and Agents panel to mount
89
+ setTimeout(() => {
90
+ try {
91
+ const selectedProfile = profiles.find((p) => p.id === profileId);
92
+ window.dispatchEvent(new CustomEvent("editor:addNewAgent", {
93
+ detail: {
94
+ metadata: {
95
+ profile: selectedProfile?.name,
96
+ additionalData: {
97
+ profileId: selectedProfile?.id,
98
+ profileName: selectedProfile?.name,
99
+ },
100
+ },
101
+ },
102
+ }));
103
+ }
104
+ catch { }
105
+ }, 500);
106
+ } })) : (_jsx("div", { className: "flex h-80 items-center justify-center text-xs text-gray-500", children: "No agent profiles available" })) })] }), _jsx("div", { className: "bg-wizard absolute inset-0" })] }));
107
+ }
108
+ return _jsx(DefaultSplashScreen, {});
109
+ }
110
+ //# sourceMappingURL=SplashScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplashScreen.js","sourceRoot":"","sources":["../src/SplashScreen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function WizardBoxConnector({ className, direction, }: {
2
+ className?: string;
3
+ direction?: "horizontal" | "vertical";
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@parhelia/core";
3
+ export function WizardBoxConnector({ className, direction, }) {
4
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: cn("mt-[-3px] mb-[-3px] flex items-center justify-center", className, (!direction || direction === "horizontal") && "md:hidden"), children: _jsx("svg", { width: "40", height: "31", viewBox: "0 0 40 31", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M40 3.04199C33.8405 3.55018 29 8.70936 29 15C29 21.2906 33.8405 26.4498 40 26.958L40 31L-1.35505e-06 31L-1.18021e-06 27C6.62741 27 12 21.6274 12 15C12 8.37258 6.62741 3 -1.31134e-07 3L0 -1.74846e-06L40 0L40 3.04199Z", fill: "white" }) }) }), _jsx("div", { className: cn("mt-6 mr-[-3px] ml-[-3px] hidden", className, (!direction || direction === "horizontal") && "md:block"), children: _jsx("svg", { className: className, width: "31", height: "40", viewBox: "0 0 31 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M3.04199 0C3.55018 6.15949 8.70936 11 15 11C21.2906 11 26.4498 6.1595 26.958 0H31V40H27C27 33.3726 21.6274 28 15 28C8.37258 28 3 33.3726 3 40H0V0H3.04199Z", fill: "white" }) }) })] }));
5
+ }
6
+ //# sourceMappingURL=WizardBoxConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WizardBoxConnector.js","sourceRoot":"","sources":["../src/WizardBoxConnector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,UAAU,kBAAkB,CAAC,EACjC,SAAS,EACT,SAAS,GAIV;IACC,OAAO,CACL,8BACE,cACE,SAAS,EAAE,EAAE,CACX,sDAAsD,EACtD,SAAS,EACT,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,YAAY,CAAC,IAAI,WAAW,CAC1D,YAED,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,YAElC,eACE,CAAC,EAAC,yNAAyN,EAC3N,IAAI,EAAC,OAAO,GACZ,GACE,GACF,EAEN,cACE,SAAS,EAAE,EAAE,CACX,iCAAiC,EACjC,SAAS,EACT,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,YAAY,CAAC,IAAI,UAAU,CACzD,YAED,cACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,YAElC,eACE,CAAC,EAAC,4JAA4J,EAC9J,IAAI,EAAC,OAAO,GACZ,GACE,GACF,IACL,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Wizard } from "./PageWizard";
2
+ import { type ItemDescriptor } from "@parhelia/core";
3
+ interface WizardStepsProps {
4
+ wizard: Wizard;
5
+ parentItem: ItemDescriptor;
6
+ }
7
+ export declare function WizardSteps({ wizard, parentItem }: WizardStepsProps): import("react/jsx-runtime").JSX.Element | null;
8
+ export {};
@@ -0,0 +1,174 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { useEditContext, Button, cn } from "@parhelia/core";
4
+ import { ChevronLeft, ChevronRight, X } from "lucide-react";
5
+ import { useRef, useEffect, useState } from "react";
6
+ import { CollectStep } from "./steps/CollectStep";
7
+ import { LayoutStep } from "./steps/LayoutStep";
8
+ import { BuildPageStep } from "./steps/BuildPageStep";
9
+ import { SelectStep } from "./steps/SelectStep";
10
+ import { ImagesStep } from "./steps/ImagesStep";
11
+ import { ContentStep } from "./steps/ContentStep";
12
+ import { MetaDataStep } from "./steps/MetaDataStep";
13
+ import { FindItemsStep } from "./steps/FindItemsStep";
14
+ import { StructureStep } from "./steps/StructureStep";
15
+ import { TranslateStep } from "./steps/TranslateStep";
16
+ const stepComponents = {
17
+ CollectStep,
18
+ LayoutStep,
19
+ BuildPageStep,
20
+ SelectStep,
21
+ ImagesStep,
22
+ ContentStep,
23
+ MetaDataStep,
24
+ FindItemsStep,
25
+ StructureStep,
26
+ TranslateStep,
27
+ };
28
+ function PreviousButton({ currentStepIndex, wizard, onPrevious, }) {
29
+ if (currentStepIndex === 0)
30
+ return null;
31
+ return (_jsxs(Button, { onClick: onPrevious, variant: "outline", children: [_jsx(ChevronLeft, {}), " ", wizard.steps[currentStepIndex - 1]?.name] }));
32
+ }
33
+ function NextButton({ currentStepIndex, wizard, stepCompleted, onNext, onFinish, }) {
34
+ const isLastStep = currentStepIndex === wizard.steps.length - 1;
35
+ const isDisabled = stepCompleted < currentStepIndex;
36
+ if (isLastStep) {
37
+ return (_jsxs(Button, { disabled: isDisabled, onClick: onFinish, children: ["Finish ", _jsx(ChevronRight, {})] }));
38
+ }
39
+ return (_jsxs(Button, { disabled: isDisabled, onClick: onNext, children: [wizard.steps[currentStepIndex + 1]?.name, _jsx(ChevronRight, {})] }));
40
+ }
41
+ function NavigationSteps({ wizard, currentStepIndex, onStepClick, }) {
42
+ const stepRefs = useRef([]);
43
+ useEffect(() => {
44
+ const activeStepElement = stepRefs.current[currentStepIndex];
45
+ if (activeStepElement) {
46
+ activeStepElement.scrollIntoView({
47
+ behavior: "smooth",
48
+ block: "nearest",
49
+ inline: "center",
50
+ });
51
+ }
52
+ }, [currentStepIndex]);
53
+ return (_jsx("div", { className: "min-w-0 flex-1", children: _jsx("div", { className: "p-2.5 text-xs", children: _jsx("div", { className: "flex items-center gap-3 md:justify-center", children: wizard.steps.map((step, index) => (_jsxs(React.Fragment, { children: [_jsxs("div", { ref: (el) => {
54
+ stepRefs.current[index] = el;
55
+ }, className: cn("flex shrink-0 flex-col items-center gap-1 px-1", currentStepIndex > index && "cursor-pointer"), onClick: () => index < currentStepIndex ? onStepClick(index) : undefined, children: [_jsx("span", { className: cn("relative flex h-6 w-6 shrink-0 items-center justify-center rounded-full border-1 p-2 text-xs font-medium", currentStepIndex === index &&
56
+ "border-theme-secondary text-theme-secondary bg-theme-secondary-light", currentStepIndex < index && "border-gray-400 text-gray-400", currentStepIndex > index &&
57
+ "bg-theme-secondary text-gray-200"), children: currentStepIndex > index ? "✓" : index + 1 }), _jsx("div", { className: cn("max-w-[80px] text-center text-[10px] whitespace-nowrap opacity-100 md:max-w-none md:text-xs", currentStepIndex === index
58
+ ? "text-theme-secondary font-semibold"
59
+ : currentStepIndex >= index
60
+ ? "text-theme-secondary"
61
+ : "text-gray-400"), children: step.name })] }), index < wizard.steps.length - 1 && (_jsx("div", { className: cn(index < currentStepIndex
62
+ ? "border-theme-secondary"
63
+ : "border-gray-400", "mt-[-20px] h-0 w-4 shrink-0 border-t-2 bg-gray-300 md:w-8") }))] }, step.id))) }) }) }));
64
+ }
65
+ function WizardHeader({ wizard, currentStepIndex, onStepClick, onPrevious, onNext, onFinish, onClose, stepCompleted, isMobile, }) {
66
+ return (_jsxs("div", { className: "scrollbar-hide flex w-[100vw] items-center gap-3 overflow-x-auto scroll-smooth border-b border-gray-300 bg-white md:w-auto md:px-4", children: [!isMobile && (_jsx("div", { className: "shrink-0", children: _jsx(PreviousButton, { currentStepIndex: currentStepIndex, wizard: wizard, onPrevious: onPrevious }) })), _jsx(NavigationSteps, { wizard: wizard, currentStepIndex: currentStepIndex, onStepClick: onStepClick }), !isMobile && (_jsx("div", { className: "shrink-0", children: _jsx(NextButton, { currentStepIndex: currentStepIndex, wizard: wizard, stepCompleted: stepCompleted, onNext: onNext, onFinish: onFinish }) })), _jsx("div", { className: "shrink-0", children: _jsx(Button, { onClick: onClose, variant: "outline", size: "sm", children: _jsx(X, { className: "h-4 w-4" }) }) })] }));
67
+ }
68
+ function WizardContent({ currentStep, children }) {
69
+ return (_jsx("div", { className: "relative h-full flex-1 bg-neutral-100", children: _jsxs("div", { className: "h-full p-4 md:p-8", children: [_jsx("div", { className: "relative z-10 h-full", children: _jsxs("div", { className: "flex h-full flex-col gap-6 md:gap-10", children: [_jsx("div", { className: "flex gap-4", children: _jsxs("div", { className: "flex-1 text-neutral-800", children: [_jsx("div", { className: "text-lg font-semibold md:text-xl", children: currentStep?.fields?.title ?? currentStep?.name }), currentStep?.fields?.description && (_jsx("div", { className: "mt-1 text-xs font-light md:text-sm", children: currentStep.fields.description }))] }) }), _jsx("div", { className: "relative flex-1", children: _jsx("div", { className: "absolute inset-0 overflow-auto", children: children }) })] }) }), _jsx("div", { className: "bg-wizard absolute inset-0" })] }) }));
70
+ }
71
+ function MobileNavigationButtons({ currentStepIndex, wizard, stepCompleted, onPrevious, onNext, onFinish, onClose, }) {
72
+ const isLastStep = currentStepIndex === wizard.steps.length - 1;
73
+ const isNextDisabled = stepCompleted < currentStepIndex;
74
+ const showPrevious = currentStepIndex > 0;
75
+ return (_jsx("div", { className: "srcollbar-hide w-[100vw] overflow-x-auto border-t border-gray-300 bg-white px-4 py-3", children: _jsxs("div", { className: "flex gap-3", children: [showPrevious && (_jsxs(Button, { onClick: onPrevious, variant: "outline", className: "flex-1", children: [_jsx(ChevronLeft, { className: "h-4 w-4" }), wizard.steps[currentStepIndex - 1]?.name] })), isLastStep ? (_jsxs(Button, { disabled: isNextDisabled, onClick: onFinish, className: cn("flex-1", !showPrevious && "w-full"), children: ["Finish", _jsx(ChevronRight, { className: "h-4 w-4" })] })) : (_jsxs(Button, { disabled: isNextDisabled, onClick: onNext, className: cn("flex-1", !showPrevious && "w-full"), children: [wizard.steps[currentStepIndex + 1]?.name, _jsx(ChevronRight, { className: "h-4 w-4" })] })), _jsx(Button, { onClick: onClose, variant: "outline", size: "sm", children: _jsx(X, { className: "h-4 w-4" }) })] }) }));
76
+ }
77
+ export function WizardSteps({ wizard, parentItem }) {
78
+ // Local state management instead of pageWizard context
79
+ const [currentStepIndex, setCurrentStepIndex] = useState(0);
80
+ const [data, setData] = useState({
81
+ currentItem: parentItem,
82
+ });
83
+ const [pageModel, setPageModel] = useState({
84
+ components: [],
85
+ name: "",
86
+ metaDescription: "",
87
+ metaKeywords: "",
88
+ fields: [],
89
+ });
90
+ const [internalState, setInternalState] = useState({});
91
+ const [stepCompleted, setStepCompleted] = useState(-1);
92
+ const beforeNextCallbackRef = useRef(null);
93
+ useEffect(() => {
94
+ const handleBeforeUnload = (e) => {
95
+ e.preventDefault();
96
+ e.returnValue = "";
97
+ };
98
+ window.addEventListener("beforeunload", handleBeforeUnload);
99
+ return () => {
100
+ window.removeEventListener("beforeunload", handleBeforeUnload);
101
+ };
102
+ }, []);
103
+ const editContext = useEditContext();
104
+ const isMobile = editContext?.isMobile ?? false;
105
+ const setBeforeNextCallback = (callback) => {
106
+ beforeNextCallbackRef.current = callback;
107
+ };
108
+ const getCurrentStep = () => {
109
+ const step = wizard.steps[currentStepIndex];
110
+ if (!step)
111
+ return null;
112
+ const type = step.type;
113
+ const stepId = step.id;
114
+ if (!type)
115
+ throw new Error("Step type is required");
116
+ // Extract component name by removing "Page Wizard" prefix and spaces
117
+ const componentName = type.replace("Page Wizard ", "").replace(/\s+/g, "");
118
+ // Get the appropriate component based on the extracted name
119
+ const StepComponent = stepComponents[componentName];
120
+ if (StepComponent) {
121
+ return (_jsx(StepComponent, { step: step, data: data, setData: setData, setPageModel: setPageModel, pageModel: pageModel, wizard: wizard, setStepCompleted: (completed) => {
122
+ if (completed) {
123
+ setStepCompleted((prev) => Math.max(prev, currentStepIndex));
124
+ }
125
+ else {
126
+ setStepCompleted(currentStepIndex - 1);
127
+ }
128
+ }, internalState: internalState, setInternalState: setInternalState, parentItem: parentItem }, stepId));
129
+ }
130
+ return null;
131
+ };
132
+ const switchStep = (index) => {
133
+ beforeNextCallbackRef.current = null; // Clear callback when switching steps
134
+ if (typeof document.startViewTransition === "function") {
135
+ document.startViewTransition(() => {
136
+ setCurrentStepIndex(index);
137
+ });
138
+ }
139
+ else {
140
+ setCurrentStepIndex(index);
141
+ }
142
+ };
143
+ const handlePrevious = () => {
144
+ switchStep(currentStepIndex - 1);
145
+ };
146
+ const handleNext = async () => {
147
+ // If there's a beforeNext callback, execute it first
148
+ if (beforeNextCallbackRef.current) {
149
+ console.log("Calling beforeNext callback");
150
+ const canProceed = await beforeNextCallbackRef.current();
151
+ if (!canProceed) {
152
+ return; // Don't proceed if callback returns false
153
+ }
154
+ }
155
+ console.log("Wizard data object: ", data);
156
+ switchStep(currentStepIndex + 1);
157
+ };
158
+ const handleFinish = () => {
159
+ editContext?.setCurrentWizardId(null);
160
+ editContext?.switchView("page-editor", { skipConfirmation: true });
161
+ };
162
+ const handleClose = () => {
163
+ // If wizard was opened from new-page, go to splash screen instead
164
+ const targetView = editContext?.previousViewName === "new-page"
165
+ ? "splash-screen"
166
+ : (editContext?.previousViewName || "content-tree");
167
+ editContext?.switchView(targetView);
168
+ };
169
+ const currentStep = wizard.steps[currentStepIndex];
170
+ if (!currentStep)
171
+ return null;
172
+ return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsx(WizardHeader, { wizard: wizard, currentStepIndex: currentStepIndex, onStepClick: switchStep, onPrevious: handlePrevious, onNext: handleNext, onFinish: handleFinish, onClose: handleClose, stepCompleted: stepCompleted, isMobile: isMobile }), _jsx(WizardContent, { currentStep: currentStep, children: getCurrentStep() }), isMobile && (_jsx(MobileNavigationButtons, { currentStepIndex: currentStepIndex, wizard: wizard, stepCompleted: stepCompleted, onPrevious: handlePrevious, onNext: handleNext, onFinish: handleFinish, onClose: handleClose }))] }));
173
+ }
174
+ //# sourceMappingURL=WizardSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WizardSteps.js","sourceRoot":"","sources":["../src/WizardSteps.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type EditorConfiguration } from "@parhelia/core";
2
+ export declare function configurePageWizards(configuration: EditorConfiguration): EditorConfiguration;
package/dist/config.js ADDED
@@ -0,0 +1,86 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { PageWizard } from "./PageWizard";
3
+ import { CollectStep } from "./steps/CollectStep";
4
+ import { LayoutStep } from "./steps/LayoutStep";
5
+ import { BuildPageStep } from "./steps/BuildPageStep";
6
+ import { SelectStep } from "./steps/SelectStep";
7
+ import { ImagesStep } from "./steps/ImagesStep";
8
+ import { ContentStep } from "./steps/ContentStep";
9
+ import { MetaDataStep } from "./steps/MetaDataStep";
10
+ import { FindItemsStep } from "./steps/FindItemsStep";
11
+ import { StructureStep } from "./steps/StructureStep";
12
+ import { TranslateStep } from "./steps/TranslateStep";
13
+ import { getWizards } from "./service";
14
+ import { startPageWizardCommand } from "./startPageWizardCommand";
15
+ import { PageWizardIcon } from "@parhelia/core";
16
+ export function configurePageWizards(configuration) {
17
+ // Visible logs (not debug) so they appear without Verbose filtering
18
+ try {
19
+ console.log("[PageWizard] before merge - command keys:", Object.keys(configuration?.commands || {}));
20
+ }
21
+ catch { }
22
+ // Mutate in place for robustness (caller might ignore return value)
23
+ const cfg = configuration;
24
+ cfg.commands = {
25
+ ...(cfg.commands || {}),
26
+ [startPageWizardCommand.id]: startPageWizardCommand,
27
+ };
28
+ try {
29
+ console.log("[PageWizard] after merge - command keys:", Object.keys(cfg.commands || {}));
30
+ }
31
+ catch { }
32
+ cfg.extensions = {
33
+ ...(cfg.extensions || {}),
34
+ "page-wizard": {
35
+ getWizards,
36
+ startWizardCommand: startPageWizardCommand,
37
+ stepComponents: {
38
+ CollectStep,
39
+ LayoutStep,
40
+ BuildPageStep,
41
+ SelectStep,
42
+ ImagesStep,
43
+ ContentStep,
44
+ MetaDataStep,
45
+ FindItemsStep,
46
+ StructureStep,
47
+ TranslateStep,
48
+ },
49
+ },
50
+ };
51
+ // Ensure the view is present; avoid duplicates
52
+ const views = cfg.editor?.views || [];
53
+ const hasWizardView = views.some((v) => v?.name === "page-wizard");
54
+ if (!hasWizardView) {
55
+ cfg.editor = {
56
+ ...(cfg.editor || {}),
57
+ views: [
58
+ ...views,
59
+ {
60
+ name: "page-wizard",
61
+ title: "Page Wizard",
62
+ icon: _jsx(PageWizardIcon, {}),
63
+ defaultCenterPanelView: _jsx(PageWizard, {}),
64
+ hideViewSelector: true,
65
+ visible: (editContext) => !!editContext.currentWizardId || editContext.viewName === "page-wizard",
66
+ headerTitle: () => "Page Wizard",
67
+ beforeClose: async (editContext) => {
68
+ return new Promise((resolve) => {
69
+ editContext.confirm({
70
+ showCancel: true,
71
+ showAccept: true,
72
+ header: "Close Page Wizard",
73
+ message: "Are you sure you want to close the page wizard?",
74
+ accept: () => resolve(true),
75
+ reject: () => resolve(false),
76
+ });
77
+ });
78
+ },
79
+ disableAgentsPanel: true,
80
+ },
81
+ ],
82
+ };
83
+ }
84
+ return configuration;
85
+ }
86
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { configurePageWizards } from "./config";
2
+ export type { PageWizardExtension } from "./types";
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { configurePageWizards } from "./config";
2
+ //# sourceMappingURL=index.js.map