@mandolop97/constructor-nexora 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -0
- package/dist/App.d.ts +2 -0
- package/dist/NexoraBuilderApp.d.ts +58 -0
- package/dist/components/NavLink.d.ts +8 -0
- package/dist/components/builder/BlocksPalette.d.ts +1 -0
- package/dist/components/builder/BuilderCanvas.d.ts +9 -0
- package/dist/components/builder/BuilderEditorShell.d.ts +14 -0
- package/dist/components/builder/Inspector.d.ts +9 -0
- package/dist/components/builder/LayersPanel.d.ts +8 -0
- package/dist/components/builder/PageManager.d.ts +7 -0
- package/dist/components/builder/PublishDialog.d.ts +9 -0
- package/dist/components/builder/TopBar.d.ts +18 -0
- package/dist/components/schema/EditableDropZone.d.ts +8 -0
- package/dist/components/schema/NodeRegistry.d.ts +10 -0
- package/dist/components/schema/PageRenderer.d.ts +9 -0
- package/dist/components/schema/SortableNodeWrapper.d.ts +10 -0
- package/dist/components/schema/nodes/CommerceNodes.d.ts +9 -0
- package/dist/components/schema/nodes/ContentNodes.d.ts +12 -0
- package/dist/components/schema/nodes/LayoutNodes.d.ts +12 -0
- package/dist/components/schema/nodes/SiteNodes.d.ts +10 -0
- package/dist/components/schema/nodes/TemplateNodes.d.ts +13 -0
- package/dist/components/schema/nodes/UINodes.d.ts +11 -0
- package/dist/components/ui/accordion.d.ts +7 -0
- package/dist/components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert.d.ts +8 -0
- package/dist/components/ui/aspect-ratio.d.ts +3 -0
- package/dist/components/ui/avatar.d.ts +6 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/breadcrumb.d.ts +19 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/calendar.d.ts +8 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/carousel.d.ts +18 -0
- package/dist/components/ui/chart.d.ts +62 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/command.d.ts +82 -0
- package/dist/components/ui/context-menu.d.ts +27 -0
- package/dist/components/ui/dialog.d.ts +19 -0
- package/dist/components/ui/drawer.d.ts +22 -0
- package/dist/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/form.d.ts +23 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/input-otp.d.ts +34 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/menubar.d.ts +33 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/pagination.d.ts +28 -0
- package/dist/components/ui/popover.d.ts +6 -0
- package/dist/components/ui/progress.d.ts +4 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/resizable.d.ts +23 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/select.d.ts +13 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/sheet.d.ts +25 -0
- package/dist/components/ui/sidebar.d.ts +66 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/slider.d.ts +4 -0
- package/dist/components/ui/sonner.d.ts +4 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/textarea.d.ts +5 -0
- package/dist/components/ui/toast.d.ts +15 -0
- package/dist/components/ui/toaster.d.ts +1 -0
- package/dist/components/ui/toggle-group.d.ts +12 -0
- package/dist/components/ui/toggle.d.ts +12 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/components/ui/use-toast.d.ts +2 -0
- package/dist/favicon.ico +0 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-schema-history.d.ts +9 -0
- package/dist/hooks/use-toast.d.ts +44 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +13163 -0
- package/dist/integrations/supabase/client.d.ts +35 -0
- package/dist/integrations/supabase/types.d.ts +103 -0
- package/dist/lib/block-registry.d.ts +15 -0
- package/dist/lib/default-schema.d.ts +5 -0
- package/dist/lib/default-schemas.d.ts +16 -0
- package/dist/lib/node-factory.d.ts +3 -0
- package/dist/lib/schema-store.d.ts +14 -0
- package/dist/lib/schema-validator.d.ts +14 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/version.d.ts +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/pages/Builder.d.ts +1 -0
- package/dist/pages/ExportSchema.d.ts +2 -0
- package/dist/pages/Index.d.ts +2 -0
- package/dist/pages/LicenseBlocked.d.ts +2 -0
- package/dist/pages/NotFound.d.ts +2 -0
- package/dist/pages/Preview.d.ts +2 -0
- package/dist/placeholder.svg +1 -0
- package/dist/robots.txt +14 -0
- package/dist/test/example.test.d.ts +1 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/types/schema.d.ts +125 -0
- package/package.json +109 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Database } from './types';
|
|
2
|
+
export declare const supabase: import("@supabase/supabase-js").SupabaseClient<Database, "public", "public", {
|
|
3
|
+
Tables: {
|
|
4
|
+
published_pages: {
|
|
5
|
+
Row: {
|
|
6
|
+
content_json: import("./types").Json;
|
|
7
|
+
domain: string;
|
|
8
|
+
id: string;
|
|
9
|
+
status: string;
|
|
10
|
+
updated_at: string;
|
|
11
|
+
};
|
|
12
|
+
Insert: {
|
|
13
|
+
content_json?: import("./types").Json;
|
|
14
|
+
domain: string;
|
|
15
|
+
id?: string;
|
|
16
|
+
status?: string;
|
|
17
|
+
updated_at?: string;
|
|
18
|
+
};
|
|
19
|
+
Update: {
|
|
20
|
+
content_json?: import("./types").Json;
|
|
21
|
+
domain?: string;
|
|
22
|
+
id?: string;
|
|
23
|
+
status?: string;
|
|
24
|
+
updated_at?: string;
|
|
25
|
+
};
|
|
26
|
+
Relationships: [];
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
Views: { [_ in never]: never; };
|
|
30
|
+
Functions: { [_ in never]: never; };
|
|
31
|
+
Enums: { [_ in never]: never; };
|
|
32
|
+
CompositeTypes: { [_ in never]: never; };
|
|
33
|
+
}, {
|
|
34
|
+
PostgrestVersion: "14.1";
|
|
35
|
+
}>;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export type Json = string | number | boolean | null | {
|
|
2
|
+
[key: string]: Json | undefined;
|
|
3
|
+
} | Json[];
|
|
4
|
+
export type Database = {
|
|
5
|
+
__InternalSupabase: {
|
|
6
|
+
PostgrestVersion: "14.1";
|
|
7
|
+
};
|
|
8
|
+
public: {
|
|
9
|
+
Tables: {
|
|
10
|
+
published_pages: {
|
|
11
|
+
Row: {
|
|
12
|
+
content_json: Json;
|
|
13
|
+
domain: string;
|
|
14
|
+
id: string;
|
|
15
|
+
status: string;
|
|
16
|
+
updated_at: string;
|
|
17
|
+
};
|
|
18
|
+
Insert: {
|
|
19
|
+
content_json?: Json;
|
|
20
|
+
domain: string;
|
|
21
|
+
id?: string;
|
|
22
|
+
status?: string;
|
|
23
|
+
updated_at?: string;
|
|
24
|
+
};
|
|
25
|
+
Update: {
|
|
26
|
+
content_json?: Json;
|
|
27
|
+
domain?: string;
|
|
28
|
+
id?: string;
|
|
29
|
+
status?: string;
|
|
30
|
+
updated_at?: string;
|
|
31
|
+
};
|
|
32
|
+
Relationships: [];
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
Views: {
|
|
36
|
+
[_ in never]: never;
|
|
37
|
+
};
|
|
38
|
+
Functions: {
|
|
39
|
+
[_ in never]: never;
|
|
40
|
+
};
|
|
41
|
+
Enums: {
|
|
42
|
+
[_ in never]: never;
|
|
43
|
+
};
|
|
44
|
+
CompositeTypes: {
|
|
45
|
+
[_ in never]: never;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
type DatabaseWithoutInternals = Omit<Database, "__InternalSupabase">;
|
|
50
|
+
type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, "public">];
|
|
51
|
+
export type Tables<DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] & DefaultSchema["Views"]) | {
|
|
52
|
+
schema: keyof DatabaseWithoutInternals;
|
|
53
|
+
}, TableName extends DefaultSchemaTableNameOrOptions extends {
|
|
54
|
+
schema: keyof DatabaseWithoutInternals;
|
|
55
|
+
} ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"]) : never = never> = DefaultSchemaTableNameOrOptions extends {
|
|
56
|
+
schema: keyof DatabaseWithoutInternals;
|
|
57
|
+
} ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
|
|
58
|
+
Row: infer R;
|
|
59
|
+
} ? R : never : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] & DefaultSchema["Views"]) ? (DefaultSchema["Tables"] & DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
|
|
60
|
+
Row: infer R;
|
|
61
|
+
} ? R : never : never;
|
|
62
|
+
export type TablesInsert<DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] | {
|
|
63
|
+
schema: keyof DatabaseWithoutInternals;
|
|
64
|
+
}, TableName extends DefaultSchemaTableNameOrOptions extends {
|
|
65
|
+
schema: keyof DatabaseWithoutInternals;
|
|
66
|
+
} ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] : never = never> = DefaultSchemaTableNameOrOptions extends {
|
|
67
|
+
schema: keyof DatabaseWithoutInternals;
|
|
68
|
+
} ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
|
|
69
|
+
Insert: infer I;
|
|
70
|
+
} ? I : never : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
|
|
71
|
+
Insert: infer I;
|
|
72
|
+
} ? I : never : never;
|
|
73
|
+
export type TablesUpdate<DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] | {
|
|
74
|
+
schema: keyof DatabaseWithoutInternals;
|
|
75
|
+
}, TableName extends DefaultSchemaTableNameOrOptions extends {
|
|
76
|
+
schema: keyof DatabaseWithoutInternals;
|
|
77
|
+
} ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] : never = never> = DefaultSchemaTableNameOrOptions extends {
|
|
78
|
+
schema: keyof DatabaseWithoutInternals;
|
|
79
|
+
} ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
|
|
80
|
+
Update: infer U;
|
|
81
|
+
} ? U : never : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
|
|
82
|
+
Update: infer U;
|
|
83
|
+
} ? U : never : never;
|
|
84
|
+
export type Enums<DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"] | {
|
|
85
|
+
schema: keyof DatabaseWithoutInternals;
|
|
86
|
+
}, EnumName extends DefaultSchemaEnumNameOrOptions extends {
|
|
87
|
+
schema: keyof DatabaseWithoutInternals;
|
|
88
|
+
} ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"] : never = never> = DefaultSchemaEnumNameOrOptions extends {
|
|
89
|
+
schema: keyof DatabaseWithoutInternals;
|
|
90
|
+
} ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName] : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"] ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions] : never;
|
|
91
|
+
export type CompositeTypes<PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] | {
|
|
92
|
+
schema: keyof DatabaseWithoutInternals;
|
|
93
|
+
}, CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
|
|
94
|
+
schema: keyof DatabaseWithoutInternals;
|
|
95
|
+
} ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] : never = never> = PublicCompositeTypeNameOrOptions extends {
|
|
96
|
+
schema: keyof DatabaseWithoutInternals;
|
|
97
|
+
} ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] : never;
|
|
98
|
+
export declare const Constants: {
|
|
99
|
+
readonly public: {
|
|
100
|
+
readonly Enums: {};
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NodeType, NodeProps, NodeStyle } from '@/types/schema';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export interface BlockDefinition {
|
|
4
|
+
type: NodeType;
|
|
5
|
+
label: string;
|
|
6
|
+
category: string;
|
|
7
|
+
icon: React.ElementType;
|
|
8
|
+
canHaveChildren: boolean;
|
|
9
|
+
defaultProps: NodeProps;
|
|
10
|
+
defaultStyle: NodeStyle;
|
|
11
|
+
}
|
|
12
|
+
export declare const blockRegistry: BlockDefinition[];
|
|
13
|
+
export declare function getBlockDef(type: NodeType): BlockDefinition | undefined;
|
|
14
|
+
export declare function getCategories(): string[];
|
|
15
|
+
export declare function getBlocksByCategory(category: string): BlockDefinition[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Schema } from '@/types/schema';
|
|
2
|
+
export declare function createHomeSchema(): Schema;
|
|
3
|
+
export declare function createProductsSchema(): Schema;
|
|
4
|
+
export declare function createFAQSchema(): Schema;
|
|
5
|
+
export declare function createContactSchema(): Schema;
|
|
6
|
+
export declare function createHelpSchema(): Schema;
|
|
7
|
+
export declare function createPrivacySchema(): Schema;
|
|
8
|
+
export declare function createTermsSchema(): Schema;
|
|
9
|
+
export declare function createWishlistSchema(): Schema;
|
|
10
|
+
export interface PageSchemaDefinition {
|
|
11
|
+
slug: string;
|
|
12
|
+
title: string;
|
|
13
|
+
getDefaultSchema: () => Schema;
|
|
14
|
+
}
|
|
15
|
+
export declare const PAGE_DEFINITIONS: PageSchemaDefinition[];
|
|
16
|
+
export declare function getDefaultSchemaForSlug(slug: string): Schema;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Page, Schema } from '@/types/schema';
|
|
2
|
+
export declare const SchemaStore: {
|
|
3
|
+
init(): void;
|
|
4
|
+
getPages(): Page[];
|
|
5
|
+
getPageBySlug(slug: string): Page | undefined;
|
|
6
|
+
getSchema(schemaId: string): Schema | undefined;
|
|
7
|
+
saveSchema(schema: Schema): void;
|
|
8
|
+
createPage(name: string, slug: string): Page;
|
|
9
|
+
duplicatePage(pageId: string): Page | undefined;
|
|
10
|
+
deletePage(pageId: string): void;
|
|
11
|
+
renamePage(pageId: string, newName: string): void;
|
|
12
|
+
getLicenseStatus(): "active" | "inactive" | "exceeded";
|
|
13
|
+
setLicenseStatus(status: "active" | "inactive" | "exceeded"): void;
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Schema } from '@/types/schema';
|
|
2
|
+
export interface SchemaValidationResult {
|
|
3
|
+
valid: boolean;
|
|
4
|
+
errors: string[];
|
|
5
|
+
/** The cleaned schema (orphan children removed) or null if fatally invalid. */
|
|
6
|
+
schema: Schema | null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validates a schema for structural integrity.
|
|
10
|
+
* - rootNodeId must exist in nodes
|
|
11
|
+
* - Every children reference must point to an existing node
|
|
12
|
+
* Returns a cleaned copy with dangling references removed.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateSchema(input: Schema): SchemaValidationResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const EDITOR_VERSION: string;
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./index.css";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function Builder(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="1200" fill="none"><rect width="1200" height="1200" fill="#EAEAEA" rx="3"/><g opacity=".5"><g opacity=".5"><path fill="#FAFAFA" d="M600.709 736.5c-75.454 0-136.621-61.167-136.621-136.62 0-75.454 61.167-136.621 136.621-136.621 75.453 0 136.62 61.167 136.62 136.621 0 75.453-61.167 136.62-136.62 136.62Z"/><path stroke="#C9C9C9" stroke-width="2.418" d="M600.709 736.5c-75.454 0-136.621-61.167-136.621-136.62 0-75.454 61.167-136.621 136.621-136.621 75.453 0 136.62 61.167 136.62 136.621 0 75.453-61.167 136.62-136.62 136.62Z"/></g><path stroke="url(#a)" stroke-width="2.418" d="M0-1.209h553.581" transform="scale(1 -1) rotate(45 1163.11 91.165)"/><path stroke="url(#b)" stroke-width="2.418" d="M404.846 598.671h391.726"/><path stroke="url(#c)" stroke-width="2.418" d="M599.5 795.742V404.017"/><path stroke="url(#d)" stroke-width="2.418" d="m795.717 796.597-391.441-391.44"/><path fill="#fff" d="M600.709 656.704c-31.384 0-56.825-25.441-56.825-56.824 0-31.384 25.441-56.825 56.825-56.825 31.383 0 56.824 25.441 56.824 56.825 0 31.383-25.441 56.824-56.824 56.824Z"/><g clip-path="url(#e)"><path fill="#666" fill-rule="evenodd" d="M616.426 586.58h-31.434v16.176l3.553-3.554.531-.531h9.068l.074-.074 8.463-8.463h2.565l7.18 7.181V586.58Zm-15.715 14.654 3.698 3.699 1.283 1.282-2.565 2.565-1.282-1.283-5.2-5.199h-6.066l-5.514 5.514-.073.073v2.876a2.418 2.418 0 0 0 2.418 2.418h26.598a2.418 2.418 0 0 0 2.418-2.418v-8.317l-8.463-8.463-7.181 7.181-.071.072Zm-19.347 5.442v4.085a6.045 6.045 0 0 0 6.046 6.045h26.598a6.044 6.044 0 0 0 6.045-6.045v-7.108l1.356-1.355-1.282-1.283-.074-.073v-17.989h-38.689v23.43l-.146.146.146.147Z" clip-rule="evenodd"/></g><path stroke="#C9C9C9" stroke-width="2.418" d="M600.709 656.704c-31.384 0-56.825-25.441-56.825-56.824 0-31.384 25.441-56.825 56.825-56.825 31.383 0 56.824 25.441 56.824 56.825 0 31.383-25.441 56.824-56.824 56.824Z"/></g><defs><linearGradient id="a" x1="554.061" x2="-.48" y1=".083" y2=".087" gradientUnits="userSpaceOnUse"><stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/></linearGradient><linearGradient id="b" x1="796.912" x2="404.507" y1="599.963" y2="599.965" gradientUnits="userSpaceOnUse"><stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/></linearGradient><linearGradient id="c" x1="600.792" x2="600.794" y1="403.677" y2="796.082" gradientUnits="userSpaceOnUse"><stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/></linearGradient><linearGradient id="d" x1="404.85" x2="796.972" y1="403.903" y2="796.02" gradientUnits="userSpaceOnUse"><stop stop-color="#C9C9C9" stop-opacity="0"/><stop offset=".208" stop-color="#C9C9C9"/><stop offset=".792" stop-color="#C9C9C9"/><stop offset="1" stop-color="#C9C9C9" stop-opacity="0"/></linearGradient><clipPath id="e"><path fill="#fff" d="M581.364 580.535h38.689v38.689h-38.689z"/></clipPath></defs></svg>
|
package/dist/robots.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "@testing-library/jest-dom";
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
export type NodeType = 'Section' | 'Container' | 'Grid' | 'Stack' | 'Text' | 'Image' | 'Divider' | 'Badge' | 'Button' | 'Card' | 'Input' | 'ProductCard' | 'Navbar' | 'Footer' | 'AnnouncementBar' | 'FeatureBar' | 'TestimonialCard' | 'NewsletterSection' | 'HeroSection';
|
|
2
|
+
export interface NodeStyle {
|
|
3
|
+
padding?: string;
|
|
4
|
+
margin?: string;
|
|
5
|
+
gap?: string;
|
|
6
|
+
color?: string;
|
|
7
|
+
backgroundColor?: string;
|
|
8
|
+
borderColor?: string;
|
|
9
|
+
borderWidth?: string;
|
|
10
|
+
borderRadius?: string;
|
|
11
|
+
boxShadow?: string;
|
|
12
|
+
width?: string;
|
|
13
|
+
height?: string;
|
|
14
|
+
minHeight?: string;
|
|
15
|
+
maxWidth?: string;
|
|
16
|
+
alignItems?: string;
|
|
17
|
+
justifyContent?: string;
|
|
18
|
+
textAlign?: string;
|
|
19
|
+
fontSize?: string;
|
|
20
|
+
fontWeight?: string;
|
|
21
|
+
lineHeight?: string;
|
|
22
|
+
letterSpacing?: string;
|
|
23
|
+
display?: string;
|
|
24
|
+
flexDirection?: string;
|
|
25
|
+
gridTemplateColumns?: string;
|
|
26
|
+
backgroundImage?: string;
|
|
27
|
+
backgroundSize?: string;
|
|
28
|
+
backgroundPosition?: string;
|
|
29
|
+
opacity?: string;
|
|
30
|
+
overflow?: string;
|
|
31
|
+
position?: string;
|
|
32
|
+
top?: string;
|
|
33
|
+
left?: string;
|
|
34
|
+
right?: string;
|
|
35
|
+
bottom?: string;
|
|
36
|
+
zIndex?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface NodeProps {
|
|
39
|
+
text?: string;
|
|
40
|
+
href?: string;
|
|
41
|
+
src?: string;
|
|
42
|
+
alt?: string;
|
|
43
|
+
variant?: string;
|
|
44
|
+
placeholder?: string;
|
|
45
|
+
label?: string;
|
|
46
|
+
price?: string;
|
|
47
|
+
originalPrice?: string;
|
|
48
|
+
badge?: string;
|
|
49
|
+
logoText?: string;
|
|
50
|
+
links?: {
|
|
51
|
+
text: string;
|
|
52
|
+
href: string;
|
|
53
|
+
}[];
|
|
54
|
+
columns?: number;
|
|
55
|
+
direction?: 'horizontal' | 'vertical';
|
|
56
|
+
level?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
|
|
57
|
+
copyright?: string;
|
|
58
|
+
items?: {
|
|
59
|
+
icon?: string;
|
|
60
|
+
title: string;
|
|
61
|
+
description: string;
|
|
62
|
+
}[];
|
|
63
|
+
subtitle?: string;
|
|
64
|
+
ctaText?: string;
|
|
65
|
+
ctaHref?: string;
|
|
66
|
+
overlayOpacity?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface SchemaNode {
|
|
69
|
+
id: string;
|
|
70
|
+
type: NodeType;
|
|
71
|
+
props: NodeProps;
|
|
72
|
+
style: NodeStyle;
|
|
73
|
+
children: string[];
|
|
74
|
+
locked?: boolean;
|
|
75
|
+
hidden?: boolean;
|
|
76
|
+
}
|
|
77
|
+
export interface ThemeTokens {
|
|
78
|
+
colors: {
|
|
79
|
+
primary: string;
|
|
80
|
+
secondary: string;
|
|
81
|
+
background: string;
|
|
82
|
+
text: string;
|
|
83
|
+
muted: string;
|
|
84
|
+
border: string;
|
|
85
|
+
accent?: string;
|
|
86
|
+
};
|
|
87
|
+
typography: {
|
|
88
|
+
fontFamily: string;
|
|
89
|
+
baseSize: string;
|
|
90
|
+
headingScale: number;
|
|
91
|
+
};
|
|
92
|
+
radius: {
|
|
93
|
+
sm: string;
|
|
94
|
+
md: string;
|
|
95
|
+
lg: string;
|
|
96
|
+
};
|
|
97
|
+
spacing: {
|
|
98
|
+
xs: string;
|
|
99
|
+
sm: string;
|
|
100
|
+
md: string;
|
|
101
|
+
lg: string;
|
|
102
|
+
xl: string;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export interface Schema {
|
|
106
|
+
id: string;
|
|
107
|
+
version: number;
|
|
108
|
+
updatedAt: string;
|
|
109
|
+
themeTokens: ThemeTokens;
|
|
110
|
+
rootNodeId: string;
|
|
111
|
+
nodes: Record<string, SchemaNode>;
|
|
112
|
+
}
|
|
113
|
+
export interface Page {
|
|
114
|
+
id: string;
|
|
115
|
+
slug: string;
|
|
116
|
+
name: string;
|
|
117
|
+
schemaId: string;
|
|
118
|
+
}
|
|
119
|
+
export interface PageDefinition {
|
|
120
|
+
slug: string;
|
|
121
|
+
title: string;
|
|
122
|
+
schema: Schema;
|
|
123
|
+
status?: 'published' | 'draft';
|
|
124
|
+
}
|
|
125
|
+
export type RenderMode = 'public' | 'preview' | 'edit';
|
package/package.json
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mandolop97/constructor-nexora",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./styles.css": "./dist/style.css"
|
|
15
|
+
},
|
|
16
|
+
"peerDependencies": {
|
|
17
|
+
"react": "^18.0.0",
|
|
18
|
+
"react-dom": "^18.0.0"
|
|
19
|
+
},
|
|
20
|
+
"files": ["dist"],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"dev": "vite",
|
|
23
|
+
"build": "vite build",
|
|
24
|
+
"build:lib": "vite build --config vite.config.lib.ts && tsc --project tsconfig.lib.json --emitDeclarationOnly",
|
|
25
|
+
"build:dev": "vite build --mode development",
|
|
26
|
+
"lint": "eslint .",
|
|
27
|
+
"preview": "vite preview",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"test:watch": "vitest"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@dnd-kit/core": "^6.3.1",
|
|
33
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
34
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
35
|
+
"@hookform/resolvers": "^3.10.0",
|
|
36
|
+
"@radix-ui/react-accordion": "^1.2.11",
|
|
37
|
+
"@radix-ui/react-alert-dialog": "^1.1.14",
|
|
38
|
+
"@radix-ui/react-aspect-ratio": "^1.1.7",
|
|
39
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
40
|
+
"@radix-ui/react-checkbox": "^1.3.2",
|
|
41
|
+
"@radix-ui/react-collapsible": "^1.1.11",
|
|
42
|
+
"@radix-ui/react-context-menu": "^2.2.15",
|
|
43
|
+
"@radix-ui/react-dialog": "^1.1.14",
|
|
44
|
+
"@radix-ui/react-dropdown-menu": "^2.1.15",
|
|
45
|
+
"@radix-ui/react-hover-card": "^1.1.14",
|
|
46
|
+
"@radix-ui/react-label": "^2.1.7",
|
|
47
|
+
"@radix-ui/react-menubar": "^1.1.15",
|
|
48
|
+
"@radix-ui/react-navigation-menu": "^1.2.13",
|
|
49
|
+
"@radix-ui/react-popover": "^1.1.14",
|
|
50
|
+
"@radix-ui/react-progress": "^1.1.7",
|
|
51
|
+
"@radix-ui/react-radio-group": "^1.3.7",
|
|
52
|
+
"@radix-ui/react-scroll-area": "^1.2.9",
|
|
53
|
+
"@radix-ui/react-select": "^2.2.5",
|
|
54
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
55
|
+
"@radix-ui/react-slider": "^1.3.5",
|
|
56
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
57
|
+
"@radix-ui/react-switch": "^1.2.5",
|
|
58
|
+
"@radix-ui/react-tabs": "^1.1.12",
|
|
59
|
+
"@radix-ui/react-toast": "^1.2.14",
|
|
60
|
+
"@radix-ui/react-toggle": "^1.1.9",
|
|
61
|
+
"@radix-ui/react-toggle-group": "^1.1.10",
|
|
62
|
+
"@radix-ui/react-tooltip": "^1.2.7",
|
|
63
|
+
"@supabase/supabase-js": "^2.98.0",
|
|
64
|
+
"@tanstack/react-query": "^5.83.0",
|
|
65
|
+
"class-variance-authority": "^0.7.1",
|
|
66
|
+
"clsx": "^2.1.1",
|
|
67
|
+
"cmdk": "^1.1.1",
|
|
68
|
+
"date-fns": "^3.6.0",
|
|
69
|
+
"embla-carousel-react": "^8.6.0",
|
|
70
|
+
"input-otp": "^1.4.2",
|
|
71
|
+
"lucide-react": "^0.462.0",
|
|
72
|
+
"next-themes": "^0.3.0",
|
|
73
|
+
"react": "^18.0.0",
|
|
74
|
+
"react-day-picker": "^8.10.1",
|
|
75
|
+
"react-dom": "^18.0.0",
|
|
76
|
+
"react-hook-form": "^7.61.1",
|
|
77
|
+
"react-resizable-panels": "^2.1.9",
|
|
78
|
+
"react-router-dom": "^6.30.1",
|
|
79
|
+
"recharts": "^2.15.4",
|
|
80
|
+
"sonner": "^1.7.4",
|
|
81
|
+
"tailwind-merge": "^2.6.0",
|
|
82
|
+
"tailwindcss-animate": "^1.0.7",
|
|
83
|
+
"vaul": "^0.9.9",
|
|
84
|
+
"zod": "^3.25.76"
|
|
85
|
+
},
|
|
86
|
+
"devDependencies": {
|
|
87
|
+
"@eslint/js": "^9.32.0",
|
|
88
|
+
"@tailwindcss/typography": "^0.5.16",
|
|
89
|
+
"@testing-library/jest-dom": "^6.6.0",
|
|
90
|
+
"@testing-library/react": "^16.0.0",
|
|
91
|
+
"@types/node": "^22.16.5",
|
|
92
|
+
"@types/react": "^18.3.23",
|
|
93
|
+
"@types/react-dom": "^18.3.7",
|
|
94
|
+
"@vitejs/plugin-react-swc": "^3.11.0",
|
|
95
|
+
"autoprefixer": "^10.4.21",
|
|
96
|
+
"eslint": "^9.32.0",
|
|
97
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
98
|
+
"eslint-plugin-react-refresh": "^0.4.20",
|
|
99
|
+
"globals": "^15.15.0",
|
|
100
|
+
"jsdom": "^28.1.0",
|
|
101
|
+
"lovable-tagger": "^1.1.13",
|
|
102
|
+
"postcss": "^8.5.6",
|
|
103
|
+
"tailwindcss": "^3.4.17",
|
|
104
|
+
"typescript": "^5.8.3",
|
|
105
|
+
"typescript-eslint": "^8.38.0",
|
|
106
|
+
"vite": "^7.3.1",
|
|
107
|
+
"vitest": "^3.2.4"
|
|
108
|
+
}
|
|
109
|
+
}
|