pxengine 0.1.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 +175 -0
- package/config/tailwind-preset.js +106 -0
- package/dist/index.d.mts +1259 -0
- package/dist/index.d.ts +1259 -0
- package/dist/index.js +5175 -0
- package/dist/index.mjs +4929 -0
- package/package.json +94 -0
- package/src/atoms/AccordionAtom.tsx +44 -0
- package/src/atoms/AlertAtom.tsx +46 -0
- package/src/atoms/AlertDialogAtom.tsx +66 -0
- package/src/atoms/AspectRatioAtom.tsx +27 -0
- package/src/atoms/AvatarAtom.tsx +20 -0
- package/src/atoms/BadgeAtom.tsx +25 -0
- package/src/atoms/BreadcrumbAtom.tsx +36 -0
- package/src/atoms/ButtonAtom.tsx +63 -0
- package/src/atoms/CalendarAtom.tsx +24 -0
- package/src/atoms/CardAtom.tsx +64 -0
- package/src/atoms/CarouselAtom.tsx +40 -0
- package/src/atoms/CollapsibleAtom.tsx +44 -0
- package/src/atoms/CommandAtom.tsx +46 -0
- package/src/atoms/DialogAtom.tsx +68 -0
- package/src/atoms/InputAtom.tsx +162 -0
- package/src/atoms/LayoutAtom.tsx +43 -0
- package/src/atoms/PaginationAtom.tsx +49 -0
- package/src/atoms/PopoverAtom.tsx +40 -0
- package/src/atoms/ProgressAtom.tsx +15 -0
- package/src/atoms/ScrollAreaAtom.tsx +31 -0
- package/src/atoms/SeparatorAtom.tsx +16 -0
- package/src/atoms/SheetAtom.tsx +72 -0
- package/src/atoms/SkeletonAtom.tsx +22 -0
- package/src/atoms/SpinnerAtom.tsx +26 -0
- package/src/atoms/TableAtom.tsx +58 -0
- package/src/atoms/TabsAtom.tsx +40 -0
- package/src/atoms/TextAtom.tsx +35 -0
- package/src/atoms/TooltipAtom.tsx +39 -0
- package/src/atoms/index.ts +28 -0
- package/src/components/index.ts +178 -0
- package/src/components/ui/accordion.tsx +56 -0
- package/src/components/ui/alert-dialog.tsx +139 -0
- package/src/components/ui/alert.tsx +59 -0
- package/src/components/ui/aspect-ratio.tsx +5 -0
- package/src/components/ui/avatar.tsx +50 -0
- package/src/components/ui/badge.tsx +36 -0
- package/src/components/ui/breadcrumb.tsx +115 -0
- package/src/components/ui/button-group.tsx +83 -0
- package/src/components/ui/button.tsx +56 -0
- package/src/components/ui/calendar.tsx +213 -0
- package/src/components/ui/card.tsx +79 -0
- package/src/components/ui/carousel.tsx +260 -0
- package/src/components/ui/chart.tsx +367 -0
- package/src/components/ui/checkbox.tsx +28 -0
- package/src/components/ui/collapsible.tsx +11 -0
- package/src/components/ui/command.tsx +153 -0
- package/src/components/ui/context-menu.tsx +198 -0
- package/src/components/ui/dialog.tsx +122 -0
- package/src/components/ui/drawer.tsx +116 -0
- package/src/components/ui/dropdown-menu.tsx +200 -0
- package/src/components/ui/empty.tsx +104 -0
- package/src/components/ui/field.tsx +244 -0
- package/src/components/ui/form.tsx +176 -0
- package/src/components/ui/hover-card.tsx +27 -0
- package/src/components/ui/input-group.tsx +168 -0
- package/src/components/ui/input-otp.tsx +69 -0
- package/src/components/ui/input.tsx +22 -0
- package/src/components/ui/item.tsx +193 -0
- package/src/components/ui/kbd.tsx +28 -0
- package/src/components/ui/label.tsx +26 -0
- package/src/components/ui/menubar.tsx +254 -0
- package/src/components/ui/navigation-menu.tsx +128 -0
- package/src/components/ui/pagination.tsx +117 -0
- package/src/components/ui/popover.tsx +29 -0
- package/src/components/ui/progress.tsx +28 -0
- package/src/components/ui/radio-group.tsx +42 -0
- package/src/components/ui/resizable.tsx +45 -0
- package/src/components/ui/scroll-area.tsx +46 -0
- package/src/components/ui/select.tsx +160 -0
- package/src/components/ui/separator.tsx +29 -0
- package/src/components/ui/sheet.tsx +140 -0
- package/src/components/ui/sidebar.tsx +771 -0
- package/src/components/ui/skeleton.tsx +15 -0
- package/src/components/ui/slider.tsx +26 -0
- package/src/components/ui/sonner.tsx +45 -0
- package/src/components/ui/spinner.tsx +16 -0
- package/src/components/ui/switch.tsx +27 -0
- package/src/components/ui/table.tsx +117 -0
- package/src/components/ui/tabs.tsx +53 -0
- package/src/components/ui/textarea.tsx +22 -0
- package/src/components/ui/toggle-group.tsx +61 -0
- package/src/components/ui/toggle.tsx +43 -0
- package/src/components/ui/tooltip.tsx +30 -0
- package/src/hooks/use-mobile.tsx +19 -0
- package/src/index.ts +24 -0
- package/src/lib/countries.ts +203 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/utils.ts +15 -0
- package/src/lib/validators/index.ts +1 -0
- package/src/lib/validators/theme.ts +148 -0
- package/src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx +123 -0
- package/src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.types.ts +13 -0
- package/src/molecules/creator-discovery/CampaignSeedCard/index.ts +2 -0
- package/src/molecules/creator-discovery/MCQCard/MCQCard.tsx +165 -0
- package/src/molecules/creator-discovery/MCQCard/MCQCard.types.ts +71 -0
- package/src/molecules/creator-discovery/MCQCard/index.ts +2 -0
- package/src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx +334 -0
- package/src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx +111 -0
- package/src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.types.ts +18 -0
- package/src/molecules/creator-discovery/SearchSpecCard/index.ts +3 -0
- package/src/molecules/creator-discovery/index.ts +3 -0
- package/src/molecules/generic/ActionButton/ActionButton.tsx +137 -0
- package/src/molecules/generic/ActionButton/ActionButton.types.ts +68 -0
- package/src/molecules/generic/ActionButton/index.ts +2 -0
- package/src/molecules/generic/EditableField/EditableField.tsx +229 -0
- package/src/molecules/generic/EditableField/EditableField.types.ts +73 -0
- package/src/molecules/generic/EditableField/index.ts +2 -0
- package/src/molecules/generic/FormCard/FormCard.tsx +136 -0
- package/src/molecules/generic/FormCard/FormCard.types.ts +93 -0
- package/src/molecules/generic/FormCard/index.ts +2 -0
- package/src/molecules/generic/index.ts +3 -0
- package/src/molecules/index.ts +2 -0
- package/src/render/PXEngineRenderer.tsx +272 -0
- package/src/render/index.ts +1 -0
- package/src/styles/globals.css +146 -0
- package/src/types/atoms.ts +294 -0
- package/src/types/common.ts +116 -0
- package/src/types/index.ts +3 -0
- package/src/types/molecules.ts +54 -0
- package/src/types/schema.ts +12 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common types used across the library
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export type LayoutDirection = "vertical" | "horizontal" | "grid";
|
|
6
|
+
export type GapSize = "none" | "sm" | "md" | "lg" | "xl";
|
|
7
|
+
export type TextVariant = "h1" | "h2" | "h3" | "h4" | "p" | "small" | "muted";
|
|
8
|
+
export type InputType = "text" | "email" | "password" | "number" | "search" | "tel" | "url";
|
|
9
|
+
export type ButtonVariant = "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
|
|
10
|
+
export type ButtonSize = "default" | "sm" | "lg" | "icon";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Field types for EditableField molecule
|
|
14
|
+
*/
|
|
15
|
+
export type FieldType = "text" | "textarea" | "number" | "slider" | "checkbox" | "select" | "custom";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Field configuration for forms
|
|
19
|
+
*/
|
|
20
|
+
export interface FieldConfig {
|
|
21
|
+
key: string;
|
|
22
|
+
label: string;
|
|
23
|
+
type: FieldType;
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
required?: boolean;
|
|
26
|
+
options?: string[] | Array<{ label: string; value: string }>;
|
|
27
|
+
sliderConfig?: SliderConfig;
|
|
28
|
+
numberConfig?: NumberConfig;
|
|
29
|
+
rows?: number;
|
|
30
|
+
renderDisplay?: (value: any) => React.ReactNode;
|
|
31
|
+
renderEdit?: (value: any, onChange: (value: any) => void) => React.ReactNode;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Slider configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface SliderConfig {
|
|
38
|
+
min: number;
|
|
39
|
+
max: number;
|
|
40
|
+
step: number;
|
|
41
|
+
marks?: Record<number, string>;
|
|
42
|
+
formatValue?: (value: any) => string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Number input configuration
|
|
47
|
+
*/
|
|
48
|
+
export interface NumberConfig {
|
|
49
|
+
min?: number;
|
|
50
|
+
max?: number;
|
|
51
|
+
step?: number;
|
|
52
|
+
formatValue?: (value: any) => string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Campaign Seed data structure
|
|
57
|
+
*/
|
|
58
|
+
export interface CampaignSeed {
|
|
59
|
+
brand: string;
|
|
60
|
+
objective: string;
|
|
61
|
+
budget_hint: { min: number; max: number } | string;
|
|
62
|
+
geo_or_audience: string;
|
|
63
|
+
timeline_opt: string;
|
|
64
|
+
notes: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Search Specification data structure
|
|
69
|
+
*/
|
|
70
|
+
export interface SearchSpec {
|
|
71
|
+
platforms: string[];
|
|
72
|
+
follower_range: { min: number; max: number };
|
|
73
|
+
geography: string[];
|
|
74
|
+
keyword_bundles: KeywordBundle[];
|
|
75
|
+
desired_candidate_count: number;
|
|
76
|
+
filters?: SearchFilter[];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Keyword bundle for search
|
|
81
|
+
*/
|
|
82
|
+
export interface KeywordBundle {
|
|
83
|
+
keywords: string[];
|
|
84
|
+
priority: number;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Search filter
|
|
89
|
+
*/
|
|
90
|
+
export interface SearchFilter {
|
|
91
|
+
field: string;
|
|
92
|
+
value: any;
|
|
93
|
+
order: ">" | "<" | "=" | ">=" | "<=";
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Campaign concept
|
|
98
|
+
*/
|
|
99
|
+
export interface Concept {
|
|
100
|
+
id: string;
|
|
101
|
+
title: string;
|
|
102
|
+
description: string;
|
|
103
|
+
targetAudience: string;
|
|
104
|
+
platforms: string[];
|
|
105
|
+
estimatedReach?: number;
|
|
106
|
+
estimatedBudget?: { min: number; max: number };
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Progress step
|
|
111
|
+
*/
|
|
112
|
+
export interface ProgressStep {
|
|
113
|
+
label: string;
|
|
114
|
+
status: "pending" | "in-progress" | "complete" | "error";
|
|
115
|
+
progress?: number;
|
|
116
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { BaseAtom } from "./atoms";
|
|
2
|
+
|
|
3
|
+
export interface BaseMolecule extends BaseAtom {}
|
|
4
|
+
|
|
5
|
+
export interface CampaignSeedCardAtom extends BaseMolecule {
|
|
6
|
+
type: "campaign-seed";
|
|
7
|
+
data: Record<string, any>;
|
|
8
|
+
title?: string;
|
|
9
|
+
isLatestMessage?: boolean;
|
|
10
|
+
selectionStatus?: "user" | "agent";
|
|
11
|
+
countdown?: number;
|
|
12
|
+
isPaused?: boolean;
|
|
13
|
+
proceedAction?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface SearchSpecCardAtom extends BaseMolecule {
|
|
17
|
+
type: "search-spec";
|
|
18
|
+
data: Record<string, any>;
|
|
19
|
+
title?: string;
|
|
20
|
+
version?: number;
|
|
21
|
+
isLatestMessage?: boolean;
|
|
22
|
+
selectionStatus?: "user" | "agent";
|
|
23
|
+
countdown?: number;
|
|
24
|
+
isPaused?: boolean;
|
|
25
|
+
proceedAction?: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface MCQCardAtom extends BaseMolecule {
|
|
29
|
+
type: "mcq";
|
|
30
|
+
question: string;
|
|
31
|
+
options: Record<string, string>;
|
|
32
|
+
recommended?: string;
|
|
33
|
+
selectedOption?: string;
|
|
34
|
+
isLatestMessage?: boolean;
|
|
35
|
+
countdown?: number;
|
|
36
|
+
isPaused?: boolean;
|
|
37
|
+
selectionStatus?: "user" | "agent";
|
|
38
|
+
proceedAction?: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface ActionButtonAtom extends BaseMolecule {
|
|
42
|
+
type: "action-button";
|
|
43
|
+
label: string;
|
|
44
|
+
countdown?: number;
|
|
45
|
+
isPaused?: boolean;
|
|
46
|
+
secondaryLabel?: string;
|
|
47
|
+
action?: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type UIMolecule =
|
|
51
|
+
| CampaignSeedCardAtom
|
|
52
|
+
| SearchSpecCardAtom
|
|
53
|
+
| MCQCardAtom
|
|
54
|
+
| ActionButtonAtom;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UIAtom } from "./atoms";
|
|
2
|
+
import { UIMolecule } from "./molecules";
|
|
3
|
+
|
|
4
|
+
export * from "./atoms";
|
|
5
|
+
export * from "./molecules";
|
|
6
|
+
|
|
7
|
+
export type UIComponent = UIAtom | UIMolecule;
|
|
8
|
+
|
|
9
|
+
export interface UISchema {
|
|
10
|
+
version: string;
|
|
11
|
+
root: UIComponent;
|
|
12
|
+
}
|