@rxdrag/website-studio 0.0.18 → 0.0.20

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.
@@ -0,0 +1,7 @@
1
+ export type FaviconPreviewProps = {
2
+ value?: string;
3
+ onChange?: (value: string) => void;
4
+ isDark?: boolean;
5
+ };
6
+ export declare function FaviconPreview(props: FaviconPreviewProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare const FaviconPreviewField: (props: import("@rxdrag/fieldy-heroui").FieldProps & FaviconPreviewProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare function ResetButton(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export declare function FaviconPanel(props: {
2
+ onSuccess?: () => void;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,3 @@
1
1
  import { Theme, ThemeConfigQueryOptions } from "@rxdrag/rxcms-models";
2
2
  export declare function newThemeConfigOptions(theme?: Theme): ThemeConfigQueryOptions;
3
+ export declare function newThemeIconConfigOptions(theme?: Theme): ThemeConfigQueryOptions;
@@ -6,5 +6,6 @@ export declare enum ThemeConfigType {
6
6
  Reset = "reset",
7
7
  WebsiteInfo = "websiteInfo",
8
8
  EmailTemplates = "emailTemplates",
9
- Fonts = "fonts"
9
+ Fonts = "fonts",
10
+ Favicon = "favicon"
10
11
  }
@@ -1,8 +1,9 @@
1
1
  import { IEntify, ListConditions, PostPatinateOptions, PostsOptions, TPost, TPostCategory, TProduct, TProductCategory, TSize, TUser } from "@rxdrag/website-lib-core";
2
2
  import { IQueryOptions, ListResult } from "@rxdrag/entify-hooks";
3
- import { Lang, Theme } from "@rxdrag/rxcms-models";
3
+ import { Lang, Theme, Website } from "@rxdrag/rxcms-models";
4
4
  export declare class MockEntify implements IEntify {
5
5
  queryEntityList<T, WhereExp = unknown, OrderBy = unknown, DistinctExp = unknown>(options: IQueryOptions<T, WhereExp, OrderBy, DistinctExp>, staticKey?: string): Promise<ListResult<unknown> | undefined>;
6
+ getWebsite(): Promise<Website | undefined>;
6
7
  getTheme(): Promise<Theme | undefined>;
7
8
  getLangs(): Promise<Lang[] | undefined>;
8
9
  getFeaturedProducts(count?: number): Promise<TProduct[] | undefined>;
@@ -10,7 +11,7 @@ export declare class MockEntify implements IEntify {
10
11
  getPosts(options: PostsOptions): Promise<TPost[] | undefined>;
11
12
  getPostListPaths(options: PostPatinateOptions): Promise<unknown>;
12
13
  getPostPaths(): Promise<unknown>;
13
- getPostBySlug(slug: string, coverSize: TSize | undefined): Promise<unknown>;
14
+ getPostBySlug(slug: string, coverSize: TSize | undefined): Promise<TPost | undefined>;
14
15
  getPostSlugs(): Promise<Array<string | undefined>>;
15
16
  getPostCategories(): Promise<TPostCategory[] | undefined>;
16
17
  getPostCategoryBySlug(slug: string): Promise<TPostCategory | undefined>;
@@ -0,0 +1,2 @@
1
+ import { Website } from "@rxdrag/rxcms-models";
2
+ export declare const mockWebsite: Website;
@@ -1,6 +1,5 @@
1
1
  export type ImportComponentModalProps = {
2
- categoryId?: string | null;
3
2
  open: boolean;
4
3
  onClose: () => void;
5
4
  };
6
- export declare function ImportComponentModal({ categoryId, open, onClose, }: ImportComponentModalProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function ImportComponentModal({ open, onClose, }: ImportComponentModalProps): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { TaskData } from "@rxdrag/ai-tasks";
2
2
  export declare const IMPORT_COMPONENTS_KEY = "import-components";
3
- export declare function useComponentsImportTask(categoryId?: string): {
3
+ export declare function useComponentsImportTask(): {
4
4
  taskState: TaskData<unknown> | undefined;
5
- importComponents: (ids: string[], categoryId: string | undefined, needTranslate: boolean) => void;
5
+ importComponents: (ids: string[], needTranslate: boolean) => void;
6
6
  task: import("@rxdrag/ai-tasks").Task | undefined;
7
7
  };
@@ -30,25 +30,6 @@ export declare const createBaseFiles: (theme: Theme) => {
30
30
  contents: string;
31
31
  };
32
32
  };
33
- ".vscode": {
34
- directory: {
35
- "settings.json": {
36
- file: {
37
- contents: string;
38
- };
39
- };
40
- "extensions.json": {
41
- file: {
42
- contents: string;
43
- };
44
- };
45
- "launch.json": {
46
- file: {
47
- contents: string;
48
- };
49
- };
50
- };
51
- };
52
33
  src: {
53
34
  directory: {
54
35
  layouts: {
@@ -85,7 +66,7 @@ export declare const createBaseFiles: (theme: Theme) => {
85
66
  };
86
67
  };
87
68
  };
88
- "base.css": {
69
+ "style.css": {
89
70
  file: {
90
71
  contents: string;
91
72
  };
@@ -1 +1 @@
1
- export declare const layoutCode = "---\nimport \"../base.css\";\nimport { ClientRouter } from \"astro:transitions\";\n---\n\n<!doctype html>\n<html lang=\"zh-CN\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon.svg\" />\n <meta name=\"generator\" content={Astro.generator} />\n <ClientRouter />\n <slot name=\"meta\" />\n </head>\n <body>\n <slot />\n </body>\n</html>\n\n<style>\n html,\n body {\n margin: 0;\n width: 100%;\n height: 100%;\n }\n</style>\n ";
1
+ export declare const layoutCode = "---\nimport \"../style.css\";\nimport { ClientRouter } from \"astro:transitions\";\n---\n\n<!doctype html>\n<html lang=\"zh-CN\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/favicon.svg\" />\n <meta name=\"generator\" content={Astro.generator} />\n <ClientRouter />\n <slot name=\"meta\" />\n </head>\n <body>\n <slot />\n </body>\n</html>\n\n<style>\n html,\n body {\n margin: 0;\n width: 100%;\n height: 100%;\n }\n</style>\n ";
@@ -1 +1 @@
1
- export declare const libCode = "import {\n Entify,\n type EnvVariables,\n type IEntify,\n } from \"@rxdrag/website-lib-core\";\n \n export function getEnvVariables(): EnvVariables {\n return {\n websiteId: import.meta.env.PUBLIC_WEBSITE_ID,\n entifyServerUrl: import.meta.env.PUBLIC_ENTIFY_SERVER_URL,\n entifyGuestToken: import.meta.env.PUBLIC_ENTIFY_GUEST_TOKEN,\n language: import.meta.env.PUBLIC_LANGUAGE,\n formSalt: import.meta.env.PUBLIC_FORM_SALT || \"yizhanfei\",\n };\n }\n \n export const rx = Entify.getInstance(getEnvVariables()) as IEntify;\n ";
1
+ export declare const libCode = "import {\n Entify,\n type EnvVariables,\n type IEntify,\n } from \"@rxdrag/website-lib-core\";\n \n export function getEnvVariables(): EnvVariables {\n return {\n websiteId: import.meta.env.PUBLIC_WEBSITE_ID,\n entifyServerUrl: import.meta.env.PUBLIC_ENTIFY_SERVER_URL,\n entifyGuestToken: import.meta.env.PUBLIC_ENTIFY_GUEST_TOKEN,\n language: import.meta.env.PUBLIC_LANGUAGE,\n };\n }\n \n export const rx = Entify.getInstance(getEnvVariables()) as IEntify;\n ";
@@ -1 +1 @@
1
- export declare const askForQuoteCode = "import type { APIRoute } from \"astro\";\n import type {\n SpamFilterRule,\n SpamFilterRuleBoolExp,\n SpamFilterRuleDistinctExp,\n SpamFilterRuleOrderBy,\n } from \"@rxdrag/rxcms-models\";\n import {\n EnquiryAssciations,\n EnquiryEntityName,\n EnquiryFields,\n SpamFilterRuleFields,\n SpamFilterRuleQueryOptions,\n } from \"@rxdrag/rxcms-models\";\n import { getEnvVariables, rx } from \"../../lib\";\n import {\n queryWebSiteSettings,\n sendEmail,\n upsertEntity,\n verifyEncryption,\n type QuoteRequest,\n } from \"@rxdrag/website-lib-core\";\n \n // \u6807\u8BB0\u6B64\u9875\u9762\u4E3A\u670D\u52A1\u5668\u6E32\u67D3\uFF0C\u800C\u4E0D\u662F\u9759\u6001\u751F\u6210\n export const prerender = false;\n \n export const POST: APIRoute = async ({ request }) => {\n try {\n const envVariables = getEnvVariables();\n \n // \u4ECE\u8BF7\u6C42\u4E2D\u83B7\u53D6JSON\u6570\u636E\n let requestData: QuoteRequest;\n try {\n requestData = await request.json();\n } catch (error) {\n console.error(\"JSON parsing error:\", error);\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Invalid request format\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u9A8C\u8BC1\u871C\u7F50\u5B57\u6BB5\n if (requestData.phone) {\n console.log(\"Honeypot triggered - spam submission detected\");\n // \u6084\u6084\u5931\u8D25\uFF0C\u8FD4\u56DE\u6210\u529F\u4F46\u4E0D\u5904\u7406\n return new Response(\n JSON.stringify({\n success: true,\n message:\n \"Your enquiry has been submitted successfully, we will contact you soon\",\n }),\n {\n status: 200,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u521B\u5EFA\u5B9E\u4F53\u5BF9\u8C61 - \u79FB\u9664\u4E0D\u5728\u6570\u636E\u5E93\u6A21\u578B\u4E2D\u7684\u5B57\u6BB5\n const { phone, encryptedField, ...entityData } = requestData;\n const entity: Record<string, unknown> = { ...entityData };\n \n // \u68C0\u67E5\u871C\u7F50\u5B57\u6BB5\n if (phone) {\n // \u871C\u7F50\u88AB\u89E6\u53D1\uFF0C\u62D2\u7EDD\u8BF7\u6C42\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Form submission rejected\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u9A8C\u8BC1\u52A0\u5BC6\u5B57\u6BB5\n const isValid = verifyEncryption(\n //\u52A0\u5BC6\u76D0\n envVariables.formSalt,\n encryptedField,\n phone || \"\",\n 30 // 30\u5206\u949F\u6709\u6548\u671F\n );\n \n if (!isValid) {\n // \u52A0\u5BC6\u9A8C\u8BC1\u5931\u8D25\uFF0C\u62D2\u7EDD\u8BF7\u6C42\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Invalid form submission\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u83B7\u53D6\u8BF7\u6C42\u5934\u4FE1\u606F\n const url =\n request.headers.get(\"X-Request-URL\") || request.headers.get(\"referer\");\n const ip =\n request.headers.get(\"X-Forwarded-For\") ||\n request.headers.get(\"X-Real-IP\");\n const userAgent = request.headers.get(\"user-agent\");\n \n // \u8BBE\u7F6E\u989D\u5916\u5B57\u6BB5\n entity[EnquiryFields.formIp] = ip;\n entity[EnquiryFields.fromUrl] = url;\n entity[EnquiryFields.userAgent] = userAgent;\n entity[EnquiryFields.read] = false;\n entity[EnquiryFields.spam] = false;\n entity[EnquiryAssciations.website] = {\n sync: { id: envVariables.websiteId },\n };\n \n // \u9A8C\u8BC1\u5FC5\u586B\u5B57\u6BB5\n if (\n !entity[EnquiryFields.name] ||\n !entity[EnquiryFields.email] ||\n !entity[EnquiryFields.message]\n ) {\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Please fill in all required fields\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u5783\u573E\u4FE1\u606F\u8FC7\u6EE4\n const spamRules = (\n await rx.queryEntityList<\n SpamFilterRule,\n SpamFilterRuleBoolExp,\n SpamFilterRuleOrderBy,\n SpamFilterRuleDistinctExp\n >(\n new SpamFilterRuleQueryOptions([\n SpamFilterRuleFields.emails,\n SpamFilterRuleFields.ips,\n SpamFilterRuleFields.keywords,\n ])\n )\n )?.items as SpamFilterRule[] | undefined;\n \n for (const rule of spamRules || []) {\n const email = (entity[EnquiryFields.email] as string)?.trim();\n if (\n !email ||\n rule.emails\n ?.replace(\"\uFF0C\", \",\")\n .split(\",\")\n .map((em) => em.trim())\n .includes(email) ||\n (ip &&\n rule.ips\n ?.replace(\"\uFF0C\", \",\")\n .split(\",\")\n .map((ipAddr) => ipAddr.trim())\n .includes(ip)) ||\n rule.keywords\n ?.split(\",\")\n .some(\n (keyword: string) =>\n keyword &&\n (entity[EnquiryFields.message] as string).includes(keyword)\n )\n ) {\n // \u6807\u8BB0\u4E3A\u5783\u573E\u4FE1\u606F\u5E76\u4FDD\u5B58\n await upsertEntity(\n EnquiryEntityName,\n { ...entity, spam: true, read: false },\n envVariables\n );\n \n // \u8FD4\u56DE404\u54CD\u5E94\uFF0C\u6A21\u62DF\u539F\u59CB\u884C\u4E3A\n return new Response(null, { status: 404 });\n }\n }\n \n // \u4FDD\u5B58\u8BE2\u4EF7\u4FE1\u606F\n await upsertEntity(EnquiryEntityName, entity, envVariables);\n \n // \u83B7\u53D6\u7F51\u7AD9\u8BBE\u7F6E\u5E76\u53D1\u9001\u90AE\u4EF6\u901A\u77E5\n const websettins = await queryWebSiteSettings(envVariables);\n const name = entity?.[EnquiryFields.name] as string;\n \n if (websettins?.noticeEmail) {\n const content = `\n Company: ${entity[EnquiryFields.company]}\n Name: ${name}\n Email: ${entity[EnquiryFields.email]}\n Message: ${entity[EnquiryFields.message]}\n IP: ${ip}\n URL: ${url}\n CTA: ${entity[EnquiryFields.fromCta]}\n userAgent: ${userAgent}\n `;\n \n const employeeEmail = {\n to: websettins?.noticeEmail,\n subject: \"New Enquiry Received\",\n message: content,\n };\n \n await sendEmail(employeeEmail, envVariables);\n }\n \n // \u8FD4\u56DEJSON\u54CD\u5E94\n return new Response(\n JSON.stringify({\n success: true,\n message:\n \"Your enquiry has been submitted successfully, we will contact you soon\",\n }),\n {\n status: 200,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (error) {\n console.error(\"Error processing enquiry request:\", error);\n \n // \u8FD4\u56DE\u9519\u8BEF\u54CD\u5E94\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Submission failed, please try again later\",\n }),\n {\n status: 500,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n };\n ";
1
+ export declare const askForQuoteCode = "import type { APIRoute } from \"astro\";\n import type {\n SpamFilterRule,\n SpamFilterRuleBoolExp,\n SpamFilterRuleDistinctExp,\n SpamFilterRuleOrderBy,\n } from \"@rxdrag/rxcms-models\";\n import {\n EnquiryAssciations,\n EnquiryEntityName,\n EnquiryFields,\n SpamFilterRuleFields,\n SpamFilterRuleQueryOptions,\n } from \"@rxdrag/rxcms-models\";\n import { getEnvVariables, rx } from \"../../lib\";\n import {\n queryWebSiteSettings,\n sendEmail,\n upsertEntity,\n verifyEncryption,\n type QuoteRequest,\n } from \"@rxdrag/website-lib-core\";\n \n // \u6807\u8BB0\u6B64\u9875\u9762\u4E3A\u670D\u52A1\u5668\u6E32\u67D3\uFF0C\u800C\u4E0D\u662F\u9759\u6001\u751F\u6210\n export const prerender = false;\n \n export const POST: APIRoute = async ({ request }) => {\n try {\n const envVariables = getEnvVariables();\n \n // \u4ECE\u8BF7\u6C42\u4E2D\u83B7\u53D6JSON\u6570\u636E\n let requestData: QuoteRequest;\n try {\n requestData = await request.json();\n } catch (error) {\n console.error(\"JSON parsing error:\", error);\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Invalid request format\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u9A8C\u8BC1\u871C\u7F50\u5B57\u6BB5\n if (requestData.phone) {\n console.log(\"Honeypot triggered - spam submission detected\");\n // \u6084\u6084\u5931\u8D25\uFF0C\u8FD4\u56DE\u6210\u529F\u4F46\u4E0D\u5904\u7406\n return new Response(\n JSON.stringify({\n success: true,\n message:\n \"Your enquiry has been submitted successfully, we will contact you soon\",\n }),\n {\n status: 200,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u521B\u5EFA\u5B9E\u4F53\u5BF9\u8C61 - \u79FB\u9664\u4E0D\u5728\u6570\u636E\u5E93\u6A21\u578B\u4E2D\u7684\u5B57\u6BB5\n const { phone, encryptedField, ...entityData } = requestData;\n const entity: Record<string, unknown> = { ...entityData };\n \n // \u68C0\u67E5\u871C\u7F50\u5B57\u6BB5\n if (phone) {\n // \u871C\u7F50\u88AB\u89E6\u53D1\uFF0C\u62D2\u7EDD\u8BF7\u6C42\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Form submission rejected\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u9A8C\u8BC1\u52A0\u5BC6\u5B57\u6BB5\n const isValid = verifyEncryption(\n //\u52A0\u5BC6\u76D0\n \"yizhanfeinb\",\n encryptedField,\n phone || \"\",\n 30 // 30\u5206\u949F\u6709\u6548\u671F\n );\n \n if (!isValid) {\n // \u52A0\u5BC6\u9A8C\u8BC1\u5931\u8D25\uFF0C\u62D2\u7EDD\u8BF7\u6C42\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Invalid form submission\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u83B7\u53D6\u8BF7\u6C42\u5934\u4FE1\u606F\n const url =\n request.headers.get(\"X-Request-URL\") || request.headers.get(\"referer\");\n const ip =\n request.headers.get(\"X-Forwarded-For\") ||\n request.headers.get(\"X-Real-IP\");\n const userAgent = request.headers.get(\"user-agent\");\n \n // \u8BBE\u7F6E\u989D\u5916\u5B57\u6BB5\n entity[EnquiryFields.formIp] = ip;\n entity[EnquiryFields.fromUrl] = url;\n entity[EnquiryFields.userAgent] = userAgent;\n entity[EnquiryFields.read] = false;\n entity[EnquiryFields.spam] = false;\n entity[EnquiryAssciations.website] = {\n sync: { id: envVariables.websiteId },\n };\n \n // \u9A8C\u8BC1\u5FC5\u586B\u5B57\u6BB5\n if (\n !entity[EnquiryFields.name] ||\n !entity[EnquiryFields.email] ||\n !entity[EnquiryFields.message]\n ) {\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Please fill in all required fields\",\n }),\n {\n status: 400,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n \n // \u5783\u573E\u4FE1\u606F\u8FC7\u6EE4\n const spamRules = (\n await rx.queryEntityList<\n SpamFilterRule,\n SpamFilterRuleBoolExp,\n SpamFilterRuleOrderBy,\n SpamFilterRuleDistinctExp\n >(\n new SpamFilterRuleQueryOptions([\n SpamFilterRuleFields.emails,\n SpamFilterRuleFields.ips,\n SpamFilterRuleFields.keywords,\n ])\n )\n )?.items as SpamFilterRule[] | undefined;\n \n for (const rule of spamRules || []) {\n const email = (entity[EnquiryFields.email] as string)?.trim();\n if (\n !email ||\n rule.emails\n ?.replace(\"\uFF0C\", \",\")\n .split(\",\")\n .map((em) => em.trim())\n .includes(email) ||\n (ip &&\n rule.ips\n ?.replace(\"\uFF0C\", \",\")\n .split(\",\")\n .map((ipAddr) => ipAddr.trim())\n .includes(ip)) ||\n rule.keywords\n ?.split(\",\")\n .some(\n (keyword: string) =>\n keyword &&\n (entity[EnquiryFields.message] as string).includes(keyword)\n )\n ) {\n // \u6807\u8BB0\u4E3A\u5783\u573E\u4FE1\u606F\u5E76\u4FDD\u5B58\n await upsertEntity(\n EnquiryEntityName,\n { ...entity, spam: true, read: false },\n envVariables\n );\n \n // \u8FD4\u56DE404\u54CD\u5E94\uFF0C\u6A21\u62DF\u539F\u59CB\u884C\u4E3A\n return new Response(null, { status: 404 });\n }\n }\n \n // \u4FDD\u5B58\u8BE2\u4EF7\u4FE1\u606F\n await upsertEntity(EnquiryEntityName, entity, envVariables);\n \n // \u83B7\u53D6\u7F51\u7AD9\u8BBE\u7F6E\u5E76\u53D1\u9001\u90AE\u4EF6\u901A\u77E5\n const websettins = await queryWebSiteSettings(envVariables);\n const name = entity?.[EnquiryFields.name] as string;\n \n if (websettins?.noticeEmail) {\n const content = `\n Company: ${entity[EnquiryFields.company]}\n Name: ${name}\n Email: ${entity[EnquiryFields.email]}\n Message: ${entity[EnquiryFields.message]}\n IP: ${ip}\n URL: ${url}\n CTA: ${entity[EnquiryFields.fromCta]}\n userAgent: ${userAgent}\n `;\n \n const employeeEmail = {\n to: websettins?.noticeEmail,\n subject: \"New Enquiry Received\",\n message: content,\n };\n \n await sendEmail(employeeEmail, envVariables);\n }\n \n // \u8FD4\u56DEJSON\u54CD\u5E94\n return new Response(\n JSON.stringify({\n success: true,\n message:\n \"Your enquiry has been submitted successfully, we will contact you soon\",\n }),\n {\n status: 200,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } catch (error) {\n console.error(\"Error processing enquiry request:\", error);\n \n // \u8FD4\u56DE\u9519\u8BEF\u54CD\u5E94\n return new Response(\n JSON.stringify({\n success: false,\n message: \"Submission failed, please try again later\",\n }),\n {\n status: 500,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n };\n ";
@@ -36,7 +36,7 @@ export declare function useGetFiles(): (theme?: Theme) => Promise<{
36
36
  };
37
37
  };
38
38
  };
39
- "base.css": {
39
+ "style.css": {
40
40
  file: {
41
41
  contents: string;
42
42
  };
@@ -78,25 +78,6 @@ export declare function useGetFiles(): (theme?: Theme) => Promise<{
78
78
  contents: string;
79
79
  };
80
80
  };
81
- ".vscode": {
82
- directory: {
83
- "settings.json": {
84
- file: {
85
- contents: string;
86
- };
87
- };
88
- "extensions.json": {
89
- file: {
90
- contents: string;
91
- };
92
- };
93
- "launch.json": {
94
- file: {
95
- contents: string;
96
- };
97
- };
98
- };
99
- };
100
81
  public: {
101
82
  directory: {
102
83
  "favicon.svg": {
@@ -1,4 +1,3 @@
1
- export * from "./useSave";
2
1
  export * from "./useShowError";
3
2
  export * from "./usePreviews";
4
3
  export * from "./useVfs";
@@ -13,7 +13,6 @@ export declare function useImportVariables(): {
13
13
  entifyServerUrl: string;
14
14
  entifyGuestToken: string;
15
15
  language: string;
16
- formSalt: string;
17
16
  };
18
17
  dayjs: typeof dayjs;
19
18
  rxPage: {
@@ -25,4 +24,5 @@ export declare function useImportVariables(): {
25
24
  productBreadcrumbs: typeof import("../components/DocPreview/mock/MockRxPage").productBreadcrumbs;
26
25
  productListBreadcrumbs: typeof import("../components/DocPreview/mock/MockRxPage").productListBreadcrumbs;
27
26
  };
27
+ FORM_SALT: string;
28
28
  };