@mohasinac/appkit 2.1.1 → 2.2.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 (2600) hide show
  1. package/README.md +36 -65
  2. package/dist/cli/index.d.ts +6 -9
  3. package/dist/cli/index.js +167 -141
  4. package/dist/client.d.ts +15 -0
  5. package/dist/client.js +15 -0
  6. package/dist/constants/api-endpoint-resolver.d.ts +34 -0
  7. package/dist/constants/api-endpoint-resolver.js +38 -0
  8. package/dist/constants/api-endpoints.d.ts +388 -0
  9. package/dist/constants/api-endpoints.js +342 -0
  10. package/dist/constants/cache-invalidation.d.ts +18 -0
  11. package/dist/constants/cache-invalidation.js +33 -0
  12. package/dist/constants/index.d.ts +14 -0
  13. package/dist/constants/index.js +14 -0
  14. package/dist/contracts/auth.d.ts +58 -0
  15. package/dist/contracts/auth.js +2 -0
  16. package/dist/contracts/client-auth.d.ts +22 -0
  17. package/dist/contracts/client-auth.js +17 -0
  18. package/dist/contracts/client-payment-gateway.d.ts +65 -0
  19. package/dist/contracts/client-payment-gateway.js +25 -0
  20. package/dist/contracts/client-realtime.d.ts +24 -0
  21. package/dist/contracts/client-realtime.js +18 -0
  22. package/dist/contracts/client-session.d.ts +37 -0
  23. package/dist/contracts/client-session.js +22 -0
  24. package/dist/contracts/config.d.ts +53 -0
  25. package/dist/contracts/config.js +2 -0
  26. package/dist/contracts/email.d.ts +30 -0
  27. package/dist/contracts/email.js +2 -0
  28. package/dist/contracts/extend.d.ts +270 -0
  29. package/dist/contracts/extend.js +75 -0
  30. package/dist/contracts/feature.d.ts +53 -0
  31. package/dist/contracts/feature.js +2 -0
  32. package/dist/contracts/field-ops.d.ts +31 -0
  33. package/dist/contracts/field-ops.js +35 -0
  34. package/dist/contracts/form.d.ts +89 -0
  35. package/dist/contracts/form.js +80 -0
  36. package/dist/contracts/index.d.ts +32 -728
  37. package/dist/contracts/index.js +13 -4
  38. package/dist/contracts/infra.d.ts +43 -0
  39. package/dist/contracts/infra.js +2 -0
  40. package/dist/contracts/payment.d.ts +39 -0
  41. package/dist/contracts/payment.js +2 -0
  42. package/dist/contracts/registry.d.ts +26 -0
  43. package/dist/contracts/registry.js +14 -0
  44. package/dist/contracts/repository.d.ts +127 -0
  45. package/dist/contracts/repository.js +28 -0
  46. package/dist/contracts/search.d.ts +44 -0
  47. package/dist/contracts/search.js +2 -0
  48. package/dist/contracts/shipping.d.ts +64 -0
  49. package/dist/contracts/shipping.js +2 -0
  50. package/dist/contracts/storage.d.ts +27 -0
  51. package/dist/contracts/storage.js +2 -0
  52. package/dist/contracts/style.d.ts +23 -0
  53. package/dist/contracts/style.js +2 -0
  54. package/dist/contracts/table.d.ts +104 -0
  55. package/dist/contracts/table.js +68 -0
  56. package/dist/core/CacheManager.d.ts +31 -0
  57. package/dist/core/CacheManager.js +63 -0
  58. package/dist/core/EventBus.d.ts +27 -0
  59. package/dist/core/EventBus.js +75 -0
  60. package/dist/core/Logger.d.ts +60 -0
  61. package/dist/core/Logger.js +153 -0
  62. package/dist/core/Queue.d.ts +43 -0
  63. package/dist/core/Queue.js +92 -0
  64. package/dist/core/StorageManager.d.ts +36 -0
  65. package/dist/core/StorageManager.js +159 -0
  66. package/dist/core/baseline-resolver.d.ts +52 -0
  67. package/dist/core/baseline-resolver.js +74 -0
  68. package/dist/core/browser.d.ts +18 -0
  69. package/dist/core/browser.js +9 -0
  70. package/dist/core/copilot-log.repository.d.ts +44 -0
  71. package/dist/core/copilot-log.repository.js +61 -0
  72. package/dist/core/hooks/useSiteSettings.d.ts +1 -0
  73. package/dist/core/hooks/useSiteSettings.js +11 -0
  74. package/dist/core/index.d.ts +31 -326
  75. package/dist/core/index.js +21 -7
  76. package/dist/core/integration-keys.d.ts +30 -0
  77. package/dist/core/integration-keys.js +55 -0
  78. package/dist/core/mutation-events.d.ts +147 -0
  79. package/dist/core/mutation-events.js +193 -0
  80. package/dist/core/newsletter-actions.d.ts +20 -0
  81. package/dist/core/newsletter-actions.js +28 -0
  82. package/dist/core/newsletter.repository.d.ts +55 -0
  83. package/dist/core/newsletter.repository.js +109 -0
  84. package/dist/core/server-action.d.ts +114 -0
  85. package/dist/core/server-action.js +119 -0
  86. package/dist/core/site-config.d.ts +33 -0
  87. package/dist/core/site-config.js +74 -0
  88. package/dist/core/unit-of-work.d.ts +32 -0
  89. package/dist/core/unit-of-work.js +114 -0
  90. package/dist/errors/api-error.d.ts +4 -0
  91. package/dist/errors/api-error.js +6 -0
  92. package/dist/errors/authentication-error.d.ts +4 -0
  93. package/dist/errors/authentication-error.js +6 -0
  94. package/dist/errors/authorization-error.d.ts +4 -0
  95. package/dist/errors/authorization-error.js +6 -0
  96. package/dist/errors/base-error.d.ts +14 -0
  97. package/dist/errors/base-error.js +22 -0
  98. package/dist/errors/database-error.d.ts +4 -0
  99. package/dist/errors/database-error.js +6 -0
  100. package/dist/errors/error-codes.d.ts +43 -0
  101. package/dist/errors/error-codes.js +93 -0
  102. package/dist/errors/error-handler.d.ts +16 -0
  103. package/dist/errors/error-handler.js +57 -0
  104. package/dist/errors/index.d.ts +11 -96
  105. package/dist/errors/index.js +15 -4
  106. package/dist/errors/messages.d.ts +469 -0
  107. package/dist/errors/messages.js +503 -0
  108. package/dist/errors/not-found-error.d.ts +4 -0
  109. package/dist/errors/not-found-error.js +6 -0
  110. package/dist/errors/validation-error.d.ts +4 -0
  111. package/dist/errors/validation-error.js +6 -0
  112. package/dist/features/about/components/AboutView.d.ts +38 -0
  113. package/dist/features/about/components/AboutView.js +5 -0
  114. package/dist/features/about/index.d.ts +2 -42
  115. package/dist/features/about/index.js +1 -280
  116. package/dist/features/account/actions/address-actions.d.ts +7 -0
  117. package/dist/features/account/actions/address-actions.js +24 -0
  118. package/dist/features/account/actions/index.d.ts +1 -0
  119. package/dist/features/account/actions/index.js +1 -0
  120. package/dist/features/account/address-validation.d.ts +20 -0
  121. package/dist/features/account/address-validation.js +35 -0
  122. package/dist/features/account/api/[userId]/addresses/route.d.ts +21 -0
  123. package/dist/features/account/api/[userId]/addresses/route.js +91 -0
  124. package/dist/features/account/api/[userId]/route.d.ts +23 -0
  125. package/dist/features/account/api/[userId]/route.js +67 -0
  126. package/dist/features/account/columns/index.d.ts +17 -0
  127. package/dist/features/account/columns/index.js +39 -0
  128. package/dist/features/account/components/AddressBook.d.ts +39 -0
  129. package/dist/features/account/components/AddressBook.js +14 -0
  130. package/dist/features/account/components/AddressForm.d.ts +39 -0
  131. package/dist/features/account/components/AddressForm.js +55 -0
  132. package/dist/features/account/components/AddressSelectorCreate.d.ts +16 -0
  133. package/dist/features/account/components/AddressSelectorCreate.js +40 -0
  134. package/dist/features/account/components/BecomeSellerView.d.ts +17 -0
  135. package/dist/features/account/components/BecomeSellerView.js +5 -0
  136. package/dist/features/account/components/ChatList.d.ts +14 -0
  137. package/dist/features/account/components/ChatList.js +10 -0
  138. package/dist/features/account/components/ChatWindow.d.ts +17 -0
  139. package/dist/features/account/components/ChatWindow.js +6 -0
  140. package/dist/features/account/components/MessagesView.d.ts +16 -0
  141. package/dist/features/account/components/MessagesView.js +5 -0
  142. package/dist/features/account/components/NotificationBell.d.ts +32 -0
  143. package/dist/features/account/components/NotificationBell.js +80 -0
  144. package/dist/features/account/components/OrderDetailView.d.ts +18 -0
  145. package/dist/features/account/components/OrderDetailView.js +12 -0
  146. package/dist/features/account/components/ProfileView.d.ts +12 -0
  147. package/dist/features/account/components/ProfileView.js +5 -0
  148. package/dist/features/account/components/UserAccountHubView.d.ts +13 -0
  149. package/dist/features/account/components/UserAccountHubView.js +5 -0
  150. package/dist/features/account/components/UserAddressesView.d.ts +13 -0
  151. package/dist/features/account/components/UserAddressesView.js +5 -0
  152. package/dist/features/account/components/UserNotificationsView.d.ts +15 -0
  153. package/dist/features/account/components/UserNotificationsView.js +12 -0
  154. package/dist/features/account/components/UserOffersView.d.ts +10 -0
  155. package/dist/features/account/components/UserOffersView.js +5 -0
  156. package/dist/features/account/components/UserOrderTrackView.d.ts +16 -0
  157. package/dist/features/account/components/UserOrderTrackView.js +8 -0
  158. package/dist/features/account/components/UserOrdersView.d.ts +12 -0
  159. package/dist/features/account/components/UserOrdersView.js +5 -0
  160. package/dist/features/account/components/UserSettingsView.d.ts +15 -0
  161. package/dist/features/account/components/UserSettingsView.js +12 -0
  162. package/dist/features/account/components/index.d.ts +34 -0
  163. package/dist/features/account/components/index.js +17 -0
  164. package/dist/features/account/constants/addresses.d.ts +13 -0
  165. package/dist/features/account/constants/addresses.js +43 -0
  166. package/dist/features/account/hooks/useAccount.d.ts +13 -0
  167. package/dist/features/account/hooks/useAccount.js +19 -0
  168. package/dist/features/account/hooks/useAddressForm.d.ts +24 -0
  169. package/dist/features/account/hooks/useAddressForm.js +58 -0
  170. package/dist/features/account/hooks/useAddressSelector.d.ts +25 -0
  171. package/dist/features/account/hooks/useAddressSelector.js +30 -0
  172. package/dist/features/account/hooks/useAddresses.d.ts +59 -0
  173. package/dist/features/account/hooks/useAddresses.js +73 -0
  174. package/dist/features/account/hooks/useNotifications.d.ts +23 -0
  175. package/dist/features/account/hooks/useNotifications.js +31 -0
  176. package/dist/features/account/hooks/useProfile.d.ts +25 -0
  177. package/dist/features/account/hooks/useProfile.js +24 -0
  178. package/dist/features/account/hooks/useProfileStats.d.ts +6 -0
  179. package/dist/features/account/hooks/useProfileStats.js +21 -0
  180. package/dist/features/account/hooks/usePublicProfile.d.ts +78 -0
  181. package/dist/features/account/hooks/usePublicProfile.js +51 -0
  182. package/dist/features/account/index.d.ts +15 -555
  183. package/dist/features/account/index.js +15 -1003
  184. package/dist/features/account/manifest.d.ts +2 -0
  185. package/dist/features/account/manifest.js +27 -0
  186. package/dist/features/account/messages/en.json +12 -0
  187. package/dist/features/account/repository/account.repository.d.ts +11 -0
  188. package/dist/features/account/repository/account.repository.js +20 -0
  189. package/dist/features/account/repository/address.repository.d.ts +17 -0
  190. package/dist/features/account/repository/address.repository.js +185 -0
  191. package/dist/features/account/schemas/firestore.d.ts +48 -0
  192. package/dist/features/account/schemas/firestore.js +59 -0
  193. package/dist/features/account/schemas/index.d.ts +198 -0
  194. package/dist/features/account/schemas/index.js +51 -0
  195. package/dist/features/account/server.d.ts +9 -0
  196. package/dist/features/account/server.js +9 -0
  197. package/dist/features/account/types/index.d.ts +83 -0
  198. package/dist/features/account/types/index.js +2 -0
  199. package/dist/features/admin/actions/admin-actions.d.ts +35 -0
  200. package/dist/features/admin/actions/admin-actions.js +174 -0
  201. package/dist/features/admin/actions/admin-coupon-actions.d.ts +17 -0
  202. package/dist/features/admin/actions/admin-coupon-actions.js +87 -0
  203. package/dist/features/admin/actions/admin-read-actions.d.ts +105 -0
  204. package/dist/features/admin/actions/admin-read-actions.js +172 -0
  205. package/dist/features/admin/actions/chat-actions.d.ts +29 -0
  206. package/dist/features/admin/actions/chat-actions.js +97 -0
  207. package/dist/features/admin/actions/index.d.ts +6 -0
  208. package/dist/features/admin/actions/index.js +6 -0
  209. package/dist/features/admin/actions/notification-actions.d.ts +31 -0
  210. package/dist/features/admin/actions/notification-actions.js +42 -0
  211. package/dist/features/admin/actions/site-settings-actions.d.ts +8 -0
  212. package/dist/features/admin/actions/site-settings-actions.js +16 -0
  213. package/dist/features/admin/api/bids/route.d.ts +14 -0
  214. package/dist/features/admin/api/bids/route.js +53 -0
  215. package/dist/features/admin/api/coupons/route.d.ts +14 -0
  216. package/dist/features/admin/api/coupons/route.js +53 -0
  217. package/dist/features/admin/api/products/route.d.ts +14 -0
  218. package/dist/features/admin/api/products/route.js +54 -0
  219. package/dist/features/admin/api/reviews/route.d.ts +14 -0
  220. package/dist/features/admin/api/reviews/route.js +53 -0
  221. package/dist/features/admin/components/AdminAnalyticsView.d.ts +29 -0
  222. package/dist/features/admin/components/AdminAnalyticsView.js +15 -0
  223. package/dist/features/admin/components/AdminBidsView.d.ts +4 -0
  224. package/dist/features/admin/components/AdminBidsView.js +5 -0
  225. package/dist/features/admin/components/AdminBlogView.d.ts +4 -0
  226. package/dist/features/admin/components/AdminBlogView.js +5 -0
  227. package/dist/features/admin/components/AdminCarouselView.d.ts +9 -0
  228. package/dist/features/admin/components/AdminCarouselView.js +5 -0
  229. package/dist/features/admin/components/AdminCategoriesView.d.ts +9 -0
  230. package/dist/features/admin/components/AdminCategoriesView.js +5 -0
  231. package/dist/features/admin/components/AdminCouponsView.d.ts +4 -0
  232. package/dist/features/admin/components/AdminCouponsView.js +5 -0
  233. package/dist/features/admin/components/AdminDashboardView.d.ts +16 -0
  234. package/dist/features/admin/components/AdminDashboardView.js +11 -0
  235. package/dist/features/admin/components/AdminFaqsView.d.ts +4 -0
  236. package/dist/features/admin/components/AdminFaqsView.js +5 -0
  237. package/dist/features/admin/components/AdminFeatureFlagsView.d.ts +9 -0
  238. package/dist/features/admin/components/AdminFeatureFlagsView.js +5 -0
  239. package/dist/features/admin/components/AdminFilterBar.d.ts +65 -0
  240. package/dist/features/admin/components/AdminFilterBar.js +22 -0
  241. package/dist/features/admin/components/AdminMediaView.d.ts +9 -0
  242. package/dist/features/admin/components/AdminMediaView.js +5 -0
  243. package/dist/features/admin/components/AdminNavigationView.d.ts +9 -0
  244. package/dist/features/admin/components/AdminNavigationView.js +5 -0
  245. package/dist/features/admin/components/AdminOrdersView.d.ts +4 -0
  246. package/dist/features/admin/components/AdminOrdersView.js +5 -0
  247. package/dist/features/admin/components/AdminPageHeader.d.ts +53 -0
  248. package/dist/features/admin/components/AdminPageHeader.js +12 -0
  249. package/dist/features/admin/components/AdminPayoutsView.d.ts +4 -0
  250. package/dist/features/admin/components/AdminPayoutsView.js +5 -0
  251. package/dist/features/admin/components/AdminProductsView.d.ts +4 -0
  252. package/dist/features/admin/components/AdminProductsView.js +5 -0
  253. package/dist/features/admin/components/AdminReviewsView.d.ts +7 -0
  254. package/dist/features/admin/components/AdminReviewsView.js +5 -0
  255. package/dist/features/admin/components/AdminSectionsView.d.ts +9 -0
  256. package/dist/features/admin/components/AdminSectionsView.js +5 -0
  257. package/dist/features/admin/components/AdminSessionsManager.d.ts +9 -0
  258. package/dist/features/admin/components/AdminSessionsManager.js +5 -0
  259. package/dist/features/admin/components/AdminSidebar.d.ts +9 -0
  260. package/dist/features/admin/components/AdminSidebar.js +6 -0
  261. package/dist/features/admin/components/AdminSiteView.d.ts +10 -0
  262. package/dist/features/admin/components/AdminSiteView.js +5 -0
  263. package/dist/features/admin/components/AdminStoresView.d.ts +4 -0
  264. package/dist/features/admin/components/AdminStoresView.js +5 -0
  265. package/dist/features/admin/components/AdminTopBar.d.ts +8 -0
  266. package/dist/features/admin/components/AdminTopBar.js +8 -0
  267. package/dist/features/admin/components/AdminUsersView.d.ts +4 -0
  268. package/dist/features/admin/components/AdminUsersView.js +5 -0
  269. package/dist/features/admin/components/DashboardStats.d.ts +8 -0
  270. package/dist/features/admin/components/DashboardStats.js +21 -0
  271. package/dist/features/admin/components/DataTable.d.ts +19 -0
  272. package/dist/features/admin/components/DataTable.js +7 -0
  273. package/dist/features/admin/components/DemoSeedView.d.ts +11 -0
  274. package/dist/features/admin/components/DemoSeedView.js +5 -0
  275. package/dist/features/admin/components/DrawerFormFooter.d.ts +54 -0
  276. package/dist/features/admin/components/DrawerFormFooter.js +6 -0
  277. package/dist/features/admin/components/QuickActionsPanel.d.ts +15 -0
  278. package/dist/features/admin/components/QuickActionsPanel.js +6 -0
  279. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.d.ts +17 -0
  280. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +33 -0
  281. package/dist/features/admin/components/analytics/AdminStatCard.d.ts +8 -0
  282. package/dist/features/admin/components/analytics/AdminStatCard.js +6 -0
  283. package/dist/features/admin/components/analytics/AdminTopProductsTable.d.ts +16 -0
  284. package/dist/features/admin/components/analytics/AdminTopProductsTable.js +6 -0
  285. package/dist/features/admin/components/analytics/index.d.ts +3 -0
  286. package/dist/features/admin/components/analytics/index.js +3 -0
  287. package/dist/features/admin/components/index.d.ts +62 -0
  288. package/dist/features/admin/components/index.js +32 -0
  289. package/dist/features/admin/hooks/useAdmin.d.ts +9 -0
  290. package/dist/features/admin/hooks/useAdmin.js +14 -0
  291. package/dist/features/admin/hooks/useChat.d.ts +24 -0
  292. package/dist/features/admin/hooks/useChat.js +97 -0
  293. package/dist/features/admin/index.d.ts +8 -554
  294. package/dist/features/admin/index.js +7 -2703
  295. package/dist/features/admin/manifest.d.ts +2 -0
  296. package/dist/features/admin/manifest.js +13 -0
  297. package/dist/features/admin/messages/en.json +13 -0
  298. package/dist/features/admin/permission-map.d.ts +3 -0
  299. package/dist/features/admin/permission-map.js +24 -0
  300. package/dist/features/admin/repository/chat.repository.d.ts +70 -0
  301. package/dist/features/admin/repository/chat.repository.js +216 -0
  302. package/dist/features/admin/repository/notification.repository.d.ts +64 -0
  303. package/dist/features/admin/repository/notification.repository.js +225 -0
  304. package/dist/features/admin/repository/site-settings.repository.d.ts +118 -0
  305. package/dist/features/admin/repository/site-settings.repository.js +214 -0
  306. package/dist/features/admin/schemas/firestore.d.ts +311 -0
  307. package/dist/features/admin/schemas/firestore.js +246 -0
  308. package/dist/features/admin/schemas/index.d.ts +1 -0
  309. package/dist/features/admin/schemas/index.js +1 -0
  310. package/dist/features/admin/server.d.ts +15 -0
  311. package/dist/features/admin/server.js +14 -0
  312. package/dist/features/admin/types/index.d.ts +61 -0
  313. package/dist/features/admin/types/index.js +1 -0
  314. package/dist/features/admin/types/product.types.d.ts +78 -0
  315. package/dist/features/admin/types/product.types.js +13 -0
  316. package/dist/features/auctions/actions/bid-actions.d.ts +22 -0
  317. package/dist/features/auctions/actions/bid-actions.js +106 -0
  318. package/dist/features/auctions/actions/index.d.ts +1 -0
  319. package/dist/features/auctions/actions/index.js +1 -0
  320. package/dist/features/auctions/api/route.d.ts +14 -0
  321. package/dist/features/auctions/api/route.js +67 -0
  322. package/dist/features/auctions/columns/index.d.ts +14 -0
  323. package/dist/features/auctions/columns/index.js +63 -0
  324. package/dist/features/auctions/components/AuctionCard.d.ts +26 -0
  325. package/dist/features/auctions/components/AuctionCard.js +35 -0
  326. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +56 -0
  327. package/dist/features/auctions/components/MarketplaceAuctionCard.js +112 -0
  328. package/dist/features/auctions/components/MarketplaceAuctionGrid.d.ts +22 -0
  329. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +37 -0
  330. package/dist/features/auctions/components/index.d.ts +3 -0
  331. package/dist/features/auctions/components/index.js +3 -0
  332. package/dist/features/auctions/hooks/useAuctions.d.ts +50 -0
  333. package/dist/features/auctions/hooks/useAuctions.js +93 -0
  334. package/dist/features/auctions/hooks/usePlaceBid.d.ts +24 -0
  335. package/dist/features/auctions/hooks/usePlaceBid.js +29 -0
  336. package/dist/features/auctions/hooks/useRealtimeBids.d.ts +38 -0
  337. package/dist/features/auctions/hooks/useRealtimeBids.js +66 -0
  338. package/dist/features/auctions/index.d.ts +8 -513
  339. package/dist/features/auctions/index.js +8 -1194
  340. package/dist/features/auctions/manifest.d.ts +2 -0
  341. package/dist/features/auctions/manifest.js +17 -0
  342. package/dist/features/auctions/messages/en.json +18 -0
  343. package/dist/features/auctions/repository/auctions.repository.d.ts +12 -0
  344. package/dist/features/auctions/repository/auctions.repository.js +42 -0
  345. package/dist/features/auctions/repository/bid.repository.d.ts +145 -0
  346. package/dist/features/auctions/repository/bid.repository.js +370 -0
  347. package/dist/features/auctions/schemas/firestore.d.ts +48 -0
  348. package/dist/features/auctions/schemas/firestore.js +50 -0
  349. package/dist/features/auctions/schemas/index.d.ts +155 -0
  350. package/dist/features/auctions/schemas/index.js +64 -0
  351. package/dist/features/auctions/server.d.ts +10 -0
  352. package/dist/features/auctions/server.js +10 -0
  353. package/dist/features/auctions/types/index.d.ts +73 -0
  354. package/dist/features/auctions/types/index.js +1 -0
  355. package/dist/features/auth/actions/index.d.ts +2 -0
  356. package/dist/features/auth/actions/index.js +2 -0
  357. package/dist/features/auth/actions/profile-actions.d.ts +27 -0
  358. package/dist/features/auth/actions/profile-actions.js +50 -0
  359. package/dist/features/auth/actions/realtime-token-actions.d.ts +11 -0
  360. package/dist/features/auth/actions/realtime-token-actions.js +31 -0
  361. package/dist/features/auth/api/route.d.ts +22 -0
  362. package/dist/features/auth/api/route.js +48 -0
  363. package/dist/features/auth/auth-helpers.d.ts +14 -0
  364. package/dist/features/auth/auth-helpers.js +68 -0
  365. package/dist/features/auth/components/AuthStatusPanel.d.ts +10 -0
  366. package/dist/features/auth/components/AuthStatusPanel.js +22 -0
  367. package/dist/features/auth/components/ForgotPasswordView.d.ts +18 -0
  368. package/dist/features/auth/components/ForgotPasswordView.js +15 -0
  369. package/dist/features/auth/components/Guards.d.ts +86 -0
  370. package/dist/features/auth/components/Guards.js +91 -0
  371. package/dist/features/auth/components/LoginForm.d.ts +36 -0
  372. package/dist/features/auth/components/LoginForm.js +18 -0
  373. package/dist/features/auth/components/RegisterForm.d.ts +36 -0
  374. package/dist/features/auth/components/RegisterForm.js +27 -0
  375. package/dist/features/auth/components/ResetPasswordView.d.ts +23 -0
  376. package/dist/features/auth/components/ResetPasswordView.js +22 -0
  377. package/dist/features/auth/components/SocialAuthButtons.d.ts +8 -0
  378. package/dist/features/auth/components/SocialAuthButtons.js +6 -0
  379. package/dist/features/auth/components/VerifyEmailView.d.ts +20 -0
  380. package/dist/features/auth/components/VerifyEmailView.js +8 -0
  381. package/dist/features/auth/components/index.d.ts +14 -0
  382. package/dist/features/auth/components/index.js +8 -0
  383. package/dist/features/auth/consent-otp.d.ts +52 -0
  384. package/dist/features/auth/consent-otp.js +120 -0
  385. package/dist/features/auth/hooks/useAuth.d.ts +81 -0
  386. package/dist/features/auth/hooks/useAuth.js +164 -0
  387. package/dist/features/auth/hooks/useAuthEvent.d.ts +22 -0
  388. package/dist/features/auth/hooks/useAuthEvent.js +31 -0
  389. package/dist/features/auth/hooks/useLogout.d.ts +16 -0
  390. package/dist/features/auth/hooks/useLogout.js +22 -0
  391. package/dist/features/auth/hooks/useRBAC.d.ts +38 -0
  392. package/dist/features/auth/hooks/useRBAC.js +80 -0
  393. package/dist/features/auth/index.d.ts +10 -315
  394. package/dist/features/auth/index.js +10 -1874
  395. package/dist/features/auth/manifest.d.ts +2 -0
  396. package/dist/features/auth/manifest.js +21 -0
  397. package/dist/features/auth/messages/en.json +13 -0
  398. package/dist/features/auth/repository/index.d.ts +4 -0
  399. package/dist/features/auth/repository/index.js +4 -0
  400. package/dist/features/auth/repository/session.repository.d.ts +44 -0
  401. package/dist/features/auth/repository/session.repository.js +246 -0
  402. package/dist/features/auth/repository/sms-counter.repository.d.ts +15 -0
  403. package/dist/features/auth/repository/sms-counter.repository.js +54 -0
  404. package/dist/features/auth/repository/token.repository.d.ts +38 -0
  405. package/dist/features/auth/repository/token.repository.js +186 -0
  406. package/dist/features/auth/repository/user.repository.d.ts +46 -0
  407. package/dist/features/auth/repository/user.repository.js +233 -0
  408. package/dist/features/auth/schemas/firestore.d.ts +351 -0
  409. package/dist/features/auth/schemas/firestore.js +272 -0
  410. package/dist/features/auth/schemas/index.d.ts +72 -0
  411. package/dist/features/auth/schemas/index.js +41 -0
  412. package/dist/features/auth/server.d.ts +15 -18
  413. package/dist/features/auth/server.js +21 -529
  414. package/dist/features/auth/token-helpers.d.ts +7 -0
  415. package/dist/features/auth/token-helpers.js +37 -0
  416. package/dist/features/auth/token-store.d.ts +39 -0
  417. package/dist/features/auth/token-store.js +120 -0
  418. package/dist/features/auth/types/index.d.ts +30 -0
  419. package/dist/features/auth/types/index.js +1 -0
  420. package/dist/features/before-after/api/[id]/route.d.ts +26 -0
  421. package/dist/features/before-after/api/[id]/route.js +88 -0
  422. package/dist/features/before-after/api/route.d.ts +13 -0
  423. package/dist/features/before-after/api/route.js +79 -0
  424. package/dist/features/before-after/columns/index.d.ts +17 -0
  425. package/dist/features/before-after/columns/index.js +50 -0
  426. package/dist/features/before-after/components/BeforeAfterGallery.d.ts +7 -0
  427. package/dist/features/before-after/components/BeforeAfterGallery.js +8 -0
  428. package/dist/features/before-after/components/BeforeAfterSlider.d.ts +7 -0
  429. package/dist/features/before-after/components/BeforeAfterSlider.js +27 -0
  430. package/dist/features/before-after/components/index.d.ts +2 -0
  431. package/dist/features/before-after/components/index.js +2 -0
  432. package/dist/features/before-after/hooks/useBeforeAfter.d.ts +15 -0
  433. package/dist/features/before-after/hooks/useBeforeAfter.js +25 -0
  434. package/dist/features/before-after/index.d.ts +6 -128
  435. package/dist/features/before-after/index.js +6 -546
  436. package/dist/features/before-after/manifest.d.ts +2 -0
  437. package/dist/features/before-after/manifest.js +10 -0
  438. package/dist/features/before-after/messages/en.json +8 -0
  439. package/dist/features/before-after/repository/before-after.repository.d.ts +13 -0
  440. package/dist/features/before-after/repository/before-after.repository.js +36 -0
  441. package/dist/features/before-after/schemas/index.d.ts +48 -0
  442. package/dist/features/before-after/schemas/index.js +24 -0
  443. package/dist/features/before-after/server.d.ts +7 -0
  444. package/dist/features/before-after/server.js +7 -0
  445. package/dist/features/before-after/types/index.d.ts +18 -0
  446. package/dist/features/before-after/types/index.js +1 -0
  447. package/dist/features/blog/actions/blog-actions.d.ts +302 -0
  448. package/dist/features/blog/actions/blog-actions.js +119 -0
  449. package/dist/features/blog/actions/index.d.ts +1 -0
  450. package/dist/features/blog/actions/index.js +1 -0
  451. package/dist/features/blog/api/[slug]/route.d.ts +23 -0
  452. package/dist/features/blog/api/[slug]/route.js +40 -0
  453. package/dist/features/blog/api/route.d.ts +12 -0
  454. package/dist/features/blog/api/route.js +64 -0
  455. package/dist/features/blog/columns/index.d.ts +27 -0
  456. package/dist/features/blog/columns/index.js +54 -0
  457. package/dist/features/blog/components/BlogFeaturedCard.d.ts +17 -0
  458. package/dist/features/blog/components/BlogFeaturedCard.js +24 -0
  459. package/dist/features/blog/components/BlogFilters.d.ts +106 -0
  460. package/dist/features/blog/components/BlogFilters.js +67 -0
  461. package/dist/features/blog/components/BlogListView.d.ts +29 -0
  462. package/dist/features/blog/components/BlogListView.js +38 -0
  463. package/dist/features/blog/components/BlogPostForm.d.ts +56 -0
  464. package/dist/features/blog/components/BlogPostForm.js +24 -0
  465. package/dist/features/blog/components/BlogPostView.d.ts +32 -0
  466. package/dist/features/blog/components/BlogPostView.js +39 -0
  467. package/dist/features/blog/components/index.d.ts +9 -0
  468. package/dist/features/blog/components/index.js +5 -0
  469. package/dist/features/blog/hooks/useBlog.d.ts +27 -0
  470. package/dist/features/blog/hooks/useBlog.js +51 -0
  471. package/dist/features/blog/index.d.ts +6 -492
  472. package/dist/features/blog/index.js +6 -4062
  473. package/dist/features/blog/manifest.d.ts +2 -0
  474. package/dist/features/blog/manifest.js +14 -0
  475. package/dist/features/blog/messages/en.json +14 -0
  476. package/dist/features/blog/repository/blog.repository.d.ts +79 -0
  477. package/dist/features/blog/repository/blog.repository.js +130 -0
  478. package/dist/features/blog/schemas/firestore.d.ts +87 -0
  479. package/dist/features/blog/schemas/firestore.js +99 -0
  480. package/dist/features/blog/schemas/index.d.ts +207 -0
  481. package/dist/features/blog/schemas/index.js +71 -0
  482. package/dist/features/blog/server.d.ts +8 -71
  483. package/dist/features/blog/server.js +10 -180
  484. package/dist/features/blog/types/index.d.ts +47 -0
  485. package/dist/features/blog/types/index.js +1 -0
  486. package/dist/features/cart/actions/cart-actions.d.ts +16 -0
  487. package/dist/features/cart/actions/cart-actions.js +52 -0
  488. package/dist/features/cart/actions/index.d.ts +1 -0
  489. package/dist/features/cart/actions/index.js +1 -0
  490. package/dist/features/cart/api/[id]/route.d.ts +21 -0
  491. package/dist/features/cart/api/[id]/route.js +62 -0
  492. package/dist/features/cart/api/route.d.ts +13 -0
  493. package/dist/features/cart/api/route.js +79 -0
  494. package/dist/features/cart/columns/index.d.ts +17 -0
  495. package/dist/features/cart/columns/index.js +53 -0
  496. package/dist/features/cart/components/CartDrawer.d.ts +27 -0
  497. package/dist/features/cart/components/CartDrawer.js +14 -0
  498. package/dist/features/cart/components/CartSummary.d.ts +19 -0
  499. package/dist/features/cart/components/CartSummary.js +5 -0
  500. package/dist/features/cart/components/CartView.d.ts +17 -0
  501. package/dist/features/cart/components/CartView.js +7 -0
  502. package/dist/features/cart/components/CheckoutAddressStep.d.ts +20 -0
  503. package/dist/features/cart/components/CheckoutAddressStep.js +12 -0
  504. package/dist/features/cart/components/CheckoutOtpModal.d.ts +15 -0
  505. package/dist/features/cart/components/CheckoutOtpModal.js +12 -0
  506. package/dist/features/cart/components/CheckoutSuccessView.d.ts +12 -0
  507. package/dist/features/cart/components/CheckoutSuccessView.js +9 -0
  508. package/dist/features/cart/components/CheckoutView.d.ts +15 -0
  509. package/dist/features/cart/components/CheckoutView.js +18 -0
  510. package/dist/features/cart/components/index.d.ts +13 -0
  511. package/dist/features/cart/components/index.js +7 -0
  512. package/dist/features/cart/hooks/useAddToCart.d.ts +27 -0
  513. package/dist/features/cart/hooks/useAddToCart.js +52 -0
  514. package/dist/features/cart/hooks/useCart.d.ts +17 -0
  515. package/dist/features/cart/hooks/useCart.js +24 -0
  516. package/dist/features/cart/hooks/useCartCount.d.ts +7 -0
  517. package/dist/features/cart/hooks/useCartCount.js +19 -0
  518. package/dist/features/cart/hooks/useCartQuery.d.ts +8 -0
  519. package/dist/features/cart/hooks/useCartQuery.js +11 -0
  520. package/dist/features/cart/hooks/useCheckoutReadQueries.d.ts +14 -0
  521. package/dist/features/cart/hooks/useCheckoutReadQueries.js +18 -0
  522. package/dist/features/cart/hooks/useGuestCart.d.ts +18 -0
  523. package/dist/features/cart/hooks/useGuestCart.js +32 -0
  524. package/dist/features/cart/hooks/useGuestCartMerge.d.ts +15 -0
  525. package/dist/features/cart/hooks/useGuestCartMerge.js +50 -0
  526. package/dist/features/cart/hooks/useOrder.d.ts +13 -0
  527. package/dist/features/cart/hooks/useOrder.js +24 -0
  528. package/dist/features/cart/index.d.ts +14 -451
  529. package/dist/features/cart/index.js +14 -1064
  530. package/dist/features/cart/manifest.d.ts +2 -0
  531. package/dist/features/cart/manifest.js +10 -0
  532. package/dist/features/cart/messages/en.json +10 -0
  533. package/dist/features/cart/repository/cart.repository.d.ts +23 -0
  534. package/dist/features/cart/repository/cart.repository.js +210 -0
  535. package/dist/features/cart/schemas/firestore.d.ts +83 -0
  536. package/dist/features/cart/schemas/firestore.js +36 -0
  537. package/dist/features/cart/schemas/index.d.ts +184 -0
  538. package/dist/features/cart/schemas/index.js +35 -0
  539. package/dist/features/cart/server.d.ts +8 -0
  540. package/dist/features/cart/server.js +8 -0
  541. package/dist/features/cart/types/index.d.ts +27 -0
  542. package/dist/features/cart/types/index.js +1 -0
  543. package/dist/features/cart/utils/guest-cart.d.ts +26 -0
  544. package/dist/features/cart/utils/guest-cart.js +83 -0
  545. package/dist/features/categories/actions/category-actions.d.ts +17 -0
  546. package/dist/features/categories/actions/category-actions.js +63 -0
  547. package/dist/features/categories/actions/index.d.ts +1 -0
  548. package/dist/features/categories/actions/index.js +1 -0
  549. package/dist/features/categories/api/[id]/route.d.ts +23 -0
  550. package/dist/features/categories/api/[id]/route.js +98 -0
  551. package/dist/features/categories/api/route.d.ts +19 -0
  552. package/dist/features/categories/api/route.js +200 -0
  553. package/dist/features/categories/columns/index.d.ts +15 -0
  554. package/dist/features/categories/columns/index.js +38 -0
  555. package/dist/features/categories/components/BreadcrumbTrail.d.ts +47 -0
  556. package/dist/features/categories/components/BreadcrumbTrail.js +36 -0
  557. package/dist/features/categories/components/CategoriesListView.d.ts +31 -0
  558. package/dist/features/categories/components/CategoriesListView.js +27 -0
  559. package/dist/features/categories/components/CategoryFilters.d.ts +68 -0
  560. package/dist/features/categories/components/CategoryFilters.js +75 -0
  561. package/dist/features/categories/components/CategoryForm.d.ts +24 -0
  562. package/dist/features/categories/components/CategoryForm.js +42 -0
  563. package/dist/features/categories/components/CategoryGrid.d.ts +14 -0
  564. package/dist/features/categories/components/CategoryGrid.js +14 -0
  565. package/dist/features/categories/components/CategoryProductsView.d.ts +49 -0
  566. package/dist/features/categories/components/CategoryProductsView.js +21 -0
  567. package/dist/features/categories/components/CategorySelectorCreate.d.ts +17 -0
  568. package/dist/features/categories/components/CategorySelectorCreate.js +57 -0
  569. package/dist/features/categories/components/CategorySortSelect.d.ts +9 -0
  570. package/dist/features/categories/components/CategorySortSelect.js +8 -0
  571. package/dist/features/categories/components/CategoryTableColumns.d.ts +30 -0
  572. package/dist/features/categories/components/CategoryTableColumns.js +54 -0
  573. package/dist/features/categories/components/CategoryTree.d.ts +15 -0
  574. package/dist/features/categories/components/CategoryTree.js +49 -0
  575. package/dist/features/categories/components/ConcernCard.d.ts +8 -0
  576. package/dist/features/categories/components/ConcernCard.js +5 -0
  577. package/dist/features/categories/components/ConcernGrid.d.ts +8 -0
  578. package/dist/features/categories/components/ConcernGrid.js +8 -0
  579. package/dist/features/categories/components/index.d.ts +22 -0
  580. package/dist/features/categories/components/index.js +12 -0
  581. package/dist/features/categories/hooks/useCategories.d.ts +26 -0
  582. package/dist/features/categories/hooks/useCategories.js +50 -0
  583. package/dist/features/categories/hooks/useCategorySelector.d.ts +26 -0
  584. package/dist/features/categories/hooks/useCategorySelector.js +42 -0
  585. package/dist/features/categories/index.d.ts +7 -461
  586. package/dist/features/categories/index.js +7 -2031
  587. package/dist/features/categories/manifest.d.ts +2 -0
  588. package/dist/features/categories/manifest.js +20 -0
  589. package/dist/features/categories/messages/en.json +14 -0
  590. package/dist/features/categories/repository/categories.repository.d.ts +31 -0
  591. package/dist/features/categories/repository/categories.repository.js +399 -0
  592. package/dist/features/categories/schemas/firestore.d.ts +140 -0
  593. package/dist/features/categories/schemas/firestore.js +189 -0
  594. package/dist/features/categories/schemas/index.d.ts +207 -0
  595. package/dist/features/categories/schemas/index.js +67 -0
  596. package/dist/features/categories/server.d.ts +7 -44
  597. package/dist/features/categories/server.js +10 -789
  598. package/dist/features/categories/types/index.d.ts +80 -0
  599. package/dist/features/categories/types/index.js +13 -0
  600. package/dist/features/checkout/actions/checkout-actions.d.ts +14 -0
  601. package/dist/features/checkout/actions/checkout-actions.js +91 -0
  602. package/dist/features/checkout/actions/index.d.ts +1 -0
  603. package/dist/features/checkout/actions/index.js +1 -0
  604. package/dist/features/checkout/components/CheckoutStepper.d.ts +10 -0
  605. package/dist/features/checkout/components/CheckoutStepper.js +15 -0
  606. package/dist/features/checkout/components/index.d.ts +1 -0
  607. package/dist/features/checkout/components/index.js +1 -0
  608. package/dist/features/checkout/hooks/useCheckout.d.ts +9 -0
  609. package/dist/features/checkout/hooks/useCheckout.js +24 -0
  610. package/dist/features/checkout/hooks/useCheckoutApi.d.ts +74 -0
  611. package/dist/features/checkout/hooks/useCheckoutApi.js +48 -0
  612. package/dist/features/checkout/hooks/usePaymentCheckout.d.ts +78 -0
  613. package/dist/features/checkout/hooks/usePaymentCheckout.js +178 -0
  614. package/dist/features/checkout/index.d.ts +8 -70
  615. package/dist/features/checkout/index.js +7 -192
  616. package/dist/features/checkout/manifest.d.ts +2 -0
  617. package/dist/features/checkout/manifest.js +17 -0
  618. package/dist/features/checkout/messages/en.json +10 -0
  619. package/dist/features/checkout/repository/failed-checkout.repository.d.ts +18 -0
  620. package/dist/features/checkout/repository/failed-checkout.repository.js +29 -0
  621. package/dist/features/checkout/schemas/firestore.d.ts +33 -0
  622. package/dist/features/checkout/schemas/firestore.js +6 -0
  623. package/dist/features/checkout/schemas/index.d.ts +1 -0
  624. package/dist/features/checkout/schemas/index.js +1 -0
  625. package/dist/features/checkout/server.d.ts +8 -0
  626. package/dist/features/checkout/server.js +8 -0
  627. package/dist/features/checkout/types/index.d.ts +46 -0
  628. package/dist/features/checkout/types/index.js +2 -0
  629. package/dist/features/cms/index.d.ts +1 -2
  630. package/dist/features/cms/index.js +5 -4
  631. package/dist/features/collections/api/[slug]/route.d.ts +26 -0
  632. package/dist/features/collections/api/[slug]/route.js +102 -0
  633. package/dist/features/collections/api/route.d.ts +13 -0
  634. package/dist/features/collections/api/route.js +79 -0
  635. package/dist/features/collections/columns/index.d.ts +17 -0
  636. package/dist/features/collections/columns/index.js +55 -0
  637. package/dist/features/collections/components/CollectionCard.d.ts +12 -0
  638. package/dist/features/collections/components/CollectionCard.js +9 -0
  639. package/dist/features/collections/components/index.d.ts +1 -0
  640. package/dist/features/collections/components/index.js +1 -0
  641. package/dist/features/collections/hooks/useCollections.d.ts +7 -0
  642. package/dist/features/collections/hooks/useCollections.js +34 -0
  643. package/dist/features/collections/index.d.ts +6 -148
  644. package/dist/features/collections/index.js +6 -378
  645. package/dist/features/collections/manifest.d.ts +2 -0
  646. package/dist/features/collections/manifest.js +16 -0
  647. package/dist/features/collections/messages/en.json +10 -0
  648. package/dist/features/collections/repository/collections.repository.d.ts +8 -0
  649. package/dist/features/collections/repository/collections.repository.js +16 -0
  650. package/dist/features/collections/schemas/index.d.ts +76 -0
  651. package/dist/features/collections/schemas/index.js +34 -0
  652. package/dist/features/collections/server.d.ts +7 -0
  653. package/dist/features/collections/server.js +7 -0
  654. package/dist/features/collections/types/index.d.ts +25 -0
  655. package/dist/features/collections/types/index.js +1 -0
  656. package/dist/features/consultation/api/[id]/route.d.ts +26 -0
  657. package/dist/features/consultation/api/[id]/route.js +88 -0
  658. package/dist/features/consultation/api/route.d.ts +13 -0
  659. package/dist/features/consultation/api/route.js +79 -0
  660. package/dist/features/consultation/columns/index.d.ts +17 -0
  661. package/dist/features/consultation/columns/index.js +54 -0
  662. package/dist/features/consultation/components/ConsultationForm.d.ts +8 -0
  663. package/dist/features/consultation/components/ConsultationForm.js +51 -0
  664. package/dist/features/consultation/components/index.d.ts +1 -0
  665. package/dist/features/consultation/components/index.js +1 -0
  666. package/dist/features/consultation/hooks/useBookConsultation.d.ts +8 -0
  667. package/dist/features/consultation/hooks/useBookConsultation.js +16 -0
  668. package/dist/features/consultation/index.d.ts +6 -172
  669. package/dist/features/consultation/index.js +6 -1084
  670. package/dist/features/consultation/manifest.d.ts +2 -0
  671. package/dist/features/consultation/manifest.js +12 -0
  672. package/dist/features/consultation/messages/en.json +25 -0
  673. package/dist/features/consultation/repository/consultations.repository.d.ts +12 -0
  674. package/dist/features/consultation/repository/consultations.repository.js +28 -0
  675. package/dist/features/consultation/schemas/index.d.ts +87 -0
  676. package/dist/features/consultation/schemas/index.js +47 -0
  677. package/dist/features/consultation/server.d.ts +7 -0
  678. package/dist/features/consultation/server.js +7 -0
  679. package/dist/features/consultation/types/index.d.ts +33 -0
  680. package/dist/features/consultation/types/index.js +1 -0
  681. package/dist/features/contact/components/ContactForm.d.ts +32 -0
  682. package/dist/features/contact/components/ContactForm.js +58 -0
  683. package/dist/features/contact/components/ContactInfoSidebar.d.ts +20 -0
  684. package/dist/features/contact/components/ContactInfoSidebar.js +6 -0
  685. package/dist/features/contact/components/index.d.ts +4 -0
  686. package/dist/features/contact/components/index.js +2 -0
  687. package/dist/features/contact/email.d.ts +61 -0
  688. package/dist/features/contact/email.js +345 -0
  689. package/dist/features/contact/hooks/useContactSubmit.d.ts +4 -0
  690. package/dist/features/contact/hooks/useContactSubmit.js +7 -0
  691. package/dist/features/contact/index.d.ts +2 -56
  692. package/dist/features/contact/index.js +2 -586
  693. package/dist/features/contact/server.d.ts +7 -0
  694. package/dist/features/contact/server.js +7 -0
  695. package/dist/features/copilot/components/AdminCopilotView.d.ts +21 -0
  696. package/dist/features/copilot/components/AdminCopilotView.js +29 -0
  697. package/dist/features/copilot/components/index.d.ts +2 -0
  698. package/dist/features/copilot/components/index.js +1 -0
  699. package/dist/features/copilot/hooks/useCopilotChat.d.ts +22 -0
  700. package/dist/features/copilot/hooks/useCopilotChat.js +57 -0
  701. package/dist/features/copilot/hooks/useCopilotFeedback.d.ts +15 -0
  702. package/dist/features/copilot/hooks/useCopilotFeedback.js +16 -0
  703. package/dist/features/copilot/index.d.ts +3 -47
  704. package/dist/features/copilot/index.js +3 -681
  705. package/dist/features/corporate/api/[id]/route.d.ts +26 -0
  706. package/dist/features/corporate/api/[id]/route.js +88 -0
  707. package/dist/features/corporate/api/route.d.ts +13 -0
  708. package/dist/features/corporate/api/route.js +79 -0
  709. package/dist/features/corporate/columns/index.d.ts +17 -0
  710. package/dist/features/corporate/columns/index.js +54 -0
  711. package/dist/features/corporate/components/CorporateInquiryForm.d.ts +7 -0
  712. package/dist/features/corporate/components/CorporateInquiryForm.js +36 -0
  713. package/dist/features/corporate/components/index.d.ts +1 -0
  714. package/dist/features/corporate/components/index.js +1 -0
  715. package/dist/features/corporate/hooks/useSubmitCorporateInquiry.d.ts +8 -0
  716. package/dist/features/corporate/hooks/useSubmitCorporateInquiry.js +16 -0
  717. package/dist/features/corporate/index.d.ts +6 -183
  718. package/dist/features/corporate/index.js +6 -782
  719. package/dist/features/corporate/manifest.d.ts +2 -0
  720. package/dist/features/corporate/manifest.js +12 -0
  721. package/dist/features/corporate/messages/en.json +26 -0
  722. package/dist/features/corporate/repository/corporate.repository.d.ts +12 -0
  723. package/dist/features/corporate/repository/corporate.repository.js +28 -0
  724. package/dist/features/corporate/schemas/index.d.ts +95 -0
  725. package/dist/features/corporate/schemas/index.js +50 -0
  726. package/dist/features/corporate/server.d.ts +7 -0
  727. package/dist/features/corporate/server.js +7 -0
  728. package/dist/features/corporate/types/index.d.ts +37 -0
  729. package/dist/features/corporate/types/index.js +1 -0
  730. package/dist/features/cron/firebase-adapters.d.ts +70 -0
  731. package/dist/features/cron/firebase-adapters.js +68 -0
  732. package/dist/features/cron/index.d.ts +5 -0
  733. package/dist/features/cron/index.js +7 -0
  734. package/dist/features/cron/jobs/auction-expiry.job.d.ts +27 -0
  735. package/dist/features/cron/jobs/auction-expiry.job.js +38 -0
  736. package/dist/features/cron/jobs/preorder-reminder.job.d.ts +14 -0
  737. package/dist/features/cron/jobs/preorder-reminder.job.js +40 -0
  738. package/dist/features/cron/registry.d.ts +45 -0
  739. package/dist/features/cron/registry.js +86 -0
  740. package/dist/features/cron/types.d.ts +66 -0
  741. package/dist/features/cron/types.js +9 -0
  742. package/dist/features/events/actions/event-actions.d.ts +92 -0
  743. package/dist/features/events/actions/event-actions.js +253 -0
  744. package/dist/features/events/actions/index.d.ts +1 -0
  745. package/dist/features/events/actions/index.js +1 -0
  746. package/dist/features/events/api/[id]/route.d.ts +24 -0
  747. package/dist/features/events/api/[id]/route.js +83 -0
  748. package/dist/features/events/api/route.d.ts +12 -0
  749. package/dist/features/events/api/route.js +88 -0
  750. package/dist/features/events/columns/index.d.ts +22 -0
  751. package/dist/features/events/columns/index.js +41 -0
  752. package/dist/features/events/components/AdminEventEntriesView.d.ts +17 -0
  753. package/dist/features/events/components/AdminEventEntriesView.js +10 -0
  754. package/dist/features/events/components/AdminEventsView.d.ts +11 -0
  755. package/dist/features/events/components/AdminEventsView.js +5 -0
  756. package/dist/features/events/components/EventBanner.d.ts +13 -0
  757. package/dist/features/events/components/EventBanner.js +48 -0
  758. package/dist/features/events/components/EventCard.d.ts +13 -0
  759. package/dist/features/events/components/EventCard.js +21 -0
  760. package/dist/features/events/components/EventDetailView.d.ts +15 -0
  761. package/dist/features/events/components/EventDetailView.js +11 -0
  762. package/dist/features/events/components/EventFilters.d.ts +105 -0
  763. package/dist/features/events/components/EventFilters.js +73 -0
  764. package/dist/features/events/components/EventFormDrawer.d.ts +22 -0
  765. package/dist/features/events/components/EventFormDrawer.js +6 -0
  766. package/dist/features/events/components/EventLeaderboard.d.ts +23 -0
  767. package/dist/features/events/components/EventLeaderboard.js +18 -0
  768. package/dist/features/events/components/EventParticipateView.d.ts +19 -0
  769. package/dist/features/events/components/EventParticipateView.js +13 -0
  770. package/dist/features/events/components/EventStatusBadge.d.ts +7 -0
  771. package/dist/features/events/components/EventStatusBadge.js +12 -0
  772. package/dist/features/events/components/EventsListView.d.ts +16 -0
  773. package/dist/features/events/components/EventsListView.js +21 -0
  774. package/dist/features/events/components/index.d.ts +19 -0
  775. package/dist/features/events/components/index.js +11 -0
  776. package/dist/features/events/hooks/useBulkEvent.d.ts +19 -0
  777. package/dist/features/events/hooks/useBulkEvent.js +36 -0
  778. package/dist/features/events/hooks/useEvent.d.ts +43 -0
  779. package/dist/features/events/hooks/useEvent.js +55 -0
  780. package/dist/features/events/hooks/useEvents.d.ts +27 -0
  781. package/dist/features/events/hooks/useEvents.js +38 -0
  782. package/dist/features/events/index.d.ts +8 -841
  783. package/dist/features/events/index.js +8 -1453
  784. package/dist/features/events/manifest.d.ts +2 -0
  785. package/dist/features/events/manifest.js +24 -0
  786. package/dist/features/events/messages/en.json +28 -0
  787. package/dist/features/events/repository/event-entry.repository.d.ts +17 -0
  788. package/dist/features/events/repository/event-entry.repository.js +115 -0
  789. package/dist/features/events/repository/events.repository.d.ts +18 -0
  790. package/dist/features/events/repository/events.repository.js +128 -0
  791. package/dist/features/events/schemas/firestore.d.ts +115 -0
  792. package/dist/features/events/schemas/firestore.js +77 -0
  793. package/dist/features/events/schemas/index.d.ts +383 -0
  794. package/dist/features/events/schemas/index.js +87 -0
  795. package/dist/features/events/server.d.ts +8 -37
  796. package/dist/features/events/server.js +11 -195
  797. package/dist/features/events/types/index.d.ts +133 -0
  798. package/dist/features/events/types/index.js +1 -0
  799. package/dist/features/faq/actions/faq-actions.d.ts +191 -0
  800. package/dist/features/faq/actions/faq-actions.js +103 -0
  801. package/dist/features/faq/actions/index.d.ts +1 -0
  802. package/dist/features/faq/actions/index.js +1 -0
  803. package/dist/features/faq/api/route.d.ts +11 -0
  804. package/dist/features/faq/api/route.js +50 -0
  805. package/dist/features/faq/columns/index.d.ts +15 -0
  806. package/dist/features/faq/columns/index.js +47 -0
  807. package/dist/features/faq/components/ContactCTA.d.ts +16 -0
  808. package/dist/features/faq/components/ContactCTA.js +6 -0
  809. package/dist/features/faq/components/FAQAccordion.d.ts +20 -0
  810. package/dist/features/faq/components/FAQAccordion.js +17 -0
  811. package/dist/features/faq/components/FAQCategorySidebar.d.ts +24 -0
  812. package/dist/features/faq/components/FAQCategorySidebar.js +15 -0
  813. package/dist/features/faq/components/FAQHelpfulButtons.d.ts +19 -0
  814. package/dist/features/faq/components/FAQHelpfulButtons.js +46 -0
  815. package/dist/features/faq/components/FAQPageContent.d.ts +54 -0
  816. package/dist/features/faq/components/FAQPageContent.js +67 -0
  817. package/dist/features/faq/components/FAQSortDropdown.d.ts +13 -0
  818. package/dist/features/faq/components/FAQSortDropdown.js +11 -0
  819. package/dist/features/faq/components/RelatedFAQs.d.ts +10 -0
  820. package/dist/features/faq/components/RelatedFAQs.js +9 -0
  821. package/dist/features/faq/components/index.d.ts +9 -0
  822. package/dist/features/faq/components/index.js +7 -0
  823. package/dist/features/faq/hooks/useFAQs.d.ts +22 -0
  824. package/dist/features/faq/hooks/useFAQs.js +42 -0
  825. package/dist/features/faq/hooks/useFaqList.d.ts +194 -0
  826. package/dist/features/faq/hooks/useFaqList.js +35 -0
  827. package/dist/features/faq/hooks/useFaqVote.d.ts +14 -0
  828. package/dist/features/faq/hooks/useFaqVote.js +10 -0
  829. package/dist/features/faq/index.d.ts +8 -619
  830. package/dist/features/faq/index.js +8 -1685
  831. package/dist/features/faq/manifest.d.ts +2 -0
  832. package/dist/features/faq/manifest.js +10 -0
  833. package/dist/features/faq/messages/en.json +14 -0
  834. package/dist/features/faq/repository/faqs.repository.d.ts +43 -0
  835. package/dist/features/faq/repository/faqs.repository.js +300 -0
  836. package/dist/features/faq/schemas/firestore.d.ts +63 -0
  837. package/dist/features/faq/schemas/firestore.js +115 -0
  838. package/dist/features/faq/schemas/index.d.ts +157 -0
  839. package/dist/features/faq/schemas/index.js +62 -0
  840. package/dist/features/faq/server.d.ts +9 -0
  841. package/dist/features/faq/server.js +9 -0
  842. package/dist/features/faq/types/index.d.ts +52 -0
  843. package/dist/features/faq/types/index.js +1 -0
  844. package/dist/features/filters/FilterFacetSection.d.ts +23 -0
  845. package/dist/features/filters/FilterFacetSection.js +39 -0
  846. package/dist/features/filters/FilterPanel.d.ts +61 -0
  847. package/dist/features/filters/FilterPanel.js +40 -0
  848. package/dist/features/filters/RangeFilter.d.ts +23 -0
  849. package/dist/features/filters/RangeFilter.js +28 -0
  850. package/dist/features/filters/SwitchFilter.d.ts +12 -0
  851. package/dist/features/filters/SwitchFilter.js +19 -0
  852. package/dist/features/filters/filterUtils.d.ts +11 -0
  853. package/dist/features/filters/filterUtils.js +13 -0
  854. package/dist/features/filters/index.d.ts +10 -136
  855. package/dist/features/filters/index.js +6 -1061
  856. package/dist/features/forms/Checkbox.d.ts +8 -0
  857. package/dist/features/forms/Checkbox.js +15 -0
  858. package/dist/features/forms/Form.d.ts +25 -0
  859. package/dist/features/forms/Form.js +38 -0
  860. package/dist/features/forms/Input.d.ts +10 -0
  861. package/dist/features/forms/Input.js +23 -0
  862. package/dist/features/forms/Radio.d.ts +17 -0
  863. package/dist/features/forms/Radio.js +19 -0
  864. package/dist/features/forms/Select.d.ts +13 -0
  865. package/dist/features/forms/Select.js +8 -0
  866. package/dist/features/forms/Slider.d.ts +20 -0
  867. package/dist/features/forms/Slider.js +22 -0
  868. package/dist/features/forms/Textarea.d.ts +8 -0
  869. package/dist/features/forms/Textarea.js +15 -0
  870. package/dist/features/forms/Toggle.d.ts +15 -0
  871. package/dist/features/forms/Toggle.js +48 -0
  872. package/dist/features/forms/index.d.ts +17 -129
  873. package/dist/features/forms/index.js +11 -915
  874. package/dist/features/forms/utils.d.ts +10 -0
  875. package/dist/features/forms/utils.js +13 -0
  876. package/dist/features/homepage/actions/carousel-actions.d.ts +37 -0
  877. package/dist/features/homepage/actions/carousel-actions.js +54 -0
  878. package/dist/features/homepage/actions/homepage-section-actions.d.ts +46 -0
  879. package/dist/features/homepage/actions/homepage-section-actions.js +55 -0
  880. package/dist/features/homepage/actions/index.d.ts +2 -0
  881. package/dist/features/homepage/actions/index.js +2 -0
  882. package/dist/features/homepage/api/[id]/route.d.ts +23 -0
  883. package/dist/features/homepage/api/[id]/route.js +100 -0
  884. package/dist/features/homepage/api/carousel/[id]/route.d.ts +23 -0
  885. package/dist/features/homepage/api/carousel/[id]/route.js +122 -0
  886. package/dist/features/homepage/api/carousel/route.d.ts +15 -0
  887. package/dist/features/homepage/api/carousel/route.js +154 -0
  888. package/dist/features/homepage/api/route.d.ts +14 -0
  889. package/dist/features/homepage/api/route.js +136 -0
  890. package/dist/features/homepage/api/sections/[id]/route.d.ts +26 -0
  891. package/dist/features/homepage/api/sections/[id]/route.js +88 -0
  892. package/dist/features/homepage/api/sections/route.d.ts +13 -0
  893. package/dist/features/homepage/api/sections/route.js +79 -0
  894. package/dist/features/homepage/components/AdvertisementBanner.d.ts +13 -0
  895. package/dist/features/homepage/components/AdvertisementBanner.js +23 -0
  896. package/dist/features/homepage/components/BeforeAfterCard.d.ts +10 -0
  897. package/dist/features/homepage/components/BeforeAfterCard.js +54 -0
  898. package/dist/features/homepage/components/CharacterHotspot.d.ts +24 -0
  899. package/dist/features/homepage/components/CharacterHotspot.js +373 -0
  900. package/dist/features/homepage/components/CharacterHotspotForm.d.ts +26 -0
  901. package/dist/features/homepage/components/CharacterHotspotForm.js +309 -0
  902. package/dist/features/homepage/components/CustomerReviewsSection.d.ts +13 -0
  903. package/dist/features/homepage/components/CustomerReviewsSection.js +14 -0
  904. package/dist/features/homepage/components/FAQSection.d.ts +26 -0
  905. package/dist/features/homepage/components/FAQSection.js +20 -0
  906. package/dist/features/homepage/components/FeaturedResultsSection.d.ts +17 -0
  907. package/dist/features/homepage/components/FeaturedResultsSection.js +18 -0
  908. package/dist/features/homepage/components/HeroBanner.d.ts +7 -0
  909. package/dist/features/homepage/components/HeroBanner.js +93 -0
  910. package/dist/features/homepage/components/HeroCarousel.d.ts +12 -0
  911. package/dist/features/homepage/components/HeroCarousel.js +157 -0
  912. package/dist/features/homepage/components/HeroSection.d.ts +7 -0
  913. package/dist/features/homepage/components/HeroSection.js +12 -0
  914. package/dist/features/homepage/components/HomepageSkeleton.d.ts +2 -0
  915. package/dist/features/homepage/components/HomepageSkeleton.js +14 -0
  916. package/dist/features/homepage/components/HomepageView.d.ts +25 -0
  917. package/dist/features/homepage/components/HomepageView.js +5 -0
  918. package/dist/features/homepage/components/HowItWorksInfoView.d.ts +36 -0
  919. package/dist/features/homepage/components/HowItWorksInfoView.js +8 -0
  920. package/dist/features/homepage/components/HowItWorksSection.d.ts +23 -0
  921. package/dist/features/homepage/components/HowItWorksSection.js +36 -0
  922. package/dist/features/homepage/components/NewsletterBanner.d.ts +22 -0
  923. package/dist/features/homepage/components/NewsletterBanner.js +34 -0
  924. package/dist/features/homepage/components/NewsletterSection.d.ts +10 -0
  925. package/dist/features/homepage/components/NewsletterSection.js +8 -0
  926. package/dist/features/homepage/components/PromoGrid.d.ts +9 -0
  927. package/dist/features/homepage/components/PromoGrid.js +35 -0
  928. package/dist/features/homepage/components/SectionCarousel.d.ts +75 -0
  929. package/dist/features/homepage/components/SectionCarousel.js +39 -0
  930. package/dist/features/homepage/components/SecurityHighlightsSection.d.ts +21 -0
  931. package/dist/features/homepage/components/SecurityHighlightsSection.js +36 -0
  932. package/dist/features/homepage/components/SiteFeaturesSection.d.ts +13 -0
  933. package/dist/features/homepage/components/SiteFeaturesSection.js +9 -0
  934. package/dist/features/homepage/components/StatsCounterSection.d.ts +14 -0
  935. package/dist/features/homepage/components/StatsCounterSection.js +32 -0
  936. package/dist/features/homepage/components/TestimonialsCarousel.d.ts +9 -0
  937. package/dist/features/homepage/components/TestimonialsCarousel.js +30 -0
  938. package/dist/features/homepage/components/TrustBadges.d.ts +5 -0
  939. package/dist/features/homepage/components/TrustBadges.js +54 -0
  940. package/dist/features/homepage/components/TrustFeaturesSection.d.ts +16 -0
  941. package/dist/features/homepage/components/TrustFeaturesSection.js +41 -0
  942. package/dist/features/homepage/components/TrustIndicatorsSection.d.ts +11 -0
  943. package/dist/features/homepage/components/TrustIndicatorsSection.js +9 -0
  944. package/dist/features/homepage/components/WelcomeSection.d.ts +20 -0
  945. package/dist/features/homepage/components/WelcomeSection.js +12 -0
  946. package/dist/features/homepage/components/WhatsAppCommunitySection.d.ts +15 -0
  947. package/dist/features/homepage/components/WhatsAppCommunitySection.js +21 -0
  948. package/dist/features/homepage/components/index.d.ts +52 -0
  949. package/dist/features/homepage/components/index.js +27 -0
  950. package/dist/features/homepage/hooks/useBlogArticles.d.ts +12 -0
  951. package/dist/features/homepage/hooks/useBlogArticles.js +31 -0
  952. package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +2 -0
  953. package/dist/features/homepage/hooks/useFeaturedAuctions.js +26 -0
  954. package/dist/features/homepage/hooks/useFeaturedPreOrders.d.ts +2 -0
  955. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +26 -0
  956. package/dist/features/homepage/hooks/useFeaturedProducts.d.ts +4 -0
  957. package/dist/features/homepage/hooks/useFeaturedProducts.js +32 -0
  958. package/dist/features/homepage/hooks/useHeroCarousel.d.ts +9 -0
  959. package/dist/features/homepage/hooks/useHeroCarousel.js +17 -0
  960. package/dist/features/homepage/hooks/useHomepage.d.ts +11 -0
  961. package/dist/features/homepage/hooks/useHomepage.js +18 -0
  962. package/dist/features/homepage/hooks/useHomepageReviews.d.ts +7 -0
  963. package/dist/features/homepage/hooks/useHomepageReviews.js +16 -0
  964. package/dist/features/homepage/hooks/useHomepageSections.d.ts +2 -0
  965. package/dist/features/homepage/hooks/useHomepageSections.js +11 -0
  966. package/dist/features/homepage/hooks/useNewsletter.d.ts +14 -0
  967. package/dist/features/homepage/hooks/useNewsletter.js +10 -0
  968. package/dist/features/homepage/hooks/useTopBrands.d.ts +2 -0
  969. package/dist/features/homepage/hooks/useTopBrands.js +12 -0
  970. package/dist/features/homepage/hooks/useTopCategories.d.ts +4 -0
  971. package/dist/features/homepage/hooks/useTopCategories.js +13 -0
  972. package/dist/features/homepage/index.d.ts +13 -846
  973. package/dist/features/homepage/index.js +13 -6279
  974. package/dist/features/homepage/manifest.d.ts +2 -0
  975. package/dist/features/homepage/manifest.js +14 -0
  976. package/dist/features/homepage/messages/en.json +6 -0
  977. package/dist/features/homepage/repository/carousel.repository.d.ts +101 -0
  978. package/dist/features/homepage/repository/carousel.repository.js +252 -0
  979. package/dist/features/homepage/repository/homepage-sections.repository.d.ts +27 -0
  980. package/dist/features/homepage/repository/homepage-sections.repository.js +174 -0
  981. package/dist/features/homepage/repository/homepage.repository.d.ts +11 -0
  982. package/dist/features/homepage/repository/homepage.repository.js +25 -0
  983. package/dist/features/homepage/schemas/firestore.d.ts +251 -0
  984. package/dist/features/homepage/schemas/firestore.js +83 -0
  985. package/dist/features/homepage/schemas/index.d.ts +1 -0
  986. package/dist/features/homepage/schemas/index.js +1 -0
  987. package/dist/features/homepage/server.d.ts +10 -121
  988. package/dist/features/homepage/server.js +10 -1024
  989. package/dist/features/homepage/types/index.d.ts +163 -0
  990. package/dist/features/homepage/types/index.js +1 -0
  991. package/dist/features/layout/AutoBreadcrumbs.d.ts +15 -0
  992. package/dist/features/layout/AutoBreadcrumbs.js +84 -0
  993. package/dist/features/layout/BackToTop.d.ts +16 -0
  994. package/dist/features/layout/BackToTop.js +26 -0
  995. package/dist/features/layout/BottomActions.d.ts +1 -0
  996. package/dist/features/layout/BottomActions.js +153 -0
  997. package/dist/features/layout/BottomActionsContext.d.ts +107 -0
  998. package/dist/features/layout/BottomActionsContext.js +114 -0
  999. package/dist/features/layout/BottomNavItem.d.ts +28 -0
  1000. package/dist/features/layout/BottomNavItem.js +28 -0
  1001. package/dist/features/layout/BottomNavLayout.d.ts +14 -0
  1002. package/dist/features/layout/BottomNavLayout.js +12 -0
  1003. package/dist/features/layout/BottomNavbar.d.ts +46 -0
  1004. package/dist/features/layout/BottomNavbar.js +19 -0
  1005. package/dist/features/layout/BottomSheet.d.ts +29 -0
  1006. package/dist/features/layout/BottomSheet.js +40 -0
  1007. package/dist/features/layout/Breadcrumbs.d.ts +26 -0
  1008. package/dist/features/layout/Breadcrumbs.js +25 -0
  1009. package/dist/features/layout/DashboardNavContext.d.ts +19 -0
  1010. package/dist/features/layout/DashboardNavContext.js +36 -0
  1011. package/dist/features/layout/FooterLayout.d.ts +39 -0
  1012. package/dist/features/layout/FooterLayout.js +12 -0
  1013. package/dist/features/layout/LayoutClient.d.ts +11 -0
  1014. package/dist/features/layout/LayoutClient.js +7 -0
  1015. package/dist/features/layout/ListingLayout.d.ts +35 -0
  1016. package/dist/features/layout/ListingLayout.js +104 -0
  1017. package/dist/features/layout/LocaleSwitcher.d.ts +22 -0
  1018. package/dist/features/layout/LocaleSwitcher.js +12 -0
  1019. package/dist/features/layout/MainNavbar.d.ts +32 -0
  1020. package/dist/features/layout/MainNavbar.js +29 -0
  1021. package/dist/features/layout/NavItem.d.ts +19 -0
  1022. package/dist/features/layout/NavItem.js +35 -0
  1023. package/dist/features/layout/NavbarLayout.d.ts +27 -0
  1024. package/dist/features/layout/NavbarLayout.js +23 -0
  1025. package/dist/features/layout/SidebarLayout.d.ts +24 -0
  1026. package/dist/features/layout/SidebarLayout.js +29 -0
  1027. package/dist/features/layout/TitleBar.d.ts +18 -0
  1028. package/dist/features/layout/TitleBar.js +19 -0
  1029. package/dist/features/layout/TitleBarLayout.d.ts +48 -0
  1030. package/dist/features/layout/TitleBarLayout.js +17 -0
  1031. package/dist/features/layout/hooks/useBottomActions.d.ts +7 -0
  1032. package/dist/features/layout/hooks/useBottomActions.js +28 -0
  1033. package/dist/features/layout/index.d.ts +41 -315
  1034. package/dist/features/layout/index.js +23 -1745
  1035. package/dist/features/loyalty/api/admin/loyalty/grant/route.d.ts +12 -0
  1036. package/dist/features/loyalty/api/admin/loyalty/grant/route.js +36 -0
  1037. package/dist/features/loyalty/api/balance/route.d.ts +12 -0
  1038. package/dist/features/loyalty/api/balance/route.js +39 -0
  1039. package/dist/features/loyalty/api/earn/route.d.ts +12 -0
  1040. package/dist/features/loyalty/api/earn/route.js +36 -0
  1041. package/dist/features/loyalty/api/history/route.d.ts +12 -0
  1042. package/dist/features/loyalty/api/history/route.js +56 -0
  1043. package/dist/features/loyalty/api/redeem/route.d.ts +12 -0
  1044. package/dist/features/loyalty/api/redeem/route.js +36 -0
  1045. package/dist/features/loyalty/columns/index.d.ts +17 -0
  1046. package/dist/features/loyalty/columns/index.js +40 -0
  1047. package/dist/features/loyalty/components/CoinsDisplay.d.ts +11 -0
  1048. package/dist/features/loyalty/components/CoinsDisplay.js +9 -0
  1049. package/dist/features/loyalty/components/index.d.ts +1 -0
  1050. package/dist/features/loyalty/components/index.js +1 -0
  1051. package/dist/features/loyalty/hooks/useLoyaltyBalance.d.ts +4 -0
  1052. package/dist/features/loyalty/hooks/useLoyaltyBalance.js +18 -0
  1053. package/dist/features/loyalty/index.d.ts +6 -174
  1054. package/dist/features/loyalty/index.js +6 -332
  1055. package/dist/features/loyalty/manifest.d.ts +2 -0
  1056. package/dist/features/loyalty/manifest.js +16 -0
  1057. package/dist/features/loyalty/messages/en.json +19 -0
  1058. package/dist/features/loyalty/repository/loyalty.repository.d.ts +8 -0
  1059. package/dist/features/loyalty/repository/loyalty.repository.js +22 -0
  1060. package/dist/features/loyalty/schemas/index.d.ts +85 -0
  1061. package/dist/features/loyalty/schemas/index.js +40 -0
  1062. package/dist/features/loyalty/server.d.ts +7 -0
  1063. package/dist/features/loyalty/server.js +7 -0
  1064. package/dist/features/loyalty/types/index.d.ts +31 -0
  1065. package/dist/features/loyalty/types/index.js +1 -0
  1066. package/dist/features/loyalty/types/loyalty-config.d.ts +7 -0
  1067. package/dist/features/loyalty/types/loyalty-config.js +1 -0
  1068. package/dist/features/loyalty/types/loyalty-math.d.ts +9 -0
  1069. package/dist/features/loyalty/types/loyalty-math.js +27 -0
  1070. package/dist/features/media/AvatarUpload.d.ts +22 -0
  1071. package/dist/features/media/AvatarUpload.js +133 -0
  1072. package/dist/features/media/MediaAvatar.d.ts +12 -0
  1073. package/dist/features/media/MediaAvatar.js +13 -0
  1074. package/dist/features/media/MediaImage.d.ts +28 -0
  1075. package/dist/features/media/MediaImage.js +35 -0
  1076. package/dist/features/media/MediaLightbox.d.ts +32 -0
  1077. package/dist/features/media/MediaLightbox.js +245 -0
  1078. package/dist/features/media/MediaVideo.d.ts +22 -0
  1079. package/dist/features/media/MediaVideo.js +38 -0
  1080. package/dist/features/media/components/MediaSlider.d.ts +10 -0
  1081. package/dist/features/media/components/MediaSlider.js +12 -0
  1082. package/dist/features/media/finalize.d.ts +11 -0
  1083. package/dist/features/media/finalize.js +70 -0
  1084. package/dist/features/media/hooks/useMedia.d.ts +198 -0
  1085. package/dist/features/media/hooks/useMedia.js +78 -0
  1086. package/dist/features/media/index.d.ts +30 -425
  1087. package/dist/features/media/index.js +21 -3593
  1088. package/dist/features/media/messages/en.json +63 -0
  1089. package/dist/features/media/modals/ImageCropModal.d.ts +16 -0
  1090. package/dist/features/media/modals/ImageCropModal.js +99 -0
  1091. package/dist/features/media/modals/VideoThumbnailSelector.d.ts +10 -0
  1092. package/dist/features/media/modals/VideoThumbnailSelector.js +51 -0
  1093. package/dist/features/media/modals/VideoTrimModal.d.ts +11 -0
  1094. package/dist/features/media/modals/VideoTrimModal.js +73 -0
  1095. package/dist/features/media/server.d.ts +2 -0
  1096. package/dist/features/media/server.js +2 -0
  1097. package/dist/features/media/types/index.d.ts +29 -0
  1098. package/dist/features/media/types/index.js +43 -0
  1099. package/dist/features/media/upload/CameraCapture.d.ts +8 -0
  1100. package/dist/features/media/upload/CameraCapture.js +59 -0
  1101. package/dist/features/media/upload/ImageUpload.d.ts +14 -0
  1102. package/dist/features/media/upload/ImageUpload.js +132 -0
  1103. package/dist/features/media/upload/MediaUploadField.d.ts +31 -0
  1104. package/dist/features/media/upload/MediaUploadField.js +204 -0
  1105. package/dist/features/media/upload/MediaUploadList.d.ts +26 -0
  1106. package/dist/features/media/upload/MediaUploadList.js +104 -0
  1107. package/dist/features/orders/actions/index.d.ts +2 -0
  1108. package/dist/features/orders/actions/index.js +2 -0
  1109. package/dist/features/orders/actions/order-actions.d.ts +16 -0
  1110. package/dist/features/orders/actions/order-actions.js +46 -0
  1111. package/dist/features/orders/actions/refund-actions.d.ts +16 -0
  1112. package/dist/features/orders/actions/refund-actions.js +88 -0
  1113. package/dist/features/orders/api/track/[trackingId]/route.d.ts +17 -0
  1114. package/dist/features/orders/api/track/[trackingId]/route.js +30 -0
  1115. package/dist/features/orders/columns/index.d.ts +15 -0
  1116. package/dist/features/orders/columns/index.js +34 -0
  1117. package/dist/features/orders/components/MarketplaceOrderCard.d.ts +37 -0
  1118. package/dist/features/orders/components/MarketplaceOrderCard.js +52 -0
  1119. package/dist/features/orders/components/OrderFilters.d.ts +82 -0
  1120. package/dist/features/orders/components/OrderFilters.js +106 -0
  1121. package/dist/features/orders/components/OrdersList.d.ts +18 -0
  1122. package/dist/features/orders/components/OrdersList.js +37 -0
  1123. package/dist/features/orders/components/index.d.ts +4 -0
  1124. package/dist/features/orders/components/index.js +3 -0
  1125. package/dist/features/orders/hooks/useOrders.d.ts +32 -0
  1126. package/dist/features/orders/hooks/useOrders.js +57 -0
  1127. package/dist/features/orders/index.d.ts +7 -370
  1128. package/dist/features/orders/index.js +7 -863
  1129. package/dist/features/orders/manifest.d.ts +2 -0
  1130. package/dist/features/orders/manifest.js +18 -0
  1131. package/dist/features/orders/messages/en.json +15 -0
  1132. package/dist/features/orders/repository/orders.repository.d.ts +188 -0
  1133. package/dist/features/orders/repository/orders.repository.js +300 -0
  1134. package/dist/features/orders/schemas/firestore.d.ts +129 -0
  1135. package/dist/features/orders/schemas/firestore.js +96 -0
  1136. package/dist/features/orders/schemas/index.d.ts +217 -0
  1137. package/dist/features/orders/schemas/index.js +76 -0
  1138. package/dist/features/orders/server.d.ts +9 -0
  1139. package/dist/features/orders/server.js +10 -0
  1140. package/dist/features/orders/types/index.d.ts +69 -0
  1141. package/dist/features/orders/types/index.js +2 -0
  1142. package/dist/features/orders/utils/order-splitter.d.ts +14 -0
  1143. package/dist/features/orders/utils/order-splitter.js +29 -0
  1144. package/dist/features/payments/columns/index.d.ts +17 -0
  1145. package/dist/features/payments/columns/index.js +45 -0
  1146. package/dist/features/payments/hooks/usePaymentEvent.d.ts +17 -0
  1147. package/dist/features/payments/hooks/usePaymentEvent.js +26 -0
  1148. package/dist/features/payments/hooks/usePayments.d.ts +10 -0
  1149. package/dist/features/payments/hooks/usePayments.js +19 -0
  1150. package/dist/features/payments/index.d.ts +6 -141
  1151. package/dist/features/payments/index.js +6 -331
  1152. package/dist/features/payments/manifest.d.ts +2 -0
  1153. package/dist/features/payments/manifest.js +12 -0
  1154. package/dist/features/payments/messages/en.json +11 -0
  1155. package/dist/features/payments/repository/payments.repository.d.ts +15 -0
  1156. package/dist/features/payments/repository/payments.repository.js +36 -0
  1157. package/dist/features/payments/repository/payout.repository.d.ts +111 -0
  1158. package/dist/features/payments/repository/payout.repository.js +202 -0
  1159. package/dist/features/payments/schemas/firestore.d.ts +74 -0
  1160. package/dist/features/payments/schemas/firestore.js +65 -0
  1161. package/dist/features/payments/schemas/index.d.ts +77 -0
  1162. package/dist/features/payments/schemas/index.js +67 -0
  1163. package/dist/features/payments/server.d.ts +8 -0
  1164. package/dist/features/payments/server.js +8 -0
  1165. package/dist/features/payments/types/index.d.ts +36 -0
  1166. package/dist/features/payments/types/index.js +2 -0
  1167. package/dist/features/pre-orders/api/[id]/route.d.ts +26 -0
  1168. package/dist/features/pre-orders/api/[id]/route.js +88 -0
  1169. package/dist/features/pre-orders/api/[slug]/route.d.ts +16 -0
  1170. package/dist/features/pre-orders/api/[slug]/route.js +41 -0
  1171. package/dist/features/pre-orders/api/admin/[id]/route.d.ts +21 -0
  1172. package/dist/features/pre-orders/api/admin/[id]/route.js +65 -0
  1173. package/dist/features/pre-orders/api/admin/route.d.ts +12 -0
  1174. package/dist/features/pre-orders/api/admin/route.js +56 -0
  1175. package/dist/features/pre-orders/api/route.d.ts +13 -0
  1176. package/dist/features/pre-orders/api/route.js +77 -0
  1177. package/dist/features/pre-orders/columns/index.d.ts +17 -0
  1178. package/dist/features/pre-orders/columns/index.js +68 -0
  1179. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +24 -0
  1180. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +53 -0
  1181. package/dist/features/pre-orders/components/PreOrderBadge.d.ts +14 -0
  1182. package/dist/features/pre-orders/components/PreOrderBadge.js +17 -0
  1183. package/dist/features/pre-orders/components/PreorderCard.d.ts +12 -0
  1184. package/dist/features/pre-orders/components/PreorderCard.js +27 -0
  1185. package/dist/features/pre-orders/components/index.d.ts +2 -0
  1186. package/dist/features/pre-orders/components/index.js +2 -0
  1187. package/dist/features/pre-orders/hooks/usePreOrders.d.ts +7 -0
  1188. package/dist/features/pre-orders/hooks/usePreOrders.js +34 -0
  1189. package/dist/features/pre-orders/index.d.ts +6 -170
  1190. package/dist/features/pre-orders/index.js +6 -538
  1191. package/dist/features/pre-orders/manifest.d.ts +2 -0
  1192. package/dist/features/pre-orders/manifest.js +17 -0
  1193. package/dist/features/pre-orders/messages/en.json +13 -0
  1194. package/dist/features/pre-orders/repository/pre-orders.repository.d.ts +14 -0
  1195. package/dist/features/pre-orders/repository/pre-orders.repository.js +44 -0
  1196. package/dist/features/pre-orders/repository/preorders.repository.d.ts +8 -0
  1197. package/dist/features/pre-orders/repository/preorders.repository.js +21 -0
  1198. package/dist/features/pre-orders/schemas/index.d.ts +79 -0
  1199. package/dist/features/pre-orders/schemas/index.js +27 -0
  1200. package/dist/features/pre-orders/server.d.ts +5 -14
  1201. package/dist/features/pre-orders/server.js +8 -106
  1202. package/dist/features/pre-orders/types/index.d.ts +29 -0
  1203. package/dist/features/pre-orders/types/index.js +12 -0
  1204. package/dist/features/products/actions/index.d.ts +1 -0
  1205. package/dist/features/products/actions/index.js +1 -0
  1206. package/dist/features/products/actions/product-actions.d.ts +26 -0
  1207. package/dist/features/products/actions/product-actions.js +111 -0
  1208. package/dist/features/products/api/[id]/route.d.ts +29 -0
  1209. package/dist/features/products/api/[id]/route.js +137 -0
  1210. package/dist/features/products/api/route.d.ts +19 -0
  1211. package/dist/features/products/api/route.js +214 -0
  1212. package/dist/features/products/columns/index.d.ts +64 -0
  1213. package/dist/features/products/columns/index.js +85 -0
  1214. package/dist/features/products/columns/productTableColumns.d.ts +27 -0
  1215. package/dist/features/products/columns/productTableColumns.js +88 -0
  1216. package/dist/features/products/components/AuctionDetailView.d.ts +13 -0
  1217. package/dist/features/products/components/AuctionDetailView.js +9 -0
  1218. package/dist/features/products/components/AuctionsView.d.ts +6 -0
  1219. package/dist/features/products/components/AuctionsView.js +5 -0
  1220. package/dist/features/products/components/BidHistory.d.ts +28 -0
  1221. package/dist/features/products/components/BidHistory.js +18 -0
  1222. package/dist/features/products/components/BuyBar.d.ts +21 -0
  1223. package/dist/features/products/components/BuyBar.js +20 -0
  1224. package/dist/features/products/components/InteractiveProductCard.d.ts +19 -0
  1225. package/dist/features/products/components/InteractiveProductCard.js +18 -0
  1226. package/dist/features/products/components/MakeOfferForm.d.ts +20 -0
  1227. package/dist/features/products/components/MakeOfferForm.js +8 -0
  1228. package/dist/features/products/components/PlaceBidForm.d.ts +20 -0
  1229. package/dist/features/products/components/PlaceBidForm.js +6 -0
  1230. package/dist/features/products/components/PreOrderDetailView.d.ts +14 -0
  1231. package/dist/features/products/components/PreOrderDetailView.js +9 -0
  1232. package/dist/features/products/components/PreOrdersView.d.ts +6 -0
  1233. package/dist/features/products/components/PreOrdersView.js +5 -0
  1234. package/dist/features/products/components/ProductDetailView.d.ts +11 -0
  1235. package/dist/features/products/components/ProductDetailView.js +9 -0
  1236. package/dist/features/products/components/ProductFeatureBadges.d.ts +32 -0
  1237. package/dist/features/products/components/ProductFeatureBadges.js +103 -0
  1238. package/dist/features/products/components/ProductFilters.d.ts +90 -0
  1239. package/dist/features/products/components/ProductFilters.js +105 -0
  1240. package/dist/features/products/components/ProductForm.d.ts +47 -0
  1241. package/dist/features/products/components/ProductForm.js +120 -0
  1242. package/dist/features/products/components/ProductGrid.d.ts +69 -0
  1243. package/dist/features/products/components/ProductGrid.js +92 -0
  1244. package/dist/features/products/components/ProductInfo.d.ts +20 -0
  1245. package/dist/features/products/components/ProductInfo.js +4 -0
  1246. package/dist/features/products/components/ProductTabs.d.ts +21 -0
  1247. package/dist/features/products/components/ProductTabs.js +22 -0
  1248. package/dist/features/products/components/ProductsView.d.ts +6 -0
  1249. package/dist/features/products/components/ProductsView.js +5 -0
  1250. package/dist/features/products/components/RelatedProducts.d.ts +16 -0
  1251. package/dist/features/products/components/RelatedProducts.js +12 -0
  1252. package/dist/features/products/components/index.d.ts +34 -0
  1253. package/dist/features/products/components/index.js +18 -0
  1254. package/dist/features/products/hooks/useBrands.d.ts +9 -0
  1255. package/dist/features/products/hooks/useBrands.js +15 -0
  1256. package/dist/features/products/hooks/useProductDetail.d.ts +15 -0
  1257. package/dist/features/products/hooks/useProductDetail.js +29 -0
  1258. package/dist/features/products/hooks/useProducts.d.ts +43 -0
  1259. package/dist/features/products/hooks/useProducts.js +67 -0
  1260. package/dist/features/products/hooks/useRelatedProducts.d.ts +2 -0
  1261. package/dist/features/products/hooks/useRelatedProducts.js +17 -0
  1262. package/dist/features/products/index.d.ts +10 -1066
  1263. package/dist/features/products/index.js +10 -2475
  1264. package/dist/features/products/manifest.d.ts +2 -0
  1265. package/dist/features/products/manifest.js +16 -0
  1266. package/dist/features/products/messages/en.json +11 -0
  1267. package/dist/features/products/repository/products.repository.d.ts +213 -0
  1268. package/dist/features/products/repository/products.repository.js +300 -0
  1269. package/dist/features/products/schemas/firestore.d.ts +125 -0
  1270. package/dist/features/products/schemas/firestore.js +149 -0
  1271. package/dist/features/products/schemas/index.d.ts +400 -0
  1272. package/dist/features/products/schemas/index.js +173 -0
  1273. package/dist/features/products/server.d.ts +7 -49
  1274. package/dist/features/products/server.js +10 -803
  1275. package/dist/features/products/types/index.d.ts +122 -0
  1276. package/dist/features/products/types/index.js +1 -0
  1277. package/dist/features/products/utils/listing-type.d.ts +2 -0
  1278. package/dist/features/products/utils/listing-type.js +9 -0
  1279. package/dist/features/promotions/actions/coupon-actions.d.ts +28 -0
  1280. package/dist/features/promotions/actions/coupon-actions.js +23 -0
  1281. package/dist/features/promotions/actions/index.d.ts +3 -0
  1282. package/dist/features/promotions/actions/index.js +3 -0
  1283. package/dist/features/promotions/actions/promotions-actions.d.ts +18 -0
  1284. package/dist/features/promotions/actions/promotions-actions.js +37 -0
  1285. package/dist/features/promotions/actions/seller-coupon-actions.d.ts +41 -0
  1286. package/dist/features/promotions/actions/seller-coupon-actions.js +92 -0
  1287. package/dist/features/promotions/api/route.d.ts +21 -0
  1288. package/dist/features/promotions/api/route.js +85 -0
  1289. package/dist/features/promotions/columns/index.d.ts +12 -0
  1290. package/dist/features/promotions/columns/index.js +45 -0
  1291. package/dist/features/promotions/components/CouponCard.d.ts +16 -0
  1292. package/dist/features/promotions/components/CouponCard.js +20 -0
  1293. package/dist/features/promotions/components/PromotionsView.d.ts +43 -0
  1294. package/dist/features/promotions/components/PromotionsView.js +10 -0
  1295. package/dist/features/promotions/components/index.d.ts +3 -0
  1296. package/dist/features/promotions/components/index.js +2 -0
  1297. package/dist/features/promotions/hooks/useCouponValidate.d.ts +22 -0
  1298. package/dist/features/promotions/hooks/useCouponValidate.js +10 -0
  1299. package/dist/features/promotions/hooks/usePromotions.d.ts +21 -0
  1300. package/dist/features/promotions/hooks/usePromotions.js +49 -0
  1301. package/dist/features/promotions/index.d.ts +7 -301
  1302. package/dist/features/promotions/index.js +7 -957
  1303. package/dist/features/promotions/manifest.d.ts +2 -0
  1304. package/dist/features/promotions/manifest.js +14 -0
  1305. package/dist/features/promotions/messages/en.json +20 -0
  1306. package/dist/features/promotions/repository/coupons.repository.d.ts +224 -0
  1307. package/dist/features/promotions/repository/coupons.repository.js +539 -0
  1308. package/dist/features/promotions/repository/promotions.repository.d.ts +14 -0
  1309. package/dist/features/promotions/repository/promotions.repository.js +43 -0
  1310. package/dist/features/promotions/schemas/firestore.d.ts +105 -0
  1311. package/dist/features/promotions/schemas/firestore.js +124 -0
  1312. package/dist/features/promotions/schemas/index.d.ts +117 -0
  1313. package/dist/features/promotions/schemas/index.js +58 -0
  1314. package/dist/features/promotions/server.d.ts +10 -0
  1315. package/dist/features/promotions/server.js +10 -0
  1316. package/dist/features/promotions/types/index.d.ts +51 -0
  1317. package/dist/features/promotions/types/index.js +2 -0
  1318. package/dist/features/reviews/actions/index.d.ts +1 -0
  1319. package/dist/features/reviews/actions/index.js +1 -0
  1320. package/dist/features/reviews/actions/review-actions.d.ts +40 -0
  1321. package/dist/features/reviews/actions/review-actions.js +182 -0
  1322. package/dist/features/reviews/api/[id]/route.d.ts +23 -0
  1323. package/dist/features/reviews/api/[id]/route.js +109 -0
  1324. package/dist/features/reviews/api/route.d.ts +21 -0
  1325. package/dist/features/reviews/api/route.js +171 -0
  1326. package/dist/features/reviews/columns/index.d.ts +15 -0
  1327. package/dist/features/reviews/columns/index.js +44 -0
  1328. package/dist/features/reviews/components/ReviewFilters.d.ts +74 -0
  1329. package/dist/features/reviews/components/ReviewFilters.js +60 -0
  1330. package/dist/features/reviews/components/ReviewModal.d.ts +11 -0
  1331. package/dist/features/reviews/components/ReviewModal.js +25 -0
  1332. package/dist/features/reviews/components/ReviewSummary.d.ts +16 -0
  1333. package/dist/features/reviews/components/ReviewSummary.js +20 -0
  1334. package/dist/features/reviews/components/ReviewsList.d.ts +15 -0
  1335. package/dist/features/reviews/components/ReviewsList.js +25 -0
  1336. package/dist/features/reviews/components/ReviewsListView.d.ts +31 -0
  1337. package/dist/features/reviews/components/ReviewsListView.js +16 -0
  1338. package/dist/features/reviews/components/index.d.ts +10 -0
  1339. package/dist/features/reviews/components/index.js +5 -0
  1340. package/dist/features/reviews/hooks/useCreateReview.d.ts +12 -0
  1341. package/dist/features/reviews/hooks/useCreateReview.js +20 -0
  1342. package/dist/features/reviews/hooks/useReviews.d.ts +34 -0
  1343. package/dist/features/reviews/hooks/useReviews.js +49 -0
  1344. package/dist/features/reviews/index.d.ts +7 -434
  1345. package/dist/features/reviews/index.js +7 -2297
  1346. package/dist/features/reviews/manifest.d.ts +2 -0
  1347. package/dist/features/reviews/manifest.js +10 -0
  1348. package/dist/features/reviews/messages/en.json +10 -0
  1349. package/dist/features/reviews/repository/reviews.repository.d.ts +103 -0
  1350. package/dist/features/reviews/repository/reviews.repository.js +214 -0
  1351. package/dist/features/reviews/schemas/firestore.d.ts +67 -0
  1352. package/dist/features/reviews/schemas/firestore.js +59 -0
  1353. package/dist/features/reviews/schemas/index.d.ts +183 -0
  1354. package/dist/features/reviews/schemas/index.js +68 -0
  1355. package/dist/features/reviews/server.d.ts +7 -46
  1356. package/dist/features/reviews/server.js +10 -769
  1357. package/dist/features/reviews/types/index.d.ts +62 -0
  1358. package/dist/features/reviews/types/index.js +1 -0
  1359. package/dist/features/search/actions/index.d.ts +1 -0
  1360. package/dist/features/search/actions/index.js +1 -0
  1361. package/dist/features/search/actions/search-actions.d.ts +18 -0
  1362. package/dist/features/search/actions/search-actions.js +43 -0
  1363. package/dist/features/search/api/route.d.ts +22 -0
  1364. package/dist/features/search/api/route.js +79 -0
  1365. package/dist/features/search/columns/index.d.ts +17 -0
  1366. package/dist/features/search/columns/index.js +49 -0
  1367. package/dist/features/search/components/Search.d.ts +41 -0
  1368. package/dist/features/search/components/Search.js +263 -0
  1369. package/dist/features/search/components/SearchFiltersRow.d.ts +22 -0
  1370. package/dist/features/search/components/SearchFiltersRow.js +21 -0
  1371. package/dist/features/search/components/SearchResultsSection.d.ts +53 -0
  1372. package/dist/features/search/components/SearchResultsSection.js +36 -0
  1373. package/dist/features/search/components/SearchView.d.ts +29 -0
  1374. package/dist/features/search/components/SearchView.js +8 -0
  1375. package/dist/features/search/components/index.d.ts +8 -0
  1376. package/dist/features/search/components/index.js +4 -0
  1377. package/dist/features/search/hooks/useNavSuggestions.d.ts +11 -0
  1378. package/dist/features/search/hooks/useNavSuggestions.js +32 -0
  1379. package/dist/features/search/hooks/useSearch.d.ts +21 -0
  1380. package/dist/features/search/hooks/useSearch.js +34 -0
  1381. package/dist/features/search/index.d.ts +7 -298
  1382. package/dist/features/search/index.js +7 -1351
  1383. package/dist/features/search/manifest.d.ts +2 -0
  1384. package/dist/features/search/manifest.js +10 -0
  1385. package/dist/features/search/messages/en.json +15 -0
  1386. package/dist/features/search/repository/search.repository.d.ts +14 -0
  1387. package/dist/features/search/repository/search.repository.js +59 -0
  1388. package/dist/features/search/schemas/index.d.ts +70 -0
  1389. package/dist/features/search/schemas/index.js +34 -0
  1390. package/dist/features/search/server.d.ts +5 -83
  1391. package/dist/features/search/server.js +5 -149
  1392. package/dist/features/search/types/index.d.ts +46 -0
  1393. package/dist/features/search/types/index.js +2 -0
  1394. package/dist/features/seller/actions/index.d.ts +2 -0
  1395. package/dist/features/seller/actions/index.js +2 -0
  1396. package/dist/features/seller/actions/offer-actions.d.ts +32 -0
  1397. package/dist/features/seller/actions/offer-actions.js +266 -0
  1398. package/dist/features/seller/actions/seller-actions.d.ts +172 -0
  1399. package/dist/features/seller/actions/seller-actions.js +480 -0
  1400. package/dist/features/seller/api/coupons/route.d.ts +17 -0
  1401. package/dist/features/seller/api/coupons/route.js +47 -0
  1402. package/dist/features/seller/api/offers/route.d.ts +17 -0
  1403. package/dist/features/seller/api/offers/route.js +63 -0
  1404. package/dist/features/seller/api/products/route.d.ts +17 -0
  1405. package/dist/features/seller/api/products/route.js +64 -0
  1406. package/dist/features/seller/api/store/route.d.ts +17 -0
  1407. package/dist/features/seller/api/store/route.js +34 -0
  1408. package/dist/features/seller/columns/index.d.ts +22 -0
  1409. package/dist/features/seller/columns/index.js +73 -0
  1410. package/dist/features/seller/components/SellerAddressesView.d.ts +13 -0
  1411. package/dist/features/seller/components/SellerAddressesView.js +5 -0
  1412. package/dist/features/seller/components/SellerAnalyticsView.d.ts +13 -0
  1413. package/dist/features/seller/components/SellerAnalyticsView.js +17 -0
  1414. package/dist/features/seller/components/SellerAuctionsView.d.ts +6 -0
  1415. package/dist/features/seller/components/SellerAuctionsView.js +5 -0
  1416. package/dist/features/seller/components/SellerCouponsView.d.ts +6 -0
  1417. package/dist/features/seller/components/SellerCouponsView.js +5 -0
  1418. package/dist/features/seller/components/SellerCreateProductView.d.ts +11 -0
  1419. package/dist/features/seller/components/SellerCreateProductView.js +5 -0
  1420. package/dist/features/seller/components/SellerDashboardView.d.ts +14 -0
  1421. package/dist/features/seller/components/SellerDashboardView.js +11 -0
  1422. package/dist/features/seller/components/SellerEditProductView.d.ts +11 -0
  1423. package/dist/features/seller/components/SellerEditProductView.js +5 -0
  1424. package/dist/features/seller/components/SellerGuideView.d.ts +12 -0
  1425. package/dist/features/seller/components/SellerGuideView.js +5 -0
  1426. package/dist/features/seller/components/SellerOffersView.d.ts +4 -0
  1427. package/dist/features/seller/components/SellerOffersView.js +5 -0
  1428. package/dist/features/seller/components/SellerOrdersView.d.ts +4 -0
  1429. package/dist/features/seller/components/SellerOrdersView.js +5 -0
  1430. package/dist/features/seller/components/SellerPayoutHistoryTable.d.ts +14 -0
  1431. package/dist/features/seller/components/SellerPayoutHistoryTable.js +10 -0
  1432. package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +11 -0
  1433. package/dist/features/seller/components/SellerPayoutSettingsView.js +5 -0
  1434. package/dist/features/seller/components/SellerPayoutStats.d.ts +8 -0
  1435. package/dist/features/seller/components/SellerPayoutStats.js +9 -0
  1436. package/dist/features/seller/components/SellerPayoutsView.d.ts +18 -0
  1437. package/dist/features/seller/components/SellerPayoutsView.js +11 -0
  1438. package/dist/features/seller/components/SellerProductsView.d.ts +6 -0
  1439. package/dist/features/seller/components/SellerProductsView.js +5 -0
  1440. package/dist/features/seller/components/SellerShippingView.d.ts +12 -0
  1441. package/dist/features/seller/components/SellerShippingView.js +5 -0
  1442. package/dist/features/seller/components/SellerSidebar.d.ts +16 -0
  1443. package/dist/features/seller/components/SellerSidebar.js +11 -0
  1444. package/dist/features/seller/components/SellerStatCard.d.ts +14 -0
  1445. package/dist/features/seller/components/SellerStatCard.js +5 -0
  1446. package/dist/features/seller/components/SellerStoreSetupView.d.ts +12 -0
  1447. package/dist/features/seller/components/SellerStoreSetupView.js +8 -0
  1448. package/dist/features/seller/components/SellerStoreView.d.ts +8 -0
  1449. package/dist/features/seller/components/SellerStoreView.js +8 -0
  1450. package/dist/features/seller/components/SellerStorefrontView.d.ts +13 -0
  1451. package/dist/features/seller/components/SellerStorefrontView.js +10 -0
  1452. package/dist/features/seller/components/SellersListView.d.ts +4 -0
  1453. package/dist/features/seller/components/SellersListView.js +5 -0
  1454. package/dist/features/seller/components/analytics/SellerAnalyticsStats.d.ts +14 -0
  1455. package/dist/features/seller/components/analytics/SellerAnalyticsStats.js +9 -0
  1456. package/dist/features/seller/components/analytics/SellerRevenueChart.d.ts +13 -0
  1457. package/dist/features/seller/components/analytics/SellerRevenueChart.js +28 -0
  1458. package/dist/features/seller/components/analytics/SellerTopProducts.d.ts +17 -0
  1459. package/dist/features/seller/components/analytics/SellerTopProducts.js +6 -0
  1460. package/dist/features/seller/components/analytics/index.d.ts +3 -0
  1461. package/dist/features/seller/components/analytics/index.js +3 -0
  1462. package/dist/features/seller/components/index.d.ts +44 -0
  1463. package/dist/features/seller/components/index.js +23 -0
  1464. package/dist/features/seller/hooks/useBecomeSeller.d.ts +12 -0
  1465. package/dist/features/seller/hooks/useBecomeSeller.js +26 -0
  1466. package/dist/features/seller/hooks/useSellerPayouts.d.ts +25 -0
  1467. package/dist/features/seller/hooks/useSellerPayouts.js +42 -0
  1468. package/dist/features/seller/hooks/useSellerStore.d.ts +28 -0
  1469. package/dist/features/seller/hooks/useSellerStore.js +48 -0
  1470. package/dist/features/seller/hooks/useSellerStorefront.d.ts +16 -0
  1471. package/dist/features/seller/hooks/useSellerStorefront.js +57 -0
  1472. package/dist/features/seller/index.d.ts +10 -926
  1473. package/dist/features/seller/index.js +10 -2029
  1474. package/dist/features/seller/manifest.d.ts +2 -0
  1475. package/dist/features/seller/manifest.js +74 -0
  1476. package/dist/features/seller/messages/en.json +32 -0
  1477. package/dist/features/seller/permission-map.d.ts +3 -0
  1478. package/dist/features/seller/permission-map.js +15 -0
  1479. package/dist/features/seller/repository/offer.repository.d.ts +66 -0
  1480. package/dist/features/seller/repository/offer.repository.js +210 -0
  1481. package/dist/features/seller/repository/seller.repository.d.ts +22 -0
  1482. package/dist/features/seller/repository/seller.repository.js +72 -0
  1483. package/dist/features/seller/schemas/firestore.d.ts +76 -0
  1484. package/dist/features/seller/schemas/firestore.js +57 -0
  1485. package/dist/features/seller/schemas/index.d.ts +244 -0
  1486. package/dist/features/seller/schemas/index.js +100 -0
  1487. package/dist/features/seller/server.d.ts +13 -0
  1488. package/dist/features/seller/server.js +13 -0
  1489. package/dist/features/seller/types/index.d.ts +147 -0
  1490. package/dist/features/seller/types/index.js +2 -0
  1491. package/dist/features/stores/actions/index.d.ts +2 -0
  1492. package/dist/features/stores/actions/index.js +2 -0
  1493. package/dist/features/stores/actions/store-address-actions.d.ts +11 -0
  1494. package/dist/features/stores/actions/store-address-actions.js +54 -0
  1495. package/dist/features/stores/actions/store-query-actions.d.ts +34 -0
  1496. package/dist/features/stores/actions/store-query-actions.js +113 -0
  1497. package/dist/features/stores/api/[storeSlug]/auctions/route.d.ts +23 -0
  1498. package/dist/features/stores/api/[storeSlug]/auctions/route.js +92 -0
  1499. package/dist/features/stores/api/[storeSlug]/products/route.d.ts +23 -0
  1500. package/dist/features/stores/api/[storeSlug]/products/route.js +97 -0
  1501. package/dist/features/stores/api/[storeSlug]/reviews/route.d.ts +23 -0
  1502. package/dist/features/stores/api/[storeSlug]/reviews/route.js +101 -0
  1503. package/dist/features/stores/api/[storeSlug]/route.d.ts +21 -0
  1504. package/dist/features/stores/api/[storeSlug]/route.js +66 -0
  1505. package/dist/features/stores/api/route.d.ts +12 -0
  1506. package/dist/features/stores/api/route.js +101 -0
  1507. package/dist/features/stores/columns/index.d.ts +16 -0
  1508. package/dist/features/stores/columns/index.js +45 -0
  1509. package/dist/features/stores/components/InteractiveStoreCard.d.ts +20 -0
  1510. package/dist/features/stores/components/InteractiveStoreCard.js +16 -0
  1511. package/dist/features/stores/components/StoreAboutView.d.ts +21 -0
  1512. package/dist/features/stores/components/StoreAboutView.js +12 -0
  1513. package/dist/features/stores/components/StoreAddressSelectorCreate.d.ts +16 -0
  1514. package/dist/features/stores/components/StoreAddressSelectorCreate.js +40 -0
  1515. package/dist/features/stores/components/StoreAuctionsView.d.ts +17 -0
  1516. package/dist/features/stores/components/StoreAuctionsView.js +5 -0
  1517. package/dist/features/stores/components/StoreHeader.d.ts +15 -0
  1518. package/dist/features/stores/components/StoreHeader.js +8 -0
  1519. package/dist/features/stores/components/StoreNavTabs.d.ts +15 -0
  1520. package/dist/features/stores/components/StoreNavTabs.js +14 -0
  1521. package/dist/features/stores/components/StoreProductsView.d.ts +30 -0
  1522. package/dist/features/stores/components/StoreProductsView.js +11 -0
  1523. package/dist/features/stores/components/StoreReviewsView.d.ts +17 -0
  1524. package/dist/features/stores/components/StoreReviewsView.js +9 -0
  1525. package/dist/features/stores/components/StoresListView.d.ts +19 -0
  1526. package/dist/features/stores/components/StoresListView.js +24 -0
  1527. package/dist/features/stores/components/index.d.ts +16 -0
  1528. package/dist/features/stores/components/index.js +9 -0
  1529. package/dist/features/stores/hooks/useStoreAddressSelector.d.ts +23 -0
  1530. package/dist/features/stores/hooks/useStoreAddressSelector.js +30 -0
  1531. package/dist/features/stores/hooks/useStores.d.ts +58 -0
  1532. package/dist/features/stores/hooks/useStores.js +96 -0
  1533. package/dist/features/stores/index.d.ts +7 -536
  1534. package/dist/features/stores/index.js +7 -1911
  1535. package/dist/features/stores/manifest.d.ts +2 -0
  1536. package/dist/features/stores/manifest.js +35 -0
  1537. package/dist/features/stores/messages/en.json +21 -0
  1538. package/dist/features/stores/repository/store-address.repository.d.ts +55 -0
  1539. package/dist/features/stores/repository/store-address.repository.js +188 -0
  1540. package/dist/features/stores/repository/store.repository.d.ts +67 -0
  1541. package/dist/features/stores/repository/store.repository.js +181 -0
  1542. package/dist/features/stores/repository/stores.repository.d.ts +11 -0
  1543. package/dist/features/stores/repository/stores.repository.js +34 -0
  1544. package/dist/features/stores/schemas/firestore.d.ts +117 -0
  1545. package/dist/features/stores/schemas/firestore.js +109 -0
  1546. package/dist/features/stores/schemas/index.d.ts +85 -0
  1547. package/dist/features/stores/schemas/index.js +48 -0
  1548. package/dist/features/stores/server.d.ts +12 -103
  1549. package/dist/features/stores/server.js +15 -444
  1550. package/dist/features/stores/types/index.d.ts +102 -0
  1551. package/dist/features/stores/types/index.js +2 -0
  1552. package/dist/features/whatsapp-bot/api/send-status/route.d.ts +12 -0
  1553. package/dist/features/whatsapp-bot/api/send-status/route.js +36 -0
  1554. package/dist/features/whatsapp-bot/api/webhook/route.d.ts +12 -0
  1555. package/dist/features/whatsapp-bot/api/webhook/route.js +41 -0
  1556. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.d.ts +8 -0
  1557. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +7 -0
  1558. package/dist/features/whatsapp-bot/components/index.d.ts +1 -0
  1559. package/dist/features/whatsapp-bot/components/index.js +1 -0
  1560. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +21 -0
  1561. package/dist/features/whatsapp-bot/helpers/whatsapp.js +125 -0
  1562. package/dist/features/whatsapp-bot/index.d.ts +3 -85
  1563. package/dist/features/whatsapp-bot/index.js +3 -154
  1564. package/dist/features/whatsapp-bot/manifest.d.ts +2 -0
  1565. package/dist/features/whatsapp-bot/manifest.js +13 -0
  1566. package/dist/features/whatsapp-bot/messages/en.json +7 -0
  1567. package/dist/features/whatsapp-bot/server.d.ts +7 -0
  1568. package/dist/features/whatsapp-bot/server.js +7 -0
  1569. package/dist/features/whatsapp-bot/types/index.d.ts +50 -0
  1570. package/dist/features/whatsapp-bot/types/index.js +1 -0
  1571. package/dist/features/wishlist/actions/index.d.ts +1 -0
  1572. package/dist/features/wishlist/actions/index.js +1 -0
  1573. package/dist/features/wishlist/actions/wishlist-actions.d.ts +20 -0
  1574. package/dist/features/wishlist/actions/wishlist-actions.js +29 -0
  1575. package/dist/features/wishlist/columns/index.d.ts +17 -0
  1576. package/dist/features/wishlist/columns/index.js +42 -0
  1577. package/dist/features/wishlist/components/WishlistPage.d.ts +16 -0
  1578. package/dist/features/wishlist/components/WishlistPage.js +17 -0
  1579. package/dist/features/wishlist/components/WishlistToggleButton.d.ts +12 -0
  1580. package/dist/features/wishlist/components/WishlistToggleButton.js +21 -0
  1581. package/dist/features/wishlist/components/WishlistView.d.ts +33 -0
  1582. package/dist/features/wishlist/components/WishlistView.js +41 -0
  1583. package/dist/features/wishlist/components/index.d.ts +4 -0
  1584. package/dist/features/wishlist/components/index.js +3 -0
  1585. package/dist/features/wishlist/hooks/useUserWishlist.d.ts +187 -0
  1586. package/dist/features/wishlist/hooks/useUserWishlist.js +17 -0
  1587. package/dist/features/wishlist/hooks/useWishlist.d.ts +16 -0
  1588. package/dist/features/wishlist/hooks/useWishlist.js +23 -0
  1589. package/dist/features/wishlist/hooks/useWishlistToggle.d.ts +10 -0
  1590. package/dist/features/wishlist/hooks/useWishlistToggle.js +32 -0
  1591. package/dist/features/wishlist/index.d.ts +9 -360
  1592. package/dist/features/wishlist/index.js +8 -888
  1593. package/dist/features/wishlist/manifest.d.ts +2 -0
  1594. package/dist/features/wishlist/manifest.js +12 -0
  1595. package/dist/features/wishlist/messages/en.json +7 -0
  1596. package/dist/features/wishlist/repository/user-wishlist.repository.d.ts +14 -0
  1597. package/dist/features/wishlist/repository/user-wishlist.repository.js +91 -0
  1598. package/dist/features/wishlist/repository/wishlist.repository.d.ts +13 -0
  1599. package/dist/features/wishlist/repository/wishlist.repository.js +31 -0
  1600. package/dist/features/wishlist/schemas/index.d.ts +46 -0
  1601. package/dist/features/wishlist/schemas/index.js +24 -0
  1602. package/dist/features/wishlist/server.d.ts +9 -0
  1603. package/dist/features/wishlist/server.js +9 -0
  1604. package/dist/features/wishlist/types/index.d.ts +16 -0
  1605. package/dist/features/wishlist/types/index.js +1 -0
  1606. package/dist/http/ApiClient.d.ts +59 -0
  1607. package/dist/http/ApiClient.js +149 -0
  1608. package/dist/http/api-handler.d.ts +33 -0
  1609. package/dist/http/api-handler.js +89 -0
  1610. package/dist/http/index.d.ts +6 -58
  1611. package/dist/http/index.js +8 -4
  1612. package/dist/index.d.ts +1 -17
  1613. package/dist/index.js +1 -13
  1614. package/dist/instrumentation/index.d.ts +4 -6
  1615. package/dist/instrumentation/index.js +54 -14
  1616. package/dist/monitoring/analytics.d.ts +79 -0
  1617. package/dist/monitoring/analytics.js +171 -0
  1618. package/dist/monitoring/browser.d.ts +10 -0
  1619. package/dist/monitoring/browser.js +6 -0
  1620. package/dist/monitoring/cache-metrics.d.ts +24 -0
  1621. package/dist/monitoring/cache-metrics.js +83 -0
  1622. package/dist/monitoring/client-logger.d.ts +29 -0
  1623. package/dist/monitoring/client-logger.js +127 -0
  1624. package/dist/monitoring/error-tracking.d.ts +50 -0
  1625. package/dist/monitoring/error-tracking.js +54 -0
  1626. package/dist/monitoring/index.d.ts +12 -181
  1627. package/dist/monitoring/index.js +7 -8
  1628. package/dist/monitoring/performance.d.ts +31 -0
  1629. package/dist/monitoring/performance.js +34 -0
  1630. package/dist/monitoring/runtime.d.ts +17 -0
  1631. package/dist/monitoring/runtime.js +28 -0
  1632. package/dist/monitoring/server-logger.d.ts +37 -0
  1633. package/dist/monitoring/server-logger.js +289 -0
  1634. package/dist/next/ErrorBoundary.d.ts +19 -0
  1635. package/dist/next/ErrorBoundary.js +35 -0
  1636. package/dist/next/IAuthVerifier.d.ts +54 -0
  1637. package/dist/next/IAuthVerifier.js +23 -0
  1638. package/dist/next/api/api-response.d.ts +29 -0
  1639. package/dist/next/api/api-response.js +31 -0
  1640. package/dist/next/api/apiHandler.d.ts +48 -0
  1641. package/dist/next/api/apiHandler.js +87 -0
  1642. package/dist/next/api/errorHandler.d.ts +57 -0
  1643. package/dist/next/api/errorHandler.js +72 -0
  1644. package/dist/next/api/routeHandler.d.ts +60 -0
  1645. package/dist/next/api/routeHandler.js +113 -0
  1646. package/dist/next/cache-middleware.d.ts +35 -0
  1647. package/dist/next/cache-middleware.js +77 -0
  1648. package/dist/next/components/ErrorView.d.ts +13 -0
  1649. package/dist/next/components/ErrorView.js +32 -0
  1650. package/dist/next/components/GlobalError.d.ts +7 -0
  1651. package/dist/next/components/GlobalError.js +43 -0
  1652. package/dist/next/components/NotFoundView.d.ts +28 -0
  1653. package/dist/next/components/NotFoundView.js +25 -0
  1654. package/dist/next/components/UnauthorizedView.d.ts +28 -0
  1655. package/dist/next/components/UnauthorizedView.js +22 -0
  1656. package/dist/next/index.d.ts +34 -776
  1657. package/dist/next/index.js +30 -646
  1658. package/dist/next/middleware/chain.d.ts +47 -0
  1659. package/dist/next/middleware/chain.js +80 -0
  1660. package/dist/next/middleware/index.d.ts +6 -0
  1661. package/dist/next/middleware/index.js +3 -0
  1662. package/dist/next/middleware/pii-redactor.d.ts +32 -0
  1663. package/dist/next/middleware/pii-redactor.js +82 -0
  1664. package/dist/next/middleware/pii-scrubber.d.ts +11 -0
  1665. package/dist/next/middleware/pii-scrubber.js +43 -0
  1666. package/dist/next/middleware/types.d.ts +18 -0
  1667. package/dist/next/middleware/types.js +1 -0
  1668. package/dist/next/request-helpers.d.ts +25 -0
  1669. package/dist/next/request-helpers.js +52 -0
  1670. package/dist/next/routing/route-map.d.ts +272 -0
  1671. package/dist/next/routing/route-map.js +202 -0
  1672. package/dist/providers/auth-firebase/browser-stub.d.ts +24 -0
  1673. package/dist/providers/auth-firebase/browser-stub.js +28 -0
  1674. package/dist/providers/auth-firebase/helpers.d.ts +83 -0
  1675. package/dist/providers/auth-firebase/helpers.js +205 -0
  1676. package/dist/providers/auth-firebase/index.d.ts +7 -133
  1677. package/dist/providers/auth-firebase/index.js +16 -370
  1678. package/dist/providers/auth-firebase/provider.d.ts +8 -0
  1679. package/dist/providers/auth-firebase/provider.js +118 -0
  1680. package/dist/providers/auth-firebase/session.d.ts +19 -0
  1681. package/dist/providers/auth-firebase/session.js +86 -0
  1682. package/dist/providers/db-firebase/admin-app-lite.d.ts +6 -0
  1683. package/dist/providers/db-firebase/admin-app-lite.js +50 -0
  1684. package/dist/providers/db-firebase/admin-auth-lite.d.ts +5 -0
  1685. package/dist/providers/db-firebase/admin-auth-lite.js +10 -0
  1686. package/dist/providers/db-firebase/admin-storage-lite.d.ts +6 -0
  1687. package/dist/providers/db-firebase/admin-storage-lite.js +11 -0
  1688. package/dist/providers/db-firebase/admin.d.ts +29 -0
  1689. package/dist/providers/db-firebase/admin.js +163 -0
  1690. package/dist/providers/db-firebase/base.d.ts +44 -0
  1691. package/dist/providers/db-firebase/base.js +180 -0
  1692. package/dist/providers/db-firebase/base.repository.d.ts +34 -0
  1693. package/dist/providers/db-firebase/base.repository.js +235 -0
  1694. package/dist/providers/db-firebase/browser-stub.d.ts +37 -0
  1695. package/dist/providers/db-firebase/browser-stub.js +56 -0
  1696. package/dist/providers/db-firebase/client-config.d.ts +22 -0
  1697. package/dist/providers/db-firebase/client-config.js +30 -0
  1698. package/dist/providers/db-firebase/field-ops.d.ts +7 -0
  1699. package/dist/providers/db-firebase/field-ops.js +13 -0
  1700. package/dist/providers/db-firebase/helpers.d.ts +23 -0
  1701. package/dist/providers/db-firebase/helpers.js +67 -0
  1702. package/dist/providers/db-firebase/index.d.ts +16 -250
  1703. package/dist/providers/db-firebase/index.js +42 -498
  1704. package/dist/providers/db-firebase/realtime.d.ts +43 -0
  1705. package/dist/providers/db-firebase/realtime.js +122 -0
  1706. package/dist/providers/db-firebase/rtdb-paths.d.ts +12 -0
  1707. package/dist/providers/db-firebase/rtdb-paths.js +12 -0
  1708. package/dist/providers/db-firebase/sieve.d.ts +76 -0
  1709. package/dist/providers/db-firebase/sieve.js +83 -0
  1710. package/dist/providers/email-resend/index.d.ts +6 -64
  1711. package/dist/providers/email-resend/index.js +14 -56
  1712. package/dist/providers/email-resend/provider.d.ts +43 -0
  1713. package/dist/providers/email-resend/provider.js +75 -0
  1714. package/dist/providers/firebase-client/auth.d.ts +12 -0
  1715. package/dist/providers/firebase-client/auth.js +30 -0
  1716. package/dist/providers/firebase-client/index.d.ts +9 -0
  1717. package/dist/providers/firebase-client/index.js +9 -0
  1718. package/dist/providers/firebase-client/realtime.d.ts +18 -0
  1719. package/dist/providers/firebase-client/realtime.js +39 -0
  1720. package/dist/providers/payment-razorpay/index.d.ts +66 -69
  1721. package/dist/providers/payment-razorpay/index.js +201 -97
  1722. package/dist/providers/shipping-shiprocket/index.d.ts +69 -33
  1723. package/dist/providers/shipping-shiprocket/index.js +135 -122
  1724. package/dist/providers/shipping-shiprocket/shiprocket-provider.d.ts +46 -0
  1725. package/dist/providers/shipping-shiprocket/shiprocket-provider.js +152 -0
  1726. package/dist/providers/storage-firebase/client.d.ts +56 -0
  1727. package/dist/providers/storage-firebase/client.js +141 -0
  1728. package/dist/providers/storage-firebase/index.d.ts +6 -43
  1729. package/dist/providers/storage-firebase/index.js +16 -153
  1730. package/dist/providers/storage-firebase/provider.d.ts +23 -0
  1731. package/dist/providers/storage-firebase/provider.js +103 -0
  1732. package/dist/react/ErrorBoundary.d.ts +31 -0
  1733. package/dist/react/ErrorBoundary.js +68 -0
  1734. package/dist/react/contexts/SessionContext.d.ts +80 -0
  1735. package/dist/react/contexts/SessionContext.js +350 -0
  1736. package/dist/react/contexts/ThemeContext.d.ts +14 -0
  1737. package/dist/react/contexts/ThemeContext.js +65 -0
  1738. package/dist/react/contexts/index.d.ts +4 -0
  1739. package/dist/react/contexts/index.js +2 -0
  1740. package/dist/react/hooks/useBreakpoint.d.ts +29 -0
  1741. package/dist/react/hooks/useBreakpoint.js +37 -0
  1742. package/dist/react/hooks/useBulkAction.d.ts +65 -0
  1743. package/dist/react/hooks/useBulkAction.js +69 -0
  1744. package/dist/react/hooks/useBulkSelection.d.ts +40 -0
  1745. package/dist/react/hooks/useBulkSelection.js +58 -0
  1746. package/dist/react/hooks/useCamera.d.ts +34 -0
  1747. package/dist/react/hooks/useCamera.js +147 -0
  1748. package/dist/react/hooks/useClickOutside.d.ts +37 -0
  1749. package/dist/react/hooks/useClickOutside.js +57 -0
  1750. package/dist/react/hooks/useContainerGrid.d.ts +39 -0
  1751. package/dist/react/hooks/useContainerGrid.js +47 -0
  1752. package/dist/react/hooks/useCountdown.d.ts +26 -0
  1753. package/dist/react/hooks/useCountdown.js +49 -0
  1754. package/dist/react/hooks/useGesture.d.ts +51 -0
  1755. package/dist/react/hooks/useGesture.js +181 -0
  1756. package/dist/react/hooks/useKeyPress.d.ts +48 -0
  1757. package/dist/react/hooks/useKeyPress.js +62 -0
  1758. package/dist/react/hooks/useLongPress.d.ts +26 -0
  1759. package/dist/react/hooks/useLongPress.js +55 -0
  1760. package/dist/react/hooks/useMediaQuery.d.ts +17 -0
  1761. package/dist/react/hooks/useMediaQuery.js +34 -0
  1762. package/dist/react/hooks/useMessage.d.ts +11 -0
  1763. package/dist/react/hooks/useMessage.js +45 -0
  1764. package/dist/react/hooks/usePendingFilters.d.ts +58 -0
  1765. package/dist/react/hooks/usePendingFilters.js +79 -0
  1766. package/dist/react/hooks/usePendingTable.d.ts +49 -0
  1767. package/dist/react/hooks/usePendingTable.js +45 -0
  1768. package/dist/react/hooks/usePullToRefresh.d.ts +38 -0
  1769. package/dist/react/hooks/usePullToRefresh.js +82 -0
  1770. package/dist/react/hooks/useRealtimeEvent.d.ts +53 -0
  1771. package/dist/react/hooks/useRealtimeEvent.js +124 -0
  1772. package/dist/react/hooks/useSwipe.d.ts +55 -0
  1773. package/dist/react/hooks/useSwipe.js +165 -0
  1774. package/dist/react/hooks/useUnsavedChanges.d.ts +44 -0
  1775. package/dist/react/hooks/useUnsavedChanges.js +55 -0
  1776. package/dist/react/hooks/useUrlTable.d.ts +31 -0
  1777. package/dist/react/hooks/useUrlTable.js +137 -0
  1778. package/dist/react/hooks/useVisibleItems.d.ts +37 -0
  1779. package/dist/react/hooks/useVisibleItems.js +59 -0
  1780. package/dist/react/index.d.ts +49 -787
  1781. package/dist/react/index.js +47 -1665
  1782. package/dist/react/useModalStack.d.ts +33 -0
  1783. package/dist/react/useModalStack.js +61 -0
  1784. package/dist/repositories/index.d.ts +38 -0
  1785. package/dist/repositories/index.js +40 -0
  1786. package/dist/security/authorization.d.ts +24 -0
  1787. package/dist/security/authorization.js +73 -0
  1788. package/dist/security/browser.d.ts +7 -0
  1789. package/dist/security/browser.js +5 -0
  1790. package/dist/security/csp.d.ts +16 -0
  1791. package/dist/security/csp.js +44 -0
  1792. package/dist/security/index.d.ts +11 -309
  1793. package/dist/security/index.js +8 -5
  1794. package/dist/security/pii-encrypt.d.ts +121 -0
  1795. package/dist/security/pii-encrypt.js +351 -0
  1796. package/dist/security/pii-redact.d.ts +20 -0
  1797. package/dist/security/pii-redact.js +129 -0
  1798. package/dist/security/pii-schemas.d.ts +38 -0
  1799. package/dist/security/pii-schemas.js +62 -0
  1800. package/dist/security/rate-limit.d.ts +70 -0
  1801. package/dist/security/rate-limit.js +107 -0
  1802. package/dist/security/rbac/Can.d.ts +31 -0
  1803. package/dist/security/rbac/Can.js +24 -0
  1804. package/dist/security/rbac/default-roles.d.ts +2 -0
  1805. package/dist/security/rbac/default-roles.js +83 -0
  1806. package/dist/security/rbac/hook.d.ts +20 -0
  1807. package/dist/security/rbac/hook.js +30 -0
  1808. package/dist/security/rbac/index.d.ts +8 -0
  1809. package/dist/security/rbac/index.js +6 -0
  1810. package/dist/security/rbac/middleware.d.ts +51 -0
  1811. package/dist/security/rbac/middleware.js +51 -0
  1812. package/dist/security/rbac/resolver.d.ts +5 -0
  1813. package/dist/security/rbac/resolver.js +38 -0
  1814. package/dist/security/rbac/server.d.ts +24 -0
  1815. package/dist/security/rbac/server.js +42 -0
  1816. package/dist/security/rbac/types.d.ts +22 -0
  1817. package/dist/security/rbac/types.js +2 -0
  1818. package/dist/security/settings-encryption.d.ts +5 -0
  1819. package/dist/security/settings-encryption.js +48 -0
  1820. package/dist/seed/actions/demo-seed-actions.d.ts +31 -0
  1821. package/dist/seed/actions/demo-seed-actions.js +36 -0
  1822. package/dist/seed/actions/index.d.ts +1 -0
  1823. package/dist/seed/actions/index.js +1 -0
  1824. package/dist/seed/addresses-seed-data.d.ts +19 -0
  1825. package/dist/seed/addresses-seed-data.js +418 -0
  1826. package/dist/seed/bids-seed-data.d.ts +7 -0
  1827. package/dist/seed/bids-seed-data.js +1168 -0
  1828. package/dist/seed/blog-posts-seed-data.d.ts +7 -0
  1829. package/dist/seed/blog-posts-seed-data.js +215 -0
  1830. package/dist/seed/carousel-slides-seed-data.d.ts +7 -0
  1831. package/dist/seed/carousel-slides-seed-data.js +283 -0
  1832. package/dist/seed/cart-seed-data.d.ts +20 -0
  1833. package/dist/seed/cart-seed-data.js +179 -0
  1834. package/dist/seed/categories-seed-data.d.ts +7 -0
  1835. package/dist/seed/categories-seed-data.js +1220 -0
  1836. package/dist/seed/coupons-seed-data.d.ts +7 -0
  1837. package/dist/seed/coupons-seed-data.js +508 -0
  1838. package/dist/seed/defaults/categories.d.ts +2 -0
  1839. package/dist/seed/defaults/categories.js +12 -0
  1840. package/dist/seed/defaults/faqs.d.ts +2 -0
  1841. package/dist/seed/defaults/faqs.js +40 -0
  1842. package/dist/seed/defaults/homepage-sections.d.ts +2 -0
  1843. package/dist/seed/defaults/homepage-sections.js +59 -0
  1844. package/dist/seed/events-seed-data.d.ts +8 -0
  1845. package/dist/seed/events-seed-data.js +662 -0
  1846. package/dist/seed/factories/address.factory.d.ts +21 -0
  1847. package/dist/seed/factories/address.factory.js +44 -0
  1848. package/dist/seed/factories/bid.factory.d.ts +15 -0
  1849. package/dist/seed/factories/bid.factory.js +33 -0
  1850. package/dist/seed/factories/blog-post.factory.d.ts +15 -0
  1851. package/dist/seed/factories/blog-post.factory.js +22 -0
  1852. package/dist/seed/factories/carousel.factory.d.ts +11 -0
  1853. package/dist/seed/factories/carousel.factory.js +16 -0
  1854. package/dist/seed/factories/cart.factory.d.ts +26 -0
  1855. package/dist/seed/factories/cart.factory.js +35 -0
  1856. package/dist/seed/factories/category.factory.d.ts +11 -0
  1857. package/dist/seed/factories/category.factory.js +16 -0
  1858. package/dist/seed/factories/coupon.factory.d.ts +21 -0
  1859. package/dist/seed/factories/coupon.factory.js +43 -0
  1860. package/dist/seed/factories/faq.factory.d.ts +10 -0
  1861. package/dist/seed/factories/faq.factory.js +15 -0
  1862. package/dist/seed/factories/homepage-section.factory.d.ts +9 -0
  1863. package/dist/seed/factories/homepage-section.factory.js +13 -0
  1864. package/dist/seed/factories/notification.factory.d.ts +17 -0
  1865. package/dist/seed/factories/notification.factory.js +39 -0
  1866. package/dist/seed/factories/order.factory.d.ts +20 -0
  1867. package/dist/seed/factories/order.factory.js +20 -0
  1868. package/dist/seed/factories/payout.factory.d.ts +21 -0
  1869. package/dist/seed/factories/payout.factory.js +38 -0
  1870. package/dist/seed/factories/product.factory.d.ts +27 -0
  1871. package/dist/seed/factories/product.factory.js +111 -0
  1872. package/dist/seed/factories/review.factory.d.ts +14 -0
  1873. package/dist/seed/factories/review.factory.js +52 -0
  1874. package/dist/seed/factories/session.factory.d.ts +15 -0
  1875. package/dist/seed/factories/session.factory.js +31 -0
  1876. package/dist/seed/factories/store.factory.d.ts +23 -0
  1877. package/dist/seed/factories/store.factory.js +46 -0
  1878. package/dist/seed/factories/user.factory.d.ts +19 -0
  1879. package/dist/seed/factories/user.factory.js +55 -0
  1880. package/dist/seed/faq-seed-data.d.ts +47 -0
  1881. package/dist/seed/faq-seed-data.js +2320 -0
  1882. package/dist/seed/firestore-indexes.d.ts +13 -0
  1883. package/dist/seed/firestore-indexes.js +32 -0
  1884. package/dist/seed/homepage-sections-seed-data.d.ts +18 -0
  1885. package/dist/seed/homepage-sections-seed-data.js +339 -0
  1886. package/dist/seed/index.d.ts +68 -397
  1887. package/dist/seed/index.js +49 -1040
  1888. package/dist/seed/notifications-seed-data.d.ts +7 -0
  1889. package/dist/seed/notifications-seed-data.js +494 -0
  1890. package/dist/seed/orders-seed-data.d.ts +7 -0
  1891. package/dist/seed/orders-seed-data.js +578 -0
  1892. package/dist/seed/payouts-seed-data.d.ts +7 -0
  1893. package/dist/seed/payouts-seed-data.js +202 -0
  1894. package/dist/seed/products-seed-data.d.ts +7 -0
  1895. package/dist/seed/products-seed-data.js +2477 -0
  1896. package/dist/seed/reviews-seed-data.d.ts +7 -0
  1897. package/dist/seed/reviews-seed-data.js +618 -0
  1898. package/dist/seed/runner.d.ts +3 -0
  1899. package/dist/seed/runner.js +38 -0
  1900. package/dist/seed/seed-market-config.d.ts +49 -0
  1901. package/dist/seed/seed-market-config.js +198 -0
  1902. package/dist/seed/sessions-seed-data.d.ts +17 -0
  1903. package/dist/seed/sessions-seed-data.js +355 -0
  1904. package/dist/seed/site-settings-seed-data.d.ts +7 -0
  1905. package/dist/seed/site-settings-seed-data.js +236 -0
  1906. package/dist/seed/store-addresses-seed-data.d.ts +19 -0
  1907. package/dist/seed/store-addresses-seed-data.js +106 -0
  1908. package/dist/seed/stores-seed-data.d.ts +14 -0
  1909. package/dist/seed/stores-seed-data.js +127 -0
  1910. package/dist/seed/test-utils.d.ts +49 -0
  1911. package/dist/seed/test-utils.js +107 -0
  1912. package/dist/seed/types.d.ts +33 -0
  1913. package/dist/seed/types.js +1 -0
  1914. package/dist/seed/users-seed-data.d.ts +7 -0
  1915. package/dist/seed/users-seed-data.js +727 -0
  1916. package/dist/seo/index.d.ts +2 -150
  1917. package/dist/seo/index.js +2 -4
  1918. package/dist/seo/json-ld.d.ts +69 -0
  1919. package/dist/seo/json-ld.js +166 -0
  1920. package/dist/seo/metadata.d.ts +77 -0
  1921. package/dist/seo/metadata.js +157 -0
  1922. package/dist/server.d.ts +109 -0
  1923. package/dist/server.js +110 -0
  1924. package/dist/style/tailwind/index.d.ts +5 -7
  1925. package/dist/style/tailwind/index.js +54 -33
  1926. package/dist/style/vanilla/index.d.ts +5 -7
  1927. package/dist/style/vanilla/index.js +45 -33
  1928. package/dist/tokens/index.d.ts +23 -24
  1929. package/dist/tokens/index.js +786 -4
  1930. package/dist/tokens/tokens.css +221 -0
  1931. package/dist/ui/DataTable.d.ts +78 -0
  1932. package/dist/ui/DataTable.js +157 -0
  1933. package/dist/ui/DataTable.style.css +190 -0
  1934. package/dist/ui/animation.helper.d.ts +17 -0
  1935. package/dist/ui/animation.helper.js +17 -0
  1936. package/dist/ui/color.helper.d.ts +12 -0
  1937. package/dist/ui/color.helper.js +31 -0
  1938. package/dist/ui/columns/build-columns.d.ts +21 -0
  1939. package/dist/ui/columns/build-columns.js +33 -0
  1940. package/dist/ui/columns/column-renderers.d.ts +33 -0
  1941. package/dist/ui/columns/column-renderers.js +64 -0
  1942. package/dist/ui/columns/index.d.ts +6 -0
  1943. package/dist/ui/columns/index.js +5 -0
  1944. package/dist/ui/components/Accordion.d.ts +27 -0
  1945. package/dist/ui/components/Accordion.js +57 -0
  1946. package/dist/ui/components/Accordion.style.css +82 -0
  1947. package/dist/ui/components/ActiveFilterChips.d.ts +13 -0
  1948. package/dist/ui/components/ActiveFilterChips.js +9 -0
  1949. package/dist/ui/components/ActiveFilterChips.style.css +66 -0
  1950. package/dist/ui/components/Alert.d.ts +43 -0
  1951. package/dist/ui/components/Alert.js +47 -0
  1952. package/dist/ui/components/Alert.style.css +187 -0
  1953. package/dist/ui/components/Avatar.d.ts +18 -0
  1954. package/dist/ui/components/Avatar.js +42 -0
  1955. package/dist/ui/components/Avatar.style.css +73 -0
  1956. package/dist/ui/components/AvatarDisplay.d.ts +10 -0
  1957. package/dist/ui/components/AvatarDisplay.js +56 -0
  1958. package/dist/ui/components/AvatarDisplay.style.css +46 -0
  1959. package/dist/ui/components/BackgroundRenderer.d.ts +15 -0
  1960. package/dist/ui/components/BackgroundRenderer.js +42 -0
  1961. package/dist/ui/components/BackgroundRenderer.style.css +31 -0
  1962. package/dist/ui/components/Badge.d.ts +33 -0
  1963. package/dist/ui/components/Badge.js +34 -0
  1964. package/dist/ui/components/Badge.style.css +114 -0
  1965. package/dist/ui/components/BaseListingCard.d.ts +39 -0
  1966. package/dist/ui/components/BaseListingCard.js +56 -0
  1967. package/dist/ui/components/BaseListingCard.style.css +84 -0
  1968. package/dist/ui/components/Breadcrumb.d.ts +15 -0
  1969. package/dist/ui/components/Breadcrumb.js +12 -0
  1970. package/dist/ui/components/Breadcrumb.style.css +60 -0
  1971. package/dist/ui/components/BulkActionBar.d.ts +34 -0
  1972. package/dist/ui/components/BulkActionBar.js +86 -0
  1973. package/dist/ui/components/BulkActionBar.style.css +196 -0
  1974. package/dist/ui/components/Button.d.ts +31 -0
  1975. package/dist/ui/components/Button.js +29 -0
  1976. package/dist/ui/components/Button.style.css +160 -0
  1977. package/dist/ui/components/Card.d.ts +21 -0
  1978. package/dist/ui/components/Card.js +51 -0
  1979. package/dist/ui/components/Card.style.css +192 -0
  1980. package/dist/ui/components/Checkbox.d.ts +8 -0
  1981. package/dist/ui/components/Checkbox.js +38 -0
  1982. package/dist/ui/components/Checkbox.style.css +113 -0
  1983. package/dist/ui/components/ConfirmDeleteModal.d.ts +33 -0
  1984. package/dist/ui/components/ConfirmDeleteModal.js +74 -0
  1985. package/dist/ui/components/ConfirmDeleteModal.style.css +89 -0
  1986. package/dist/ui/components/CountdownDisplay.d.ts +14 -0
  1987. package/dist/ui/components/CountdownDisplay.js +50 -0
  1988. package/dist/ui/components/CountdownDisplay.style.css +4 -0
  1989. package/dist/ui/components/DashboardStatsCard.d.ts +15 -0
  1990. package/dist/ui/components/DashboardStatsCard.js +28 -0
  1991. package/dist/ui/components/DashboardStatsCard.style.css +70 -0
  1992. package/dist/ui/components/DescriptionField.d.ts +23 -0
  1993. package/dist/ui/components/DescriptionField.js +28 -0
  1994. package/dist/ui/components/DescriptionField.style.css +36 -0
  1995. package/dist/ui/components/DetailViewShell.d.ts +51 -0
  1996. package/dist/ui/components/DetailViewShell.js +50 -0
  1997. package/dist/ui/components/Div.d.ts +20 -0
  1998. package/dist/ui/components/Div.js +19 -0
  1999. package/dist/ui/components/Div.style.css +6 -0
  2000. package/dist/ui/components/Divider.d.ts +12 -0
  2001. package/dist/ui/components/Divider.js +11 -0
  2002. package/dist/ui/components/Divider.style.css +39 -0
  2003. package/dist/ui/components/Drawer.d.ts +21 -0
  2004. package/dist/ui/components/Drawer.js +72 -0
  2005. package/dist/ui/components/Drawer.style.css +146 -0
  2006. package/dist/ui/components/Dropdown.d.ts +36 -0
  2007. package/dist/ui/components/Dropdown.js +142 -0
  2008. package/dist/ui/components/Dropdown.style.css +112 -0
  2009. package/dist/ui/components/DynamicSelect.d.ts +24 -0
  2010. package/dist/ui/components/DynamicSelect.js +78 -0
  2011. package/dist/ui/components/DynamicSelect.style.css +101 -0
  2012. package/dist/ui/components/EmptyState.d.ts +12 -0
  2013. package/dist/ui/components/EmptyState.js +17 -0
  2014. package/dist/ui/components/EmptyState.style.css +30 -0
  2015. package/dist/ui/components/FilterDrawer.d.ts +16 -0
  2016. package/dist/ui/components/FilterDrawer.js +39 -0
  2017. package/dist/ui/components/FilterDrawer.style.css +61 -0
  2018. package/dist/ui/components/FlowDiagram.d.ts +33 -0
  2019. package/dist/ui/components/FlowDiagram.js +15 -0
  2020. package/dist/ui/components/FlowDiagram.style.css +77 -0
  2021. package/dist/ui/components/Form.d.ts +27 -0
  2022. package/dist/ui/components/Form.js +48 -0
  2023. package/dist/ui/components/Form.style.css +27 -0
  2024. package/dist/ui/components/FormField.d.ts +26 -0
  2025. package/dist/ui/components/FormField.js +25 -0
  2026. package/dist/ui/components/FormField.style.css +30 -0
  2027. package/dist/ui/components/FormGrid.d.ts +46 -0
  2028. package/dist/ui/components/FormGrid.js +42 -0
  2029. package/dist/ui/components/FormGrid.style.css +32 -0
  2030. package/dist/ui/components/HorizontalScroller.d.ts +33 -0
  2031. package/dist/ui/components/HorizontalScroller.js +47 -0
  2032. package/dist/ui/components/HorizontalScroller.style.css +109 -0
  2033. package/dist/ui/components/IconButton.d.ts +32 -0
  2034. package/dist/ui/components/IconButton.js +31 -0
  2035. package/dist/ui/components/IconButton.style.css +103 -0
  2036. package/dist/ui/components/ImageGallery.d.ts +17 -0
  2037. package/dist/ui/components/ImageGallery.js +108 -0
  2038. package/dist/ui/components/ImageGallery.style.css +163 -0
  2039. package/dist/ui/components/ImageLightbox.d.ts +24 -0
  2040. package/dist/ui/components/ImageLightbox.js +61 -0
  2041. package/dist/ui/components/ImageLightbox.style.css +58 -0
  2042. package/dist/ui/components/Input.d.ts +12 -0
  2043. package/dist/ui/components/Input.js +29 -0
  2044. package/dist/ui/components/Input.style.css +28 -0
  2045. package/dist/ui/components/ItemRow.d.ts +10 -0
  2046. package/dist/ui/components/ItemRow.js +7 -0
  2047. package/dist/ui/components/ItemRow.style.css +33 -0
  2048. package/dist/ui/components/Layout.d.ts +282 -0
  2049. package/dist/ui/components/Layout.js +184 -0
  2050. package/dist/ui/components/Layout.style.css +212 -0
  2051. package/dist/ui/components/ListingLayout.d.ts +60 -0
  2052. package/dist/ui/components/ListingLayout.js +121 -0
  2053. package/dist/ui/components/ListingLayout.style.css +527 -0
  2054. package/dist/ui/components/ListingViewShell.d.ts +38 -0
  2055. package/dist/ui/components/ListingViewShell.js +11 -0
  2056. package/dist/ui/components/Menu.d.ts +29 -0
  2057. package/dist/ui/components/Menu.js +19 -0
  2058. package/dist/ui/components/Menu.style.css +6 -0
  2059. package/dist/ui/components/Modal.d.ts +18 -0
  2060. package/dist/ui/components/Modal.js +79 -0
  2061. package/dist/ui/components/Modal.style.css +102 -0
  2062. package/dist/ui/components/Pagination.d.ts +25 -0
  2063. package/dist/ui/components/Pagination.js +56 -0
  2064. package/dist/ui/components/Pagination.style.css +76 -0
  2065. package/dist/ui/components/PasswordStrengthIndicator.d.ts +12 -0
  2066. package/dist/ui/components/PasswordStrengthIndicator.js +35 -0
  2067. package/dist/ui/components/PasswordStrengthIndicator.style.css +56 -0
  2068. package/dist/ui/components/PriceDisplay.d.ts +8 -0
  2069. package/dist/ui/components/PriceDisplay.js +28 -0
  2070. package/dist/ui/components/PriceDisplay.style.css +47 -0
  2071. package/dist/ui/components/Progress.d.ts +23 -0
  2072. package/dist/ui/components/Progress.js +32 -0
  2073. package/dist/ui/components/Progress.style.css +81 -0
  2074. package/dist/ui/components/Radio.d.ts +18 -0
  2075. package/dist/ui/components/Radio.js +64 -0
  2076. package/dist/ui/components/Radio.style.css +155 -0
  2077. package/dist/ui/components/RatingDisplay.d.ts +8 -0
  2078. package/dist/ui/components/RatingDisplay.js +15 -0
  2079. package/dist/ui/components/RatingDisplay.style.css +50 -0
  2080. package/dist/ui/components/ResponsiveView.d.ts +12 -0
  2081. package/dist/ui/components/ResponsiveView.js +9 -0
  2082. package/dist/ui/components/ResponsiveView.style.css +69 -0
  2083. package/dist/ui/components/RoleBadge.d.ts +7 -0
  2084. package/dist/ui/components/RoleBadge.js +21 -0
  2085. package/dist/ui/components/RoleBadge.style.css +7 -0
  2086. package/dist/ui/components/RowActionMenu.d.ts +13 -0
  2087. package/dist/ui/components/RowActionMenu.js +17 -0
  2088. package/dist/ui/components/RowActionMenu.style.css +91 -0
  2089. package/dist/ui/components/SectionTabs.d.ts +19 -0
  2090. package/dist/ui/components/SectionTabs.js +66 -0
  2091. package/dist/ui/components/SectionTabs.style.css +163 -0
  2092. package/dist/ui/components/Select.d.ts +19 -0
  2093. package/dist/ui/components/Select.js +27 -0
  2094. package/dist/ui/components/Select.style.css +177 -0
  2095. package/dist/ui/components/Semantic.d.ts +154 -0
  2096. package/dist/ui/components/Semantic.js +32 -0
  2097. package/dist/ui/components/Semantic.style.css +14 -0
  2098. package/dist/ui/components/SideDrawer.d.ts +28 -0
  2099. package/dist/ui/components/SideDrawer.js +151 -0
  2100. package/dist/ui/components/SideDrawer.style.css +214 -0
  2101. package/dist/ui/components/SideModal.d.ts +25 -0
  2102. package/dist/ui/components/SideModal.js +61 -0
  2103. package/dist/ui/components/SideModal.style.css +77 -0
  2104. package/dist/ui/components/Skeleton.d.ts +14 -0
  2105. package/dist/ui/components/Skeleton.js +22 -0
  2106. package/dist/ui/components/Skeleton.style.css +55 -0
  2107. package/dist/ui/components/SkipToMain.d.ts +6 -0
  2108. package/dist/ui/components/SkipToMain.js +6 -0
  2109. package/dist/ui/components/SkipToMain.style.css +34 -0
  2110. package/dist/ui/components/Slider.d.ts +17 -0
  2111. package/dist/ui/components/Slider.js +38 -0
  2112. package/dist/ui/components/Slider.style.css +17 -0
  2113. package/dist/ui/components/SlottedListingView.d.ts +62 -0
  2114. package/dist/ui/components/SlottedListingView.js +41 -0
  2115. package/dist/ui/components/SortDropdown.d.ts +15 -0
  2116. package/dist/ui/components/SortDropdown.js +8 -0
  2117. package/dist/ui/components/SortDropdown.style.css +12 -0
  2118. package/dist/ui/components/Spinner.d.ts +13 -0
  2119. package/dist/ui/components/Spinner.js +15 -0
  2120. package/dist/ui/components/Spinner.style.css +76 -0
  2121. package/dist/ui/components/StackedViewShell.d.ts +50 -0
  2122. package/dist/ui/components/StackedViewShell.js +39 -0
  2123. package/dist/ui/components/StarRating.d.ts +17 -0
  2124. package/dist/ui/components/StarRating.js +29 -0
  2125. package/dist/ui/components/StarRating.style.css +44 -0
  2126. package/dist/ui/components/StatsGrid.d.ts +18 -0
  2127. package/dist/ui/components/StatsGrid.js +17 -0
  2128. package/dist/ui/components/StatsGrid.style.css +96 -0
  2129. package/dist/ui/components/StatusBadge.d.ts +18 -0
  2130. package/dist/ui/components/StatusBadge.js +60 -0
  2131. package/dist/ui/components/StatusBadge.style.css +5 -0
  2132. package/dist/ui/components/StepperNav.d.ts +10 -0
  2133. package/dist/ui/components/StepperNav.js +23 -0
  2134. package/dist/ui/components/StepperNav.style.css +110 -0
  2135. package/dist/ui/components/SummaryCard.d.ts +21 -0
  2136. package/dist/ui/components/SummaryCard.js +15 -0
  2137. package/dist/ui/components/SummaryCard.style.css +82 -0
  2138. package/dist/ui/components/TabStrip.d.ts +34 -0
  2139. package/dist/ui/components/TabStrip.js +57 -0
  2140. package/dist/ui/components/TabStrip.style.css +97 -0
  2141. package/dist/ui/components/TablePagination.d.ts +21 -0
  2142. package/dist/ui/components/TablePagination.js +32 -0
  2143. package/dist/ui/components/TablePagination.style.css +89 -0
  2144. package/dist/ui/components/Tabs.d.ts +28 -0
  2145. package/dist/ui/components/Tabs.js +41 -0
  2146. package/dist/ui/components/Tabs.style.css +46 -0
  2147. package/dist/ui/components/TagInput.d.ts +10 -0
  2148. package/dist/ui/components/TagInput.js +60 -0
  2149. package/dist/ui/components/TagInput.style.css +121 -0
  2150. package/dist/ui/components/TextLink.d.ts +42 -0
  2151. package/dist/ui/components/TextLink.js +48 -0
  2152. package/dist/ui/components/TextLink.style.css +94 -0
  2153. package/dist/ui/components/Textarea.d.ts +9 -0
  2154. package/dist/ui/components/Textarea.js +21 -0
  2155. package/dist/ui/components/Textarea.style.css +30 -0
  2156. package/dist/ui/components/Toast.d.ts +15 -0
  2157. package/dist/ui/components/Toast.js +61 -0
  2158. package/dist/ui/components/Toast.style.css +114 -0
  2159. package/dist/ui/components/Toggle.d.ts +12 -0
  2160. package/dist/ui/components/Toggle.js +47 -0
  2161. package/dist/ui/components/Toggle.style.css +107 -0
  2162. package/dist/ui/components/Tooltip.d.ts +34 -0
  2163. package/dist/ui/components/Tooltip.js +110 -0
  2164. package/dist/ui/components/Tooltip.style.css +114 -0
  2165. package/dist/ui/components/Typography.d.ts +50 -0
  2166. package/dist/ui/components/Typography.js +103 -0
  2167. package/dist/ui/components/Typography.style.css +178 -0
  2168. package/dist/ui/components/UnsavedChangesModal.d.ts +17 -0
  2169. package/dist/ui/components/UnsavedChangesModal.js +52 -0
  2170. package/dist/ui/components/UnsavedChangesModal.style.css +33 -0
  2171. package/dist/ui/components/ViewToggle.d.ts +15 -0
  2172. package/dist/ui/components/ViewToggle.js +29 -0
  2173. package/dist/ui/components/ViewToggle.style.css +50 -0
  2174. package/dist/ui/components/index.style.css +76 -0
  2175. package/dist/ui/index.d.ts +165 -1644
  2176. package/dist/ui/index.js +87 -4784
  2177. package/dist/ui/rich-text/RichText.d.ts +46 -0
  2178. package/dist/ui/rich-text/RichText.js +172 -0
  2179. package/dist/ui/rich-text/RichText.style.css +5 -0
  2180. package/dist/ui/rich-text/index.d.ts +2 -0
  2181. package/dist/ui/rich-text/index.js +1 -0
  2182. package/dist/ui/style.helper.d.ts +7 -0
  2183. package/dist/ui/style.helper.js +12 -0
  2184. package/dist/utils/animation.helper.d.ts +19 -0
  2185. package/dist/utils/animation.helper.js +19 -0
  2186. package/dist/utils/array.helper.d.ts +17 -0
  2187. package/dist/utils/array.helper.js +53 -0
  2188. package/dist/utils/business-day.d.ts +47 -0
  2189. package/dist/utils/business-day.js +68 -0
  2190. package/dist/utils/client.d.ts +1 -0
  2191. package/dist/utils/client.js +1 -0
  2192. package/dist/utils/color.helper.d.ts +32 -0
  2193. package/dist/utils/color.helper.js +51 -0
  2194. package/dist/utils/cookie.converter.d.ts +7 -0
  2195. package/dist/utils/cookie.converter.js +32 -0
  2196. package/dist/utils/date.formatter.d.ts +22 -0
  2197. package/dist/utils/date.formatter.js +194 -0
  2198. package/dist/utils/event-manager.d.ts +45 -0
  2199. package/dist/utils/event-manager.js +185 -0
  2200. package/dist/utils/filter.helper.d.ts +18 -0
  2201. package/dist/utils/filter.helper.js +21 -0
  2202. package/dist/utils/id-generators.d.ts +243 -0
  2203. package/dist/utils/id-generators.js +360 -0
  2204. package/dist/utils/index.d.ts +17 -545
  2205. package/dist/utils/index.js +18 -4
  2206. package/dist/utils/media-field.d.ts +2 -0
  2207. package/dist/utils/media-field.js +1 -0
  2208. package/dist/utils/number.formatter.d.ts +13 -0
  2209. package/dist/utils/number.formatter.js +100 -0
  2210. package/dist/utils/object.helper.d.ts +16 -0
  2211. package/dist/utils/object.helper.js +82 -0
  2212. package/dist/utils/pagination.helper.d.ts +23 -0
  2213. package/dist/utils/pagination.helper.js +24 -0
  2214. package/dist/utils/schema-ui.d.ts +83 -0
  2215. package/dist/utils/schema-ui.js +185 -0
  2216. package/dist/utils/sorting.helper.d.ts +7 -0
  2217. package/dist/utils/sorting.helper.js +16 -0
  2218. package/dist/utils/string.formatter.d.ts +19 -0
  2219. package/dist/utils/string.formatter.js +140 -0
  2220. package/dist/utils/type.converter.d.ts +14 -0
  2221. package/dist/utils/type.converter.js +61 -0
  2222. package/dist/validation/ZodSetup.d.ts +5 -0
  2223. package/dist/validation/ZodSetup.js +11 -0
  2224. package/dist/validation/email.validator.d.ts +7 -0
  2225. package/dist/validation/email.validator.js +33 -0
  2226. package/dist/validation/index.d.ts +9 -126
  2227. package/dist/validation/index.js +8 -4
  2228. package/dist/validation/input.validator.d.ts +11 -0
  2229. package/dist/validation/input.validator.js +33 -0
  2230. package/dist/validation/password.validator.d.ts +21 -0
  2231. package/dist/validation/password.validator.js +77 -0
  2232. package/dist/validation/phone.validator.d.ts +9 -0
  2233. package/dist/validation/phone.validator.js +41 -0
  2234. package/dist/validation/schemas.d.ts +267 -0
  2235. package/dist/validation/schemas.js +176 -0
  2236. package/dist/validation/url.validator.d.ts +7 -0
  2237. package/dist/validation/url.validator.js +44 -0
  2238. package/dist/validation/zod-error-map.d.ts +17 -0
  2239. package/dist/validation/zod-error-map.js +85 -0
  2240. package/dist/values/index.d.ts +6 -0
  2241. package/dist/values/index.js +6 -0
  2242. package/dist/values/success-messages.d.ts +242 -0
  2243. package/dist/values/success-messages.js +272 -0
  2244. package/package.json +87 -445
  2245. package/dist/chunk-2NMEKWO5.js +0 -35
  2246. package/dist/chunk-2NMEKWO5.js.map +0 -1
  2247. package/dist/chunk-6344OTT4.js +0 -329
  2248. package/dist/chunk-6344OTT4.js.map +0 -1
  2249. package/dist/chunk-7HUFI4MW.cjs +0 -941
  2250. package/dist/chunk-7HUFI4MW.cjs.map +0 -1
  2251. package/dist/chunk-AZ2XDBYA.cjs +0 -150
  2252. package/dist/chunk-AZ2XDBYA.cjs.map +0 -1
  2253. package/dist/chunk-CI4ZFLS7.js +0 -1162
  2254. package/dist/chunk-CI4ZFLS7.js.map +0 -1
  2255. package/dist/chunk-DSCHV5OD.js +0 -620
  2256. package/dist/chunk-DSCHV5OD.js.map +0 -1
  2257. package/dist/chunk-EEMSMWIZ.js +0 -566
  2258. package/dist/chunk-EEMSMWIZ.js.map +0 -1
  2259. package/dist/chunk-EPJNBIKL.js +0 -916
  2260. package/dist/chunk-EPJNBIKL.js.map +0 -1
  2261. package/dist/chunk-FJEY6LN2.cjs +0 -64
  2262. package/dist/chunk-FJEY6LN2.cjs.map +0 -1
  2263. package/dist/chunk-GZXXRVTM.cjs +0 -343
  2264. package/dist/chunk-GZXXRVTM.cjs.map +0 -1
  2265. package/dist/chunk-IE5L2QHV.js +0 -204
  2266. package/dist/chunk-IE5L2QHV.js.map +0 -1
  2267. package/dist/chunk-JPHORBTI.cjs +0 -366
  2268. package/dist/chunk-JPHORBTI.cjs.map +0 -1
  2269. package/dist/chunk-K4C5Z22R.js +0 -146
  2270. package/dist/chunk-K4C5Z22R.js.map +0 -1
  2271. package/dist/chunk-PAHR3D5L.js +0 -56
  2272. package/dist/chunk-PAHR3D5L.js.map +0 -1
  2273. package/dist/chunk-PE44UBFV.js +0 -324
  2274. package/dist/chunk-PE44UBFV.js.map +0 -1
  2275. package/dist/chunk-RNELVIKK.cjs +0 -1287
  2276. package/dist/chunk-RNELVIKK.cjs.map +0 -1
  2277. package/dist/chunk-S367Y35J.cjs +0 -39
  2278. package/dist/chunk-S367Y35J.cjs.map +0 -1
  2279. package/dist/chunk-ULLW73KN.cjs +0 -217
  2280. package/dist/chunk-ULLW73KN.cjs.map +0 -1
  2281. package/dist/chunk-UNYFAUWW.cjs +0 -630
  2282. package/dist/chunk-UNYFAUWW.cjs.map +0 -1
  2283. package/dist/chunk-V55QYTXF.js +0 -259
  2284. package/dist/chunk-V55QYTXF.js.map +0 -1
  2285. package/dist/chunk-WKVCFDEA.cjs +0 -599
  2286. package/dist/chunk-WKVCFDEA.cjs.map +0 -1
  2287. package/dist/chunk-YT4QVIBP.cjs +0 -292
  2288. package/dist/chunk-YT4QVIBP.cjs.map +0 -1
  2289. package/dist/cli/index.cjs +0 -155
  2290. package/dist/cli/index.cjs.map +0 -1
  2291. package/dist/cli/index.d.cts +0 -41
  2292. package/dist/cli/index.js.map +0 -1
  2293. package/dist/contracts/index.cjs +0 -37
  2294. package/dist/contracts/index.cjs.map +0 -1
  2295. package/dist/contracts/index.d.cts +0 -728
  2296. package/dist/contracts/index.js.map +0 -1
  2297. package/dist/core/index.cjs +0 -84
  2298. package/dist/core/index.cjs.map +0 -1
  2299. package/dist/core/index.d.cts +0 -329
  2300. package/dist/core/index.js.map +0 -1
  2301. package/dist/errors/index.cjs +0 -57
  2302. package/dist/errors/index.cjs.map +0 -1
  2303. package/dist/errors/index.d.cts +0 -96
  2304. package/dist/errors/index.js.map +0 -1
  2305. package/dist/extend-D57fwPSu.d.cts +0 -122
  2306. package/dist/extend-D57fwPSu.d.ts +0 -122
  2307. package/dist/extend-D_0wzsse.d.cts +0 -79
  2308. package/dist/extend-D_0wzsse.d.ts +0 -79
  2309. package/dist/extend-jcOQfU2G.d.cts +0 -162
  2310. package/dist/extend-jcOQfU2G.d.ts +0 -162
  2311. package/dist/feature-C8mVv66I.d.cts +0 -84
  2312. package/dist/feature-C8mVv66I.d.ts +0 -84
  2313. package/dist/feature-DENiK3vd.d.cts +0 -55
  2314. package/dist/feature-DENiK3vd.d.ts +0 -55
  2315. package/dist/feature-RWXQ_lnf.d.cts +0 -41
  2316. package/dist/feature-RWXQ_lnf.d.ts +0 -41
  2317. package/dist/features/about/index.cjs +0 -286
  2318. package/dist/features/about/index.cjs.map +0 -1
  2319. package/dist/features/about/index.d.cts +0 -42
  2320. package/dist/features/about/index.js.map +0 -1
  2321. package/dist/features/account/index.cjs +0 -1032
  2322. package/dist/features/account/index.cjs.map +0 -1
  2323. package/dist/features/account/index.d.cts +0 -555
  2324. package/dist/features/account/index.js.map +0 -1
  2325. package/dist/features/admin/index.cjs +0 -2747
  2326. package/dist/features/admin/index.cjs.map +0 -1
  2327. package/dist/features/admin/index.d.cts +0 -554
  2328. package/dist/features/admin/index.js.map +0 -1
  2329. package/dist/features/auctions/index.cjs +0 -1219
  2330. package/dist/features/auctions/index.cjs.map +0 -1
  2331. package/dist/features/auctions/index.d.cts +0 -513
  2332. package/dist/features/auctions/index.js.map +0 -1
  2333. package/dist/features/auth/index.cjs +0 -1897
  2334. package/dist/features/auth/index.cjs.map +0 -1
  2335. package/dist/features/auth/index.d.cts +0 -315
  2336. package/dist/features/auth/index.js.map +0 -1
  2337. package/dist/features/auth/server.cjs +0 -531
  2338. package/dist/features/auth/server.cjs.map +0 -1
  2339. package/dist/features/auth/server.d.cts +0 -24
  2340. package/dist/features/auth/server.js.map +0 -1
  2341. package/dist/features/before-after/index.cjs +0 -559
  2342. package/dist/features/before-after/index.cjs.map +0 -1
  2343. package/dist/features/before-after/index.d.cts +0 -128
  2344. package/dist/features/before-after/index.js.map +0 -1
  2345. package/dist/features/blog/index.cjs +0 -4088
  2346. package/dist/features/blog/index.cjs.map +0 -1
  2347. package/dist/features/blog/index.d.cts +0 -492
  2348. package/dist/features/blog/index.js.map +0 -1
  2349. package/dist/features/blog/server.cjs +0 -184
  2350. package/dist/features/blog/server.cjs.map +0 -1
  2351. package/dist/features/blog/server.d.cts +0 -74
  2352. package/dist/features/blog/server.js.map +0 -1
  2353. package/dist/features/cart/index.cjs +0 -1097
  2354. package/dist/features/cart/index.cjs.map +0 -1
  2355. package/dist/features/cart/index.d.cts +0 -451
  2356. package/dist/features/cart/index.js.map +0 -1
  2357. package/dist/features/categories/index.cjs +0 -2062
  2358. package/dist/features/categories/index.cjs.map +0 -1
  2359. package/dist/features/categories/index.d.cts +0 -461
  2360. package/dist/features/categories/index.js.map +0 -1
  2361. package/dist/features/categories/server.cjs +0 -796
  2362. package/dist/features/categories/server.cjs.map +0 -1
  2363. package/dist/features/categories/server.d.cts +0 -47
  2364. package/dist/features/categories/server.js.map +0 -1
  2365. package/dist/features/checkout/index.cjs +0 -200
  2366. package/dist/features/checkout/index.cjs.map +0 -1
  2367. package/dist/features/checkout/index.d.cts +0 -70
  2368. package/dist/features/checkout/index.js.map +0 -1
  2369. package/dist/features/cms/index.cjs +0 -5
  2370. package/dist/features/cms/index.cjs.map +0 -1
  2371. package/dist/features/cms/index.d.cts +0 -2
  2372. package/dist/features/cms/index.js.map +0 -1
  2373. package/dist/features/collections/index.cjs +0 -394
  2374. package/dist/features/collections/index.cjs.map +0 -1
  2375. package/dist/features/collections/index.d.cts +0 -148
  2376. package/dist/features/collections/index.js.map +0 -1
  2377. package/dist/features/consultation/index.cjs +0 -1099
  2378. package/dist/features/consultation/index.cjs.map +0 -1
  2379. package/dist/features/consultation/index.d.cts +0 -172
  2380. package/dist/features/consultation/index.js.map +0 -1
  2381. package/dist/features/contact/index.cjs +0 -593
  2382. package/dist/features/contact/index.cjs.map +0 -1
  2383. package/dist/features/contact/index.d.cts +0 -56
  2384. package/dist/features/contact/index.js.map +0 -1
  2385. package/dist/features/copilot/index.cjs +0 -688
  2386. package/dist/features/copilot/index.cjs.map +0 -1
  2387. package/dist/features/copilot/index.d.cts +0 -47
  2388. package/dist/features/copilot/index.js.map +0 -1
  2389. package/dist/features/corporate/index.cjs +0 -796
  2390. package/dist/features/corporate/index.cjs.map +0 -1
  2391. package/dist/features/corporate/index.d.cts +0 -183
  2392. package/dist/features/corporate/index.js.map +0 -1
  2393. package/dist/features/events/index.cjs +0 -1486
  2394. package/dist/features/events/index.cjs.map +0 -1
  2395. package/dist/features/events/index.d.cts +0 -841
  2396. package/dist/features/events/index.js.map +0 -1
  2397. package/dist/features/events/server.cjs +0 -199
  2398. package/dist/features/events/server.cjs.map +0 -1
  2399. package/dist/features/events/server.d.cts +0 -40
  2400. package/dist/features/events/server.js.map +0 -1
  2401. package/dist/features/faq/index.cjs +0 -1714
  2402. package/dist/features/faq/index.cjs.map +0 -1
  2403. package/dist/features/faq/index.d.cts +0 -619
  2404. package/dist/features/faq/index.js.map +0 -1
  2405. package/dist/features/filters/index.cjs +0 -1073
  2406. package/dist/features/filters/index.cjs.map +0 -1
  2407. package/dist/features/filters/index.d.cts +0 -136
  2408. package/dist/features/filters/index.js.map +0 -1
  2409. package/dist/features/forms/index.cjs +0 -936
  2410. package/dist/features/forms/index.cjs.map +0 -1
  2411. package/dist/features/forms/index.d.cts +0 -129
  2412. package/dist/features/forms/index.js.map +0 -1
  2413. package/dist/features/homepage/index.cjs +0 -6321
  2414. package/dist/features/homepage/index.cjs.map +0 -1
  2415. package/dist/features/homepage/index.d.cts +0 -846
  2416. package/dist/features/homepage/index.js.map +0 -1
  2417. package/dist/features/homepage/server.cjs +0 -1038
  2418. package/dist/features/homepage/server.cjs.map +0 -1
  2419. package/dist/features/homepage/server.d.cts +0 -121
  2420. package/dist/features/homepage/server.js.map +0 -1
  2421. package/dist/features/layout/index.cjs +0 -1766
  2422. package/dist/features/layout/index.cjs.map +0 -1
  2423. package/dist/features/layout/index.d.cts +0 -315
  2424. package/dist/features/layout/index.js.map +0 -1
  2425. package/dist/features/loyalty/index.cjs +0 -352
  2426. package/dist/features/loyalty/index.cjs.map +0 -1
  2427. package/dist/features/loyalty/index.d.cts +0 -174
  2428. package/dist/features/loyalty/index.js.map +0 -1
  2429. package/dist/features/media/index.cjs +0 -3620
  2430. package/dist/features/media/index.cjs.map +0 -1
  2431. package/dist/features/media/index.d.cts +0 -425
  2432. package/dist/features/media/index.js.map +0 -1
  2433. package/dist/features/orders/index.cjs +0 -882
  2434. package/dist/features/orders/index.cjs.map +0 -1
  2435. package/dist/features/orders/index.d.cts +0 -370
  2436. package/dist/features/orders/index.js.map +0 -1
  2437. package/dist/features/payments/index.cjs +0 -341
  2438. package/dist/features/payments/index.cjs.map +0 -1
  2439. package/dist/features/payments/index.d.cts +0 -141
  2440. package/dist/features/payments/index.js.map +0 -1
  2441. package/dist/features/pre-orders/index.cjs +0 -558
  2442. package/dist/features/pre-orders/index.cjs.map +0 -1
  2443. package/dist/features/pre-orders/index.d.cts +0 -170
  2444. package/dist/features/pre-orders/index.js.map +0 -1
  2445. package/dist/features/pre-orders/server.cjs +0 -111
  2446. package/dist/features/pre-orders/server.cjs.map +0 -1
  2447. package/dist/features/pre-orders/server.d.cts +0 -17
  2448. package/dist/features/pre-orders/server.js.map +0 -1
  2449. package/dist/features/products/index.cjs +0 -2513
  2450. package/dist/features/products/index.cjs.map +0 -1
  2451. package/dist/features/products/index.d.cts +0 -1066
  2452. package/dist/features/products/index.js.map +0 -1
  2453. package/dist/features/products/server.cjs +0 -809
  2454. package/dist/features/products/server.cjs.map +0 -1
  2455. package/dist/features/products/server.d.cts +0 -52
  2456. package/dist/features/products/server.js.map +0 -1
  2457. package/dist/features/promotions/index.cjs +0 -977
  2458. package/dist/features/promotions/index.cjs.map +0 -1
  2459. package/dist/features/promotions/index.d.cts +0 -301
  2460. package/dist/features/promotions/index.js.map +0 -1
  2461. package/dist/features/reviews/index.cjs +0 -2324
  2462. package/dist/features/reviews/index.cjs.map +0 -1
  2463. package/dist/features/reviews/index.d.cts +0 -434
  2464. package/dist/features/reviews/index.js.map +0 -1
  2465. package/dist/features/reviews/server.cjs +0 -776
  2466. package/dist/features/reviews/server.cjs.map +0 -1
  2467. package/dist/features/reviews/server.d.cts +0 -49
  2468. package/dist/features/reviews/server.js.map +0 -1
  2469. package/dist/features/search/index.cjs +0 -1368
  2470. package/dist/features/search/index.cjs.map +0 -1
  2471. package/dist/features/search/index.d.cts +0 -298
  2472. package/dist/features/search/index.js.map +0 -1
  2473. package/dist/features/search/server.cjs +0 -154
  2474. package/dist/features/search/server.cjs.map +0 -1
  2475. package/dist/features/search/server.d.cts +0 -83
  2476. package/dist/features/search/server.js.map +0 -1
  2477. package/dist/features/seller/index.cjs +0 -2086
  2478. package/dist/features/seller/index.cjs.map +0 -1
  2479. package/dist/features/seller/index.d.cts +0 -926
  2480. package/dist/features/seller/index.js.map +0 -1
  2481. package/dist/features/stores/index.cjs +0 -1942
  2482. package/dist/features/stores/index.cjs.map +0 -1
  2483. package/dist/features/stores/index.d.cts +0 -536
  2484. package/dist/features/stores/index.js.map +0 -1
  2485. package/dist/features/stores/server.cjs +0 -451
  2486. package/dist/features/stores/server.cjs.map +0 -1
  2487. package/dist/features/stores/server.d.cts +0 -106
  2488. package/dist/features/stores/server.js.map +0 -1
  2489. package/dist/features/whatsapp-bot/index.cjs +0 -168
  2490. package/dist/features/whatsapp-bot/index.cjs.map +0 -1
  2491. package/dist/features/whatsapp-bot/index.d.cts +0 -85
  2492. package/dist/features/whatsapp-bot/index.js.map +0 -1
  2493. package/dist/features/wishlist/index.cjs +0 -904
  2494. package/dist/features/wishlist/index.cjs.map +0 -1
  2495. package/dist/features/wishlist/index.d.cts +0 -360
  2496. package/dist/features/wishlist/index.js.map +0 -1
  2497. package/dist/http/index.cjs +0 -21
  2498. package/dist/http/index.cjs.map +0 -1
  2499. package/dist/http/index.d.cts +0 -61
  2500. package/dist/http/index.js.map +0 -1
  2501. package/dist/index-B6T9NNcG.d.cts +0 -9
  2502. package/dist/index-B6T9NNcG.d.ts +0 -9
  2503. package/dist/index-CakUKzrE.d.cts +0 -10
  2504. package/dist/index-CakUKzrE.d.ts +0 -10
  2505. package/dist/index-D0Fxv9Z8.d.cts +0 -32
  2506. package/dist/index-D0Fxv9Z8.d.ts +0 -32
  2507. package/dist/index-Dh42RtMY.d.cts +0 -54
  2508. package/dist/index-Dh42RtMY.d.ts +0 -54
  2509. package/dist/index.cjs +0 -1182
  2510. package/dist/index.cjs.map +0 -1
  2511. package/dist/index.d.cts +0 -17
  2512. package/dist/index.js.map +0 -1
  2513. package/dist/instrumentation/index.cjs +0 -17
  2514. package/dist/instrumentation/index.cjs.map +0 -1
  2515. package/dist/instrumentation/index.d.cts +0 -66
  2516. package/dist/instrumentation/index.js.map +0 -1
  2517. package/dist/monitoring/index.cjs +0 -141
  2518. package/dist/monitoring/index.cjs.map +0 -1
  2519. package/dist/monitoring/index.d.cts +0 -181
  2520. package/dist/monitoring/index.js.map +0 -1
  2521. package/dist/next/index.cjs +0 -693
  2522. package/dist/next/index.cjs.map +0 -1
  2523. package/dist/next/index.d.cts +0 -777
  2524. package/dist/next/index.js.map +0 -1
  2525. package/dist/providers/auth-firebase/index.cjs +0 -400
  2526. package/dist/providers/auth-firebase/index.cjs.map +0 -1
  2527. package/dist/providers/auth-firebase/index.d.cts +0 -137
  2528. package/dist/providers/auth-firebase/index.js.map +0 -1
  2529. package/dist/providers/db-firebase/index.cjs +0 -533
  2530. package/dist/providers/db-firebase/index.cjs.map +0 -1
  2531. package/dist/providers/db-firebase/index.d.cts +0 -265
  2532. package/dist/providers/db-firebase/index.js.map +0 -1
  2533. package/dist/providers/email-resend/index.cjs +0 -58
  2534. package/dist/providers/email-resend/index.cjs.map +0 -1
  2535. package/dist/providers/email-resend/index.d.cts +0 -73
  2536. package/dist/providers/email-resend/index.js.map +0 -1
  2537. package/dist/providers/payment-razorpay/index.cjs +0 -111
  2538. package/dist/providers/payment-razorpay/index.cjs.map +0 -1
  2539. package/dist/providers/payment-razorpay/index.d.cts +0 -96
  2540. package/dist/providers/payment-razorpay/index.js.map +0 -1
  2541. package/dist/providers/search-algolia/index.cjs +0 -301
  2542. package/dist/providers/search-algolia/index.cjs.map +0 -1
  2543. package/dist/providers/search-algolia/index.d.cts +0 -251
  2544. package/dist/providers/search-algolia/index.d.ts +0 -251
  2545. package/dist/providers/search-algolia/index.js +0 -280
  2546. package/dist/providers/search-algolia/index.js.map +0 -1
  2547. package/dist/providers/shipping-shiprocket/index.cjs +0 -147
  2548. package/dist/providers/shipping-shiprocket/index.cjs.map +0 -1
  2549. package/dist/providers/shipping-shiprocket/index.d.cts +0 -236
  2550. package/dist/providers/shipping-shiprocket/index.js.map +0 -1
  2551. package/dist/providers/storage-firebase/index.cjs +0 -176
  2552. package/dist/providers/storage-firebase/index.cjs.map +0 -1
  2553. package/dist/providers/storage-firebase/index.d.cts +0 -53
  2554. package/dist/providers/storage-firebase/index.js.map +0 -1
  2555. package/dist/react/index.cjs +0 -1687
  2556. package/dist/react/index.cjs.map +0 -1
  2557. package/dist/react/index.d.cts +0 -788
  2558. package/dist/react/index.js.map +0 -1
  2559. package/dist/repository-BO60jtdT.d.cts +0 -61
  2560. package/dist/repository-BO60jtdT.d.ts +0 -61
  2561. package/dist/repository-jKU_Ji1P.d.cts +0 -44
  2562. package/dist/repository-jKU_Ji1P.d.ts +0 -44
  2563. package/dist/security/index.cjs +0 -138
  2564. package/dist/security/index.cjs.map +0 -1
  2565. package/dist/security/index.d.cts +0 -309
  2566. package/dist/security/index.js.map +0 -1
  2567. package/dist/seed/index.cjs +0 -1085
  2568. package/dist/seed/index.cjs.map +0 -1
  2569. package/dist/seed/index.d.cts +0 -397
  2570. package/dist/seed/index.js.map +0 -1
  2571. package/dist/seo/index.cjs +0 -81
  2572. package/dist/seo/index.cjs.map +0 -1
  2573. package/dist/seo/index.d.cts +0 -150
  2574. package/dist/seo/index.js.map +0 -1
  2575. package/dist/style/tailwind/index.cjs +0 -40
  2576. package/dist/style/tailwind/index.cjs.map +0 -1
  2577. package/dist/style/tailwind/index.d.cts +0 -34
  2578. package/dist/style/tailwind/index.js.map +0 -1
  2579. package/dist/style/vanilla/index.cjs +0 -40
  2580. package/dist/style/vanilla/index.cjs.map +0 -1
  2581. package/dist/style/vanilla/index.d.cts +0 -26
  2582. package/dist/style/vanilla/index.js.map +0 -1
  2583. package/dist/style-BSlM-eWG.d.cts +0 -25
  2584. package/dist/style-BSlM-eWG.d.ts +0 -25
  2585. package/dist/tokens/index.cjs +0 -45
  2586. package/dist/tokens/index.cjs.map +0 -1
  2587. package/dist/tokens/index.d.cts +0 -734
  2588. package/dist/tokens/index.js.map +0 -1
  2589. package/dist/ui/index.cjs +0 -4870
  2590. package/dist/ui/index.cjs.map +0 -1
  2591. package/dist/ui/index.d.cts +0 -1644
  2592. package/dist/ui/index.js.map +0 -1
  2593. package/dist/utils/index.cjs +0 -505
  2594. package/dist/utils/index.cjs.map +0 -1
  2595. package/dist/utils/index.d.cts +0 -545
  2596. package/dist/utils/index.js.map +0 -1
  2597. package/dist/validation/index.cjs +0 -153
  2598. package/dist/validation/index.cjs.map +0 -1
  2599. package/dist/validation/index.d.cts +0 -126
  2600. package/dist/validation/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/errors/base-error.ts","../../src/errors/error-codes.ts","../../src/errors/api-error.ts","../../src/errors/validation-error.ts","../../src/errors/authentication-error.ts","../../src/errors/authorization-error.ts","../../src/errors/not-found-error.ts","../../src/errors/database-error.ts","../../src/errors/error-handler.ts","../../src/errors/index.ts","../../src/react/hooks/useMediaQuery.ts","../../src/react/hooks/useBreakpoint.ts","../../src/react/hooks/useClickOutside.ts","../../src/react/hooks/useKeyPress.ts","../../src/react/hooks/useLongPress.ts","../../src/react/hooks/useGesture.ts","../../src/react/hooks/useSwipe.ts","../../src/react/hooks/usePullToRefresh.ts","../../src/react/hooks/useCountdown.ts","../../src/react/hooks/useCamera.ts","../../src/react/hooks/useBulkSelection.ts","../../src/react/hooks/useUrlTable.ts","../../src/react/hooks/usePendingFilters.ts","../../src/react/hooks/usePendingTable.ts","../../src/react/hooks/useUnsavedChanges.ts","../../src/react/hooks/useBulkAction.ts","../../src/react/hooks/useContainerGrid.ts","../../src/react/hooks/useVisibleItems.ts","../../src/react/useModalStack.ts","../../src/core/Logger.ts","../../src/core/Queue.ts","../../src/core/StorageManager.ts","../../src/core/EventBus.ts","../../src/security/authorization.ts","../../src/monitoring/error-tracking.ts","../../src/monitoring/client-logger.ts","../../src/monitoring/server-logger.ts","../../src/react/ErrorBoundary.tsx"],"names":["useState","useEffect","useRef","useMemo","useCallback","useRouter","usePathname","useSearchParams","_a","_b","error","jsxs","jsx","Component"],"mappings":"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","file":"index.cjs","sourcesContent":["export class AppError extends Error {\n constructor(\n public statusCode: number,\n public message: string,\n public code: string,\n public data?: unknown,\n ) {\n super(message);\n this.name = this.constructor.name;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n toJSON(): {\n success: false;\n error: string;\n code: string;\n statusCode: number;\n data?: unknown;\n } {\n return {\n success: false,\n error: this.message,\n code: this.code,\n statusCode: this.statusCode,\n ...(this.data !== undefined && { data: this.data }),\n };\n }\n}\n","export const ERROR_CODES = {\n // Authentication\n AUTH_INVALID_CREDENTIALS: \"AUTH_001\",\n AUTH_TOKEN_EXPIRED: \"AUTH_002\",\n AUTH_TOKEN_INVALID: \"AUTH_003\",\n AUTH_SESSION_EXPIRED: \"AUTH_004\",\n AUTH_EMAIL_NOT_VERIFIED: \"AUTH_005\",\n\n // Validation\n VALIDATION_REQUIRED_FIELD: \"VAL_001\",\n VALIDATION_INVALID_INPUT: \"VAL_002\",\n VALIDATION_INVALID_EMAIL: \"VAL_003\",\n VALIDATION_INVALID_PASSWORD: \"VAL_004\",\n VALIDATION_INVALID_PHONE: \"VAL_005\",\n\n // User\n USER_NOT_FOUND: \"USER_001\",\n USER_ALREADY_EXISTS: \"USER_002\",\n USER_NOT_AUTHENTICATED: \"USER_003\",\n USER_ACCOUNT_DISABLED: \"USER_004\",\n\n // Database\n DB_OPERATION_FAILED: \"DB_001\",\n DB_NOT_FOUND: \"DB_002\",\n DB_DUPLICATE_ENTRY: \"DB_003\",\n\n // Email\n EMAIL_SEND_FAILED: \"EMAIL_001\",\n EMAIL_INVALID_TEMPLATE: \"EMAIL_002\",\n EMAIL_RATE_LIMITED: \"EMAIL_003\",\n EMAIL_DELIVERY_FAILED: \"EMAIL_004\",\n\n // Password\n PWD_RESET_TOKEN_EXPIRED: \"PWD_001\",\n PWD_RESET_TOKEN_INVALID: \"PWD_002\",\n PWD_TOO_WEAK: \"PWD_003\",\n PWD_HISTORY_REUSE: \"PWD_004\",\n PWD_SAME_AS_CURRENT: \"PWD_005\",\n\n // Authorization\n AUTHZ_FORBIDDEN: \"AUTHZ_001\",\n AUTHZ_INSUFFICIENT_ROLE: \"AUTHZ_002\",\n\n // General\n GEN_BAD_REQUEST: \"GEN_001\",\n GEN_NOT_FOUND: \"GEN_002\",\n GEN_INTERNAL_ERROR: \"GEN_003\",\n GEN_SERVICE_UNAVAILABLE: \"GEN_004\",\n GEN_RATE_LIMITED: \"GEN_005\",\n GEN_UNKNOWN: \"GEN_999\",\n} as const;\n\nexport type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];\n\nexport const ERROR_MESSAGES: Record<ErrorCode, string> = {\n // Authentication\n AUTH_001: \"Invalid email or password\",\n AUTH_002: \"Your session has expired. Please log in again\",\n AUTH_003: \"Invalid authentication token\",\n AUTH_004: \"Your session has expired. Please log in again\",\n AUTH_005: \"Please verify your email address before logging in\",\n\n // Validation\n VAL_001: \"This field is required\",\n VAL_002: \"Invalid input provided\",\n VAL_003: \"Please enter a valid email address\",\n VAL_004:\n \"Password must be at least 12 characters with uppercase, lowercase, number and special character\",\n VAL_005: \"Please enter a valid phone number\",\n\n // User\n USER_001: \"User not found\",\n USER_002: \"An account with this email already exists\",\n USER_003: \"Please log in to continue\",\n USER_004: \"Your account has been disabled. Please contact support\",\n\n // Database\n DB_001: \"A database error occurred. Please try again\",\n DB_002: \"The requested resource was not found\",\n DB_003: \"This record already exists\",\n\n // Email\n EMAIL_001: \"Failed to send email. Please try again\",\n EMAIL_002: \"Invalid email template\",\n EMAIL_003: \"Too many emails sent. Please wait before trying again\",\n EMAIL_004: \"Email delivery failed. Please check the address and try again\",\n\n // Password\n PWD_001: \"Password reset link has expired. Please request a new one\",\n PWD_002: \"Invalid password reset link\",\n PWD_003: \"Password does not meet security requirements\",\n PWD_004: \"Cannot reuse a recent password\",\n PWD_005: \"New password must be different from your current password\",\n\n // Authorization\n AUTHZ_001: \"You do not have permission to perform this action\",\n AUTHZ_002: \"Insufficient role to perform this action\",\n\n // General\n GEN_001: \"Bad request\",\n GEN_002: \"The requested resource was not found\",\n GEN_003: \"An internal server error occurred\",\n GEN_004: \"Service temporarily unavailable\",\n GEN_005: \"Too many requests. Please slow down\",\n GEN_999: \"An unknown error occurred\",\n};\n","import { AppError } from \"./base-error\";\n\nexport class ApiError extends AppError {\n constructor(statusCode: number, message: string, data?: unknown) {\n super(statusCode, message, \"API_ERROR\", data);\n }\n}\n","import { AppError } from \"./base-error\";\n\nexport class ValidationError extends AppError {\n constructor(message: string, fields?: unknown) {\n super(400, message, \"VALIDATION_ERROR\", fields);\n }\n}\n","import { AppError } from \"./base-error\";\n\nexport class AuthenticationError extends AppError {\n constructor(message: string, data?: unknown) {\n super(401, message, \"AUTHENTICATION_ERROR\", data);\n }\n}\n","import { AppError } from \"./base-error\";\n\nexport class AuthorizationError extends AppError {\n constructor(message: string, data?: unknown) {\n super(403, message, \"AUTHORIZATION_ERROR\", data);\n }\n}\n","import { AppError } from \"./base-error\";\n\nexport class NotFoundError extends AppError {\n constructor(message: string, data?: unknown) {\n super(404, message, \"NOT_FOUND\", data);\n }\n}\n","import { AppError } from \"./base-error\";\n\nexport class DatabaseError extends AppError {\n constructor(message: string, data?: unknown) {\n super(500, message, \"DATABASE_ERROR\", data);\n }\n}\n","import { NextResponse } from \"next/server.js\";\nimport { AppError } from \"./base-error\";\nimport { ERROR_CODES, ERROR_MESSAGES } from \"./error-codes\";\n\n/**\n * Handle API errors with consistent response format.\n * Use in Next.js API route catch blocks.\n */\nexport function handleApiError(error: unknown): NextResponse {\n if (error instanceof AppError) {\n if (error.statusCode >= 500) {\n console.error(\"[API Error]\", {\n code: error.code,\n message: error.message,\n statusCode: error.statusCode,\n data: error.data,\n });\n }\n return NextResponse.json(error.toJSON(), { status: error.statusCode });\n }\n\n // Zod / schema validation errors\n if (error && typeof error === \"object\" && \"issues\" in error) {\n return NextResponse.json(\n {\n success: false,\n error: \"Validation failed\",\n code: ERROR_CODES.VALIDATION_INVALID_INPUT,\n data: error,\n },\n { status: 400 },\n );\n }\n\n console.error(\"[Unexpected API Error]\", {\n error:\n error instanceof Error\n ? { name: error.name, message: error.message, stack: error.stack }\n : error,\n });\n\n return NextResponse.json(\n {\n success: false,\n error: ERROR_MESSAGES[ERROR_CODES.GEN_INTERNAL_ERROR],\n code: ERROR_CODES.GEN_INTERNAL_ERROR,\n },\n { status: 500 },\n );\n}\n\n/**\n * Log an error with optional context. Wraps console.error for package portability;\n * replace with your structured logger if needed.\n */\nexport function logError(\n error: unknown,\n context?: Record<string, unknown>,\n): void {\n console.error(\"[Application Error]\", {\n ...(context && { context }),\n error:\n error instanceof Error\n ? { name: error.name, message: error.message, stack: error.stack }\n : error,\n });\n}\n\n/**\n * Type guard — check if a value is an AppError instance.\n */\nexport function isAppError(error: unknown): error is AppError {\n return error instanceof AppError;\n}\n","export { AppError } from \"./base-error\";\nexport { ERROR_CODES, ERROR_MESSAGES } from \"./error-codes\";\nexport type { ErrorCode } from \"./error-codes\";\nexport { ApiError } from \"./api-error\";\nexport { ValidationError } from \"./validation-error\";\nexport { AuthenticationError } from \"./authentication-error\";\nexport { AuthorizationError } from \"./authorization-error\";\nexport { NotFoundError } from \"./not-found-error\";\nexport { DatabaseError } from \"./database-error\";\n// error-handler uses `next/server` — only import in server/API-route contexts\nexport { handleApiError, logError, isAppError } from \"./error-handler\";\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\n\n/**\n * useMediaQuery Hook\n *\n * Detects if a CSS media query matches the current viewport.\n * Returns true/false based on whether the query matches.\n *\n * @param query - CSS media query string (e.g., '(min-width: 768px)')\n * @returns boolean - Whether the media query currently matches\n *\n * @example\n * ```tsx\n * const isMobile = useMediaQuery('(max-width: 767px)');\n * const isDesktop = useMediaQuery('(min-width: 1024px)');\n * ```\n */\nexport function useMediaQuery(query: string): boolean {\n const [matches, setMatches] = useState(\n // Lazy initializer: use real value on first client render, suppressing the flash.\n // Returns false on server (no window) — consistent with no-match default.\n () => typeof window !== \"undefined\" && window.matchMedia(query).matches,\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const media = window.matchMedia(query);\n setMatches(media.matches);\n\n const listener = (e: MediaQueryListEvent) => setMatches(e.matches);\n media.addEventListener(\"change\", listener);\n\n return () => media.removeEventListener(\"change\", listener);\n }, [query]);\n\n return matches;\n}\n","\"use client\";\n\nimport { useMediaQuery } from \"./useMediaQuery\";\n\n/**\n * useBreakpoint Hook\n *\n * Convenience hook for detecting common Tailwind breakpoints.\n * Returns boolean flags and the current breakpoint name.\n *\n * Breakpoints (Tailwind defaults):\n * - Mobile: < 768px\n * - Tablet: 768px - 1023px\n * - Desktop: >= 1024px\n *\n * @returns Object with breakpoint detection flags\n *\n * @example\n * ```tsx\n * const { isMobile, isTablet, isDesktop, breakpoint } = useBreakpoint();\n *\n * if (isMobile) {\n * return <MobileView />;\n * }\n * return <DesktopView />;\n * ```\n */\nexport function useBreakpoint() {\n const isMobile = useMediaQuery(\"(max-width: 767px)\");\n const isTablet = useMediaQuery(\"(min-width: 768px) and (max-width: 1023px)\");\n const isDesktop = useMediaQuery(\"(min-width: 1024px)\");\n\n const breakpoint = isMobile ? \"mobile\" : isTablet ? \"tablet\" : \"desktop\";\n\n return {\n isMobile,\n isTablet,\n isDesktop,\n breakpoint: breakpoint as \"mobile\" | \"tablet\" | \"desktop\",\n };\n}\n","\"use client\";\n\nimport { useEffect, useRef, RefObject } from \"react\";\n\n/**\n * Configuration options for useClickOutside hook\n */\nexport interface UseClickOutsideOptions {\n /** Whether the hook is enabled */\n enabled?: boolean;\n /** Event type to listen for (default: 'mousedown') */\n eventType?: \"mousedown\" | \"mouseup\" | \"click\";\n /** Refs to additional elements that should be considered \"inside\" */\n additionalRefs?: RefObject<HTMLElement | null>[];\n}\n\nconst EMPTY_REFS: RefObject<HTMLElement | null>[] = [];\n\n/**\n * useClickOutside Hook\n *\n * Detects clicks outside of specified element(s) and triggers a callback.\n * Commonly used for dropdowns, modals, and popovers.\n *\n * @param ref - Primary element reference\n * @param callback - Function to call when clicking outside\n * @param options - Configuration options\n *\n * @example\n * ```tsx\n * const dropdownRef = useRef<HTMLDivElement>(null);\n * const triggerRef = useRef<HTMLButtonElement>(null);\n *\n * useClickOutside(dropdownRef, () => {\n * setIsOpen(false);\n * }, {\n * additionalRefs: [triggerRef],\n * enabled: isOpen,\n * });\n * ```\n */\nexport function useClickOutside<T extends HTMLElement = HTMLElement>(\n ref: RefObject<T | null>,\n callback: (event: MouseEvent | TouchEvent) => void,\n options: UseClickOutsideOptions = {},\n) {\n const {\n enabled = true,\n eventType = \"mousedown\",\n additionalRefs = EMPTY_REFS,\n } = options;\n\n // Store callback in a ref to avoid re-subscribing listeners on every render\n const callbackRef = useRef(callback);\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n // Check if click is outside the primary ref\n if (ref.current && !ref.current.contains(event.target as Node)) {\n // Check if click is outside all additional refs\n const isOutsideAll = additionalRefs.every(\n (additionalRef) =>\n !additionalRef.current ||\n !additionalRef.current.contains(event.target as Node),\n );\n\n if (isOutsideAll) {\n callbackRef.current(event);\n }\n }\n };\n\n // Add event listeners for both mouse and touch\n document.addEventListener(eventType, handleClickOutside);\n document.addEventListener(\"touchstart\", handleClickOutside);\n\n return () => {\n document.removeEventListener(eventType, handleClickOutside);\n document.removeEventListener(\"touchstart\", handleClickOutside);\n };\n }, [ref, enabled, eventType, additionalRefs]);\n}\n","\"use client\";\n\nimport { useEffect, useCallback, useRef, useMemo } from \"react\";\n\n/**\n * Key combination modifiers\n */\nexport interface KeyModifiers {\n ctrl?: boolean;\n shift?: boolean;\n alt?: boolean;\n meta?: boolean; // Command key on Mac\n}\n\n/**\n * Configuration options for useKeyPress hook\n */\nexport interface UseKeyPressOptions extends KeyModifiers {\n /** Whether the hook is enabled */\n enabled?: boolean;\n /** Event type to listen for (default: 'keydown') */\n eventType?: \"keydown\" | \"keyup\" | \"keypress\";\n /** Prevent default behavior */\n preventDefault?: boolean;\n /** Target element (default: document) */\n target?: HTMLElement | Document | Window;\n}\n\n/**\n * useKeyPress Hook\n *\n * Detects keyboard events with support for key combinations.\n * Useful for keyboard shortcuts and accessibility.\n *\n * @param key - Key or array of keys to listen for (e.g., 'Enter', 'Escape', ['a', 'A'])\n * @param callback - Function to call when key is pressed\n * @param options - Configuration options including modifiers\n *\n * @example\n * ```tsx\n * // Simple key press\n * useKeyPress('Escape', () => closeModal());\n *\n * // Key combination (Ctrl+S)\n * useKeyPress('s', handleSave, {\n * ctrl: true,\n * preventDefault: true,\n * });\n *\n * // Multiple keys\n * useKeyPress(['Enter', 'NumpadEnter'], handleSubmit);\n * ```\n */\nexport function useKeyPress(\n key: string | string[],\n callback: (event: KeyboardEvent) => void,\n options: UseKeyPressOptions = {},\n) {\n const {\n enabled = true,\n eventType = \"keydown\",\n preventDefault = false,\n ctrl = false,\n shift = false,\n alt = false,\n meta = false,\n target = typeof document !== \"undefined\" ? document : null,\n } = options;\n\n // Memoize keys array to avoid re-creation when `key` is a string\n const keys = useMemo(() => (Array.isArray(key) ? key : [key]), [key]);\n\n // Store callback in a ref to keep event listener stable\n const callbackRef = useRef(callback);\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const handleKeyPress = useCallback(\n (event: KeyboardEvent) => {\n // Check if pressed key matches any of the target keys\n const isKeyMatch = keys.some((k) => event.key === k || event.code === k);\n\n if (!isKeyMatch) return;\n\n // Check modifiers\n const modifiersMatch =\n event.ctrlKey === ctrl &&\n event.shiftKey === shift &&\n event.altKey === alt &&\n event.metaKey === meta;\n\n if (!modifiersMatch) return;\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n callbackRef.current(event);\n },\n [keys, ctrl, shift, alt, meta, preventDefault],\n );\n\n useEffect(() => {\n if (!enabled || !target) return;\n\n target.addEventListener(eventType, handleKeyPress as EventListener);\n\n return () => {\n target.removeEventListener(eventType, handleKeyPress as EventListener);\n };\n }, [enabled, eventType, handleKeyPress, target]);\n}\n","\"use client\";\n\nimport { useRef, useCallback, useEffect } from \"react\";\n\n/**\n * useLongPress Hook\n *\n * Fires `callback` after the element is held for `ms` milliseconds.\n * A quick tap (pointer-up before the threshold) does NOT fire the callback.\n * Safe to use on both mouse and touch devices.\n *\n * @param callback - Function to call on long-press\n * @param ms - Hold duration in ms before callback fires (default: 500)\n *\n * @example\n * ```tsx\n * const longPress = useLongPress(() => openContextMenu(), 500);\n *\n * return (\n * <tr {...longPress}>…</tr>\n * );\n * ```\n */\nexport function useLongPress(callback: () => void, ms = 500) {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n // Keep callback ref stable — avoids re-attaching on every render\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const start = useCallback(() => {\n timerRef.current = setTimeout(() => {\n callbackRef.current();\n }, ms);\n }, [ms]);\n\n const cancel = useCallback(() => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }, []);\n\n // Clean up any pending timer on unmount\n useEffect(() => {\n return () => {\n if (timerRef.current !== null) {\n clearTimeout(timerRef.current);\n }\n };\n }, []);\n\n return {\n onMouseDown: start,\n onMouseUp: cancel,\n onMouseLeave: cancel,\n onTouchStart: start,\n onTouchEnd: cancel,\n };\n}\n","\"use client\";\n\nimport { useRef, useEffect, RefObject } from \"react\";\n\n/**\n * Gesture types supported\n */\nexport type GestureType = \"tap\" | \"doubletap\" | \"pinch\" | \"rotate\";\n\n/**\n * Configuration options for useGesture hook\n */\nexport interface UseGestureOptions {\n /** Callback for tap gesture */\n onTap?: (x: number, y: number) => void;\n /** Callback for double tap gesture */\n onDoubleTap?: (x: number, y: number) => void;\n /** Callback for pinch gesture (zoom in/out) */\n onPinch?: (scale: number, distance: number) => void;\n /** Callback during pinching */\n onPinching?: (scale: number) => void;\n /** Callback for rotation gesture */\n onRotate?: (angle: number) => void;\n /** Callback during rotation */\n onRotating?: (angle: number) => void;\n /** Maximum time between taps for double tap (ms, default: 300) */\n doubleTapDelay?: number;\n /** Maximum movement allowed for tap (px, default: 10) */\n tapMovementThreshold?: number;\n /** Prevent default behavior */\n preventDefault?: boolean;\n}\n\n/**\n * useGesture Hook\n *\n * Detects various touch gestures including tap, double tap, pinch, and rotate.\n * Primarily designed for touch devices but also works with mouse for basic gestures.\n *\n * @param ref - Reference to the element to attach gesture handlers\n * @param options - Configuration options for gesture detection\n *\n * @example\n * ```tsx\n * const ref = useRef<HTMLDivElement>(null);\n *\n * useGesture(ref, {\n * onTap: (x, y) => console.log('Tapped at', x, y),\n * onDoubleTap: () => console.log('Double tapped'),\n * onPinch: (scale) => console.log('Pinch scale', scale),\n * });\n *\n * return <div ref={ref}>Touch me!</div>;\n * ```\n */\nexport function useGesture<T extends HTMLElement = HTMLElement>(\n ref: RefObject<T | null>,\n options: UseGestureOptions = {},\n) {\n const {\n onTap,\n onDoubleTap,\n onPinch,\n onPinching,\n onRotate,\n onRotating,\n doubleTapDelay = 300,\n tapMovementThreshold = 10,\n preventDefault = false,\n } = options;\n\n const touchStartRef = useRef<{ x: number; y: number; time: number } | null>(\n null,\n );\n const lastTapRef = useRef<number>(0);\n const initialPinchDistanceRef = useRef<number>(0);\n const initialRotationRef = useRef<number>(0);\n\n // Store callbacks in refs to avoid event listener churn\n const onTapRef = useRef(onTap);\n const onDoubleTapRef = useRef(onDoubleTap);\n const onPinchRef = useRef(onPinch);\n const onPinchingRef = useRef(onPinching);\n const onRotateRef = useRef(onRotate);\n const onRotatingRef = useRef(onRotating);\n\n useEffect(() => {\n onTapRef.current = onTap;\n }, [onTap]);\n useEffect(() => {\n onDoubleTapRef.current = onDoubleTap;\n }, [onDoubleTap]);\n useEffect(() => {\n onPinchRef.current = onPinch;\n }, [onPinch]);\n useEffect(() => {\n onPinchingRef.current = onPinching;\n }, [onPinching]);\n useEffect(() => {\n onRotateRef.current = onRotate;\n }, [onRotate]);\n useEffect(() => {\n onRotatingRef.current = onRotating;\n }, [onRotating]);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n\n const getDistance = (touch1: Touch, touch2: Touch): number => {\n const dx = touch1.clientX - touch2.clientX;\n const dy = touch1.clientY - touch2.clientY;\n return Math.sqrt(dx * dx + dy * dy);\n };\n\n const getAngle = (touch1: Touch, touch2: Touch): number => {\n const dx = touch1.clientX - touch2.clientX;\n const dy = touch1.clientY - touch2.clientY;\n return Math.atan2(dy, dx) * (180 / Math.PI);\n };\n\n const handleTouchStart = (e: TouchEvent) => {\n if (preventDefault) e.preventDefault();\n const touch = e.touches[0];\n touchStartRef.current = {\n x: touch.clientX,\n y: touch.clientY,\n time: Date.now(),\n };\n if (e.touches.length === 2) {\n initialPinchDistanceRef.current = getDistance(\n e.touches[0],\n e.touches[1],\n );\n initialRotationRef.current = getAngle(e.touches[0], e.touches[1]);\n }\n };\n\n const handleTouchMove = (e: TouchEvent) => {\n if (!touchStartRef.current) return;\n if (\n e.touches.length === 2 &&\n (onPinchRef.current ||\n onPinchingRef.current ||\n onRotateRef.current ||\n onRotatingRef.current)\n ) {\n if (preventDefault) e.preventDefault();\n const currentDistance = getDistance(e.touches[0], e.touches[1]);\n const currentAngle = getAngle(e.touches[0], e.touches[1]);\n if (initialPinchDistanceRef.current > 0) {\n onPinchingRef.current?.(\n currentDistance / initialPinchDistanceRef.current,\n );\n }\n if (initialRotationRef.current !== 0) {\n onRotatingRef.current?.(currentAngle - initialRotationRef.current);\n }\n }\n };\n\n const handleTouchEnd = (e: TouchEvent) => {\n if (!touchStartRef.current) return;\n if (preventDefault) e.preventDefault();\n const touch = e.changedTouches[0];\n const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);\n const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);\n\n if (deltaX < tapMovementThreshold && deltaY < tapMovementThreshold) {\n const now = Date.now();\n const timeSinceLastTap = now - lastTapRef.current;\n if (onDoubleTapRef.current && timeSinceLastTap < doubleTapDelay) {\n onDoubleTapRef.current(\n touchStartRef.current.x,\n touchStartRef.current.y,\n );\n lastTapRef.current = 0;\n } else {\n onTapRef.current?.(touchStartRef.current.x, touchStartRef.current.y);\n lastTapRef.current = now;\n }\n }\n\n if (e.touches.length === 0 && initialPinchDistanceRef.current > 0) {\n const currentDistance = getDistance(\n e.changedTouches[0],\n e.changedTouches[1] || e.changedTouches[0],\n );\n onPinchRef.current?.(\n currentDistance / initialPinchDistanceRef.current,\n currentDistance,\n );\n initialPinchDistanceRef.current = 0;\n }\n\n if (e.touches.length === 0 && initialRotationRef.current !== 0) {\n const currentAngle = getAngle(\n e.changedTouches[0],\n e.changedTouches[1] || e.changedTouches[0],\n );\n onRotateRef.current?.(currentAngle - initialRotationRef.current);\n initialRotationRef.current = 0;\n }\n\n touchStartRef.current = null;\n };\n\n const handleMouseDown = (e: MouseEvent) => {\n if (preventDefault) e.preventDefault();\n touchStartRef.current = { x: e.clientX, y: e.clientY, time: Date.now() };\n };\n\n const handleMouseUp = (e: MouseEvent) => {\n if (!touchStartRef.current) return;\n if (preventDefault) e.preventDefault();\n const deltaX = Math.abs(e.clientX - touchStartRef.current.x);\n const deltaY = Math.abs(e.clientY - touchStartRef.current.y);\n if (deltaX < tapMovementThreshold && deltaY < tapMovementThreshold) {\n const now = Date.now();\n const timeSinceLastTap = now - lastTapRef.current;\n if (onDoubleTapRef.current && timeSinceLastTap < doubleTapDelay) {\n onDoubleTapRef.current(\n touchStartRef.current.x,\n touchStartRef.current.y,\n );\n lastTapRef.current = 0;\n } else {\n onTapRef.current?.(touchStartRef.current.x, touchStartRef.current.y);\n lastTapRef.current = now;\n }\n }\n touchStartRef.current = null;\n };\n\n element.addEventListener(\"touchstart\", handleTouchStart, {\n passive: !preventDefault,\n });\n element.addEventListener(\"touchmove\", handleTouchMove, {\n passive: !preventDefault,\n });\n element.addEventListener(\"touchend\", handleTouchEnd, {\n passive: !preventDefault,\n });\n element.addEventListener(\"mousedown\", handleMouseDown);\n element.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n element.removeEventListener(\"touchstart\", handleTouchStart);\n element.removeEventListener(\"touchmove\", handleTouchMove);\n element.removeEventListener(\"touchend\", handleTouchEnd);\n element.removeEventListener(\"mousedown\", handleMouseDown);\n element.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [ref, doubleTapDelay, tapMovementThreshold, preventDefault]);\n}\n","\"use client\";\n\nimport { useRef, useEffect, RefObject } from \"react\";\n\n/**\n * Swipe direction types\n */\nexport type SwipeDirection = \"left\" | \"right\" | \"up\" | \"down\";\n\n/**\n * Configuration options for useSwipe hook\n */\nexport interface UseSwipeOptions {\n /** Minimum distance in pixels to register as a swipe (default: 50) */\n minSwipeDistance?: number;\n /** Maximum time in ms for a swipe gesture (default: 300) */\n maxSwipeTime?: number;\n /** Threshold for swipe velocity (pixels/ms, default: 0.3) */\n velocityThreshold?: number;\n /** Callback when swipe is detected */\n onSwipe?: (\n direction: SwipeDirection,\n distance: number,\n velocity: number,\n ) => void;\n /** Callback for specific directions */\n onSwipeLeft?: (distance: number, velocity: number) => void;\n onSwipeRight?: (distance: number, velocity: number) => void;\n onSwipeUp?: (distance: number, velocity: number) => void;\n onSwipeDown?: (distance: number, velocity: number) => void;\n /** Callback during swipe (for dragging effect) */\n onSwiping?: (deltaX: number, deltaY: number) => void;\n /** Callback when swipe starts */\n onSwipeStart?: () => void;\n /** Callback when swipe ends (regardless of direction detected) */\n onSwipeEnd?: () => void;\n /** Prevent default behavior during touch */\n preventDefault?: boolean;\n}\n\n/**\n * useSwipe Hook\n *\n * Detects swipe gestures on touch and mouse events.\n * Works on both mobile (touch) and desktop (mouse drag).\n *\n * @param ref - Reference to the element to attach swipe handlers\n * @param options - Configuration options for swipe detection\n *\n * @example\n * ```tsx\n * const ref = useRef<HTMLDivElement>(null);\n *\n * useSwipe(ref, {\n * onSwipeLeft: () => console.log('Swiped left'),\n * onSwipeRight: () => console.log('Swiped right'),\n * minSwipeDistance: 100,\n * });\n *\n * return <div ref={ref}>Swipe me!</div>;\n * ```\n */\nexport function useSwipe<T extends HTMLElement = HTMLElement>(\n ref: RefObject<T | null>,\n options: UseSwipeOptions = {},\n) {\n const {\n minSwipeDistance = 50,\n maxSwipeTime = 300,\n velocityThreshold = 0.3,\n onSwipe,\n onSwipeLeft,\n onSwipeRight,\n onSwipeUp,\n onSwipeDown,\n onSwiping,\n onSwipeStart,\n onSwipeEnd,\n preventDefault = false,\n } = options;\n\n const touchStartRef = useRef<{ x: number; y: number; time: number } | null>(\n null,\n );\n const isSwiping = useRef(false);\n\n const onSwipeRef = useRef(onSwipe);\n const onSwipeLeftRef = useRef(onSwipeLeft);\n const onSwipeRightRef = useRef(onSwipeRight);\n const onSwipeUpRef = useRef(onSwipeUp);\n const onSwipeDownRef = useRef(onSwipeDown);\n const onSwipingRef = useRef(onSwiping);\n const onSwipeStartRef = useRef(onSwipeStart);\n const onSwipeEndRef = useRef(onSwipeEnd);\n\n useEffect(() => {\n onSwipeRef.current = onSwipe;\n }, [onSwipe]);\n useEffect(() => {\n onSwipeLeftRef.current = onSwipeLeft;\n }, [onSwipeLeft]);\n useEffect(() => {\n onSwipeRightRef.current = onSwipeRight;\n }, [onSwipeRight]);\n useEffect(() => {\n onSwipeUpRef.current = onSwipeUp;\n }, [onSwipeUp]);\n useEffect(() => {\n onSwipeDownRef.current = onSwipeDown;\n }, [onSwipeDown]);\n useEffect(() => {\n onSwipingRef.current = onSwiping;\n }, [onSwiping]);\n useEffect(() => {\n onSwipeStartRef.current = onSwipeStart;\n }, [onSwipeStart]);\n useEffect(() => {\n onSwipeEndRef.current = onSwipeEnd;\n }, [onSwipeEnd]);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n\n const processSwipe = (\n deltaX: number,\n deltaY: number,\n deltaTime: number,\n ) => {\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const velocity = distance / deltaTime;\n\n if (\n distance < minSwipeDistance ||\n deltaTime > maxSwipeTime ||\n velocity < velocityThreshold\n )\n return;\n\n let direction: SwipeDirection;\n if (absX > absY) {\n direction = deltaX > 0 ? \"right\" : \"left\";\n if (direction === \"left\") onSwipeLeftRef.current?.(distance, velocity);\n else onSwipeRightRef.current?.(distance, velocity);\n } else {\n direction = deltaY > 0 ? \"down\" : \"up\";\n if (direction === \"up\") onSwipeUpRef.current?.(distance, velocity);\n else onSwipeDownRef.current?.(distance, velocity);\n }\n onSwipeRef.current?.(direction, distance, velocity);\n };\n\n const handleTouchStart = (e: TouchEvent) => {\n if (preventDefault) e.preventDefault();\n const touch = e.touches[0];\n touchStartRef.current = {\n x: touch.clientX,\n y: touch.clientY,\n time: Date.now(),\n };\n isSwiping.current = true;\n onSwipeStartRef.current?.();\n };\n\n const handleTouchMove = (e: TouchEvent) => {\n if (!touchStartRef.current || !isSwiping.current) return;\n if (preventDefault) e.preventDefault();\n onSwipingRef.current?.(\n e.touches[0].clientX - touchStartRef.current.x,\n e.touches[0].clientY - touchStartRef.current.y,\n );\n };\n\n const handleTouchEnd = (e: TouchEvent) => {\n if (!touchStartRef.current || !isSwiping.current) return;\n if (preventDefault) e.preventDefault();\n const touch = e.changedTouches[0];\n processSwipe(\n touch.clientX - touchStartRef.current.x,\n touch.clientY - touchStartRef.current.y,\n Date.now() - touchStartRef.current.time,\n );\n touchStartRef.current = null;\n isSwiping.current = false;\n onSwipeEndRef.current?.();\n };\n\n const handleMouseDown = (e: MouseEvent) => {\n if (preventDefault) e.preventDefault();\n touchStartRef.current = { x: e.clientX, y: e.clientY, time: Date.now() };\n isSwiping.current = true;\n onSwipeStartRef.current?.();\n };\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!touchStartRef.current || !isSwiping.current) return;\n onSwipingRef.current?.(\n e.clientX - touchStartRef.current.x,\n e.clientY - touchStartRef.current.y,\n );\n };\n\n const handleMouseUp = (e: MouseEvent) => {\n if (!touchStartRef.current || !isSwiping.current) return;\n if (preventDefault) e.preventDefault();\n processSwipe(\n e.clientX - touchStartRef.current.x,\n e.clientY - touchStartRef.current.y,\n Date.now() - touchStartRef.current.time,\n );\n touchStartRef.current = null;\n isSwiping.current = false;\n onSwipeEndRef.current?.();\n };\n\n element.addEventListener(\"touchstart\", handleTouchStart, {\n passive: !preventDefault,\n });\n element.addEventListener(\"touchmove\", handleTouchMove, {\n passive: !preventDefault,\n });\n element.addEventListener(\"touchend\", handleTouchEnd, {\n passive: !preventDefault,\n });\n element.addEventListener(\"mousedown\", handleMouseDown);\n document.addEventListener(\"mousemove\", handleMouseMove);\n document.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n element.removeEventListener(\"touchstart\", handleTouchStart);\n element.removeEventListener(\"touchmove\", handleTouchMove);\n element.removeEventListener(\"touchend\", handleTouchEnd);\n element.removeEventListener(\"mousedown\", handleMouseDown);\n document.removeEventListener(\"mousemove\", handleMouseMove);\n document.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }, [ref, minSwipeDistance, maxSwipeTime, velocityThreshold, preventDefault]);\n}\n","\"use client\";\n\nimport { useRef, useState, useCallback, useEffect, RefObject } from \"react\";\n\nexport interface UsePullToRefreshOptions {\n /** Distance in px the user must pull before onRefresh triggers (default: 80) */\n threshold?: number;\n}\n\nexport interface UsePullToRefreshReturn {\n /** Attach to the scrollable container element */\n containerRef: RefObject<HTMLDivElement | null>;\n /** `true` while the user is actively pulling */\n isPulling: boolean;\n /** Pull progress from 0 (not started) to 1 (threshold reached) */\n progress: number;\n}\n\n/**\n * usePullToRefresh Hook\n *\n * Attaches touch event listeners to `containerRef`.\n * When the user overscrolls from the very top and pulls down past `threshold`,\n * `onRefresh` is called. Progress (0–1) can be used to render a loading indicator.\n *\n * @param onRefresh - Async function called when pull threshold is reached\n * @param options - Configuration: `threshold` in px (default 80)\n *\n * @example\n * ```tsx\n * const { containerRef, isPulling, progress } = usePullToRefresh(async () => {\n * await refetchOrders();\n * });\n *\n * return (\n * <div ref={containerRef} className=\"overflow-y-auto\">\n * {isPulling && <PullIndicator progress={progress} />}\n * {…}\n * </div>\n * );\n * ```\n */\nexport function usePullToRefresh(\n onRefresh: () => Promise<void>,\n options: UsePullToRefreshOptions = {},\n): UsePullToRefreshReturn {\n const { threshold = 80 } = options;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const [isPulling, setIsPulling] = useState(false);\n const [progress, setProgress] = useState(0);\n\n const startYRef = useRef<number | null>(null);\n const thresholdReachedRef = useRef(false);\n const onRefreshRef = useRef(onRefresh);\n\n useEffect(() => {\n onRefreshRef.current = onRefresh;\n }, [onRefresh]);\n\n const handleTouchStart = useCallback((e: TouchEvent) => {\n const el = containerRef.current;\n if (!el || el.scrollTop > 0) return;\n startYRef.current = e.touches[0].clientY;\n thresholdReachedRef.current = false;\n }, []);\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (startYRef.current === null) return;\n const delta = e.touches[0].clientY - startYRef.current;\n if (delta <= 0) {\n setProgress(0);\n setIsPulling(false);\n return;\n }\n const prog = Math.min(delta / threshold, 1);\n setProgress(prog);\n setIsPulling(true);\n thresholdReachedRef.current = prog >= 1;\n },\n [threshold],\n );\n\n const handleTouchEnd = useCallback(async () => {\n setIsPulling(false);\n setProgress(0);\n startYRef.current = null;\n if (thresholdReachedRef.current) {\n thresholdReachedRef.current = false;\n await onRefreshRef.current();\n }\n }, []);\n\n useEffect(() => {\n const el = containerRef.current;\n if (!el) return;\n\n el.addEventListener(\"touchstart\", handleTouchStart, { passive: true });\n el.addEventListener(\"touchmove\", handleTouchMove, { passive: true });\n el.addEventListener(\"touchend\", handleTouchEnd);\n\n return () => {\n el.removeEventListener(\"touchstart\", handleTouchStart);\n el.removeEventListener(\"touchmove\", handleTouchMove);\n el.removeEventListener(\"touchend\", handleTouchEnd);\n };\n }, [handleTouchStart, handleTouchMove, handleTouchEnd]);\n\n return { containerRef, isPulling, progress };\n}\n","import { useState, useEffect } from \"react\";\n\n/**\n * useCountdown — tracks time remaining until a future date.\n *\n * Returns `null` when the target date has passed or is not provided.\n *\n * Supports:\n * - `Date` objects\n * - ISO strings / numeric timestamps\n * - Firestore Timestamp JSON shape `{ _seconds, _nanoseconds }` (serialised\n * by Firestore's REST API — no Firestore SDK import needed)\n */\nexport interface CountdownRemaining {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n}\n\n/** Resolve any date-like value into a ms timestamp. */\nfunction resolveMs(endDate: unknown): number {\n if (!endDate) return NaN;\n if (endDate instanceof Date) return endDate.getTime();\n // Firestore Timestamp JSON shape: { _seconds, _nanoseconds }\n if (\n typeof endDate === \"object\" &&\n endDate !== null &&\n \"_seconds\" in endDate &&\n typeof (endDate as Record<string, unknown>)._seconds === \"number\"\n ) {\n return (endDate as { _seconds: number })._seconds * 1000;\n }\n // ISO string or numeric string\n return new Date(endDate as string).getTime();\n}\n\n/**\n * @example\n * ```tsx\n * const remaining = useCountdown(auction.endsAt);\n * if (!remaining) return <span>Ended</span>;\n * return <span>{remaining.hours}h {remaining.minutes}m {remaining.seconds}s</span>;\n * ```\n */\nexport function useCountdown(\n endDate: Date | string | undefined,\n): CountdownRemaining | null {\n const getRemaining = (): CountdownRemaining | null => {\n if (!endDate) return null;\n const ms = resolveMs(endDate);\n if (Number.isNaN(ms)) return null;\n const diff = ms - Date.now();\n if (diff <= 0) return null;\n return {\n days: Math.floor(diff / (1000 * 60 * 60 * 24)),\n hours: Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),\n minutes: Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)),\n seconds: Math.floor((diff % (1000 * 60)) / 1000),\n };\n };\n\n const [remaining, setRemaining] = useState<CountdownRemaining | null>(\n getRemaining,\n );\n\n useEffect(() => {\n const id = setInterval(() => setRemaining(getRemaining()), 1000);\n return () => clearInterval(id);\n }, [endDate]);\n\n return remaining;\n}\n","\"use client\";\n\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport interface UseCameraOptions {\n facingMode?: \"user\" | \"environment\";\n video?: boolean | MediaTrackConstraints;\n audio?: boolean;\n}\n\nexport interface UseCameraReturn {\n isSupported: boolean;\n isActive: boolean;\n isCapturing: boolean;\n stream: MediaStream | null;\n error: string | null;\n videoRef: React.RefObject<HTMLVideoElement | null>;\n startCamera: (options?: UseCameraOptions) => Promise<void>;\n stopCamera: () => void;\n takePhoto: () => Blob | null;\n startRecording: () => void;\n stopRecording: () => Promise<Blob>;\n switchCamera: () => Promise<void>;\n}\n\n/**\n * useCamera\n *\n * Provides access to the device camera via the MediaDevices API.\n * Zero domain imports. Safe to use in any Tier 1 / Tier 2 component.\n *\n * Lifecycle:\n * - Call `startCamera()` to open the stream and wire `videoRef` to a <video> element.\n * - `stopCamera()` releases hardware tracks (turns off the camera indicator light).\n * - `takePhoto()` captures the current frame as image/webp.\n * - `startRecording()` / `stopRecording()` use MediaRecorder (video/webm output).\n * - `useEffect` cleanup calls `stopCamera()` automatically on unmount.\n */\nexport function useCamera(): UseCameraReturn {\n const isSupported =\n typeof navigator !== \"undefined\" &&\n typeof navigator.mediaDevices !== \"undefined\" &&\n typeof navigator.mediaDevices.getUserMedia === \"function\";\n\n const videoRef = useRef<HTMLVideoElement>(null);\n const streamRef = useRef<MediaStream | null>(null);\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const chunksRef = useRef<Blob[]>([]);\n const currentFacingModeRef = useRef<\"user\" | \"environment\">(\"environment\");\n const stopRecordingResolveRef = useRef<((blob: Blob) => void) | null>(null);\n\n const [stream, setStream] = useState<MediaStream | null>(null);\n const [isActive, setIsActive] = useState(false);\n const [isCapturing, setIsCapturing] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const stopCamera = useCallback(() => {\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((t) => t.stop());\n streamRef.current = null;\n }\n if (videoRef.current) {\n videoRef.current.srcObject = null;\n }\n setStream(null);\n setIsActive(false);\n setIsCapturing(false);\n }, []);\n\n useEffect(() => {\n return () => {\n stopCamera();\n };\n }, [stopCamera]);\n\n const startCamera = useCallback(\n async (options?: UseCameraOptions) => {\n if (!isSupported) {\n setError(\"Camera is not supported on this device\");\n return;\n }\n setError(null);\n stopCamera();\n\n const facingMode = options?.facingMode ?? \"environment\";\n currentFacingModeRef.current = facingMode;\n\n const videoConstraints: boolean | MediaTrackConstraints =\n options?.video !== undefined ? options.video : { facingMode };\n\n try {\n const mediaStream = await navigator.mediaDevices.getUserMedia({\n video: videoConstraints,\n audio: options?.audio ?? false,\n });\n streamRef.current = mediaStream;\n setStream(mediaStream);\n setIsActive(true);\n if (videoRef.current) {\n videoRef.current.srcObject = mediaStream;\n }\n } catch (err) {\n const message =\n err instanceof DOMException && err.name === \"NotAllowedError\"\n ? \"Camera permission denied. Please allow access in your browser settings.\"\n : \"Camera unavailable\";\n setError(message);\n }\n },\n [isSupported, stopCamera],\n );\n\n const takePhoto = useCallback((): Blob | null => {\n const video = videoRef.current;\n if (!video || !isActive) return null;\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return null;\n ctx.drawImage(video, 0, 0);\n\n let result: Blob | null = null;\n canvas.toBlob(\n (blob) => {\n result = blob;\n },\n \"image/webp\",\n 0.92,\n );\n return result;\n }, [isActive]);\n\n const startRecording = useCallback(() => {\n if (!streamRef.current || !isActive) return;\n chunksRef.current = [];\n const recorder = new MediaRecorder(streamRef.current, {\n mimeType: \"video/webm\",\n });\n recorder.ondataavailable = (e) => {\n if (e.data.size > 0) chunksRef.current.push(e.data);\n };\n recorder.onstop = () => {\n const blob = new Blob(chunksRef.current, { type: \"video/webm\" });\n setIsCapturing(false);\n if (stopRecordingResolveRef.current) {\n stopRecordingResolveRef.current(blob);\n stopRecordingResolveRef.current = null;\n }\n };\n mediaRecorderRef.current = recorder;\n recorder.start();\n setIsCapturing(true);\n }, [isActive]);\n\n const stopRecording = useCallback((): Promise<Blob> => {\n return new Promise((resolve) => {\n stopRecordingResolveRef.current = resolve;\n if (\n mediaRecorderRef.current &&\n mediaRecorderRef.current.state !== \"inactive\"\n ) {\n mediaRecorderRef.current.stop();\n } else {\n resolve(new Blob([], { type: \"video/webm\" }));\n }\n });\n }, []);\n\n const switchCamera = useCallback(async () => {\n const next =\n currentFacingModeRef.current === \"environment\" ? \"user\" : \"environment\";\n await startCamera({ facingMode: next });\n }, [startCamera]);\n\n return {\n isSupported,\n isActive,\n isCapturing,\n stream,\n error,\n videoRef,\n startCamera,\n stopCamera,\n takePhoto,\n startRecording,\n stopRecording,\n switchCamera,\n };\n}\n","\"use client\";\r\n\r\n/**\r\n * useBulkSelection\r\n *\r\n * Generic multi-select state hook for list/table rows.\r\n * Pairs with any table component that accepts `selectedIds` and\r\n * `onSelectionChange` props.\r\n *\r\n * @example\r\n * ```tsx\r\n * const selection = useBulkSelection({ items, keyExtractor: (p) => p.id });\r\n *\r\n * <DataTable\r\n * selectable\r\n * selectedIds={selection.selectedIds}\r\n * onSelectionChange={selection.setSelectedIds}\r\n * />\r\n * ```\r\n */\r\n\r\nimport { useState, useCallback, useMemo } from \"react\";\r\nimport type { Dispatch, SetStateAction } from \"react\";\r\n\r\n/** Default API limit — match the `z.array().max(N)` on your bulk endpoint */\r\nconst BULK_MAX_IDS = 100;\r\n\r\nexport interface UseBulkSelectionOptions<T> {\r\n /** The current page / list of items being displayed. */\r\n items: T[];\r\n /** Extract a stable unique key from each item (e.g. `item => item.id`). */\r\n keyExtractor: (item: T) => string;\r\n /**\r\n * Maximum number of IDs that can be selected at once.\r\n * @default 100\r\n */\r\n maxSelection?: number;\r\n}\r\n\r\nexport interface UseBulkSelectionReturn {\r\n selectedIds: string[];\r\n selectedCount: number;\r\n /** Returns `true` if the given ID is currently selected. */\r\n isSelected: (id: string) => boolean;\r\n /** `true` when every item on the current page is selected. */\r\n isAllSelected: boolean;\r\n /**\r\n * `true` when some — but not all — items are selected.\r\n * Use to set the indeterminate state on the header checkbox.\r\n */\r\n isIndeterminate: boolean;\r\n /** Toggle one item in or out of the selection. Respects `maxSelection`. */\r\n toggle: (id: string) => void;\r\n /**\r\n * Select all items on the current page (up to `maxSelection`),\r\n * or deselect all if every item is already selected.\r\n */\r\n toggleAll: () => void;\r\n /** Deselect everything. Call this after a bulk action completes. */\r\n clearSelection: () => void;\r\n /**\r\n * Direct state setter — pass straight to a table's `onSelectionChange`\r\n * or use when you need to replace the entire selection programmatically.\r\n */\r\n setSelectedIds: Dispatch<SetStateAction<string[]>>;\r\n}\r\n\r\nexport function useBulkSelection<T>({\r\n items,\r\n keyExtractor,\r\n maxSelection = BULK_MAX_IDS,\r\n}: UseBulkSelectionOptions<T>): UseBulkSelectionReturn {\r\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\r\n\r\n const allIds = useMemo(() => items.map(keyExtractor), [items, keyExtractor]);\r\n\r\n const isSelected = useCallback(\r\n (id: string) => selectedIds.includes(id),\r\n [selectedIds],\r\n );\r\n\r\n const toggle = useCallback(\r\n (id: string) => {\r\n setSelectedIds((prev) => {\r\n if (prev.includes(id)) return prev.filter((s) => s !== id);\r\n if (prev.length >= maxSelection) return prev;\r\n return [...prev, id];\r\n });\r\n },\r\n [maxSelection],\r\n );\r\n\r\n const toggleAll = useCallback(() => {\r\n setSelectedIds((prev) => {\r\n const allSelected = prev.length === allIds.length && allIds.length > 0;\r\n if (allSelected) return [];\r\n return allIds.slice(0, maxSelection);\r\n });\r\n }, [allIds, maxSelection]);\r\n\r\n const clearSelection = useCallback(() => setSelectedIds([]), []);\r\n\r\n const isAllSelected =\r\n allIds.length > 0 && selectedIds.length === allIds.length;\r\n const isIndeterminate =\r\n selectedIds.length > 0 && selectedIds.length < allIds.length;\r\n\r\n return {\r\n selectedIds,\r\n selectedCount: selectedIds.length,\r\n isSelected,\r\n isAllSelected,\r\n isIndeterminate,\r\n toggle,\r\n toggleAll,\r\n clearSelection,\r\n setSelectedIds,\r\n };\r\n}\r\n","\"use client\";\r\n\r\n/**\r\n * useUrlTable\r\n *\r\n * Manages list/table state (filters, sort, pagination, view mode) entirely\r\n * through URL query params via `router.replace()` — no local state, fully\r\n * shareable and bookmark-able.\r\n *\r\n * Key rules:\r\n * - `set(key, value)` resets `page` to `'1'` unless the key is `'page'`,\r\n * `'pageSize'`, or `'view'`.\r\n * - `setMany(updates)` resets `page` to `'1'` unless every key in\r\n * `updates` is `'page'`, `'pageSize'`, or `'view'`.\r\n * - Always uses `router.replace()` so filter changes don't pollute history.\r\n *\r\n * @example\r\n * ```tsx\r\n * const table = useUrlTable({ defaults: { pageSize: '25', sort: '-createdAt' } });\r\n *\r\n * // Read\r\n * table.get('status') // string | ''\r\n * table.getNumber('page', 1) // number\r\n *\r\n * // Write\r\n * table.set('status', 'active') // resets page → 1\r\n * table.setPage(3)\r\n * table.setSort('-price')\r\n * table.setMany({ status: 'active', role: 'seller' })\r\n *\r\n * // Build API query strings\r\n * table.buildSieveParams('status==published')\r\n * table.buildSearchParams()\r\n * ```\r\n */\r\n\r\nimport { useRouter, usePathname, useSearchParams } from \"next/navigation\";\r\nimport { useCallback, useRef } from \"react\";\r\n\r\nexport interface UseUrlTableOptions {\r\n /** Default param values used when a param is absent from the URL */\r\n defaults?: Record<string, string>;\r\n /**\r\n * Override the router used for navigation. Pass a locale-aware router\r\n * (e.g. from next-intl) to preserve locale prefixes on replace.\r\n */\r\n router?: { replace: (url: string) => void };\r\n /** Override the current pathname (e.g. from a locale-aware usePathname). */\r\n pathname?: string;\r\n /**\r\n * Override the URLSearchParams instance. Useful when driving the hook\r\n * from a non-standard location source.\r\n */\r\n searchParams?: URLSearchParams;\r\n}\r\n\r\nconst NON_RESETTING_KEYS = [\"page\", \"pageSize\", \"view\"] as const;\r\n\r\nexport function useUrlTable(options?: UseUrlTableOptions) {\r\n // Always call native hooks unconditionally (React rules).\r\n const nativeRouter = useRouter();\r\n const nativePathname = usePathname();\r\n const nativeSearchParams = useSearchParams();\r\n\r\n // Callers may inject locale-aware overrides; fall back to native.\r\n const router = options?.router ?? nativeRouter;\r\n const pathname = options?.pathname ?? nativePathname;\r\n const searchParams = options?.searchParams ?? nativeSearchParams;\r\n\r\n // Stabilise defaults — callers often pass object literals inline, which\r\n // would recreate all useCallback deps on every render without this ref.\r\n const defaultsRef = useRef(options?.defaults ?? {});\r\n const defaults = defaultsRef.current;\r\n\r\n const get = useCallback(\r\n (key: string) => searchParams.get(key) ?? defaults[key] ?? \"\",\r\n [searchParams, defaults],\r\n );\r\n\r\n const getNumber = useCallback(\r\n (key: string, fallback = 0) => {\r\n const v = get(key);\r\n if (!v) return fallback;\r\n const n = Number(v);\r\n return isNaN(n) ? fallback : n;\r\n },\r\n [get],\r\n );\r\n\r\n const buildParams = useCallback(\r\n (updates: Record<string, string>) => {\r\n const p = new URLSearchParams(searchParams.toString());\r\n for (const [k, v] of Object.entries(updates)) {\r\n if (v === \"\" || v === undefined) p.delete(k);\r\n else p.set(k, v);\r\n }\r\n return p;\r\n },\r\n [searchParams],\r\n );\r\n\r\n const set = useCallback(\r\n (key: string, value: string) => {\r\n const p = buildParams({ [key]: value });\r\n if (\r\n !NON_RESETTING_KEYS.includes(key as (typeof NON_RESETTING_KEYS)[number])\r\n ) {\r\n p.set(\"page\", \"1\");\r\n }\r\n router.replace(`${pathname}?${p.toString()}`);\r\n },\r\n [buildParams, pathname, router],\r\n );\r\n\r\n const setMany = useCallback(\r\n (updates: Record<string, string>) => {\r\n const p = buildParams(updates);\r\n const keys = Object.keys(updates);\r\n const allNonResetting = keys.every((k) =>\r\n NON_RESETTING_KEYS.includes(k as (typeof NON_RESETTING_KEYS)[number]),\r\n );\r\n if (!allNonResetting && !keys.includes(\"page\")) {\r\n p.set(\"page\", \"1\");\r\n }\r\n router.replace(`${pathname}?${p.toString()}`);\r\n },\r\n [buildParams, pathname, router],\r\n );\r\n\r\n const clear = useCallback(\r\n (keys?: string[]) => {\r\n if (keys) {\r\n const p = new URLSearchParams(searchParams.toString());\r\n keys.forEach((k) => p.delete(k));\r\n p.set(\"page\", \"1\");\r\n router.replace(`${pathname}?${p.toString()}`);\r\n } else {\r\n router.replace(pathname);\r\n }\r\n },\r\n [searchParams, pathname, router],\r\n );\r\n\r\n const setPage = (page: number) => set(\"page\", String(page));\r\n const setPageSize = (size: number) => set(\"pageSize\", String(size));\r\n const setSort = (sort: string) => set(\"sort\", sort);\r\n\r\n const buildSieveParams = useCallback(\r\n (sieveFilters: string) => {\r\n const page = get(\"page\") || \"1\";\r\n const pageSize = get(\"pageSize\") || defaults[\"pageSize\"] || \"25\";\r\n const sort = get(\"sort\") || defaults[\"sort\"] || \"-createdAt\";\r\n const parts = new URLSearchParams();\r\n if (sieveFilters) parts.set(\"filters\", sieveFilters);\r\n parts.set(\"sorts\", sort);\r\n parts.set(\"page\", page);\r\n parts.set(\"pageSize\", pageSize);\r\n return `?${parts.toString()}`;\r\n },\r\n [get, defaults],\r\n );\r\n\r\n const buildSearchParams = useCallback(() => {\r\n const p = new URLSearchParams();\r\n const addIfPresent = (k: string) => {\r\n const v = get(k);\r\n if (v) p.set(k, v);\r\n };\r\n [\"q\", \"category\", \"minPrice\", \"maxPrice\"].forEach(addIfPresent);\r\n p.set(\"sort\", get(\"sort\") || defaults[\"sort\"] || \"-createdAt\");\r\n p.set(\"page\", get(\"page\") || \"1\");\r\n p.set(\"pageSize\", get(\"pageSize\") || defaults[\"pageSize\"] || \"24\");\r\n return `?${p.toString()}`;\r\n }, [get, defaults]);\r\n\r\n return {\r\n params: searchParams,\r\n get,\r\n getNumber,\r\n set,\r\n setMany,\r\n clear,\r\n setPage,\r\n setPageSize,\r\n setSort,\r\n buildSieveParams,\r\n buildSearchParams,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { useCallback, useMemo, useState } from \"react\";\r\nimport type { useUrlTable } from \"./useUrlTable\";\r\n\r\ntype UrlTable = ReturnType<typeof useUrlTable>;\r\n\r\nexport interface UsePendingFiltersOptions {\r\n /** The page's useUrlTable instance */\r\n table: UrlTable;\r\n /** URL param keys to manage (e.g. ['status', 'category', 'role']) */\r\n keys: string[];\r\n}\r\n\r\nexport interface UsePendingFiltersReturn {\r\n /** Current uncommitted selections per key (string[] per key) */\r\n pending: Record<string, string[]>;\r\n /** Values currently in the URL (committed) per key */\r\n applied: Record<string, string[]>;\r\n /** true when pending differs from applied */\r\n isDirty: boolean;\r\n /** Total number of selected values across all pending keys */\r\n pendingCount: number;\r\n /** Total number of selected values in the URL (for badge display) */\r\n appliedCount: number;\r\n /** Update one key in pending state (does NOT write to URL) */\r\n set: (key: string, values: string[]) => void;\r\n /** Write all pending keys to the URL (resets page to 1) */\r\n apply: () => void;\r\n /** Discard pending, revert to applied (URL) state */\r\n reset: () => void;\r\n /** Clear all keys in both pending state and the URL */\r\n clear: () => void;\r\n}\r\n\r\n/**\r\n * usePendingFilters\r\n *\r\n * Manages local (uncommitted) filter state for a FilterDrawer or any deferred\r\n * filter panel. Values are only written to the URL when `apply()` is called.\r\n *\r\n * Initialised from the current URL params on mount, so opening a drawer\r\n * pre-fills any already-applied filters.\r\n *\r\n * @example\r\n * ```ts\r\n * const table = useUrlTable({ defaults: { pageSize: '25' } });\r\n * const filters = usePendingFilters({ table, keys: ['status', 'category'] });\r\n *\r\n * <FilterDrawer\r\n * onApply={() => { filters.apply(); setDrawerOpen(false); }}\r\n * onReset={() => filters.clear()}\r\n * activeCount={filters.appliedCount}\r\n * >\r\n * <FilterFacetSection\r\n * title=\"Status\"\r\n * options={STATUS_OPTIONS}\r\n * selected={filters.pending['status'] ?? []}\r\n * onChange={(v) => filters.set('status', v)}\r\n * />\r\n * </FilterDrawer>\r\n * ```\r\n */\r\nexport function usePendingFilters({\r\n table,\r\n keys,\r\n}: UsePendingFiltersOptions): UsePendingFiltersReturn {\r\n const parseValues = useCallback(\r\n (key: string): string[] => {\r\n const raw = table.get(key);\r\n return raw ? raw.split(\",\").filter(Boolean) : [];\r\n },\r\n [table],\r\n );\r\n\r\n const [pending, setPending] = useState<Record<string, string[]>>(() =>\r\n Object.fromEntries(keys.map((k) => [k, parseValues(k)])),\r\n );\r\n\r\n const applied = useMemo<Record<string, string[]>>(\r\n () => Object.fromEntries(keys.map((k) => [k, parseValues(k)])),\r\n [keys, parseValues],\r\n );\r\n\r\n const pendingCount = useMemo(\r\n () => Object.values(pending).reduce((sum, arr) => sum + arr.length, 0),\r\n [pending],\r\n );\r\n\r\n const appliedCount = useMemo(\r\n () => Object.values(applied).reduce((sum, arr) => sum + arr.length, 0),\r\n [applied],\r\n );\r\n\r\n const isDirty = useMemo(() => {\r\n return keys.some((k) => {\r\n const p = (pending[k] ?? []).slice().sort();\r\n const a = (applied[k] ?? []).slice().sort();\r\n return p.length !== a.length || p.some((v, i) => v !== a[i]);\r\n });\r\n }, [keys, pending, applied]);\r\n\r\n const set = useCallback((key: string, values: string[]) => {\r\n setPending((prev) => ({ ...prev, [key]: values }));\r\n }, []);\r\n\r\n const apply = useCallback(() => {\r\n const updates: Record<string, string> = { page: \"1\" };\r\n for (const k of keys) {\r\n updates[k] = (pending[k] ?? []).join(\",\");\r\n }\r\n table.setMany(updates);\r\n }, [keys, pending, table]);\r\n\r\n const reset = useCallback(() => {\r\n setPending(Object.fromEntries(keys.map((k) => [k, parseValues(k)])));\r\n }, [keys, parseValues]);\r\n\r\n const clear = useCallback(() => {\r\n const empty = Object.fromEntries(keys.map((k) => [k, [] as string[]]));\r\n setPending(empty);\r\n const updates: Record<string, string> = { page: \"1\" };\r\n for (const k of keys) updates[k] = \"\";\r\n table.setMany(updates);\r\n }, [keys, table]);\r\n\r\n return {\r\n pending,\r\n applied,\r\n isDirty,\r\n pendingCount,\r\n appliedCount,\r\n set,\r\n apply,\r\n reset,\r\n clear,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { useMemo } from \"react\";\r\nimport { usePendingFilters } from \"./usePendingFilters\";\r\nimport type { useUrlTable } from \"./useUrlTable\";\r\n\r\ntype UrlTable = ReturnType<typeof useUrlTable>;\r\n\r\n/**\r\n * Minimal UrlTable-compatible interface consumed by *Filters components.\r\n */\r\nexport interface PendingTable {\r\n get: (key: string) => string;\r\n set: (key: string, value: string) => void;\r\n setMany: (updates: Record<string, string>) => void;\r\n}\r\n\r\nexport interface UsePendingTableReturn {\r\n /** Drop-in UrlTable replacement that reads/writes to pending state */\r\n pendingTable: PendingTable;\r\n /** Count of applied (URL) filter values — use for the filter badge */\r\n filterActiveCount: number;\r\n /** Commit all pending changes to the URL (resets page to 1) */\r\n onFilterApply: () => void;\r\n /** Clear all filter keys from pending state and URL */\r\n onFilterClear: () => void;\r\n /**\r\n * Revert pending state to the current URL values without clearing them.\r\n * Call this when opening a filter drawer to ensure it shows the last\r\n * committed state, even if the URL changed externally (e.g. a status tab).\r\n */\r\n onFilterReset: () => void;\r\n}\r\n\r\n/**\r\n * usePendingTable\r\n *\r\n * A thin wrapper around `usePendingFilters` that exposes a `pendingTable`\r\n * object matching the `UrlTable` interface (`get`, `set`, `setMany`).\r\n *\r\n * Drop this into any listing view to replace the per-filter `useState` +\r\n * `handleFilterApply` + `handleFilterClear` boilerplate.\r\n *\r\n * @example\r\n * ```tsx\r\n * const { pendingTable, filterActiveCount, onFilterApply, onFilterClear } =\r\n * usePendingTable(table, ['status', 'category', 'minPrice', 'maxPrice']);\r\n *\r\n * // Pass pendingTable directly to any *Filters component:\r\n * filterContent={<ProductFilters table={pendingTable} showStatus />}\r\n * filterActiveCount={filterActiveCount}\r\n * onFilterApply={onFilterApply}\r\n * onFilterClear={onFilterClear}\r\n * ```\r\n */\r\nexport function usePendingTable(\r\n table: UrlTable,\r\n keys: string[],\r\n): UsePendingTableReturn {\r\n const filters = usePendingFilters({ table, keys });\r\n\r\n const pendingTable = useMemo<PendingTable>(\r\n () => ({\r\n get: (key: string): string => filters.pending[key]?.[0] ?? \"\",\r\n set: (key: string, value: string): void => {\r\n filters.set(key, value ? [value] : []);\r\n },\r\n setMany: (updates: Record<string, string>): void => {\r\n for (const [k, v] of Object.entries(updates)) {\r\n filters.set(k, v ? [v] : []);\r\n }\r\n },\r\n }),\r\n [filters.pending, filters.set],\r\n );\r\n\r\n return {\r\n pendingTable,\r\n filterActiveCount: filters.appliedCount,\r\n onFilterApply: filters.apply,\r\n onFilterClear: filters.clear,\r\n onFilterReset: filters.reset,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { useState, useEffect, useCallback, useRef } from \"react\";\r\n\r\nexport const UNSAVED_CHANGES_EVENT = \"unsaved-changes:confirm\";\r\n\r\nexport interface UseUnsavedChangesOptions {\r\n /** Current form values to compare against initial */\r\n formValues: Record<string, string>;\r\n /** Initial form values snapshot (taken when data loads) */\r\n initialValues: Record<string, string> | null;\r\n /** Additional dirty flag from outside the form (e.g. pending avatar upload) */\r\n extraDirty?: boolean;\r\n /**\r\n * Called when the user attempts to navigate away with unsaved changes.\r\n * Must return a Promise that resolves to `true` (continue) or `false` (stay).\r\n * Defaults to `window.confirm` with a generic message.\r\n */\r\n confirmFn?: () => Promise<boolean>;\r\n /**\r\n * Message shown in the browser-native `beforeunload` dialog.\r\n * Most modern browsers ignore custom messages and show their own text.\r\n */\r\n beforeUnloadWarning?: string;\r\n}\r\n\r\nexport interface UseUnsavedChangesReturn {\r\n /** Whether there are any unsaved changes (form or extra) */\r\n isDirty: boolean;\r\n /** Whether the form fields specifically have changed */\r\n isFormDirty: boolean;\r\n /** Call after a successful save to reset initial values to current */\r\n markClean: () => void;\r\n /** Prompt the user and return true if they confirmed leaving, false otherwise */\r\n confirmLeave: () => Promise<boolean>;\r\n}\r\n\r\n/**\r\n * useUnsavedChanges\r\n *\r\n * Tracks unsaved form changes and warns users before navigating away.\r\n *\r\n * - Compares `formValues` to `initialValues` to detect form dirtiness\r\n * - Accepts an optional `extraDirty` flag (e.g. pending file upload)\r\n * - Registers a `beforeunload` handler while dirty\r\n * - Exposes `confirmLeave()` which calls the provided `confirmFn` (or falls back\r\n * to `window.confirm`) to handle navigation guards\r\n * - `markClean()` resets the snapshot after a successful save\r\n */\r\nexport function useUnsavedChanges({\r\n formValues,\r\n initialValues,\r\n extraDirty = false,\r\n confirmFn,\r\n beforeUnloadWarning = \"You have unsaved changes. Leave?\",\r\n}: UseUnsavedChangesOptions): UseUnsavedChangesReturn {\r\n const [savedSnapshot, setSavedSnapshot] = useState<Record<\r\n string,\r\n string\r\n > | null>(initialValues);\r\n const savedSnapshotRef = useRef(savedSnapshot);\r\n savedSnapshotRef.current = savedSnapshot;\r\n\r\n // Sync snapshot when initialValues first arrives (data load)\r\n useEffect(() => {\r\n if (initialValues && !savedSnapshotRef.current) {\r\n setSavedSnapshot(initialValues);\r\n }\r\n }, [initialValues]);\r\n\r\n const isFormDirty = (() => {\r\n if (!savedSnapshot) return false;\r\n return Object.keys(formValues).some(\r\n (key) => (formValues[key] ?? \"\") !== (savedSnapshot[key] ?? \"\"),\r\n );\r\n })();\r\n\r\n const isDirty = isFormDirty || extraDirty;\r\n\r\n useEffect(() => {\r\n if (!isDirty) return;\r\n const handler = (e: BeforeUnloadEvent) => {\r\n e.preventDefault();\r\n e.returnValue = beforeUnloadWarning;\r\n return beforeUnloadWarning;\r\n };\r\n window.addEventListener(\"beforeunload\", handler);\r\n return () => window.removeEventListener(\"beforeunload\", handler);\r\n }, [isDirty, beforeUnloadWarning]);\r\n\r\n const markClean = useCallback(() => {\r\n setSavedSnapshot({ ...formValues });\r\n }, [formValues]);\r\n\r\n const confirmLeave = useCallback((): Promise<boolean> => {\r\n if (!isDirty) return Promise.resolve(true);\r\n if (confirmFn) return confirmFn();\r\n return Promise.resolve(\r\n window.confirm(\"You have unsaved changes. Leave without saving?\"),\r\n );\r\n }, [isDirty, confirmFn]);\r\n\r\n return { isDirty, isFormDirty, markClean, confirmLeave };\r\n}\r\n","\"use client\";\r\n\r\nimport { useState, useCallback, useRef } from \"react\";\r\n\r\n// ---------------------------------------------------------------------------\r\n// Shared types — safe to use in any project consuming @mohasinac/react\r\n// ---------------------------------------------------------------------------\r\n\r\nexport interface BulkActionItemFailure {\r\n id: string;\r\n reason: string;\r\n}\r\n\r\nexport interface BulkActionSummary {\r\n total: number;\r\n succeeded: number;\r\n skipped: number;\r\n failed: number;\r\n}\r\n\r\nexport interface BulkActionResult<TData = Record<string, unknown>> {\r\n action: string;\r\n summary: BulkActionSummary;\r\n succeeded: string[];\r\n skipped: string[];\r\n failed: BulkActionItemFailure[];\r\n data?: TData;\r\n}\r\n\r\nexport interface BulkActionPayload {\r\n action: string;\r\n ids: string[];\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// useBulkAction\r\n// ---------------------------------------------------------------------------\r\n\r\nexport interface UseBulkActionOptions<\r\n TPayload extends BulkActionPayload,\r\n TData = Record<string, unknown>,\r\n> {\r\n /**\r\n * Async function that POSTs to the bulk endpoint.\r\n * Must return `Promise<BulkActionResult<TData>>`.\r\n */\r\n mutationFn: (payload: TPayload) => Promise<BulkActionResult<TData>>;\r\n /**\r\n * Called when `mutationFn` resolves (even for partial failures).\r\n * Inspect `result.summary` to build feedback.\r\n */\r\n onSuccess?: (\r\n result: BulkActionResult<TData>,\r\n payload: TPayload,\r\n ) => void | Promise<void>;\r\n /**\r\n * Called when `mutationFn` rejects.\r\n */\r\n onError?: (error: Error, payload: TPayload) => void;\r\n /**\r\n * When `true`, `execute()` parks the payload in `pendingPayload` instead of\r\n * running immediately. The caller renders a confirm modal wired to\r\n * `confirmAndExecute` / `cancelConfirm`.\r\n */\r\n requiresConfirm?: boolean;\r\n}\r\n\r\nexport interface UseBulkActionReturn<\r\n TPayload extends BulkActionPayload,\r\n TData = Record<string, unknown>,\r\n> {\r\n execute: (payload: TPayload) => Promise<void>;\r\n isLoading: boolean;\r\n result: BulkActionResult<TData> | null;\r\n error: Error | null;\r\n reset: () => void;\r\n pendingPayload: TPayload | null;\r\n confirmAndExecute: () => Promise<void>;\r\n cancelConfirm: () => void;\r\n}\r\n\r\n/**\r\n * useBulkAction\r\n *\r\n * Generic mutation hook for any `/bulk` endpoint.\r\n * Handles loading state, partial-success result tracking, and an optional\r\n * confirmation flow for destructive operations.\r\n *\r\n * Pair with `useBulkSelection` and a `BulkActionBar` component for the\r\n * full admin list pattern.\r\n */\r\nexport function useBulkAction<\r\n TPayload extends BulkActionPayload = BulkActionPayload,\r\n TData = Record<string, unknown>,\r\n>(\r\n options: UseBulkActionOptions<TPayload, TData>,\r\n): UseBulkActionReturn<TPayload, TData> {\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [result, setResult] = useState<BulkActionResult<TData> | null>(null);\r\n const [error, setError] = useState<Error | null>(null);\r\n const [pendingPayload, setPendingPayload] = useState<TPayload | null>(null);\r\n\r\n const optionsRef = useRef(options);\r\n optionsRef.current = options;\r\n\r\n const runMutation = useCallback(async (payload: TPayload) => {\r\n setIsLoading(true);\r\n setError(null);\r\n try {\r\n const res = await optionsRef.current.mutationFn(payload);\r\n setResult(res);\r\n await optionsRef.current.onSuccess?.(res, payload);\r\n } catch (err) {\r\n const error =\r\n err instanceof Error\r\n ? err\r\n : new Error((err as { message?: string })?.message ?? \"Unexpected error\");\r\n setError(error);\r\n optionsRef.current.onError?.(error, payload);\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n }, []);\r\n\r\n const execute = useCallback(\r\n async (payload: TPayload) => {\r\n if (optionsRef.current.requiresConfirm) {\r\n setPendingPayload(payload);\r\n return;\r\n }\r\n await runMutation(payload);\r\n },\r\n [runMutation],\r\n );\r\n\r\n const confirmAndExecute = useCallback(async () => {\r\n if (!pendingPayload) return;\r\n const payload = pendingPayload;\r\n setPendingPayload(null);\r\n await runMutation(payload);\r\n }, [pendingPayload, runMutation]);\r\n\r\n const cancelConfirm = useCallback(() => setPendingPayload(null), []);\r\n\r\n const reset = useCallback(() => {\r\n setResult(null);\r\n setError(null);\r\n setPendingPayload(null);\r\n }, []);\r\n\r\n return {\r\n execute,\r\n isLoading,\r\n result,\r\n error,\r\n reset,\r\n pendingPayload,\r\n confirmAndExecute,\r\n cancelConfirm,\r\n };\r\n}\r\n","// appkit/src/react/hooks/useContainerGrid.ts\r\n\"use client\";\r\nimport { useRef, useState, useEffect } from \"react\";\r\n\r\nexport interface UseContainerGridOptions {\r\n /** Minimum width of each grid item in pixels */\r\n minItemWidth: number;\r\n /** Gap between items in pixels (default: 16) */\r\n gap?: number;\r\n /** Minimum column count (default: 1) */\r\n minCols?: number;\r\n /** Maximum column count (default: Infinity) */\r\n maxCols?: number;\r\n}\r\n\r\nexport interface UseContainerGridResult {\r\n /** Attach to the grid container element */\r\n containerRef: React.RefObject<HTMLElement | null>;\r\n /** Current computed column count */\r\n cols: number;\r\n}\r\n\r\n/**\r\n * `useContainerGrid` — compute the number of columns that fit in a container\r\n * using a `ResizeObserver`. Drives fluid skeleton loader card counts.\r\n *\r\n * **Formula**: `cols = clamp(minCols, floor((width + gap) / (minItemWidth + gap)), maxCols)`\r\n *\r\n * Pair with the `fluid-grid-*` CSS utilities in `tailwind.config.js` so the\r\n * skeleton count always matches the visible grid columns.\r\n *\r\n * @example\r\n * ```tsx\r\n * const { containerRef, cols } = useContainerGrid({ minItemWidth: 220 });\r\n *\r\n * return (\r\n * <ul ref={containerRef as React.RefObject<HTMLUListElement>} className=\"fluid-grid-card gap-4\">\r\n * {isLoading\r\n * ? Array.from({ length: cols * 2 }).map((_, i) => <li key={i}><Skeleton /></li>)\r\n * : items.map((item) => <li key={item.id}><ProductCard product={item} /></li>)}\r\n * </ul>\r\n * );\r\n * ```\r\n */\r\nexport function useContainerGrid({\r\n minItemWidth,\r\n gap = 16,\r\n minCols = 1,\r\n maxCols = Infinity,\r\n}: UseContainerGridOptions): UseContainerGridResult {\r\n const containerRef = useRef<HTMLElement>(null);\r\n const [cols, setCols] = useState(minCols);\r\n\r\n useEffect(() => {\r\n const el = containerRef.current;\r\n if (!el) return;\r\n\r\n const compute = (width: number) => {\r\n const raw = Math.floor((width + gap) / (minItemWidth + gap));\r\n const clamped = Math.min(\r\n maxCols === Infinity ? raw : maxCols,\r\n Math.max(minCols, raw),\r\n );\r\n setCols(clamped);\r\n };\r\n\r\n const ro = new ResizeObserver(([entry]) => {\r\n if (entry) compute(entry.contentRect.width);\r\n });\r\n ro.observe(el);\r\n compute(el.getBoundingClientRect().width);\r\n\r\n return () => ro.disconnect();\r\n }, [minItemWidth, gap, minCols, maxCols]);\r\n\r\n return { containerRef, cols };\r\n}\r\n","// appkit/src/react/hooks/useVisibleItems.ts\r\n\"use client\";\r\nimport { useRef, useState, useEffect, useCallback } from \"react\";\r\n\r\nexport interface UseVisibleItemsOptions {\r\n /** Total number of items */\r\n total: number;\r\n /** Minimum width of each item in pixels */\r\n minItemWidth: number;\r\n /** Width reserved for each scroll arrow button (default: 36) */\r\n arrowWidth?: number;\r\n /** Gap between items in pixels (default: 8) */\r\n gap?: number;\r\n}\r\n\r\nexport interface UseVisibleItemsResult {\r\n /** Attach to the scroll container element */\r\n containerRef: React.RefObject<HTMLElement | null>;\r\n /** Number of items that fit in the current container width */\r\n visibleCount: number;\r\n /** Whether any items are hidden (arrows should be shown) */\r\n hasOverflow: boolean;\r\n /** Index of the first visible item */\r\n scrollOffset: number;\r\n setScrollOffset: React.Dispatch<React.SetStateAction<number>>;\r\n /** Scroll left by one page */\r\n scrollLeft: () => void;\r\n /** Scroll right by one page */\r\n scrollRight: () => void;\r\n canScrollLeft: boolean;\r\n canScrollRight: boolean;\r\n}\r\n\r\n/**\r\n * `useVisibleItems` — compute how many items fit in a container, handling\r\n * arrow button reservations. Powers `HorizontalScroller` and `TabStrip`.\r\n *\r\n * **Formula** (when overflow exists):\r\n * `visible = floor((containerWidth - 2 × (arrowWidth + gap) + gap) / (minItemWidth + gap))`\r\n *\r\n * When all items fit without arrows, no arrows are shown.\r\n */\r\nexport function useVisibleItems({\r\n total,\r\n minItemWidth,\r\n arrowWidth = 36,\r\n gap = 8,\r\n}: UseVisibleItemsOptions): UseVisibleItemsResult {\r\n const containerRef = useRef<HTMLElement>(null);\r\n const [visibleCount, setVisibleCount] = useState(total);\r\n const [scrollOffset, setScrollOffset] = useState(0);\r\n\r\n useEffect(() => {\r\n const el = containerRef.current;\r\n if (!el) return;\r\n\r\n const compute = (width: number) => {\r\n // Check if all items fit without scrolling\r\n const totalItemsWidth = total * minItemWidth + Math.max(0, total - 1) * gap;\r\n if (totalItemsWidth <= width) {\r\n setVisibleCount(total);\r\n return;\r\n }\r\n // Reserve space for both arrows\r\n const usable = width - 2 * (arrowWidth + gap);\r\n const raw = Math.floor((usable + gap) / (minItemWidth + gap));\r\n setVisibleCount(Math.max(1, raw));\r\n };\r\n\r\n const ro = new ResizeObserver(([entry]) => {\r\n if (entry) compute(entry.contentRect.width);\r\n });\r\n ro.observe(el);\r\n compute(el.getBoundingClientRect().width);\r\n\r\n return () => ro.disconnect();\r\n }, [total, minItemWidth, arrowWidth, gap]);\r\n\r\n // Clamp scroll offset when visibleCount or total changes\r\n useEffect(() => {\r\n setScrollOffset((o) => Math.min(o, Math.max(0, total - visibleCount)));\r\n }, [visibleCount, total]);\r\n\r\n const hasOverflow = visibleCount < total;\r\n\r\n const scrollLeft = useCallback(\r\n () => setScrollOffset((o) => Math.max(0, o - visibleCount)),\r\n [visibleCount],\r\n );\r\n\r\n const scrollRight = useCallback(\r\n () =>\r\n setScrollOffset((o) =>\r\n Math.min(total - visibleCount, o + visibleCount),\r\n ),\r\n [visibleCount, total],\r\n );\r\n\r\n return {\r\n containerRef,\r\n visibleCount,\r\n hasOverflow,\r\n scrollOffset,\r\n setScrollOffset,\r\n scrollLeft,\r\n scrollRight,\r\n canScrollLeft: scrollOffset > 0,\r\n canScrollRight: scrollOffset + visibleCount < total,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { useCallback, useRef, useState } from \"react\";\r\n\r\n// ─── ModalEntry ───────────────────────────────────────────────────────────────\r\n\r\nexport interface ModalEntry<T = unknown> {\r\n id: string;\r\n data?: T;\r\n}\r\n\r\n// ─── useModalStack ────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * useModalStack — manages a LIFO stack of modal/drawer instances.\r\n *\r\n * Supports nested modal flows (e.g. confirmation on top of form).\r\n * The topmost entry in the stack is the \"active\" modal.\r\n *\r\n * @example\r\n * ```tsx\r\n * const { open, close, closeAll, isOpen, peek } = useModalStack<ReviewData>();\r\n *\r\n * // open a modal with optional payload:\r\n * <Button onClick={() => open(\"review-modal\", review)}>Write Review</Button>\r\n *\r\n * const active = peek(); // { id: \"review-modal\", data: review }\r\n * const visible = isOpen(\"review-modal\");\r\n * ```\r\n */\r\nexport function useModalStack<T = unknown>() {\r\n const [stack, setStack] = useState<ModalEntry<T>[]>([]);\r\n const idCounter = useRef(0);\r\n\r\n const open = useCallback((id: string, data?: T) => {\r\n setStack((prev) => [...prev, { id, data }]);\r\n }, []);\r\n\r\n const close = useCallback(() => {\r\n setStack((prev) => prev.slice(0, -1));\r\n }, []);\r\n\r\n const closeAll = useCallback(() => {\r\n setStack([]);\r\n }, []);\r\n\r\n const closeById = useCallback((id: string) => {\r\n setStack((prev) => prev.filter((e) => e.id !== id));\r\n }, []);\r\n\r\n const peek = useCallback((): ModalEntry<T> | undefined => {\r\n return stack[stack.length - 1];\r\n }, [stack]);\r\n\r\n const isOpen = useCallback(\r\n (id: string): boolean => {\r\n return stack.some((e) => e.id === id);\r\n },\r\n [stack],\r\n );\r\n\r\n const isTopmost = useCallback(\r\n (id: string): boolean => {\r\n return stack[stack.length - 1]?.id === id;\r\n },\r\n [stack],\r\n );\r\n\r\n const nextId = useCallback(() => {\r\n idCounter.current++;\r\n return `modal-${idCounter.current}`;\r\n }, []);\r\n\r\n return {\r\n stack,\r\n open,\r\n close,\r\n closeAll,\r\n closeById,\r\n peek,\r\n isOpen,\r\n isTopmost,\r\n nextId,\r\n depth: stack.length,\r\n };\r\n}\r\n","/**\n * Logger Class — @mohasinac/core\n *\n * Singleton class for application logging.\n * Pure utility — no framework or app-specific imports.\n *\n * The `logFileUrl` constructor option replaces the previous app-specific\n * `import(\"@/constants\")` call, making this usable in any context.\n */\n\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport interface LogEntry {\n level: LogLevel;\n message: string;\n timestamp: Date;\n data?: unknown;\n}\n\nexport interface LoggerOptions {\n minLevel?: LogLevel;\n enableConsole?: boolean;\n enableStorage?: boolean;\n /**\n * URL to POST error log entries. Set to your `/api/logs/write` route.\n */\n logFileUrl?: string;\n /**\n * @deprecated Prefer `logFileUrl`. When `true` and `logFileUrl` is not set,\n * defaults to `/api/logs/write` for backward compatibility with the\n * previous app-coupled Logger implementation.\n */\n enableFileLogging?: boolean;\n maxEntries?: number;\n /** Optional function to sanitize data before logging (e.g., PII redaction). */\n sanitizer?: (data: unknown) => unknown;\n}\n\nexport class Logger {\n private static instance: Logger;\n private logs: LogEntry[] = [];\n private options: Required<\n Omit<LoggerOptions, \"logFileUrl\" | \"enableFileLogging\" | \"sanitizer\">\n > & {\n logFileUrl?: string;\n sanitizer?: (data: unknown) => unknown;\n };\n private levelPriority: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n };\n\n private constructor(options?: LoggerOptions) {\n // `enableFileLogging: true` is a backward-compat alias for logFileUrl.\n const fileUrl =\n options?.logFileUrl ??\n (options?.enableFileLogging ? \"/api/logs/write\" : undefined);\n this.options = {\n minLevel: options?.minLevel ?? \"debug\",\n enableConsole: options?.enableConsole ?? true,\n enableStorage: options?.enableStorage ?? false,\n logFileUrl: fileUrl,\n maxEntries: options?.maxEntries ?? 1000,\n sanitizer: options?.sanitizer,\n };\n }\n\n /** Get singleton instance */\n public static getInstance(options?: LoggerOptions): Logger {\n if (!Logger.instance) {\n Logger.instance = new Logger(options);\n }\n return Logger.instance;\n }\n\n /** Set or update the data sanitizer (e.g., for PII redaction). */\n public static setSanitizer(fn: (data: unknown) => unknown): void {\n Logger.getInstance().options.sanitizer = fn;\n }\n\n private shouldLog(level: LogLevel): boolean {\n return (\n this.levelPriority[level] >= this.levelPriority[this.options.minLevel]\n );\n }\n\n private addLog(level: LogLevel, message: string, data?: unknown): void {\n if (!this.shouldLog(level)) return;\n\n const sanitized =\n data && this.options.sanitizer ? this.options.sanitizer(data) : data;\n const entry: LogEntry = {\n level,\n message,\n timestamp: new Date(),\n data: sanitized,\n };\n\n this.logs.push(entry);\n if (this.logs.length > this.options.maxEntries) {\n this.logs.shift();\n }\n\n if (this.options.enableConsole) {\n this.logToConsole(entry);\n }\n\n if (this.options.enableStorage && typeof window !== \"undefined\") {\n this.saveToStorage();\n }\n\n if (this.options.logFileUrl && level === \"error\") {\n this.writeToFile(entry).catch(() => {\n // Silently fail to prevent recursive logging\n });\n }\n }\n\n private logToConsole(entry: LogEntry): void {\n const prefix = `[${entry.level.toUpperCase()}] ${entry.timestamp.toISOString()}`;\n const message = `${prefix} ${entry.message}`;\n switch (entry.level) {\n case \"debug\":\n console.debug(message, entry.data);\n break;\n case \"info\":\n console.info(message, entry.data);\n break;\n case \"warn\":\n console.warn(message, entry.data);\n break;\n case \"error\":\n console.error(message, entry.data);\n break;\n }\n }\n\n private saveToStorage(): void {\n try {\n localStorage.setItem(\"app_logs\", JSON.stringify(this.logs));\n } catch {\n // Silently fail\n }\n }\n\n private async writeToFile(entry: LogEntry): Promise<void> {\n if (typeof window === \"undefined\" || !this.options.logFileUrl) return;\n try {\n await fetch(this.options.logFileUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n level: entry.level,\n message: entry.message,\n timestamp: entry.timestamp.toISOString(),\n data: entry.data,\n }),\n });\n } catch {\n // Silently fail\n }\n }\n\n public debug(message: string, data?: unknown): void {\n this.addLog(\"debug\", message, data);\n }\n\n public info(message: string, data?: unknown): void {\n this.addLog(\"info\", message, data);\n }\n\n public warn(message: string, data?: unknown): void {\n this.addLog(\"warn\", message, data);\n }\n\n public error(message: string, data?: unknown): void {\n this.addLog(\"error\", message, data);\n }\n\n public getLogs(level?: LogLevel): LogEntry[] {\n if (level) return this.logs.filter((log) => log.level === level);\n return [...this.logs];\n }\n\n public clear(): void {\n this.logs = [];\n if (this.options.enableStorage && typeof window !== \"undefined\") {\n localStorage.removeItem(\"app_logs\");\n }\n }\n\n public export(): string {\n return JSON.stringify(this.logs, null, 2);\n }\n\n public getStats(): Record<LogLevel, number> {\n return {\n debug: this.logs.filter((l) => l.level === \"debug\").length,\n info: this.logs.filter((l) => l.level === \"info\").length,\n warn: this.logs.filter((l) => l.level === \"warn\").length,\n error: this.logs.filter((l) => l.level === \"error\").length,\n };\n }\n}\n\n/** Shared singleton instance */\nexport const logger = Logger.getInstance();\n","/**\n * Queue Class — @mohasinac/core\n *\n * Generic priority queue for task management.\n * Pure utility — no framework or app-specific imports.\n */\n\nimport { Logger } from \"./Logger\";\n\nconst qLogger = Logger.getInstance();\n\nexport interface QueueOptions {\n concurrency?: number;\n autoStart?: boolean;\n}\n\nexport interface Task<T = unknown> {\n id: string;\n fn: () => Promise<T>;\n priority?: number;\n}\n\nexport class Queue<T = unknown> {\n private tasks: Task<T>[] = [];\n private running: number = 0;\n private readonly concurrency: number;\n private autoStart: boolean;\n private results: Map<string, T> = new Map();\n private errors: Map<string, Error> = new Map();\n\n constructor(options?: QueueOptions) {\n this.concurrency = options?.concurrency ?? 1;\n this.autoStart = options?.autoStart ?? true;\n }\n\n /** Add a task to the queue */\n public add(id: string, fn: () => Promise<T>, priority: number = 0): void {\n this.tasks.push({ id, fn, priority });\n this.tasks.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n if (this.autoStart) {\n this.process();\n }\n }\n\n private process(): void {\n while (this.running < this.concurrency && this.tasks.length > 0) {\n const task = this.tasks.shift();\n if (!task) break;\n this.running++;\n task\n .fn()\n .then((result) => {\n this.results.set(task.id, result);\n })\n .catch((error: unknown) => {\n this.errors.set(task.id, error as Error);\n })\n .finally(() => {\n this.running--;\n this.process();\n })\n .catch((err: unknown) => {\n qLogger.error(\"Queue.process error in finally\", { err });\n });\n }\n }\n\n public start(): void {\n this.process();\n }\n\n public pause(): void {\n this.autoStart = false;\n }\n\n public resume(): void {\n this.autoStart = true;\n this.process();\n }\n\n public clear(): void {\n this.tasks = [];\n this.results.clear();\n this.errors.clear();\n }\n\n public getResult(id: string): T | undefined {\n return this.results.get(id);\n }\n\n public getError(id: string): Error | undefined {\n return this.errors.get(id);\n }\n\n public size(): number {\n return this.tasks.length;\n }\n\n public getRunning(): number {\n return this.running;\n }\n\n public isEmpty(): boolean {\n return this.tasks.length === 0 && this.running === 0;\n }\n\n public async waitForCompletion(): Promise<void> {\n while (!this.isEmpty()) {\n await new Promise<void>((resolve) => setTimeout(resolve, 100));\n }\n }\n\n public getStats(): {\n pending: number;\n running: number;\n completed: number;\n failed: number;\n } {\n return {\n pending: this.tasks.length,\n running: this.running,\n completed: this.results.size,\n failed: this.errors.size,\n };\n }\n}\n","/**\n * StorageManager Class — @mohasinac/core\n *\n * Singleton class for managing localStorage and sessionStorage with\n * namespace prefixing and SSR-safe fallbacks.\n * Pure utility — no framework or app-specific imports.\n */\n\nimport { Logger } from \"./Logger\";\n\nconst sLogger = Logger.getInstance();\n\nexport type StorageType = \"local\" | \"session\";\n\nexport interface StorageOptions {\n type?: StorageType;\n prefix?: string;\n}\n\nexport class StorageManager {\n /** Per-prefix instance map — prevents namespace collisions */\n private static instances = new Map<string, StorageManager>();\n private readonly prefix: string;\n\n private constructor(prefix: string = \"app_\") {\n this.prefix = prefix;\n }\n\n /**\n * Get-or-create a StorageManager for the given prefix.\n * Each prefix returns an independent instance.\n */\n public static getInstance(prefix: string = \"\"): StorageManager {\n if (!StorageManager.instances.has(prefix)) {\n StorageManager.instances.set(prefix, new StorageManager(prefix));\n }\n return StorageManager.instances.get(prefix)!;\n }\n\n private getStorage(type: StorageType): Storage | null {\n try {\n if (typeof window === \"undefined\") return null;\n const storage =\n type === \"local\" ? window.localStorage : window.sessionStorage;\n return storage ?? null;\n } catch {\n return null;\n }\n }\n\n private generateKey(key: string): string {\n return `${this.prefix}${key}`;\n }\n\n public set<T>(key: string, value: T, options?: StorageOptions): boolean {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return false;\n try {\n storage.setItem(this.generateKey(key), JSON.stringify(value));\n return true;\n } catch (error) {\n sLogger.error(\"StorageManager.set error\", { error });\n return false;\n }\n }\n\n public get<T>(key: string, options?: StorageOptions): T | null {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return null;\n try {\n const item = storage.getItem(this.generateKey(key));\n if (item === null) return null;\n return JSON.parse(item) as T;\n } catch (error) {\n sLogger.error(\"StorageManager.get error\", { error });\n return null;\n }\n }\n\n public remove(key: string, options?: StorageOptions): boolean {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return false;\n try {\n storage.removeItem(this.generateKey(key));\n return true;\n } catch (error) {\n sLogger.error(\"StorageManager.remove error\", { error });\n return false;\n }\n }\n\n public clear(options?: StorageOptions): boolean {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return false;\n try {\n const keys = Object.keys(storage);\n keys.forEach((k) => {\n if (k.startsWith(this.prefix)) storage.removeItem(k);\n });\n return true;\n } catch (error) {\n sLogger.error(\"StorageManager.clear error\", { error });\n return false;\n }\n }\n\n public has(key: string, options?: StorageOptions): boolean {\n return this.get(key, options) !== null;\n }\n\n public keys(options?: StorageOptions): string[] {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return [];\n const result: string[] = [];\n for (let i = 0; i < storage.length; i++) {\n const k = storage.key(i);\n if (k?.startsWith(this.prefix)) {\n result.push(k.slice(this.prefix.length));\n }\n }\n return result;\n }\n\n public size(options?: StorageOptions): number {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return 0;\n let bytes = 0;\n for (let i = 0; i < storage.length; i++) {\n const k = storage.key(i);\n if (k?.startsWith(this.prefix)) {\n const v = storage.getItem(k);\n bytes += k.length + (v?.length ?? 0);\n }\n }\n return bytes;\n }\n\n public isAvailable(type: StorageType = \"local\"): boolean {\n const storage = this.getStorage(type);\n if (!storage) return false;\n try {\n const testKey = \"__storage_test__\";\n storage.setItem(testKey, \"1\");\n storage.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n }\n\n public getAll<T = unknown>(options?: StorageOptions): Record<string, T> {\n const storage = this.getStorage(options?.type ?? \"local\");\n if (!storage) return {};\n const result: Record<string, T> = {};\n for (let i = 0; i < storage.length; i++) {\n const k = storage.key(i);\n if (k?.startsWith(this.prefix)) {\n const v = this.get<T>(k.slice(this.prefix.length), options);\n if (v !== null) result[k.slice(this.prefix.length)] = v;\n }\n }\n return result;\n }\n}\n\n/** Default StorageManager instance (empty prefix) */\nexport const storageManager = StorageManager.getInstance(\"\");\n","/**\n * EventBus Class — @mohasinac/core\n *\n * Singleton pub/sub event bus for decoupled communication.\n * Pure utility — no framework or app-specific imports.\n */\n\nimport { Logger } from \"./Logger\";\n\nconst logger = Logger.getInstance();\n\ntype EventCallback = (...args: unknown[]) => void;\n\nexport interface EventSubscription {\n unsubscribe: () => void;\n}\n\nexport class EventBus {\n private static instance: EventBus;\n private readonly events: Map<string, EventCallback[]> = new Map();\n\n private constructor() {}\n\n public static getInstance(): EventBus {\n if (!EventBus.instance) {\n EventBus.instance = new EventBus();\n }\n return EventBus.instance;\n }\n\n public on(event: string, callback: EventCallback): EventSubscription {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n this.events.get(event)!.push(callback);\n return { unsubscribe: () => this.off(event, callback) };\n }\n\n public once(event: string, callback: EventCallback): EventSubscription {\n const wrapped = (...args: unknown[]) => {\n callback(...args);\n this.off(event, wrapped);\n };\n return this.on(event, wrapped);\n }\n\n public off(event: string, callback: EventCallback): void {\n const callbacks = this.events.get(event);\n if (!callbacks) return;\n const idx = callbacks.indexOf(callback);\n if (idx > -1) callbacks.splice(idx, 1);\n if (callbacks.length === 0) this.events.delete(event);\n }\n\n public emit(event: string, ...args: unknown[]): void {\n const callbacks = this.events.get(event);\n if (!callbacks) return;\n callbacks.forEach((cb) => {\n try {\n cb(...args);\n } catch (error) {\n logger.error(`EventBus: error in handler for \"${event}\"`, { error });\n }\n });\n }\n\n public removeAllListeners(event?: string): void {\n if (event) {\n this.events.delete(event);\n } else {\n this.events.clear();\n }\n }\n\n public listenerCount(event: string): number {\n return this.events.get(event)?.length ?? 0;\n }\n\n public eventNames(): string[] {\n return Array.from(this.events.keys());\n }\n\n public hasListeners(event: string): boolean {\n return this.listenerCount(event) > 0;\n }\n}\n\n/** Shared singleton instance */\nexport const eventBus = EventBus.getInstance();\n","/**\n * Authorization Guards\n *\n * Pure utility functions that throw AuthenticationError / AuthorizationError.\n * Suitable for API routes, Server Actions, and middleware.\n *\n * Note: getUserFromRequest / requireAuthFromRequest are intentionally omitted —\n * they depend on Firebase Admin and the user repository; implement them in your\n * app layer using these primitives.\n */\n\nimport { AuthenticationError, AuthorizationError } from \"@mohasinac/errors\";\n\nexport type UserRole = \"admin\" | \"moderator\" | \"seller\" | \"user\";\n\nconst ROLE_HIERARCHY: Record<UserRole, number> = {\n admin: 4,\n moderator: 3,\n seller: 2,\n user: 1,\n};\n\nconst MSG = {\n NOT_AUTHENTICATED: \"Please log in to continue\",\n FORBIDDEN: \"You do not have permission to perform this action\",\n EMAIL_NOT_VERIFIED: \"Please verify your email address before logging in\",\n ACCOUNT_DISABLED: \"Your account has been disabled. Please contact support\",\n};\n\nexport function requireAuth(user: unknown): void {\n if (!user) {\n throw new AuthenticationError(MSG.NOT_AUTHENTICATED);\n }\n}\n\nexport function requireRole(\n user: Record<string, unknown> | null | undefined,\n roles: UserRole | UserRole[],\n): void {\n if (!user) throw new AuthenticationError(MSG.NOT_AUTHENTICATED);\n const requiredRoles = Array.isArray(roles) ? roles : [roles];\n const userRole = (user.role as UserRole) || \"user\";\n if (!requiredRoles.includes(userRole)) {\n throw new AuthorizationError(MSG.FORBIDDEN);\n }\n}\n\nexport function requireOwnership(\n user: Record<string, unknown> | null | undefined,\n resourceOwnerId: string,\n): void {\n if (!user) throw new AuthenticationError(MSG.NOT_AUTHENTICATED);\n if (user.uid !== resourceOwnerId) {\n throw new AuthorizationError(MSG.FORBIDDEN);\n }\n}\n\nexport function requireEmailVerified(\n user: Record<string, unknown> | null | undefined,\n): void {\n if (!user) throw new AuthenticationError(MSG.NOT_AUTHENTICATED);\n if (!user.emailVerified) throw new AuthorizationError(MSG.EMAIL_NOT_VERIFIED);\n}\n\nexport function requireActiveAccount(\n user: Record<string, unknown> | null | undefined,\n): void {\n if (!user) throw new AuthenticationError(MSG.NOT_AUTHENTICATED);\n if (user.disabled) throw new AuthorizationError(MSG.ACCOUNT_DISABLED);\n}\n\n/**\n * Check if currentUserRole is allowed to change a target user's role.\n * - admin: can change anyone's role\n * - moderator: can only change user → seller\n */\nexport function canChangeRole(\n currentUserRole: UserRole,\n targetCurrentRole: UserRole,\n targetNewRole: UserRole,\n): boolean {\n if (currentUserRole === \"admin\") return true;\n if (currentUserRole === \"moderator\") {\n return targetCurrentRole === \"user\" && targetNewRole === \"seller\";\n }\n return false;\n}\n\n/** Return the numeric hierarchy level for a role. */\nexport function getRoleLevel(role: UserRole): number {\n return ROLE_HIERARCHY[role] ?? 0;\n}\n","/**\n * Error Tracking — Provider-agnostic types, enums, and utilities.\n *\n * Implementations that require Firebase Crashlytics or external SDKs should\n * be wired in the app's monitoring setup by calling setErrorTracker().\n */\n\nexport enum ErrorSeverity {\n LOW = \"low\",\n MEDIUM = \"medium\",\n HIGH = \"high\",\n CRITICAL = \"critical\",\n}\n\nexport enum ErrorCategory {\n AUTHENTICATION = \"authentication\",\n API = \"api\",\n DATABASE = \"database\",\n VALIDATION = \"validation\",\n NETWORK = \"network\",\n PERMISSION = \"permission\",\n UI = \"ui\",\n UNKNOWN = \"unknown\",\n}\n\nexport interface ErrorContext {\n userId?: string;\n userRole?: string;\n page?: string;\n component?: string;\n action?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface TrackedError {\n message: string;\n stack?: string;\n category: ErrorCategory;\n severity: ErrorSeverity;\n context?: ErrorContext;\n timestamp: string;\n}\n\nexport type ErrorTrackerFn = (\n error: Error | string,\n category: ErrorCategory,\n severity: ErrorSeverity,\n context?: ErrorContext,\n) => void;\n\nconst TRACKER_KEY = \"__mohasinac_error_tracker__\" as const;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __mohasinac_error_tracker__: ErrorTrackerFn | undefined;\n}\n\nfunction getTracker(): ErrorTrackerFn {\n return (\n globalThis.__mohasinac_error_tracker__ ??\n ((error, category, severity, context) => {\n const msg = error instanceof Error ? error.message : error;\n console.error(`[${severity.toUpperCase()}][${category}] ${msg}`, context);\n })\n );\n}\n\n/** Override the default console-based tracker with a custom implementation. */\nexport function setErrorTracker(fn: ErrorTrackerFn): void {\n (globalThis as Record<string, unknown>)[TRACKER_KEY] = fn;\n}\n\nexport function trackError(\n error: Error | string,\n category: ErrorCategory = ErrorCategory.UNKNOWN,\n severity: ErrorSeverity = ErrorSeverity.MEDIUM,\n context?: ErrorContext,\n): void {\n getTracker()(error, category, severity, context);\n}\n\nexport function trackApiError(\n error: Error | string,\n context?: ErrorContext,\n): void {\n trackError(error, ErrorCategory.API, ErrorSeverity.HIGH, context);\n}\n\nexport function trackAuthError(\n error: Error | string,\n context?: ErrorContext,\n): void {\n trackError(error, ErrorCategory.AUTHENTICATION, ErrorSeverity.HIGH, context);\n}\n\nexport function trackValidationError(\n error: Error | string,\n context?: ErrorContext,\n): void {\n trackError(error, ErrorCategory.VALIDATION, ErrorSeverity.LOW, context);\n}\n\nexport function trackDatabaseError(\n error: Error | string,\n context?: ErrorContext,\n): void {\n trackError(error, ErrorCategory.DATABASE, ErrorSeverity.CRITICAL, context);\n}\n\nexport function trackPermissionError(\n error: Error | string,\n context?: ErrorContext,\n): void {\n trackError(error, ErrorCategory.PERMISSION, ErrorSeverity.MEDIUM, context);\n}\n","/**\r\n * Client-Side Error Logging Utilities\r\n *\r\n * Wraps the Logger singleton for use in React components, client hooks, and\r\n * browser-only code. Automatically attaches timestamp, userAgent, and current URL.\r\n *\r\n * For server-side logging use `server-logger.ts`.\r\n */\r\n\r\nimport { logger } from \"../core\";\r\nimport { AppError } from \"../errors\";\r\n\r\nexport interface ClientErrorContext {\r\n userId?: string;\r\n component?: string;\r\n action?: string;\r\n url?: string;\r\n method?: string;\r\n statusCode?: number;\r\n [key: string]: unknown;\r\n}\r\n\r\nfunction buildClientMeta(\r\n error: unknown,\r\n context?: ClientErrorContext,\r\n): Record<string, unknown> {\r\n const base: Record<string, unknown> = {\r\n ...context,\r\n timestamp: new Date().toISOString(),\r\n userAgent:\r\n typeof navigator !== \"undefined\" ? navigator.userAgent : \"unknown\",\r\n url: typeof window !== \"undefined\" ? window.location.href : \"unknown\",\r\n };\r\n\r\n if (error instanceof AppError) {\r\n base.error = {\r\n name: error.name,\r\n message: error.message,\r\n code: error.code,\r\n statusCode: error.statusCode,\r\n data: error.data,\r\n };\r\n } else if (error instanceof Error) {\r\n base.error = {\r\n name: error.name,\r\n message: error.message,\r\n stack: error.stack,\r\n };\r\n } else {\r\n base.error = error;\r\n }\r\n\r\n return base;\r\n}\r\n\r\nexport const logClientError = (\r\n message: string,\r\n error: unknown,\r\n context?: ClientErrorContext,\r\n): void => {\r\n logger.error(message, buildClientMeta(error, context));\r\n};\r\n\r\nexport const logClientWarning = (\r\n message: string,\r\n data?: ClientErrorContext,\r\n): void => {\r\n logger.warn(message, { ...data, timestamp: new Date().toISOString() });\r\n};\r\n\r\nexport const logClientInfo = (\r\n message: string,\r\n data?: ClientErrorContext,\r\n): void => {\r\n logger.info(message, { ...data, timestamp: new Date().toISOString() });\r\n};\r\n\r\nexport const logClientDebug = (\r\n message: string,\r\n data?: ClientErrorContext,\r\n): void => {\r\n logger.debug(message, { ...data, timestamp: new Date().toISOString() });\r\n};\r\n","/**\r\n * Server-Side Error Logging Utilities\r\n *\r\n * Wraps the Logger singleton for use in API routes, server components, and\r\n * server actions. Attaches request metadata when a NextRequest is available.\r\n *\r\n * IMPORTANT: Only import this file in server-side code. For client-side code\r\n * use `client-logger.ts`.\r\n */\r\n\r\nimport { logger } from \"../core\";\r\nimport { AppError } from \"../errors\";\r\nimport { type NextRequest } from \"next/server\";\r\n\r\nexport interface ServerErrorContext {\r\n userId?: string;\r\n endpoint?: string;\r\n method?: string;\r\n statusCode?: number;\r\n requestId?: string;\r\n [key: string]: unknown;\r\n}\r\n\r\n/** Pull the commonly needed headers from a NextRequest in one call. */\r\nexport const extractRequestMetadata = (request: NextRequest) => ({\r\n method: request.method,\r\n url: request.url,\r\n userAgent: request.headers.get(\"user-agent\") ?? \"unknown\",\r\n ip:\r\n request.headers.get(\"x-forwarded-for\") ??\r\n request.headers.get(\"x-real-ip\") ??\r\n \"unknown\",\r\n referer: request.headers.get(\"referer\") ?? \"none\",\r\n});\r\n\r\nfunction buildServerMeta(\r\n error: unknown,\r\n context?: ServerErrorContext,\r\n): Record<string, unknown> {\r\n const base: Record<string, unknown> = {\r\n ...context,\r\n timestamp: new Date().toISOString(),\r\n };\r\n\r\n if (error instanceof AppError) {\r\n base.error = {\r\n name: error.name,\r\n message: error.message,\r\n code: error.code,\r\n statusCode: error.statusCode,\r\n data: error.data,\r\n };\r\n } else if (error instanceof Error) {\r\n base.error = {\r\n name: error.name,\r\n message: error.message,\r\n stack: error.stack,\r\n };\r\n } else {\r\n base.error = error;\r\n }\r\n\r\n return base;\r\n}\r\n\r\nexport const logServerError = (\r\n message: string,\r\n error: unknown,\r\n context?: ServerErrorContext,\r\n): void => {\r\n logger.error(message, buildServerMeta(error, context));\r\n};\r\n\r\nexport const logServerWarning = (\r\n message: string,\r\n data?: ServerErrorContext,\r\n): void => {\r\n logger.warn(message, { ...data, timestamp: new Date().toISOString() });\r\n};\r\n\r\nexport const logServerInfo = (\r\n message: string,\r\n data?: ServerErrorContext,\r\n): void => {\r\n logger.info(message, { ...data, timestamp: new Date().toISOString() });\r\n};\r\n\r\nexport const logServerDebug = (\r\n message: string,\r\n data?: ServerErrorContext,\r\n): void => {\r\n logger.debug(message, { ...data, timestamp: new Date().toISOString() });\r\n};\r\n","\"use client\";\r\n\r\n/**\r\n * Generic React Error Boundary\r\n *\r\n * Catches errors anywhere in the wrapped component tree and renders a\r\n * configurable fallback UI. Pass `fallback` for a fully custom view, or\r\n * `renderFallback` for a render-prop version that receives the caught error\r\n * and a reset handler.\r\n */\r\n\r\nimport React, { Component, type ReactNode, type ErrorInfo } from \"react\";\r\nimport { Logger } from \"../core\";\r\nimport { trackError, ErrorCategory, ErrorSeverity } from \"../monitoring\";\r\n\r\nexport interface ErrorBoundaryProps {\r\n children: ReactNode;\r\n /** Static fallback node — shown instead of the default error UI. */\r\n fallback?: ReactNode;\r\n /** Render-prop fallback — receives the error and a reset callback. */\r\n renderFallback?: (error: Error | null, reset: () => void) => ReactNode;\r\n /** Optional callback invoked after componentDidCatch. */\r\n onError?: (error: Error, errorInfo: ErrorInfo) => void;\r\n}\r\n\r\ninterface State {\r\n hasError: boolean;\r\n error: Error | null;\r\n}\r\n\r\nfunction DefaultFallback({\r\n error,\r\n onReset,\r\n}: {\r\n error: Error | null;\r\n onReset: () => void;\r\n}) {\r\n return (\r\n <div\r\n role=\"alert\"\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: \"100vh\",\r\n padding: \"2rem\",\r\n textAlign: \"center\",\r\n }}\r\n >\r\n <h1 style={{ fontSize: \"1.5rem\", marginBottom: \"0.5rem\" }}>\r\n Something went wrong\r\n </h1>\r\n <p style={{ marginBottom: \"1.5rem\", opacity: 0.7 }}>\r\n An unexpected error occurred. Please try again.\r\n </p>\r\n {process.env.NODE_ENV === \"development\" && error && (\r\n <pre\r\n style={{\r\n fontSize: \"0.75rem\",\r\n padding: \"1rem\",\r\n background: \"#f3f4f6\",\r\n borderRadius: \"0.5rem\",\r\n textAlign: \"left\",\r\n maxWidth: \"40rem\",\r\n overflow: \"auto\",\r\n marginBottom: \"1.5rem\",\r\n }}\r\n >\r\n {error.message}\r\n </pre>\r\n )}\r\n <button onClick={onReset} type=\"button\">\r\n Try again\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, State> {\r\n private readonly log = Logger.getInstance({ enableConsole: true });\r\n\r\n constructor(props: ErrorBoundaryProps) {\r\n super(props);\r\n this.state = { hasError: false, error: null };\r\n }\r\n\r\n static getDerivedStateFromError(error: Error): State {\r\n return { hasError: true, error };\r\n }\r\n\r\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\r\n this.log.error(\"ErrorBoundary caught an error\", {\r\n error: error.message,\r\n stack: error.stack,\r\n componentStack: errorInfo.componentStack,\r\n timestamp: new Date().toISOString(),\r\n });\r\n\r\n trackError(error, ErrorCategory.UI, ErrorSeverity.HIGH);\r\n\r\n this.props.onError?.(error, errorInfo);\r\n }\r\n\r\n handleReset = () => {\r\n this.setState({ hasError: false, error: null });\r\n };\r\n\r\n render() {\r\n if (!this.state.hasError) {\r\n return this.props.children;\r\n }\r\n\r\n if (this.props.renderFallback) {\r\n return this.props.renderFallback(this.state.error, this.handleReset);\r\n }\r\n\r\n if (this.props.fallback) {\r\n return this.props.fallback;\r\n }\r\n\r\n return (\r\n <DefaultFallback error={this.state.error} onReset={this.handleReset} />\r\n );\r\n }\r\n}\r\n"]}