pxengine 0.1.12 → 0.1.14

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 (186) hide show
  1. package/dist/index.cjs +227 -291
  2. package/dist/index.d.cts +15 -11
  3. package/dist/index.d.ts +15 -11
  4. package/dist/index.js +225 -287
  5. package/dist/registry.json +20 -22
  6. package/package.json +2 -4
  7. package/config/tailwind-preset.js +0 -106
  8. package/src/atoms/AccordionAtom.tsx +0 -44
  9. package/src/atoms/AlertAtom.tsx +0 -48
  10. package/src/atoms/AlertDialogAtom.tsx +0 -66
  11. package/src/atoms/AspectRatioAtom.tsx +0 -27
  12. package/src/atoms/AvatarAtom.tsx +0 -21
  13. package/src/atoms/BadgeAtom.tsx +0 -35
  14. package/src/atoms/BreadcrumbAtom.tsx +0 -36
  15. package/src/atoms/ButtonAtom.tsx +0 -65
  16. package/src/atoms/CalendarAtom.tsx +0 -24
  17. package/src/atoms/CardAtom.tsx +0 -66
  18. package/src/atoms/CarouselAtom.tsx +0 -40
  19. package/src/atoms/ChartAtom.tsx +0 -192
  20. package/src/atoms/CheckboxAtom.tsx +0 -33
  21. package/src/atoms/CollapsibleAtom.tsx +0 -44
  22. package/src/atoms/CommandAtom.tsx +0 -46
  23. package/src/atoms/ContextMenuAtom.tsx +0 -49
  24. package/src/atoms/DialogAtom.tsx +0 -68
  25. package/src/atoms/DrawerAtom.tsx +0 -49
  26. package/src/atoms/DropdownMenuAtom.tsx +0 -49
  27. package/src/atoms/FormInputAtom.tsx +0 -101
  28. package/src/atoms/FormSelectAtom.tsx +0 -110
  29. package/src/atoms/FormTextareaAtom.tsx +0 -93
  30. package/src/atoms/InputAtom.tsx +0 -216
  31. package/src/atoms/InputOTPAtom.tsx +0 -49
  32. package/src/atoms/KbdAtom.tsx +0 -25
  33. package/src/atoms/LabelAtom.tsx +0 -23
  34. package/src/atoms/LayoutAtom.tsx +0 -45
  35. package/src/atoms/PaginationAtom.tsx +0 -49
  36. package/src/atoms/PopoverAtom.tsx +0 -40
  37. package/src/atoms/ProgressAtom.tsx +0 -15
  38. package/src/atoms/RadioGroupAtom.tsx +0 -31
  39. package/src/atoms/RatingAtom.tsx +0 -37
  40. package/src/atoms/ResizableAtom.tsx +0 -51
  41. package/src/atoms/ScrollAreaAtom.tsx +0 -31
  42. package/src/atoms/SeparatorAtom.tsx +0 -16
  43. package/src/atoms/SheetAtom.tsx +0 -72
  44. package/src/atoms/SkeletonAtom.tsx +0 -22
  45. package/src/atoms/SliderAtom.tsx +0 -32
  46. package/src/atoms/SpinnerAtom.tsx +0 -26
  47. package/src/atoms/SwitchAtom.tsx +0 -32
  48. package/src/atoms/TableAtom.tsx +0 -60
  49. package/src/atoms/TabsAtom.tsx +0 -40
  50. package/src/atoms/TextAtom.tsx +0 -36
  51. package/src/atoms/TextareaAtom.tsx +0 -42
  52. package/src/atoms/TimelineAtom.tsx +0 -77
  53. package/src/atoms/ToggleAtom.tsx +0 -36
  54. package/src/atoms/TooltipAtom.tsx +0 -39
  55. package/src/atoms/VideoAtom.tsx +0 -34
  56. package/src/atoms/index.ts +0 -49
  57. package/src/components/index.ts +0 -178
  58. package/src/components/ui/accordion.tsx +0 -56
  59. package/src/components/ui/alert-dialog.tsx +0 -139
  60. package/src/components/ui/alert.tsx +0 -59
  61. package/src/components/ui/aspect-ratio.tsx +0 -5
  62. package/src/components/ui/avatar.tsx +0 -50
  63. package/src/components/ui/badge.tsx +0 -36
  64. package/src/components/ui/breadcrumb.tsx +0 -115
  65. package/src/components/ui/button-group.tsx +0 -83
  66. package/src/components/ui/button.tsx +0 -56
  67. package/src/components/ui/calendar.tsx +0 -213
  68. package/src/components/ui/card.tsx +0 -79
  69. package/src/components/ui/carousel.tsx +0 -260
  70. package/src/components/ui/chart.tsx +0 -367
  71. package/src/components/ui/checkbox.tsx +0 -28
  72. package/src/components/ui/collapsible.tsx +0 -11
  73. package/src/components/ui/command.tsx +0 -153
  74. package/src/components/ui/context-menu.tsx +0 -198
  75. package/src/components/ui/dialog.tsx +0 -122
  76. package/src/components/ui/drawer.tsx +0 -116
  77. package/src/components/ui/dropdown-menu.tsx +0 -200
  78. package/src/components/ui/empty.tsx +0 -104
  79. package/src/components/ui/field.tsx +0 -244
  80. package/src/components/ui/form.tsx +0 -176
  81. package/src/components/ui/hover-card.tsx +0 -27
  82. package/src/components/ui/index.ts +0 -54
  83. package/src/components/ui/input-group.tsx +0 -168
  84. package/src/components/ui/input-otp.tsx +0 -69
  85. package/src/components/ui/input.tsx +0 -22
  86. package/src/components/ui/item.tsx +0 -193
  87. package/src/components/ui/kbd.tsx +0 -28
  88. package/src/components/ui/label.tsx +0 -26
  89. package/src/components/ui/menubar.tsx +0 -254
  90. package/src/components/ui/navigation-menu.tsx +0 -128
  91. package/src/components/ui/pagination.tsx +0 -117
  92. package/src/components/ui/popover.tsx +0 -29
  93. package/src/components/ui/progress.tsx +0 -28
  94. package/src/components/ui/radio-group.tsx +0 -42
  95. package/src/components/ui/resizable.tsx +0 -44
  96. package/src/components/ui/scroll-area.tsx +0 -46
  97. package/src/components/ui/select.tsx +0 -160
  98. package/src/components/ui/separator.tsx +0 -29
  99. package/src/components/ui/sheet.tsx +0 -140
  100. package/src/components/ui/sidebar.tsx +0 -771
  101. package/src/components/ui/skeleton.tsx +0 -15
  102. package/src/components/ui/slider.tsx +0 -26
  103. package/src/components/ui/sonner.tsx +0 -45
  104. package/src/components/ui/spinner.tsx +0 -16
  105. package/src/components/ui/switch.tsx +0 -27
  106. package/src/components/ui/table.tsx +0 -117
  107. package/src/components/ui/tabs.tsx +0 -53
  108. package/src/components/ui/textarea.tsx +0 -22
  109. package/src/components/ui/toggle-group.tsx +0 -61
  110. package/src/components/ui/toggle.tsx +0 -43
  111. package/src/components/ui/tooltip.tsx +0 -30
  112. package/src/hooks/use-mobile.tsx +0 -19
  113. package/src/index.ts +0 -24
  114. package/src/lib/countries.ts +0 -203
  115. package/src/lib/index.ts +0 -2
  116. package/src/lib/utils.ts +0 -15
  117. package/src/lib/validators/index.ts +0 -1
  118. package/src/lib/validators/theme.ts +0 -148
  119. package/src/molecules/creator-discovery/AudienceDemographicsCard/AudienceDemographicsCard.tsx +0 -44
  120. package/src/molecules/creator-discovery/AudienceDemographicsCard/index.ts +0 -1
  121. package/src/molecules/creator-discovery/AudienceMetricCard/AudienceMetricCard.tsx +0 -50
  122. package/src/molecules/creator-discovery/AudienceMetricCard/index.ts +0 -1
  123. package/src/molecules/creator-discovery/BrandAffinityGroup/BrandAffinityGroup.tsx +0 -36
  124. package/src/molecules/creator-discovery/BrandAffinityGroup/index.ts +0 -1
  125. package/src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx +0 -123
  126. package/src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.types.ts +0 -13
  127. package/src/molecules/creator-discovery/CampaignSeedCard/index.ts +0 -2
  128. package/src/molecules/creator-discovery/ContentPreviewGallery/ContentPreviewGallery.tsx +0 -41
  129. package/src/molecules/creator-discovery/ContentPreviewGallery/index.ts +0 -1
  130. package/src/molecules/creator-discovery/CreatorActionHeader/CreatorActionHeader.tsx +0 -77
  131. package/src/molecules/creator-discovery/CreatorActionHeader/index.ts +0 -1
  132. package/src/molecules/creator-discovery/CreatorGridCard/CreatorGridCard.tsx +0 -104
  133. package/src/molecules/creator-discovery/CreatorGridCard/index.ts +0 -1
  134. package/src/molecules/creator-discovery/CreatorProfileSummary/CreatorProfileSummary.tsx +0 -65
  135. package/src/molecules/creator-discovery/CreatorProfileSummary/index.ts +0 -1
  136. package/src/molecules/creator-discovery/GrowthChartCard/GrowthChartCard.tsx +0 -58
  137. package/src/molecules/creator-discovery/GrowthChartCard/index.ts +0 -1
  138. package/src/molecules/creator-discovery/MCQCard/MCQCard.tsx +0 -165
  139. package/src/molecules/creator-discovery/MCQCard/MCQCard.types.ts +0 -71
  140. package/src/molecules/creator-discovery/MCQCard/index.ts +0 -2
  141. package/src/molecules/creator-discovery/PlatformIconGroup/PlatformIconGroup.tsx +0 -72
  142. package/src/molecules/creator-discovery/PlatformIconGroup/index.ts +0 -1
  143. package/src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx +0 -334
  144. package/src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx +0 -111
  145. package/src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.types.ts +0 -18
  146. package/src/molecules/creator-discovery/SearchSpecCard/index.ts +0 -3
  147. package/src/molecules/creator-discovery/TopPostsGrid/TopPostsGrid.tsx +0 -49
  148. package/src/molecules/creator-discovery/TopPostsGrid/index.ts +0 -1
  149. package/src/molecules/creator-discovery/index.ts +0 -13
  150. package/src/molecules/generic/ActionButton/ActionButton.tsx +0 -137
  151. package/src/molecules/generic/ActionButton/ActionButton.types.ts +0 -68
  152. package/src/molecules/generic/ActionButton/index.ts +0 -2
  153. package/src/molecules/generic/DataGrid/DataGrid.tsx +0 -102
  154. package/src/molecules/generic/DataGrid/index.ts +0 -1
  155. package/src/molecules/generic/EditableField/EditableField.tsx +0 -229
  156. package/src/molecules/generic/EditableField/EditableField.types.ts +0 -73
  157. package/src/molecules/generic/EditableField/index.ts +0 -2
  158. package/src/molecules/generic/EmptyState/EmptyState.tsx +0 -61
  159. package/src/molecules/generic/EmptyState/index.ts +0 -1
  160. package/src/molecules/generic/FileUpload/FileUpload.tsx +0 -62
  161. package/src/molecules/generic/FileUpload/index.ts +0 -1
  162. package/src/molecules/generic/FilterBar/FilterBar.tsx +0 -54
  163. package/src/molecules/generic/FilterBar/index.ts +0 -1
  164. package/src/molecules/generic/FormCard/FormCard.tsx +0 -136
  165. package/src/molecules/generic/FormCard/FormCard.types.ts +0 -93
  166. package/src/molecules/generic/FormCard/index.ts +0 -2
  167. package/src/molecules/generic/LoadingOverlay/LoadingOverlay.tsx +0 -39
  168. package/src/molecules/generic/LoadingOverlay/index.ts +0 -1
  169. package/src/molecules/generic/NotificationList/NotificationList.tsx +0 -80
  170. package/src/molecules/generic/NotificationList/index.ts +0 -1
  171. package/src/molecules/generic/StatsGrid/StatsGrid.tsx +0 -80
  172. package/src/molecules/generic/StatsGrid/index.ts +0 -1
  173. package/src/molecules/generic/StepWizard/StepWizard.tsx +0 -67
  174. package/src/molecules/generic/StepWizard/index.ts +0 -1
  175. package/src/molecules/generic/TagCloud/TagCloud.tsx +0 -32
  176. package/src/molecules/generic/TagCloud/index.ts +0 -1
  177. package/src/molecules/generic/index.ts +0 -12
  178. package/src/molecules/index.ts +0 -2
  179. package/src/render/PXEngineRenderer.tsx +0 -458
  180. package/src/render/index.ts +0 -1
  181. package/src/styles/globals.css +0 -146
  182. package/src/types/atoms.ts +0 -450
  183. package/src/types/common.ts +0 -116
  184. package/src/types/index.ts +0 -3
  185. package/src/types/molecules.ts +0 -279
  186. package/src/types/schema.ts +0 -12
@@ -1,203 +0,0 @@
1
- export const countries = [
2
- { code: "AF", name: "Afghanistan", flag: "🇦🇫" },
3
- { code: "AL", name: "Albania", flag: "🇦🇱" },
4
- { code: "DZ", name: "Algeria", flag: "🇩🇿" },
5
- { code: "AD", name: "Andorra", flag: "🇦🇩" },
6
- { code: "AO", name: "Angola", flag: "🇦🇴" },
7
- { code: "AG", name: "Antigua and Barbuda", flag: "🇦🇬" },
8
- { code: "AR", name: "Argentina", flag: "🇦🇷" },
9
- { code: "AM", name: "Armenia", flag: "🇦🇲" },
10
- { code: "AU", name: "Australia", flag: "🇦🇺" },
11
- { code: "AT", name: "Austria", flag: "🇦🇹" },
12
- { code: "AZ", name: "Azerbaijan", flag: "🇦🇿" },
13
- { code: "BS", name: "Bahamas", flag: "🇧🇸" },
14
- { code: "BH", name: "Bahrain", flag: "🇧🇭" },
15
- { code: "BD", name: "Bangladesh", flag: "🇧🇩" },
16
- { code: "BB", name: "Barbados", flag: "🇧🇧" },
17
- { code: "BY", name: "Belarus", flag: "🇧🇾" },
18
- { code: "BE", name: "Belgium", flag: "🇧🇪" },
19
- { code: "BZ", name: "Belize", flag: "🇧🇿" },
20
- { code: "BJ", name: "Benin", flag: "🇧🇯" },
21
- { code: "BT", name: "Bhutan", flag: "🇧🇹" },
22
- { code: "BO", name: "Bolivia", flag: "🇧🇴" },
23
- { code: "BA", name: "Bosnia and Herzegovina", flag: "🇧🇦" },
24
- { code: "BW", name: "Botswana", flag: "🇧🇼" },
25
- { code: "BR", name: "Brazil", flag: "🇧🇷" },
26
- { code: "BN", name: "Brunei", flag: "🇧🇳" },
27
- { code: "BG", name: "Bulgaria", flag: "🇧🇬" },
28
- { code: "BF", name: "Burkina Faso", flag: "🇧🇫" },
29
- { code: "BI", name: "Burundi", flag: "🇧🇮" },
30
- { code: "CV", name: "Cabo Verde", flag: "🇨🇻" },
31
- { code: "KH", name: "Cambodia", flag: "🇰🇭" },
32
- { code: "CM", name: "Cameroon", flag: "🇨🇲" },
33
- { code: "CA", name: "Canada", flag: "🇨🇦" },
34
- { code: "CF", name: "Central African Republic", flag: "🇨🇫" },
35
- { code: "TD", name: "Chad", flag: "🇹🇩" },
36
- { code: "CL", name: "Chile", flag: "🇨🇱" },
37
- { code: "CN", name: "China", flag: "🇨🇳" },
38
- { code: "CO", name: "Colombia", flag: "🇨🇴" },
39
- { code: "KM", name: "Comoros", flag: "🇰🇲" },
40
- { code: "CG", name: "Congo", flag: "🇨🇬" },
41
- { code: "CD", name: "Democratic Republic of the Congo", flag: "🇨🇩" },
42
- { code: "CR", name: "Costa Rica", flag: "🇨🇷" },
43
- { code: "HR", name: "Croatia", flag: "🇭🇷" },
44
- { code: "CU", name: "Cuba", flag: "🇨🇺" },
45
- { code: "CY", name: "Cyprus", flag: "🇨🇾" },
46
- { code: "CZ", name: "Czech Republic", flag: "🇨🇿" },
47
- { code: "CI", name: "Ivory Coast", flag: "🇨🇮" },
48
- { code: "DK", name: "Denmark", flag: "🇩🇰" },
49
- { code: "DJ", name: "Djibouti", flag: "🇩🇯" },
50
- { code: "DM", name: "Dominica", flag: "🇩🇲" },
51
- { code: "DO", name: "Dominican Republic", flag: "🇩🇴" },
52
- { code: "EC", name: "Ecuador", flag: "🇪🇨" },
53
- { code: "EG", name: "Egypt", flag: "🇪🇬" },
54
- { code: "SV", name: "El Salvador", flag: "🇸🇻" },
55
- { code: "GQ", name: "Equatorial Guinea", flag: "🇬🇶" },
56
- { code: "ER", name: "Eritrea", flag: "🇪🇷" },
57
- { code: "EE", name: "Estonia", flag: "🇪🇪" },
58
- { code: "SZ", name: "Eswatini", flag: "🇸🇿" },
59
- { code: "ET", name: "Ethiopia", flag: "🇪🇹" },
60
- { code: "FJ", name: "Fiji", flag: "🇫🇯" },
61
- { code: "FI", name: "Finland", flag: "🇫🇮" },
62
- { code: "FR", name: "France", flag: "🇫🇷" },
63
- { code: "GA", name: "Gabon", flag: "🇬🇦" },
64
- { code: "GM", name: "Gambia", flag: "🇬🇲" },
65
- { code: "GE", name: "Georgia", flag: "🇬🇪" },
66
- { code: "DE", name: "Germany", flag: "🇩🇪" },
67
- { code: "GH", name: "Ghana", flag: "🇬🇭" },
68
- { code: "GR", name: "Greece", flag: "🇬🇷" },
69
- { code: "GD", name: "Grenada", flag: "🇬🇩" },
70
- { code: "GT", name: "Guatemala", flag: "🇬🇹" },
71
- { code: "GN", name: "Guinea", flag: "🇬🇳" },
72
- { code: "GW", name: "Guinea-Bissau", flag: "🇬🇼" },
73
- { code: "GY", name: "Guyana", flag: "🇬🇾" },
74
- { code: "HT", name: "Haiti", flag: "🇭🇹" },
75
- { code: "HN", name: "Honduras", flag: "🇭🇳" },
76
- { code: "HU", name: "Hungary", flag: "🇭🇺" },
77
- { code: "HK", name: "Hong Kong", flag: "🇭🇰" },
78
- { code: "IS", name: "Iceland", flag: "🇮🇸" },
79
- { code: "IN", name: "India", flag: "🇮🇳" },
80
- { code: "ID", name: "Indonesia", flag: "🇮🇩" },
81
- { code: "IR", name: "Iran", flag: "🇮🇷" },
82
- { code: "IQ", name: "Iraq", flag: "🇮🇶" },
83
- { code: "IE", name: "Ireland", flag: "🇮🇪" },
84
- { code: "IL", name: "Israel", flag: "🇮🇱" },
85
- { code: "IT", name: "Italy", flag: "🇮🇹" },
86
- { code: "JM", name: "Jamaica", flag: "🇯🇲" },
87
- { code: "JP", name: "Japan", flag: "🇯🇵" },
88
- { code: "JO", name: "Jordan", flag: "🇯🇴" },
89
- { code: "KZ", name: "Kazakhstan", flag: "🇰🇿" },
90
- { code: "KE", name: "Kenya", flag: "🇰🇪" },
91
- { code: "KI", name: "Kiribati", flag: "🇰🇮" },
92
- { code: "KP", name: "North Korea", flag: "🇰🇵" },
93
- { code: "KR", name: "South Korea", flag: "🇰🇷" },
94
- { code: "KW", name: "Kuwait", flag: "🇰🇼" },
95
- { code: "KG", name: "Kyrgyzstan", flag: "🇰🇬" },
96
- { code: "LA", name: "Laos", flag: "🇱🇦" },
97
- { code: "LV", name: "Latvia", flag: "🇱🇻" },
98
- { code: "LB", name: "Lebanon", flag: "🇱🇧" },
99
- { code: "LS", name: "Lesotho", flag: "🇱🇸" },
100
- { code: "LR", name: "Liberia", flag: "🇱🇷" },
101
- { code: "LY", name: "Libya", flag: "🇱🇾" },
102
- { code: "LI", name: "Liechtenstein", flag: "🇱🇮" },
103
- { code: "LT", name: "Lithuania", flag: "🇱🇹" },
104
- { code: "LU", name: "Luxembourg", flag: "🇱🇺" },
105
- { code: "MG", name: "Madagascar", flag: "🇲🇬" },
106
- { code: "MW", name: "Malawi", flag: "🇲🇼" },
107
- { code: "MY", name: "Malaysia", flag: "🇲🇾" },
108
- { code: "MV", name: "Maldives", flag: "🇲🇻" },
109
- { code: "ML", name: "Mali", flag: "🇲🇱" },
110
- { code: "MT", name: "Malta", flag: "🇲🇹" },
111
- { code: "MH", name: "Marshall Islands", flag: "🇲🇭" },
112
- { code: "MR", name: "Mauritania", flag: "🇲🇷" },
113
- { code: "MU", name: "Mauritius", flag: "🇲🇺" },
114
- { code: "MX", name: "Mexico", flag: "🇲🇽" },
115
- { code: "FM", name: "Micronesia", flag: "🇫🇲" },
116
- { code: "MD", name: "Moldova", flag: "🇲🇩" },
117
- { code: "MC", name: "Monaco", flag: "🇲🇨" },
118
- { code: "MN", name: "Mongolia", flag: "🇲🇳" },
119
- { code: "ME", name: "Montenegro", flag: "🇲🇪" },
120
- { code: "MA", name: "Morocco", flag: "🇲🇦" },
121
- { code: "MZ", name: "Mozambique", flag: "🇲🇿" },
122
- { code: "MM", name: "Myanmar", flag: "🇲🇲" },
123
- { code: "NA", name: "Namibia", flag: "🇳🇦" },
124
- { code: "NR", name: "Nauru", flag: "🇳🇷" },
125
- { code: "NP", name: "Nepal", flag: "🇳🇵" },
126
- { code: "NL", name: "Netherlands", flag: "🇳🇱" },
127
- { code: "NZ", name: "New Zealand", flag: "🇳🇿" },
128
- { code: "NI", name: "Nicaragua", flag: "🇳🇮" },
129
- { code: "NE", name: "Niger", flag: "🇳🇪" },
130
- { code: "NG", name: "Nigeria", flag: "🇳🇬" },
131
- { code: "MK", name: "North Macedonia", flag: "🇲🇰" },
132
- { code: "NO", name: "Norway", flag: "🇳🇴" },
133
- { code: "OM", name: "Oman", flag: "🇴🇲" },
134
- { code: "PK", name: "Pakistan", flag: "🇵🇰" },
135
- { code: "PW", name: "Palau", flag: "🇵🇼" },
136
- { code: "PS", name: "Palestine", flag: "🇵🇸" },
137
- { code: "PA", name: "Panama", flag: "🇵🇦" },
138
- { code: "PG", name: "Papua New Guinea", flag: "🇵🇬" },
139
- { code: "PY", name: "Paraguay", flag: "🇵🇾" },
140
- { code: "PE", name: "Peru", flag: "🇵🇪" },
141
- { code: "PH", name: "Philippines", flag: "🇵🇭" },
142
- { code: "PL", name: "Poland", flag: "🇵🇱" },
143
- { code: "PT", name: "Portugal", flag: "🇵🇹" },
144
- { code: "QA", name: "Qatar", flag: "🇶🇦" },
145
- { code: "RO", name: "Romania", flag: "🇷🇴" },
146
- { code: "RU", name: "Russia", flag: "🇷🇺" },
147
- { code: "RW", name: "Rwanda", flag: "🇷🇼" },
148
- { code: "KN", name: "Saint Kitts and Nevis", flag: "🇰🇳" },
149
- { code: "LC", name: "Saint Lucia", flag: "🇱🇨" },
150
- { code: "VC", name: "Saint Vincent and the Grenadines", flag: "🇻🇨" },
151
- { code: "WS", name: "Samoa", flag: "🇼🇸" },
152
- { code: "SM", name: "San Marino", flag: "🇸🇲" },
153
- { code: "ST", name: "Sao Tome and Principe", flag: "🇸🇹" },
154
- { code: "SA", name: "Saudi Arabia", flag: "🇸🇦" },
155
- { code: "SN", name: "Senegal", flag: "🇸🇳" },
156
- { code: "RS", name: "Serbia", flag: "🇷🇸" },
157
- { code: "SC", name: "Seychelles", flag: "🇸🇨" },
158
- { code: "SL", name: "Sierra Leone", flag: "🇸🇱" },
159
- { code: "SG", name: "Singapore", flag: "🇸🇬" },
160
- { code: "SK", name: "Slovakia", flag: "🇸🇰" },
161
- { code: "SI", name: "Slovenia", flag: "🇸🇮" },
162
- { code: "SB", name: "Solomon Islands", flag: "🇸🇧" },
163
- { code: "SO", name: "Somalia", flag: "🇸🇴" },
164
- { code: "ZA", name: "South Africa", flag: "🇿🇦" },
165
- { code: "SS", name: "South Sudan", flag: "🇸🇸" },
166
- { code: "ES", name: "Spain", flag: "🇪🇸" },
167
- { code: "LK", name: "Sri Lanka", flag: "🇱🇰" },
168
- { code: "SD", name: "Sudan", flag: "🇸🇩" },
169
- { code: "SR", name: "Suriname", flag: "🇸🇷" },
170
- { code: "SE", name: "Sweden", flag: "🇸🇪" },
171
- { code: "CH", name: "Switzerland", flag: "🇨🇭" },
172
- { code: "SY", name: "Syria", flag: "🇸🇾" },
173
- { code: "TW", name: "Taiwan", flag: "🇹🇼" },
174
- { code: "TJ", name: "Tajikistan", flag: "🇹🇯" },
175
- { code: "TZ", name: "Tanzania", flag: "🇹🇿" },
176
- { code: "TH", name: "Thailand", flag: "🇹🇭" },
177
- { code: "TL", name: "Timor-Leste", flag: "🇹🇱" },
178
- { code: "TG", name: "Togo", flag: "🇹🇬" },
179
- { code: "TO", name: "Tonga", flag: "🇹🇴" },
180
- { code: "TT", name: "Trinidad and Tobago", flag: "🇹🇹" },
181
- { code: "TN", name: "Tunisia", flag: "🇹🇳" },
182
- { code: "TR", name: "Turkey", flag: "🇹🇷" },
183
- { code: "TM", name: "Turkmenistan", flag: "🇹🇲" },
184
- { code: "TV", name: "Tuvalu", flag: "🇹🇻" },
185
- { code: "UG", name: "Uganda", flag: "🇺🇬" },
186
- { code: "UA", name: "Ukraine", flag: "🇺🇦" },
187
- { code: "AE", name: "United Arab Emirates", flag: "🇦🇪" },
188
- { code: "GB", name: "United Kingdom", flag: "🇬🇧" },
189
- { code: "US", name: "United States", flag: "🇺🇸" },
190
- { code: "UY", name: "Uruguay", flag: "🇺🇾" },
191
- { code: "UZ", name: "Uzbekistan", flag: "🇺🇿" },
192
- { code: "VU", name: "Vanuatu", flag: "🇻🇺" },
193
- { code: "VA", name: "Vatican City", flag: "🇻🇦" },
194
- { code: "VE", name: "Venezuela", flag: "🇻🇪" },
195
- { code: "VN", name: "Vietnam", flag: "🇻🇳" },
196
- { code: "YE", name: "Yemen", flag: "🇾🇪" },
197
- { code: "ZM", name: "Zambia", flag: "🇿🇲" },
198
- { code: "ZW", name: "Zimbabwe", flag: "🇿🇼" }
199
- ];
200
-
201
- export const countriesWithFlags = Object.fromEntries(
202
- countries.map((c) => [c.code, { name: c.name, flag: c.flag }])
203
- );
package/src/lib/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export { cn } from "./utils";
2
- export * from "./validators";
package/src/lib/utils.ts DELETED
@@ -1,15 +0,0 @@
1
- import { type ClassValue, clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
3
-
4
- /**
5
- * Utility function to merge Tailwind CSS classes
6
- * Combines clsx for conditional classes and tailwind-merge for deduplication
7
- *
8
- * @example
9
- * ```tsx
10
- * cn("px-4 py-2", isActive && "bg-purple500", className)
11
- * ```
12
- */
13
- export function cn(...inputs: ClassValue[]) {
14
- return twMerge(clsx(inputs));
15
- }
@@ -1 +0,0 @@
1
- export * from "./theme";
@@ -1,148 +0,0 @@
1
- /**
2
- * Theme Validator
3
- * Validates that required CSS variables are defined in the theme
4
- */
5
-
6
- const requiredCSSVariables = [
7
- // Shadcn default variables
8
- "--background",
9
- "--foreground",
10
- "--card",
11
- "--card-foreground",
12
- "--popover",
13
- "--popover-foreground",
14
- "--primary",
15
- "--primary-foreground",
16
- "--secondary",
17
- "--secondary-foreground",
18
- "--muted",
19
- "--muted-foreground",
20
- "--accent",
21
- "--accent-foreground",
22
- "--destructive",
23
- "--destructive-foreground",
24
- "--border",
25
- "--input",
26
- "--ring",
27
- "--radius",
28
-
29
- // Custom theme variables (from client)
30
- "--gray25",
31
- "--gray50",
32
- "--gray100",
33
- "--gray200",
34
- "--gray300",
35
- "--gray400",
36
- "--gray500",
37
- "--gray600",
38
- "--gray700",
39
- "--gray800",
40
- "--gray900",
41
- "--purple100",
42
- "--purple200",
43
- "--purple500",
44
- "--purple-text",
45
- "--purple50",
46
- "--purple20",
47
- "--purple-border",
48
- "--purpleLight",
49
- "--purple-text-1",
50
- "--purple-text-2",
51
- ] as const;
52
-
53
- /**
54
- * Get computed CSS variable value
55
- */
56
- export function getCSSVariable(variable: string, element: HTMLElement = document.documentElement): string {
57
- return getComputedStyle(element).getPropertyValue(variable).trim();
58
- }
59
-
60
- /**
61
- * Check if a CSS variable is defined
62
- */
63
- export function isCSSVariableDefined(variable: string, element: HTMLElement = document.documentElement): boolean {
64
- const value = getCSSVariable(variable, element);
65
- return value !== "";
66
- }
67
-
68
- /**
69
- * Validate that all required CSS variables are defined
70
- * @returns Object with validation result and missing variables
71
- */
72
- export function validateTheme(element: HTMLElement = document.documentElement): {
73
- isValid: boolean;
74
- missingVariables: string[];
75
- warnings: string[];
76
- } {
77
- const missingVariables: string[] = [];
78
- const warnings: string[] = [];
79
-
80
- for (const variable of requiredCSSVariables) {
81
- if (!isCSSVariableDefined(variable, element)) {
82
- missingVariables.push(variable);
83
- }
84
- }
85
-
86
- // Check for dark mode variables
87
- const darkElement = document.querySelector(".dark");
88
- if (!darkElement) {
89
- warnings.push("Dark mode class '.dark' not found. Dark mode may not work correctly.");
90
- }
91
-
92
- return {
93
- isValid: missingVariables.length === 0,
94
- missingVariables,
95
- warnings,
96
- };
97
- }
98
-
99
- /**
100
- * Log theme validation results to console
101
- */
102
- export function logThemeValidation(): void {
103
- const result = validateTheme();
104
-
105
- if (result.isValid) {
106
- console.log("✅ Theme validation passed! All required CSS variables are defined.");
107
- } else {
108
- console.error("❌ Theme validation failed! Missing CSS variables:");
109
- result.missingVariables.forEach((variable) => {
110
- console.error(` - ${variable}`);
111
- });
112
- }
113
-
114
- if (result.warnings.length > 0) {
115
- console.warn("⚠️ Theme warnings:");
116
- result.warnings.forEach((warning) => {
117
- console.warn(` - ${warning}`);
118
- });
119
- }
120
- }
121
-
122
- /**
123
- * Assert that theme is valid (throws error if not)
124
- * Use this in development to catch theme issues early
125
- */
126
- export function assertThemeValid(): void {
127
- const result = validateTheme();
128
-
129
- if (!result.isValid) {
130
- throw new Error(
131
- `Theme validation failed! Missing CSS variables: ${result.missingVariables.join(", ")}`
132
- );
133
- }
134
- }
135
-
136
- /**
137
- * Get all CSS variables as an object
138
- * Useful for debugging
139
- */
140
- export function getAllCSSVariables(element: HTMLElement = document.documentElement): Record<string, string> {
141
- const variables: Record<string, string> = {};
142
-
143
- for (const variable of requiredCSSVariables) {
144
- variables[variable] = getCSSVariable(variable, element);
145
- }
146
-
147
- return variables;
148
- }
@@ -1,44 +0,0 @@
1
- import React from "react";
2
- import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card";
3
- import { ChartAtom } from "../../../atoms/ChartAtom";
4
- import { AudienceDemographicsCardMolecule } from "../../../types/molecules";
5
- import { cn } from "@/lib/utils";
6
-
7
- /**
8
- * AudienceDemographicsCard
9
- * Visualizes audience data using appropriate chart types.
10
- */
11
- export const AudienceDemographicsCard: React.FC<
12
- AudienceDemographicsCardMolecule
13
- > = ({ title, data, config, demographicType, className }) => {
14
- const chartType = demographicType === "location" ? "bar" : "pie";
15
-
16
- return (
17
- <Card
18
- className={cn(
19
- "rounded-[32px] border-purple-50 shadow-sm overflow-hidden",
20
- className,
21
- )}
22
- >
23
- <CardHeader className="pb-2">
24
- <CardTitle className="text-lg font-bold text-gray-900">
25
- {title}
26
- </CardTitle>
27
- </CardHeader>
28
- <CardContent>
29
- <div className="h-[250px] w-full">
30
- <ChartAtom
31
- type="chart"
32
- id="audience-demographics"
33
- chartType={chartType}
34
- data={data}
35
- config={config}
36
- XAxisKey="name"
37
- YAxisKey="value"
38
- showLegend={true}
39
- />
40
- </div>
41
- </CardContent>
42
- </Card>
43
- );
44
- };
@@ -1 +0,0 @@
1
- export * from "./AudienceDemographicsCard";
@@ -1,50 +0,0 @@
1
- import React from "react";
2
- import { Card, CardHeader, CardTitle, CardContent } from "@/components";
3
- import { ProgressAtom } from "../../../atoms/ProgressAtom";
4
- import { AudienceMetricCardMolecule } from "../../../types/molecules";
5
- import { cn } from "@/lib/utils";
6
-
7
- /**
8
- * AudienceMetricCard
9
- * A card displaying specific audience metrics with progress bars.
10
- */
11
- export const AudienceMetricCard: React.FC<AudienceMetricCardMolecule> = ({
12
- title,
13
- metrics,
14
- className,
15
- }) => {
16
- return (
17
- <Card
18
- className={cn(
19
- "bg-white border-purple-50 rounded-3xl overflow-hidden",
20
- className,
21
- )}
22
- >
23
- <CardHeader className="pb-2">
24
- <CardTitle className="text-lg font-bold text-gray-900">
25
- {title}
26
- </CardTitle>
27
- </CardHeader>
28
- <CardContent className="space-y-4">
29
- {metrics.map((metric, i) => (
30
- <div key={i} className="space-y-1.5">
31
- <div className="flex justify-between items-center text-sm">
32
- <span className="font-medium text-gray-700">{metric.label}</span>
33
- <span className="font-bold text-gray-900">{metric.value}</span>
34
- </div>
35
- {metric.percentage !== undefined && (
36
- <ProgressAtom
37
- id={`progress-${i}`}
38
- type="progress"
39
- value={metric.percentage}
40
- className="h-1.5 bg-purple-50"
41
- /* @ts-ignore - custom className for progress indicator */
42
- indicatorClassName="bg-gradient-to-r from-purple-500 to-indigo-500"
43
- />
44
- )}
45
- </div>
46
- ))}
47
- </CardContent>
48
- </Card>
49
- );
50
- };
@@ -1 +0,0 @@
1
- export * from "./AudienceMetricCard";
@@ -1,36 +0,0 @@
1
- import React from "react";
2
- import { BrandAffinityGroupMolecule } from "../../../types/molecules";
3
- import { cn } from "@/lib/utils";
4
-
5
- /**
6
- * BrandAffinityGroup
7
- * Visual group of associated brand logos.
8
- */
9
- export const BrandAffinityGroup: React.FC<BrandAffinityGroupMolecule> = ({
10
- brands,
11
- className,
12
- }) => {
13
- return (
14
- <div className={cn("flex flex-col gap-3", className)}>
15
- <h5 className="text-[10px] font-bold uppercase tracking-widest text-muted-foreground">
16
- Recent Collaborations
17
- </h5>
18
- <div className="flex flex-wrap gap-4 items-center">
19
- {brands.map((brand, i) => (
20
- <div key={i} className="group relative">
21
- <div className="h-10 w-10 overflow-hidden rounded-xl bg-white border border-gray-100 p-1.5 flex items-center justify-center grayscale hover:grayscale-0 transition-all duration-300 hover:scale-110 shadow-sm hover:shadow-md">
22
- <img
23
- src={brand.logoSrc}
24
- alt={brand.name}
25
- className="max-h-full max-w-full object-contain"
26
- />
27
- </div>
28
- <div className="absolute -bottom-6 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-gray-900 text-white text-[10px] rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-50 pointer-events-none">
29
- {brand.name}
30
- </div>
31
- </div>
32
- ))}
33
- </div>
34
- </div>
35
- );
36
- };
@@ -1 +0,0 @@
1
- export * from "./BrandAffinityGroup";
@@ -1,123 +0,0 @@
1
- import React from "react";
2
- import { CampaignSeedCardProps } from "./CampaignSeedCard.types";
3
- import { FormCard } from "../../generic/FormCard";
4
- import { FieldConfig } from "@/types/common";
5
- import { CheckCircle2 } from "lucide-react";
6
-
7
- /**
8
- * Default field configuration for Campaign Seed
9
- */
10
- export const CAMPAIGN_SEED_FIELDS: FieldConfig[] = [
11
- {
12
- key: "brand",
13
- label: "Brand / Campaign",
14
- type: "text",
15
- placeholder: "Not specified",
16
- },
17
- {
18
- key: "objective",
19
- label: "Objective",
20
- type: "text",
21
- placeholder: "Not specified",
22
- },
23
- {
24
- key: "budget_hint",
25
- label: "Budget Hint",
26
- type: "slider",
27
- placeholder: "Not specified",
28
- sliderConfig: {
29
- min: 0,
30
- max: 1000000,
31
- step: 1000,
32
- formatValue: (value: any) => {
33
- if (!value) return "$0 - $100K";
34
-
35
- const formatCurrency = (amount: number) => {
36
- if (amount >= 1000000) return `$${(amount / 1000000).toFixed(1)}M`;
37
- if (amount >= 1000) return `$${(amount / 1000).toFixed(0)}K`;
38
- return `$${amount.toLocaleString()}`;
39
- };
40
-
41
- let normalized;
42
- if (typeof value === "object" && value?.min !== undefined) {
43
- normalized = value;
44
- } else if (typeof value === "string" && value.includes("-")) {
45
- const [minStr, maxStr] = value.split("-");
46
- normalized = {
47
- min: Number(minStr) || 0,
48
- max: Number(maxStr) || 100000,
49
- };
50
- } else {
51
- const val = Number(String(value).replace(/[^0-9.]/g, "")) || 0;
52
- normalized =
53
- val > 0 ? { min: val, max: val } : { min: 0, max: 100000 };
54
- }
55
-
56
- if (normalized.min === normalized.max)
57
- return formatCurrency(normalized.min);
58
- return `${formatCurrency(normalized.min)} - ${formatCurrency(normalized.max)}`;
59
- },
60
- },
61
- },
62
- {
63
- key: "geo_or_audience",
64
- label: "Geography or Audience",
65
- type: "text",
66
- placeholder: "Not specified",
67
- },
68
- {
69
- key: "timeline_opt",
70
- label: "Timeline Option",
71
- type: "text",
72
- placeholder: "Not specified",
73
- },
74
- {
75
- key: "notes",
76
- label: "Notes",
77
- type: "textarea",
78
- placeholder: "No notes",
79
- rows: 4,
80
- },
81
- ];
82
-
83
- /**
84
- * CampaignSeedCard
85
- *
86
- * A domain-specific molecule for the Creator Discovery workflow.
87
- * Encapsulates the specific brand info fields and selection status.
88
- */
89
- export const CampaignSeedCard = React.memo<CampaignSeedCardProps>(
90
- ({
91
- selectionStatus,
92
- isLatestMessage = true,
93
- className,
94
- ...formCardProps
95
- }) => {
96
- return (
97
- <div className="flex flex-col gap-2">
98
- <FormCard
99
- {...formCardProps}
100
- title={formCardProps.title || "Brand Information"}
101
- fields={CAMPAIGN_SEED_FIELDS}
102
- className={className}
103
- footer={
104
- !isLatestMessage && selectionStatus ? (
105
- <div className="flex justify-end items-center gap-1.5 text-green-600 text-xs font-semibold py-1">
106
- <CheckCircle2 className="h-4 w-4" />
107
- <span>
108
- {selectionStatus === "agent"
109
- ? "Selected by Agent"
110
- : "Selected by User"}
111
- </span>
112
- </div>
113
- ) : (
114
- formCardProps.footer
115
- )
116
- }
117
- />
118
- </div>
119
- );
120
- },
121
- );
122
-
123
- CampaignSeedCard.displayName = "CampaignSeedCard";
@@ -1,13 +0,0 @@
1
- import { FormCardProps } from "../../generic/FormCard";
2
-
3
- export interface CampaignSeedCardProps extends Omit<FormCardProps, "fields"> {
4
- /**
5
- * Status of the selection (done by user or agent)
6
- */
7
- selectionStatus?: "user" | "agent";
8
-
9
- /**
10
- * Whether the message is the latest (to show countdown/actions)
11
- */
12
- isLatestMessage?: boolean;
13
- }
@@ -1,2 +0,0 @@
1
- export * from "./CampaignSeedCard";
2
- export * from "./CampaignSeedCard.types";