@mohasinac/appkit 2.1.3 → 2.3.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 (820) hide show
  1. package/README.md +80 -30
  2. package/dist/index.d.ts +3124 -0
  3. package/dist/index.js +5836 -0
  4. package/package.json +67 -383
  5. package/src/cli/index.ts +0 -221
  6. package/src/contracts/auth.ts +0 -63
  7. package/src/contracts/config.ts +0 -58
  8. package/src/contracts/email.ts +0 -37
  9. package/src/contracts/extend.ts +0 -195
  10. package/src/contracts/feature.ts +0 -60
  11. package/src/contracts/index.ts +0 -122
  12. package/src/contracts/infra.ts +0 -50
  13. package/src/contracts/payment.ts +0 -50
  14. package/src/contracts/registry.ts +0 -44
  15. package/src/contracts/repository.ts +0 -87
  16. package/src/contracts/search.ts +0 -49
  17. package/src/contracts/shipping.ts +0 -77
  18. package/src/contracts/storage.ts +0 -37
  19. package/src/contracts/style.ts +0 -25
  20. package/src/contracts/table.ts +0 -148
  21. package/src/core/CacheManager.ts +0 -85
  22. package/src/core/EventBus.ts +0 -89
  23. package/src/core/Logger.ts +0 -209
  24. package/src/core/Queue.ts +0 -126
  25. package/src/core/StorageManager.ts +0 -167
  26. package/src/core/copilot-log.repository.ts +0 -106
  27. package/src/core/index.ts +0 -39
  28. package/src/core/newsletter.repository.ts +0 -193
  29. package/src/core/site-config.ts +0 -109
  30. package/src/errors/api-error.ts +0 -7
  31. package/src/errors/authentication-error.ts +0 -7
  32. package/src/errors/authorization-error.ts +0 -7
  33. package/src/errors/base-error.ts +0 -30
  34. package/src/errors/database-error.ts +0 -7
  35. package/src/errors/error-codes.ts +0 -106
  36. package/src/errors/error-handler.ts +0 -74
  37. package/src/errors/index.ts +0 -11
  38. package/src/errors/not-found-error.ts +0 -7
  39. package/src/errors/validation-error.ts +0 -7
  40. package/src/features/about/components/AboutView.tsx +0 -142
  41. package/src/features/about/components/index.ts +0 -7
  42. package/src/features/about/index.ts +0 -7
  43. package/src/features/account/api/[userId]/addresses/route.ts +0 -131
  44. package/src/features/account/api/[userId]/route.ts +0 -107
  45. package/src/features/account/columns/index.ts +0 -61
  46. package/src/features/account/components/AddressBook.tsx +0 -109
  47. package/src/features/account/components/BecomeSellerView.tsx +0 -44
  48. package/src/features/account/components/ChatList.tsx +0 -43
  49. package/src/features/account/components/ChatWindow.tsx +0 -52
  50. package/src/features/account/components/MessagesView.tsx +0 -60
  51. package/src/features/account/components/OrderDetailView.tsx +0 -50
  52. package/src/features/account/components/ProfileView.tsx +0 -40
  53. package/src/features/account/components/UserAccountHubView.tsx +0 -40
  54. package/src/features/account/components/UserAddressesView.tsx +0 -44
  55. package/src/features/account/components/UserNotificationsView.tsx +0 -52
  56. package/src/features/account/components/UserOffersView.tsx +0 -37
  57. package/src/features/account/components/UserOrderTrackView.tsx +0 -36
  58. package/src/features/account/components/UserOrdersView.tsx +0 -45
  59. package/src/features/account/components/UserSettingsView.tsx +0 -48
  60. package/src/features/account/components/index.ts +0 -54
  61. package/src/features/account/hooks/useAccount.ts +0 -25
  62. package/src/features/account/index.ts +0 -7
  63. package/src/features/account/manifest.ts +0 -29
  64. package/src/features/account/messages/en.json +0 -12
  65. package/src/features/account/repository/account.repository.ts +0 -28
  66. package/src/features/account/schemas/index.ts +0 -56
  67. package/src/features/account/types/index.ts +0 -124
  68. package/src/features/admin/api/bids/route.ts +0 -63
  69. package/src/features/admin/api/coupons/route.ts +0 -63
  70. package/src/features/admin/api/products/route.ts +0 -64
  71. package/src/features/admin/api/reviews/route.ts +0 -63
  72. package/src/features/admin/components/AdminAnalyticsView.tsx +0 -124
  73. package/src/features/admin/components/AdminBidsView.tsx +0 -29
  74. package/src/features/admin/components/AdminBlogView.tsx +0 -32
  75. package/src/features/admin/components/AdminCarouselView.tsx +0 -57
  76. package/src/features/admin/components/AdminCategoriesView.tsx +0 -57
  77. package/src/features/admin/components/AdminCouponsView.tsx +0 -32
  78. package/src/features/admin/components/AdminDashboardView.tsx +0 -50
  79. package/src/features/admin/components/AdminFaqsView.tsx +0 -29
  80. package/src/features/admin/components/AdminFeatureFlagsView.tsx +0 -33
  81. package/src/features/admin/components/AdminMediaView.tsx +0 -57
  82. package/src/features/admin/components/AdminNavigationView.tsx +0 -57
  83. package/src/features/admin/components/AdminOrdersView.tsx +0 -29
  84. package/src/features/admin/components/AdminPayoutsView.tsx +0 -29
  85. package/src/features/admin/components/AdminProductsView.tsx +0 -32
  86. package/src/features/admin/components/AdminReviewsView.tsx +0 -38
  87. package/src/features/admin/components/AdminSectionsView.tsx +0 -57
  88. package/src/features/admin/components/AdminSessionsManager.tsx +0 -28
  89. package/src/features/admin/components/AdminSidebar.tsx +0 -28
  90. package/src/features/admin/components/AdminSiteView.tsx +0 -34
  91. package/src/features/admin/components/AdminStoresView.tsx +0 -29
  92. package/src/features/admin/components/AdminTopBar.tsx +0 -22
  93. package/src/features/admin/components/AdminUsersView.tsx +0 -32
  94. package/src/features/admin/components/DashboardStats.tsx +0 -95
  95. package/src/features/admin/components/DataTable.tsx +0 -115
  96. package/src/features/admin/components/DemoSeedView.tsx +0 -22
  97. package/src/features/admin/components/QuickActionsPanel.tsx +0 -62
  98. package/src/features/admin/components/analytics/AdminAnalyticsCharts.tsx +0 -114
  99. package/src/features/admin/components/analytics/AdminStatCard.tsx +0 -36
  100. package/src/features/admin/components/analytics/AdminTopProductsTable.tsx +0 -61
  101. package/src/features/admin/components/analytics/index.ts +0 -3
  102. package/src/features/admin/components/index.ts +0 -71
  103. package/src/features/admin/hooks/useAdmin.ts +0 -19
  104. package/src/features/admin/index.ts +0 -5
  105. package/src/features/admin/manifest.ts +0 -15
  106. package/src/features/admin/messages/en.json +0 -13
  107. package/src/features/admin/permission-map.ts +0 -27
  108. package/src/features/admin/server.ts +0 -10
  109. package/src/features/admin/types/index.ts +0 -75
  110. package/src/features/auctions/api/route.ts +0 -83
  111. package/src/features/auctions/columns/index.ts +0 -91
  112. package/src/features/auctions/components/AuctionCard.tsx +0 -149
  113. package/src/features/auctions/components/index.ts +0 -1
  114. package/src/features/auctions/hooks/useAuctions.ts +0 -145
  115. package/src/features/auctions/hooks/usePlaceBid.ts +0 -48
  116. package/src/features/auctions/hooks/useRealtimeBids.ts +0 -100
  117. package/src/features/auctions/index.ts +0 -9
  118. package/src/features/auctions/manifest.ts +0 -19
  119. package/src/features/auctions/messages/en.json +0 -18
  120. package/src/features/auctions/repository/auctions.repository.ts +0 -57
  121. package/src/features/auctions/schemas/index.ts +0 -69
  122. package/src/features/auctions/server.ts +0 -7
  123. package/src/features/auctions/types/index.ts +0 -90
  124. package/src/features/auth/api/route.ts +0 -63
  125. package/src/features/auth/components/AuthStatusPanel.tsx +0 -67
  126. package/src/features/auth/components/ForgotPasswordView.tsx +0 -114
  127. package/src/features/auth/components/Guards.tsx +0 -60
  128. package/src/features/auth/components/LoginForm.tsx +0 -180
  129. package/src/features/auth/components/RegisterForm.tsx +0 -232
  130. package/src/features/auth/components/ResetPasswordView.tsx +0 -144
  131. package/src/features/auth/components/SocialAuthButtons.tsx +0 -60
  132. package/src/features/auth/components/VerifyEmailView.tsx +0 -118
  133. package/src/features/auth/components/index.ts +0 -13
  134. package/src/features/auth/hooks/useAuth.ts +0 -33
  135. package/src/features/auth/index.ts +0 -5
  136. package/src/features/auth/manifest.ts +0 -23
  137. package/src/features/auth/messages/en.json +0 -13
  138. package/src/features/auth/schemas/index.ts +0 -48
  139. package/src/features/auth/server.ts +0 -17
  140. package/src/features/auth/types/index.ts +0 -36
  141. package/src/features/before-after/api/[id]/route.ts +0 -143
  142. package/src/features/before-after/api/route.ts +0 -104
  143. package/src/features/before-after/columns/index.ts +0 -72
  144. package/src/features/before-after/components/BeforeAfterGallery.tsx +0 -41
  145. package/src/features/before-after/components/BeforeAfterSlider.tsx +0 -89
  146. package/src/features/before-after/components/index.ts +0 -2
  147. package/src/features/before-after/hooks/useBeforeAfter.ts +0 -33
  148. package/src/features/before-after/index.ts +0 -7
  149. package/src/features/before-after/manifest.ts +0 -12
  150. package/src/features/before-after/messages/en.json +0 -8
  151. package/src/features/before-after/repository/before-after.repository.ts +0 -44
  152. package/src/features/before-after/schemas/index.ts +0 -25
  153. package/src/features/before-after/types/index.ts +0 -19
  154. package/src/features/blog/api/[slug]/route.ts +0 -73
  155. package/src/features/blog/api/route.ts +0 -81
  156. package/src/features/blog/columns/index.ts +0 -68
  157. package/src/features/blog/components/BlogFeaturedCard.tsx +0 -108
  158. package/src/features/blog/components/BlogListView.tsx +0 -219
  159. package/src/features/blog/components/BlogPostForm.tsx +0 -254
  160. package/src/features/blog/components/BlogPostView.tsx +0 -221
  161. package/src/features/blog/components/index.ts +0 -12
  162. package/src/features/blog/hooks/useBlog.ts +0 -67
  163. package/src/features/blog/index.ts +0 -7
  164. package/src/features/blog/manifest.ts +0 -16
  165. package/src/features/blog/messages/en.json +0 -14
  166. package/src/features/blog/repository/blog.repository.ts +0 -73
  167. package/src/features/blog/schemas/index.ts +0 -74
  168. package/src/features/blog/server.ts +0 -9
  169. package/src/features/blog/types/index.ts +0 -58
  170. package/src/features/cart/api/[id]/route.ts +0 -98
  171. package/src/features/cart/api/route.ts +0 -104
  172. package/src/features/cart/columns/index.ts +0 -73
  173. package/src/features/cart/components/CartDrawer.tsx +0 -183
  174. package/src/features/cart/components/CartSummary.tsx +0 -43
  175. package/src/features/cart/components/CartView.tsx +0 -47
  176. package/src/features/cart/components/CheckoutAddressStep.tsx +0 -68
  177. package/src/features/cart/components/CheckoutOtpModal.tsx +0 -39
  178. package/src/features/cart/components/CheckoutSuccessView.tsx +0 -31
  179. package/src/features/cart/components/CheckoutView.tsx +0 -70
  180. package/src/features/cart/components/index.ts +0 -16
  181. package/src/features/cart/hooks/useCart.ts +0 -30
  182. package/src/features/cart/hooks/useCartQuery.ts +0 -22
  183. package/src/features/cart/hooks/useCheckoutReadQueries.ts +0 -34
  184. package/src/features/cart/hooks/useOrder.ts +0 -35
  185. package/src/features/cart/index.ts +0 -11
  186. package/src/features/cart/manifest.ts +0 -12
  187. package/src/features/cart/messages/en.json +0 -10
  188. package/src/features/cart/repository/cart.repository.ts +0 -50
  189. package/src/features/cart/schemas/index.ts +0 -36
  190. package/src/features/cart/types/index.ts +0 -29
  191. package/src/features/cart/utils/guest-cart.ts +0 -149
  192. package/src/features/categories/api/[id]/route.ts +0 -144
  193. package/src/features/categories/api/route.ts +0 -253
  194. package/src/features/categories/columns/index.ts +0 -51
  195. package/src/features/categories/components/BreadcrumbTrail.tsx +0 -80
  196. package/src/features/categories/components/CategoriesListView.tsx +0 -77
  197. package/src/features/categories/components/CategoryGrid.tsx +0 -93
  198. package/src/features/categories/components/CategoryProductsView.tsx +0 -116
  199. package/src/features/categories/components/CategoryTree.tsx +0 -156
  200. package/src/features/categories/components/ConcernCard.tsx +0 -45
  201. package/src/features/categories/components/ConcernGrid.tsx +0 -25
  202. package/src/features/categories/components/index.ts +0 -17
  203. package/src/features/categories/hooks/useCategories.ts +0 -72
  204. package/src/features/categories/index.ts +0 -7
  205. package/src/features/categories/manifest.ts +0 -22
  206. package/src/features/categories/messages/en.json +0 -14
  207. package/src/features/categories/repository/categories.repository.ts +0 -76
  208. package/src/features/categories/schemas/index.ts +0 -74
  209. package/src/features/categories/server.ts +0 -12
  210. package/src/features/categories/types/index.ts +0 -60
  211. package/src/features/checkout/components/CheckoutStepper.tsx +0 -45
  212. package/src/features/checkout/components/index.ts +0 -1
  213. package/src/features/checkout/hooks/useCheckout.ts +0 -38
  214. package/src/features/checkout/index.ts +0 -4
  215. package/src/features/checkout/manifest.ts +0 -19
  216. package/src/features/checkout/messages/en.json +0 -10
  217. package/src/features/checkout/types/index.ts +0 -62
  218. package/src/features/cms/index.ts +0 -6
  219. package/src/features/collections/api/[slug]/route.ts +0 -167
  220. package/src/features/collections/api/route.ts +0 -104
  221. package/src/features/collections/columns/index.ts +0 -77
  222. package/src/features/collections/components/CollectionCard.tsx +0 -61
  223. package/src/features/collections/components/index.ts +0 -1
  224. package/src/features/collections/hooks/useCollections.ts +0 -31
  225. package/src/features/collections/index.ts +0 -7
  226. package/src/features/collections/manifest.ts +0 -18
  227. package/src/features/collections/messages/en.json +0 -10
  228. package/src/features/collections/repository/collections.repository.ts +0 -19
  229. package/src/features/collections/schemas/index.ts +0 -36
  230. package/src/features/collections/types/index.ts +0 -26
  231. package/src/features/consultation/api/[id]/route.ts +0 -143
  232. package/src/features/consultation/api/route.ts +0 -104
  233. package/src/features/consultation/columns/index.ts +0 -76
  234. package/src/features/consultation/components/ConsultationForm.tsx +0 -161
  235. package/src/features/consultation/components/index.ts +0 -1
  236. package/src/features/consultation/hooks/useBookConsultation.ts +0 -19
  237. package/src/features/consultation/index.ts +0 -7
  238. package/src/features/consultation/manifest.ts +0 -14
  239. package/src/features/consultation/messages/en.json +0 -25
  240. package/src/features/consultation/repository/consultations.repository.ts +0 -35
  241. package/src/features/consultation/schemas/index.ts +0 -51
  242. package/src/features/consultation/types/index.ts +0 -36
  243. package/src/features/contact/components/ContactForm.tsx +0 -202
  244. package/src/features/contact/components/ContactInfoSidebar.tsx +0 -85
  245. package/src/features/contact/components/index.ts +0 -7
  246. package/src/features/contact/index.ts +0 -1
  247. package/src/features/copilot/components/AdminCopilotView.tsx +0 -157
  248. package/src/features/copilot/components/index.ts +0 -2
  249. package/src/features/copilot/hooks/useCopilotChat.ts +0 -86
  250. package/src/features/copilot/index.ts +0 -2
  251. package/src/features/corporate/api/[id]/route.ts +0 -149
  252. package/src/features/corporate/api/route.ts +0 -108
  253. package/src/features/corporate/columns/index.ts +0 -76
  254. package/src/features/corporate/components/CorporateInquiryForm.tsx +0 -155
  255. package/src/features/corporate/components/index.ts +0 -1
  256. package/src/features/corporate/hooks/useSubmitCorporateInquiry.ts +0 -19
  257. package/src/features/corporate/index.ts +0 -7
  258. package/src/features/corporate/manifest.ts +0 -14
  259. package/src/features/corporate/messages/en.json +0 -26
  260. package/src/features/corporate/repository/corporate.repository.ts +0 -39
  261. package/src/features/corporate/schemas/index.ts +0 -53
  262. package/src/features/corporate/types/index.ts +0 -40
  263. package/src/features/cron/firebase-adapters.ts +0 -117
  264. package/src/features/cron/index.ts +0 -28
  265. package/src/features/cron/jobs/auction-expiry.job.ts +0 -76
  266. package/src/features/cron/jobs/preorder-reminder.job.ts +0 -64
  267. package/src/features/cron/registry.ts +0 -115
  268. package/src/features/cron/types.ts +0 -83
  269. package/src/features/events/api/[id]/route.ts +0 -123
  270. package/src/features/events/api/route.ts +0 -110
  271. package/src/features/events/columns/index.ts +0 -54
  272. package/src/features/events/components/AdminEventEntriesView.tsx +0 -39
  273. package/src/features/events/components/AdminEventsView.tsx +0 -47
  274. package/src/features/events/components/EventCard.tsx +0 -88
  275. package/src/features/events/components/EventDetailView.tsx +0 -51
  276. package/src/features/events/components/EventFormDrawer.tsx +0 -47
  277. package/src/features/events/components/EventLeaderboard.tsx +0 -76
  278. package/src/features/events/components/EventParticipateView.tsx +0 -48
  279. package/src/features/events/components/EventStatusBadge.tsx +0 -28
  280. package/src/features/events/components/EventsListView.tsx +0 -100
  281. package/src/features/events/components/index.ts +0 -15
  282. package/src/features/events/hooks/useEvent.ts +0 -94
  283. package/src/features/events/hooks/useEvents.ts +0 -59
  284. package/src/features/events/index.ts +0 -11
  285. package/src/features/events/manifest.ts +0 -26
  286. package/src/features/events/messages/en.json +0 -28
  287. package/src/features/events/repository/events.repository.ts +0 -110
  288. package/src/features/events/schemas/index.ts +0 -98
  289. package/src/features/events/server.ts +0 -8
  290. package/src/features/events/types/index.ts +0 -185
  291. package/src/features/faq/api/route.ts +0 -61
  292. package/src/features/faq/columns/index.ts +0 -60
  293. package/src/features/faq/components/ContactCTA.tsx +0 -115
  294. package/src/features/faq/components/FAQAccordion.tsx +0 -150
  295. package/src/features/faq/components/FAQCategorySidebar.tsx +0 -124
  296. package/src/features/faq/components/FAQHelpfulButtons.tsx +0 -110
  297. package/src/features/faq/components/FAQPageContent.tsx +0 -217
  298. package/src/features/faq/components/FAQSortDropdown.tsx +0 -43
  299. package/src/features/faq/components/RelatedFAQs.tsx +0 -74
  300. package/src/features/faq/components/index.ts +0 -9
  301. package/src/features/faq/hooks/useFAQs.ts +0 -50
  302. package/src/features/faq/hooks/useFaqList.ts +0 -53
  303. package/src/features/faq/index.ts +0 -8
  304. package/src/features/faq/manifest.ts +0 -12
  305. package/src/features/faq/messages/en.json +0 -14
  306. package/src/features/faq/repository/faqs.repository.ts +0 -61
  307. package/src/features/faq/schemas/index.ts +0 -69
  308. package/src/features/faq/server.ts +0 -7
  309. package/src/features/faq/types/index.ts +0 -63
  310. package/src/features/filters/FilterFacetSection.tsx +0 -205
  311. package/src/features/filters/FilterPanel.tsx +0 -227
  312. package/src/features/filters/RangeFilter.tsx +0 -291
  313. package/src/features/filters/SwitchFilter.tsx +0 -143
  314. package/src/features/filters/filterUtils.ts +0 -24
  315. package/src/features/filters/index.ts +0 -28
  316. package/src/features/forms/Checkbox.tsx +0 -100
  317. package/src/features/forms/Form.tsx +0 -105
  318. package/src/features/forms/Input.tsx +0 -127
  319. package/src/features/forms/Radio.tsx +0 -126
  320. package/src/features/forms/Select.tsx +0 -101
  321. package/src/features/forms/Slider.tsx +0 -119
  322. package/src/features/forms/Textarea.tsx +0 -99
  323. package/src/features/forms/Toggle.tsx +0 -110
  324. package/src/features/forms/index.ts +0 -34
  325. package/src/features/forms/utils.ts +0 -25
  326. package/src/features/homepage/api/[id]/route.ts +0 -145
  327. package/src/features/homepage/api/carousel/[id]/route.ts +0 -169
  328. package/src/features/homepage/api/carousel/route.ts +0 -188
  329. package/src/features/homepage/api/route.ts +0 -167
  330. package/src/features/homepage/api/sections/[id]/route.ts +0 -143
  331. package/src/features/homepage/api/sections/route.ts +0 -104
  332. package/src/features/homepage/components/AdvertisementBanner.tsx +0 -202
  333. package/src/features/homepage/components/BeforeAfterCard.tsx +0 -147
  334. package/src/features/homepage/components/CharacterHotspot.tsx +0 -742
  335. package/src/features/homepage/components/CharacterHotspotForm.tsx +0 -1002
  336. package/src/features/homepage/components/CustomerReviewsSection.tsx +0 -108
  337. package/src/features/homepage/components/FAQSection.tsx +0 -154
  338. package/src/features/homepage/components/FeaturedResultsSection.tsx +0 -97
  339. package/src/features/homepage/components/HeroBanner.tsx +0 -283
  340. package/src/features/homepage/components/HeroCarousel.tsx +0 -442
  341. package/src/features/homepage/components/HeroSection.tsx +0 -50
  342. package/src/features/homepage/components/HomepageSkeleton.tsx +0 -88
  343. package/src/features/homepage/components/HomepageView.tsx +0 -77
  344. package/src/features/homepage/components/HowItWorksInfoView.tsx +0 -161
  345. package/src/features/homepage/components/HowItWorksSection.tsx +0 -194
  346. package/src/features/homepage/components/NewsletterBanner.tsx +0 -130
  347. package/src/features/homepage/components/NewsletterSection.tsx +0 -85
  348. package/src/features/homepage/components/PromoGrid.tsx +0 -130
  349. package/src/features/homepage/components/SectionCarousel.tsx +0 -284
  350. package/src/features/homepage/components/SecurityHighlightsSection.tsx +0 -149
  351. package/src/features/homepage/components/SiteFeaturesSection.tsx +0 -86
  352. package/src/features/homepage/components/StatsCounterSection.tsx +0 -118
  353. package/src/features/homepage/components/TestimonialsCarousel.tsx +0 -96
  354. package/src/features/homepage/components/TrustBadges.tsx +0 -155
  355. package/src/features/homepage/components/TrustFeaturesSection.tsx +0 -168
  356. package/src/features/homepage/components/TrustIndicatorsSection.tsx +0 -59
  357. package/src/features/homepage/components/WelcomeSection.tsx +0 -178
  358. package/src/features/homepage/components/WhatsAppCommunitySection.tsx +0 -187
  359. package/src/features/homepage/components/index.ts +0 -91
  360. package/src/features/homepage/hooks/useBlogArticles.ts +0 -46
  361. package/src/features/homepage/hooks/useFeaturedAuctions.ts +0 -39
  362. package/src/features/homepage/hooks/useFeaturedPreOrders.ts +0 -39
  363. package/src/features/homepage/hooks/useFeaturedProducts.ts +0 -44
  364. package/src/features/homepage/hooks/useHeroCarousel.ts +0 -19
  365. package/src/features/homepage/hooks/useHomepage.ts +0 -25
  366. package/src/features/homepage/hooks/useTopBrands.ts +0 -17
  367. package/src/features/homepage/hooks/useTopCategories.ts +0 -19
  368. package/src/features/homepage/index.ts +0 -10
  369. package/src/features/homepage/manifest.ts +0 -16
  370. package/src/features/homepage/messages/en.json +0 -6
  371. package/src/features/homepage/repository/homepage.repository.ts +0 -38
  372. package/src/features/homepage/server.ts +0 -14
  373. package/src/features/homepage/types/index.ts +0 -183
  374. package/src/features/layout/AutoBreadcrumbs.tsx +0 -143
  375. package/src/features/layout/BackToTop.tsx +0 -58
  376. package/src/features/layout/BottomNavItem.tsx +0 -71
  377. package/src/features/layout/BottomNavLayout.tsx +0 -34
  378. package/src/features/layout/BottomSheet.tsx +0 -120
  379. package/src/features/layout/Breadcrumbs.tsx +0 -83
  380. package/src/features/layout/FooterLayout.tsx +0 -215
  381. package/src/features/layout/ListingLayout.tsx +0 -383
  382. package/src/features/layout/LocaleSwitcher.tsx +0 -44
  383. package/src/features/layout/NavbarLayout.tsx +0 -108
  384. package/src/features/layout/SidebarLayout.tsx +0 -75
  385. package/src/features/layout/TitleBarLayout.tsx +0 -285
  386. package/src/features/layout/index.ts +0 -46
  387. package/src/features/loyalty/api/admin/loyalty/grant/route.ts +0 -51
  388. package/src/features/loyalty/api/balance/route.ts +0 -53
  389. package/src/features/loyalty/api/earn/route.ts +0 -51
  390. package/src/features/loyalty/api/history/route.ts +0 -74
  391. package/src/features/loyalty/api/redeem/route.ts +0 -51
  392. package/src/features/loyalty/columns/index.ts +0 -61
  393. package/src/features/loyalty/components/CoinsDisplay.tsx +0 -36
  394. package/src/features/loyalty/components/index.ts +0 -1
  395. package/src/features/loyalty/hooks/useLoyaltyBalance.ts +0 -17
  396. package/src/features/loyalty/index.ts +0 -7
  397. package/src/features/loyalty/manifest.ts +0 -18
  398. package/src/features/loyalty/messages/en.json +0 -19
  399. package/src/features/loyalty/repository/loyalty.repository.ts +0 -29
  400. package/src/features/loyalty/schemas/index.ts +0 -44
  401. package/src/features/loyalty/types/index.ts +0 -43
  402. package/src/features/loyalty/types/loyalty-math.ts +0 -36
  403. package/src/features/media/MediaAvatar.tsx +0 -37
  404. package/src/features/media/MediaImage.tsx +0 -119
  405. package/src/features/media/MediaLightbox.tsx +0 -520
  406. package/src/features/media/MediaVideo.tsx +0 -94
  407. package/src/features/media/components/MediaSlider.tsx +0 -53
  408. package/src/features/media/hooks/useMedia.ts +0 -118
  409. package/src/features/media/index.ts +0 -74
  410. package/src/features/media/messages/en.json +0 -63
  411. package/src/features/media/modals/ImageCropModal.tsx +0 -270
  412. package/src/features/media/modals/VideoThumbnailSelector.tsx +0 -117
  413. package/src/features/media/modals/VideoTrimModal.tsx +0 -193
  414. package/src/features/media/types/index.ts +0 -69
  415. package/src/features/media/upload/CameraCapture.tsx +0 -150
  416. package/src/features/media/upload/ImageUpload.tsx +0 -358
  417. package/src/features/media/upload/MediaUploadField.tsx +0 -442
  418. package/src/features/media/upload/MediaUploadList.tsx +0 -255
  419. package/src/features/orders/columns/index.ts +0 -47
  420. package/src/features/orders/components/OrdersList.tsx +0 -168
  421. package/src/features/orders/components/index.ts +0 -1
  422. package/src/features/orders/hooks/useOrders.ts +0 -53
  423. package/src/features/orders/index.ts +0 -8
  424. package/src/features/orders/manifest.ts +0 -20
  425. package/src/features/orders/messages/en.json +0 -15
  426. package/src/features/orders/repository/orders.repository.ts +0 -47
  427. package/src/features/orders/schemas/index.ts +0 -82
  428. package/src/features/orders/types/index.ts +0 -97
  429. package/src/features/orders/utils/order-splitter.ts +0 -48
  430. package/src/features/payments/columns/index.ts +0 -67
  431. package/src/features/payments/components/index.ts +0 -1
  432. package/src/features/payments/hooks/usePayments.ts +0 -23
  433. package/src/features/payments/index.ts +0 -6
  434. package/src/features/payments/manifest.ts +0 -14
  435. package/src/features/payments/messages/en.json +0 -11
  436. package/src/features/payments/repository/payments.repository.ts +0 -57
  437. package/src/features/payments/schemas/index.ts +0 -47
  438. package/src/features/payments/types/index.ts +0 -50
  439. package/src/features/pre-orders/api/[id]/route.ts +0 -143
  440. package/src/features/pre-orders/api/[slug]/route.ts +0 -61
  441. package/src/features/pre-orders/api/admin/[id]/route.ts +0 -105
  442. package/src/features/pre-orders/api/admin/route.ts +0 -69
  443. package/src/features/pre-orders/api/route.ts +0 -96
  444. package/src/features/pre-orders/columns/index.ts +0 -90
  445. package/src/features/pre-orders/components/PreOrderBadge.tsx +0 -52
  446. package/src/features/pre-orders/components/PreorderCard.tsx +0 -90
  447. package/src/features/pre-orders/components/index.ts +0 -1
  448. package/src/features/pre-orders/hooks/usePreOrders.ts +0 -31
  449. package/src/features/pre-orders/index.ts +0 -7
  450. package/src/features/pre-orders/manifest.ts +0 -19
  451. package/src/features/pre-orders/messages/en.json +0 -13
  452. package/src/features/pre-orders/repository/pre-orders.repository.ts +0 -75
  453. package/src/features/pre-orders/repository/preorders.repository.ts +0 -24
  454. package/src/features/pre-orders/schemas/index.ts +0 -28
  455. package/src/features/pre-orders/server.ts +0 -12
  456. package/src/features/pre-orders/types/index.ts +0 -49
  457. package/src/features/products/api/[id]/route.ts +0 -200
  458. package/src/features/products/api/route.ts +0 -242
  459. package/src/features/products/columns/index.ts +0 -90
  460. package/src/features/products/components/AuctionDetailView.tsx +0 -58
  461. package/src/features/products/components/AuctionsView.tsx +0 -48
  462. package/src/features/products/components/BidHistory.tsx +0 -83
  463. package/src/features/products/components/BuyBar.tsx +0 -36
  464. package/src/features/products/components/MakeOfferForm.tsx +0 -43
  465. package/src/features/products/components/PlaceBidForm.tsx +0 -42
  466. package/src/features/products/components/PreOrderDetailView.tsx +0 -50
  467. package/src/features/products/components/PreOrdersView.tsx +0 -39
  468. package/src/features/products/components/ProductDetailView.tsx +0 -52
  469. package/src/features/products/components/ProductFeatureBadges.tsx +0 -192
  470. package/src/features/products/components/ProductGrid.tsx +0 -424
  471. package/src/features/products/components/ProductInfo.tsx +0 -44
  472. package/src/features/products/components/ProductTabs.tsx +0 -84
  473. package/src/features/products/components/ProductsView.tsx +0 -48
  474. package/src/features/products/components/RelatedProducts.tsx +0 -51
  475. package/src/features/products/components/index.ts +0 -28
  476. package/src/features/products/hooks/useProductDetail.ts +0 -44
  477. package/src/features/products/hooks/useProducts.ts +0 -112
  478. package/src/features/products/index.ts +0 -9
  479. package/src/features/products/manifest.ts +0 -18
  480. package/src/features/products/messages/en.json +0 -11
  481. package/src/features/products/repository/products.repository.ts +0 -83
  482. package/src/features/products/schemas/index.ts +0 -185
  483. package/src/features/products/server.ts +0 -12
  484. package/src/features/products/types/index.ts +0 -142
  485. package/src/features/products/utils/listing-type.ts +0 -12
  486. package/src/features/promotions/api/route.ts +0 -105
  487. package/src/features/promotions/columns/index.ts +0 -60
  488. package/src/features/promotions/components/CouponCard.tsx +0 -79
  489. package/src/features/promotions/components/PromotionsView.tsx +0 -129
  490. package/src/features/promotions/components/index.ts +0 -7
  491. package/src/features/promotions/hooks/usePromotions.ts +0 -59
  492. package/src/features/promotions/index.ts +0 -7
  493. package/src/features/promotions/manifest.ts +0 -16
  494. package/src/features/promotions/messages/en.json +0 -20
  495. package/src/features/promotions/repository/promotions.repository.ts +0 -62
  496. package/src/features/promotions/schemas/index.ts +0 -63
  497. package/src/features/promotions/server.ts +0 -7
  498. package/src/features/promotions/types/index.ts +0 -65
  499. package/src/features/reviews/api/[id]/route.ts +0 -163
  500. package/src/features/reviews/api/route.ts +0 -216
  501. package/src/features/reviews/columns/index.ts +0 -57
  502. package/src/features/reviews/components/ReviewModal.tsx +0 -133
  503. package/src/features/reviews/components/ReviewSummary.tsx +0 -82
  504. package/src/features/reviews/components/ReviewsList.tsx +0 -182
  505. package/src/features/reviews/components/ReviewsListView.tsx +0 -100
  506. package/src/features/reviews/components/index.ts +0 -11
  507. package/src/features/reviews/hooks/useReviews.ts +0 -67
  508. package/src/features/reviews/index.ts +0 -7
  509. package/src/features/reviews/manifest.ts +0 -12
  510. package/src/features/reviews/messages/en.json +0 -10
  511. package/src/features/reviews/repository/reviews.repository.ts +0 -69
  512. package/src/features/reviews/schemas/index.ts +0 -74
  513. package/src/features/reviews/server.ts +0 -12
  514. package/src/features/reviews/types/index.ts +0 -68
  515. package/src/features/search/api/route.ts +0 -100
  516. package/src/features/search/columns/index.ts +0 -70
  517. package/src/features/search/components/SearchFiltersRow.tsx +0 -118
  518. package/src/features/search/components/SearchResultsSection.tsx +0 -195
  519. package/src/features/search/components/SearchView.tsx +0 -99
  520. package/src/features/search/components/index.ts +0 -6
  521. package/src/features/search/hooks/useSearch.ts +0 -41
  522. package/src/features/search/index.ts +0 -7
  523. package/src/features/search/manifest.ts +0 -12
  524. package/src/features/search/messages/en.json +0 -15
  525. package/src/features/search/repository/search.repository.ts +0 -64
  526. package/src/features/search/schemas/index.ts +0 -36
  527. package/src/features/search/server.ts +0 -3
  528. package/src/features/search/types/index.ts +0 -59
  529. package/src/features/seller/api/coupons/route.ts +0 -57
  530. package/src/features/seller/api/offers/route.ts +0 -73
  531. package/src/features/seller/api/products/route.ts +0 -75
  532. package/src/features/seller/api/store/route.ts +0 -41
  533. package/src/features/seller/columns/index.ts +0 -103
  534. package/src/features/seller/components/SellerAddressesView.tsx +0 -32
  535. package/src/features/seller/components/SellerAnalyticsView.tsx +0 -38
  536. package/src/features/seller/components/SellerAuctionsView.tsx +0 -48
  537. package/src/features/seller/components/SellerCouponsView.tsx +0 -48
  538. package/src/features/seller/components/SellerCreateProductView.tsx +0 -27
  539. package/src/features/seller/components/SellerDashboardView.tsx +0 -41
  540. package/src/features/seller/components/SellerEditProductView.tsx +0 -27
  541. package/src/features/seller/components/SellerGuideView.tsx +0 -34
  542. package/src/features/seller/components/SellerOffersView.tsx +0 -46
  543. package/src/features/seller/components/SellerOrdersView.tsx +0 -46
  544. package/src/features/seller/components/SellerPayoutHistoryTable.tsx +0 -44
  545. package/src/features/seller/components/SellerPayoutSettingsView.tsx +0 -27
  546. package/src/features/seller/components/SellerPayoutStats.tsx +0 -24
  547. package/src/features/seller/components/SellerPayoutsView.tsx +0 -46
  548. package/src/features/seller/components/SellerProductsView.tsx +0 -51
  549. package/src/features/seller/components/SellerShippingView.tsx +0 -30
  550. package/src/features/seller/components/SellerSidebar.tsx +0 -84
  551. package/src/features/seller/components/SellerStatCard.tsx +0 -44
  552. package/src/features/seller/components/SellerStoreSetupView.tsx +0 -31
  553. package/src/features/seller/components/SellerStoreView.tsx +0 -27
  554. package/src/features/seller/components/SellerStorefrontView.tsx +0 -49
  555. package/src/features/seller/components/SellersListView.tsx +0 -43
  556. package/src/features/seller/components/analytics/SellerAnalyticsStats.tsx +0 -87
  557. package/src/features/seller/components/analytics/SellerRevenueChart.tsx +0 -99
  558. package/src/features/seller/components/analytics/SellerTopProducts.tsx +0 -76
  559. package/src/features/seller/components/analytics/index.ts +0 -3
  560. package/src/features/seller/components/index.ts +0 -47
  561. package/src/features/seller/hooks/useSellerPayouts.ts +0 -51
  562. package/src/features/seller/hooks/useSellerStore.ts +0 -60
  563. package/src/features/seller/index.ts +0 -12
  564. package/src/features/seller/manifest.ts +0 -76
  565. package/src/features/seller/messages/en.json +0 -32
  566. package/src/features/seller/permission-map.ts +0 -18
  567. package/src/features/seller/repository/seller.repository.ts +0 -100
  568. package/src/features/seller/schemas/index.ts +0 -113
  569. package/src/features/seller/server.ts +0 -10
  570. package/src/features/seller/types/index.ts +0 -185
  571. package/src/features/stores/api/[storeSlug]/auctions/route.ts +0 -134
  572. package/src/features/stores/api/[storeSlug]/products/route.ts +0 -139
  573. package/src/features/stores/api/[storeSlug]/reviews/route.ts +0 -155
  574. package/src/features/stores/api/[storeSlug]/route.ts +0 -120
  575. package/src/features/stores/api/route.ts +0 -128
  576. package/src/features/stores/columns/index.ts +0 -58
  577. package/src/features/stores/components/StoreAboutView.tsx +0 -134
  578. package/src/features/stores/components/StoreAuctionsView.tsx +0 -46
  579. package/src/features/stores/components/StoreHeader.tsx +0 -115
  580. package/src/features/stores/components/StoreNavTabs.tsx +0 -77
  581. package/src/features/stores/components/StoreProductsView.tsx +0 -77
  582. package/src/features/stores/components/StoreReviewsView.tsx +0 -45
  583. package/src/features/stores/components/StoresListView.tsx +0 -142
  584. package/src/features/stores/components/index.ts +0 -12
  585. package/src/features/stores/hooks/useStores.ts +0 -130
  586. package/src/features/stores/index.ts +0 -7
  587. package/src/features/stores/manifest.ts +0 -37
  588. package/src/features/stores/messages/en.json +0 -21
  589. package/src/features/stores/repository/stores.repository.ts +0 -51
  590. package/src/features/stores/schemas/index.ts +0 -42
  591. package/src/features/stores/server.ts +0 -11
  592. package/src/features/stores/types/index.ts +0 -123
  593. package/src/features/user/components/BecomeSellerView.tsx +0 -36
  594. package/src/features/user/components/MessagesView.tsx +0 -37
  595. package/src/features/user/components/OrderDetailView.tsx +0 -36
  596. package/src/features/user/components/ProfileView.tsx +0 -33
  597. package/src/features/user/components/UserAccountHub.tsx +0 -30
  598. package/src/features/user/components/UserAddressesView.tsx +0 -32
  599. package/src/features/user/components/UserNotificationsView.tsx +0 -38
  600. package/src/features/user/components/UserOffersView.tsx +0 -35
  601. package/src/features/user/components/UserOrdersView.tsx +0 -39
  602. package/src/features/user/components/UserSettingsView.tsx +0 -31
  603. package/src/features/user/components/UserSidebar.tsx +0 -27
  604. package/src/features/user/components/index.ts +0 -22
  605. package/src/features/user/index.ts +0 -1
  606. package/src/features/whatsapp-bot/api/send-status/route.ts +0 -48
  607. package/src/features/whatsapp-bot/api/webhook/route.ts +0 -55
  608. package/src/features/whatsapp-bot/components/WhatsAppChatButton.tsx +0 -38
  609. package/src/features/whatsapp-bot/components/index.ts +0 -1
  610. package/src/features/whatsapp-bot/helpers/whatsapp.ts +0 -137
  611. package/src/features/whatsapp-bot/index.ts +0 -4
  612. package/src/features/whatsapp-bot/manifest.ts +0 -15
  613. package/src/features/whatsapp-bot/messages/en.json +0 -7
  614. package/src/features/whatsapp-bot/types/index.ts +0 -61
  615. package/src/features/wishlist/columns/index.ts +0 -65
  616. package/src/features/wishlist/components/WishlistPage.tsx +0 -118
  617. package/src/features/wishlist/components/WishlistToggleButton.tsx +0 -68
  618. package/src/features/wishlist/components/WishlistView.tsx +0 -150
  619. package/src/features/wishlist/components/index.ts +0 -4
  620. package/src/features/wishlist/hooks/useUserWishlist.ts +0 -39
  621. package/src/features/wishlist/hooks/useWishlist.ts +0 -31
  622. package/src/features/wishlist/index.ts +0 -8
  623. package/src/features/wishlist/manifest.ts +0 -14
  624. package/src/features/wishlist/messages/en.json +0 -7
  625. package/src/features/wishlist/repository/wishlist.repository.ts +0 -43
  626. package/src/features/wishlist/schemas/index.ts +0 -25
  627. package/src/features/wishlist/types/index.ts +0 -17
  628. package/src/http/ApiClient.ts +0 -247
  629. package/src/http/index.ts +0 -10
  630. package/src/index.ts +0 -22
  631. package/src/instrumentation/index.ts +0 -77
  632. package/src/monitoring/cache-metrics.ts +0 -105
  633. package/src/monitoring/client-logger.ts +0 -83
  634. package/src/monitoring/error-tracking.ts +0 -115
  635. package/src/monitoring/index.ts +0 -52
  636. package/src/monitoring/performance.ts +0 -64
  637. package/src/monitoring/runtime.ts +0 -33
  638. package/src/monitoring/server-logger.ts +0 -93
  639. package/src/next/IAuthVerifier.ts +0 -56
  640. package/src/next/api/api-response.ts +0 -72
  641. package/src/next/api/apiHandler.ts +0 -178
  642. package/src/next/api/errorHandler.ts +0 -125
  643. package/src/next/api/routeHandler.ts +0 -175
  644. package/src/next/cache-middleware.ts +0 -112
  645. package/src/next/components/ErrorView.tsx +0 -73
  646. package/src/next/components/GlobalError.tsx +0 -75
  647. package/src/next/components/NotFoundView.tsx +0 -56
  648. package/src/next/components/UnauthorizedView.tsx +0 -61
  649. package/src/next/index.ts +0 -82
  650. package/src/next/middleware/chain.ts +0 -117
  651. package/src/next/middleware/index.ts +0 -14
  652. package/src/next/middleware/pii-redactor.ts +0 -112
  653. package/src/next/middleware/pii-scrubber.ts +0 -56
  654. package/src/next/middleware/types.ts +0 -26
  655. package/src/next/request-helpers.ts +0 -76
  656. package/src/next/routing/route-map.ts +0 -221
  657. package/src/providers/auth-firebase/browser-stub.ts +0 -32
  658. package/src/providers/auth-firebase/helpers.ts +0 -150
  659. package/src/providers/auth-firebase/index.ts +0 -26
  660. package/src/providers/auth-firebase/provider.ts +0 -163
  661. package/src/providers/auth-firebase/session.ts +0 -111
  662. package/src/providers/db-firebase/admin-app-lite.ts +0 -66
  663. package/src/providers/db-firebase/admin-auth-lite.ts +0 -16
  664. package/src/providers/db-firebase/admin-storage-lite.ts +0 -19
  665. package/src/providers/db-firebase/admin.ts +0 -217
  666. package/src/providers/db-firebase/base.ts +0 -243
  667. package/src/providers/db-firebase/browser-stub.ts +0 -47
  668. package/src/providers/db-firebase/helpers.ts +0 -88
  669. package/src/providers/db-firebase/index.ts +0 -60
  670. package/src/providers/db-firebase/realtime.ts +0 -185
  671. package/src/providers/db-firebase/sieve.ts +0 -136
  672. package/src/providers/email-resend/index.ts +0 -16
  673. package/src/providers/email-resend/provider.ts +0 -103
  674. package/src/providers/payment-razorpay/index.ts +0 -165
  675. package/src/providers/shipping-shiprocket/index.ts +0 -402
  676. package/src/providers/storage-firebase/index.ts +0 -17
  677. package/src/providers/storage-firebase/provider.ts +0 -131
  678. package/src/react/ErrorBoundary.tsx +0 -130
  679. package/src/react/hooks/useBreakpoint.ts +0 -41
  680. package/src/react/hooks/useBulkAction.ts +0 -161
  681. package/src/react/hooks/useBulkSelection.ts +0 -119
  682. package/src/react/hooks/useCamera.ts +0 -191
  683. package/src/react/hooks/useClickOutside.ts +0 -87
  684. package/src/react/hooks/useContainerGrid.ts +0 -77
  685. package/src/react/hooks/useCountdown.ts +0 -73
  686. package/src/react/hooks/useGesture.ts +0 -255
  687. package/src/react/hooks/useKeyPress.ts +0 -113
  688. package/src/react/hooks/useLongPress.ts +0 -62
  689. package/src/react/hooks/useMediaQuery.ts +0 -40
  690. package/src/react/hooks/usePendingFilters.ts +0 -138
  691. package/src/react/hooks/usePendingTable.ts +0 -84
  692. package/src/react/hooks/usePullToRefresh.ts +0 -111
  693. package/src/react/hooks/useSwipe.ts +0 -240
  694. package/src/react/hooks/useUnsavedChanges.ts +0 -104
  695. package/src/react/hooks/useUrlTable.ts +0 -189
  696. package/src/react/hooks/useVisibleItems.ts +0 -110
  697. package/src/react/index.ts +0 -99
  698. package/src/react/useModalStack.ts +0 -86
  699. package/src/security/authorization.ts +0 -92
  700. package/src/security/csp.ts +0 -44
  701. package/src/security/index.ts +0 -50
  702. package/src/security/pii-encrypt.ts +0 -117
  703. package/src/security/pii-redact.ts +0 -133
  704. package/src/security/rate-limit.ts +0 -170
  705. package/src/security/rbac/Can.tsx +0 -50
  706. package/src/security/rbac/default-roles.ts +0 -86
  707. package/src/security/rbac/hook.ts +0 -55
  708. package/src/security/rbac/index.ts +0 -14
  709. package/src/security/rbac/middleware.ts +0 -103
  710. package/src/security/rbac/resolver.ts +0 -69
  711. package/src/security/rbac/server.ts +0 -52
  712. package/src/security/rbac/types.ts +0 -27
  713. package/src/seed/defaults/categories.ts +0 -13
  714. package/src/seed/defaults/faqs.ts +0 -40
  715. package/src/seed/defaults/homepage-sections.ts +0 -63
  716. package/src/seed/factories/address.factory.ts +0 -106
  717. package/src/seed/factories/bid.factory.ts +0 -50
  718. package/src/seed/factories/blog-post.factory.ts +0 -40
  719. package/src/seed/factories/carousel.factory.ts +0 -30
  720. package/src/seed/factories/cart.factory.ts +0 -66
  721. package/src/seed/factories/category.factory.ts +0 -30
  722. package/src/seed/factories/coupon.factory.ts +0 -67
  723. package/src/seed/factories/faq.factory.ts +0 -28
  724. package/src/seed/factories/homepage-section.factory.ts +0 -35
  725. package/src/seed/factories/notification.factory.ts +0 -68
  726. package/src/seed/factories/order.factory.ts +0 -43
  727. package/src/seed/factories/payout.factory.ts +0 -62
  728. package/src/seed/factories/product.factory.ts +0 -120
  729. package/src/seed/factories/review.factory.ts +0 -67
  730. package/src/seed/factories/session.factory.ts +0 -49
  731. package/src/seed/factories/store.factory.ts +0 -69
  732. package/src/seed/factories/user.factory.ts +0 -88
  733. package/src/seed/index.ts +0 -84
  734. package/src/seed/runner.ts +0 -57
  735. package/src/seed/test-utils.ts +0 -155
  736. package/src/seed/types.ts +0 -40
  737. package/src/seo/index.ts +0 -2
  738. package/src/seo/json-ld.ts +0 -241
  739. package/src/seo/metadata.ts +0 -302
  740. package/src/style/tailwind/index.ts +0 -66
  741. package/src/style/vanilla/index.ts +0 -57
  742. package/src/tokens/index.ts +0 -864
  743. package/src/tokens/tokens.css +0 -221
  744. package/src/ui/DataTable.tsx +0 -655
  745. package/src/ui/animation.helper.ts +0 -20
  746. package/src/ui/color.helper.ts +0 -37
  747. package/src/ui/components/Accordion.tsx +0 -189
  748. package/src/ui/components/ActiveFilterChips.tsx +0 -81
  749. package/src/ui/components/Alert.tsx +0 -167
  750. package/src/ui/components/Badge.tsx +0 -65
  751. package/src/ui/components/Breadcrumb.tsx +0 -61
  752. package/src/ui/components/BulkActionBar.tsx +0 -246
  753. package/src/ui/components/Button.tsx +0 -75
  754. package/src/ui/components/CountdownDisplay.tsx +0 -87
  755. package/src/ui/components/DescriptionField.tsx +0 -55
  756. package/src/ui/components/Div.tsx +0 -29
  757. package/src/ui/components/Divider.tsx +0 -52
  758. package/src/ui/components/Drawer.tsx +0 -178
  759. package/src/ui/components/Form.tsx +0 -25
  760. package/src/ui/components/FormGrid.tsx +0 -82
  761. package/src/ui/components/HorizontalScroller.tsx +0 -183
  762. package/src/ui/components/IconButton.tsx +0 -71
  763. package/src/ui/components/ImageLightbox.tsx +0 -187
  764. package/src/ui/components/Input.tsx +0 -17
  765. package/src/ui/components/ItemRow.tsx +0 -38
  766. package/src/ui/components/Layout.tsx +0 -391
  767. package/src/ui/components/ListingLayout.tsx +0 -514
  768. package/src/ui/components/Modal.tsx +0 -162
  769. package/src/ui/components/Pagination.tsx +0 -182
  770. package/src/ui/components/PriceDisplay.tsx +0 -63
  771. package/src/ui/components/Progress.tsx +0 -154
  772. package/src/ui/components/RatingDisplay.tsx +0 -56
  773. package/src/ui/components/Select.tsx +0 -221
  774. package/src/ui/components/Semantic.tsx +0 -257
  775. package/src/ui/components/SideModal.tsx +0 -137
  776. package/src/ui/components/Skeleton.tsx +0 -82
  777. package/src/ui/components/Slider.tsx +0 -35
  778. package/src/ui/components/SortDropdown.tsx +0 -43
  779. package/src/ui/components/Spinner.tsx +0 -48
  780. package/src/ui/components/StarRating.tsx +0 -85
  781. package/src/ui/components/StatsGrid.tsx +0 -56
  782. package/src/ui/components/StatusBadge.tsx +0 -130
  783. package/src/ui/components/StepperNav.tsx +0 -89
  784. package/src/ui/components/SummaryCard.tsx +0 -66
  785. package/src/ui/components/TabStrip.tsx +0 -142
  786. package/src/ui/components/TablePagination.tsx +0 -134
  787. package/src/ui/components/TagInput.tsx +0 -133
  788. package/src/ui/components/TextLink.tsx +0 -68
  789. package/src/ui/components/Textarea.tsx +0 -17
  790. package/src/ui/components/Tooltip.tsx +0 -190
  791. package/src/ui/components/Typography.tsx +0 -270
  792. package/src/ui/components/ViewToggle.tsx +0 -133
  793. package/src/ui/index.ts +0 -248
  794. package/src/ui/rich-text/RichText.tsx +0 -243
  795. package/src/ui/rich-text/index.ts +0 -2
  796. package/src/ui/style.helper.ts +0 -18
  797. package/src/utils/animation.helper.ts +0 -22
  798. package/src/utils/array.helper.ts +0 -73
  799. package/src/utils/color.helper.ts +0 -57
  800. package/src/utils/cookie.converter.ts +0 -32
  801. package/src/utils/date.formatter.ts +0 -228
  802. package/src/utils/event-manager.ts +0 -168
  803. package/src/utils/filter.helper.ts +0 -24
  804. package/src/utils/id-generators.ts +0 -629
  805. package/src/utils/index.ts +0 -31
  806. package/src/utils/media-field.ts +0 -13
  807. package/src/utils/number.formatter.ts +0 -107
  808. package/src/utils/object.helper.ts +0 -111
  809. package/src/utils/pagination.helper.ts +0 -46
  810. package/src/utils/sorting.helper.ts +0 -21
  811. package/src/utils/string.formatter.ts +0 -178
  812. package/src/utils/type.converter.ts +0 -86
  813. package/src/validation/email.validator.ts +0 -37
  814. package/src/validation/index.ts +0 -17
  815. package/src/validation/input.validator.ts +0 -38
  816. package/src/validation/password.validator.ts +0 -97
  817. package/src/validation/phone.validator.ts +0 -38
  818. package/src/validation/schemas.ts +0 -106
  819. package/src/validation/url.validator.ts +0 -46
  820. package/src/validation/zod-error-map.ts +0 -96
@@ -1,187 +0,0 @@
1
- "use client";
2
-
3
- import React, { useCallback, useEffect, useRef, useState } from "react";
4
- import { createPortal } from "react-dom";
5
- import { ChevronLeft, ChevronRight, X, ZoomIn } from "lucide-react";
6
- import { Button } from "./Button";
7
- import { Text, Span } from "./Typography";
8
-
9
- /**
10
- * ImageLightbox — full-screen image overlay with keyboard navigation.
11
- *
12
- * Standalone @mohasinac/ui primitive. No app-specific imports.
13
- * Navigation: ← / → arrow keys, Esc to close. Displays item counter.
14
- *
15
- * Uses a standard <img> tag for framework portability.
16
- * In a Next.js app, callers may swap src with a blurDataURL if desired.
17
- */
18
-
19
- export interface LightboxImage {
20
- src: string;
21
- alt?: string;
22
- caption?: string;
23
- }
24
-
25
- export interface ImageLightboxProps {
26
- images: LightboxImage[];
27
- /** The index to open. Pass `null` or `-1` to close. */
28
- activeIndex: number | null;
29
- onClose: () => void;
30
- onNavigate?: (index: number) => void;
31
- }
32
-
33
- export function ImageLightbox({
34
- images,
35
- activeIndex,
36
- onClose,
37
- onNavigate,
38
- }: ImageLightboxProps) {
39
- const [currentIndex, setCurrentIndex] = useState(activeIndex ?? 0);
40
- const overlayRef = useRef<HTMLDivElement>(null);
41
-
42
- // Sync external activeIndex
43
- useEffect(() => {
44
- if (activeIndex !== null && activeIndex >= 0) {
45
- setCurrentIndex(activeIndex);
46
- }
47
- }, [activeIndex]);
48
-
49
- const isOpen = activeIndex !== null && activeIndex >= 0 && images.length > 0;
50
-
51
- // Body scroll lock
52
- useEffect(() => {
53
- if (!isOpen) return;
54
- const prev = document.body.style.overflow;
55
- document.body.style.overflow = "hidden";
56
- return () => {
57
- document.body.style.overflow = prev;
58
- };
59
- }, [isOpen]);
60
-
61
- const navigate = useCallback(
62
- (dir: 1 | -1) => {
63
- setCurrentIndex((prev) => {
64
- const next = (prev + dir + images.length) % images.length;
65
- onNavigate?.(next);
66
- return next;
67
- });
68
- },
69
- [images.length, onNavigate],
70
- );
71
-
72
- const handleKeyDown = useCallback(
73
- (e: React.KeyboardEvent) => {
74
- if (e.key === "Escape") {
75
- onClose();
76
- return;
77
- }
78
- if (e.key === "ArrowLeft") {
79
- navigate(-1);
80
- return;
81
- }
82
- if (e.key === "ArrowRight") {
83
- navigate(1);
84
- return;
85
- }
86
- },
87
- [onClose, navigate],
88
- );
89
-
90
- // Focus overlay on open for keyboard to work
91
- useEffect(() => {
92
- if (isOpen) {
93
- requestAnimationFrame(() => overlayRef.current?.focus());
94
- }
95
- }, [isOpen]);
96
-
97
- if (!isOpen || typeof document === "undefined") return null;
98
-
99
- const image = images[currentIndex];
100
- const hasMultiple = images.length > 1;
101
-
102
- return createPortal(
103
- <div
104
- ref={overlayRef}
105
- tabIndex={-1}
106
- className="fixed inset-0 z-[9999] bg-black/95 flex flex-col items-center justify-center outline-none"
107
- role="dialog"
108
- aria-modal="true"
109
- aria-label="Image lightbox"
110
- onKeyDown={handleKeyDown}
111
- >
112
- {/* Close button */}
113
- <Button
114
- variant="ghost"
115
- size="sm"
116
- type="button"
117
- onClick={onClose}
118
- className="absolute top-4 right-4 z-10 w-12 h-12 p-0 !min-h-0 rounded-full bg-white/15 hover:bg-red-500/50 text-white flex items-center justify-center"
119
- aria-label="Close lightbox"
120
- >
121
- <X className="w-7 h-7" />
122
- </Button>
123
-
124
- {/* Counter */}
125
- {hasMultiple && (
126
- <div className="absolute top-4 left-1/2 -translate-x-1/2 text-white/70 text-sm font-medium">
127
- {currentIndex + 1} / {images.length}
128
- </div>
129
- )}
130
-
131
- {/* Prev button */}
132
- {hasMultiple && (
133
- <Button
134
- variant="ghost"
135
- size="sm"
136
- type="button"
137
- onClick={() => navigate(-1)}
138
- className="absolute left-4 top-1/2 -translate-y-1/2 w-12 h-12 p-0 !min-h-0 rounded-full bg-white/15 hover:bg-white/30 text-white z-10 flex items-center justify-center"
139
- aria-label="Previous image"
140
- >
141
- <ChevronLeft className="w-7 h-7" />
142
- </Button>
143
- )}
144
-
145
- {/* Image */}
146
- <div className="flex-1 flex items-center justify-center p-16 w-full h-full relative">
147
- <img
148
- src={image.src}
149
- alt={image.alt ?? ""}
150
- className="max-h-full max-w-full object-contain select-none"
151
- draggable={false}
152
- />
153
- {/* Zoom icon hint */}
154
- <div className="absolute bottom-4 right-4 text-white/40 flex items-center gap-1 text-xs">
155
- <ZoomIn className="w-4 h-4" />
156
- <Span className="text-xs">Scroll to zoom</Span>
157
- </div>
158
- </div>
159
-
160
- {/* Caption */}
161
- {image.caption && (
162
- <Text
163
- size="sm"
164
- variant="secondary"
165
- className="flex-shrink-0 !text-white/70 text-center px-8 pb-4"
166
- >
167
- {image.caption}
168
- </Text>
169
- )}
170
-
171
- {/* Next button */}
172
- {hasMultiple && (
173
- <Button
174
- variant="ghost"
175
- size="sm"
176
- type="button"
177
- onClick={() => navigate(1)}
178
- className="absolute right-4 top-1/2 -translate-y-1/2 w-12 h-12 p-0 !min-h-0 rounded-full bg-white/15 hover:bg-white/30 text-white z-10 flex items-center justify-center"
179
- aria-label="Next image"
180
- >
181
- <ChevronRight className="w-7 h-7" />
182
- </Button>
183
- )}
184
- </div>,
185
- document.body,
186
- );
187
- }
@@ -1,17 +0,0 @@
1
- import React from "react";
2
-
3
- export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
4
-
5
- export function Input({ className = "", ...props }: InputProps) {
6
- return (
7
- <input
8
- className={[
9
- "w-full rounded-md border border-zinc-200 dark:border-slate-700 bg-white dark:bg-slate-800/60 px-2.5 py-1.5 text-sm text-zinc-900 dark:text-zinc-100 focus:outline-none focus:ring-2 focus:ring-primary-500/20 dark:focus:ring-secondary-400/20",
10
- className,
11
- ]
12
- .filter(Boolean)
13
- .join(" ")}
14
- {...props}
15
- />
16
- );
17
- }
@@ -1,38 +0,0 @@
1
- import React from "react";
2
- import { Caption, Text } from "./Typography";
3
- import { Div } from "./Div";
4
- import { classNames } from "../style.helper";
5
-
6
- export interface ItemRowProps {
7
- thumbnail?: React.ReactNode;
8
- title: string;
9
- subtitle?: string;
10
- rightSlot?: React.ReactNode;
11
- actions?: React.ReactNode;
12
- className?: string;
13
- }
14
-
15
- export function ItemRow({
16
- thumbnail,
17
- title,
18
- subtitle,
19
- rightSlot,
20
- actions,
21
- className,
22
- }: ItemRowProps) {
23
- return (
24
- <Div className={classNames("flex items-start gap-4", className)}>
25
- {thumbnail && <Div className="flex-shrink-0">{thumbnail}</Div>}
26
-
27
- <Div className="min-w-0 flex-1">
28
- <Text size="sm" weight="medium" className="line-clamp-2">
29
- {title}
30
- </Text>
31
- {subtitle && <Caption className="mt-0.5">{subtitle}</Caption>}
32
- {actions && <Div className="mt-2">{actions}</Div>}
33
- </Div>
34
-
35
- {rightSlot && <Div className="flex-shrink-0">{rightSlot}</Div>}
36
- </Div>
37
- );
38
- }
@@ -1,391 +0,0 @@
1
- import React from "react";
2
-
3
- /**
4
- * Layout Primitives — Container, Stack, Row, Grid
5
- *
6
- * Thin component wrappers that turn semantic prop names into the correct
7
- * Tailwind class strings from the app's THEME_CONSTANTS token map.
8
- * Eliminates repeated inline class strings like "grid grid-cols-1 sm:grid-cols-2
9
- * lg:grid-cols-3 gap-4" and "flex flex-row items-center justify-between gap-2".
10
- *
11
- * Token maps are inlined here (like UI_THEME in Typography.tsx) so the package
12
- * stays independent of the host app's @/constants import path.
13
- *
14
- * @example
15
- * ```tsx
16
- * // Before
17
- * <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
18
- * <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
19
- * <div className="flex flex-row items-center justify-between gap-2">
20
- * <div className="flex flex-col gap-4">
21
- *
22
- * // After
23
- * <Container>
24
- * <Grid cols={3} gap="md">
25
- * <Row justify="between" gap="sm">
26
- * <Stack gap="md">
27
- * ```
28
- */
29
-
30
- // ─── Token maps ──────────────────────────────────────────────────────────────
31
-
32
- /**
33
- * Gap tokens — maps to `gap-*` Tailwind classes.
34
- * Mirrors THEME_CONSTANTS.spacing.gap in the host app.
35
- */
36
- const GAP_MAP = {
37
- none: "",
38
- px: "gap-px",
39
- xs: "gap-1",
40
- sm: "gap-2",
41
- "2.5": "gap-2.5",
42
- "3": "gap-3",
43
- md: "gap-4",
44
- "5": "gap-5",
45
- lg: "gap-6",
46
- xl: "gap-8",
47
- "2xl": "gap-12",
48
- } as const;
49
-
50
- export type GapKey = keyof typeof GAP_MAP;
51
-
52
- /**
53
- * Page container sizes.
54
- * Mirrors THEME_CONSTANTS.page.container in the host app.
55
- */
56
- const CONTAINER_MAP = {
57
- /** `max-w-3xl` — blog posts, legal / policy pages */
58
- sm: "max-w-3xl mx-auto px-4 sm:px-6 lg:px-8",
59
- /** `max-w-4xl` — narrow content, contact, about */
60
- md: "max-w-4xl mx-auto px-4 sm:px-6 lg:px-8",
61
- /** `max-w-5xl` — medium content, checkout, help */
62
- lg: "max-w-5xl mx-auto px-4 sm:px-6 lg:px-8",
63
- /** `max-w-6xl` — product detail, cart */
64
- xl: "max-w-6xl mx-auto px-4 sm:px-6 lg:px-8",
65
- /** `max-w-7xl` — main content grids (default) */
66
- "2xl": "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",
67
- /** `max-w-screen-2xl` — full-bleed wide content */
68
- full: "max-w-screen-2xl mx-auto px-4 sm:px-6 lg:px-8",
69
- /** `max-w-screen-2xl` — wide store/seller layouts (compact px) */
70
- wide: "max-w-screen-2xl mx-auto px-4 sm:px-6",
71
- /** `max-w-[1920px]` — ultra-wide / 4K displays */
72
- ultra: "max-w-[1920px] mx-auto px-4 sm:px-6 lg:px-8",
73
- } as const;
74
-
75
- export type ContainerSize = keyof typeof CONTAINER_MAP;
76
-
77
- export type ContainerSizeValue = (typeof CONTAINER_MAP)[ContainerSize];
78
-
79
- /**
80
- * Responsive grid column presets.
81
- * Mirrors THEME_CONSTANTS.grid in the host app.
82
- */
83
- export const GRID_MAP = {
84
- /** Single column */
85
- 1: "grid grid-cols-1",
86
- /** 1 → 2 */
87
- 2: "grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-2 2xl:grid-cols-2",
88
- /** 1 → 2 → 3 → 4 on widescreen */
89
- 3: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4",
90
- /** 1 → 2 → 3 → 4 → 5 on widescreen */
91
- 4: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5",
92
- /** 1 → 2 → 3 → 4 → 5 */
93
- 5: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-4 2xl:grid-cols-5",
94
- /** 2 → 3 → 4 → 5 → 6 */
95
- 6: "grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6",
96
- /**
97
- * Generic card grid — 1 col on portrait mobile → 5 on ultrawide.
98
- * Starts at 1 so product cards are readable even on 320 px handsets.
99
- */
100
- cards:
101
- "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-4 2xl:grid-cols-5",
102
- /** Auto-fill product cards — min 200 px */
103
- productCards: "grid grid-cols-[repeat(auto-fill,minmax(200px,1fr))] gap-6",
104
- /** Auto-fill product cards (compact) — min 220 px */
105
- productCardsCompact:
106
- "grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-4",
107
- /** Auto-fill store cards — min 220 px */
108
- storeCards: "grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-6",
109
- /** Auto-fill category tiles — min 130 px */
110
- categoryCards: "grid grid-cols-[repeat(auto-fill,minmax(130px,1fr))] gap-4",
111
- /** Auto-fill coupon/promo cards — min 264 px */
112
- couponCards: "grid grid-cols-[repeat(auto-fill,minmax(264px,1fr))] gap-6",
113
- /** Auto-fill address / wide cards — min 300 px */
114
- addressCards: "grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-4",
115
- /** Auto-fill KPI/stat tiles — min 180 px */
116
- statTiles: "grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-4",
117
- /** Auto-fill account nav tiles — min 160 px */
118
- navTiles: "grid grid-cols-[repeat(auto-fill,minmax(160px,1fr))] gap-4",
119
- /** Equal halves on md+ */
120
- halves: "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-2 2xl:grid-cols-2",
121
- /** 2fr / 1fr split on md+ */
122
- twoThird: "grid grid-cols-1 md:grid-cols-[2fr_1fr]",
123
- /** 1fr / 2fr split on md+ */
124
- oneThird: "grid grid-cols-1 md:grid-cols-[1fr_2fr]",
125
- /** Fixed 280px left sidebar + 1fr on lg+ */
126
- sidebar: "grid grid-cols-1 lg:grid-cols-[280px_1fr]",
127
- /** 1fr + fixed 280px right sidebar on lg+ */
128
- sidebarRight: "grid grid-cols-1 lg:grid-cols-[1fr_280px]",
129
- /** Fixed 320px left sidebar + 1fr on lg+ (admin layout) */
130
- sidebarWide: "grid grid-cols-1 lg:grid-cols-[320px_1fr]",
131
- /** Product detail triplet: gallery | info | actions sidebar */
132
- productDetailTriplet:
133
- "grid grid-cols-1 lg:grid-cols-[1fr_1fr_280px] xl:grid-cols-[1fr_1fr_300px] 2xl:grid-cols-[1fr_1fr_320px] gap-6 lg:gap-8",
134
- /** CSS auto-fill, min 200px columns */
135
- autoSm: "grid grid-cols-[repeat(auto-fill,minmax(200px,1fr))]",
136
- /** CSS auto-fill, min 280px columns */
137
- autoMd: "grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))]",
138
- /** CSS auto-fill, min 360px columns */
139
- autoLg: "grid grid-cols-[repeat(auto-fill,minmax(360px,1fr))]",
140
- } as const;
141
-
142
- export type GridCols = keyof typeof GRID_MAP;
143
-
144
- // Alignment helpers shared across Stack and Row
145
- const ITEMS_MAP = {
146
- start: "items-start",
147
- center: "items-center",
148
- end: "items-end",
149
- stretch: "items-stretch",
150
- baseline: "items-baseline",
151
- } as const;
152
-
153
- type ItemsAlign = keyof typeof ITEMS_MAP;
154
-
155
- const JUSTIFY_MAP = {
156
- start: "justify-start",
157
- center: "justify-center",
158
- end: "justify-end",
159
- between: "justify-between",
160
- around: "justify-around",
161
- evenly: "justify-evenly",
162
- } as const;
163
-
164
- type JustifyContent = keyof typeof JUSTIFY_MAP;
165
-
166
- // ─── Container ────────────────────────────────────────────────────────────────
167
-
168
- /**
169
- * Page-level container with max-width + centering + responsive horizontal padding.
170
- * Replaces repeated `max-w-7xl mx-auto px-4 sm:px-6 lg:px-8` strings.
171
- *
172
- * @example
173
- * ```tsx
174
- * <Container>...</Container> // max-w-7xl (default)
175
- * <Container size="lg">...</Container> // max-w-5xl
176
- * <Container size="full" as="main">...</Container>
177
- * ```
178
- */
179
- export interface ContainerProps extends React.HTMLAttributes<HTMLElement> {
180
- /**
181
- * Max-width breakpoint preset.
182
- * - `sm` → `max-w-3xl` (blog / policy)
183
- * - `md` → `max-w-4xl` (contact / about)
184
- * - `lg` → `max-w-5xl` (checkout / help)
185
- * - `xl` → `max-w-6xl` (product detail / cart)
186
- * - `2xl` → `max-w-7xl` (main content grids — **default**)
187
- * - `full` → `max-w-screen-2xl` (full-bleed)
188
- * - `wide` → `max-w-screen-2xl` (compact px, no lg step)
189
- * - `ultra` → `max-w-[1920px]` (ultra-wide / 4K displays)
190
- */
191
- size?: ContainerSize;
192
- /** Render as a different element (e.g. `"main"`, `"section"`). Defaults to `"div"`. */
193
- as?: React.ElementType;
194
- children?: React.ReactNode;
195
- }
196
-
197
- export function Container({
198
- size = "2xl",
199
- as,
200
- className = "",
201
- children,
202
- ...props
203
- }: ContainerProps) {
204
- const Tag = (as ?? "div") as React.ElementType;
205
- return (
206
- <Tag
207
- className={[CONTAINER_MAP[size], className].filter(Boolean).join(" ")}
208
- {...props}
209
- >
210
- {children}
211
- </Tag>
212
- );
213
- }
214
-
215
- // ─── Stack ────────────────────────────────────────────────────────────────────
216
-
217
- /**
218
- * Vertical flex column. Use instead of `<div className="flex flex-col gap-4">`.
219
- *
220
- * @example
221
- * ```tsx
222
- * <Stack gap="sm">
223
- * <Text>Line one</Text>
224
- * <Text>Line two</Text>
225
- * </Stack>
226
- *
227
- * // As a list
228
- * <Stack as="ul" gap="xs">
229
- * <Li>Item</Li>
230
- * </Stack>
231
- * ```
232
- */
233
- export interface StackProps extends React.HTMLAttributes<HTMLElement> {
234
- /** Space between children. Defaults to `"md"` (`gap-4`). */
235
- gap?: GapKey;
236
- /** Centers children on both axes (`items-center justify-center`). */
237
- centered?: boolean;
238
- /** Cross-axis (horizontal) alignment. Defaults to `"stretch"`. */
239
- align?: Extract<ItemsAlign, "start" | "center" | "end" | "stretch">;
240
- /** Render as a different element. Defaults to `"div"`. */
241
- as?: React.ElementType;
242
- children?: React.ReactNode;
243
- }
244
-
245
- export function Stack({
246
- gap = "md",
247
- centered = false,
248
- align = "stretch",
249
- as,
250
- className = "",
251
- children,
252
- ...props
253
- }: StackProps) {
254
- const Tag = (as ?? "div") as React.ElementType;
255
- const classes = [
256
- "flex flex-col",
257
- GAP_MAP[gap],
258
- centered ? "items-center justify-center" : "",
259
- !centered && align !== "stretch" ? ITEMS_MAP[align] : "",
260
- className,
261
- ]
262
- .filter(Boolean)
263
- .join(" ");
264
- return (
265
- <Tag className={classes} {...props}>
266
- {children}
267
- </Tag>
268
- );
269
- }
270
-
271
- // ─── Row ─────────────────────────────────────────────────────────────────────
272
-
273
- /**
274
- * Horizontal flex row. Use instead of `<div className="flex items-center gap-3">`.
275
- *
276
- * @example
277
- * ```tsx
278
- * <Row gap="sm" justify="between">
279
- * <Heading level={3}>Title</Heading>
280
- * <Button>Action</Button>
281
- * </Row>
282
- *
283
- * <Row gap="xs" wrap>
284
- * <Badge>tag</Badge>
285
- * <Badge>other</Badge>
286
- * </Row>
287
- * ```
288
- */
289
- export interface RowProps extends React.HTMLAttributes<HTMLElement> {
290
- /** Space between children. Defaults to `"md"` (`gap-4`). */
291
- gap?: GapKey;
292
- /** Centers children on both axes (`items-center justify-center`). */
293
- centered?: boolean;
294
- /** Cross-axis (vertical) alignment. Defaults to `"center"`. */
295
- align?: ItemsAlign;
296
- /** Main-axis (horizontal) distribution. Defaults to `"start"`. */
297
- justify?: JustifyContent;
298
- /** Allow children to wrap onto multiple lines. */
299
- wrap?: boolean;
300
- /** Render as a different element. Defaults to `"div"`. */
301
- as?: React.ElementType;
302
- children?: React.ReactNode;
303
- }
304
-
305
- export function Row({
306
- gap = "md",
307
- centered = false,
308
- align = "center",
309
- justify = "start",
310
- wrap = false,
311
- as,
312
- className = "",
313
- children,
314
- ...props
315
- }: RowProps) {
316
- const Tag = (as ?? "div") as React.ElementType;
317
- const classes = [
318
- "flex flex-row",
319
- centered ? "items-center justify-center" : ITEMS_MAP[align],
320
- !centered && justify !== "start" ? JUSTIFY_MAP[justify] : "",
321
- GAP_MAP[gap],
322
- wrap ? "flex-wrap" : "",
323
- className,
324
- ]
325
- .filter(Boolean)
326
- .join(" ");
327
- return (
328
- <Tag className={classes} {...props}>
329
- {children}
330
- </Tag>
331
- );
332
- }
333
-
334
- // ─── Grid ─────────────────────────────────────────────────────────────────────
335
-
336
- /**
337
- * Responsive CSS grid. Use instead of `<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">`.
338
- *
339
- * @example
340
- * ```tsx
341
- * <Grid cols={3} gap="md">
342
- * <ProductCard />
343
- * <ProductCard />
344
- * </Grid>
345
- *
346
- * <Grid cols="sidebar" gap="lg">
347
- * <Aside>Filters</Aside>
348
- * <Main>Results</Main>
349
- * </Grid>
350
- * ```
351
- */
352
- export interface GridProps extends React.HTMLAttributes<HTMLElement> {
353
- /**
354
- * Column preset.
355
- * - Numbers `1`–`6` → mobile-first responsive stacks
356
- * - `"halves"` → equal 2-col on md+
357
- * - `"sidebar"` / `"sidebarRight"` / `"sidebarWide"` → fixed+flexible splits
358
- * - `"twoThird"` / `"oneThird"` → 2fr/1fr splits
359
- * - `"autoSm"` / `"autoMd"` / `"autoLg"` → CSS auto-fill grids
360
- * - Omit (or `undefined`) to use a raw `grid` base and supply columns via
361
- * the `className` prop directly (e.g. `className="grid-cols-2"`). Useful
362
- * for fixed non-responsive column counts (form field pairs, button rows).
363
- */
364
- cols?: GridCols;
365
- /** Space between grid cells. Defaults to `"md"` (`gap-4`). */
366
- gap?: GapKey;
367
- /** Render as a different element. Defaults to `"div"`. */
368
- as?: React.ElementType;
369
- children?: React.ReactNode;
370
- }
371
-
372
- export function Grid({
373
- cols,
374
- gap = "md",
375
- as,
376
- className = "",
377
- children,
378
- ...props
379
- }: GridProps) {
380
- const Tag = (as ?? "div") as React.ElementType;
381
- // When cols is omitted callers supply grid-cols-* themselves via className.
382
- const baseClass = cols !== undefined ? GRID_MAP[cols] : "grid";
383
- const classes = [baseClass, GAP_MAP[gap], className]
384
- .filter(Boolean)
385
- .join(" ");
386
- return (
387
- <Tag className={classes} {...props}>
388
- {children}
389
- </Tag>
390
- );
391
- }