@parhelia/page-wizard 0.1.11455 → 0.1.11458

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 (93) hide show
  1. package/dist/SplashScreen.d.ts +1 -0
  2. package/dist/SplashScreen.js +110 -0
  3. package/dist/SplashScreen.js.map +1 -0
  4. package/dist/dist/PageWizard.d.ts +78 -0
  5. package/dist/dist/PageWizard.js +57 -0
  6. package/dist/dist/PageWizard.js.map +1 -0
  7. package/dist/dist/SplashScreen.d.ts +1 -0
  8. package/dist/dist/SplashScreen.js +110 -0
  9. package/dist/dist/SplashScreen.js.map +1 -0
  10. package/dist/dist/WizardBoxConnector.d.ts +4 -0
  11. package/dist/dist/WizardBoxConnector.js +6 -0
  12. package/dist/dist/WizardBoxConnector.js.map +1 -0
  13. package/dist/dist/WizardSteps.d.ts +8 -0
  14. package/dist/dist/WizardSteps.js +174 -0
  15. package/dist/dist/WizardSteps.js.map +1 -0
  16. package/dist/dist/config.d.ts +2 -0
  17. package/dist/dist/config.js +86 -0
  18. package/dist/dist/config.js.map +1 -0
  19. package/dist/dist/index.d.ts +2 -0
  20. package/dist/dist/index.js +2 -0
  21. package/dist/dist/index.js.map +1 -0
  22. package/dist/dist/service.d.ts +15 -0
  23. package/dist/dist/service.js +29 -0
  24. package/dist/dist/service.js.map +1 -0
  25. package/dist/dist/startPageWizardCommand.d.ts +13 -0
  26. package/dist/dist/startPageWizardCommand.js +31 -0
  27. package/dist/dist/startPageWizardCommand.js.map +1 -0
  28. package/dist/dist/steps/BuildPageStep.d.ts +2 -0
  29. package/dist/dist/steps/BuildPageStep.js +138 -0
  30. package/dist/dist/steps/BuildPageStep.js.map +1 -0
  31. package/dist/dist/steps/CollectStep.d.ts +2 -0
  32. package/dist/dist/steps/CollectStep.js +115 -0
  33. package/dist/dist/steps/CollectStep.js.map +1 -0
  34. package/dist/dist/steps/ComponentTypesSelector.d.ts +13 -0
  35. package/dist/dist/steps/ComponentTypesSelector.js +155 -0
  36. package/dist/dist/steps/ComponentTypesSelector.js.map +1 -0
  37. package/dist/dist/steps/Components.d.ts +9 -0
  38. package/dist/dist/steps/Components.js +89 -0
  39. package/dist/dist/steps/Components.js.map +1 -0
  40. package/dist/dist/steps/ContentStep.d.ts +2 -0
  41. package/dist/dist/steps/ContentStep.js +808 -0
  42. package/dist/dist/steps/ContentStep.js.map +1 -0
  43. package/dist/dist/steps/EditButton.d.ts +8 -0
  44. package/dist/dist/steps/EditButton.js +5 -0
  45. package/dist/dist/steps/EditButton.js.map +1 -0
  46. package/dist/dist/steps/FieldEditor.d.ts +5 -0
  47. package/dist/dist/steps/FieldEditor.js +27 -0
  48. package/dist/dist/steps/FieldEditor.js.map +1 -0
  49. package/dist/dist/steps/FindItemsStep.d.ts +2 -0
  50. package/dist/dist/steps/FindItemsStep.js +294 -0
  51. package/dist/dist/steps/FindItemsStep.js.map +1 -0
  52. package/dist/dist/steps/Generate.d.ts +6 -0
  53. package/dist/dist/steps/Generate.js +31 -0
  54. package/dist/dist/steps/Generate.js.map +1 -0
  55. package/dist/dist/steps/ImagesStep.d.ts +2 -0
  56. package/dist/dist/steps/ImagesStep.js +178 -0
  57. package/dist/dist/steps/ImagesStep.js.map +1 -0
  58. package/dist/dist/steps/LayoutStep.d.ts +2 -0
  59. package/dist/dist/steps/LayoutStep.js +128 -0
  60. package/dist/dist/steps/LayoutStep.js.map +1 -0
  61. package/dist/dist/steps/MetaDataStep.d.ts +2 -0
  62. package/dist/dist/steps/MetaDataStep.js +112 -0
  63. package/dist/dist/steps/MetaDataStep.js.map +1 -0
  64. package/dist/dist/steps/SchottSelectImagesStep.d.ts +2 -0
  65. package/dist/dist/steps/SchottSelectImagesStep.js +55 -0
  66. package/dist/dist/steps/SchottSelectImagesStep.js.map +1 -0
  67. package/dist/dist/steps/SelectStep.d.ts +2 -0
  68. package/dist/dist/steps/SelectStep.js +151 -0
  69. package/dist/dist/steps/SelectStep.js.map +1 -0
  70. package/dist/dist/steps/StructureStep.d.ts +2 -0
  71. package/dist/dist/steps/StructureStep.js +205 -0
  72. package/dist/dist/steps/StructureStep.js.map +1 -0
  73. package/dist/dist/steps/TranslateStep.d.ts +2 -0
  74. package/dist/dist/steps/TranslateStep.js +613 -0
  75. package/dist/dist/steps/TranslateStep.js.map +1 -0
  76. package/dist/dist/steps/schema.d.ts +13 -0
  77. package/dist/dist/steps/schema.js +139 -0
  78. package/dist/dist/steps/schema.js.map +1 -0
  79. package/dist/dist/steps/usePageCreator.d.ts +7 -0
  80. package/dist/dist/steps/usePageCreator.js +285 -0
  81. package/dist/dist/steps/usePageCreator.js.map +1 -0
  82. package/dist/dist/types.d.ts +27 -0
  83. package/dist/dist/types.js +2 -0
  84. package/dist/dist/types.js.map +1 -0
  85. package/dist/dist/usePageWizard.d.ts +22 -0
  86. package/dist/dist/usePageWizard.js +69 -0
  87. package/dist/dist/usePageWizard.js.map +1 -0
  88. package/dist/dist/utils/dataAccessor.d.ts +57 -0
  89. package/dist/dist/utils/dataAccessor.js +323 -0
  90. package/dist/dist/utils/dataAccessor.js.map +1 -0
  91. package/dist/steps/Generate.js +24 -24
  92. package/dist/utils/dataAccessor.js +6 -6
  93. package/package.json +1 -1
@@ -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";
@@ -0,0 +1,2 @@
1
+ export { configurePageWizards } from "./config";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { ItemDescriptor, type EditContextType } from "@parhelia/core";
2
+ import { Wizard } from "./PageWizard";
3
+ export declare function getWizards(parentItem: ItemDescriptor): Promise<Wizard[]>;
4
+ export declare function getWizard(wizardId: string, parentItem: ItemDescriptor): Promise<Wizard>;
5
+ export declare function createWizardAiContext({ editContext, }: {
6
+ editContext: EditContextType;
7
+ }): {
8
+ endpoint: string;
9
+ promptData: {
10
+ itemid: string | undefined;
11
+ language: string | undefined;
12
+ version: number | undefined;
13
+ };
14
+ };
15
+ export declare function wipeComponents(pageItem: ItemDescriptor): Promise<import("@parhelia/core").ExecutionResult<unknown>>;
@@ -0,0 +1,29 @@
1
+ import { post } from "@parhelia/core";
2
+ export async function getWizards(parentItem) {
3
+ const result = await post("/parhelia/page-wizard/wizards", parentItem);
4
+ return result.data;
5
+ }
6
+ export async function getWizard(wizardId, parentItem) {
7
+ const result = await post("/parhelia/page-wizard/getWizard", {
8
+ wizardId,
9
+ parentItem,
10
+ });
11
+ return result.data;
12
+ }
13
+ export function createWizardAiContext({ editContext, }) {
14
+ const aiPromptUrl = "/parhelia/page-wizard/prompt";
15
+ return {
16
+ // configuration.services.editorService.baseUrl +
17
+ endpoint: aiPromptUrl,
18
+ promptData: {
19
+ itemid: editContext.currentItemDescriptor?.id,
20
+ language: editContext.currentItemDescriptor?.language,
21
+ version: editContext.currentItemDescriptor?.version,
22
+ },
23
+ };
24
+ }
25
+ export async function wipeComponents(pageItem) {
26
+ const result = await post("/parhelia/page-wizard/wipePage", pageItem);
27
+ return result;
28
+ }
29
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAwC,MAAM,gBAAgB,CAAC;AAI5E,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,IAAqB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,UAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iCAAiC,EAAE;QAC3D,QAAQ;QACR,UAAU;KACX,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAc,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,WAAW,GAGZ;IACC,MAAM,WAAW,GAAG,8BAA8B,CAAC;IAEnD,OAAO;QACL,iDAAiD;QACjD,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE;YACV,MAAM,EAAE,WAAW,CAAC,qBAAqB,EAAE,EAAE;YAC7C,QAAQ,EAAE,WAAW,CAAC,qBAAqB,EAAE,QAAQ;YACrD,OAAO,EAAE,WAAW,CAAC,qBAAqB,EAAE,OAAO;SACpD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAwB;IAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CommandContext, ItemDescriptor } from "@parhelia/core";
2
+ import { Wizard } from "./PageWizard";
3
+ export declare const startPageWizardCommand: {
4
+ id: string;
5
+ label: string;
6
+ icon: string;
7
+ execute: (context: CommandContext<{
8
+ wizard?: Wizard;
9
+ wizardId?: string;
10
+ item: ItemDescriptor;
11
+ }>) => Promise<void>;
12
+ disabled: () => boolean;
13
+ };
@@ -0,0 +1,31 @@
1
+ export const startPageWizardCommand = {
2
+ id: "startPageWizard",
3
+ label: "Start Wizard",
4
+ icon: "pi pi-magic",
5
+ execute: async (context) => {
6
+ console.log("startPageWizardCommand");
7
+ if (!context.data?.item)
8
+ return;
9
+ await context.editContext.loadItem(context.data.item);
10
+ // Prefer fast navigation: set wizard id immediately and let the view load details
11
+ const wizardId = context.data?.wizard?.id || context.data?.wizardId;
12
+ if (wizardId) {
13
+ context.editContext.setCurrentWizardId(wizardId);
14
+ context.editContext.switchView("page-wizard");
15
+ return;
16
+ }
17
+ // Backward compatibility: if neither provided, attempt to fetch via service (best effort)
18
+ try {
19
+ if (context.data?.wizard) {
20
+ context.editContext.setCurrentWizardId(context.data.wizard.id);
21
+ context.editContext.switchView("page-wizard");
22
+ return;
23
+ }
24
+ }
25
+ catch { }
26
+ },
27
+ disabled: () => {
28
+ return false;
29
+ },
30
+ };
31
+ //# sourceMappingURL=startPageWizardCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startPageWizardCommand.js","sourceRoot":"","sources":["../src/startPageWizardCommand.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,KAAK,EACZ,OAAqF,EACrF,EAAE;QACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;YAAE,OAAO;QAEhC,MAAM,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,kFAAkF;QAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { StepComponentProps } from "../types";
2
+ export declare function BuildPageStep({ data, setData, parentItem, wizard, setStepCompleted, }: StepComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,138 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Splitter, PageViewer, getChildren, ActionButton, useEditContext } from "@parhelia/core";
3
+ import { useEffect, useState } from "react";
4
+ import { useDebouncedCallback } from "use-debounce";
5
+ import Generate from "./Generate";
6
+ import { usePageCreator } from "./usePageCreator";
7
+ export function BuildPageStep({ data, setData, parentItem, wizard, setStepCompleted, }) {
8
+ const editContext = useEditContext();
9
+ const [createdPageDescriptor, setCreatedPageDescriptor] = useState();
10
+ const [pageLoaded, setPageLoaded] = useState(false);
11
+ const [fullParentItem, setFullParentItem] = useState();
12
+ const [isBuilding, setIsBuilding] = useState(false);
13
+ const [validationMessage, setValidationMessage] = useState();
14
+ useEffect(() => {
15
+ if (createdPageDescriptor &&
16
+ createdPageDescriptor.id === editContext?.page?.item?.descriptor.id)
17
+ setPageLoaded(true);
18
+ }, [editContext?.page]);
19
+ useEffect(() => {
20
+ const loadParentItem = async () => {
21
+ if (!parentItem)
22
+ return;
23
+ const item = await editContext?.itemsRepository.getItem(parentItem);
24
+ setFullParentItem(item);
25
+ };
26
+ loadParentItem();
27
+ }, [parentItem]);
28
+ useEffect(() => {
29
+ const buildComponents = async () => {
30
+ try {
31
+ console.log("Building components", createdPageDescriptor, editContext?.page);
32
+ // Recursively create components from page model
33
+ if (pageModel.components && pageModel.components.length > 0) {
34
+ await pageCreator.createComponentsRecursively(pageModel.components, "root");
35
+ }
36
+ editContext?.requestRefresh();
37
+ console.log("Components built", createdPageDescriptor, editContext?.page);
38
+ }
39
+ finally {
40
+ setIsBuilding(false);
41
+ }
42
+ };
43
+ if (pageLoaded) {
44
+ buildComponents();
45
+ }
46
+ }, [pageLoaded]);
47
+ // Initialize pageModel if it doesn't exist
48
+ const pageModel = data.pageModel || {
49
+ components: [],
50
+ name: "",
51
+ metaDescription: "",
52
+ };
53
+ // Handle input changes
54
+ const handleInputChange = (field, value) => {
55
+ const updatedPageModel = {
56
+ ...pageModel,
57
+ [field]: value,
58
+ };
59
+ setData({
60
+ ...data,
61
+ pageModel: updatedPageModel,
62
+ });
63
+ };
64
+ const checkName = async () => {
65
+ if (!parentItem)
66
+ return;
67
+ let valid = !!wizard.templateId && pageModel.name.trim().length >= 3;
68
+ if (valid) {
69
+ const children = await getChildren(parentItem.id, editContext?.sessionId ?? "", [], false, editContext?.contentEditorItem?.language || "en");
70
+ if (children.find((x) => x.name.toLocaleLowerCase() ===
71
+ pageModel.name.trim().toLocaleLowerCase())) {
72
+ valid = false;
73
+ setValidationMessage("A page with this name already exists.");
74
+ }
75
+ }
76
+ else {
77
+ if (pageModel.name.trim().length > 0 && pageModel.name.trim().length < 3)
78
+ setValidationMessage("Name is too short.");
79
+ else
80
+ setValidationMessage(undefined);
81
+ }
82
+ if (valid)
83
+ setValidationMessage(undefined);
84
+ return valid;
85
+ };
86
+ const checkNameValidDebounced = useDebouncedCallback(async () => checkName(), 500);
87
+ useEffect(() => {
88
+ checkNameValidDebounced();
89
+ }, [pageModel.name]);
90
+ const createPage = () => {
91
+ setTimeout(async () => {
92
+ if (!editContext || !parentItem)
93
+ return;
94
+ try {
95
+ if (!(await checkName()))
96
+ return;
97
+ setIsBuilding(true);
98
+ const result = await editContext.operations.createItem({
99
+ ...parentItem,
100
+ language: data.language || parentItem.language || "en",
101
+ }, wizard.templateId, pageModel.name);
102
+ if (!result)
103
+ return;
104
+ // Ensure the result has the correct language
105
+ const resultWithLanguage = {
106
+ ...result,
107
+ language: data.language || parentItem.language || "en",
108
+ version: 0,
109
+ };
110
+ editContext?.loadItem(resultWithLanguage, { addToBrowseHistory: true });
111
+ setCreatedPageDescriptor(resultWithLanguage);
112
+ console.log("Page created", result, "Page model", pageModel);
113
+ setStepCompleted(true);
114
+ }
115
+ catch (error) {
116
+ console.error("Error creating page", error);
117
+ setIsBuilding(false);
118
+ }
119
+ }, 1);
120
+ };
121
+ const pageCreator = usePageCreator(createdPageDescriptor, wizard, (pageModel) => setData({ ...data, pageModel }));
122
+ const settingsPanel = {
123
+ name: "settings",
124
+ defaultSize: 450,
125
+ collapsible: false,
126
+ content: (_jsxs("div", { className: "pr-6", children: [_jsxs("div", { className: "mb-4", children: [_jsx("div", { className: "mb-1 text-sm font-medium", children: "Target Parent Item" }), _jsx("div", { className: "mb-4 break-after-all text-xs", children: fullParentItem?.path })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { htmlFor: "pageName", className: "mb-1 block text-sm font-medium", children: "Page Name" }), _jsx("input", { id: "pageName", type: "text", className: "w-full rounded border p-2 text-sm", value: pageModel.name, onChange: (e) => handleInputChange("name", e.target.value), placeholder: "Enter page name" }), validationMessage && (_jsx("div", { className: "mt-2 text-sm text-red-500", children: validationMessage }))] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { htmlFor: "metaDescription", className: "mb-1 block text-sm font-medium", children: "Meta Description" }), _jsx("textarea", { id: "metaDescription", className: "min-h-[100px] w-full rounded border p-2 text-sm", value: pageModel.metaDescription, onChange: (e) => handleInputChange("metaDescription", e.target.value), placeholder: "Enter meta description" })] }), _jsx(ActionButton, { disabled: isBuilding || !!validationMessage, className: "w-full flex-1", onClick: () => {
127
+ createPage();
128
+ }, isLoading: isBuilding, loadingText: "Working", children: "Create Page" })] })),
129
+ };
130
+ const contentPanel = {
131
+ name: "content",
132
+ defaultSize: "auto",
133
+ collapsible: false,
134
+ content: (_jsxs(_Fragment, { children: [_jsx("div", { className: pageLoaded ? "h-full" : "h-0", children: _jsx(PageViewer, { name: "single", compareView: false, showFormEditor: false, followEditsDefault: true, pageViewContext: editContext.pageView }) }), isBuilding && !pageLoaded && (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsx(Generate, { title: "Building page..." }) }))] })),
135
+ };
136
+ return _jsx(Splitter, { panels: [settingsPanel, contentPanel] });
137
+ }
138
+ //# sourceMappingURL=BuildPageStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildPageStep.js","sourceRoot":"","sources":["../../src/steps/BuildPageStep.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { StepComponentProps } from "../types";
2
+ export declare function CollectStep({ step, data, setData, setStepCompleted, }: StepComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,115 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Input } from "@parhelia/core";
3
+ import { useEffect, useRef, useState } from "react";
4
+ import { ActionButton, UploadIcon, DocumentIcon, Spinner, Card, Button, Textarea } from "@parhelia/core";
5
+ import { LinkIcon } from "lucide-react";
6
+ import { evaluateDataExpression, setDataProperty } from "../utils/dataAccessor";
7
+ export function CollectStep({ step, data, setData, setStepCompleted, }) {
8
+ const [isUploading, setIsUploading] = useState(false);
9
+ const [isScraping, setIsScraping] = useState(false);
10
+ const [error, setError] = useState(null);
11
+ const [scrapeError, setScrapeError] = useState(null);
12
+ const [scrapeUrl, setScrapeUrl] = useState(null);
13
+ const fileInputRef = useRef(null);
14
+ // Get the property name from the step configuration
15
+ const propertyName = step?.fields.propertyName || "htmlContent";
16
+ // Extract configuration from step
17
+ const enableUpload = step?.fields.enableUpload === "1";
18
+ const enableScrape = step?.fields.enableScrape === "1";
19
+ const enableText = step?.fields.enableText === "1";
20
+ const uploadTitle = step?.fields.uploadTitle || "Upload a file (optional)";
21
+ const uploadDescription = step?.fields.uploadDescription || "Upload a file to the page";
22
+ const scrapeTitle = step?.fields.scrapeTitle || "Scrape page from URL (optional)";
23
+ const scrapeDescription = step?.fields.scrapeDescription ||
24
+ "Only scrape websites you have permission to access. You are responsible for complying with the website's terms of service and all applicable laws.";
25
+ const textTitle = step?.fields.textTitle || "Text";
26
+ const textDescription = step?.fields.textDescription ||
27
+ "Provide the text you want to use for the page";
28
+ const handleDrop = (e) => {
29
+ e.preventDefault();
30
+ e.stopPropagation();
31
+ if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
32
+ uploadFile(e.dataTransfer.files[0]);
33
+ setError(null);
34
+ }
35
+ };
36
+ useEffect(() => {
37
+ const { value: currentContent } = evaluateDataExpression(propertyName, data);
38
+ if (currentContent) {
39
+ setStepCompleted(true);
40
+ }
41
+ }, [data, propertyName]);
42
+ const uploadFile = async (file) => {
43
+ if (!file) {
44
+ setError("Please select a file first");
45
+ return;
46
+ }
47
+ try {
48
+ setIsUploading(true);
49
+ setError(null);
50
+ const formData = new FormData();
51
+ formData.append("uploadedFile", file);
52
+ const response = await fetch("/parhelia/page-wizard/convertFile", {
53
+ method: "POST",
54
+ body: formData,
55
+ });
56
+ if (!response.ok) {
57
+ throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
58
+ }
59
+ const htmlContent = await response.text();
60
+ setData((prev) => setDataProperty(propertyName, htmlContent, prev));
61
+ }
62
+ catch (err) {
63
+ setError(err instanceof Error ? err.message : "Unknown error occurred");
64
+ }
65
+ finally {
66
+ setIsUploading(false);
67
+ }
68
+ };
69
+ const triggerFileInput = () => {
70
+ fileInputRef.current ? (fileInputRef.current.value = "") : "";
71
+ fileInputRef.current?.click();
72
+ };
73
+ const handleScrape = async (e) => {
74
+ e.preventDefault();
75
+ try {
76
+ setScrapeError(null);
77
+ if (!scrapeUrl) {
78
+ setScrapeError("Please enter a URL first");
79
+ return;
80
+ }
81
+ setIsScraping(true);
82
+ const response = await fetch("/parhelia/page-wizard/scrape", {
83
+ method: "POST",
84
+ body: JSON.stringify({ url: scrapeUrl }),
85
+ headers: {
86
+ "Content-Type": "application/json",
87
+ },
88
+ });
89
+ if (!response.ok) {
90
+ throw new Error(`Scraping failed: ${response.status} ${response.statusText}`);
91
+ }
92
+ const htmlContent = await response.text();
93
+ setData((prev) => setDataProperty(propertyName, htmlContent, prev));
94
+ }
95
+ catch (err) {
96
+ setScrapeError(err instanceof Error ? err.message : "Unknown error occurred");
97
+ }
98
+ finally {
99
+ setIsScraping(false);
100
+ }
101
+ };
102
+ // Get current content value
103
+ const { value: currentContent } = evaluateDataExpression(propertyName, data);
104
+ return (_jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [enableUpload && (_jsxs(Card, { icon: _jsx(UploadIcon, { className: "text-theme-secondary" }), title: uploadTitle, description: uploadDescription, children: [error && _jsx("div", { className: "mt-2 text-sm text-red-500", children: error }), _jsx("div", { className: `border-theme-secondary flex flex-col items-center justify-center border border-dashed p-8 ${isUploading ? "" : "bg-white"}`, onDrop: handleDrop, onDragOver: (e) => e.preventDefault(), children: _jsxs("div", { className: "flex flex-col items-center justify-center gap-1 text-center text-sm", children: [!isUploading && (_jsxs("svg", { width: "49", height: "48", viewBox: "0 0 49 48", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("rect", { x: "0.666992", width: "48", height: "48", rx: "24", fill: "#F6EEFF" }), _jsx("path", { d: "M32.604 20.68C32.594 20.648 32.583 20.6167 32.571 20.586C32.5235 20.4775 32.4572 20.3783 32.375 20.293L26.375 14.293C26.2897 14.2108 26.1905 14.1445 26.082 14.097C26.052 14.083 26.02 14.075 25.988 14.064C25.9043 14.0356 25.8172 14.0185 25.729 14.013C25.707 14.011 25.688 14 25.667 14H18.667C17.564 14 16.667 14.897 16.667 16V32C16.667 33.103 17.564 34 18.667 34H30.667C31.77 34 32.667 33.103 32.667 32V21C32.667 20.979 32.656 20.96 32.654 20.938C32.6487 20.8502 32.6319 20.7634 32.604 20.68ZM29.253 20H26.667V17.414L29.253 20ZM18.667 32V16H24.667V21C24.667 21.2652 24.7723 21.5196 24.9599 21.7071C25.1474 21.8946 25.4018 22 25.667 22H30.667L30.669 32H18.667Z", fill: "#9650FB" })] })), isUploading && _jsx(Spinner, {}), !isUploading && (_jsxs(_Fragment, { children: [_jsx("input", { ref: fileInputRef, type: "file", multiple: true, accept: ".pdf,.doc,.docx", style: { display: "none" }, onChange: (e) => {
105
+ const file = e.target.files?.[0];
106
+ if (file) {
107
+ uploadFile(file);
108
+ }
109
+ }, onDrop: handleDrop, disabled: isUploading }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: `text-sm font-medium ${isUploading
110
+ ? "text-gray-500"
111
+ : "text-theme-secondary cursor-pointer underline"} `, onClick: triggerFileInput, children: "Click" }), "or drag & drop to upload"] })] }))] }) })] })), enableScrape && (_jsx(Card, { icon: _jsx(LinkIcon, { className: "text-theme-secondary" }), title: scrapeTitle, description: scrapeDescription, collapsible: "mobileOnly", defaultCollapsed: "mobileOnly", children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Input, { type: "text", className: "rounded-md border border-gray-300 px-3 py-2", onChange: (e) => setScrapeUrl(e.target.value) }), scrapeError && (_jsx("div", { className: "mt-2 text-sm text-red-500", children: scrapeError })), _jsx("div", { className: "flex gap-2", children: _jsx(ActionButton, { type: "submit", isLoading: isScraping, onClick: handleScrape, loadingText: "Scraping...", children: "Scrape" }) })] }) })), enableText && (_jsxs(Card, { icon: _jsx(DocumentIcon, { className: "text-theme-secondary" }), title: textTitle, description: textDescription, className: `${!enableUpload && !enableScrape ? "md:col-span-2" : enableUpload && enableScrape ? "md:col-span-2" : ""}`, children: [_jsx(Textarea, { className: "border-theme-secondary max-h-full w-full text-sm", value: currentContent || "", rows: 20, onChange: (e) => setData((prev) => setDataProperty(propertyName, e.target.value || "", prev)) }), step.children && step.children.length > 0 && (_jsxs("div", { children: [_jsx("div", { className: "mt-2 mb-1 text-sm font-semibold", children: "Examples:" }), _jsx("div", { className: "flex flex-wrap gap-2", children: step.children.map((child) => (_jsx(Button, { variant: "outline", onClick: () => {
112
+ setData((prev) => setDataProperty(propertyName, child.fields.text, prev));
113
+ }, children: child.fields.title }, child.id))) })] }))] }))] }));
114
+ }
115
+ //# sourceMappingURL=CollectStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectStep.js","sourceRoot":"","sources":["../../src/steps/CollectStep.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,gBAAgB,GACG;IACnB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEpD,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC;IAEhE,kCAAkC;IAClC,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,KAAK,GAAG,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,EAAE,MAAM,CAAC,YAAY,KAAK,GAAG,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,CAAC,UAAU,KAAK,GAAG,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,0BAA0B,CAAC;IAC3E,MAAM,iBAAiB,GACrB,IAAI,EAAE,MAAM,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;IAEhE,MAAM,WAAW,GACf,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,iCAAiC,CAAC;IAChE,MAAM,iBAAiB,GACrB,IAAI,EAAE,MAAM,CAAC,iBAAiB;QAC9B,oJAAoJ,CAAC;IAEvJ,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;IACnD,MAAM,eAAe,GACnB,IAAI,EAAE,MAAM,CAAC,eAAe;QAC5B,+CAA+C,CAAC;IAElD,MAAM,UAAU,GAAG,CAAC,CAAkC,EAAE,EAAE;QACxD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,sBAAsB,CACtD,YAAY,EACZ,IAAI,CACL,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAEzB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAU,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAEtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,mCAAmC,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,kBAAkB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC3D,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,CAAkB,EAAE,EAAE;QAChD,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,CAAC;YAErB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,cAAc,CAAC,0BAA0B,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,8BAA8B,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBACxC,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,oBAAoB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC7D,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE1C,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CACjD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CACZ,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAC9D,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAE7E,OAAO,CACL,eAAK,SAAS,EAAC,uCAAuC,aACnD,YAAY,IAAI,CACf,MAAC,IAAI,IACH,IAAI,EAAE,KAAC,UAAU,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACrD,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,iBAAiB,aAE7B,KAAK,IAAI,cAAK,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAO,EAClE,cACE,SAAS,EAAE,6FACT,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UACrB,EAAE,EACF,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,YAErC,eAAK,SAAS,EAAC,qEAAqE,aACjF,CAAC,WAAW,IAAI,CACf,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,aAElC,eACE,CAAC,EAAC,UAAU,EACZ,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,EAAE,EAAC,IAAI,EACP,IAAI,EAAC,SAAS,GACd,EACF,eACE,CAAC,EAAC,opBAAopB,EACtpB,IAAI,EAAC,SAAS,GACd,IACE,CACP,EACA,WAAW,IAAI,KAAC,OAAO,KAAG,EAC1B,CAAC,WAAW,IAAI,CACf,8BACE,gBACE,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,QAAQ,QACR,MAAM,EAAC,iBAAiB,EACxB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gDACd,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gDACjC,IAAI,IAAI,EAAE,CAAC;oDACT,UAAU,CAAC,IAAI,CAAC,CAAC;gDACnB,CAAC;4CACH,CAAC,EACD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,WAAW,GACrB,EACF,eAAK,SAAS,EAAC,yBAAyB,aACtC,eACE,SAAS,EAAE,uBACT,WAAW;wDACT,CAAC,CAAC,eAAe;wDACjB,CAAC,CAAC,+CACN,GAAG,EACH,OAAO,EAAE,gBAAgB,sBAGpB,gCAEH,IACL,CACJ,IACG,GACF,IACD,CACR,EACA,YAAY,IAAI,CACf,KAAC,IAAI,IACH,IAAI,EAAE,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACnD,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAC,YAAY,EACxB,gBAAgB,EAAC,YAAY,YAE7B,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,KAAK,IACJ,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,6CAA6C,EACvD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC7C,EACD,WAAW,IAAI,CACd,cAAK,SAAS,EAAC,2BAA2B,YAAE,WAAW,GAAO,CAC/D,EACD,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,YAAY,IACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAC,aAAa,uBAGZ,GACX,IACF,GACD,CACR,EACA,UAAU,IAAI,CACb,MAAC,IAAI,IACH,IAAI,EAAE,KAAC,YAAY,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACvD,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,aAEtH,KAAC,QAAQ,IACP,SAAS,EAAC,kDAAkD,EAC5D,KAAK,EAAE,cAAc,IAAI,EAAE,EAC3B,IAAI,EAAE,EAAE,EACR,QAAQ,EAAE,CAAC,CAAyC,EAAE,EAAE,CACtD,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAC1D,GAEH,EACD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,0BACE,cAAK,SAAS,EAAC,iCAAiC,0BAAgB,EAChE,cAAK,SAAS,EAAC,sBAAsB,YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EAEjB,OAAO,EAAE,GAAG,EAAE;wCACZ,OAAO,CAAC,CAAC,IAAgB,EAAE,EAAE,CAC3B,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CACvD,CAAC;oCACJ,CAAC,YAEA,KAAK,CAAC,MAAM,CAAC,KAAK,IAPd,KAAK,CAAC,EAAE,CAQN,CACV,CAAC,GACE,IACF,CACP,IACI,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Dispatch, SetStateAction } from "react";
2
+ import { WizardStep } from "../PageWizard";
3
+ import { PageSchema, WizardData } from "../PageWizard";
4
+ export declare function ComponentTypeSelector({ selectedComponentTypes, setSelectedComponentTypes, schema, data, setData, step, availableComponentTypes, }: {
5
+ selectedComponentTypes?: string[];
6
+ setSelectedComponentTypes: Dispatch<SetStateAction<string[]>>;
7
+ schema: PageSchema | string;
8
+ data: WizardData;
9
+ setData: (data: WizardData) => void;
10
+ step: WizardStep;
11
+ availableComponentTypes?: string[];
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare function getComponentTypeSelectorSummary(selectedComponentTypes?: string[], availableComponentTypes?: string[]): string;