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.
Files changed (127) hide show
  1. package/README.md +175 -0
  2. package/config/tailwind-preset.js +106 -0
  3. package/dist/index.d.mts +1259 -0
  4. package/dist/index.d.ts +1259 -0
  5. package/dist/index.js +5175 -0
  6. package/dist/index.mjs +4929 -0
  7. package/package.json +94 -0
  8. package/src/atoms/AccordionAtom.tsx +44 -0
  9. package/src/atoms/AlertAtom.tsx +46 -0
  10. package/src/atoms/AlertDialogAtom.tsx +66 -0
  11. package/src/atoms/AspectRatioAtom.tsx +27 -0
  12. package/src/atoms/AvatarAtom.tsx +20 -0
  13. package/src/atoms/BadgeAtom.tsx +25 -0
  14. package/src/atoms/BreadcrumbAtom.tsx +36 -0
  15. package/src/atoms/ButtonAtom.tsx +63 -0
  16. package/src/atoms/CalendarAtom.tsx +24 -0
  17. package/src/atoms/CardAtom.tsx +64 -0
  18. package/src/atoms/CarouselAtom.tsx +40 -0
  19. package/src/atoms/CollapsibleAtom.tsx +44 -0
  20. package/src/atoms/CommandAtom.tsx +46 -0
  21. package/src/atoms/DialogAtom.tsx +68 -0
  22. package/src/atoms/InputAtom.tsx +162 -0
  23. package/src/atoms/LayoutAtom.tsx +43 -0
  24. package/src/atoms/PaginationAtom.tsx +49 -0
  25. package/src/atoms/PopoverAtom.tsx +40 -0
  26. package/src/atoms/ProgressAtom.tsx +15 -0
  27. package/src/atoms/ScrollAreaAtom.tsx +31 -0
  28. package/src/atoms/SeparatorAtom.tsx +16 -0
  29. package/src/atoms/SheetAtom.tsx +72 -0
  30. package/src/atoms/SkeletonAtom.tsx +22 -0
  31. package/src/atoms/SpinnerAtom.tsx +26 -0
  32. package/src/atoms/TableAtom.tsx +58 -0
  33. package/src/atoms/TabsAtom.tsx +40 -0
  34. package/src/atoms/TextAtom.tsx +35 -0
  35. package/src/atoms/TooltipAtom.tsx +39 -0
  36. package/src/atoms/index.ts +28 -0
  37. package/src/components/index.ts +178 -0
  38. package/src/components/ui/accordion.tsx +56 -0
  39. package/src/components/ui/alert-dialog.tsx +139 -0
  40. package/src/components/ui/alert.tsx +59 -0
  41. package/src/components/ui/aspect-ratio.tsx +5 -0
  42. package/src/components/ui/avatar.tsx +50 -0
  43. package/src/components/ui/badge.tsx +36 -0
  44. package/src/components/ui/breadcrumb.tsx +115 -0
  45. package/src/components/ui/button-group.tsx +83 -0
  46. package/src/components/ui/button.tsx +56 -0
  47. package/src/components/ui/calendar.tsx +213 -0
  48. package/src/components/ui/card.tsx +79 -0
  49. package/src/components/ui/carousel.tsx +260 -0
  50. package/src/components/ui/chart.tsx +367 -0
  51. package/src/components/ui/checkbox.tsx +28 -0
  52. package/src/components/ui/collapsible.tsx +11 -0
  53. package/src/components/ui/command.tsx +153 -0
  54. package/src/components/ui/context-menu.tsx +198 -0
  55. package/src/components/ui/dialog.tsx +122 -0
  56. package/src/components/ui/drawer.tsx +116 -0
  57. package/src/components/ui/dropdown-menu.tsx +200 -0
  58. package/src/components/ui/empty.tsx +104 -0
  59. package/src/components/ui/field.tsx +244 -0
  60. package/src/components/ui/form.tsx +176 -0
  61. package/src/components/ui/hover-card.tsx +27 -0
  62. package/src/components/ui/input-group.tsx +168 -0
  63. package/src/components/ui/input-otp.tsx +69 -0
  64. package/src/components/ui/input.tsx +22 -0
  65. package/src/components/ui/item.tsx +193 -0
  66. package/src/components/ui/kbd.tsx +28 -0
  67. package/src/components/ui/label.tsx +26 -0
  68. package/src/components/ui/menubar.tsx +254 -0
  69. package/src/components/ui/navigation-menu.tsx +128 -0
  70. package/src/components/ui/pagination.tsx +117 -0
  71. package/src/components/ui/popover.tsx +29 -0
  72. package/src/components/ui/progress.tsx +28 -0
  73. package/src/components/ui/radio-group.tsx +42 -0
  74. package/src/components/ui/resizable.tsx +45 -0
  75. package/src/components/ui/scroll-area.tsx +46 -0
  76. package/src/components/ui/select.tsx +160 -0
  77. package/src/components/ui/separator.tsx +29 -0
  78. package/src/components/ui/sheet.tsx +140 -0
  79. package/src/components/ui/sidebar.tsx +771 -0
  80. package/src/components/ui/skeleton.tsx +15 -0
  81. package/src/components/ui/slider.tsx +26 -0
  82. package/src/components/ui/sonner.tsx +45 -0
  83. package/src/components/ui/spinner.tsx +16 -0
  84. package/src/components/ui/switch.tsx +27 -0
  85. package/src/components/ui/table.tsx +117 -0
  86. package/src/components/ui/tabs.tsx +53 -0
  87. package/src/components/ui/textarea.tsx +22 -0
  88. package/src/components/ui/toggle-group.tsx +61 -0
  89. package/src/components/ui/toggle.tsx +43 -0
  90. package/src/components/ui/tooltip.tsx +30 -0
  91. package/src/hooks/use-mobile.tsx +19 -0
  92. package/src/index.ts +24 -0
  93. package/src/lib/countries.ts +203 -0
  94. package/src/lib/index.ts +2 -0
  95. package/src/lib/utils.ts +15 -0
  96. package/src/lib/validators/index.ts +1 -0
  97. package/src/lib/validators/theme.ts +148 -0
  98. package/src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx +123 -0
  99. package/src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.types.ts +13 -0
  100. package/src/molecules/creator-discovery/CampaignSeedCard/index.ts +2 -0
  101. package/src/molecules/creator-discovery/MCQCard/MCQCard.tsx +165 -0
  102. package/src/molecules/creator-discovery/MCQCard/MCQCard.types.ts +71 -0
  103. package/src/molecules/creator-discovery/MCQCard/index.ts +2 -0
  104. package/src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx +334 -0
  105. package/src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx +111 -0
  106. package/src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.types.ts +18 -0
  107. package/src/molecules/creator-discovery/SearchSpecCard/index.ts +3 -0
  108. package/src/molecules/creator-discovery/index.ts +3 -0
  109. package/src/molecules/generic/ActionButton/ActionButton.tsx +137 -0
  110. package/src/molecules/generic/ActionButton/ActionButton.types.ts +68 -0
  111. package/src/molecules/generic/ActionButton/index.ts +2 -0
  112. package/src/molecules/generic/EditableField/EditableField.tsx +229 -0
  113. package/src/molecules/generic/EditableField/EditableField.types.ts +73 -0
  114. package/src/molecules/generic/EditableField/index.ts +2 -0
  115. package/src/molecules/generic/FormCard/FormCard.tsx +136 -0
  116. package/src/molecules/generic/FormCard/FormCard.types.ts +93 -0
  117. package/src/molecules/generic/FormCard/index.ts +2 -0
  118. package/src/molecules/generic/index.ts +3 -0
  119. package/src/molecules/index.ts +2 -0
  120. package/src/render/PXEngineRenderer.tsx +272 -0
  121. package/src/render/index.ts +1 -0
  122. package/src/styles/globals.css +146 -0
  123. package/src/types/atoms.ts +294 -0
  124. package/src/types/common.ts +116 -0
  125. package/src/types/index.ts +3 -0
  126. package/src/types/molecules.ts +54 -0
  127. 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,3 @@
1
+ export * from "./atoms";
2
+ export * from "./molecules";
3
+ export * from "./schema";
@@ -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
+ }