@mohasinac/appkit 3.8.2 → 3.9.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 (479) hide show
  1. package/dist/_internal/client/features/live/LiveItemDetailView.js +2 -2
  2. package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +4 -4
  3. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +8 -8
  4. package/dist/_internal/client/features/lottery/LotteryAdminSlotView.d.ts +1 -1
  5. package/dist/_internal/client/features/lottery/LotteryAdminSlotView.js +2 -2
  6. package/dist/_internal/server/features/bundles/actions.js +2 -2
  7. package/dist/_internal/server/features/bundles/og.d.ts +1 -1
  8. package/dist/_internal/server/features/bundles/og.js +4 -5
  9. package/dist/_internal/server/features/checkout/actions.js +57 -21
  10. package/dist/_internal/server/features/checkout/stock-restore.d.ts +19 -0
  11. package/dist/_internal/server/features/checkout/stock-restore.js +80 -0
  12. package/dist/_internal/server/features/checkout/upi-resolution.d.ts +11 -0
  13. package/dist/_internal/server/features/checkout/upi-resolution.js +28 -0
  14. package/dist/_internal/server/features/classified/og.js +1 -1
  15. package/dist/_internal/server/features/digital-code/og.js +1 -1
  16. package/dist/_internal/server/features/item-requests/og.d.ts +2 -2
  17. package/dist/_internal/server/features/item-requests/og.js +4 -5
  18. package/dist/_internal/server/features/live/og.js +1 -1
  19. package/dist/_internal/server/features/lottery/adapters.d.ts +2 -2
  20. package/dist/_internal/server/features/lottery/adapters.js +1 -1
  21. package/dist/_internal/server/features/orders/actions.d.ts +28 -0
  22. package/dist/_internal/server/features/orders/actions.js +239 -4
  23. package/dist/_internal/server/features/orders/adapters.js +3 -0
  24. package/dist/_internal/server/features/payments/data.js +3 -2
  25. package/dist/_internal/server/features/payouts/actions.d.ts +2 -2
  26. package/dist/_internal/server/features/payouts/actions.js +4 -3
  27. package/dist/_internal/server/features/pre-orders/service.d.ts +1 -1
  28. package/dist/_internal/server/features/pre-orders/service.js +3 -2
  29. package/dist/_internal/server/features/prize-draws/og.js +5 -5
  30. package/dist/_internal/server/features/products/og.js +1 -1
  31. package/dist/_internal/server/features/promotions/service.js +3 -1
  32. package/dist/_internal/server/features/refunds/actions.d.ts +2 -2
  33. package/dist/_internal/server/features/refunds/actions.js +7 -6
  34. package/dist/_internal/server/functions/firestore.js +1 -1
  35. package/dist/_internal/server/functions/scheduled.d.ts +4 -1
  36. package/dist/_internal/server/functions/scheduled.js +26 -2
  37. package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +1 -1
  38. package/dist/_internal/server/jobs/core/hardBanCascade.d.ts +4 -0
  39. package/dist/_internal/server/jobs/core/hardBanCascade.js +15 -4
  40. package/dist/_internal/server/jobs/core/hardBanReinstatement.d.ts +16 -0
  41. package/dist/_internal/server/jobs/core/hardBanReinstatement.js +63 -0
  42. package/dist/_internal/server/jobs/core/jobRunners.js +3 -1
  43. package/dist/_internal/server/jobs/core/onScamReportCreate.js +1 -1
  44. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +10 -0
  45. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +60 -0
  46. package/dist/_internal/server/jobs/core/paymentWindowTimeout.d.ts +15 -0
  47. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +59 -0
  48. package/dist/_internal/server/jobs/core/pendingOrderTimeout.d.ts +7 -0
  49. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +32 -6
  50. package/dist/_internal/server/jobs/handlers/hardBanReinstatement.d.ts +2 -0
  51. package/dist/_internal/server/jobs/handlers/hardBanReinstatement.js +2 -0
  52. package/dist/_internal/server/jobs/handlers/index.d.ts +3 -0
  53. package/dist/_internal/server/jobs/handlers/index.js +3 -0
  54. package/dist/_internal/server/jobs/handlers/messages.d.ts +4 -0
  55. package/dist/_internal/server/jobs/handlers/messages.js +4 -0
  56. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.d.ts +3 -3
  57. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +12 -12
  58. package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.d.ts +1 -1
  59. package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.js +5 -5
  60. package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.d.ts +2 -0
  61. package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.js +2 -0
  62. package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.d.ts +2 -0
  63. package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.js +2 -0
  64. package/dist/_internal/shared/actions/action-registry.js +27 -0
  65. package/dist/_internal/shared/checkout/order-math.js +3 -2
  66. package/dist/_internal/shared/checkout/rules/_defaults.js +1 -0
  67. package/dist/_internal/shared/checkout/rules/preorder.rule.js +7 -0
  68. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +7 -0
  69. package/dist/_internal/shared/checkout/rules/types.d.ts +11 -0
  70. package/dist/_internal/shared/features/auctions/errors.js +1 -1
  71. package/dist/_internal/shared/features/categories/bundle-copy.d.ts +0 -1
  72. package/dist/_internal/shared/features/categories/bundle-copy.js +0 -1
  73. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +6 -6
  74. package/dist/_internal/shared/features/categories/bundle-schemas.js +2 -2
  75. package/dist/_internal/shared/features/checkout/config.d.ts +3 -3
  76. package/dist/_internal/shared/features/checkout/config.js +3 -3
  77. package/dist/_internal/shared/features/emi/schedule.d.ts +6 -6
  78. package/dist/_internal/shared/features/emi/schedule.js +10 -9
  79. package/dist/_internal/shared/features/promotions/errors.js +1 -1
  80. package/dist/_internal/shared/fees/calculator.d.ts +5 -5
  81. package/dist/_internal/shared/fees/calculator.js +19 -19
  82. package/dist/client.d.ts +1 -1
  83. package/dist/client.js +1 -1
  84. package/dist/constants/api-endpoints.d.ts +9 -0
  85. package/dist/constants/api-endpoints.js +3 -0
  86. package/dist/constants/field-names.d.ts +4 -0
  87. package/dist/constants/field-names.js +4 -0
  88. package/dist/features/admin/components/AdminArtView.js +2 -2
  89. package/dist/features/admin/components/AdminBidsView.js +2 -2
  90. package/dist/features/admin/components/AdminBundleEditorView.d.ts +1 -1
  91. package/dist/features/admin/components/AdminBundleEditorView.js +8 -8
  92. package/dist/features/admin/components/AdminBundlesView.js +6 -6
  93. package/dist/features/admin/components/AdminClassifiedView.js +2 -2
  94. package/dist/features/admin/components/AdminDigitalCodesView.js +2 -2
  95. package/dist/features/admin/components/AdminLiveView.js +2 -2
  96. package/dist/features/admin/components/AdminOrderEditorView.d.ts +6 -1
  97. package/dist/features/admin/components/AdminOrderEditorView.js +45 -5
  98. package/dist/features/admin/components/AdminOrdersView.js +8 -3
  99. package/dist/features/admin/components/AdminPayoutsView.js +2 -2
  100. package/dist/features/admin/components/AdminPrizeDrawsView.js +2 -2
  101. package/dist/features/admin/components/AdminReturnRequestsView.js +2 -2
  102. package/dist/features/admin/components/AdminSiteSettingsView.js +11 -11
  103. package/dist/features/admin/components/AdminStickersView.js +2 -2
  104. package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
  105. package/dist/features/admin/hooks/useAdminListingData.d.ts +1 -1
  106. package/dist/features/admin/hooks/useAdminListingData.js +3 -2
  107. package/dist/features/admin/schemas/firestore.d.ts +9 -7
  108. package/dist/features/admin/schemas/firestore.js +4 -3
  109. package/dist/features/auctions/components/AuctionBidsTable.js +3 -3
  110. package/dist/features/auth/checkout-value-otp.d.ts +46 -0
  111. package/dist/features/auth/checkout-value-otp.js +73 -0
  112. package/dist/features/auth/repository/user.repository.d.ts +6 -0
  113. package/dist/features/auth/repository/user.repository.js +19 -0
  114. package/dist/features/auth/schemas/firestore.d.ts +10 -0
  115. package/dist/features/auth/schemas/firestore.js +2 -0
  116. package/dist/features/cart/actions/cart-actions.d.ts +1 -1
  117. package/dist/features/cart/actions/cart-actions.js +4 -4
  118. package/dist/features/cart/components/CartView.d.ts +2 -2
  119. package/dist/features/cart/components/ShippingPicker.d.ts +4 -4
  120. package/dist/features/cart/components/ShippingPicker.js +11 -11
  121. package/dist/features/cart/repository/cart.repository.d.ts +1 -1
  122. package/dist/features/cart/repository/cart.repository.js +2 -2
  123. package/dist/features/cart/schemas/firestore.d.ts +2 -2
  124. package/dist/features/catalogue/components/CatalogueItemEditorView.js +3 -3
  125. package/dist/features/catalogue/components/PublicCatalogueView.js +2 -2
  126. package/dist/features/catalogue/schemas/validation.js +1 -1
  127. package/dist/features/categories/components/BundleCollage.js +2 -2
  128. package/dist/features/categories/components/BundleDetailView.js +2 -2
  129. package/dist/features/categories/components/BundleItemsPicker.d.ts +1 -1
  130. package/dist/features/categories/components/BundleItemsPicker.js +2 -2
  131. package/dist/features/categories/components/CategoryBundlesListing.js +2 -2
  132. package/dist/features/categories/schemas/firestore.d.ts +1 -1
  133. package/dist/features/categories/schemas/index.d.ts +3 -3
  134. package/dist/features/categories/schemas/index.js +2 -2
  135. package/dist/features/checkout/actions/checkout-value-otp-actions.d.ts +16 -0
  136. package/dist/features/checkout/actions/checkout-value-otp-actions.js +83 -0
  137. package/dist/features/checkout/actions/index.d.ts +1 -0
  138. package/dist/features/checkout/actions/index.js +1 -0
  139. package/dist/features/checkout/schemas/firestore.d.ts +1 -1
  140. package/dist/features/classified/components/index.d.ts +0 -4
  141. package/dist/features/classified/components/index.js +0 -2
  142. package/dist/features/digital-codes/components/index.d.ts +0 -4
  143. package/dist/features/digital-codes/components/index.js +0 -2
  144. package/dist/features/events/schemas/index.d.ts +1 -1
  145. package/dist/features/events/schemas/index.js +1 -1
  146. package/dist/features/homepage/components/FeaturedBundlesSection.js +2 -2
  147. package/dist/features/live/components/index.d.ts +0 -4
  148. package/dist/features/live/components/index.js +0 -2
  149. package/dist/features/lottery/types/index.d.ts +3 -3
  150. package/dist/features/lottery/types/index.js +5 -5
  151. package/dist/features/orders/components/OrderPaymentSummary.js +2 -2
  152. package/dist/features/orders/components/OrderSiblingPayments.js +1 -1
  153. package/dist/features/orders/components/RefundHistoryTable.js +1 -1
  154. package/dist/features/orders/components/RefundRequestView.js +1 -1
  155. package/dist/features/orders/constants/payment-window.d.ts +10 -0
  156. package/dist/features/orders/constants/payment-window.js +10 -0
  157. package/dist/features/orders/repository/orders.repository.d.ts +25 -0
  158. package/dist/features/orders/repository/orders.repository.js +50 -1
  159. package/dist/features/orders/schemas/firestore.d.ts +50 -2
  160. package/dist/features/orders/schemas/index.d.ts +24 -24
  161. package/dist/features/orders/schemas/index.js +20 -20
  162. package/dist/features/orders/types/index.d.ts +4 -0
  163. package/dist/features/orders/utils/bundle-grouping.d.ts +1 -1
  164. package/dist/features/orders/utils/bundle-grouping.js +1 -1
  165. package/dist/features/payments/schemas/index.d.ts +10 -10
  166. package/dist/features/payments/schemas/index.js +9 -9
  167. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +2 -2
  168. package/dist/features/products/components/ArtStickersListView.d.ts +7 -0
  169. package/dist/features/products/components/ArtStickersListView.js +57 -0
  170. package/dist/features/products/components/GroupSettingsPanel.js +1 -1
  171. package/dist/features/products/components/MakeOfferButton.js +3 -3
  172. package/dist/features/products/components/MarketplaceBundleCard.d.ts +1 -1
  173. package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
  174. package/dist/features/products/components/PrizeDrawCollage.js +2 -2
  175. package/dist/features/products/components/PrizeDrawItemsEditor.js +2 -2
  176. package/dist/features/products/components/PrizeRevealModal.js +1 -1
  177. package/dist/features/products/components/ProductDetailPageView.js +2 -9
  178. package/dist/features/products/components/ProductForm.js +2 -2
  179. package/dist/features/products/components/ProductGrid.js +2 -2
  180. package/dist/features/products/components/ProductsIndexListing.d.ts +13 -1
  181. package/dist/features/products/components/ProductsIndexListing.js +7 -5
  182. package/dist/features/products/components/ProductsIndexPageView.js +6 -1
  183. package/dist/features/products/constants/listing-tabs.d.ts +42 -17
  184. package/dist/features/products/constants/listing-tabs.js +25 -6
  185. package/dist/features/products/schemas/catalog-product.d.ts +5 -5
  186. package/dist/features/products/schemas/catalog-product.js +1 -1
  187. package/dist/features/products/schemas/firestore.d.ts +5 -5
  188. package/dist/features/products/schemas/firestore.js +2 -2
  189. package/dist/features/products/types/index.d.ts +5 -2
  190. package/dist/features/promotions/components/CouponCard.js +2 -2
  191. package/dist/features/promotions/schemas/firestore.d.ts +2 -0
  192. package/dist/features/promotions/schemas/firestore.js +1 -0
  193. package/dist/features/promotions/schemas/index.d.ts +14 -14
  194. package/dist/features/promotions/schemas/index.js +6 -6
  195. package/dist/features/scams/components/ScamProfileView.js +3 -7
  196. package/dist/features/scams/components/ScamRegistryView.js +2 -6
  197. package/dist/features/scams/schemas/firestore.d.ts +1 -1
  198. package/dist/features/search/components/Search.d.ts +1 -1
  199. package/dist/features/seller/actions/offer-actions.js +1 -1
  200. package/dist/features/seller/components/PrintCenterView.js +2 -2
  201. package/dist/features/seller/components/QuickProductForm.js +5 -5
  202. package/dist/features/seller/components/SellerArtView.js +2 -2
  203. package/dist/features/seller/components/SellerAuctionsView.js +2 -2
  204. package/dist/features/seller/components/SellerBidsView.js +2 -2
  205. package/dist/features/seller/components/SellerBundlesView.js +6 -6
  206. package/dist/features/seller/components/SellerClassifiedView.js +2 -2
  207. package/dist/features/seller/components/SellerDigitalCodesView.js +2 -2
  208. package/dist/features/seller/components/SellerLiveView.js +2 -2
  209. package/dist/features/seller/components/SellerOffersView.js +2 -2
  210. package/dist/features/seller/components/SellerOrdersView.js +3 -3
  211. package/dist/features/seller/components/SellerPayoutRequestView.js +2 -2
  212. package/dist/features/seller/components/SellerPayoutSettingsView.js +2 -2
  213. package/dist/features/seller/components/SellerPayoutsView.js +2 -2
  214. package/dist/features/seller/components/SellerPreOrdersView.js +2 -2
  215. package/dist/features/seller/components/SellerPrizeDrawsView.js +2 -2
  216. package/dist/features/seller/components/SellerProductShell.js +8 -8
  217. package/dist/features/seller/components/SellerProductsView.js +1 -1
  218. package/dist/features/seller/components/SellerShippingView.js +6 -6
  219. package/dist/features/seller/components/SellerStickersView.js +2 -2
  220. package/dist/features/seller/hooks/useSellerListingData.d.ts +1 -1
  221. package/dist/features/seller/hooks/useSellerListingData.js +3 -2
  222. package/dist/features/shipments/components/AdminShipmentEditorView.js +10 -10
  223. package/dist/features/shipments/components/AdminShipmentLotItemsView.js +4 -4
  224. package/dist/features/shipments/components/AdminShipmentProjectionsView.js +5 -5
  225. package/dist/features/shipments/components/AdminShipmentsView.js +4 -4
  226. package/dist/features/shipments/repository/shipment-lots.repository.d.ts +2 -2
  227. package/dist/features/shipments/repository/shipment-lots.repository.js +8 -8
  228. package/dist/features/shipments/schemas/firestore.d.ts +21 -21
  229. package/dist/features/shipments/schemas/firestore.js +9 -9
  230. package/dist/features/shipments/schemas/validation.d.ts +30 -30
  231. package/dist/features/shipments/schemas/validation.js +6 -6
  232. package/dist/features/shipments/utils/cost-allocation.d.ts +5 -5
  233. package/dist/features/shipments/utils/cost-allocation.js +39 -38
  234. package/dist/features/store-extensions/schemas/firestore.d.ts +5 -5
  235. package/dist/features/stores/components/StoreDetailLayoutView.js +9 -13
  236. package/dist/features/stores/schemas/firestore.d.ts +7 -7
  237. package/dist/features/stores/schemas/index.d.ts +84 -84
  238. package/dist/features/stores/schemas/index.js +5 -5
  239. package/dist/features/tester/seed-data/categories-tester-seed-data.js +1 -1
  240. package/dist/features/tester/seed-data/products-tester-seed-data.js +6 -6
  241. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +9 -2
  242. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +8 -1
  243. package/dist/features/whatsapp-bot/helpers/whatsapp.js +13 -2
  244. package/dist/features/whatsapp-bot/types/index.d.ts +9 -1
  245. package/dist/index.d.ts +3 -7
  246. package/dist/index.js +7 -5
  247. package/dist/next/routing/route-map.d.ts +2 -0
  248. package/dist/next/routing/route-map.js +6 -0
  249. package/dist/schemas/firestore-helpers.d.ts +2 -2
  250. package/dist/schemas/firestore-helpers.js +2 -2
  251. package/dist/schemas/registry.d.ts +73 -73
  252. package/dist/seed/bids-seed-data.js +6 -6
  253. package/dist/seed/blog-posts-seed-data.js +1 -0
  254. package/dist/seed/cart-seed-data.js +13 -13
  255. package/dist/seed/catalogue-seed-data.js +6 -6
  256. package/dist/seed/categories-seed-data.js +5 -5
  257. package/dist/seed/claimed-coupons-seed-data.js +3 -3
  258. package/dist/seed/coupons-seed-data.js +20 -20
  259. package/dist/seed/events-seed-data.js +27 -27
  260. package/dist/seed/factories/bid.factory.js +1 -1
  261. package/dist/seed/faq-seed-data.js +20 -1
  262. package/dist/seed/grouped-listings-seed-data.d.ts +2 -2
  263. package/dist/seed/grouped-listings-seed-data.js +3 -3
  264. package/dist/seed/offers-seed-data.js +19 -19
  265. package/dist/seed/orders-seed-data.js +29 -29
  266. package/dist/seed/payouts-seed-data.js +7 -7
  267. package/dist/seed/products-auctions-seed-data.js +6 -6
  268. package/dist/seed/products-preorders-seed-data.d.ts +2 -2
  269. package/dist/seed/products-preorders-seed-data.js +1 -1
  270. package/dist/seed/products-standard-seed-data.js +8 -8
  271. package/dist/seed/scammers-seed-data.js +2 -2
  272. package/dist/seed/shipments-seed-data.js +29 -29
  273. package/dist/seed/site-settings-seed-data.js +3 -2
  274. package/dist/seed/store-extensions-seed-data.js +8 -8
  275. package/dist/seed/stores-seed-data.js +37 -8
  276. package/dist/seed/users-seed-data.js +38 -1
  277. package/dist/server-entry.d.ts +1 -3
  278. package/dist/server-entry.js +1 -3
  279. package/dist/server.d.ts +2 -1
  280. package/dist/server.js +3 -1
  281. package/dist/ui/components/PriceDisplay.js +3 -12
  282. package/dist/utils/number.formatter.d.ts +2 -7
  283. package/dist/utils/number.formatter.js +3 -8
  284. package/package.json +1 -1
  285. package/scripts/seed-cli.mjs +8 -3
  286. package/dist/_internal/client/scaffolds/DashboardScaffold.d.ts +0 -34
  287. package/dist/_internal/client/scaffolds/DashboardScaffold.js +0 -26
  288. package/dist/_internal/client/theme/__tests__/ThemeProvider.test.d.ts +0 -1
  289. package/dist/_internal/client/theme/__tests__/ThemeProvider.test.js +0 -109
  290. package/dist/_internal/server/features/auctions/__tests__/service.test.d.ts +0 -1
  291. package/dist/_internal/server/features/auctions/__tests__/service.test.js +0 -140
  292. package/dist/_internal/server/features/checkout/__tests__/actions.test.d.ts +0 -1
  293. package/dist/_internal/server/features/checkout/__tests__/actions.test.js +0 -600
  294. package/dist/_internal/server/features/refunds/__tests__/actions.test.d.ts +0 -1
  295. package/dist/_internal/server/features/refunds/__tests__/actions.test.js +0 -263
  296. package/dist/_internal/server/jobs/core/__tests__/auctionSettlement.test.d.ts +0 -1
  297. package/dist/_internal/server/jobs/core/__tests__/auctionSettlement.test.js +0 -249
  298. package/dist/_internal/server/jobs/core/__tests__/couponExpiry.test.d.ts +0 -1
  299. package/dist/_internal/server/jobs/core/__tests__/couponExpiry.test.js +0 -65
  300. package/dist/_internal/server/jobs/core/__tests__/listingProcessor.test.d.ts +0 -1
  301. package/dist/_internal/server/jobs/core/__tests__/listingProcessor.test.js +0 -163
  302. package/dist/_internal/server/jobs/core/__tests__/mediaTmpCleanup.test.d.ts +0 -1
  303. package/dist/_internal/server/jobs/core/__tests__/mediaTmpCleanup.test.js +0 -115
  304. package/dist/_internal/server/jobs/core/__tests__/onBidPlaced.test.d.ts +0 -1
  305. package/dist/_internal/server/jobs/core/__tests__/onBidPlaced.test.js +0 -201
  306. package/dist/_internal/server/jobs/core/__tests__/onOrderCreate.test.d.ts +0 -1
  307. package/dist/_internal/server/jobs/core/__tests__/onOrderCreate.test.js +0 -169
  308. package/dist/_internal/server/jobs/core/__tests__/onOrderStatusChange.test.d.ts +0 -1
  309. package/dist/_internal/server/jobs/core/__tests__/onOrderStatusChange.test.js +0 -148
  310. package/dist/_internal/server/jobs/core/__tests__/onProductStockChange.test.d.ts +0 -1
  311. package/dist/_internal/server/jobs/core/__tests__/onProductStockChange.test.js +0 -210
  312. package/dist/_internal/server/jobs/core/__tests__/onReviewWrite.test.d.ts +0 -1
  313. package/dist/_internal/server/jobs/core/__tests__/onReviewWrite.test.js +0 -190
  314. package/dist/_internal/server/jobs/core/__tests__/onUserBanChange.test.d.ts +0 -1
  315. package/dist/_internal/server/jobs/core/__tests__/onUserBanChange.test.js +0 -161
  316. package/dist/_internal/server/jobs/core/__tests__/payoutBatch.test.d.ts +0 -1
  317. package/dist/_internal/server/jobs/core/__tests__/payoutBatch.test.js +0 -302
  318. package/dist/_internal/server/jobs/core/__tests__/pendingOrderTimeout.test.d.ts +0 -1
  319. package/dist/_internal/server/jobs/core/__tests__/pendingOrderTimeout.test.js +0 -96
  320. package/dist/_internal/server/jobs/core/__tests__/triggerEventRaffle.test.d.ts +0 -1
  321. package/dist/_internal/server/jobs/core/__tests__/triggerEventRaffle.test.js +0 -252
  322. package/dist/_internal/server/jobs/core/__tests__/wrapJobHandler.test.d.ts +0 -1
  323. package/dist/_internal/server/jobs/core/__tests__/wrapJobHandler.test.js +0 -129
  324. package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.d.ts +0 -15
  325. package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.js +0 -38
  326. package/dist/_internal/server/providers/index.d.ts +0 -11
  327. package/dist/_internal/server/providers/index.js +0 -11
  328. package/dist/_internal/server/providers/payment/razorpay-mock.d.ts +0 -52
  329. package/dist/_internal/server/providers/payment/razorpay-mock.js +0 -118
  330. package/dist/_internal/server/providers/resolve.d.ts +0 -36
  331. package/dist/_internal/server/providers/resolve.js +0 -31
  332. package/dist/_internal/server/providers/shipping/shiprocket-mock.d.ts +0 -29
  333. package/dist/_internal/server/providers/shipping/shiprocket-mock.js +0 -152
  334. package/dist/_internal/shared/types/__tests__/action-result.test.d.ts +0 -1
  335. package/dist/_internal/shared/types/__tests__/action-result.test.js +0 -65
  336. package/dist/errors/__tests__/error-mapping.test.d.ts +0 -1
  337. package/dist/errors/__tests__/error-mapping.test.js +0 -122
  338. package/dist/errors/__tests__/safe-read.test.d.ts +0 -1
  339. package/dist/errors/__tests__/safe-read.test.js +0 -39
  340. package/dist/features/addresses/repository/__tests__/addresses.repository.test.d.ts +0 -1
  341. package/dist/features/addresses/repository/__tests__/addresses.repository.test.js +0 -386
  342. package/dist/features/admin/components/AdminListingScaffold.d.ts +0 -41
  343. package/dist/features/admin/components/AdminListingScaffold.js +0 -68
  344. package/dist/features/admin/components/QuickActionsPanel.d.ts +0 -15
  345. package/dist/features/admin/components/QuickActionsPanel.js +0 -5
  346. package/dist/features/admin/repository/__tests__/notification.repository.test.d.ts +0 -1
  347. package/dist/features/admin/repository/__tests__/notification.repository.test.js +0 -356
  348. package/dist/features/admin/repository/__tests__/site-settings.repository.test.d.ts +0 -1
  349. package/dist/features/admin/repository/__tests__/site-settings.repository.test.js +0 -298
  350. package/dist/features/auctions/repository/__tests__/bid.repository.test.d.ts +0 -1
  351. package/dist/features/auctions/repository/__tests__/bid.repository.test.js +0 -290
  352. package/dist/features/auctions/repository/auctions.repository.d.ts +0 -12
  353. package/dist/features/auctions/repository/auctions.repository.js +0 -42
  354. package/dist/features/auth/repository/__tests__/session.repository.test.d.ts +0 -1
  355. package/dist/features/auth/repository/__tests__/session.repository.test.js +0 -310
  356. package/dist/features/auth/repository/__tests__/session.test.d.ts +0 -1
  357. package/dist/features/auth/repository/__tests__/session.test.js +0 -146
  358. package/dist/features/auth/repository/__tests__/sms-counter.repository.test.d.ts +0 -1
  359. package/dist/features/auth/repository/__tests__/sms-counter.repository.test.js +0 -171
  360. package/dist/features/auth/repository/__tests__/sms-counter.test.d.ts +0 -1
  361. package/dist/features/auth/repository/__tests__/sms-counter.test.js +0 -88
  362. package/dist/features/auth/repository/__tests__/token.repository.test.d.ts +0 -1
  363. package/dist/features/auth/repository/__tests__/token.repository.test.js +0 -260
  364. package/dist/features/auth/repository/__tests__/token.test.d.ts +0 -1
  365. package/dist/features/auth/repository/__tests__/token.test.js +0 -140
  366. package/dist/features/auth/repository/__tests__/user.repository.test.d.ts +0 -1
  367. package/dist/features/auth/repository/__tests__/user.repository.test.js +0 -352
  368. package/dist/features/auth/repository/__tests__/user.test.d.ts +0 -1
  369. package/dist/features/auth/repository/__tests__/user.test.js +0 -226
  370. package/dist/features/before-after/repository/before-after.repository.d.ts +0 -13
  371. package/dist/features/before-after/repository/before-after.repository.js +0 -36
  372. package/dist/features/before-after/server.d.ts +0 -6
  373. package/dist/features/before-after/server.js +0 -6
  374. package/dist/features/cart/repository/__tests__/cart.repository.test.d.ts +0 -1
  375. package/dist/features/cart/repository/__tests__/cart.repository.test.js +0 -371
  376. package/dist/features/categories/repository/__tests__/categories.repository.test.d.ts +0 -1
  377. package/dist/features/categories/repository/__tests__/categories.repository.test.js +0 -813
  378. package/dist/features/collections/repository/collections.repository.d.ts +0 -8
  379. package/dist/features/collections/repository/collections.repository.js +0 -16
  380. package/dist/features/collections/server.d.ts +0 -6
  381. package/dist/features/collections/server.js +0 -6
  382. package/dist/features/events/repository/__tests__/event.repository.test.d.ts +0 -1
  383. package/dist/features/events/repository/__tests__/event.repository.test.js +0 -299
  384. package/dist/features/faq/repository/__tests__/faqs.repository.test.d.ts +0 -1
  385. package/dist/features/faq/repository/__tests__/faqs.repository.test.js +0 -311
  386. package/dist/features/forms/Form.d.ts +0 -25
  387. package/dist/features/forms/Form.js +0 -37
  388. package/dist/features/history/repository/__tests__/user-history.repository.test.d.ts +0 -1
  389. package/dist/features/history/repository/__tests__/user-history.repository.test.js +0 -180
  390. package/dist/features/homepage/repository/__tests__/carousel.repository.test.d.ts +0 -1
  391. package/dist/features/homepage/repository/__tests__/carousel.repository.test.js +0 -182
  392. package/dist/features/homepage/repository/__tests__/homepage-sections.repository.test.d.ts +0 -1
  393. package/dist/features/homepage/repository/__tests__/homepage-sections.repository.test.js +0 -185
  394. package/dist/features/layout/ListingLayout.d.ts +0 -34
  395. package/dist/features/layout/ListingLayout.js +0 -103
  396. package/dist/features/messages/repository/__tests__/conversations.repository.test.d.ts +0 -1
  397. package/dist/features/messages/repository/__tests__/conversations.repository.test.js +0 -257
  398. package/dist/features/orders/repository/__tests__/orders.repository.test.d.ts +0 -1
  399. package/dist/features/orders/repository/__tests__/orders.repository.test.js +0 -211
  400. package/dist/features/payments/repository/__tests__/payout.repository.test.d.ts +0 -1
  401. package/dist/features/payments/repository/__tests__/payout.repository.test.js +0 -292
  402. package/dist/features/pre-orders/repository/preorders.repository.d.ts +0 -8
  403. package/dist/features/pre-orders/repository/preorders.repository.js +0 -25
  404. package/dist/features/products/repository/__tests__/product-features.repository.test.d.ts +0 -1
  405. package/dist/features/products/repository/__tests__/product-features.repository.test.js +0 -329
  406. package/dist/features/products/repository/__tests__/products.repository.test.d.ts +0 -1
  407. package/dist/features/products/repository/__tests__/products.repository.test.js +0 -607
  408. package/dist/features/promotions/repository/__tests__/claimed-coupons.repository.test.d.ts +0 -1
  409. package/dist/features/promotions/repository/__tests__/claimed-coupons.repository.test.js +0 -219
  410. package/dist/features/promotions/repository/__tests__/coupons.repository.test.d.ts +0 -1
  411. package/dist/features/promotions/repository/__tests__/coupons.repository.test.js +0 -480
  412. package/dist/features/promotions/repository/promotions.repository.d.ts +0 -14
  413. package/dist/features/promotions/repository/promotions.repository.js +0 -43
  414. package/dist/features/reviews/repository/__tests__/reviews.repository.test.d.ts +0 -1
  415. package/dist/features/reviews/repository/__tests__/reviews.repository.test.js +0 -327
  416. package/dist/features/scams/repository/__tests__/scammer.repository.test.d.ts +0 -1
  417. package/dist/features/scams/repository/__tests__/scammer.repository.test.js +0 -385
  418. package/dist/features/search/repository/__tests__/search.repository.test.d.ts +0 -1
  419. package/dist/features/search/repository/__tests__/search.repository.test.js +0 -369
  420. package/dist/features/seller/components/SellerStatCard.d.ts +0 -14
  421. package/dist/features/seller/components/SellerStatCard.js +0 -6
  422. package/dist/features/seller/components/seller-products-styles.d.ts +0 -7
  423. package/dist/features/seller/components/seller-products-styles.js +0 -14
  424. package/dist/features/seller/repository/__tests__/offer.repository.test.d.ts +0 -1
  425. package/dist/features/seller/repository/__tests__/offer.repository.test.js +0 -458
  426. package/dist/features/seller/repository/seller.repository.d.ts +0 -22
  427. package/dist/features/seller/repository/seller.repository.js +0 -72
  428. package/dist/features/site-settings/components/__tests__/ThemeManagerView.test.d.ts +0 -1
  429. package/dist/features/site-settings/components/__tests__/ThemeManagerView.test.js +0 -37
  430. package/dist/features/stores/repository/__tests__/store.repository.test.d.ts +0 -1
  431. package/dist/features/stores/repository/__tests__/store.repository.test.js +0 -261
  432. package/dist/features/stores/repository/stores.repository.d.ts +0 -11
  433. package/dist/features/stores/repository/stores.repository.js +0 -37
  434. package/dist/features/support/repository/__tests__/support.repository.test.d.ts +0 -1
  435. package/dist/features/support/repository/__tests__/support.repository.test.js +0 -312
  436. package/dist/features/wishlist/repository/__tests__/user-wishlist.repository.test.d.ts +0 -1
  437. package/dist/features/wishlist/repository/__tests__/user-wishlist.repository.test.js +0 -139
  438. package/dist/features/wishlist/repository/wishlist.repository.d.ts +0 -13
  439. package/dist/features/wishlist/repository/wishlist.repository.js +0 -31
  440. package/dist/providers/db-firebase/__tests__/filter-aliases.test.d.ts +0 -1
  441. package/dist/providers/db-firebase/__tests__/filter-aliases.test.js +0 -93
  442. package/dist/providers/shipping-shiprocket/index.d.ts +0 -297
  443. package/dist/providers/shipping-shiprocket/index.js +0 -194
  444. package/dist/providers/shipping-shiprocket/shiprocket-provider.d.ts +0 -45
  445. package/dist/providers/shipping-shiprocket/shiprocket-provider.js +0 -168
  446. package/dist/react/contexts/ThemeContext.d.ts +0 -13
  447. package/dist/react/contexts/ThemeContext.js +0 -64
  448. package/dist/schemas/webhooks/shiprocket.d.ts +0 -30
  449. package/dist/schemas/webhooks/shiprocket.js +0 -22
  450. package/dist/seed/actions/demo-seed-actions.d.ts +0 -42
  451. package/dist/seed/actions/demo-seed-actions.js +0 -36
  452. package/dist/seed/actions/index.d.ts +0 -1
  453. package/dist/seed/actions/index.js +0 -1
  454. package/dist/seed/sub-listings-seed-data.d.ts +0 -123
  455. package/dist/seed/sub-listings-seed-data.js +0 -447
  456. package/dist/seed/tester-checklist-seed-data.d.ts +0 -2
  457. package/dist/seed/tester-checklist-seed-data.js +0 -248
  458. package/dist/ui/components/DashboardStatsCard.d.ts +0 -15
  459. package/dist/ui/components/DashboardStatsCard.js +0 -27
  460. package/dist/ui/components/DashboardStatsCard.style.css +0 -68
  461. package/dist/ui/components/DynamicSelect.d.ts +0 -23
  462. package/dist/ui/components/DynamicSelect.js +0 -77
  463. package/dist/ui/components/DynamicSelect.style.css +0 -101
  464. package/dist/ui/components/InlineCreateSelect.d.ts +0 -48
  465. package/dist/ui/components/InlineCreateSelect.js +0 -75
  466. package/dist/ui/components/ListingViewShell.d.ts +0 -37
  467. package/dist/ui/components/ListingViewShell.js +0 -9
  468. package/dist/ui/components/PaginatedMultiSelect.d.ts +0 -28
  469. package/dist/ui/components/PaginatedMultiSelect.js +0 -141
  470. package/dist/ui/components/PaginatedMultiSelect.style.css +0 -272
  471. package/dist/ui/components/SectionTabs.d.ts +0 -19
  472. package/dist/ui/components/SectionTabs.js +0 -66
  473. package/dist/ui/components/SectionTabs.style.css +0 -164
  474. package/dist/ui/components/__tests__/BulkActionBar.test.d.ts +0 -1
  475. package/dist/ui/components/__tests__/BulkActionBar.test.js +0 -96
  476. package/dist/ui/components/__tests__/ListingToolbar.test.d.ts +0 -1
  477. package/dist/ui/components/__tests__/ListingToolbar.test.js +0 -125
  478. package/dist/ui/components/__tests__/new-primitives.test.d.ts +0 -1
  479. package/dist/ui/components/__tests__/new-primitives.test.js +0 -187
@@ -1,75 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from "react";
4
- import { DynamicSelect } from "./DynamicSelect";
5
- import { SideDrawer } from "./SideDrawer";
6
- import { Button } from "./Button";
7
- import { QuickFormDrawer } from "../../features/shell/QuickFormDrawer";
8
- /**
9
- * InlineCreateSelect — extends DynamicSelect with a "+ Create new" button
10
- * that opens a SideDrawer containing an inline create form.
11
- *
12
- * @example
13
- * ```tsx
14
- * <InlineCreateSelect
15
- * value={categoryId}
16
- * onChange={(v) => setCategoryId(v)}
17
- * loadOptions={loadCategoryOptions}
18
- * createLabel="Category"
19
- * renderCreateForm={({ onCreated, onCancel }) => (
20
- * <CategoryForm
21
- * onSuccess={(cat) => onCreated({ value: cat.id, label: cat.name })}
22
- * onCancel={onCancel}
23
- * />
24
- * )}
25
- * />
26
- * ```
27
- */
28
- export function InlineCreateSelect({ createLabel = "item", drawerTitle, renderCreateForm, createFields, onCreateSubmit, createSubmitLabel, onChange, options, loadOptions, ...selectProps }) {
29
- const [drawerOpen, setDrawerOpen] = useState(false);
30
- const hasCreate = Boolean(renderCreateForm ?? (createFields && onCreateSubmit));
31
- function handleCreated(option) {
32
- setDrawerOpen(false);
33
- onChange?.(option.value, option);
34
- }
35
- function handleCancel() {
36
- setDrawerOpen(false);
37
- }
38
- // Inject a synthetic "+ Create new" sentinel option at the end of the static list.
39
- // For async (loadOptions) mode we append the action after the list via a wrapper.
40
- const CREATE_SENTINEL = "__inline_create__";
41
- const augmentedOptions = hasCreate
42
- ? [
43
- ...(options ?? []),
44
- {
45
- value: CREATE_SENTINEL,
46
- label: `+ Create new ${createLabel}`,
47
- },
48
- ]
49
- : options;
50
- // For async mode, wrap loadOptions to append the sentinel after each page.
51
- const augmentedLoadOptions = hasCreate && loadOptions
52
- ? async (query, page) => {
53
- const result = await loadOptions(query, page);
54
- const sentinel = {
55
- value: CREATE_SENTINEL,
56
- label: `+ Create new ${createLabel}`,
57
- };
58
- return {
59
- ...result,
60
- items: [...result.items, sentinel],
61
- };
62
- }
63
- : loadOptions;
64
- function handleChange(value, option) {
65
- if (value === CREATE_SENTINEL) {
66
- setDrawerOpen(true);
67
- return;
68
- }
69
- onChange?.(value, option);
70
- }
71
- return (_jsxs(_Fragment, { children: [_jsx(DynamicSelect, { ...selectProps, options: augmentedOptions, loadOptions: augmentedLoadOptions, onChange: handleChange }), renderCreateForm ? (_jsx(SideDrawer, { isOpen: drawerOpen, onClose: handleCancel, title: drawerTitle ?? `Create ${createLabel}`, mode: "create", footer: _jsx(Button, { variant: "ghost", onClick: handleCancel, children: "Cancel" }), children: renderCreateForm({ onCreated: handleCreated, onCancel: handleCancel }) })) : createFields && onCreateSubmit ? (_jsx(QuickFormDrawer, { isOpen: drawerOpen, onClose: handleCancel, title: drawerTitle ?? `Create ${createLabel}`, fields: createFields, submitLabel: createSubmitLabel ?? `Create ${createLabel}`, onSubmit: async (values) => {
72
- const option = await onCreateSubmit(values);
73
- handleCreated(option);
74
- } })) : null] }));
75
- }
@@ -1,37 +0,0 @@
1
- /**
2
- * ListingViewShell
3
- *
4
- * Thin wrapper around ListingLayout that adds overlay slots (drawer, modal)
5
- * and an optional detail-view short-circuit. Replaces the ~10 identical
6
- * Admin*View ListingLayout delegates and can be used by seller/account views
7
- * that need the full ListingLayout feature set.
8
- *
9
- * Usage:
10
- * <ListingViewShell
11
- * headerSlot={<PageHeader title="Products" />}
12
- * searchSlot={<SearchInput />}
13
- * overlays={<><ProductDrawer /><ConfirmDeleteModal /></>}
14
- * isDashboard
15
- * >
16
- * <DataTable columns={cols} data={rows} />
17
- * </ListingViewShell>
18
- */
19
- import { type ReactNode } from "react";
20
- import type { ViewPortal } from "./Layout";
21
- import type { ListingLayoutProps } from "./ListingLayout";
22
- export interface ListingViewShellProps extends Omit<ListingLayoutProps, "children"> {
23
- /** Portal context — sets isDashboard default (admin/seller=true, user/public=false). */
24
- portal?: ViewPortal;
25
- /** Overlay elements rendered after the layout (drawers, modals, confirm dialogs). */
26
- overlays?: ReactNode;
27
- /** @deprecated Use `overlays` instead. Render-prop for a drawer overlay. */
28
- renderDrawer?: () => ReactNode;
29
- /** @deprecated Use `overlays` instead. Render-prop for a confirm modal overlay. */
30
- renderConfirmModal?: () => ReactNode;
31
- /** @deprecated Use `overlays` instead. Render-prop for a generic modal overlay. */
32
- renderModal?: () => ReactNode;
33
- /** When provided, the entire layout is replaced with this view (detail/edit mode). */
34
- detailView?: ReactNode;
35
- children?: ReactNode;
36
- }
37
- export declare function ListingViewShell({ overlays, renderDrawer, renderConfirmModal, renderModal, detailView, children, portal, isDashboard, ...listingProps }: ListingViewShellProps): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ListingLayout } from "./ListingLayout";
3
- export function ListingViewShell({ overlays, renderDrawer, renderConfirmModal, renderModal, detailView, children, portal, isDashboard, ...listingProps }) {
4
- const effectiveIsDashboard = isDashboard ?? (portal === "admin" || portal === "seller");
5
- if (detailView) {
6
- return _jsx(_Fragment, { children: detailView });
7
- }
8
- return (_jsxs(_Fragment, { children: [_jsx(ListingLayout, { ...listingProps, isDashboard: effectiveIsDashboard, children: children }), overlays, renderDrawer?.(), renderConfirmModal?.(), renderModal?.()] }));
9
- }
@@ -1,28 +0,0 @@
1
- import { ReactNode } from "react";
2
- import type { QuickFieldDef } from "../../features/shell/QuickFormDrawer";
3
- import type { DynamicSelectOption, AsyncPage } from "./DynamicSelect";
4
- export type { DynamicSelectOption, AsyncPage };
5
- export interface PaginatedMultiSelectProps {
6
- value: string[];
7
- onChange: (values: string[], options: DynamicSelectOption[]) => void;
8
- loadOptions?: (query: string, page: number) => Promise<AsyncPage<DynamicSelectOption>>;
9
- options?: DynamicSelectOption[];
10
- placeholder?: string;
11
- searchPlaceholder?: string;
12
- noResultsText?: string;
13
- maxChipsVisible?: number;
14
- disabled?: boolean;
15
- className?: string;
16
- ariaLabel?: string;
17
- /** "+ Create new" support — same pattern as InlineCreateSelect */
18
- createLabel?: string;
19
- drawerTitle?: string;
20
- renderCreateForm?: (props: {
21
- onCreated: (option: DynamicSelectOption) => void;
22
- onCancel: () => void;
23
- }) => ReactNode;
24
- createFields?: QuickFieldDef[];
25
- onCreateSubmit?: (values: Record<string, unknown>) => Promise<DynamicSelectOption>;
26
- createSubmitLabel?: string;
27
- }
28
- export declare function PaginatedMultiSelect({ value, onChange, loadOptions, options, placeholder, searchPlaceholder, noResultsText, maxChipsVisible, disabled, className, ariaLabel, createLabel, drawerTitle, renderCreateForm, createFields, onCreateSubmit, createSubmitLabel, }: PaginatedMultiSelectProps): import("react/jsx-runtime").JSX.Element;
@@ -1,141 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useCallback, useEffect, useRef, useState } from "react";
4
- import { Input } from "./Input";
5
- import { SideDrawer } from "./SideDrawer";
6
- import { Button } from "./Button";
7
- import { QuickFormDrawer } from "../../features/shell/QuickFormDrawer";
8
- const C = {
9
- root: "appkit-pms",
10
- chips: "appkit-pms__chips",
11
- chip: "appkit-pms__chip",
12
- chipLabel: "appkit-pms__chip-label",
13
- chipRemove: "appkit-pms__chip-remove",
14
- overflowChip: "appkit-pms__overflow-chip",
15
- trigger: "appkit-pms__trigger",
16
- triggerDisabled: "appkit-pms__trigger--disabled",
17
- placeholder: "appkit-pms__placeholder",
18
- triggerLeft: "appkit-pms__trigger-left",
19
- triggerCount: "appkit-pms__trigger-count",
20
- dropdown: "appkit-pms__dropdown",
21
- search: "appkit-pms__search",
22
- list: "appkit-pms__list",
23
- option: "appkit-pms__option",
24
- optionSelected: "appkit-pms__option--selected",
25
- checkbox: "appkit-pms__checkbox",
26
- checkmark: "appkit-pms__checkmark",
27
- optionLabel: "appkit-pms__option-label",
28
- empty: "appkit-pms__empty",
29
- loading: "appkit-pms__loading",
30
- loadMore: "appkit-pms__load-more",
31
- createBtn: "appkit-pms__create-btn",
32
- };
33
- const CREATE_SENTINEL = "__pms_create__";
34
- export function PaginatedMultiSelect({ value, onChange, loadOptions, options, placeholder = "Select...", searchPlaceholder = "Search...", noResultsText = "No results", maxChipsVisible = 3, disabled, className = "", ariaLabel, createLabel, drawerTitle, renderCreateForm, createFields, onCreateSubmit, createSubmitLabel, }) {
35
- const [query, setQuery] = useState("");
36
- const [open, setOpen] = useState(false);
37
- const [asyncOptions, setAsyncOptions] = useState([]);
38
- const [page, setPage] = useState(1);
39
- const [hasMore, setHasMore] = useState(false);
40
- const [loading, setLoading] = useState(false);
41
- const [drawerOpen, setDrawerOpen] = useState(false);
42
- const containerRef = useRef(null);
43
- const hasCreate = Boolean(createLabel && (renderCreateForm ?? (createFields && onCreateSubmit)));
44
- const resolvedOptions = options ?? asyncOptions;
45
- const selectedOptions = resolvedOptions.filter((o) => value.includes(o.value));
46
- // Build a label map from whatever is loaded so chips show labels even when not in current page
47
- const labelMap = useRef(new Map());
48
- selectedOptions.forEach((o) => labelMap.current.set(o.value, o.label));
49
- const load = useCallback(async (search, nextPage, reset = false) => {
50
- if (!loadOptions)
51
- return;
52
- setLoading(true);
53
- try {
54
- const response = await loadOptions(search, nextPage);
55
- setAsyncOptions((prev) => {
56
- const merged = reset ? response.items : [...prev, ...response.items];
57
- merged.forEach((o) => labelMap.current.set(o.value, o.label));
58
- return merged;
59
- });
60
- setPage(nextPage);
61
- setHasMore(response.hasMore);
62
- }
63
- finally {
64
- setLoading(false);
65
- }
66
- }, [loadOptions]);
67
- useEffect(() => {
68
- if (!open || !loadOptions)
69
- return;
70
- void load(query, 1, true);
71
- }, [open, query, load, loadOptions]);
72
- useEffect(() => {
73
- const onClickOutside = (e) => {
74
- if (!containerRef.current?.contains(e.target))
75
- setOpen(false);
76
- };
77
- const onKeydown = (e) => {
78
- if (e.key === "Escape")
79
- setOpen(false);
80
- };
81
- document.addEventListener("mousedown", onClickOutside);
82
- document.addEventListener("keydown", onKeydown);
83
- return () => {
84
- document.removeEventListener("mousedown", onClickOutside);
85
- document.removeEventListener("keydown", onKeydown);
86
- };
87
- }, []);
88
- const filtered = options
89
- ? options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))
90
- : resolvedOptions;
91
- function toggle(opt) {
92
- if (opt.value === CREATE_SENTINEL) {
93
- setOpen(false);
94
- setDrawerOpen(true);
95
- return;
96
- }
97
- const isSelected = value.includes(opt.value);
98
- const nextValues = isSelected
99
- ? value.filter((v) => v !== opt.value)
100
- : [...value, opt.value];
101
- const nextOptions = nextValues.map((v) => {
102
- const found = resolvedOptions.find((o) => o.value === v);
103
- return found ?? { value: v, label: labelMap.current.get(v) ?? v };
104
- });
105
- onChange(nextValues, nextOptions);
106
- }
107
- function removeChip(v) {
108
- const nextValues = value.filter((x) => x !== v);
109
- const nextOptions = nextValues.map((x) => {
110
- const found = resolvedOptions.find((o) => o.value === x);
111
- return found ?? { value: x, label: labelMap.current.get(x) ?? x };
112
- });
113
- onChange(nextValues, nextOptions);
114
- }
115
- function handleCreated(option) {
116
- setDrawerOpen(false);
117
- labelMap.current.set(option.value, option.label);
118
- const nextValues = [...value, option.value];
119
- const nextOptions = nextValues.map((v) => {
120
- const found = resolvedOptions.find((o) => o.value === v);
121
- return found ?? { value: v, label: labelMap.current.get(v) ?? v };
122
- });
123
- onChange(nextValues, nextOptions);
124
- }
125
- const visibleChips = value.slice(0, maxChipsVisible);
126
- const overflowCount = value.length - maxChipsVisible;
127
- const displayOptions = hasCreate
128
- ? [...filtered, { value: CREATE_SENTINEL, label: `+ Create new ${createLabel}` }]
129
- : filtered;
130
- return (_jsxs(_Fragment, { children: [_jsxs("div", { ref: containerRef, className: [C.root, className].filter(Boolean).join(" "), "aria-label": ariaLabel, children: [value.length > 0 && (_jsxs("div", { className: C.chips, children: [visibleChips.map((v) => (_jsxs("span", { className: C.chip, children: [_jsx("span", { className: C.chipLabel, children: labelMap.current.get(v) ?? v }), !disabled && (_jsx("button", { type: "button", "aria-label": "Remove", className: C.chipRemove, onClick: (e) => { e.stopPropagation(); removeChip(v); }, children: "\u2715" }))] }, v))), overflowCount > 0 && (_jsxs("span", { className: C.overflowChip, children: ["+", overflowCount, " more"] }))] })), _jsxs("button", { type: "button", disabled: disabled, onClick: () => setOpen((prev) => !prev), className: [C.trigger, disabled ? C.triggerDisabled : ""].filter(Boolean).join(" "), "aria-expanded": open, "aria-haspopup": "listbox", children: [_jsx("span", { className: C.triggerLeft, children: _jsx("span", { className: value.length === 0 ? C.placeholder : "", children: value.length === 0 ? placeholder : `${value.length} selected` }) }), _jsx("span", { "aria-hidden": "true", children: "\u25BE" })] }), open && (_jsxs("div", { className: C.dropdown, role: "listbox", "aria-multiselectable": "true", children: [_jsx(Input, { autoFocus: true, value: query, onChange: (e) => setQuery(e.target.value), placeholder: searchPlaceholder, className: C.search }), _jsxs("ul", { className: C.list, children: [displayOptions.map((opt, idx) => {
131
- const isCreate = opt.value === CREATE_SENTINEL;
132
- const isSelected = !isCreate && value.includes(opt.value);
133
- if (isCreate) {
134
- return (_jsx("li", { children: _jsx("button", { type: "button", className: C.createBtn, onClick: () => toggle(opt), children: opt.label }) }, "__create__"));
135
- }
136
- return (_jsx("li", { children: _jsxs("button", { type: "button", role: "option", "aria-selected": isSelected, className: [C.option, isSelected ? C.optionSelected : ""].filter(Boolean).join(" "), onClick: () => toggle(opt), children: [_jsx("span", { className: C.checkbox, "aria-hidden": "true", children: _jsx("span", { className: C.checkmark, children: "\u2713" }) }), _jsx("span", { className: C.optionLabel, children: opt.label })] }) }, `${opt.value}-${idx}`));
137
- }), displayOptions.filter((o) => o.value !== CREATE_SENTINEL).length === 0 && !loading && (_jsx("li", { className: C.empty, children: noResultsText })), loading && _jsx("li", { className: C.loading, children: "Loading\u2026" }), hasMore && !loading && (_jsx("li", { children: _jsx("button", { type: "button", className: C.loadMore, onClick: () => void load(query, page + 1), children: "Load more" }) }))] })] }))] }), renderCreateForm ? (_jsx(SideDrawer, { isOpen: drawerOpen, onClose: () => setDrawerOpen(false), title: drawerTitle ?? `Create ${createLabel}`, mode: "create", footer: _jsx(Button, { variant: "ghost", onClick: () => setDrawerOpen(false), children: "Cancel" }), children: renderCreateForm({ onCreated: handleCreated, onCancel: () => setDrawerOpen(false) }) })) : createFields && onCreateSubmit ? (_jsx(QuickFormDrawer, { isOpen: drawerOpen, onClose: () => setDrawerOpen(false), title: drawerTitle ?? `Create ${createLabel}`, fields: createFields, submitLabel: createSubmitLabel ?? `Create ${createLabel}`, onSubmit: async (values) => {
138
- const option = await onCreateSubmit(values);
139
- handleCreated(option);
140
- } })) : null] }));
141
- }
@@ -1,272 +0,0 @@
1
- /* PaginatedMultiSelect — multi-value chips + async paginated checkbox dropdown */
2
-
3
- .appkit-pms {
4
- position: relative;
5
- }
6
-
7
- /* ── chips row ── */
8
- .appkit-pms__chips {
9
- display: flex;
10
- flex-wrap: wrap;
11
- gap: 0.375rem;
12
- margin-bottom: 0.375rem;
13
- }
14
-
15
- .appkit-pms__chip {
16
- display: inline-flex;
17
- align-items: center;
18
- gap: 0.25rem;
19
- border-radius: 9999px;
20
- border: 1px solid var(--appkit-color-border);
21
- background: var(--appkit-color-surface);
22
- padding: 0.125rem 0.5rem 0.125rem 0.625rem;
23
- font-size: 0.75rem;
24
- font-weight: 500;
25
- color: var(--appkit-color-text);
26
- line-height: 1.5;
27
- max-width: 12rem;
28
- }
29
-
30
- :is(.dark) .appkit-pms__chip {
31
- border-color: var(--appkit-color-border);
32
- background: var(--appkit-color-surface);
33
- color: var(--appkit-color-text);
34
- }
35
-
36
- .appkit-pms__chip-label {
37
- overflow: hidden;
38
- text-overflow: ellipsis;
39
- white-space: nowrap;
40
- }
41
-
42
- .appkit-pms__chip-remove {
43
- display: flex;
44
- align-items: center;
45
- justify-content: center;
46
- flex-shrink: 0;
47
- width: 1rem;
48
- height: 1rem;
49
- border-radius: 9999px;
50
- font-size: 0.7rem;
51
- color: var(--appkit-color-text-muted);
52
- transition: color 0.15s, background-color 0.15s;
53
- }
54
-
55
- .appkit-pms__chip-remove:hover {
56
- color: var(--appkit-color-text);
57
- background-color: var(--appkit-color-zinc-100);
58
- }
59
-
60
- :is(.dark) .appkit-pms__chip-remove:hover {
61
- color: var(--appkit-color-text);
62
- background-color: var(--appkit-color-slate-700);
63
- }
64
-
65
- .appkit-pms__overflow-chip {
66
- display: inline-flex;
67
- align-items: center;
68
- border-radius: 9999px;
69
- border: 1px dashed var(--appkit-color-border);
70
- padding: 0.125rem 0.625rem;
71
- font-size: 0.75rem;
72
- font-weight: 500;
73
- color: var(--appkit-color-text-muted);
74
- }
75
-
76
- /* ── trigger ── */
77
- .appkit-pms__trigger {
78
- display: flex;
79
- width: 100%;
80
- align-items: center;
81
- justify-content: space-between;
82
- border-radius: 0.5rem;
83
- border: 1px solid var(--appkit-color-zinc-300);
84
- padding: 0.5rem 0.75rem;
85
- font-size: 0.875rem;
86
- background: var(--appkit-color-surface);
87
- color: var(--appkit-color-zinc-800);
88
- transition: border-color 0.15s;
89
- }
90
-
91
- .appkit-pms__trigger:hover:not(:disabled) {
92
- border-color: var(--appkit-color-zinc-400);
93
- }
94
-
95
- .appkit-pms__trigger:focus-visible {
96
- outline: 2px solid var(--appkit-color-focus-ring, var(--appkit-color-primary));
97
- outline-offset: 2px;
98
- }
99
-
100
- :is(.dark) .appkit-pms__trigger {
101
- border-color: var(--appkit-color-border);
102
- background: var(--appkit-color-surface);
103
- color: var(--appkit-color-slate-200);
104
- }
105
-
106
- .appkit-pms__trigger--disabled {
107
- cursor: not-allowed;
108
- opacity: 0.5;
109
- }
110
-
111
- .appkit-pms__placeholder {
112
- color: var(--appkit-color-text-faint);
113
- }
114
-
115
- .appkit-pms__trigger-left {
116
- display: flex;
117
- align-items: center;
118
- gap: 0.375rem;
119
- overflow: hidden;
120
- }
121
-
122
- .appkit-pms__trigger-count {
123
- flex-shrink: 0;
124
- font-size: 0.75rem;
125
- font-weight: 600;
126
- color: var(--appkit-color-primary);
127
- }
128
-
129
- /* ── dropdown ── */
130
- .appkit-pms__dropdown {
131
- position: absolute;
132
- z-index: var(--appkit-z-dropdown);
133
- margin-top: 0.25rem;
134
- width: 100%;
135
- min-width: 14rem;
136
- overflow: hidden;
137
- border-radius: 0.5rem;
138
- border: 1px solid var(--appkit-color-border);
139
- background: var(--appkit-color-surface);
140
- box-shadow: var(--appkit-shadow-lg);
141
- }
142
-
143
- :is(.dark) .appkit-pms__dropdown {
144
- border-color: var(--appkit-color-border);
145
- background: var(--appkit-color-surface);
146
- }
147
-
148
- .appkit-pms__search {
149
- border-radius: 0;
150
- border-left: 0;
151
- border-right: 0;
152
- border-top: 0;
153
- }
154
-
155
- /* ── option list ── */
156
- .appkit-pms__list {
157
- max-height: 13rem;
158
- overflow-y: auto;
159
- padding: 0.25rem 0;
160
- }
161
-
162
- .appkit-pms__option {
163
- display: flex;
164
- align-items: center;
165
- gap: 0.625rem;
166
- width: 100%;
167
- padding: 0.5rem 0.75rem;
168
- font-size: 0.875rem;
169
- text-align: left;
170
- cursor: pointer;
171
- transition: background-color 0.1s;
172
- }
173
-
174
- .appkit-pms__option:hover {
175
- background-color: var(--appkit-color-zinc-100);
176
- }
177
-
178
- :is(.dark) .appkit-pms__option:hover {
179
- background-color: var(--appkit-color-slate-800);
180
- }
181
-
182
- .appkit-pms__option--selected {
183
- font-weight: 500;
184
- background-color: var(--appkit-color-zinc-50);
185
- }
186
-
187
- :is(.dark) .appkit-pms__option--selected {
188
- background-color: rgba(15, 23, 42, 0.6);
189
- }
190
-
191
- .appkit-pms__checkbox {
192
- flex-shrink: 0;
193
- width: 1rem;
194
- height: 1rem;
195
- border-radius: 0.25rem;
196
- border: 1.5px solid var(--appkit-color-zinc-400);
197
- background: var(--appkit-color-surface);
198
- display: flex;
199
- align-items: center;
200
- justify-content: center;
201
- transition: border-color 0.15s, background-color 0.15s;
202
- }
203
-
204
- .appkit-pms__option--selected .appkit-pms__checkbox {
205
- border-color: var(--appkit-color-primary);
206
- background: var(--appkit-color-primary);
207
- }
208
-
209
- :is(.dark) .appkit-pms__option--selected .appkit-pms__checkbox {
210
- border-color: var(--appkit-color-primary);
211
- background: var(--appkit-color-primary);
212
- }
213
-
214
- .appkit-pms__checkmark {
215
- display: none;
216
- font-size: 0.6rem;
217
- color: var(--appkit-color-text-on-primary, #fff);
218
- font-weight: 700;
219
- }
220
-
221
- .appkit-pms__option--selected .appkit-pms__checkmark {
222
- display: block;
223
- }
224
-
225
- .appkit-pms__option-label {
226
- overflow: hidden;
227
- text-overflow: ellipsis;
228
- white-space: nowrap;
229
- flex: 1;
230
- color: var(--appkit-color-text);
231
- }
232
-
233
- /* ── empty / loading / load-more / create ── */
234
- .appkit-pms__empty,
235
- .appkit-pms__loading {
236
- padding: 0.5rem 0.75rem;
237
- font-size: 0.75rem;
238
- color: var(--appkit-color-text-muted);
239
- }
240
-
241
- .appkit-pms__load-more {
242
- width: 100%;
243
- padding: 0.5rem 0.75rem;
244
- text-align: left;
245
- font-size: 0.75rem;
246
- color: var(--appkit-color-secondary-600);
247
- }
248
-
249
- .appkit-pms__load-more:hover {
250
- text-decoration: underline;
251
- }
252
-
253
- .appkit-pms__create-btn {
254
- display: flex;
255
- align-items: center;
256
- gap: 0.375rem;
257
- width: 100%;
258
- padding: 0.5rem 0.75rem;
259
- font-size: 0.8125rem;
260
- font-weight: 500;
261
- color: var(--appkit-color-primary);
262
- border-top: 1px solid var(--appkit-color-border-subtle);
263
- transition: background-color 0.1s;
264
- }
265
-
266
- .appkit-pms__create-btn:hover {
267
- background-color: var(--appkit-color-zinc-50);
268
- }
269
-
270
- :is(.dark) .appkit-pms__create-btn:hover {
271
- background-color: var(--appkit-color-slate-800);
272
- }
@@ -1,19 +0,0 @@
1
- import React from "react";
2
- export interface SectionTab {
3
- label: string;
4
- href?: string;
5
- value?: string;
6
- icon?: React.ReactNode;
7
- count?: number;
8
- }
9
- export interface SectionTabsProps {
10
- tabs: readonly SectionTab[];
11
- variant?: "admin" | "user" | "default";
12
- className?: string;
13
- value?: string;
14
- onChange?: (value: string) => void;
15
- inline?: boolean;
16
- stickyTopClassName?: string;
17
- currentPath?: string;
18
- }
19
- export declare function SectionTabs({ tabs, variant, className, value, onChange, inline, stickyTopClassName, currentPath, }: SectionTabsProps): import("react/jsx-runtime").JSX.Element;
@@ -1,66 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { usePathname } from "next/navigation";
4
- import { Nav } from "./Semantic";
5
- import { Button } from "./Button";
6
- import { Span } from "./Typography";
7
- import { TextLink } from "./TextLink";
8
- export function SectionTabs({ tabs, variant = "default", className = "", value, onChange, inline = false, stickyTopClassName = "top-[var(--header-height,0px)]", currentPath, }) {
9
- const pathname = usePathname();
10
- const isControlled = typeof onChange === "function";
11
- const activePath = currentPath ?? pathname ?? "";
12
- const isActiveTab = (tab) => {
13
- if (isControlled) {
14
- return value === (tab.value ?? tab.href ?? "");
15
- }
16
- const href = tab.href ?? "";
17
- if (!href)
18
- return false;
19
- if (href.endsWith("/dashboard") || href.endsWith("/profile")) {
20
- return activePath === href;
21
- }
22
- return activePath.startsWith(href);
23
- };
24
- const getTabKey = (tab) => tab.value ?? tab.href ?? tab.label;
25
- const gradientClass = variant === "admin"
26
- ? "appkit-section-tabs--admin"
27
- : variant === "user"
28
- ? "appkit-section-tabs--user"
29
- : "";
30
- const tabActiveClass = "appkit-section-tabs__tab--active";
31
- const tabInactiveClass = "appkit-section-tabs__tab--inactive";
32
- const tabBaseClass = "appkit-section-tabs__tab";
33
- const strip = (_jsx(Nav, { "aria-label": "Section navigation", className: "appkit-section-tabs__nav", children: _jsx("div", { className: [
34
- "appkit-section-tabs__scroll",
35
- inline ? "" : "appkit-section-tabs__scroll--padded",
36
- ]
37
- .filter(Boolean)
38
- .join(" "), "data-section": "sectiontabs-div-587", children: _jsx("div", { className: [
39
- "appkit-section-tabs__track",
40
- inline ? "" : "appkit-section-tabs__track--full",
41
- ]
42
- .filter(Boolean)
43
- .join(" "), "data-section": "sectiontabs-div-588", children: tabs.map((tab) => {
44
- const key = getTabKey(tab);
45
- const isActive = isActiveTab(tab);
46
- const tabClass = `${tabBaseClass} ${isActive ? tabActiveClass : tabInactiveClass}`;
47
- const content = (_jsxs(_Fragment, { children: [tab.icon && (_jsx(Span, { variant: "inherit", className: "appkit-section-tabs__icon", "aria-hidden": true, children: tab.icon })), tab.label, tab.count !== undefined && (_jsx(Span, { className: `appkit-section-tabs__count ${isActive
48
- ? "appkit-section-tabs__count--active"
49
- : "appkit-section-tabs__count--inactive"}`, children: tab.count }))] }));
50
- if (isControlled) {
51
- return (_jsx(Button, { type: "button", variant: "ghost", role: "tab", "aria-selected": isActive, onClick: () => onChange(tab.value ?? tab.href ?? ""), className: tabClass, children: content }, key));
52
- }
53
- return (_jsx(TextLink, { href: tab.href ?? "#", className: tabClass, children: content }, key));
54
- }) }) }) }));
55
- if (inline) {
56
- return _jsx("div", { className: className, "data-section": "sectiontabs-div-589", children: strip });
57
- }
58
- return (_jsx("div", { className: [
59
- "appkit-section-tabs",
60
- stickyTopClassName,
61
- gradientClass,
62
- className,
63
- ]
64
- .filter(Boolean)
65
- .join(" "), "data-section": "sectiontabs-div-590", children: _jsx("div", { className: "appkit-section-tabs__container", "data-section": "sectiontabs-div-591", children: strip }) }));
66
- }