@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.
- package/README.md +36 -65
- package/dist/cli/index.d.ts +6 -9
- package/dist/cli/index.js +167 -141
- package/dist/client.d.ts +15 -0
- package/dist/client.js +15 -0
- package/dist/constants/api-endpoint-resolver.d.ts +34 -0
- package/dist/constants/api-endpoint-resolver.js +38 -0
- package/dist/constants/api-endpoints.d.ts +388 -0
- package/dist/constants/api-endpoints.js +342 -0
- package/dist/constants/cache-invalidation.d.ts +18 -0
- package/dist/constants/cache-invalidation.js +33 -0
- package/dist/constants/index.d.ts +14 -0
- package/dist/constants/index.js +14 -0
- package/dist/contracts/auth.d.ts +58 -0
- package/dist/contracts/auth.js +2 -0
- package/dist/contracts/client-auth.d.ts +22 -0
- package/dist/contracts/client-auth.js +17 -0
- package/dist/contracts/client-payment-gateway.d.ts +65 -0
- package/dist/contracts/client-payment-gateway.js +25 -0
- package/dist/contracts/client-realtime.d.ts +24 -0
- package/dist/contracts/client-realtime.js +18 -0
- package/dist/contracts/client-session.d.ts +37 -0
- package/dist/contracts/client-session.js +22 -0
- package/dist/contracts/config.d.ts +53 -0
- package/dist/contracts/config.js +2 -0
- package/dist/contracts/email.d.ts +30 -0
- package/dist/contracts/email.js +2 -0
- package/dist/contracts/extend.d.ts +270 -0
- package/dist/contracts/extend.js +75 -0
- package/dist/contracts/feature.d.ts +53 -0
- package/dist/contracts/feature.js +2 -0
- package/dist/contracts/field-ops.d.ts +31 -0
- package/dist/contracts/field-ops.js +35 -0
- package/dist/contracts/form.d.ts +89 -0
- package/dist/contracts/form.js +80 -0
- package/dist/contracts/index.d.ts +32 -728
- package/dist/contracts/index.js +13 -4
- package/dist/contracts/infra.d.ts +43 -0
- package/dist/contracts/infra.js +2 -0
- package/dist/contracts/payment.d.ts +39 -0
- package/dist/contracts/payment.js +2 -0
- package/dist/contracts/registry.d.ts +26 -0
- package/dist/contracts/registry.js +14 -0
- package/dist/contracts/repository.d.ts +127 -0
- package/dist/contracts/repository.js +28 -0
- package/dist/contracts/search.d.ts +44 -0
- package/dist/contracts/search.js +2 -0
- package/dist/contracts/shipping.d.ts +64 -0
- package/dist/contracts/shipping.js +2 -0
- package/dist/contracts/storage.d.ts +27 -0
- package/dist/contracts/storage.js +2 -0
- package/dist/contracts/style.d.ts +23 -0
- package/dist/contracts/style.js +2 -0
- package/dist/contracts/table.d.ts +104 -0
- package/dist/contracts/table.js +68 -0
- package/dist/core/CacheManager.d.ts +31 -0
- package/dist/core/CacheManager.js +63 -0
- package/dist/core/EventBus.d.ts +27 -0
- package/dist/core/EventBus.js +75 -0
- package/dist/core/Logger.d.ts +60 -0
- package/dist/core/Logger.js +153 -0
- package/dist/core/Queue.d.ts +43 -0
- package/dist/core/Queue.js +92 -0
- package/dist/core/StorageManager.d.ts +36 -0
- package/dist/core/StorageManager.js +159 -0
- package/dist/core/baseline-resolver.d.ts +52 -0
- package/dist/core/baseline-resolver.js +74 -0
- package/dist/core/browser.d.ts +18 -0
- package/dist/core/browser.js +9 -0
- package/dist/core/copilot-log.repository.d.ts +44 -0
- package/dist/core/copilot-log.repository.js +61 -0
- package/dist/core/hooks/useSiteSettings.d.ts +1 -0
- package/dist/core/hooks/useSiteSettings.js +11 -0
- package/dist/core/index.d.ts +31 -326
- package/dist/core/index.js +21 -7
- package/dist/core/integration-keys.d.ts +30 -0
- package/dist/core/integration-keys.js +55 -0
- package/dist/core/mutation-events.d.ts +147 -0
- package/dist/core/mutation-events.js +193 -0
- package/dist/core/newsletter-actions.d.ts +20 -0
- package/dist/core/newsletter-actions.js +28 -0
- package/dist/core/newsletter.repository.d.ts +55 -0
- package/dist/core/newsletter.repository.js +109 -0
- package/dist/core/server-action.d.ts +114 -0
- package/dist/core/server-action.js +119 -0
- package/dist/core/site-config.d.ts +33 -0
- package/dist/core/site-config.js +74 -0
- package/dist/core/unit-of-work.d.ts +32 -0
- package/dist/core/unit-of-work.js +114 -0
- package/dist/errors/api-error.d.ts +4 -0
- package/dist/errors/api-error.js +6 -0
- package/dist/errors/authentication-error.d.ts +4 -0
- package/dist/errors/authentication-error.js +6 -0
- package/dist/errors/authorization-error.d.ts +4 -0
- package/dist/errors/authorization-error.js +6 -0
- package/dist/errors/base-error.d.ts +14 -0
- package/dist/errors/base-error.js +22 -0
- package/dist/errors/database-error.d.ts +4 -0
- package/dist/errors/database-error.js +6 -0
- package/dist/errors/error-codes.d.ts +43 -0
- package/dist/errors/error-codes.js +93 -0
- package/dist/errors/error-handler.d.ts +16 -0
- package/dist/errors/error-handler.js +57 -0
- package/dist/errors/index.d.ts +11 -96
- package/dist/errors/index.js +15 -4
- package/dist/errors/messages.d.ts +469 -0
- package/dist/errors/messages.js +503 -0
- package/dist/errors/not-found-error.d.ts +4 -0
- package/dist/errors/not-found-error.js +6 -0
- package/dist/errors/validation-error.d.ts +4 -0
- package/dist/errors/validation-error.js +6 -0
- package/dist/features/about/components/AboutView.d.ts +38 -0
- package/dist/features/about/components/AboutView.js +5 -0
- package/dist/features/about/index.d.ts +2 -42
- package/dist/features/about/index.js +1 -280
- package/dist/features/account/actions/address-actions.d.ts +7 -0
- package/dist/features/account/actions/address-actions.js +24 -0
- package/dist/features/account/actions/index.d.ts +1 -0
- package/dist/features/account/actions/index.js +1 -0
- package/dist/features/account/address-validation.d.ts +20 -0
- package/dist/features/account/address-validation.js +35 -0
- package/dist/features/account/api/[userId]/addresses/route.d.ts +21 -0
- package/dist/features/account/api/[userId]/addresses/route.js +91 -0
- package/dist/features/account/api/[userId]/route.d.ts +23 -0
- package/dist/features/account/api/[userId]/route.js +67 -0
- package/dist/features/account/columns/index.d.ts +17 -0
- package/dist/features/account/columns/index.js +39 -0
- package/dist/features/account/components/AddressBook.d.ts +39 -0
- package/dist/features/account/components/AddressBook.js +14 -0
- package/dist/features/account/components/AddressForm.d.ts +39 -0
- package/dist/features/account/components/AddressForm.js +55 -0
- package/dist/features/account/components/AddressSelectorCreate.d.ts +16 -0
- package/dist/features/account/components/AddressSelectorCreate.js +40 -0
- package/dist/features/account/components/BecomeSellerView.d.ts +17 -0
- package/dist/features/account/components/BecomeSellerView.js +5 -0
- package/dist/features/account/components/ChatList.d.ts +14 -0
- package/dist/features/account/components/ChatList.js +10 -0
- package/dist/features/account/components/ChatWindow.d.ts +17 -0
- package/dist/features/account/components/ChatWindow.js +6 -0
- package/dist/features/account/components/MessagesView.d.ts +16 -0
- package/dist/features/account/components/MessagesView.js +5 -0
- package/dist/features/account/components/NotificationBell.d.ts +32 -0
- package/dist/features/account/components/NotificationBell.js +80 -0
- package/dist/features/account/components/OrderDetailView.d.ts +18 -0
- package/dist/features/account/components/OrderDetailView.js +12 -0
- package/dist/features/account/components/ProfileView.d.ts +12 -0
- package/dist/features/account/components/ProfileView.js +5 -0
- package/dist/features/account/components/UserAccountHubView.d.ts +13 -0
- package/dist/features/account/components/UserAccountHubView.js +5 -0
- package/dist/features/account/components/UserAddressesView.d.ts +13 -0
- package/dist/features/account/components/UserAddressesView.js +5 -0
- package/dist/features/account/components/UserNotificationsView.d.ts +15 -0
- package/dist/features/account/components/UserNotificationsView.js +12 -0
- package/dist/features/account/components/UserOffersView.d.ts +10 -0
- package/dist/features/account/components/UserOffersView.js +5 -0
- package/dist/features/account/components/UserOrderTrackView.d.ts +16 -0
- package/dist/features/account/components/UserOrderTrackView.js +8 -0
- package/dist/features/account/components/UserOrdersView.d.ts +12 -0
- package/dist/features/account/components/UserOrdersView.js +5 -0
- package/dist/features/account/components/UserSettingsView.d.ts +15 -0
- package/dist/features/account/components/UserSettingsView.js +12 -0
- package/dist/features/account/components/index.d.ts +34 -0
- package/dist/features/account/components/index.js +17 -0
- package/dist/features/account/constants/addresses.d.ts +13 -0
- package/dist/features/account/constants/addresses.js +43 -0
- package/dist/features/account/hooks/useAccount.d.ts +13 -0
- package/dist/features/account/hooks/useAccount.js +19 -0
- package/dist/features/account/hooks/useAddressForm.d.ts +24 -0
- package/dist/features/account/hooks/useAddressForm.js +58 -0
- package/dist/features/account/hooks/useAddressSelector.d.ts +25 -0
- package/dist/features/account/hooks/useAddressSelector.js +30 -0
- package/dist/features/account/hooks/useAddresses.d.ts +59 -0
- package/dist/features/account/hooks/useAddresses.js +73 -0
- package/dist/features/account/hooks/useNotifications.d.ts +23 -0
- package/dist/features/account/hooks/useNotifications.js +31 -0
- package/dist/features/account/hooks/useProfile.d.ts +25 -0
- package/dist/features/account/hooks/useProfile.js +24 -0
- package/dist/features/account/hooks/useProfileStats.d.ts +6 -0
- package/dist/features/account/hooks/useProfileStats.js +21 -0
- package/dist/features/account/hooks/usePublicProfile.d.ts +78 -0
- package/dist/features/account/hooks/usePublicProfile.js +51 -0
- package/dist/features/account/index.d.ts +15 -555
- package/dist/features/account/index.js +15 -1003
- package/dist/features/account/manifest.d.ts +2 -0
- package/dist/features/account/manifest.js +27 -0
- package/dist/features/account/messages/en.json +12 -0
- package/dist/features/account/repository/account.repository.d.ts +11 -0
- package/dist/features/account/repository/account.repository.js +20 -0
- package/dist/features/account/repository/address.repository.d.ts +17 -0
- package/dist/features/account/repository/address.repository.js +185 -0
- package/dist/features/account/schemas/firestore.d.ts +48 -0
- package/dist/features/account/schemas/firestore.js +59 -0
- package/dist/features/account/schemas/index.d.ts +198 -0
- package/dist/features/account/schemas/index.js +51 -0
- package/dist/features/account/server.d.ts +9 -0
- package/dist/features/account/server.js +9 -0
- package/dist/features/account/types/index.d.ts +83 -0
- package/dist/features/account/types/index.js +2 -0
- package/dist/features/admin/actions/admin-actions.d.ts +35 -0
- package/dist/features/admin/actions/admin-actions.js +174 -0
- package/dist/features/admin/actions/admin-coupon-actions.d.ts +17 -0
- package/dist/features/admin/actions/admin-coupon-actions.js +87 -0
- package/dist/features/admin/actions/admin-read-actions.d.ts +105 -0
- package/dist/features/admin/actions/admin-read-actions.js +172 -0
- package/dist/features/admin/actions/chat-actions.d.ts +29 -0
- package/dist/features/admin/actions/chat-actions.js +97 -0
- package/dist/features/admin/actions/index.d.ts +6 -0
- package/dist/features/admin/actions/index.js +6 -0
- package/dist/features/admin/actions/notification-actions.d.ts +31 -0
- package/dist/features/admin/actions/notification-actions.js +42 -0
- package/dist/features/admin/actions/site-settings-actions.d.ts +8 -0
- package/dist/features/admin/actions/site-settings-actions.js +16 -0
- package/dist/features/admin/api/bids/route.d.ts +14 -0
- package/dist/features/admin/api/bids/route.js +53 -0
- package/dist/features/admin/api/coupons/route.d.ts +14 -0
- package/dist/features/admin/api/coupons/route.js +53 -0
- package/dist/features/admin/api/products/route.d.ts +14 -0
- package/dist/features/admin/api/products/route.js +54 -0
- package/dist/features/admin/api/reviews/route.d.ts +14 -0
- package/dist/features/admin/api/reviews/route.js +53 -0
- package/dist/features/admin/components/AdminAnalyticsView.d.ts +29 -0
- package/dist/features/admin/components/AdminAnalyticsView.js +15 -0
- package/dist/features/admin/components/AdminBidsView.d.ts +4 -0
- package/dist/features/admin/components/AdminBidsView.js +5 -0
- package/dist/features/admin/components/AdminBlogView.d.ts +4 -0
- package/dist/features/admin/components/AdminBlogView.js +5 -0
- package/dist/features/admin/components/AdminCarouselView.d.ts +9 -0
- package/dist/features/admin/components/AdminCarouselView.js +5 -0
- package/dist/features/admin/components/AdminCategoriesView.d.ts +9 -0
- package/dist/features/admin/components/AdminCategoriesView.js +5 -0
- package/dist/features/admin/components/AdminCouponsView.d.ts +4 -0
- package/dist/features/admin/components/AdminCouponsView.js +5 -0
- package/dist/features/admin/components/AdminDashboardView.d.ts +16 -0
- package/dist/features/admin/components/AdminDashboardView.js +11 -0
- package/dist/features/admin/components/AdminFaqsView.d.ts +4 -0
- package/dist/features/admin/components/AdminFaqsView.js +5 -0
- package/dist/features/admin/components/AdminFeatureFlagsView.d.ts +9 -0
- package/dist/features/admin/components/AdminFeatureFlagsView.js +5 -0
- package/dist/features/admin/components/AdminFilterBar.d.ts +65 -0
- package/dist/features/admin/components/AdminFilterBar.js +22 -0
- package/dist/features/admin/components/AdminMediaView.d.ts +9 -0
- package/dist/features/admin/components/AdminMediaView.js +5 -0
- package/dist/features/admin/components/AdminNavigationView.d.ts +9 -0
- package/dist/features/admin/components/AdminNavigationView.js +5 -0
- package/dist/features/admin/components/AdminOrdersView.d.ts +4 -0
- package/dist/features/admin/components/AdminOrdersView.js +5 -0
- package/dist/features/admin/components/AdminPageHeader.d.ts +53 -0
- package/dist/features/admin/components/AdminPageHeader.js +12 -0
- package/dist/features/admin/components/AdminPayoutsView.d.ts +4 -0
- package/dist/features/admin/components/AdminPayoutsView.js +5 -0
- package/dist/features/admin/components/AdminProductsView.d.ts +4 -0
- package/dist/features/admin/components/AdminProductsView.js +5 -0
- package/dist/features/admin/components/AdminReviewsView.d.ts +7 -0
- package/dist/features/admin/components/AdminReviewsView.js +5 -0
- package/dist/features/admin/components/AdminSectionsView.d.ts +9 -0
- package/dist/features/admin/components/AdminSectionsView.js +5 -0
- package/dist/features/admin/components/AdminSessionsManager.d.ts +9 -0
- package/dist/features/admin/components/AdminSessionsManager.js +5 -0
- package/dist/features/admin/components/AdminSidebar.d.ts +9 -0
- package/dist/features/admin/components/AdminSidebar.js +6 -0
- package/dist/features/admin/components/AdminSiteView.d.ts +10 -0
- package/dist/features/admin/components/AdminSiteView.js +5 -0
- package/dist/features/admin/components/AdminStoresView.d.ts +4 -0
- package/dist/features/admin/components/AdminStoresView.js +5 -0
- package/dist/features/admin/components/AdminTopBar.d.ts +8 -0
- package/dist/features/admin/components/AdminTopBar.js +8 -0
- package/dist/features/admin/components/AdminUsersView.d.ts +4 -0
- package/dist/features/admin/components/AdminUsersView.js +5 -0
- package/dist/features/admin/components/DashboardStats.d.ts +8 -0
- package/dist/features/admin/components/DashboardStats.js +21 -0
- package/dist/features/admin/components/DataTable.d.ts +19 -0
- package/dist/features/admin/components/DataTable.js +7 -0
- package/dist/features/admin/components/DemoSeedView.d.ts +11 -0
- package/dist/features/admin/components/DemoSeedView.js +5 -0
- package/dist/features/admin/components/DrawerFormFooter.d.ts +54 -0
- package/dist/features/admin/components/DrawerFormFooter.js +6 -0
- package/dist/features/admin/components/QuickActionsPanel.d.ts +15 -0
- package/dist/features/admin/components/QuickActionsPanel.js +6 -0
- package/dist/features/admin/components/analytics/AdminAnalyticsCharts.d.ts +17 -0
- package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +33 -0
- package/dist/features/admin/components/analytics/AdminStatCard.d.ts +8 -0
- package/dist/features/admin/components/analytics/AdminStatCard.js +6 -0
- package/dist/features/admin/components/analytics/AdminTopProductsTable.d.ts +16 -0
- package/dist/features/admin/components/analytics/AdminTopProductsTable.js +6 -0
- package/dist/features/admin/components/analytics/index.d.ts +3 -0
- package/dist/features/admin/components/analytics/index.js +3 -0
- package/dist/features/admin/components/index.d.ts +62 -0
- package/dist/features/admin/components/index.js +32 -0
- package/dist/features/admin/hooks/useAdmin.d.ts +9 -0
- package/dist/features/admin/hooks/useAdmin.js +14 -0
- package/dist/features/admin/hooks/useChat.d.ts +24 -0
- package/dist/features/admin/hooks/useChat.js +97 -0
- package/dist/features/admin/index.d.ts +8 -554
- package/dist/features/admin/index.js +7 -2703
- package/dist/features/admin/manifest.d.ts +2 -0
- package/dist/features/admin/manifest.js +13 -0
- package/dist/features/admin/messages/en.json +13 -0
- package/dist/features/admin/permission-map.d.ts +3 -0
- package/dist/features/admin/permission-map.js +24 -0
- package/dist/features/admin/repository/chat.repository.d.ts +70 -0
- package/dist/features/admin/repository/chat.repository.js +216 -0
- package/dist/features/admin/repository/notification.repository.d.ts +64 -0
- package/dist/features/admin/repository/notification.repository.js +225 -0
- package/dist/features/admin/repository/site-settings.repository.d.ts +118 -0
- package/dist/features/admin/repository/site-settings.repository.js +214 -0
- package/dist/features/admin/schemas/firestore.d.ts +311 -0
- package/dist/features/admin/schemas/firestore.js +246 -0
- package/dist/features/admin/schemas/index.d.ts +1 -0
- package/dist/features/admin/schemas/index.js +1 -0
- package/dist/features/admin/server.d.ts +15 -0
- package/dist/features/admin/server.js +14 -0
- package/dist/features/admin/types/index.d.ts +61 -0
- package/dist/features/admin/types/index.js +1 -0
- package/dist/features/admin/types/product.types.d.ts +78 -0
- package/dist/features/admin/types/product.types.js +13 -0
- package/dist/features/auctions/actions/bid-actions.d.ts +22 -0
- package/dist/features/auctions/actions/bid-actions.js +106 -0
- package/dist/features/auctions/actions/index.d.ts +1 -0
- package/dist/features/auctions/actions/index.js +1 -0
- package/dist/features/auctions/api/route.d.ts +14 -0
- package/dist/features/auctions/api/route.js +67 -0
- package/dist/features/auctions/columns/index.d.ts +14 -0
- package/dist/features/auctions/columns/index.js +63 -0
- package/dist/features/auctions/components/AuctionCard.d.ts +26 -0
- package/dist/features/auctions/components/AuctionCard.js +35 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +56 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +112 -0
- package/dist/features/auctions/components/MarketplaceAuctionGrid.d.ts +22 -0
- package/dist/features/auctions/components/MarketplaceAuctionGrid.js +37 -0
- package/dist/features/auctions/components/index.d.ts +3 -0
- package/dist/features/auctions/components/index.js +3 -0
- package/dist/features/auctions/hooks/useAuctions.d.ts +50 -0
- package/dist/features/auctions/hooks/useAuctions.js +93 -0
- package/dist/features/auctions/hooks/usePlaceBid.d.ts +24 -0
- package/dist/features/auctions/hooks/usePlaceBid.js +29 -0
- package/dist/features/auctions/hooks/useRealtimeBids.d.ts +38 -0
- package/dist/features/auctions/hooks/useRealtimeBids.js +66 -0
- package/dist/features/auctions/index.d.ts +8 -513
- package/dist/features/auctions/index.js +8 -1194
- package/dist/features/auctions/manifest.d.ts +2 -0
- package/dist/features/auctions/manifest.js +17 -0
- package/dist/features/auctions/messages/en.json +18 -0
- package/dist/features/auctions/repository/auctions.repository.d.ts +12 -0
- package/dist/features/auctions/repository/auctions.repository.js +42 -0
- package/dist/features/auctions/repository/bid.repository.d.ts +145 -0
- package/dist/features/auctions/repository/bid.repository.js +370 -0
- package/dist/features/auctions/schemas/firestore.d.ts +48 -0
- package/dist/features/auctions/schemas/firestore.js +50 -0
- package/dist/features/auctions/schemas/index.d.ts +155 -0
- package/dist/features/auctions/schemas/index.js +64 -0
- package/dist/features/auctions/server.d.ts +10 -0
- package/dist/features/auctions/server.js +10 -0
- package/dist/features/auctions/types/index.d.ts +73 -0
- package/dist/features/auctions/types/index.js +1 -0
- package/dist/features/auth/actions/index.d.ts +2 -0
- package/dist/features/auth/actions/index.js +2 -0
- package/dist/features/auth/actions/profile-actions.d.ts +27 -0
- package/dist/features/auth/actions/profile-actions.js +50 -0
- package/dist/features/auth/actions/realtime-token-actions.d.ts +11 -0
- package/dist/features/auth/actions/realtime-token-actions.js +31 -0
- package/dist/features/auth/api/route.d.ts +22 -0
- package/dist/features/auth/api/route.js +48 -0
- package/dist/features/auth/auth-helpers.d.ts +14 -0
- package/dist/features/auth/auth-helpers.js +68 -0
- package/dist/features/auth/components/AuthStatusPanel.d.ts +10 -0
- package/dist/features/auth/components/AuthStatusPanel.js +22 -0
- package/dist/features/auth/components/ForgotPasswordView.d.ts +18 -0
- package/dist/features/auth/components/ForgotPasswordView.js +15 -0
- package/dist/features/auth/components/Guards.d.ts +86 -0
- package/dist/features/auth/components/Guards.js +91 -0
- package/dist/features/auth/components/LoginForm.d.ts +36 -0
- package/dist/features/auth/components/LoginForm.js +18 -0
- package/dist/features/auth/components/RegisterForm.d.ts +36 -0
- package/dist/features/auth/components/RegisterForm.js +27 -0
- package/dist/features/auth/components/ResetPasswordView.d.ts +23 -0
- package/dist/features/auth/components/ResetPasswordView.js +22 -0
- package/dist/features/auth/components/SocialAuthButtons.d.ts +8 -0
- package/dist/features/auth/components/SocialAuthButtons.js +6 -0
- package/dist/features/auth/components/VerifyEmailView.d.ts +20 -0
- package/dist/features/auth/components/VerifyEmailView.js +8 -0
- package/dist/features/auth/components/index.d.ts +14 -0
- package/dist/features/auth/components/index.js +8 -0
- package/dist/features/auth/consent-otp.d.ts +52 -0
- package/dist/features/auth/consent-otp.js +120 -0
- package/dist/features/auth/hooks/useAuth.d.ts +81 -0
- package/dist/features/auth/hooks/useAuth.js +164 -0
- package/dist/features/auth/hooks/useAuthEvent.d.ts +22 -0
- package/dist/features/auth/hooks/useAuthEvent.js +31 -0
- package/dist/features/auth/hooks/useLogout.d.ts +16 -0
- package/dist/features/auth/hooks/useLogout.js +22 -0
- package/dist/features/auth/hooks/useRBAC.d.ts +38 -0
- package/dist/features/auth/hooks/useRBAC.js +80 -0
- package/dist/features/auth/index.d.ts +10 -315
- package/dist/features/auth/index.js +10 -1874
- package/dist/features/auth/manifest.d.ts +2 -0
- package/dist/features/auth/manifest.js +21 -0
- package/dist/features/auth/messages/en.json +13 -0
- package/dist/features/auth/repository/index.d.ts +4 -0
- package/dist/features/auth/repository/index.js +4 -0
- package/dist/features/auth/repository/session.repository.d.ts +44 -0
- package/dist/features/auth/repository/session.repository.js +246 -0
- package/dist/features/auth/repository/sms-counter.repository.d.ts +15 -0
- package/dist/features/auth/repository/sms-counter.repository.js +54 -0
- package/dist/features/auth/repository/token.repository.d.ts +38 -0
- package/dist/features/auth/repository/token.repository.js +186 -0
- package/dist/features/auth/repository/user.repository.d.ts +46 -0
- package/dist/features/auth/repository/user.repository.js +233 -0
- package/dist/features/auth/schemas/firestore.d.ts +351 -0
- package/dist/features/auth/schemas/firestore.js +272 -0
- package/dist/features/auth/schemas/index.d.ts +72 -0
- package/dist/features/auth/schemas/index.js +41 -0
- package/dist/features/auth/server.d.ts +15 -18
- package/dist/features/auth/server.js +21 -529
- package/dist/features/auth/token-helpers.d.ts +7 -0
- package/dist/features/auth/token-helpers.js +37 -0
- package/dist/features/auth/token-store.d.ts +39 -0
- package/dist/features/auth/token-store.js +120 -0
- package/dist/features/auth/types/index.d.ts +30 -0
- package/dist/features/auth/types/index.js +1 -0
- package/dist/features/before-after/api/[id]/route.d.ts +26 -0
- package/dist/features/before-after/api/[id]/route.js +88 -0
- package/dist/features/before-after/api/route.d.ts +13 -0
- package/dist/features/before-after/api/route.js +79 -0
- package/dist/features/before-after/columns/index.d.ts +17 -0
- package/dist/features/before-after/columns/index.js +50 -0
- package/dist/features/before-after/components/BeforeAfterGallery.d.ts +7 -0
- package/dist/features/before-after/components/BeforeAfterGallery.js +8 -0
- package/dist/features/before-after/components/BeforeAfterSlider.d.ts +7 -0
- package/dist/features/before-after/components/BeforeAfterSlider.js +27 -0
- package/dist/features/before-after/components/index.d.ts +2 -0
- package/dist/features/before-after/components/index.js +2 -0
- package/dist/features/before-after/hooks/useBeforeAfter.d.ts +15 -0
- package/dist/features/before-after/hooks/useBeforeAfter.js +25 -0
- package/dist/features/before-after/index.d.ts +6 -128
- package/dist/features/before-after/index.js +6 -546
- package/dist/features/before-after/manifest.d.ts +2 -0
- package/dist/features/before-after/manifest.js +10 -0
- package/dist/features/before-after/messages/en.json +8 -0
- package/dist/features/before-after/repository/before-after.repository.d.ts +13 -0
- package/dist/features/before-after/repository/before-after.repository.js +36 -0
- package/dist/features/before-after/schemas/index.d.ts +48 -0
- package/dist/features/before-after/schemas/index.js +24 -0
- package/dist/features/before-after/server.d.ts +7 -0
- package/dist/features/before-after/server.js +7 -0
- package/dist/features/before-after/types/index.d.ts +18 -0
- package/dist/features/before-after/types/index.js +1 -0
- package/dist/features/blog/actions/blog-actions.d.ts +302 -0
- package/dist/features/blog/actions/blog-actions.js +119 -0
- package/dist/features/blog/actions/index.d.ts +1 -0
- package/dist/features/blog/actions/index.js +1 -0
- package/dist/features/blog/api/[slug]/route.d.ts +23 -0
- package/dist/features/blog/api/[slug]/route.js +40 -0
- package/dist/features/blog/api/route.d.ts +12 -0
- package/dist/features/blog/api/route.js +64 -0
- package/dist/features/blog/columns/index.d.ts +27 -0
- package/dist/features/blog/columns/index.js +54 -0
- package/dist/features/blog/components/BlogFeaturedCard.d.ts +17 -0
- package/dist/features/blog/components/BlogFeaturedCard.js +24 -0
- package/dist/features/blog/components/BlogFilters.d.ts +106 -0
- package/dist/features/blog/components/BlogFilters.js +67 -0
- package/dist/features/blog/components/BlogListView.d.ts +29 -0
- package/dist/features/blog/components/BlogListView.js +38 -0
- package/dist/features/blog/components/BlogPostForm.d.ts +56 -0
- package/dist/features/blog/components/BlogPostForm.js +24 -0
- package/dist/features/blog/components/BlogPostView.d.ts +32 -0
- package/dist/features/blog/components/BlogPostView.js +39 -0
- package/dist/features/blog/components/index.d.ts +9 -0
- package/dist/features/blog/components/index.js +5 -0
- package/dist/features/blog/hooks/useBlog.d.ts +27 -0
- package/dist/features/blog/hooks/useBlog.js +51 -0
- package/dist/features/blog/index.d.ts +6 -492
- package/dist/features/blog/index.js +6 -4062
- package/dist/features/blog/manifest.d.ts +2 -0
- package/dist/features/blog/manifest.js +14 -0
- package/dist/features/blog/messages/en.json +14 -0
- package/dist/features/blog/repository/blog.repository.d.ts +79 -0
- package/dist/features/blog/repository/blog.repository.js +130 -0
- package/dist/features/blog/schemas/firestore.d.ts +87 -0
- package/dist/features/blog/schemas/firestore.js +99 -0
- package/dist/features/blog/schemas/index.d.ts +207 -0
- package/dist/features/blog/schemas/index.js +71 -0
- package/dist/features/blog/server.d.ts +8 -71
- package/dist/features/blog/server.js +10 -180
- package/dist/features/blog/types/index.d.ts +47 -0
- package/dist/features/blog/types/index.js +1 -0
- package/dist/features/cart/actions/cart-actions.d.ts +16 -0
- package/dist/features/cart/actions/cart-actions.js +52 -0
- package/dist/features/cart/actions/index.d.ts +1 -0
- package/dist/features/cart/actions/index.js +1 -0
- package/dist/features/cart/api/[id]/route.d.ts +21 -0
- package/dist/features/cart/api/[id]/route.js +62 -0
- package/dist/features/cart/api/route.d.ts +13 -0
- package/dist/features/cart/api/route.js +79 -0
- package/dist/features/cart/columns/index.d.ts +17 -0
- package/dist/features/cart/columns/index.js +53 -0
- package/dist/features/cart/components/CartDrawer.d.ts +27 -0
- package/dist/features/cart/components/CartDrawer.js +14 -0
- package/dist/features/cart/components/CartSummary.d.ts +19 -0
- package/dist/features/cart/components/CartSummary.js +5 -0
- package/dist/features/cart/components/CartView.d.ts +17 -0
- package/dist/features/cart/components/CartView.js +7 -0
- package/dist/features/cart/components/CheckoutAddressStep.d.ts +20 -0
- package/dist/features/cart/components/CheckoutAddressStep.js +12 -0
- package/dist/features/cart/components/CheckoutOtpModal.d.ts +15 -0
- package/dist/features/cart/components/CheckoutOtpModal.js +12 -0
- package/dist/features/cart/components/CheckoutSuccessView.d.ts +12 -0
- package/dist/features/cart/components/CheckoutSuccessView.js +9 -0
- package/dist/features/cart/components/CheckoutView.d.ts +15 -0
- package/dist/features/cart/components/CheckoutView.js +18 -0
- package/dist/features/cart/components/index.d.ts +13 -0
- package/dist/features/cart/components/index.js +7 -0
- package/dist/features/cart/hooks/useAddToCart.d.ts +27 -0
- package/dist/features/cart/hooks/useAddToCart.js +52 -0
- package/dist/features/cart/hooks/useCart.d.ts +17 -0
- package/dist/features/cart/hooks/useCart.js +24 -0
- package/dist/features/cart/hooks/useCartCount.d.ts +7 -0
- package/dist/features/cart/hooks/useCartCount.js +19 -0
- package/dist/features/cart/hooks/useCartQuery.d.ts +8 -0
- package/dist/features/cart/hooks/useCartQuery.js +11 -0
- package/dist/features/cart/hooks/useCheckoutReadQueries.d.ts +14 -0
- package/dist/features/cart/hooks/useCheckoutReadQueries.js +18 -0
- package/dist/features/cart/hooks/useGuestCart.d.ts +18 -0
- package/dist/features/cart/hooks/useGuestCart.js +32 -0
- package/dist/features/cart/hooks/useGuestCartMerge.d.ts +15 -0
- package/dist/features/cart/hooks/useGuestCartMerge.js +50 -0
- package/dist/features/cart/hooks/useOrder.d.ts +13 -0
- package/dist/features/cart/hooks/useOrder.js +24 -0
- package/dist/features/cart/index.d.ts +14 -451
- package/dist/features/cart/index.js +14 -1064
- package/dist/features/cart/manifest.d.ts +2 -0
- package/dist/features/cart/manifest.js +10 -0
- package/dist/features/cart/messages/en.json +10 -0
- package/dist/features/cart/repository/cart.repository.d.ts +23 -0
- package/dist/features/cart/repository/cart.repository.js +210 -0
- package/dist/features/cart/schemas/firestore.d.ts +83 -0
- package/dist/features/cart/schemas/firestore.js +36 -0
- package/dist/features/cart/schemas/index.d.ts +184 -0
- package/dist/features/cart/schemas/index.js +35 -0
- package/dist/features/cart/server.d.ts +8 -0
- package/dist/features/cart/server.js +8 -0
- package/dist/features/cart/types/index.d.ts +27 -0
- package/dist/features/cart/types/index.js +1 -0
- package/dist/features/cart/utils/guest-cart.d.ts +26 -0
- package/dist/features/cart/utils/guest-cart.js +83 -0
- package/dist/features/categories/actions/category-actions.d.ts +17 -0
- package/dist/features/categories/actions/category-actions.js +63 -0
- package/dist/features/categories/actions/index.d.ts +1 -0
- package/dist/features/categories/actions/index.js +1 -0
- package/dist/features/categories/api/[id]/route.d.ts +23 -0
- package/dist/features/categories/api/[id]/route.js +98 -0
- package/dist/features/categories/api/route.d.ts +19 -0
- package/dist/features/categories/api/route.js +200 -0
- package/dist/features/categories/columns/index.d.ts +15 -0
- package/dist/features/categories/columns/index.js +38 -0
- package/dist/features/categories/components/BreadcrumbTrail.d.ts +47 -0
- package/dist/features/categories/components/BreadcrumbTrail.js +36 -0
- package/dist/features/categories/components/CategoriesListView.d.ts +31 -0
- package/dist/features/categories/components/CategoriesListView.js +27 -0
- package/dist/features/categories/components/CategoryFilters.d.ts +68 -0
- package/dist/features/categories/components/CategoryFilters.js +75 -0
- package/dist/features/categories/components/CategoryForm.d.ts +24 -0
- package/dist/features/categories/components/CategoryForm.js +42 -0
- package/dist/features/categories/components/CategoryGrid.d.ts +14 -0
- package/dist/features/categories/components/CategoryGrid.js +14 -0
- package/dist/features/categories/components/CategoryProductsView.d.ts +49 -0
- package/dist/features/categories/components/CategoryProductsView.js +21 -0
- package/dist/features/categories/components/CategorySelectorCreate.d.ts +17 -0
- package/dist/features/categories/components/CategorySelectorCreate.js +57 -0
- package/dist/features/categories/components/CategorySortSelect.d.ts +9 -0
- package/dist/features/categories/components/CategorySortSelect.js +8 -0
- package/dist/features/categories/components/CategoryTableColumns.d.ts +30 -0
- package/dist/features/categories/components/CategoryTableColumns.js +54 -0
- package/dist/features/categories/components/CategoryTree.d.ts +15 -0
- package/dist/features/categories/components/CategoryTree.js +49 -0
- package/dist/features/categories/components/ConcernCard.d.ts +8 -0
- package/dist/features/categories/components/ConcernCard.js +5 -0
- package/dist/features/categories/components/ConcernGrid.d.ts +8 -0
- package/dist/features/categories/components/ConcernGrid.js +8 -0
- package/dist/features/categories/components/index.d.ts +22 -0
- package/dist/features/categories/components/index.js +12 -0
- package/dist/features/categories/hooks/useCategories.d.ts +26 -0
- package/dist/features/categories/hooks/useCategories.js +50 -0
- package/dist/features/categories/hooks/useCategorySelector.d.ts +26 -0
- package/dist/features/categories/hooks/useCategorySelector.js +42 -0
- package/dist/features/categories/index.d.ts +7 -461
- package/dist/features/categories/index.js +7 -2031
- package/dist/features/categories/manifest.d.ts +2 -0
- package/dist/features/categories/manifest.js +20 -0
- package/dist/features/categories/messages/en.json +14 -0
- package/dist/features/categories/repository/categories.repository.d.ts +31 -0
- package/dist/features/categories/repository/categories.repository.js +399 -0
- package/dist/features/categories/schemas/firestore.d.ts +140 -0
- package/dist/features/categories/schemas/firestore.js +189 -0
- package/dist/features/categories/schemas/index.d.ts +207 -0
- package/dist/features/categories/schemas/index.js +67 -0
- package/dist/features/categories/server.d.ts +7 -44
- package/dist/features/categories/server.js +10 -789
- package/dist/features/categories/types/index.d.ts +80 -0
- package/dist/features/categories/types/index.js +13 -0
- package/dist/features/checkout/actions/checkout-actions.d.ts +14 -0
- package/dist/features/checkout/actions/checkout-actions.js +91 -0
- package/dist/features/checkout/actions/index.d.ts +1 -0
- package/dist/features/checkout/actions/index.js +1 -0
- package/dist/features/checkout/components/CheckoutStepper.d.ts +10 -0
- package/dist/features/checkout/components/CheckoutStepper.js +15 -0
- package/dist/features/checkout/components/index.d.ts +1 -0
- package/dist/features/checkout/components/index.js +1 -0
- package/dist/features/checkout/hooks/useCheckout.d.ts +9 -0
- package/dist/features/checkout/hooks/useCheckout.js +24 -0
- package/dist/features/checkout/hooks/useCheckoutApi.d.ts +74 -0
- package/dist/features/checkout/hooks/useCheckoutApi.js +48 -0
- package/dist/features/checkout/hooks/usePaymentCheckout.d.ts +78 -0
- package/dist/features/checkout/hooks/usePaymentCheckout.js +178 -0
- package/dist/features/checkout/index.d.ts +8 -70
- package/dist/features/checkout/index.js +7 -192
- package/dist/features/checkout/manifest.d.ts +2 -0
- package/dist/features/checkout/manifest.js +17 -0
- package/dist/features/checkout/messages/en.json +10 -0
- package/dist/features/checkout/repository/failed-checkout.repository.d.ts +18 -0
- package/dist/features/checkout/repository/failed-checkout.repository.js +29 -0
- package/dist/features/checkout/schemas/firestore.d.ts +33 -0
- package/dist/features/checkout/schemas/firestore.js +6 -0
- package/dist/features/checkout/schemas/index.d.ts +1 -0
- package/dist/features/checkout/schemas/index.js +1 -0
- package/dist/features/checkout/server.d.ts +8 -0
- package/dist/features/checkout/server.js +8 -0
- package/dist/features/checkout/types/index.d.ts +46 -0
- package/dist/features/checkout/types/index.js +2 -0
- package/dist/features/cms/index.d.ts +1 -2
- package/dist/features/cms/index.js +5 -4
- package/dist/features/collections/api/[slug]/route.d.ts +26 -0
- package/dist/features/collections/api/[slug]/route.js +102 -0
- package/dist/features/collections/api/route.d.ts +13 -0
- package/dist/features/collections/api/route.js +79 -0
- package/dist/features/collections/columns/index.d.ts +17 -0
- package/dist/features/collections/columns/index.js +55 -0
- package/dist/features/collections/components/CollectionCard.d.ts +12 -0
- package/dist/features/collections/components/CollectionCard.js +9 -0
- package/dist/features/collections/components/index.d.ts +1 -0
- package/dist/features/collections/components/index.js +1 -0
- package/dist/features/collections/hooks/useCollections.d.ts +7 -0
- package/dist/features/collections/hooks/useCollections.js +34 -0
- package/dist/features/collections/index.d.ts +6 -148
- package/dist/features/collections/index.js +6 -378
- package/dist/features/collections/manifest.d.ts +2 -0
- package/dist/features/collections/manifest.js +16 -0
- package/dist/features/collections/messages/en.json +10 -0
- package/dist/features/collections/repository/collections.repository.d.ts +8 -0
- package/dist/features/collections/repository/collections.repository.js +16 -0
- package/dist/features/collections/schemas/index.d.ts +76 -0
- package/dist/features/collections/schemas/index.js +34 -0
- package/dist/features/collections/server.d.ts +7 -0
- package/dist/features/collections/server.js +7 -0
- package/dist/features/collections/types/index.d.ts +25 -0
- package/dist/features/collections/types/index.js +1 -0
- package/dist/features/consultation/api/[id]/route.d.ts +26 -0
- package/dist/features/consultation/api/[id]/route.js +88 -0
- package/dist/features/consultation/api/route.d.ts +13 -0
- package/dist/features/consultation/api/route.js +79 -0
- package/dist/features/consultation/columns/index.d.ts +17 -0
- package/dist/features/consultation/columns/index.js +54 -0
- package/dist/features/consultation/components/ConsultationForm.d.ts +8 -0
- package/dist/features/consultation/components/ConsultationForm.js +51 -0
- package/dist/features/consultation/components/index.d.ts +1 -0
- package/dist/features/consultation/components/index.js +1 -0
- package/dist/features/consultation/hooks/useBookConsultation.d.ts +8 -0
- package/dist/features/consultation/hooks/useBookConsultation.js +16 -0
- package/dist/features/consultation/index.d.ts +6 -172
- package/dist/features/consultation/index.js +6 -1084
- package/dist/features/consultation/manifest.d.ts +2 -0
- package/dist/features/consultation/manifest.js +12 -0
- package/dist/features/consultation/messages/en.json +25 -0
- package/dist/features/consultation/repository/consultations.repository.d.ts +12 -0
- package/dist/features/consultation/repository/consultations.repository.js +28 -0
- package/dist/features/consultation/schemas/index.d.ts +87 -0
- package/dist/features/consultation/schemas/index.js +47 -0
- package/dist/features/consultation/server.d.ts +7 -0
- package/dist/features/consultation/server.js +7 -0
- package/dist/features/consultation/types/index.d.ts +33 -0
- package/dist/features/consultation/types/index.js +1 -0
- package/dist/features/contact/components/ContactForm.d.ts +32 -0
- package/dist/features/contact/components/ContactForm.js +58 -0
- package/dist/features/contact/components/ContactInfoSidebar.d.ts +20 -0
- package/dist/features/contact/components/ContactInfoSidebar.js +6 -0
- package/dist/features/contact/components/index.d.ts +4 -0
- package/dist/features/contact/components/index.js +2 -0
- package/dist/features/contact/email.d.ts +61 -0
- package/dist/features/contact/email.js +345 -0
- package/dist/features/contact/hooks/useContactSubmit.d.ts +4 -0
- package/dist/features/contact/hooks/useContactSubmit.js +7 -0
- package/dist/features/contact/index.d.ts +2 -56
- package/dist/features/contact/index.js +2 -586
- package/dist/features/contact/server.d.ts +7 -0
- package/dist/features/contact/server.js +7 -0
- package/dist/features/copilot/components/AdminCopilotView.d.ts +21 -0
- package/dist/features/copilot/components/AdminCopilotView.js +29 -0
- package/dist/features/copilot/components/index.d.ts +2 -0
- package/dist/features/copilot/components/index.js +1 -0
- package/dist/features/copilot/hooks/useCopilotChat.d.ts +22 -0
- package/dist/features/copilot/hooks/useCopilotChat.js +57 -0
- package/dist/features/copilot/hooks/useCopilotFeedback.d.ts +15 -0
- package/dist/features/copilot/hooks/useCopilotFeedback.js +16 -0
- package/dist/features/copilot/index.d.ts +3 -47
- package/dist/features/copilot/index.js +3 -681
- package/dist/features/corporate/api/[id]/route.d.ts +26 -0
- package/dist/features/corporate/api/[id]/route.js +88 -0
- package/dist/features/corporate/api/route.d.ts +13 -0
- package/dist/features/corporate/api/route.js +79 -0
- package/dist/features/corporate/columns/index.d.ts +17 -0
- package/dist/features/corporate/columns/index.js +54 -0
- package/dist/features/corporate/components/CorporateInquiryForm.d.ts +7 -0
- package/dist/features/corporate/components/CorporateInquiryForm.js +36 -0
- package/dist/features/corporate/components/index.d.ts +1 -0
- package/dist/features/corporate/components/index.js +1 -0
- package/dist/features/corporate/hooks/useSubmitCorporateInquiry.d.ts +8 -0
- package/dist/features/corporate/hooks/useSubmitCorporateInquiry.js +16 -0
- package/dist/features/corporate/index.d.ts +6 -183
- package/dist/features/corporate/index.js +6 -782
- package/dist/features/corporate/manifest.d.ts +2 -0
- package/dist/features/corporate/manifest.js +12 -0
- package/dist/features/corporate/messages/en.json +26 -0
- package/dist/features/corporate/repository/corporate.repository.d.ts +12 -0
- package/dist/features/corporate/repository/corporate.repository.js +28 -0
- package/dist/features/corporate/schemas/index.d.ts +95 -0
- package/dist/features/corporate/schemas/index.js +50 -0
- package/dist/features/corporate/server.d.ts +7 -0
- package/dist/features/corporate/server.js +7 -0
- package/dist/features/corporate/types/index.d.ts +37 -0
- package/dist/features/corporate/types/index.js +1 -0
- package/dist/features/cron/firebase-adapters.d.ts +70 -0
- package/dist/features/cron/firebase-adapters.js +68 -0
- package/dist/features/cron/index.d.ts +5 -0
- package/dist/features/cron/index.js +7 -0
- package/dist/features/cron/jobs/auction-expiry.job.d.ts +27 -0
- package/dist/features/cron/jobs/auction-expiry.job.js +38 -0
- package/dist/features/cron/jobs/preorder-reminder.job.d.ts +14 -0
- package/dist/features/cron/jobs/preorder-reminder.job.js +40 -0
- package/dist/features/cron/registry.d.ts +45 -0
- package/dist/features/cron/registry.js +86 -0
- package/dist/features/cron/types.d.ts +66 -0
- package/dist/features/cron/types.js +9 -0
- package/dist/features/events/actions/event-actions.d.ts +92 -0
- package/dist/features/events/actions/event-actions.js +253 -0
- package/dist/features/events/actions/index.d.ts +1 -0
- package/dist/features/events/actions/index.js +1 -0
- package/dist/features/events/api/[id]/route.d.ts +24 -0
- package/dist/features/events/api/[id]/route.js +83 -0
- package/dist/features/events/api/route.d.ts +12 -0
- package/dist/features/events/api/route.js +88 -0
- package/dist/features/events/columns/index.d.ts +22 -0
- package/dist/features/events/columns/index.js +41 -0
- package/dist/features/events/components/AdminEventEntriesView.d.ts +17 -0
- package/dist/features/events/components/AdminEventEntriesView.js +10 -0
- package/dist/features/events/components/AdminEventsView.d.ts +11 -0
- package/dist/features/events/components/AdminEventsView.js +5 -0
- package/dist/features/events/components/EventBanner.d.ts +13 -0
- package/dist/features/events/components/EventBanner.js +48 -0
- package/dist/features/events/components/EventCard.d.ts +13 -0
- package/dist/features/events/components/EventCard.js +21 -0
- package/dist/features/events/components/EventDetailView.d.ts +15 -0
- package/dist/features/events/components/EventDetailView.js +11 -0
- package/dist/features/events/components/EventFilters.d.ts +105 -0
- package/dist/features/events/components/EventFilters.js +73 -0
- package/dist/features/events/components/EventFormDrawer.d.ts +22 -0
- package/dist/features/events/components/EventFormDrawer.js +6 -0
- package/dist/features/events/components/EventLeaderboard.d.ts +23 -0
- package/dist/features/events/components/EventLeaderboard.js +18 -0
- package/dist/features/events/components/EventParticipateView.d.ts +19 -0
- package/dist/features/events/components/EventParticipateView.js +13 -0
- package/dist/features/events/components/EventStatusBadge.d.ts +7 -0
- package/dist/features/events/components/EventStatusBadge.js +12 -0
- package/dist/features/events/components/EventsListView.d.ts +16 -0
- package/dist/features/events/components/EventsListView.js +21 -0
- package/dist/features/events/components/index.d.ts +19 -0
- package/dist/features/events/components/index.js +11 -0
- package/dist/features/events/hooks/useBulkEvent.d.ts +19 -0
- package/dist/features/events/hooks/useBulkEvent.js +36 -0
- package/dist/features/events/hooks/useEvent.d.ts +43 -0
- package/dist/features/events/hooks/useEvent.js +55 -0
- package/dist/features/events/hooks/useEvents.d.ts +27 -0
- package/dist/features/events/hooks/useEvents.js +38 -0
- package/dist/features/events/index.d.ts +8 -841
- package/dist/features/events/index.js +8 -1453
- package/dist/features/events/manifest.d.ts +2 -0
- package/dist/features/events/manifest.js +24 -0
- package/dist/features/events/messages/en.json +28 -0
- package/dist/features/events/repository/event-entry.repository.d.ts +17 -0
- package/dist/features/events/repository/event-entry.repository.js +115 -0
- package/dist/features/events/repository/events.repository.d.ts +18 -0
- package/dist/features/events/repository/events.repository.js +128 -0
- package/dist/features/events/schemas/firestore.d.ts +115 -0
- package/dist/features/events/schemas/firestore.js +77 -0
- package/dist/features/events/schemas/index.d.ts +383 -0
- package/dist/features/events/schemas/index.js +87 -0
- package/dist/features/events/server.d.ts +8 -37
- package/dist/features/events/server.js +11 -195
- package/dist/features/events/types/index.d.ts +133 -0
- package/dist/features/events/types/index.js +1 -0
- package/dist/features/faq/actions/faq-actions.d.ts +191 -0
- package/dist/features/faq/actions/faq-actions.js +103 -0
- package/dist/features/faq/actions/index.d.ts +1 -0
- package/dist/features/faq/actions/index.js +1 -0
- package/dist/features/faq/api/route.d.ts +11 -0
- package/dist/features/faq/api/route.js +50 -0
- package/dist/features/faq/columns/index.d.ts +15 -0
- package/dist/features/faq/columns/index.js +47 -0
- package/dist/features/faq/components/ContactCTA.d.ts +16 -0
- package/dist/features/faq/components/ContactCTA.js +6 -0
- package/dist/features/faq/components/FAQAccordion.d.ts +20 -0
- package/dist/features/faq/components/FAQAccordion.js +17 -0
- package/dist/features/faq/components/FAQCategorySidebar.d.ts +24 -0
- package/dist/features/faq/components/FAQCategorySidebar.js +15 -0
- package/dist/features/faq/components/FAQHelpfulButtons.d.ts +19 -0
- package/dist/features/faq/components/FAQHelpfulButtons.js +46 -0
- package/dist/features/faq/components/FAQPageContent.d.ts +54 -0
- package/dist/features/faq/components/FAQPageContent.js +67 -0
- package/dist/features/faq/components/FAQSortDropdown.d.ts +13 -0
- package/dist/features/faq/components/FAQSortDropdown.js +11 -0
- package/dist/features/faq/components/RelatedFAQs.d.ts +10 -0
- package/dist/features/faq/components/RelatedFAQs.js +9 -0
- package/dist/features/faq/components/index.d.ts +9 -0
- package/dist/features/faq/components/index.js +7 -0
- package/dist/features/faq/hooks/useFAQs.d.ts +22 -0
- package/dist/features/faq/hooks/useFAQs.js +42 -0
- package/dist/features/faq/hooks/useFaqList.d.ts +194 -0
- package/dist/features/faq/hooks/useFaqList.js +35 -0
- package/dist/features/faq/hooks/useFaqVote.d.ts +14 -0
- package/dist/features/faq/hooks/useFaqVote.js +10 -0
- package/dist/features/faq/index.d.ts +8 -619
- package/dist/features/faq/index.js +8 -1685
- package/dist/features/faq/manifest.d.ts +2 -0
- package/dist/features/faq/manifest.js +10 -0
- package/dist/features/faq/messages/en.json +14 -0
- package/dist/features/faq/repository/faqs.repository.d.ts +43 -0
- package/dist/features/faq/repository/faqs.repository.js +300 -0
- package/dist/features/faq/schemas/firestore.d.ts +63 -0
- package/dist/features/faq/schemas/firestore.js +115 -0
- package/dist/features/faq/schemas/index.d.ts +157 -0
- package/dist/features/faq/schemas/index.js +62 -0
- package/dist/features/faq/server.d.ts +9 -0
- package/dist/features/faq/server.js +9 -0
- package/dist/features/faq/types/index.d.ts +52 -0
- package/dist/features/faq/types/index.js +1 -0
- package/dist/features/filters/FilterFacetSection.d.ts +23 -0
- package/dist/features/filters/FilterFacetSection.js +39 -0
- package/dist/features/filters/FilterPanel.d.ts +61 -0
- package/dist/features/filters/FilterPanel.js +40 -0
- package/dist/features/filters/RangeFilter.d.ts +23 -0
- package/dist/features/filters/RangeFilter.js +28 -0
- package/dist/features/filters/SwitchFilter.d.ts +12 -0
- package/dist/features/filters/SwitchFilter.js +19 -0
- package/dist/features/filters/filterUtils.d.ts +11 -0
- package/dist/features/filters/filterUtils.js +13 -0
- package/dist/features/filters/index.d.ts +10 -136
- package/dist/features/filters/index.js +6 -1061
- package/dist/features/forms/Checkbox.d.ts +8 -0
- package/dist/features/forms/Checkbox.js +15 -0
- package/dist/features/forms/Form.d.ts +25 -0
- package/dist/features/forms/Form.js +38 -0
- package/dist/features/forms/Input.d.ts +10 -0
- package/dist/features/forms/Input.js +23 -0
- package/dist/features/forms/Radio.d.ts +17 -0
- package/dist/features/forms/Radio.js +19 -0
- package/dist/features/forms/Select.d.ts +13 -0
- package/dist/features/forms/Select.js +8 -0
- package/dist/features/forms/Slider.d.ts +20 -0
- package/dist/features/forms/Slider.js +22 -0
- package/dist/features/forms/Textarea.d.ts +8 -0
- package/dist/features/forms/Textarea.js +15 -0
- package/dist/features/forms/Toggle.d.ts +15 -0
- package/dist/features/forms/Toggle.js +48 -0
- package/dist/features/forms/index.d.ts +17 -129
- package/dist/features/forms/index.js +11 -915
- package/dist/features/forms/utils.d.ts +10 -0
- package/dist/features/forms/utils.js +13 -0
- package/dist/features/homepage/actions/carousel-actions.d.ts +37 -0
- package/dist/features/homepage/actions/carousel-actions.js +54 -0
- package/dist/features/homepage/actions/homepage-section-actions.d.ts +46 -0
- package/dist/features/homepage/actions/homepage-section-actions.js +55 -0
- package/dist/features/homepage/actions/index.d.ts +2 -0
- package/dist/features/homepage/actions/index.js +2 -0
- package/dist/features/homepage/api/[id]/route.d.ts +23 -0
- package/dist/features/homepage/api/[id]/route.js +100 -0
- package/dist/features/homepage/api/carousel/[id]/route.d.ts +23 -0
- package/dist/features/homepage/api/carousel/[id]/route.js +122 -0
- package/dist/features/homepage/api/carousel/route.d.ts +15 -0
- package/dist/features/homepage/api/carousel/route.js +154 -0
- package/dist/features/homepage/api/route.d.ts +14 -0
- package/dist/features/homepage/api/route.js +136 -0
- package/dist/features/homepage/api/sections/[id]/route.d.ts +26 -0
- package/dist/features/homepage/api/sections/[id]/route.js +88 -0
- package/dist/features/homepage/api/sections/route.d.ts +13 -0
- package/dist/features/homepage/api/sections/route.js +79 -0
- package/dist/features/homepage/components/AdvertisementBanner.d.ts +13 -0
- package/dist/features/homepage/components/AdvertisementBanner.js +23 -0
- package/dist/features/homepage/components/BeforeAfterCard.d.ts +10 -0
- package/dist/features/homepage/components/BeforeAfterCard.js +54 -0
- package/dist/features/homepage/components/CharacterHotspot.d.ts +24 -0
- package/dist/features/homepage/components/CharacterHotspot.js +373 -0
- package/dist/features/homepage/components/CharacterHotspotForm.d.ts +26 -0
- package/dist/features/homepage/components/CharacterHotspotForm.js +309 -0
- package/dist/features/homepage/components/CustomerReviewsSection.d.ts +13 -0
- package/dist/features/homepage/components/CustomerReviewsSection.js +14 -0
- package/dist/features/homepage/components/FAQSection.d.ts +26 -0
- package/dist/features/homepage/components/FAQSection.js +20 -0
- package/dist/features/homepage/components/FeaturedResultsSection.d.ts +17 -0
- package/dist/features/homepage/components/FeaturedResultsSection.js +18 -0
- package/dist/features/homepage/components/HeroBanner.d.ts +7 -0
- package/dist/features/homepage/components/HeroBanner.js +93 -0
- package/dist/features/homepage/components/HeroCarousel.d.ts +12 -0
- package/dist/features/homepage/components/HeroCarousel.js +157 -0
- package/dist/features/homepage/components/HeroSection.d.ts +7 -0
- package/dist/features/homepage/components/HeroSection.js +12 -0
- package/dist/features/homepage/components/HomepageSkeleton.d.ts +2 -0
- package/dist/features/homepage/components/HomepageSkeleton.js +14 -0
- package/dist/features/homepage/components/HomepageView.d.ts +25 -0
- package/dist/features/homepage/components/HomepageView.js +5 -0
- package/dist/features/homepage/components/HowItWorksInfoView.d.ts +36 -0
- package/dist/features/homepage/components/HowItWorksInfoView.js +8 -0
- package/dist/features/homepage/components/HowItWorksSection.d.ts +23 -0
- package/dist/features/homepage/components/HowItWorksSection.js +36 -0
- package/dist/features/homepage/components/NewsletterBanner.d.ts +22 -0
- package/dist/features/homepage/components/NewsletterBanner.js +34 -0
- package/dist/features/homepage/components/NewsletterSection.d.ts +10 -0
- package/dist/features/homepage/components/NewsletterSection.js +8 -0
- package/dist/features/homepage/components/PromoGrid.d.ts +9 -0
- package/dist/features/homepage/components/PromoGrid.js +35 -0
- package/dist/features/homepage/components/SectionCarousel.d.ts +75 -0
- package/dist/features/homepage/components/SectionCarousel.js +39 -0
- package/dist/features/homepage/components/SecurityHighlightsSection.d.ts +21 -0
- package/dist/features/homepage/components/SecurityHighlightsSection.js +36 -0
- package/dist/features/homepage/components/SiteFeaturesSection.d.ts +13 -0
- package/dist/features/homepage/components/SiteFeaturesSection.js +9 -0
- package/dist/features/homepage/components/StatsCounterSection.d.ts +14 -0
- package/dist/features/homepage/components/StatsCounterSection.js +32 -0
- package/dist/features/homepage/components/TestimonialsCarousel.d.ts +9 -0
- package/dist/features/homepage/components/TestimonialsCarousel.js +30 -0
- package/dist/features/homepage/components/TrustBadges.d.ts +5 -0
- package/dist/features/homepage/components/TrustBadges.js +54 -0
- package/dist/features/homepage/components/TrustFeaturesSection.d.ts +16 -0
- package/dist/features/homepage/components/TrustFeaturesSection.js +41 -0
- package/dist/features/homepage/components/TrustIndicatorsSection.d.ts +11 -0
- package/dist/features/homepage/components/TrustIndicatorsSection.js +9 -0
- package/dist/features/homepage/components/WelcomeSection.d.ts +20 -0
- package/dist/features/homepage/components/WelcomeSection.js +12 -0
- package/dist/features/homepage/components/WhatsAppCommunitySection.d.ts +15 -0
- package/dist/features/homepage/components/WhatsAppCommunitySection.js +21 -0
- package/dist/features/homepage/components/index.d.ts +52 -0
- package/dist/features/homepage/components/index.js +27 -0
- package/dist/features/homepage/hooks/useBlogArticles.d.ts +12 -0
- package/dist/features/homepage/hooks/useBlogArticles.js +31 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +2 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.js +26 -0
- package/dist/features/homepage/hooks/useFeaturedPreOrders.d.ts +2 -0
- package/dist/features/homepage/hooks/useFeaturedPreOrders.js +26 -0
- package/dist/features/homepage/hooks/useFeaturedProducts.d.ts +4 -0
- package/dist/features/homepage/hooks/useFeaturedProducts.js +32 -0
- package/dist/features/homepage/hooks/useHeroCarousel.d.ts +9 -0
- package/dist/features/homepage/hooks/useHeroCarousel.js +17 -0
- package/dist/features/homepage/hooks/useHomepage.d.ts +11 -0
- package/dist/features/homepage/hooks/useHomepage.js +18 -0
- package/dist/features/homepage/hooks/useHomepageReviews.d.ts +7 -0
- package/dist/features/homepage/hooks/useHomepageReviews.js +16 -0
- package/dist/features/homepage/hooks/useHomepageSections.d.ts +2 -0
- package/dist/features/homepage/hooks/useHomepageSections.js +11 -0
- package/dist/features/homepage/hooks/useNewsletter.d.ts +14 -0
- package/dist/features/homepage/hooks/useNewsletter.js +10 -0
- package/dist/features/homepage/hooks/useTopBrands.d.ts +2 -0
- package/dist/features/homepage/hooks/useTopBrands.js +12 -0
- package/dist/features/homepage/hooks/useTopCategories.d.ts +4 -0
- package/dist/features/homepage/hooks/useTopCategories.js +13 -0
- package/dist/features/homepage/index.d.ts +13 -846
- package/dist/features/homepage/index.js +13 -6279
- package/dist/features/homepage/manifest.d.ts +2 -0
- package/dist/features/homepage/manifest.js +14 -0
- package/dist/features/homepage/messages/en.json +6 -0
- package/dist/features/homepage/repository/carousel.repository.d.ts +101 -0
- package/dist/features/homepage/repository/carousel.repository.js +252 -0
- package/dist/features/homepage/repository/homepage-sections.repository.d.ts +27 -0
- package/dist/features/homepage/repository/homepage-sections.repository.js +174 -0
- package/dist/features/homepage/repository/homepage.repository.d.ts +11 -0
- package/dist/features/homepage/repository/homepage.repository.js +25 -0
- package/dist/features/homepage/schemas/firestore.d.ts +251 -0
- package/dist/features/homepage/schemas/firestore.js +83 -0
- package/dist/features/homepage/schemas/index.d.ts +1 -0
- package/dist/features/homepage/schemas/index.js +1 -0
- package/dist/features/homepage/server.d.ts +10 -121
- package/dist/features/homepage/server.js +10 -1024
- package/dist/features/homepage/types/index.d.ts +163 -0
- package/dist/features/homepage/types/index.js +1 -0
- package/dist/features/layout/AutoBreadcrumbs.d.ts +15 -0
- package/dist/features/layout/AutoBreadcrumbs.js +84 -0
- package/dist/features/layout/BackToTop.d.ts +16 -0
- package/dist/features/layout/BackToTop.js +26 -0
- package/dist/features/layout/BottomActions.d.ts +1 -0
- package/dist/features/layout/BottomActions.js +153 -0
- package/dist/features/layout/BottomActionsContext.d.ts +107 -0
- package/dist/features/layout/BottomActionsContext.js +114 -0
- package/dist/features/layout/BottomNavItem.d.ts +28 -0
- package/dist/features/layout/BottomNavItem.js +28 -0
- package/dist/features/layout/BottomNavLayout.d.ts +14 -0
- package/dist/features/layout/BottomNavLayout.js +12 -0
- package/dist/features/layout/BottomNavbar.d.ts +46 -0
- package/dist/features/layout/BottomNavbar.js +19 -0
- package/dist/features/layout/BottomSheet.d.ts +29 -0
- package/dist/features/layout/BottomSheet.js +40 -0
- package/dist/features/layout/Breadcrumbs.d.ts +26 -0
- package/dist/features/layout/Breadcrumbs.js +25 -0
- package/dist/features/layout/DashboardNavContext.d.ts +19 -0
- package/dist/features/layout/DashboardNavContext.js +36 -0
- package/dist/features/layout/FooterLayout.d.ts +39 -0
- package/dist/features/layout/FooterLayout.js +12 -0
- package/dist/features/layout/LayoutClient.d.ts +11 -0
- package/dist/features/layout/LayoutClient.js +7 -0
- package/dist/features/layout/ListingLayout.d.ts +35 -0
- package/dist/features/layout/ListingLayout.js +104 -0
- package/dist/features/layout/LocaleSwitcher.d.ts +22 -0
- package/dist/features/layout/LocaleSwitcher.js +12 -0
- package/dist/features/layout/MainNavbar.d.ts +32 -0
- package/dist/features/layout/MainNavbar.js +29 -0
- package/dist/features/layout/NavItem.d.ts +19 -0
- package/dist/features/layout/NavItem.js +35 -0
- package/dist/features/layout/NavbarLayout.d.ts +27 -0
- package/dist/features/layout/NavbarLayout.js +23 -0
- package/dist/features/layout/SidebarLayout.d.ts +24 -0
- package/dist/features/layout/SidebarLayout.js +29 -0
- package/dist/features/layout/TitleBar.d.ts +18 -0
- package/dist/features/layout/TitleBar.js +19 -0
- package/dist/features/layout/TitleBarLayout.d.ts +48 -0
- package/dist/features/layout/TitleBarLayout.js +17 -0
- package/dist/features/layout/hooks/useBottomActions.d.ts +7 -0
- package/dist/features/layout/hooks/useBottomActions.js +28 -0
- package/dist/features/layout/index.d.ts +41 -315
- package/dist/features/layout/index.js +23 -1745
- package/dist/features/loyalty/api/admin/loyalty/grant/route.d.ts +12 -0
- package/dist/features/loyalty/api/admin/loyalty/grant/route.js +36 -0
- package/dist/features/loyalty/api/balance/route.d.ts +12 -0
- package/dist/features/loyalty/api/balance/route.js +39 -0
- package/dist/features/loyalty/api/earn/route.d.ts +12 -0
- package/dist/features/loyalty/api/earn/route.js +36 -0
- package/dist/features/loyalty/api/history/route.d.ts +12 -0
- package/dist/features/loyalty/api/history/route.js +56 -0
- package/dist/features/loyalty/api/redeem/route.d.ts +12 -0
- package/dist/features/loyalty/api/redeem/route.js +36 -0
- package/dist/features/loyalty/columns/index.d.ts +17 -0
- package/dist/features/loyalty/columns/index.js +40 -0
- package/dist/features/loyalty/components/CoinsDisplay.d.ts +11 -0
- package/dist/features/loyalty/components/CoinsDisplay.js +9 -0
- package/dist/features/loyalty/components/index.d.ts +1 -0
- package/dist/features/loyalty/components/index.js +1 -0
- package/dist/features/loyalty/hooks/useLoyaltyBalance.d.ts +4 -0
- package/dist/features/loyalty/hooks/useLoyaltyBalance.js +18 -0
- package/dist/features/loyalty/index.d.ts +6 -174
- package/dist/features/loyalty/index.js +6 -332
- package/dist/features/loyalty/manifest.d.ts +2 -0
- package/dist/features/loyalty/manifest.js +16 -0
- package/dist/features/loyalty/messages/en.json +19 -0
- package/dist/features/loyalty/repository/loyalty.repository.d.ts +8 -0
- package/dist/features/loyalty/repository/loyalty.repository.js +22 -0
- package/dist/features/loyalty/schemas/index.d.ts +85 -0
- package/dist/features/loyalty/schemas/index.js +40 -0
- package/dist/features/loyalty/server.d.ts +7 -0
- package/dist/features/loyalty/server.js +7 -0
- package/dist/features/loyalty/types/index.d.ts +31 -0
- package/dist/features/loyalty/types/index.js +1 -0
- package/dist/features/loyalty/types/loyalty-config.d.ts +7 -0
- package/dist/features/loyalty/types/loyalty-config.js +1 -0
- package/dist/features/loyalty/types/loyalty-math.d.ts +9 -0
- package/dist/features/loyalty/types/loyalty-math.js +27 -0
- package/dist/features/media/AvatarUpload.d.ts +22 -0
- package/dist/features/media/AvatarUpload.js +133 -0
- package/dist/features/media/MediaAvatar.d.ts +12 -0
- package/dist/features/media/MediaAvatar.js +13 -0
- package/dist/features/media/MediaImage.d.ts +28 -0
- package/dist/features/media/MediaImage.js +35 -0
- package/dist/features/media/MediaLightbox.d.ts +32 -0
- package/dist/features/media/MediaLightbox.js +245 -0
- package/dist/features/media/MediaVideo.d.ts +22 -0
- package/dist/features/media/MediaVideo.js +38 -0
- package/dist/features/media/components/MediaSlider.d.ts +10 -0
- package/dist/features/media/components/MediaSlider.js +12 -0
- package/dist/features/media/finalize.d.ts +11 -0
- package/dist/features/media/finalize.js +70 -0
- package/dist/features/media/hooks/useMedia.d.ts +198 -0
- package/dist/features/media/hooks/useMedia.js +78 -0
- package/dist/features/media/index.d.ts +30 -425
- package/dist/features/media/index.js +21 -3593
- package/dist/features/media/messages/en.json +63 -0
- package/dist/features/media/modals/ImageCropModal.d.ts +16 -0
- package/dist/features/media/modals/ImageCropModal.js +99 -0
- package/dist/features/media/modals/VideoThumbnailSelector.d.ts +10 -0
- package/dist/features/media/modals/VideoThumbnailSelector.js +51 -0
- package/dist/features/media/modals/VideoTrimModal.d.ts +11 -0
- package/dist/features/media/modals/VideoTrimModal.js +73 -0
- package/dist/features/media/server.d.ts +2 -0
- package/dist/features/media/server.js +2 -0
- package/dist/features/media/types/index.d.ts +29 -0
- package/dist/features/media/types/index.js +43 -0
- package/dist/features/media/upload/CameraCapture.d.ts +8 -0
- package/dist/features/media/upload/CameraCapture.js +59 -0
- package/dist/features/media/upload/ImageUpload.d.ts +14 -0
- package/dist/features/media/upload/ImageUpload.js +132 -0
- package/dist/features/media/upload/MediaUploadField.d.ts +31 -0
- package/dist/features/media/upload/MediaUploadField.js +204 -0
- package/dist/features/media/upload/MediaUploadList.d.ts +26 -0
- package/dist/features/media/upload/MediaUploadList.js +104 -0
- package/dist/features/orders/actions/index.d.ts +2 -0
- package/dist/features/orders/actions/index.js +2 -0
- package/dist/features/orders/actions/order-actions.d.ts +16 -0
- package/dist/features/orders/actions/order-actions.js +46 -0
- package/dist/features/orders/actions/refund-actions.d.ts +16 -0
- package/dist/features/orders/actions/refund-actions.js +88 -0
- package/dist/features/orders/api/track/[trackingId]/route.d.ts +17 -0
- package/dist/features/orders/api/track/[trackingId]/route.js +30 -0
- package/dist/features/orders/columns/index.d.ts +15 -0
- package/dist/features/orders/columns/index.js +34 -0
- package/dist/features/orders/components/MarketplaceOrderCard.d.ts +37 -0
- package/dist/features/orders/components/MarketplaceOrderCard.js +52 -0
- package/dist/features/orders/components/OrderFilters.d.ts +82 -0
- package/dist/features/orders/components/OrderFilters.js +106 -0
- package/dist/features/orders/components/OrdersList.d.ts +18 -0
- package/dist/features/orders/components/OrdersList.js +37 -0
- package/dist/features/orders/components/index.d.ts +4 -0
- package/dist/features/orders/components/index.js +3 -0
- package/dist/features/orders/hooks/useOrders.d.ts +32 -0
- package/dist/features/orders/hooks/useOrders.js +57 -0
- package/dist/features/orders/index.d.ts +7 -370
- package/dist/features/orders/index.js +7 -863
- package/dist/features/orders/manifest.d.ts +2 -0
- package/dist/features/orders/manifest.js +18 -0
- package/dist/features/orders/messages/en.json +15 -0
- package/dist/features/orders/repository/orders.repository.d.ts +188 -0
- package/dist/features/orders/repository/orders.repository.js +300 -0
- package/dist/features/orders/schemas/firestore.d.ts +129 -0
- package/dist/features/orders/schemas/firestore.js +96 -0
- package/dist/features/orders/schemas/index.d.ts +217 -0
- package/dist/features/orders/schemas/index.js +76 -0
- package/dist/features/orders/server.d.ts +9 -0
- package/dist/features/orders/server.js +10 -0
- package/dist/features/orders/types/index.d.ts +69 -0
- package/dist/features/orders/types/index.js +2 -0
- package/dist/features/orders/utils/order-splitter.d.ts +14 -0
- package/dist/features/orders/utils/order-splitter.js +29 -0
- package/dist/features/payments/columns/index.d.ts +17 -0
- package/dist/features/payments/columns/index.js +45 -0
- package/dist/features/payments/hooks/usePaymentEvent.d.ts +17 -0
- package/dist/features/payments/hooks/usePaymentEvent.js +26 -0
- package/dist/features/payments/hooks/usePayments.d.ts +10 -0
- package/dist/features/payments/hooks/usePayments.js +19 -0
- package/dist/features/payments/index.d.ts +6 -141
- package/dist/features/payments/index.js +6 -331
- package/dist/features/payments/manifest.d.ts +2 -0
- package/dist/features/payments/manifest.js +12 -0
- package/dist/features/payments/messages/en.json +11 -0
- package/dist/features/payments/repository/payments.repository.d.ts +15 -0
- package/dist/features/payments/repository/payments.repository.js +36 -0
- package/dist/features/payments/repository/payout.repository.d.ts +111 -0
- package/dist/features/payments/repository/payout.repository.js +202 -0
- package/dist/features/payments/schemas/firestore.d.ts +74 -0
- package/dist/features/payments/schemas/firestore.js +65 -0
- package/dist/features/payments/schemas/index.d.ts +77 -0
- package/dist/features/payments/schemas/index.js +67 -0
- package/dist/features/payments/server.d.ts +8 -0
- package/dist/features/payments/server.js +8 -0
- package/dist/features/payments/types/index.d.ts +36 -0
- package/dist/features/payments/types/index.js +2 -0
- package/dist/features/pre-orders/api/[id]/route.d.ts +26 -0
- package/dist/features/pre-orders/api/[id]/route.js +88 -0
- package/dist/features/pre-orders/api/[slug]/route.d.ts +16 -0
- package/dist/features/pre-orders/api/[slug]/route.js +41 -0
- package/dist/features/pre-orders/api/admin/[id]/route.d.ts +21 -0
- package/dist/features/pre-orders/api/admin/[id]/route.js +65 -0
- package/dist/features/pre-orders/api/admin/route.d.ts +12 -0
- package/dist/features/pre-orders/api/admin/route.js +56 -0
- package/dist/features/pre-orders/api/route.d.ts +13 -0
- package/dist/features/pre-orders/api/route.js +77 -0
- package/dist/features/pre-orders/columns/index.d.ts +17 -0
- package/dist/features/pre-orders/columns/index.js +68 -0
- package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +24 -0
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +53 -0
- package/dist/features/pre-orders/components/PreOrderBadge.d.ts +14 -0
- package/dist/features/pre-orders/components/PreOrderBadge.js +17 -0
- package/dist/features/pre-orders/components/PreorderCard.d.ts +12 -0
- package/dist/features/pre-orders/components/PreorderCard.js +27 -0
- package/dist/features/pre-orders/components/index.d.ts +2 -0
- package/dist/features/pre-orders/components/index.js +2 -0
- package/dist/features/pre-orders/hooks/usePreOrders.d.ts +7 -0
- package/dist/features/pre-orders/hooks/usePreOrders.js +34 -0
- package/dist/features/pre-orders/index.d.ts +6 -170
- package/dist/features/pre-orders/index.js +6 -538
- package/dist/features/pre-orders/manifest.d.ts +2 -0
- package/dist/features/pre-orders/manifest.js +17 -0
- package/dist/features/pre-orders/messages/en.json +13 -0
- package/dist/features/pre-orders/repository/pre-orders.repository.d.ts +14 -0
- package/dist/features/pre-orders/repository/pre-orders.repository.js +44 -0
- package/dist/features/pre-orders/repository/preorders.repository.d.ts +8 -0
- package/dist/features/pre-orders/repository/preorders.repository.js +21 -0
- package/dist/features/pre-orders/schemas/index.d.ts +79 -0
- package/dist/features/pre-orders/schemas/index.js +27 -0
- package/dist/features/pre-orders/server.d.ts +5 -14
- package/dist/features/pre-orders/server.js +8 -106
- package/dist/features/pre-orders/types/index.d.ts +29 -0
- package/dist/features/pre-orders/types/index.js +12 -0
- package/dist/features/products/actions/index.d.ts +1 -0
- package/dist/features/products/actions/index.js +1 -0
- package/dist/features/products/actions/product-actions.d.ts +26 -0
- package/dist/features/products/actions/product-actions.js +111 -0
- package/dist/features/products/api/[id]/route.d.ts +29 -0
- package/dist/features/products/api/[id]/route.js +137 -0
- package/dist/features/products/api/route.d.ts +19 -0
- package/dist/features/products/api/route.js +214 -0
- package/dist/features/products/columns/index.d.ts +64 -0
- package/dist/features/products/columns/index.js +85 -0
- package/dist/features/products/columns/productTableColumns.d.ts +27 -0
- package/dist/features/products/columns/productTableColumns.js +88 -0
- package/dist/features/products/components/AuctionDetailView.d.ts +13 -0
- package/dist/features/products/components/AuctionDetailView.js +9 -0
- package/dist/features/products/components/AuctionsView.d.ts +6 -0
- package/dist/features/products/components/AuctionsView.js +5 -0
- package/dist/features/products/components/BidHistory.d.ts +28 -0
- package/dist/features/products/components/BidHistory.js +18 -0
- package/dist/features/products/components/BuyBar.d.ts +21 -0
- package/dist/features/products/components/BuyBar.js +20 -0
- package/dist/features/products/components/InteractiveProductCard.d.ts +19 -0
- package/dist/features/products/components/InteractiveProductCard.js +18 -0
- package/dist/features/products/components/MakeOfferForm.d.ts +20 -0
- package/dist/features/products/components/MakeOfferForm.js +8 -0
- package/dist/features/products/components/PlaceBidForm.d.ts +20 -0
- package/dist/features/products/components/PlaceBidForm.js +6 -0
- package/dist/features/products/components/PreOrderDetailView.d.ts +14 -0
- package/dist/features/products/components/PreOrderDetailView.js +9 -0
- package/dist/features/products/components/PreOrdersView.d.ts +6 -0
- package/dist/features/products/components/PreOrdersView.js +5 -0
- package/dist/features/products/components/ProductDetailView.d.ts +11 -0
- package/dist/features/products/components/ProductDetailView.js +9 -0
- package/dist/features/products/components/ProductFeatureBadges.d.ts +32 -0
- package/dist/features/products/components/ProductFeatureBadges.js +103 -0
- package/dist/features/products/components/ProductFilters.d.ts +90 -0
- package/dist/features/products/components/ProductFilters.js +105 -0
- package/dist/features/products/components/ProductForm.d.ts +47 -0
- package/dist/features/products/components/ProductForm.js +120 -0
- package/dist/features/products/components/ProductGrid.d.ts +69 -0
- package/dist/features/products/components/ProductGrid.js +92 -0
- package/dist/features/products/components/ProductInfo.d.ts +20 -0
- package/dist/features/products/components/ProductInfo.js +4 -0
- package/dist/features/products/components/ProductTabs.d.ts +21 -0
- package/dist/features/products/components/ProductTabs.js +22 -0
- package/dist/features/products/components/ProductsView.d.ts +6 -0
- package/dist/features/products/components/ProductsView.js +5 -0
- package/dist/features/products/components/RelatedProducts.d.ts +16 -0
- package/dist/features/products/components/RelatedProducts.js +12 -0
- package/dist/features/products/components/index.d.ts +34 -0
- package/dist/features/products/components/index.js +18 -0
- package/dist/features/products/hooks/useBrands.d.ts +9 -0
- package/dist/features/products/hooks/useBrands.js +15 -0
- package/dist/features/products/hooks/useProductDetail.d.ts +15 -0
- package/dist/features/products/hooks/useProductDetail.js +29 -0
- package/dist/features/products/hooks/useProducts.d.ts +43 -0
- package/dist/features/products/hooks/useProducts.js +67 -0
- package/dist/features/products/hooks/useRelatedProducts.d.ts +2 -0
- package/dist/features/products/hooks/useRelatedProducts.js +17 -0
- package/dist/features/products/index.d.ts +10 -1066
- package/dist/features/products/index.js +10 -2475
- package/dist/features/products/manifest.d.ts +2 -0
- package/dist/features/products/manifest.js +16 -0
- package/dist/features/products/messages/en.json +11 -0
- package/dist/features/products/repository/products.repository.d.ts +213 -0
- package/dist/features/products/repository/products.repository.js +300 -0
- package/dist/features/products/schemas/firestore.d.ts +125 -0
- package/dist/features/products/schemas/firestore.js +149 -0
- package/dist/features/products/schemas/index.d.ts +400 -0
- package/dist/features/products/schemas/index.js +173 -0
- package/dist/features/products/server.d.ts +7 -49
- package/dist/features/products/server.js +10 -803
- package/dist/features/products/types/index.d.ts +122 -0
- package/dist/features/products/types/index.js +1 -0
- package/dist/features/products/utils/listing-type.d.ts +2 -0
- package/dist/features/products/utils/listing-type.js +9 -0
- package/dist/features/promotions/actions/coupon-actions.d.ts +28 -0
- package/dist/features/promotions/actions/coupon-actions.js +23 -0
- package/dist/features/promotions/actions/index.d.ts +3 -0
- package/dist/features/promotions/actions/index.js +3 -0
- package/dist/features/promotions/actions/promotions-actions.d.ts +18 -0
- package/dist/features/promotions/actions/promotions-actions.js +37 -0
- package/dist/features/promotions/actions/seller-coupon-actions.d.ts +41 -0
- package/dist/features/promotions/actions/seller-coupon-actions.js +92 -0
- package/dist/features/promotions/api/route.d.ts +21 -0
- package/dist/features/promotions/api/route.js +85 -0
- package/dist/features/promotions/columns/index.d.ts +12 -0
- package/dist/features/promotions/columns/index.js +45 -0
- package/dist/features/promotions/components/CouponCard.d.ts +16 -0
- package/dist/features/promotions/components/CouponCard.js +20 -0
- package/dist/features/promotions/components/PromotionsView.d.ts +43 -0
- package/dist/features/promotions/components/PromotionsView.js +10 -0
- package/dist/features/promotions/components/index.d.ts +3 -0
- package/dist/features/promotions/components/index.js +2 -0
- package/dist/features/promotions/hooks/useCouponValidate.d.ts +22 -0
- package/dist/features/promotions/hooks/useCouponValidate.js +10 -0
- package/dist/features/promotions/hooks/usePromotions.d.ts +21 -0
- package/dist/features/promotions/hooks/usePromotions.js +49 -0
- package/dist/features/promotions/index.d.ts +7 -301
- package/dist/features/promotions/index.js +7 -957
- package/dist/features/promotions/manifest.d.ts +2 -0
- package/dist/features/promotions/manifest.js +14 -0
- package/dist/features/promotions/messages/en.json +20 -0
- package/dist/features/promotions/repository/coupons.repository.d.ts +224 -0
- package/dist/features/promotions/repository/coupons.repository.js +539 -0
- package/dist/features/promotions/repository/promotions.repository.d.ts +14 -0
- package/dist/features/promotions/repository/promotions.repository.js +43 -0
- package/dist/features/promotions/schemas/firestore.d.ts +105 -0
- package/dist/features/promotions/schemas/firestore.js +124 -0
- package/dist/features/promotions/schemas/index.d.ts +117 -0
- package/dist/features/promotions/schemas/index.js +58 -0
- package/dist/features/promotions/server.d.ts +10 -0
- package/dist/features/promotions/server.js +10 -0
- package/dist/features/promotions/types/index.d.ts +51 -0
- package/dist/features/promotions/types/index.js +2 -0
- package/dist/features/reviews/actions/index.d.ts +1 -0
- package/dist/features/reviews/actions/index.js +1 -0
- package/dist/features/reviews/actions/review-actions.d.ts +40 -0
- package/dist/features/reviews/actions/review-actions.js +182 -0
- package/dist/features/reviews/api/[id]/route.d.ts +23 -0
- package/dist/features/reviews/api/[id]/route.js +109 -0
- package/dist/features/reviews/api/route.d.ts +21 -0
- package/dist/features/reviews/api/route.js +171 -0
- package/dist/features/reviews/columns/index.d.ts +15 -0
- package/dist/features/reviews/columns/index.js +44 -0
- package/dist/features/reviews/components/ReviewFilters.d.ts +74 -0
- package/dist/features/reviews/components/ReviewFilters.js +60 -0
- package/dist/features/reviews/components/ReviewModal.d.ts +11 -0
- package/dist/features/reviews/components/ReviewModal.js +25 -0
- package/dist/features/reviews/components/ReviewSummary.d.ts +16 -0
- package/dist/features/reviews/components/ReviewSummary.js +20 -0
- package/dist/features/reviews/components/ReviewsList.d.ts +15 -0
- package/dist/features/reviews/components/ReviewsList.js +25 -0
- package/dist/features/reviews/components/ReviewsListView.d.ts +31 -0
- package/dist/features/reviews/components/ReviewsListView.js +16 -0
- package/dist/features/reviews/components/index.d.ts +10 -0
- package/dist/features/reviews/components/index.js +5 -0
- package/dist/features/reviews/hooks/useCreateReview.d.ts +12 -0
- package/dist/features/reviews/hooks/useCreateReview.js +20 -0
- package/dist/features/reviews/hooks/useReviews.d.ts +34 -0
- package/dist/features/reviews/hooks/useReviews.js +49 -0
- package/dist/features/reviews/index.d.ts +7 -434
- package/dist/features/reviews/index.js +7 -2297
- package/dist/features/reviews/manifest.d.ts +2 -0
- package/dist/features/reviews/manifest.js +10 -0
- package/dist/features/reviews/messages/en.json +10 -0
- package/dist/features/reviews/repository/reviews.repository.d.ts +103 -0
- package/dist/features/reviews/repository/reviews.repository.js +214 -0
- package/dist/features/reviews/schemas/firestore.d.ts +67 -0
- package/dist/features/reviews/schemas/firestore.js +59 -0
- package/dist/features/reviews/schemas/index.d.ts +183 -0
- package/dist/features/reviews/schemas/index.js +68 -0
- package/dist/features/reviews/server.d.ts +7 -46
- package/dist/features/reviews/server.js +10 -769
- package/dist/features/reviews/types/index.d.ts +62 -0
- package/dist/features/reviews/types/index.js +1 -0
- package/dist/features/search/actions/index.d.ts +1 -0
- package/dist/features/search/actions/index.js +1 -0
- package/dist/features/search/actions/search-actions.d.ts +18 -0
- package/dist/features/search/actions/search-actions.js +43 -0
- package/dist/features/search/api/route.d.ts +22 -0
- package/dist/features/search/api/route.js +79 -0
- package/dist/features/search/columns/index.d.ts +17 -0
- package/dist/features/search/columns/index.js +49 -0
- package/dist/features/search/components/Search.d.ts +41 -0
- package/dist/features/search/components/Search.js +263 -0
- package/dist/features/search/components/SearchFiltersRow.d.ts +22 -0
- package/dist/features/search/components/SearchFiltersRow.js +21 -0
- package/dist/features/search/components/SearchResultsSection.d.ts +53 -0
- package/dist/features/search/components/SearchResultsSection.js +36 -0
- package/dist/features/search/components/SearchView.d.ts +29 -0
- package/dist/features/search/components/SearchView.js +8 -0
- package/dist/features/search/components/index.d.ts +8 -0
- package/dist/features/search/components/index.js +4 -0
- package/dist/features/search/hooks/useNavSuggestions.d.ts +11 -0
- package/dist/features/search/hooks/useNavSuggestions.js +32 -0
- package/dist/features/search/hooks/useSearch.d.ts +21 -0
- package/dist/features/search/hooks/useSearch.js +34 -0
- package/dist/features/search/index.d.ts +7 -298
- package/dist/features/search/index.js +7 -1351
- package/dist/features/search/manifest.d.ts +2 -0
- package/dist/features/search/manifest.js +10 -0
- package/dist/features/search/messages/en.json +15 -0
- package/dist/features/search/repository/search.repository.d.ts +14 -0
- package/dist/features/search/repository/search.repository.js +59 -0
- package/dist/features/search/schemas/index.d.ts +70 -0
- package/dist/features/search/schemas/index.js +34 -0
- package/dist/features/search/server.d.ts +5 -83
- package/dist/features/search/server.js +5 -149
- package/dist/features/search/types/index.d.ts +46 -0
- package/dist/features/search/types/index.js +2 -0
- package/dist/features/seller/actions/index.d.ts +2 -0
- package/dist/features/seller/actions/index.js +2 -0
- package/dist/features/seller/actions/offer-actions.d.ts +32 -0
- package/dist/features/seller/actions/offer-actions.js +266 -0
- package/dist/features/seller/actions/seller-actions.d.ts +172 -0
- package/dist/features/seller/actions/seller-actions.js +480 -0
- package/dist/features/seller/api/coupons/route.d.ts +17 -0
- package/dist/features/seller/api/coupons/route.js +47 -0
- package/dist/features/seller/api/offers/route.d.ts +17 -0
- package/dist/features/seller/api/offers/route.js +63 -0
- package/dist/features/seller/api/products/route.d.ts +17 -0
- package/dist/features/seller/api/products/route.js +64 -0
- package/dist/features/seller/api/store/route.d.ts +17 -0
- package/dist/features/seller/api/store/route.js +34 -0
- package/dist/features/seller/columns/index.d.ts +22 -0
- package/dist/features/seller/columns/index.js +73 -0
- package/dist/features/seller/components/SellerAddressesView.d.ts +13 -0
- package/dist/features/seller/components/SellerAddressesView.js +5 -0
- package/dist/features/seller/components/SellerAnalyticsView.d.ts +13 -0
- package/dist/features/seller/components/SellerAnalyticsView.js +17 -0
- package/dist/features/seller/components/SellerAuctionsView.d.ts +6 -0
- package/dist/features/seller/components/SellerAuctionsView.js +5 -0
- package/dist/features/seller/components/SellerCouponsView.d.ts +6 -0
- package/dist/features/seller/components/SellerCouponsView.js +5 -0
- package/dist/features/seller/components/SellerCreateProductView.d.ts +11 -0
- package/dist/features/seller/components/SellerCreateProductView.js +5 -0
- package/dist/features/seller/components/SellerDashboardView.d.ts +14 -0
- package/dist/features/seller/components/SellerDashboardView.js +11 -0
- package/dist/features/seller/components/SellerEditProductView.d.ts +11 -0
- package/dist/features/seller/components/SellerEditProductView.js +5 -0
- package/dist/features/seller/components/SellerGuideView.d.ts +12 -0
- package/dist/features/seller/components/SellerGuideView.js +5 -0
- package/dist/features/seller/components/SellerOffersView.d.ts +4 -0
- package/dist/features/seller/components/SellerOffersView.js +5 -0
- package/dist/features/seller/components/SellerOrdersView.d.ts +4 -0
- package/dist/features/seller/components/SellerOrdersView.js +5 -0
- package/dist/features/seller/components/SellerPayoutHistoryTable.d.ts +14 -0
- package/dist/features/seller/components/SellerPayoutHistoryTable.js +10 -0
- package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +11 -0
- package/dist/features/seller/components/SellerPayoutSettingsView.js +5 -0
- package/dist/features/seller/components/SellerPayoutStats.d.ts +8 -0
- package/dist/features/seller/components/SellerPayoutStats.js +9 -0
- package/dist/features/seller/components/SellerPayoutsView.d.ts +18 -0
- package/dist/features/seller/components/SellerPayoutsView.js +11 -0
- package/dist/features/seller/components/SellerProductsView.d.ts +6 -0
- package/dist/features/seller/components/SellerProductsView.js +5 -0
- package/dist/features/seller/components/SellerShippingView.d.ts +12 -0
- package/dist/features/seller/components/SellerShippingView.js +5 -0
- package/dist/features/seller/components/SellerSidebar.d.ts +16 -0
- package/dist/features/seller/components/SellerSidebar.js +11 -0
- package/dist/features/seller/components/SellerStatCard.d.ts +14 -0
- package/dist/features/seller/components/SellerStatCard.js +5 -0
- package/dist/features/seller/components/SellerStoreSetupView.d.ts +12 -0
- package/dist/features/seller/components/SellerStoreSetupView.js +8 -0
- package/dist/features/seller/components/SellerStoreView.d.ts +8 -0
- package/dist/features/seller/components/SellerStoreView.js +8 -0
- package/dist/features/seller/components/SellerStorefrontView.d.ts +13 -0
- package/dist/features/seller/components/SellerStorefrontView.js +10 -0
- package/dist/features/seller/components/SellersListView.d.ts +4 -0
- package/dist/features/seller/components/SellersListView.js +5 -0
- package/dist/features/seller/components/analytics/SellerAnalyticsStats.d.ts +14 -0
- package/dist/features/seller/components/analytics/SellerAnalyticsStats.js +9 -0
- package/dist/features/seller/components/analytics/SellerRevenueChart.d.ts +13 -0
- package/dist/features/seller/components/analytics/SellerRevenueChart.js +28 -0
- package/dist/features/seller/components/analytics/SellerTopProducts.d.ts +17 -0
- package/dist/features/seller/components/analytics/SellerTopProducts.js +6 -0
- package/dist/features/seller/components/analytics/index.d.ts +3 -0
- package/dist/features/seller/components/analytics/index.js +3 -0
- package/dist/features/seller/components/index.d.ts +44 -0
- package/dist/features/seller/components/index.js +23 -0
- package/dist/features/seller/hooks/useBecomeSeller.d.ts +12 -0
- package/dist/features/seller/hooks/useBecomeSeller.js +26 -0
- package/dist/features/seller/hooks/useSellerPayouts.d.ts +25 -0
- package/dist/features/seller/hooks/useSellerPayouts.js +42 -0
- package/dist/features/seller/hooks/useSellerStore.d.ts +28 -0
- package/dist/features/seller/hooks/useSellerStore.js +48 -0
- package/dist/features/seller/hooks/useSellerStorefront.d.ts +16 -0
- package/dist/features/seller/hooks/useSellerStorefront.js +57 -0
- package/dist/features/seller/index.d.ts +10 -926
- package/dist/features/seller/index.js +10 -2029
- package/dist/features/seller/manifest.d.ts +2 -0
- package/dist/features/seller/manifest.js +74 -0
- package/dist/features/seller/messages/en.json +32 -0
- package/dist/features/seller/permission-map.d.ts +3 -0
- package/dist/features/seller/permission-map.js +15 -0
- package/dist/features/seller/repository/offer.repository.d.ts +66 -0
- package/dist/features/seller/repository/offer.repository.js +210 -0
- package/dist/features/seller/repository/seller.repository.d.ts +22 -0
- package/dist/features/seller/repository/seller.repository.js +72 -0
- package/dist/features/seller/schemas/firestore.d.ts +76 -0
- package/dist/features/seller/schemas/firestore.js +57 -0
- package/dist/features/seller/schemas/index.d.ts +244 -0
- package/dist/features/seller/schemas/index.js +100 -0
- package/dist/features/seller/server.d.ts +13 -0
- package/dist/features/seller/server.js +13 -0
- package/dist/features/seller/types/index.d.ts +147 -0
- package/dist/features/seller/types/index.js +2 -0
- package/dist/features/stores/actions/index.d.ts +2 -0
- package/dist/features/stores/actions/index.js +2 -0
- package/dist/features/stores/actions/store-address-actions.d.ts +11 -0
- package/dist/features/stores/actions/store-address-actions.js +54 -0
- package/dist/features/stores/actions/store-query-actions.d.ts +34 -0
- package/dist/features/stores/actions/store-query-actions.js +113 -0
- package/dist/features/stores/api/[storeSlug]/auctions/route.d.ts +23 -0
- package/dist/features/stores/api/[storeSlug]/auctions/route.js +92 -0
- package/dist/features/stores/api/[storeSlug]/products/route.d.ts +23 -0
- package/dist/features/stores/api/[storeSlug]/products/route.js +97 -0
- package/dist/features/stores/api/[storeSlug]/reviews/route.d.ts +23 -0
- package/dist/features/stores/api/[storeSlug]/reviews/route.js +101 -0
- package/dist/features/stores/api/[storeSlug]/route.d.ts +21 -0
- package/dist/features/stores/api/[storeSlug]/route.js +66 -0
- package/dist/features/stores/api/route.d.ts +12 -0
- package/dist/features/stores/api/route.js +101 -0
- package/dist/features/stores/columns/index.d.ts +16 -0
- package/dist/features/stores/columns/index.js +45 -0
- package/dist/features/stores/components/InteractiveStoreCard.d.ts +20 -0
- package/dist/features/stores/components/InteractiveStoreCard.js +16 -0
- package/dist/features/stores/components/StoreAboutView.d.ts +21 -0
- package/dist/features/stores/components/StoreAboutView.js +12 -0
- package/dist/features/stores/components/StoreAddressSelectorCreate.d.ts +16 -0
- package/dist/features/stores/components/StoreAddressSelectorCreate.js +40 -0
- package/dist/features/stores/components/StoreAuctionsView.d.ts +17 -0
- package/dist/features/stores/components/StoreAuctionsView.js +5 -0
- package/dist/features/stores/components/StoreHeader.d.ts +15 -0
- package/dist/features/stores/components/StoreHeader.js +8 -0
- package/dist/features/stores/components/StoreNavTabs.d.ts +15 -0
- package/dist/features/stores/components/StoreNavTabs.js +14 -0
- package/dist/features/stores/components/StoreProductsView.d.ts +30 -0
- package/dist/features/stores/components/StoreProductsView.js +11 -0
- package/dist/features/stores/components/StoreReviewsView.d.ts +17 -0
- package/dist/features/stores/components/StoreReviewsView.js +9 -0
- package/dist/features/stores/components/StoresListView.d.ts +19 -0
- package/dist/features/stores/components/StoresListView.js +24 -0
- package/dist/features/stores/components/index.d.ts +16 -0
- package/dist/features/stores/components/index.js +9 -0
- package/dist/features/stores/hooks/useStoreAddressSelector.d.ts +23 -0
- package/dist/features/stores/hooks/useStoreAddressSelector.js +30 -0
- package/dist/features/stores/hooks/useStores.d.ts +58 -0
- package/dist/features/stores/hooks/useStores.js +96 -0
- package/dist/features/stores/index.d.ts +7 -536
- package/dist/features/stores/index.js +7 -1911
- package/dist/features/stores/manifest.d.ts +2 -0
- package/dist/features/stores/manifest.js +35 -0
- package/dist/features/stores/messages/en.json +21 -0
- package/dist/features/stores/repository/store-address.repository.d.ts +55 -0
- package/dist/features/stores/repository/store-address.repository.js +188 -0
- package/dist/features/stores/repository/store.repository.d.ts +67 -0
- package/dist/features/stores/repository/store.repository.js +181 -0
- package/dist/features/stores/repository/stores.repository.d.ts +11 -0
- package/dist/features/stores/repository/stores.repository.js +34 -0
- package/dist/features/stores/schemas/firestore.d.ts +117 -0
- package/dist/features/stores/schemas/firestore.js +109 -0
- package/dist/features/stores/schemas/index.d.ts +85 -0
- package/dist/features/stores/schemas/index.js +48 -0
- package/dist/features/stores/server.d.ts +12 -103
- package/dist/features/stores/server.js +15 -444
- package/dist/features/stores/types/index.d.ts +102 -0
- package/dist/features/stores/types/index.js +2 -0
- package/dist/features/whatsapp-bot/api/send-status/route.d.ts +12 -0
- package/dist/features/whatsapp-bot/api/send-status/route.js +36 -0
- package/dist/features/whatsapp-bot/api/webhook/route.d.ts +12 -0
- package/dist/features/whatsapp-bot/api/webhook/route.js +41 -0
- package/dist/features/whatsapp-bot/components/WhatsAppChatButton.d.ts +8 -0
- package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +7 -0
- package/dist/features/whatsapp-bot/components/index.d.ts +1 -0
- package/dist/features/whatsapp-bot/components/index.js +1 -0
- package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +21 -0
- package/dist/features/whatsapp-bot/helpers/whatsapp.js +125 -0
- package/dist/features/whatsapp-bot/index.d.ts +3 -85
- package/dist/features/whatsapp-bot/index.js +3 -154
- package/dist/features/whatsapp-bot/manifest.d.ts +2 -0
- package/dist/features/whatsapp-bot/manifest.js +13 -0
- package/dist/features/whatsapp-bot/messages/en.json +7 -0
- package/dist/features/whatsapp-bot/server.d.ts +7 -0
- package/dist/features/whatsapp-bot/server.js +7 -0
- package/dist/features/whatsapp-bot/types/index.d.ts +50 -0
- package/dist/features/whatsapp-bot/types/index.js +1 -0
- package/dist/features/wishlist/actions/index.d.ts +1 -0
- package/dist/features/wishlist/actions/index.js +1 -0
- package/dist/features/wishlist/actions/wishlist-actions.d.ts +20 -0
- package/dist/features/wishlist/actions/wishlist-actions.js +29 -0
- package/dist/features/wishlist/columns/index.d.ts +17 -0
- package/dist/features/wishlist/columns/index.js +42 -0
- package/dist/features/wishlist/components/WishlistPage.d.ts +16 -0
- package/dist/features/wishlist/components/WishlistPage.js +17 -0
- package/dist/features/wishlist/components/WishlistToggleButton.d.ts +12 -0
- package/dist/features/wishlist/components/WishlistToggleButton.js +21 -0
- package/dist/features/wishlist/components/WishlistView.d.ts +33 -0
- package/dist/features/wishlist/components/WishlistView.js +41 -0
- package/dist/features/wishlist/components/index.d.ts +4 -0
- package/dist/features/wishlist/components/index.js +3 -0
- package/dist/features/wishlist/hooks/useUserWishlist.d.ts +187 -0
- package/dist/features/wishlist/hooks/useUserWishlist.js +17 -0
- package/dist/features/wishlist/hooks/useWishlist.d.ts +16 -0
- package/dist/features/wishlist/hooks/useWishlist.js +23 -0
- package/dist/features/wishlist/hooks/useWishlistToggle.d.ts +10 -0
- package/dist/features/wishlist/hooks/useWishlistToggle.js +32 -0
- package/dist/features/wishlist/index.d.ts +9 -360
- package/dist/features/wishlist/index.js +8 -888
- package/dist/features/wishlist/manifest.d.ts +2 -0
- package/dist/features/wishlist/manifest.js +12 -0
- package/dist/features/wishlist/messages/en.json +7 -0
- package/dist/features/wishlist/repository/user-wishlist.repository.d.ts +14 -0
- package/dist/features/wishlist/repository/user-wishlist.repository.js +91 -0
- package/dist/features/wishlist/repository/wishlist.repository.d.ts +13 -0
- package/dist/features/wishlist/repository/wishlist.repository.js +31 -0
- package/dist/features/wishlist/schemas/index.d.ts +46 -0
- package/dist/features/wishlist/schemas/index.js +24 -0
- package/dist/features/wishlist/server.d.ts +9 -0
- package/dist/features/wishlist/server.js +9 -0
- package/dist/features/wishlist/types/index.d.ts +16 -0
- package/dist/features/wishlist/types/index.js +1 -0
- package/dist/http/ApiClient.d.ts +59 -0
- package/dist/http/ApiClient.js +149 -0
- package/dist/http/api-handler.d.ts +33 -0
- package/dist/http/api-handler.js +89 -0
- package/dist/http/index.d.ts +6 -58
- package/dist/http/index.js +8 -4
- package/dist/index.d.ts +1 -17
- package/dist/index.js +1 -13
- package/dist/instrumentation/index.d.ts +4 -6
- package/dist/instrumentation/index.js +54 -14
- package/dist/monitoring/analytics.d.ts +79 -0
- package/dist/monitoring/analytics.js +171 -0
- package/dist/monitoring/browser.d.ts +10 -0
- package/dist/monitoring/browser.js +6 -0
- package/dist/monitoring/cache-metrics.d.ts +24 -0
- package/dist/monitoring/cache-metrics.js +83 -0
- package/dist/monitoring/client-logger.d.ts +29 -0
- package/dist/monitoring/client-logger.js +127 -0
- package/dist/monitoring/error-tracking.d.ts +50 -0
- package/dist/monitoring/error-tracking.js +54 -0
- package/dist/monitoring/index.d.ts +12 -181
- package/dist/monitoring/index.js +7 -8
- package/dist/monitoring/performance.d.ts +31 -0
- package/dist/monitoring/performance.js +34 -0
- package/dist/monitoring/runtime.d.ts +17 -0
- package/dist/monitoring/runtime.js +28 -0
- package/dist/monitoring/server-logger.d.ts +37 -0
- package/dist/monitoring/server-logger.js +289 -0
- package/dist/next/ErrorBoundary.d.ts +19 -0
- package/dist/next/ErrorBoundary.js +35 -0
- package/dist/next/IAuthVerifier.d.ts +54 -0
- package/dist/next/IAuthVerifier.js +23 -0
- package/dist/next/api/api-response.d.ts +29 -0
- package/dist/next/api/api-response.js +31 -0
- package/dist/next/api/apiHandler.d.ts +48 -0
- package/dist/next/api/apiHandler.js +87 -0
- package/dist/next/api/errorHandler.d.ts +57 -0
- package/dist/next/api/errorHandler.js +72 -0
- package/dist/next/api/routeHandler.d.ts +60 -0
- package/dist/next/api/routeHandler.js +113 -0
- package/dist/next/cache-middleware.d.ts +35 -0
- package/dist/next/cache-middleware.js +77 -0
- package/dist/next/components/ErrorView.d.ts +13 -0
- package/dist/next/components/ErrorView.js +32 -0
- package/dist/next/components/GlobalError.d.ts +7 -0
- package/dist/next/components/GlobalError.js +43 -0
- package/dist/next/components/NotFoundView.d.ts +28 -0
- package/dist/next/components/NotFoundView.js +25 -0
- package/dist/next/components/UnauthorizedView.d.ts +28 -0
- package/dist/next/components/UnauthorizedView.js +22 -0
- package/dist/next/index.d.ts +34 -776
- package/dist/next/index.js +30 -646
- package/dist/next/middleware/chain.d.ts +47 -0
- package/dist/next/middleware/chain.js +80 -0
- package/dist/next/middleware/index.d.ts +6 -0
- package/dist/next/middleware/index.js +3 -0
- package/dist/next/middleware/pii-redactor.d.ts +32 -0
- package/dist/next/middleware/pii-redactor.js +82 -0
- package/dist/next/middleware/pii-scrubber.d.ts +11 -0
- package/dist/next/middleware/pii-scrubber.js +43 -0
- package/dist/next/middleware/types.d.ts +18 -0
- package/dist/next/middleware/types.js +1 -0
- package/dist/next/request-helpers.d.ts +25 -0
- package/dist/next/request-helpers.js +52 -0
- package/dist/next/routing/route-map.d.ts +272 -0
- package/dist/next/routing/route-map.js +202 -0
- package/dist/providers/auth-firebase/browser-stub.d.ts +24 -0
- package/dist/providers/auth-firebase/browser-stub.js +28 -0
- package/dist/providers/auth-firebase/helpers.d.ts +83 -0
- package/dist/providers/auth-firebase/helpers.js +205 -0
- package/dist/providers/auth-firebase/index.d.ts +7 -133
- package/dist/providers/auth-firebase/index.js +16 -370
- package/dist/providers/auth-firebase/provider.d.ts +8 -0
- package/dist/providers/auth-firebase/provider.js +118 -0
- package/dist/providers/auth-firebase/session.d.ts +19 -0
- package/dist/providers/auth-firebase/session.js +86 -0
- package/dist/providers/db-firebase/admin-app-lite.d.ts +6 -0
- package/dist/providers/db-firebase/admin-app-lite.js +50 -0
- package/dist/providers/db-firebase/admin-auth-lite.d.ts +5 -0
- package/dist/providers/db-firebase/admin-auth-lite.js +10 -0
- package/dist/providers/db-firebase/admin-storage-lite.d.ts +6 -0
- package/dist/providers/db-firebase/admin-storage-lite.js +11 -0
- package/dist/providers/db-firebase/admin.d.ts +29 -0
- package/dist/providers/db-firebase/admin.js +163 -0
- package/dist/providers/db-firebase/base.d.ts +44 -0
- package/dist/providers/db-firebase/base.js +180 -0
- package/dist/providers/db-firebase/base.repository.d.ts +34 -0
- package/dist/providers/db-firebase/base.repository.js +235 -0
- package/dist/providers/db-firebase/browser-stub.d.ts +37 -0
- package/dist/providers/db-firebase/browser-stub.js +56 -0
- package/dist/providers/db-firebase/client-config.d.ts +22 -0
- package/dist/providers/db-firebase/client-config.js +30 -0
- package/dist/providers/db-firebase/field-ops.d.ts +7 -0
- package/dist/providers/db-firebase/field-ops.js +13 -0
- package/dist/providers/db-firebase/helpers.d.ts +23 -0
- package/dist/providers/db-firebase/helpers.js +67 -0
- package/dist/providers/db-firebase/index.d.ts +16 -250
- package/dist/providers/db-firebase/index.js +42 -498
- package/dist/providers/db-firebase/realtime.d.ts +43 -0
- package/dist/providers/db-firebase/realtime.js +122 -0
- package/dist/providers/db-firebase/rtdb-paths.d.ts +12 -0
- package/dist/providers/db-firebase/rtdb-paths.js +12 -0
- package/dist/providers/db-firebase/sieve.d.ts +76 -0
- package/dist/providers/db-firebase/sieve.js +83 -0
- package/dist/providers/email-resend/index.d.ts +6 -64
- package/dist/providers/email-resend/index.js +14 -56
- package/dist/providers/email-resend/provider.d.ts +43 -0
- package/dist/providers/email-resend/provider.js +75 -0
- package/dist/providers/firebase-client/auth.d.ts +12 -0
- package/dist/providers/firebase-client/auth.js +30 -0
- package/dist/providers/firebase-client/index.d.ts +9 -0
- package/dist/providers/firebase-client/index.js +9 -0
- package/dist/providers/firebase-client/realtime.d.ts +18 -0
- package/dist/providers/firebase-client/realtime.js +39 -0
- package/dist/providers/payment-razorpay/index.d.ts +66 -69
- package/dist/providers/payment-razorpay/index.js +201 -97
- package/dist/providers/shipping-shiprocket/index.d.ts +69 -33
- package/dist/providers/shipping-shiprocket/index.js +135 -122
- package/dist/providers/shipping-shiprocket/shiprocket-provider.d.ts +46 -0
- package/dist/providers/shipping-shiprocket/shiprocket-provider.js +152 -0
- package/dist/providers/storage-firebase/client.d.ts +56 -0
- package/dist/providers/storage-firebase/client.js +141 -0
- package/dist/providers/storage-firebase/index.d.ts +6 -43
- package/dist/providers/storage-firebase/index.js +16 -153
- package/dist/providers/storage-firebase/provider.d.ts +23 -0
- package/dist/providers/storage-firebase/provider.js +103 -0
- package/dist/react/ErrorBoundary.d.ts +31 -0
- package/dist/react/ErrorBoundary.js +68 -0
- package/dist/react/contexts/SessionContext.d.ts +80 -0
- package/dist/react/contexts/SessionContext.js +350 -0
- package/dist/react/contexts/ThemeContext.d.ts +14 -0
- package/dist/react/contexts/ThemeContext.js +65 -0
- package/dist/react/contexts/index.d.ts +4 -0
- package/dist/react/contexts/index.js +2 -0
- package/dist/react/hooks/useBreakpoint.d.ts +29 -0
- package/dist/react/hooks/useBreakpoint.js +37 -0
- package/dist/react/hooks/useBulkAction.d.ts +65 -0
- package/dist/react/hooks/useBulkAction.js +69 -0
- package/dist/react/hooks/useBulkSelection.d.ts +40 -0
- package/dist/react/hooks/useBulkSelection.js +58 -0
- package/dist/react/hooks/useCamera.d.ts +34 -0
- package/dist/react/hooks/useCamera.js +147 -0
- package/dist/react/hooks/useClickOutside.d.ts +37 -0
- package/dist/react/hooks/useClickOutside.js +57 -0
- package/dist/react/hooks/useContainerGrid.d.ts +39 -0
- package/dist/react/hooks/useContainerGrid.js +47 -0
- package/dist/react/hooks/useCountdown.d.ts +26 -0
- package/dist/react/hooks/useCountdown.js +49 -0
- package/dist/react/hooks/useGesture.d.ts +51 -0
- package/dist/react/hooks/useGesture.js +181 -0
- package/dist/react/hooks/useKeyPress.d.ts +48 -0
- package/dist/react/hooks/useKeyPress.js +62 -0
- package/dist/react/hooks/useLongPress.d.ts +26 -0
- package/dist/react/hooks/useLongPress.js +55 -0
- package/dist/react/hooks/useMediaQuery.d.ts +17 -0
- package/dist/react/hooks/useMediaQuery.js +34 -0
- package/dist/react/hooks/useMessage.d.ts +11 -0
- package/dist/react/hooks/useMessage.js +45 -0
- package/dist/react/hooks/usePendingFilters.d.ts +58 -0
- package/dist/react/hooks/usePendingFilters.js +79 -0
- package/dist/react/hooks/usePendingTable.d.ts +49 -0
- package/dist/react/hooks/usePendingTable.js +45 -0
- package/dist/react/hooks/usePullToRefresh.d.ts +38 -0
- package/dist/react/hooks/usePullToRefresh.js +82 -0
- package/dist/react/hooks/useRealtimeEvent.d.ts +53 -0
- package/dist/react/hooks/useRealtimeEvent.js +124 -0
- package/dist/react/hooks/useSwipe.d.ts +55 -0
- package/dist/react/hooks/useSwipe.js +165 -0
- package/dist/react/hooks/useUnsavedChanges.d.ts +44 -0
- package/dist/react/hooks/useUnsavedChanges.js +55 -0
- package/dist/react/hooks/useUrlTable.d.ts +31 -0
- package/dist/react/hooks/useUrlTable.js +137 -0
- package/dist/react/hooks/useVisibleItems.d.ts +37 -0
- package/dist/react/hooks/useVisibleItems.js +59 -0
- package/dist/react/index.d.ts +49 -787
- package/dist/react/index.js +47 -1665
- package/dist/react/useModalStack.d.ts +33 -0
- package/dist/react/useModalStack.js +61 -0
- package/dist/repositories/index.d.ts +38 -0
- package/dist/repositories/index.js +40 -0
- package/dist/security/authorization.d.ts +24 -0
- package/dist/security/authorization.js +73 -0
- package/dist/security/browser.d.ts +7 -0
- package/dist/security/browser.js +5 -0
- package/dist/security/csp.d.ts +16 -0
- package/dist/security/csp.js +44 -0
- package/dist/security/index.d.ts +11 -309
- package/dist/security/index.js +8 -5
- package/dist/security/pii-encrypt.d.ts +121 -0
- package/dist/security/pii-encrypt.js +351 -0
- package/dist/security/pii-redact.d.ts +20 -0
- package/dist/security/pii-redact.js +129 -0
- package/dist/security/pii-schemas.d.ts +38 -0
- package/dist/security/pii-schemas.js +62 -0
- package/dist/security/rate-limit.d.ts +70 -0
- package/dist/security/rate-limit.js +107 -0
- package/dist/security/rbac/Can.d.ts +31 -0
- package/dist/security/rbac/Can.js +24 -0
- package/dist/security/rbac/default-roles.d.ts +2 -0
- package/dist/security/rbac/default-roles.js +83 -0
- package/dist/security/rbac/hook.d.ts +20 -0
- package/dist/security/rbac/hook.js +30 -0
- package/dist/security/rbac/index.d.ts +8 -0
- package/dist/security/rbac/index.js +6 -0
- package/dist/security/rbac/middleware.d.ts +51 -0
- package/dist/security/rbac/middleware.js +51 -0
- package/dist/security/rbac/resolver.d.ts +5 -0
- package/dist/security/rbac/resolver.js +38 -0
- package/dist/security/rbac/server.d.ts +24 -0
- package/dist/security/rbac/server.js +42 -0
- package/dist/security/rbac/types.d.ts +22 -0
- package/dist/security/rbac/types.js +2 -0
- package/dist/security/settings-encryption.d.ts +5 -0
- package/dist/security/settings-encryption.js +48 -0
- package/dist/seed/actions/demo-seed-actions.d.ts +31 -0
- package/dist/seed/actions/demo-seed-actions.js +36 -0
- package/dist/seed/actions/index.d.ts +1 -0
- package/dist/seed/actions/index.js +1 -0
- package/dist/seed/addresses-seed-data.d.ts +19 -0
- package/dist/seed/addresses-seed-data.js +418 -0
- package/dist/seed/bids-seed-data.d.ts +7 -0
- package/dist/seed/bids-seed-data.js +1168 -0
- package/dist/seed/blog-posts-seed-data.d.ts +7 -0
- package/dist/seed/blog-posts-seed-data.js +215 -0
- package/dist/seed/carousel-slides-seed-data.d.ts +7 -0
- package/dist/seed/carousel-slides-seed-data.js +283 -0
- package/dist/seed/cart-seed-data.d.ts +20 -0
- package/dist/seed/cart-seed-data.js +179 -0
- package/dist/seed/categories-seed-data.d.ts +7 -0
- package/dist/seed/categories-seed-data.js +1220 -0
- package/dist/seed/coupons-seed-data.d.ts +7 -0
- package/dist/seed/coupons-seed-data.js +508 -0
- package/dist/seed/defaults/categories.d.ts +2 -0
- package/dist/seed/defaults/categories.js +12 -0
- package/dist/seed/defaults/faqs.d.ts +2 -0
- package/dist/seed/defaults/faqs.js +40 -0
- package/dist/seed/defaults/homepage-sections.d.ts +2 -0
- package/dist/seed/defaults/homepage-sections.js +59 -0
- package/dist/seed/events-seed-data.d.ts +8 -0
- package/dist/seed/events-seed-data.js +662 -0
- package/dist/seed/factories/address.factory.d.ts +21 -0
- package/dist/seed/factories/address.factory.js +44 -0
- package/dist/seed/factories/bid.factory.d.ts +15 -0
- package/dist/seed/factories/bid.factory.js +33 -0
- package/dist/seed/factories/blog-post.factory.d.ts +15 -0
- package/dist/seed/factories/blog-post.factory.js +22 -0
- package/dist/seed/factories/carousel.factory.d.ts +11 -0
- package/dist/seed/factories/carousel.factory.js +16 -0
- package/dist/seed/factories/cart.factory.d.ts +26 -0
- package/dist/seed/factories/cart.factory.js +35 -0
- package/dist/seed/factories/category.factory.d.ts +11 -0
- package/dist/seed/factories/category.factory.js +16 -0
- package/dist/seed/factories/coupon.factory.d.ts +21 -0
- package/dist/seed/factories/coupon.factory.js +43 -0
- package/dist/seed/factories/faq.factory.d.ts +10 -0
- package/dist/seed/factories/faq.factory.js +15 -0
- package/dist/seed/factories/homepage-section.factory.d.ts +9 -0
- package/dist/seed/factories/homepage-section.factory.js +13 -0
- package/dist/seed/factories/notification.factory.d.ts +17 -0
- package/dist/seed/factories/notification.factory.js +39 -0
- package/dist/seed/factories/order.factory.d.ts +20 -0
- package/dist/seed/factories/order.factory.js +20 -0
- package/dist/seed/factories/payout.factory.d.ts +21 -0
- package/dist/seed/factories/payout.factory.js +38 -0
- package/dist/seed/factories/product.factory.d.ts +27 -0
- package/dist/seed/factories/product.factory.js +111 -0
- package/dist/seed/factories/review.factory.d.ts +14 -0
- package/dist/seed/factories/review.factory.js +52 -0
- package/dist/seed/factories/session.factory.d.ts +15 -0
- package/dist/seed/factories/session.factory.js +31 -0
- package/dist/seed/factories/store.factory.d.ts +23 -0
- package/dist/seed/factories/store.factory.js +46 -0
- package/dist/seed/factories/user.factory.d.ts +19 -0
- package/dist/seed/factories/user.factory.js +55 -0
- package/dist/seed/faq-seed-data.d.ts +47 -0
- package/dist/seed/faq-seed-data.js +2320 -0
- package/dist/seed/firestore-indexes.d.ts +13 -0
- package/dist/seed/firestore-indexes.js +32 -0
- package/dist/seed/homepage-sections-seed-data.d.ts +18 -0
- package/dist/seed/homepage-sections-seed-data.js +339 -0
- package/dist/seed/index.d.ts +68 -397
- package/dist/seed/index.js +49 -1040
- package/dist/seed/notifications-seed-data.d.ts +7 -0
- package/dist/seed/notifications-seed-data.js +494 -0
- package/dist/seed/orders-seed-data.d.ts +7 -0
- package/dist/seed/orders-seed-data.js +578 -0
- package/dist/seed/payouts-seed-data.d.ts +7 -0
- package/dist/seed/payouts-seed-data.js +202 -0
- package/dist/seed/products-seed-data.d.ts +7 -0
- package/dist/seed/products-seed-data.js +2477 -0
- package/dist/seed/reviews-seed-data.d.ts +7 -0
- package/dist/seed/reviews-seed-data.js +618 -0
- package/dist/seed/runner.d.ts +3 -0
- package/dist/seed/runner.js +38 -0
- package/dist/seed/seed-market-config.d.ts +49 -0
- package/dist/seed/seed-market-config.js +198 -0
- package/dist/seed/sessions-seed-data.d.ts +17 -0
- package/dist/seed/sessions-seed-data.js +355 -0
- package/dist/seed/site-settings-seed-data.d.ts +7 -0
- package/dist/seed/site-settings-seed-data.js +236 -0
- package/dist/seed/store-addresses-seed-data.d.ts +19 -0
- package/dist/seed/store-addresses-seed-data.js +106 -0
- package/dist/seed/stores-seed-data.d.ts +14 -0
- package/dist/seed/stores-seed-data.js +127 -0
- package/dist/seed/test-utils.d.ts +49 -0
- package/dist/seed/test-utils.js +107 -0
- package/dist/seed/types.d.ts +33 -0
- package/dist/seed/types.js +1 -0
- package/dist/seed/users-seed-data.d.ts +7 -0
- package/dist/seed/users-seed-data.js +727 -0
- package/dist/seo/index.d.ts +2 -150
- package/dist/seo/index.js +2 -4
- package/dist/seo/json-ld.d.ts +69 -0
- package/dist/seo/json-ld.js +166 -0
- package/dist/seo/metadata.d.ts +77 -0
- package/dist/seo/metadata.js +157 -0
- package/dist/server.d.ts +109 -0
- package/dist/server.js +110 -0
- package/dist/style/tailwind/index.d.ts +5 -7
- package/dist/style/tailwind/index.js +54 -33
- package/dist/style/vanilla/index.d.ts +5 -7
- package/dist/style/vanilla/index.js +45 -33
- package/dist/tokens/index.d.ts +23 -24
- package/dist/tokens/index.js +786 -4
- package/dist/tokens/tokens.css +221 -0
- package/dist/ui/DataTable.d.ts +78 -0
- package/dist/ui/DataTable.js +157 -0
- package/dist/ui/DataTable.style.css +190 -0
- package/dist/ui/animation.helper.d.ts +17 -0
- package/dist/ui/animation.helper.js +17 -0
- package/dist/ui/color.helper.d.ts +12 -0
- package/dist/ui/color.helper.js +31 -0
- package/dist/ui/columns/build-columns.d.ts +21 -0
- package/dist/ui/columns/build-columns.js +33 -0
- package/dist/ui/columns/column-renderers.d.ts +33 -0
- package/dist/ui/columns/column-renderers.js +64 -0
- package/dist/ui/columns/index.d.ts +6 -0
- package/dist/ui/columns/index.js +5 -0
- package/dist/ui/components/Accordion.d.ts +27 -0
- package/dist/ui/components/Accordion.js +57 -0
- package/dist/ui/components/Accordion.style.css +82 -0
- package/dist/ui/components/ActiveFilterChips.d.ts +13 -0
- package/dist/ui/components/ActiveFilterChips.js +9 -0
- package/dist/ui/components/ActiveFilterChips.style.css +66 -0
- package/dist/ui/components/Alert.d.ts +43 -0
- package/dist/ui/components/Alert.js +47 -0
- package/dist/ui/components/Alert.style.css +187 -0
- package/dist/ui/components/Avatar.d.ts +18 -0
- package/dist/ui/components/Avatar.js +42 -0
- package/dist/ui/components/Avatar.style.css +73 -0
- package/dist/ui/components/AvatarDisplay.d.ts +10 -0
- package/dist/ui/components/AvatarDisplay.js +56 -0
- package/dist/ui/components/AvatarDisplay.style.css +46 -0
- package/dist/ui/components/BackgroundRenderer.d.ts +15 -0
- package/dist/ui/components/BackgroundRenderer.js +42 -0
- package/dist/ui/components/BackgroundRenderer.style.css +31 -0
- package/dist/ui/components/Badge.d.ts +33 -0
- package/dist/ui/components/Badge.js +34 -0
- package/dist/ui/components/Badge.style.css +114 -0
- package/dist/ui/components/BaseListingCard.d.ts +39 -0
- package/dist/ui/components/BaseListingCard.js +56 -0
- package/dist/ui/components/BaseListingCard.style.css +84 -0
- package/dist/ui/components/Breadcrumb.d.ts +15 -0
- package/dist/ui/components/Breadcrumb.js +12 -0
- package/dist/ui/components/Breadcrumb.style.css +60 -0
- package/dist/ui/components/BulkActionBar.d.ts +34 -0
- package/dist/ui/components/BulkActionBar.js +86 -0
- package/dist/ui/components/BulkActionBar.style.css +196 -0
- package/dist/ui/components/Button.d.ts +31 -0
- package/dist/ui/components/Button.js +29 -0
- package/dist/ui/components/Button.style.css +160 -0
- package/dist/ui/components/Card.d.ts +21 -0
- package/dist/ui/components/Card.js +51 -0
- package/dist/ui/components/Card.style.css +192 -0
- package/dist/ui/components/Checkbox.d.ts +8 -0
- package/dist/ui/components/Checkbox.js +38 -0
- package/dist/ui/components/Checkbox.style.css +113 -0
- package/dist/ui/components/ConfirmDeleteModal.d.ts +33 -0
- package/dist/ui/components/ConfirmDeleteModal.js +74 -0
- package/dist/ui/components/ConfirmDeleteModal.style.css +89 -0
- package/dist/ui/components/CountdownDisplay.d.ts +14 -0
- package/dist/ui/components/CountdownDisplay.js +50 -0
- package/dist/ui/components/CountdownDisplay.style.css +4 -0
- package/dist/ui/components/DashboardStatsCard.d.ts +15 -0
- package/dist/ui/components/DashboardStatsCard.js +28 -0
- package/dist/ui/components/DashboardStatsCard.style.css +70 -0
- package/dist/ui/components/DescriptionField.d.ts +23 -0
- package/dist/ui/components/DescriptionField.js +28 -0
- package/dist/ui/components/DescriptionField.style.css +36 -0
- package/dist/ui/components/DetailViewShell.d.ts +51 -0
- package/dist/ui/components/DetailViewShell.js +50 -0
- package/dist/ui/components/Div.d.ts +20 -0
- package/dist/ui/components/Div.js +19 -0
- package/dist/ui/components/Div.style.css +6 -0
- package/dist/ui/components/Divider.d.ts +12 -0
- package/dist/ui/components/Divider.js +11 -0
- package/dist/ui/components/Divider.style.css +39 -0
- package/dist/ui/components/Drawer.d.ts +21 -0
- package/dist/ui/components/Drawer.js +72 -0
- package/dist/ui/components/Drawer.style.css +146 -0
- package/dist/ui/components/Dropdown.d.ts +36 -0
- package/dist/ui/components/Dropdown.js +142 -0
- package/dist/ui/components/Dropdown.style.css +112 -0
- package/dist/ui/components/DynamicSelect.d.ts +24 -0
- package/dist/ui/components/DynamicSelect.js +78 -0
- package/dist/ui/components/DynamicSelect.style.css +101 -0
- package/dist/ui/components/EmptyState.d.ts +12 -0
- package/dist/ui/components/EmptyState.js +17 -0
- package/dist/ui/components/EmptyState.style.css +30 -0
- package/dist/ui/components/FilterDrawer.d.ts +16 -0
- package/dist/ui/components/FilterDrawer.js +39 -0
- package/dist/ui/components/FilterDrawer.style.css +61 -0
- package/dist/ui/components/FlowDiagram.d.ts +33 -0
- package/dist/ui/components/FlowDiagram.js +15 -0
- package/dist/ui/components/FlowDiagram.style.css +77 -0
- package/dist/ui/components/Form.d.ts +27 -0
- package/dist/ui/components/Form.js +48 -0
- package/dist/ui/components/Form.style.css +27 -0
- package/dist/ui/components/FormField.d.ts +26 -0
- package/dist/ui/components/FormField.js +25 -0
- package/dist/ui/components/FormField.style.css +30 -0
- package/dist/ui/components/FormGrid.d.ts +46 -0
- package/dist/ui/components/FormGrid.js +42 -0
- package/dist/ui/components/FormGrid.style.css +32 -0
- package/dist/ui/components/HorizontalScroller.d.ts +33 -0
- package/dist/ui/components/HorizontalScroller.js +47 -0
- package/dist/ui/components/HorizontalScroller.style.css +109 -0
- package/dist/ui/components/IconButton.d.ts +32 -0
- package/dist/ui/components/IconButton.js +31 -0
- package/dist/ui/components/IconButton.style.css +103 -0
- package/dist/ui/components/ImageGallery.d.ts +17 -0
- package/dist/ui/components/ImageGallery.js +108 -0
- package/dist/ui/components/ImageGallery.style.css +163 -0
- package/dist/ui/components/ImageLightbox.d.ts +24 -0
- package/dist/ui/components/ImageLightbox.js +61 -0
- package/dist/ui/components/ImageLightbox.style.css +58 -0
- package/dist/ui/components/Input.d.ts +12 -0
- package/dist/ui/components/Input.js +29 -0
- package/dist/ui/components/Input.style.css +28 -0
- package/dist/ui/components/ItemRow.d.ts +10 -0
- package/dist/ui/components/ItemRow.js +7 -0
- package/dist/ui/components/ItemRow.style.css +33 -0
- package/dist/ui/components/Layout.d.ts +282 -0
- package/dist/ui/components/Layout.js +184 -0
- package/dist/ui/components/Layout.style.css +212 -0
- package/dist/ui/components/ListingLayout.d.ts +60 -0
- package/dist/ui/components/ListingLayout.js +121 -0
- package/dist/ui/components/ListingLayout.style.css +527 -0
- package/dist/ui/components/ListingViewShell.d.ts +38 -0
- package/dist/ui/components/ListingViewShell.js +11 -0
- package/dist/ui/components/Menu.d.ts +29 -0
- package/dist/ui/components/Menu.js +19 -0
- package/dist/ui/components/Menu.style.css +6 -0
- package/dist/ui/components/Modal.d.ts +18 -0
- package/dist/ui/components/Modal.js +79 -0
- package/dist/ui/components/Modal.style.css +102 -0
- package/dist/ui/components/Pagination.d.ts +25 -0
- package/dist/ui/components/Pagination.js +56 -0
- package/dist/ui/components/Pagination.style.css +76 -0
- package/dist/ui/components/PasswordStrengthIndicator.d.ts +12 -0
- package/dist/ui/components/PasswordStrengthIndicator.js +35 -0
- package/dist/ui/components/PasswordStrengthIndicator.style.css +56 -0
- package/dist/ui/components/PriceDisplay.d.ts +8 -0
- package/dist/ui/components/PriceDisplay.js +28 -0
- package/dist/ui/components/PriceDisplay.style.css +47 -0
- package/dist/ui/components/Progress.d.ts +23 -0
- package/dist/ui/components/Progress.js +32 -0
- package/dist/ui/components/Progress.style.css +81 -0
- package/dist/ui/components/Radio.d.ts +18 -0
- package/dist/ui/components/Radio.js +64 -0
- package/dist/ui/components/Radio.style.css +155 -0
- package/dist/ui/components/RatingDisplay.d.ts +8 -0
- package/dist/ui/components/RatingDisplay.js +15 -0
- package/dist/ui/components/RatingDisplay.style.css +50 -0
- package/dist/ui/components/ResponsiveView.d.ts +12 -0
- package/dist/ui/components/ResponsiveView.js +9 -0
- package/dist/ui/components/ResponsiveView.style.css +69 -0
- package/dist/ui/components/RoleBadge.d.ts +7 -0
- package/dist/ui/components/RoleBadge.js +21 -0
- package/dist/ui/components/RoleBadge.style.css +7 -0
- package/dist/ui/components/RowActionMenu.d.ts +13 -0
- package/dist/ui/components/RowActionMenu.js +17 -0
- package/dist/ui/components/RowActionMenu.style.css +91 -0
- package/dist/ui/components/SectionTabs.d.ts +19 -0
- package/dist/ui/components/SectionTabs.js +66 -0
- package/dist/ui/components/SectionTabs.style.css +163 -0
- package/dist/ui/components/Select.d.ts +19 -0
- package/dist/ui/components/Select.js +27 -0
- package/dist/ui/components/Select.style.css +177 -0
- package/dist/ui/components/Semantic.d.ts +154 -0
- package/dist/ui/components/Semantic.js +32 -0
- package/dist/ui/components/Semantic.style.css +14 -0
- package/dist/ui/components/SideDrawer.d.ts +28 -0
- package/dist/ui/components/SideDrawer.js +151 -0
- package/dist/ui/components/SideDrawer.style.css +214 -0
- package/dist/ui/components/SideModal.d.ts +25 -0
- package/dist/ui/components/SideModal.js +61 -0
- package/dist/ui/components/SideModal.style.css +77 -0
- package/dist/ui/components/Skeleton.d.ts +14 -0
- package/dist/ui/components/Skeleton.js +22 -0
- package/dist/ui/components/Skeleton.style.css +55 -0
- package/dist/ui/components/SkipToMain.d.ts +6 -0
- package/dist/ui/components/SkipToMain.js +6 -0
- package/dist/ui/components/SkipToMain.style.css +34 -0
- package/dist/ui/components/Slider.d.ts +17 -0
- package/dist/ui/components/Slider.js +38 -0
- package/dist/ui/components/Slider.style.css +17 -0
- package/dist/ui/components/SlottedListingView.d.ts +62 -0
- package/dist/ui/components/SlottedListingView.js +41 -0
- package/dist/ui/components/SortDropdown.d.ts +15 -0
- package/dist/ui/components/SortDropdown.js +8 -0
- package/dist/ui/components/SortDropdown.style.css +12 -0
- package/dist/ui/components/Spinner.d.ts +13 -0
- package/dist/ui/components/Spinner.js +15 -0
- package/dist/ui/components/Spinner.style.css +76 -0
- package/dist/ui/components/StackedViewShell.d.ts +50 -0
- package/dist/ui/components/StackedViewShell.js +39 -0
- package/dist/ui/components/StarRating.d.ts +17 -0
- package/dist/ui/components/StarRating.js +29 -0
- package/dist/ui/components/StarRating.style.css +44 -0
- package/dist/ui/components/StatsGrid.d.ts +18 -0
- package/dist/ui/components/StatsGrid.js +17 -0
- package/dist/ui/components/StatsGrid.style.css +96 -0
- package/dist/ui/components/StatusBadge.d.ts +18 -0
- package/dist/ui/components/StatusBadge.js +60 -0
- package/dist/ui/components/StatusBadge.style.css +5 -0
- package/dist/ui/components/StepperNav.d.ts +10 -0
- package/dist/ui/components/StepperNav.js +23 -0
- package/dist/ui/components/StepperNav.style.css +110 -0
- package/dist/ui/components/SummaryCard.d.ts +21 -0
- package/dist/ui/components/SummaryCard.js +15 -0
- package/dist/ui/components/SummaryCard.style.css +82 -0
- package/dist/ui/components/TabStrip.d.ts +34 -0
- package/dist/ui/components/TabStrip.js +57 -0
- package/dist/ui/components/TabStrip.style.css +97 -0
- package/dist/ui/components/TablePagination.d.ts +21 -0
- package/dist/ui/components/TablePagination.js +32 -0
- package/dist/ui/components/TablePagination.style.css +89 -0
- package/dist/ui/components/Tabs.d.ts +28 -0
- package/dist/ui/components/Tabs.js +41 -0
- package/dist/ui/components/Tabs.style.css +46 -0
- package/dist/ui/components/TagInput.d.ts +10 -0
- package/dist/ui/components/TagInput.js +60 -0
- package/dist/ui/components/TagInput.style.css +121 -0
- package/dist/ui/components/TextLink.d.ts +42 -0
- package/dist/ui/components/TextLink.js +48 -0
- package/dist/ui/components/TextLink.style.css +94 -0
- package/dist/ui/components/Textarea.d.ts +9 -0
- package/dist/ui/components/Textarea.js +21 -0
- package/dist/ui/components/Textarea.style.css +30 -0
- package/dist/ui/components/Toast.d.ts +15 -0
- package/dist/ui/components/Toast.js +61 -0
- package/dist/ui/components/Toast.style.css +114 -0
- package/dist/ui/components/Toggle.d.ts +12 -0
- package/dist/ui/components/Toggle.js +47 -0
- package/dist/ui/components/Toggle.style.css +107 -0
- package/dist/ui/components/Tooltip.d.ts +34 -0
- package/dist/ui/components/Tooltip.js +110 -0
- package/dist/ui/components/Tooltip.style.css +114 -0
- package/dist/ui/components/Typography.d.ts +50 -0
- package/dist/ui/components/Typography.js +103 -0
- package/dist/ui/components/Typography.style.css +178 -0
- package/dist/ui/components/UnsavedChangesModal.d.ts +17 -0
- package/dist/ui/components/UnsavedChangesModal.js +52 -0
- package/dist/ui/components/UnsavedChangesModal.style.css +33 -0
- package/dist/ui/components/ViewToggle.d.ts +15 -0
- package/dist/ui/components/ViewToggle.js +29 -0
- package/dist/ui/components/ViewToggle.style.css +50 -0
- package/dist/ui/components/index.style.css +76 -0
- package/dist/ui/index.d.ts +165 -1644
- package/dist/ui/index.js +87 -4784
- package/dist/ui/rich-text/RichText.d.ts +46 -0
- package/dist/ui/rich-text/RichText.js +172 -0
- package/dist/ui/rich-text/RichText.style.css +5 -0
- package/dist/ui/rich-text/index.d.ts +2 -0
- package/dist/ui/rich-text/index.js +1 -0
- package/dist/ui/style.helper.d.ts +7 -0
- package/dist/ui/style.helper.js +12 -0
- package/dist/utils/animation.helper.d.ts +19 -0
- package/dist/utils/animation.helper.js +19 -0
- package/dist/utils/array.helper.d.ts +17 -0
- package/dist/utils/array.helper.js +53 -0
- package/dist/utils/business-day.d.ts +47 -0
- package/dist/utils/business-day.js +68 -0
- package/dist/utils/client.d.ts +1 -0
- package/dist/utils/client.js +1 -0
- package/dist/utils/color.helper.d.ts +32 -0
- package/dist/utils/color.helper.js +51 -0
- package/dist/utils/cookie.converter.d.ts +7 -0
- package/dist/utils/cookie.converter.js +32 -0
- package/dist/utils/date.formatter.d.ts +22 -0
- package/dist/utils/date.formatter.js +194 -0
- package/dist/utils/event-manager.d.ts +45 -0
- package/dist/utils/event-manager.js +185 -0
- package/dist/utils/filter.helper.d.ts +18 -0
- package/dist/utils/filter.helper.js +21 -0
- package/dist/utils/id-generators.d.ts +243 -0
- package/dist/utils/id-generators.js +360 -0
- package/dist/utils/index.d.ts +17 -545
- package/dist/utils/index.js +18 -4
- package/dist/utils/media-field.d.ts +2 -0
- package/dist/utils/media-field.js +1 -0
- package/dist/utils/number.formatter.d.ts +13 -0
- package/dist/utils/number.formatter.js +100 -0
- package/dist/utils/object.helper.d.ts +16 -0
- package/dist/utils/object.helper.js +82 -0
- package/dist/utils/pagination.helper.d.ts +23 -0
- package/dist/utils/pagination.helper.js +24 -0
- package/dist/utils/schema-ui.d.ts +83 -0
- package/dist/utils/schema-ui.js +185 -0
- package/dist/utils/sorting.helper.d.ts +7 -0
- package/dist/utils/sorting.helper.js +16 -0
- package/dist/utils/string.formatter.d.ts +19 -0
- package/dist/utils/string.formatter.js +140 -0
- package/dist/utils/type.converter.d.ts +14 -0
- package/dist/utils/type.converter.js +61 -0
- package/dist/validation/ZodSetup.d.ts +5 -0
- package/dist/validation/ZodSetup.js +11 -0
- package/dist/validation/email.validator.d.ts +7 -0
- package/dist/validation/email.validator.js +33 -0
- package/dist/validation/index.d.ts +9 -126
- package/dist/validation/index.js +8 -4
- package/dist/validation/input.validator.d.ts +11 -0
- package/dist/validation/input.validator.js +33 -0
- package/dist/validation/password.validator.d.ts +21 -0
- package/dist/validation/password.validator.js +77 -0
- package/dist/validation/phone.validator.d.ts +9 -0
- package/dist/validation/phone.validator.js +41 -0
- package/dist/validation/schemas.d.ts +267 -0
- package/dist/validation/schemas.js +176 -0
- package/dist/validation/url.validator.d.ts +7 -0
- package/dist/validation/url.validator.js +44 -0
- package/dist/validation/zod-error-map.d.ts +17 -0
- package/dist/validation/zod-error-map.js +85 -0
- package/dist/values/index.d.ts +6 -0
- package/dist/values/index.js +6 -0
- package/dist/values/success-messages.d.ts +242 -0
- package/dist/values/success-messages.js +272 -0
- package/package.json +87 -445
- package/dist/chunk-2NMEKWO5.js +0 -35
- package/dist/chunk-2NMEKWO5.js.map +0 -1
- package/dist/chunk-6344OTT4.js +0 -329
- package/dist/chunk-6344OTT4.js.map +0 -1
- package/dist/chunk-7HUFI4MW.cjs +0 -941
- package/dist/chunk-7HUFI4MW.cjs.map +0 -1
- package/dist/chunk-AZ2XDBYA.cjs +0 -150
- package/dist/chunk-AZ2XDBYA.cjs.map +0 -1
- package/dist/chunk-CI4ZFLS7.js +0 -1162
- package/dist/chunk-CI4ZFLS7.js.map +0 -1
- package/dist/chunk-DSCHV5OD.js +0 -620
- package/dist/chunk-DSCHV5OD.js.map +0 -1
- package/dist/chunk-EEMSMWIZ.js +0 -566
- package/dist/chunk-EEMSMWIZ.js.map +0 -1
- package/dist/chunk-EPJNBIKL.js +0 -916
- package/dist/chunk-EPJNBIKL.js.map +0 -1
- package/dist/chunk-FJEY6LN2.cjs +0 -64
- package/dist/chunk-FJEY6LN2.cjs.map +0 -1
- package/dist/chunk-GZXXRVTM.cjs +0 -343
- package/dist/chunk-GZXXRVTM.cjs.map +0 -1
- package/dist/chunk-IE5L2QHV.js +0 -204
- package/dist/chunk-IE5L2QHV.js.map +0 -1
- package/dist/chunk-JPHORBTI.cjs +0 -366
- package/dist/chunk-JPHORBTI.cjs.map +0 -1
- package/dist/chunk-K4C5Z22R.js +0 -146
- package/dist/chunk-K4C5Z22R.js.map +0 -1
- package/dist/chunk-PAHR3D5L.js +0 -56
- package/dist/chunk-PAHR3D5L.js.map +0 -1
- package/dist/chunk-PE44UBFV.js +0 -324
- package/dist/chunk-PE44UBFV.js.map +0 -1
- package/dist/chunk-RNELVIKK.cjs +0 -1287
- package/dist/chunk-RNELVIKK.cjs.map +0 -1
- package/dist/chunk-S367Y35J.cjs +0 -39
- package/dist/chunk-S367Y35J.cjs.map +0 -1
- package/dist/chunk-ULLW73KN.cjs +0 -217
- package/dist/chunk-ULLW73KN.cjs.map +0 -1
- package/dist/chunk-UNYFAUWW.cjs +0 -630
- package/dist/chunk-UNYFAUWW.cjs.map +0 -1
- package/dist/chunk-V55QYTXF.js +0 -259
- package/dist/chunk-V55QYTXF.js.map +0 -1
- package/dist/chunk-WKVCFDEA.cjs +0 -599
- package/dist/chunk-WKVCFDEA.cjs.map +0 -1
- package/dist/chunk-YT4QVIBP.cjs +0 -292
- package/dist/chunk-YT4QVIBP.cjs.map +0 -1
- package/dist/cli/index.cjs +0 -155
- package/dist/cli/index.cjs.map +0 -1
- package/dist/cli/index.d.cts +0 -41
- package/dist/cli/index.js.map +0 -1
- package/dist/contracts/index.cjs +0 -37
- package/dist/contracts/index.cjs.map +0 -1
- package/dist/contracts/index.d.cts +0 -728
- package/dist/contracts/index.js.map +0 -1
- package/dist/core/index.cjs +0 -84
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.cts +0 -329
- package/dist/core/index.js.map +0 -1
- package/dist/errors/index.cjs +0 -57
- package/dist/errors/index.cjs.map +0 -1
- package/dist/errors/index.d.cts +0 -96
- package/dist/errors/index.js.map +0 -1
- package/dist/extend-D57fwPSu.d.cts +0 -122
- package/dist/extend-D57fwPSu.d.ts +0 -122
- package/dist/extend-D_0wzsse.d.cts +0 -79
- package/dist/extend-D_0wzsse.d.ts +0 -79
- package/dist/extend-jcOQfU2G.d.cts +0 -162
- package/dist/extend-jcOQfU2G.d.ts +0 -162
- package/dist/feature-C8mVv66I.d.cts +0 -84
- package/dist/feature-C8mVv66I.d.ts +0 -84
- package/dist/feature-DENiK3vd.d.cts +0 -55
- package/dist/feature-DENiK3vd.d.ts +0 -55
- package/dist/feature-RWXQ_lnf.d.cts +0 -41
- package/dist/feature-RWXQ_lnf.d.ts +0 -41
- package/dist/features/about/index.cjs +0 -286
- package/dist/features/about/index.cjs.map +0 -1
- package/dist/features/about/index.d.cts +0 -42
- package/dist/features/about/index.js.map +0 -1
- package/dist/features/account/index.cjs +0 -1032
- package/dist/features/account/index.cjs.map +0 -1
- package/dist/features/account/index.d.cts +0 -555
- package/dist/features/account/index.js.map +0 -1
- package/dist/features/admin/index.cjs +0 -2747
- package/dist/features/admin/index.cjs.map +0 -1
- package/dist/features/admin/index.d.cts +0 -554
- package/dist/features/admin/index.js.map +0 -1
- package/dist/features/auctions/index.cjs +0 -1219
- package/dist/features/auctions/index.cjs.map +0 -1
- package/dist/features/auctions/index.d.cts +0 -513
- package/dist/features/auctions/index.js.map +0 -1
- package/dist/features/auth/index.cjs +0 -1897
- package/dist/features/auth/index.cjs.map +0 -1
- package/dist/features/auth/index.d.cts +0 -315
- package/dist/features/auth/index.js.map +0 -1
- package/dist/features/auth/server.cjs +0 -531
- package/dist/features/auth/server.cjs.map +0 -1
- package/dist/features/auth/server.d.cts +0 -24
- package/dist/features/auth/server.js.map +0 -1
- package/dist/features/before-after/index.cjs +0 -559
- package/dist/features/before-after/index.cjs.map +0 -1
- package/dist/features/before-after/index.d.cts +0 -128
- package/dist/features/before-after/index.js.map +0 -1
- package/dist/features/blog/index.cjs +0 -4088
- package/dist/features/blog/index.cjs.map +0 -1
- package/dist/features/blog/index.d.cts +0 -492
- package/dist/features/blog/index.js.map +0 -1
- package/dist/features/blog/server.cjs +0 -184
- package/dist/features/blog/server.cjs.map +0 -1
- package/dist/features/blog/server.d.cts +0 -74
- package/dist/features/blog/server.js.map +0 -1
- package/dist/features/cart/index.cjs +0 -1097
- package/dist/features/cart/index.cjs.map +0 -1
- package/dist/features/cart/index.d.cts +0 -451
- package/dist/features/cart/index.js.map +0 -1
- package/dist/features/categories/index.cjs +0 -2062
- package/dist/features/categories/index.cjs.map +0 -1
- package/dist/features/categories/index.d.cts +0 -461
- package/dist/features/categories/index.js.map +0 -1
- package/dist/features/categories/server.cjs +0 -796
- package/dist/features/categories/server.cjs.map +0 -1
- package/dist/features/categories/server.d.cts +0 -47
- package/dist/features/categories/server.js.map +0 -1
- package/dist/features/checkout/index.cjs +0 -200
- package/dist/features/checkout/index.cjs.map +0 -1
- package/dist/features/checkout/index.d.cts +0 -70
- package/dist/features/checkout/index.js.map +0 -1
- package/dist/features/cms/index.cjs +0 -5
- package/dist/features/cms/index.cjs.map +0 -1
- package/dist/features/cms/index.d.cts +0 -2
- package/dist/features/cms/index.js.map +0 -1
- package/dist/features/collections/index.cjs +0 -394
- package/dist/features/collections/index.cjs.map +0 -1
- package/dist/features/collections/index.d.cts +0 -148
- package/dist/features/collections/index.js.map +0 -1
- package/dist/features/consultation/index.cjs +0 -1099
- package/dist/features/consultation/index.cjs.map +0 -1
- package/dist/features/consultation/index.d.cts +0 -172
- package/dist/features/consultation/index.js.map +0 -1
- package/dist/features/contact/index.cjs +0 -593
- package/dist/features/contact/index.cjs.map +0 -1
- package/dist/features/contact/index.d.cts +0 -56
- package/dist/features/contact/index.js.map +0 -1
- package/dist/features/copilot/index.cjs +0 -688
- package/dist/features/copilot/index.cjs.map +0 -1
- package/dist/features/copilot/index.d.cts +0 -47
- package/dist/features/copilot/index.js.map +0 -1
- package/dist/features/corporate/index.cjs +0 -796
- package/dist/features/corporate/index.cjs.map +0 -1
- package/dist/features/corporate/index.d.cts +0 -183
- package/dist/features/corporate/index.js.map +0 -1
- package/dist/features/events/index.cjs +0 -1486
- package/dist/features/events/index.cjs.map +0 -1
- package/dist/features/events/index.d.cts +0 -841
- package/dist/features/events/index.js.map +0 -1
- package/dist/features/events/server.cjs +0 -199
- package/dist/features/events/server.cjs.map +0 -1
- package/dist/features/events/server.d.cts +0 -40
- package/dist/features/events/server.js.map +0 -1
- package/dist/features/faq/index.cjs +0 -1714
- package/dist/features/faq/index.cjs.map +0 -1
- package/dist/features/faq/index.d.cts +0 -619
- package/dist/features/faq/index.js.map +0 -1
- package/dist/features/filters/index.cjs +0 -1073
- package/dist/features/filters/index.cjs.map +0 -1
- package/dist/features/filters/index.d.cts +0 -136
- package/dist/features/filters/index.js.map +0 -1
- package/dist/features/forms/index.cjs +0 -936
- package/dist/features/forms/index.cjs.map +0 -1
- package/dist/features/forms/index.d.cts +0 -129
- package/dist/features/forms/index.js.map +0 -1
- package/dist/features/homepage/index.cjs +0 -6321
- package/dist/features/homepage/index.cjs.map +0 -1
- package/dist/features/homepage/index.d.cts +0 -846
- package/dist/features/homepage/index.js.map +0 -1
- package/dist/features/homepage/server.cjs +0 -1038
- package/dist/features/homepage/server.cjs.map +0 -1
- package/dist/features/homepage/server.d.cts +0 -121
- package/dist/features/homepage/server.js.map +0 -1
- package/dist/features/layout/index.cjs +0 -1766
- package/dist/features/layout/index.cjs.map +0 -1
- package/dist/features/layout/index.d.cts +0 -315
- package/dist/features/layout/index.js.map +0 -1
- package/dist/features/loyalty/index.cjs +0 -352
- package/dist/features/loyalty/index.cjs.map +0 -1
- package/dist/features/loyalty/index.d.cts +0 -174
- package/dist/features/loyalty/index.js.map +0 -1
- package/dist/features/media/index.cjs +0 -3620
- package/dist/features/media/index.cjs.map +0 -1
- package/dist/features/media/index.d.cts +0 -425
- package/dist/features/media/index.js.map +0 -1
- package/dist/features/orders/index.cjs +0 -882
- package/dist/features/orders/index.cjs.map +0 -1
- package/dist/features/orders/index.d.cts +0 -370
- package/dist/features/orders/index.js.map +0 -1
- package/dist/features/payments/index.cjs +0 -341
- package/dist/features/payments/index.cjs.map +0 -1
- package/dist/features/payments/index.d.cts +0 -141
- package/dist/features/payments/index.js.map +0 -1
- package/dist/features/pre-orders/index.cjs +0 -558
- package/dist/features/pre-orders/index.cjs.map +0 -1
- package/dist/features/pre-orders/index.d.cts +0 -170
- package/dist/features/pre-orders/index.js.map +0 -1
- package/dist/features/pre-orders/server.cjs +0 -111
- package/dist/features/pre-orders/server.cjs.map +0 -1
- package/dist/features/pre-orders/server.d.cts +0 -17
- package/dist/features/pre-orders/server.js.map +0 -1
- package/dist/features/products/index.cjs +0 -2513
- package/dist/features/products/index.cjs.map +0 -1
- package/dist/features/products/index.d.cts +0 -1066
- package/dist/features/products/index.js.map +0 -1
- package/dist/features/products/server.cjs +0 -809
- package/dist/features/products/server.cjs.map +0 -1
- package/dist/features/products/server.d.cts +0 -52
- package/dist/features/products/server.js.map +0 -1
- package/dist/features/promotions/index.cjs +0 -977
- package/dist/features/promotions/index.cjs.map +0 -1
- package/dist/features/promotions/index.d.cts +0 -301
- package/dist/features/promotions/index.js.map +0 -1
- package/dist/features/reviews/index.cjs +0 -2324
- package/dist/features/reviews/index.cjs.map +0 -1
- package/dist/features/reviews/index.d.cts +0 -434
- package/dist/features/reviews/index.js.map +0 -1
- package/dist/features/reviews/server.cjs +0 -776
- package/dist/features/reviews/server.cjs.map +0 -1
- package/dist/features/reviews/server.d.cts +0 -49
- package/dist/features/reviews/server.js.map +0 -1
- package/dist/features/search/index.cjs +0 -1368
- package/dist/features/search/index.cjs.map +0 -1
- package/dist/features/search/index.d.cts +0 -298
- package/dist/features/search/index.js.map +0 -1
- package/dist/features/search/server.cjs +0 -154
- package/dist/features/search/server.cjs.map +0 -1
- package/dist/features/search/server.d.cts +0 -83
- package/dist/features/search/server.js.map +0 -1
- package/dist/features/seller/index.cjs +0 -2086
- package/dist/features/seller/index.cjs.map +0 -1
- package/dist/features/seller/index.d.cts +0 -926
- package/dist/features/seller/index.js.map +0 -1
- package/dist/features/stores/index.cjs +0 -1942
- package/dist/features/stores/index.cjs.map +0 -1
- package/dist/features/stores/index.d.cts +0 -536
- package/dist/features/stores/index.js.map +0 -1
- package/dist/features/stores/server.cjs +0 -451
- package/dist/features/stores/server.cjs.map +0 -1
- package/dist/features/stores/server.d.cts +0 -106
- package/dist/features/stores/server.js.map +0 -1
- package/dist/features/whatsapp-bot/index.cjs +0 -168
- package/dist/features/whatsapp-bot/index.cjs.map +0 -1
- package/dist/features/whatsapp-bot/index.d.cts +0 -85
- package/dist/features/whatsapp-bot/index.js.map +0 -1
- package/dist/features/wishlist/index.cjs +0 -904
- package/dist/features/wishlist/index.cjs.map +0 -1
- package/dist/features/wishlist/index.d.cts +0 -360
- package/dist/features/wishlist/index.js.map +0 -1
- package/dist/http/index.cjs +0 -21
- package/dist/http/index.cjs.map +0 -1
- package/dist/http/index.d.cts +0 -61
- package/dist/http/index.js.map +0 -1
- package/dist/index-B6T9NNcG.d.cts +0 -9
- package/dist/index-B6T9NNcG.d.ts +0 -9
- package/dist/index-CakUKzrE.d.cts +0 -10
- package/dist/index-CakUKzrE.d.ts +0 -10
- package/dist/index-D0Fxv9Z8.d.cts +0 -32
- package/dist/index-D0Fxv9Z8.d.ts +0 -32
- package/dist/index-Dh42RtMY.d.cts +0 -54
- package/dist/index-Dh42RtMY.d.ts +0 -54
- package/dist/index.cjs +0 -1182
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -17
- package/dist/index.js.map +0 -1
- package/dist/instrumentation/index.cjs +0 -17
- package/dist/instrumentation/index.cjs.map +0 -1
- package/dist/instrumentation/index.d.cts +0 -66
- package/dist/instrumentation/index.js.map +0 -1
- package/dist/monitoring/index.cjs +0 -141
- package/dist/monitoring/index.cjs.map +0 -1
- package/dist/monitoring/index.d.cts +0 -181
- package/dist/monitoring/index.js.map +0 -1
- package/dist/next/index.cjs +0 -693
- package/dist/next/index.cjs.map +0 -1
- package/dist/next/index.d.cts +0 -777
- package/dist/next/index.js.map +0 -1
- package/dist/providers/auth-firebase/index.cjs +0 -400
- package/dist/providers/auth-firebase/index.cjs.map +0 -1
- package/dist/providers/auth-firebase/index.d.cts +0 -137
- package/dist/providers/auth-firebase/index.js.map +0 -1
- package/dist/providers/db-firebase/index.cjs +0 -533
- package/dist/providers/db-firebase/index.cjs.map +0 -1
- package/dist/providers/db-firebase/index.d.cts +0 -265
- package/dist/providers/db-firebase/index.js.map +0 -1
- package/dist/providers/email-resend/index.cjs +0 -58
- package/dist/providers/email-resend/index.cjs.map +0 -1
- package/dist/providers/email-resend/index.d.cts +0 -73
- package/dist/providers/email-resend/index.js.map +0 -1
- package/dist/providers/payment-razorpay/index.cjs +0 -111
- package/dist/providers/payment-razorpay/index.cjs.map +0 -1
- package/dist/providers/payment-razorpay/index.d.cts +0 -96
- package/dist/providers/payment-razorpay/index.js.map +0 -1
- package/dist/providers/search-algolia/index.cjs +0 -301
- package/dist/providers/search-algolia/index.cjs.map +0 -1
- package/dist/providers/search-algolia/index.d.cts +0 -251
- package/dist/providers/search-algolia/index.d.ts +0 -251
- package/dist/providers/search-algolia/index.js +0 -280
- package/dist/providers/search-algolia/index.js.map +0 -1
- package/dist/providers/shipping-shiprocket/index.cjs +0 -147
- package/dist/providers/shipping-shiprocket/index.cjs.map +0 -1
- package/dist/providers/shipping-shiprocket/index.d.cts +0 -236
- package/dist/providers/shipping-shiprocket/index.js.map +0 -1
- package/dist/providers/storage-firebase/index.cjs +0 -176
- package/dist/providers/storage-firebase/index.cjs.map +0 -1
- package/dist/providers/storage-firebase/index.d.cts +0 -53
- package/dist/providers/storage-firebase/index.js.map +0 -1
- package/dist/react/index.cjs +0 -1687
- package/dist/react/index.cjs.map +0 -1
- package/dist/react/index.d.cts +0 -788
- package/dist/react/index.js.map +0 -1
- package/dist/repository-BO60jtdT.d.cts +0 -61
- package/dist/repository-BO60jtdT.d.ts +0 -61
- package/dist/repository-jKU_Ji1P.d.cts +0 -44
- package/dist/repository-jKU_Ji1P.d.ts +0 -44
- package/dist/security/index.cjs +0 -138
- package/dist/security/index.cjs.map +0 -1
- package/dist/security/index.d.cts +0 -309
- package/dist/security/index.js.map +0 -1
- package/dist/seed/index.cjs +0 -1085
- package/dist/seed/index.cjs.map +0 -1
- package/dist/seed/index.d.cts +0 -397
- package/dist/seed/index.js.map +0 -1
- package/dist/seo/index.cjs +0 -81
- package/dist/seo/index.cjs.map +0 -1
- package/dist/seo/index.d.cts +0 -150
- package/dist/seo/index.js.map +0 -1
- package/dist/style/tailwind/index.cjs +0 -40
- package/dist/style/tailwind/index.cjs.map +0 -1
- package/dist/style/tailwind/index.d.cts +0 -34
- package/dist/style/tailwind/index.js.map +0 -1
- package/dist/style/vanilla/index.cjs +0 -40
- package/dist/style/vanilla/index.cjs.map +0 -1
- package/dist/style/vanilla/index.d.cts +0 -26
- package/dist/style/vanilla/index.js.map +0 -1
- package/dist/style-BSlM-eWG.d.cts +0 -25
- package/dist/style-BSlM-eWG.d.ts +0 -25
- package/dist/tokens/index.cjs +0 -45
- package/dist/tokens/index.cjs.map +0 -1
- package/dist/tokens/index.d.cts +0 -734
- package/dist/tokens/index.js.map +0 -1
- package/dist/ui/index.cjs +0 -4870
- package/dist/ui/index.cjs.map +0 -1
- package/dist/ui/index.d.cts +0 -1644
- package/dist/ui/index.js.map +0 -1
- package/dist/utils/index.cjs +0 -505
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.d.cts +0 -545
- package/dist/utils/index.js.map +0 -1
- package/dist/validation/index.cjs +0 -153
- package/dist/validation/index.cjs.map +0 -1
- package/dist/validation/index.d.cts +0 -126
- package/dist/validation/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/components/Semantic.tsx","../../../src/ui/components/Div.tsx","../../../src/ui/components/Typography.tsx","../../../node_modules/shared/src/utils/mergeClasses.ts","../../../node_modules/shared/src/utils/toKebabCase.ts","../../../node_modules/shared/src/utils/toCamelCase.ts","../../../node_modules/shared/src/utils/toPascalCase.ts","../../../node_modules/lucide-react/src/defaultAttributes.ts","../../../node_modules/shared/src/utils/hasA11yProp.ts","../../../node_modules/lucide-react/src/context.ts","../../../node_modules/lucide-react/src/Icon.ts","../../../node_modules/lucide-react/src/createLucideIcon.ts","../../../node_modules/lucide-react/src/icons/check.ts","../../../node_modules/lucide-react/src/icons/chevron-down.ts","../../../node_modules/lucide-react/src/icons/chevron-up.ts","../../../node_modules/lucide-react/src/icons/loader-circle.ts","../../../src/ui/components/Button.tsx","../../../src/ui/components/Accordion.tsx","../../../src/ui/components/Select.tsx","../../../src/ui/components/Layout.tsx","../../../src/features/layout/NavbarLayout.tsx","../../../src/features/layout/FooterLayout.tsx","../../../src/features/layout/SidebarLayout.tsx","../../../src/features/layout/BottomNavLayout.tsx","../../../src/features/layout/BottomNavItem.tsx","../../../src/features/layout/BottomSheet.tsx","../../../src/features/layout/TitleBarLayout.tsx","../../../src/features/layout/AutoBreadcrumbs.tsx","../../../src/features/layout/Breadcrumbs.tsx","../../../src/features/layout/LocaleSwitcher.tsx","../../../src/features/layout/BackToTop.tsx","../../../src/features/layout/ListingLayout.tsx"],"names":["React","jsx","_a","createElement","_b","forwardRef","__iconNode","jsxs","createContext","useId","useState","useRef","useCallback","useEffect","Link","SidebarLayout","Fragment","ListingLayout"],"mappings":"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","file":"index.js","sourcesContent":["import React from \"react\";\n\n/**\n * Semantic HTML Wrapper Components\n *\n * Thin wrappers around HTML5 semantic elements.\n * Using these instead of raw tags enables:\n * - Future one-place theming (add default padding/colour here, it applies everywhere)\n * - Enforced accessibility attributes (Nav requires aria-label)\n * - Consistent documentation / IDE autocomplete\n * - Clean migration path if element defaults change\n *\n * All components pass through every standard HTML attribute via `...props`.\n * Style via `className` using Tailwind CSS classes.\n *\n * @example\n * ```tsx\n * import { Section, Article, Main, Aside, Nav, Ul, Ol, Li } from '@mohasinac/ui';\n *\n * <Main className=\"max-w-7xl mx-auto px-4\">\n * <Section className=\"py-12\">\n * <Article>...</Article>\n * </Section>\n * <Aside className=\"w-64 shrink-0\">...</Aside>\n * </Main>\n *\n * <Nav aria-label=\"Main navigation\">\n * <Ul className=\"flex gap-4\">\n * <Li>Products</Li>\n * </Ul>\n * </Nav>\n * ```\n */\n\n// ─── Section ─────────────────────────────────────────────────────────────────\n/**\n * Semantic `<section>` element.\n * Use for thematically grouped content that would appear in an outline.\n * Prefer this over a plain `<div>` when the block has a heading.\n */\nexport interface SectionProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n}\n\nexport const Section = React.forwardRef<HTMLElement, SectionProps>(\n ({ className = \"\", children, ...props }, ref) => (\n <section className={className} ref={ref} {...props}>\n {children}\n </section>\n ),\n);\nSection.displayName = \"Section\";\n\n// ─── Article ─────────────────────────────────────────────────────────────────\n/**\n * Semantic `<article>` element.\n * Use for self-contained compositions: blog posts, product cards, reviews, forum posts.\n */\nexport interface ArticleProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\nexport function Article({ className = \"\", children, ...props }: ArticleProps) {\n return (\n <article className={className} {...props}>\n {children}\n </article>\n );\n}\n\n// ─── Main ─────────────────────────────────────────────────────────────────────\n/**\n * Semantic `<main>` element.\n * Wraps the primary content of the document. Should appear only once per page.\n */\nexport interface MainProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n}\n\nexport function Main({ className = \"\", children, ...props }: MainProps) {\n return (\n <main className={className} {...props}>\n {children}\n </main>\n );\n}\n\n// ─── Aside ────────────────────────────────────────────────────────────────────\n/**\n * Semantic `<aside>` element.\n * Use for supplementary content tangentially related to the main content:\n * sidebars, callout boxes, related-link panels.\n */\nexport interface AsideProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n}\n\nexport const Aside = React.forwardRef<HTMLElement, AsideProps>(\n ({ className = \"\", children, ...props }, ref) => (\n <aside className={className} ref={ref} {...props}>\n {children}\n </aside>\n ),\n);\nAside.displayName = \"Aside\";\n\n// ─── Nav ─────────────────────────────────────────────────────────────────────\n/**\n * Semantic `<nav>` element with enforced `aria-label`.\n *\n * Every `<nav>` on a page MUST have a unique `aria-label` so assistive\n * technologies can distinguish between multiple navigation landmarks.\n *\n * @example\n * ```tsx\n * <Nav aria-label=\"Breadcrumb\">...</Nav>\n * <Nav aria-label=\"Product categories\">...</Nav>\n * ```\n */\nexport interface NavProps extends React.HTMLAttributes<HTMLElement> {\n /** REQUIRED — describes the purpose of this navigation region for screen readers. */\n \"aria-label\": string;\n children: React.ReactNode;\n}\n\nexport function Nav({ className = \"\", children, ...props }: NavProps) {\n return (\n <nav className={className} {...props}>\n {children}\n </nav>\n );\n}\n\n// ─── Header (block-level) ─────────────────────────────────────────────────────\n/**\n * Semantic `<header>` element for block-level component headers.\n * Use inside `Section`, `Article`, or card bodies — NOT as the page-level header.\n *\n * @example\n * ```tsx\n * <Article>\n * <BlockHeader className=\"mb-4\">\n * <Heading level={2}>Post title</Heading>\n * </BlockHeader>\n * </Article>\n * ```\n */\nexport interface BlockHeaderProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n}\n\nexport function BlockHeader({\n className = \"\",\n children,\n ...props\n}: BlockHeaderProps) {\n return (\n <header className={className} {...props}>\n {children}\n </header>\n );\n}\n\n// ─── Footer (block-level) ─────────────────────────────────────────────────────\n/**\n * Semantic `<footer>` element for block-level component footers.\n * Use inside `Section`, `Article`, or card bodies — NOT as the page-level footer.\n */\nexport interface BlockFooterProps extends React.HTMLAttributes<HTMLElement> {\n children: React.ReactNode;\n}\n\nexport function BlockFooter({\n className = \"\",\n children,\n ...props\n}: BlockFooterProps) {\n return (\n <footer className={className} {...props}>\n {children}\n </footer>\n );\n}\n\n// ─── Ul ──────────────────────────────────────────────────────────────────────\n/**\n * Semantic `<ul>` (unordered list) element.\n *\n * @example\n * ```tsx\n * <Ul className=\"space-y-2\">\n * <Li>Item one</Li>\n * <Li>Item two</Li>\n * </Ul>\n * ```\n */\nexport interface UlProps extends React.HTMLAttributes<HTMLUListElement> {\n children: React.ReactNode;\n}\n\nexport function Ul({ className = \"\", children, ...props }: UlProps) {\n return (\n <ul className={className} {...props}>\n {children}\n </ul>\n );\n}\n\n// ─── Ol ──────────────────────────────────────────────────────────────────────\n/**\n * Semantic `<ol>` (ordered list) element.\n *\n * @example\n * ```tsx\n * <Ol className=\"list-decimal pl-4 space-y-1\">\n * <Li>Step one</Li>\n * <Li>Step two</Li>\n * </Ol>\n * ```\n */\nexport interface OlProps extends React.HTMLAttributes<HTMLOListElement> {\n children: React.ReactNode;\n}\n\nexport function Ol({ className = \"\", children, ...props }: OlProps) {\n return (\n <ol className={className} {...props}>\n {children}\n </ol>\n );\n}\n\n// ─── Li ──────────────────────────────────────────────────────────────────────\n/**\n * Semantic `<li>` (list item) element. Use inside `Ul` or `Ol`.\n */\nexport interface LiProps extends React.LiHTMLAttributes<HTMLLIElement> {\n children: React.ReactNode;\n}\n\nexport function Li({ className = \"\", children, ...props }: LiProps) {\n return (\n <li className={className} {...props}>\n {children}\n </li>\n );\n}\n\n// ─── Header / Footer — convenience aliases ────────────────────────────────────\n/**\n * Aliases for `BlockHeader` and `BlockFooter`.\n * Use when importing from the standard `<Header>` / `<Footer>` names.\n */\nexport type HeaderProps = BlockHeaderProps;\nexport const Header = BlockHeader;\nexport type FooterProps = BlockFooterProps;\nexport const Footer = BlockFooter;\n","import React from \"react\";\r\n\r\nexport interface DivProps extends React.HTMLAttributes<HTMLDivElement> {\r\n children?: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Semantic `<div>` wrapper for general-purpose layout containers.\r\n *\r\n * Use when no more specific semantic element applies\r\n * (`<Section>`, `<Article>`, `<Main>`, `<Aside>` etc). Enables\r\n * future one-place theming and consistent import from `@mohasinac/appkit/ui`.\r\n *\r\n * @example\r\n * ```tsx\r\n * <Div className=\"flex items-center gap-4\">\r\n * <Badge>New</Badge>\r\n * <Text>Product title</Text>\r\n * </Div>\r\n * ```\r\n */\r\nexport const Div = React.forwardRef<HTMLDivElement, DivProps>(\r\n ({ className = \"\", children, ...props }, ref) => (\r\n <div ref={ref} className={className} {...props}>\r\n {children}\r\n </div>\r\n ),\r\n);\r\nDiv.displayName = \"Div\";\r\n","import React from \"react\";\n\n/**\n * UI_THEME — inlined subset of the app-level THEME_CONSTANTS.\n * Consumer apps can override by passing `className` on each component.\n * Full THEME_CONSTANTS lives in the host app (`@/constants`).\n */\nconst UI_THEME = {\n typography: {\n h1: \"text-3xl md:text-4xl lg:text-5xl font-bold tracking-tight font-display\",\n h2: \"text-2xl md:text-3xl lg:text-4xl font-bold tracking-tight font-display\",\n h3: \"text-xl md:text-2xl lg:text-3xl font-bold tracking-tight font-display\",\n h4: \"text-lg md:text-xl lg:text-2xl font-bold font-display\",\n h5: \"text-base md:text-lg lg:text-xl font-medium\",\n h6: \"text-sm md:text-base lg:text-lg font-medium\",\n body: \"text-base lg:text-lg\",\n small: \"text-sm lg:text-base\",\n xs: \"text-xs lg:text-sm\",\n },\n themed: {\n textPrimary: \"text-zinc-900 dark:text-zinc-50\",\n textSecondary: \"text-zinc-500 dark:text-zinc-400\",\n textMuted: \"text-zinc-400 dark:text-zinc-500\",\n textError: \"text-red-600 dark:text-red-400\",\n textSuccess: \"text-emerald-600 dark:text-emerald-400\",\n },\n colors: {\n form: {\n required: \"text-red-500\",\n },\n },\n} as const;\n\n// ─── Heading ─────────────────────────────────────────────────────────────────\n\ninterface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n variant?: \"primary\" | \"secondary\" | \"muted\" | \"none\";\n children: React.ReactNode;\n}\n\nexport function Heading({\n level = 1,\n variant = \"primary\",\n className = \"\",\n children,\n ...props\n}: HeadingProps) {\n const Tag = `h${level}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n const { typography, themed } = UI_THEME;\n\n const sizeClasses = {\n 1: typography.h1,\n 2: typography.h2,\n 3: typography.h3,\n 4: typography.h4,\n 5: typography.h5,\n 6: typography.h6,\n };\n\n const variantClasses = {\n primary: themed.textPrimary,\n secondary: themed.textSecondary,\n muted: themed.textMuted,\n none: \"\",\n };\n\n return (\n <Tag\n className={`${sizeClasses[level]} ${variantClasses[variant]} ${className}`}\n {...props}\n >\n {children}\n </Tag>\n );\n}\n\n// ─── Text ─────────────────────────────────────────────────────────────────────\n\ninterface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n variant?: \"primary\" | \"secondary\" | \"muted\" | \"error\" | \"success\" | \"none\";\n size?: \"xs\" | \"sm\" | \"base\" | \"lg\" | \"xl\";\n weight?: \"normal\" | \"medium\" | \"semibold\" | \"bold\";\n /** Override the rendered element. Defaults to `p`. */\n as?: React.ElementType;\n children: React.ReactNode;\n}\n\nexport function Text({\n variant = \"primary\",\n size = \"base\",\n weight = \"normal\",\n className = \"\",\n as: Tag = \"p\",\n children,\n ...props\n}: TextProps) {\n const { typography, themed } = UI_THEME;\n\n const sizeClasses = {\n xs: typography.xs,\n sm: typography.small,\n base: typography.body,\n lg: \"text-lg\",\n xl: \"text-xl\",\n };\n\n const weightClasses = {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n };\n\n const variantClasses = {\n primary: themed.textPrimary,\n secondary: themed.textSecondary,\n muted: themed.textMuted,\n error: themed.textError,\n success: themed.textSuccess,\n none: \"\",\n };\n\n return (\n <Tag\n className={`${sizeClasses[size]} ${weightClasses[weight]} ${variantClasses[variant]} ${className}`}\n {...props}\n >\n {children}\n </Tag>\n );\n}\n\n// ─── Label ────────────────────────────────────────────────────────────────────\n\ninterface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n required?: boolean;\n children: React.ReactNode;\n}\n\nexport function Label({\n required,\n className = \"\",\n children,\n ...props\n}: LabelProps) {\n const { themed, typography, colors } = UI_THEME;\n return (\n <label\n className={`block ${typography.small} font-medium ${themed.textSecondary} mb-1.5 ${className}`}\n {...props}\n >\n {children}\n {required && <span className={`${colors.form.required} ml-1`}>*</span>}\n </label>\n );\n}\n\n// ─── Caption ─────────────────────────────────────────────────────────────────\n\ninterface CaptionProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** \"default\" — muted grey (default); \"accent\" — indigo, semibold; \"inverse\" — light indigo for use on dark indigo backgrounds */\n variant?: \"default\" | \"accent\" | \"inverse\";\n children: React.ReactNode;\n}\n\nexport function Caption({\n variant = \"default\",\n className = \"\",\n children,\n ...props\n}: CaptionProps) {\n const { themed, typography } = UI_THEME;\n\n const variantClasses = {\n default: themed.textMuted,\n accent: \"text-primary font-semibold\",\n inverse: \"text-primary/40\",\n };\n\n return (\n <span\n className={`${typography.xs} ${variantClasses[variant]} ${className}`}\n {...props}\n >\n {children}\n </span>\n );\n}\n\n// ─── Span ─────────────────────────────────────────────────────────────────────\n/**\n * Inline wrapper for styled text fragments. Use instead of a raw `<span>`.\n * When `variant` is \"inherit\" (default) the element carries no colour classes\n * so it blends with its parent — perfect for purely structural/CSS wrappers.\n *\n * @example\n * ```tsx\n * <Span className=\"bg-gradient-to-r from-indigo-500 to-purple-500 bg-clip-text text-transparent\">\n * Highlighted\n * </Span>\n *\n * <Span variant=\"error\" weight=\"semibold\">Required</Span>\n * ```\n */\ninterface SpanProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Colour variant. \"inherit\" (default) applies no colour class. */\n variant?:\n | \"inherit\"\n | \"primary\"\n | \"secondary\"\n | \"muted\"\n | \"error\"\n | \"success\"\n | \"accent\";\n size?: \"xs\" | \"sm\" | \"base\" | \"lg\" | \"xl\";\n weight?: \"normal\" | \"medium\" | \"semibold\" | \"bold\";\n children?: React.ReactNode;\n}\n\nexport function Span({\n variant = \"inherit\",\n size,\n weight,\n className = \"\",\n children,\n ...props\n}: SpanProps) {\n const { themed, typography } = UI_THEME;\n\n const variantClasses: Record<NonNullable<SpanProps[\"variant\"]>, string> = {\n inherit: \"\",\n primary: themed.textPrimary,\n secondary: themed.textSecondary,\n muted: themed.textMuted,\n error: themed.textError,\n success: themed.textSuccess,\n accent: \"text-primary\",\n };\n\n const sizeClasses: Record<NonNullable<SpanProps[\"size\"]>, string> = {\n xs: typography.xs,\n sm: typography.small,\n base: typography.body,\n lg: \"text-lg\",\n xl: \"text-xl\",\n };\n\n const weightClasses: Record<NonNullable<SpanProps[\"weight\"]>, string> = {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n };\n\n const classes = [\n size ? sizeClasses[size] : \"\",\n weight ? weightClasses[weight] : \"\",\n variantClasses[variant],\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <span className={classes} {...props}>\n {children}\n </span>\n );\n}\n","/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n","/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n","import { CamelToPascal } from '../utility-types';\nimport { toCamelCase } from './toCamelCase';\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n\n return false;\n};\n","'use client';\n\nimport { createContext, createElement, type ReactNode, useContext, useMemo } from 'react';\nimport { LucideProps } from './types';\n\ntype LucideConfig = {\n size: number;\n color: string;\n strokeWidth: number;\n absoluteStrokeWidth: boolean;\n className: string;\n};\n\nconst LucideContext = createContext<LucideProps>({});\n\ntype LucideProviderProps = {\n children: ReactNode;\n} & Partial<LucideConfig>;\n\nexport function LucideProvider({\n children,\n size,\n color,\n strokeWidth,\n absoluteStrokeWidth,\n className,\n}: LucideProviderProps) {\n const value = useMemo(\n () => ({\n size,\n color,\n strokeWidth,\n absoluteStrokeWidth,\n className,\n }),\n [size, color, strokeWidth, absoluteStrokeWidth, className],\n );\n\n return createElement(LucideContext.Provider, { value }, children);\n}\n\nexport const useLucideContext = () => useContext(LucideContext);\n","'use client';\n\nimport { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\nimport { useLucideContext } from './context';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n { color, size, strokeWidth, absoluteStrokeWidth, className = '', children, iconNode, ...rest },\n ref,\n ) => {\n const {\n size: contextSize = 24,\n strokeWidth: contextStrokeWidth = 2,\n absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,\n color: contextColor = 'currentColor',\n className: contextClass = '',\n } = useLucideContext() ?? {};\n\n const calculatedStrokeWidth =\n absoluteStrokeWidth ?? contextAbsoluteStrokeWidth\n ? (Number(strokeWidth ?? contextStrokeWidth) * 24) / Number(size ?? contextSize)\n : strokeWidth ?? contextStrokeWidth;\n\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size ?? contextSize ?? defaultAttributes.width,\n height: size ?? contextSize ?? defaultAttributes.height,\n stroke: color ?? contextColor,\n strokeWidth: calculatedStrokeWidth,\n className: mergeClasses('lucide', contextClass, className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]];\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronUp = createLucideIcon('chevron-up', __iconNode);\n\nexport default ChevronUp;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }]];\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('loader-circle', __iconNode);\n\nexport default LoaderCircle;\n","import React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Loader2 } from \"lucide-react\";\n\n/**\n * Button — versatile button with multiple variants, sizes, and loading state.\n *\n * Extracted from src/components/ui/Button.tsx for @mohasinac/ui.\n * Theme values inlined from THEME_CONSTANTS.button and THEME_CONSTANTS.colors.button.\n */\n\n// Inlined from THEME_CONSTANTS\nconst UI_BUTTON = {\n base: \"inline-flex items-center justify-center font-medium rounded-xl transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed\",\n active: \"active:scale-95\",\n variants: {\n primary:\n \"bg-primary-600 text-white hover:bg-primary-700 active:bg-primary-800 shadow-sm focus:ring-primary-500/30 dark:bg-secondary-500 dark:text-white dark:hover:bg-secondary-400 dark:active:bg-secondary-600 dark:focus:ring-secondary-400/30\",\n secondary:\n \"bg-primary-700 text-white hover:bg-primary-600 active:bg-primary-800 shadow-md focus:ring-primary-500 dark:bg-secondary-700 dark:text-white dark:hover:bg-secondary-600 dark:active:bg-secondary-800 dark:focus:ring-secondary-500\",\n outline:\n \"border border-zinc-200 dark:border-slate-700 bg-white dark:bg-transparent text-zinc-900 dark:text-zinc-100 hover:bg-zinc-50 dark:hover:bg-slate-800 focus:ring-zinc-400\",\n ghost:\n \"text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-800 focus:ring-zinc-400\",\n danger:\n \"bg-red-600 text-white hover:bg-red-500 active:bg-red-700 shadow-sm shadow-red-600/10 focus:ring-red-500\",\n warning:\n \"bg-amber-500 text-white hover:bg-amber-400 active:bg-amber-600 shadow-sm shadow-amber-500/10 focus:ring-amber-500\",\n },\n sizes: {\n sm: \"px-2.5 py-1.5 text-xs sm:px-3 sm:text-sm gap-1.5 min-h-[36px]\",\n md: \"px-3 py-2 text-sm sm:px-4 sm:py-2.5 sm:text-base gap-2 min-h-[44px]\",\n lg: \"px-4 py-2.5 text-base sm:px-6 sm:py-3 sm:text-lg gap-2.5 min-h-[44px]\",\n },\n} as const;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: keyof typeof UI_BUTTON.variants;\n size?: keyof typeof UI_BUTTON.sizes;\n isLoading?: boolean;\n children?: React.ReactNode;\n}\n\nexport function Button({\n variant = \"primary\",\n size = \"md\",\n className = \"\",\n isLoading = false,\n disabled,\n children,\n ...props\n}: ButtonProps) {\n return (\n <button\n className={twMerge(\n UI_BUTTON.base,\n UI_BUTTON.active,\n UI_BUTTON.variants[variant],\n UI_BUTTON.sizes[size],\n className,\n )}\n disabled={disabled || isLoading}\n aria-busy={isLoading || undefined}\n {...props}\n >\n {isLoading && (\n <Loader2\n className=\"w-4 h-4 animate-spin flex-shrink-0\"\n aria-hidden=\"true\"\n />\n )}\n {isLoading ? <span className=\"opacity-70\">{children}</span> : children}\n </button>\n );\n}\n","\"use client\";\r\n\r\nimport React, { createContext, useContext, useMemo, useState } from \"react\";\r\nimport { Button } from \"./Button\";\r\nimport { Div } from \"./Div\";\r\nimport { Span } from \"./Typography\";\r\n\r\ninterface AccordionContextValue {\r\n type: \"single\" | \"multiple\";\r\n openValues: string[];\r\n toggle: (value: string) => void;\r\n}\r\n\r\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\r\n\r\nexport interface AccordionProps {\r\n /** Legacy simple mode: renders a native details/summary accordion */\r\n title?: React.ReactNode;\r\n /** Legacy simple mode open state */\r\n open?: boolean;\r\n /** Legacy simple mode title styling */\r\n titleClassName?: string;\r\n /** Legacy simple mode content styling */\r\n contentClassName?: string;\r\n\r\n /** Controlled/list mode: single or multiple expanded items */\r\n type?: \"single\" | \"multiple\";\r\n defaultValue?: string | string[];\r\n value?: string | string[];\r\n onChange?: (value: string | string[]) => void;\r\n\r\n className?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport interface AccordionItemProps {\r\n value: string;\r\n title: React.ReactNode;\r\n disabled?: boolean;\r\n className?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nfunction toArray(value?: string | string[]): string[] {\r\n if (!value) return [];\r\n return Array.isArray(value) ? value : [value];\r\n}\r\n\r\nfunction renderLegacyAccordion({\r\n title,\r\n children,\r\n open,\r\n className = \"\",\r\n titleClassName = \"\",\r\n contentClassName = \"\",\r\n}: {\r\n title: React.ReactNode;\r\n children?: React.ReactNode;\r\n open: boolean;\r\n className?: string;\r\n titleClassName?: string;\r\n contentClassName?: string;\r\n}) {\r\n return (\r\n <details\r\n open={open}\r\n className={`group border-b border-zinc-200 dark:border-zinc-700 ${className}`}\r\n >\r\n <summary\r\n className={`flex cursor-pointer select-none list-none items-center justify-between py-3 text-sm font-medium text-zinc-900 dark:text-zinc-100 ${titleClassName}`}\r\n >\r\n {title}\r\n <span\r\n className=\"ml-2 flex-shrink-0 text-zinc-400 transition-transform duration-200 group-open:rotate-180\"\r\n aria-hidden=\"true\"\r\n >\r\n ▾\r\n </span>\r\n </summary>\r\n <div\r\n className={`pb-4 text-sm text-zinc-600 dark:text-zinc-400 ${contentClassName}`}\r\n >\r\n {children}\r\n </div>\r\n </details>\r\n );\r\n}\r\n\r\nexport function Accordion({\r\n title,\r\n children,\r\n open = false,\r\n className = \"\",\r\n titleClassName = \"\",\r\n contentClassName = \"\",\r\n type = \"single\",\r\n defaultValue,\r\n value,\r\n onChange,\r\n}: AccordionProps) {\r\n // Backward-compatible simple details mode.\r\n if (title !== undefined) {\r\n return renderLegacyAccordion({\r\n title,\r\n children,\r\n open,\r\n className,\r\n titleClassName,\r\n contentClassName,\r\n });\r\n }\r\n\r\n const initialOpen = useMemo(() => {\r\n if (value !== undefined) return toArray(value);\r\n return toArray(defaultValue);\r\n }, [defaultValue, value]);\r\n\r\n const [internalOpenValues, setInternalOpenValues] =\r\n useState<string[]>(initialOpen);\r\n\r\n const activeOpenValues =\r\n value !== undefined ? toArray(value) : internalOpenValues;\r\n\r\n const toggle = (itemValue: string) => {\r\n const nextOpenValues =\r\n type === \"single\"\r\n ? activeOpenValues.includes(itemValue)\r\n ? []\r\n : [itemValue]\r\n : activeOpenValues.includes(itemValue)\r\n ? activeOpenValues.filter((v) => v !== itemValue)\r\n : [...activeOpenValues, itemValue];\r\n\r\n if (value === undefined) {\r\n setInternalOpenValues(nextOpenValues);\r\n }\r\n\r\n onChange?.(type === \"single\" ? (nextOpenValues[0] ?? \"\") : nextOpenValues);\r\n };\r\n\r\n return (\r\n <AccordionContext.Provider\r\n value={{ type, openValues: activeOpenValues, toggle }}\r\n >\r\n <Div className={className}>{children}</Div>\r\n </AccordionContext.Provider>\r\n );\r\n}\r\n\r\nexport function AccordionItem({\r\n value,\r\n title,\r\n disabled = false,\r\n className = \"\",\r\n children,\r\n}: AccordionItemProps) {\r\n const ctx = useContext(AccordionContext);\r\n if (!ctx) {\r\n throw new Error(\"AccordionItem must be used within Accordion.\");\r\n }\r\n\r\n const isOpen = ctx.openValues.includes(value);\r\n\r\n return (\r\n <Div\r\n className={`border-b border-gray-200 dark:border-gray-700 ${className}`}\r\n >\r\n <Button\r\n type=\"button\"\r\n disabled={disabled}\r\n aria-expanded={isOpen}\r\n onClick={() => ctx.toggle(value)}\r\n className=\"w-full flex items-center justify-between py-3 px-1 text-left text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed\"\r\n >\r\n <Span>{title}</Span>\r\n <Span\r\n className={`transition-transform duration-200 ${isOpen ? \"rotate-180\" : \"\"}`}\r\n >\r\n ▾\r\n </Span>\r\n </Button>\r\n {isOpen && (\r\n <Div className=\"pb-3 px-1 text-sm text-gray-600 dark:text-gray-400\">\r\n {children}\r\n </Div>\r\n )}\r\n </Div>\r\n );\r\n}\r\n","\"use client\";\n\nimport React, { useCallback, useEffect, useId, useRef, useState } from \"react\";\nimport { Check, ChevronDown } from \"lucide-react\";\nimport { Label, Span, Text } from \"./Typography\";\nimport { Ul, Li } from \"./Semantic\";\nimport { Button } from \"./Button\";\n\n/**\n * Select — accessible combobox with label, error state, and disabled support.\n *\n * Standalone @mohasinac/ui primitive. No app-specific imports.\n */\n\nexport interface SelectOption<V = string> {\n label: string;\n value: V;\n disabled?: boolean;\n}\n\nexport interface SelectProps<V extends string = string> {\n options: SelectOption<V>[];\n value?: V;\n onChange?: (value: V) => void;\n placeholder?: string;\n label?: string;\n error?: string;\n disabled?: boolean;\n required?: boolean;\n className?: string;\n id?: string;\n}\n\nexport function Select<V extends string = string>({\n options,\n value,\n onChange,\n placeholder = \"Select…\",\n label,\n error,\n disabled = false,\n required,\n className = \"\",\n id: externalId,\n}: SelectProps<V>) {\n const generatedId = useId();\n const id = externalId ?? generatedId;\n const [open, setOpen] = useState(false);\n const [openUp, setOpenUp] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n const selected = options.find((o) => o.value === value);\n\n const toggle = useCallback(() => {\n if (!disabled) {\n if (!open && ref.current) {\n const rect = ref.current.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n setOpenUp(spaceBelow < 160 && spaceAbove > spaceBelow);\n }\n setOpen((v) => !v);\n }\n }, [disabled, open]);\n\n const handleSelect = useCallback(\n (val: V) => {\n onChange?.(val);\n setOpen(false);\n },\n [onChange],\n );\n\n // Close on outside click\n useEffect(() => {\n const handler = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n if (open) document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, [open]);\n\n // Keyboard navigation\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n setOpen(false);\n return;\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n toggle();\n e.preventDefault();\n return;\n }\n if (e.key === \"ArrowDown\" && !open) {\n setOpen(true);\n e.preventDefault();\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const idx = options.findIndex((o) => o.value === value);\n const next = options\n .slice(idx < 0 ? 0 : idx + 1)\n .find((o) => !o.disabled);\n if (next) onChange?.(next.value);\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const idx = options.findIndex((o) => o.value === value);\n if (idx < 0) return;\n const prev = [...options]\n .slice(0, idx)\n .reverse()\n .find((o) => !o.disabled);\n if (prev) onChange?.(prev.value);\n }\n },\n [open, options, value, onChange, toggle],\n );\n\n const triggerClass = [\n \"flex h-10 w-full items-center justify-between rounded-lg border px-3 py-2 text-sm\",\n \"transition-colors bg-white dark:bg-slate-800/60\",\n \"focus:outline-none focus:ring-2 focus:ring-offset-0\",\n error\n ? \"border-red-400 dark:border-red-500 focus:ring-red-500/20\"\n : \"border-zinc-200 dark:border-slate-700 focus:ring-primary-500/20 dark:focus:ring-secondary-400/20 focus:border-primary-500 dark:focus:border-secondary-400\",\n disabled ? \"opacity-50 cursor-not-allowed\" : \"cursor-pointer\",\n className,\n ].join(\" \");\n\n return (\n <div ref={ref} className=\"relative w-full\">\n {label && (\n <Label\n htmlFor={id}\n className=\"!text-zinc-700 dark:!text-zinc-300\"\n required={required}\n >\n {label}\n </Label>\n )}\n\n <Button\n id={id}\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-disabled={disabled}\n disabled={disabled}\n variant=\"ghost\"\n className={triggerClass}\n onClick={toggle}\n onKeyDown={handleKeyDown}\n >\n <Span\n className={\n selected\n ? \"text-zinc-900 dark:text-zinc-50\"\n : \"text-zinc-400 dark:text-zinc-500\"\n }\n >\n {selected?.label ?? placeholder}\n </Span>\n <ChevronDown\n className={`h-4 w-4 flex-shrink-0 text-zinc-400 transition-transform duration-200 ${open ? \"rotate-180\" : \"\"}`}\n aria-hidden=\"true\"\n />\n </Button>\n\n {open && (\n <Ul\n role=\"listbox\"\n className={[\n \"absolute z-50 w-full overflow-auto rounded-lg border border-zinc-200 dark:border-slate-700 bg-white dark:bg-slate-800 shadow-lg max-h-60 py-1\",\n openUp ? \"bottom-full mb-1\" : \"top-full mt-1\",\n ].join(\" \")}\n >\n {options.map((option) => {\n const isSelected = option.value === value;\n return (\n <Li\n key={option.value}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n className={[\n \"relative flex cursor-pointer items-center px-3 py-2 text-sm select-none\",\n option.disabled\n ? \"opacity-40 cursor-not-allowed\"\n : isSelected\n ? \"bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-300\"\n : \"text-zinc-700 dark:text-zinc-300 hover:bg-zinc-50 dark:hover:bg-slate-700\",\n ].join(\" \")}\n onClick={() => !option.disabled && handleSelect(option.value)}\n >\n <Span className=\"flex-1\">{option.label}</Span>\n {isSelected && (\n <Check\n className=\"h-4 w-4 ml-2 flex-shrink-0\"\n aria-hidden=\"true\"\n />\n )}\n </Li>\n );\n })}\n </Ul>\n )}\n\n {error && (\n <Text size=\"xs\" variant=\"error\" className=\"mt-1.5\" role=\"alert\">\n {error}\n </Text>\n )}\n </div>\n );\n}\n","import React from \"react\";\n\n/**\n * Layout Primitives — Container, Stack, Row, Grid\n *\n * Thin component wrappers that turn semantic prop names into the correct\n * Tailwind class strings from the app's THEME_CONSTANTS token map.\n * Eliminates repeated inline class strings like \"grid grid-cols-1 sm:grid-cols-2\n * lg:grid-cols-3 gap-4\" and \"flex flex-row items-center justify-between gap-2\".\n *\n * Token maps are inlined here (like UI_THEME in Typography.tsx) so the package\n * stays independent of the host app's @/constants import path.\n *\n * @example\n * ```tsx\n * // Before\n * <div className=\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\">\n * <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">\n * <div className=\"flex flex-row items-center justify-between gap-2\">\n * <div className=\"flex flex-col gap-4\">\n *\n * // After\n * <Container>\n * <Grid cols={3} gap=\"md\">\n * <Row justify=\"between\" gap=\"sm\">\n * <Stack gap=\"md\">\n * ```\n */\n\n// ─── Token maps ──────────────────────────────────────────────────────────────\n\n/**\n * Gap tokens — maps to `gap-*` Tailwind classes.\n * Mirrors THEME_CONSTANTS.spacing.gap in the host app.\n */\nconst GAP_MAP = {\n none: \"\",\n px: \"gap-px\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n \"2.5\": \"gap-2.5\",\n \"3\": \"gap-3\",\n md: \"gap-4\",\n \"5\": \"gap-5\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const;\n\nexport type GapKey = keyof typeof GAP_MAP;\n\n/**\n * Page container sizes.\n * Mirrors THEME_CONSTANTS.page.container in the host app.\n */\nconst CONTAINER_MAP = {\n /** `max-w-3xl` — blog posts, legal / policy pages */\n sm: \"max-w-3xl mx-auto px-4 sm:px-6 lg:px-8\",\n /** `max-w-4xl` — narrow content, contact, about */\n md: \"max-w-4xl mx-auto px-4 sm:px-6 lg:px-8\",\n /** `max-w-5xl` — medium content, checkout, help */\n lg: \"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8\",\n /** `max-w-6xl` — product detail, cart */\n xl: \"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8\",\n /** `max-w-7xl` — main content grids (default) */\n \"2xl\": \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n /** `max-w-screen-2xl` — full-bleed wide content */\n full: \"max-w-screen-2xl mx-auto px-4 sm:px-6 lg:px-8\",\n /** `max-w-screen-2xl` — wide store/seller layouts (compact px) */\n wide: \"max-w-screen-2xl mx-auto px-4 sm:px-6\",\n /** `max-w-[1920px]` — ultra-wide / 4K displays */\n ultra: \"max-w-[1920px] mx-auto px-4 sm:px-6 lg:px-8\",\n} as const;\n\nexport type ContainerSize = keyof typeof CONTAINER_MAP;\n\nexport type ContainerSizeValue = (typeof CONTAINER_MAP)[ContainerSize];\n\n/**\n * Responsive grid column presets.\n * Mirrors THEME_CONSTANTS.grid in the host app.\n */\nexport const GRID_MAP = {\n /** Single column */\n 1: \"grid grid-cols-1\",\n /** 1 → 2 */\n 2: \"grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-2 2xl:grid-cols-2\",\n /** 1 → 2 → 3 → 4 on widescreen */\n 3: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3 2xl:grid-cols-4\",\n /** 1 → 2 → 3 → 4 → 5 on widescreen */\n 4: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5\",\n /** 1 → 2 → 3 → 4 → 5 */\n 5: \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-4 2xl:grid-cols-5\",\n /** 2 → 3 → 4 → 5 → 6 */\n 6: \"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6\",\n /**\n * Generic card grid — 1 col on portrait mobile → 5 on ultrawide.\n * Starts at 1 so product cards are readable even on 320 px handsets.\n */\n cards:\n \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-4 2xl:grid-cols-5\",\n /** Auto-fill product cards — min 200 px */\n productCards: \"grid grid-cols-[repeat(auto-fill,minmax(200px,1fr))] gap-6\",\n /** Auto-fill product cards (compact) — min 220 px */\n productCardsCompact:\n \"grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-4\",\n /** Auto-fill store cards — min 220 px */\n storeCards: \"grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-6\",\n /** Auto-fill category tiles — min 130 px */\n categoryCards: \"grid grid-cols-[repeat(auto-fill,minmax(130px,1fr))] gap-4\",\n /** Auto-fill coupon/promo cards — min 264 px */\n couponCards: \"grid grid-cols-[repeat(auto-fill,minmax(264px,1fr))] gap-6\",\n /** Auto-fill address / wide cards — min 300 px */\n addressCards: \"grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-4\",\n /** Auto-fill KPI/stat tiles — min 180 px */\n statTiles: \"grid grid-cols-[repeat(auto-fill,minmax(180px,1fr))] gap-4\",\n /** Auto-fill account nav tiles — min 160 px */\n navTiles: \"grid grid-cols-[repeat(auto-fill,minmax(160px,1fr))] gap-4\",\n /** Equal halves on md+ */\n halves: \"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-2 2xl:grid-cols-2\",\n /** 2fr / 1fr split on md+ */\n twoThird: \"grid grid-cols-1 md:grid-cols-[2fr_1fr]\",\n /** 1fr / 2fr split on md+ */\n oneThird: \"grid grid-cols-1 md:grid-cols-[1fr_2fr]\",\n /** Fixed 280px left sidebar + 1fr on lg+ */\n sidebar: \"grid grid-cols-1 lg:grid-cols-[280px_1fr]\",\n /** 1fr + fixed 280px right sidebar on lg+ */\n sidebarRight: \"grid grid-cols-1 lg:grid-cols-[1fr_280px]\",\n /** Fixed 320px left sidebar + 1fr on lg+ (admin layout) */\n sidebarWide: \"grid grid-cols-1 lg:grid-cols-[320px_1fr]\",\n /** Product detail triplet: gallery | info | actions sidebar */\n productDetailTriplet:\n \"grid grid-cols-1 lg:grid-cols-[1fr_1fr_280px] xl:grid-cols-[1fr_1fr_300px] 2xl:grid-cols-[1fr_1fr_320px] gap-6 lg:gap-8\",\n /** CSS auto-fill, min 200px columns */\n autoSm: \"grid grid-cols-[repeat(auto-fill,minmax(200px,1fr))]\",\n /** CSS auto-fill, min 280px columns */\n autoMd: \"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))]\",\n /** CSS auto-fill, min 360px columns */\n autoLg: \"grid grid-cols-[repeat(auto-fill,minmax(360px,1fr))]\",\n} as const;\n\nexport type GridCols = keyof typeof GRID_MAP;\n\n// Alignment helpers shared across Stack and Row\nconst ITEMS_MAP = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n baseline: \"items-baseline\",\n} as const;\n\ntype ItemsAlign = keyof typeof ITEMS_MAP;\n\nconst JUSTIFY_MAP = {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n evenly: \"justify-evenly\",\n} as const;\n\ntype JustifyContent = keyof typeof JUSTIFY_MAP;\n\n// ─── Container ────────────────────────────────────────────────────────────────\n\n/**\n * Page-level container with max-width + centering + responsive horizontal padding.\n * Replaces repeated `max-w-7xl mx-auto px-4 sm:px-6 lg:px-8` strings.\n *\n * @example\n * ```tsx\n * <Container>...</Container> // max-w-7xl (default)\n * <Container size=\"lg\">...</Container> // max-w-5xl\n * <Container size=\"full\" as=\"main\">...</Container>\n * ```\n */\nexport interface ContainerProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * Max-width breakpoint preset.\n * - `sm` → `max-w-3xl` (blog / policy)\n * - `md` → `max-w-4xl` (contact / about)\n * - `lg` → `max-w-5xl` (checkout / help)\n * - `xl` → `max-w-6xl` (product detail / cart)\n * - `2xl` → `max-w-7xl` (main content grids — **default**)\n * - `full` → `max-w-screen-2xl` (full-bleed)\n * - `wide` → `max-w-screen-2xl` (compact px, no lg step)\n * - `ultra` → `max-w-[1920px]` (ultra-wide / 4K displays)\n */\n size?: ContainerSize;\n /** Render as a different element (e.g. `\"main\"`, `\"section\"`). Defaults to `\"div\"`. */\n as?: React.ElementType;\n children?: React.ReactNode;\n}\n\nexport function Container({\n size = \"2xl\",\n as,\n className = \"\",\n children,\n ...props\n}: ContainerProps) {\n const Tag = (as ?? \"div\") as React.ElementType;\n return (\n <Tag\n className={[CONTAINER_MAP[size], className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </Tag>\n );\n}\n\n// ─── Stack ────────────────────────────────────────────────────────────────────\n\n/**\n * Vertical flex column. Use instead of `<div className=\"flex flex-col gap-4\">`.\n *\n * @example\n * ```tsx\n * <Stack gap=\"sm\">\n * <Text>Line one</Text>\n * <Text>Line two</Text>\n * </Stack>\n *\n * // As a list\n * <Stack as=\"ul\" gap=\"xs\">\n * <Li>Item</Li>\n * </Stack>\n * ```\n */\nexport interface StackProps extends React.HTMLAttributes<HTMLElement> {\n /** Space between children. Defaults to `\"md\"` (`gap-4`). */\n gap?: GapKey;\n /** Centers children on both axes (`items-center justify-center`). */\n centered?: boolean;\n /** Cross-axis (horizontal) alignment. Defaults to `\"stretch\"`. */\n align?: Extract<ItemsAlign, \"start\" | \"center\" | \"end\" | \"stretch\">;\n /** Render as a different element. Defaults to `\"div\"`. */\n as?: React.ElementType;\n children?: React.ReactNode;\n}\n\nexport function Stack({\n gap = \"md\",\n centered = false,\n align = \"stretch\",\n as,\n className = \"\",\n children,\n ...props\n}: StackProps) {\n const Tag = (as ?? \"div\") as React.ElementType;\n const classes = [\n \"flex flex-col\",\n GAP_MAP[gap],\n centered ? \"items-center justify-center\" : \"\",\n !centered && align !== \"stretch\" ? ITEMS_MAP[align] : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n\n// ─── Row ─────────────────────────────────────────────────────────────────────\n\n/**\n * Horizontal flex row. Use instead of `<div className=\"flex items-center gap-3\">`.\n *\n * @example\n * ```tsx\n * <Row gap=\"sm\" justify=\"between\">\n * <Heading level={3}>Title</Heading>\n * <Button>Action</Button>\n * </Row>\n *\n * <Row gap=\"xs\" wrap>\n * <Badge>tag</Badge>\n * <Badge>other</Badge>\n * </Row>\n * ```\n */\nexport interface RowProps extends React.HTMLAttributes<HTMLElement> {\n /** Space between children. Defaults to `\"md\"` (`gap-4`). */\n gap?: GapKey;\n /** Centers children on both axes (`items-center justify-center`). */\n centered?: boolean;\n /** Cross-axis (vertical) alignment. Defaults to `\"center\"`. */\n align?: ItemsAlign;\n /** Main-axis (horizontal) distribution. Defaults to `\"start\"`. */\n justify?: JustifyContent;\n /** Allow children to wrap onto multiple lines. */\n wrap?: boolean;\n /** Render as a different element. Defaults to `\"div\"`. */\n as?: React.ElementType;\n children?: React.ReactNode;\n}\n\nexport function Row({\n gap = \"md\",\n centered = false,\n align = \"center\",\n justify = \"start\",\n wrap = false,\n as,\n className = \"\",\n children,\n ...props\n}: RowProps) {\n const Tag = (as ?? \"div\") as React.ElementType;\n const classes = [\n \"flex flex-row\",\n centered ? \"items-center justify-center\" : ITEMS_MAP[align],\n !centered && justify !== \"start\" ? JUSTIFY_MAP[justify] : \"\",\n GAP_MAP[gap],\n wrap ? \"flex-wrap\" : \"\",\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n\n// ─── Grid ─────────────────────────────────────────────────────────────────────\n\n/**\n * Responsive CSS grid. Use instead of `<div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\">`.\n *\n * @example\n * ```tsx\n * <Grid cols={3} gap=\"md\">\n * <ProductCard />\n * <ProductCard />\n * </Grid>\n *\n * <Grid cols=\"sidebar\" gap=\"lg\">\n * <Aside>Filters</Aside>\n * <Main>Results</Main>\n * </Grid>\n * ```\n */\nexport interface GridProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * Column preset.\n * - Numbers `1`–`6` → mobile-first responsive stacks\n * - `\"halves\"` → equal 2-col on md+\n * - `\"sidebar\"` / `\"sidebarRight\"` / `\"sidebarWide\"` → fixed+flexible splits\n * - `\"twoThird\"` / `\"oneThird\"` → 2fr/1fr splits\n * - `\"autoSm\"` / `\"autoMd\"` / `\"autoLg\"` → CSS auto-fill grids\n * - Omit (or `undefined`) to use a raw `grid` base and supply columns via\n * the `className` prop directly (e.g. `className=\"grid-cols-2\"`). Useful\n * for fixed non-responsive column counts (form field pairs, button rows).\n */\n cols?: GridCols;\n /** Space between grid cells. Defaults to `\"md\"` (`gap-4`). */\n gap?: GapKey;\n /** Render as a different element. Defaults to `\"div\"`. */\n as?: React.ElementType;\n children?: React.ReactNode;\n}\n\nexport function Grid({\n cols,\n gap = \"md\",\n as,\n className = \"\",\n children,\n ...props\n}: GridProps) {\n const Tag = (as ?? \"div\") as React.ElementType;\n // When cols is omitted callers supply grid-cols-* themselves via className.\n const baseClass = cols !== undefined ? GRID_MAP[cols] : \"grid\";\n const classes = [baseClass, GAP_MAP[gap], className]\n .filter(Boolean)\n .join(\" \");\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n","import React from \"react\";\nimport Link from \"next/link\";\nimport { Div, Li, Nav, Span, Ul } from \"@mohasinac/ui\";\n\nexport interface NavbarLayoutItem {\n href: string;\n label: string;\n icon: React.ReactNode;\n highlighted?: boolean;\n}\n\nexport interface NavbarLayoutProps {\n items: NavbarLayoutItem[];\n activeHref: string;\n id?: string;\n ariaLabel?: string;\n /**\n * When true, renders as an inline flex row without an outer Nav wrapper or sticky bg.\n * Used when slotted inside TitleBarLayout for the slim double-nav pattern.\n */\n inline?: boolean;\n /** Render a custom nav item — defaults to an <a> anchor link. */\n renderItem?: (item: NavbarLayoutItem, isActive: boolean) => React.ReactNode;\n}\n\nfunction DefaultNavItem({\n item,\n isActive,\n}: {\n item: NavbarLayoutItem;\n isActive: boolean;\n}) {\n const activeClasses = item.highlighted\n ? \"border border-primary-500/30 dark:border-secondary-400/30 text-primary-600 dark:text-secondary-400 bg-primary-50/60 dark:bg-secondary-900/30 px-3\"\n : isActive\n ? \"bg-zinc-100 dark:bg-slate-800 text-zinc-900 dark:text-zinc-50 font-semibold px-3\"\n : \"text-zinc-600 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-slate-800 hover:text-zinc-900 dark:hover:text-zinc-50 transition-colors px-3\";\n\n return (\n <Link\n href={item.href}\n aria-current={isActive ? \"page\" : undefined}\n className={`flex items-center gap-1.5 py-2 text-sm rounded-lg font-medium transition-colors duration-150 ${activeClasses}`}\n >\n {item.icon}\n <Span>{item.label}</Span>\n </Link>\n );\n}\n\n/**\n * NavbarLayout — generic horizontal navigation bar shell.\n *\n * Zero domain imports. Receives all navigation items and the current\n * active href as props. Hidden on mobile (visible md+).\n */\nexport function NavbarLayout({\n items,\n activeHref,\n id = \"main-navbar\",\n ariaLabel = \"Main navigation\",\n inline = false,\n renderItem,\n}: NavbarLayoutProps) {\n if (inline) {\n return (\n <Ul\n aria-label={ariaLabel}\n className=\"hidden md:flex items-center gap-0.5 lg:gap-1\"\n >\n {items.map((item) => (\n <Li key={item.href}>\n {renderItem ? (\n renderItem(item, activeHref === item.href)\n ) : (\n <DefaultNavItem item={item} isActive={activeHref === item.href} />\n )}\n </Li>\n ))}\n </Ul>\n );\n }\n\n return (\n <Nav\n id={id}\n aria-label={ariaLabel}\n className=\"hidden md:block bg-white/90 dark:bg-slate-950/90 backdrop-blur-md border-b border-zinc-200/80 dark:border-slate-800/80\"\n >\n <Div className=\"container mx-auto px-4 sm:px-6 lg:px-8 max-w-[1920px]\">\n <Ul className=\"flex items-center gap-0.5 lg:gap-1 h-10 md:h-12\">\n {items.map((item) => (\n <Li key={item.href}>\n {renderItem ? (\n renderItem(item, activeHref === item.href)\n ) : (\n <DefaultNavItem\n item={item}\n isActive={activeHref === item.href}\n />\n )}\n </Li>\n ))}\n </Ul>\n </Div>\n </Nav>\n );\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport React, { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport {\n BlockFooter,\n Button,\n Div,\n Heading,\n Li,\n Row,\n Span,\n Text,\n Ul,\n} from \"@mohasinac/ui\";\n\nexport interface FooterLinkGroup {\n heading: string;\n links: { label: string; href: string }[];\n}\n\nexport interface FooterSocialLink {\n platform: string;\n href: string;\n icon: React.ReactNode;\n ariaLabel: string;\n}\n\nexport interface TrustBarItem {\n id: string;\n icon: React.ReactNode;\n title: string;\n subtitle: string;\n visible?: boolean;\n}\n\nexport interface FooterLayoutProps {\n brandName: string;\n brandDescription: string;\n socialLinks: FooterSocialLink[];\n linkGroups: FooterLinkGroup[];\n copyrightText: string;\n madeInText?: string;\n /** Optional newsletter subscription slot. */\n newsletterSlot?: React.ReactNode;\n newsletterEnabled?: boolean;\n /** When true, renders the trust bar above the main footer content. */\n showTrustBar?: boolean;\n trustBarItems?: TrustBarItem[];\n id?: string;\n}\n\nexport function FooterLayout({\n brandName,\n brandDescription,\n socialLinks,\n linkGroups,\n copyrightText,\n madeInText,\n newsletterSlot,\n newsletterEnabled = true,\n showTrustBar = false,\n trustBarItems = [],\n id = \"footer\",\n}: FooterLayoutProps) {\n const [openGroups, setOpenGroups] = useState<Record<number, boolean>>({});\n const toggleGroup = (idx: number) =>\n setOpenGroups((prev) => ({ ...prev, [idx]: !prev[idx] }));\n\n const visibleTrustItems = trustBarItems.filter(\n (item) => item.visible !== false,\n );\n\n return (\n <BlockFooter\n id={id}\n className=\"bg-zinc-50 dark:bg-slate-900 border-t border-zinc-200 dark:border-slate-800\"\n >\n {/* Trust bar */}\n {showTrustBar && visibleTrustItems.length > 0 && (\n <Div className=\"border-b border-zinc-200 dark:border-slate-800 py-6\">\n <Div className=\"container mx-auto px-4 sm:px-6 lg:px-8 max-w-[1920px]\">\n <Row as=\"ul\" wrap justify=\"center\" gap=\"lg\" className=\"lg:gap-10\">\n {visibleTrustItems.map((item) => (\n <Li\n key={item.id}\n className=\"flex items-center gap-3 text-sm min-w-[160px]\"\n >\n <Span className=\"flex-shrink-0 text-primary-600 dark:text-secondary-400\">\n {item.icon}\n </Span>\n <Span>\n <Span className=\"font-semibold text-zinc-900 dark:text-zinc-100\">\n {item.title}\n </Span>\n <Span className=\"text-zinc-500 dark:text-zinc-400 text-xs\">\n {item.subtitle}\n </Span>\n </Span>\n </Li>\n ))}\n </Row>\n </Div>\n </Div>\n )}\n\n <Div className=\"container mx-auto px-4 sm:px-6 lg:px-8 max-w-[1920px] py-10 lg:py-14\">\n <Div className=\"grid grid-cols-1 lg:grid-cols-5 gap-10 lg:gap-16\">\n {/* Brand column */}\n <Div className=\"lg:col-span-2 space-y-4\">\n <Heading level={5} className=\"text-zinc-900 dark:text-zinc-100\">\n {brandName}\n </Heading>\n <Text className=\"text-sm text-zinc-600 dark:text-zinc-400 leading-relaxed max-w-sm\">\n {brandDescription}\n </Text>\n\n {/* Social links */}\n {socialLinks.length > 0 && (\n <Ul className=\"flex items-center gap-3\">\n {socialLinks.map((link) => (\n <Li key={link.platform}>\n <Link\n href={link.href}\n aria-label={link.ariaLabel}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center justify-center w-9 h-9 rounded-full border border-zinc-200 dark:border-slate-700 text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 hover:border-zinc-300 dark:hover:border-slate-600 transition-colors\"\n >\n {link.icon}\n </Link>\n </Li>\n ))}\n </Ul>\n )}\n\n {/* Newsletter slot */}\n {newsletterEnabled && newsletterSlot && (\n <Div className=\"pt-2\">{newsletterSlot}</Div>\n )}\n </Div>\n\n {/* Link groups — desktop: columns, mobile: accordions */}\n <Div className=\"lg:col-span-3 grid grid-cols-1 sm:grid-cols-3 gap-0 sm:gap-8\">\n {linkGroups.map((group, idx) => (\n <Div key={idx}>\n {/* Mobile accordion header */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => toggleGroup(idx)}\n className=\"sm:hidden flex items-center justify-between w-full py-3 border-b border-zinc-200 dark:border-slate-800 text-sm font-semibold text-zinc-900 dark:text-zinc-100\"\n >\n {group.heading}\n <ChevronDown\n className={`w-4 h-4 transition-transform duration-200 ${openGroups[idx] ? \"rotate-180\" : \"\"}`}\n />\n </Button>\n\n {/* Mobile content */}\n <Ul\n className={`sm:hidden overflow-hidden transition-all duration-200 ${openGroups[idx] ? \"max-h-96 py-3\" : \"max-h-0\"} space-y-2.5`}\n >\n {group.links.map((link) => (\n <Li key={link.href}>\n <Link\n href={link.href}\n className=\"text-sm text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors\"\n >\n {link.label}\n </Link>\n </Li>\n ))}\n </Ul>\n\n {/* Desktop column */}\n <Div className=\"hidden sm:block\">\n <Text className=\"text-xs font-semibold uppercase tracking-wider text-zinc-500 dark:text-zinc-400 mb-3\">\n {group.heading}\n </Text>\n <Ul className=\"space-y-2.5\">\n {group.links.map((link) => (\n <Li key={link.href}>\n <Link\n href={link.href}\n className=\"text-sm text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors\"\n >\n {link.label}\n </Link>\n </Li>\n ))}\n </Ul>\n </Div>\n </Div>\n ))}\n </Div>\n </Div>\n\n {/* Bottom bar */}\n <Div className=\"mt-10 pt-6 border-t border-zinc-200 dark:border-slate-800 flex flex-col sm:flex-row items-center justify-between gap-3 text-xs text-zinc-600 dark:text-zinc-400\">\n <Text className=\"text-xs text-zinc-600 dark:text-zinc-400\">\n {copyrightText}\n </Text>\n {madeInText && (\n <Text className=\"text-xs text-zinc-600 dark:text-zinc-400\">\n {madeInText}\n </Text>\n )}\n </Div>\n </Div>\n </BlockFooter>\n );\n}\n","\"use client\";\n\nimport React, { forwardRef } from \"react\";\nimport { Aside, Div } from \"@mohasinac/ui\";\n\nexport interface SidebarLayoutProps {\n isOpen: boolean;\n ariaLabel: string;\n onClose: () => void;\n /** Content pinned inside a fixed (non-scrolling) header strip */\n header: React.ReactNode;\n /** Scrollable body content */\n children: React.ReactNode;\n id?: string;\n}\n\n/**\n * SidebarLayout — generic slide-out sidebar shell.\n *\n * Renders:\n * - Backdrop overlay when open (closes on click)\n * - Aside container with transform animation (right-side slide)\n * - Fixed header slot (no-scroll, pinned at top)\n * - Scrollable body slot (fills remaining height)\n *\n * Uses `forwardRef` so the parent can attach a swipe-detection ref\n * to the rendered `aside` element.\n */\nexport const SidebarLayout = forwardRef<HTMLElement, SidebarLayoutProps>(\n function SidebarLayout(\n { isOpen, ariaLabel, onClose, header, children, id = \"secondary-sidebar\" },\n ref,\n ) {\n return (\n <>\n {/* Backdrop overlay */}\n {isOpen && (\n <Div\n className=\"fixed inset-0 bg-black/40 backdrop-blur-[2px] z-[45] transition-opacity duration-300\"\n onClick={onClose}\n aria-hidden=\"true\"\n />\n )}\n\n <Aside\n ref={ref as React.RefObject<HTMLElement>}\n id={id}\n aria-label={ariaLabel}\n className={`\n fixed inset-y-0 right-0\n w-80\n bg-white dark:bg-slate-900 border-l border-zinc-200 dark:border-slate-800\n shadow-2xl\n transform duration-300 ease-in-out\n z-50\n ${isOpen ? \"translate-x-0\" : \"translate-x-full\"}\n flex flex-col\n `}\n >\n {/* Fixed (non-scrolling) header strip */}\n <Div className=\"flex-shrink-0 px-6 py-5 border-b border-zinc-200 dark:border-slate-800 bg-zinc-50 dark:bg-slate-900/80\">\n {header}\n </Div>\n\n {/* Scrollable body */}\n <Div className=\"flex-1 overflow-y-auto scrollbar-thin px-6 py-4\">\n {children}\n </Div>\n </Aside>\n </>\n );\n },\n);\n\nSidebarLayout.displayName = \"SidebarLayout\";\n","\"use client\";\n\nimport React from \"react\";\nimport { Nav, Ul } from \"@mohasinac/ui\";\n\nexport interface BottomNavLayoutProps {\n ariaLabel: string;\n children: React.ReactNode;\n id?: string;\n className?: string;\n}\n\n/**\n * BottomNavLayout — generic fixed-bottom navigation shell.\n *\n * Provides the `nav + ul` container with correct z-index, background, height,\n * and safe-area inset. Pass `li`-wrapped items as children.\n */\nexport function BottomNavLayout({\n ariaLabel,\n children,\n id = \"bottom-navbar\",\n className,\n}: BottomNavLayoutProps) {\n return (\n <Nav\n id={id}\n aria-label={ariaLabel}\n className={`fixed bottom-0 left-0 right-0 md:hidden z-40 bg-white/90 dark:bg-slate-950/90 backdrop-blur-md border-t border-zinc-200/80 dark:border-slate-800/80 shadow-2xl pb-safe${className ? ` ${className}` : \"\"}`}\n >\n <Ul className=\"flex items-stretch h-14\">{children}</Ul>\n </Nav>\n );\n}\n","\"use client\";\r\n\r\nimport { Li, Span } from \"@mohasinac/ui\";\r\n\r\nexport interface BottomNavItemProps {\r\n href: string;\r\n label: string;\r\n icon: React.ReactNode;\r\n badge?: number | null;\r\n isActive?: boolean;\r\n className?: string;\r\n}\r\n\r\n/**\r\n * BottomNavItem — a single tap target inside `<BottomNavLayout>`.\r\n *\r\n * Renders as `<a>` via Next.js `<Link>`. The consumer project wires\r\n * `isActive` by comparing the current pathname against `href`.\r\n *\r\n * @example\r\n * ```tsx\r\n * <BottomNavLayout ariaLabel=\"Main navigation\">\r\n * <BottomNavItem\r\n * href=\"/products\"\r\n * icon={<ShoppingBagIcon className=\"w-6 h-6\" />}\r\n * label=\"Shop\"\r\n * isActive={pathname === \"/products\"}\r\n * />\r\n * </BottomNavLayout>\r\n * ```\r\n */\r\nexport function BottomNavItem({\r\n href,\r\n label,\r\n icon,\r\n badge,\r\n isActive = false,\r\n className,\r\n}: BottomNavItemProps) {\r\n // Use a plain anchor so this component stays framework-agnostic.\r\n // Consumer projects may swap for next/link if preferred.\r\n return (\r\n <Li className=\"flex-1\">\r\n <a\r\n href={href}\r\n aria-label={label}\r\n aria-current={isActive ? \"page\" : undefined}\r\n className={`relative flex flex-col items-center justify-center gap-0.5 h-full w-full min-h-[44px] transition-colors ${\r\n isActive\r\n ? \"text-primary-600 dark:text-secondary-400\"\r\n : \"text-zinc-500 dark:text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200\"\r\n }${className ? ` ${className}` : \"\"}`}\r\n >\r\n <Span className=\"relative\">\r\n {icon}\r\n {badge != null && badge > 0 && (\r\n <Span\r\n aria-label={`${badge} items`}\r\n className=\"absolute -top-1.5 -right-1.5 min-w-[16px] h-4 px-1 rounded-full text-[10px] font-bold bg-secondary-500 text-white flex items-center justify-center leading-none\"\r\n >\r\n {badge > 99 ? \"99+\" : badge}\r\n </Span>\r\n )}\r\n </Span>\r\n <Span className=\"text-[10px] font-medium leading-none\">{label}</Span>\r\n </a>\r\n </Li>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport React, { useEffect, useCallback } from \"react\";\r\nimport { Button, Div, Span } from \"@mohasinac/ui\";\r\n\r\nexport interface BottomSheetProps {\r\n open: boolean;\r\n onClose: () => void;\r\n title?: string;\r\n children: React.ReactNode;\r\n /** Extra classes on the drawer panel */\r\n className?: string;\r\n /** Max height of the sheet. Defaults to \"max-h-[85dvh]\" */\r\n maxHeight?: string;\r\n}\r\n\r\n/**\r\n * BottomSheet — mobile-first drawer that slides up from the bottom.\r\n *\r\n * - Slides up from the bottom on mobile.\r\n * - Accessible: focuses trap not implemented (add `focus-trap-react` if needed),\r\n * but `role=\"dialog\"`, `aria-modal`, and `aria-label` are set.\r\n * - Closes on backdrop click or Escape key.\r\n * - Hidden on `lg:` and above (use a sidebar instead).\r\n *\r\n * @example\r\n * ```tsx\r\n * <BottomSheet open={isOpen} onClose={() => setIsOpen(false)} title=\"Filters\">\r\n * <FilterPanel />\r\n * </BottomSheet>\r\n * ```\r\n */\r\nexport function BottomSheet({\r\n open,\r\n onClose,\r\n title,\r\n children,\r\n className,\r\n maxHeight = \"max-h-[85dvh]\",\r\n}: BottomSheetProps) {\r\n const handleEscape = useCallback(\r\n (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n },\r\n [onClose],\r\n );\r\n\r\n useEffect(() => {\r\n if (open) {\r\n document.addEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"hidden\";\r\n }\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n document.body.style.overflow = \"\";\r\n };\r\n }, [open, handleEscape]);\r\n\r\n if (!open) return null;\r\n\r\n return (\r\n <Div className=\"fixed inset-0 z-50 lg:hidden\" role=\"presentation\">\r\n {/* Backdrop */}\r\n <Div\r\n className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\"\r\n aria-hidden=\"true\"\r\n onClick={onClose}\r\n />\r\n\r\n {/* Drawer panel */}\r\n <Div\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={title}\r\n className={`absolute bottom-0 inset-x-0 flex flex-col rounded-t-2xl bg-white dark:bg-zinc-900 border-t border-zinc-200 dark:border-zinc-800 shadow-2xl ${maxHeight} animate-slide-up${className ? ` ${className}` : \"\"}`}\r\n >\r\n {/* Handle and header */}\r\n <Div className=\"flex items-center justify-between px-4 py-3 border-b border-zinc-100 dark:border-zinc-800 shrink-0\">\r\n {/* Drag handle */}\r\n <Div className=\"absolute top-2 left-1/2 -translate-x-1/2 w-10 h-1 rounded-full bg-zinc-300 dark:bg-zinc-600\" />\r\n\r\n {title && (\r\n <Span className=\"text-sm font-semibold text-zinc-800 dark:text-zinc-100 mt-2\">\r\n {title}\r\n </Span>\r\n )}\r\n\r\n <Button\r\n type=\"button\"\r\n onClick={onClose}\r\n aria-label=\"Close\"\r\n className=\"ml-auto mt-2 p-1.5 rounded-lg text-zinc-500 hover:text-zinc-700 hover:bg-zinc-100 dark:text-zinc-400 dark:hover:text-zinc-200 dark:hover:bg-zinc-800 transition-colors min-h-[44px] min-w-[44px] flex items-center justify-center\"\r\n >\r\n {/* ✕ */}\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n aria-hidden=\"true\"\r\n >\r\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\r\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\r\n </svg>\r\n </Button>\r\n </Div>\r\n\r\n {/* Scrollable content */}\r\n <Div className=\"flex-1 overflow-y-auto overscroll-contain pb-[env(safe-area-inset-bottom)]\">\r\n {children}\r\n </Div>\r\n </Div>\r\n </Div>\r\n );\r\n}\r\n","\"use client\";\n\nimport Image from \"next/image\";\nimport Link from \"next/link\";\nimport React from \"react\";\nimport { BlockHeader, Button, Div, Span } from \"@mohasinac/ui\";\n\n/** Minimal user shape required by the title bar. */\nexport interface TitleBarUser {\n displayName: string | null;\n email: string | null;\n photoURL: string | null;\n /** Role string — used for display only. */\n role?: string;\n}\n\nexport interface TitleBarLayoutProps {\n onToggleSidebar: () => void;\n sidebarOpen: boolean;\n onSearchToggle: () => void;\n searchOpen: boolean;\n brandName: string;\n brandShortName?: string;\n logoHref: string;\n cartHref?: string;\n cartCount?: number;\n profileHref?: string;\n user?: TitleBarUser | null;\n /** Slot rendered between the search button and profile link (e.g. NotificationBell). */\n notificationSlot?: React.ReactNode;\n /** Optional nav slot rendered between logo and right action icons (desktop only). */\n navSlot?: React.ReactNode;\n /** When set, renders a dismissable promo micro-strip above the header. */\n promoStripText?: string;\n isDark?: boolean;\n onToggleTheme?: () => void;\n id?: string;\n className?: string;\n}\n\n/**\n * TitleBarLayout — generic top sticky title-bar shell.\n *\n * Receives all domain data as props — zero domain imports.\n * Domain shell reads useAuth() and SITE_CONFIG and passes values in.\n */\nexport function TitleBarLayout({\n onToggleSidebar,\n sidebarOpen,\n onSearchToggle,\n searchOpen,\n brandName,\n brandShortName,\n logoHref,\n cartHref,\n cartCount = 0,\n profileHref,\n user,\n notificationSlot,\n navSlot,\n promoStripText,\n isDark = false,\n onToggleTheme,\n id = \"titlebar\",\n className = \"\",\n}: TitleBarLayoutProps) {\n void searchOpen;\n\n return (\n <BlockHeader\n id={id}\n className={`sticky top-0 z-50 bg-white/90 dark:bg-slate-950/90 backdrop-blur-md border-b border-zinc-200/80 dark:border-slate-800/80 ${className}`}\n >\n {/* Promo strip */}\n {promoStripText && (\n <Div className=\"bg-gradient-to-r from-primary-700 to-blue-700 dark:from-secondary-700 dark:to-blue-700 text-white text-xs py-1 text-center font-medium\">\n {promoStripText}\n </Div>\n )}\n\n <Div className=\"container mx-auto px-4 sm:px-6 lg:px-8 max-w-[1920px]\">\n <Div className=\"flex items-center justify-between h-12\">\n {/* Left: hamburger (mobile) + logo */}\n <Div className=\"flex items-center gap-3\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label={sidebarOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={sidebarOpen}\n aria-controls=\"secondary-sidebar\"\n onClick={onToggleSidebar}\n className=\"flex items-center justify-center w-9 h-9 rounded-lg text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n {sidebarOpen ? (\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n ) : (\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 6h16M4 12h16M4 18h16\"\n />\n )}\n </svg>\n </Button>\n\n <Link\n href={logoHref}\n className=\"font-bold text-lg text-zinc-900 dark:text-zinc-50 hover:opacity-80 transition-opacity\"\n >\n {brandShortName ? (\n <>\n <Span className=\"md:hidden\">{brandShortName}</Span>\n <Span className=\"hidden md:inline\">{brandName}</Span>\n </>\n ) : (\n brandName\n )}\n </Link>\n </Div>\n\n {/* Centre: nav slot (desktop only) */}\n {navSlot && <Div className=\"hidden md:flex\">{navSlot}</Div>}\n\n {/* Right: actions */}\n <Div className=\"flex items-center gap-1\">\n {/* Search toggle */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label=\"Search\"\n onClick={onSearchToggle}\n className=\"flex items-center justify-center w-9 h-9 rounded-lg text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-4.35-4.35M17 11A6 6 0 1 1 5 11a6 6 0 0 1 12 0z\"\n />\n </svg>\n </Button>\n\n {/* Notification slot */}\n {notificationSlot}\n\n {/* Theme toggle */}\n {onToggleTheme && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n aria-label={\n isDark ? \"Switch to light mode\" : \"Switch to dark mode\"\n }\n onClick={onToggleTheme}\n className=\"flex items-center justify-center w-9 h-9 rounded-lg text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors\"\n >\n {isDark ? (\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 3v1m0 16v1m8.66-9h-1M4.34 12h-1m15.07-6.07-.71.71M6.34 17.66l-.71.71m12.73 0-.71-.71M6.34 6.34l-.71-.71M12 5a7 7 0 1 0 0 14A7 7 0 0 0 12 5z\"\n />\n </svg>\n ) : (\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 12.79A9 9 0 1 1 11.21 3a7 7 0 1 0 9.79 9.79z\"\n />\n </svg>\n )}\n </Button>\n )}\n\n {/* Cart */}\n {cartHref && (\n <Link\n href={cartHref}\n aria-label={`Cart${cartCount > 0 ? `, ${cartCount} items` : \"\"}`}\n className=\"relative flex items-center justify-center w-9 h-9 rounded-lg text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 0 0-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 0 0-16.536-1.84M7.5 14.25 5.106 5.272M6 20.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0zm12.75 0a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0z\"\n />\n </svg>\n {cartCount > 0 && (\n <Span className=\"absolute -top-0.5 -right-0.5 flex items-center justify-center w-4 h-4 rounded-full bg-red-500 text-white text-[10px] font-bold leading-none\">\n {cartCount > 9 ? \"9+\" : cartCount}\n </Span>\n )}\n </Link>\n )}\n\n {/* Profile */}\n {profileHref && (\n <Link\n href={profileHref}\n aria-label={\n user\n ? `Profile — ${user.displayName ?? user.email}`\n : \"Sign in\"\n }\n className=\"flex items-center justify-center w-9 h-9 rounded-lg text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors\"\n >\n {user?.photoURL ? (\n <Image\n src={user.photoURL}\n alt={user.displayName ?? \"Profile\"}\n width={28}\n height={28}\n className=\"w-7 h-7 rounded-full object-cover\"\n />\n ) : (\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0zM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632z\"\n />\n </svg>\n )}\n </Link>\n )}\n </Div>\n </Div>\n </Div>\n </BlockHeader>\n );\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport { Li, Nav, Ol, Span } from \"@mohasinac/ui\";\n\n/** Map of path segments → human-readable labels. */\nconst DEFAULT_PATH_LABELS: Record<string, string> = {\n auth: \"Authentication\",\n login: \"Login\",\n register: \"Register\",\n \"forgot-password\": \"Forgot Password\",\n \"reset-password\": \"Reset Password\",\n \"verify-email\": \"Verify Email\",\n profile: \"Profile\",\n settings: \"Settings\",\n admin: \"Admin\",\n users: \"Users\",\n dashboard: \"Dashboard\",\n products: \"Products\",\n cart: \"Cart\",\n wishlist: \"Wishlist\",\n orders: \"Orders\",\n addresses: \"Addresses\",\n categories: \"Categories\",\n search: \"Search\",\n checkout: \"Checkout\",\n blog: \"Blog\",\n view: \"View\",\n add: \"Add\",\n edit: \"Edit\",\n};\n\n// Common locale codes filtered out of path segments\nconst LOCALE_CODES = new Set([\n \"en\",\n \"hi\",\n \"fr\",\n \"de\",\n \"es\",\n \"pt\",\n \"zh\",\n \"ja\",\n \"ko\",\n \"ar\",\n \"mr\",\n \"bn\",\n \"ta\",\n \"te\",\n \"gu\",\n \"kn\",\n \"ml\",\n \"pa\",\n \"ur\",\n]);\n\nexport interface AutoBreadcrumbsProps {\n /** Additional path segment → label overrides. Merged with defaults. */\n pathLabels?: Record<string, string>;\n /** Custom separator. Defaults to \"/\" */\n separator?: React.ReactNode;\n className?: string;\n /** Custom link renderer — defaults to a plain `<a>`. */\n renderLink?: (href: string, label: string) => React.ReactNode;\n}\n\nfunction capitalize(s: string) {\n return s.charAt(0).toUpperCase() + s.slice(1).replace(/-/g, \" \");\n}\n\n/**\n * AutoBreadcrumbs — generates breadcrumb navigation automatically from the\n * current URL path. Zero props required for basic use.\n */\nexport function AutoBreadcrumbs({\n pathLabels,\n separator = \"/\",\n className = \"\",\n renderLink,\n}: AutoBreadcrumbsProps) {\n const pathname = usePathname();\n const labels = { ...DEFAULT_PATH_LABELS, ...pathLabels };\n\n const segments = pathname\n .split(\"/\")\n .filter(Boolean)\n .filter(\n (seg) =>\n !LOCALE_CODES.has(seg.toLowerCase()) &&\n !/^[0-9a-f-]{8,}$/.test(seg) &&\n !/^\\d+$/.test(seg),\n );\n\n if (segments.length === 0) return null;\n\n const crumbs = segments.map((seg, i) => ({\n label: labels[seg] ?? capitalize(seg),\n href: \"/\" + segments.slice(0, i + 1).join(\"/\"),\n }));\n\n const allCrumbs = [{ label: \"Home\", href: \"/\" }, ...crumbs];\n\n return (\n <Nav aria-label=\"Breadcrumb\" className={className}>\n <Ol className=\"flex items-center gap-2 text-sm flex-wrap\">\n {allCrumbs.map((crumb, index) => {\n const isLast = index === allCrumbs.length - 1;\n return (\n <Li key={crumb.href} className=\"flex items-center gap-2\">\n {isLast ? (\n <Span\n aria-current=\"page\"\n className=\"text-zinc-500 dark:text-zinc-400\"\n >\n {crumb.label}\n </Span>\n ) : renderLink ? (\n renderLink(crumb.href, crumb.label)\n ) : (\n <Link\n href={crumb.href}\n className=\"text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors\"\n >\n {crumb.label}\n </Link>\n )}\n {!isLast && (\n <Span\n className=\"text-zinc-400 dark:text-zinc-500 select-none\"\n aria-hidden=\"true\"\n >\n {separator}\n </Span>\n )}\n </Li>\n );\n })}\n </Ol>\n </Nav>\n );\n}\n","import React from \"react\";\nimport Link from \"next/link\";\nimport { Li, Nav, Ol, Span } from \"@mohasinac/ui\";\n\nexport interface BreadcrumbsProps {\n children: React.ReactNode;\n separator?: React.ReactNode;\n className?: string;\n}\n\nexport interface BreadcrumbItemProps {\n href?: string;\n children: React.ReactNode;\n /** Marks this item as the current page — renders as plain text, not link. */\n current?: boolean;\n className?: string;\n}\n\n/**\n * Breadcrumbs — navigation hierarchy showing the user's location.\n * Automatically adds separators between items.\n *\n * @example\n * <Breadcrumbs>\n * <BreadcrumbItem href=\"/\">Home</BreadcrumbItem>\n * <BreadcrumbItem href=\"/products\">Products</BreadcrumbItem>\n * <BreadcrumbItem current>Detail</BreadcrumbItem>\n * </Breadcrumbs>\n */\nexport function Breadcrumbs({\n children,\n separator = \"/\",\n className = \"\",\n}: BreadcrumbsProps) {\n const items = React.Children.toArray(children);\n\n return (\n <Nav aria-label=\"Breadcrumb\" className={className}>\n <Ol className=\"flex items-center gap-2 text-sm flex-wrap\">\n {items.map((item, index) => (\n <Li key={index} className=\"flex items-center gap-2\">\n {item}\n {index < items.length - 1 && (\n <Span\n className=\"text-zinc-400 dark:text-zinc-500 select-none\"\n aria-hidden=\"true\"\n >\n {separator}\n </Span>\n )}\n </Li>\n ))}\n </Ol>\n </Nav>\n );\n}\n\nexport function BreadcrumbItem({\n href,\n children,\n current = false,\n className = \"\",\n}: BreadcrumbItemProps) {\n if (current || !href) {\n return (\n <Span\n aria-current={current ? \"page\" : undefined}\n className={`text-zinc-500 dark:text-zinc-400 ${className}`}\n >\n {children}\n </Span>\n );\n }\n\n return (\n <Link\n href={href}\n className={`text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors ${className}`}\n >\n {children}\n </Link>\n );\n}\n","\"use client\";\n\nimport { Select } from \"@mohasinac/ui\";\n\nexport interface LocaleSwitcherOption {\n value: string;\n label: string;\n}\n\nexport interface LocaleSwitcherProps {\n /** Currently active locale. */\n locale: string;\n /** Available locale options. */\n options: LocaleSwitcherOption[];\n /** Called when the user selects a different locale. */\n onChange: (locale: string) => void;\n /** ARIA label for the select element. */\n ariaLabel?: string;\n className?: string;\n}\n\n/**\n * LocaleSwitcher — generic locale selector.\n *\n * Renders a minimal `<select>` element. The parent is responsible for\n * calling `router.replace` with the chosen locale (project-specific routing).\n */\nexport function LocaleSwitcher({\n locale,\n options,\n onChange,\n ariaLabel = \"Switch language\",\n className = \"\",\n}: LocaleSwitcherProps) {\n return (\n <Select\n value={locale}\n onChange={onChange}\n options={options}\n aria-label={ariaLabel}\n className={className}\n />\n );\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport { useEffect, useState } from \"react\";\nimport { ChevronUp } from \"lucide-react\";\nimport { Button } from \"@mohasinac/ui\";\n\nexport interface BackToTopProps {\n /** Scroll distance (px) before the button appears. Defaults to 400. */\n threshold?: number;\n ariaLabel?: string;\n className?: string;\n}\n\n/**\n * BackToTop — floating scroll-to-top button.\n * Appears after the page has scrolled past `threshold` pixels.\n */\nexport function BackToTop({\n threshold = 400,\n ariaLabel = \"Back to top\",\n className = \"\",\n}: BackToTopProps) {\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const handleScroll = () => setVisible(window.scrollY > threshold);\n window.addEventListener(\"scroll\", handleScroll, { passive: true });\n return () => window.removeEventListener(\"scroll\", handleScroll);\n }, [threshold]);\n\n if (!visible) return null;\n\n return (\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n aria-label={ariaLabel}\n onClick={() => window.scrollTo({ top: 0, behavior: \"smooth\" })}\n className={`fixed bottom-20 right-4 z-40 flex items-center justify-center w-10 h-10 rounded-full bg-white dark:bg-slate-800 border border-zinc-200 dark:border-slate-700 shadow-md text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-slate-700 transition-colors ${className}`}\n >\n <ChevronUp className=\"w-5 h-5\" aria-hidden=\"true\" />\n </Button>\n );\n}\n\n/** SkipToMain — visually hidden link that becomes visible on focus for keyboard users. */\nexport function SkipToMain({ mainId = \"main-content\" }: { mainId?: string }) {\n return (\n <Link\n href={`#${mainId}`}\n className=\"sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:z-[100] focus:px-4 focus:py-2 focus:rounded-lg focus:bg-white dark:focus:bg-slate-900 focus:text-zinc-900 dark:focus:text-zinc-100 focus:shadow-lg focus:ring-2 focus:ring-primary-500 focus:outline-none text-sm font-medium\"\n >\n Skip to main content\n </Link>\n );\n}\n","\"use client\";\r\n\r\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\r\nimport { Aside, Button, Div, Nav, Span } from \"@mohasinac/ui\";\r\n\r\nexport interface ListingLayoutLabels {\r\n filtersTitle?: string;\r\n showFilters?: string;\r\n hideFilters?: string;\r\n clearAll?: string;\r\n applyFilters?: string;\r\n close?: string;\r\n}\r\n\r\nexport interface ListingLayoutProps {\r\n headerSlot?: ReactNode;\r\n statusTabsSlot?: ReactNode;\r\n filterContent?: ReactNode;\r\n filterActiveCount?: number;\r\n onFilterApply?: () => void;\r\n onFilterClear?: () => void;\r\n filterTitle?: string;\r\n activeFiltersSlot?: ReactNode;\r\n searchSlot?: ReactNode;\r\n sortSlot?: ReactNode;\r\n viewToggleSlot?: ReactNode;\r\n actionsSlot?: ReactNode;\r\n selectedCount?: number;\r\n toolbarPaginationSlot?: ReactNode;\r\n paginationSlot?: ReactNode;\r\n children: ReactNode;\r\n defaultSidebarOpen?: boolean;\r\n className?: string;\r\n errorSlot?: ReactNode;\r\n isDashboard?: boolean;\r\n labels?: ListingLayoutLabels;\r\n bulkActionBarSlot?: ReactNode;\r\n}\r\n\r\nexport function ListingLayout({\r\n headerSlot,\r\n statusTabsSlot,\r\n filterContent,\r\n filterActiveCount = 0,\r\n onFilterApply,\r\n onFilterClear,\r\n filterTitle,\r\n activeFiltersSlot,\r\n searchSlot,\r\n sortSlot,\r\n viewToggleSlot,\r\n actionsSlot,\r\n selectedCount = 0,\r\n toolbarPaginationSlot,\r\n paginationSlot,\r\n children,\r\n defaultSidebarOpen = false,\r\n className = \"\",\r\n errorSlot,\r\n isDashboard = false,\r\n labels,\r\n bulkActionBarSlot,\r\n}: ListingLayoutProps) {\r\n const [sidebarOpen, setSidebarOpen] = useState(defaultSidebarOpen);\r\n const [mobileFilterOpen, setMobileFilterOpen] = useState(false);\r\n const mobileOverlayRef = useRef<HTMLDivElement>(null);\r\n\r\n const hasFilter = Boolean(filterContent);\r\n const l = {\r\n filtersTitle: labels?.filtersTitle ?? \"Filters\",\r\n showFilters: labels?.showFilters ?? \"Show filters\",\r\n hideFilters: labels?.hideFilters ?? \"Hide filters\",\r\n clearAll: labels?.clearAll ?? \"Clear all\",\r\n applyFilters: labels?.applyFilters ?? \"Apply filters\",\r\n close: labels?.close ?? \"Close\",\r\n };\r\n\r\n const panelTitle = filterTitle ?? l.filtersTitle;\r\n\r\n useEffect(() => {\r\n if (!mobileFilterOpen) return;\r\n const handle = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") setMobileFilterOpen(false);\r\n };\r\n document.addEventListener(\"keydown\", handle);\r\n return () => document.removeEventListener(\"keydown\", handle);\r\n }, [mobileFilterOpen]);\r\n\r\n useEffect(() => {\r\n if (mobileFilterOpen) {\r\n const w = window.innerWidth - document.documentElement.clientWidth;\r\n document.body.style.overflow = \"hidden\";\r\n document.body.style.paddingRight = `${w}px`;\r\n } else {\r\n document.body.style.overflow = \"\";\r\n document.body.style.paddingRight = \"\";\r\n }\r\n return () => {\r\n document.body.style.overflow = \"\";\r\n document.body.style.paddingRight = \"\";\r\n };\r\n }, [mobileFilterOpen]);\r\n\r\n const handleMobileApply = () => {\r\n onFilterApply?.();\r\n setMobileFilterOpen(false);\r\n };\r\n\r\n return (\r\n <Div\r\n className={[\r\n \"w-full space-y-4\",\r\n toolbarPaginationSlot\r\n ? selectedCount > 0\r\n ? \"pb-28 md:pb-0\"\r\n : \"pb-12 md:pb-0\"\r\n : \"\",\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \")}\r\n >\r\n {headerSlot}\r\n\r\n {statusTabsSlot && (\r\n <Div className=\"overflow-x-auto touch-pan-x -mx-4 px-4 md:-mx-6 md:px-6 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\r\n {statusTabsSlot}\r\n </Div>\r\n )}\r\n\r\n <Div\r\n className={[\r\n \"sticky z-20 -mx-4 px-4 md:-mx-6 md:px-6\",\r\n isDashboard ? \"top-0\" : \"top-14 md:top-[120px]\",\r\n \"bg-white/80 dark:bg-slate-950/80 backdrop-blur-md\",\r\n \"border-b border-zinc-200/70 dark:border-slate-800/70\",\r\n \"shadow-[0_1px_3px_rgba(0,0,0,0.04)] dark:shadow-[0_1px_3px_rgba(0,0,0,0.2)]\",\r\n \"py-2.5\",\r\n ].join(\" \")}\r\n >\r\n <Div className=\"hidden md:flex items-center gap-2 min-w-0\">\r\n {hasFilter && (\r\n <Button\r\n type=\"button\"\r\n onClick={() => setSidebarOpen((prev) => !prev)}\r\n aria-label={sidebarOpen ? l.hideFilters : l.showFilters}\r\n aria-expanded={sidebarOpen}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className={[\r\n \"hidden lg:flex flex-shrink-0 items-center gap-1.5\",\r\n \"rounded-full h-8 px-3 text-sm font-medium\",\r\n \"border transition-all duration-150\",\r\n sidebarOpen\r\n ? \"bg-primary/10 border-primary/30 text-primary dark:bg-primary/15 dark:border-primary/40\"\r\n : \"border-zinc-200 dark:border-slate-700 text-zinc-600 dark:text-slate-300 hover:border-zinc-300 dark:hover:border-slate-600 hover:bg-zinc-50 dark:hover:bg-slate-800/60\",\r\n ].join(\" \")}\r\n >\r\n {l.filtersTitle}\r\n {filterActiveCount > 0 && (\r\n <Span className=\"inline-flex items-center justify-center w-4 h-4 text-[10px] font-bold rounded-full bg-primary text-white\">\r\n {filterActiveCount}\r\n </Span>\r\n )}\r\n </Button>\r\n )}\r\n\r\n {searchSlot && <Div className=\"flex-1 min-w-0\">{searchSlot}</Div>}\r\n\r\n <Div className=\"flex items-center gap-1.5 flex-shrink-0\">\r\n {sortSlot}\r\n {viewToggleSlot && (\r\n <Div className=\"flex items-center gap-0.5 rounded-full border border-zinc-200 dark:border-slate-700 bg-white dark:bg-slate-900 p-0.5 shadow-sm\">\r\n {viewToggleSlot}\r\n </Div>\r\n )}\r\n {actionsSlot}\r\n </Div>\r\n\r\n {toolbarPaginationSlot && (\r\n <Div className=\"ml-auto flex-shrink-0 pl-3 border-l border-zinc-200/70 dark:border-slate-700/70\">\r\n {toolbarPaginationSlot}\r\n </Div>\r\n )}\r\n </Div>\r\n\r\n <Div className=\"flex flex-col gap-2 md:hidden\">\r\n <Div className=\"flex items-center gap-2\">\r\n {hasFilter && (\r\n <Button\r\n type=\"button\"\r\n onClick={() => setMobileFilterOpen(true)}\r\n aria-label={l.filtersTitle}\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n className={[\r\n \"flex-shrink-0 flex items-center gap-1.5\",\r\n \"rounded-full h-9 px-3 text-sm font-medium\",\r\n \"border border-zinc-200 dark:border-slate-700\",\r\n \"text-zinc-600 dark:text-slate-300\",\r\n \"hover:bg-zinc-50 dark:hover:bg-slate-800/60 transition-colors\",\r\n filterActiveCount > 0\r\n ? \"border-primary/40 bg-primary/5 text-primary\"\r\n : \"\",\r\n ].join(\" \")}\r\n >\r\n {l.filtersTitle}\r\n {filterActiveCount > 0 && (\r\n <Span className=\"inline-flex items-center justify-center w-4 h-4 text-[10px] font-bold rounded-full bg-primary text-white\">\r\n {filterActiveCount}\r\n </Span>\r\n )}\r\n </Button>\r\n )}\r\n {searchSlot && <Div className=\"flex-1 min-w-0\">{searchSlot}</Div>}\r\n </Div>\r\n\r\n {(sortSlot || viewToggleSlot || actionsSlot) && (\r\n <Div className=\"flex items-stretch min-h-[44px] gap-2 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\r\n <Div className=\"flex items-center gap-2 flex-shrink-0 pb-px\">\r\n {sortSlot}\r\n {viewToggleSlot}\r\n {actionsSlot}\r\n </Div>\r\n </Div>\r\n )}\r\n </Div>\r\n\r\n {selectedCount > 0 && bulkActionBarSlot && (\r\n <Div className=\"hidden md:block pt-2 mt-2 border-t border-zinc-100 dark:border-slate-800\">\r\n {bulkActionBarSlot}\r\n </Div>\r\n )}\r\n </Div>\r\n\r\n <Div className=\"flex gap-4 lg:gap-6 items-start\">\r\n {hasFilter && (\r\n <Aside\r\n aria-label={panelTitle}\r\n className={[\r\n \"hidden lg:block flex-shrink-0 self-start\",\r\n isDashboard ? \"sticky top-16\" : \"sticky top-[176px]\",\r\n \"transition-all duration-200 ease-in-out overflow-hidden\",\r\n sidebarOpen\r\n ? \"w-60 xl:w-64 2xl:w-72 opacity-100\"\r\n : \"w-0 opacity-0 pointer-events-none\",\r\n ].join(\" \")}\r\n >\r\n <Div className=\"w-60 xl:w-64 2xl:w-72 rounded-2xl overflow-hidden border border-zinc-200/80 dark:border-slate-700/60 bg-white dark:bg-slate-900 shadow-sm\">\r\n <Div className=\"flex items-center justify-between px-4 py-3 border-b border-zinc-100 dark:border-slate-800\">\r\n <Div className=\"font-semibold text-sm\">{panelTitle}</Div>\r\n {filterActiveCount > 0 && (\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={onFilterClear}\r\n className=\"text-xs text-primary hover:text-primary/80 hover:underline p-0 h-auto leading-none font-medium\"\r\n >\r\n {l.clearAll}\r\n </Button>\r\n )}\r\n </Div>\r\n\r\n <Div className=\"px-3 pt-5 pb-3 max-h-[calc(100vh-15rem)] overflow-y-auto space-y-4\">\r\n {filterContent}\r\n </Div>\r\n\r\n <Div className=\"px-3 pb-3 pt-2 border-t border-zinc-100 dark:border-slate-800\">\r\n <Button\r\n type=\"button\"\r\n variant=\"primary\"\r\n className=\"w-full rounded-xl bg-primary text-white py-2 px-3\"\r\n onClick={onFilterApply}\r\n >\r\n {l.applyFilters}\r\n </Button>\r\n </Div>\r\n </Div>\r\n </Aside>\r\n )}\r\n\r\n <Div className=\"flex-1 min-w-0 space-y-3\">\r\n {activeFiltersSlot}\r\n\r\n {errorSlot ? (\r\n errorSlot\r\n ) : (\r\n <>\r\n {children}\r\n {paginationSlot && <Div className=\"pt-2\">{paginationSlot}</Div>}\r\n </>\r\n )}\r\n </Div>\r\n </Div>\r\n\r\n {toolbarPaginationSlot && (\r\n <Nav\r\n aria-label=\"Pagination\"\r\n className={[\r\n \"fixed left-0 right-0 md:hidden\",\r\n isDashboard\r\n ? \"bottom-0\"\r\n : selectedCount > 0\r\n ? \"bottom-28\"\r\n : \"bottom-14\",\r\n \"z-[39]\",\r\n \"bg-white/95 dark:bg-slate-950/95 backdrop-blur-md\",\r\n \"shadow-[0_-2px_8px_rgba(0,0,0,0.06)] dark:shadow-[0_-2px_8px_rgba(0,0,0,0.20)]\",\r\n \"h-10 flex items-center justify-center px-3 overflow-x-auto pb-px\",\r\n \"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\r\n ].join(\" \")}\r\n >\r\n {toolbarPaginationSlot}\r\n </Nav>\r\n )}\r\n\r\n {hasFilter && mobileFilterOpen && (\r\n <>\r\n <Div\r\n className=\"fixed inset-0 z-40 bg-black/40 lg:hidden\"\r\n onClick={() => setMobileFilterOpen(false)}\r\n aria-hidden=\"true\"\r\n />\r\n\r\n <Div\r\n ref={mobileOverlayRef}\r\n className=\"fixed inset-0 z-50 flex flex-col lg:hidden bg-white dark:bg-slate-950\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={panelTitle}\r\n >\r\n <Div className=\"flex items-center justify-between px-4 py-3 border-b border-zinc-100 dark:border-slate-800 flex-shrink-0\">\r\n <Div className=\"font-semibold\">\r\n {panelTitle}\r\n {filterActiveCount > 0 && (\r\n <Span className=\"ml-2 inline-flex items-center justify-center w-5 h-5 text-[11px] font-bold rounded-full bg-primary text-white\">\r\n {filterActiveCount}\r\n </Span>\r\n )}\r\n </Div>\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={() => setMobileFilterOpen(false)}\r\n aria-label={l.close}\r\n className=\"rounded-full w-8 h-8 p-0 flex items-center justify-center hover:bg-zinc-100 dark:hover:bg-slate-800\"\r\n >\r\n x\r\n </Button>\r\n </Div>\r\n\r\n <Div className=\"flex-1 overflow-y-auto px-4 pt-6 pb-4 space-y-4\">\r\n {filterContent}\r\n </Div>\r\n\r\n <Div className=\"flex-shrink-0 flex gap-3 px-4 py-4 border-t border-zinc-100 dark:border-slate-800 bg-white dark:bg-slate-950\">\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n className=\"flex-1 rounded-xl bg-zinc-200 dark:bg-slate-700 py-2 px-3\"\r\n onClick={() => {\r\n onFilterClear?.();\r\n }}\r\n >\r\n {l.clearAll}\r\n </Button>\r\n <Button\r\n type=\"button\"\r\n variant=\"primary\"\r\n className=\"flex-1 rounded-xl bg-primary text-white py-2 px-3\"\r\n onClick={handleMobileApply}\r\n >\r\n {l.applyFilters}\r\n </Button>\r\n </Div>\r\n </Div>\r\n </>\r\n )}\r\n </Div>\r\n );\r\n}\r\n"]}
|