@cedros/pay-react 1.1.18 → 1.1.20
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/dist/{AISettingsSection-CD9IRyR1.mjs → AISettingsSection-BH-RXvk1.mjs} +10 -10
- package/dist/{AISettingsSection-C-thWh51.js → AISettingsSection-f5K0nUoQ.js} +1 -1
- package/dist/{AutosaveIndicator-DxemlKnX.js → AutosaveIndicator-CpTVtJIz.js} +1 -1
- package/dist/{AutosaveIndicator-G2CRN8hH.mjs → AutosaveIndicator-DTOaopUP.mjs} +1 -1
- package/dist/{CedrosContext-BnJ2Cf7R.mjs → CedrosContext-BE6P5PQ0.mjs} +241 -245
- package/dist/{CedrosContext-C26DlvLF.js → CedrosContext-D-lnoEkR.js} +3 -3
- package/dist/{CryptoButton-BdOtL7w-.mjs → CryptoButton-CksMkZjL.mjs} +48 -48
- package/dist/CryptoButton-Dy-g3bR0.js +1 -0
- package/dist/{FAQSection-CyYK9OAN.mjs → FAQSection-BO7ZfQMN.mjs} +4 -4
- package/dist/{FAQSection-_pm1ekTe.js → FAQSection-CVJ5w6cB.js} +1 -1
- package/dist/{MessagingSection-BHzf1Mhu.js → MessagingSection-CRFtSoE8.js} +1 -1
- package/dist/{MessagingSection-DO2yPTvs.mjs → MessagingSection-CmFYFdaw.mjs} +5 -5
- package/dist/{PaymentSettingsSection-DpENgoca.js → PaymentSettingsSection-BKDiep-C.js} +1 -1
- package/dist/{PaymentSettingsSection--Aqlne1F.mjs → PaymentSettingsSection-VDcgpOkp.mjs} +1 -1
- package/dist/{SettingsSection-CGKKGXWz.mjs → SettingsSection-B0TpaIOG.mjs} +1 -1
- package/dist/{SettingsSection-DNoODw7i.js → SettingsSection-DSlW47o4.js} +1 -1
- package/dist/SingleCategorySettings-BTXR7zex.js +3 -0
- package/dist/{SingleCategorySettings-8DCtLcow.mjs → SingleCategorySettings-Cwlehl0u.mjs} +62 -69
- package/dist/{StorefrontSection-Mzr1H51w.mjs → StorefrontSection-BAY9V1j6.mjs} +8 -8
- package/dist/{StorefrontSection-BEOMtSAg.js → StorefrontSection-DfN5yxkV.js} +1 -1
- package/dist/{SubscriptionsSection-4b29i-41.js → SubscriptionsSection-BboudRYv.js} +1 -1
- package/dist/{SubscriptionsSection-Dy1e15fe.mjs → SubscriptionsSection-D_RKCILr.mjs} +6 -6
- package/dist/{WalletManager-HXXyARQ7.mjs → WalletManager-D78miaJ2.mjs} +1 -1
- package/dist/{WalletManager-D6BYTwXn.js → WalletManager-QcfgQmap.js} +1 -1
- package/dist/crypto-only.d.ts +2 -23
- package/dist/crypto-only.js +1 -1
- package/dist/crypto-only.mjs +64 -63
- package/dist/{index-bbSf3B7-.mjs → index-75RhiLDq.mjs} +7192 -9782
- package/dist/index-B5ck27xb.js +84 -0
- package/dist/index.d.ts +2 -45
- package/dist/index.js +1 -1
- package/dist/index.mjs +64 -63
- package/dist/pay-react.css +1 -1
- package/dist/sections-BCdzdqlG.js +1 -0
- package/dist/sections-BIBMX6KS.mjs +8 -0
- package/dist/src/admin/index.d.ts.map +1 -0
- package/dist/src/admin/plugin.d.ts.map +1 -0
- package/dist/src/admin/types.d.ts.map +1 -0
- package/dist/src/components/CedrosPay.d.ts.map +1 -0
- package/dist/src/components/CreditsButton.d.ts.map +1 -0
- package/dist/src/components/CreditsSubscribeButton.d.ts.map +1 -0
- package/dist/src/components/CryptoButton.d.ts.map +1 -0
- package/dist/src/components/CryptoSubscribeButton.d.ts.map +1 -0
- package/dist/src/components/PaymentModal.d.ts.map +1 -0
- package/dist/src/components/ProductPrice.d.ts.map +1 -0
- package/dist/src/components/PurchaseButton.d.ts.map +1 -0
- package/dist/src/components/StripeButton.d.ts.map +1 -0
- package/dist/src/components/SubscribeButton.d.ts.map +1 -0
- package/dist/src/components/SubscriptionManagementPanel.d.ts.map +1 -0
- package/dist/src/components/admin/AISettingsSection.d.ts.map +1 -0
- package/dist/src/components/admin/AdminAuthManager.d.ts.map +1 -0
- package/dist/src/components/admin/AutosaveIndicator.d.ts.map +1 -0
- package/dist/src/components/admin/CedrosPayAdminDashboard.d.ts.map +1 -0
- package/dist/src/components/admin/ConfigEditor.d.ts.map +1 -0
- package/dist/src/components/admin/CouponsSection.d.ts.map +1 -0
- package/dist/src/components/admin/Dropdown.d.ts.map +1 -0
- package/dist/src/components/admin/ErrorBanner.d.ts.map +1 -0
- package/dist/src/components/admin/FAQSection.d.ts.map +1 -0
- package/dist/src/components/admin/MessagingSection.d.ts.map +1 -0
- package/dist/src/components/admin/OverviewSection.d.ts.map +1 -0
- package/dist/src/components/admin/PaymentSettingsSection.d.ts.map +1 -0
- package/dist/src/components/admin/ProductVariationsEditor.d.ts.map +1 -0
- package/dist/src/components/admin/ProductsSection.d.ts.map +1 -0
- package/dist/src/components/admin/RefundsSection.d.ts.map +1 -0
- package/dist/src/components/admin/SecretArrayEditor.d.ts.map +1 -0
- package/dist/src/components/admin/SettingsSection.d.ts.map +1 -0
- package/dist/src/components/admin/SingleCategorySettings.d.ts.map +1 -0
- package/dist/src/components/admin/StatsBar.d.ts.map +1 -0
- package/dist/src/components/admin/StorefrontSection.d.ts.map +1 -0
- package/dist/src/components/admin/SubscriptionsSection.d.ts.map +1 -0
- package/dist/src/components/admin/Toggle.d.ts.map +1 -0
- package/dist/{components → src/components}/admin/TokenMintSelector.d.ts +1 -1
- package/dist/src/components/admin/TokenMintSelector.d.ts.map +1 -0
- package/dist/src/components/admin/TransactionsSection.d.ts.map +1 -0
- package/dist/src/components/admin/VariantInventoryGrid.d.ts.map +1 -0
- package/dist/src/components/admin/VariationTypeEditor.d.ts.map +1 -0
- package/dist/src/components/admin/configApi.d.ts.map +1 -0
- package/dist/src/components/admin/icons.d.ts.map +1 -0
- package/dist/{components → src/components}/admin/index.d.ts +1 -1
- package/dist/src/components/admin/index.d.ts.map +1 -0
- package/dist/src/components/admin/sections-more.d.ts.map +1 -0
- package/dist/src/components/admin/sections.d.ts.map +1 -0
- package/dist/src/components/admin/types.d.ts.map +1 -0
- package/dist/{components → src/components}/admin/useAdminAuth.d.ts +11 -23
- package/dist/src/components/admin/useAdminAuth.d.ts.map +1 -0
- package/dist/src/components/admin/useAutosave.d.ts.map +1 -0
- package/dist/src/components/admin/useProductVariations.d.ts.map +1 -0
- package/dist/src/components/subscriptionPanelStyles.d.ts.map +1 -0
- package/dist/src/context/CedrosContext.d.ts.map +1 -0
- package/dist/src/context/ThemeContext.d.ts.map +1 -0
- package/dist/src/context/index.d.ts.map +1 -0
- package/dist/src/crypto-only.d.ts +23 -0
- package/dist/src/crypto-only.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/cartCheckoutRequirements.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/cartProviderPersistence.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/cartReducer.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/cartServerMerge.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/checkoutPaymentMethods.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/checkoutReturn.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/checkoutSchema.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/inventoryHooks.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/mockAdapter.test.d.ts.map +1 -0
- package/dist/src/ecommerce/__tests__/storage.test.d.ts.map +1 -0
- package/dist/src/ecommerce/adapters/CommerceAdapter.d.ts.map +1 -0
- package/dist/src/ecommerce/adapters/mock/mockAdapter.d.ts.map +1 -0
- package/dist/src/ecommerce/adapters/paywall/paywallAdapter.d.ts.map +1 -0
- package/dist/src/ecommerce/adapters/paywall/paywallAdapter.test.d.ts.map +1 -0
- package/dist/src/ecommerce/components/cart/CartLineItem.d.ts.map +1 -0
- package/dist/src/ecommerce/components/cart/CartPageContent.d.ts.map +1 -0
- package/dist/src/ecommerce/components/cart/CartPanel.d.ts.map +1 -0
- package/dist/src/ecommerce/components/cart/CartSidebar.d.ts.map +1 -0
- package/dist/src/ecommerce/components/cart/CartSummary.d.ts.map +1 -0
- package/dist/src/ecommerce/components/cart/PromoCodeInput.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/Breadcrumbs.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/CategoryNav.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/FilterPanel.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/Price.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/ProductCard.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/ProductGallery.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/ProductGrid.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/QuantitySelector.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/QuickViewDialog.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/SearchInput.d.ts.map +1 -0
- package/dist/src/ecommerce/components/catalog/VariantSelector.d.ts.map +1 -0
- package/dist/src/ecommerce/components/chat/ShopChatPanel.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/AddressForm.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/CheckoutCancelPage.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/CheckoutForm.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/CheckoutLayout.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/CheckoutReceipt.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/CheckoutSuccessPage.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/InventoryVerificationDialog.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/OrderReview.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/PaymentStep.d.ts.map +1 -0
- package/dist/src/ecommerce/components/checkout/ShippingMethodSelector.d.ts.map +1 -0
- package/dist/src/ecommerce/components/faq/FAQItem.d.ts.map +1 -0
- package/dist/src/ecommerce/components/faq/FAQItem.test.d.ts.map +1 -0
- package/dist/src/ecommerce/components/faq/FAQList.d.ts.map +1 -0
- package/dist/src/ecommerce/components/faq/index.d.ts.map +1 -0
- package/dist/src/ecommerce/components/general/EmptyState.d.ts.map +1 -0
- package/dist/src/ecommerce/components/general/ErrorBoundary.d.ts.map +1 -0
- package/dist/src/ecommerce/components/general/ErrorState.d.ts.map +1 -0
- package/dist/src/ecommerce/components/general/toast.d.ts.map +1 -0
- package/dist/src/ecommerce/components/orders/OrderCard.d.ts.map +1 -0
- package/dist/src/ecommerce/components/orders/OrderDetails.d.ts.map +1 -0
- package/dist/src/ecommerce/components/orders/OrderList.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/accordion.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/badge.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/button.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/card.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/dialog.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/input.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/label.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/select.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/separator.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/sheet.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/skeleton.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/tabs.d.ts.map +1 -0
- package/dist/src/ecommerce/components/ui/textarea.d.ts.map +1 -0
- package/dist/src/ecommerce/config/context.d.ts.map +1 -0
- package/dist/src/ecommerce/config/types.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/checkoutReturn.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useAIRelatedProducts.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useCartInventory.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useCatalogUrlState.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useCategories.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useCheckoutResultFromUrl.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useHoldExpiry.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useInventoryVerification.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useOrders.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/usePaymentMethodsConfig.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useProduct.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useProducts.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useShippingMethods.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useStorefrontSettings.d.ts.map +1 -0
- package/dist/src/ecommerce/hooks/useSubscriptionData.d.ts.map +1 -0
- package/dist/src/ecommerce/index.d.ts.map +1 -0
- package/dist/src/ecommerce/integrations/cedros-pay/useCedrosPayCheckoutAdapter.d.ts.map +1 -0
- package/dist/src/ecommerce/state/cart/CartProvider.d.ts.map +1 -0
- package/dist/src/ecommerce/state/cart/cartReducer.d.ts.map +1 -0
- package/dist/src/ecommerce/state/checkout/checkoutSchema.d.ts.map +1 -0
- package/dist/src/ecommerce/state/checkout/useCheckout.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/CartTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/CategoryTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/CheckoutTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/ProductTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/PurchaseHistoryTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/ReceiptTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/ShopTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/templates/SubscriptionTemplate.d.ts.map +1 -0
- package/dist/src/ecommerce/testing/adapterContract.d.ts.map +1 -0
- package/dist/src/ecommerce/types.d.ts.map +1 -0
- package/dist/src/ecommerce/utils/cartCheckoutRequirements.d.ts.map +1 -0
- package/dist/src/ecommerce/utils/cartItemMetadata.d.ts.map +1 -0
- package/dist/src/ecommerce/utils/cn.d.ts.map +1 -0
- package/dist/src/ecommerce/utils/money.d.ts.map +1 -0
- package/dist/src/ecommerce/utils/storage.d.ts.map +1 -0
- package/dist/src/hooks/useCreditsPayment.d.ts.map +1 -0
- package/dist/src/hooks/useCreditsSubscription.d.ts.map +1 -0
- package/dist/src/hooks/useCryptoSubscription.d.ts.map +1 -0
- package/dist/src/hooks/usePaymentMode.d.ts.map +1 -0
- package/dist/src/hooks/useRefundVerification.d.ts.map +1 -0
- package/dist/src/hooks/useStripeCheckout.d.ts.map +1 -0
- package/dist/src/hooks/useSubscription.d.ts.map +1 -0
- package/dist/src/hooks/useSubscriptionManagement.d.ts.map +1 -0
- package/dist/src/hooks/useX402Payment.d.ts.map +1 -0
- package/dist/src/i18n/index.d.ts.map +1 -0
- package/dist/src/i18n/useTranslation.d.ts.map +1 -0
- package/dist/src/index.d.ts +45 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/managers/CreditsManager.d.ts.map +1 -0
- package/dist/src/managers/ManagerCache.d.ts.map +1 -0
- package/dist/src/managers/RouteDiscoveryManager.d.ts +6 -0
- package/dist/src/managers/RouteDiscoveryManager.d.ts.map +1 -0
- package/dist/src/managers/StripeManager.d.ts.map +1 -0
- package/dist/src/managers/SubscriptionChangeManager.d.ts.map +1 -0
- package/dist/src/managers/SubscriptionManager.d.ts.map +1 -0
- package/dist/src/managers/WalletManager.d.ts.map +1 -0
- package/dist/src/managers/X402Manager.d.ts.map +1 -0
- package/dist/src/stripe-only.d.ts +49 -0
- package/dist/src/stripe-only.d.ts.map +1 -0
- package/dist/src/telemetry.d.ts +27 -0
- package/dist/src/telemetry.d.ts.map +1 -0
- package/dist/src/testing/__tests__/providers.test.d.ts.map +1 -0
- package/dist/src/testing/helpers.d.ts.map +1 -0
- package/dist/src/testing/index.d.ts +12 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/mocks.d.ts.map +1 -0
- package/dist/src/testing/providers.d.ts.map +1 -0
- package/dist/src/types/componentOptions.d.ts.map +1 -0
- package/dist/src/types/errors.d.ts.map +1 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/subscription.d.ts.map +1 -0
- package/dist/src/utils/__tests__/couponHelpers.test.d.ts.map +1 -0
- package/dist/src/utils/__tests__/cspHelper.test.d.ts.map +1 -0
- package/dist/src/utils/__tests__/fetchWithTimeout.test.d.ts.map +1 -0
- package/dist/src/utils/cartHelpers.d.ts.map +1 -0
- package/dist/src/utils/circuitBreaker.d.ts.map +1 -0
- package/dist/src/utils/couponHelpers.d.ts.map +1 -0
- package/dist/src/utils/cspHelper.d.ts.map +1 -0
- package/dist/src/utils/csvHelpers.d.ts.map +1 -0
- package/dist/src/utils/csvHelpers.test.d.ts.map +1 -0
- package/dist/src/utils/dateHelpers.d.ts.map +1 -0
- package/dist/src/utils/deprecation.d.ts.map +1 -0
- package/dist/src/utils/errorHandling.d.ts.map +1 -0
- package/dist/src/utils/errorMessages.d.ts.map +1 -0
- package/dist/src/utils/errorParser.d.ts.map +1 -0
- package/dist/src/utils/eventEmitter.d.ts.map +1 -0
- package/dist/src/utils/exponentialBackoff.d.ts.map +1 -0
- package/dist/src/utils/fetchWithTimeout.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/modalStyles.d.ts.map +1 -0
- package/dist/src/utils/rateLimiter.d.ts.map +1 -0
- package/dist/src/utils/requestDeduplication.d.ts.map +1 -0
- package/dist/src/utils/securityValidation.d.ts.map +1 -0
- package/dist/src/utils/solanaCheck.d.ts.map +1 -0
- package/dist/src/utils/telemetry.d.ts.map +1 -0
- package/dist/src/utils/tokenMintValidator.d.ts.map +1 -0
- package/dist/src/utils/uuid.d.ts.map +1 -0
- package/dist/src/utils/validateConfig.d.ts.map +1 -0
- package/dist/src/utils/walletDetection.d.ts.map +1 -0
- package/dist/src/utils/walletPool.d.ts.map +1 -0
- package/dist/stripe-only.d.ts +2 -14
- package/dist/stripe-only.js +1 -1
- package/dist/stripe-only.mjs +59 -62
- package/dist/styles--eKKnfdj.mjs +2578 -0
- package/dist/styles-BWrLnaUW.js +1 -0
- package/dist/telemetry.d.ts +2 -27
- package/dist/testing/index.d.ts +2 -12
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/{walletPool-DjA7J3a9.js → walletPool-BqNfOhB0.js} +1 -1
- package/dist/{walletPool-BV_z1lEA.mjs → walletPool-DShNjCQ6.mjs} +1 -1
- package/package.json +8 -3
- package/dist/CryptoButton-N8kRfNDO.js +0 -1
- package/dist/SingleCategorySettings-NLBYxM0O.js +0 -3
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/plugin.d.ts.map +0 -1
- package/dist/admin/types.d.ts.map +0 -1
- package/dist/components/CedrosPay.d.ts.map +0 -1
- package/dist/components/CreditsButton.d.ts.map +0 -1
- package/dist/components/CreditsSubscribeButton.d.ts.map +0 -1
- package/dist/components/CryptoButton.d.ts.map +0 -1
- package/dist/components/CryptoSubscribeButton.d.ts.map +0 -1
- package/dist/components/PaymentModal.d.ts.map +0 -1
- package/dist/components/ProductPrice.d.ts.map +0 -1
- package/dist/components/PurchaseButton.d.ts.map +0 -1
- package/dist/components/StripeButton.d.ts.map +0 -1
- package/dist/components/SubscribeButton.d.ts.map +0 -1
- package/dist/components/SubscriptionManagementPanel.d.ts.map +0 -1
- package/dist/components/admin/AISettingsSection.d.ts.map +0 -1
- package/dist/components/admin/AdminAuthManager.d.ts.map +0 -1
- package/dist/components/admin/AutosaveIndicator.d.ts.map +0 -1
- package/dist/components/admin/CedrosPayAdminDashboard.d.ts.map +0 -1
- package/dist/components/admin/ConfigEditor.d.ts.map +0 -1
- package/dist/components/admin/CouponsSection.d.ts.map +0 -1
- package/dist/components/admin/Dropdown.d.ts.map +0 -1
- package/dist/components/admin/ErrorBanner.d.ts.map +0 -1
- package/dist/components/admin/FAQSection.d.ts.map +0 -1
- package/dist/components/admin/MessagingSection.d.ts.map +0 -1
- package/dist/components/admin/OverviewSection.d.ts.map +0 -1
- package/dist/components/admin/PaymentSettingsSection.d.ts.map +0 -1
- package/dist/components/admin/ProductVariationsEditor.d.ts.map +0 -1
- package/dist/components/admin/ProductsSection.d.ts.map +0 -1
- package/dist/components/admin/RefundsSection.d.ts.map +0 -1
- package/dist/components/admin/SecretArrayEditor.d.ts.map +0 -1
- package/dist/components/admin/SettingsSection.d.ts.map +0 -1
- package/dist/components/admin/SingleCategorySettings.d.ts.map +0 -1
- package/dist/components/admin/StatsBar.d.ts.map +0 -1
- package/dist/components/admin/StorefrontSection.d.ts.map +0 -1
- package/dist/components/admin/SubscriptionsSection.d.ts.map +0 -1
- package/dist/components/admin/Toggle.d.ts.map +0 -1
- package/dist/components/admin/TokenMintSelector.d.ts.map +0 -1
- package/dist/components/admin/TransactionsSection.d.ts.map +0 -1
- package/dist/components/admin/VariantInventoryGrid.d.ts.map +0 -1
- package/dist/components/admin/VariationTypeEditor.d.ts.map +0 -1
- package/dist/components/admin/configApi.d.ts.map +0 -1
- package/dist/components/admin/icons.d.ts.map +0 -1
- package/dist/components/admin/index.d.ts.map +0 -1
- package/dist/components/admin/sections-more.d.ts.map +0 -1
- package/dist/components/admin/sections.d.ts.map +0 -1
- package/dist/components/admin/types.d.ts.map +0 -1
- package/dist/components/admin/useAdminAuth.d.ts.map +0 -1
- package/dist/components/admin/useAutosave.d.ts.map +0 -1
- package/dist/components/admin/useProductVariations.d.ts.map +0 -1
- package/dist/components/subscriptionPanelStyles.d.ts.map +0 -1
- package/dist/context/CedrosContext.d.ts.map +0 -1
- package/dist/context/ThemeContext.d.ts.map +0 -1
- package/dist/context/index.d.ts.map +0 -1
- package/dist/crypto-only.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/cartCheckoutRequirements.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/cartProviderPersistence.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/cartReducer.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/cartServerMerge.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/checkoutPaymentMethods.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/checkoutReturn.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/checkoutSchema.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/inventoryHooks.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/mockAdapter.test.d.ts.map +0 -1
- package/dist/ecommerce/__tests__/storage.test.d.ts.map +0 -1
- package/dist/ecommerce/adapters/CommerceAdapter.d.ts.map +0 -1
- package/dist/ecommerce/adapters/mock/mockAdapter.d.ts.map +0 -1
- package/dist/ecommerce/adapters/paywall/paywallAdapter.d.ts.map +0 -1
- package/dist/ecommerce/adapters/paywall/paywallAdapter.test.d.ts.map +0 -1
- package/dist/ecommerce/components/cart/CartLineItem.d.ts.map +0 -1
- package/dist/ecommerce/components/cart/CartPageContent.d.ts.map +0 -1
- package/dist/ecommerce/components/cart/CartPanel.d.ts.map +0 -1
- package/dist/ecommerce/components/cart/CartSidebar.d.ts.map +0 -1
- package/dist/ecommerce/components/cart/CartSummary.d.ts.map +0 -1
- package/dist/ecommerce/components/cart/PromoCodeInput.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/Breadcrumbs.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/CategoryNav.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/FilterPanel.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/Price.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/ProductCard.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/ProductGallery.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/ProductGrid.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/QuantitySelector.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/QuickViewDialog.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/SearchInput.d.ts.map +0 -1
- package/dist/ecommerce/components/catalog/VariantSelector.d.ts.map +0 -1
- package/dist/ecommerce/components/chat/ShopChatPanel.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/AddressForm.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/CheckoutCancelPage.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/CheckoutForm.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/CheckoutLayout.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/CheckoutReceipt.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/CheckoutSuccessPage.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/InventoryVerificationDialog.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/OrderReview.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/PaymentStep.d.ts.map +0 -1
- package/dist/ecommerce/components/checkout/ShippingMethodSelector.d.ts.map +0 -1
- package/dist/ecommerce/components/faq/FAQItem.d.ts.map +0 -1
- package/dist/ecommerce/components/faq/FAQItem.test.d.ts.map +0 -1
- package/dist/ecommerce/components/faq/FAQList.d.ts.map +0 -1
- package/dist/ecommerce/components/faq/index.d.ts.map +0 -1
- package/dist/ecommerce/components/general/EmptyState.d.ts.map +0 -1
- package/dist/ecommerce/components/general/ErrorBoundary.d.ts.map +0 -1
- package/dist/ecommerce/components/general/ErrorState.d.ts.map +0 -1
- package/dist/ecommerce/components/general/toast.d.ts.map +0 -1
- package/dist/ecommerce/components/orders/OrderCard.d.ts.map +0 -1
- package/dist/ecommerce/components/orders/OrderDetails.d.ts.map +0 -1
- package/dist/ecommerce/components/orders/OrderList.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/accordion.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/badge.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/button.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/card.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/dialog.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/input.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/label.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/select.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/separator.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/sheet.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/skeleton.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/tabs.d.ts.map +0 -1
- package/dist/ecommerce/components/ui/textarea.d.ts.map +0 -1
- package/dist/ecommerce/config/context.d.ts.map +0 -1
- package/dist/ecommerce/config/types.d.ts.map +0 -1
- package/dist/ecommerce/hooks/checkoutReturn.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useAIRelatedProducts.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useCartInventory.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useCatalogUrlState.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useCategories.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useCheckoutResultFromUrl.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useHoldExpiry.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useInventoryVerification.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useOrders.d.ts.map +0 -1
- package/dist/ecommerce/hooks/usePaymentMethodsConfig.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useProduct.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useProducts.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useShippingMethods.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useStorefrontSettings.d.ts.map +0 -1
- package/dist/ecommerce/hooks/useSubscriptionData.d.ts.map +0 -1
- package/dist/ecommerce/index.d.ts.map +0 -1
- package/dist/ecommerce/integrations/cedros-pay/useCedrosPayCheckoutAdapter.d.ts.map +0 -1
- package/dist/ecommerce/state/cart/CartProvider.d.ts.map +0 -1
- package/dist/ecommerce/state/cart/cartReducer.d.ts.map +0 -1
- package/dist/ecommerce/state/checkout/checkoutSchema.d.ts.map +0 -1
- package/dist/ecommerce/state/checkout/useCheckout.d.ts.map +0 -1
- package/dist/ecommerce/templates/CartTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/CategoryTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/CheckoutTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/ProductTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/PurchaseHistoryTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/ReceiptTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/ShopTemplate.d.ts.map +0 -1
- package/dist/ecommerce/templates/SubscriptionTemplate.d.ts.map +0 -1
- package/dist/ecommerce/testing/adapterContract.d.ts.map +0 -1
- package/dist/ecommerce/types.d.ts.map +0 -1
- package/dist/ecommerce/utils/cartCheckoutRequirements.d.ts.map +0 -1
- package/dist/ecommerce/utils/cartItemMetadata.d.ts.map +0 -1
- package/dist/ecommerce/utils/cn.d.ts.map +0 -1
- package/dist/ecommerce/utils/money.d.ts.map +0 -1
- package/dist/ecommerce/utils/storage.d.ts.map +0 -1
- package/dist/hooks/useCreditsPayment.d.ts.map +0 -1
- package/dist/hooks/useCreditsSubscription.d.ts.map +0 -1
- package/dist/hooks/useCryptoSubscription.d.ts.map +0 -1
- package/dist/hooks/usePaymentMode.d.ts.map +0 -1
- package/dist/hooks/useRefundVerification.d.ts.map +0 -1
- package/dist/hooks/useStripeCheckout.d.ts.map +0 -1
- package/dist/hooks/useSubscription.d.ts.map +0 -1
- package/dist/hooks/useSubscriptionManagement.d.ts.map +0 -1
- package/dist/hooks/useX402Payment.d.ts.map +0 -1
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/useTranslation.d.ts.map +0 -1
- package/dist/index-B-0trqeD.js +0 -84
- package/dist/index.d.ts.map +0 -1
- package/dist/managers/CreditsManager.d.ts.map +0 -1
- package/dist/managers/ManagerCache.d.ts.map +0 -1
- package/dist/managers/RouteDiscoveryManager.d.ts +0 -75
- package/dist/managers/RouteDiscoveryManager.d.ts.map +0 -1
- package/dist/managers/StripeManager.d.ts.map +0 -1
- package/dist/managers/SubscriptionChangeManager.d.ts.map +0 -1
- package/dist/managers/SubscriptionManager.d.ts.map +0 -1
- package/dist/managers/WalletManager.d.ts.map +0 -1
- package/dist/managers/X402Manager.d.ts.map +0 -1
- package/dist/sections-CKwGmrzV.js +0 -1
- package/dist/sections-DpEdFL1B.mjs +0 -10
- package/dist/stripe-only.d.ts.map +0 -1
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/testing/__tests__/providers.test.d.ts.map +0 -1
- package/dist/testing/helpers.d.ts.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/mocks.d.ts.map +0 -1
- package/dist/testing/providers.d.ts.map +0 -1
- package/dist/types/componentOptions.d.ts.map +0 -1
- package/dist/types/errors.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/subscription.d.ts.map +0 -1
- package/dist/utils/__tests__/couponHelpers.test.d.ts.map +0 -1
- package/dist/utils/__tests__/cspHelper.test.d.ts.map +0 -1
- package/dist/utils/__tests__/fetchWithTimeout.test.d.ts.map +0 -1
- package/dist/utils/cartHelpers.d.ts.map +0 -1
- package/dist/utils/circuitBreaker.d.ts.map +0 -1
- package/dist/utils/couponHelpers.d.ts.map +0 -1
- package/dist/utils/cspHelper.d.ts.map +0 -1
- package/dist/utils/csvHelpers.d.ts.map +0 -1
- package/dist/utils/csvHelpers.test.d.ts.map +0 -1
- package/dist/utils/dateHelpers.d.ts.map +0 -1
- package/dist/utils/deprecation.d.ts.map +0 -1
- package/dist/utils/errorHandling.d.ts.map +0 -1
- package/dist/utils/errorMessages.d.ts.map +0 -1
- package/dist/utils/errorParser.d.ts.map +0 -1
- package/dist/utils/eventEmitter.d.ts.map +0 -1
- package/dist/utils/exponentialBackoff.d.ts.map +0 -1
- package/dist/utils/fetchWithTimeout.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/modalStyles.d.ts.map +0 -1
- package/dist/utils/rateLimiter.d.ts.map +0 -1
- package/dist/utils/requestDeduplication.d.ts.map +0 -1
- package/dist/utils/securityValidation.d.ts.map +0 -1
- package/dist/utils/solanaCheck.d.ts.map +0 -1
- package/dist/utils/telemetry.d.ts.map +0 -1
- package/dist/utils/tokenMintValidator.d.ts.map +0 -1
- package/dist/utils/uuid.d.ts.map +0 -1
- package/dist/utils/validateConfig.d.ts.map +0 -1
- package/dist/utils/walletDetection.d.ts.map +0 -1
- package/dist/utils/walletPool.d.ts.map +0 -1
- /package/dist/{admin → src/admin}/index.d.ts +0 -0
- /package/dist/{admin → src/admin}/plugin.d.ts +0 -0
- /package/dist/{admin → src/admin}/types.d.ts +0 -0
- /package/dist/{components → src/components}/CedrosPay.d.ts +0 -0
- /package/dist/{components → src/components}/CreditsButton.d.ts +0 -0
- /package/dist/{components → src/components}/CreditsSubscribeButton.d.ts +0 -0
- /package/dist/{components → src/components}/CryptoButton.d.ts +0 -0
- /package/dist/{components → src/components}/CryptoSubscribeButton.d.ts +0 -0
- /package/dist/{components → src/components}/PaymentModal.d.ts +0 -0
- /package/dist/{components → src/components}/ProductPrice.d.ts +0 -0
- /package/dist/{components → src/components}/PurchaseButton.d.ts +0 -0
- /package/dist/{components → src/components}/StripeButton.d.ts +0 -0
- /package/dist/{components → src/components}/SubscribeButton.d.ts +0 -0
- /package/dist/{components → src/components}/SubscriptionManagementPanel.d.ts +0 -0
- /package/dist/{components → src/components}/admin/AISettingsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/AdminAuthManager.d.ts +0 -0
- /package/dist/{components → src/components}/admin/AutosaveIndicator.d.ts +0 -0
- /package/dist/{components → src/components}/admin/CedrosPayAdminDashboard.d.ts +0 -0
- /package/dist/{components → src/components}/admin/ConfigEditor.d.ts +0 -0
- /package/dist/{components → src/components}/admin/CouponsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/Dropdown.d.ts +0 -0
- /package/dist/{components → src/components}/admin/ErrorBanner.d.ts +0 -0
- /package/dist/{components → src/components}/admin/FAQSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/MessagingSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/OverviewSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/PaymentSettingsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/ProductVariationsEditor.d.ts +0 -0
- /package/dist/{components → src/components}/admin/ProductsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/RefundsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/SecretArrayEditor.d.ts +0 -0
- /package/dist/{components → src/components}/admin/SettingsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/SingleCategorySettings.d.ts +0 -0
- /package/dist/{components → src/components}/admin/StatsBar.d.ts +0 -0
- /package/dist/{components → src/components}/admin/StorefrontSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/SubscriptionsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/Toggle.d.ts +0 -0
- /package/dist/{components → src/components}/admin/TransactionsSection.d.ts +0 -0
- /package/dist/{components → src/components}/admin/VariantInventoryGrid.d.ts +0 -0
- /package/dist/{components → src/components}/admin/VariationTypeEditor.d.ts +0 -0
- /package/dist/{components → src/components}/admin/configApi.d.ts +0 -0
- /package/dist/{components → src/components}/admin/icons.d.ts +0 -0
- /package/dist/{components → src/components}/admin/sections-more.d.ts +0 -0
- /package/dist/{components → src/components}/admin/sections.d.ts +0 -0
- /package/dist/{components → src/components}/admin/types.d.ts +0 -0
- /package/dist/{components → src/components}/admin/useAutosave.d.ts +0 -0
- /package/dist/{components → src/components}/admin/useProductVariations.d.ts +0 -0
- /package/dist/{components → src/components}/subscriptionPanelStyles.d.ts +0 -0
- /package/dist/{context → src/context}/CedrosContext.d.ts +0 -0
- /package/dist/{context → src/context}/ThemeContext.d.ts +0 -0
- /package/dist/{context → src/context}/index.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/cartCheckoutRequirements.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/cartProviderPersistence.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/cartReducer.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/cartServerMerge.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/checkoutPaymentMethods.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/checkoutReturn.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/checkoutSchema.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/inventoryHooks.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/mockAdapter.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/__tests__/storage.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/adapters/CommerceAdapter.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/adapters/mock/mockAdapter.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/adapters/paywall/paywallAdapter.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/adapters/paywall/paywallAdapter.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/cart/CartLineItem.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/cart/CartPageContent.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/cart/CartPanel.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/cart/CartSidebar.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/cart/CartSummary.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/cart/PromoCodeInput.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/Breadcrumbs.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/CategoryNav.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/FilterPanel.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/Price.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/ProductCard.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/ProductGallery.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/ProductGrid.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/QuantitySelector.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/QuickViewDialog.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/SearchInput.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/catalog/VariantSelector.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/chat/ShopChatPanel.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/AddressForm.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/CheckoutCancelPage.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/CheckoutForm.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/CheckoutLayout.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/CheckoutReceipt.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/CheckoutSuccessPage.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/InventoryVerificationDialog.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/OrderReview.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/PaymentStep.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/checkout/ShippingMethodSelector.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/faq/FAQItem.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/faq/FAQItem.test.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/faq/FAQList.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/faq/index.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/general/EmptyState.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/general/ErrorBoundary.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/general/ErrorState.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/general/toast.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/orders/OrderCard.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/orders/OrderDetails.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/orders/OrderList.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/accordion.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/badge.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/button.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/card.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/dialog.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/input.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/label.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/select.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/separator.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/sheet.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/skeleton.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/tabs.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/components/ui/textarea.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/config/context.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/config/types.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/checkoutReturn.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useAIRelatedProducts.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useCartInventory.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useCatalogUrlState.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useCategories.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useCheckoutResultFromUrl.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useHoldExpiry.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useInventoryVerification.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useOrders.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/usePaymentMethodsConfig.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useProduct.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useProducts.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useShippingMethods.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useStorefrontSettings.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/hooks/useSubscriptionData.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/index.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/integrations/cedros-pay/useCedrosPayCheckoutAdapter.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/state/cart/CartProvider.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/state/cart/cartReducer.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/state/checkout/checkoutSchema.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/state/checkout/useCheckout.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/CartTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/CategoryTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/CheckoutTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/ProductTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/PurchaseHistoryTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/ReceiptTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/ShopTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/templates/SubscriptionTemplate.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/testing/adapterContract.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/types.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/utils/cartCheckoutRequirements.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/utils/cartItemMetadata.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/utils/cn.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/utils/money.d.ts +0 -0
- /package/dist/{ecommerce → src/ecommerce}/utils/storage.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useCreditsPayment.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useCreditsSubscription.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useCryptoSubscription.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/usePaymentMode.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useRefundVerification.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useStripeCheckout.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useSubscription.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useSubscriptionManagement.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useX402Payment.d.ts +0 -0
- /package/dist/{i18n → src/i18n}/index.d.ts +0 -0
- /package/dist/{i18n → src/i18n}/useTranslation.d.ts +0 -0
- /package/dist/{managers → src/managers}/CreditsManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/ManagerCache.d.ts +0 -0
- /package/dist/{managers → src/managers}/StripeManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/SubscriptionChangeManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/SubscriptionManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/WalletManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/X402Manager.d.ts +0 -0
- /package/dist/{testing → src/testing}/__tests__/providers.test.d.ts +0 -0
- /package/dist/{testing → src/testing}/helpers.d.ts +0 -0
- /package/dist/{testing → src/testing}/mocks.d.ts +0 -0
- /package/dist/{testing → src/testing}/providers.d.ts +0 -0
- /package/dist/{types → src/types}/componentOptions.d.ts +0 -0
- /package/dist/{types → src/types}/errors.d.ts +0 -0
- /package/dist/{types → src/types}/index.d.ts +0 -0
- /package/dist/{types → src/types}/subscription.d.ts +0 -0
- /package/dist/{utils → src/utils}/__tests__/couponHelpers.test.d.ts +0 -0
- /package/dist/{utils → src/utils}/__tests__/cspHelper.test.d.ts +0 -0
- /package/dist/{utils → src/utils}/__tests__/fetchWithTimeout.test.d.ts +0 -0
- /package/dist/{utils → src/utils}/cartHelpers.d.ts +0 -0
- /package/dist/{utils → src/utils}/circuitBreaker.d.ts +0 -0
- /package/dist/{utils → src/utils}/couponHelpers.d.ts +0 -0
- /package/dist/{utils → src/utils}/cspHelper.d.ts +0 -0
- /package/dist/{utils → src/utils}/csvHelpers.d.ts +0 -0
- /package/dist/{utils → src/utils}/csvHelpers.test.d.ts +0 -0
- /package/dist/{utils → src/utils}/dateHelpers.d.ts +0 -0
- /package/dist/{utils → src/utils}/deprecation.d.ts +0 -0
- /package/dist/{utils → src/utils}/errorHandling.d.ts +0 -0
- /package/dist/{utils → src/utils}/errorMessages.d.ts +0 -0
- /package/dist/{utils → src/utils}/errorParser.d.ts +0 -0
- /package/dist/{utils → src/utils}/eventEmitter.d.ts +0 -0
- /package/dist/{utils → src/utils}/exponentialBackoff.d.ts +0 -0
- /package/dist/{utils → src/utils}/fetchWithTimeout.d.ts +0 -0
- /package/dist/{utils → src/utils}/index.d.ts +0 -0
- /package/dist/{utils → src/utils}/logger.d.ts +0 -0
- /package/dist/{utils → src/utils}/modalStyles.d.ts +0 -0
- /package/dist/{utils → src/utils}/rateLimiter.d.ts +0 -0
- /package/dist/{utils → src/utils}/requestDeduplication.d.ts +0 -0
- /package/dist/{utils → src/utils}/securityValidation.d.ts +0 -0
- /package/dist/{utils → src/utils}/solanaCheck.d.ts +0 -0
- /package/dist/{utils → src/utils}/telemetry.d.ts +0 -0
- /package/dist/{utils → src/utils}/tokenMintValidator.d.ts +0 -0
- /package/dist/{utils → src/utils}/uuid.d.ts +0 -0
- /package/dist/{utils → src/utils}/validateConfig.d.ts +0 -0
- /package/dist/{utils → src/utils}/walletDetection.d.ts +0 -0
- /package/dist/{utils → src/utils}/walletPool.d.ts +0 -0
package/dist/index-B-0trqeD.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";var jp=Object.create;var Ei=Object.defineProperty;var Sp=Object.getOwnPropertyDescriptor;var Cp=Object.getOwnPropertyNames;var Np=Object.getPrototypeOf,Ep=Object.prototype.hasOwnProperty;var Ap=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Cp(t))!Ep.call(e,o)&&o!==n&&Ei(e,o,{get:()=>t[o],enumerable:!(r=Sp(t,o))||r.enumerable});return e};var Pp=(e,t,n)=>(n=e!=null?jp(Np(e)):{},Ap(t||!e||!e.__esModule?Ei(n,"default",{value:e,enumerable:!0}):n,e));const oe=require("./CedrosContext-C26DlvLF.js"),s=require("react/jsx-runtime"),b=require("react"),Ip=require("@solana/wallet-adapter-react");require("@solana/web3.js");const Ai=require("./index-WcOlBYZJ.js"),Tp=require("@cedros/login-react"),fa=require("react-dom");function nl(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const p=nl(b),Ps=nl(fa);function Rp(e){return!e||!e.coupon_codes?[]:e.coupon_codes.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function Op(e,t=", "){return e.join(t)}function Mp(e,t){return e<=0?0:(e-t)/e*100}function Lp(e,t){if(!t||t.length===0)return e;let n=e,r=0;for(const o of t)if(o.discountType==="percentage"){const a=1-o.discountValue/100;n=n*a}else o.discountType==="fixed"&&(r+=o.discountValue);return n=n-r,n<0&&(n=0),Math.ceil(n*100)/100}function rl(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return 1;const n=Math.floor(t);return n>0?n:1}function us(e){return e.map(t=>({resource:t.resource,quantity:rl(t.quantity),variantId:t.variantId,metadata:t.metadata}))}function Mr(e){return e.reduce((t,n)=>t+rl(n.quantity),0)}function Dp(e){return!!(e&&e.length>0&&(e.length>1||e.length===1&&(e[0].quantity??1)>1))}const Un=new Map,Uo=new Map,bn=new Map,fs=1e3,sl=200,pa=2e3;function $p(e){const t=bn.get(e);return t?Date.now()<t?!0:(bn.delete(e),!1):!1}function zp(e,t=sl){const n=Date.now()+t;if(bn.set(e,n),bn.size>fs){const r=Array.from(bn.keys()).slice(0,bn.size-fs);for(const o of r)bn.delete(o)}}function Fp(e,t=pa){const n=Un.get(e);if(!n)return!1;const o=Date.now()-n;return o<t?(oe.getLogger().debug(`[Deduplication] Duplicate request blocked: ${e} (${o}ms ago)`),!0):!1}function Bp(e){if(Un.set(e,Date.now()),Un.size>fs){const t=Array.from(Un.keys()).slice(0,Un.size-fs);for(const n of t)Un.delete(n)}}function Up(e){return Uo.get(e)||null}function Vp(e,t){Uo.set(e,t);const n=()=>{Uo.delete(e),Bp(e)};return t.then(n,n),t}async function Wp(e,t,n={}){const{windowMs:r=pa,throwOnDuplicate:o=!0}=n,a=Up(e);if(a)return oe.getLogger().debug(`[Deduplication] Reusing in-flight request: ${e}`),a;if(Fp(e,r)){if(o)throw new Error(`Duplicate request blocked: ${e}`);oe.getLogger().warn(`[Deduplication] Duplicate request blocked but not throwing: ${e}`);return}const i=t();return Vp(e,i)}function Qn(e,t,n={}){const{cooldownMs:r=sl,deduplicationWindowMs:o=pa}=n;return async()=>{if($p(e)){oe.getLogger().debug(`[Deduplication] Button in cooldown: ${e}`);return}zp(e,r);try{await Wp(e,async()=>{const a=t();a instanceof Promise&&await a},{windowMs:o,throwOnDuplicate:!1})}catch(a){if(a instanceof Error&&a.message.includes("Duplicate request"))return;throw a}}}function ol(e){return{background:"none",border:"none",fontSize:"1.5rem",cursor:"pointer",color:e,opacity:.6,padding:"0.25rem",lineHeight:1}}const dn={PAYMENT_START:"cedros:payment:start",WALLET_CONNECT:"cedros:wallet:connect",WALLET_CONNECTED:"cedros:wallet:connected",WALLET_ERROR:"cedros:wallet:error",PAYMENT_PROCESSING:"cedros:payment:processing",PAYMENT_SUCCESS:"cedros:payment:success",PAYMENT_ERROR:"cedros:payment:error"};function An(e,t){if(typeof window>"u")return;const n=new CustomEvent(e,{detail:t,bubbles:!0,cancelable:!1});window.dispatchEvent(n)}function Kn(e,t,n){An(dn.PAYMENT_START,{timestamp:Date.now(),method:e,resource:t,itemCount:n})}function qp(e){An(dn.WALLET_CONNECT,{timestamp:Date.now(),wallet:e})}function Hp(e,t){An(dn.WALLET_CONNECTED,{timestamp:Date.now(),wallet:e,publicKey:t})}function Zp(e,t){An(dn.WALLET_ERROR,{timestamp:Date.now(),wallet:t,error:e})}function Jn(e,t,n){An(dn.PAYMENT_PROCESSING,{timestamp:Date.now(),method:e,resource:t,itemCount:n})}function Xn(e,t,n,r){An(dn.PAYMENT_SUCCESS,{timestamp:Date.now(),method:e,transactionId:t,resource:n,itemCount:r})}function Bt(e,t,n,r){An(dn.PAYMENT_ERROR,{timestamp:Date.now(),method:e,error:t,resource:n,itemCount:r})}function Gp(e){return e instanceof oe.PaymentError&&e.canRetry()}function Yp(e){return e instanceof oe.PaymentError?e.getUserMessage():e instanceof Error?e.message:String(e)}function Qp(e){switch(e){case"mainnet-beta":return"https://api.mainnet-beta.solana.com";case"devnet":return"https://api.devnet.solana.com";case"testnet":return"https://api.testnet.solana.com";default:return"https://api.mainnet-beta.solana.com"}}function Kp(e){try{const t=new URL(e);return`${t.protocol}//${t.host}`}catch{return e}}function al(e={}){const{solanaCluster:t="mainnet-beta",solanaEndpoint:n,customRpcProviders:r=[],allowUnsafeScripts:o=!1,additionalScriptSrc:a=[],additionalConnectSrc:i=[],additionalFrameSrc:c=[],includeStripe:l=!0,includeSolana:d=!0}=e;o&&console.warn("[CedrosPay] SECURITY WARNING: allowUnsafeScripts is enabled. This adds 'unsafe-inline' and 'unsafe-eval' to script-src, which significantly weakens CSP protection against XSS attacks. Only use this in development or if absolutely required by your framework.");const f=["'self'"];o&&f.push("'unsafe-inline'","'unsafe-eval'"),l&&f.push("https://js.stripe.com"),f.push(...a);const u=["'self'"];if(l&&u.push("https://api.stripe.com","https://*.stripe.com"),d){const h=Qp(t);if(u.push(h),n){const v=Kp(n);u.includes(v)||u.push(v)}r.forEach(v=>{u.includes(v)||u.push(v)})}u.push(...i);const m=["'self'"];return l&&m.push("https://js.stripe.com","https://checkout.stripe.com"),m.push(...c),{scriptSrc:f,connectSrc:u,frameSrc:m}}function il(e,t="header"){const{scriptSrc:n,connectSrc:r,frameSrc:o}=e;switch(t){case"header":case"meta":case"nextjs":case"nginx":{const a=[];return n.length>0&&a.push(`script-src ${n.join(" ")}`),r.length>0&&a.push(`connect-src ${r.join(" ")}`),o.length>0&&a.push(`frame-src ${o.join(" ")}`),a.join("; ")}case"helmet":{const a={};return n.length>0&&(a.scriptSrc=n),r.length>0&&(a.connectSrc=r),o.length>0&&(a.frameSrc=o),a}case"directives":return{scriptSrc:n,connectSrc:r,frameSrc:o};default:throw new Error(`Unknown CSP format: ${t}`)}}function Jp(e={},t="header"){const n=al(e);return il(n,t)}const Xp={HELIUS:"https://*.helius-rpc.com",QUICKNODE:"https://*.quicknode.pro",ALCHEMY:"https://*.alchemy.com",ANKR:"https://rpc.ankr.com",TRITON:"https://*.rpcpool.com"},em={MAINNET_CUSTOM_RPC:e=>({solanaCluster:"mainnet-beta",solanaEndpoint:e,allowUnsafeScripts:!1}),MAINNET_NEXTJS:e=>({solanaCluster:"mainnet-beta",solanaEndpoint:e,allowUnsafeScripts:!1}),DEVNET:()=>({solanaCluster:"devnet",allowUnsafeScripts:!1}),CRYPTO_ONLY:e=>({solanaCluster:"mainnet-beta",solanaEndpoint:e,includeStripe:!1}),STRIPE_ONLY:()=>({includeStripe:!0,includeSolana:!1})};function br(e){return new Date(e).toLocaleString()}function Is(){const{stripeManager:e}=oe.useCedrosContext(),[t,n]=b.useState({status:"idle",error:null,transactionId:null}),r=b.useRef(!1),o=b.useCallback(async(c,l,d,f,u,m)=>{if(r.current)return{success:!1,error:"Payment already in progress"};r.current=!0,n({status:"loading",error:null,transactionId:null});const h={resource:c,successUrl:l,cancelUrl:d,metadata:f,customerEmail:u,couponCode:m};try{const v=await e.processPayment(h);return n({status:v.success?"success":"error",error:v.success?null:v.error||"Payment failed",transactionId:v.success&&v.transactionId||null}),v}catch(v){const x=v instanceof Error?v.message:"Payment failed";return n({status:"error",error:x,transactionId:null}),{success:!1,error:x}}finally{r.current=!1}},[e]),a=b.useCallback(async(c,l,d,f,u,m,h,v,x,g,y,k,_)=>{if(r.current)return{success:!1,error:"Payment already in progress"};r.current=!0,n({status:"loading",error:null,transactionId:null});const w=us(c);try{const j=await e.processCartCheckout({items:w,successUrl:l,cancelUrl:d,metadata:f,customerEmail:u,customerName:h,customerPhone:v,shippingAddress:x,billingAddress:g,couponCode:m,tipAmount:y,shippingMethodId:k,paymentMethodId:_});return n({status:j.success?"success":"error",error:j.success?null:j.error||"Cart checkout failed",transactionId:j.success&&j.transactionId||null}),j}catch(j){const P=j instanceof Error?j.message:"Cart checkout failed";return n({status:"error",error:P,transactionId:null}),{success:!1,error:P}}finally{r.current=!1}},[e]),i=b.useCallback(()=>{n({status:"idle",error:null,transactionId:null}),r.current=!1},[]);return{...t,processPayment:o,processCartCheckout:a,reset:i}}function Lr(e,t){return b.useMemo(()=>{const n=Dp(t),r=e||(t?.length===1?t[0].resource:"");return{isCartMode:n,effectiveResource:r}},[e,t])}const tm=(e,t,n)=>{const r=e[t];return r?typeof r=="function"?r():Promise.resolve(r):new Promise((o,a)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(a.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==n?". Note that variables only represent file names one level deep.":""))))})},xo=new Map;let Vr=null;async function Pi(e){if(xo.has(e))return xo.get(e);try{const t=await tm(Object.assign({"./translations/ar.json":()=>Promise.resolve().then(()=>require("./ar-LVoQZTFI.js")),"./translations/bn.json":()=>Promise.resolve().then(()=>require("./bn-BR5Cv1T4.js")),"./translations/de.json":()=>Promise.resolve().then(()=>require("./de-pQxy-oD1.js")),"./translations/en.json":()=>Promise.resolve().then(()=>require("./en-Yikrt96u.js")),"./translations/es.json":()=>Promise.resolve().then(()=>require("./es-D24cg8dD.js")),"./translations/fil.json":()=>Promise.resolve().then(()=>require("./fil-BOBft9G-.js")),"./translations/fr.json":()=>Promise.resolve().then(()=>require("./fr-Ct9ub8Fa.js")),"./translations/he.json":()=>Promise.resolve().then(()=>require("./he-DtQqRKRq.js")),"./translations/id.json":()=>Promise.resolve().then(()=>require("./id-CiM2mL7C.js")),"./translations/in.json":()=>Promise.resolve().then(()=>require("./in-Bzcjmxcc.js")),"./translations/it.json":()=>Promise.resolve().then(()=>require("./it-Blb_pIJl.js")),"./translations/jp.json":()=>Promise.resolve().then(()=>require("./jp-9NHyIuwY.js")),"./translations/kr.json":()=>Promise.resolve().then(()=>require("./kr-DvzJ-0yX.js")),"./translations/ms.json":()=>Promise.resolve().then(()=>require("./ms-BOAu5pUB.js")),"./translations/nl.json":()=>Promise.resolve().then(()=>require("./nl-WHh_DfO8.js")),"./translations/pa.json":()=>Promise.resolve().then(()=>require("./pa-B7kIhZCF.js")),"./translations/pl.json":()=>Promise.resolve().then(()=>require("./pl-H0hBKdvF.js")),"./translations/pt.json":()=>Promise.resolve().then(()=>require("./pt-DwGrViQ3.js")),"./translations/ru.json":()=>Promise.resolve().then(()=>require("./ru-CB2m0UDT.js")),"./translations/ta.json":()=>Promise.resolve().then(()=>require("./ta-CAS197uN.js")),"./translations/th.json":()=>Promise.resolve().then(()=>require("./th-Cpz2cFcg.js")),"./translations/tr.json":()=>Promise.resolve().then(()=>require("./tr-hQrEFk86.js")),"./translations/uk.json":()=>Promise.resolve().then(()=>require("./uk-DrK2Sv8C.js")),"./translations/ur.json":()=>Promise.resolve().then(()=>require("./ur-D5-7mN9a.js")),"./translations/vn.json":()=>Promise.resolve().then(()=>require("./vn-B_iut9YL.js")),"./translations/zh.json":()=>Promise.resolve().then(()=>require("./zh-PR82dCHr.js"))}),`./translations/${e}.json`,3),n=t.default||t;return xo.set(e,n),n}catch{return null}}async function nm(){if(Vr)return Vr;const e=Object.assign({"./translations/ar.json":()=>Promise.resolve().then(()=>require("./ar-LVoQZTFI.js")),"./translations/bn.json":()=>Promise.resolve().then(()=>require("./bn-BR5Cv1T4.js")),"./translations/de.json":()=>Promise.resolve().then(()=>require("./de-pQxy-oD1.js")),"./translations/en.json":()=>Promise.resolve().then(()=>require("./en-Yikrt96u.js")),"./translations/es.json":()=>Promise.resolve().then(()=>require("./es-D24cg8dD.js")),"./translations/fil.json":()=>Promise.resolve().then(()=>require("./fil-BOBft9G-.js")),"./translations/fr.json":()=>Promise.resolve().then(()=>require("./fr-Ct9ub8Fa.js")),"./translations/he.json":()=>Promise.resolve().then(()=>require("./he-DtQqRKRq.js")),"./translations/id.json":()=>Promise.resolve().then(()=>require("./id-CiM2mL7C.js")),"./translations/in.json":()=>Promise.resolve().then(()=>require("./in-Bzcjmxcc.js")),"./translations/it.json":()=>Promise.resolve().then(()=>require("./it-Blb_pIJl.js")),"./translations/jp.json":()=>Promise.resolve().then(()=>require("./jp-9NHyIuwY.js")),"./translations/kr.json":()=>Promise.resolve().then(()=>require("./kr-DvzJ-0yX.js")),"./translations/ms.json":()=>Promise.resolve().then(()=>require("./ms-BOAu5pUB.js")),"./translations/nl.json":()=>Promise.resolve().then(()=>require("./nl-WHh_DfO8.js")),"./translations/pa.json":()=>Promise.resolve().then(()=>require("./pa-B7kIhZCF.js")),"./translations/pl.json":()=>Promise.resolve().then(()=>require("./pl-H0hBKdvF.js")),"./translations/pt.json":()=>Promise.resolve().then(()=>require("./pt-DwGrViQ3.js")),"./translations/ru.json":()=>Promise.resolve().then(()=>require("./ru-CB2m0UDT.js")),"./translations/ta.json":()=>Promise.resolve().then(()=>require("./ta-CAS197uN.js")),"./translations/th.json":()=>Promise.resolve().then(()=>require("./th-Cpz2cFcg.js")),"./translations/tr.json":()=>Promise.resolve().then(()=>require("./tr-hQrEFk86.js")),"./translations/uk.json":()=>Promise.resolve().then(()=>require("./uk-DrK2Sv8C.js")),"./translations/ur.json":()=>Promise.resolve().then(()=>require("./ur-D5-7mN9a.js")),"./translations/vn.json":()=>Promise.resolve().then(()=>require("./vn-B_iut9YL.js")),"./translations/zh.json":()=>Promise.resolve().then(()=>require("./zh-PR82dCHr.js"))}),t=[];for(const n in e){const r=n.match(/\.\/translations\/([a-z]{2,3}(?:-[A-Z]{2})?)\.json$/);r&&t.push(r[1])}return Vr=t.length>0?t:["en"],Vr}function cl(){return typeof navigator>"u"?"en":(navigator.language||navigator.userLanguage||"en").split("-")[0].toLowerCase()}async function ll(e){let t=await Pi(e);if(t||(t=await Pi("en"),t))return t;throw new Error("Critical: No translation files found, not even en.json")}function dl(e){return(t,n)=>{const r=t.split(".");let o=e;for(const a of r)if(o&&typeof o=="object"&&a in o)o=o[a];else return t;return typeof o!="string"?t:n?Object.entries(n).reduce((a,[i,c])=>a.replace(new RegExp(`\\{${i}\\}`,"g"),c),o):o}}function rm(e,t,n=!0){const r=t.errors[e];if(!r){const o=oe.getUserFriendlyError(e);return n&&o.action?`${o.message} ${o.action}`:o.message}return n&&r.action?`${r.message} ${r.action}`:r.message}function Pn(e){const[t,n]=b.useState(null),[r,o]=b.useState(!0),a=b.useMemo(()=>e||cl(),[e]);return b.useEffect(()=>{let c=!1;return(async()=>{o(!0);try{const d=await ll(a);c||(n(d),o(!1))}catch(d){console.error("[CedrosPay] Failed to load translations:",d),c||o(!1)}})(),()=>{c=!0}},[a]),{t:b.useMemo(()=>t?dl(t):c=>({"ui.purchase":"Purchase","ui.pay_with_card":"Pay with Card","ui.pay_with_crypto":"Pay with USDC","ui.pay_with_usdc":"Pay with USDC","ui.card":"Card","ui.usdc_solana":"USDC (Solana)","ui.crypto":"Crypto","ui.processing":"Processing...","ui.loading":"Loading...","ui.connect_wallet":"Connect Wallet","ui.connecting":"Connecting..."})[c]||c,[t]),locale:a,isLoading:r,translations:t}}function sm(e,t=!0){const{translations:n}=Pn();if(!n){const o=oe.getUserFriendlyError(e);return t&&o.action?`${o.message} ${o.action}`:o.message}const r=n.errors[e];if(!r){const o=oe.getUserFriendlyError(e);return t&&o.action?`${o.message} ${o.action}`:o.message}return t&&r.action?`${r.message} ${r.action}`:r.message}function ma({resource:e,items:t,successUrl:n,cancelUrl:r,metadata:o,customerEmail:a,couponCode:i,label:c,disabled:l=!1,onAttempt:d,onSuccess:f,onError:u,className:m=""}){const{status:h,error:v,transactionId:x,processPayment:g,processCartCheckout:y}=Is(),k=oe.useCedrosTheme(),{isCartMode:_,effectiveResource:w}=Lr(e,t),{t:j,translations:P}=Pn(),T=c||j("ui.pay_with_card"),N=k.unstyled?m:`${k.className} cedros-theme__stripe-button ${m}`.trim(),A=v&&typeof v!="string"?v?.code??null:null,I=v?typeof v=="string"?v:(S=>{if(!S||!P)return"";const C=P.errors[S];return C?C.action?`${C.message} ${C.action}`:C.message:""})(A):null,M=b.useCallback(async()=>{oe.getLogger().debug("[StripeButton] executePayment with couponCode:",i);const S=_&&t?Mr(t):void 0;if(Kn("stripe",w,S),d&&d("stripe"),!_&&!w){const W="Invalid payment configuration: missing resource or items";oe.getLogger().error("[StripeButton]",W),Bt("stripe",W,w,S),u&&u(W);return}let C;Jn("stripe",w,S),_&&t?(oe.getLogger().debug("[StripeButton] Processing cart checkout with coupon:",i),C=await y(t,n,r,o,a,i)):w&&(oe.getLogger().debug("[StripeButton] Processing single payment with coupon:",i),C=await g(w,n,r,o,a,i)),C&&C.success&&C.transactionId?(Xn("stripe",C.transactionId,w,S),f&&f(C.transactionId)):C&&!C.success&&C.error&&(Bt("stripe",C.error,w,S),u&&u(C.error))},[i,_,w,t,n,r,o,a,y,g,d,f,u]),z=b.useMemo(()=>_&&t?`stripe-cart-${t.map(S=>S.resource).join("-")}`:`stripe-${w||"unknown"}`,[_,t,w]),D=b.useMemo(()=>Qn(z,M),[z,M]),V=h==="loading",L=l||V;return s.jsxs("div",{className:N,style:k.unstyled?{}:k.style,children:[s.jsx("button",{onClick:D,disabled:L,className:k.unstyled?m:"cedros-theme__button cedros-theme__stripe",type:"button",children:V?j("ui.processing"):T}),I&&s.jsx("div",{className:k.unstyled?"":"cedros-theme__error",children:I}),x&&s.jsx("div",{className:k.unstyled?"":"cedros-theme__success",children:j("ui.payment_successful")})]})}function ul(){const{creditsManager:e}=oe.useCedrosContext(),[t,n]=b.useState({status:"idle",error:null,transactionId:null,requirement:null,holdId:null}),r=b.useRef(!1),o=b.useCallback(async(d,f)=>{n(u=>({...u,status:"loading",error:null}));try{const u=await e.requestQuote(d,f);return n(m=>({...m,status:"idle",requirement:u})),u}catch(u){const m=u instanceof Error?u.message:"Failed to fetch credits quote";return n(h=>({...h,status:"error",error:m})),null}},[e]),a=b.useCallback(async(d,f)=>{n(u=>({...u,status:"loading",error:null}));try{const u=us(d),m=await e.requestCartQuote(u,f);return n(h=>({...h,status:"idle"})),m}catch(u){const m=u instanceof Error?u.message:"Failed to fetch cart credits quote";return n(h=>({...h,status:"error",error:m})),null}},[e]),i=b.useCallback(async(d,f,u,m)=>{if(r.current)return{success:!1,error:"Payment already in progress"};r.current=!0,n({status:"loading",error:null,transactionId:null,requirement:null,holdId:null});try{const h=await e.processPayment(d,f,u,m);return n({status:h.success?"success":"error",error:h.success?null:h.error||"Credits payment failed",transactionId:h.success&&h.transactionId||null,requirement:null,holdId:null}),h}catch(h){const v=h instanceof Error?h.message:"Credits payment failed";return n({status:"error",error:v,transactionId:null,requirement:null,holdId:null}),{success:!1,error:v}}finally{r.current=!1}},[e]),c=b.useCallback(async(d,f,u,m)=>{if(r.current)return{success:!1,error:"Payment already in progress"};r.current=!0,n({status:"loading",error:null,transactionId:null,requirement:null,holdId:null});let h=null;try{const v=us(d),x=await e.requestCartQuote(v,u);if(!x)return n({status:"error",error:"Credits payment not available for this cart",transactionId:null,requirement:null,holdId:null}),{success:!1,error:"Credits payment not available"};h=(await e.createCartHold({cartId:x.cartId,authToken:f})).holdId,n(k=>({...k,holdId:h}));const y=await e.authorizeCartPayment({cartId:x.cartId,holdId:h,authToken:f,metadata:m});if(!y.success&&h)try{await e.releaseHold(h,f)}catch(k){oe.getLogger().warn("[useCreditsPayment] Hold release failed, will expire server-side",{holdId:h,error:k instanceof Error?k.message:String(k)})}return n({status:y.success?"success":"error",error:y.success?null:y.error||"Cart credits payment failed",transactionId:y.success&&y.transactionId||null,requirement:null,holdId:null}),{success:y.success,transactionId:y.transactionId,error:y.error}}catch(v){const x=v instanceof Error?v.message:"Cart credits payment failed";if(h)try{await e.releaseHold(h,f)}catch(g){oe.getLogger().warn("[useCreditsPayment] Hold release failed, will expire server-side",{holdId:h,error:g instanceof Error?g.message:String(g)})}return n({status:"error",error:x,transactionId:null,requirement:null,holdId:null}),{success:!1,error:x}}finally{r.current=!1}},[e]),l=b.useCallback(()=>{n({status:"idle",error:null,transactionId:null,requirement:null,holdId:null}),r.current=!1},[]);return{...t,fetchQuote:o,fetchCartQuote:a,processPayment:i,processCartPayment:c,reset:l}}function ha({resource:e,items:t,authToken:n,metadata:r,couponCode:o,label:a,disabled:i=!1,onAttempt:c,onSuccess:l,onError:d,className:f=""}){const{status:u,error:m,transactionId:h,processPayment:v,processCartPayment:x}=ul(),g=oe.useCedrosTheme(),{isCartMode:y,effectiveResource:k}=Lr(e,t),{t:_,translations:w}=Pn(),j=a||_("ui.pay_with_credits")||"Pay with Credits",P=g.unstyled?f:`${g.className} cedros-theme__credits-button ${f}`.trim(),T=m&&typeof m!="string"?m?.code??null:null,A=m?typeof m=="string"?m:(V=>{if(!V||!w)return"";const L=w.errors[V];return L?L.action?`${L.message} ${L.action}`:L.message:""})(T):null,R=b.useCallback(async()=>{oe.getLogger().debug("[CreditsButton] executePayment");const V=y&&t?Mr(t):void 0;if(Kn("credits",k,V),c&&c("credits"),!n){const S="Authentication required: please log in to pay with credits";oe.getLogger().error("[CreditsButton]",S),Bt("credits",S,k,V),d&&d(S);return}if(!y&&!k){const S="Invalid payment configuration: missing resource";oe.getLogger().error("[CreditsButton]",S),Bt("credits",S,k,V),d&&d(S);return}let L;Jn("credits",k,V),y&&t?(oe.getLogger().debug("[CreditsButton] Processing cart checkout"),L=await x(t,n,o,r)):k&&(oe.getLogger().debug("[CreditsButton] Processing single payment"),L=await v(k,n,o,r)),L&&L.success&&L.transactionId?(Xn("credits",L.transactionId,k,V),l&&l(L.transactionId)):L&&!L.success&&L.error&&(Bt("credits",L.error,k,V),d&&d(L.error))},[n,y,k,t,o,r,v,x,c,l,d]),I=b.useMemo(()=>y&&t?`credits-cart-${t.map(V=>V.resource).join("-")}`:`credits-${k||"unknown"}`,[y,t,k]),M=b.useMemo(()=>Qn(I,R),[I,R]),z=u==="loading",D=i||z;return s.jsxs("div",{className:P,style:g.unstyled?{}:g.style,children:[s.jsx("button",{onClick:M,disabled:D,className:g.unstyled?f:"cedros-theme__button cedros-theme__credits",type:"button",children:z?_("ui.processing"):j}),A&&s.jsx("div",{className:g.unstyled?"":"cedros-theme__error",children:A}),h&&s.jsx("div",{className:g.unstyled?"":"cedros-theme__success",children:_("ui.payment_successful")})]})}const om=b.lazy(()=>Promise.resolve().then(()=>require("./CryptoButton-N8kRfNDO.js")).then(e=>e.CryptoButton$1).then(e=>({default:e.CryptoButton}))),fl=({isOpen:e,onClose:t,resource:n,items:r,cardLabel:o="Card",cryptoLabel:a="USDC (Solana)",creditsLabel:i="Pay with Credits",showCard:c=!0,showCrypto:l=!0,showCredits:d=!1,onPaymentAttempt:f,onPaymentSuccess:u,onPaymentError:m,onStripeSuccess:h,onCryptoSuccess:v,onCreditsSuccess:x,onStripeError:g,onCryptoError:y,onCreditsError:k,customerEmail:_,successUrl:w,cancelUrl:j,metadata:P,couponCode:T,authToken:N,testPageUrl:A,hideMessages:R=!1})=>{const{tokens:I}=oe.useCedrosTheme();return b.useEffect(()=>{const M=z=>{z.key==="Escape"&&e&&t()};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[e,t]),b.useEffect(()=>{if(e){const M=window.scrollY;return document.body.style.position="fixed",document.body.style.top=`-${M}px`,document.body.style.width="100%",document.body.style.overflowY="scroll",()=>{const z=document.body.style.top?Math.abs(parseInt(document.body.style.top.replace("px",""),10)):0;document.body.style.position="",document.body.style.top="",document.body.style.width="",document.body.style.overflowY="",window.scrollTo(0,z)}}},[e]),e?s.jsx("div",{className:"cedros-modal-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:I.modalOverlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},onClick:t,children:s.jsxs("div",{className:"cedros-modal-content",style:{backgroundColor:I.modalBackground,borderRadius:"12px",padding:"2rem",maxWidth:"400px",width:"100%",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",border:`1px solid ${I.modalBorder}`},onClick:M=>M.stopPropagation(),children:[s.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[s.jsx("h3",{style:{margin:0,fontSize:"1.25rem",fontWeight:600,color:I.surfaceText},children:"Choose Payment Method"}),s.jsx("button",{type:"button",onClick:t,style:ol(I.surfaceText),"aria-label":"Close modal",children:"×"})]}),s.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[c&&s.jsx(ma,{resource:n,items:r,label:o,onAttempt:f,onSuccess:h||u,onError:g||m,customerEmail:_,successUrl:w,cancelUrl:j,metadata:P,couponCode:T}),l&&s.jsx(b.Suspense,{fallback:null,children:s.jsx(om,{resource:n,items:r,label:a,onAttempt:f,onSuccess:v||u,onError:y||m,testPageUrl:A,hideMessages:R,metadata:P,couponCode:T})}),d&&s.jsx(ha,{resource:n,items:r,label:i,authToken:N,onAttempt:f?()=>f("credits"):void 0,onSuccess:x||u,onError:k||m,metadata:P,couponCode:T})]})]})}):null},pl=({resource:e,items:t,label:n,cardLabel:r,cryptoLabel:o,creditsLabel:a,showCard:i=!0,showCrypto:c=!0,showCredits:l=!1,onPaymentAttempt:d,onPaymentSuccess:f,onPaymentError:u,onStripeSuccess:m,onCryptoSuccess:h,onCreditsSuccess:v,onStripeError:x,onCryptoError:g,onCreditsError:y,customerEmail:k,successUrl:_,cancelUrl:w,metadata:j,couponCode:P,authToken:T,autoDetectWallets:N=!0,testPageUrl:A,hideMessages:R=!1,renderModal:I})=>{const M=oe.useCedrosTheme(),[z,D]=b.useState(!1),{status:V,processPayment:L,processCartCheckout:S}=Is(),{isCartMode:C,effectiveResource:W}=Lr(e,t),{t:Z}=Pn(),Q=n||Z("ui.purchase"),de=r||Z("ui.card"),q=o||Z("ui.usdc_solana"),K=a||Z("ui.pay_with_credits")||"Pay with Credits",Y=b.useCallback(async()=>{if(N&&i){const{detectSolanaWallets:U}=await Promise.resolve().then(()=>require("./walletDetection-bNmV5ItZ.js"));if(!U()){const se=C?void 0:W,le=C&&t?Mr(t):void 0;Kn("stripe",se,le),d&&d("stripe"),Jn("stripe",se,le);let ue;C&&t?ue=await S(t,_,w,j,k,P):W&&(ue=await L(W,_,w,j,k,P)),ue&&ue.success&&ue.transactionId?(Xn("stripe",ue.transactionId,se,le),m?m(ue.transactionId):f&&f(ue.transactionId)):ue&&!ue.success&&ue.error&&(Bt("stripe",ue.error,se,le),x?x(ue.error):u&&u(ue.error));return}}D(!0)},[N,i,C,t,W,S,L,_,w,j,k,P,f,u,m,x,d]),me=b.useMemo(()=>C&&t?`purchase-cart-${t.map(U=>U.resource).join("-")}`:`purchase-${W||"unknown"}`,[C,t,W]),$=b.useMemo(()=>Qn(me,Y),[me,Y]),G=V==="loading",pe={isOpen:z,onClose:()=>D(!1),resource:C?void 0:W,items:C?t:void 0,cardLabel:de,cryptoLabel:q,creditsLabel:K,showCard:i,showCrypto:c,showCredits:l,onPaymentAttempt:d,onPaymentSuccess:U=>{D(!1),f?.(U)},onPaymentError:U=>{D(!1),u?.(U)},onStripeSuccess:U=>{D(!1),m?.(U)},onCryptoSuccess:U=>{D(!1),h?.(U)},onCreditsSuccess:U=>{D(!1),v?.(U)},onStripeError:U=>{D(!1),x?.(U)},onCryptoError:U=>{D(!1),g?.(U)},onCreditsError:U=>{D(!1),y?.(U)},customerEmail:k,successUrl:_,cancelUrl:w,metadata:j,couponCode:P,authToken:T,testPageUrl:A,hideMessages:R};return s.jsxs("div",{className:M.unstyled?"":M.className,style:M.unstyled?{}:M.style,children:[s.jsx("button",{onClick:$,disabled:G,className:M.unstyled?"":"cedros-theme__button cedros-theme__stripe",style:{width:"100%",cursor:G?"not-allowed":"pointer",opacity:G?.6:1},type:"button",children:G?Z("ui.processing"):Q}),I?I(pe):s.jsx(fl,{...pe})]})},am={"mainnet-beta":"https://api.mainnet-beta.solana.com",devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com"};function im(){const[e,t]=b.useState(null);return b.useEffect(()=>{let n=!1;return import("@solana/wallet-adapter-react").then(r=>{n||t(r)}),()=>{n=!0}},[]),e}function cm({endpoint:e,wallets:t,children:n}){const r=im();if(!r)return s.jsx(s.Fragment,{children:n});const{ConnectionProvider:o,WalletProvider:a}=r;return s.jsx(o,{endpoint:e,children:s.jsx(a,{wallets:t,autoConnect:!1,children:n})})}const lm=b.lazy(()=>Promise.resolve().then(()=>require("./CryptoButton-N8kRfNDO.js")).then(e=>e.CryptoButton$1).then(e=>({default:e.CryptoButton})));function dm(e){const{resource:t,items:n,checkout:r={},display:o={},callbacks:a={},advanced:i={}}=e,{config:c,walletPool:l}=oe.useCedrosContext(),d=oe.useCedrosTheme(),{isCartMode:f}=Lr(t,n),u=o.showCrypto??!0,m=b.useMemo(()=>({marginTop:"0.5rem",fontSize:"0.875rem",color:d.tokens.surfaceText,opacity:.7,textAlign:"center"}),[d.tokens.surfaceText]),h=b.useMemo(()=>u?i.wallets&&i.wallets.length>0?i.wallets:l.getAdapters():[],[i.wallets,l,u]),v=b.useMemo(()=>n?Mr(n):0,[n]),{onPaymentSuccess:x,onPaymentError:g,onPaymentAttempt:y}=a,k=b.useCallback(S=>x?.({transactionId:S,method:"stripe"}),[x]),_=b.useCallback(S=>x?.({transactionId:S,method:"crypto"}),[x]),w=b.useCallback(S=>g?.({message:S,method:"stripe"}),[g]),j=b.useCallback(S=>g?.({message:S,method:"crypto"}),[g]),P=b.useCallback(S=>x?.({transactionId:S,method:"credits"}),[x]),T=b.useCallback(S=>g?.({message:S,method:"credits"}),[g]),N=b.useCallback(()=>y?.("credits"),[y]),A=u?c.solanaEndpoint??am[c.solanaCluster]:"";if(!t&&(!n||n.length===0))return oe.getLogger().error('CedrosPay: Must provide either "resource" or "items" prop'),s.jsx("div",{className:o.className,style:{color:d.tokens.errorText},children:"Configuration error: No resource or items provided"});const R=o.showCard??!0,I=o.showCredits??!1,M=o.showPurchaseButton??!1,z=o.layout??"vertical",D=o.hideMessages??!1,V=i.autoDetectWallets??!0,L=s.jsx("div",{className:d.unstyled?o.className:`cedros-theme__pay ${o.className||""}`,children:s.jsxs("div",{className:d.unstyled?"":`cedros-theme__pay-content cedros-theme__pay-content--${z}`,children:[M?s.jsx(pl,{resource:f?void 0:t||n?.[0]?.resource,items:f?n:void 0,label:o.purchaseLabel,cardLabel:o.cardLabel,cryptoLabel:o.cryptoLabel,showCard:R,showCrypto:u,onPaymentAttempt:a.onPaymentAttempt,onPaymentSuccess:k,onPaymentError:w,onStripeSuccess:k,onCryptoSuccess:_,onStripeError:w,onCryptoError:j,customerEmail:r.customerEmail,successUrl:r.successUrl,cancelUrl:r.cancelUrl,metadata:r.metadata,couponCode:r.couponCode,autoDetectWallets:V,testPageUrl:i.testPageUrl,hideMessages:D,renderModal:o.renderModal}):s.jsxs(s.Fragment,{children:[R&&s.jsx(ma,{resource:f?void 0:t||n?.[0]?.resource,items:f?n:void 0,customerEmail:r.customerEmail,successUrl:r.successUrl,cancelUrl:r.cancelUrl,metadata:r.metadata,couponCode:r.couponCode,label:o.cardLabel,onAttempt:a.onPaymentAttempt,onSuccess:k,onError:w}),u&&s.jsx(b.Suspense,{fallback:null,children:s.jsx(lm,{resource:f?void 0:t||n?.[0]?.resource,items:f?n:void 0,metadata:r.metadata,couponCode:r.couponCode,label:o.cryptoLabel,onAttempt:a.onPaymentAttempt,onSuccess:_,onError:j,testPageUrl:i.testPageUrl,hideMessages:D})}),I&&s.jsx(ha,{resource:f?void 0:t||n?.[0]?.resource,items:f?n:void 0,authToken:r.authToken,metadata:r.metadata,couponCode:r.couponCode,label:o.creditsLabel,onAttempt:N,onSuccess:P,onError:T})]}),f&&n&&n.length>1&&!D&&s.jsxs("div",{style:m,children:["Checking out ",v," items"]})]})});return s.jsx("div",{className:d.unstyled?o.className:d.className,style:d.unstyled?{}:d.style,children:s.jsx(cm,{endpoint:A||"https://api.devnet.solana.com",wallets:h,children:L})})}const J={products:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M20 7.5v9l-4 2.25M4 7.5v9l4 2.25"}),s.jsx("path",{d:"m20 7.5-8-4.5-8 4.5"}),s.jsx("path",{d:"m12 12 8-4.5M12 12v9.5M12 12 4 7.5"})]}),transactions:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"})}),coupons:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"}),s.jsx("path",{d:"M13 5v2M13 17v2M13 11v2"})]}),refunds:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),s.jsx("path",{d:"M3 3v5h5"}),s.jsx("path",{d:"M12 7v5l4 2"})]}),settings:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),s.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),wallet:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1"}),s.jsx("path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"})]}),chevronRight:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"m9 18 6-6-6-6"})}),loading:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"cedros-admin__spinner",children:s.jsx("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),refresh:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"}),s.jsx("path",{d:"M21 3v5h-5"}),s.jsx("path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"}),s.jsx("path",{d:"M8 16H3v5"})]}),check:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M20 6 9 17l-5-5"})}),subscriptions:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"}),s.jsx("circle",{cx:"12",cy:"12",r:"3"}),s.jsx("path",{d:"M12 2v2M12 20v2M2 12H4M20 12h2"})]}),trash:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M3 6h18M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"})}),plus:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M12 5v14M5 12h14"})}),chevronDown:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"m6 9 6 6 6-6"})}),chevronUp:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"m18 15-6-6-6 6"})}),storefront:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M3 9h18v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9Z"}),s.jsx("path",{d:"m3 9 2.45-4.9A2 2 0 0 1 7.24 3h9.52a2 2 0 0 1 1.8 1.1L21 9"}),s.jsx("path",{d:"M12 3v6"})]}),arrowUp:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"m5 12 7-7 7 7"}),s.jsx("path",{d:"M12 19V5"})]}),arrowDown:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"m5 12 7 7 7-7"}),s.jsx("path",{d:"M12 5v14"})]}),delete:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M3 6h18M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"}),s.jsx("path",{d:"M10 11v6M14 11v6"})]}),close:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M18 6 6 18M6 6l12 12"})}),edit:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),s.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),faq:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),s.jsx("path",{d:"M12 17h.01"})]}),chat:s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"m3 21 1.9-5.7a8.5 8.5 0 1 1 3.8 3.8z"})}),globe:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),s.jsx("path",{d:"M2 12h20"})]}),ai:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M12 2a4 4 0 0 1 4 4v2a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4Z"}),s.jsx("path",{d:"M10 10v.5"}),s.jsx("path",{d:"M14 10v.5"}),s.jsx("path",{d:"M12 14v2"}),s.jsx("path",{d:"M8 18h8"}),s.jsx("path",{d:"M6 18a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2"}),s.jsx("path",{d:"M6 12v6"}),s.jsx("path",{d:"M18 12v6"})]}),notifications:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"}),s.jsx("path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0"})]}),eye:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"}),s.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),eyeOff:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24"}),s.jsx("path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"}),s.jsx("path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"}),s.jsx("line",{x1:"2",x2:"22",y1:"2",y2:"22"})]}),creditCard:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{width:"20",height:"14",x:"2",y:"5",rx:"2"}),s.jsx("line",{x1:"2",x2:"22",y1:"10",y2:"10"})]}),mail:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),s.jsx("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})]}),server:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2"}),s.jsx("rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2"}),s.jsx("line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}),s.jsx("line",{x1:"6",x2:"6.01",y1:"18",y2:"18"})]}),calendarRepeat:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2"}),s.jsx("line",{x1:"16",x2:"16",y1:"2",y2:"6"}),s.jsx("line",{x1:"8",x2:"8",y1:"2",y2:"6"}),s.jsx("line",{x1:"3",x2:"21",y1:"10",y2:"10"}),s.jsx("path",{d:"M11 14h1.5a1.5 1.5 0 0 1 0 3H11v2"}),s.jsx("path",{d:"M16 14v3a1 1 0 0 0 1 1h1"})]}),brain:s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"}),s.jsx("path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"}),s.jsx("path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"}),s.jsx("path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375"}),s.jsx("path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5"}),s.jsx("path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396"}),s.jsx("path",{d:"M19.938 10.5a4 4 0 0 1 .585.396"}),s.jsx("path",{d:"M6 18a4 4 0 0 1-1.967-.516"}),s.jsx("path",{d:"M19.967 17.484A4 4 0 0 1 18 18"})]})};function Dr({message:e,onRetry:t}){return e?s.jsxs("div",{className:"cedros-admin__error-banner",children:[s.jsx("span",{children:e}),t&&s.jsxs("button",{type:"button",className:"cedros-admin__error-banner-retry",onClick:t,children:[J.refresh," Retry"]})]}):null}function $r({stats:e,isLoading:t=!1,onRefresh:n}){return s.jsxs("div",{className:"cedros-admin__stats-bar",children:[s.jsx("div",{className:"cedros-admin__stats-bar-grid",children:e.map((r,o)=>s.jsxs("div",{className:"cedros-admin__stats-bar-item",children:[s.jsx("span",{className:"cedros-admin__stats-bar-label",children:r.label}),s.jsx("span",{className:`cedros-admin__stats-bar-value ${r.variant?`cedros-admin__stats-bar-value--${r.variant}`:""}`,children:t?s.jsx("span",{className:"cedros-admin__skeleton cedros-admin__skeleton--value"}):r.value}),r.description&&s.jsx("span",{className:"cedros-admin__stats-bar-desc",children:r.description})]},o))}),n&&s.jsx("button",{type:"button",className:"cedros-admin__stats-bar-refresh",onClick:n,disabled:t,title:"Refresh stats",children:t?J.loading:J.refresh})]})}function um({serverUrl:e,productId:t,apiKey:n,authManager:r}){const[o,a]=b.useState(null),[i,c]=b.useState(!1),[l,d]=b.useState(!1),[f,u]=b.useState(null),m=b.useCallback(async()=>{if(t){c(!0),u(null);try{let x;if(r?.isAuthenticated())x=await r.fetchWithAuth(`/admin/products/${t}/variations`);else{const g={"Content-Type":"application/json"};n&&(g["X-API-Key"]=n);const y=await fetch(`${e}/admin/products/${t}/variations`,{headers:g});if(!y.ok)throw new Error(`Failed to fetch variations: ${y.status}`);x=await y.json()}x.variationConfig||(x.variationConfig={variationTypes:[]}),x.variants||(x.variants=[]),a(x)}catch(x){const g=x instanceof Error?x.message:"Failed to fetch variations";u(g),a({productId:t,variationConfig:{variationTypes:[]},variants:[]})}finally{c(!1)}}},[e,t,n,r]),h=b.useCallback(async x=>{if(!t)return null;d(!0),u(null);try{let g;if(r?.isAuthenticated())g=await r.fetchWithAuth(`/admin/products/${t}/variations`,{method:"PUT",body:JSON.stringify(x)});else{const y={"Content-Type":"application/json"};n&&(y["X-API-Key"]=n);const k=await fetch(`${e}/admin/products/${t}/variations`,{method:"PUT",headers:y,body:JSON.stringify(x)});if(!k.ok)throw new Error(`Failed to save variations: ${k.status}`);g=await k.json()}return a({productId:t,variationConfig:g.variationConfig,variants:g.variants}),{variantsCreated:g.variantsCreated}}catch(g){const y=g instanceof Error?g.message:"Failed to save variations";return u(y),null}finally{d(!1)}},[e,t,n,r]),v=b.useCallback(async x=>{if(!t||x.length===0)return!1;d(!0),u(null);try{if(r?.isAuthenticated())await r.fetchWithAuth(`/admin/products/${t}/variants/inventory`,{method:"PUT",body:JSON.stringify({updates:x})});else{const g={"Content-Type":"application/json"};n&&(g["X-API-Key"]=n);const y=await fetch(`${e}/admin/products/${t}/variants/inventory`,{method:"PUT",headers:g,body:JSON.stringify({updates:x})});if(!y.ok)throw new Error(`Failed to update inventory: ${y.status}`)}if(o){const g=new Map(x.map(y=>[y.variantId,y]));a({...o,variants:o.variants.map(y=>{const k=g.get(y.id);return k?{...y,inventoryQuantity:k.inventoryQuantity,inventoryStatus:k.inventoryStatus??y.inventoryStatus}:y})})}return!0}catch(g){const y=g instanceof Error?g.message:"Failed to update inventory";return u(y),!1}finally{d(!1)}},[e,t,n,r,o]);return{data:o,isLoading:i,error:f,fetch:m,save:h,bulkUpdateInventory:v,isSaving:l}}function Ii(){return`var_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function fm({value:e,onChange:t,maxTypes:n=5,maxValuesPerType:r=20,disabled:o=!1}){const[a,i]=b.useState(null),[c,l]=b.useState(""),[d,f]=b.useState({}),u=e.variationTypes,m=b.useCallback(()=>{if(!c.trim()||u.length>=n)return;const _={id:Ii(),name:c.trim(),displayOrder:u.length,values:[]};t({variationTypes:[...u,_]}),l(""),i(_.id)},[c,u,n,t]),h=b.useCallback(_=>{t({variationTypes:u.filter(w=>w.id!==_).map((w,j)=>({...w,displayOrder:j}))}),a===_&&i(null)},[u,t,a]),v=b.useCallback((_,w)=>{t({variationTypes:u.map(j=>j.id===_?{...j,name:w}:j)})},[u,t]),x=b.useCallback((_,w)=>{const j=u.findIndex(N=>N.id===_);if(j===-1||w==="up"&&j===0||w==="down"&&j===u.length-1)return;const P=[...u],T=w==="up"?j-1:j+1;[P[j],P[T]]=[P[T],P[j]],t({variationTypes:P.map((N,A)=>({...N,displayOrder:A}))})},[u,t]),g=b.useCallback(_=>{const w=(d[_]||"").trim();if(!w)return;const j=u.find(T=>T.id===_);if(!j||j.values.length>=r)return;const P={id:Ii(),label:w};t({variationTypes:u.map(T=>T.id===_?{...T,values:[...T.values,P]}:T)}),f(T=>({...T,[_]:""}))},[u,d,r,t]),y=b.useCallback((_,w)=>{t({variationTypes:u.map(j=>j.id===_?{...j,values:j.values.filter(P=>P.id!==w)}:j)})},[u,t]),k=b.useCallback((_,w,j)=>{t({variationTypes:u.map(P=>P.id===_?{...P,values:P.values.map(T=>T.id===w?{...T,label:j}:T)}:P)})},[u,t]);return s.jsxs("div",{className:"cedros-admin__variation-editor",children:[s.jsxs("div",{className:"cedros-admin__variation-editor-header",children:[s.jsx("h4",{className:"cedros-admin__field-label",style:{marginBottom:0},children:"Variation Types"}),s.jsxs("span",{style:{fontSize:12,opacity:.7},children:[u.length,"/",n," types"]})]}),u.length===0?s.jsx("div",{className:"cedros-admin__variation-empty",children:'No variation types defined. Add types like "Size" or "Color" to create product variants.'}):s.jsx("div",{className:"cedros-admin__variation-type-list",children:u.map((_,w)=>s.jsxs("div",{className:"cedros-admin__variation-type-item",children:[s.jsxs("div",{className:"cedros-admin__variation-type-header",children:[s.jsxs("div",{className:"cedros-admin__variation-type-controls",children:[s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--icon",onClick:()=>x(_.id,"up"),disabled:o||w===0,title:"Move up",children:J.arrowUp}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--icon",onClick:()=>x(_.id,"down"),disabled:o||w===u.length-1,title:"Move down",children:J.arrowDown})]}),s.jsx("input",{type:"text",className:"cedros-admin__input cedros-admin__variation-type-name",value:_.name,onChange:j=>v(_.id,j.target.value),disabled:o,placeholder:"Type name"}),s.jsxs("span",{className:"cedros-admin__variation-value-count",children:[_.values.length," values"]}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost",onClick:()=>i(a===_.id?null:_.id),children:a===_.id?"Collapse":"Edit values"}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--danger",onClick:()=>h(_.id),disabled:o,title:"Remove type",children:J.delete})]}),a===_.id&&s.jsxs("div",{className:"cedros-admin__variation-values",children:[s.jsxs("div",{className:"cedros-admin__variation-values-header",children:[s.jsxs("span",{style:{fontSize:12,fontWeight:600},children:['Values for "',_.name,'"']}),s.jsxs("span",{style:{fontSize:11,opacity:.7},children:[_.values.length,"/",r]})]}),_.values.length===0?s.jsx("div",{className:"cedros-admin__variation-empty",style:{padding:"8px 0"},children:'No values yet. Add values like "Small", "Medium", "Large".'}):s.jsx("div",{className:"cedros-admin__variation-value-list",children:_.values.map(j=>s.jsxs("div",{className:"cedros-admin__variation-value-item",children:[s.jsx("input",{type:"text",className:"cedros-admin__input cedros-admin__input--sm",value:j.label,onChange:P=>k(_.id,j.id,P.target.value),disabled:o}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--icon cedros-admin__button--danger",onClick:()=>y(_.id,j.id),disabled:o,title:"Remove value",children:J.close})]},j.id))}),_.values.length<r&&s.jsxs("div",{className:"cedros-admin__variation-add-value",children:[s.jsx("input",{type:"text",className:"cedros-admin__input cedros-admin__input--sm",value:d[_.id]||"",onChange:j=>f(P=>({...P,[_.id]:j.target.value})),placeholder:"Add value...",disabled:o,onKeyDown:j=>{j.key==="Enter"&&(j.preventDefault(),g(_.id))}}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--secondary cedros-admin__button--sm",onClick:()=>g(_.id),disabled:o||!d[_.id]?.trim(),children:"Add"})]})]})]},_.id))}),u.length<n&&s.jsxs("div",{className:"cedros-admin__variation-add-type",children:[s.jsx("input",{type:"text",className:"cedros-admin__input",value:c,onChange:_=>l(_.target.value),placeholder:"New variation type (e.g., Size, Color)",disabled:o,onKeyDown:_=>{_.key==="Enter"&&(_.preventDefault(),m())}}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--secondary",onClick:m,disabled:o||!c.trim(),children:"Add Type"})]})]})}function ml({value:e,onChange:t,options:n,placeholder:r="Filter",disabled:o}){const[a,i]=b.useState(!1),c=b.useRef(null),d=n.find(f=>f.value===e)?.label||r;return b.useEffect(()=>{const f=u=>{c.current&&!c.current.contains(u.target)&&i(!1)};if(a)return document.addEventListener("mousedown",f),()=>document.removeEventListener("mousedown",f)},[a]),b.useEffect(()=>{const f=u=>{u.key==="Escape"&&i(!1)};if(a)return document.addEventListener("keydown",f),()=>document.removeEventListener("keydown",f)},[a]),s.jsxs("div",{className:"cedros-admin__dropdown",ref:c,children:[s.jsxs("button",{type:"button",className:"cedros-admin__dropdown-trigger",onClick:()=>!o&&i(!a),"aria-expanded":a,"aria-haspopup":"listbox",disabled:o,children:[s.jsx("span",{children:d}),s.jsx("span",{className:`cedros-admin__dropdown-chevron ${a?"cedros-admin__dropdown-chevron--open":""}`,children:J.chevronDown})]}),a&&s.jsx("div",{className:"cedros-admin__dropdown-menu",role:"listbox",children:n.map(f=>s.jsxs("button",{type:"button",className:`cedros-admin__dropdown-item ${f.value===e?"cedros-admin__dropdown-item--selected":""}`,onClick:()=>{f.disabled||(t(f.value),i(!1))},role:"option","aria-selected":f.value===e,disabled:f.disabled,children:[f.label,f.value===e&&s.jsx("span",{className:"cedros-admin__dropdown-check",children:J.check})]},f.value))})]})}function At({value:e,onChange:t,options:n,label:r,description:o,disabled:a,className:i,style:c}){const[l,d]=b.useState(!1),f=b.useRef(null),m=n.find(h=>h.value===e)?.label||"Select...";return b.useEffect(()=>{const h=v=>{f.current&&!f.current.contains(v.target)&&d(!1)};if(l)return document.addEventListener("mousedown",h),()=>document.removeEventListener("mousedown",h)},[l]),b.useEffect(()=>{const h=v=>{v.key==="Escape"&&d(!1)};if(l)return document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[l]),s.jsxs("div",{className:`cedros-admin__field ${i||""}`,style:c,children:[s.jsx("label",{className:"cedros-admin__field-label",children:r}),s.jsxs("div",{className:"cedros-admin__dropdown cedros-admin__dropdown--form",ref:f,children:[s.jsxs("button",{type:"button",className:"cedros-admin__dropdown-trigger cedros-admin__dropdown-trigger--form",onClick:()=>!a&&d(!l),"aria-expanded":l,"aria-haspopup":"listbox",disabled:a,children:[s.jsx("span",{children:m}),s.jsx("span",{className:`cedros-admin__dropdown-chevron ${l?"cedros-admin__dropdown-chevron--open":""}`,children:J.chevronDown})]}),l&&s.jsx("div",{className:"cedros-admin__dropdown-menu cedros-admin__dropdown-menu--form",role:"listbox",children:n.map(h=>s.jsxs("button",{type:"button",className:`cedros-admin__dropdown-item ${h.value===e?"cedros-admin__dropdown-item--selected":""}`,onClick:()=>{h.disabled||(t(h.value),d(!1))},role:"option","aria-selected":h.value===e,disabled:h.disabled,children:[h.label,h.value===e&&s.jsx("span",{className:"cedros-admin__dropdown-check",children:J.check})]},h.value))})]}),o&&s.jsx("p",{className:"cedros-admin__field-description",children:o})]})}function Ti(){return`variant_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function pm(e){if(e.length===0)return[];const t=[...e].sort((r,o)=>r.displayOrder-o.displayOrder),n=(r,o)=>{if(r>=t.length){const c=o.valueIds.sort().join("|"),l=Object.values(o.options).join(" / ");return[{key:c,title:l,optionValueIds:[...o.valueIds],options:{...o.options}}]}const a=t[r],i=[];for(const c of a.values)i.push(...n(r+1,{valueIds:[...o.valueIds,c.id],options:{...o.options,[a.name]:c.label}}));return i};return n(0,{valueIds:[],options:{}})}function mm(e){return e.optionValueIds?.length?[...e.optionValueIds].sort().join("|"):Object.entries(e.options).sort(([t],[n])=>t.localeCompare(n)).map(([t,n])=>`${t}:${n}`).join("|")}function hm({variationConfig:e,variants:t,onChange:n,defaultPrice:r=0,currencySymbol:o="$",maxVariants:a=100,disabled:i=!1}){const c=b.useMemo(()=>pm(e.variationTypes),[e.variationTypes]),l=b.useMemo(()=>{const x=new Map;for(const g of t)x.set(mm(g),g);return x},[t]),{existingRows:d,possibleRows:f}=b.useMemo(()=>{const x=[],g=[];for(const y of c){const k=l.get(y.key);k?x.push({combo:y,variant:k}):g.push(y)}return{existingRows:x,possibleRows:g}},[c,l]),u=b.useCallback((x,g)=>{n(t.map(y=>y.id===x?{...y,...g}:y))},[t,n]),m=b.useCallback(x=>{n(t.filter(g=>g.id!==x))},[t,n]),h=b.useCallback(x=>{if(t.length>=a)return;const g={id:Ti(),title:x.title,options:x.options,optionValueIds:x.optionValueIds,price:r,inventoryQuantity:0,inventoryStatus:"in_stock",autoGenerated:!1};n([...t,g])},[t,n,a,r]),v=b.useCallback(()=>{const x=a-t.length,y=f.slice(0,x).map(k=>({id:Ti(),title:k.title,options:k.options,optionValueIds:k.optionValueIds,price:r,inventoryQuantity:0,inventoryStatus:"in_stock",autoGenerated:!0}));n([...t,...y])},[t,n,f,a,r]);return e.variationTypes.length===0?s.jsx("div",{className:"cedros-admin__variant-grid-empty",children:"Add variation types above to create product variants."}):c.length===0?s.jsx("div",{className:"cedros-admin__variant-grid-empty",children:"Add values to your variation types to create product variants."}):s.jsxs("div",{className:"cedros-admin__variant-grid",children:[s.jsxs("div",{className:"cedros-admin__variant-grid-header",children:[s.jsx("h4",{className:"cedros-admin__field-label",style:{marginBottom:0},children:"Variants"}),s.jsxs("span",{style:{fontSize:12,opacity:.7},children:[t.length,"/",a," variants (",c.length," ","possible)"]})]}),f.length>0&&t.length<a&&s.jsxs("div",{className:"cedros-admin__variant-grid-actions",children:[s.jsxs("button",{type:"button",className:"cedros-admin__button cedros-admin__button--secondary",onClick:v,disabled:i,children:["Generate All (",Math.min(f.length,a-t.length),")"]}),s.jsx("span",{style:{fontSize:11,opacity:.7},children:"Creates variants with default price and 0 inventory"})]}),s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table cedros-admin__variant-table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{children:"Variant"}),s.jsx("th",{style:{width:100},children:"Price"}),s.jsx("th",{style:{width:80},children:"Qty"}),s.jsx("th",{style:{width:100},children:"SKU"}),s.jsx("th",{style:{width:100},children:"Status"}),s.jsx("th",{style:{width:80},children:"Actions"})]})}),s.jsxs("tbody",{children:[d.map(({combo:x,variant:g})=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[s.jsx("span",{style:{fontWeight:600},children:x.title}),s.jsx("span",{style:{fontSize:11,opacity:.6},children:Object.entries(x.options).map(([y,k])=>`${y}: ${k}`).join(", ")})]})}),s.jsx("td",{children:s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[s.jsx("span",{children:o}),s.jsx("input",{type:"number",className:"cedros-admin__input cedros-admin__input--sm",value:g.price??"",onChange:y=>u(g.id,{price:y.target.value===""?void 0:parseFloat(y.target.value)||0}),disabled:i,min:"0",step:"0.01",style:{width:70}})]})}),s.jsx("td",{children:s.jsx("input",{type:"number",className:"cedros-admin__input cedros-admin__input--sm",value:g.inventoryQuantity??"",onChange:y=>u(g.id,{inventoryQuantity:y.target.value===""?void 0:parseInt(y.target.value)||0}),disabled:i,min:"0",style:{width:60}})}),s.jsx("td",{children:s.jsx("input",{type:"text",className:"cedros-admin__input cedros-admin__input--sm",value:g.sku??"",onChange:y=>u(g.id,{sku:y.target.value||void 0}),disabled:i,placeholder:"SKU",style:{width:80}})}),s.jsx("td",{children:s.jsx(ml,{value:g.inventoryStatus??"in_stock",onChange:y=>u(g.id,{inventoryStatus:y}),options:[{value:"in_stock",label:"In stock"},{value:"low",label:"Low"},{value:"out_of_stock",label:"Out of stock"},{value:"backorder",label:"Backorder"}],disabled:i})}),s.jsx("td",{children:s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--icon cedros-admin__button--danger",onClick:()=>m(g.id),disabled:i,title:"Remove variant",children:J.trash})})]},g.id)),f.length>0&&t.length<a&&s.jsxs(s.Fragment,{children:[s.jsx("tr",{className:"cedros-admin__variant-separator",children:s.jsx("td",{colSpan:6,children:s.jsxs("span",{style:{fontSize:11,opacity:.6},children:["Uncreated combinations (",f.length,")"]})})}),f.slice(0,10).map(x=>s.jsxs("tr",{className:"cedros-admin__variant-possible",children:[s.jsx("td",{children:s.jsx("span",{style:{opacity:.6},children:x.title})}),s.jsx("td",{colSpan:4,style:{opacity:.5},children:"Not created"}),s.jsx("td",{children:s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost cedros-admin__button--icon",onClick:()=>h(x),disabled:i,title:"Create variant",children:J.plus})})]},x.key)),f.length>10&&s.jsx("tr",{className:"cedros-admin__variant-more",children:s.jsxs("td",{colSpan:6,style:{textAlign:"center",opacity:.6},children:["+",f.length-10," more combinations"]})})]})]})]})})]})}function gm({serverUrl:e,productId:t,productTitle:n,defaultPrice:r=0,currencySymbol:o="$",apiKey:a,authManager:i,onClose:c}){const{data:l,isLoading:d,error:f,fetch:u,save:m,isSaving:h}=um({serverUrl:e,productId:t,apiKey:a,authManager:i}),[v,x]=b.useState({variationTypes:[]}),[g,y]=b.useState([]),[k,_]=b.useState(!1),[w,j]=b.useState(!1);b.useEffect(()=>{u()},[u]),b.useEffect(()=>{l&&(x(l.variationConfig),y(l.variants),_(!1))},[l]);const P=b.useCallback(A=>{x(A),_(!0),j(!1)},[]),T=b.useCallback(A=>{y(A),_(!0),j(!1)},[]),N=b.useCallback(async()=>{const A=new Set((l?.variants??[]).map(D=>D.id)),R=g.filter(D=>!A.has(D.id)),I=g.filter(D=>A.has(D.id)),M=(l?.variants??[]).filter(D=>!g.some(V=>V.id===D.id)).map(D=>D.id);await m({variationConfig:v,createVariants:R.map(D=>({optionValueIds:D.optionValueIds??[],inventoryQuantity:D.inventoryQuantity,sku:D.sku,price:D.price})),updateVariants:I.map(D=>({id:D.id,inventoryQuantity:D.inventoryQuantity,sku:D.sku,price:D.price,inventoryStatus:D.inventoryStatus})),deleteVariantIds:M.length>0?M:void 0})&&(_(!1),j(!0),setTimeout(()=>j(!1),3e3))},[v,g,l?.variants,m]);return d?s.jsxs("div",{className:"cedros-admin__variations-editor",children:[s.jsxs("div",{className:"cedros-admin__variations-editor-header",children:[s.jsx("h3",{className:"cedros-admin__section-title",children:n?`Variations: ${n}`:"Product Variations"}),c&&s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost",onClick:c,children:J.close})]}),s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading variations..."]})]}):s.jsxs("div",{className:"cedros-admin__variations-editor",children:[s.jsxs("div",{className:"cedros-admin__variations-editor-header",children:[s.jsx("h3",{className:"cedros-admin__section-title",children:n?`Variations: ${n}`:"Product Variations"}),s.jsxs("div",{className:"cedros-admin__variations-editor-actions",children:[w&&s.jsxs("span",{className:"cedros-admin__success-text",children:[J.check," Saved"]}),k&&s.jsx("span",{className:"cedros-admin__unsaved-text",children:"Unsaved changes"}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--primary",onClick:N,disabled:h||!k,children:h?"Saving...":"Save Changes"}),c&&s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--ghost",onClick:c,children:J.close})]})]}),f&&s.jsx("div",{className:"cedros-admin__error-banner",children:f}),s.jsxs("div",{className:"cedros-admin__variations-editor-content",children:[s.jsx("div",{className:"cedros-admin__variations-editor-section",children:s.jsx(fm,{value:v,onChange:P,disabled:h})}),v.variationTypes.length>0&&s.jsx("div",{className:"cedros-admin__variations-editor-section",children:s.jsx(hm,{variationConfig:v,variants:g,onChange:T,defaultPrice:r,currencySymbol:o,disabled:h})})]})]})}function hl({serverUrl:e,apiKey:t,pageSize:n=20,authManager:r}){const[o,a]=b.useState([]),[i,c]=b.useState(!0),[l,d]=b.useState(!1),[f,u]=b.useState(!1),[m,h]=b.useState(null),[v,x]=b.useState(null),[g,y]=b.useState(null),[k,_]=b.useState(null),[w,j]=b.useState({id:"",title:"",slug:"",imageUrl:"",description:"",productType:"one_time",priceUsd:"",fiatCurrency:"usd",cryptoToken:"USDC",inventoryStatus:"in_stock",compareAtUsd:"",tagsCsv:"",categoryIdsCsv:"",checkoutEmail:"required",checkoutName:"optional",checkoutPhone:"none",checkoutShippingAddress:!1,checkoutBillingAddress:!1,fulfillmentType:"shipping",fulfillmentNotes:"",shippingCountriesCsv:"",inventoryQuantity:""}),P=S=>{const C=S.tagsCsv.split(",").map(Y=>Y.trim()).filter(Boolean),W=S.categoryIdsCsv.split(",").map(Y=>Y.trim()).filter(Boolean),Z={email:S.checkoutEmail,name:S.checkoutName,phone:S.checkoutPhone,shippingAddress:S.checkoutShippingAddress,billingAddress:S.checkoutBillingAddress},Q=S.fulfillmentType==="shipping"?"physical":"digital",de={title:S.title,slug:S.slug||S.id,shipping_profile:Q,inventory_status:S.inventoryStatus,checkout_requirements:JSON.stringify(Z),fulfillment_type:S.fulfillmentType};S.imageUrl&&(de.image_url=S.imageUrl);const q=S.compareAtUsd?Math.round(Number(S.compareAtUsd)*100):0;q&&(de.compare_at_amount_cents=String(q)),C.length&&(de.tags=JSON.stringify(C)),W.length&&(de.category_ids=JSON.stringify(W)),S.fulfillmentNotes&&(de.fulfillment_notes=S.fulfillmentNotes);const K=S.shippingCountriesCsv.split(",").map(Y=>Y.trim().toUpperCase()).filter(Boolean);return K.length&&(de.shippingCountries=K.join(","),de.shipping_countries=K.join(",")),de},T=S=>S.metadata?.title||S.description||S.id,N=S=>S.metadata?.image_url,A=b.useCallback(async()=>{try{_(null);let S;if(r?.isAuthenticated())S=await r.fetchWithAuth(`/admin/products?limit=${n}`);else{const C={"Content-Type":"application/json"};t&&(C["X-API-Key"]=t);const W=await fetch(`${e}/admin/products?limit=${n}`,{headers:C});if(!W.ok)throw new Error(`Failed to fetch products: ${W.status}`);S=await W.json()}a(S.products||[])}catch{a([]),_("Failed to load products")}finally{c(!1)}},[e,t,n,r]);b.useEffect(()=>{A()},[A]);const R=async S=>{if(S.preventDefault(),!(!w.id||!w.description)){if(h(null),w.fulfillmentType==="shipping"&&w.checkoutShippingAddress&&!w.shippingCountriesCsv.split(",").map(W=>W.trim()).filter(Boolean).length){h("Shipping countries are required when collecting shipping address. Example: US,CA");return}u(!0);try{const{productType:C}=w,W=w.inventoryQuantity===""?void 0:Number.isFinite(Number(w.inventoryQuantity))?Number(w.inventoryQuantity):void 0,Z=Number(w.priceUsd)||0,Q=Math.round(Z*100),de=Math.round(Z*1e6),q={id:w.id,description:w.description,fiatAmountCents:Q,fiatCurrency:w.fiatCurrency,cryptoAtomicAmount:de,cryptoToken:w.cryptoToken,...W!==void 0?{inventoryQuantity:W}:{},metadata:{...C?{product_type:C}:{},...P(w)}};if(r?.isAuthenticated())await r.fetchWithAuth("/admin/products",{method:"POST",body:JSON.stringify(q)});else{const K={"Content-Type":"application/json"};t&&(K["X-API-Key"]=t);const Y=await fetch(`${e}/admin/products`,{method:"POST",headers:K,body:JSON.stringify(q)});if(!Y.ok)throw new Error(`Failed to create product: ${Y.status}`)}j({id:"",title:"",slug:"",imageUrl:"",description:"",productType:"one_time",priceUsd:"",fiatCurrency:"usd",cryptoToken:"USDC",inventoryStatus:"in_stock",compareAtUsd:"",tagsCsv:"",categoryIdsCsv:"",checkoutEmail:"required",checkoutName:"optional",checkoutPhone:"none",checkoutShippingAddress:!1,checkoutBillingAddress:!1,fulfillmentType:"shipping",fulfillmentNotes:"",shippingCountriesCsv:"",inventoryQuantity:""}),d(!1),A()}catch(C){h(C instanceof Error?C.message:"Failed to create product")}finally{u(!1)}}},I=S=>`$${(S/100).toFixed(2)}`,M=S=>{switch(S){case"subscription":return"Subscription";case"pay_per_access":return"Pay per access";case"one_time":return"One-time purchase";default:return"One-time purchase"}},z=b.useMemo(()=>{const S=o.filter(W=>W.active).length,C=o.reduce((W,Z)=>{const Q=Z.variations?.length??0;return W+(Q>0?Q:1)},0);return{activeCount:S,totalSkus:C}},[o]),D=S=>{y(C=>!C||C.key!==S?{key:S,direction:"asc"}:{key:S,direction:C.direction==="asc"?"desc":"asc"})},V=S=>!g||g.key!==S?s.jsx("span",{className:"cedros-admin__sort-icon cedros-admin__sort-icon--idle",children:J.chevronUp}):s.jsx("span",{className:"cedros-admin__sort-icon",children:g.direction==="asc"?J.chevronUp:J.chevronDown}),L=b.useMemo(()=>{if(!g)return o;const S=g.direction==="asc"?1:-1,C=W=>{switch(g.key){case"product":return T(W);case"type":return M(W.metadata?.product_type);case"price":return W.fiatAmountCents??0;case"status":return W.active?1:0;case"id":default:return W.id}};return[...o].sort((W,Z)=>{const Q=C(W),de=C(Z);return typeof Q=="number"&&typeof de=="number"?(Q-de)*S:String(Q).localeCompare(String(de),void 0,{sensitivity:"base"})*S})},[o,g]);return s.jsxs("div",{className:"cedros-admin__page",children:[s.jsx(Dr,{message:k,onRetry:A}),s.jsx($r,{stats:[{label:"Total Products",value:o.length},{label:"Active",value:z.activeCount,variant:z.activeCount>0?"success":"muted"},{label:"Total SKUs",value:z.totalSkus}],isLoading:i}),s.jsxs("div",{className:"cedros-admin__section-header",children:[s.jsx("h3",{className:"cedros-admin__section-title",children:"Paywall Products"}),s.jsxs("button",{className:"cedros-admin__button cedros-admin__button--primary cedros-admin__button--action",onClick:()=>{h(null),d(!l)},children:[l?J.close:J.plus,l?"Cancel":"Add Product"]})]}),l&&s.jsxs("form",{onSubmit:R,className:"cedros-admin__add-form",children:[m&&s.jsx("div",{style:{marginBottom:"0.75rem",color:"#B42318",fontWeight:600},children:m}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Product ID"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.id,onChange:S=>j(C=>({...C,id:S.target.value})),placeholder:"e.g., premium-article",required:!0})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Product name"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.title,onChange:S=>j(C=>({...C,title:S.target.value})),placeholder:"e.g., Cedros Hoodie"})]})]}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Slug"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.slug,onChange:S=>j(C=>({...C,slug:S.target.value})),placeholder:"e.g., cedros-hoodie (defaults to ID)"})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Primary image URL"}),s.jsx("input",{type:"url",className:"cedros-admin__input",value:w.imageUrl,onChange:S=>j(C=>({...C,imageUrl:S.target.value})),placeholder:"https://..."})]})]}),s.jsx("div",{className:"cedros-admin__form-row",children:s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Short description"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.description,onChange:S=>j(C=>({...C,description:S.target.value})),placeholder:"e.g., Midweight fleece with relaxed fit",required:!0})]})}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsx(At,{value:w.productType,onChange:S=>j(C=>({...C,productType:S})),options:[{value:"one_time",label:"One-time purchase"},{value:"pay_per_access",label:"Pay per access"},{value:"subscription",label:"Subscription"}],label:"Product Type"}),s.jsx(At,{value:w.fulfillmentType,onChange:S=>{const C=S;j(W=>({...W,fulfillmentType:C,checkoutShippingAddress:C==="shipping"?W.checkoutShippingAddress:!1}))},options:[{value:"shipping",label:"Physical (shipped)"},{value:"digital_download",label:"Digital download"},{value:"service",label:"Service"}],label:"Fulfillment"})]}),w.fulfillmentType==="shipping"&&s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsx(At,{value:w.inventoryStatus,onChange:S=>j(C=>({...C,inventoryStatus:S})),options:[{value:"in_stock",label:"In stock"},{value:"low",label:"Low"},{value:"out_of_stock",label:"Out of stock"},{value:"backorder",label:"Backorder"}],label:"Inventory status"}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Inventory quantity (tracked)"}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:w.inventoryQuantity,onChange:S=>j(C=>({...C,inventoryQuantity:S.target.value===""?"":parseInt(S.target.value)||0})),placeholder:"Leave blank for untracked",min:"0"})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Compare-at price (USD)"}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:w.compareAtUsd===""?"":w.compareAtUsd,onChange:S=>j(C=>({...C,compareAtUsd:S.target.value===""?"":parseFloat(S.target.value)||0})),placeholder:"e.g., 78.00",min:"0",step:"0.01"})]})]}),s.jsx("div",{className:"cedros-admin__form-row",children:s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Price (USD)"}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:w.priceUsd===""?"":w.priceUsd,onChange:S=>j(C=>({...C,priceUsd:S.target.value===""?"":parseFloat(S.target.value)||0})),placeholder:"e.g., 5.00",min:"0",step:"0.01",required:!0})]})}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Tags (comma-separated)"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.tagsCsv,onChange:S=>j(C=>({...C,tagsCsv:S.target.value})),placeholder:"e.g., core, new, gift"})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Category IDs (comma-separated)"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.categoryIdsCsv,onChange:S=>j(C=>({...C,categoryIdsCsv:S.target.value})),placeholder:"e.g., cat_apparel, cat_accessories"})]})]}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsx(At,{value:w.checkoutEmail,onChange:S=>j(C=>({...C,checkoutEmail:S})),options:[{value:"none",label:"None"},{value:"optional",label:"Optional"},{value:"required",label:"Required"}],label:"Checkout: Email"}),s.jsx(At,{value:w.checkoutName,onChange:S=>j(C=>({...C,checkoutName:S})),options:[{value:"none",label:"None"},{value:"optional",label:"Optional"},{value:"required",label:"Required"}],label:"Checkout: Name"}),s.jsx(At,{value:w.checkoutPhone,onChange:S=>j(C=>({...C,checkoutPhone:S})),options:[{value:"none",label:"None"},{value:"optional",label:"Optional"},{value:"required",label:"Required"}],label:"Checkout: Phone"})]}),s.jsxs("div",{className:"cedros-admin__form-row",children:[w.fulfillmentType==="shipping"&&s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Checkout: Shipping address"}),s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[s.jsx("input",{type:"checkbox",checked:w.checkoutShippingAddress,onChange:S=>j(C=>({...C,checkoutShippingAddress:S.target.checked}))}),"Collect shipping address"]})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Checkout: Billing address"}),s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[s.jsx("input",{type:"checkbox",checked:w.checkoutBillingAddress,onChange:S=>j(C=>({...C,checkoutBillingAddress:S.target.checked}))}),"Collect billing address"]})]})]}),s.jsx("div",{className:"cedros-admin__form-row",children:s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Fulfillment notes"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.fulfillmentNotes,onChange:S=>j(C=>({...C,fulfillmentNotes:S.target.value})),placeholder:w.fulfillmentType==="shipping"?"e.g., Ships within 3-5 business days":"e.g., Downloadable from your account after purchase"})]})}),w.fulfillmentType==="shipping"&&w.checkoutShippingAddress&&s.jsx("div",{className:"cedros-admin__form-row",children:s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Shipping countries"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:w.shippingCountriesCsv,onChange:S=>j(C=>({...C,shippingCountriesCsv:S.target.value})),placeholder:"e.g., US,CA"}),s.jsx("div",{style:{marginTop:4,fontSize:12,opacity:.75},children:"ISO 2-letter country codes, comma-separated. Required for shipping address collection."})]})}),s.jsx("div",{className:"cedros-admin__form-actions",children:s.jsx("button",{type:"submit",className:"cedros-admin__button cedros-admin__button--primary",disabled:f,children:f?"Creating...":"Create Product"})})]}),i?s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading products..."]}):s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{"aria-sort":g?.key==="id"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>D("id"),children:["ID",V("id")]})}),s.jsx("th",{"aria-sort":g?.key==="product"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>D("product"),children:["Product",V("product")]})}),s.jsx("th",{"aria-sort":g?.key==="type"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>D("type"),children:["Type",V("type")]})}),s.jsx("th",{"aria-sort":g?.key==="price"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>D("price"),children:["Price",V("price")]})}),s.jsx("th",{"aria-sort":g?.key==="status"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>D("status"),children:["Status",V("status")]})}),s.jsx("th",{children:"Actions"})]})}),s.jsx("tbody",{children:L.map(S=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:S.id})}),s.jsx("td",{children:s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[N(S)?s.jsx("img",{src:N(S),alt:"",style:{width:28,height:28,borderRadius:6,objectFit:"cover"}}):s.jsx("div",{style:{width:28,height:28,borderRadius:6,background:"rgba(0,0,0,0.06)"}}),s.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[s.jsx("span",{style:{fontWeight:600},children:T(S)}),s.jsx("span",{style:{opacity:.8},children:S.description})]})]})}),s.jsx("td",{children:M(S.metadata?.product_type)}),s.jsx("td",{children:I(S.fiatAmountCents)}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge ${S.active?"cedros-admin__badge--success":"cedros-admin__badge--muted"}`,children:S.active?"Active":"Inactive"})}),s.jsx("td",{children:s.jsx("div",{style:{display:"flex",gap:"0.25rem"},children:s.jsx("button",{className:"cedros-admin__button cedros-admin__button--ghost",onClick:()=>x(S),children:"Variations"})})})]},S.id))})]})}),v&&s.jsx("div",{className:"cedros-admin__modal-overlay",onClick:()=>x(null),children:s.jsx("div",{className:"cedros-admin__modal cedros-admin__modal--lg",onClick:S=>S.stopPropagation(),children:s.jsx(gm,{serverUrl:e,productId:v.id,productTitle:T(v),defaultPrice:v.fiatAmountCents/100,apiKey:t,authManager:r,onClose:()=>x(null)})})})]})}function gl({serverUrl:e,apiKey:t,pageSize:n=20,authManager:r}){const[o,a]=b.useState([]),[i,c]=b.useState(null),[l,d]=b.useState(!0),[f,u]=b.useState(!0),[m,h]=b.useState(null),[v,x]=b.useState(""),[g,y]=b.useState(null),k=b.useCallback(async()=>{u(!0);try{h(null);let N;if(r?.isAuthenticated())N=await r.fetchWithAuth("/admin/stats");else{const A={"Content-Type":"application/json"};t&&(A["X-API-Key"]=t);const R=await fetch(`${e}/admin/stats`,{headers:A});if(!R.ok)throw new Error(`Failed to fetch stats: ${R.status}`);N=await R.json()}c(N)}catch{c(null),h("Failed to load payment stats")}finally{u(!1)}},[e,t,r]);b.useEffect(()=>{k()},[k]);const _=b.useCallback(async()=>{try{h(null);let N;const A=new URLSearchParams({limit:n.toString()});v&&A.set("method",v);const R=`/admin/transactions?${A}`;if(r?.isAuthenticated())N=await r.fetchWithAuth(R);else{const I={"Content-Type":"application/json"};t&&(I["X-API-Key"]=t);const M=await fetch(`${e}${R}`,{headers:I});if(!M.ok)throw new Error(`Failed to fetch transactions: ${M.status}`);N=await M.json()}a(N.transactions||[])}catch{a([]),h("Failed to load transactions")}finally{d(!1)}},[e,t,n,v,r]);b.useEffect(()=>{_()},[_]);const w=(N,A="USD")=>new Intl.NumberFormat("en-US",{style:"currency",currency:A}).format(N),j=N=>{y(A=>!A||A.key!==N?{key:N,direction:"asc"}:{key:N,direction:A.direction==="asc"?"desc":"asc"})},P=N=>!g||g.key!==N?s.jsx("span",{className:"cedros-admin__sort-icon cedros-admin__sort-icon--idle",children:J.chevronUp}):s.jsx("span",{className:"cedros-admin__sort-icon",children:g.direction==="asc"?J.chevronUp:J.chevronDown}),T=b.useMemo(()=>{if(!g)return o;const N=g.direction==="asc"?1:-1,A=R=>{switch(g.key){case"resource":return R.resourceId;case"method":return R.method;case"amount":return R.amount;case"status":return R.status;case"date":return new Date(R.paidAt).getTime();case"id":default:return R.id}};return[...o].sort((R,I)=>{const M=A(R),z=A(I);return typeof M=="number"&&typeof z=="number"?(M-z)*N:String(M).localeCompare(String(z),void 0,{sensitivity:"base"})*N})},[o,g]);return s.jsxs("div",{className:"cedros-admin__page",children:[s.jsx(Dr,{message:m,onRetry:()=>{k(),_()}}),s.jsx($r,{stats:[{label:"Revenue",value:w(i?.totalRevenue??0)},{label:"Orders",value:i?.totalTransactions??0},{label:"Card",value:w(i?.revenueByMethod.stripe??0),description:`${i?.transactionsByMethod.stripe??0} orders`},{label:"Crypto",value:w(i?.revenueByMethod.x402??0),description:`${i?.transactionsByMethod.x402??0} orders`},{label:"Credits",value:w(i?.revenueByMethod.credits??0),description:`${i?.transactionsByMethod.credits??0} orders`}],isLoading:f,onRefresh:k}),s.jsxs("div",{className:"cedros-admin__section-header",children:[s.jsx("h3",{className:"cedros-admin__section-title",children:"Transaction History"}),s.jsx(ml,{value:v,onChange:x,options:[{value:"",label:"All"},{value:"stripe",label:"Card"},{value:"x402",label:"Crypto"},{value:"credits",label:"Credits"}]})]}),l?s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading transactions..."]}):s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{"aria-sort":g?.key==="id"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>j("id"),children:["ID",P("id")]})}),s.jsx("th",{"aria-sort":g?.key==="resource"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>j("resource"),children:["Resource",P("resource")]})}),s.jsx("th",{"aria-sort":g?.key==="method"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>j("method"),children:["Method",P("method")]})}),s.jsx("th",{"aria-sort":g?.key==="amount"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>j("amount"),children:["Amount",P("amount")]})}),s.jsx("th",{"aria-sort":g?.key==="status"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>j("status"),children:["Status",P("status")]})}),s.jsx("th",{"aria-sort":g?.key==="date"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>j("date"),children:["Date",P("date")]})})]})}),s.jsx("tbody",{children:T.map(N=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:N.id})}),s.jsx("td",{children:N.resourceId}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge cedros-admin__badge--${N.method}`,children:N.method})}),s.jsxs("td",{children:["$",N.amount.toFixed(2)," ",N.currency.toUpperCase()]}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge cedros-admin__badge--${N.status}`,children:N.status})}),s.jsx("td",{children:br(N.paidAt)})]},N.id))})]})})]})}function xl({serverUrl:e,apiKey:t,pageSize:n=20,authManager:r}){const[o,a]=b.useState([]),[i,c]=b.useState(!0),[l,d]=b.useState(!1),[f,u]=b.useState(!1),[m,h]=b.useState(null),[v,x]=b.useState(null),[g,y]=b.useState({code:"",discountType:"percentage",discountValue:0,usageLimit:void 0,expiresAt:"",scope:"all_products",productIdsCsv:"",categoryIdsCsv:"",paymentMethod:"any",autoApply:!1,appliesAt:"both",startsAt:"",minimumAmountUsd:"",usageLimitPerCustomer:void 0,firstPurchaseOnly:!1}),k=b.useCallback(async()=>{try{x(null);let A;const R=`/admin/coupons?limit=${n}`;if(r?.isAuthenticated())A=await r.fetchWithAuth(R);else{const I={"Content-Type":"application/json"};t&&(I["X-API-Key"]=t);const M=await fetch(`${e}${R}`,{headers:I});if(!M.ok)throw new Error(`Failed to fetch coupons: ${M.status}`);A=await M.json()}a(A.coupons||[])}catch(A){oe.getLogger().error("[CouponsSection] Failed to fetch coupons:",A,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t}),a([]),x("Failed to load coupons")}finally{c(!1)}},[e,t,n,r]);b.useEffect(()=>{k()},[k]);const _=async A=>{if(A.preventDefault(),!(!g.code||g.discountValue<=0)){u(!0);try{const R=g.minimumAmountUsd?Math.round(Number(g.minimumAmountUsd)*100):void 0,I=g.productIdsCsv.split(",").map(D=>D.trim()).filter(Boolean),M=g.categoryIdsCsv.split(",").map(D=>D.trim()).filter(Boolean),z={code:g.code,discountType:g.discountType,discountValue:g.discountValue,usageLimit:g.usageLimit,active:!0,usageCount:0,scope:g.scope,...I.length?{productIds:I}:{},...M.length?{categoryIds:M}:{},...g.paymentMethod!=="any"?{paymentMethod:g.paymentMethod}:{},...g.autoApply?{autoApply:!0}:{},...g.appliesAt!=="both"?{appliesAt:g.appliesAt}:{},...g.startsAt?{startsAt:g.startsAt}:{},...g.expiresAt?{expiresAt:g.expiresAt}:{},...R?{minimumAmountCents:R}:{},...g.usageLimitPerCustomer?{usageLimitPerCustomer:g.usageLimitPerCustomer}:{},...g.firstPurchaseOnly?{firstPurchaseOnly:!0}:{}};if(r?.isAuthenticated())await r.fetchWithAuth("/admin/coupons",{method:"POST",body:JSON.stringify(z)});else{const D={"Content-Type":"application/json"};t&&(D["X-API-Key"]=t);const V=await fetch(`${e}/admin/coupons`,{method:"POST",headers:D,body:JSON.stringify(z)});if(!V.ok)throw new Error(`Failed to create coupon: ${V.status}`)}y({code:"",discountType:"percentage",discountValue:0,usageLimit:void 0,expiresAt:"",scope:"all_products",productIdsCsv:"",categoryIdsCsv:"",paymentMethod:"any",autoApply:!1,appliesAt:"both",startsAt:"",minimumAmountUsd:"",usageLimitPerCustomer:void 0,firstPurchaseOnly:!1}),d(!1),k()}catch(R){oe.getLogger().error("[CouponsSection] Failed to add coupon:",R,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t}),x("Failed to create coupon")}finally{u(!1)}}},w=o.filter(A=>A.active).length,j=o.reduce((A,R)=>A+(R.usageCount??0),0),P=A=>{h(R=>!R||R.key!==A?{key:A,direction:"asc"}:{key:A,direction:R.direction==="asc"?"desc":"asc"})},T=A=>!m||m.key!==A?s.jsx("span",{className:"cedros-admin__sort-icon cedros-admin__sort-icon--idle",children:J.chevronUp}):s.jsx("span",{className:"cedros-admin__sort-icon",children:m.direction==="asc"?J.chevronUp:J.chevronDown}),N=b.useMemo(()=>{if(!m)return o;const A=m.direction==="asc"?1:-1,R=I=>{switch(m.key){case"discount":return I.discountValue??0;case"usage":return I.usageCount??0;case"status":return I.active?1:0;case"code":default:return I.code}};return[...o].sort((I,M)=>{const z=R(I),D=R(M);return typeof z=="number"&&typeof D=="number"?(z-D)*A:String(z).localeCompare(String(D),void 0,{sensitivity:"base"})*A})},[o,m]);return s.jsxs("div",{className:"cedros-admin__page",children:[s.jsx(Dr,{message:v,onRetry:k}),s.jsx($r,{stats:[{label:"Total Coupons",value:o.length},{label:"Active",value:w,variant:w>0?"success":"muted"},{label:"Redemptions",value:j}],isLoading:i}),s.jsxs("div",{className:"cedros-admin__section-header",children:[s.jsx("h3",{className:"cedros-admin__section-title",children:"Discount Coupons"}),s.jsxs("button",{className:"cedros-admin__button cedros-admin__button--primary cedros-admin__button--action",onClick:()=>d(!l),children:[l?J.close:J.plus,l?"Cancel":"Add Coupon"]})]}),l&&s.jsxs("form",{onSubmit:_,className:"cedros-admin__add-form",children:[s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Coupon Code"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:g.code,onChange:A=>y(R=>({...R,code:A.target.value.toUpperCase()})),placeholder:"e.g., SAVE20",required:!0})]}),s.jsx(At,{value:g.discountType,onChange:A=>y(R=>({...R,discountType:A})),options:[{value:"percentage",label:"Percentage (%)"},{value:"fixed",label:"Fixed Amount ($)"}],label:"Discount Type"})]}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsxs("label",{className:"cedros-admin__field-label",children:["Discount Value ",g.discountType==="percentage"?"(%)":"($)"]}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:g.discountValue||"",onChange:A=>y(R=>({...R,discountValue:parseFloat(A.target.value)||0})),placeholder:g.discountType==="percentage"?"e.g., 20":"e.g., 10.00",min:"0",step:g.discountType==="percentage"?"1":"0.01",required:!0})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Usage Limit (optional)"}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:g.usageLimit||"",onChange:A=>y(R=>({...R,usageLimit:A.target.value?parseInt(A.target.value):void 0})),placeholder:"Leave empty for unlimited",min:"1"})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Expiration Date (optional)"}),s.jsx("input",{type:"date",className:"cedros-admin__input",value:g.expiresAt,onChange:A=>y(R=>({...R,expiresAt:A.target.value}))})]})]}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsx(At,{value:g.scope,onChange:A=>y(R=>({...R,scope:A})),options:[{value:"all_products",label:"All Products"},{value:"specific_products",label:"Specific Products"},{value:"specific_categories",label:"Specific Categories"}],label:"Scope"}),s.jsx(At,{value:g.paymentMethod,onChange:A=>y(R=>({...R,paymentMethod:A})),options:[{value:"any",label:"Any Payment Method"},{value:"stripe",label:"Stripe (Card) Only"},{value:"x402",label:"Crypto (x402) Only"},{value:"credits",label:"Credits Only"}],label:"Payment Method"}),s.jsx(At,{value:g.appliesAt,onChange:A=>y(R=>({...R,appliesAt:A})),options:[{value:"both",label:"Cart & Checkout"},{value:"cart",label:"Cart Only"},{value:"checkout",label:"Checkout Only"}],label:"Applies At"})]}),g.scope==="specific_products"&&s.jsx("div",{className:"cedros-admin__form-row",children:s.jsxs("div",{className:"cedros-admin__field",style:{flex:1},children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Product IDs"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:g.productIdsCsv,onChange:A=>y(R=>({...R,productIdsCsv:A.target.value})),placeholder:"e.g., prod_123, prod_456"}),s.jsx("div",{style:{marginTop:4,fontSize:12,opacity:.75},children:"Comma-separated product IDs this coupon applies to."})]})}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Start Date (optional)"}),s.jsx("input",{type:"date",className:"cedros-admin__input",value:g.startsAt,onChange:A=>y(R=>({...R,startsAt:A.target.value}))})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Auto Apply"}),s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[s.jsx("input",{type:"checkbox",checked:g.autoApply,onChange:A=>y(R=>({...R,autoApply:A.target.checked}))}),"Automatically apply when conditions met"]})]})]}),s.jsxs("div",{className:"cedros-admin__form-row",children:[s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Minimum Purchase (USD)"}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:g.minimumAmountUsd===""?"":g.minimumAmountUsd,onChange:A=>y(R=>({...R,minimumAmountUsd:A.target.value===""?"":parseFloat(A.target.value)||0})),placeholder:"e.g., 50.00",min:"0",step:"0.01"})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Per-Customer Limit"}),s.jsx("input",{type:"number",className:"cedros-admin__input",value:g.usageLimitPerCustomer||"",onChange:A=>y(R=>({...R,usageLimitPerCustomer:A.target.value?parseInt(A.target.value):void 0})),placeholder:"Leave empty for unlimited",min:"1"})]}),s.jsxs("div",{className:"cedros-admin__field",children:[s.jsx("label",{className:"cedros-admin__field-label",children:"First Purchase Only"}),s.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[s.jsx("input",{type:"checkbox",checked:g.firstPurchaseOnly,onChange:A=>y(R=>({...R,firstPurchaseOnly:A.target.checked}))}),"New customers only"]})]})]}),g.scope==="specific_categories"&&s.jsx("div",{className:"cedros-admin__form-row",children:s.jsxs("div",{className:"cedros-admin__field",style:{flex:1},children:[s.jsx("label",{className:"cedros-admin__field-label",children:"Category IDs"}),s.jsx("input",{type:"text",className:"cedros-admin__input",value:g.categoryIdsCsv,onChange:A=>y(R=>({...R,categoryIdsCsv:A.target.value})),placeholder:"e.g., cat_apparel, cat_accessories"}),s.jsx("div",{style:{marginTop:4,fontSize:12,opacity:.75},children:"Comma-separated category IDs this coupon applies to."})]})}),s.jsx("div",{className:"cedros-admin__form-actions",children:s.jsx("button",{type:"submit",className:"cedros-admin__button cedros-admin__button--primary",disabled:f,children:f?"Creating...":"Create Coupon"})})]}),i?s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading coupons..."]}):s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{"aria-sort":m?.key==="code"?m?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>P("code"),children:["Code",T("code")]})}),s.jsx("th",{"aria-sort":m?.key==="discount"?m?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>P("discount"),children:["Discount",T("discount")]})}),s.jsx("th",{"aria-sort":m?.key==="usage"?m?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>P("usage"),children:["Usage",T("usage")]})}),s.jsx("th",{"aria-sort":m?.key==="status"?m?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>P("status"),children:["Status",T("status")]})}),s.jsx("th",{children:"Actions"})]})}),s.jsx("tbody",{children:N.map(A=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:A.code})}),s.jsx("td",{children:A.discountType==="percentage"?`${A.discountValue}%`:`$${A.discountValue.toFixed(2)}`}),s.jsxs("td",{children:[A.usageCount,A.usageLimit?` / ${A.usageLimit}`:""]}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge ${A.active?"cedros-admin__badge--success":"cedros-admin__badge--muted"}`,children:A.active?"Active":"Inactive"})}),s.jsx("td",{children:s.jsx("button",{className:"cedros-admin__button cedros-admin__button--ghost",children:"Edit"})})]},A.code))})]})})]})}function vl({serverUrl:e,apiKey:t,pageSize:n=20,authManager:r}){const[o,a]=b.useState([]),[i,c]=b.useState(!0),[l,d]=b.useState(null),[f,u]=b.useState([]),[m,h]=b.useState(!0),[v,x]=b.useState(null),[g,y]=b.useState(null),[k,_]=b.useState([]),[w,j]=b.useState(!0),[P,T]=b.useState(null),[N,A]=b.useState(null),[R,I]=b.useState(null),[M,z]=b.useState(""),[D,V]=b.useState(null),L=b.useCallback(async()=>{try{let O;const X=`/admin/refunds?limit=${n}`;if(r?.isAuthenticated())O=await r.fetchWithAuth(X);else{const ae={"Content-Type":"application/json"};t&&(ae["X-API-Key"]=t);const be=await fetch(`${e}${X}`,{headers:ae});if(!be.ok)throw new Error(`Failed to fetch x402 refunds: ${be.status}`);O=await be.json()}a(O.refunds||[])}catch(O){oe.getLogger().error("[RefundsSection] Failed to fetch x402 refunds:",O,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t}),a([]),V("Failed to load x402 refunds")}finally{c(!1)}},[e,t,n,r]);b.useEffect(()=>{L()},[L]);const S=b.useCallback(async()=>{try{let O;const X=`/admin/credits/refund-requests?status=pending&limit=${n}&offset=0`;if(r?.isAuthenticated())O=await r.fetchWithAuth(X);else{const be={"Content-Type":"application/json"};t&&(be["X-API-Key"]=t);const we=await fetch(`${e}${X}`,{headers:be});if(!we.ok)throw new Error(`Failed to fetch credits refund requests: ${we.status}`);O=await we.json()}const ae=Array.isArray(O)?O:"refundRequests"in O?O.refundRequests:O.requests||[];u(ae)}catch(O){oe.getLogger().error("[RefundsSection] Failed to fetch credits refunds:",O,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t}),u([]),V("Failed to load credits refunds")}finally{h(!1)}},[e,t,n,r]);b.useEffect(()=>{S()},[S]);const C=async O=>{x(O.id);try{const X=`/admin/credits/refund-requests/${O.id}/process`,ae=JSON.stringify({amountLamports:O.amountLamports,reason:O.reason});if(r?.isAuthenticated())await r.fetchWithAuth(X,{method:"POST",body:ae});else{const be={"Content-Type":"application/json"};t&&(be["X-API-Key"]=t);const we=await fetch(`${e}${X}`,{method:"POST",headers:be,body:ae});if(!we.ok)throw new Error(`Failed to process credits refund: ${we.status}`)}await S()}catch(X){oe.getLogger().error("[RefundsSection] Failed to process credits refund:",X,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t,requestId:O.id}),V("Failed to process credits refund")}finally{x(null)}},W=O=>{z(O.reason??""),I(O)},Z=()=>{I(null),z("")},Q=async()=>{if(!R)return;const O=R,X=M;Z(),x(O.id);try{const ae=`/admin/credits/refund-requests/${O.id}/reject`,be=JSON.stringify({reason:X});if(r?.isAuthenticated())await r.fetchWithAuth(ae,{method:"POST",body:be});else{const we={"Content-Type":"application/json"};t&&(we["X-API-Key"]=t);const Re=await fetch(`${e}${ae}`,{method:"POST",headers:we,body:be});if(!Re.ok)throw new Error(`Failed to reject credits refund: ${Re.status}`)}await S()}catch(ae){oe.getLogger().error("[RefundsSection] Failed to reject credits refund:",ae,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t,requestId:O.id}),V("Failed to reject credits refund")}finally{x(null)}},de=b.useCallback(async()=>{try{let O;const X=`/admin/stripe/refunds?limit=${n}`;if(r?.isAuthenticated())O=await r.fetchWithAuth(X);else{const ae={"Content-Type":"application/json"};t&&(ae["X-API-Key"]=t);const be=await fetch(`${e}${X}`,{headers:ae});if(!be.ok)throw new Error(`Failed to fetch Stripe refunds: ${be.status}`);O=await be.json()}_(O.refunds||[])}catch(O){oe.getLogger().error("[RefundsSection] Failed to fetch Stripe refunds:",O,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t}),_([]),V("Failed to load Stripe refunds")}finally{j(!1)}},[e,t,n,r]);b.useEffect(()=>{de()},[de]);const q=async O=>{T(O);try{const X=`/admin/stripe/refunds/${O}/process`;if(r?.isAuthenticated())await r.fetchWithAuth(X,{method:"POST"});else{const ae={"Content-Type":"application/json"};t&&(ae["X-API-Key"]=t);const be=await fetch(`${e}${X}`,{method:"POST",headers:ae});if(!be.ok)throw new Error(`Failed to process refund: ${be.status}`)}await de()}catch(X){oe.getLogger().error("[RefundsSection] Failed to process Stripe refund:",X,{serverUrl:e.slice(0,20)+"...",hasApiKey:!!t,refundId:O}),V("Failed to process Stripe refund")}finally{T(null)}},K=(O,X)=>new Intl.NumberFormat("en-US",{style:"currency",currency:X}).format(O/100),Y=O=>O?O.replace(/_/g," ").replace(/\b\w/g,X=>X.toUpperCase()):"—",me=O=>{switch(O){case"processed":return"success";case"pending":return"pending";case"rejected":default:return"muted"}},$=(O,X)=>X?X.toLowerCase()==="usd"?`${new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(O/1e6)} (USD credits)`:`${O.toLocaleString()} ${X.toUpperCase()} (atomic)`:`${O.toLocaleString()} (atomic)`,G=O=>{switch(O){case"succeeded":return"success";case"failed":return"failed";case"pending":case"requires_action":return"pending";case"canceled":default:return"muted"}},pe=O=>O.stripeRefundId??"—",U=O=>O.chargeId??"—",se=k.filter(O=>O.status==="pending"||O.status==="requires_action").length,le=f.filter(O=>O.status==="pending").length,ue=o.filter(O=>O.status==="pending").length,Te=se+le+ue,We=k.filter(O=>O.status==="succeeded").reduce((O,X)=>O+X.amount,0),Ye=f.filter(O=>O.status==="processed").reduce((O,X)=>O+X.amountLamports,0),qe=o.filter(O=>O.status==="completed").reduce((O,X)=>O+X.amount,0),_t=We/100+Ye/1e6+qe,Qe=O=>new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(O),tn=w||m||i,xt=O=>{A(X=>!X||X.key!==O?{key:O,direction:"asc"}:{key:O,direction:X.direction==="asc"?"desc":"asc"})},Se=O=>{y(X=>!X||X.key!==O?{key:O,direction:"asc"}:{key:O,direction:X.direction==="asc"?"desc":"asc"})},Xe=O=>{d(X=>!X||X.key!==O?{key:O,direction:"asc"}:{key:O,direction:X.direction==="asc"?"desc":"asc"})},ke=(O,X)=>!O||!X?s.jsx("span",{className:"cedros-admin__sort-icon cedros-admin__sort-icon--idle",children:J.chevronUp}):s.jsx("span",{className:"cedros-admin__sort-icon",children:X==="asc"?J.chevronUp:J.chevronDown}),Gt=b.useMemo(()=>{if(!N)return k;const O=N.direction==="asc"?1:-1,X=ae=>{switch(N.key){case"stripe":return ae.stripeRefundId??"";case"charge":return ae.chargeId??"";case"amount":return ae.amount??0;case"reason":return ae.reason??"";case"status":return ae.status??"";case"date":return new Date(ae.createdAt).getTime();case"id":default:return ae.id}};return[...k].sort((ae,be)=>{const we=X(ae),Re=X(be);return typeof we=="number"&&typeof Re=="number"?(we-Re)*O:String(we).localeCompare(String(Re),void 0,{sensitivity:"base"})*O})},[k,N]),ft=b.useMemo(()=>{if(!g)return f;const O=g.direction==="asc"?1:-1,X=ae=>{switch(g.key){case"original":return ae.originalTransactionId??"";case"user":return ae.userId??"";case"amount":return ae.amountLamports??0;case"reason":return ae.reason??"";case"status":return ae.status??"";case"date":return new Date(ae.createdAt).getTime();case"id":default:return ae.id}};return[...f].sort((ae,be)=>{const we=X(ae),Re=X(be);return typeof we=="number"&&typeof Re=="number"?(we-Re)*O:String(we).localeCompare(String(Re),void 0,{sensitivity:"base"})*O})},[f,g]),it=b.useMemo(()=>{if(!l)return o;const O=l.direction==="asc"?1:-1,X=ae=>{switch(l.key){case"transaction":return ae.transactionId??"";case"amount":return ae.amount??0;case"reason":return ae.reason??"";case"status":return ae.status??"";case"date":return new Date(ae.createdAt).getTime();case"id":default:return ae.id}};return[...o].sort((ae,be)=>{const we=X(ae),Re=X(be);return typeof we=="number"&&typeof Re=="number"?(we-Re)*O:String(we).localeCompare(String(Re),void 0,{sensitivity:"base"})*O})},[o,l]);return s.jsxs("div",{className:"cedros-admin__page",children:[s.jsx(Dr,{message:D,onRetry:()=>{L(),S(),de()}}),s.jsx($r,{stats:[{label:"Pending",value:Te,variant:Te>0?"warning":"muted"},{label:"Card Pending",value:se,description:"Stripe"},{label:"Credits Pending",value:le},{label:"Crypto Pending",value:ue,description:"x402"},{label:"Total Refunded",value:Qe(_t),variant:"success"}],isLoading:tn}),s.jsx("div",{className:"cedros-admin__section-header",children:s.jsx("h3",{className:"cedros-admin__section-title",children:"Stripe Refund Requests"})}),w?s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading Stripe refunds..."]}):k.length===0?s.jsx("div",{className:"cedros-admin__empty",children:"No Stripe refund requests found."}):s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{"aria-sort":N?.key==="id"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("id"),children:["Request ID",ke(N?.key==="id",N?.direction)]})}),s.jsx("th",{"aria-sort":N?.key==="stripe"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("stripe"),children:["Stripe Refund ID",ke(N?.key==="stripe",N?.direction)]})}),s.jsx("th",{"aria-sort":N?.key==="charge"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("charge"),children:["Charge",ke(N?.key==="charge",N?.direction)]})}),s.jsx("th",{"aria-sort":N?.key==="amount"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("amount"),children:["Amount",ke(N?.key==="amount",N?.direction)]})}),s.jsx("th",{"aria-sort":N?.key==="reason"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("reason"),children:["Reason",ke(N?.key==="reason",N?.direction)]})}),s.jsx("th",{"aria-sort":N?.key==="status"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("status"),children:["Status",ke(N?.key==="status",N?.direction)]})}),s.jsx("th",{"aria-sort":N?.key==="date"?N?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>xt("date"),children:["Date",ke(N?.key==="date",N?.direction)]})}),s.jsx("th",{children:"Actions"})]})}),s.jsx("tbody",{children:Gt.map(O=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:O.id})}),s.jsx("td",{children:s.jsx("code",{children:pe(O)})}),s.jsx("td",{children:s.jsx("code",{children:U(O)})}),s.jsx("td",{children:K(O.amount,O.currency)}),s.jsx("td",{children:Y(O.reason)}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge cedros-admin__badge--${G(O.status)}`,children:O.status})}),s.jsx("td",{children:br(O.createdAt)}),s.jsx("td",{children:(O.status==="pending"||O.status==="requires_action")&&s.jsx("button",{className:"cedros-admin__button cedros-admin__button--primary cedros-admin__button--sm",onClick:()=>q(O.id),disabled:P===O.id,children:P===O.id?"Processing...":"Process"})})]},O.id))})]})}),s.jsx("div",{className:"cedros-admin__section-header",style:{marginTop:"2rem"},children:s.jsx("h3",{className:"cedros-admin__section-title",children:"Credits Refund Requests"})}),m?s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading credits refunds..."]}):f.length===0?s.jsx("div",{className:"cedros-admin__empty",children:"No credits refund requests found."}):s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{"aria-sort":g?.key==="id"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("id"),children:["Request ID",ke(g?.key==="id",g?.direction)]})}),s.jsx("th",{"aria-sort":g?.key==="original"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("original"),children:["Original Tx",ke(g?.key==="original",g?.direction)]})}),s.jsx("th",{"aria-sort":g?.key==="user"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("user"),children:["User",ke(g?.key==="user",g?.direction)]})}),s.jsx("th",{"aria-sort":g?.key==="amount"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("amount"),children:["Amount",ke(g?.key==="amount",g?.direction)]})}),s.jsx("th",{"aria-sort":g?.key==="reason"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("reason"),children:["Reason",ke(g?.key==="reason",g?.direction)]})}),s.jsx("th",{"aria-sort":g?.key==="status"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("status"),children:["Status",ke(g?.key==="status",g?.direction)]})}),s.jsx("th",{"aria-sort":g?.key==="date"?g?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Se("date"),children:["Date",ke(g?.key==="date",g?.direction)]})}),s.jsx("th",{children:"Actions"})]})}),s.jsx("tbody",{children:ft.map(O=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:O.id})}),s.jsx("td",{children:s.jsx("code",{children:O.originalTransactionId})}),s.jsx("td",{children:s.jsx("code",{children:O.userId??"—"})}),s.jsx("td",{children:$(O.amountLamports,O.currency)}),s.jsx("td",{children:O.reason??"—"}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge cedros-admin__badge--${me(O.status)}`,children:O.status})}),s.jsx("td",{children:br(O.createdAt)}),s.jsx("td",{children:O.status==="pending"?s.jsxs("div",{style:{display:"flex",gap:"0.5rem"},children:[s.jsx("button",{className:"cedros-admin__button cedros-admin__button--primary cedros-admin__button--sm",onClick:()=>C(O),disabled:v===O.id,children:v===O.id?"Processing...":"Process"}),s.jsx("button",{className:"cedros-admin__button cedros-admin__button--outline cedros-admin__button--danger cedros-admin__button--sm",onClick:()=>W(O),disabled:v===O.id,children:"Reject"})]}):null})]},O.id))})]})}),s.jsx("div",{className:"cedros-admin__section-header",style:{marginTop:"2rem"},children:s.jsx("h3",{className:"cedros-admin__section-title",children:"x402 Refund Requests"})}),i?s.jsxs("div",{className:"cedros-admin__loading",children:[J.loading," Loading x402 refunds..."]}):o.length===0?s.jsx("div",{className:"cedros-admin__empty",children:"No x402 refund requests found."}):s.jsx("div",{className:"cedros-admin__table-container",children:s.jsxs("table",{className:"cedros-admin__table",children:[s.jsx("thead",{children:s.jsxs("tr",{children:[s.jsx("th",{"aria-sort":l?.key==="id"?l?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Xe("id"),children:["ID",ke(l?.key==="id",l?.direction)]})}),s.jsx("th",{"aria-sort":l?.key==="transaction"?l?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Xe("transaction"),children:["Transaction",ke(l?.key==="transaction",l?.direction)]})}),s.jsx("th",{"aria-sort":l?.key==="amount"?l?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Xe("amount"),children:["Amount",ke(l?.key==="amount",l?.direction)]})}),s.jsx("th",{"aria-sort":l?.key==="reason"?l?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Xe("reason"),children:["Reason",ke(l?.key==="reason",l?.direction)]})}),s.jsx("th",{"aria-sort":l?.key==="status"?l?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Xe("status"),children:["Status",ke(l?.key==="status",l?.direction)]})}),s.jsx("th",{"aria-sort":l?.key==="date"?l?.direction==="asc"?"ascending":"descending":"none",children:s.jsxs("button",{type:"button",className:"cedros-admin__table-sort",onClick:()=>Xe("date"),children:["Date",ke(l?.key==="date",l?.direction)]})}),s.jsx("th",{children:"Actions"})]})}),s.jsx("tbody",{children:it.map(O=>s.jsxs("tr",{children:[s.jsx("td",{children:s.jsx("code",{children:O.id})}),s.jsx("td",{children:s.jsx("code",{children:O.transactionId})}),s.jsxs("td",{children:["$",O.amount.toFixed(2)]}),s.jsx("td",{children:O.reason||"—"}),s.jsx("td",{children:s.jsx("span",{className:`cedros-admin__badge cedros-admin__badge--${O.status}`,children:O.status})}),s.jsx("td",{children:br(O.createdAt)}),s.jsx("td",{})]},O.id))})]})}),R&&s.jsx("div",{className:"cedros-admin__modal-overlay",onClick:Z,children:s.jsxs("div",{className:"cedros-admin__modal",onClick:O=>O.stopPropagation(),children:[s.jsxs("div",{className:"cedros-admin__modal-header",children:[s.jsx("h3",{className:"cedros-admin__modal-title",children:"Reject Refund Request"}),s.jsx("button",{type:"button",className:"cedros-admin__modal-close",onClick:Z,"aria-label":"Close",children:J.close})]}),s.jsxs("div",{className:"cedros-admin__modal-body",children:[s.jsxs("p",{style:{marginBottom:"1rem",color:"var(--admin-muted)"},children:["Rejecting refund request ",s.jsx("code",{children:R.id})," for ",$(R.amountLamports,R.currency),"."]}),s.jsxs("label",{className:"cedros-admin__form-field",children:[s.jsx("span",{className:"cedros-admin__form-label",children:"Reason (optional)"}),s.jsx("textarea",{className:"cedros-admin__input",value:M,onChange:O=>z(O.target.value),placeholder:"Enter rejection reason...",rows:3,style:{resize:"vertical"}})]})]}),s.jsxs("div",{className:"cedros-admin__modal-footer",children:[s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--outline",onClick:Z,children:"Cancel"}),s.jsx("button",{type:"button",className:"cedros-admin__button cedros-admin__button--primary cedros-admin__button--danger",onClick:Q,children:"Reject Refund"})]})]})})]})}const xm=b.lazy(()=>Promise.resolve().then(()=>require("./SettingsSection-DNoODw7i.js")).then(e=>({default:e.SettingsSection})));function yl(e){return s.jsx(b.Suspense,{fallback:null,children:s.jsx(xm,{...e})})}class bl{serverUrl;walletSigner=null;jwtToken=null;isAdminUser=!1;constructor(t){this.serverUrl=t}getAuthMethod(){return this.walletSigner?.publicKey&&this.walletSigner.signMessage?"wallet":this.jwtToken&&this.isAdminUser?"cedros-login":"none"}isAuthenticated(){return this.getAuthMethod()!=="none"}setWalletSigner(t){this.walletSigner=t,oe.getLogger().debug("[AdminAuthManager] Wallet signer updated:",!!t?.publicKey)}setCedrosLoginAuth(t,n){this.jwtToken=t,this.isAdminUser=n??!1,oe.getLogger().debug("[AdminAuthManager] Cedros-login auth updated:",{hasToken:!!t,isAdmin:this.isAdminUser})}async createAuthHeaders(t){const n=this.getAuthMethod();if(n==="wallet")return this.createWalletAuthHeaders(t);if(n==="cedros-login")return this.createJwtAuthHeaders();throw new Error("No admin authentication configured. Connect a wallet or sign in as admin.")}async createWalletAuthHeaders(t){if(!this.walletSigner?.publicKey||!this.walletSigner.signMessage)throw new Error("Wallet not connected or does not support message signing");const n=await this.fetchNonce(t),r=new TextEncoder().encode(n.nonce_id),o=await this.walletSigner.signMessage(r),a=Ai.bs58.encode(this.walletSigner.publicKey.toBytes()),i=Ai.bs58.encode(o);return{"X-Signer":a,"X-Message":n.nonce_id,"X-Signature":i}}createJwtAuthHeaders(){if(!this.jwtToken)throw new Error("No JWT token available");return{Authorization:`Bearer ${this.jwtToken}`}}async fetchNonce(t){const n=`${this.serverUrl}/paywall/v1/nonce`;oe.getLogger().debug("[AdminAuthManager] Fetching nonce for purpose:",t);const r=await oe.fetchWithTimeout(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({purpose:t})});if(!r.ok){const o=await r.text();throw new Error(`Failed to fetch nonce: ${r.status} ${o}`)}return await r.json()}async fetchWithAuth(t,n={}){if(this.getAuthMethod()==="none")throw new Error("No admin authentication configured");const o=this.getPurposeFromPath(t,n.method||"GET"),a=await this.createAuthHeaders(o),i=(n.method||"GET").toUpperCase(),c={...i!=="GET"&&i!=="HEAD"?{"Content-Type":"application/json"}:{},...n.headers||{},...a},l=await oe.fetchWithTimeout(`${this.serverUrl}${t}`,{...n,headers:c});if(!l.ok){let d=`Admin API error ${l.status}`;try{const f=await l.json();f&&typeof f.error=="string"?d=f.error:f&&typeof f.message=="string"&&(d=f.message)}catch{}throw new Error(d)}return await l.json()}getPurposeFromPath(t,n){const o={"/admin/stats":{GET:"admin_stats"},"/admin/products":{GET:"admin_products_list",POST:"admin_products_create"},"/admin/transactions":{GET:"admin_transactions_list"},"/admin/coupons":{GET:"admin_coupons_list",POST:"admin_coupons_create"},"/admin/refunds":{GET:"admin_refunds_list"},"/admin/config":{GET:"admin_config_list"}}[t];if(o?.[n])return o[n];if(t.startsWith("/admin/products/")){if(n==="PUT")return"admin_products_update";if(n==="DELETE")return"admin_products_delete"}if(t.startsWith("/admin/coupons/")){if(n==="PUT")return"admin_coupons_update";if(n==="DELETE")return"admin_coupons_delete"}if(t.startsWith("/admin/refunds/")&&t.includes("/process"))return"admin_refunds_process";if(t.startsWith("/admin/config/")){if(n==="GET")return"admin_config_get";if(n==="PUT")return"admin_config_update";if(n==="PATCH")return"admin_config_patch"}return`admin_${n.toLowerCase()}`}}function vm({serverUrl:e,cedrosLoginToken:t,isAdmin:n=!1}){const r=Ip.useWallet(),o=b.useMemo(()=>{const u=new bl(e);return u.setCedrosLoginAuth(t??null,n),u},[e,t,n]);b.useEffect(()=>{r.publicKey&&r.signMessage?o.setWalletSigner({publicKey:r.publicKey,signMessage:r.signMessage}):o.setWalletSigner(null)},[o,r.publicKey,r.signMessage]);const a=o.getAuthMethod(),i=o.isAuthenticated(),c=!!(r.publicKey&&r.signMessage),l=!!t,d=b.useMemo(()=>{if(!r.publicKey)return null;const u=r.publicKey.toBase58();return`${u.slice(0,4)}...${u.slice(-4)}`},[r.publicKey]),f=b.useCallback((u,m)=>o.fetchWithAuth(u,m),[o]);return{authMethod:a,isAuthenticated:i,walletConnected:c,walletAddress:d,cedrosLoginAvailable:l,authManager:o,fetchWithAuth:f}}const ym=b.lazy(()=>Promise.resolve().then(()=>require("./SubscriptionsSection-4b29i-41.js")).then(e=>({default:e.SubscriptionsSection}))),bm=b.lazy(()=>Promise.resolve().then(()=>require("./StorefrontSection-BEOMtSAg.js")).then(e=>({default:e.StorefrontSection}))),wm=b.lazy(()=>Promise.resolve().then(()=>require("./AISettingsSection-C-thWh51.js")).then(e=>({default:e.AISettingsSection}))),_m=b.lazy(()=>Promise.resolve().then(()=>require("./PaymentSettingsSection-DpENgoca.js")).then(e=>({default:e.PaymentSettingsSection}))),km=b.lazy(()=>Promise.resolve().then(()=>require("./MessagingSection-BHzf1Mhu.js")).then(e=>({default:e.MessagingSection}))),jm=b.lazy(()=>Promise.resolve().then(()=>require("./FAQSection-_pm1ekTe.js")).then(e=>({default:e.FAQSection}))),wl=[{label:"Menu",sections:[{id:"transactions",label:"Transactions",icon:J.transactions},{id:"products",label:"Products",icon:J.products},{id:"subscriptions",label:"Subscriptions",icon:J.calendarRepeat},{id:"coupons",label:"Coupons",icon:J.coupons},{id:"refunds",label:"Refunds",icon:J.refunds}]},{label:"Configuration",collapsible:!0,sections:[{id:"storefront",label:"Storefront",icon:J.storefront},{id:"ai-settings",label:"Store AI",icon:J.brain},{id:"faqs",label:"Knowledge Base",icon:J.faq},{id:"payment-settings",label:"Payment Options",icon:J.creditCard},{id:"messaging",label:"Store Messages",icon:J.mail},{id:"settings",label:"Store Server",icon:J.server}]}],Sm=wl.flatMap(e=>e.sections);function Cm(){const[e,t]=b.useState(()=>typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light");return b.useEffect(()=>{const n=window.matchMedia("(prefers-color-scheme: dark)"),r=o=>t(o.matches?"dark":"light");return n.addEventListener("change",r),()=>n.removeEventListener("change",r)},[]),e}function Nm(e,t,n){return e!=="system"?e:t||n}function Em({serverUrl:e,apiKey:t,title:n="Cedros Pay",sections:r=["transactions","products","subscriptions","coupons","refunds","storefront","ai-settings","faqs","payment-settings","messaging","settings"],defaultSection:o="transactions",refreshInterval:a=3e4,pageSize:i=20,onSectionChange:c,className:l="",cedrosLoginToken:d,isAdmin:f=!1,theme:u="system"}){const[m,h]=b.useState(o),[v]=b.useState(!1),[x,g]=b.useState(new Set),y=b.useCallback(I=>{g(M=>{const z=new Set(M);return z.has(I)?z.delete(I):z.add(I),z})},[]),k=oe.useCedrosThemeOptional(),_=Cm(),j=Nm(u,k?.mode??null,_)==="dark"?"cedros-admin--dark":"",{authManager:P,isAuthenticated:T}=vm({serverUrl:e,cedrosLoginToken:d,isAdmin:f}),N=b.useCallback(I=>{h(I),c?.(I)},[c]),R=Sm.filter(I=>r.includes(I.id)).find(I=>I.id===m);return v?s.jsxs("div",{className:`cedros-admin cedros-admin--loading ${j} ${l}`,children:[J.loading,s.jsx("span",{className:"cedros-admin__loading-text",children:"Loading dashboard..."})]}):T?s.jsxs("div",{className:`cedros-admin ${j} ${l}`,children:[s.jsxs("aside",{className:"cedros-admin__sidebar",children:[s.jsx("div",{className:"cedros-admin__sidebar-header",children:s.jsxs("div",{className:"cedros-admin__logo",children:[J.wallet,s.jsx("span",{className:"cedros-admin__logo-text",children:n})]})}),s.jsx("nav",{className:"cedros-admin__nav",children:wl.map(I=>{const M=I.sections.filter(D=>r.includes(D.id));if(M.length===0)return null;const z=I.collapsible&&x.has(I.label);return s.jsxs("div",{className:"cedros-admin__nav-group",children:[I.collapsible?s.jsxs("button",{type:"button",className:"cedros-admin__nav-label cedros-admin__nav-label--collapsible",onClick:()=>y(I.label),"aria-expanded":!z,children:[I.label,s.jsx("span",{className:`cedros-admin__nav-label-icon ${z?"":"cedros-admin__nav-label-icon--expanded"}`,children:J.chevronRight})]}):s.jsx("span",{className:"cedros-admin__nav-label",children:I.label}),!z&&M.map(D=>s.jsxs("button",{type:"button",className:`cedros-admin__nav-item ${m===D.id?"cedros-admin__nav-item--active":""}`,onClick:()=>N(D.id),"aria-current":m===D.id?"page":void 0,children:[s.jsx("span",{className:"cedros-admin__nav-icon",children:D.icon}),s.jsx("span",{className:"cedros-admin__nav-text",children:D.label})]},D.id))]},I.label)})})]}),s.jsxs("main",{className:"cedros-admin__main",children:[s.jsx("header",{className:"cedros-admin__header",children:s.jsxs("div",{className:"cedros-admin__breadcrumb",children:[s.jsx("span",{className:"cedros-admin__breadcrumb-root",children:n}),s.jsx("span",{className:"cedros-admin__breadcrumb-sep",children:J.chevronRight}),s.jsx("span",{className:"cedros-admin__breadcrumb-current",children:R?.label})]})}),s.jsxs("div",{className:"cedros-admin__content",children:[m==="products"&&s.jsx(hl,{serverUrl:e,apiKey:t,pageSize:i,authManager:P}),m==="subscriptions"&&s.jsx(b.Suspense,{fallback:s.jsx("div",{className:"cedros-admin__loading-text",children:"Loading section..."}),children:s.jsx(ym,{serverUrl:e,apiKey:t,authManager:P})}),m==="transactions"&&s.jsx(gl,{serverUrl:e,apiKey:t,pageSize:i,authManager:P}),m==="coupons"&&s.jsx(xl,{serverUrl:e,apiKey:t,pageSize:i,authManager:P}),m==="refunds"&&s.jsx(vl,{serverUrl:e,apiKey:t,pageSize:i,authManager:P}),m==="storefront"&&s.jsx(b.Suspense,{fallback:s.jsx("div",{className:"cedros-admin__loading-text",children:"Loading section..."}),children:s.jsx(bm,{serverUrl:e,apiKey:t,authManager:P})}),m==="ai-settings"&&s.jsx(b.Suspense,{fallback:s.jsx("div",{className:"cedros-admin__loading-text",children:"Loading section..."}),children:s.jsx(wm,{serverUrl:e,apiKey:t,authManager:P})}),m==="faqs"&&s.jsx(b.Suspense,{fallback:s.jsx("div",{className:"cedros-admin__loading-text",children:"Loading section..."}),children:s.jsx(jm,{serverUrl:e,apiKey:t,pageSize:i,authManager:P})}),m==="payment-settings"&&s.jsx(b.Suspense,{fallback:s.jsx("div",{className:"cedros-admin__loading-text",children:"Loading section..."}),children:s.jsx(_m,{serverUrl:e,apiKey:t,authManager:P})}),m==="messaging"&&s.jsx(b.Suspense,{fallback:s.jsx("div",{className:"cedros-admin__loading-text",children:"Loading section..."}),children:s.jsx(km,{serverUrl:e,apiKey:t,authManager:P})}),m==="settings"&&s.jsx(yl,{serverUrl:e,apiKey:t,authManager:P})]})]})]}):s.jsx("div",{className:`cedros-admin cedros-admin--unauthenticated ${j} ${l}`,children:s.jsx("p",{className:"cedros-admin__auth-prompt",children:"Please connect a wallet or sign in as admin to access the dashboard."})})}function Ts(e){const t=b.lazy(e),n=r=>b.createElement(b.Suspense,{fallback:null},b.createElement(t,r));return n.displayName="LazyAdminSection",n}Ts(()=>Promise.resolve().then(()=>require("./SettingsSection-DNoODw7i.js")).then(e=>({default:e.SettingsSection})));Ts(()=>Promise.resolve().then(()=>require("./SubscriptionsSection-4b29i-41.js")).then(e=>({default:e.SubscriptionsSection})));Ts(()=>Promise.resolve().then(()=>require("./StorefrontSection-BEOMtSAg.js")).then(e=>({default:e.StorefrontSection})));Ts(()=>Promise.resolve().then(()=>require("./FAQSection-_pm1ekTe.js")).then(e=>({default:e.FAQSection})));const kt=e=>b.lazy(async()=>{const r=(await e()).default;return{default:({pluginContext:a})=>{const c=Tp.useCedrosLogin()?._internal?.getAccessToken()??a.getAccessToken(),l=b.useMemo(()=>{const f=new bl(a.serverUrl);return f.setCedrosLoginAuth(c??null),f},[a.serverUrl,c]),d={serverUrl:a.serverUrl,authManager:l};return s.jsx(r,{...d})}}}),Am={id:"cedros-pay",name:"Cedros Pay",version:"1.0.0",sections:[{id:"transactions",label:"Transactions",icon:J.transactions,group:"Store",order:0},{id:"products",label:"Products",icon:J.products,group:"Store",order:1},{id:"subscriptions",label:"Subscriptions",icon:J.subscriptions,group:"Store",order:2},{id:"coupons",label:"Coupons",icon:J.coupons,group:"Store",order:3},{id:"refunds",label:"Refunds",icon:J.refunds,group:"Store",order:4},{id:"storefront",label:"Storefront",icon:J.storefront,group:"Configuration",order:10},{id:"ai-settings",label:"Store AI",icon:J.ai,group:"Configuration",order:11},{id:"faqs",label:"Knowledge Base",icon:J.faq,group:"Configuration",order:12},{id:"payment-settings",label:"Payment Options",icon:J.wallet,group:"Configuration",order:13},{id:"messaging",label:"Store Messages",icon:J.notifications,group:"Configuration",order:14},{id:"settings",label:"Store Server",icon:J.settings,group:"Configuration",order:15}],groups:[{id:"Store",label:"Store",order:1},{id:"Configuration",label:"Configuration",order:2,defaultCollapsed:!0}],components:{products:kt(()=>Promise.resolve().then(()=>require("./sections-CKwGmrzV.js")).then(e=>({default:e.ProductsSection}))),subscriptions:kt(()=>Promise.resolve().then(()=>require("./SubscriptionsSection-4b29i-41.js")).then(e=>({default:e.SubscriptionsSection}))),transactions:kt(()=>Promise.resolve().then(()=>require("./sections-CKwGmrzV.js")).then(e=>({default:e.TransactionsSection}))),coupons:kt(()=>Promise.resolve().then(()=>require("./sections-CKwGmrzV.js")).then(e=>({default:e.CouponsSection}))),refunds:kt(()=>Promise.resolve().then(()=>require("./sections-CKwGmrzV.js")).then(e=>({default:e.RefundsSection}))),storefront:kt(()=>Promise.resolve().then(()=>require("./StorefrontSection-BEOMtSAg.js")).then(e=>({default:e.StorefrontSection}))),"ai-settings":kt(()=>Promise.resolve().then(()=>require("./AISettingsSection-C-thWh51.js")).then(e=>({default:e.AISettingsSection}))),faqs:kt(()=>Promise.resolve().then(()=>require("./FAQSection-_pm1ekTe.js")).then(e=>({default:e.FAQSection}))),"payment-settings":kt(()=>Promise.resolve().then(()=>require("./PaymentSettingsSection-DpENgoca.js")).then(e=>({default:e.PaymentSettingsSection}))),messaging:kt(()=>Promise.resolve().then(()=>require("./MessagingSection-BHzf1Mhu.js")).then(e=>({default:e.MessagingSection}))),settings:kt(()=>Promise.resolve().then(()=>require("./SettingsSection-DNoODw7i.js")).then(e=>({default:e.SettingsSection})))},createPluginContext(e){const t=e.cedrosPay,n=e.cedrosLogin;return{serverUrl:t?.serverUrl||n?.serverUrl||"",userId:n?.user?.id,getAccessToken:()=>n?.getAccessToken?.()||t?.jwtToken||null,hasPermission:o=>this.checkPermission(o,e),orgId:e.org?.orgId,pluginData:{walletAddress:t?.walletAddress}}},checkPermission(e,t){return t.org?.permissions?t.org.permissions.includes(e):!!(t.cedrosLogin?.user||t.cedrosPay?.jwtToken||t.cedrosPay?.walletAddress)},cssNamespace:"cedros-dashboard"};function Pm({product:e,paymentMethod:t,showOriginalPrice:n=!1,className:r="",style:o={}}){const a=t==="stripe",i=a?e.fiatAmount:e.cryptoAmount,c=a?e.effectiveFiatAmount:e.effectiveCryptoAmount,l=a?e.fiatCurrency.toUpperCase():e.cryptoToken,d=a?e.hasStripeCoupon:e.hasCryptoCoupon,f=a?e.stripeDiscountPercent:e.cryptoDiscountPercent;return s.jsxs("div",{className:r,style:o,children:[n&&d&&s.jsxs("span",{style:{textDecoration:"line-through",opacity:.6,marginRight:"0.5rem",fontSize:"0.875em"},children:[i.toFixed(2)," ",l]}),s.jsxs("span",{style:{fontWeight:600},children:[c.toFixed(2)," ",l]}),d&&f>0&&s.jsxs("span",{style:{marginLeft:"0.5rem",padding:"0.125rem 0.375rem",backgroundColor:"#10b981",color:"white",borderRadius:"0.25rem",fontSize:"0.75em",fontWeight:600},children:[f,"% OFF"]})]})}function Im({product:e,paymentMethod:t,className:n="",style:r={}}){const o=t==="stripe",a=o?e.hasStripeCoupon:e.hasCryptoCoupon,i=o?e.stripeDiscountPercent:e.cryptoDiscountPercent,c=o?e.stripeCouponCode:e.cryptoCouponCode;if(!a||i===0)return null;const l=o?`${i}% off with card!`:`${i}% off with crypto!`;return s.jsxs("div",{className:n,style:{display:"inline-flex",alignItems:"center",padding:"0.5rem 0.75rem",backgroundColor:o?"#6366f1":"#10b981",color:"white",borderRadius:"0.375rem",fontSize:"0.875rem",fontWeight:600,...r},children:[l,c&&s.jsxs("span",{style:{marginLeft:"0.5rem",opacity:.8,fontSize:"0.75em",fontWeight:400},children:["(",c,")"]})]})}function _l(){const{subscriptionManager:e}=oe.useCedrosContext(),[t,n]=b.useState({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null}),r=b.useRef(!1),o=b.useCallback(async l=>{if(r.current)return{success:!1,error:"Payment already in progress"};r.current=!0,n(d=>({...d,status:"loading",error:null}));try{const d=await e.processSubscription(l);return n(f=>({...f,status:d.success?"success":"error",error:d.success?null:d.error||"Subscription failed",sessionId:d.success&&d.transactionId||null})),d}catch(d){const f=oe.formatError(d,"Subscription failed");return n(u=>({...u,status:"error",error:f})),{success:!1,error:f}}finally{r.current=!1}},[e]),a=b.useCallback(async l=>{n(d=>({...d,status:"checking",error:null}));try{const d=await e.checkSubscriptionStatus(l);return n(f=>({...f,status:d.active?"success":"idle",subscriptionStatus:d.status,expiresAt:d.expiresAt||d.currentPeriodEnd||null})),d}catch(d){const f=d instanceof Error?d.message:"Failed to check subscription status";throw n(u=>({...u,status:"error",error:f})),d}},[e]),i=b.useCallback(async(l,d,f)=>{n(u=>({...u,status:"loading",error:null}));try{const u=await e.requestSubscriptionQuote(l,d,f);return n(m=>({...m,status:"idle"})),u}catch(u){const m=u instanceof Error?u.message:"Failed to get subscription quote";throw n(h=>({...h,status:"error",error:m})),u}},[e]),c=b.useCallback(()=>{n({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null})},[]);return{...t,processSubscription:o,checkStatus:a,requestQuote:i,reset:c}}function Tm({resource:e,interval:t,intervalDays:n,trialDays:r,successUrl:o,cancelUrl:a,metadata:i,customerEmail:c,couponCode:l,label:d,disabled:f=!1,onAttempt:u,onSuccess:m,onError:h,className:v=""}){const{status:x,error:g,sessionId:y,processSubscription:k}=_l(),_=oe.useCedrosTheme(),{t:w,translations:j}=Pn(),P=d||w("ui.subscribe"),T=_.unstyled?v:`${_.className} cedros-theme__stripe-button ${v}`.trim(),N=g&&typeof g!="string"?g?.code??null:null,R=g?typeof g=="string"?g:(L=>{if(!L||!j)return"";const S=j.errors[L];return S?S.action?`${S.message} ${S.action}`:S.message:""})(N):null,I=b.useCallback(async()=>{oe.getLogger().debug("[SubscribeButton] executeSubscription:",{resource:e,interval:t,intervalDays:n,trialDays:r,couponCode:l}),Kn("stripe",e),u&&u("stripe"),Jn("stripe",e);const L=await k({resource:e,interval:t,intervalDays:n,trialDays:r,customerEmail:c,metadata:i,couponCode:l,successUrl:o,cancelUrl:a});L.success&&L.transactionId?(Xn("stripe",L.transactionId,e),m&&m(L.transactionId)):!L.success&&L.error&&(Bt("stripe",L.error,e),h&&h(L.error))},[e,t,n,r,c,i,l,o,a,k,u,m,h]),M=b.useMemo(()=>`subscribe-${e}-${t}`,[e,t]),z=b.useMemo(()=>Qn(M,I),[M,I]),D=x==="loading",V=f||D;return s.jsxs("div",{className:T,style:_.unstyled?{}:_.style,children:[s.jsx("button",{onClick:z,disabled:V,className:_.unstyled?v:"cedros-theme__button cedros-theme__stripe",type:"button",children:D?w("ui.processing"):P}),R&&s.jsx("div",{className:_.unstyled?"":"cedros-theme__error",children:R}),y&&s.jsx("div",{className:_.unstyled?"":"cedros-theme__success",children:w("ui.redirecting_to_checkout")})]})}function kl(){const{subscriptionManager:e,creditsManager:t}=oe.useCedrosContext(),[n,r]=b.useState({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null,creditsRequirement:null}),o=b.useRef(!1),a=b.useCallback(async(d,f)=>{r(u=>({...u,status:"checking",error:null}));try{const u=await e.checkSubscriptionStatus({resource:d,userId:f});return r(m=>({...m,status:u.active?"success":"idle",subscriptionStatus:u.status,expiresAt:u.expiresAt||u.currentPeriodEnd||null})),u}catch(u){const m=oe.formatError(u,"Failed to check subscription status");return r(h=>({...h,status:"error",error:m})),null}},[e]),i=b.useCallback(async(d,f,u)=>{r(m=>({...m,status:"loading",error:null}));try{const m=await t.requestQuote(d,u?.couponCode);return r(h=>({...h,status:"idle",creditsRequirement:m})),m}catch(m){const h=oe.formatError(m,"Failed to get subscription quote");return r(v=>({...v,status:"error",error:h})),null}},[t]),c=b.useCallback(async(d,f,u,m)=>{if(o.current)return{success:!1,error:"Payment already in progress"};if(!u){const h="Authentication required for credits payment";return r(v=>({...v,status:"error",error:h})),{success:!1,error:h}}o.current=!0,r(h=>({...h,status:"loading",error:null}));try{const h=await t.processPayment(d,u,m?.couponCode,{interval:f,...m?.intervalDays&&{intervalDays:String(m.intervalDays)}});return h.success?r({status:"success",error:null,sessionId:h.transactionId||null,subscriptionStatus:"active",expiresAt:null,creditsRequirement:null}):r(v=>({...v,status:"error",error:h.error||"Credits subscription payment failed"})),h}catch(h){const v=oe.formatError(h,"Credits subscription payment failed");return r(x=>({...x,status:"error",error:v})),{success:!1,error:v}}finally{o.current=!1}},[t]),l=b.useCallback(()=>{r({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null,creditsRequirement:null})},[]);return{...n,checkStatus:a,requestQuote:i,processPayment:c,reset:l}}function Rm({resource:e,interval:t,intervalDays:n,authToken:r,userId:o,couponCode:a,label:i,disabled:c=!1,onAttempt:l,onSuccess:d,onError:f,className:u="",hideMessages:m=!1,autoCheckStatus:h=!1}){const{status:v,error:x,subscriptionStatus:g,expiresAt:y,checkStatus:k,processPayment:_}=kl(),w=oe.useCedrosTheme(),{t:j,translations:P}=Pn(),T=b.useRef(k);b.useEffect(()=>{T.current=k},[k]),b.useEffect(()=>{h&&o&&(oe.getLogger().debug("[CreditsSubscribeButton] Auto-checking subscription status",{resource:e,userId:o}),T.current(e,o))},[h,o,e]);const N=i||j("ui.subscribe_with_credits")||"Subscribe with Credits",A=x&&typeof x!="string"?x?.code??null:null,I=x?typeof x=="string"?x:(Z=>{if(!Z||!P)return"";const Q=P.errors[Z];return Q?Q.action?`${Q.message} ${Q.action}`:Q.message:""})(A):null,M=b.useCallback(async()=>{if(oe.getLogger().debug("[CreditsSubscribeButton] executeSubscriptionFlow",{resource:e,interval:t,intervalDays:n,hasAuthToken:!!r}),Kn("credits",e),l&&l("credits"),!r){const Q="Authentication required: please log in to subscribe with credits";oe.getLogger().error("[CreditsSubscribeButton]",Q),Bt("credits",Q,e),f&&f(Q);return}Jn("credits",e);const Z=await _(e,t,r,{couponCode:a,intervalDays:n});Z.success&&Z.transactionId?(Xn("credits",Z.transactionId,e),d&&d(Z.transactionId)):!Z.success&&Z.error&&(Bt("credits",Z.error,e),f&&f(Z.error))},[e,t,n,r,a,_,l,d,f]),z=b.useMemo(()=>`credits-subscribe-${e}-${t}`,[e,t]),D=b.useMemo(()=>Qn(z,M,{cooldownMs:200,deduplicationWindowMs:0}),[z,M]),V=v==="loading"||v==="checking",L=g==="active"||g==="trialing",S=c||V||L;let C=N;if(V)C=j("ui.processing");else if(L&&y){const Z=new Date(y).toLocaleDateString();C=`${j("ui.subscribed_until")} ${Z}`}else L&&(C=j("ui.subscribed"));const W=w.unstyled?u:`${w.className} cedros-theme__credits-button ${u}`.trim();return s.jsxs("div",{className:W,style:w.unstyled?{}:w.style,children:[s.jsx("button",{onClick:D,disabled:S,className:w.unstyled?u:"cedros-theme__button cedros-theme__credits",type:"button",children:C}),!m&&I&&s.jsx("div",{className:w.unstyled?"":"cedros-theme__error",children:I}),!m&&L&&s.jsx("div",{className:w.unstyled?"":"cedros-theme__success",children:j("ui.subscription_active")})]})}function jl(){const{subscriptionChangeManager:e}=oe.useCedrosContext(),[t,n]=b.useState({status:"idle",error:null,subscription:null,changePreview:null,userId:null}),r=b.useRef(t);r.current=t;const o=b.useCallback(async(u,m)=>{n(h=>({...h,status:"loading",error:null}));try{const h=await e.getDetails(u,m);return n(v=>({...v,status:"success",subscription:h,userId:m})),h}catch(h){const v=h instanceof Error?h.message:"Failed to load subscription";return n(x=>({...x,status:"error",error:v})),null}},[e]),a=b.useCallback(async(u,m,h,v)=>{n(x=>({...x,status:"loading",error:null}));try{const x={currentResource:u,newResource:m,userId:h,newInterval:v},g=await e.previewChange(x);return n(y=>({...y,status:"idle",changePreview:g})),g}catch(x){const g=x instanceof Error?x.message:"Failed to preview change";return n(y=>({...y,status:"error",error:g})),null}},[e]),i=b.useCallback(async u=>{const{subscription:m,userId:h}=r.current;if(!m||!h)return n(v=>({...v,status:"error",error:"No subscription loaded"})),null;n(v=>({...v,status:"loading",error:null}));try{const v={currentResource:m.resource,newResource:u.newResource,userId:h,newInterval:u.newInterval,prorationBehavior:u.prorationBehavior,immediate:u.immediate},x=await e.changeSubscription(v);return x.success?n(g=>({...g,status:"success",subscription:g.subscription?{...g.subscription,resource:x.newResource,interval:x.newInterval,status:x.status}:null,changePreview:null})):n(g=>({...g,status:"error",error:x.error||"Failed to change subscription"})),x}catch(v){const x=v instanceof Error?v.message:"Failed to change subscription";return n(g=>({...g,status:"error",error:x})),null}},[e]),c=b.useCallback(async u=>{const{subscription:m,userId:h}=r.current;if(!m||!h)return n(v=>({...v,status:"error",error:"No subscription loaded"})),null;n(v=>({...v,status:"loading",error:null}));try{const v={resource:m.resource,userId:h,immediate:u},x=await e.cancel(v);if(x.success){const g=u?"canceled":m.status;n(y=>({...y,status:"success",subscription:y.subscription?{...y.subscription,status:g,cancelAtPeriodEnd:!u}:null}))}else n(g=>({...g,status:"error",error:x.error||"Failed to cancel subscription"}));return x}catch(v){const x=v instanceof Error?v.message:"Failed to cancel subscription";return n(g=>({...g,status:"error",error:x})),null}},[e]),l=b.useCallback(async(u,m)=>{n(h=>({...h,status:"loading",error:null}));try{const h=await e.getBillingPortalUrl({userId:u,returnUrl:m});try{if(new URL(h.url).protocol!=="https:")throw new Error("Billing portal URL must use HTTPS")}catch{throw new Error("Invalid billing portal URL")}return window.location.href=h.url,h}catch(h){const v=h instanceof Error?h.message:"Failed to open billing portal";return n(x=>({...x,status:"error",error:v})),null}},[e]),d=b.useCallback(()=>{n(u=>({...u,changePreview:null}))},[]),f=b.useCallback(()=>{n({status:"idle",error:null,subscription:null,changePreview:null,userId:null})},[]);return{...t,loadSubscription:o,previewChange:a,changeSubscription:i,cancelSubscription:c,openBillingPortal:l,clearPreview:d,reset:f}}const Om={bg:"#fff",bgMuted:"#f9fafb",bgHighlight:"#eff6ff",text:"#111827",textMuted:"#6b7280",textFaint:"#9ca3af",border:"#e5e7eb",borderLight:"#f3f4f6",primary:"#3b82f6",error:"#ef4444",errorBg:"#fef2f2",errorBorder:"#fecaca",warningBg:"#fef3c7",warningBorder:"#fcd34d",warningText:"#92400e",buttonBg:"#f3f4f6",buttonBorder:"#d1d5db",buttonText:"#374151"},Mm={bg:"#1e293b",bgMuted:"#334155",bgHighlight:"rgba(59, 130, 246, 0.15)",text:"#f1f5f9",textMuted:"#94a3b8",textFaint:"#64748b",border:"#475569",borderLight:"#334155",primary:"#3b82f6",error:"#ef4444",errorBg:"rgba(239, 68, 68, 0.15)",errorBorder:"rgba(239, 68, 68, 0.3)",warningBg:"rgba(245, 158, 11, 0.15)",warningBorder:"rgba(245, 158, 11, 0.3)",warningText:"#fbbf24",buttonBg:"#334155",buttonBorder:"#475569",buttonText:"#e2e8f0"};function Lm(e){const t=e?Mm:Om;return{container:{padding:"24px",backgroundColor:t.bg,borderRadius:"8px",border:`1px solid ${t.border}`,fontFamily:"system-ui, -apple-system, sans-serif",color:t.text},error:{padding:"12px 16px",backgroundColor:t.errorBg,border:`1px solid ${t.errorBorder}`,borderRadius:"6px",color:t.error,marginBottom:"16px"},loading:{padding:"24px",textAlign:"center",color:t.textMuted},details:{marginBottom:"24px"},title:{margin:"0 0 16px 0",fontSize:"18px",fontWeight:600,color:t.text},detailRow:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 0",borderBottom:`1px solid ${t.borderLight}`},label:{color:t.textMuted,fontSize:"14px"},value:{color:t.text,fontSize:"14px",fontWeight:500},statusBadge:{padding:"4px 8px",borderRadius:"4px",color:"#fff",fontSize:"12px",fontWeight:500,textTransform:"capitalize"},cancelNotice:{marginTop:"12px",padding:"8px 12px",backgroundColor:t.warningBg,border:`1px solid ${t.warningBorder}`,borderRadius:"6px",color:t.warningText,fontSize:"13px"},prorationPreview:{padding:"16px",backgroundColor:t.bgMuted,borderRadius:"8px",marginBottom:"24px"},previewTitle:{margin:"0 0 12px 0",fontSize:"16px",fontWeight:600,color:t.text},previewDetails:{marginBottom:"16px"},previewRow:{display:"flex",justifyContent:"space-between",padding:"6px 0",fontSize:"14px",color:t.textMuted},previewTotal:{borderTop:`1px solid ${t.border}`,marginTop:"8px",paddingTop:"12px",fontWeight:600,color:t.text},previewActions:{display:"flex",gap:"12px",justifyContent:"flex-end"},cancelButton:{padding:"8px 16px",backgroundColor:t.bg,border:`1px solid ${t.buttonBorder}`,borderRadius:"6px",color:t.buttonText,cursor:"pointer",fontSize:"14px"},confirmButton:{padding:"8px 16px",backgroundColor:t.primary,border:"none",borderRadius:"6px",color:"#fff",cursor:"pointer",fontSize:"14px",fontWeight:500},plansSection:{marginBottom:"24px"},plansTitle:{margin:"0 0 12px 0",fontSize:"16px",fontWeight:600,color:t.text},plansList:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:"16px"},planCard:{padding:"16px",backgroundColor:t.bg,border:`1px solid ${t.border}`,borderRadius:"8px",textAlign:"center"},currentPlan:{borderColor:t.primary,backgroundColor:t.bgHighlight},planName:{fontSize:"16px",fontWeight:600,color:t.text,marginBottom:"4px"},planPrice:{fontSize:"14px",color:t.textMuted,marginBottom:"8px"},planDescription:{fontSize:"12px",color:t.textFaint,marginBottom:"12px"},currentBadge:{display:"inline-block",padding:"4px 8px",backgroundColor:t.primary,color:"#fff",borderRadius:"4px",fontSize:"12px",fontWeight:500},changePlanButton:{padding:"8px 16px",backgroundColor:t.buttonBg,border:`1px solid ${t.buttonBorder}`,borderRadius:"6px",color:t.buttonText,cursor:"pointer",fontSize:"14px",width:"100%"},actions:{display:"flex",gap:"12px",justifyContent:"flex-end",paddingTop:"16px",borderTop:`1px solid ${t.border}`},portalButton:{padding:"10px 20px",backgroundColor:t.primary,border:"none",borderRadius:"6px",color:"#fff",cursor:"pointer",fontSize:"14px",fontWeight:500},cancelSubscriptionButton:{padding:"10px 20px",backgroundColor:t.bg,border:`1px solid ${t.error}`,borderRadius:"6px",color:t.error,cursor:"pointer",fontSize:"14px"}}}function wn(e,t){return new Intl.NumberFormat("en-US",{style:"currency",currency:t.toUpperCase()}).format(e/100)}function Sl(e){return new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function Dm(e){switch(e){case"active":return"#22c55e";case"trialing":return"#3b82f6";case"past_due":return"#f59e0b";case"canceled":case"expired":return"#ef4444";default:return"#6b7280"}}function $m({preview:e,onConfirm:t,onCancel:n,isLoading:r,styles:o}){const a=e.immediateAmount<0;return s.jsxs("div",{className:"cedros-proration-preview",style:o.prorationPreview,children:[s.jsx("h4",{style:o.previewTitle,children:"Change Preview"}),s.jsxs("div",{style:o.previewDetails,children:[s.jsxs("div",{style:o.previewRow,children:[s.jsx("span",{children:"Current plan:"}),s.jsxs("span",{children:[wn(e.currentPlanPrice,e.currency),"/period"]})]}),s.jsxs("div",{style:o.previewRow,children:[s.jsx("span",{children:"New plan:"}),s.jsxs("span",{children:[wn(e.newPlanPrice,e.currency),"/period"]})]}),s.jsxs("div",{style:o.previewRow,children:[s.jsx("span",{children:"Days remaining:"}),s.jsxs("span",{children:[e.daysRemaining," days"]})]}),e.prorationDetails&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{style:o.previewRow,children:[s.jsx("span",{children:"Unused credit:"}),s.jsxs("span",{children:["-",wn(e.prorationDetails.unusedCredit,e.currency)]})]}),s.jsxs("div",{style:o.previewRow,children:[s.jsx("span",{children:"New plan cost:"}),s.jsx("span",{children:wn(e.prorationDetails.newPlanCost,e.currency)})]})]}),s.jsxs("div",{style:{...o.previewRow,...o.previewTotal},children:[s.jsx("span",{children:a?"Credit to account:":"Amount due now:"}),s.jsx("span",{style:{color:a?"#22c55e":"#ef4444"},children:wn(Math.abs(e.immediateAmount),e.currency)})]}),s.jsxs("div",{style:o.previewRow,children:[s.jsx("span",{children:"Effective date:"}),s.jsx("span",{children:Sl(e.effectiveDate)})]})]}),s.jsxs("div",{style:o.previewActions,children:[s.jsx("button",{onClick:n,style:o.cancelButton,disabled:r,children:"Cancel"}),s.jsx("button",{onClick:t,style:o.confirmButton,disabled:r,children:r?"Processing...":"Confirm Change"})]})]})}function zm({resource:e,userId:t,availablePlans:n=[],onSubscriptionChanged:r,onSubscriptionCanceled:o,billingPortalReturnUrl:a,showBillingPortal:i=!1,className:c,style:l}){const{mode:d}=oe.useCedrosTheme(),f=b.useMemo(()=>Lm(d==="dark"),[d]),{subscription:u,changePreview:m,status:h,error:v,loadSubscription:x,previewChange:g,changeSubscription:y,cancelSubscription:k,openBillingPortal:_,clearPreview:w}=jl();b.useEffect(()=>{x(e,t)},[e,t,x]);const j=b.useRef(null),P=b.useCallback(async(I,M)=>{j.current={resource:I,interval:M},await g(e,I,t,M)},[e,t,g]),T=b.useCallback(async()=>{if(!m)return;const I=j.current;(await y({newResource:I?.resource||e,newInterval:I?.interval,immediate:!0}))?.success&&I&&I.interval&&(r?.(I.resource,I.interval),j.current=null)},[m,e,y,r]),N=b.useCallback(async I=>{(await k(I))?.success&&o?.()},[k,o]),A=b.useCallback(()=>{_(t,a)},[t,a,_]),R=h==="loading";return s.jsxs("div",{className:`cedros-subscription-panel ${c||""}`,style:{...f.container,...l},children:[v&&s.jsx("div",{className:"cedros-subscription-error",style:f.error,children:v}),R&&!u&&s.jsx("div",{className:"cedros-subscription-loading",style:f.loading,children:"Loading subscription..."}),u&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"cedros-subscription-details",style:f.details,children:[s.jsx("h3",{style:f.title,children:"Current Subscription"}),s.jsxs("div",{style:f.detailRow,children:[s.jsx("span",{style:f.label,children:"Plan:"}),s.jsx("span",{style:f.value,children:u.resource})]}),s.jsxs("div",{style:f.detailRow,children:[s.jsx("span",{style:f.label,children:"Status:"}),s.jsx("span",{style:{...f.statusBadge,backgroundColor:Dm(u.status)},children:u.status})]}),s.jsxs("div",{style:f.detailRow,children:[s.jsx("span",{style:f.label,children:"Price:"}),s.jsxs("span",{style:f.value,children:[wn(u.pricePerPeriod,u.currency),"/",u.interval]})]}),s.jsxs("div",{style:f.detailRow,children:[s.jsx("span",{style:f.label,children:"Current period ends:"}),s.jsx("span",{style:f.value,children:Sl(u.currentPeriodEnd)})]}),u.cancelAtPeriodEnd&&s.jsx("div",{style:f.cancelNotice,children:"Subscription will cancel at end of current period"})]}),m&&s.jsx($m,{preview:m,onConfirm:T,onCancel:w,isLoading:R,styles:f}),n.length>0&&!m&&s.jsxs("div",{className:"cedros-available-plans",style:f.plansSection,children:[s.jsx("h4",{style:f.plansTitle,children:"Available Plans"}),s.jsx("div",{style:f.plansList,children:n.map(I=>{const M=I.resource===u.resource;return s.jsxs("div",{style:{...f.planCard,...M?f.currentPlan:{}},children:[s.jsx("div",{style:f.planName,children:I.name}),s.jsxs("div",{style:f.planPrice,children:[wn(I.price,I.currency),"/",I.interval]}),I.description&&s.jsx("div",{style:f.planDescription,children:I.description}),M?s.jsx("span",{style:f.currentBadge,children:"Current Plan"}):s.jsx("button",{onClick:()=>P(I.resource,I.interval),style:f.changePlanButton,disabled:R,children:I.price>u.pricePerPeriod?"Upgrade":"Downgrade"})]},I.resource)})})]}),s.jsxs("div",{className:"cedros-subscription-actions",style:f.actions,children:[i&&u.paymentMethod==="stripe"&&s.jsx("button",{onClick:A,style:f.portalButton,disabled:R,children:"Manage Billing"}),u.status==="active"&&!u.cancelAtPeriodEnd&&s.jsx("button",{onClick:()=>N(!1),style:f.cancelSubscriptionButton,disabled:R,children:"Cancel Subscription"})]})]})]})}function Fm(){if(typeof window>"u")return{passed:!0,severity:"info",message:"HTTPS check skipped (SSR environment)"};const e=window.location.protocol==="https:",t=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1";return e||t?{passed:!0,severity:"info",message:"HTTPS enforced"}:{passed:!1,severity:"error",message:"Page not served over HTTPS",recommendation:"Enable HTTPS for all payment pages. Stripe.js requires HTTPS in production."}}function Bm(){return typeof document>"u"?{passed:!0,severity:"info",message:"CSP check skipped (SSR environment)"}:document.querySelector('meta[http-equiv="Content-Security-Policy"]')?{passed:!0,severity:"info",message:"Content Security Policy detected"}:{passed:!1,severity:"warning",message:"No Content Security Policy detected",recommendation:"Configure CSP headers to protect against XSS and CDN compromise. Use generateCSP() helper from @cedros/pay-react."}}function Um(){return process.env.NODE_ENV==="development"||typeof window<"u"&&window.location.hostname==="localhost"?{passed:!0,severity:"info",message:"Running in development mode (some security checks relaxed)"}:{passed:!0,severity:"info",message:"Running in production mode"}}function Vm(){return{passed:!0,severity:"info",message:"Stripe.js loaded via @stripe/stripe-js package (CSP recommended, not SRI)",recommendation:"Ensure CSP script-src includes https://js.stripe.com"}}function Wm(){return typeof window>"u"?{passed:!0,severity:"info",message:"Mixed content check skipped (SSR environment)"}:window.location.protocol==="https:"?{passed:!0,severity:"info",message:"Mixed content protection active (HTTPS page)"}:{passed:!0,severity:"info",message:"Mixed content check skipped (HTTP page)"}}function qm(){const e=[Fm(),Bm(),Um(),Vm(),Wm()],t=e.some(a=>a.severity==="error"&&!a.passed),n=e.some(a=>a.severity==="warning"&&!a.passed);let r,o;return t?(r="vulnerable",o="Security issues detected. Review errors and apply recommendations."):n?(r="warnings",o="Minor security warnings detected. Consider applying recommendations."):(r="secure",o="All security checks passed."),{checks:e,overallStatus:r,summary:o}}function Hm(e){process.env.NODE_ENV!=="production"&&(console.group("🔒 Cedros Pay Security Report"),console.log(`Status: ${e.overallStatus.toUpperCase()}`),console.log(`Summary: ${e.summary}`),console.log(""),e.checks.forEach(t=>{const n=t.passed?"✅":t.severity==="error"?"❌":"⚠️";console.log(`${n} ${t.message}`),t.recommendation&&console.log(` → ${t.recommendation}`)}),console.groupEnd())}const Zm={CSP:"Use generateCSP() from @cedros/pay-react to generate Content Security Policy headers",HTTPS:"Always serve payment pages over HTTPS in production",PACKAGE_UPDATES:"Keep @stripe/stripe-js and @cedros/pay-react updated for security patches",AUDIT:"Run npm audit regularly to check for known vulnerabilities",MONITORING:"Monitor Stripe security advisories and apply updates promptly",NO_SRI:"Do NOT use SRI hashes for Stripe.js - use CSP instead"},ga=b.createContext(null);function Pe(){const e=b.useContext(ga);if(!e)throw new Error("useCedrosShop must be used within CedrosShopProvider");return e}function xa(){return b.useContext(ga)}function Gm({config:e,children:t}){const n=b.useMemo(()=>({config:e}),[e]);return s.jsx(ga.Provider,{value:n,children:t})}function jt(e){return new Promise(t=>setTimeout(t,e))}const Cl=[{id:"cat_all",slug:"all",name:"All Products",description:"Everything in the catalog."},{id:"cat_apparel",slug:"apparel",name:"Apparel",description:"Soft goods and daily wear."},{id:"cat_accessories",slug:"accessories",name:"Accessories",description:"Carry, attach, decorate."}],ps=[{id:"p_tee",slug:"cedros-tee",title:"Cedros Tee",description:"A heavyweight tee with a clean silhouette.",images:[{url:"https://picsum.photos/seed/cedros-tee/900/900",alt:"Cedros Tee"},{url:"https://picsum.photos/seed/cedros-tee-2/900/900",alt:"Cedros Tee detail"}],price:38,currency:"USD",tags:["new","cotton"],categoryIds:["cat_apparel"],compareAtPrice:48,inventoryStatus:"in_stock",variants:[{id:"v_tee_s",title:"Small / Black",options:{Size:"S",Color:"Black"}},{id:"v_tee_m",title:"Medium / Black",options:{Size:"M",Color:"Black"}},{id:"v_tee_l",title:"Large / Black",options:{Size:"L",Color:"Black"}}],shippingProfile:"physical"},{id:"p_crewneck",slug:"cedros-crewneck",title:"Cedros Crewneck",description:"Midweight fleece with a relaxed fit and embroidered mark.",images:[{url:"https://picsum.photos/seed/cedros-crewneck/900/900",alt:"Cedros Crewneck"}],price:64,currency:"USD",tags:["fleece","core"],categoryIds:["cat_apparel"],inventoryStatus:"in_stock",compareAtPrice:78,variants:[{id:"v_crew_s",title:"Small / Heather",options:{Size:"S",Color:"Heather"}},{id:"v_crew_m",title:"Medium / Heather",options:{Size:"M",Color:"Heather"}},{id:"v_crew_l",title:"Large / Heather",options:{Size:"L",Color:"Heather"}}],shippingProfile:"physical"},{id:"p_hoodie",slug:"cedros-hoodie",title:"Cedros Hoodie",description:"Pullover hoodie with soft interior and structured hood.",images:[{url:"https://picsum.photos/seed/cedros-hoodie/900/900",alt:"Cedros Hoodie"},{url:"https://picsum.photos/seed/cedros-hoodie-2/900/900",alt:"Cedros Hoodie detail"}],price:74,currency:"USD",tags:["fleece","new"],categoryIds:["cat_apparel"],inventoryStatus:"low",variants:[{id:"v_hoodie_s",title:"Small / Black",options:{Size:"S",Color:"Black"}},{id:"v_hoodie_m",title:"Medium / Black",options:{Size:"M",Color:"Black"}},{id:"v_hoodie_l",title:"Large / Black",options:{Size:"L",Color:"Black"}}],shippingProfile:"physical"},{id:"p_cap",slug:"cedros-cap",title:"Cedros Cap",description:"Unstructured cap with adjustable strap and curved brim.",images:[{url:"https://picsum.photos/seed/cedros-cap/900/900",alt:"Cedros Cap"}],price:28,currency:"USD",tags:["core"],categoryIds:["cat_apparel"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_socks",slug:"cedros-socks",title:"Cedros Socks",description:"Rib-knit socks designed for everyday comfort.",images:[{url:"https://picsum.photos/seed/cedros-socks/900/900",alt:"Cedros Socks"}],price:14,currency:"USD",tags:["cotton"],categoryIds:["cat_apparel"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_tote",slug:"cedros-tote",title:"Cedros Tote",description:"Heavy canvas tote with reinforced handles.",images:[{url:"https://picsum.photos/seed/cedros-tote/900/900",alt:"Cedros Tote"}],price:32,currency:"USD",tags:["gift","canvas"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_stickers",slug:"cedros-sticker-pack",title:"Sticker Pack",description:"Five durable vinyl stickers for laptops and water bottles.",images:[{url:"https://picsum.photos/seed/cedros-stickers/900/900",alt:"Sticker Pack"}],price:8,currency:"USD",tags:["gift"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_keychain",slug:"cedros-keychain",title:"Enamel Keychain",description:"Polished enamel keychain with a subtle mark.",images:[{url:"https://picsum.photos/seed/cedros-keychain/900/900",alt:"Enamel Keychain"}],price:12,currency:"USD",tags:["gift"],categoryIds:["cat_accessories"],inventoryStatus:"low",shippingProfile:"physical"},{id:"p_lanyard",slug:"cedros-lanyard",title:"Woven Lanyard",description:"Soft woven lanyard with swivel clasp.",images:[{url:"https://picsum.photos/seed/cedros-lanyard/900/900",alt:"Woven Lanyard"}],price:10,currency:"USD",tags:["core"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_notebook",slug:"cedros-notebook",title:"Dot Grid Notebook",description:"Lay-flat notebook for sketches, notes, and plans.",images:[{url:"https://picsum.photos/seed/cedros-notebook/900/900",alt:"Dot Grid Notebook"}],price:18,currency:"USD",tags:["gift"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_waterbottle",slug:"cedros-water-bottle",title:"Insulated Bottle",description:"Vacuum-insulated bottle that keeps drinks cold for hours.",images:[{url:"https://picsum.photos/seed/cedros-bottle/900/900",alt:"Insulated Bottle"}],price:36,currency:"USD",tags:["gift","new"],categoryIds:["cat_accessories"],inventoryStatus:"backorder",shippingProfile:"physical"},{id:"p_posters",slug:"cedros-poster-set",title:"Poster Set",description:"Two prints on thick matte stock.",images:[{url:"https://picsum.photos/seed/cedros-posters/900/900",alt:"Poster Set"}],price:24,currency:"USD",tags:["gift","limited"],categoryIds:["cat_accessories"],inventoryStatus:"out_of_stock",shippingProfile:"physical"},{id:"p_pins",slug:"cedros-pin-set",title:"Pin Set",description:"Two enamel pins with rubber backings.",images:[{url:"https://picsum.photos/seed/cedros-pins/900/900",alt:"Pin Set"}],price:16,currency:"USD",tags:["gift"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_brandbook",slug:"cedros-brand-book",title:"Brand Book (PDF)",description:"A compact brand book: typography, color, layout, and voice.",images:[{url:"https://picsum.photos/seed/cedros-brandbook/900/900",alt:"Brand Book cover"}],price:19,currency:"USD",tags:["digital"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"digital",checkoutRequirements:{email:"optional",name:"none",phone:"none",shippingAddress:!1,billingAddress:!1},fulfillment:{type:"digital_download",notes:"This is a digital product and will be downloadable from your account after purchase."}},{id:"p_wallpaper",slug:"cedros-wallpaper-pack",title:"Wallpaper Pack",description:"A set of desktop + mobile wallpapers in multiple colorways.",images:[{url:"https://picsum.photos/seed/cedros-wallpaper/900/900",alt:"Wallpaper Pack"}],price:6,currency:"USD",tags:["digital","new"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"digital"},{id:"p_longsleeve",slug:"cedros-long-sleeve",title:"Long Sleeve Tee",description:"Soft long sleeve tee with rib cuff and relaxed drape.",images:[{url:"https://picsum.photos/seed/cedros-longsleeve/900/900",alt:"Long Sleeve Tee"}],price:44,currency:"USD",tags:["cotton"],categoryIds:["cat_apparel"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_shorts",slug:"cedros-shorts",title:"Everyday Shorts",description:"Lightweight shorts with a comfortable waistband.",images:[{url:"https://picsum.photos/seed/cedros-shorts/900/900",alt:"Everyday Shorts"}],price:40,currency:"USD",tags:["new"],categoryIds:["cat_apparel"],inventoryStatus:"in_stock",shippingProfile:"physical"},{id:"p_beanie",slug:"cedros-beanie",title:"Rib Beanie",description:"Warm rib beanie with a clean folded cuff.",images:[{url:"https://picsum.photos/seed/cedros-beanie/900/900",alt:"Rib Beanie"}],price:20,currency:"USD",tags:["core"],categoryIds:["cat_apparel"],inventoryStatus:"low",shippingProfile:"physical"},{id:"p_jacket",slug:"cedros-coach-jacket",title:"Coach Jacket",description:"Lightweight jacket with snap front and subtle sheen.",images:[{url:"https://picsum.photos/seed/cedros-jacket/900/900",alt:"Coach Jacket"}],price:96,currency:"USD",tags:["limited"],categoryIds:["cat_apparel"],inventoryStatus:"backorder",shippingProfile:"physical"},{id:"p_mug",slug:"cedros-mug",title:"Cedros Mug",description:"Stoneware mug with a satin glaze.",images:[{url:"https://picsum.photos/seed/cedros-mug/900/900",alt:"Cedros Mug"}],price:22,currency:"USD",tags:["gift"],categoryIds:["cat_accessories"],inventoryStatus:"low",shippingProfile:"physical"},{id:"p_guide",slug:"cedros-field-guide",title:"Field Guide (Digital)",description:"A short digital guide to shipping delightful checkout flows.",images:[{url:"https://picsum.photos/seed/cedros-guide/900/900",alt:"Field Guide cover"}],price:12,currency:"USD",tags:["digital"],categoryIds:["cat_accessories"],inventoryStatus:"in_stock",shippingProfile:"digital"}];function Ym(e,t){let n=e;if(t.category&&t.category!=="all"){const l=Cl.find(d=>d.slug===t.category||d.id===t.category);l&&(n=n.filter(d=>d.categoryIds.includes(l.id)))}if(t.search){const l=t.search.toLowerCase();n=n.filter(d=>d.title.toLowerCase().includes(l)||d.description.toLowerCase().includes(l))}const r=t.filters??{},o=r.tags;if(Array.isArray(o)&&o.length>0){const l=new Set(o.map(String));n=n.filter(d=>d.tags?.some(f=>l.has(f)))}const a=typeof r.priceMin=="number"?r.priceMin:void 0,i=typeof r.priceMax=="number"?r.priceMax:void 0;return typeof a=="number"&&(n=n.filter(l=>l.price>=a)),typeof i=="number"&&(n=n.filter(l=>l.price<=i)),(typeof r.inStock=="boolean"?r.inStock:void 0)===!0&&(n=n.filter(l=>l.inventoryStatus!=="out_of_stock")),n}function Qm(e,t){if(!t||t==="featured")return e;const n=[...e];return t==="price_asc"&&n.sort((r,o)=>r.price-o.price),t==="price_desc"&&n.sort((r,o)=>o.price-r.price),n}function Km(e,t,n){const r=(t-1)*n;return{items:e.slice(r,r+n),page:t,pageSize:n,total:e.length,hasNextPage:r+n<e.length}}function Jm(e){const t=new Date().toISOString(),n=e.cart.map(o=>{const a=ps.find(i=>i.id===o.resource||i.slug===o.resource)??ps[0];return{title:a.title,qty:o.quantity,unitPrice:a.price,currency:e.options.currency,imageUrl:a.images[0]?.url}}),r=n.reduce((o,a)=>o+a.qty*a.unitPrice,0);return{id:`ord_${Math.random().toString(16).slice(2)}`,createdAt:t,status:"paid",total:r,currency:e.options.currency,items:n,receiptUrl:e.options.successUrl}}function Xm(){let e=[];const t={};return{async listProducts(n){await jt(150);const r=n.page??1,o=n.pageSize??24,a=Ym(ps,n),i=Qm(a,n.sort);return Km(i,r,o)},async getProductBySlug(n){return await jt(100),ps.find(r=>r.slug===n)??null},async listCategories(){return await jt(80),Cl},async getOrderHistory(){return await jt(120),e},async getCart({customerId:n}){return await jt(80),t[n]??{items:[]}},async mergeCart({customerId:n,cart:r}){await jt(120);const o=t[n]??{items:[]},a=new Map,i=l=>{const d=`${l.productId}::${l.variantId??""}`,f=a.get(d);f?a.set(d,{...f,qty:f.qty+l.qty}):a.set(d,l)};for(const l of o.items)i(l);for(const l of r.items)i(l);const c={items:Array.from(a.values()),promoCode:r.promoCode??o.promoCode};return t[n]=c,c},async updateCart({customerId:n,cart:r}){await jt(60),t[n]=r},async createCheckoutSession(n){await jt(250);const r=Jm(n);if(e=[r,...e].slice(0,25),n.options.successUrl){const o=new URL(n.options.successUrl,"http://localhost");return o.searchParams.set("demoOrderId",r.id),{kind:"redirect",url:o.toString().replace("http://localhost","")}}return{kind:"custom",data:{orderId:r.id}}},async listSubscriptionTiers(){return await jt(80),[{id:"tier_starter",title:"Starter",description:"For small shops getting started.",priceMonthly:19,priceAnnual:190,currency:"USD",features:["Basic analytics","Email support","1 storefront"]},{id:"tier_growth",title:"Growth",description:"For teams iterating fast.",priceMonthly:49,priceAnnual:490,currency:"USD",features:["Advanced analytics","Priority support","3 storefronts"],isPopular:!0},{id:"tier_enterprise",title:"Enterprise",description:"For high volume and custom needs.",priceMonthly:199,priceAnnual:1990,currency:"USD",features:["SLA","Dedicated success","Unlimited storefronts"]}]},async getSubscriptionStatus(){return await jt(80),{isActive:!1}},async createSubscriptionCheckoutSession(n){return await jt(200),n.successUrl?{kind:"redirect",url:n.successUrl}:{kind:"custom",data:n}}}}const Ri=50,eh=4,th=5,nh=1e4,rh={maxRetries:2,initialDelayMs:100,backoffFactor:2,maxDelayMs:500,jitter:!1};function Nl(e){return e.replace(/[_-]+/g," ").trim().replace(/\b\w/g,t=>t.toUpperCase())}function sh(e){return e?e.toUpperCase():"USD"}function oh(e){if(e&&(e==="in_stock"||e==="low"||e==="out_of_stock"||e==="backorder"))return e}function ah(e){if(e&&(e==="physical"||e==="digital"))return e}function ih(e){const t=[];if(Array.isArray(e))for(const n of e)typeof n=="string"&&t.push(n);else if(typeof e=="string"){const n=e.trim();if(n.startsWith("["))try{const r=JSON.parse(n);if(Array.isArray(r))for(const o of r)typeof o=="string"&&t.push(o);else t.push(e)}catch{t.push(e)}else t.push(e)}return t.flatMap(n=>n.split(",")).map(n=>n.trim().toUpperCase()).filter(Boolean)}function Dn(e){const t=sh(e.fiatCurrency),n=e.images&&e.images.length?e.images:e.imageUrl?[{url:e.imageUrl,alt:e.title}]:[],r=e.effectiveFiatAmountCents??e.fiatAmountCents??0,o=e.compareAtAmountCents,a=e.metadata?.shippingCountries??e.metadata?.shipping_countries,i=ih(a);return{id:e.id,slug:e.slug??e.id,title:e.title??Nl(e.id),description:e.description??"",images:n,price:r/100,currency:t,tags:e.tags??[],categoryIds:e.categoryIds??[],inventoryStatus:oh(e.inventoryStatus),inventoryQuantity:typeof e.inventoryQuantity=="number"?e.inventoryQuantity:void 0,compareAtPrice:typeof o=="number"?o/100:void 0,shippingProfile:ah(e.shippingProfile),checkoutRequirements:e.checkoutRequirements,fulfillment:e.fulfillment,attributes:i.length?{shippingCountries:i.join(",")}:void 0}}function os(e){if(Array.isArray(e))return{products:e};const t=e.products??e.items??[],n=e.total??e.count;return{products:t,total:n}}async function Ct(e,t,n,r={}){const{body:o,headers:a,method:i="GET",retryableRead:c=!1,timeoutMs:l=nh}=r,d={};n&&(d["X-API-Key"]=n),a&&Object.assign(d,a);const f=async()=>{const u=await oe.fetchWithTimeout(`${e}${t}`,{body:o,headers:d,method:i},l);if(!u.ok){const m=await u.text().catch(()=>""),h=new Error(`Request failed (${u.status}): ${m}`);throw h.status=u.status,h}return u.json()};return c?oe.retryWithBackoff(f,{...rh,name:`paywall-read-${i.toLowerCase()}`}):f()}async function ch(e,t,n,r){const o=await Ct(e,`/paywall/v1/products?limit=${n}&offset=${r}`,t,{retryableRead:!0});return os(o)}async function Oi(e,t,n,r){const{maxPages:o,pageSize:a}=n;for(let i=0;i<o;i+=1){const c=i*a,{products:l,total:d}=await ch(e,t,a,c);if(l.length===0||r(l))return;const f=typeof d=="number"&&c+l.length>=d,u=l.length<a;if(f||u)return}}function lh(e){const t=async d=>{const f=d.page??1,u=d.pageSize??24,m=u,h=(f-1)*u,v=new URLSearchParams;v.set("limit",String(m)),v.set("offset",String(h)),d.search&&v.set("search",d.search),d.category&&v.set("category",d.category),d.sort&&v.set("sort",d.sort),d.filters?.inStock&&v.set("in_stock","true"),d.filters?.minPrice!=null&&v.set("min_price",String(d.filters.minPrice)),d.filters?.maxPrice!=null&&v.set("max_price",String(d.filters.maxPrice));const x=d.filters?.tags,g=Array.isArray(x)?x:typeof x=="string"?[x]:[];g.length&&v.set("tags",g.join(","));const y=await Ct(e.serverUrl,`/paywall/v1/products?${v.toString()}`,e.apiKey,{retryableRead:!0}),{products:k,total:_}=os(y);return{items:k.map(Dn),page:f,pageSize:u,total:_,hasNextPage:typeof _=="number"?h+m<_:k.length===m}},n=async d=>{try{const f=await Ct(e.serverUrl,`/paywall/v1/products/by-slug/${encodeURIComponent(d)}`,e.apiKey,{retryableRead:!0});return Dn(f)}catch(f){const u=f?.status;if(u!==404&&u!==405)throw f;try{const m=await Ct(e.serverUrl,`/paywall/v1/products/${encodeURIComponent(d)}`,e.apiKey,{retryableRead:!0});return Dn(m)}catch(m){const h=m?.status;if(h!==404&&h!==405)throw m;let v;return await Oi(e.serverUrl,e.apiKey,{maxPages:eh,pageSize:Ri},x=>(v=x.find(g=>g.slug===d||g.id===d),!!v)),v?Dn(v):null}}};return{listProducts:t,getProductBySlug:n,getProductsByIds:async d=>{const f=Array.from(new Set(d.filter(Boolean)));if(f.length===0)return new Map;const u=new Map;try{const v=new URLSearchParams;v.set("ids",f.join(",")),v.set("limit",String(f.length)),v.set("offset","0");const x=await Ct(e.serverUrl,`/paywall/v1/products?${v.toString()}`,e.apiKey,{retryableRead:!0}),{products:g}=os(x);for(const y of g){const k=Dn(y);u.set(k.id,k),k.slug&&k.slug!==k.id&&u.set(k.slug,k)}}catch{}const m=f.filter(v=>!u.has(v));if(m.length===0)return u;let h=m;try{const v=new Set(h);if(await Oi(e.serverUrl,e.apiKey,{maxPages:th,pageSize:Ri},x=>{for(const g of x){const y=Dn(g);!v.has(y.id)&&!(y.slug&&v.has(y.slug))||(u.set(y.id,y),y.slug&&y.slug!==y.id&&u.set(y.slug,y),v.delete(y.id),y.slug&&v.delete(y.slug))}return v.size===0}),h=Array.from(v),h.length===0)return u}catch{}for(const v of h)try{const x=await n(v);x&&(u.set(x.id,x),x.slug&&x.slug!==x.id&&u.set(x.slug,x))}catch{}return u},listCategories:async()=>{const d=await Ct(e.serverUrl,"/paywall/v1/products?limit=500&offset=0",e.apiKey,{retryableRead:!0}),{products:f}=os(d),u=new Set;for(const m of f)for(const h of m.categoryIds??[])u.add(h);return Array.from(u).map(m=>({id:m,slug:m,name:Nl(m)}))},getOrderHistory:async()=>[],createCheckoutSession:async d=>{throw new Error("createCheckoutSession is not implemented for paywall adapter")},getStorefrontSettings:async()=>{try{return(await Ct(e.serverUrl,"/admin/config/shop",e.apiKey,{retryableRead:!0})).config??null}catch{return null}},getPaymentMethodsConfig:async()=>{try{const[d,f,u]=await Promise.allSettled([Ct(e.serverUrl,"/admin/config/stripe",e.apiKey,{retryableRead:!0}),Ct(e.serverUrl,"/admin/config/x402",e.apiKey,{retryableRead:!0}),Ct(e.serverUrl,"/admin/config/cedros_login",e.apiKey,{retryableRead:!0})]),m=d.status==="fulfilled"?!!d.value?.config?.enabled:!1,h=f.status==="fulfilled"?!!f.value?.config?.enabled:!1,v=u.status==="fulfilled"?!!u.value?.config?.enabled:!1;return{card:m,crypto:h,credits:v}}catch{return null}},getAIRelatedProducts:async d=>Ct(e.serverUrl,"/admin/ai/related-products",e.apiKey,{method:"POST",body:JSON.stringify(d),headers:{"Content-Type":"application/json"},retryableRead:!1})}}function dh(e){throw new Error(`Unhandled cart action: ${JSON.stringify(e)}`)}function vn(e){return`${e.productId}::${e.variantId??""}`}const uh={items:[]};function fh(e,t){switch(t.type){case"cart/hydrate":return t.state;case"cart/add":{const n=Math.max(1,Math.floor(t.qty??1)),r=vn(t.item);return e.items.find(a=>vn(a)===r)?{...e,items:e.items.map(a=>vn(a)===r?{...a,qty:a.qty+n}:a)}:{...e,items:[...e.items,{...t.item,qty:n}]}}case"cart/remove":{const n=`${t.productId}::${t.variantId??""}`;return{...e,items:e.items.filter(r=>vn(r)!==n)}}case"cart/setQty":{const n=Math.max(0,Math.floor(t.qty)),r=`${t.productId}::${t.variantId??""}`;return n===0?{...e,items:e.items.filter(o=>vn(o)!==r)}:{...e,items:e.items.map(o=>vn(o)===r?{...o,qty:n}:o)}}case"cart/clear":return{items:[],promoCode:void 0};case"cart/setPromoCode":return{...e,promoCode:t.promoCode||void 0};case"cart/updateHold":{const n=`${t.productId}::${t.variantId??""}`;return{...e,items:e.items.map(r=>vn(r)===n?{...r,holdId:t.holdId,holdExpiresAt:t.holdExpiresAt}:r)}}default:return dh(t)}}function ph(e){return e.reduce((t,n)=>t+n.qty,0)}function mh(e){return e.reduce((t,n)=>t+n.qty*n.unitPrice,0)}function Mi(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function hh(e,t){try{const n=e.getItem(t);return n?JSON.parse(n):null}catch{return null}}function gh(e,t,n){try{return e.setItem(t,JSON.stringify(n)),!0}catch(r){return console.warn(`[cedros] Failed to write "${t}" to storage`,r),!1}}const El=b.createContext(null);function Rt(){const e=b.useContext(El);if(!e)throw new Error("useCart must be used within CartProvider");return e}function Li(e){return!!e&&typeof e=="object"&&typeof e.productId=="string"&&e.productId.length>0&&typeof e.qty=="number"&&e.qty>0&&typeof e.unitPrice=="number"&&typeof e.currency=="string"&&typeof e.titleSnapshot=="string"}function xh({children:e}){const{config:t}=Pe(),n=t.cart?.storageKey??"cedros_shop_cart_v1",r=t.customer?.id,o=t.customer?.isSignedIn??!!r,a=t.cart?.syncDebounceMs??800,i=!!t.adapter.getCartInventoryStatus,[c,l]=b.useReducer(fh,uh),d=b.useRef(c);d.current=c;const[f,u]=b.useState(!1),m=b.useRef(!1),h=b.useRef(null),v=b.useRef(null);b.useEffect(()=>{const k=Mi();if(!k)return;const _=hh(k,n);if(_&&Array.isArray(_.items)){const w=_.items.filter(Li);l({type:"cart/hydrate",state:{items:w,promoCode:typeof _.promoCode=="string"?_.promoCode:void 0}})}u(!0)},[n]),b.useEffect(()=>{if(!f)return;const k=Mi();k&&gh(k,n,c)},[c,n,f]),b.useEffect(()=>{if(!f||!o||!r||!t.adapter.mergeCart&&!t.adapter.getCart||(v.current!==r&&(m.current=!1,h.current=null,v.current=r),m.current))return;let k=!1;return(async()=>{try{const _=t.adapter.mergeCart?await t.adapter.mergeCart({customerId:r,cart:d.current}):await t.adapter.getCart({customerId:r});if(k)return;if(_&&Array.isArray(_.items)){m.current=!0;const w={..._,items:_.items.filter(Li)};l({type:"cart/hydrate",state:w}),h.current=JSON.stringify(w)}}catch{k||(m.current=!1)}})(),()=>{k=!0}},[t.adapter,r,f,o]),b.useEffect(()=>{if(!f||!o||!r||!t.adapter.updateCart||!m.current||typeof window>"u")return;const k=JSON.stringify(c);if(h.current===k)return;const _=window.setTimeout(()=>{t.adapter.updateCart({customerId:r,cart:c}).then(()=>{h.current=k}).catch(w=>{console.warn("[CedrosPay] Cart server sync failed:",w instanceof Error?w.message:w)})},a);return()=>window.clearTimeout(_)},[t.adapter,r,f,o,c,a]);const x=b.useCallback((k,_)=>{const w=c.items.find(j=>j.productId===k&&j.variantId===_);if(w)return{holdId:w.holdId,expiresAt:w.holdExpiresAt}},[c.items]),g=b.useCallback((k,_,w)=>{l({type:"cart/updateHold",productId:k,variantId:_,holdExpiresAt:w})},[]),y=b.useMemo(()=>{const k=ph(c.items),_=mh(c.items);return{items:c.items,promoCode:c.promoCode,count:k,subtotal:_,addItem:(w,j)=>l({type:"cart/add",item:w,qty:j}),removeItem:(w,j)=>l({type:"cart/remove",productId:w,variantId:j}),setQty:(w,j,P)=>l({type:"cart/setQty",productId:w,variantId:j,qty:P}),clear:()=>l({type:"cart/clear"}),setPromoCode:w=>l({type:"cart/setPromoCode",promoCode:w}),holdsSupported:i,getItemHold:x,updateItemHold:g}},[c.items,c.promoCode,i,x,g]);return s.jsx(El.Provider,{value:y,children:e})}function B(e,t,n){function r(c,l){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:l,constr:i,traits:new Set},enumerable:!1}),c._zod.traits.has(e))return;c._zod.traits.add(e),t(c,l);const d=i.prototype,f=Object.keys(d);for(let u=0;u<f.length;u++){const m=f[u];m in c||(c[m]=d[m].bind(c))}}const o=n?.Parent??Object;class a extends o{}Object.defineProperty(a,"name",{value:e});function i(c){var l;const d=n?.Parent?new a:this;r(d,c),(l=d._zod).deferred??(l.deferred=[]);for(const f of d._zod.deferred)f();return d}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:c=>n?.Parent&&c instanceof n.Parent?!0:c?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class Wn extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Al extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const Pl={};function kn(e){return Pl}function Il(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function Vo(e,t){return typeof t=="bigint"?t.toString():t}function va(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function ya(e){return e==null}function ba(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function vh(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let o=(r.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(r)){const l=r.match(/\d?e-(\d?)/);l?.[1]&&(o=Number.parseInt(l[1]))}const a=n>o?n:o,i=Number.parseInt(e.toFixed(a).replace(".","")),c=Number.parseInt(t.toFixed(a).replace(".",""));return i%c/10**a}const Di=Symbol("evaluating");function _e(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Di)return r===void 0&&(r=Di,r=n()),r},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function In(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function un(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function $i(e){return JSON.stringify(e)}function yh(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const Tl="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ms(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const bh=va(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function jr(e){if(ms(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ms(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function Rl(e){return jr(e)?{...e}:Array.isArray(e)?[...e]:e}const wh=new Set(["string","number","symbol"]);function Zn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function fn(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function ce(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function _h(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const kh={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function jh(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const a=un(e._zod.def,{get shape(){const i={};for(const c in t){if(!(c in n.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&(i[c]=n.shape[c])}return In(this,"shape",i),i},checks:[]});return fn(e,a)}function Sh(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const a=un(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const c in t){if(!(c in n.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&delete i[c]}return In(this,"shape",i),i},checks:[]});return fn(e,a)}function Ch(e,t){if(!jr(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const a=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(a,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=un(e._zod.def,{get shape(){const a={...e._zod.def.shape,...t};return In(this,"shape",a),a}});return fn(e,o)}function Nh(e,t){if(!jr(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=un(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return In(this,"shape",r),r}});return fn(e,n)}function Eh(e,t){const n=un(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return In(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return fn(e,n)}function Ah(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=un(t._zod.def,{get shape(){const c=t._zod.def.shape,l={...c};if(n)for(const d in n){if(!(d in c))throw new Error(`Unrecognized key: "${d}"`);n[d]&&(l[d]=e?new e({type:"optional",innerType:c[d]}):c[d])}else for(const d in c)l[d]=e?new e({type:"optional",innerType:c[d]}):c[d];return In(this,"shape",l),l},checks:[]});return fn(t,i)}function Ph(e,t,n){const r=un(t._zod.def,{get shape(){const o=t._zod.def.shape,a={...o};if(n)for(const i in n){if(!(i in a))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(a[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)a[i]=new e({type:"nonoptional",innerType:o[i]});return In(this,"shape",a),a}});return fn(t,r)}function Vn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function Ol(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Wr(e){return typeof e=="string"?e:e?.message}function jn(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=Wr(e.inst?._zod.def?.error?.(e))??Wr(t?.error?.(e))??Wr(n.customError?.(e))??Wr(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function wa(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Sr(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}const Ml=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Vo,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Ll=B("$ZodError",Ml),Dl=B("$ZodError",Ml,{Parent:Error});function Ih(e,t=n=>n.message){const n={},r=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):r.push(t(o));return{formErrors:r,fieldErrors:n}}function Th(e,t=n=>n.message){const n={_errors:[]},r=o=>{for(const a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(i=>r({issues:i}));else if(a.code==="invalid_key")r({issues:a.issues});else if(a.code==="invalid_element")r({issues:a.issues});else if(a.path.length===0)n._errors.push(t(a));else{let i=n,c=0;for(;c<a.path.length;){const l=a.path[c];c===a.path.length-1?(i[l]=i[l]||{_errors:[]},i[l]._errors.push(t(a))):i[l]=i[l]||{_errors:[]},i=i[l],c++}}};return r(e),n}const _a=e=>(t,n,r,o)=>{const a=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},a);if(i instanceof Promise)throw new Wn;if(i.issues.length){const c=new(o?.Err??e)(i.issues.map(l=>jn(l,a,kn())));throw Tl(c,o?.callee),c}return i.value},ka=e=>async(t,n,r,o)=>{const a=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},a);if(i instanceof Promise&&(i=await i),i.issues.length){const c=new(o?.Err??e)(i.issues.map(l=>jn(l,a,kn())));throw Tl(c,o?.callee),c}return i.value},Rs=e=>(t,n,r)=>{const o=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new Wn;return a.issues.length?{success:!1,error:new(e??Ll)(a.issues.map(i=>jn(i,o,kn())))}:{success:!0,data:a.value}},Rh=Rs(Dl),Os=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let a=t._zod.run({value:n,issues:[]},o);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(i=>jn(i,o,kn())))}:{success:!0,data:a.value}},Oh=Os(Dl),Mh=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return _a(e)(t,n,o)},Lh=e=>(t,n,r)=>_a(e)(t,n,r),Dh=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ka(e)(t,n,o)},$h=e=>async(t,n,r)=>ka(e)(t,n,r),zh=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Rs(e)(t,n,o)},Fh=e=>(t,n,r)=>Rs(e)(t,n,r),Bh=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Os(e)(t,n,o)},Uh=e=>async(t,n,r)=>Os(e)(t,n,r),Vh=/^[cC][^\s-]{8,}$/,Wh=/^[0-9a-z]+$/,qh=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Hh=/^[0-9a-vA-V]{20}$/,Zh=/^[A-Za-z0-9]{27}$/,Gh=/^[a-zA-Z0-9_-]{21}$/,Yh=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Qh=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,zi=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Kh=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Jh="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Xh(){return new RegExp(Jh,"u")}const eg=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,tg=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,ng=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,rg=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,sg=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,$l=/^[A-Za-z0-9_-]*$/,og=/^\+[1-9]\d{6,14}$/,zl="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",ag=new RegExp(`^${zl}$`);function Fl(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ig(e){return new RegExp(`^${Fl(e)}$`)}function cg(e){const t=Fl({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${zl}T(?:${r})$`)}const lg=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},dg=/^-?\d+$/,ug=/^-?\d+(?:\.\d+)?$/,fg=/^[^A-Z]*$/,pg=/^[^a-z]*$/,ut=B("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Bl={number:"number",bigint:"bigint",object:"date"},Ul=B("$ZodCheckLessThan",(e,t)=>{ut.init(e,t);const n=Bl[typeof t.value];e._zod.onattach.push(r=>{const o=r._zod.bag,a=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<a&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Vl=B("$ZodCheckGreaterThan",(e,t)=>{ut.init(e,t);const n=Bl[typeof t.value];e._zod.onattach.push(r=>{const o=r._zod.bag,a=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>a&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),mg=B("$ZodCheckMultipleOf",(e,t)=>{ut.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):vh(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),hg=B("$ZodCheckNumberFormat",(e,t)=>{ut.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[o,a]=kh[t.format];e._zod.onattach.push(i=>{const c=i._zod.bag;c.format=t.format,c.minimum=o,c.maximum=a,n&&(c.pattern=dg)}),e._zod.check=i=>{const c=i.value;if(n){if(!Number.isInteger(c)){i.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){c>0?i.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}):i.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}c<o&&i.issues.push({origin:"number",input:c,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),c>a&&i.issues.push({origin:"number",input:c,code:"too_big",maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),gg=B("$ZodCheckMaxLength",(e,t)=>{var n;ut.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ya(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const o=r.value;if(o.length<=t.maximum)return;const i=wa(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),xg=B("$ZodCheckMinLength",(e,t)=>{var n;ut.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ya(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const o=r.value;if(o.length>=t.minimum)return;const i=wa(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),vg=B("$ZodCheckLengthEquals",(e,t)=>{var n;ut.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ya(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=r=>{const o=r.value,a=o.length;if(a===t.length)return;const i=wa(o),c=a>t.length;r.issues.push({origin:i,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Ms=B("$ZodCheckStringFormat",(e,t)=>{var n,r;ut.init(e,t),e._zod.onattach.push(o=>{const a=o._zod.bag;a.format=t.format,t.pattern&&(a.patterns??(a.patterns=new Set),a.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),yg=B("$ZodCheckRegex",(e,t)=>{Ms.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),bg=B("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=fg),Ms.init(e,t)}),wg=B("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=pg),Ms.init(e,t)}),_g=B("$ZodCheckIncludes",(e,t)=>{ut.init(e,t);const n=Zn(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(o=>{const a=o._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(r)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),kg=B("$ZodCheckStartsWith",(e,t)=>{ut.init(e,t);const n=new RegExp(`^${Zn(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),jg=B("$ZodCheckEndsWith",(e,t)=>{ut.init(e,t);const n=new RegExp(`.*${Zn(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),Sg=B("$ZodCheckOverwrite",(e,t)=>{ut.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class Cg{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
|
|
2
|
-
`).filter(i=>i),o=Math.min(...r.map(i=>i.length-i.trimStart().length)),a=r.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of a)this.content.push(i)}compile(){const t=Function,n=this?.args,o=[...(this?.content??[""]).map(a=>` ${a}`)];return new t(...n,o.join(`
|
|
3
|
-
`))}}const Ng={major:4,minor:3,patch:6},Me=B("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Ng;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const a of o._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(i,c,l)=>{let d=Vn(i),f;for(const u of c){if(u._zod.def.when){if(!u._zod.def.when(i))continue}else if(d)continue;const m=i.issues.length,h=u._zod.check(i);if(h instanceof Promise&&l?.async===!1)throw new Wn;if(f||h instanceof Promise)f=(f??Promise.resolve()).then(async()=>{await h,i.issues.length!==m&&(d||(d=Vn(i,m)))});else{if(i.issues.length===m)continue;d||(d=Vn(i,m))}}return f?f.then(()=>i):i},a=(i,c,l)=>{if(Vn(i))return i.aborted=!0,i;const d=o(c,r,l);if(d instanceof Promise){if(l.async===!1)throw new Wn;return d.then(f=>e._zod.parse(f,l))}return e._zod.parse(d,l)};e._zod.run=(i,c)=>{if(c.skipChecks)return e._zod.parse(i,c);if(c.direction==="backward"){const d=e._zod.parse({value:i.value,issues:[]},{...c,skipChecks:!0});return d instanceof Promise?d.then(f=>a(f,i,c)):a(d,i,c)}const l=e._zod.parse(i,c);if(l instanceof Promise){if(c.async===!1)throw new Wn;return l.then(d=>o(d,r,c))}return o(l,r,c)}}_e(e,"~standard",()=>({validate:o=>{try{const a=Rh(e,o);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return Oh(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),ja=B("$ZodString",(e,t)=>{Me.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??lg(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Ee=B("$ZodStringFormat",(e,t)=>{Ms.init(e,t),ja.init(e,t)}),Eg=B("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Qh),Ee.init(e,t)}),Ag=B("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=zi(r))}else t.pattern??(t.pattern=zi());Ee.init(e,t)}),Pg=B("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Kh),Ee.init(e,t)}),Ig=B("$ZodURL",(e,t)=>{Ee.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=o.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Tg=B("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Xh()),Ee.init(e,t)}),Rg=B("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Gh),Ee.init(e,t)}),Og=B("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Vh),Ee.init(e,t)}),Mg=B("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Wh),Ee.init(e,t)}),Lg=B("$ZodULID",(e,t)=>{t.pattern??(t.pattern=qh),Ee.init(e,t)}),Dg=B("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Hh),Ee.init(e,t)}),$g=B("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Zh),Ee.init(e,t)}),zg=B("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=cg(t)),Ee.init(e,t)}),Fg=B("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=ag),Ee.init(e,t)}),Bg=B("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=ig(t)),Ee.init(e,t)}),Ug=B("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Yh),Ee.init(e,t)}),Vg=B("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=eg),Ee.init(e,t),e._zod.bag.format="ipv4"}),Wg=B("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=tg),Ee.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),qg=B("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ng),Ee.init(e,t)}),Hg=B("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=rg),Ee.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[o,a]=r;if(!a)throw new Error;const i=Number(a);if(`${i}`!==a)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Wl(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Zg=B("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=sg),Ee.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Wl(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function Gg(e){if(!$l.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return Wl(n)}const Yg=B("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=$l),Ee.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{Gg(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Qg=B("$ZodE164",(e,t)=>{t.pattern??(t.pattern=og),Ee.init(e,t)});function Kg(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const Jg=B("$ZodJWT",(e,t)=>{Ee.init(e,t),e._zod.check=n=>{Kg(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),ql=B("$ZodNumber",(e,t)=>{Me.init(e,t),e._zod.pattern=e._zod.bag.pattern??ug,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const o=n.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;const a=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...a?{received:a}:{}}),n}}),Xg=B("$ZodNumberFormat",(e,t)=>{hg.init(e,t),ql.init(e,t)}),ex=B("$ZodUnknown",(e,t)=>{Me.init(e,t),e._zod.parse=n=>n}),tx=B("$ZodNever",(e,t)=>{Me.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function Fi(e,t,n){e.issues.length&&t.issues.push(...Ol(n,e.issues)),t.value[n]=e.value}const nx=B("$ZodArray",(e,t)=>{Me.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const a=[];for(let i=0;i<o.length;i++){const c=o[i],l=t.element._zod.run({value:c,issues:[]},r);l instanceof Promise?a.push(l.then(d=>Fi(d,n,i))):Fi(l,n,i)}return a.length?Promise.all(a).then(()=>n):n}});function hs(e,t,n,r,o){if(e.issues.length){if(o&&!(n in r))return;t.issues.push(...Ol(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function Hl(e){const t=Object.keys(e.shape);for(const r of t)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const n=_h(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Zl(e,t,n,r,o,a){const i=[],c=o.keySet,l=o.catchall._zod,d=l.def.type,f=l.optout==="optional";for(const u in t){if(c.has(u))continue;if(d==="never"){i.push(u);continue}const m=l.run({value:t[u],issues:[]},r);m instanceof Promise?e.push(m.then(h=>hs(h,n,u,t,f))):hs(m,n,u,t,f)}return i.length&&n.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}const rx=B("$ZodObject",(e,t)=>{if(Me.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const c=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...c};return Object.defineProperty(t,"shape",{value:l}),l}})}const r=va(()=>Hl(t));_e(e._zod,"propValues",()=>{const c=t.shape,l={};for(const d in c){const f=c[d]._zod;if(f.values){l[d]??(l[d]=new Set);for(const u of f.values)l[d].add(u)}}return l});const o=ms,a=t.catchall;let i;e._zod.parse=(c,l)=>{i??(i=r.value);const d=c.value;if(!o(d))return c.issues.push({expected:"object",code:"invalid_type",input:d,inst:e}),c;c.value={};const f=[],u=i.shape;for(const m of i.keys){const h=u[m],v=h._zod.optout==="optional",x=h._zod.run({value:d[m],issues:[]},l);x instanceof Promise?f.push(x.then(g=>hs(g,c,m,d,v))):hs(x,c,m,d,v)}return a?Zl(f,d,c,l,r.value,e):f.length?Promise.all(f).then(()=>c):c}}),sx=B("$ZodObjectJIT",(e,t)=>{rx.init(e,t);const n=e._zod.parse,r=va(()=>Hl(t)),o=m=>{const h=new Cg(["shape","payload","ctx"]),v=r.value,x=_=>{const w=$i(_);return`shape[${w}]._zod.run({ value: input[${w}], issues: [] }, ctx)`};h.write("const input = payload.value;");const g=Object.create(null);let y=0;for(const _ of v.keys)g[_]=`key_${y++}`;h.write("const newResult = {};");for(const _ of v.keys){const w=g[_],j=$i(_),T=m[_]?._zod?.optout==="optional";h.write(`const ${w} = ${x(_)};`),T?h.write(`
|
|
4
|
-
if (${w}.issues.length) {
|
|
5
|
-
if (${j} in input) {
|
|
6
|
-
payload.issues = payload.issues.concat(${w}.issues.map(iss => ({
|
|
7
|
-
...iss,
|
|
8
|
-
path: iss.path ? [${j}, ...iss.path] : [${j}]
|
|
9
|
-
})));
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (${w}.value === undefined) {
|
|
14
|
-
if (${j} in input) {
|
|
15
|
-
newResult[${j}] = undefined;
|
|
16
|
-
}
|
|
17
|
-
} else {
|
|
18
|
-
newResult[${j}] = ${w}.value;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
`):h.write(`
|
|
22
|
-
if (${w}.issues.length) {
|
|
23
|
-
payload.issues = payload.issues.concat(${w}.issues.map(iss => ({
|
|
24
|
-
...iss,
|
|
25
|
-
path: iss.path ? [${j}, ...iss.path] : [${j}]
|
|
26
|
-
})));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
if (${w}.value === undefined) {
|
|
30
|
-
if (${j} in input) {
|
|
31
|
-
newResult[${j}] = undefined;
|
|
32
|
-
}
|
|
33
|
-
} else {
|
|
34
|
-
newResult[${j}] = ${w}.value;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
`)}h.write("payload.value = newResult;"),h.write("return payload;");const k=h.compile();return(_,w)=>k(m,_,w)};let a;const i=ms,c=!Pl.jitless,d=c&&bh.value,f=t.catchall;let u;e._zod.parse=(m,h)=>{u??(u=r.value);const v=m.value;return i(v)?c&&d&&h?.async===!1&&h.jitless!==!0?(a||(a=o(t.shape)),m=a(m,h),f?Zl([],v,m,h,u,e):m):n(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),m)}});function Bi(e,t,n,r){for(const a of e)if(a.issues.length===0)return t.value=a.value,t;const o=e.filter(a=>!Vn(a));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(a=>a.issues.map(i=>jn(i,r,kn())))}),t)}const ox=B("$ZodUnion",(e,t)=>{Me.init(e,t),_e(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),_e(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),_e(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),_e(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(a=>a._zod.pattern);return new RegExp(`^(${o.map(a=>ba(a.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(o,a)=>{if(n)return r(o,a);let i=!1;const c=[];for(const l of t.options){const d=l._zod.run({value:o.value,issues:[]},a);if(d instanceof Promise)c.push(d),i=!0;else{if(d.issues.length===0)return d;c.push(d)}}return i?Promise.all(c).then(l=>Bi(l,o,e,a)):Bi(c,o,e,a)}}),ax=B("$ZodIntersection",(e,t)=>{Me.init(e,t),e._zod.parse=(n,r)=>{const o=n.value,a=t.left._zod.run({value:o,issues:[]},r),i=t.right._zod.run({value:o,issues:[]},r);return a instanceof Promise||i instanceof Promise?Promise.all([a,i]).then(([l,d])=>Ui(n,l,d)):Ui(n,a,i)}});function Wo(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(jr(e)&&jr(t)){const n=Object.keys(t),r=Object.keys(e).filter(a=>n.indexOf(a)!==-1),o={...e,...t};for(const a of r){const i=Wo(e[a],t[a]);if(!i.valid)return{valid:!1,mergeErrorPath:[a,...i.mergeErrorPath]};o[a]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const o=e[r],a=t[r],i=Wo(o,a);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ui(e,t,n){const r=new Map;let o;for(const c of t.issues)if(c.code==="unrecognized_keys"){o??(o=c);for(const l of c.keys)r.has(l)||r.set(l,{}),r.get(l).l=!0}else e.issues.push(c);for(const c of n.issues)if(c.code==="unrecognized_keys")for(const l of c.keys)r.has(l)||r.set(l,{}),r.get(l).r=!0;else e.issues.push(c);const a=[...r].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(a.length&&o&&e.issues.push({...o,keys:a}),Vn(e))return e;const i=Wo(t.value,n.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const ix=B("$ZodEnum",(e,t)=>{Me.init(e,t);const n=Il(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>wh.has(typeof o)).map(o=>typeof o=="string"?Zn(o):o.toString()).join("|")})$`),e._zod.parse=(o,a)=>{const i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),cx=B("$ZodLiteral",(e,t)=>{if(Me.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(r=>typeof r=="string"?Zn(r):r?Zn(r.toString()):String(r)).join("|")})$`),e._zod.parse=(r,o)=>{const a=r.value;return n.has(a)||r.issues.push({code:"invalid_value",values:t.values,input:a,inst:e}),r}}),lx=B("$ZodTransform",(e,t)=>{Me.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new Al(e.constructor.name);const o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(n.value=i,n));if(o instanceof Promise)throw new Wn;return n.value=o,n}});function Vi(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Gl=B("$ZodOptional",(e,t)=>{Me.init(e,t),e._zod.optin="optional",e._zod.optout="optional",_e(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),_e(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${ba(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(a=>Vi(a,n.value)):Vi(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),dx=B("$ZodExactOptional",(e,t)=>{Gl.init(e,t),_e(e._zod,"values",()=>t.innerType._zod.values),_e(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),ux=B("$ZodNullable",(e,t)=>{Me.init(e,t),_e(e._zod,"optin",()=>t.innerType._zod.optin),_e(e._zod,"optout",()=>t.innerType._zod.optout),_e(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${ba(n.source)}|null)$`):void 0}),_e(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),fx=B("$ZodDefault",(e,t)=>{Me.init(e,t),e._zod.optin="optional",_e(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(a=>Wi(a,t)):Wi(o,t)}});function Wi(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const px=B("$ZodPrefault",(e,t)=>{Me.init(e,t),e._zod.optin="optional",_e(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),mx=B("$ZodNonOptional",(e,t)=>{Me.init(e,t),_e(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(a=>qi(a,e)):qi(o,e)}});function qi(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const hx=B("$ZodCatch",(e,t)=>{Me.init(e,t),_e(e._zod,"optin",()=>t.innerType._zod.optin),_e(e._zod,"optout",()=>t.innerType._zod.optout),_e(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(a=>(n.value=a.value,a.issues.length&&(n.value=t.catchValue({...n,error:{issues:a.issues.map(i=>jn(i,r,kn()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(a=>jn(a,r,kn()))},input:n.value}),n.issues=[]),n)}}),gx=B("$ZodPipe",(e,t)=>{Me.init(e,t),_e(e._zod,"values",()=>t.in._zod.values),_e(e._zod,"optin",()=>t.in._zod.optin),_e(e._zod,"optout",()=>t.out._zod.optout),_e(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const a=t.out._zod.run(n,r);return a instanceof Promise?a.then(i=>qr(i,t.in,r)):qr(a,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(a=>qr(a,t.out,r)):qr(o,t.out,r)}});function qr(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const xx=B("$ZodReadonly",(e,t)=>{Me.init(e,t),_e(e._zod,"propValues",()=>t.innerType._zod.propValues),_e(e._zod,"values",()=>t.innerType._zod.values),_e(e._zod,"optin",()=>t.innerType?._zod?.optin),_e(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(Hi):Hi(o)}});function Hi(e){return e.value=Object.freeze(e.value),e}const vx=B("$ZodCustom",(e,t)=>{ut.init(e,t),Me.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(a=>Zi(a,n,r,e));Zi(o,n,r,e)}});function Zi(e,t,n,r){if(!e){const o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(Sr(o))}}var Gi;class yx{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const o={...r,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function bx(){return new yx}(Gi=globalThis).__zod_globalRegistry??(Gi.__zod_globalRegistry=bx());const vr=globalThis.__zod_globalRegistry;function wx(e,t){return new e({type:"string",...ce(t)})}function _x(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...ce(t)})}function Yi(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...ce(t)})}function kx(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...ce(t)})}function jx(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...ce(t)})}function Sx(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...ce(t)})}function Cx(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...ce(t)})}function Nx(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...ce(t)})}function Ex(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...ce(t)})}function Ax(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...ce(t)})}function Px(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...ce(t)})}function Ix(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...ce(t)})}function Tx(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...ce(t)})}function Rx(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...ce(t)})}function Ox(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...ce(t)})}function Mx(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...ce(t)})}function Lx(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...ce(t)})}function Dx(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...ce(t)})}function $x(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...ce(t)})}function zx(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...ce(t)})}function Fx(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...ce(t)})}function Bx(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...ce(t)})}function Ux(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...ce(t)})}function Vx(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...ce(t)})}function Wx(e,t){return new e({type:"string",format:"date",check:"string_format",...ce(t)})}function qx(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...ce(t)})}function Hx(e,t){return new e({type:"string",format:"duration",check:"string_format",...ce(t)})}function Zx(e,t){return new e({type:"number",checks:[],...ce(t)})}function Gx(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...ce(t)})}function Yx(e){return new e({type:"unknown"})}function Qx(e,t){return new e({type:"never",...ce(t)})}function Qi(e,t){return new Ul({check:"less_than",...ce(t),value:e,inclusive:!1})}function vo(e,t){return new Ul({check:"less_than",...ce(t),value:e,inclusive:!0})}function Ki(e,t){return new Vl({check:"greater_than",...ce(t),value:e,inclusive:!1})}function yo(e,t){return new Vl({check:"greater_than",...ce(t),value:e,inclusive:!0})}function Ji(e,t){return new mg({check:"multiple_of",...ce(t),value:e})}function Yl(e,t){return new gg({check:"max_length",...ce(t),maximum:e})}function gs(e,t){return new xg({check:"min_length",...ce(t),minimum:e})}function Ql(e,t){return new vg({check:"length_equals",...ce(t),length:e})}function Kx(e,t){return new yg({check:"string_format",format:"regex",...ce(t),pattern:e})}function Jx(e){return new bg({check:"string_format",format:"lowercase",...ce(e)})}function Xx(e){return new wg({check:"string_format",format:"uppercase",...ce(e)})}function ev(e,t){return new _g({check:"string_format",format:"includes",...ce(t),includes:e})}function tv(e,t){return new kg({check:"string_format",format:"starts_with",...ce(t),prefix:e})}function nv(e,t){return new jg({check:"string_format",format:"ends_with",...ce(t),suffix:e})}function er(e){return new Sg({check:"overwrite",tx:e})}function rv(e){return er(t=>t.normalize(e))}function sv(){return er(e=>e.trim())}function ov(){return er(e=>e.toLowerCase())}function av(){return er(e=>e.toUpperCase())}function iv(){return er(e=>yh(e))}function cv(e,t,n){return new e({type:"array",element:t,...ce(n)})}function lv(e,t,n){return new e({type:"custom",check:"custom",fn:t,...ce(n)})}function dv(e){const t=uv(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(Sr(r,n.value,t._zod.def));else{const o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(Sr(o))}},e(n.value,n)));return t}function uv(e,t){const n=new ut({check:"custom",...ce(t)});return n._zod.check=e,n}function Kl(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??vr,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Ze(e,t,n={path:[],schemaPath:[]}){var r;const o=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;const i={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,i);const c=e._zod.toJSONSchema?.();if(c)i.schema=c;else{const f={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,f);else{const m=i.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,f)}const u=e._zod.parent;u&&(i.ref||(i.ref=u),Ze(u,t,f),t.seen.get(u).isParent=!0)}const l=t.metadataRegistry.get(e);return l&&Object.assign(i.schema,l),t.io==="input"&&nt(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((r=i.schema).default??(r.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function Jl(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const i of e.seen.entries()){const c=e.metadataRegistry.get(i[0])?.id;if(c){const l=r.get(c);if(l&&l!==i[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(c,i[0])}}const o=i=>{const c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const u=e.external.registry.get(i[0])?.id,m=e.external.uri??(v=>v);if(u)return{ref:m(u)};const h=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=h,{defId:h,ref:`${m("__shared")}#/${c}/${h}`}}if(i[1]===n)return{ref:"#"};const d=`#/${c}/`,f=i[1].schema.id??`__schema${e.counter++}`;return{defId:f,ref:d+f}},a=i=>{if(i[1].schema.$ref)return;const c=i[1],{ref:l,defId:d}=o(i);c.def={...c.schema},d&&(c.defId=d);const f=c.schema;for(const u in f)delete f[u];f.$ref=l};if(e.cycles==="throw")for(const i of e.seen.entries()){const c=i[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
|
|
38
|
-
|
|
39
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const c=i[1];if(t===i[0]){a(i);continue}if(e.external){const d=e.external.registry.get(i[0])?.id;if(t!==i[0]&&d){a(i);continue}}if(e.metadataRegistry.get(i[0])?.id){a(i);continue}if(c.cycle){a(i);continue}if(c.count>1&&e.reused==="ref"){a(i);continue}}}function Xl(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=i=>{const c=e.seen.get(i);if(c.ref===null)return;const l=c.def??c.schema,d={...l},f=c.ref;if(c.ref=null,f){r(f);const m=e.seen.get(f),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(l.allOf=l.allOf??[],l.allOf.push(h)):Object.assign(l,h),Object.assign(l,d),i._zod.parent===f)for(const x in l)x==="$ref"||x==="allOf"||x in d||delete l[x];if(h.$ref&&m.def)for(const x in l)x==="$ref"||x==="allOf"||x in m.def&&JSON.stringify(l[x])===JSON.stringify(m.def[x])&&delete l[x]}const u=i._zod.parent;if(u&&u!==f){r(u);const m=e.seen.get(u);if(m?.schema.$ref&&(l.$ref=m.schema.$ref,m.def))for(const h in l)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(l[h])===JSON.stringify(m.def[h])&&delete l[h]}e.override({zodSchema:i,jsonSchema:l,path:c.path??[]})};for(const i of[...e.seen.entries()].reverse())r(i[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,n.def??n.schema);const a=e.external?.defs??{};for(const i of e.seen.entries()){const c=i[1];c.def&&c.defId&&(a[c.defId]=c.def)}e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?o.$defs=a:o.definitions=a);try{const i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:xs(t,"input",e.processors),output:xs(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function nt(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return nt(r.element,n);if(r.type==="set")return nt(r.valueType,n);if(r.type==="lazy")return nt(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return nt(r.innerType,n);if(r.type==="intersection")return nt(r.left,n)||nt(r.right,n);if(r.type==="record"||r.type==="map")return nt(r.keyType,n)||nt(r.valueType,n);if(r.type==="pipe")return nt(r.in,n)||nt(r.out,n);if(r.type==="object"){for(const o in r.shape)if(nt(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(const o of r.options)if(nt(o,n))return!0;return!1}if(r.type==="tuple"){for(const o of r.items)if(nt(o,n))return!0;return!!(r.rest&&nt(r.rest,n))}return!1}const fv=(e,t={})=>n=>{const r=Kl({...n,processors:t});return Ze(e,r),Jl(r,e),Xl(r,e)},xs=(e,t,n={})=>r=>{const{libraryOptions:o,target:a}=r??{},i=Kl({...o??{},target:a,io:t,processors:n});return Ze(e,i),Jl(i,e),Xl(i,e)},pv={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},mv=(e,t,n,r)=>{const o=n;o.type="string";const{minimum:a,maximum:i,format:c,patterns:l,contentEncoding:d}=e._zod.bag;if(typeof a=="number"&&(o.minLength=a),typeof i=="number"&&(o.maxLength=i),c&&(o.format=pv[c]??c,o.format===""&&delete o.format,c==="time"&&delete o.format),d&&(o.contentEncoding=d),l&&l.size>0){const f=[...l];f.length===1?o.pattern=f[0].source:f.length>1&&(o.allOf=[...f.map(u=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:u.source}))])}},hv=(e,t,n,r)=>{const o=n,{minimum:a,maximum:i,format:c,multipleOf:l,exclusiveMaximum:d,exclusiveMinimum:f}=e._zod.bag;typeof c=="string"&&c.includes("int")?o.type="integer":o.type="number",typeof f=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=f,o.exclusiveMinimum=!0):o.exclusiveMinimum=f),typeof a=="number"&&(o.minimum=a,typeof f=="number"&&t.target!=="draft-04"&&(f>=a?delete o.minimum:delete o.exclusiveMinimum)),typeof d=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=d,o.exclusiveMaximum=!0):o.exclusiveMaximum=d),typeof i=="number"&&(o.maximum=i,typeof d=="number"&&t.target!=="draft-04"&&(d<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof l=="number"&&(o.multipleOf=l)},gv=(e,t,n,r)=>{n.not={}},xv=(e,t,n,r)=>{},vv=(e,t,n,r)=>{const o=e._zod.def,a=Il(o.entries);a.every(i=>typeof i=="number")&&(n.type="number"),a.every(i=>typeof i=="string")&&(n.type="string"),n.enum=a},yv=(e,t,n,r)=>{const o=e._zod.def,a=[];for(const i of o.values)if(i===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof i=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");a.push(Number(i))}else a.push(i);if(a.length!==0)if(a.length===1){const i=a[0];n.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[i]:n.const=i}else a.every(i=>typeof i=="number")&&(n.type="number"),a.every(i=>typeof i=="string")&&(n.type="string"),a.every(i=>typeof i=="boolean")&&(n.type="boolean"),a.every(i=>i===null)&&(n.type="null"),n.enum=a},bv=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},wv=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},_v=(e,t,n,r)=>{const o=n,a=e._zod.def,{minimum:i,maximum:c}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof c=="number"&&(o.maxItems=c),o.type="array",o.items=Ze(a.element,t,{...r,path:[...r.path,"items"]})},kv=(e,t,n,r)=>{const o=n,a=e._zod.def;o.type="object",o.properties={};const i=a.shape;for(const d in i)o.properties[d]=Ze(i[d],t,{...r,path:[...r.path,"properties",d]});const c=new Set(Object.keys(i)),l=new Set([...c].filter(d=>{const f=a.shape[d]._zod;return t.io==="input"?f.optin===void 0:f.optout===void 0}));l.size>0&&(o.required=Array.from(l)),a.catchall?._zod.def.type==="never"?o.additionalProperties=!1:a.catchall?a.catchall&&(o.additionalProperties=Ze(a.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},jv=(e,t,n,r)=>{const o=e._zod.def,a=o.inclusive===!1,i=o.options.map((c,l)=>Ze(c,t,{...r,path:[...r.path,a?"oneOf":"anyOf",l]}));a?n.oneOf=i:n.anyOf=i},Sv=(e,t,n,r)=>{const o=e._zod.def,a=Ze(o.left,t,{...r,path:[...r.path,"allOf",0]}),i=Ze(o.right,t,{...r,path:[...r.path,"allOf",1]}),c=d=>"allOf"in d&&Object.keys(d).length===1,l=[...c(a)?a.allOf:[a],...c(i)?i.allOf:[i]];n.allOf=l},Cv=(e,t,n,r)=>{const o=e._zod.def,a=Ze(o.innerType,t,r),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,n.nullable=!0):n.anyOf=[a,{type:"null"}]},Nv=(e,t,n,r)=>{const o=e._zod.def;Ze(o.innerType,t,r);const a=t.seen.get(e);a.ref=o.innerType},Ev=(e,t,n,r)=>{const o=e._zod.def;Ze(o.innerType,t,r);const a=t.seen.get(e);a.ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},Av=(e,t,n,r)=>{const o=e._zod.def;Ze(o.innerType,t,r);const a=t.seen.get(e);a.ref=o.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Pv=(e,t,n,r)=>{const o=e._zod.def;Ze(o.innerType,t,r);const a=t.seen.get(e);a.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},Iv=(e,t,n,r)=>{const o=e._zod.def,a=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;Ze(a,t,r);const i=t.seen.get(e);i.ref=a},Tv=(e,t,n,r)=>{const o=e._zod.def;Ze(o.innerType,t,r);const a=t.seen.get(e);a.ref=o.innerType,n.readOnly=!0},ed=(e,t,n,r)=>{const o=e._zod.def;Ze(o.innerType,t,r);const a=t.seen.get(e);a.ref=o.innerType},Rv=B("ZodISODateTime",(e,t)=>{zg.init(e,t),Ie.init(e,t)});function Ov(e){return Vx(Rv,e)}const Mv=B("ZodISODate",(e,t)=>{Fg.init(e,t),Ie.init(e,t)});function Lv(e){return Wx(Mv,e)}const Dv=B("ZodISOTime",(e,t)=>{Bg.init(e,t),Ie.init(e,t)});function $v(e){return qx(Dv,e)}const zv=B("ZodISODuration",(e,t)=>{Ug.init(e,t),Ie.init(e,t)});function Fv(e){return Hx(zv,e)}const Bv=(e,t)=>{Ll.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Th(e,n)},flatten:{value:n=>Ih(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,Vo,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,Vo,2)}},isEmpty:{get(){return e.issues.length===0}}})},wt=B("ZodError",Bv,{Parent:Error}),Uv=_a(wt),Vv=ka(wt),Wv=Rs(wt),qv=Os(wt),Hv=Mh(wt),Zv=Lh(wt),Gv=Dh(wt),Yv=$h(wt),Qv=zh(wt),Kv=Fh(wt),Jv=Bh(wt),Xv=Uh(wt),Le=B("ZodType",(e,t)=>(Me.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:xs(e,"input"),output:xs(e,"output")}}),e.toJSONSchema=fv(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(un(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>fn(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>Uv(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Wv(e,n,r),e.parseAsync=async(n,r)=>Vv(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>qv(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>Hv(e,n,r),e.decode=(n,r)=>Zv(e,n,r),e.encodeAsync=async(n,r)=>Gv(e,n,r),e.decodeAsync=async(n,r)=>Yv(e,n,r),e.safeEncode=(n,r)=>Qv(e,n,r),e.safeDecode=(n,r)=>Kv(e,n,r),e.safeEncodeAsync=async(n,r)=>Jv(e,n,r),e.safeDecodeAsync=async(n,r)=>Xv(e,n,r),e.refine=(n,r)=>e.check(Yy(n,r)),e.superRefine=n=>e.check(Qy(n)),e.overwrite=n=>e.check(er(n)),e.optional=()=>nc(e),e.exactOptional=()=>Ly(e),e.nullable=()=>rc(e),e.nullish=()=>nc(rc(e)),e.nonoptional=n=>Uy(e,n),e.array=()=>jy(e),e.or=n=>Ny([e,n]),e.and=n=>Ay(e,n),e.transform=n=>sc(e,Oy(n)),e.default=n=>zy(e,n),e.prefault=n=>By(e,n),e.catch=n=>Wy(e,n),e.pipe=n=>sc(e,n),e.readonly=()=>Zy(e),e.describe=n=>{const r=e.clone();return vr.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return vr.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return vr.get(e);const r=e.clone();return vr.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),td=B("_ZodString",(e,t)=>{ja.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(r,o,a)=>mv(e,r,o);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Kx(...r)),e.includes=(...r)=>e.check(ev(...r)),e.startsWith=(...r)=>e.check(tv(...r)),e.endsWith=(...r)=>e.check(nv(...r)),e.min=(...r)=>e.check(gs(...r)),e.max=(...r)=>e.check(Yl(...r)),e.length=(...r)=>e.check(Ql(...r)),e.nonempty=(...r)=>e.check(gs(1,...r)),e.lowercase=r=>e.check(Jx(r)),e.uppercase=r=>e.check(Xx(r)),e.trim=()=>e.check(sv()),e.normalize=(...r)=>e.check(rv(...r)),e.toLowerCase=()=>e.check(ov()),e.toUpperCase=()=>e.check(av()),e.slugify=()=>e.check(iv())}),ey=B("ZodString",(e,t)=>{ja.init(e,t),td.init(e,t),e.email=n=>e.check(_x(ty,n)),e.url=n=>e.check(Nx(ny,n)),e.jwt=n=>e.check(Ux(xy,n)),e.emoji=n=>e.check(Ex(ry,n)),e.guid=n=>e.check(Yi(Xi,n)),e.uuid=n=>e.check(kx(Hr,n)),e.uuidv4=n=>e.check(jx(Hr,n)),e.uuidv6=n=>e.check(Sx(Hr,n)),e.uuidv7=n=>e.check(Cx(Hr,n)),e.nanoid=n=>e.check(Ax(sy,n)),e.guid=n=>e.check(Yi(Xi,n)),e.cuid=n=>e.check(Px(oy,n)),e.cuid2=n=>e.check(Ix(ay,n)),e.ulid=n=>e.check(Tx(iy,n)),e.base64=n=>e.check(zx(my,n)),e.base64url=n=>e.check(Fx(hy,n)),e.xid=n=>e.check(Rx(cy,n)),e.ksuid=n=>e.check(Ox(ly,n)),e.ipv4=n=>e.check(Mx(dy,n)),e.ipv6=n=>e.check(Lx(uy,n)),e.cidrv4=n=>e.check(Dx(fy,n)),e.cidrv6=n=>e.check($x(py,n)),e.e164=n=>e.check(Bx(gy,n)),e.datetime=n=>e.check(Ov(n)),e.date=n=>e.check(Lv(n)),e.time=n=>e.check($v(n)),e.duration=n=>e.check(Fv(n))});function rt(e){return wx(ey,e)}const Ie=B("ZodStringFormat",(e,t)=>{Ee.init(e,t),td.init(e,t)}),ty=B("ZodEmail",(e,t)=>{Pg.init(e,t),Ie.init(e,t)}),Xi=B("ZodGUID",(e,t)=>{Eg.init(e,t),Ie.init(e,t)}),Hr=B("ZodUUID",(e,t)=>{Ag.init(e,t),Ie.init(e,t)}),ny=B("ZodURL",(e,t)=>{Ig.init(e,t),Ie.init(e,t)}),ry=B("ZodEmoji",(e,t)=>{Tg.init(e,t),Ie.init(e,t)}),sy=B("ZodNanoID",(e,t)=>{Rg.init(e,t),Ie.init(e,t)}),oy=B("ZodCUID",(e,t)=>{Og.init(e,t),Ie.init(e,t)}),ay=B("ZodCUID2",(e,t)=>{Mg.init(e,t),Ie.init(e,t)}),iy=B("ZodULID",(e,t)=>{Lg.init(e,t),Ie.init(e,t)}),cy=B("ZodXID",(e,t)=>{Dg.init(e,t),Ie.init(e,t)}),ly=B("ZodKSUID",(e,t)=>{$g.init(e,t),Ie.init(e,t)}),dy=B("ZodIPv4",(e,t)=>{Vg.init(e,t),Ie.init(e,t)}),uy=B("ZodIPv6",(e,t)=>{Wg.init(e,t),Ie.init(e,t)}),fy=B("ZodCIDRv4",(e,t)=>{qg.init(e,t),Ie.init(e,t)}),py=B("ZodCIDRv6",(e,t)=>{Hg.init(e,t),Ie.init(e,t)}),my=B("ZodBase64",(e,t)=>{Zg.init(e,t),Ie.init(e,t)}),hy=B("ZodBase64URL",(e,t)=>{Yg.init(e,t),Ie.init(e,t)}),gy=B("ZodE164",(e,t)=>{Qg.init(e,t),Ie.init(e,t)}),xy=B("ZodJWT",(e,t)=>{Jg.init(e,t),Ie.init(e,t)}),nd=B("ZodNumber",(e,t)=>{ql.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(r,o,a)=>hv(e,r,o),e.gt=(r,o)=>e.check(Ki(r,o)),e.gte=(r,o)=>e.check(yo(r,o)),e.min=(r,o)=>e.check(yo(r,o)),e.lt=(r,o)=>e.check(Qi(r,o)),e.lte=(r,o)=>e.check(vo(r,o)),e.max=(r,o)=>e.check(vo(r,o)),e.int=r=>e.check(ec(r)),e.safe=r=>e.check(ec(r)),e.positive=r=>e.check(Ki(0,r)),e.nonnegative=r=>e.check(yo(0,r)),e.negative=r=>e.check(Qi(0,r)),e.nonpositive=r=>e.check(vo(0,r)),e.multipleOf=(r,o)=>e.check(Ji(r,o)),e.step=(r,o)=>e.check(Ji(r,o)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function vy(e){return Zx(nd,e)}const yy=B("ZodNumberFormat",(e,t)=>{Xg.init(e,t),nd.init(e,t)});function ec(e){return Gx(yy,e)}const by=B("ZodUnknown",(e,t)=>{ex.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>xv()});function tc(){return Yx(by)}const wy=B("ZodNever",(e,t)=>{tx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>gv(e,n,r)});function _y(e){return Qx(wy,e)}const ky=B("ZodArray",(e,t)=>{nx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>_v(e,n,r,o),e.element=t.element,e.min=(n,r)=>e.check(gs(n,r)),e.nonempty=n=>e.check(gs(1,n)),e.max=(n,r)=>e.check(Yl(n,r)),e.length=(n,r)=>e.check(Ql(n,r)),e.unwrap=()=>e.element});function jy(e,t){return cv(ky,e,t)}const Sy=B("ZodObject",(e,t)=>{sx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>kv(e,n,r,o),_e(e,"shape",()=>t.shape),e.keyof=()=>Py(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:tc()}),e.loose=()=>e.clone({...e._zod.def,catchall:tc()}),e.strict=()=>e.clone({...e._zod.def,catchall:_y()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>Ch(e,n),e.safeExtend=n=>Nh(e,n),e.merge=n=>Eh(e,n),e.pick=n=>jh(e,n),e.omit=n=>Sh(e,n),e.partial=(...n)=>Ah(sd,e,n[0]),e.required=(...n)=>Ph(od,e,n[0])});function rd(e,t){const n={type:"object",shape:e??{},...ce(t)};return new Sy(n)}const Cy=B("ZodUnion",(e,t)=>{ox.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>jv(e,n,r,o),e.options=t.options});function Ny(e,t){return new Cy({type:"union",options:e,...ce(t)})}const Ey=B("ZodIntersection",(e,t)=>{ax.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Sv(e,n,r,o)});function Ay(e,t){return new Ey({type:"intersection",left:e,right:t})}const qo=B("ZodEnum",(e,t)=>{ix.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(r,o,a)=>vv(e,r,o),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{const a={};for(const i of r)if(n.has(i))a[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new qo({...t,checks:[],...ce(o),entries:a})},e.exclude=(r,o)=>{const a={...t.entries};for(const i of r)if(n.has(i))delete a[i];else throw new Error(`Key ${i} not found in enum`);return new qo({...t,checks:[],...ce(o),entries:a})}});function Py(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new qo({type:"enum",entries:n,...ce(t)})}const Iy=B("ZodLiteral",(e,t)=>{cx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>yv(e,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Ty(e,t){return new Iy({type:"literal",values:Array.isArray(e)?e:[e],...ce(t)})}const Ry=B("ZodTransform",(e,t)=>{lx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>wv(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new Al(e.constructor.name);n.addIssue=a=>{if(typeof a=="string")n.issues.push(Sr(a,n.value,t));else{const i=a;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),n.issues.push(Sr(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(a=>(n.value=a,n)):(n.value=o,n)}});function Oy(e){return new Ry({type:"transform",transform:e})}const sd=B("ZodOptional",(e,t)=>{Gl.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ed(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function nc(e){return new sd({type:"optional",innerType:e})}const My=B("ZodExactOptional",(e,t)=>{dx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ed(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Ly(e){return new My({type:"optional",innerType:e})}const Dy=B("ZodNullable",(e,t)=>{ux.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Cv(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function rc(e){return new Dy({type:"nullable",innerType:e})}const $y=B("ZodDefault",(e,t)=>{fx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ev(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function zy(e,t){return new $y({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Rl(t)}})}const Fy=B("ZodPrefault",(e,t)=>{px.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Av(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function By(e,t){return new Fy({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Rl(t)}})}const od=B("ZodNonOptional",(e,t)=>{mx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Nv(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Uy(e,t){return new od({type:"nonoptional",innerType:e,...ce(t)})}const Vy=B("ZodCatch",(e,t)=>{hx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Pv(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Wy(e,t){return new Vy({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const qy=B("ZodPipe",(e,t)=>{gx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Iv(e,n,r,o),e.in=t.in,e.out=t.out});function sc(e,t){return new qy({type:"pipe",in:e,out:t})}const Hy=B("ZodReadonly",(e,t)=>{xx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Tv(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Zy(e){return new Hy({type:"readonly",innerType:e})}const Gy=B("ZodCustom",(e,t)=>{vx.init(e,t),Le.init(e,t),e._zod.processJSONSchema=(n,r,o)=>bv(e,n)});function Yy(e,t={}){return lv(Gy,e,t)}function Qy(e){return dv(e)}const Zr=rd({line1:rt().min(1,"Address line 1 is required"),line2:rt().optional(),city:rt().min(1,"City is required"),state:rt().optional(),postalCode:rt().min(1,"Postal code is required"),country:rt().min(2,"Country is required")});function Ky(e){return rd({email:e.requireEmail?rt().email("Valid email required"):rt().email("Valid email required").or(Ty("")).optional(),name:e.requireName?rt().min(1,"Name is required"):rt().optional(),phone:e.requirePhone?rt().min(6,"Phone is required"):rt().optional(),notes:rt().max(500).optional(),shippingAddress:e.requireShippingAddress?Zr:Zr.optional(),billingAddress:e.requireBillingAddress?Zr:Zr.optional(),discountCode:rt().optional(),tipAmount:vy().min(0).optional(),shippingMethodId:rt().optional()})}const oc={none:0,optional:1,required:2};function bo(e,t){return oc[e]>=oc[t]?e:t}function Jy(e){if(!e)return null;try{const t=JSON.parse(e);return!t||typeof t!="object"?null:t}catch{return null}}function as(e,t){let n=!1,r=!1;const o=new Set;let a=t.requireEmail?"required":"none",i=t.defaultMode==="none"?"none":"optional",c=t.defaultMode==="full"?"optional":"none",l=t.allowShipping&&(t.defaultMode==="shipping"||t.defaultMode==="full"),d=t.defaultMode==="full";for(const u of e){u.metadata?.shippingProfile==="digital"?n=!0:r=!0;const h=Jy(u.metadata?.checkoutRequirements);h&&(h.email&&(a=bo(a,h.email)),h.name&&(i=bo(i,h.name)),h.phone&&(c=bo(c,h.phone)),typeof h.shippingAddress=="boolean"&&(l=l||h.shippingAddress),typeof h.billingAddress=="boolean"&&(d=d||h.billingAddress));const v=u.metadata?.fulfillmentNotes;v&&o.add(v)}const f=n&&!r;return f&&(l=!1),{email:a,name:i,phone:c,shippingAddress:l,billingAddress:d,fulfillmentNotes:Array.from(o).join(" "),isDigitalOnly:f,hasPhysical:r}}const ad=b.createContext(null);function id(){const{config:e}=Pe(),t=Rt(),n=b.useMemo(()=>({line1:"",line2:"",city:"",state:"",postalCode:"",country:"US"}),[]),r=b.useMemo(()=>{const _=as(t.items,{requireEmail:e.checkout.requireEmail??!0,defaultMode:e.checkout.mode,allowShipping:e.checkout.allowShipping??!1});return Ky({requireEmail:_.email==="required",requireName:_.name==="required",requirePhone:_.phone==="required",requireShippingAddress:_.shippingAddress,requireBillingAddress:_.billingAddress})},[t.items,e.checkout.allowShipping,e.checkout.mode,e.checkout.requireEmail]),[o,a]=b.useState(()=>({email:e.checkout.requireEmail??!0?"":void 0,name:"",phone:"",notes:"",shippingAddress:e.checkout.mode==="shipping"||e.checkout.mode==="full"?n:void 0,billingAddress:e.checkout.mode==="full"?n:void 0,discountCode:"",tipAmount:0,shippingMethodId:""}));b.useEffect(()=>{const _=as(t.items,{requireEmail:e.checkout.requireEmail??!0,defaultMode:e.checkout.mode,allowShipping:e.checkout.allowShipping??!1});a(w=>{const j={...w};return _.email==="required"&&!j.email&&(j.email=""),_.shippingAddress&&!j.shippingAddress&&(j.shippingAddress=n),_.billingAddress&&!j.billingAddress&&(j.billingAddress=n),_.shippingAddress||(j.shippingAddress=void 0),_.billingAddress||(j.billingAddress=void 0),j})},[t.items,e.checkout.allowShipping,e.checkout.mode,e.checkout.requireEmail,n]);const i=b.useRef(!1),[c,l]=b.useState({}),[d,f]=b.useState("idle"),[u,m]=b.useState(null),[h,v]=b.useState(null),x=b.useCallback(()=>{l({}),f("idle"),m(null),v(null)},[]),g=b.useCallback((_,w)=>{a(j=>({...j,[_]:w}))},[]),y=b.useCallback(()=>{f("validating"),m(null);const _=r.safeParse(o);if(_.success)return l({}),f("idle"),{ok:!0,values:_.data};const w={};for(const j of _.error.issues)w[j.path.join(".")]=j.message;return l(w),f("error"),m("Please fix the highlighted fields."),{ok:!1}},[r,o]),k=b.useCallback(async _=>{if(i.current)return{ok:!1};const w=y();if(!w.ok)return{ok:!1};i.current=!0,f("creating_session"),m(null),v(null);const j=t.items.map(A=>({resource:A.paymentResource??A.productId,quantity:A.qty,variantId:A.variantId})),P=as(t.items,{requireEmail:e.checkout.requireEmail??!0,defaultMode:e.checkout.mode,allowShipping:e.checkout.allowShipping??!1}),T=new Set;if(P.shippingAddress)for(const A of t.items){const R=A.metadata?.shippingCountries;if(R)for(const I of R.split(",")){const M=I.trim().toUpperCase();M&&T.add(M)}}const N={...T.size?{shippingCountries:Array.from(T).join(","),shipping_countries:Array.from(T).join(",")}:{}};try{const A=await e.adapter.createCheckoutSession({cart:j,customer:{email:w.values.email||void 0,name:w.values.name||void 0,phone:w.values.phone||void 0,notes:w.values.notes||void 0,shippingAddress:w.values.shippingAddress,billingAddress:w.values.billingAddress},options:{currency:e.currency,successUrl:e.checkout.successUrl,cancelUrl:e.checkout.cancelUrl,allowPromoCodes:e.checkout.allowPromoCodes,metadata:Object.keys(N).length?N:void 0,discountCode:(e.checkout.allowPromoCodes?w.values.discountCode||t.promoCode:void 0)||void 0,tipAmount:e.checkout.allowTipping&&w.values.tipAmount||void 0,shippingMethodId:e.checkout.allowShipping&&w.values.shippingMethodId||void 0,paymentMethodId:_?.paymentMethodId}});return A.kind==="redirect"?(v(A),f("redirecting"),typeof window<"u"&&window.location.assign(A.url),{ok:!0,session:A}):(v(A),f("success"),{ok:!0,session:A})}catch(A){return f("error"),m(A instanceof Error?A.message:"Checkout failed"),{ok:!1}}finally{i.current=!1}},[t.items,t.promoCode,e.adapter,e.checkout,e.currency,y]);return{values:o,setValues:a,setField:g,fieldErrors:c,status:d,error:u,session:h,reset:x,validate:y,createCheckoutSession:k}}function cd({children:e}){const t=id();return s.jsx(ad.Provider,{value:t,children:e})}function Ls(){const e=b.useContext(ad);if(!e)throw new Error("useCheckout must be used within CheckoutProvider");return e}function Xy(){return id()}function Sa(){const{config:e}=Pe(),[t,n]=p.useState([]),[r,o]=p.useState(!0),[a,i]=p.useState(null);return p.useEffect(()=>{let c=!1;return o(!0),i(null),e.adapter.listCategories().then(l=>{c||n(l)}).catch(l=>{c||i(l instanceof Error?l.message:"Failed to load categories")}).finally(()=>{c||o(!1)}),()=>{c=!0}},[e.adapter]),{categories:t,isLoading:r,error:a}}function Ds(e){const{config:t}=Pe(),[n,r]=p.useState(null),[o,a]=p.useState(!0),[i,c]=p.useState(null),l=p.useMemo(()=>JSON.stringify(e.filters??{}),[e.filters]);return p.useEffect(()=>{let d=!1;return a(!0),c(null),t.adapter.listProducts(e).then(f=>{d||r(f)}).catch(f=>{d||c(f instanceof Error?f.message:"Failed to load products")}).finally(()=>{d||a(!1)}),()=>{d=!0}},[t.adapter,e.category,e.search,e.sort,e.page,e.pageSize,l]),{data:n,isLoading:o,error:i}}function ld(e){const{config:t}=Pe(),[n,r]=p.useState(null),[o,a]=p.useState(!0),[i,c]=p.useState(null);return p.useEffect(()=>{let l=!1;return a(!0),c(null),t.adapter.getProductBySlug(e).then(d=>{l||r(d)}).catch(d=>{l||c(d instanceof Error?d.message:"Failed to load product")}).finally(()=>{l||a(!1)}),()=>{l=!0}},[t.adapter,e]),{product:n,isLoading:o,error:i}}function dd(){const{config:e}=Pe(),[t,n]=p.useState([]),[r,o]=p.useState(!0),[a,i]=p.useState(null);return p.useEffect(()=>{let c=!1;return o(!0),i(null),e.adapter.getOrderHistory().then(l=>{c||n(l)}).catch(l=>{c||i(l instanceof Error?l.message:"Failed to load orders")}).finally(()=>{c||o(!1)}),()=>{c=!0}},[e.adapter]),{orders:t,isLoading:r,error:a}}function ud(){const{config:e}=Pe(),[t,n]=p.useState([]),[r,o]=p.useState(null),[a,i]=p.useState(!0),[c,l]=p.useState(null);return p.useEffect(()=>{let d=!1;async function f(){i(!0),l(null);try{const[u,m]=await Promise.all([e.adapter.listSubscriptionTiers?.()??Promise.resolve([]),e.adapter.getSubscriptionStatus?.()??Promise.resolve(null)]);if(d)return;n(u),o(m)}catch(u){if(d)return;l(u instanceof Error?u.message:"Failed to load subscriptions")}finally{d||i(!1)}}return f(),()=>{d=!0}},[e.adapter]),{tiers:t,status:r,isLoading:a,error:c}}function fd({enabled:e,customer:t}){const{config:n}=Pe(),[r,o]=p.useState([]),[a,i]=p.useState(!1),[c,l]=p.useState(null),d=JSON.stringify(t.shippingAddress??{});return p.useEffect(()=>{let f=!1;if(!e||!n.adapter.getShippingMethods){o([]);return}return i(!0),l(null),n.adapter.getShippingMethods({currency:n.currency,customer:t}).then(u=>{f||o(u)}).catch(u=>{f||l(u instanceof Error?u.message:"Failed to load shipping methods")}).finally(()=>{f||i(!1)}),()=>{f=!0}},[n.adapter,n.currency,e,t.email,t.name,d]),{methods:r,isLoading:a,error:c}}function dr(e,...t){for(const n of t){const r=e[n];if(r)return r}}function Ca(e){const t=dr(e,"error","error_message","message");if(t)return{kind:"error",message:t};const n=dr(e,"canceled","cancelled","cancel","canceled_at");if(n&&n!=="0"&&n!=="false")return{kind:"cancel"};const r=dr(e,"orderId","order_id","demoOrderId"),o=dr(e,"session_id","checkout_session_id");if(r||o)return{kind:"success",orderId:r??o};const a=(dr(e,"status","checkout")??"").toLowerCase();return a==="success"?{kind:"success",orderId:r}:a==="cancel"||a==="canceled"?{kind:"cancel"}:a==="error"?{kind:"error"}:{kind:"idle"}}function eb(e){const t={};return e.forEach((n,r)=>{t[r]=n}),t}function Na(){const{config:e}=Pe(),[t,n]=p.useState({kind:"idle"});return p.useEffect(()=>{if(typeof window>"u")return;const r=new URLSearchParams(window.location.search),o=eb(r);(async()=>{try{const a=e.adapter.resolveCheckoutReturn?await e.adapter.resolveCheckoutReturn({query:o}):Ca(o);if(a.kind==="success"&&a.orderId&&e.adapter.getOrderById){const i=await e.adapter.getOrderById(a.orderId);if(i){n({kind:"success",orderId:a.orderId,order:i});return}}n(a)}catch(a){n({kind:"error",message:a instanceof Error?a.message:"Failed to resolve checkout"})}})()},[e.adapter]),t}function Ho(e){if(!e)return;const t=Number(e);return Number.isFinite(t)?t:void 0}function tb(e){const t=e.get("tags"),n=t?t.split(",").map(c=>c.trim()).filter(Boolean):void 0,r=Ho(e.get("min")),o=Ho(e.get("max")),a=e.get("inStock"),i=a==="1"?!0:a==="0"?!1:void 0;return{tags:n&&n.length?n:void 0,priceMin:r,priceMax:o,inStock:i}}function nb(e,t){t.tags?.length?e.set("tags",t.tags.join(",")):e.delete("tags"),typeof t.priceMin=="number"?e.set("min",String(t.priceMin)):e.delete("min"),typeof t.priceMax=="number"?e.set("max",String(t.priceMax)):e.delete("max"),typeof t.inStock=="boolean"?e.set("inStock",t.inStock?"1":"0"):e.delete("inStock")}function Ea({includeCategory:e}){if(typeof window>"u")return null;const t=new URLSearchParams(window.location.search),n=t.get("q")??"",r=t.get("sort")??"featured",o=Ho(t.get("page"))??1,a=tb(t),i=e?t.get("cat")??void 0:void 0;return{search:n,sort:r,page:Math.max(1,Math.floor(o)),category:i,filters:a}}function Aa(e,{includeCategory:t}){const n=e.filters.tags?.join(",")??"";p.useEffect(()=>{if(typeof window>"u")return;const r=window.setTimeout(()=>{const o=new URL(window.location.href),a=o.searchParams;e.search.trim()?a.set("q",e.search.trim()):a.delete("q"),e.sort&&e.sort!=="featured"?a.set("sort",e.sort):a.delete("sort"),e.page&&e.page!==1?a.set("page",String(e.page)):a.delete("page"),t&&(e.category?a.set("cat",e.category):a.delete("cat")),nb(a,e.filters);const i=`${o.pathname}?${a.toString()}${o.hash}`,c=`${window.location.pathname}${window.location.search}${window.location.hash}`;i!==c&&window.history.replaceState({},"",i)},250);return()=>window.clearTimeout(r)},[t,e.category,e.page,e.search,e.sort,n,e.filters.priceMin,e.filters.priceMax,e.filters.inStock])}function ac(e,t){return`${e}::${t??""}`}function rb(e,t){if(t&&e.variants?.length){const n=e.variants.find(r=>r.id===t);if(n)return{qty:n.inventoryQuantity,status:n.inventoryStatus}}return{qty:e.inventoryQuantity,status:e.inventoryStatus}}function sb(e,t){const n={productId:e.productId,variantId:e.variantId,isOutOfStock:!1,exceedsAvailable:!1,isLowStock:!1};if(!t)return{...n,isOutOfStock:!0,message:"This product is no longer available"};const{qty:r,status:o}=rb(t,e.variantId);return n.availableQty=r,n.status=o,o==="out_of_stock"||typeof r=="number"&&r<=0?{...n,isOutOfStock:!0,message:"Out of stock"}:typeof r=="number"&&e.qty>r?{...n,exceedsAvailable:!0,message:r===0?"Out of stock":`Only ${r} available (you have ${e.qty} in cart)`}:o==="low"||typeof r=="number"&&r>0&&r<=5?{...n,isLowStock:!0,message:typeof r=="number"?`Only ${r} left`:"Low stock"}:n}function Pa({items:e,refreshInterval:t=3e4,skip:n=!1}){const{config:r}=Pe(),[o,a]=p.useState(new Map),[i,c]=p.useState(!1),[l,d]=p.useState(null),f=p.useRef(e);f.current=e;const u=p.useMemo(()=>{const y=new Set;for(const k of e)y.add(k.productId);return y},[e]),m=p.useMemo(()=>Array.from(u).sort().join(","),[u]),h=p.useMemo(()=>Array.from(u),[u]),v=p.useCallback(async()=>{if(n||h.length===0){a(new Map);return}c(!0),d(null);try{let y=new Map;if(r.adapter.getProductsByIds)y=await r.adapter.getProductsByIds(h);else{const _=await Promise.all(h.map(async w=>{try{return await r.adapter.getProductBySlug(w)}catch{return null}}));y=new Map;for(const w of _)w&&(y.set(w.id,w),w.slug&&w.slug!==w.id&&y.set(w.slug,w))}const k=new Map;for(const _ of f.current){const w=ac(_.productId,_.variantId),j=y.get(_.productId)??null;k.set(w,sb(_,j))}a(k)}catch(y){d(y instanceof Error?y.message:"Failed to check inventory")}finally{c(!1)}},[r.adapter,m,n]);p.useEffect(()=>{v()},[v]),p.useEffect(()=>{if(n||t<=0||h.length===0)return;const y=setInterval(v,t);return()=>clearInterval(y)},[v,h.length,t,n]);const x=p.useCallback((y,k)=>o.get(ac(y,k)),[o]),g=p.useMemo(()=>{for(const y of o.values())if(y.isOutOfStock||y.exceedsAvailable)return!0;return!1},[o]);return{inventory:o,isLoading:i,error:l,refresh:v,getItemInventory:x,hasIssues:g}}function ob(e,t){if(t&&e.variants?.length){const n=e.variants.find(r=>r.id===t);if(n)return{qty:n.inventoryQuantity,status:n.inventoryStatus}}return{qty:e.inventoryQuantity,status:e.inventoryStatus}}function ab(e,t,n){if(!t)return e.titleSnapshot??"Unknown Product";const r=t.title??e.titleSnapshot??"Product";if(n&&t.variants?.length){const o=t.variants.find(a=>a.id===n);if(o?.title)return`${r} - ${o.title}`}return r}function ib(e,t){const n=ab(e,t,e.variantId);if(!t)return{productId:e.productId,variantId:e.variantId,title:n,requestedQty:e.qty,availableQty:0,type:"product_unavailable",message:"This product is no longer available"};const{qty:r,status:o}=ob(t,e.variantId);return o==="out_of_stock"||typeof r=="number"&&r<=0?{productId:e.productId,variantId:e.variantId,title:n,requestedQty:e.qty,availableQty:0,type:"out_of_stock",message:"This item is out of stock"}:typeof r=="number"&&e.qty>r?{productId:e.productId,variantId:e.variantId,title:n,requestedQty:e.qty,availableQty:r,type:"insufficient_stock",message:r===0?"This item is out of stock":`Only ${r} available`}:null}function pd({items:e}){const{config:t}=Pe(),[n,r]=p.useState(null),[o,a]=p.useState(!1),[i,c]=p.useState(null),l=p.useMemo(()=>{const u=new Set;for(const m of e)u.add(m.productId);return Array.from(u)},[e]),d=p.useCallback(async()=>{if(e.length===0){const u={ok:!0,issues:[],verifiedAt:new Date};return r(u),u}a(!0),c(null);try{let u=new Map;if(t.adapter.getProductsByIds)u=await t.adapter.getProductsByIds(l);else{const v=await Promise.all(l.map(async x=>{try{return await t.adapter.getProductBySlug(x)}catch{return null}}));u=new Map;for(const x of v)x&&(u.set(x.id,x),x.slug&&x.slug!==x.id&&u.set(x.slug,x))}const m=[];for(const v of e){const x=u.get(v.productId)??null,g=ib(v,x);g&&m.push(g)}const h={ok:m.length===0,issues:m,verifiedAt:new Date};return r(h),a(!1),h}catch(u){const m=u instanceof Error?u.message:"Failed to verify inventory";c(m),a(!1);const h={ok:!1,issues:[],verifiedAt:new Date};return r(h),h}},[t.adapter,e,l]),f=p.useCallback(()=>{r(null),c(null)},[]);return{result:n,isVerifying:o,error:i,verify:d,reset:f}}function cb({items:e,onExpiry:t,enabled:n=!0}){const[r,o]=p.useState([]),[a,i]=p.useState([]),c=p.useRef(new Set),l=p.useRef(t);l.current=t;const d=p.useMemo(()=>n?e.filter(f=>f.holdId&&f.holdExpiresAt):[],[e,n]);return p.useEffect(()=>{if(!n||d.length===0){o([]),i([]);return}const f=()=>{const m=Date.now(),h=120*1e3,v=[],x=[];for(const g of d){if(!g.holdExpiresAt)continue;const y=new Date(g.holdExpiresAt),k=y.getTime()-m,_=`${g.productId}::${g.variantId??""}`;k<=0?(v.push({productId:g.productId,variantId:g.variantId}),c.current.has(_)||(c.current.add(_),l.current?.({productId:g.productId,variantId:g.variantId,title:g.titleSnapshot,expiredAt:y}))):k<=h&&x.push({productId:g.productId,variantId:g.variantId,expiresAt:y,remainingMs:k})}o(v),i(x)};f();const u=setInterval(f,1e4);return()=>clearInterval(u)},[n,d]),p.useEffect(()=>{const f=new Set(d.map(u=>`${u.productId}::${u.variantId??""}`));for(const u of c.current)f.has(u)||c.current.delete(u)},[d]),{expiringItems:a,expiredItems:r}}const je={relatedProducts:{mode:"most_recent",maxItems:4,layout:{layout:"large",imageCrop:"center"}},catalog:{filters:{tags:!0,priceRange:!0,inStock:!0},sort:{featured:!0,priceAsc:!0,priceDesc:!0}},checkout:{promoCodes:!0},shopLayout:{layout:"large",imageCrop:"center"},categoryLayout:{layout:"large",imageCrop:"center"},sections:{showDescription:!0,showSpecs:!0,showShipping:!0,showRelatedProducts:!0},inventory:{preCheckoutVerification:!0,holdsEnabled:!1,holdDurationMinutes:15},shopPage:{title:"Shop",description:""}};function lb(e){return{relatedProducts:{mode:e.relatedProducts?.mode||je.relatedProducts.mode,maxItems:e.relatedProducts?.maxItems||je.relatedProducts.maxItems,layout:{layout:e.relatedProducts?.layout?.layout??je.relatedProducts.layout.layout,imageCrop:e.relatedProducts?.layout?.imageCrop??je.relatedProducts.layout.imageCrop}},catalog:{filters:{tags:e.catalog?.filters?.tags??je.catalog.filters.tags,priceRange:e.catalog?.filters?.priceRange??je.catalog.filters.priceRange,inStock:e.catalog?.filters?.inStock??je.catalog.filters.inStock},sort:{featured:e.catalog?.sort?.featured??je.catalog.sort.featured,priceAsc:e.catalog?.sort?.priceAsc??je.catalog.sort.priceAsc,priceDesc:e.catalog?.sort?.priceDesc??je.catalog.sort.priceDesc}},checkout:{promoCodes:e.checkout?.promoCodes??je.checkout.promoCodes},shopLayout:{layout:e.shopLayout?.layout??je.shopLayout.layout,imageCrop:e.shopLayout?.imageCrop??je.shopLayout.imageCrop},categoryLayout:{layout:e.categoryLayout?.layout??je.categoryLayout.layout,imageCrop:e.categoryLayout?.imageCrop??je.categoryLayout.imageCrop},sections:{showDescription:e.sections?.showDescription??je.sections.showDescription,showSpecs:e.sections?.showSpecs??je.sections.showSpecs,showShipping:e.sections?.showShipping??je.sections.showShipping,showRelatedProducts:e.sections?.showRelatedProducts??je.sections.showRelatedProducts},inventory:{preCheckoutVerification:e.inventory?.preCheckoutVerification??je.inventory.preCheckoutVerification,holdsEnabled:e.inventory?.holdsEnabled??je.inventory.holdsEnabled,holdDurationMinutes:e.inventory?.holdDurationMinutes??je.inventory.holdDurationMinutes},shopPage:{title:e.shopPage?.title??je.shopPage.title,description:e.shopPage?.description??je.shopPage.description}}}function tr(e={}){const n=xa()?.config?.adapter,[r,o]=b.useState(je),[a,i]=b.useState(!!n?.getStorefrontSettings);return b.useEffect(()=>{if(!n?.getStorefrontSettings){i(!1);return}let c=!1;async function l(){try{const d=await n.getStorefrontSettings();!c&&d&&o(lb(d))}catch{}finally{c||i(!1)}}return l(),()=>{c=!0}},[n]),{settings:r,isLoading:a}}const db={card:!0,crypto:!0,credits:!1};function md(){const t=xa()?.config?.adapter,[n,r]=b.useState(db),[o,a]=b.useState(!!t?.getPaymentMethodsConfig);return b.useEffect(()=>{if(!t?.getPaymentMethodsConfig){a(!1);return}let i=!1;async function c(){try{const l=await t.getPaymentMethodsConfig();!i&&l&&r(l)}catch{}finally{i||a(!1)}}return c(),()=>{i=!0}},[t]),{config:n,isLoading:o}}const ub=50,ur=new Map;function fb(e){return e.productId?`id:${e.productId}`:e.name?`name:${e.name}`:""}function hd(e={}){const{productId:t,product:n,enabled:r=!0}=e,a=xa()?.config?.adapter,[i,c]=b.useState(null),[l,d]=b.useState(null),[f,u]=b.useState(!1),[m,h]=b.useState(null),v=b.useRef(0),x=b.useCallback(async()=>{const g=t?{productId:t}:n?{name:n.name,description:n.description,tags:n.tags,categoryIds:n.categoryIds}:{};if(!g.productId&&!g.name)return;if(!a?.getAIRelatedProducts){h("AI recommendations not available");return}const y=fb(g),k=ur.get(y);if(k){c(k.relatedProductIds),d(k.reasoning),h(null);return}const _=++v.current;u(!0),h(null);try{const w=await a.getAIRelatedProducts(g);if(_===v.current&&(c(w.relatedProductIds),d(w.reasoning),h(null),y)){if(ur.size>=ub){const j=ur.keys().next().value;j!==void 0&&ur.delete(j)}ur.set(y,w)}}catch(w){if(_===v.current){const j=w instanceof Error?w.message:"Failed to get AI recommendations";h(j),c(null),d(null)}}finally{_===v.current&&u(!1)}},[a,t,n]);return b.useEffect(()=>{r&&(!t&&!n?.name||x())},[r,t,n?.name,x]),{relatedProductIds:i,reasoning:l,isLoading:f,error:m,refetch:x}}function Ae(e,t){if(!e)throw new Error(t)}function St(e){return typeof e=="string"&&e.trim().length>0}async function pb(e,t={}){const n=t.pageSize??10,r=await e.listCategories();Ae(Array.isArray(r),"listCategories() must return an array");for(const i of r)Ae(St(i.id),"Category.id is required"),Ae(St(i.slug),"Category.slug is required"),Ae(St(i.name),"Category.name is required");const o=await e.listProducts({page:1,pageSize:n});if(Ae(o&&Array.isArray(o.items),"listProducts() must return { items: Product[] }"),Ae(typeof o.page=="number","listProducts().page must be a number"),Ae(typeof o.pageSize=="number","listProducts().pageSize must be a number"),o.items.length>0){const i=o.items[0];Ae(St(i.id),"Product.id is required"),Ae(St(i.slug),"Product.slug is required"),Ae(St(i.title),"Product.title is required"),Ae(typeof i.description=="string","Product.description must be a string"),Ae(Array.isArray(i.images),"Product.images must be an array"),Ae(typeof i.price=="number","Product.price must be a number"),Ae(St(i.currency),"Product.currency is required"),Ae(Array.isArray(i.tags),"Product.tags must be an array"),Ae(Array.isArray(i.categoryIds),"Product.categoryIds must be an array");const c=await e.getProductBySlug(i.slug);Ae(c===null||St(c.id),"getProductBySlug() must return Product or null")}const a=await e.getOrderHistory();Ae(Array.isArray(a),"getOrderHistory() must return an array");for(const i of a)Ae(St(i.id),"Order.id is required"),Ae(St(i.createdAt),"Order.createdAt is required"),Ae(typeof i.total=="number","Order.total must be a number"),Ae(St(i.currency),"Order.currency is required"),Ae(Array.isArray(i.items),"Order.items must be an array")}function ic(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function nr(...e){return t=>{let n=!1;const r=e.map(o=>{const a=ic(o,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let o=0;o<r.length;o++){const a=r[o];typeof a=="function"?a():ic(e[o],null)}}}}function Ne(...e){return p.useCallback(nr(...e),e)}var mb=Symbol.for("react.lazy"),vs=p[" use ".trim().toString()];function hb(e){return typeof e=="object"&&e!==null&&"then"in e}function gd(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===mb&&"_payload"in e&&hb(e._payload)}function xd(e){const t=xb(e),n=p.forwardRef((r,o)=>{let{children:a,...i}=r;gd(a)&&typeof vs=="function"&&(a=vs(a._payload));const c=p.Children.toArray(a),l=c.find(yb);if(l){const d=l.props.children,f=c.map(u=>u===l?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:u);return s.jsx(t,{...i,ref:o,children:p.isValidElement(d)?p.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:o,children:a})});return n.displayName=`${e}.Slot`,n}var gb=xd("Slot");function xb(e){const t=p.forwardRef((n,r)=>{let{children:o,...a}=n;if(gd(o)&&typeof vs=="function"&&(o=vs(o._payload)),p.isValidElement(o)){const i=wb(o),c=bb(a,o.props);return o.type!==p.Fragment&&(c.ref=r?nr(r,i):i),p.cloneElement(o,c)}return p.Children.count(o)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var vb=Symbol("radix.slottable");function yb(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===vb}function bb(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...c)=>{const l=a(...c);return o(...c),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function wb(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function vd(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=vd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function yd(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=vd(e))&&(r&&(r+=" "),r+=t);return r}const cc=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,lc=yd,Ia=(e,t)=>n=>{var r;if(t?.variants==null)return lc(e,n?.class,n?.className);const{variants:o,defaultVariants:a}=t,i=Object.keys(o).map(d=>{const f=n?.[d],u=a?.[d];if(f===null)return null;const m=cc(f)||cc(u);return o[d][m]}),c=n&&Object.entries(n).reduce((d,f)=>{let[u,m]=f;return m===void 0||(d[u]=m),d},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((d,f)=>{let{class:u,className:m,...h}=f;return Object.entries(h).every(v=>{let[x,g]=v;return Array.isArray(g)?g.includes({...a,...c}[x]):{...a,...c}[x]===g})?[...d,u,m]:d},[]);return lc(e,i,l,n?.class,n?.className)},_b=(e,t)=>{const n=new Array(e.length+t.length);for(let r=0;r<e.length;r++)n[r]=e[r];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},kb=(e,t)=>({classGroupId:e,validator:t}),bd=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),ys="-",dc=[],jb="arbitrary..",Sb=e=>{const t=Nb(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Cb(i);const c=i.split(ys),l=c[0]===""&&c.length>1?1:0;return wd(c,l,t)},getConflictingClassGroupIds:(i,c)=>{if(c){const l=r[i],d=n[i];return l?d?_b(d,l):l:d||dc}return n[i]||dc}}},wd=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const o=e[t],a=n.nextPart.get(o);if(a){const d=wd(e,t+1,a);if(d)return d}const i=n.validators;if(i===null)return;const c=t===0?e.join(ys):e.slice(t).join(ys),l=i.length;for(let d=0;d<l;d++){const f=i[d];if(f.validator(c))return f.classGroupId}},Cb=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?jb+r:void 0})(),Nb=e=>{const{theme:t,classGroups:n}=e;return Eb(n,t)},Eb=(e,t)=>{const n=bd();for(const r in e){const o=e[r];Ta(o,n,r,t)}return n},Ta=(e,t,n,r)=>{const o=e.length;for(let a=0;a<o;a++){const i=e[a];Ab(i,t,n,r)}},Ab=(e,t,n,r)=>{if(typeof e=="string"){Pb(e,t,n);return}if(typeof e=="function"){Ib(e,t,n,r);return}Tb(e,t,n,r)},Pb=(e,t,n)=>{const r=e===""?t:_d(t,e);r.classGroupId=n},Ib=(e,t,n,r)=>{if(Rb(e)){Ta(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(kb(n,e))},Tb=(e,t,n,r)=>{const o=Object.entries(e),a=o.length;for(let i=0;i<a;i++){const[c,l]=o[i];Ta(l,_d(t,c),n,r)}},_d=(e,t)=>{let n=e;const r=t.split(ys),o=r.length;for(let a=0;a<o;a++){const i=r[a];let c=n.nextPart.get(i);c||(c=bd(),n.nextPart.set(i,c)),n=c}return n},Rb=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Ob=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const o=(a,i)=>{n[a]=i,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(a){let i=n[a];if(i!==void 0)return i;if((i=r[a])!==void 0)return o(a,i),i},set(a,i){a in n?n[a]=i:o(a,i)}}},Zo="!",uc=":",Mb=[],fc=(e,t,n,r,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:o}),Lb=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=o=>{const a=[];let i=0,c=0,l=0,d;const f=o.length;for(let x=0;x<f;x++){const g=o[x];if(i===0&&c===0){if(g===uc){a.push(o.slice(l,x)),l=x+1;continue}if(g==="/"){d=x;continue}}g==="["?i++:g==="]"?i--:g==="("?c++:g===")"&&c--}const u=a.length===0?o:o.slice(l);let m=u,h=!1;u.endsWith(Zo)?(m=u.slice(0,-1),h=!0):u.startsWith(Zo)&&(m=u.slice(1),h=!0);const v=d&&d>l?d-l:void 0;return fc(a,h,m,v)};if(t){const o=t+uc,a=r;r=i=>i.startsWith(o)?a(i.slice(o.length)):fc(Mb,!1,i,void 0,!0)}if(n){const o=r;r=a=>n({className:a,parseClassName:o})}return r},Db=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let o=[];for(let a=0;a<n.length;a++){const i=n[a],c=i[0]==="[",l=t.has(i);c||l?(o.length>0&&(o.sort(),r.push(...o),o=[]),r.push(i)):o.push(i)}return o.length>0&&(o.sort(),r.push(...o)),r}},$b=e=>({cache:Ob(e.cacheSize),parseClassName:Lb(e),sortModifiers:Db(e),...Sb(e)}),zb=/\s+/,Fb=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o,sortModifiers:a}=t,i=[],c=e.trim().split(zb);let l="";for(let d=c.length-1;d>=0;d-=1){const f=c[d],{isExternal:u,modifiers:m,hasImportantModifier:h,baseClassName:v,maybePostfixModifierPosition:x}=n(f);if(u){l=f+(l.length>0?" "+l:l);continue}let g=!!x,y=r(g?v.substring(0,x):v);if(!y){if(!g){l=f+(l.length>0?" "+l:l);continue}if(y=r(v),!y){l=f+(l.length>0?" "+l:l);continue}g=!1}const k=m.length===0?"":m.length===1?m[0]:a(m).join(":"),_=h?k+Zo:k,w=_+y;if(i.indexOf(w)>-1)continue;i.push(w);const j=o(y,g);for(let P=0;P<j.length;++P){const T=j[P];i.push(_+T)}l=f+(l.length>0?" "+l:l)}return l},Bb=(...e)=>{let t=0,n,r,o="";for(;t<e.length;)(n=e[t++])&&(r=kd(n))&&(o&&(o+=" "),o+=r);return o},kd=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=kd(e[r]))&&(n&&(n+=" "),n+=t);return n},Ub=(e,...t)=>{let n,r,o,a;const i=l=>{const d=t.reduce((f,u)=>u(f),e());return n=$b(d),r=n.cache.get,o=n.cache.set,a=c,c(l)},c=l=>{const d=r(l);if(d)return d;const f=Fb(l,n);return o(l,f),f};return a=i,(...l)=>a(Bb(...l))},Vb=[],Ue=e=>{const t=n=>n[e]||Vb;return t.isThemeGetter=!0,t},jd=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Sd=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Wb=/^\d+\/\d+$/,qb=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Hb=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Zb=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Gb=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Yb=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,$n=e=>Wb.test(e),he=e=>!!e&&!Number.isNaN(Number(e)),rn=e=>!!e&&Number.isInteger(Number(e)),wo=e=>e.endsWith("%")&&he(e.slice(0,-1)),Jt=e=>qb.test(e),Qb=()=>!0,Kb=e=>Hb.test(e)&&!Zb.test(e),Cd=()=>!1,Jb=e=>Gb.test(e),Xb=e=>Yb.test(e),e0=e=>!ee(e)&&!te(e),t0=e=>rr(e,Ad,Cd),ee=e=>jd.test(e),yn=e=>rr(e,Pd,Kb),_o=e=>rr(e,a0,he),pc=e=>rr(e,Nd,Cd),n0=e=>rr(e,Ed,Xb),Gr=e=>rr(e,Id,Jb),te=e=>Sd.test(e),fr=e=>sr(e,Pd),r0=e=>sr(e,i0),mc=e=>sr(e,Nd),s0=e=>sr(e,Ad),o0=e=>sr(e,Ed),Yr=e=>sr(e,Id,!0),rr=(e,t,n)=>{const r=jd.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},sr=(e,t,n=!1)=>{const r=Sd.exec(e);return r?r[1]?t(r[1]):n:!1},Nd=e=>e==="position"||e==="percentage",Ed=e=>e==="image"||e==="url",Ad=e=>e==="length"||e==="size"||e==="bg-size",Pd=e=>e==="length",a0=e=>e==="number",i0=e=>e==="family-name",Id=e=>e==="shadow",c0=()=>{const e=Ue("color"),t=Ue("font"),n=Ue("text"),r=Ue("font-weight"),o=Ue("tracking"),a=Ue("leading"),i=Ue("breakpoint"),c=Ue("container"),l=Ue("spacing"),d=Ue("radius"),f=Ue("shadow"),u=Ue("inset-shadow"),m=Ue("text-shadow"),h=Ue("drop-shadow"),v=Ue("blur"),x=Ue("perspective"),g=Ue("aspect"),y=Ue("ease"),k=Ue("animate"),_=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],j=()=>[...w(),te,ee],P=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],N=()=>[te,ee,l],A=()=>[$n,"full","auto",...N()],R=()=>[rn,"none","subgrid",te,ee],I=()=>["auto",{span:["full",rn,te,ee]},rn,te,ee],M=()=>[rn,"auto",te,ee],z=()=>["auto","min","max","fr",te,ee],D=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],V=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...N()],S=()=>[$n,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...N()],C=()=>[e,te,ee],W=()=>[...w(),mc,pc,{position:[te,ee]}],Z=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Q=()=>["auto","cover","contain",s0,t0,{size:[te,ee]}],de=()=>[wo,fr,yn],q=()=>["","none","full",d,te,ee],K=()=>["",he,fr,yn],Y=()=>["solid","dashed","dotted","double"],me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],$=()=>[he,wo,mc,pc],G=()=>["","none",v,te,ee],pe=()=>["none",he,te,ee],U=()=>["none",he,te,ee],se=()=>[he,te,ee],le=()=>[$n,"full",...N()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Jt],breakpoint:[Jt],color:[Qb],container:[Jt],"drop-shadow":[Jt],ease:["in","out","in-out"],font:[e0],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Jt],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Jt],shadow:[Jt],spacing:["px",he],text:[Jt],"text-shadow":[Jt],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",$n,ee,te,g]}],container:["container"],columns:[{columns:[he,ee,te,c]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:j()}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{start:A()}],end:[{end:A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[rn,"auto",te,ee]}],basis:[{basis:[$n,"full","auto",c,...N()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[he,$n,"auto","initial","none",ee]}],grow:[{grow:["",he,te,ee]}],shrink:[{shrink:["",he,te,ee]}],order:[{order:[rn,"first","last","none",te,ee]}],"grid-cols":[{"grid-cols":R()}],"col-start-end":[{col:I()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":R()}],"row-start-end":[{row:I()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":z()}],"auto-rows":[{"auto-rows":z()}],gap:[{gap:N()}],"gap-x":[{"gap-x":N()}],"gap-y":[{"gap-y":N()}],"justify-content":[{justify:[...D(),"normal"]}],"justify-items":[{"justify-items":[...V(),"normal"]}],"justify-self":[{"justify-self":["auto",...V()]}],"align-content":[{content:["normal",...D()]}],"align-items":[{items:[...V(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...V(),{baseline:["","last"]}]}],"place-content":[{"place-content":D()}],"place-items":[{"place-items":[...V(),"baseline"]}],"place-self":[{"place-self":["auto",...V()]}],p:[{p:N()}],px:[{px:N()}],py:[{py:N()}],ps:[{ps:N()}],pe:[{pe:N()}],pt:[{pt:N()}],pr:[{pr:N()}],pb:[{pb:N()}],pl:[{pl:N()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":N()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":N()}],"space-y-reverse":["space-y-reverse"],size:[{size:S()}],w:[{w:[c,"screen",...S()]}],"min-w":[{"min-w":[c,"screen","none",...S()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[i]},...S()]}],h:[{h:["screen","lh",...S()]}],"min-h":[{"min-h":["screen","lh","none",...S()]}],"max-h":[{"max-h":["screen","lh",...S()]}],"font-size":[{text:["base",n,fr,yn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,te,_o]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",wo,ee]}],"font-family":[{font:[r0,ee,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,te,ee]}],"line-clamp":[{"line-clamp":[he,"none",te,_o]}],leading:[{leading:[a,...N()]}],"list-image":[{"list-image":["none",te,ee]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",te,ee]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:C()}],"text-color":[{text:C()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Y(),"wavy"]}],"text-decoration-thickness":[{decoration:[he,"from-font","auto",te,yn]}],"text-decoration-color":[{decoration:C()}],"underline-offset":[{"underline-offset":[he,"auto",te,ee]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:N()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",te,ee]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",te,ee]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:W()}],"bg-repeat":[{bg:Z()}],"bg-size":[{bg:Q()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},rn,te,ee],radial:["",te,ee],conic:[rn,te,ee]},o0,n0]}],"bg-color":[{bg:C()}],"gradient-from-pos":[{from:de()}],"gradient-via-pos":[{via:de()}],"gradient-to-pos":[{to:de()}],"gradient-from":[{from:C()}],"gradient-via":[{via:C()}],"gradient-to":[{to:C()}],rounded:[{rounded:q()}],"rounded-s":[{"rounded-s":q()}],"rounded-e":[{"rounded-e":q()}],"rounded-t":[{"rounded-t":q()}],"rounded-r":[{"rounded-r":q()}],"rounded-b":[{"rounded-b":q()}],"rounded-l":[{"rounded-l":q()}],"rounded-ss":[{"rounded-ss":q()}],"rounded-se":[{"rounded-se":q()}],"rounded-ee":[{"rounded-ee":q()}],"rounded-es":[{"rounded-es":q()}],"rounded-tl":[{"rounded-tl":q()}],"rounded-tr":[{"rounded-tr":q()}],"rounded-br":[{"rounded-br":q()}],"rounded-bl":[{"rounded-bl":q()}],"border-w":[{border:K()}],"border-w-x":[{"border-x":K()}],"border-w-y":[{"border-y":K()}],"border-w-s":[{"border-s":K()}],"border-w-e":[{"border-e":K()}],"border-w-t":[{"border-t":K()}],"border-w-r":[{"border-r":K()}],"border-w-b":[{"border-b":K()}],"border-w-l":[{"border-l":K()}],"divide-x":[{"divide-x":K()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":K()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Y(),"hidden","none"]}],"divide-style":[{divide:[...Y(),"hidden","none"]}],"border-color":[{border:C()}],"border-color-x":[{"border-x":C()}],"border-color-y":[{"border-y":C()}],"border-color-s":[{"border-s":C()}],"border-color-e":[{"border-e":C()}],"border-color-t":[{"border-t":C()}],"border-color-r":[{"border-r":C()}],"border-color-b":[{"border-b":C()}],"border-color-l":[{"border-l":C()}],"divide-color":[{divide:C()}],"outline-style":[{outline:[...Y(),"none","hidden"]}],"outline-offset":[{"outline-offset":[he,te,ee]}],"outline-w":[{outline:["",he,fr,yn]}],"outline-color":[{outline:C()}],shadow:[{shadow:["","none",f,Yr,Gr]}],"shadow-color":[{shadow:C()}],"inset-shadow":[{"inset-shadow":["none",u,Yr,Gr]}],"inset-shadow-color":[{"inset-shadow":C()}],"ring-w":[{ring:K()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:C()}],"ring-offset-w":[{"ring-offset":[he,yn]}],"ring-offset-color":[{"ring-offset":C()}],"inset-ring-w":[{"inset-ring":K()}],"inset-ring-color":[{"inset-ring":C()}],"text-shadow":[{"text-shadow":["none",m,Yr,Gr]}],"text-shadow-color":[{"text-shadow":C()}],opacity:[{opacity:[he,te,ee]}],"mix-blend":[{"mix-blend":[...me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[he]}],"mask-image-linear-from-pos":[{"mask-linear-from":$()}],"mask-image-linear-to-pos":[{"mask-linear-to":$()}],"mask-image-linear-from-color":[{"mask-linear-from":C()}],"mask-image-linear-to-color":[{"mask-linear-to":C()}],"mask-image-t-from-pos":[{"mask-t-from":$()}],"mask-image-t-to-pos":[{"mask-t-to":$()}],"mask-image-t-from-color":[{"mask-t-from":C()}],"mask-image-t-to-color":[{"mask-t-to":C()}],"mask-image-r-from-pos":[{"mask-r-from":$()}],"mask-image-r-to-pos":[{"mask-r-to":$()}],"mask-image-r-from-color":[{"mask-r-from":C()}],"mask-image-r-to-color":[{"mask-r-to":C()}],"mask-image-b-from-pos":[{"mask-b-from":$()}],"mask-image-b-to-pos":[{"mask-b-to":$()}],"mask-image-b-from-color":[{"mask-b-from":C()}],"mask-image-b-to-color":[{"mask-b-to":C()}],"mask-image-l-from-pos":[{"mask-l-from":$()}],"mask-image-l-to-pos":[{"mask-l-to":$()}],"mask-image-l-from-color":[{"mask-l-from":C()}],"mask-image-l-to-color":[{"mask-l-to":C()}],"mask-image-x-from-pos":[{"mask-x-from":$()}],"mask-image-x-to-pos":[{"mask-x-to":$()}],"mask-image-x-from-color":[{"mask-x-from":C()}],"mask-image-x-to-color":[{"mask-x-to":C()}],"mask-image-y-from-pos":[{"mask-y-from":$()}],"mask-image-y-to-pos":[{"mask-y-to":$()}],"mask-image-y-from-color":[{"mask-y-from":C()}],"mask-image-y-to-color":[{"mask-y-to":C()}],"mask-image-radial":[{"mask-radial":[te,ee]}],"mask-image-radial-from-pos":[{"mask-radial-from":$()}],"mask-image-radial-to-pos":[{"mask-radial-to":$()}],"mask-image-radial-from-color":[{"mask-radial-from":C()}],"mask-image-radial-to-color":[{"mask-radial-to":C()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[he]}],"mask-image-conic-from-pos":[{"mask-conic-from":$()}],"mask-image-conic-to-pos":[{"mask-conic-to":$()}],"mask-image-conic-from-color":[{"mask-conic-from":C()}],"mask-image-conic-to-color":[{"mask-conic-to":C()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:W()}],"mask-repeat":[{mask:Z()}],"mask-size":[{mask:Q()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",te,ee]}],filter:[{filter:["","none",te,ee]}],blur:[{blur:G()}],brightness:[{brightness:[he,te,ee]}],contrast:[{contrast:[he,te,ee]}],"drop-shadow":[{"drop-shadow":["","none",h,Yr,Gr]}],"drop-shadow-color":[{"drop-shadow":C()}],grayscale:[{grayscale:["",he,te,ee]}],"hue-rotate":[{"hue-rotate":[he,te,ee]}],invert:[{invert:["",he,te,ee]}],saturate:[{saturate:[he,te,ee]}],sepia:[{sepia:["",he,te,ee]}],"backdrop-filter":[{"backdrop-filter":["","none",te,ee]}],"backdrop-blur":[{"backdrop-blur":G()}],"backdrop-brightness":[{"backdrop-brightness":[he,te,ee]}],"backdrop-contrast":[{"backdrop-contrast":[he,te,ee]}],"backdrop-grayscale":[{"backdrop-grayscale":["",he,te,ee]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[he,te,ee]}],"backdrop-invert":[{"backdrop-invert":["",he,te,ee]}],"backdrop-opacity":[{"backdrop-opacity":[he,te,ee]}],"backdrop-saturate":[{"backdrop-saturate":[he,te,ee]}],"backdrop-sepia":[{"backdrop-sepia":["",he,te,ee]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":N()}],"border-spacing-x":[{"border-spacing-x":N()}],"border-spacing-y":[{"border-spacing-y":N()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",te,ee]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[he,"initial",te,ee]}],ease:[{ease:["linear","initial",y,te,ee]}],delay:[{delay:[he,te,ee]}],animate:[{animate:["none",k,te,ee]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[x,te,ee]}],"perspective-origin":[{"perspective-origin":j()}],rotate:[{rotate:pe()}],"rotate-x":[{"rotate-x":pe()}],"rotate-y":[{"rotate-y":pe()}],"rotate-z":[{"rotate-z":pe()}],scale:[{scale:U()}],"scale-x":[{"scale-x":U()}],"scale-y":[{"scale-y":U()}],"scale-z":[{"scale-z":U()}],"scale-3d":["scale-3d"],skew:[{skew:se()}],"skew-x":[{"skew-x":se()}],"skew-y":[{"skew-y":se()}],transform:[{transform:[te,ee,"","none","gpu","cpu"]}],"transform-origin":[{origin:j()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],accent:[{accent:C()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:C()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",te,ee]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":N()}],"scroll-mx":[{"scroll-mx":N()}],"scroll-my":[{"scroll-my":N()}],"scroll-ms":[{"scroll-ms":N()}],"scroll-me":[{"scroll-me":N()}],"scroll-mt":[{"scroll-mt":N()}],"scroll-mr":[{"scroll-mr":N()}],"scroll-mb":[{"scroll-mb":N()}],"scroll-ml":[{"scroll-ml":N()}],"scroll-p":[{"scroll-p":N()}],"scroll-px":[{"scroll-px":N()}],"scroll-py":[{"scroll-py":N()}],"scroll-ps":[{"scroll-ps":N()}],"scroll-pe":[{"scroll-pe":N()}],"scroll-pt":[{"scroll-pt":N()}],"scroll-pr":[{"scroll-pr":N()}],"scroll-pb":[{"scroll-pb":N()}],"scroll-pl":[{"scroll-pl":N()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",te,ee]}],fill:[{fill:["none",...C()]}],"stroke-w":[{stroke:[he,fr,yn,_o]}],stroke:[{stroke:["none",...C()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},l0=Ub(c0);function F(...e){return l0(yd(e))}const d0=Ia("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900/20 disabled:pointer-events-none disabled:opacity-50 dark:focus-visible:ring-neutral-50/20",{variants:{variant:{default:"bg-neutral-900 text-neutral-50 hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",secondary:"bg-neutral-100 text-neutral-900 hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",outline:"border border-neutral-200 bg-transparent text-neutral-900 hover:bg-neutral-100 dark:border-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800",ghost:"bg-transparent text-neutral-900 hover:bg-neutral-100 dark:text-neutral-50 dark:hover:bg-neutral-800",destructive:"bg-red-600 text-neutral-50 hover:bg-red-600/90 dark:bg-red-500 dark:hover:bg-red-500/90",link:"bg-transparent text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-6",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),re=p.forwardRef(({className:e,variant:t,size:n,asChild:r,...o},a)=>{const i=r?gb:"button";return s.jsx(i,{className:F(d0({variant:t,size:n}),e),ref:a,...o})});re.displayName="Button";const u0=Ia("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors",{variants:{variant:{default:"border-transparent bg-neutral-900 text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900",secondary:"border-transparent bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50",outline:"border-neutral-200 text-neutral-900 dark:border-neutral-800 dark:text-neutral-50"}},defaultVariants:{variant:"secondary"}});function _n({className:e,variant:t,...n}){return s.jsx("div",{className:F(u0({variant:t}),e),...n})}const Pt=p.forwardRef(({className:e,...t},n)=>s.jsx("div",{ref:n,className:F("rounded-xl border border-neutral-200 bg-white text-neutral-950 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",e),...t}));Pt.displayName="Card";const Cr=p.forwardRef(({className:e,...t},n)=>s.jsx("div",{ref:n,className:F("flex flex-col space-y-1.5 p-6",e),...t}));Cr.displayName="CardHeader";const Nr=p.forwardRef(({className:e,...t},n)=>s.jsx("h3",{ref:n,className:F("text-lg font-semibold leading-none tracking-tight",e),...t}));Nr.displayName="CardTitle";const Td=p.forwardRef(({className:e,...t},n)=>s.jsx("p",{ref:n,className:F("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));Td.displayName="CardDescription";const qt=p.forwardRef(({className:e,...t},n)=>s.jsx("div",{ref:n,className:F("p-6 pt-0",e),...t}));qt.displayName="CardContent";const Rd=p.forwardRef(({className:e,...t},n)=>s.jsx("div",{ref:n,className:F("flex items-center p-6 pt-0",e),...t}));Rd.displayName="CardFooter";const Be=p.forwardRef(({className:e,...t},n)=>s.jsx("input",{ref:n,className:F("flex h-10 w-full rounded-md border border-neutral-200 bg-white px-3 py-2 text-sm text-neutral-950 shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-neutral-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900/20 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50 dark:placeholder:text-neutral-400 dark:focus-visible:ring-neutral-50/20",e),...t}));Be.displayName="Input";const st=p.forwardRef(({className:e,...t},n)=>s.jsx("label",{ref:n,className:F("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",e),...t}));st.displayName="Label";var f0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],p0=f0.reduce((e,t)=>{const n=xd(`Primitive.${t}`),r=p.forwardRef((o,a)=>{const{asChild:i,...c}=o,l=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(l,{...c,ref:a})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),m0="Separator",hc="horizontal",h0=["horizontal","vertical"],Od=p.forwardRef((e,t)=>{const{decorative:n,orientation:r=hc,...o}=e,a=g0(r)?r:hc,c=n?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return s.jsx(p0.div,{"data-orientation":a,...c,...o,ref:t})});Od.displayName=m0;function g0(e){return h0.includes(e)}var Md=Od;const yt=p.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},o)=>s.jsx(Md,{ref:o,decorative:n,orientation:t,className:F("shrink-0 bg-neutral-200 dark:bg-neutral-800",t==="horizontal"?"h-px w-full":"h-full w-px",e),...r}));yt.displayName=Md.displayName;function Oe({className:e,...t}){return s.jsx("div",{className:F("animate-pulse rounded-md bg-neutral-100 dark:bg-neutral-800",e),...t})}function gc(e,[t,n]){return Math.min(n,Math.max(t,e))}function ye(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),n===!1||!o.defaultPrevented)return t?.(o)}}function x0(e,t){const n=p.createContext(t),r=a=>{const{children:i,...c}=a,l=p.useMemo(()=>c,Object.values(c));return s.jsx(n.Provider,{value:l,children:i})};r.displayName=e+"Provider";function o(a){const i=p.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[r,o]}function pn(e,t=[]){let n=[];function r(a,i){const c=p.createContext(i),l=n.length;n=[...n,i];const d=u=>{const{scope:m,children:h,...v}=u,x=m?.[e]?.[l]||c,g=p.useMemo(()=>v,Object.values(v));return s.jsx(x.Provider,{value:g,children:h})};d.displayName=a+"Provider";function f(u,m){const h=m?.[e]?.[l]||c,v=p.useContext(h);if(v)return v;if(i!==void 0)return i;throw new Error(`\`${u}\` must be used within \`${a}\``)}return[d,f]}const o=()=>{const a=n.map(i=>p.createContext(i));return function(c){const l=c?.[e]||a;return p.useMemo(()=>({[`__scope${e}`]:{...c,[e]:l}}),[c,l])}};return o.scopeName=e,[r,v0(o,...t)]}function v0(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(a){const i=r.reduce((c,{useScope:l,scopeName:d})=>{const u=l(a)[`__scope${d}`];return{...c,...u}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function xc(e){const t=y0(e),n=p.forwardRef((r,o)=>{const{children:a,...i}=r,c=p.Children.toArray(a),l=c.find(w0);if(l){const d=l.props.children,f=c.map(u=>u===l?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:u);return s.jsx(t,{...i,ref:o,children:p.isValidElement(d)?p.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:o,children:a})});return n.displayName=`${e}.Slot`,n}function y0(e){const t=p.forwardRef((n,r)=>{const{children:o,...a}=n;if(p.isValidElement(o)){const i=k0(o),c=_0(a,o.props);return o.type!==p.Fragment&&(c.ref=r?nr(r,i):i),p.cloneElement(o,c)}return p.Children.count(o)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var b0=Symbol("radix.slottable");function w0(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===b0}function _0(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...c)=>{const l=a(...c);return o(...c),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function k0(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ra(e){const t=e+"CollectionProvider",[n,r]=pn(t),[o,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=x=>{const{scope:g,children:y}=x,k=b.useRef(null),_=b.useRef(new Map).current;return s.jsx(o,{scope:g,itemMap:_,collectionRef:k,children:y})};i.displayName=t;const c=e+"CollectionSlot",l=xc(c),d=b.forwardRef((x,g)=>{const{scope:y,children:k}=x,_=a(c,y),w=Ne(g,_.collectionRef);return s.jsx(l,{ref:w,children:k})});d.displayName=c;const f=e+"CollectionItemSlot",u="data-radix-collection-item",m=xc(f),h=b.forwardRef((x,g)=>{const{scope:y,children:k,..._}=x,w=b.useRef(null),j=Ne(g,w),P=a(f,y);return b.useEffect(()=>(P.itemMap.set(w,{ref:w,..._}),()=>void P.itemMap.delete(w))),s.jsx(m,{[u]:"",ref:j,children:k})});h.displayName=f;function v(x){const g=a(e+"CollectionConsumer",x);return b.useCallback(()=>{const k=g.collectionRef.current;if(!k)return[];const _=Array.from(k.querySelectorAll(`[${u}]`));return Array.from(g.itemMap.values()).sort((P,T)=>_.indexOf(P.ref.current)-_.indexOf(T.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:i,Slot:d,ItemSlot:h},v,r]}var j0=p.createContext(void 0);function $s(e){const t=p.useContext(j0);return e||t||"ltr"}function S0(e){const t=C0(e),n=p.forwardRef((r,o)=>{const{children:a,...i}=r,c=p.Children.toArray(a),l=c.find(E0);if(l){const d=l.props.children,f=c.map(u=>u===l?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:u);return s.jsx(t,{...i,ref:o,children:p.isValidElement(d)?p.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:o,children:a})});return n.displayName=`${e}.Slot`,n}function C0(e){const t=p.forwardRef((n,r)=>{const{children:o,...a}=n;if(p.isValidElement(o)){const i=P0(o),c=A0(a,o.props);return o.type!==p.Fragment&&(c.ref=r?nr(r,i):i),p.cloneElement(o,c)}return p.Children.count(o)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var N0=Symbol("radix.slottable");function E0(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===N0}function A0(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...c)=>{const l=a(...c);return o(...c),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function P0(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var I0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xe=I0.reduce((e,t)=>{const n=S0(`Primitive.${t}`),r=p.forwardRef((o,a)=>{const{asChild:i,...c}=o,l=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(l,{...c,ref:a})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function T0(e,t){e&&Ps.flushSync(()=>e.dispatchEvent(t))}function on(e){const t=p.useRef(e);return p.useEffect(()=>{t.current=e}),p.useMemo(()=>(...n)=>t.current?.(...n),[])}function R0(e,t=globalThis?.document){const n=on(e);p.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var O0="DismissableLayer",Go="dismissableLayer.update",M0="dismissableLayer.pointerDownOutside",L0="dismissableLayer.focusOutside",vc,Ld=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Oa=p.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:c,...l}=e,d=p.useContext(Ld),[f,u]=p.useState(null),m=f?.ownerDocument??globalThis?.document,[,h]=p.useState({}),v=Ne(t,T=>u(T)),x=Array.from(d.layers),[g]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),y=x.indexOf(g),k=f?x.indexOf(f):-1,_=d.layersWithOutsidePointerEventsDisabled.size>0,w=k>=y,j=z0(T=>{const N=T.target,A=[...d.branches].some(R=>R.contains(N));!w||A||(o?.(T),i?.(T),T.defaultPrevented||c?.())},m),P=F0(T=>{const N=T.target;[...d.branches].some(R=>R.contains(N))||(a?.(T),i?.(T),T.defaultPrevented||c?.())},m);return R0(T=>{k===d.layers.size-1&&(r?.(T),!T.defaultPrevented&&c&&(T.preventDefault(),c()))},m),p.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(vc=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),yc(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=vc)}},[f,m,n,d]),p.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),yc())},[f,d]),p.useEffect(()=>{const T=()=>h({});return document.addEventListener(Go,T),()=>document.removeEventListener(Go,T)},[]),s.jsx(xe.div,{...l,ref:v,style:{pointerEvents:_?w?"auto":"none":void 0,...e.style},onFocusCapture:ye(e.onFocusCapture,P.onFocusCapture),onBlurCapture:ye(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:ye(e.onPointerDownCapture,j.onPointerDownCapture)})});Oa.displayName=O0;var D0="DismissableLayerBranch",$0=p.forwardRef((e,t)=>{const n=p.useContext(Ld),r=p.useRef(null),o=Ne(t,r);return p.useEffect(()=>{const a=r.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),s.jsx(xe.div,{...e,ref:o})});$0.displayName=D0;function z0(e,t=globalThis?.document){const n=on(e),r=p.useRef(!1),o=p.useRef(()=>{});return p.useEffect(()=>{const a=c=>{if(c.target&&!r.current){let l=function(){Dd(M0,n,d,{discrete:!0})};const d={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=l,t.addEventListener("click",o.current,{once:!0})):l()}else t.removeEventListener("click",o.current);r.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function F0(e,t=globalThis?.document){const n=on(e),r=p.useRef(!1);return p.useEffect(()=>{const o=a=>{a.target&&!r.current&&Dd(L0,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function yc(){const e=new CustomEvent(Go);document.dispatchEvent(e)}function Dd(e,t,n,{discrete:r}){const o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?T0(o,a):o.dispatchEvent(a)}var ko=0;function $d(){p.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??bc()),document.body.insertAdjacentElement("beforeend",e[1]??bc()),ko++,()=>{ko===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),ko--}},[])}function bc(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var jo="focusScope.autoFocusOnMount",So="focusScope.autoFocusOnUnmount",wc={bubbles:!1,cancelable:!0},B0="FocusScope",Ma=p.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[c,l]=p.useState(null),d=on(o),f=on(a),u=p.useRef(null),m=Ne(t,x=>l(x)),h=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(r){let x=function(_){if(h.paused||!c)return;const w=_.target;c.contains(w)?u.current=w:sn(u.current,{select:!0})},g=function(_){if(h.paused||!c)return;const w=_.relatedTarget;w!==null&&(c.contains(w)||sn(u.current,{select:!0}))},y=function(_){if(document.activeElement===document.body)for(const j of _)j.removedNodes.length>0&&sn(c)};document.addEventListener("focusin",x),document.addEventListener("focusout",g);const k=new MutationObserver(y);return c&&k.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",g),k.disconnect()}}},[r,c,h.paused]),p.useEffect(()=>{if(c){kc.add(h);const x=document.activeElement;if(!c.contains(x)){const y=new CustomEvent(jo,wc);c.addEventListener(jo,d),c.dispatchEvent(y),y.defaultPrevented||(U0(Z0(zd(c)),{select:!0}),document.activeElement===x&&sn(c))}return()=>{c.removeEventListener(jo,d),setTimeout(()=>{const y=new CustomEvent(So,wc);c.addEventListener(So,f),c.dispatchEvent(y),y.defaultPrevented||sn(x??document.body,{select:!0}),c.removeEventListener(So,f),kc.remove(h)},0)}}},[c,d,f,h]);const v=p.useCallback(x=>{if(!n&&!r||h.paused)return;const g=x.key==="Tab"&&!x.altKey&&!x.ctrlKey&&!x.metaKey,y=document.activeElement;if(g&&y){const k=x.currentTarget,[_,w]=V0(k);_&&w?!x.shiftKey&&y===w?(x.preventDefault(),n&&sn(_,{select:!0})):x.shiftKey&&y===_&&(x.preventDefault(),n&&sn(w,{select:!0})):y===k&&x.preventDefault()}},[n,r,h.paused]);return s.jsx(xe.div,{tabIndex:-1,...i,ref:m,onKeyDown:v})});Ma.displayName=B0;function U0(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(sn(r,{select:t}),document.activeElement!==n)return}function V0(e){const t=zd(e),n=_c(t,e),r=_c(t.reverse(),e);return[n,r]}function zd(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function _c(e,t){for(const n of e)if(!W0(n,{upTo:t}))return n}function W0(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function q0(e){return e instanceof HTMLInputElement&&"select"in e}function sn(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&q0(e)&&t&&e.select()}}var kc=H0();function H0(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=jc(e,t),e.unshift(t)},remove(t){e=jc(e,t),e[0]?.resume()}}}function jc(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Z0(e){return e.filter(t=>t.tagName!=="A")}var Ge=globalThis?.document?p.useLayoutEffect:()=>{},G0=p[" useId ".trim().toString()]||(()=>{}),Y0=0;function Ut(e){const[t,n]=p.useState(G0());return Ge(()=>{n(r=>r??String(Y0++))},[e]),t?`radix-${t}`:""}const Q0=["top","right","bottom","left"],an=Math.min,ht=Math.max,bs=Math.round,Qr=Math.floor,Vt=e=>({x:e,y:e}),K0={left:"right",right:"left",bottom:"top",top:"bottom"},J0={start:"end",end:"start"};function Yo(e,t,n){return ht(e,an(t,n))}function Xt(e,t){return typeof e=="function"?e(t):e}function en(e){return e.split("-")[0]}function or(e){return e.split("-")[1]}function La(e){return e==="x"?"y":"x"}function Da(e){return e==="y"?"height":"width"}const X0=new Set(["top","bottom"]);function Ft(e){return X0.has(en(e))?"y":"x"}function $a(e){return La(Ft(e))}function ew(e,t,n){n===void 0&&(n=!1);const r=or(e),o=$a(e),a=Da(o);let i=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=ws(i)),[i,ws(i)]}function tw(e){const t=ws(e);return[Qo(e),t,Qo(t)]}function Qo(e){return e.replace(/start|end/g,t=>J0[t])}const Sc=["left","right"],Cc=["right","left"],nw=["top","bottom"],rw=["bottom","top"];function sw(e,t,n){switch(e){case"top":case"bottom":return n?t?Cc:Sc:t?Sc:Cc;case"left":case"right":return t?nw:rw;default:return[]}}function ow(e,t,n,r){const o=or(e);let a=sw(en(e),n==="start",r);return o&&(a=a.map(i=>i+"-"+o),t&&(a=a.concat(a.map(Qo)))),a}function ws(e){return e.replace(/left|right|bottom|top/g,t=>K0[t])}function aw(e){return{top:0,right:0,bottom:0,left:0,...e}}function Fd(e){return typeof e!="number"?aw(e):{top:e,right:e,bottom:e,left:e}}function _s(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function Nc(e,t,n){let{reference:r,floating:o}=e;const a=Ft(t),i=$a(t),c=Da(i),l=en(t),d=a==="y",f=r.x+r.width/2-o.width/2,u=r.y+r.height/2-o.height/2,m=r[c]/2-o[c]/2;let h;switch(l){case"top":h={x:f,y:r.y-o.height};break;case"bottom":h={x:f,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:u};break;case"left":h={x:r.x-o.width,y:u};break;default:h={x:r.x,y:r.y}}switch(or(t)){case"start":h[i]-=m*(n&&d?-1:1);break;case"end":h[i]+=m*(n&&d?-1:1);break}return h}const iw=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:a=[],platform:i}=n,c=a.filter(Boolean),l=await(i.isRTL==null?void 0:i.isRTL(t));let d=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:f,y:u}=Nc(d,r,l),m=r,h={},v=0;for(let x=0;x<c.length;x++){const{name:g,fn:y}=c[x],{x:k,y:_,data:w,reset:j}=await y({x:f,y:u,initialPlacement:r,placement:m,strategy:o,middlewareData:h,rects:d,platform:i,elements:{reference:e,floating:t}});f=k??f,u=_??u,h={...h,[g]:{...h[g],...w}},j&&v<=50&&(v++,typeof j=="object"&&(j.placement&&(m=j.placement),j.rects&&(d=j.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:o}):j.rects),{x:f,y:u}=Nc(d,m,l)),x=-1)}return{x:f,y:u,placement:m,strategy:o,middlewareData:h}};async function Er(e,t){var n;t===void 0&&(t={});const{x:r,y:o,platform:a,rects:i,elements:c,strategy:l}=e,{boundary:d="clippingAncestors",rootBoundary:f="viewport",elementContext:u="floating",altBoundary:m=!1,padding:h=0}=Xt(t,e),v=Fd(h),g=c[m?u==="floating"?"reference":"floating":u],y=_s(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(g)))==null||n?g:g.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:d,rootBoundary:f,strategy:l})),k=u==="floating"?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,_=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),w=await(a.isElement==null?void 0:a.isElement(_))?await(a.getScale==null?void 0:a.getScale(_))||{x:1,y:1}:{x:1,y:1},j=_s(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:k,offsetParent:_,strategy:l}):k);return{top:(y.top-j.top+v.top)/w.y,bottom:(j.bottom-y.bottom+v.bottom)/w.y,left:(y.left-j.left+v.left)/w.x,right:(j.right-y.right+v.right)/w.x}}const cw=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:a,platform:i,elements:c,middlewareData:l}=t,{element:d,padding:f=0}=Xt(e,t)||{};if(d==null)return{};const u=Fd(f),m={x:n,y:r},h=$a(o),v=Da(h),x=await i.getDimensions(d),g=h==="y",y=g?"top":"left",k=g?"bottom":"right",_=g?"clientHeight":"clientWidth",w=a.reference[v]+a.reference[h]-m[h]-a.floating[v],j=m[h]-a.reference[h],P=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d));let T=P?P[_]:0;(!T||!await(i.isElement==null?void 0:i.isElement(P)))&&(T=c.floating[_]||a.floating[v]);const N=w/2-j/2,A=T/2-x[v]/2-1,R=an(u[y],A),I=an(u[k],A),M=R,z=T-x[v]-I,D=T/2-x[v]/2+N,V=Yo(M,D,z),L=!l.arrow&&or(o)!=null&&D!==V&&a.reference[v]/2-(D<M?R:I)-x[v]/2<0,S=L?D<M?D-M:D-z:0;return{[h]:m[h]+S,data:{[h]:V,centerOffset:D-V-S,...L&&{alignmentOffset:S}},reset:L}}}),lw=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:a,rects:i,initialPlacement:c,platform:l,elements:d}=t,{mainAxis:f=!0,crossAxis:u=!0,fallbackPlacements:m,fallbackStrategy:h="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:x=!0,...g}=Xt(e,t);if((n=a.arrow)!=null&&n.alignmentOffset)return{};const y=en(o),k=Ft(c),_=en(c)===c,w=await(l.isRTL==null?void 0:l.isRTL(d.floating)),j=m||(_||!x?[ws(c)]:tw(c)),P=v!=="none";!m&&P&&j.push(...ow(c,x,v,w));const T=[c,...j],N=await Er(t,g),A=[];let R=((r=a.flip)==null?void 0:r.overflows)||[];if(f&&A.push(N[y]),u){const D=ew(o,i,w);A.push(N[D[0]],N[D[1]])}if(R=[...R,{placement:o,overflows:A}],!A.every(D=>D<=0)){var I,M;const D=(((I=a.flip)==null?void 0:I.index)||0)+1,V=T[D];if(V&&(!(u==="alignment"?k!==Ft(V):!1)||R.every(C=>Ft(C.placement)===k?C.overflows[0]>0:!0)))return{data:{index:D,overflows:R},reset:{placement:V}};let L=(M=R.filter(S=>S.overflows[0]<=0).sort((S,C)=>S.overflows[1]-C.overflows[1])[0])==null?void 0:M.placement;if(!L)switch(h){case"bestFit":{var z;const S=(z=R.filter(C=>{if(P){const W=Ft(C.placement);return W===k||W==="y"}return!0}).map(C=>[C.placement,C.overflows.filter(W=>W>0).reduce((W,Z)=>W+Z,0)]).sort((C,W)=>C[1]-W[1])[0])==null?void 0:z[0];S&&(L=S);break}case"initialPlacement":L=c;break}if(o!==L)return{reset:{placement:L}}}return{}}}};function Ec(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ac(e){return Q0.some(t=>e[t]>=0)}const dw=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=Xt(e,t);switch(r){case"referenceHidden":{const a=await Er(t,{...o,elementContext:"reference"}),i=Ec(a,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:Ac(i)}}}case"escaped":{const a=await Er(t,{...o,altBoundary:!0}),i=Ec(a,n.floating);return{data:{escapedOffsets:i,escaped:Ac(i)}}}default:return{}}}}},Bd=new Set(["left","top"]);async function uw(e,t){const{placement:n,platform:r,elements:o}=e,a=await(r.isRTL==null?void 0:r.isRTL(o.floating)),i=en(n),c=or(n),l=Ft(n)==="y",d=Bd.has(i)?-1:1,f=a&&l?-1:1,u=Xt(t,e);let{mainAxis:m,crossAxis:h,alignmentAxis:v}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return c&&typeof v=="number"&&(h=c==="end"?v*-1:v),l?{x:h*f,y:m*d}:{x:m*d,y:h*f}}const fw=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:a,placement:i,middlewareData:c}=t,l=await uw(t,e);return i===((n=c.offset)==null?void 0:n.placement)&&(r=c.arrow)!=null&&r.alignmentOffset?{}:{x:o+l.x,y:a+l.y,data:{...l,placement:i}}}}},pw=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:a=!0,crossAxis:i=!1,limiter:c={fn:g=>{let{x:y,y:k}=g;return{x:y,y:k}}},...l}=Xt(e,t),d={x:n,y:r},f=await Er(t,l),u=Ft(en(o)),m=La(u);let h=d[m],v=d[u];if(a){const g=m==="y"?"top":"left",y=m==="y"?"bottom":"right",k=h+f[g],_=h-f[y];h=Yo(k,h,_)}if(i){const g=u==="y"?"top":"left",y=u==="y"?"bottom":"right",k=v+f[g],_=v-f[y];v=Yo(k,v,_)}const x=c.fn({...t,[m]:h,[u]:v});return{...x,data:{x:x.x-n,y:x.y-r,enabled:{[m]:a,[u]:i}}}}}},mw=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:a,middlewareData:i}=t,{offset:c=0,mainAxis:l=!0,crossAxis:d=!0}=Xt(e,t),f={x:n,y:r},u=Ft(o),m=La(u);let h=f[m],v=f[u];const x=Xt(c,t),g=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(l){const _=m==="y"?"height":"width",w=a.reference[m]-a.floating[_]+g.mainAxis,j=a.reference[m]+a.reference[_]-g.mainAxis;h<w?h=w:h>j&&(h=j)}if(d){var y,k;const _=m==="y"?"width":"height",w=Bd.has(en(o)),j=a.reference[u]-a.floating[_]+(w&&((y=i.offset)==null?void 0:y[u])||0)+(w?0:g.crossAxis),P=a.reference[u]+a.reference[_]+(w?0:((k=i.offset)==null?void 0:k[u])||0)-(w?g.crossAxis:0);v<j?v=j:v>P&&(v=P)}return{[m]:h,[u]:v}}}},hw=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:a,platform:i,elements:c}=t,{apply:l=()=>{},...d}=Xt(e,t),f=await Er(t,d),u=en(o),m=or(o),h=Ft(o)==="y",{width:v,height:x}=a.floating;let g,y;u==="top"||u==="bottom"?(g=u,y=m===(await(i.isRTL==null?void 0:i.isRTL(c.floating))?"start":"end")?"left":"right"):(y=u,g=m==="end"?"top":"bottom");const k=x-f.top-f.bottom,_=v-f.left-f.right,w=an(x-f[g],k),j=an(v-f[y],_),P=!t.middlewareData.shift;let T=w,N=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(N=_),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=k),P&&!m){const R=ht(f.left,0),I=ht(f.right,0),M=ht(f.top,0),z=ht(f.bottom,0);h?N=v-2*(R!==0||I!==0?R+I:ht(f.left,f.right)):T=x-2*(M!==0||z!==0?M+z:ht(f.top,f.bottom))}await l({...t,availableWidth:N,availableHeight:T});const A=await i.getDimensions(c.floating);return v!==A.width||x!==A.height?{reset:{rects:!0}}:{}}}};function zs(){return typeof window<"u"}function ar(e){return Ud(e)?(e.nodeName||"").toLowerCase():"#document"}function gt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Zt(e){var t;return(t=(Ud(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Ud(e){return zs()?e instanceof Node||e instanceof gt(e).Node:!1}function It(e){return zs()?e instanceof Element||e instanceof gt(e).Element:!1}function Ht(e){return zs()?e instanceof HTMLElement||e instanceof gt(e).HTMLElement:!1}function Pc(e){return!zs()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof gt(e).ShadowRoot}const gw=new Set(["inline","contents"]);function zr(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Tt(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!gw.has(o)}const xw=new Set(["table","td","th"]);function vw(e){return xw.has(ar(e))}const yw=[":popover-open",":modal"];function Fs(e){return yw.some(t=>{try{return e.matches(t)}catch{return!1}})}const bw=["transform","translate","scale","rotate","perspective"],ww=["transform","translate","scale","rotate","perspective","filter"],_w=["paint","layout","strict","content"];function za(e){const t=Fa(),n=It(e)?Tt(e):e;return bw.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||ww.some(r=>(n.willChange||"").includes(r))||_w.some(r=>(n.contain||"").includes(r))}function kw(e){let t=cn(e);for(;Ht(t)&&!Gn(t);){if(za(t))return t;if(Fs(t))return null;t=cn(t)}return null}function Fa(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const jw=new Set(["html","body","#document"]);function Gn(e){return jw.has(ar(e))}function Tt(e){return gt(e).getComputedStyle(e)}function Bs(e){return It(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function cn(e){if(ar(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Pc(e)&&e.host||Zt(e);return Pc(t)?t.host:t}function Vd(e){const t=cn(e);return Gn(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ht(t)&&zr(t)?t:Vd(t)}function Ar(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=Vd(e),a=o===((r=e.ownerDocument)==null?void 0:r.body),i=gt(o);if(a){const c=Ko(i);return t.concat(i,i.visualViewport||[],zr(o)?o:[],c&&n?Ar(c):[])}return t.concat(o,Ar(o,[],n))}function Ko(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Wd(e){const t=Tt(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Ht(e),a=o?e.offsetWidth:n,i=o?e.offsetHeight:r,c=bs(n)!==a||bs(r)!==i;return c&&(n=a,r=i),{width:n,height:r,$:c}}function Ba(e){return It(e)?e:e.contextElement}function qn(e){const t=Ba(e);if(!Ht(t))return Vt(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:a}=Wd(t);let i=(a?bs(n.width):n.width)/r,c=(a?bs(n.height):n.height)/o;return(!i||!Number.isFinite(i))&&(i=1),(!c||!Number.isFinite(c))&&(c=1),{x:i,y:c}}const Sw=Vt(0);function qd(e){const t=gt(e);return!Fa()||!t.visualViewport?Sw:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Cw(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==gt(e)?!1:t}function Sn(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),a=Ba(e);let i=Vt(1);t&&(r?It(r)&&(i=qn(r)):i=qn(e));const c=Cw(a,n,r)?qd(a):Vt(0);let l=(o.left+c.x)/i.x,d=(o.top+c.y)/i.y,f=o.width/i.x,u=o.height/i.y;if(a){const m=gt(a),h=r&&It(r)?gt(r):r;let v=m,x=Ko(v);for(;x&&r&&h!==v;){const g=qn(x),y=x.getBoundingClientRect(),k=Tt(x),_=y.left+(x.clientLeft+parseFloat(k.paddingLeft))*g.x,w=y.top+(x.clientTop+parseFloat(k.paddingTop))*g.y;l*=g.x,d*=g.y,f*=g.x,u*=g.y,l+=_,d+=w,v=gt(x),x=Ko(v)}}return _s({width:f,height:u,x:l,y:d})}function Us(e,t){const n=Bs(e).scrollLeft;return t?t.left+n:Sn(Zt(e)).left+n}function Hd(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Us(e,n),o=n.top+t.scrollTop;return{x:r,y:o}}function Nw(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const a=o==="fixed",i=Zt(r),c=t?Fs(t.floating):!1;if(r===i||c&&a)return n;let l={scrollLeft:0,scrollTop:0},d=Vt(1);const f=Vt(0),u=Ht(r);if((u||!u&&!a)&&((ar(r)!=="body"||zr(i))&&(l=Bs(r)),Ht(r))){const h=Sn(r);d=qn(r),f.x=h.x+r.clientLeft,f.y=h.y+r.clientTop}const m=i&&!u&&!a?Hd(i,l):Vt(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-l.scrollLeft*d.x+f.x+m.x,y:n.y*d.y-l.scrollTop*d.y+f.y+m.y}}function Ew(e){return Array.from(e.getClientRects())}function Aw(e){const t=Zt(e),n=Bs(e),r=e.ownerDocument.body,o=ht(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=ht(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+Us(e);const c=-n.scrollTop;return Tt(r).direction==="rtl"&&(i+=ht(t.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:c}}const Ic=25;function Pw(e,t){const n=gt(e),r=Zt(e),o=n.visualViewport;let a=r.clientWidth,i=r.clientHeight,c=0,l=0;if(o){a=o.width,i=o.height;const f=Fa();(!f||f&&t==="fixed")&&(c=o.offsetLeft,l=o.offsetTop)}const d=Us(r);if(d<=0){const f=r.ownerDocument,u=f.body,m=getComputedStyle(u),h=f.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,v=Math.abs(r.clientWidth-u.clientWidth-h);v<=Ic&&(a-=v)}else d<=Ic&&(a+=d);return{width:a,height:i,x:c,y:l}}const Iw=new Set(["absolute","fixed"]);function Tw(e,t){const n=Sn(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,a=Ht(e)?qn(e):Vt(1),i=e.clientWidth*a.x,c=e.clientHeight*a.y,l=o*a.x,d=r*a.y;return{width:i,height:c,x:l,y:d}}function Tc(e,t,n){let r;if(t==="viewport")r=Pw(e,n);else if(t==="document")r=Aw(Zt(e));else if(It(t))r=Tw(t,n);else{const o=qd(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return _s(r)}function Zd(e,t){const n=cn(e);return n===t||!It(n)||Gn(n)?!1:Tt(n).position==="fixed"||Zd(n,t)}function Rw(e,t){const n=t.get(e);if(n)return n;let r=Ar(e,[],!1).filter(c=>It(c)&&ar(c)!=="body"),o=null;const a=Tt(e).position==="fixed";let i=a?cn(e):e;for(;It(i)&&!Gn(i);){const c=Tt(i),l=za(i);!l&&c.position==="fixed"&&(o=null),(a?!l&&!o:!l&&c.position==="static"&&!!o&&Iw.has(o.position)||zr(i)&&!l&&Zd(e,i))?r=r.filter(f=>f!==i):o=c,i=cn(i)}return t.set(e,r),r}function Ow(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const i=[...n==="clippingAncestors"?Fs(t)?[]:Rw(t,this._c):[].concat(n),r],c=i[0],l=i.reduce((d,f)=>{const u=Tc(t,f,o);return d.top=ht(u.top,d.top),d.right=an(u.right,d.right),d.bottom=an(u.bottom,d.bottom),d.left=ht(u.left,d.left),d},Tc(t,c,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function Mw(e){const{width:t,height:n}=Wd(e);return{width:t,height:n}}function Lw(e,t,n){const r=Ht(t),o=Zt(t),a=n==="fixed",i=Sn(e,!0,a,t);let c={scrollLeft:0,scrollTop:0};const l=Vt(0);function d(){l.x=Us(o)}if(r||!r&&!a)if((ar(t)!=="body"||zr(o))&&(c=Bs(t)),r){const h=Sn(t,!0,a,t);l.x=h.x+t.clientLeft,l.y=h.y+t.clientTop}else o&&d();a&&!r&&o&&d();const f=o&&!r&&!a?Hd(o,c):Vt(0),u=i.left+c.scrollLeft-l.x-f.x,m=i.top+c.scrollTop-l.y-f.y;return{x:u,y:m,width:i.width,height:i.height}}function Co(e){return Tt(e).position==="static"}function Rc(e,t){if(!Ht(e)||Tt(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Zt(e)===n&&(n=n.ownerDocument.body),n}function Gd(e,t){const n=gt(e);if(Fs(e))return n;if(!Ht(e)){let o=cn(e);for(;o&&!Gn(o);){if(It(o)&&!Co(o))return o;o=cn(o)}return n}let r=Rc(e,t);for(;r&&vw(r)&&Co(r);)r=Rc(r,t);return r&&Gn(r)&&Co(r)&&!za(r)?n:r||kw(e)||n}const Dw=async function(e){const t=this.getOffsetParent||Gd,n=this.getDimensions,r=await n(e.floating);return{reference:Lw(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function $w(e){return Tt(e).direction==="rtl"}const zw={convertOffsetParentRelativeRectToViewportRelativeRect:Nw,getDocumentElement:Zt,getClippingRect:Ow,getOffsetParent:Gd,getElementRects:Dw,getClientRects:Ew,getDimensions:Mw,getScale:qn,isElement:It,isRTL:$w};function Yd(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Fw(e,t){let n=null,r;const o=Zt(e);function a(){var c;clearTimeout(r),(c=n)==null||c.disconnect(),n=null}function i(c,l){c===void 0&&(c=!1),l===void 0&&(l=1),a();const d=e.getBoundingClientRect(),{left:f,top:u,width:m,height:h}=d;if(c||t(),!m||!h)return;const v=Qr(u),x=Qr(o.clientWidth-(f+m)),g=Qr(o.clientHeight-(u+h)),y=Qr(f),_={rootMargin:-v+"px "+-x+"px "+-g+"px "+-y+"px",threshold:ht(0,an(1,l))||1};let w=!0;function j(P){const T=P[0].intersectionRatio;if(T!==l){if(!w)return i();T?i(!1,T):r=setTimeout(()=>{i(!1,1e-7)},1e3)}T===1&&!Yd(d,e.getBoundingClientRect())&&i(),w=!1}try{n=new IntersectionObserver(j,{..._,root:o.ownerDocument})}catch{n=new IntersectionObserver(j,_)}n.observe(e)}return i(!0),a}function Bw(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:a=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,d=Ba(e),f=o||a?[...d?Ar(d):[],...Ar(t)]:[];f.forEach(y=>{o&&y.addEventListener("scroll",n,{passive:!0}),a&&y.addEventListener("resize",n)});const u=d&&c?Fw(d,n):null;let m=-1,h=null;i&&(h=new ResizeObserver(y=>{let[k]=y;k&&k.target===d&&h&&(h.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var _;(_=h)==null||_.observe(t)})),n()}),d&&!l&&h.observe(d),h.observe(t));let v,x=l?Sn(e):null;l&&g();function g(){const y=Sn(e);x&&!Yd(x,y)&&n(),x=y,v=requestAnimationFrame(g)}return n(),()=>{var y;f.forEach(k=>{o&&k.removeEventListener("scroll",n),a&&k.removeEventListener("resize",n)}),u?.(),(y=h)==null||y.disconnect(),h=null,l&&cancelAnimationFrame(v)}}const Uw=fw,Vw=pw,Ww=lw,qw=hw,Hw=dw,Oc=cw,Zw=mw,Gw=(e,t,n)=>{const r=new Map,o={platform:zw,...n},a={...o.platform,_c:r};return iw(e,t,{...o,platform:a})};var Yw=typeof document<"u",Qw=function(){},is=Yw?b.useLayoutEffect:Qw;function ks(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!ks(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const a=o[r];if(!(a==="_owner"&&e.$$typeof)&&!ks(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function Qd(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Mc(e,t){const n=Qd(e);return Math.round(t*n)/n}function No(e){const t=p.useRef(e);return is(()=>{t.current=e}),t}function Kw(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:c=!0,whileElementsMounted:l,open:d}=e,[f,u]=p.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,h]=p.useState(r);ks(m,r)||h(r);const[v,x]=p.useState(null),[g,y]=p.useState(null),k=p.useCallback(C=>{C!==P.current&&(P.current=C,x(C))},[]),_=p.useCallback(C=>{C!==T.current&&(T.current=C,y(C))},[]),w=a||v,j=i||g,P=p.useRef(null),T=p.useRef(null),N=p.useRef(f),A=l!=null,R=No(l),I=No(o),M=No(d),z=p.useCallback(()=>{if(!P.current||!T.current)return;const C={placement:t,strategy:n,middleware:m};I.current&&(C.platform=I.current),Gw(P.current,T.current,C).then(W=>{const Z={...W,isPositioned:M.current!==!1};D.current&&!ks(N.current,Z)&&(N.current=Z,Ps.flushSync(()=>{u(Z)}))})},[m,t,n,I,M]);is(()=>{d===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,u(C=>({...C,isPositioned:!1})))},[d]);const D=p.useRef(!1);is(()=>(D.current=!0,()=>{D.current=!1}),[]),is(()=>{if(w&&(P.current=w),j&&(T.current=j),w&&j){if(R.current)return R.current(w,j,z);z()}},[w,j,z,R,A]);const V=p.useMemo(()=>({reference:P,floating:T,setReference:k,setFloating:_}),[k,_]),L=p.useMemo(()=>({reference:w,floating:j}),[w,j]),S=p.useMemo(()=>{const C={position:n,left:0,top:0};if(!L.floating)return C;const W=Mc(L.floating,f.x),Z=Mc(L.floating,f.y);return c?{...C,transform:"translate("+W+"px, "+Z+"px)",...Qd(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:W,top:Z}},[n,c,L.floating,f.x,f.y]);return p.useMemo(()=>({...f,update:z,refs:V,elements:L,floatingStyles:S}),[f,z,V,L,S])}const Jw=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Oc({element:r.current,padding:o}).fn(n):{}:r?Oc({element:r,padding:o}).fn(n):{}}}},Xw=(e,t)=>({...Uw(e),options:[e,t]}),e_=(e,t)=>({...Vw(e),options:[e,t]}),t_=(e,t)=>({...Zw(e),options:[e,t]}),n_=(e,t)=>({...Ww(e),options:[e,t]}),r_=(e,t)=>({...qw(e),options:[e,t]}),s_=(e,t)=>({...Hw(e),options:[e,t]}),o_=(e,t)=>({...Jw(e),options:[e,t]});var a_="Arrow",Kd=p.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...a}=e;return s.jsx(xe.svg,{...a,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:s.jsx("polygon",{points:"0,0 30,0 15,10"})})});Kd.displayName=a_;var i_=Kd;function c_(e){const[t,n]=p.useState(void 0);return Ge(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const a=o[0];let i,c;if("borderBoxSize"in a){const l=a.borderBoxSize,d=Array.isArray(l)?l[0]:l;i=d.inlineSize,c=d.blockSize}else i=e.offsetWidth,c=e.offsetHeight;n({width:i,height:c})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Ua="Popper",[Jd,Xd]=pn(Ua),[l_,eu]=Jd(Ua),tu=e=>{const{__scopePopper:t,children:n}=e,[r,o]=p.useState(null);return s.jsx(l_,{scope:t,anchor:r,onAnchorChange:o,children:n})};tu.displayName=Ua;var nu="PopperAnchor",ru=p.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,a=eu(nu,n),i=p.useRef(null),c=Ne(t,i),l=p.useRef(null);return p.useEffect(()=>{const d=l.current;l.current=r?.current||i.current,d!==l.current&&a.onAnchorChange(l.current)}),r?null:s.jsx(xe.div,{...o,ref:c})});ru.displayName=nu;var Va="PopperContent",[d_,u_]=Jd(Va),su=p.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:a="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:d=[],collisionPadding:f=0,sticky:u="partial",hideWhenDetached:m=!1,updatePositionStrategy:h="optimized",onPlaced:v,...x}=e,g=eu(Va,n),[y,k]=p.useState(null),_=Ne(t,$=>k($)),[w,j]=p.useState(null),P=c_(w),T=P?.width??0,N=P?.height??0,A=r+(a!=="center"?"-"+a:""),R=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},I=Array.isArray(d)?d:[d],M=I.length>0,z={padding:R,boundary:I.filter(p_),altBoundary:M},{refs:D,floatingStyles:V,placement:L,isPositioned:S,middlewareData:C}=Kw({strategy:"fixed",placement:A,whileElementsMounted:(...$)=>Bw(...$,{animationFrame:h==="always"}),elements:{reference:g.anchor},middleware:[Xw({mainAxis:o+N,alignmentAxis:i}),l&&e_({mainAxis:!0,crossAxis:!1,limiter:u==="partial"?t_():void 0,...z}),l&&n_({...z}),r_({...z,apply:({elements:$,rects:G,availableWidth:pe,availableHeight:U})=>{const{width:se,height:le}=G.reference,ue=$.floating.style;ue.setProperty("--radix-popper-available-width",`${pe}px`),ue.setProperty("--radix-popper-available-height",`${U}px`),ue.setProperty("--radix-popper-anchor-width",`${se}px`),ue.setProperty("--radix-popper-anchor-height",`${le}px`)}}),w&&o_({element:w,padding:c}),m_({arrowWidth:T,arrowHeight:N}),m&&s_({strategy:"referenceHidden",...z})]}),[W,Z]=iu(L),Q=on(v);Ge(()=>{S&&Q?.()},[S,Q]);const de=C.arrow?.x,q=C.arrow?.y,K=C.arrow?.centerOffset!==0,[Y,me]=p.useState();return Ge(()=>{y&&me(window.getComputedStyle(y).zIndex)},[y]),s.jsx("div",{ref:D.setFloating,"data-radix-popper-content-wrapper":"",style:{...V,transform:S?V.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Y,"--radix-popper-transform-origin":[C.transformOrigin?.x,C.transformOrigin?.y].join(" "),...C.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:s.jsx(d_,{scope:n,placedSide:W,onArrowChange:j,arrowX:de,arrowY:q,shouldHideArrow:K,children:s.jsx(xe.div,{"data-side":W,"data-align":Z,...x,ref:_,style:{...x.style,animation:S?void 0:"none"}})})})});su.displayName=Va;var ou="PopperArrow",f_={top:"bottom",right:"left",bottom:"top",left:"right"},au=p.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,a=u_(ou,r),i=f_[a.placedSide];return s.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:s.jsx(i_,{...o,ref:n,style:{...o.style,display:"block"}})})});au.displayName=ou;function p_(e){return e!==null}var m_=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,i=o.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,l=i?0:e.arrowHeight,[d,f]=iu(n),u={start:"0%",center:"50%",end:"100%"}[f],m=(o.arrow?.x??0)+c/2,h=(o.arrow?.y??0)+l/2;let v="",x="";return d==="bottom"?(v=i?u:`${m}px`,x=`${-l}px`):d==="top"?(v=i?u:`${m}px`,x=`${r.floating.height+l}px`):d==="right"?(v=`${-l}px`,x=i?u:`${h}px`):d==="left"&&(v=`${r.floating.width+l}px`,x=i?u:`${h}px`),{data:{x:v,y:x}}}});function iu(e){const[t,n="center"]=e.split("-");return[t,n]}var h_=tu,g_=ru,x_=su,v_=au,y_="Portal",Wa=p.forwardRef((e,t)=>{const{container:n,...r}=e,[o,a]=p.useState(!1);Ge(()=>a(!0),[]);const i=n||o&&globalThis?.document?.body;return i?fa.createPortal(s.jsx(xe.div,{...r,ref:t}),i):null});Wa.displayName=y_;function b_(e){const t=w_(e),n=p.forwardRef((r,o)=>{const{children:a,...i}=r,c=p.Children.toArray(a),l=c.find(k_);if(l){const d=l.props.children,f=c.map(u=>u===l?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:u);return s.jsx(t,{...i,ref:o,children:p.isValidElement(d)?p.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:o,children:a})});return n.displayName=`${e}.Slot`,n}function w_(e){const t=p.forwardRef((n,r)=>{const{children:o,...a}=n;if(p.isValidElement(o)){const i=S_(o),c=j_(a,o.props);return o.type!==p.Fragment&&(c.ref=r?nr(r,i):i),p.cloneElement(o,c)}return p.Children.count(o)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var __=Symbol("radix.slottable");function k_(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===__}function j_(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...c)=>{const l=a(...c);return o(...c),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function S_(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var C_=p[" useInsertionEffect ".trim().toString()]||Ge;function ln({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,a,i]=N_({defaultProp:t,onChange:n}),c=e!==void 0,l=c?e:o;{const f=p.useRef(e!==void 0);p.useEffect(()=>{const u=f.current;u!==c&&console.warn(`${r} is changing from ${u?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=c},[c,r])}const d=p.useCallback(f=>{if(c){const u=E_(f)?f(e):f;u!==e&&i.current?.(u)}else a(f)},[c,e,a,i]);return[l,d]}function N_({defaultProp:e,onChange:t}){const[n,r]=p.useState(e),o=p.useRef(n),a=p.useRef(t);return C_(()=>{a.current=t},[t]),p.useEffect(()=>{o.current!==n&&(a.current?.(n),o.current=n)},[n,o]),[n,r,a]}function E_(e){return typeof e=="function"}function A_(e){const t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var cu=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),P_="VisuallyHidden",I_=p.forwardRef((e,t)=>s.jsx(xe.span,{...e,ref:t,style:{...cu,...e.style}}));I_.displayName=P_;var T_=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},zn=new WeakMap,Kr=new WeakMap,Jr={},Eo=0,lu=function(e){return e&&(e.host||lu(e.parentNode))},R_=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=lu(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},O_=function(e,t,n,r){var o=R_(t,Array.isArray(e)?e:[e]);Jr[n]||(Jr[n]=new WeakMap);var a=Jr[n],i=[],c=new Set,l=new Set(o),d=function(u){!u||c.has(u)||(c.add(u),d(u.parentNode))};o.forEach(d);var f=function(u){!u||l.has(u)||Array.prototype.forEach.call(u.children,function(m){if(c.has(m))f(m);else try{var h=m.getAttribute(r),v=h!==null&&h!=="false",x=(zn.get(m)||0)+1,g=(a.get(m)||0)+1;zn.set(m,x),a.set(m,g),i.push(m),x===1&&v&&Kr.set(m,!0),g===1&&m.setAttribute(n,"true"),v||m.setAttribute(r,"true")}catch(y){console.error("aria-hidden: cannot operate on ",m,y)}})};return f(t),c.clear(),Eo++,function(){i.forEach(function(u){var m=zn.get(u)-1,h=a.get(u)-1;zn.set(u,m),a.set(u,h),m||(Kr.has(u)||u.removeAttribute(r),Kr.delete(u)),h||u.removeAttribute(n)}),Eo--,Eo||(zn=new WeakMap,zn=new WeakMap,Kr=new WeakMap,Jr={})}},du=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=T_(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),O_(r,o,n,"aria-hidden")):function(){return null}},zt=function(){return zt=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},zt.apply(this,arguments)};function uu(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function M_(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,a;r<o;r++)(a||!(r in t))&&(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var cs="right-scroll-bar-position",ls="width-before-scroll-bar",L_="with-scroll-bars-hidden",D_="--removed-body-scroll-bar-size";function Ao(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function $_(e,t){var n=b.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var z_=typeof window<"u"?p.useLayoutEffect:p.useEffect,Lc=new WeakMap;function F_(e,t){var n=$_(null,function(r){return e.forEach(function(o){return Ao(o,r)})});return z_(function(){var r=Lc.get(n);if(r){var o=new Set(r),a=new Set(e),i=n.current;o.forEach(function(c){a.has(c)||Ao(c,null)}),a.forEach(function(c){o.has(c)||Ao(c,i)})}Lc.set(n,e)},[e]),n}function B_(e){return e}function U_(e,t){t===void 0&&(t=B_);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(a){var i=t(a,r);return n.push(i),function(){n=n.filter(function(c){return c!==i})}},assignSyncMedium:function(a){for(r=!0;n.length;){var i=n;n=[],i.forEach(a)}n={push:function(c){return a(c)},filter:function(){return n}}},assignMedium:function(a){r=!0;var i=[];if(n.length){var c=n;n=[],c.forEach(a),i=n}var l=function(){var f=i;i=[],f.forEach(a)},d=function(){return Promise.resolve().then(l)};d(),n={push:function(f){i.push(f),d()},filter:function(f){return i=i.filter(f),n}}}};return o}function V_(e){e===void 0&&(e={});var t=U_(null);return t.options=zt({async:!0,ssr:!1},e),t}var fu=function(e){var t=e.sideCar,n=uu(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return p.createElement(r,zt({},n))};fu.isSideCarExport=!0;function W_(e,t){return e.useMedium(t),fu}var pu=V_(),Po=function(){},Vs=p.forwardRef(function(e,t){var n=p.useRef(null),r=p.useState({onScrollCapture:Po,onWheelCapture:Po,onTouchMoveCapture:Po}),o=r[0],a=r[1],i=e.forwardProps,c=e.children,l=e.className,d=e.removeScrollBar,f=e.enabled,u=e.shards,m=e.sideCar,h=e.noRelative,v=e.noIsolation,x=e.inert,g=e.allowPinchZoom,y=e.as,k=y===void 0?"div":y,_=e.gapMode,w=uu(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),j=m,P=F_([n,t]),T=zt(zt({},w),o);return p.createElement(p.Fragment,null,f&&p.createElement(j,{sideCar:pu,removeScrollBar:d,shards:u,noRelative:h,noIsolation:v,inert:x,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:_}),i?p.cloneElement(p.Children.only(c),zt(zt({},T),{ref:P})):p.createElement(k,zt({},T,{className:l,ref:P}),c))});Vs.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Vs.classNames={fullWidth:ls,zeroRight:cs};var q_=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function H_(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=q_();return t&&e.setAttribute("nonce",t),e}function Z_(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function G_(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Y_=function(){var e=0,t=null;return{add:function(n){e==0&&(t=H_())&&(Z_(t,n),G_(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Q_=function(){var e=Y_();return function(t,n){p.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},mu=function(){var e=Q_(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},K_={left:0,top:0,right:0,gap:0},Io=function(e){return parseInt(e||"",10)||0},J_=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Io(n),Io(r),Io(o)]},X_=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return K_;var t=J_(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ek=mu(),Hn="data-scroll-locked",tk=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,c=e.gap;return n===void 0&&(n="margin"),`
|
|
40
|
-
.`.concat(L_,` {
|
|
41
|
-
overflow: hidden `).concat(r,`;
|
|
42
|
-
padding-right: `).concat(c,"px ").concat(r,`;
|
|
43
|
-
}
|
|
44
|
-
body[`).concat(Hn,`] {
|
|
45
|
-
overflow: hidden `).concat(r,`;
|
|
46
|
-
overscroll-behavior: contain;
|
|
47
|
-
`).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
|
|
48
|
-
padding-left: `.concat(o,`px;
|
|
49
|
-
padding-top: `).concat(a,`px;
|
|
50
|
-
padding-right: `).concat(i,`px;
|
|
51
|
-
margin-left:0;
|
|
52
|
-
margin-top:0;
|
|
53
|
-
margin-right: `).concat(c,"px ").concat(r,`;
|
|
54
|
-
`),n==="padding"&&"padding-right: ".concat(c,"px ").concat(r,";")].filter(Boolean).join(""),`
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.`).concat(cs,` {
|
|
58
|
-
right: `).concat(c,"px ").concat(r,`;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.`).concat(ls,` {
|
|
62
|
-
margin-right: `).concat(c,"px ").concat(r,`;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.`).concat(cs," .").concat(cs,` {
|
|
66
|
-
right: 0 `).concat(r,`;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.`).concat(ls," .").concat(ls,` {
|
|
70
|
-
margin-right: 0 `).concat(r,`;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
body[`).concat(Hn,`] {
|
|
74
|
-
`).concat(D_,": ").concat(c,`px;
|
|
75
|
-
}
|
|
76
|
-
`)},Dc=function(){var e=parseInt(document.body.getAttribute(Hn)||"0",10);return isFinite(e)?e:0},nk=function(){p.useEffect(function(){return document.body.setAttribute(Hn,(Dc()+1).toString()),function(){var e=Dc()-1;e<=0?document.body.removeAttribute(Hn):document.body.setAttribute(Hn,e.toString())}},[])},rk=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;nk();var a=p.useMemo(function(){return X_(o)},[o]);return p.createElement(ek,{styles:tk(a,!t,o,n?"":"!important")})},Jo=!1;if(typeof window<"u")try{var Xr=Object.defineProperty({},"passive",{get:function(){return Jo=!0,!0}});window.addEventListener("test",Xr,Xr),window.removeEventListener("test",Xr,Xr)}catch{Jo=!1}var Fn=Jo?{passive:!1}:!1,sk=function(e){return e.tagName==="TEXTAREA"},hu=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!sk(e)&&n[t]==="visible")},ok=function(e){return hu(e,"overflowY")},ak=function(e){return hu(e,"overflowX")},$c=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=gu(e,r);if(o){var a=xu(e,r),i=a[1],c=a[2];if(i>c)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},ik=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},ck=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},gu=function(e,t){return e==="v"?ok(t):ak(t)},xu=function(e,t){return e==="v"?ik(t):ck(t)},lk=function(e,t){return e==="h"&&t==="rtl"?-1:1},dk=function(e,t,n,r,o){var a=lk(e,window.getComputedStyle(t).direction),i=a*r,c=n.target,l=t.contains(c),d=!1,f=i>0,u=0,m=0;do{if(!c)break;var h=xu(e,c),v=h[0],x=h[1],g=h[2],y=x-g-a*v;(v||y)&&gu(e,c)&&(u+=y,m+=v);var k=c.parentNode;c=k&&k.nodeType===Node.DOCUMENT_FRAGMENT_NODE?k.host:k}while(!l&&c!==document.body||l&&(t.contains(c)||t===c));return(f&&Math.abs(u)<1||!f&&Math.abs(m)<1)&&(d=!0),d},es=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},zc=function(e){return[e.deltaX,e.deltaY]},Fc=function(e){return e&&"current"in e?e.current:e},uk=function(e,t){return e[0]===t[0]&&e[1]===t[1]},fk=function(e){return`
|
|
77
|
-
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
78
|
-
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
79
|
-
`)},pk=0,Bn=[];function mk(e){var t=p.useRef([]),n=p.useRef([0,0]),r=p.useRef(),o=p.useState(pk++)[0],a=p.useState(mu)[0],i=p.useRef(e);p.useEffect(function(){i.current=e},[e]),p.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var x=M_([e.lockRef.current],(e.shards||[]).map(Fc),!0).filter(Boolean);return x.forEach(function(g){return g.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),x.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=p.useCallback(function(x,g){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!i.current.allowPinchZoom;var y=es(x),k=n.current,_="deltaX"in x?x.deltaX:k[0]-y[0],w="deltaY"in x?x.deltaY:k[1]-y[1],j,P=x.target,T=Math.abs(_)>Math.abs(w)?"h":"v";if("touches"in x&&T==="h"&&P.type==="range")return!1;var N=window.getSelection(),A=N&&N.anchorNode,R=A?A===P||A.contains(P):!1;if(R)return!1;var I=$c(T,P);if(!I)return!0;if(I?j=T:(j=T==="v"?"h":"v",I=$c(T,P)),!I)return!1;if(!r.current&&"changedTouches"in x&&(_||w)&&(r.current=j),!j)return!0;var M=r.current||j;return dk(M,g,x,M==="h"?_:w)},[]),l=p.useCallback(function(x){var g=x;if(!(!Bn.length||Bn[Bn.length-1]!==a)){var y="deltaY"in g?zc(g):es(g),k=t.current.filter(function(j){return j.name===g.type&&(j.target===g.target||g.target===j.shadowParent)&&uk(j.delta,y)})[0];if(k&&k.should){g.cancelable&&g.preventDefault();return}if(!k){var _=(i.current.shards||[]).map(Fc).filter(Boolean).filter(function(j){return j.contains(g.target)}),w=_.length>0?c(g,_[0]):!i.current.noIsolation;w&&g.cancelable&&g.preventDefault()}}},[]),d=p.useCallback(function(x,g,y,k){var _={name:x,delta:g,target:y,should:k,shadowParent:hk(y)};t.current.push(_),setTimeout(function(){t.current=t.current.filter(function(w){return w!==_})},1)},[]),f=p.useCallback(function(x){n.current=es(x),r.current=void 0},[]),u=p.useCallback(function(x){d(x.type,zc(x),x.target,c(x,e.lockRef.current))},[]),m=p.useCallback(function(x){d(x.type,es(x),x.target,c(x,e.lockRef.current))},[]);p.useEffect(function(){return Bn.push(a),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:m}),document.addEventListener("wheel",l,Fn),document.addEventListener("touchmove",l,Fn),document.addEventListener("touchstart",f,Fn),function(){Bn=Bn.filter(function(x){return x!==a}),document.removeEventListener("wheel",l,Fn),document.removeEventListener("touchmove",l,Fn),document.removeEventListener("touchstart",f,Fn)}},[]);var h=e.removeScrollBar,v=e.inert;return p.createElement(p.Fragment,null,v?p.createElement(a,{styles:fk(o)}):null,h?p.createElement(rk,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function hk(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const gk=W_(pu,mk);var qa=p.forwardRef(function(e,t){return p.createElement(Vs,zt({},e,{ref:t,sideCar:gk}))});qa.classNames=Vs.classNames;var xk=[" ","Enter","ArrowUp","ArrowDown"],vk=[" ","Enter"],Cn="Select",[Ws,qs,yk]=Ra(Cn),[ir]=pn(Cn,[yk,Xd]),Hs=Xd(),[bk,mn]=ir(Cn),[wk,_k]=ir(Cn),vu=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:o,onOpenChange:a,value:i,defaultValue:c,onValueChange:l,dir:d,name:f,autoComplete:u,disabled:m,required:h,form:v}=e,x=Hs(t),[g,y]=p.useState(null),[k,_]=p.useState(null),[w,j]=p.useState(!1),P=$s(d),[T,N]=ln({prop:r,defaultProp:o??!1,onChange:a,caller:Cn}),[A,R]=ln({prop:i,defaultProp:c,onChange:l,caller:Cn}),I=p.useRef(null),M=g?v||!!g.closest("form"):!0,[z,D]=p.useState(new Set),V=Array.from(z).map(L=>L.props.value).join(";");return s.jsx(h_,{...x,children:s.jsxs(bk,{required:h,scope:t,trigger:g,onTriggerChange:y,valueNode:k,onValueNodeChange:_,valueNodeHasChildren:w,onValueNodeHasChildrenChange:j,contentId:Ut(),value:A,onValueChange:R,open:T,onOpenChange:N,dir:P,triggerPointerDownPosRef:I,disabled:m,children:[s.jsx(Ws.Provider,{scope:t,children:s.jsx(wk,{scope:e.__scopeSelect,onNativeOptionAdd:p.useCallback(L=>{D(S=>new Set(S).add(L))},[]),onNativeOptionRemove:p.useCallback(L=>{D(S=>{const C=new Set(S);return C.delete(L),C})},[]),children:n})}),M?s.jsxs($u,{"aria-hidden":!0,required:h,tabIndex:-1,name:f,autoComplete:u,value:A,onChange:L=>R(L.target.value),disabled:m,form:v,children:[A===void 0?s.jsx("option",{value:""}):null,Array.from(z)]},V):null]})})};vu.displayName=Cn;var yu="SelectTrigger",bu=p.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...o}=e,a=Hs(n),i=mn(yu,n),c=i.disabled||r,l=Ne(t,i.onTriggerChange),d=qs(n),f=p.useRef("touch"),[u,m,h]=Fu(x=>{const g=d().filter(_=>!_.disabled),y=g.find(_=>_.value===i.value),k=Bu(g,x,y);k!==void 0&&i.onValueChange(k.value)}),v=x=>{c||(i.onOpenChange(!0),h()),x&&(i.triggerPointerDownPosRef.current={x:Math.round(x.pageX),y:Math.round(x.pageY)})};return s.jsx(g_,{asChild:!0,...a,children:s.jsx(xe.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":zu(i.value)?"":void 0,...o,ref:l,onClick:ye(o.onClick,x=>{x.currentTarget.focus(),f.current!=="mouse"&&v(x)}),onPointerDown:ye(o.onPointerDown,x=>{f.current=x.pointerType;const g=x.target;g.hasPointerCapture(x.pointerId)&&g.releasePointerCapture(x.pointerId),x.button===0&&x.ctrlKey===!1&&x.pointerType==="mouse"&&(v(x),x.preventDefault())}),onKeyDown:ye(o.onKeyDown,x=>{const g=u.current!=="";!(x.ctrlKey||x.altKey||x.metaKey)&&x.key.length===1&&m(x.key),!(g&&x.key===" ")&&xk.includes(x.key)&&(v(),x.preventDefault())})})})});bu.displayName=yu;var wu="SelectValue",_u=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,children:a,placeholder:i="",...c}=e,l=mn(wu,n),{onValueNodeHasChildrenChange:d}=l,f=a!==void 0,u=Ne(t,l.onValueNodeChange);return Ge(()=>{d(f)},[d,f]),s.jsx(xe.span,{...c,ref:u,style:{pointerEvents:"none"},children:zu(l.value)?s.jsx(s.Fragment,{children:i}):a})});_u.displayName=wu;var kk="SelectIcon",ku=p.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...o}=e;return s.jsx(xe.span,{"aria-hidden":!0,...o,ref:t,children:r||"▼"})});ku.displayName=kk;var jk="SelectPortal",ju=e=>s.jsx(Wa,{asChild:!0,...e});ju.displayName=jk;var Nn="SelectContent",Su=p.forwardRef((e,t)=>{const n=mn(Nn,e.__scopeSelect),[r,o]=p.useState();if(Ge(()=>{o(new DocumentFragment)},[]),!n.open){const a=r;return a?Ps.createPortal(s.jsx(Cu,{scope:e.__scopeSelect,children:s.jsx(Ws.Slot,{scope:e.__scopeSelect,children:s.jsx("div",{children:e.children})})}),a):null}return s.jsx(Nu,{...e,ref:t})});Su.displayName=Nn;var Nt=10,[Cu,hn]=ir(Nn),Sk="SelectContentImpl",Ck=b_("SelectContent.RemoveScroll"),Nu=p.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:a,onPointerDownOutside:i,side:c,sideOffset:l,align:d,alignOffset:f,arrowPadding:u,collisionBoundary:m,collisionPadding:h,sticky:v,hideWhenDetached:x,avoidCollisions:g,...y}=e,k=mn(Nn,n),[_,w]=p.useState(null),[j,P]=p.useState(null),T=Ne(t,$=>w($)),[N,A]=p.useState(null),[R,I]=p.useState(null),M=qs(n),[z,D]=p.useState(!1),V=p.useRef(!1);p.useEffect(()=>{if(_)return du(_)},[_]),$d();const L=p.useCallback($=>{const[G,...pe]=M().map(le=>le.ref.current),[U]=pe.slice(-1),se=document.activeElement;for(const le of $)if(le===se||(le?.scrollIntoView({block:"nearest"}),le===G&&j&&(j.scrollTop=0),le===U&&j&&(j.scrollTop=j.scrollHeight),le?.focus(),document.activeElement!==se))return},[M,j]),S=p.useCallback(()=>L([N,_]),[L,N,_]);p.useEffect(()=>{z&&S()},[z,S]);const{onOpenChange:C,triggerPointerDownPosRef:W}=k;p.useEffect(()=>{if(_){let $={x:0,y:0};const G=U=>{$={x:Math.abs(Math.round(U.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(U.pageY)-(W.current?.y??0))}},pe=U=>{$.x<=10&&$.y<=10?U.preventDefault():_.contains(U.target)||C(!1),document.removeEventListener("pointermove",G),W.current=null};return W.current!==null&&(document.addEventListener("pointermove",G),document.addEventListener("pointerup",pe,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",G),document.removeEventListener("pointerup",pe,{capture:!0})}}},[_,C,W]),p.useEffect(()=>{const $=()=>C(!1);return window.addEventListener("blur",$),window.addEventListener("resize",$),()=>{window.removeEventListener("blur",$),window.removeEventListener("resize",$)}},[C]);const[Z,Q]=Fu($=>{const G=M().filter(se=>!se.disabled),pe=G.find(se=>se.ref.current===document.activeElement),U=Bu(G,$,pe);U&&setTimeout(()=>U.ref.current.focus())}),de=p.useCallback(($,G,pe)=>{const U=!V.current&&!pe;(k.value!==void 0&&k.value===G||U)&&(A($),U&&(V.current=!0))},[k.value]),q=p.useCallback(()=>_?.focus(),[_]),K=p.useCallback(($,G,pe)=>{const U=!V.current&&!pe;(k.value!==void 0&&k.value===G||U)&&I($)},[k.value]),Y=r==="popper"?Xo:Eu,me=Y===Xo?{side:c,sideOffset:l,align:d,alignOffset:f,arrowPadding:u,collisionBoundary:m,collisionPadding:h,sticky:v,hideWhenDetached:x,avoidCollisions:g}:{};return s.jsx(Cu,{scope:n,content:_,viewport:j,onViewportChange:P,itemRefCallback:de,selectedItem:N,onItemLeave:q,itemTextRefCallback:K,focusSelectedItem:S,selectedItemText:R,position:r,isPositioned:z,searchRef:Z,children:s.jsx(qa,{as:Ck,allowPinchZoom:!0,children:s.jsx(Ma,{asChild:!0,trapped:k.open,onMountAutoFocus:$=>{$.preventDefault()},onUnmountAutoFocus:ye(o,$=>{k.trigger?.focus({preventScroll:!0}),$.preventDefault()}),children:s.jsx(Oa,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:$=>$.preventDefault(),onDismiss:()=>k.onOpenChange(!1),children:s.jsx(Y,{role:"listbox",id:k.contentId,"data-state":k.open?"open":"closed",dir:k.dir,onContextMenu:$=>$.preventDefault(),...y,...me,onPlaced:()=>D(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:ye(y.onKeyDown,$=>{const G=$.ctrlKey||$.altKey||$.metaKey;if($.key==="Tab"&&$.preventDefault(),!G&&$.key.length===1&&Q($.key),["ArrowUp","ArrowDown","Home","End"].includes($.key)){let U=M().filter(se=>!se.disabled).map(se=>se.ref.current);if(["ArrowUp","End"].includes($.key)&&(U=U.slice().reverse()),["ArrowUp","ArrowDown"].includes($.key)){const se=$.target,le=U.indexOf(se);U=U.slice(le+1)}setTimeout(()=>L(U)),$.preventDefault()}})})})})})})});Nu.displayName=Sk;var Nk="SelectItemAlignedPosition",Eu=p.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...o}=e,a=mn(Nn,n),i=hn(Nn,n),[c,l]=p.useState(null),[d,f]=p.useState(null),u=Ne(t,T=>f(T)),m=qs(n),h=p.useRef(!1),v=p.useRef(!0),{viewport:x,selectedItem:g,selectedItemText:y,focusSelectedItem:k}=i,_=p.useCallback(()=>{if(a.trigger&&a.valueNode&&c&&d&&x&&g&&y){const T=a.trigger.getBoundingClientRect(),N=d.getBoundingClientRect(),A=a.valueNode.getBoundingClientRect(),R=y.getBoundingClientRect();if(a.dir!=="rtl"){const se=R.left-N.left,le=A.left-se,ue=T.left-le,Te=T.width+ue,We=Math.max(Te,N.width),Ye=window.innerWidth-Nt,qe=gc(le,[Nt,Math.max(Nt,Ye-We)]);c.style.minWidth=Te+"px",c.style.left=qe+"px"}else{const se=N.right-R.right,le=window.innerWidth-A.right-se,ue=window.innerWidth-T.right-le,Te=T.width+ue,We=Math.max(Te,N.width),Ye=window.innerWidth-Nt,qe=gc(le,[Nt,Math.max(Nt,Ye-We)]);c.style.minWidth=Te+"px",c.style.right=qe+"px"}const I=m(),M=window.innerHeight-Nt*2,z=x.scrollHeight,D=window.getComputedStyle(d),V=parseInt(D.borderTopWidth,10),L=parseInt(D.paddingTop,10),S=parseInt(D.borderBottomWidth,10),C=parseInt(D.paddingBottom,10),W=V+L+z+C+S,Z=Math.min(g.offsetHeight*5,W),Q=window.getComputedStyle(x),de=parseInt(Q.paddingTop,10),q=parseInt(Q.paddingBottom,10),K=T.top+T.height/2-Nt,Y=M-K,me=g.offsetHeight/2,$=g.offsetTop+me,G=V+L+$,pe=W-G;if(G<=K){const se=I.length>0&&g===I[I.length-1].ref.current;c.style.bottom="0px";const le=d.clientHeight-x.offsetTop-x.offsetHeight,ue=Math.max(Y,me+(se?q:0)+le+S),Te=G+ue;c.style.height=Te+"px"}else{const se=I.length>0&&g===I[0].ref.current;c.style.top="0px";const ue=Math.max(K,V+x.offsetTop+(se?de:0)+me)+pe;c.style.height=ue+"px",x.scrollTop=G-K+x.offsetTop}c.style.margin=`${Nt}px 0`,c.style.minHeight=Z+"px",c.style.maxHeight=M+"px",r?.(),requestAnimationFrame(()=>h.current=!0)}},[m,a.trigger,a.valueNode,c,d,x,g,y,a.dir,r]);Ge(()=>_(),[_]);const[w,j]=p.useState();Ge(()=>{d&&j(window.getComputedStyle(d).zIndex)},[d]);const P=p.useCallback(T=>{T&&v.current===!0&&(_(),k?.(),v.current=!1)},[_,k]);return s.jsx(Ak,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:h,onScrollButtonChange:P,children:s.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:w},children:s.jsx(xe.div,{...o,ref:u,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}})})})});Eu.displayName=Nk;var Ek="SelectPopperPosition",Xo=p.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:o=Nt,...a}=e,i=Hs(n);return s.jsx(x_,{...i,...a,ref:t,align:r,collisionPadding:o,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Xo.displayName=Ek;var[Ak,Ha]=ir(Nn,{}),ea="SelectViewport",Au=p.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...o}=e,a=hn(ea,n),i=Ha(ea,n),c=Ne(t,a.onViewportChange),l=p.useRef(0);return s.jsxs(s.Fragment,{children:[s.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),s.jsx(Ws.Slot,{scope:n,children:s.jsx(xe.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:ye(o.onScroll,d=>{const f=d.currentTarget,{contentWrapper:u,shouldExpandOnScrollRef:m}=i;if(m?.current&&u){const h=Math.abs(l.current-f.scrollTop);if(h>0){const v=window.innerHeight-Nt*2,x=parseFloat(u.style.minHeight),g=parseFloat(u.style.height),y=Math.max(x,g);if(y<v){const k=y+h,_=Math.min(v,k),w=k-_;u.style.height=_+"px",u.style.bottom==="0px"&&(f.scrollTop=w>0?w:0,u.style.justifyContent="flex-end")}}}l.current=f.scrollTop})})})]})});Au.displayName=ea;var Pu="SelectGroup",[Pk,Ik]=ir(Pu),Iu=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=Ut();return s.jsx(Pk,{scope:n,id:o,children:s.jsx(xe.div,{role:"group","aria-labelledby":o,...r,ref:t})})});Iu.displayName=Pu;var Tu="SelectLabel",Tk=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=Ik(Tu,n);return s.jsx(xe.div,{id:o.id,...r,ref:t})});Tk.displayName=Tu;var js="SelectItem",[Rk,Ru]=ir(js),Ou=p.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:o=!1,textValue:a,...i}=e,c=mn(js,n),l=hn(js,n),d=c.value===r,[f,u]=p.useState(a??""),[m,h]=p.useState(!1),v=Ne(t,k=>l.itemRefCallback?.(k,r,o)),x=Ut(),g=p.useRef("touch"),y=()=>{o||(c.onValueChange(r),c.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return s.jsx(Rk,{scope:n,value:r,disabled:o,textId:x,isSelected:d,onItemTextChange:p.useCallback(k=>{u(_=>_||(k?.textContent??"").trim())},[]),children:s.jsx(Ws.ItemSlot,{scope:n,value:r,disabled:o,textValue:f,children:s.jsx(xe.div,{role:"option","aria-labelledby":x,"data-highlighted":m?"":void 0,"aria-selected":d&&m,"data-state":d?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...i,ref:v,onFocus:ye(i.onFocus,()=>h(!0)),onBlur:ye(i.onBlur,()=>h(!1)),onClick:ye(i.onClick,()=>{g.current!=="mouse"&&y()}),onPointerUp:ye(i.onPointerUp,()=>{g.current==="mouse"&&y()}),onPointerDown:ye(i.onPointerDown,k=>{g.current=k.pointerType}),onPointerMove:ye(i.onPointerMove,k=>{g.current=k.pointerType,o?l.onItemLeave?.():g.current==="mouse"&&k.currentTarget.focus({preventScroll:!0})}),onPointerLeave:ye(i.onPointerLeave,k=>{k.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:ye(i.onKeyDown,k=>{l.searchRef?.current!==""&&k.key===" "||(vk.includes(k.key)&&y(),k.key===" "&&k.preventDefault())})})})})});Ou.displayName=js;var yr="SelectItemText",Mu=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,...a}=e,i=mn(yr,n),c=hn(yr,n),l=Ru(yr,n),d=_k(yr,n),[f,u]=p.useState(null),m=Ne(t,y=>u(y),l.onItemTextChange,y=>c.itemTextRefCallback?.(y,l.value,l.disabled)),h=f?.textContent,v=p.useMemo(()=>s.jsx("option",{value:l.value,disabled:l.disabled,children:h},l.value),[l.disabled,l.value,h]),{onNativeOptionAdd:x,onNativeOptionRemove:g}=d;return Ge(()=>(x(v),()=>g(v)),[x,g,v]),s.jsxs(s.Fragment,{children:[s.jsx(xe.span,{id:l.textId,...a,ref:m}),l.isSelected&&i.valueNode&&!i.valueNodeHasChildren?Ps.createPortal(a.children,i.valueNode):null]})});Mu.displayName=yr;var Lu="SelectItemIndicator",Ok=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return Ru(Lu,n).isSelected?s.jsx(xe.span,{"aria-hidden":!0,...r,ref:t}):null});Ok.displayName=Lu;var ta="SelectScrollUpButton",Mk=p.forwardRef((e,t)=>{const n=hn(ta,e.__scopeSelect),r=Ha(ta,e.__scopeSelect),[o,a]=p.useState(!1),i=Ne(t,r.onScrollButtonChange);return Ge(()=>{if(n.viewport&&n.isPositioned){let c=function(){const d=l.scrollTop>0;a(d)};const l=n.viewport;return c(),l.addEventListener("scroll",c),()=>l.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),o?s.jsx(Du,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:l}=n;c&&l&&(c.scrollTop=c.scrollTop-l.offsetHeight)}}):null});Mk.displayName=ta;var na="SelectScrollDownButton",Lk=p.forwardRef((e,t)=>{const n=hn(na,e.__scopeSelect),r=Ha(na,e.__scopeSelect),[o,a]=p.useState(!1),i=Ne(t,r.onScrollButtonChange);return Ge(()=>{if(n.viewport&&n.isPositioned){let c=function(){const d=l.scrollHeight-l.clientHeight,f=Math.ceil(l.scrollTop)<d;a(f)};const l=n.viewport;return c(),l.addEventListener("scroll",c),()=>l.removeEventListener("scroll",c)}},[n.viewport,n.isPositioned]),o?s.jsx(Du,{...e,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:l}=n;c&&l&&(c.scrollTop=c.scrollTop+l.offsetHeight)}}):null});Lk.displayName=na;var Du=p.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...o}=e,a=hn("SelectScrollButton",n),i=p.useRef(null),c=qs(n),l=p.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return p.useEffect(()=>()=>l(),[l]),Ge(()=>{c().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),s.jsx(xe.div,{"aria-hidden":!0,...o,ref:t,style:{flexShrink:0,...o.style},onPointerDown:ye(o.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(r,50))}),onPointerMove:ye(o.onPointerMove,()=>{a.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(r,50))}),onPointerLeave:ye(o.onPointerLeave,()=>{l()})})}),Dk="SelectSeparator",$k=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return s.jsx(xe.div,{"aria-hidden":!0,...r,ref:t})});$k.displayName=Dk;var ra="SelectArrow",zk=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=Hs(n),a=mn(ra,n),i=hn(ra,n);return a.open&&i.position==="popper"?s.jsx(v_,{...o,...r,ref:t}):null});zk.displayName=ra;var Fk="SelectBubbleInput",$u=p.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const o=p.useRef(null),a=Ne(r,o),i=A_(t);return p.useEffect(()=>{const c=o.current;if(!c)return;const l=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(l,"value").set;if(i!==t&&f){const u=new Event("change",{bubbles:!0});f.call(c,t),c.dispatchEvent(u)}},[i,t]),s.jsx(xe.select,{...n,style:{...cu,...n.style},ref:a,defaultValue:t})});$u.displayName=Fk;function zu(e){return e===""||e===void 0}function Fu(e){const t=on(e),n=p.useRef(""),r=p.useRef(0),o=p.useCallback(i=>{const c=n.current+i;t(c),(function l(d){n.current=d,window.clearTimeout(r.current),d!==""&&(r.current=window.setTimeout(()=>l(""),1e3))})(c)},[t]),a=p.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,o,a]}function Bu(e,t,n){const o=t.length>1&&Array.from(t).every(d=>d===t[0])?t[0]:t,a=n?e.indexOf(n):-1;let i=Bk(e,Math.max(a,0));o.length===1&&(i=i.filter(d=>d!==n));const l=i.find(d=>d.textValue.toLowerCase().startsWith(o.toLowerCase()));return l!==n?l:void 0}function Bk(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Uk=vu,Uu=bu,Vk=_u,Wk=ku,qk=ju,Vu=Su,Hk=Au,Zk=Iu,Wu=Ou,Gk=Mu;const Ss=Uk,Yk=Zk,Cs=Vk,Pr=p.forwardRef(({className:e,children:t,...n},r)=>s.jsxs(Uu,{ref:r,className:F("flex h-10 w-full items-center justify-between rounded-md border border-neutral-200 bg-white px-3 py-2 text-sm text-neutral-950 shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900/20 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50 dark:focus-visible:ring-neutral-50/20",e),...n,children:[t,s.jsx(Wk,{className:"ml-2 text-neutral-500 dark:text-neutral-400",children:"▾"})]}));Pr.displayName=Uu.displayName;const Ir=p.forwardRef(({className:e,children:t,position:n="popper",...r},o)=>s.jsx(qk,{children:s.jsx(Vu,{ref:o,position:n,className:F("z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 bg-white text-neutral-950 shadow-md dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",e),...r,children:s.jsx(Hk,{className:F("p-1",n==="popper"?"w-full":void 0),children:t})})}));Ir.displayName=Vu.displayName;const Tr=p.forwardRef(({className:e,children:t,...n},r)=>s.jsx(Wu,{ref:r,className:F("relative flex w-full cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-neutral-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-neutral-800",e),...n,children:s.jsx(Gk,{children:t})}));Tr.displayName=Wu.displayName;function Qk(e,t){return p.useReducer((n,r)=>t[n][r]??n,e)}var cr=e=>{const{present:t,children:n}=e,r=Kk(t),o=typeof n=="function"?n({present:r.isPresent}):p.Children.only(n),a=Ne(r.ref,Jk(o));return typeof n=="function"||r.isPresent?p.cloneElement(o,{ref:a}):null};cr.displayName="Presence";function Kk(e){const[t,n]=p.useState(),r=p.useRef(null),o=p.useRef(e),a=p.useRef("none"),i=e?"mounted":"unmounted",[c,l]=Qk(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const d=ts(r.current);a.current=c==="mounted"?d:"none"},[c]),Ge(()=>{const d=r.current,f=o.current;if(f!==e){const m=a.current,h=ts(d);e?l("MOUNT"):h==="none"||d?.display==="none"?l("UNMOUNT"):l(f&&m!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,l]),Ge(()=>{if(t){let d;const f=t.ownerDocument.defaultView??window,u=h=>{const x=ts(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&x&&(l("ANIMATION_END"),!o.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",d=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},m=h=>{h.target===t&&(a.current=ts(r.current))};return t.addEventListener("animationstart",m),t.addEventListener("animationcancel",u),t.addEventListener("animationend",u),()=>{f.clearTimeout(d),t.removeEventListener("animationstart",m),t.removeEventListener("animationcancel",u),t.removeEventListener("animationend",u)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:p.useCallback(d=>{r.current=d?getComputedStyle(d):null,n(d)},[])}}function ts(e){return e?.animationName||"none"}function Jk(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Xk(e){const t=ej(e),n=p.forwardRef((r,o)=>{const{children:a,...i}=r,c=p.Children.toArray(a),l=c.find(nj);if(l){const d=l.props.children,f=c.map(u=>u===l?p.Children.count(d)>1?p.Children.only(null):p.isValidElement(d)?d.props.children:null:u);return s.jsx(t,{...i,ref:o,children:p.isValidElement(d)?p.cloneElement(d,void 0,f):null})}return s.jsx(t,{...i,ref:o,children:a})});return n.displayName=`${e}.Slot`,n}function ej(e){const t=p.forwardRef((n,r)=>{const{children:o,...a}=n;if(p.isValidElement(o)){const i=sj(o),c=rj(a,o.props);return o.type!==p.Fragment&&(c.ref=r?nr(r,i):i),p.cloneElement(o,c)}return p.Children.count(o)>1?p.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tj=Symbol("radix.slottable");function nj(e){return p.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tj}function rj(e,t){const n={...t};for(const r in t){const o=e[r],a=t[r];/^on[A-Z]/.test(r)?o&&a?n[r]=(...c)=>{const l=a(...c);return o(...c),l}:o&&(n[r]=o):r==="style"?n[r]={...o,...a}:r==="className"&&(n[r]=[o,a].filter(Boolean).join(" "))}return{...e,...n}}function sj(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Zs="Dialog",[qu]=pn(Zs),[oj,Ot]=qu(Zs),Hu=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:a,modal:i=!0}=e,c=p.useRef(null),l=p.useRef(null),[d,f]=ln({prop:r,defaultProp:o??!1,onChange:a,caller:Zs});return s.jsx(oj,{scope:t,triggerRef:c,contentRef:l,contentId:Ut(),titleId:Ut(),descriptionId:Ut(),open:d,onOpenChange:f,onOpenToggle:p.useCallback(()=>f(u=>!u),[f]),modal:i,children:n})};Hu.displayName=Zs;var Zu="DialogTrigger",Gu=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Ot(Zu,n),a=Ne(t,o.triggerRef);return s.jsx(xe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":Ya(o.open),...r,ref:a,onClick:ye(e.onClick,o.onOpenToggle)})});Gu.displayName=Zu;var Za="DialogPortal",[aj,Yu]=qu(Za,{forceMount:void 0}),Qu=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,a=Ot(Za,t);return s.jsx(aj,{scope:t,forceMount:n,children:p.Children.map(r,i=>s.jsx(cr,{present:n||a.open,children:s.jsx(Wa,{asChild:!0,container:o,children:i})}))})};Qu.displayName=Za;var Ns="DialogOverlay",Ku=p.forwardRef((e,t)=>{const n=Yu(Ns,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=Ot(Ns,e.__scopeDialog);return a.modal?s.jsx(cr,{present:r||a.open,children:s.jsx(cj,{...o,ref:t})}):null});Ku.displayName=Ns;var ij=Xk("DialogOverlay.RemoveScroll"),cj=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Ot(Ns,n);return s.jsx(qa,{as:ij,allowPinchZoom:!0,shards:[o.contentRef],children:s.jsx(xe.div,{"data-state":Ya(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),En="DialogContent",Ju=p.forwardRef((e,t)=>{const n=Yu(En,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=Ot(En,e.__scopeDialog);return s.jsx(cr,{present:r||a.open,children:a.modal?s.jsx(lj,{...o,ref:t}):s.jsx(dj,{...o,ref:t})})});Ju.displayName=En;var lj=p.forwardRef((e,t)=>{const n=Ot(En,e.__scopeDialog),r=p.useRef(null),o=Ne(t,n.contentRef,r);return p.useEffect(()=>{const a=r.current;if(a)return du(a)},[]),s.jsx(Xu,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:ye(e.onCloseAutoFocus,a=>{a.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:ye(e.onPointerDownOutside,a=>{const i=a.detail.originalEvent,c=i.button===0&&i.ctrlKey===!0;(i.button===2||c)&&a.preventDefault()}),onFocusOutside:ye(e.onFocusOutside,a=>a.preventDefault())})}),dj=p.forwardRef((e,t)=>{const n=Ot(En,e.__scopeDialog),r=p.useRef(!1),o=p.useRef(!1);return s.jsx(Xu,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),a.defaultPrevented||(r.current||n.triggerRef.current?.focus(),a.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),a.defaultPrevented||(r.current=!0,a.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const i=a.target;n.triggerRef.current?.contains(i)&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&o.current&&a.preventDefault()}})}),Xu=p.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:a,...i}=e,c=Ot(En,n),l=p.useRef(null),d=Ne(t,l);return $d(),s.jsxs(s.Fragment,{children:[s.jsx(Ma,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:a,children:s.jsx(Oa,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":Ya(c.open),...i,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),s.jsxs(s.Fragment,{children:[s.jsx(uj,{titleId:c.titleId}),s.jsx(pj,{contentRef:l,descriptionId:c.descriptionId})]})]})}),Ga="DialogTitle",ef=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Ot(Ga,n);return s.jsx(xe.h2,{id:o.titleId,...r,ref:t})});ef.displayName=Ga;var tf="DialogDescription",nf=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Ot(tf,n);return s.jsx(xe.p,{id:o.descriptionId,...r,ref:t})});nf.displayName=tf;var rf="DialogClose",sf=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Ot(rf,n);return s.jsx(xe.button,{type:"button",...r,ref:t,onClick:ye(e.onClick,()=>o.onOpenChange(!1))})});sf.displayName=rf;function Ya(e){return e?"open":"closed"}var of="DialogTitleWarning",[EC,af]=x0(of,{contentName:En,titleName:Ga,docsSlug:"dialog"}),uj=({titleId:e})=>{const t=af(of),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
80
|
-
|
|
81
|
-
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
82
|
-
|
|
83
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return p.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},fj="DialogDescriptionWarning",pj=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${af(fj).contentName}}.`;return p.useEffect(()=>{const o=e.current?.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},cf=Hu,lf=Gu,df=Qu,Gs=Ku,Ys=Ju,Qs=ef,Ks=nf,uf=sf;const Qa=cf,mj=lf,ff=df,hj=uf,Ka=p.forwardRef(({className:e,...t},n)=>s.jsx(Gs,{ref:n,className:F("fixed inset-0 z-50 bg-neutral-950/40 backdrop-blur-sm transition-opacity data-[state=closed]:opacity-0 data-[state=open]:opacity-100",e),...t}));Ka.displayName=Gs.displayName;const Js=p.forwardRef(({className:e,children:t,...n},r)=>s.jsxs(ff,{children:[s.jsx(Ka,{}),s.jsx(Ys,{ref:r,className:F("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border border-neutral-200 bg-white p-6 shadow-lg outline-none transition data-[state=closed]:opacity-0 data-[state=closed]:scale-95 data-[state=open]:opacity-100 data-[state=open]:scale-100 dark:border-neutral-800 dark:bg-neutral-950","rounded-2xl",e),...n,children:t})]}));Js.displayName=Ys.displayName;const Ja=({className:e,...t})=>s.jsx("div",{className:F("flex flex-col space-y-2 text-center sm:text-left",e),...t}),pf=({className:e,...t})=>s.jsx("div",{className:F("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t}),Xs=p.forwardRef(({className:e,...t},n)=>s.jsx(Qs,{ref:n,className:F("text-lg font-semibold leading-none tracking-tight",e),...t}));Xs.displayName=Qs.displayName;const Xa=p.forwardRef(({className:e,...t},n)=>s.jsx(Ks,{ref:n,className:F("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));Xa.displayName=Ks.displayName;const eo=cf,to=lf,mf=uf,hf=df,ei=p.forwardRef(({className:e,...t},n)=>s.jsx(Gs,{ref:n,className:F("fixed inset-0 z-50 bg-neutral-950/40 backdrop-blur-sm transition-opacity data-[state=closed]:opacity-0 data-[state=open]:opacity-100",e),...t}));ei.displayName=Gs.displayName;const gj=Ia("fixed z-50 gap-4 bg-white p-6 shadow-lg outline-none transition duration-200 ease-out dark:bg-neutral-950",{variants:{side:{top:"inset-x-0 top-0 border-b border-neutral-200 data-[state=closed]:-translate-y-full data-[state=open]:translate-y-0 dark:border-neutral-800",bottom:"inset-x-0 bottom-0 border-t border-neutral-200 data-[state=closed]:translate-y-full data-[state=open]:translate-y-0 dark:border-neutral-800",left:"inset-y-0 left-0 h-full w-3/4 border-r border-neutral-200 data-[state=closed]:-translate-x-full data-[state=open]:translate-x-0 sm:max-w-sm dark:border-neutral-800",right:"inset-y-0 right-0 h-full w-3/4 border-l border-neutral-200 data-[state=closed]:translate-x-full data-[state=open]:translate-x-0 sm:max-w-sm dark:border-neutral-800",popup:"bottom-4 right-4 w-[420px] max-w-[calc(100vw-2rem)] max-h-[calc(100vh-2rem)] overflow-hidden rounded-2xl border border-neutral-200 p-4 data-[state=closed]:translate-y-2 data-[state=open]:translate-y-0 data-[state=closed]:opacity-0 data-[state=open]:opacity-100 data-[state=closed]:scale-95 data-[state=open]:scale-100 dark:border-neutral-800"}},defaultVariants:{side:"right"}}),Fr=p.forwardRef(({side:e="right",className:t,children:n,overlayClassName:r,...o},a)=>s.jsxs(hf,{children:[s.jsx(ei,{className:r}),s.jsx(Ys,{ref:a,className:F(gj({side:e}),t),...o,children:n})]}));Fr.displayName=Ys.displayName;const no=({className:e,...t})=>s.jsx("div",{className:F("flex flex-col space-y-2 text-left",e),...t}),ro=p.forwardRef(({className:e,...t},n)=>s.jsx(Qs,{ref:n,className:F("text-lg font-semibold leading-none tracking-tight",e),...t}));ro.displayName=Qs.displayName;const gf=p.forwardRef(({className:e,...t},n)=>s.jsx(Ks,{ref:n,className:F("text-sm text-neutral-500 dark:text-neutral-400",e),...t}));gf.displayName=Ks.displayName;var so="Collapsible",[xj,xf]=pn(so),[vj,ti]=xj(so),vf=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:o,disabled:a,onOpenChange:i,...c}=e,[l,d]=ln({prop:r,defaultProp:o??!1,onChange:i,caller:so});return s.jsx(vj,{scope:n,disabled:a,contentId:Ut(),open:l,onOpenToggle:p.useCallback(()=>d(f=>!f),[d]),children:s.jsx(xe.div,{"data-state":ri(l),"data-disabled":a?"":void 0,...c,ref:t})})});vf.displayName=so;var yf="CollapsibleTrigger",bf=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,o=ti(yf,n);return s.jsx(xe.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":ri(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...r,ref:t,onClick:ye(e.onClick,o.onOpenToggle)})});bf.displayName=yf;var ni="CollapsibleContent",wf=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ti(ni,e.__scopeCollapsible);return s.jsx(cr,{present:n||o.open,children:({present:a})=>s.jsx(yj,{...r,ref:t,present:a})})});wf.displayName=ni;var yj=p.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:o,...a}=e,i=ti(ni,n),[c,l]=p.useState(r),d=p.useRef(null),f=Ne(t,d),u=p.useRef(0),m=u.current,h=p.useRef(0),v=h.current,x=i.open||c,g=p.useRef(x),y=p.useRef(void 0);return p.useEffect(()=>{const k=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(k)},[]),Ge(()=>{const k=d.current;if(k){y.current=y.current||{transitionDuration:k.style.transitionDuration,animationName:k.style.animationName},k.style.transitionDuration="0s",k.style.animationName="none";const _=k.getBoundingClientRect();u.current=_.height,h.current=_.width,g.current||(k.style.transitionDuration=y.current.transitionDuration,k.style.animationName=y.current.animationName),l(r)}},[i.open,r]),s.jsx(xe.div,{"data-state":ri(i.open),"data-disabled":i.disabled?"":void 0,id:i.contentId,hidden:!x,...a,ref:f,style:{"--radix-collapsible-content-height":m?`${m}px`:void 0,"--radix-collapsible-content-width":v?`${v}px`:void 0,...e.style},children:x&&o})});function ri(e){return e?"open":"closed"}var bj=vf,wj=bf,_j=wf,Mt="Accordion",kj=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[si,jj,Sj]=Ra(Mt),[oo]=pn(Mt,[Sj,xf]),oi=xf(),_f=b.forwardRef((e,t)=>{const{type:n,...r}=e,o=r,a=r;return s.jsx(si.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?s.jsx(Aj,{...a,ref:t}):s.jsx(Ej,{...o,ref:t})})});_f.displayName=Mt;var[kf,Cj]=oo(Mt),[jf,Nj]=oo(Mt,{collapsible:!1}),Ej=b.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:o=()=>{},collapsible:a=!1,...i}=e,[c,l]=ln({prop:n,defaultProp:r??"",onChange:o,caller:Mt});return s.jsx(kf,{scope:e.__scopeAccordion,value:b.useMemo(()=>c?[c]:[],[c]),onItemOpen:l,onItemClose:b.useCallback(()=>a&&l(""),[a,l]),children:s.jsx(jf,{scope:e.__scopeAccordion,collapsible:a,children:s.jsx(Sf,{...i,ref:t})})})}),Aj=b.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:o=()=>{},...a}=e,[i,c]=ln({prop:n,defaultProp:r??[],onChange:o,caller:Mt}),l=b.useCallback(f=>c((u=[])=>[...u,f]),[c]),d=b.useCallback(f=>c((u=[])=>u.filter(m=>m!==f)),[c]);return s.jsx(kf,{scope:e.__scopeAccordion,value:i,onItemOpen:l,onItemClose:d,children:s.jsx(jf,{scope:e.__scopeAccordion,collapsible:!0,children:s.jsx(Sf,{...a,ref:t})})})}),[Pj,ao]=oo(Mt),Sf=b.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:o,orientation:a="vertical",...i}=e,c=b.useRef(null),l=Ne(c,t),d=jj(n),u=$s(o)==="ltr",m=ye(e.onKeyDown,h=>{if(!kj.includes(h.key))return;const v=h.target,x=d().filter(N=>!N.ref.current?.disabled),g=x.findIndex(N=>N.ref.current===v),y=x.length;if(g===-1)return;h.preventDefault();let k=g;const _=0,w=y-1,j=()=>{k=g+1,k>w&&(k=_)},P=()=>{k=g-1,k<_&&(k=w)};switch(h.key){case"Home":k=_;break;case"End":k=w;break;case"ArrowRight":a==="horizontal"&&(u?j():P());break;case"ArrowDown":a==="vertical"&&j();break;case"ArrowLeft":a==="horizontal"&&(u?P():j());break;case"ArrowUp":a==="vertical"&&P();break}const T=k%y;x[T].ref.current?.focus()});return s.jsx(Pj,{scope:n,disabled:r,direction:o,orientation:a,children:s.jsx(si.Slot,{scope:n,children:s.jsx(xe.div,{...i,"data-orientation":a,ref:l,onKeyDown:r?void 0:m})})})}),Es="AccordionItem",[Ij,ai]=oo(Es),Cf=b.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...o}=e,a=ao(Es,n),i=Cj(Es,n),c=oi(n),l=Ut(),d=r&&i.value.includes(r)||!1,f=a.disabled||e.disabled;return s.jsx(Ij,{scope:n,open:d,disabled:f,triggerId:l,children:s.jsx(bj,{"data-orientation":a.orientation,"data-state":Tf(d),...c,...o,ref:t,disabled:f,open:d,onOpenChange:u=>{u?i.onItemOpen(r):i.onItemClose(r)}})})});Cf.displayName=Es;var Nf="AccordionHeader",Ef=b.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,o=ao(Mt,n),a=ai(Nf,n);return s.jsx(xe.h3,{"data-orientation":o.orientation,"data-state":Tf(a.open),"data-disabled":a.disabled?"":void 0,...r,ref:t})});Ef.displayName=Nf;var sa="AccordionTrigger",Af=b.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,o=ao(Mt,n),a=ai(sa,n),i=Nj(sa,n),c=oi(n);return s.jsx(si.ItemSlot,{scope:n,children:s.jsx(wj,{"aria-disabled":a.open&&!i.collapsible||void 0,"data-orientation":o.orientation,id:a.triggerId,...c,...r,ref:t})})});Af.displayName=sa;var Pf="AccordionContent",If=b.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,o=ao(Mt,n),a=ai(Pf,n),i=oi(n);return s.jsx(_j,{role:"region","aria-labelledby":a.triggerId,"data-orientation":o.orientation,...i,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});If.displayName=Pf;function Tf(e){return e?"open":"closed"}var Tj=_f,Rf=Cf,Rj=Ef,Of=Af,Mf=If;const Lf=Tj,wr=p.forwardRef(({className:e,...t},n)=>s.jsx(Rf,{ref:n,className:F("border-b border-neutral-200 dark:border-neutral-800",e),...t}));wr.displayName=Rf.displayName;const _r=p.forwardRef(({className:e,children:t,...n},r)=>s.jsx(Rj,{className:"flex",children:s.jsxs(Of,{ref:r,className:F("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline",e),...n,children:[t,s.jsx("span",{className:"ml-3 text-neutral-500 dark:text-neutral-400","aria-hidden":!0,children:"▾"})]})}));_r.displayName=Of.displayName;const kr=p.forwardRef(({className:e,children:t,...n},r)=>s.jsx(Mf,{ref:r,className:F("overflow-hidden text-sm",e),...n,children:s.jsx("div",{className:"pb-4 pt-0",children:t})}));kr.displayName=Mf.displayName;var To="rovingFocusGroup.onEntryFocus",Oj={bubbles:!1,cancelable:!0},Br="RovingFocusGroup",[oa,Df,Mj]=Ra(Br),[Lj,$f]=pn(Br,[Mj]),[Dj,$j]=Lj(Br),zf=p.forwardRef((e,t)=>s.jsx(oa.Provider,{scope:e.__scopeRovingFocusGroup,children:s.jsx(oa.Slot,{scope:e.__scopeRovingFocusGroup,children:s.jsx(zj,{...e,ref:t})})}));zf.displayName=Br;var zj=p.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:a,currentTabStopId:i,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...u}=e,m=p.useRef(null),h=Ne(t,m),v=$s(a),[x,g]=ln({prop:i,defaultProp:c??null,onChange:l,caller:Br}),[y,k]=p.useState(!1),_=on(d),w=Df(n),j=p.useRef(!1),[P,T]=p.useState(0);return p.useEffect(()=>{const N=m.current;if(N)return N.addEventListener(To,_),()=>N.removeEventListener(To,_)},[_]),s.jsx(Dj,{scope:n,orientation:r,dir:v,loop:o,currentTabStopId:x,onItemFocus:p.useCallback(N=>g(N),[g]),onItemShiftTab:p.useCallback(()=>k(!0),[]),onFocusableItemAdd:p.useCallback(()=>T(N=>N+1),[]),onFocusableItemRemove:p.useCallback(()=>T(N=>N-1),[]),children:s.jsx(xe.div,{tabIndex:y||P===0?-1:0,"data-orientation":r,...u,ref:h,style:{outline:"none",...e.style},onMouseDown:ye(e.onMouseDown,()=>{j.current=!0}),onFocus:ye(e.onFocus,N=>{const A=!j.current;if(N.target===N.currentTarget&&A&&!y){const R=new CustomEvent(To,Oj);if(N.currentTarget.dispatchEvent(R),!R.defaultPrevented){const I=w().filter(L=>L.focusable),M=I.find(L=>L.active),z=I.find(L=>L.id===x),V=[M,z,...I].filter(Boolean).map(L=>L.ref.current);Uf(V,f)}}j.current=!1}),onBlur:ye(e.onBlur,()=>k(!1))})})}),Ff="RovingFocusGroupItem",Bf=p.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:a,children:i,...c}=e,l=Ut(),d=a||l,f=$j(Ff,n),u=f.currentTabStopId===d,m=Df(n),{onFocusableItemAdd:h,onFocusableItemRemove:v,currentTabStopId:x}=f;return p.useEffect(()=>{if(r)return h(),()=>v()},[r,h,v]),s.jsx(oa.ItemSlot,{scope:n,id:d,focusable:r,active:o,children:s.jsx(xe.span,{tabIndex:u?0:-1,"data-orientation":f.orientation,...c,ref:t,onMouseDown:ye(e.onMouseDown,g=>{r?f.onItemFocus(d):g.preventDefault()}),onFocus:ye(e.onFocus,()=>f.onItemFocus(d)),onKeyDown:ye(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){f.onItemShiftTab();return}if(g.target!==g.currentTarget)return;const y=Uj(g,f.orientation,f.dir);if(y!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let _=m().filter(w=>w.focusable).map(w=>w.ref.current);if(y==="last")_.reverse();else if(y==="prev"||y==="next"){y==="prev"&&_.reverse();const w=_.indexOf(g.currentTarget);_=f.loop?Vj(_,w+1):_.slice(w+1)}setTimeout(()=>Uf(_))}}),children:typeof i=="function"?i({isCurrentTabStop:u,hasTabStop:x!=null}):i})})});Bf.displayName=Ff;var Fj={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Bj(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Uj(e,t,n){const r=Bj(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Fj[r]}function Uf(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Vj(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Wj=zf,qj=Bf,io="Tabs",[Hj]=pn(io,[$f]),Vf=$f(),[Zj,ii]=Hj(io),Wf=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:o,defaultValue:a,orientation:i="horizontal",dir:c,activationMode:l="automatic",...d}=e,f=$s(c),[u,m]=ln({prop:r,onChange:o,defaultProp:a??"",caller:io});return s.jsx(Zj,{scope:n,baseId:Ut(),value:u,onValueChange:m,orientation:i,dir:f,activationMode:l,children:s.jsx(xe.div,{dir:f,"data-orientation":i,...d,ref:t})})});Wf.displayName=io;var qf="TabsList",Hf=p.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...o}=e,a=ii(qf,n),i=Vf(n);return s.jsx(Wj,{asChild:!0,...i,orientation:a.orientation,dir:a.dir,loop:r,children:s.jsx(xe.div,{role:"tablist","aria-orientation":a.orientation,...o,ref:t})})});Hf.displayName=qf;var Zf="TabsTrigger",Gf=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:o=!1,...a}=e,i=ii(Zf,n),c=Vf(n),l=Kf(i.baseId,r),d=Jf(i.baseId,r),f=r===i.value;return s.jsx(qj,{asChild:!0,...c,focusable:!o,active:f,children:s.jsx(xe.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":d,"data-state":f?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:l,...a,ref:t,onMouseDown:ye(e.onMouseDown,u=>{!o&&u.button===0&&u.ctrlKey===!1?i.onValueChange(r):u.preventDefault()}),onKeyDown:ye(e.onKeyDown,u=>{[" ","Enter"].includes(u.key)&&i.onValueChange(r)}),onFocus:ye(e.onFocus,()=>{const u=i.activationMode!=="manual";!f&&!o&&u&&i.onValueChange(r)})})})});Gf.displayName=Zf;var Yf="TabsContent",Qf=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:o,children:a,...i}=e,c=ii(Yf,n),l=Kf(c.baseId,r),d=Jf(c.baseId,r),f=r===c.value,u=p.useRef(f);return p.useEffect(()=>{const m=requestAnimationFrame(()=>u.current=!1);return()=>cancelAnimationFrame(m)},[]),s.jsx(cr,{present:o||f,children:({present:m})=>s.jsx(xe.div,{"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":l,hidden:!m,id:d,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:u.current?"0s":void 0},children:m&&a})})});Qf.displayName=Yf;function Kf(e,t){return`${e}-trigger-${t}`}function Jf(e,t){return`${e}-content-${t}`}var Gj=Wf,Xf=Hf,ep=Gf,tp=Qf;const ci=Gj,co=p.forwardRef(({className:e,...t},n)=>s.jsx(Xf,{ref:n,className:F("inline-flex h-10 items-center justify-center rounded-md bg-neutral-100 p-1 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400",e),...t}));co.displayName=Xf.displayName;const Rr=p.forwardRef(({className:e,...t},n)=>s.jsx(ep,{ref:n,className:F("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900/20 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-neutral-950 data-[state=active]:shadow-sm dark:ring-offset-neutral-950 dark:focus-visible:ring-neutral-50/20 dark:data-[state=active]:bg-neutral-950 dark:data-[state=active]:text-neutral-50",e),...t}));Rr.displayName=ep.displayName;const np=p.forwardRef(({className:e,...t},n)=>s.jsx(tp,{ref:n,className:F("mt-2 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900/20 dark:ring-offset-neutral-950 dark:focus-visible:ring-neutral-50/20",e),...t}));np.displayName=tp.displayName;function Yn({title:e,description:t,actionLabel:n,onAction:r,className:o}){return s.jsx("div",{className:F("flex flex-col items-center justify-center rounded-xl border border-neutral-200 bg-white p-10 text-center dark:border-neutral-800 dark:bg-neutral-950",o),children:s.jsxs("div",{className:"max-w-sm",children:[s.jsx("h3",{className:"text-base font-semibold text-neutral-950 dark:text-neutral-50",children:e}),t?s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:t}):null,n&&r?s.jsx("div",{className:"mt-5",children:s.jsx(re,{type:"button",onClick:r,variant:"secondary",children:n})}):null]})})}function Wt({title:e,description:t,onRetry:n,className:r}){return s.jsxs("div",{className:F("rounded-xl border border-neutral-200 bg-white p-6 text-neutral-950 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",r),children:[s.jsx("h3",{className:"text-sm font-semibold",children:e??"Something went wrong"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:t}),n?s.jsx("div",{className:"mt-4",children:s.jsx(re,{type:"button",variant:"outline",onClick:n,children:"Try again"})}):null]})}class Yj extends p.Component{state={error:null};static getDerivedStateFromError(t){return{error:t}}render(){return this.state.error?this.props.fallback?this.props.fallback(this.state.error):s.jsx(Wt,{description:this.state.error.message}):this.props.children}}function Qj(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}const Kj=e=>{switch(e){case"success":return eS;case"info":return nS;case"warning":return tS;case"error":return rS;default:return null}},Jj=Array(12).fill(0),Xj=({visible:e,className:t})=>b.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},b.createElement("div",{className:"sonner-spinner"},Jj.map((n,r)=>b.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),eS=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),tS=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),nS=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),rS=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},b.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),sS=b.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},b.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),b.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),oS=()=>{const[e,t]=b.useState(document.hidden);return b.useEffect(()=>{const n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e};let aa=1;class aS{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:r,...o}=t,a=typeof t?.id=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:aa++,i=this.toasts.find(l=>l.id===a),c=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(a)&&this.dismissedToasts.delete(a),i?this.toasts=this.toasts.map(l=>l.id===a?(this.publish({...l,...t,id:a,title:r}),{...l,...t,id:a,dismissible:c,title:r}):l):this.addToast({title:r,...o,dismissible:c,id:a}),a},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(r=>r({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const o=Promise.resolve(t instanceof Function?t():t);let a=r!==void 0,i;const c=o.then(async d=>{if(i=["resolve",d],b.isValidElement(d))a=!1,this.create({id:r,type:"default",message:d});else if(cS(d)&&!d.ok){a=!1;const u=typeof n.error=="function"?await n.error(`HTTP error! status: ${d.status}`):n.error,m=typeof n.description=="function"?await n.description(`HTTP error! status: ${d.status}`):n.description,v=typeof u=="object"&&!b.isValidElement(u)?u:{message:u};this.create({id:r,type:"error",description:m,...v})}else if(d instanceof Error){a=!1;const u=typeof n.error=="function"?await n.error(d):n.error,m=typeof n.description=="function"?await n.description(d):n.description,v=typeof u=="object"&&!b.isValidElement(u)?u:{message:u};this.create({id:r,type:"error",description:m,...v})}else if(n.success!==void 0){a=!1;const u=typeof n.success=="function"?await n.success(d):n.success,m=typeof n.description=="function"?await n.description(d):n.description,v=typeof u=="object"&&!b.isValidElement(u)?u:{message:u};this.create({id:r,type:"success",description:m,...v})}}).catch(async d=>{if(i=["reject",d],n.error!==void 0){a=!1;const f=typeof n.error=="function"?await n.error(d):n.error,u=typeof n.description=="function"?await n.description(d):n.description,h=typeof f=="object"&&!b.isValidElement(f)?f:{message:f};this.create({id:r,type:"error",description:u,...h})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),n.finally==null||n.finally.call(n)}),l=()=>new Promise((d,f)=>c.then(()=>i[0]==="reject"?f(i[1]):d(i[1])).catch(f));return typeof r!="string"&&typeof r!="number"?{unwrap:l}:Object.assign(r,{unwrap:l})},this.custom=(t,n)=>{const r=n?.id||aa++;return this.create({jsx:t(r),id:r,...n}),r},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const dt=new aS,iS=(e,t)=>{const n=t?.id||aa++;return dt.addToast({title:e,...t,id:n}),n},cS=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",lS=iS,dS=()=>dt.toasts,uS=()=>dt.getActiveToasts(),fS=Object.assign(lS,{success:dt.success,info:dt.info,warning:dt.warning,error:dt.error,custom:dt.custom,message:dt.message,promise:dt.promise,dismiss:dt.dismiss,loading:dt.loading},{getHistory:dS,getToasts:uS});Qj("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function ns(e){return e.label!==void 0}const pS=3,mS="24px",hS="16px",Bc=4e3,gS=356,xS=14,vS=45,yS=200;function Dt(...e){return e.filter(Boolean).join(" ")}function bS(e){const[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}const wS=e=>{var t,n,r,o,a,i,c,l,d;const{invert:f,toast:u,unstyled:m,interacting:h,setHeights:v,visibleToasts:x,heights:g,index:y,toasts:k,expanded:_,removeToast:w,defaultRichColors:j,closeButton:P,style:T,cancelButtonStyle:N,actionButtonStyle:A,className:R="",descriptionClassName:I="",duration:M,position:z,gap:D,expandByDefault:V,classNames:L,icons:S,closeButtonAriaLabel:C="Close toast"}=e,[W,Z]=b.useState(null),[Q,de]=b.useState(null),[q,K]=b.useState(!1),[Y,me]=b.useState(!1),[$,G]=b.useState(!1),[pe,U]=b.useState(!1),[se,le]=b.useState(!1),[ue,Te]=b.useState(0),[We,Ye]=b.useState(0),qe=b.useRef(u.duration||M||Bc),_t=b.useRef(null),Qe=b.useRef(null),tn=y===0,xt=y+1<=x,Se=u.type,Xe=u.dismissible!==!1,ke=u.className||"",Gt=u.descriptionClassName||"",ft=b.useMemo(()=>g.findIndex(fe=>fe.toastId===u.id)||0,[g,u.id]),it=b.useMemo(()=>{var fe;return(fe=u.closeButton)!=null?fe:P},[u.closeButton,P]),O=b.useMemo(()=>u.duration||M||Bc,[u.duration,M]),X=b.useRef(0),ae=b.useRef(0),be=b.useRef(0),we=b.useRef(null),[Re,Tn]=z.split("-"),vt=b.useMemo(()=>g.reduce((fe,De,ve)=>ve>=ft?fe:fe+De.height,0),[g,ft]),Yt=oS(),lr=u.invert||f,gn=Se==="loading";ae.current=b.useMemo(()=>ft*D+vt,[ft,vt]),b.useEffect(()=>{qe.current=O},[O]),b.useEffect(()=>{K(!0)},[]),b.useEffect(()=>{const fe=Qe.current;if(fe){const De=fe.getBoundingClientRect().height;return Ye(De),v(ve=>[{toastId:u.id,height:De,position:u.position},...ve]),()=>v(ve=>ve.filter($e=>$e.toastId!==u.id))}},[v,u.id]),b.useLayoutEffect(()=>{if(!q)return;const fe=Qe.current,De=fe.style.height;fe.style.height="auto";const ve=fe.getBoundingClientRect().height;fe.style.height=De,Ye(ve),v($e=>$e.find(ze=>ze.toastId===u.id)?$e.map(ze=>ze.toastId===u.id?{...ze,height:ve}:ze):[{toastId:u.id,height:ve,position:u.position},...$e])},[q,u.title,u.description,v,u.id,u.jsx,u.action,u.cancel]);const Lt=b.useCallback(()=>{me(!0),Te(ae.current),v(fe=>fe.filter(De=>De.toastId!==u.id)),setTimeout(()=>{w(u)},yS)},[u,w,v,ae]);b.useEffect(()=>{if(u.promise&&Se==="loading"||u.duration===1/0||u.type==="loading")return;let fe;return _||h||Yt?(()=>{if(be.current<X.current){const $e=new Date().getTime()-X.current;qe.current=qe.current-$e}be.current=new Date().getTime()})():(()=>{qe.current!==1/0&&(X.current=new Date().getTime(),fe=setTimeout(()=>{u.onAutoClose==null||u.onAutoClose.call(u,u),Lt()},qe.current))})(),()=>clearTimeout(fe)},[_,h,u,Se,Yt,Lt]),b.useEffect(()=>{u.delete&&(Lt(),u.onDismiss==null||u.onDismiss.call(u,u))},[Lt,u.delete]);function Rn(){var fe;if(S?.loading){var De;return b.createElement("div",{className:Dt(L?.loader,u==null||(De=u.classNames)==null?void 0:De.loader,"sonner-loader"),"data-visible":Se==="loading"},S.loading)}return b.createElement(Xj,{className:Dt(L?.loader,u==null||(fe=u.classNames)==null?void 0:fe.loader),visible:Se==="loading"})}const On=u.icon||S?.[Se]||Kj(Se);var Ur,nn;return b.createElement("li",{tabIndex:0,ref:Qe,className:Dt(R,ke,L?.toast,u==null||(t=u.classNames)==null?void 0:t.toast,L?.default,L?.[Se],u==null||(n=u.classNames)==null?void 0:n[Se]),"data-sonner-toast":"","data-rich-colors":(Ur=u.richColors)!=null?Ur:j,"data-styled":!(u.jsx||u.unstyled||m),"data-mounted":q,"data-promise":!!u.promise,"data-swiped":se,"data-removed":Y,"data-visible":xt,"data-y-position":Re,"data-x-position":Tn,"data-index":y,"data-front":tn,"data-swiping":$,"data-dismissible":Xe,"data-type":Se,"data-invert":lr,"data-swipe-out":pe,"data-swipe-direction":Q,"data-expanded":!!(_||V&&q),"data-testid":u.testId,style:{"--index":y,"--toasts-before":y,"--z-index":k.length-y,"--offset":`${Y?ue:ae.current}px`,"--initial-height":V?"auto":`${We}px`,...T,...u.style},onDragEnd:()=>{G(!1),Z(null),we.current=null},onPointerDown:fe=>{fe.button!==2&&(gn||!Xe||(_t.current=new Date,Te(ae.current),fe.target.setPointerCapture(fe.pointerId),fe.target.tagName!=="BUTTON"&&(G(!0),we.current={x:fe.clientX,y:fe.clientY})))},onPointerUp:()=>{var fe,De,ve;if(pe||!Xe)return;we.current=null;const $e=Number(((fe=Qe.current)==null?void 0:fe.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Mn=Number(((De=Qe.current)==null?void 0:De.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),ze=new Date().getTime()-((ve=_t.current)==null?void 0:ve.getTime()),Ke=W==="x"?$e:Mn,xn=Math.abs(Ke)/ze;if(Math.abs(Ke)>=vS||xn>.11){Te(ae.current),u.onDismiss==null||u.onDismiss.call(u,u),de(W==="x"?$e>0?"right":"left":Mn>0?"down":"up"),Lt(),U(!0);return}else{var ct,pt;(ct=Qe.current)==null||ct.style.setProperty("--swipe-amount-x","0px"),(pt=Qe.current)==null||pt.style.setProperty("--swipe-amount-y","0px")}le(!1),G(!1),Z(null)},onPointerMove:fe=>{var De,ve,$e;if(!we.current||!Xe||((De=window.getSelection())==null?void 0:De.toString().length)>0)return;const ze=fe.clientY-we.current.y,Ke=fe.clientX-we.current.x;var xn;const ct=(xn=e.swipeDirections)!=null?xn:bS(z);!W&&(Math.abs(Ke)>1||Math.abs(ze)>1)&&Z(Math.abs(Ke)>Math.abs(ze)?"x":"y");let pt={x:0,y:0};const mt=et=>1/(1.5+Math.abs(et)/20);if(W==="y"){if(ct.includes("top")||ct.includes("bottom"))if(ct.includes("top")&&ze<0||ct.includes("bottom")&&ze>0)pt.y=ze;else{const et=ze*mt(ze);pt.y=Math.abs(et)<Math.abs(ze)?et:ze}}else if(W==="x"&&(ct.includes("left")||ct.includes("right")))if(ct.includes("left")&&Ke<0||ct.includes("right")&&Ke>0)pt.x=Ke;else{const et=Ke*mt(Ke);pt.x=Math.abs(et)<Math.abs(Ke)?et:Ke}(Math.abs(pt.x)>0||Math.abs(pt.y)>0)&&le(!0),(ve=Qe.current)==null||ve.style.setProperty("--swipe-amount-x",`${pt.x}px`),($e=Qe.current)==null||$e.style.setProperty("--swipe-amount-y",`${pt.y}px`)}},it&&!u.jsx&&Se!=="loading"?b.createElement("button",{"aria-label":C,"data-disabled":gn,"data-close-button":!0,onClick:gn||!Xe?()=>{}:()=>{Lt(),u.onDismiss==null||u.onDismiss.call(u,u)},className:Dt(L?.closeButton,u==null||(r=u.classNames)==null?void 0:r.closeButton)},(nn=S?.close)!=null?nn:sS):null,(Se||u.icon||u.promise)&&u.icon!==null&&(S?.[Se]!==null||u.icon)?b.createElement("div",{"data-icon":"",className:Dt(L?.icon,u==null||(o=u.classNames)==null?void 0:o.icon)},u.promise||u.type==="loading"&&!u.icon?u.icon||Rn():null,u.type!=="loading"?On:null):null,b.createElement("div",{"data-content":"",className:Dt(L?.content,u==null||(a=u.classNames)==null?void 0:a.content)},b.createElement("div",{"data-title":"",className:Dt(L?.title,u==null||(i=u.classNames)==null?void 0:i.title)},u.jsx?u.jsx:typeof u.title=="function"?u.title():u.title),u.description?b.createElement("div",{"data-description":"",className:Dt(I,Gt,L?.description,u==null||(c=u.classNames)==null?void 0:c.description)},typeof u.description=="function"?u.description():u.description):null),b.isValidElement(u.cancel)?u.cancel:u.cancel&&ns(u.cancel)?b.createElement("button",{"data-button":!0,"data-cancel":!0,style:u.cancelButtonStyle||N,onClick:fe=>{ns(u.cancel)&&Xe&&(u.cancel.onClick==null||u.cancel.onClick.call(u.cancel,fe),Lt())},className:Dt(L?.cancelButton,u==null||(l=u.classNames)==null?void 0:l.cancelButton)},u.cancel.label):null,b.isValidElement(u.action)?u.action:u.action&&ns(u.action)?b.createElement("button",{"data-button":!0,"data-action":!0,style:u.actionButtonStyle||A,onClick:fe=>{ns(u.action)&&(u.action.onClick==null||u.action.onClick.call(u.action,fe),!fe.defaultPrevented&&Lt())},className:Dt(L?.actionButton,u==null||(d=u.classNames)==null?void 0:d.actionButton)},u.action.label):null)};function Uc(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function _S(e,t){const n={};return[e,t].forEach((r,o)=>{const a=o===1,i=a?"--mobile-offset":"--offset",c=a?hS:mS;function l(d){["top","right","bottom","left"].forEach(f=>{n[`${i}-${f}`]=typeof d=="number"?`${d}px`:d})}typeof r=="number"||typeof r=="string"?l(r):typeof r=="object"?["top","right","bottom","left"].forEach(d=>{r[d]===void 0?n[`${i}-${d}`]=c:n[`${i}-${d}`]=typeof r[d]=="number"?`${r[d]}px`:r[d]}):l(c)}),n}const kS=b.forwardRef(function(t,n){const{id:r,invert:o,position:a="bottom-right",hotkey:i=["altKey","KeyT"],expand:c,closeButton:l,className:d,offset:f,mobileOffset:u,theme:m="light",richColors:h,duration:v,style:x,visibleToasts:g=pS,toastOptions:y,dir:k=Uc(),gap:_=xS,icons:w,containerAriaLabel:j="Notifications"}=t,[P,T]=b.useState([]),N=b.useMemo(()=>r?P.filter(q=>q.toasterId===r):P.filter(q=>!q.toasterId),[P,r]),A=b.useMemo(()=>Array.from(new Set([a].concat(N.filter(q=>q.position).map(q=>q.position)))),[N,a]),[R,I]=b.useState([]),[M,z]=b.useState(!1),[D,V]=b.useState(!1),[L,S]=b.useState(m!=="system"?m:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),C=b.useRef(null),W=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),Z=b.useRef(null),Q=b.useRef(!1),de=b.useCallback(q=>{T(K=>{var Y;return(Y=K.find(me=>me.id===q.id))!=null&&Y.delete||dt.dismiss(q.id),K.filter(({id:me})=>me!==q.id)})},[]);return b.useEffect(()=>dt.subscribe(q=>{if(q.dismiss){requestAnimationFrame(()=>{T(K=>K.map(Y=>Y.id===q.id?{...Y,delete:!0}:Y))});return}setTimeout(()=>{fa.flushSync(()=>{T(K=>{const Y=K.findIndex(me=>me.id===q.id);return Y!==-1?[...K.slice(0,Y),{...K[Y],...q},...K.slice(Y+1)]:[q,...K]})})})}),[P]),b.useEffect(()=>{if(m!=="system"){S(m);return}if(m==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?S("dark"):S("light")),typeof window>"u")return;const q=window.matchMedia("(prefers-color-scheme: dark)");try{q.addEventListener("change",({matches:K})=>{S(K?"dark":"light")})}catch{q.addListener(({matches:Y})=>{try{S(Y?"dark":"light")}catch(me){console.error(me)}})}},[m]),b.useEffect(()=>{P.length<=1&&z(!1)},[P]),b.useEffect(()=>{const q=K=>{var Y;if(i.every(G=>K[G]||K.code===G)){var $;z(!0),($=C.current)==null||$.focus()}K.code==="Escape"&&(document.activeElement===C.current||(Y=C.current)!=null&&Y.contains(document.activeElement))&&z(!1)};return document.addEventListener("keydown",q),()=>document.removeEventListener("keydown",q)},[i]),b.useEffect(()=>{if(C.current)return()=>{Z.current&&(Z.current.focus({preventScroll:!0}),Z.current=null,Q.current=!1)}},[C.current]),b.createElement("section",{ref:n,"aria-label":`${j} ${W}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},A.map((q,K)=>{var Y;const[me,$]=q.split("-");return N.length?b.createElement("ol",{key:q,dir:k==="auto"?Uc():k,tabIndex:-1,ref:C,className:d,"data-sonner-toaster":!0,"data-sonner-theme":L,"data-y-position":me,"data-x-position":$,style:{"--front-toast-height":`${((Y=R[0])==null?void 0:Y.height)||0}px`,"--width":`${gS}px`,"--gap":`${_}px`,...x,..._S(f,u)},onBlur:G=>{Q.current&&!G.currentTarget.contains(G.relatedTarget)&&(Q.current=!1,Z.current&&(Z.current.focus({preventScroll:!0}),Z.current=null))},onFocus:G=>{G.target instanceof HTMLElement&&G.target.dataset.dismissible==="false"||Q.current||(Q.current=!0,Z.current=G.relatedTarget)},onMouseEnter:()=>z(!0),onMouseMove:()=>z(!0),onMouseLeave:()=>{D||z(!1)},onDragEnd:()=>z(!1),onPointerDown:G=>{G.target instanceof HTMLElement&&G.target.dataset.dismissible==="false"||V(!0)},onPointerUp:()=>V(!1)},N.filter(G=>!G.position&&K===0||G.position===q).map((G,pe)=>{var U,se;return b.createElement(wS,{key:G.id,icons:w,index:pe,toast:G,defaultRichColors:h,duration:(U=y?.duration)!=null?U:v,className:y?.className,descriptionClassName:y?.descriptionClassName,invert:o,visibleToasts:g,closeButton:(se=y?.closeButton)!=null?se:l,interacting:D,position:q,style:y?.style,unstyled:y?.unstyled,classNames:y?.classNames,cancelButtonStyle:y?.cancelButtonStyle,actionButtonStyle:y?.actionButtonStyle,closeButtonAriaLabel:y?.closeButtonAriaLabel,removeToast:de,toasts:N.filter(le=>le.position==G.position),heights:R.filter(le=>le.position==G.position),setHeights:I,expandByDefault:c,gap:_,expanded:M,swipeDirections:t.swipeDirections})})):null}))}),li=p.createContext(null);function jS(){const e=p.useContext(li);if(!e)throw new Error("useToast must be used within ToastProvider");return e}function lo(){return p.useContext(li)}function SS({children:e}){const t=p.useCallback(n=>{const r=n.title??"",o=n.description;fS(r||o||"Notification",{description:r?o:void 0,duration:n.durationMs??5e3,action:n.actionLabel&&n.onAction?{label:n.actionLabel,onClick:()=>n.onAction?.()}:void 0})},[]);return s.jsxs(li.Provider,{value:{toast:t},children:[e,s.jsx(kS,{position:"top-center",closeButton:!0,expand:!0,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:pointer-events-auto group-[.toaster]:w-full group-[.toaster]:rounded-xl group-[.toaster]:border group-[.toaster]:border-neutral-200 group-[.toaster]:bg-white group-[.toaster]:p-4 group-[.toaster]:shadow-lg dark:group-[.toaster]:border-neutral-800 dark:group-[.toaster]:bg-neutral-950",title:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",description:"text-sm text-neutral-600 dark:text-neutral-400",actionButton:"h-8 rounded-md border border-neutral-200 bg-white px-3 text-xs font-medium text-neutral-900 shadow-sm hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50 dark:hover:bg-neutral-900",cancelButton:"h-8 rounded-md bg-neutral-100 px-3 text-xs font-medium text-neutral-900 hover:bg-neutral-200 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-700",closeButton:"rounded-md text-neutral-600 opacity-0 transition-opacity hover:bg-neutral-100 hover:text-neutral-900 group-hover:opacity-100 dark:text-neutral-400 dark:hover:bg-neutral-800 dark:hover:text-neutral-50"}}})]})}const{entries:rp,setPrototypeOf:Vc,isFrozen:CS,getPrototypeOf:NS,getOwnPropertyDescriptor:ES}=Object;let{freeze:ot,seal:bt,create:ia}=Object,{apply:ca,construct:la}=typeof Reflect<"u"&&Reflect;ot||(ot=function(t){return t});bt||(bt=function(t){return t});ca||(ca=function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),a=2;a<r;a++)o[a-2]=arguments[a];return t.apply(n,o)});la||(la=function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return new t(...r)});const rs=at(Array.prototype.forEach),AS=at(Array.prototype.lastIndexOf),Wc=at(Array.prototype.pop),pr=at(Array.prototype.push),PS=at(Array.prototype.splice),ds=at(String.prototype.toLowerCase),Ro=at(String.prototype.toString),Oo=at(String.prototype.match),mr=at(String.prototype.replace),IS=at(String.prototype.indexOf),TS=at(String.prototype.trim),Et=at(Object.prototype.hasOwnProperty),tt=at(RegExp.prototype.test),hr=RS(TypeError);function at(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return ca(e,t,r)}}function RS(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return la(e,n)}}function ge(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ds;Vc&&Vc(e,null);let r=t.length;for(;r--;){let o=t[r];if(typeof o=="string"){const a=n(o);a!==o&&(CS(t)||(t[r]=a),o=a)}e[o]=!0}return e}function OS(e){for(let t=0;t<e.length;t++)Et(e,t)||(e[t]=null);return e}function $t(e){const t=ia(null);for(const[n,r]of rp(e))Et(e,n)&&(Array.isArray(r)?t[n]=OS(r):r&&typeof r=="object"&&r.constructor===Object?t[n]=$t(r):t[n]=r);return t}function gr(e,t){for(;e!==null;){const r=ES(e,t);if(r){if(r.get)return at(r.get);if(typeof r.value=="function")return at(r.value)}e=NS(e)}function n(){return null}return n}const qc=ot(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Mo=ot(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Lo=ot(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),MS=ot(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Do=ot(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),LS=ot(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Hc=ot(["#text"]),Zc=ot(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),$o=ot(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Gc=ot(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),ss=ot(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),DS=bt(/\{\{[\w\W]*|[\w\W]*\}\}/gm),$S=bt(/<%[\w\W]*|[\w\W]*%>/gm),zS=bt(/\$\{[\w\W]*/gm),FS=bt(/^data-[\-\w.\u00B7-\uFFFF]+$/),BS=bt(/^aria-[\-\w]+$/),sp=bt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),US=bt(/^(?:\w+script|data):/i),VS=bt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),op=bt(/^html$/i),WS=bt(/^[a-z][.\w]*(-[.\w]+)+$/i);var Yc=Object.freeze({__proto__:null,ARIA_ATTR:BS,ATTR_WHITESPACE:VS,CUSTOM_ELEMENT:WS,DATA_ATTR:FS,DOCTYPE_NAME:op,ERB_EXPR:$S,IS_ALLOWED_URI:sp,IS_SCRIPT_OR_DATA:US,MUSTACHE_EXPR:DS,TMPLIT_EXPR:zS});const xr={element:1,text:3,progressingInstruction:7,comment:8,document:9},qS=function(){return typeof window>"u"?null:window},HS=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(r=n.getAttribute(o));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},Qc=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function ap(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:qS();const t=ie=>ap(ie);if(t.version="3.3.1",t.removed=[],!e||!e.document||e.document.nodeType!==xr.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e;const r=n,o=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:i,Node:c,Element:l,NodeFilter:d,NamedNodeMap:f=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:u,DOMParser:m,trustedTypes:h}=e,v=l.prototype,x=gr(v,"cloneNode"),g=gr(v,"remove"),y=gr(v,"nextSibling"),k=gr(v,"childNodes"),_=gr(v,"parentNode");if(typeof i=="function"){const ie=n.createElement("template");ie.content&&ie.content.ownerDocument&&(n=ie.content.ownerDocument)}let w,j="";const{implementation:P,createNodeIterator:T,createDocumentFragment:N,getElementsByTagName:A}=n,{importNode:R}=r;let I=Qc();t.isSupported=typeof rp=="function"&&typeof _=="function"&&P&&P.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:M,ERB_EXPR:z,TMPLIT_EXPR:D,DATA_ATTR:V,ARIA_ATTR:L,IS_SCRIPT_OR_DATA:S,ATTR_WHITESPACE:C,CUSTOM_ELEMENT:W}=Yc;let{IS_ALLOWED_URI:Z}=Yc,Q=null;const de=ge({},[...qc,...Mo,...Lo,...Do,...Hc]);let q=null;const K=ge({},[...Zc,...$o,...Gc,...ss]);let Y=Object.seal(ia(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),me=null,$=null;const G=Object.seal(ia(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let pe=!0,U=!0,se=!1,le=!0,ue=!1,Te=!0,We=!1,Ye=!1,qe=!1,_t=!1,Qe=!1,tn=!1,xt=!0,Se=!1;const Xe="user-content-";let ke=!0,Gt=!1,ft={},it=null;const O=ge({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let X=null;const ae=ge({},["audio","video","img","source","image","track"]);let be=null;const we=ge({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Re="http://www.w3.org/1998/Math/MathML",Tn="http://www.w3.org/2000/svg",vt="http://www.w3.org/1999/xhtml";let Yt=vt,lr=!1,gn=null;const Lt=ge({},[Re,Tn,vt],Ro);let Rn=ge({},["mi","mo","mn","ms","mtext"]),On=ge({},["annotation-xml"]);const Ur=ge({},["title","style","font","a","script"]);let nn=null;const fe=["application/xhtml+xml","text/html"],De="text/html";let ve=null,$e=null;const Mn=n.createElement("form"),ze=function(E){return E instanceof RegExp||E instanceof Function},Ke=function(){let E=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!($e&&$e===E)){if((!E||typeof E!="object")&&(E={}),E=$t(E),nn=fe.indexOf(E.PARSER_MEDIA_TYPE)===-1?De:E.PARSER_MEDIA_TYPE,ve=nn==="application/xhtml+xml"?Ro:ds,Q=Et(E,"ALLOWED_TAGS")?ge({},E.ALLOWED_TAGS,ve):de,q=Et(E,"ALLOWED_ATTR")?ge({},E.ALLOWED_ATTR,ve):K,gn=Et(E,"ALLOWED_NAMESPACES")?ge({},E.ALLOWED_NAMESPACES,Ro):Lt,be=Et(E,"ADD_URI_SAFE_ATTR")?ge($t(we),E.ADD_URI_SAFE_ATTR,ve):we,X=Et(E,"ADD_DATA_URI_TAGS")?ge($t(ae),E.ADD_DATA_URI_TAGS,ve):ae,it=Et(E,"FORBID_CONTENTS")?ge({},E.FORBID_CONTENTS,ve):O,me=Et(E,"FORBID_TAGS")?ge({},E.FORBID_TAGS,ve):$t({}),$=Et(E,"FORBID_ATTR")?ge({},E.FORBID_ATTR,ve):$t({}),ft=Et(E,"USE_PROFILES")?E.USE_PROFILES:!1,pe=E.ALLOW_ARIA_ATTR!==!1,U=E.ALLOW_DATA_ATTR!==!1,se=E.ALLOW_UNKNOWN_PROTOCOLS||!1,le=E.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ue=E.SAFE_FOR_TEMPLATES||!1,Te=E.SAFE_FOR_XML!==!1,We=E.WHOLE_DOCUMENT||!1,_t=E.RETURN_DOM||!1,Qe=E.RETURN_DOM_FRAGMENT||!1,tn=E.RETURN_TRUSTED_TYPE||!1,qe=E.FORCE_BODY||!1,xt=E.SANITIZE_DOM!==!1,Se=E.SANITIZE_NAMED_PROPS||!1,ke=E.KEEP_CONTENT!==!1,Gt=E.IN_PLACE||!1,Z=E.ALLOWED_URI_REGEXP||sp,Yt=E.NAMESPACE||vt,Rn=E.MATHML_TEXT_INTEGRATION_POINTS||Rn,On=E.HTML_INTEGRATION_POINTS||On,Y=E.CUSTOM_ELEMENT_HANDLING||{},E.CUSTOM_ELEMENT_HANDLING&&ze(E.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Y.tagNameCheck=E.CUSTOM_ELEMENT_HANDLING.tagNameCheck),E.CUSTOM_ELEMENT_HANDLING&&ze(E.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Y.attributeNameCheck=E.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),E.CUSTOM_ELEMENT_HANDLING&&typeof E.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Y.allowCustomizedBuiltInElements=E.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ue&&(U=!1),Qe&&(_t=!0),ft&&(Q=ge({},Hc),q=[],ft.html===!0&&(ge(Q,qc),ge(q,Zc)),ft.svg===!0&&(ge(Q,Mo),ge(q,$o),ge(q,ss)),ft.svgFilters===!0&&(ge(Q,Lo),ge(q,$o),ge(q,ss)),ft.mathMl===!0&&(ge(Q,Do),ge(q,Gc),ge(q,ss))),E.ADD_TAGS&&(typeof E.ADD_TAGS=="function"?G.tagCheck=E.ADD_TAGS:(Q===de&&(Q=$t(Q)),ge(Q,E.ADD_TAGS,ve))),E.ADD_ATTR&&(typeof E.ADD_ATTR=="function"?G.attributeCheck=E.ADD_ATTR:(q===K&&(q=$t(q)),ge(q,E.ADD_ATTR,ve))),E.ADD_URI_SAFE_ATTR&&ge(be,E.ADD_URI_SAFE_ATTR,ve),E.FORBID_CONTENTS&&(it===O&&(it=$t(it)),ge(it,E.FORBID_CONTENTS,ve)),E.ADD_FORBID_CONTENTS&&(it===O&&(it=$t(it)),ge(it,E.ADD_FORBID_CONTENTS,ve)),ke&&(Q["#text"]=!0),We&&ge(Q,["html","head","body"]),Q.table&&(ge(Q,["tbody"]),delete me.tbody),E.TRUSTED_TYPES_POLICY){if(typeof E.TRUSTED_TYPES_POLICY.createHTML!="function")throw hr('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof E.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw hr('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=E.TRUSTED_TYPES_POLICY,j=w.createHTML("")}else w===void 0&&(w=HS(h,o)),w!==null&&typeof j=="string"&&(j=w.createHTML(""));ot&&ot(E),$e=E}},xn=ge({},[...Mo,...Lo,...MS]),ct=ge({},[...Do,...LS]),pt=function(E){let H=_(E);(!H||!H.tagName)&&(H={namespaceURI:Yt,tagName:"template"});const ne=ds(E.tagName),Ce=ds(H.tagName);return gn[E.namespaceURI]?E.namespaceURI===Tn?H.namespaceURI===vt?ne==="svg":H.namespaceURI===Re?ne==="svg"&&(Ce==="annotation-xml"||Rn[Ce]):!!xn[ne]:E.namespaceURI===Re?H.namespaceURI===vt?ne==="math":H.namespaceURI===Tn?ne==="math"&&On[Ce]:!!ct[ne]:E.namespaceURI===vt?H.namespaceURI===Tn&&!On[Ce]||H.namespaceURI===Re&&!Rn[Ce]?!1:!ct[ne]&&(Ur[ne]||!xn[ne]):!!(nn==="application/xhtml+xml"&&gn[E.namespaceURI]):!1},mt=function(E){pr(t.removed,{element:E});try{_(E).removeChild(E)}catch{g(E)}},et=function(E,H){try{pr(t.removed,{attribute:H.getAttributeNode(E),from:H})}catch{pr(t.removed,{attribute:null,from:H})}if(H.removeAttribute(E),E==="is")if(_t||Qe)try{mt(H)}catch{}else try{H.setAttribute(E,"")}catch{}},mo=function(E){let H=null,ne=null;if(qe)E="<remove></remove>"+E;else{const Fe=Oo(E,/^[\r\n\t ]+/);ne=Fe&&Fe[0]}nn==="application/xhtml+xml"&&Yt===vt&&(E='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+E+"</body></html>");const Ce=w?w.createHTML(E):E;if(Yt===vt)try{H=new m().parseFromString(Ce,nn)}catch{}if(!H||!H.documentElement){H=P.createDocument(Yt,"template",null);try{H.documentElement.innerHTML=lr?j:Ce}catch{}}const Je=H.body||H.documentElement;return E&&ne&&Je.insertBefore(n.createTextNode(ne),Je.childNodes[0]||null),Yt===vt?A.call(H,We?"html":"body")[0]:We?H.documentElement:Je},bi=function(E){return T.call(E.ownerDocument||E,E,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},ho=function(E){return E instanceof u&&(typeof E.nodeName!="string"||typeof E.textContent!="string"||typeof E.removeChild!="function"||!(E.attributes instanceof f)||typeof E.removeAttribute!="function"||typeof E.setAttribute!="function"||typeof E.namespaceURI!="string"||typeof E.insertBefore!="function"||typeof E.hasChildNodes!="function")},wi=function(E){return typeof c=="function"&&E instanceof c};function Qt(ie,E,H){rs(ie,ne=>{ne.call(t,E,H,$e)})}const _i=function(E){let H=null;if(Qt(I.beforeSanitizeElements,E,null),ho(E))return mt(E),!0;const ne=ve(E.nodeName);if(Qt(I.uponSanitizeElement,E,{tagName:ne,allowedTags:Q}),Te&&E.hasChildNodes()&&!wi(E.firstElementChild)&&tt(/<[/\w!]/g,E.innerHTML)&&tt(/<[/\w!]/g,E.textContent)||E.nodeType===xr.progressingInstruction||Te&&E.nodeType===xr.comment&&tt(/<[/\w]/g,E.data))return mt(E),!0;if(!(G.tagCheck instanceof Function&&G.tagCheck(ne))&&(!Q[ne]||me[ne])){if(!me[ne]&&ji(ne)&&(Y.tagNameCheck instanceof RegExp&&tt(Y.tagNameCheck,ne)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(ne)))return!1;if(ke&&!it[ne]){const Ce=_(E)||E.parentNode,Je=k(E)||E.childNodes;if(Je&&Ce){const Fe=Je.length;for(let lt=Fe-1;lt>=0;--lt){const Kt=x(Je[lt],!0);Kt.__removalCount=(E.__removalCount||0)+1,Ce.insertBefore(Kt,y(E))}}}return mt(E),!0}return E instanceof l&&!pt(E)||(ne==="noscript"||ne==="noembed"||ne==="noframes")&&tt(/<\/no(script|embed|frames)/i,E.innerHTML)?(mt(E),!0):(ue&&E.nodeType===xr.text&&(H=E.textContent,rs([M,z,D],Ce=>{H=mr(H,Ce," ")}),E.textContent!==H&&(pr(t.removed,{element:E.cloneNode()}),E.textContent=H)),Qt(I.afterSanitizeElements,E,null),!1)},ki=function(E,H,ne){if(xt&&(H==="id"||H==="name")&&(ne in n||ne in Mn))return!1;if(!(U&&!$[H]&&tt(V,H))){if(!(pe&&tt(L,H))){if(!(G.attributeCheck instanceof Function&&G.attributeCheck(H,E))){if(!q[H]||$[H]){if(!(ji(E)&&(Y.tagNameCheck instanceof RegExp&&tt(Y.tagNameCheck,E)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(E))&&(Y.attributeNameCheck instanceof RegExp&&tt(Y.attributeNameCheck,H)||Y.attributeNameCheck instanceof Function&&Y.attributeNameCheck(H,E))||H==="is"&&Y.allowCustomizedBuiltInElements&&(Y.tagNameCheck instanceof RegExp&&tt(Y.tagNameCheck,ne)||Y.tagNameCheck instanceof Function&&Y.tagNameCheck(ne))))return!1}else if(!be[H]){if(!tt(Z,mr(ne,C,""))){if(!((H==="src"||H==="xlink:href"||H==="href")&&E!=="script"&&IS(ne,"data:")===0&&X[E])){if(!(se&&!tt(S,mr(ne,C,"")))){if(ne)return!1}}}}}}}return!0},ji=function(E){return E!=="annotation-xml"&&Oo(E,W)},Si=function(E){Qt(I.beforeSanitizeAttributes,E,null);const{attributes:H}=E;if(!H||ho(E))return;const ne={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:q,forceKeepAttr:void 0};let Ce=H.length;for(;Ce--;){const Je=H[Ce],{name:Fe,namespaceURI:lt,value:Kt}=Je,Ln=ve(Fe),go=Kt;let He=Fe==="value"?go:TS(go);if(ne.attrName=Ln,ne.attrValue=He,ne.keepAttr=!0,ne.forceKeepAttr=void 0,Qt(I.uponSanitizeAttribute,E,ne),He=ne.attrValue,Se&&(Ln==="id"||Ln==="name")&&(et(Fe,E),He=Xe+He),Te&&tt(/((--!?|])>)|<\/(style|title|textarea)/i,He)){et(Fe,E);continue}if(Ln==="attributename"&&Oo(He,"href")){et(Fe,E);continue}if(ne.forceKeepAttr)continue;if(!ne.keepAttr){et(Fe,E);continue}if(!le&&tt(/\/>/i,He)){et(Fe,E);continue}ue&&rs([M,z,D],Ni=>{He=mr(He,Ni," ")});const Ci=ve(E.nodeName);if(!ki(Ci,Ln,He)){et(Fe,E);continue}if(w&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!lt)switch(h.getAttributeType(Ci,Ln)){case"TrustedHTML":{He=w.createHTML(He);break}case"TrustedScriptURL":{He=w.createScriptURL(He);break}}if(He!==go)try{lt?E.setAttributeNS(lt,Fe,He):E.setAttribute(Fe,He),ho(E)?mt(E):Wc(t.removed)}catch{et(Fe,E)}}Qt(I.afterSanitizeAttributes,E,null)},kp=function ie(E){let H=null;const ne=bi(E);for(Qt(I.beforeSanitizeShadowDOM,E,null);H=ne.nextNode();)Qt(I.uponSanitizeShadowNode,H,null),_i(H),Si(H),H.content instanceof a&&ie(H.content);Qt(I.afterSanitizeShadowDOM,E,null)};return t.sanitize=function(ie){let E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},H=null,ne=null,Ce=null,Je=null;if(lr=!ie,lr&&(ie="<!-->"),typeof ie!="string"&&!wi(ie))if(typeof ie.toString=="function"){if(ie=ie.toString(),typeof ie!="string")throw hr("dirty is not a string, aborting")}else throw hr("toString is not a function");if(!t.isSupported)return ie;if(Ye||Ke(E),t.removed=[],typeof ie=="string"&&(Gt=!1),Gt){if(ie.nodeName){const Kt=ve(ie.nodeName);if(!Q[Kt]||me[Kt])throw hr("root node is forbidden and cannot be sanitized in-place")}}else if(ie instanceof c)H=mo("<!---->"),ne=H.ownerDocument.importNode(ie,!0),ne.nodeType===xr.element&&ne.nodeName==="BODY"||ne.nodeName==="HTML"?H=ne:H.appendChild(ne);else{if(!_t&&!ue&&!We&&ie.indexOf("<")===-1)return w&&tn?w.createHTML(ie):ie;if(H=mo(ie),!H)return _t?null:tn?j:""}H&&qe&&mt(H.firstChild);const Fe=bi(Gt?ie:H);for(;Ce=Fe.nextNode();)_i(Ce),Si(Ce),Ce.content instanceof a&&kp(Ce.content);if(Gt)return ie;if(_t){if(Qe)for(Je=N.call(H.ownerDocument);H.firstChild;)Je.appendChild(H.firstChild);else Je=H;return(q.shadowroot||q.shadowrootmode)&&(Je=R.call(r,Je,!0)),Je}let lt=We?H.outerHTML:H.innerHTML;return We&&Q["!doctype"]&&H.ownerDocument&&H.ownerDocument.doctype&&H.ownerDocument.doctype.name&&tt(op,H.ownerDocument.doctype.name)&&(lt="<!DOCTYPE "+H.ownerDocument.doctype.name+`>
|
|
84
|
-
`+lt),ue&&rs([M,z,D],Kt=>{lt=mr(lt,Kt," ")}),w&&tn?w.createHTML(lt):lt},t.setConfig=function(){let ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ke(ie),Ye=!0},t.clearConfig=function(){$e=null,Ye=!1},t.isValidAttribute=function(ie,E,H){$e||Ke({});const ne=ve(ie),Ce=ve(E);return ki(ne,Ce,H)},t.addHook=function(ie,E){typeof E=="function"&&pr(I[ie],E)},t.removeHook=function(ie,E){if(E!==void 0){const H=AS(I[ie],E);return H===-1?void 0:PS(I[ie],H,1)[0]}return Wc(I[ie])},t.removeHooks=function(ie){I[ie]=[]},t.removeAllHooks=function(){I=Qc()},t}var zo=ap();function ip({faq:e,className:t,expanded:n,defaultExpanded:r=!1,onExpandedChange:o,showKeywords:a=!1,dangerouslySetAnswerHTML:i=!1}){const[c,l]=p.useState(r),d=n!==void 0,f=d?n:c,u=()=>{const m=!f;d||l(m),o?.(m)};return s.jsxs("div",{className:F("border border-neutral-200 rounded-lg overflow-hidden dark:border-neutral-800",t),children:[s.jsxs("button",{type:"button",onClick:u,className:F("w-full flex items-center justify-between px-4 py-3 text-left","bg-neutral-50 hover:bg-neutral-100 dark:bg-neutral-900 dark:hover:bg-neutral-800","transition-colors duration-150"),"aria-expanded":f,children:[s.jsx("span",{className:"font-medium text-neutral-900 dark:text-neutral-100 pr-4",children:e.question}),s.jsx("svg",{className:F("w-5 h-5 text-neutral-500 transition-transform duration-200 flex-shrink-0",f&&"rotate-180"),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),f&&s.jsxs("div",{className:"px-4 py-3 bg-white dark:bg-neutral-950",children:[i?s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400 prose prose-sm dark:prose-invert max-w-none",dangerouslySetInnerHTML:{__html:(()=>{zo.addHook("afterSanitizeAttributes",h=>{h.tagName==="A"&&h.setAttribute("rel","noopener noreferrer")});const m=zo.sanitize(e.answer,{ALLOWED_TAGS:["b","i","em","strong","a","p","br","ul","ol","li"],ALLOWED_ATTR:["href","target","rel"]});return zo.removeAllHooks(),m})()}}):s.jsx("p",{className:"text-sm text-neutral-600 dark:text-neutral-400 whitespace-pre-wrap",children:e.answer}),a&&e.keywords&&e.keywords.length>0&&s.jsx("div",{className:"mt-3 flex flex-wrap gap-1",children:e.keywords.map(m=>s.jsx("span",{className:"px-2 py-0.5 text-xs bg-neutral-100 text-neutral-600 rounded dark:bg-neutral-800 dark:text-neutral-400",children:m},m))})]})]})}function ZS({faqs:e,className:t,accordion:n=!1,showKeywords:r=!1,dangerouslySetAnswerHTML:o=!1,emptyMessage:a="No FAQs available."}){const[i,c]=p.useState(null),l=e.filter(d=>d.active!==!1);return l.length===0?s.jsx("div",{className:F("text-center py-8 text-neutral-500 dark:text-neutral-400",t),children:a}):s.jsx("div",{className:F("space-y-2",t),children:l.map(d=>s.jsx(ip,{faq:d,showKeywords:r,dangerouslySetAnswerHTML:o,expanded:n?i===d.id:void 0,onExpandedChange:n?f=>c(f?d.id:null):void 0},d.id))})}function Ve({amount:e,currency:t}){return new Intl.NumberFormat(void 0,{style:"currency",currency:t}).format(e)}function uo({amount:e,currency:t,compareAt:n,className:r,size:o="default"}){const a=typeof n=="number"&&n>e;return s.jsxs("div",{className:F("flex items-baseline gap-2 tabular-nums",r),children:[s.jsx("span",{className:F("font-semibold",o==="sm"?"text-sm":"text-base"),children:Ve({amount:e,currency:t})}),a?s.jsx("span",{className:F("text-neutral-500 line-through dark:text-neutral-400",o==="sm"?"text-xs":"text-sm"),children:Ve({amount:n,currency:t})}):null]})}const Kc={large:"aspect-[4/5]",square:"aspect-square",compact:"aspect-[3/4]"},Jc={center:"object-center",top:"object-top",bottom:"object-bottom",left:"object-left",right:"object-right"};function cp({product:e,href:t,onAddToCart:n,onQuickView:r,className:o,layout:a="large",imageCrop:i="center"}){const c=e.inventoryStatus==="out_of_stock"||typeof e.inventoryQuantity=="number"&&e.inventoryQuantity<=0,l=typeof e.inventoryQuantity=="number"?e.inventoryQuantity:null;return s.jsxs(Pt,{className:F("group flex h-full flex-col overflow-hidden rounded-2xl",o),children:[s.jsxs("div",{className:"relative",children:[t?s.jsx("a",{href:t,className:"block","aria-label":`View ${e.title}`,children:s.jsx("div",{className:F("overflow-hidden bg-neutral-100 dark:bg-neutral-900",Kc[a]),children:s.jsx("img",{src:e.images[0]?.url,alt:e.images[0]?.alt??e.title,className:F("h-full w-full object-cover transition-transform duration-300 group-hover:scale-[1.03]",Jc[i]),loading:"lazy"})})}):s.jsx("div",{className:F("overflow-hidden bg-neutral-100 dark:bg-neutral-900",Kc[a]),children:s.jsx("img",{src:e.images[0]?.url,alt:e.images[0]?.alt??e.title,className:F("h-full w-full object-cover transition-transform duration-300 group-hover:scale-[1.03]",Jc[i]),loading:"lazy"})}),a!=="compact"&&e.tags?.length?s.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 flex gap-1 p-3",children:e.tags.slice(0,2).map(d=>s.jsx(_n,{className:"pointer-events-none bg-white/90 text-neutral-900 backdrop-blur dark:bg-neutral-950/80 dark:text-neutral-50",children:d},d))}):null,c?s.jsx("div",{className:"pointer-events-none absolute left-3 top-3",children:s.jsx(_n,{variant:"secondary",className:"bg-white/90 text-neutral-900 backdrop-blur dark:bg-neutral-950/80 dark:text-neutral-50",children:"Out of stock"})}):l!=null&&l>0&&l<=5?s.jsx("div",{className:"pointer-events-none absolute left-3 top-3",children:s.jsxs(_n,{variant:"secondary",className:"bg-white/90 text-neutral-900 backdrop-blur dark:bg-neutral-950/80 dark:text-neutral-50",children:["Only ",l," left"]})}):null,r?s.jsx("div",{className:"absolute right-3 top-3 opacity-0 transition-opacity group-hover:opacity-100",children:s.jsx(re,{type:"button",size:"sm",variant:"secondary",className:"h-9",onClick:()=>r(e),children:"Quick view"})}):null]}),s.jsxs("div",{className:F("flex flex-1 flex-col",a==="compact"?"p-3":"p-4"),children:[s.jsx("div",{className:"flex items-start justify-between gap-3",children:s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:F("line-clamp-1 font-medium text-neutral-950 dark:text-neutral-50",a==="compact"?"text-xs":"text-sm"),children:e.title}),s.jsx("div",{className:"mt-1",children:s.jsx(uo,{amount:e.price,currency:e.currency,compareAt:e.compareAtPrice,size:a==="compact"?"sm":"default"})})]})}),a==="large"&&s.jsx("p",{className:"mt-2 line-clamp-2 min-h-8 text-xs leading-4 text-neutral-600 dark:text-neutral-400",children:e.description}),s.jsx("div",{className:F("mt-auto",a==="compact"?"pt-3":"pt-4"),children:s.jsx(re,{type:"button",className:"w-full",size:a==="compact"?"sm":"default",onClick:()=>n?.(e,null),disabled:c,children:c?"Out of stock":"Add to cart"})})]})]})}function fo({products:e,columns:t,onAddToCart:n,onQuickView:r,getProductHref:o,className:a,layout:i,imageCrop:c}){const l=t?.base??2,d=t?.md??3,f=t?.lg??3,u={1:"grid-cols-1",2:"grid-cols-2",3:"grid-cols-3",4:"grid-cols-4"},m={1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4"},h={1:"lg:grid-cols-1",2:"lg:grid-cols-2",3:"lg:grid-cols-3",4:"lg:grid-cols-4"},v=F("grid gap-4",u[Math.min(4,Math.max(1,l))],m[Math.min(4,Math.max(1,d))],h[Math.min(4,Math.max(1,f))]);return s.jsx("div",{className:F(v,a),children:e.map(x=>s.jsx(cp,{product:x,href:o?o(x):void 0,onAddToCart:n,onQuickView:r,layout:i,imageCrop:c},x.id))})}function di({images:e,className:t}){const[n,r]=p.useState(0),o=e[n];return e.length===0?s.jsx("div",{className:F("aspect-square w-full rounded-xl border border-neutral-200 bg-neutral-100 dark:border-neutral-800 dark:bg-neutral-900",t)}):s.jsxs("div",{className:F("space-y-3",t),children:[s.jsx("div",{className:"aspect-square overflow-hidden rounded-2xl border border-neutral-200 bg-neutral-100 dark:border-neutral-800 dark:bg-neutral-900",children:s.jsx("img",{src:o?.url,alt:o?.alt??"",className:"h-full w-full object-cover",loading:"eager"})}),e.length>1?s.jsx("div",{className:"flex gap-2 overflow-x-auto pb-1",children:e.map((a,i)=>{const c=i===n;return s.jsx("button",{type:"button",className:F("h-16 w-16 shrink-0 overflow-hidden rounded-lg border",c?"border-neutral-900 dark:border-neutral-50":"border-neutral-200 dark:border-neutral-800"),onClick:()=>r(i),"aria-label":`View image ${i+1}`,children:s.jsx("img",{src:a.url,alt:a.alt??"",className:"h-full w-full object-cover",loading:"lazy"})},a.url)})}):null]})}function GS(e){const t=new Set;for(const n of e)for(const r of Object.keys(n.options))t.add(r);return Array.from(t)}function YS(e,t){const n=new Set;for(const r of e){const o=r.options[t];o&&n.add(o)}return Array.from(n)}function Xc(e,t){return e.find(n=>Object.entries(t).every(([r,o])=>n.options[r]===o))??null}function lp(e){return e.inventoryStatus==="out_of_stock"||typeof e.inventoryQuantity=="number"&&e.inventoryQuantity<=0}function QS(e){return e.inventoryStatus==="low"||typeof e.inventoryQuantity=="number"&&e.inventoryQuantity>0&&e.inventoryQuantity<=5}function KS(e){const t=lp(e),n=!t&&QS(e),r=typeof e.inventoryQuantity=="number"?e.inventoryQuantity:void 0;return{isOutOfStock:t,isLow:n,quantity:r}}function JS(e,t,n,r){const o={...t,[n]:r},a=e.filter(i=>Object.entries(o).every(([c,l])=>i.options[c]===l));return a.length===0?!1:a.some(i=>!lp(i))}function ui({product:e,value:t,onChange:n,className:r,showInventory:o=!0,disableOutOfStock:a=!1}){const i=p.useMemo(()=>e.variants??[],[e.variants]),c=p.useMemo(()=>GS(i),[i]),l=p.useMemo(()=>Xc(i,t.selectedOptions),[i,t.selectedOptions]),d=p.useMemo(()=>l?KS(l):null,[l]);return i.length===0||c.length===0?null:s.jsxs("div",{className:F("space-y-4",r),children:[c.map(f=>{const u=YS(i,f),m=t.selectedOptions[f];return s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"flex items-baseline justify-between",children:[s.jsx("div",{className:"text-sm font-medium text-neutral-950 dark:text-neutral-50",children:f}),s.jsx("div",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:m||"Select"})]}),s.jsx("div",{className:"flex flex-wrap gap-2",children:u.map(h=>{const v=h===m,x=JS(i,t.selectedOptions,f,h),g=a&&!x;return s.jsxs(re,{type:"button",size:"sm",variant:v?"default":"outline",onClick:()=>{const y={...t.selectedOptions,[f]:h},k=Xc(i,y);n({selectedOptions:y,variant:k})},"aria-pressed":v,disabled:g,className:F(!x&&!g&&"opacity-50 line-through"),children:[h,!x&&!g&&s.jsx("span",{className:"ml-1 text-[10px] opacity-70",children:"(Out)"})]},h)})})]},f)}),o&&l&&d&&s.jsx("div",{className:"pt-2",children:d.isOutOfStock?s.jsx("div",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:"Out of stock"}):d.isLow&&d.quantity!==void 0?s.jsxs("div",{className:"text-sm text-amber-600 dark:text-amber-400",children:["Only ",s.jsx("span",{className:"font-semibold",children:d.quantity})," left"]}):null})]})}function fi({qty:e,onChange:t,min:n=1,max:r,className:o}){const a=Number.isFinite(e)?Math.max(n,Math.floor(e)):n,i=a>n,c=typeof r=="number"?a<r:!0;return s.jsxs("div",{className:F("flex items-center gap-2",o),children:[s.jsx(re,{type:"button",size:"icon",variant:"outline",onClick:()=>t(Math.max(n,a-1)),disabled:!i,"aria-label":"Decrease quantity",children:"-"}),s.jsx(Be,{inputMode:"numeric",pattern:"[0-9]*",value:String(a),onChange:l=>{const d=Math.floor(Number(l.target.value));if(!Number.isFinite(d))return;const f=Math.max(n,typeof r=="number"?Math.min(r,d):d);t(f)},className:"h-10 w-16 text-center","aria-label":"Quantity"}),s.jsx(re,{type:"button",size:"icon",variant:"outline",onClick:()=>t(a+1),disabled:!c,"aria-label":"Increase quantity",children:"+"})]})}function pi({product:e,open:t,onOpenChange:n,productHref:r,onAddToCart:o,className:a}){const[i,c]=p.useState(1),[l,d]=p.useState({selectedOptions:{},variant:null});if(p.useEffect(()=>{if(e)if(c(1),e.variants?.length){const x=e.variants[0];d({selectedOptions:{...x.options},variant:x})}else d({selectedOptions:{},variant:null})},[e?.id]),!e)return null;const f=l.variant?.price??e.price,u=l.variant?.compareAtPrice??e.compareAtPrice,m=l.variant?.inventoryStatus==="out_of_stock"||typeof l.variant?.inventoryQuantity=="number"&&l.variant.inventoryQuantity<=0,h=e.inventoryStatus==="out_of_stock"||typeof e.inventoryQuantity=="number"&&e.inventoryQuantity<=0,v=l.variant?m:h;return s.jsx(Qa,{open:t,onOpenChange:n,children:s.jsxs(Js,{className:F("max-w-3xl",a),children:[s.jsx(Ja,{children:s.jsxs(Xs,{className:"flex items-center justify-between gap-3",children:[s.jsx("span",{className:"truncate",children:e.title}),r?s.jsx("a",{href:r(e.slug),className:"text-sm font-normal text-neutral-700 hover:underline dark:text-neutral-300",children:"View details"}):null]})}),s.jsxs("div",{className:"grid gap-8 md:grid-cols-2",children:[s.jsx(di,{images:e.images}),s.jsxs("div",{className:"space-y-5",children:[s.jsxs("div",{children:[s.jsx(uo,{amount:f,currency:e.currency,compareAt:u}),s.jsx("p",{className:"mt-3 text-sm text-neutral-600 dark:text-neutral-400",children:e.description})]}),s.jsx(ui,{product:e,value:{selectedOptions:l.selectedOptions,variantId:l.variant?.id},onChange:x=>d(x)}),s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx(fi,{qty:i,onChange:c}),s.jsx(re,{type:"button",className:"flex-1",disabled:v,onClick:()=>{o(e,l.variant,i),n(!1)},children:v?"Out of stock":"Add to cart"})]}),s.jsx("div",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:v?"Out of stock":"In stock"})]})]})]})})}function da({categories:e,activeSlug:t,onSelect:n,className:r}){return s.jsx("nav",{className:F("space-y-1",r),"aria-label":"Categories",children:e.map(o=>{const a=t===o.slug;return s.jsxs("button",{type:"button",className:F("flex w-full items-center justify-between rounded-md px-3 py-2 text-sm transition-colors",a?"bg-neutral-900 text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900":"text-neutral-700 hover:bg-neutral-100 dark:text-neutral-300 dark:hover:bg-neutral-800"),onClick:()=>n?.(o),"aria-current":a?"page":void 0,children:[s.jsx("span",{className:"truncate",children:o.name}),s.jsx("span",{className:"text-xs opacity-70",children:"›"})]},o.id)})})}function mi({items:e,className:t}){return s.jsx("nav",{className:F("flex items-center gap-2 text-xs text-neutral-600 dark:text-neutral-400",t),"aria-label":"Breadcrumb",children:e.map((n,r)=>s.jsxs("span",{className:"flex items-center gap-2",children:[n.href?s.jsx("a",{href:n.href,className:"hover:underline",children:n.label}):s.jsx("span",{className:"text-neutral-900 dark:text-neutral-50",children:n.label}),r<e.length-1?s.jsx("span",{"aria-hidden":!0,children:"·"}):null]},`${n.label}-${r}`))})}function hi({value:e,onChange:t,placeholder:n="Search products…",className:r}){return s.jsxs("div",{className:F("relative",r),children:[s.jsx("div",{className:"pointer-events-none absolute inset-y-0 left-3 flex items-center text-neutral-500 dark:text-neutral-400","aria-hidden":!0,children:"⌕"}),s.jsx(Be,{value:e,onChange:o=>t(o.target.value),placeholder:n,className:"pl-9","aria-label":"Search"})]})}function As({facets:e,value:t,onChange:n,onClear:r,className:o,enabledFilters:a}){const i=e.tags??[],c=new Set(t.tags??[]),l=a?.tags??!0,d=a?.priceRange??!0,f=a?.inStock??!0;return l||d||f?s.jsxs("div",{className:F("space-y-4",o),children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Filters"}),s.jsx(re,{type:"button",variant:"ghost",className:"h-8 px-2 text-xs",onClick:r,children:"Clear"})]}),s.jsx(yt,{}),l&&i.length?s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-medium",children:"Tags"}),s.jsx("div",{className:"space-y-2",children:i.map(m=>s.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-sm text-neutral-700 dark:text-neutral-300",children:[s.jsx("input",{type:"checkbox",checked:c.has(m),onChange:h=>{const v=new Set(c);h.target.checked?v.add(m):v.delete(m),n({...t,tags:Array.from(v)})}}),m]},m))})]}):null,d&&e.price?s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-medium",children:"Price"}),s.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[s.jsxs("div",{className:"grid gap-1",children:[s.jsx(st,{className:"text-xs",htmlFor:"price-min",children:"Min"}),s.jsx(Be,{id:"price-min",inputMode:"decimal",placeholder:String(e.price.min),value:t.priceMin??"",onChange:m=>{const h=Number(m.target.value);n({...t,priceMin:Number.isFinite(h)&&m.target.value!==""?h:void 0})}})]}),s.jsxs("div",{className:"grid gap-1",children:[s.jsx(st,{className:"text-xs",htmlFor:"price-max",children:"Max"}),s.jsx(Be,{id:"price-max",inputMode:"decimal",placeholder:String(e.price.max),value:t.priceMax??"",onChange:m=>{const h=Number(m.target.value);n({...t,priceMax:Number.isFinite(h)&&m.target.value!==""?h:void 0})}})]})]})]}):null,f?s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-medium",children:"Availability"}),s.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-sm text-neutral-700 dark:text-neutral-300",children:[s.jsx("input",{type:"checkbox",checked:t.inStock??!1,onChange:m=>n({...t,inStock:m.target.checked})}),"In stock"]})]}):null]}):null}function el(e){return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),s.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]})}function XS(e){return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[s.jsx("path",{d:"M3 6h18"}),s.jsx("path",{d:"M8 6V4h8v2"}),s.jsx("path",{d:"M6 6l1 16h10l1-16"}),s.jsx("path",{d:"M10 11v6"}),s.jsx("path",{d:"M14 11v6"})]})}function gi({item:e,onRemove:t,onSetQty:n,variant:r="table",className:o,inventory:a}){const i=e.unitPrice*e.qty,[c,l]=p.useState(!1),d=p.useMemo(()=>{if(a?.availableQty)return a.availableQty},[a?.availableQty]),f=!a?.isOutOfStock&&(d===void 0||e.qty<d),u=p.useMemo(()=>a?a.isOutOfStock?{type:"error",message:a.message||"Out of stock"}:a.exceedsAvailable?{type:"warning",message:a.message||"Quantity exceeds available stock"}:a.isLowStock?{type:"info",message:a.message||"Low stock"}:null:null,[a]);return p.useEffect(()=>{c&&e.qty!==1&&l(!1)},[c,e.qty]),r==="compact"?s.jsxs("div",{className:F("flex items-start gap-3",o),children:[s.jsx("div",{className:"h-12 w-12 shrink-0 overflow-hidden rounded-lg border border-neutral-200 bg-neutral-100 dark:border-neutral-800 dark:bg-neutral-900",children:e.imageSnapshot?s.jsx("img",{src:e.imageSnapshot,alt:e.titleSnapshot,className:"h-full w-full object-cover"}):null}),s.jsx("div",{className:"min-w-0 flex-1",children:s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:"truncate text-sm font-medium text-neutral-950 dark:text-neutral-50",children:e.titleSnapshot}),s.jsx("div",{className:"mt-0.5 text-xs tabular-nums text-neutral-600 dark:text-neutral-400",children:Ve({amount:i,currency:e.currency})}),u&&s.jsxs("div",{className:F("mt-1 flex items-center gap-1 text-[11px]",u.type==="error"&&"text-red-600 dark:text-red-400",u.type==="warning"&&"text-amber-600 dark:text-amber-400",u.type==="info"&&"text-blue-600 dark:text-blue-400"),children:[s.jsx(el,{className:"h-3 w-3 shrink-0"}),s.jsx("span",{children:u.message})]})]}),s.jsx("div",{className:"flex h-12 w-[140px] shrink-0 items-center justify-end",children:c?s.jsxs("div",{className:"flex w-full flex-col items-center justify-center gap-2",children:[s.jsx("div",{className:"text-center text-[11px] font-medium leading-none text-neutral-600 dark:text-neutral-400",children:"Remove item?"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(re,{type:"button",variant:"outline",className:"h-7 w-[62px] px-0 text-[11px] leading-none",onClick:()=>l(!1),children:"Cancel"}),s.jsx(re,{type:"button",variant:"destructive",className:"h-7 w-[62px] px-0 text-[11px] leading-none",onClick:t,children:"Confirm"})]})]}):s.jsxs("div",{className:"flex items-center justify-end gap-1.5 whitespace-nowrap",children:[s.jsx(re,{type:"button",size:"icon",variant:"outline",className:"h-8 w-8","aria-label":e.qty===1?"Remove item":"Decrease quantity",onClick:()=>{if(e.qty===1){l(!0);return}n(e.qty-1)},children:e.qty===1?s.jsx(XS,{className:"h-4 w-4"}):"-"}),s.jsx(Be,{inputMode:"numeric",pattern:"[0-9]*",value:String(e.qty),onChange:m=>{const h=Math.floor(Number(m.target.value));if(!Number.isFinite(h))return;const v=Math.max(1,d?Math.min(d,h):h);n(v)},className:"h-8 w-11 px-2 text-center","aria-label":"Quantity"}),s.jsx(re,{type:"button",size:"icon",variant:"outline",className:"h-8 w-8","aria-label":"Increase quantity",onClick:()=>n(d?Math.min(d,e.qty+1):e.qty+1),disabled:!f,children:"+"})]})})]})})]}):s.jsxs("div",{className:F("grid grid-cols-[64px_1fr] items-start gap-x-4 gap-y-3 sm:grid-cols-[64px_1fr_176px_120px]",o),children:[s.jsx("div",{className:"h-16 w-16 overflow-hidden rounded-lg border border-neutral-200 bg-neutral-100 dark:border-neutral-800 dark:bg-neutral-900",children:e.imageSnapshot?s.jsx("img",{src:e.imageSnapshot,alt:e.titleSnapshot,className:"h-full w-full object-cover"}):null}),s.jsxs("div",{className:"col-start-2 row-start-1 min-w-0",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsx("div",{className:"truncate text-sm font-medium text-neutral-950 dark:text-neutral-50",children:e.titleSnapshot}),s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50 sm:hidden",children:Ve({amount:i,currency:e.currency})})]}),s.jsxs("div",{className:"mt-1 text-xs text-neutral-600 dark:text-neutral-400",children:[Ve({amount:e.unitPrice,currency:e.currency})," each"]}),u&&s.jsxs("div",{className:F("mt-1.5 flex items-center gap-1 text-xs",u.type==="error"&&"text-red-600 dark:text-red-400",u.type==="warning"&&"text-amber-600 dark:text-amber-400",u.type==="info"&&"text-blue-600 dark:text-blue-400"),children:[s.jsx(el,{className:"h-3.5 w-3.5 shrink-0"}),s.jsx("span",{children:u.message})]})]}),s.jsxs("div",{className:"col-span-2 col-start-1 row-start-2 flex items-center justify-between gap-3 sm:col-span-1 sm:col-start-3 sm:row-start-1 sm:justify-center",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(re,{type:"button",size:"icon",variant:"outline",className:"h-9 w-9","aria-label":"Decrease quantity",onClick:()=>n(Math.max(1,e.qty-1)),children:"-"}),s.jsx(Be,{inputMode:"numeric",pattern:"[0-9]*",value:String(e.qty),onChange:m=>{const h=Math.floor(Number(m.target.value));if(!Number.isFinite(h))return;const v=Math.max(1,d?Math.min(d,h):h);n(v)},className:"h-9 w-14 text-center","aria-label":"Quantity"}),s.jsx(re,{type:"button",size:"icon",variant:"outline",className:"h-9 w-9","aria-label":"Increase quantity",onClick:()=>n(d?Math.min(d,e.qty+1):e.qty+1),disabled:!f,children:"+"})]}),s.jsx(re,{type:"button",variant:"ghost",className:"h-9 px-2 text-xs text-red-600 dark:text-red-400 sm:hidden",onClick:t,children:"Remove"})]}),s.jsxs("div",{className:"hidden sm:col-start-4 sm:row-start-1 sm:flex sm:flex-col sm:items-center sm:text-center",children:[s.jsx("div",{className:"text-sm font-semibold tabular-nums text-neutral-950 dark:text-neutral-50",children:Ve({amount:i,currency:e.currency})}),s.jsx(re,{type:"button",variant:"ghost",className:"mt-1 h-8 px-2 text-xs text-red-600 dark:text-red-400",onClick:t,children:"Remove"})]})]})}function xi({currency:e,subtotal:t,itemCount:n,onCheckout:r,isCheckoutDisabled:o,checkoutDisabledReason:a,onRemoveUnavailable:i,className:c}){return s.jsxs("div",{className:F("space-y-4",c),children:[s.jsx(yt,{}),s.jsxs("div",{className:"flex items-center justify-between text-sm",children:[s.jsxs("div",{className:"flex items-center gap-2 text-neutral-600 dark:text-neutral-400",children:[s.jsx("span",{children:"Subtotal"}),typeof n=="number"?s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"text-neutral-300 dark:text-neutral-700",children:"·"}),s.jsxs("span",{className:"tabular-nums",children:[n," item",n===1?"":"s"]})]}):null]}),s.jsx("span",{className:"font-semibold text-neutral-950 dark:text-neutral-50",children:Ve({amount:t,currency:e})})]}),s.jsx(re,{type:"button",onClick:r,disabled:o,className:"w-full",children:"Checkout"}),o&&a&&s.jsxs("div",{className:"space-y-2",children:[s.jsx("p",{className:"text-center text-xs text-amber-600 dark:text-amber-400",children:a}),i&&s.jsx("button",{type:"button",onClick:i,className:"mx-auto block text-xs text-neutral-500 underline underline-offset-2 hover:text-neutral-700 dark:text-neutral-400 dark:hover:text-neutral-300",children:"Remove unavailable items"})]})]})}function dp({onCheckout:e,className:t}){const{config:n}=Pe(),r=Rt(),{getItemInventory:o,hasIssues:a}=Pa({items:r.items,refreshInterval:3e4,skip:r.items.length===0}),i=()=>{for(const c of r.items){const l=o(c.productId,c.variantId);(l?.isOutOfStock||l?.exceedsAvailable)&&r.removeItem(c.productId,c.variantId)}};return r.items.length===0?s.jsx(Yn,{title:"Cart is empty",description:"Add items from the catalog to check out.",className:t}):s.jsxs("div",{className:F("flex h-full flex-col rounded-xl border border-neutral-200 bg-white p-4 dark:border-neutral-800 dark:bg-neutral-950",t),children:[s.jsx("div",{className:"-mr-4 min-h-0 flex-1 overflow-y-auto overflow-x-hidden pr-4",children:s.jsx("div",{className:"divide-y divide-neutral-200 dark:divide-neutral-800",children:r.items.map(c=>s.jsx("div",{className:"py-3",children:s.jsx(gi,{variant:"compact",item:c,onRemove:()=>r.removeItem(c.productId,c.variantId),onSetQty:l=>r.setQty(c.productId,c.variantId,l),inventory:o(c.productId,c.variantId)})},`${c.productId}::${c.variantId??""}`))})}),s.jsx("div",{className:"mt-4 space-y-4",children:s.jsx(xi,{currency:n.currency,subtotal:r.subtotal,itemCount:r.count,onCheckout:e,isCheckoutDisabled:r.items.length===0||a,checkoutDisabledReason:a?"Some items have inventory issues":void 0,onRemoveUnavailable:a?i:void 0})})]})}const up=p.forwardRef(({className:e,...t},n)=>s.jsx("textarea",{ref:n,className:F("flex min-h-10 w-full rounded-md border border-neutral-200 bg-white px-3 py-2 text-sm text-neutral-950 shadow-sm transition-colors placeholder:text-neutral-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900/20 disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50 dark:placeholder:text-neutral-400 dark:focus-visible:ring-neutral-50/20",e),...t}));up.displayName="Textarea";function eC(){const[e,t]=p.useState(!1);return p.useEffect(()=>{const n=window.matchMedia?.("(prefers-reduced-motion: reduce)");if(!n)return;const r=()=>t(n.matches);return r(),n.addEventListener?.("change",r),()=>n.removeEventListener?.("change",r)},[]),e}function tl({children:e,className:t}){const n=p.useRef(null),r=eC();return p.useEffect(()=>{const o=n.current;!o||r||o.animate([{opacity:0,transform:"translateY(6px)"},{opacity:1,transform:"translateY(0px)"}],{duration:180,easing:"cubic-bezier(0.2, 0.8, 0.2, 1)",fill:"both"})},[r]),s.jsx("div",{ref:n,className:t,children:e})}function Fo(){return`${Date.now()}_${Math.random().toString(16).slice(2)}`}function fp({className:e}){p.useEffect(()=>{console.warn("[ShopChatPanel] This component is experimental and has no backend configured. Messages are handled locally and will not be sent to any server.")},[]);const[t,n]=p.useState(""),[r,o]=p.useState(!1),[a,i]=p.useState(()=>[{id:Fo(),role:"agent",text:"Hi! How can we help today? We can recommend products or answer support questions.",createdAt:Date.now()}]),[c,l]=p.useState("…");p.useEffect(()=>{if(!r)return;const h=[".","..","..."];let v=0;const x=window.setInterval(()=>{v=(v+1)%h.length,l(h[v])},450);return()=>window.clearInterval(x)},[r]);const d=p.useRef(null),f=p.useRef(null);p.useEffect(()=>{const h=d.current;h&&(h.scrollTop=h.scrollHeight)},[a.length]);const u=p.useCallback(()=>{const h=f.current;if(!h)return;const v=120;h.style.height="0px";const x=Math.min(v,Math.max(40,h.scrollHeight));h.style.height=`${x}px`,h.style.overflowY=h.scrollHeight>v?"auto":"hidden"},[]);p.useEffect(()=>{u()},[t,u]);const m=p.useCallback(()=>{const h=t.trim();h&&(i(v=>[...v,{id:Fo(),role:"user",text:h,createdAt:Date.now()}]),n(""),o(!0),window.setTimeout(()=>{i(v=>[...v,{id:Fo(),role:"agent",text:"Got it. Want recommendations, sizing help, or help with an order?",createdAt:Date.now()}]),o(!1)},450))},[t]);return s.jsxs("div",{className:F("flex h-full min-h-0 flex-col",e),children:[s.jsxs("div",{ref:d,className:"min-h-0 flex-1 space-y-3 overflow-y-auto overscroll-contain rounded-2xl border border-neutral-200 bg-white p-4 dark:border-neutral-800 dark:bg-neutral-950",children:[a.map(h=>s.jsx(tl,{className:F("flex",h.role==="user"?"justify-end":"justify-start"),children:s.jsx("div",{className:F("max-w-[85%] rounded-2xl px-3 py-2 text-sm leading-5",h.role==="user"?"bg-neutral-900 text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900":"bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50"),children:s.jsx("span",{className:"whitespace-pre-wrap break-words",children:h.text})})},h.id)),r?s.jsx(tl,{className:"flex justify-start",children:s.jsx("div",{className:"max-w-[85%] rounded-2xl bg-neutral-100 px-3 py-2 text-sm leading-5 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50",children:c})}):null]}),s.jsxs("div",{className:"mt-3 flex shrink-0 items-end gap-2",children:[s.jsx(up,{ref:f,rows:1,value:t,onChange:h=>n(h.target.value),placeholder:"Type a message…",className:"max-h-[120px] resize-none",onKeyDown:h=>{h.key==="Enter"&&(h.shiftKey||(h.preventDefault(),m()))}}),s.jsx(re,{type:"button",onClick:m,disabled:!t.trim(),className:"h-10 shrink-0",children:"Send"})]})]})}function Or({trigger:e,side:t="right",open:n,onOpenChange:r,onCheckout:o,preferredTab:a,className:i}){const[c,l]=p.useState(a??"cart");return p.useEffect(()=>{n&&l(a??"cart")},[n,a]),s.jsxs(eo,{modal:!1,open:n,onOpenChange:r,children:[e?s.jsx(to,{asChild:!0,children:e}):null,s.jsxs(Fr,{side:t,overlayClassName:t==="popup"?"pointer-events-none bg-transparent backdrop-blur-none":"pointer-events-none bg-neutral-950/40 backdrop-blur-none",className:F(t==="bottom"?"h-[85vh] rounded-t-2xl":void 0,t==="popup"?"shadow-xl":"w-full sm:max-w-md",t==="popup"?"h-[min(640px,calc(100vh-2rem))]":void 0,t==="popup"?void 0:"p-4","flex flex-col overflow-hidden",i),children:[s.jsx(no,{className:"space-y-0",children:s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsx(ci,{value:c,onValueChange:d=>l(d),children:s.jsxs(co,{className:"h-9",children:[s.jsx(Rr,{value:"cart",className:"text-sm",children:"Cart"}),s.jsx(Rr,{value:"chat",className:"text-sm",children:"Chat"})]})}),s.jsx(mf,{asChild:!0,children:s.jsx(re,{type:"button",size:"icon",variant:"ghost",className:"h-9 w-9 rounded-full text-lg leading-none","aria-label":"Close cart",children:"X"})})]})}),s.jsx("div",{className:"mt-3 min-h-0 flex-1 overflow-hidden",children:c==="chat"?s.jsxs("div",{className:"flex h-full flex-col",children:[s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:"Get help finding a product or ask us any questions. We’re both your shopping assistant and support chat."}),s.jsx("div",{className:"mt-3 min-h-0 flex-1",children:s.jsx(fp,{className:"h-full"})})]}):s.jsx(dp,{onCheckout:()=>{o(),r?.(!1)},className:"h-full border-0 bg-transparent p-0 shadow-none"})})]})]})}function vi({value:e,onApply:t,className:n}){const[r,o]=p.useState(e??"");return p.useEffect(()=>{o(e??"")},[e]),s.jsxs("div",{className:F("space-y-2",n),children:[s.jsx("div",{className:"text-sm font-medium text-neutral-950 dark:text-neutral-50",children:"Promo code"}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx(Be,{value:r,onChange:a=>o(a.target.value),placeholder:"SAVE10","aria-label":"Promo code"}),s.jsx(re,{type:"button",variant:"outline",onClick:()=>t(r.trim()||void 0),children:"Apply"})]})]})}function pp({onCheckout:e,showPromoCode:t,className:n}){const{config:r}=Pe(),o=Rt(),{getItemInventory:a,hasIssues:i}=Pa({items:o.items,refreshInterval:3e4,skip:o.items.length===0}),c=()=>{for(const l of o.items){const d=a(l.productId,l.variantId);(d?.isOutOfStock||d?.exceedsAvailable)&&o.removeItem(l.productId,l.variantId)}};return o.items.length===0?s.jsx(Yn,{title:"Your cart is empty",description:"Add a few products and come back here when you're ready to check out.",className:n}):s.jsxs("div",{className:F("grid items-start gap-6 lg:grid-cols-[1fr_360px]",n),children:[s.jsxs("div",{className:"self-start rounded-2xl border border-neutral-200 bg-white dark:border-neutral-800 dark:bg-neutral-950",children:[s.jsxs("div",{className:"hidden grid-cols-[64px_1fr_176px_120px] gap-x-4 px-5 py-3 text-xs font-medium text-neutral-500 dark:text-neutral-400 sm:grid",children:[s.jsx("div",{}),s.jsx("div",{children:"Item"}),s.jsx("div",{className:"text-center",children:"Qty"}),s.jsx("div",{className:"text-center",children:"Total"})]}),s.jsx("div",{className:"divide-y divide-neutral-200 dark:divide-neutral-800",children:o.items.map(l=>s.jsx("div",{className:"px-4 py-4 sm:px-5",children:s.jsx(gi,{item:l,onRemove:()=>o.removeItem(l.productId,l.variantId),onSetQty:d=>o.setQty(l.productId,l.variantId,d),inventory:a(l.productId,l.variantId)})},`${l.productId}::${l.variantId??""}`))})]}),s.jsx("div",{className:"lg:sticky lg:top-24 self-start",children:s.jsxs("div",{className:"rounded-2xl border border-neutral-200 bg-white p-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950",children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Summary"}),s.jsx(yt,{className:"my-4"}),s.jsxs("div",{className:"space-y-4",children:[t?s.jsx(vi,{value:o.promoCode,onApply:o.setPromoCode}):null,s.jsx(xi,{currency:r.currency,subtotal:o.subtotal,onCheckout:e,isCheckoutDisabled:o.items.length===0||i,checkoutDisabledReason:i?"Some items have inventory issues":void 0,onRemoveUnavailable:i?c:void 0})]})]})})]})}function mp({left:e,right:t,className:n}){return s.jsxs("div",{className:F("grid items-start gap-8 lg:grid-cols-[1fr_420px]",n),children:[s.jsx("div",{children:e}),s.jsx("div",{children:t})]})}function ua({title:e,value:t,onChange:n,errors:r,className:o}){return s.jsxs("section",{className:F("space-y-4 rounded-2xl border border-neutral-200 bg-white p-5 dark:border-neutral-800 dark:bg-neutral-950",o),children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:e}),s.jsxs("div",{className:"grid gap-3",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:`${e}-line1`,children:"Address line 1"}),s.jsx(Be,{id:`${e}-line1`,value:t.line1,onChange:a=>n({...t,line1:a.target.value}),"aria-invalid":!!r?.line1}),r?.line1?s.jsx("div",{className:"text-xs text-red-600",children:r.line1}):null]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:`${e}-line2`,children:"Address line 2"}),s.jsx(Be,{id:`${e}-line2`,value:t.line2??"",onChange:a=>n({...t,line2:a.target.value})})]}),s.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:`${e}-city`,children:"City"}),s.jsx(Be,{id:`${e}-city`,value:t.city,onChange:a=>n({...t,city:a.target.value}),"aria-invalid":!!r?.city}),r?.city?s.jsx("div",{className:"text-xs text-red-600",children:r.city}):null]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:`${e}-state`,children:"State"}),s.jsx(Be,{id:`${e}-state`,value:t.state??"",onChange:a=>n({...t,state:a.target.value})})]})]}),s.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:`${e}-postal`,children:"Postal code"}),s.jsx(Be,{id:`${e}-postal`,value:t.postalCode,onChange:a=>n({...t,postalCode:a.target.value}),"aria-invalid":!!r?.postalCode}),r?.postalCode?s.jsx("div",{className:"text-xs text-red-600",children:r.postalCode}):null]}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:`${e}-country`,children:"Country"}),s.jsx(Be,{id:`${e}-country`,value:t.country,onChange:a=>n({...t,country:a.target.value}),"aria-invalid":!!r?.country}),r?.country?s.jsx("div",{className:"text-xs text-red-600",children:r.country}):null]})]})]})]})}function hp({methods:e,value:t,onChange:n,currency:r,className:o}){return e.length===0?null:s.jsxs("section",{className:F("space-y-4 rounded-2xl border border-neutral-200 bg-white p-5 dark:border-neutral-800 dark:bg-neutral-950",o),children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Shipping method"}),s.jsx("div",{className:"space-y-2",children:e.map(a=>{const i=a.id===t;return s.jsxs(re,{type:"button",variant:i?"default":"outline",className:"h-auto w-full justify-between px-4 py-3",onClick:()=>n(a.id),"aria-pressed":i,children:[s.jsxs("div",{className:"text-left",children:[s.jsx("div",{className:"text-sm font-medium",children:a.label}),a.detail?s.jsx("div",{className:"text-xs opacity-80",children:a.detail}):null]}),s.jsx("div",{className:"text-sm font-semibold",children:Ve({amount:a.price,currency:a.currency||r})})]},a.id)})})]})}function Bo({message:e}){return e?s.jsx("div",{className:"text-xs text-red-600",children:e}):null}function gp({className:e}){const{config:t}=Pe(),n=Ls(),r=Rt(),o=t.checkout.mode,a=p.useMemo(()=>as(r.items,{requireEmail:t.checkout.requireEmail??!0,defaultMode:o,allowShipping:t.checkout.allowShipping??!1}),[r.items,t.checkout.allowShipping,t.checkout.requireEmail,o]),i=(t.checkout.allowShipping??!1)&&a.shippingAddress&&(o==="shipping"||o==="full"),c=a.email!=="none"||a.name!=="none"||a.phone!=="none",l={line1:"",line2:"",city:"",state:"",postalCode:"",country:"US"},d=n.values.shippingAddress??l,f=n.values.billingAddress??l,u=fd({enabled:!!t.adapter.getShippingMethods&&i,customer:{email:n.values.email||void 0,name:n.values.name||void 0,shippingAddress:d}});return s.jsxs("form",{className:F("space-y-6",e),onSubmit:m=>m.preventDefault(),children:[a.isDigitalOnly?s.jsx(Pt,{className:"rounded-2xl",children:s.jsxs(qt,{className:"p-5",children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Digital delivery"}),s.jsx("div",{className:"mt-1 text-sm text-neutral-600 dark:text-neutral-400",children:a.fulfillmentNotes||"This is a digital product and will be available from your account after purchase."})]})}):null,a.hasPhysical&&!(t.checkout.allowShipping??!1)?s.jsx(Pt,{className:"rounded-2xl border-red-200 bg-red-50 dark:border-red-900/40 dark:bg-red-950/30",children:s.jsxs(qt,{className:"p-5",children:[s.jsx("div",{className:"text-sm font-semibold text-red-900 dark:text-red-200",children:"Shipping required"}),s.jsx("div",{className:"mt-1 text-sm text-red-800/90 dark:text-red-200/80",children:"Your cart contains shippable items, but shipping is disabled for this checkout."})]})}):null,c?s.jsxs("section",{className:"space-y-4 rounded-2xl border border-neutral-200 bg-white p-5 dark:border-neutral-800 dark:bg-neutral-950",children:[s.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Contact"}),s.jsx("div",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:a.email==="required"||a.name==="required"||a.phone==="required"?"Required":"Optional"})]}),s.jsxs("div",{className:"grid gap-3",children:[a.email!=="none"?s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:"checkout-email",children:"Email"}),s.jsx(Be,{id:"checkout-email",value:n.values.email??"",onChange:m=>n.setField("email",m.target.value),placeholder:"you@company.com","aria-invalid":!!n.fieldErrors.email,required:a.email==="required"}),s.jsx(Bo,{message:n.fieldErrors.email})]}):null,a.name!=="none"?s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:"checkout-name",children:"Name"}),s.jsx(Be,{id:"checkout-name",value:n.values.name??"",onChange:m=>n.setField("name",m.target.value),placeholder:"Full name","aria-invalid":!!n.fieldErrors.name,required:a.name==="required"}),s.jsx(Bo,{message:n.fieldErrors.name})]}):null,a.phone!=="none"?s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:"checkout-phone",children:"Phone"}),s.jsx(Be,{id:"checkout-phone",value:n.values.phone??"",onChange:m=>n.setField("phone",m.target.value),placeholder:"Phone number","aria-invalid":!!n.fieldErrors.phone,required:a.phone==="required"}),s.jsx(Bo,{message:n.fieldErrors.phone})]}):null]})]}):null,i?s.jsx(ua,{title:"Shipping address",value:d,onChange:m=>n.setField("shippingAddress",m),errors:{line1:n.fieldErrors["shippingAddress.line1"],city:n.fieldErrors["shippingAddress.city"],postalCode:n.fieldErrors["shippingAddress.postalCode"],country:n.fieldErrors["shippingAddress.country"]}}):null,i&&u.methods.length?s.jsx(hp,{methods:u.methods,value:n.values.shippingMethodId,onChange:m=>n.setField("shippingMethodId",m),currency:t.currency}):null,o==="full"?s.jsx(ua,{title:"Billing address",value:f,onChange:m=>n.setField("billingAddress",m)}):null,t.checkout.allowTipping?s.jsxs("section",{className:"space-y-4 rounded-2xl border border-neutral-200 bg-white p-5 dark:border-neutral-800 dark:bg-neutral-950",children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Tip"}),s.jsxs("div",{className:"grid gap-2",children:[s.jsxs(st,{htmlFor:"checkout-tip",children:["Tip amount (",t.currency,")"]}),s.jsx(Be,{id:"checkout-tip",inputMode:"decimal",value:String(n.values.tipAmount??0),onChange:m=>n.setField("tipAmount",Number(m.target.value)||0)})]})]}):null,o==="full"?s.jsxs("section",{className:"space-y-4 rounded-2xl border border-neutral-200 bg-white p-5 dark:border-neutral-800 dark:bg-neutral-950",children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Notes"}),s.jsxs("div",{className:"grid gap-2",children:[s.jsx(st,{htmlFor:"checkout-notes",children:"Order notes (optional)"}),s.jsx(Be,{id:"checkout-notes",value:n.values.notes??"",onChange:m=>n.setField("notes",m.target.value),placeholder:"Delivery instructions, gift note…"})]})]}):null]})}function tC(e){return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),s.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]})}function nC(e){return s.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[s.jsx("path",{d:"M3 6h18"}),s.jsx("path",{d:"M8 6V4h8v2"}),s.jsx("path",{d:"M6 6l1 16h10l1-16"})]})}function xp({open:e,onOpenChange:t,issues:n,onRemoveItem:r,onUpdateQuantity:o,onGoToCart:a,className:i}){const c=n.some(l=>l.type==="out_of_stock"||l.type==="product_unavailable");return s.jsx(Qa,{open:e,onOpenChange:t,children:s.jsxs(Js,{className:F("sm:max-w-lg",i),children:[s.jsxs(Ja,{children:[s.jsxs(Xs,{className:"flex items-center gap-2",children:[s.jsx(tC,{className:"h-5 w-5 text-amber-500"}),"Inventory Update"]}),s.jsx(Xa,{children:c?"Some items in your cart are no longer available.":"Some items in your cart have limited availability."})]}),s.jsx("div",{className:"my-4 divide-y divide-neutral-200 dark:divide-neutral-800",children:n.map(l=>s.jsx(rC,{issue:l,onRemove:()=>r(l.productId,l.variantId),onUpdateQty:d=>o(l.productId,l.variantId,d)},`${l.productId}::${l.variantId??""}`))}),s.jsxs(pf,{className:"flex-col gap-2 sm:flex-row",children:[a?s.jsx(re,{type:"button",variant:"outline",onClick:()=>{t(!1),a()},children:"Go to Cart"}):null,s.jsx(re,{type:"button",onClick:()=>t(!1),children:"Continue"})]})]})})}function rC({issue:e,onRemove:t,onUpdateQty:n}){const r=e.type==="out_of_stock"||e.type==="product_unavailable";return s.jsxs("div",{className:"flex items-start gap-3 py-3",children:[s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:"text-sm font-medium text-neutral-900 dark:text-neutral-100",children:e.title}),s.jsx("div",{className:F("mt-0.5 text-sm",r?"text-red-600 dark:text-red-400":"text-amber-600 dark:text-amber-400"),children:e.message}),e.type==="insufficient_stock"&&e.availableQty>0?s.jsxs("div",{className:"mt-1 text-xs text-neutral-500 dark:text-neutral-400",children:["You requested ",e.requestedQty,", but only ",e.availableQty," available"]}):null]}),s.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.type==="insufficient_stock"&&e.availableQty>0?s.jsxs(re,{type:"button",size:"sm",variant:"outline",onClick:()=>n(e.availableQty),children:["Update to ",e.availableQty]}):null,s.jsxs(re,{type:"button",size:"sm",variant:"ghost",className:"text-red-600 hover:bg-red-50 hover:text-red-700 dark:text-red-400 dark:hover:bg-red-950/30 dark:hover:text-red-300",onClick:t,children:[s.jsx(nC,{className:"h-4 w-4"}),s.jsx("span",{className:"sr-only",children:"Remove"})]})]})]})}function vp({className:e,ctaLabel:t,renderEmbedded:n,embeddedFallback:r,renderCustom:o,customFallback:a}){const{config:i}=Pe(),c=Rt(),l=Ls(),{config:d,isLoading:f}=md(),[u,m]=p.useState(!1);p.useEffect(()=>{let M=!0;return Promise.resolve().then(()=>require("./walletDetection-bNmV5ItZ.js")).then(z=>{M&&m(z.detectSolanaWallets())}),()=>{M=!1}},[]);const h=pd({items:c.items}),[v,x]=p.useState(!1),g=p.useMemo(()=>i.checkout.paymentMethods&&i.checkout.paymentMethods.length?i.checkout.paymentMethods:[{id:"card",label:"Card",ctaLabel:"Pay now"}],[i.checkout.paymentMethods]),y=p.useMemo(()=>g.filter(z=>!(z.id==="card"&&!d.card||z.id==="crypto"&&!d.crypto||z.id==="credits"&&!d.credits||z.id==="crypto"&&!u)),[u,g,d]),[k,_]=p.useState((y[0]??g[0])?.id??"card");p.useEffect(()=>{y.length&&(y.some(M=>M.id===k)||_(y[0].id))},[k,y]),p.useEffect(()=>{l.reset()},[k]);const w=y.find(M=>M.id===k)??g.find(M=>M.id===k)??g[0]??{ctaLabel:"Pay now"},j=w.description??(k==="crypto"?"Pay using a connected wallet.":void 0),P=k==="crypto"&&!u,T=f||l.status==="validating"||l.status==="creating_session"||l.status==="redirecting"||h.isVerifying,N=t??w.ctaLabel??(i.checkout.mode==="none"?"Continue to payment":"Pay now"),A=p.useCallback(async M=>{const z=await h.verify();if(!z.ok&&z.issues.length>0){x(!0);return}l.createCheckoutSession({paymentMethodId:M})},[l,h]),R=l.session?.kind==="embedded"?l.session:null,I=l.session?.kind==="custom"?l.session:null;return s.jsxs("div",{className:F("space-y-3",e),children:[y.length>1?s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-xs font-medium text-neutral-600 dark:text-neutral-400",children:"Payment method"}),s.jsx(ci,{value:k,onValueChange:_,children:s.jsx(co,{className:"w-full",children:y.map(M=>s.jsx(Rr,{value:M.id,className:"flex-1",disabled:T,children:M.label},M.id))})})]}):null,l.error?s.jsx("div",{className:"rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-800 dark:border-red-900/40 dark:bg-red-950/30 dark:text-red-200",children:l.error}):null,I?s.jsx("div",{className:"space-y-3",children:o?o(I):a??s.jsx("div",{className:"rounded-lg border border-neutral-200 bg-neutral-50 p-4 text-sm text-neutral-700 dark:border-neutral-800 dark:bg-neutral-900/40 dark:text-neutral-300",children:"Checkout session created. Provide `renderCustom` to render a custom payment UI."})}):R?s.jsx("div",{className:"space-y-3",children:n?n(R):r??s.jsx("div",{className:"rounded-lg border border-neutral-200 bg-neutral-50 p-4 text-sm text-neutral-700 dark:border-neutral-800 dark:bg-neutral-900/40 dark:text-neutral-300",children:"Embedded checkout session created. Provide `renderEmbedded` to render your payment UI."})}):s.jsx(re,{type:"button",className:"w-full",disabled:c.items.length===0||T||P,onClick:()=>{A(k)},children:h.isVerifying?"Checking availability…":T?"Processing…":N}),!R&&!I?s.jsx("p",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:P?"Install a browser wallet to enable crypto payments.":j??"You will be redirected to complete your payment."}):null,s.jsx(xp,{open:v,onOpenChange:M=>{x(M),M||h.reset()},issues:h.result?.issues??[],onRemoveItem:(M,z)=>{c.removeItem(M,z)},onUpdateQuantity:(M,z,D)=>{c.setQty(M,z,D)}})]})}function yp({className:e}){const{config:t}=Pe(),n=Rt(),r=Ls(),{settings:o}=tr(),a=(t.checkout.allowPromoCodes??!1)&&o.checkout.promoCodes;return s.jsxs("div",{className:F("rounded-2xl border border-neutral-200 bg-white p-5 dark:border-neutral-800 dark:bg-neutral-950",e),children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Order review"}),s.jsx(yt,{className:"my-3"}),s.jsx("div",{className:"space-y-3",children:n.items.map(i=>s.jsxs("div",{className:"flex items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[s.jsx("div",{className:"h-10 w-10 shrink-0 overflow-hidden rounded-lg border border-neutral-200 bg-neutral-100 dark:border-neutral-800 dark:bg-neutral-900",children:i.imageSnapshot?s.jsx("img",{src:i.imageSnapshot,alt:i.titleSnapshot,className:"h-full w-full object-cover"}):null}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"line-clamp-1 text-sm text-neutral-950 dark:text-neutral-50",children:i.titleSnapshot}),s.jsxs("div",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:["Qty ",i.qty]})]})]}),s.jsx("div",{className:"text-sm font-semibold tabular-nums text-neutral-950 dark:text-neutral-50",children:Ve({amount:i.unitPrice*i.qty,currency:i.currency})})]},`${i.productId}::${i.variantId??""}`))}),s.jsx(yt,{className:"my-3"}),a?s.jsx(vi,{value:r.values.discountCode??n.promoCode,onApply:i=>{r.setField("discountCode",i??""),n.setPromoCode(i)}}):null,a?s.jsx(yt,{className:"my-3"}):null,s.jsxs("div",{className:"flex items-center justify-between text-sm",children:[s.jsx("span",{className:"text-neutral-600 dark:text-neutral-400",children:"Subtotal"}),s.jsx("span",{className:"font-semibold text-neutral-950 dark:text-neutral-50",children:Ve({amount:n.subtotal,currency:t.currency})})]})]})}function po({result:e,onContinueShopping:t,onViewOrders:n,className:r}){return e.kind==="idle"?null:e.kind==="success"?s.jsxs("div",{className:F("rounded-2xl border border-neutral-200 bg-white p-8 text-neutral-950 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",r),children:[s.jsx("div",{className:"text-sm font-semibold text-neutral-600 dark:text-neutral-400",children:"Receipt"}),s.jsx("h2",{className:"mt-2 text-2xl font-semibold",children:"Payment successful"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:"Thanks for your purchase. You’ll receive a confirmation email shortly."}),e.order?s.jsxs("div",{className:"mt-5 rounded-xl border border-neutral-200 bg-neutral-50 p-4 dark:border-neutral-800 dark:bg-neutral-900/40",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:["Order ",e.order.id]}),s.jsxs("div",{className:"mt-1 text-xs text-neutral-600 dark:text-neutral-400",children:[new Date(e.order.createdAt).toLocaleString()," · ",e.order.status]})]}),s.jsx("div",{className:"text-sm font-semibold",children:Ve({amount:e.order.total,currency:e.order.currency})})]}),s.jsxs("div",{className:"mt-3 space-y-2",children:[e.order.items.slice(0,4).map((o,a)=>s.jsxs("div",{className:"flex items-center justify-between gap-3 text-sm",children:[s.jsx("div",{className:"min-w-0 truncate",children:o.title}),s.jsxs("div",{className:"shrink-0 text-neutral-600 dark:text-neutral-400",children:["Qty ",o.qty]})]},`${o.title}-${a}`)),e.order.items.length>4?s.jsxs("div",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:["+",e.order.items.length-4," more item(s)"]}):null]}),s.jsxs("div",{className:"mt-3 flex gap-3 text-sm",children:[e.order.receiptUrl?s.jsx("a",{href:e.order.receiptUrl,className:"hover:underline",children:"Receipt"}):null,e.order.invoiceUrl?s.jsx("a",{href:e.order.invoiceUrl,className:"hover:underline",children:"Invoice"}):null]})]}):e.orderId?s.jsxs("p",{className:"mt-4 text-xs text-neutral-500 dark:text-neutral-400",children:["Session/Order ID: ",s.jsx("span",{className:"font-mono",children:e.orderId})]}):null,s.jsxs("div",{className:"mt-6 flex flex-col gap-2 sm:flex-row",children:[t?s.jsx(re,{type:"button",onClick:t,children:"Continue shopping"}):null,n?s.jsx(re,{type:"button",variant:"outline",onClick:n,children:"View orders"}):null]})]}):e.kind==="cancel"?s.jsxs("div",{className:F("rounded-2xl border border-neutral-200 bg-white p-8 text-neutral-950 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",r),children:[s.jsx("h2",{className:"text-2xl font-semibold",children:"Checkout cancelled"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:"No charges were made. You can continue shopping and try again."}),t?s.jsx("div",{className:"mt-6",children:s.jsx(re,{type:"button",onClick:t,children:"Back to shop"})}):null]}):s.jsxs("div",{className:F("rounded-2xl border border-neutral-200 bg-white p-8 text-neutral-950 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",r),children:[s.jsx("h2",{className:"text-2xl font-semibold",children:"Payment failed"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:e.message??"Something went wrong while processing your payment."}),t?s.jsx("div",{className:"mt-6",children:s.jsx(re,{type:"button",onClick:t,children:"Back to shop"})}):null]})}function sC({onContinueShopping:e,onViewOrders:t,className:n,receiptClassName:r}){const o=Na();return o.kind==="idle"?s.jsx("div",{className:F("flex min-h-[50vh] items-center justify-center p-4",n),children:s.jsx("div",{className:"text-center text-neutral-600 dark:text-neutral-400",children:"Loading order details..."})}):s.jsx("div",{className:F("flex min-h-[50vh] items-center justify-center p-4",n),children:s.jsx(po,{result:o,onContinueShopping:e,onViewOrders:t,className:F("w-full max-w-lg",r)})})}function oC({onContinueShopping:e,className:t,receiptClassName:n}){const r={kind:"cancel"};return s.jsx("div",{className:F("flex min-h-[50vh] items-center justify-center p-4",t),children:s.jsx(po,{result:r,onContinueShopping:e,className:F("w-full max-w-lg",n)})})}function aC(e){switch(e){case"created":return"secondary";case"paid":return"default";case"processing":return"secondary";case"fulfilled":return"outline";case"shipped":return"default";case"delivered":return"outline";case"cancelled":return"outline";case"refunded":return"outline";default:return"secondary"}}function bp({order:e,onView:t,className:n}){const r=`${e.items.length} item${e.items.length===1?"":"s"}`,o=new Date(e.createdAt).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),a=e.status.charAt(0).toUpperCase()+e.status.slice(1);return s.jsx(Pt,{className:F("group overflow-hidden rounded-2xl border-neutral-200/70 bg-white shadow-sm transition-shadow hover:shadow-md dark:border-neutral-800 dark:bg-neutral-950",n),children:s.jsx(qt,{className:"p-5",children:s.jsxs("div",{className:"grid grid-cols-[1fr_auto] gap-x-4 gap-y-2",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[s.jsx("span",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Order"}),s.jsx("span",{className:"truncate font-mono text-sm font-semibold text-neutral-950/80 dark:text-neutral-50/80",children:e.id})]}),s.jsx("div",{className:"mt-0.5 text-xs text-neutral-600 dark:text-neutral-400",children:o})]}),s.jsx("div",{className:"flex items-start justify-end",children:s.jsx(_n,{variant:aC(e.status),className:"capitalize",children:a})}),s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:r}),s.jsx("div",{className:"text-right text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:Ve({amount:e.total,currency:e.currency})}),s.jsxs("div",{className:"col-span-2 mt-3 flex items-center justify-between gap-3 border-t border-neutral-200/70 pt-3 dark:border-neutral-800",children:[s.jsxs("div",{className:"flex items-center gap-1",children:[e.receiptUrl?s.jsx(re,{asChild:!0,type:"button",variant:"ghost",size:"sm",className:"h-8 px-2",children:s.jsx("a",{href:e.receiptUrl,target:"_blank",rel:"noreferrer",children:"Receipt"})}):null,e.invoiceUrl?s.jsx(re,{asChild:!0,type:"button",variant:"ghost",size:"sm",className:"h-8 px-2",children:s.jsx("a",{href:e.invoiceUrl,target:"_blank",rel:"noreferrer",children:"Invoice"})}):null]}),t?s.jsx(re,{type:"button",variant:"outline",size:"sm",className:"h-8",onClick:()=>t(e),children:"Details"}):null]})]})})})}function wp({orders:e,onView:t,className:n}){return s.jsx("div",{className:F("grid gap-4",n),children:e.map(r=>s.jsx(bp,{order:r,onView:t},r.id))})}function iC(e){switch(e){case"paid":return"default";case"processing":return"secondary";case"fulfilled":return"outline";case"cancelled":return"outline";case"refunded":return"outline";default:return"secondary"}}function _p({order:e,onBack:t,className:n}){const r=new Date(e.createdAt).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),o=e.status.charAt(0).toUpperCase()+e.status.slice(1);return s.jsx(Pt,{className:F("overflow-hidden rounded-2xl border-neutral-200/70 bg-white shadow-sm dark:border-neutral-800 dark:bg-neutral-950",n),children:s.jsxs(qt,{className:"p-6",children:[s.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[s.jsx("span",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:"Order"}),s.jsx("span",{className:"truncate font-mono text-sm font-semibold text-neutral-950/80 dark:text-neutral-50/80",children:e.id})]}),s.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-neutral-600 dark:text-neutral-400",children:[s.jsx("span",{children:r}),s.jsx("span",{className:"text-neutral-300 dark:text-neutral-700",children:"·"}),s.jsx("span",{children:o})]})]}),s.jsxs("div",{className:"flex items-center gap-2 sm:justify-end",children:[s.jsx(_n,{variant:iC(e.status),className:"capitalize",children:o}),t?s.jsx(re,{type:"button",variant:"outline",size:"sm",className:"h-8",onClick:t,children:"Back"}):null]})]}),s.jsx(yt,{className:"my-5"}),s.jsx("div",{className:"space-y-3",children:e.items.map((a,i)=>s.jsxs("div",{className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("div",{className:"truncate text-sm text-neutral-950 dark:text-neutral-50",children:a.title}),s.jsxs("div",{className:"mt-0.5 text-xs text-neutral-600 dark:text-neutral-400",children:["Qty ",a.qty]})]}),s.jsx("div",{className:"text-right text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:Ve({amount:a.unitPrice*a.qty,currency:a.currency})})]},`${a.title}-${i}`))}),s.jsx(yt,{className:"my-5"}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:"Total"}),s.jsx("span",{className:"text-sm font-semibold text-neutral-950 dark:text-neutral-50",children:Ve({amount:e.total,currency:e.currency})})]}),e.receiptUrl||e.invoiceUrl?s.jsxs("div",{className:"mt-5 flex flex-wrap items-center gap-2",children:[e.receiptUrl?s.jsx(re,{asChild:!0,type:"button",variant:"ghost",size:"sm",className:"h-8 px-2",children:s.jsx("a",{href:e.receiptUrl,target:"_blank",rel:"noreferrer",children:"Receipt"})}):null,e.invoiceUrl?s.jsx(re,{asChild:!0,type:"button",variant:"ghost",size:"sm",className:"h-8 px-2",children:s.jsx("a",{href:e.invoiceUrl,target:"_blank",rel:"noreferrer",children:"Invoice"})}):null]}):null]})})}function yi(e){const t={};e.shippingProfile&&(t.shippingProfile=e.shippingProfile),e.checkoutRequirements&&(t.checkoutRequirements=JSON.stringify(e.checkoutRequirements)),e.fulfillment?.type&&(t.fulfillmentType=e.fulfillment.type),e.fulfillment?.notes&&(t.fulfillmentNotes=e.fulfillment.notes);const n=e.attributes?.shippingCountries;return typeof n=="string"&&n.trim()&&(t.shippingCountries=n),Object.keys(t).length?t:void 0}function cC(e){return s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:s.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})})}const lC={shop:"/shop",category:e=>`/shop/${e}`,product:e=>`/product/${e}`,cart:"/cart",checkout:"/checkout",orders:"/account/orders",subscribe:"/subscribe"};function dC(e){const t=new Set;let n=Number.POSITIVE_INFINITY,r=0;for(const i of e){for(const c of i.tags??[])t.add(c);n=Math.min(n,i.price),r=Math.max(r,i.price)}const o=Array.from(t).slice(0,12),a=Number.isFinite(n)?{min:n,max:r}:void 0;return{tags:o,price:a}}function uC({className:e,routes:t,initialCategorySlug:n}){const{config:r}=Pe(),o=Rt(),a=lo(),i={...lC,...t},[c,l]=p.useState("cart"),[d,f]=p.useState(()=>typeof window>"u"?!1:window.matchMedia?.("(min-width: 1024px)")?.matches??!1);p.useEffect(()=>{if(typeof window>"u")return;const $=window.matchMedia?.("(min-width: 1024px)");if(!$)return;const G=()=>f($.matches);return G(),$.addEventListener?.("change",G),()=>$.removeEventListener?.("change",G)},[]);const{categories:u,isLoading:m,error:h}=Sa(),v=p.useMemo(()=>Ea({includeCategory:!0}),[]),[x,g]=p.useState(v?.search??""),[y,k]=p.useState(n??v?.category),[_,w]=p.useState(v?.page??1),[j,P]=p.useState(v?.sort??"featured"),[T,N]=p.useState(v?.filters??{}),{data:A,isLoading:R,error:I}=Ds({category:y,search:x.trim()||void 0,filters:T,sort:j,page:_,pageSize:24}),M=p.useMemo(()=>dC(A?.items??[]),[A?.items]),{settings:z}=tr(),D=z.catalog.filters,V=z.catalog.sort,L=p.useMemo(()=>{const $=[];return V.featured&&$.push({value:"featured",label:"Featured"}),V.priceAsc&&$.push({value:"price_asc",label:"Price: Low to High"}),V.priceDesc&&$.push({value:"price_desc",label:"Price: High to Low"}),$.length===0&&$.push({value:"featured",label:"Featured"}),$},[V]);p.useEffect(()=>{L.some($=>$.value===j)||P(L[0].value)},[L,j]),Aa({search:x,sort:j,page:_,category:y,filters:T},{includeCategory:!0});const[S,C]=p.useState(!1),[W,Z]=p.useState(!1),[Q,de]=p.useState(null),[q,K]=p.useState(!1),Y=$=>{k($.slug),w(1),C(!1)},me=p.useCallback(($,G,pe)=>{o.addItem({productId:$.id,variantId:G?.id,unitPrice:$.price,currency:$.currency,titleSnapshot:G?`${$.title} — ${G.title}`:$.title,imageSnapshot:$.images[0]?.url,paymentResource:$.id,metadata:yi($)},pe),a?.toast({title:"Added to cart",description:$.title,actionLabel:"View cart",onAction:()=>{typeof window<"u"&&(window.matchMedia?.("(min-width: 1024px)").matches?window.location.assign(i.cart):(l("cart"),Z(!0)))}})},[o,i.cart,a]);return s.jsxs("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",e),children:[s.jsx("header",{className:"sticky top-0 z-40 border-b border-neutral-200 bg-neutral-50/80 backdrop-blur dark:border-neutral-800 dark:bg-neutral-950/70",children:s.jsxs("div",{className:"mx-auto flex max-w-7xl items-center gap-3 px-4 py-3",children:[s.jsx("a",{href:i.shop,className:"text-sm font-semibold tracking-tight",children:r.brand?.name??"Shop"}),s.jsx("div",{className:"flex-1",children:s.jsx(hi,{value:x,onChange:g})}),s.jsxs("div",{className:"flex items-center gap-2 lg:hidden",children:[s.jsxs(eo,{open:S,onOpenChange:C,children:[s.jsx(to,{asChild:!0,children:s.jsx(re,{type:"button",variant:"outline",children:"Filters"})}),s.jsxs(Fr,{side:"left",children:[s.jsx(no,{children:s.jsx(ro,{children:"Browse"})}),s.jsxs("div",{className:"mt-4",children:[h?s.jsx(Wt,{description:h}):null,m?s.jsxs("div",{className:"space-y-2",children:[s.jsx(Oe,{className:"h-9"}),s.jsx(Oe,{className:"h-9"}),s.jsx(Oe,{className:"h-9"})]}):s.jsxs("div",{className:"space-y-6",children:[s.jsx(da,{categories:u,activeSlug:y,onSelect:Y}),s.jsx(As,{facets:M,value:T,onChange:$=>{N($),w(1)},onClear:()=>{N({}),w(1)},enabledFilters:D}),L.length>1&&s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-semibold",children:"Sort"}),s.jsxs(Ss,{value:j,onValueChange:$=>{P($),w(1)},children:[s.jsx(Pr,{"aria-label":"Sort",children:s.jsx(Cs,{placeholder:"Sort"})}),s.jsx(Ir,{children:L.map($=>s.jsx(Tr,{value:$.value,children:$.label},$.value))})]})]})]})]})]})]}),s.jsx(Or,{open:!d&&W,onOpenChange:Z,side:"bottom",preferredTab:c,onCheckout:()=>{typeof window<"u"&&window.location.assign(i.checkout)},trigger:s.jsxs(re,{type:"button",variant:"default",onClick:()=>l("cart"),children:["Cart (",o.count,")"]})})]}),s.jsxs("div",{className:"hidden lg:flex items-center gap-2",children:[s.jsx(Or,{open:d&&W,onOpenChange:Z,side:"popup",preferredTab:c,onCheckout:()=>{typeof window<"u"&&window.location.assign(i.checkout)},trigger:s.jsxs(re,{type:"button",variant:"outline",onClick:()=>l("cart"),children:["Cart (",o.count,")"]})}),s.jsx(re,{type:"button",variant:"default",onClick:()=>{typeof window<"u"&&window.location.assign(i.checkout)},children:"Checkout"})]})]})}),s.jsxs(re,{type:"button",variant:"ghost",className:F("fixed bottom-4 right-4 z-30 hidden items-center gap-2 rounded-full border border-neutral-200 bg-white/90 px-3 py-2 text-xs font-medium text-neutral-900 shadow-sm backdrop-blur hover:bg-white dark:border-neutral-800 dark:bg-neutral-950/80 dark:text-neutral-50 dark:hover:bg-neutral-950 lg:flex",W?"lg:hidden":void 0),onClick:()=>{l("chat"),Z(!0)},"aria-label":"Open chat",children:[s.jsx(cC,{className:"h-4 w-4"}),"Chat"]}),s.jsxs("main",{className:"mx-auto grid max-w-7xl items-start gap-6 px-4 py-6 lg:grid-cols-[280px_1fr]",children:[s.jsx("aside",{className:"hidden lg:block",children:s.jsx("div",{className:"sticky top-24",children:s.jsxs(Pt,{className:"flex max-h-[calc(100vh-6rem)] flex-col rounded-2xl",children:[s.jsx(Cr,{className:"pb-4",children:s.jsx(Nr,{className:"text-base",children:"Browse"})}),s.jsxs(qt,{className:"flex-1 space-y-6 overflow-y-auto pr-2",children:[s.jsxs("div",{children:[s.jsx("div",{className:"text-sm font-semibold",children:"Categories"}),h?s.jsx(Wt,{className:"mt-3",description:h}):null,m?s.jsxs("div",{className:"mt-3 space-y-2",children:[s.jsx(Oe,{className:"h-9"}),s.jsx(Oe,{className:"h-9"}),s.jsx(Oe,{className:"h-9"})]}):s.jsx("div",{className:"mt-3",children:s.jsx(da,{categories:u,activeSlug:y,onSelect:Y})})]}),L.length>1&&s.jsxs("div",{children:[s.jsx("div",{className:"text-sm font-semibold",children:"Sort"}),s.jsx("div",{className:"mt-2",children:s.jsxs(Ss,{value:j,onValueChange:$=>{P($),w(1)},children:[s.jsx(Pr,{"aria-label":"Sort",children:s.jsx(Cs,{placeholder:"Sort"})}),s.jsx(Ir,{children:L.map($=>s.jsx(Tr,{value:$.value,children:$.label},$.value))})]})})]}),s.jsx(As,{facets:M,value:T,onChange:$=>{N($),w(1)},onClear:()=>{N({}),w(1)},enabledFilters:D})]})]})})}),s.jsxs("section",{children:[s.jsx("div",{className:"flex items-end justify-between gap-3",children:s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:z.shopPage.title||"Shop"}),z.shopPage.description&&s.jsx("p",{className:"mt-1 text-sm text-neutral-600 dark:text-neutral-400",children:z.shopPage.description})]})}),I?s.jsx(Wt,{className:"mt-6",description:I}):null,R?s.jsx("div",{className:"mt-6 grid grid-cols-2 gap-4 md:grid-cols-3 lg:grid-cols-4",children:Array.from({length:8}).map(($,G)=>s.jsx(Oe,{className:"aspect-[4/5] rounded-2xl"},G))}):s.jsxs("div",{className:"mt-6",children:[s.jsx(fo,{products:A?.items??[],columns:r.ui?.productGrid?.columns,getProductHref:$=>i.product($.slug),onAddToCart:$=>me($,null,1),onQuickView:$=>{de($),K(!0)},layout:z.shopLayout.layout,imageCrop:z.shopLayout.imageCrop}),s.jsxs("div",{className:"mt-8 flex items-center justify-between",children:[s.jsx(re,{type:"button",variant:"outline",disabled:_<=1,onClick:()=>w($=>Math.max(1,$-1)),children:"Previous"}),s.jsxs("div",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:["Page ",_]}),s.jsx(re,{type:"button",variant:"outline",disabled:!A?.hasNextPage,onClick:()=>w($=>$+1),children:"Next"})]})]})]})]}),s.jsx(pi,{product:Q,open:q,onOpenChange:K,productHref:$=>i.product($),onAddToCart:($,G,pe)=>me($,G,pe)})]})}function fC(e){return s.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:s.jsx("path",{d:"M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z"})})}function pC({categorySlug:e,className:t,routes:n}){const{config:r}=Pe(),o=Rt(),a=lo(),{categories:i}=Sa(),[c,l]=p.useState(()=>typeof window>"u"?!1:window.matchMedia?.("(min-width: 1024px)")?.matches??!1);p.useEffect(()=>{if(typeof window>"u")return;const U=window.matchMedia?.("(min-width: 1024px)");if(!U)return;const se=()=>l(U.matches);return se(),U.addEventListener?.("change",se),()=>U.removeEventListener?.("change",se)},[]);const[d,f]=p.useState(!1),[u,m]=p.useState(!1),[h,v]=p.useState("cart"),x=p.useMemo(()=>Ea({includeCategory:!1}),[]),[g,y]=p.useState(x?.search??""),[k,_]=p.useState(x?.page??1),[w,j]=p.useState(x?.sort??"featured"),[P,T]=p.useState(x?.filters??{}),[N,A]=p.useState(null),[R,I]=p.useState(!1),M=i.find(U=>U.slug===e)??null,{data:z,isLoading:D,error:V}=Ds({category:e,search:g.trim()||void 0,filters:P,sort:w,page:k,pageSize:24}),L=n?.product??(U=>`/product/${U}`),S=n?.shop??"/shop",C=n?.cart??"/cart",W=n?.checkout??"/checkout",Z=p.useMemo(()=>{const U=z?.items??[],se=new Set;let le=Number.POSITIVE_INFINITY,ue=0;for(const Ye of U){for(const qe of Ye.tags??[])se.add(qe);le=Math.min(le,Ye.price),ue=Math.max(ue,Ye.price)}const Te=Array.from(se).slice(0,12),We=Number.isFinite(le)?{min:le,max:ue}:void 0;return{tags:Te,price:We}},[z?.items]),{settings:Q}=tr(),de=Q.catalog.filters,q=Q.catalog.sort,K=p.useMemo(()=>{const U=[];return q.featured&&U.push({value:"featured",label:"Featured"}),q.priceAsc&&U.push({value:"price_asc",label:"Price: Low to High"}),q.priceDesc&&U.push({value:"price_desc",label:"Price: High to Low"}),U.length===0&&U.push({value:"featured",label:"Featured"}),U},[q]);p.useEffect(()=>{K.some(U=>U.value===w)||j(K[0].value)},[K,w]),Aa({search:g,sort:w,page:k,filters:P},{includeCategory:!1});const Y=p.useCallback((U,se,le)=>{o.addItem({productId:U.id,variantId:se?.id,unitPrice:U.price,currency:U.currency,titleSnapshot:se?`${U.title} — ${se.title}`:U.title,imageSnapshot:U.images[0]?.url,paymentResource:U.id,metadata:yi(U)},le),a?.toast({title:"Added to cart",description:U.title,actionLabel:"View cart",onAction:()=>{typeof window<"u"&&(window.matchMedia?.("(min-width: 1024px)").matches?window.location.assign(C):(v("cart"),m(!0)))}})},[o,C,a]),me=U=>{T(U),_(1)},$=()=>{T({}),_(1)},G=U=>{j(U),_(1)},pe=s.jsx(Pt,{className:"flex max-h-[calc(100vh-6rem)] flex-col rounded-2xl",children:s.jsxs(qt,{className:"flex-1 space-y-5 overflow-y-auto pr-2 pt-6",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-neutral-500 dark:text-neutral-400",children:"Category"}),s.jsx(re,{asChild:!0,type:"button",variant:"ghost",size:"sm",className:"h-8 px-2 text-xs",children:s.jsx("a",{href:S,children:"All categories"})})]}),s.jsx("div",{className:"text-base font-semibold text-neutral-950 dark:text-neutral-50",children:M?.name??e}),s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:M?.description??"Browse products in this category."})]}),K.length>1&&s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-sm font-semibold",children:"Sort"}),s.jsxs(Ss,{value:w,onValueChange:G,children:[s.jsx(Pr,{"aria-label":"Sort",children:s.jsx(Cs,{placeholder:"Sort"})}),s.jsx(Ir,{children:K.map(U=>s.jsx(Tr,{value:U.value,children:U.label},U.value))})]})]}),s.jsx(yt,{}),s.jsx(As,{facets:Z,value:P,onChange:me,onClear:$,enabledFilters:de})]})});return s.jsxs("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",t),children:[s.jsx("header",{className:"sticky top-0 z-40 border-b border-neutral-200 bg-neutral-50/80 backdrop-blur dark:border-neutral-800 dark:bg-neutral-950/70",children:s.jsxs("div",{className:"mx-auto flex max-w-7xl items-center gap-3 px-4 py-3",children:[s.jsx("a",{href:S,className:"text-sm font-semibold tracking-tight",children:r.brand?.name??"Shop"}),s.jsx("div",{className:"flex-1",children:s.jsx(hi,{value:g,onChange:y})}),s.jsxs("div",{className:"flex items-center gap-2 lg:hidden",children:[s.jsxs(eo,{open:d,onOpenChange:f,children:[s.jsx(to,{asChild:!0,children:s.jsx(re,{type:"button",variant:"outline",children:"Filters"})}),s.jsxs(Fr,{side:"left",children:[s.jsx(no,{children:s.jsx(ro,{children:"Filters"})}),s.jsx("div",{className:"mt-4",children:pe})]})]}),s.jsx(Or,{open:!c&&u,onOpenChange:m,side:"bottom",preferredTab:h,onCheckout:()=>{typeof window<"u"&&window.location.assign(W)},trigger:s.jsxs(re,{type:"button",variant:"default",onClick:()=>v("cart"),children:["Cart (",o.count,")"]})})]}),s.jsxs("div",{className:"hidden lg:flex items-center gap-2",children:[s.jsx(Or,{open:c&&u,onOpenChange:m,side:"popup",preferredTab:h,onCheckout:()=>{typeof window<"u"&&window.location.assign(W)},trigger:s.jsxs(re,{type:"button",variant:"outline",onClick:()=>v("cart"),children:["Cart (",o.count,")"]})}),s.jsx(re,{type:"button",variant:"default",onClick:()=>{typeof window<"u"&&window.location.assign(W)},children:"Checkout"})]})]})}),s.jsxs(re,{type:"button",variant:"ghost",className:F("fixed bottom-4 right-4 z-30 hidden items-center gap-2 rounded-full border border-neutral-200 bg-white/90 px-3 py-2 text-xs font-medium text-neutral-900 shadow-sm backdrop-blur hover:bg-white dark:border-neutral-800 dark:bg-neutral-950/80 dark:text-neutral-50 dark:hover:bg-neutral-950 lg:flex",u?"lg:hidden":void 0),onClick:()=>{v("chat"),m(!0)},"aria-label":"Open chat",children:[s.jsx(fC,{className:"h-4 w-4"}),"Chat"]}),s.jsxs("main",{className:"mx-auto max-w-7xl px-4 py-8",children:[s.jsx(mi,{items:[{label:"Shop",href:S},{label:M?.name??e}]}),s.jsxs("div",{className:"mt-6",children:[s.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:M?.name??"Category"}),s.jsx("p",{className:"mt-1 text-sm text-neutral-600 dark:text-neutral-400",children:M?.description??"Browse products in this category."})]}),V?s.jsx(Wt,{className:"mt-6",description:V}):null,s.jsxs("div",{className:"mt-6 grid gap-6 lg:grid-cols-[280px_1fr]",children:[s.jsx("aside",{className:"hidden lg:block",children:s.jsx("div",{className:"sticky top-24",children:pe})}),s.jsx("div",{children:D?s.jsx("div",{className:"mt-6 grid grid-cols-2 gap-4 md:grid-cols-3 lg:grid-cols-4",children:Array.from({length:8}).map((U,se)=>s.jsx(Oe,{className:"aspect-[4/5] rounded-2xl"},se))}):s.jsxs("div",{className:"mt-6",children:[s.jsx(fo,{products:z?.items??[],columns:r.ui?.productGrid?.columns,getProductHref:U=>L(U.slug),onAddToCart:U=>Y(U,null,1),onQuickView:U=>{A(U),I(!0)},layout:Q.categoryLayout.layout,imageCrop:Q.categoryLayout.imageCrop}),s.jsxs("div",{className:"mt-8 flex items-center justify-between",children:[s.jsx(re,{type:"button",variant:"outline",disabled:k<=1,onClick:()=>_(U=>Math.max(1,U-1)),children:"Previous"}),s.jsxs("div",{className:"text-xs text-neutral-600 dark:text-neutral-400",children:["Page ",k]}),s.jsx(re,{type:"button",variant:"outline",disabled:!z?.hasNextPage,onClick:()=>_(U=>U+1),children:"Next"})]})]})})]}),s.jsx(pi,{product:N,open:R,onOpenChange:I,productHref:U=>L(U),onAddToCart:(U,se,le)=>Y(U,se,le)})]})]})}function mC(e){return!e||typeof e!="string"?[]:e.split(",").map(t=>t.trim()).filter(Boolean)}function hC({slug:e,className:t,routes:n}){const r=Rt(),o=lo(),{product:a,isLoading:i,error:c}=ld(e),[l,d]=p.useState(1),[f,u]=p.useState({selectedOptions:{},variant:null});p.useEffect(()=>{if(!a||!a.variants?.length)return;const D=a.variants[0];u({selectedOptions:{...D.options},variant:D})},[a?.id]);const{settings:m}=tr(),{mode:h,maxItems:v}=m.relatedProducts,x=hd({productId:a?.id,enabled:h==="ai"&&!!a?.id}),g=p.useMemo(()=>h==="by_category"&&a?.categoryIds?.length?{category:a.categoryIds[0],page:1,pageSize:v+1}:{page:1,pageSize:v+4},[h,v,a?.categoryIds]),y=Ds(g),k=p.useMemo(()=>{const V=(y.data?.items??[]).filter(L=>L.slug!==e);if(h==="manual"&&a){const L=a.attributes?.relatedProductIds||a.attributes?.related_product_ids;if(L){const S=mC(String(L));if(S.length>0){const C=new Map(V.map(Z=>[Z.id,Z]));return S.map(Z=>C.get(Z)).filter(Z=>!!Z).slice(0,v)}}}if(h==="ai"&&x.relatedProductIds&&x.relatedProductIds.length>0){const L=new Map(V.map(C=>[C.id,C])),S=x.relatedProductIds.map(C=>L.get(C)).filter(C=>!!C);if(S.length>0)return S.slice(0,v)}return V.slice(0,v)},[y.data?.items,e,h,v,a,x.relatedProductIds]),_=n?.shop??"/shop",w=n?.checkout??"/checkout",j=n?.cart??"/cart",P=n?.product??(D=>`/product/${D}`);if(i)return s.jsx("div",{className:F("min-h-screen bg-neutral-50 p-6 dark:bg-neutral-950",t),children:s.jsxs("div",{className:"mx-auto max-w-6xl",children:[s.jsx(Oe,{className:"h-5 w-40"}),s.jsxs("div",{className:"mt-6 grid gap-8 lg:grid-cols-2",children:[s.jsx(Oe,{className:"aspect-square rounded-2xl"}),s.jsxs("div",{className:"space-y-4",children:[s.jsx(Oe,{className:"h-8 w-2/3"}),s.jsx(Oe,{className:"h-6 w-32"}),s.jsx(Oe,{className:"h-20"}),s.jsx(Oe,{className:"h-11"})]})]})]})});if(c)return s.jsx("div",{className:F("min-h-screen bg-neutral-50 p-6 dark:bg-neutral-950",t),children:s.jsx("div",{className:"mx-auto max-w-6xl",children:s.jsx(Wt,{description:c})})});if(!a)return s.jsx("div",{className:F("min-h-screen bg-neutral-50 p-6 dark:bg-neutral-950",t),children:s.jsx("div",{className:"mx-auto max-w-6xl",children:s.jsx(Wt,{description:"Product not found."})})});const T=f.variant?.price??a.price,N=f.variant?.compareAtPrice??a.compareAtPrice,A=f.variant?.inventoryStatus==="out_of_stock"||typeof f.variant?.inventoryQuantity=="number"&&f.variant.inventoryQuantity<=0,R=a.inventoryStatus==="out_of_stock"||typeof a.inventoryQuantity=="number"&&a.inventoryQuantity<=0,I=f.variant?A:R,M=()=>{I||(r.addItem({productId:a.id,variantId:f.variant?.id,unitPrice:T,currency:a.currency,titleSnapshot:f.variant?`${a.title} — ${f.variant.title}`:a.title,imageSnapshot:a.images[0]?.url,paymentResource:a.id,metadata:yi(a)},l),o?.toast({title:"Added to cart",description:a.title,actionLabel:"View cart",onAction:()=>{typeof window<"u"&&window.location.assign(j)}}))},z=()=>{I||(M(),typeof window<"u"&&window.location.assign(w))};return s.jsx("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",t),children:s.jsxs("main",{className:"mx-auto max-w-6xl px-4 py-8",children:[s.jsx(mi,{items:[{label:"Shop",href:_},{label:a.title}]}),s.jsxs("div",{className:"mt-6 grid gap-10 lg:grid-cols-2",children:[s.jsx(di,{images:a.images}),s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:a.title}),s.jsx("div",{className:"mt-3",children:s.jsx(uo,{amount:T,currency:a.currency,compareAt:N})}),I?s.jsx("div",{className:"mt-2 text-sm font-medium text-red-700 dark:text-red-300",children:"Out of stock"}):typeof a.inventoryQuantity=="number"&&a.inventoryQuantity>0&&a.inventoryQuantity<=5?s.jsxs("div",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:["Only ",s.jsx("span",{className:"font-semibold text-neutral-950 dark:text-neutral-50",children:a.inventoryQuantity})," left"]}):null,s.jsx("p",{className:"mt-4 text-sm text-neutral-600 dark:text-neutral-400",children:a.description})]}),s.jsx(ui,{product:a,value:{selectedOptions:f.selectedOptions,variantId:f.variant?.id},onChange:D=>u(D)}),s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx(fi,{qty:l,onChange:d}),s.jsx(re,{type:"button",onClick:M,className:"flex-1",disabled:I,children:I?"Out of stock":"Add to cart"}),s.jsx(re,{type:"button",variant:"outline",onClick:z,disabled:I,children:"Buy now"})]}),(m.sections.showDescription||m.sections.showSpecs||m.sections.showShipping)&&s.jsxs(Lf,{type:"single",collapsible:!0,defaultValue:m.sections.showDescription?"desc":void 0,children:[m.sections.showDescription&&s.jsxs(wr,{value:"desc",children:[s.jsx(_r,{children:"Description"}),s.jsx(kr,{children:s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:a.description})})]}),m.sections.showSpecs&&s.jsxs(wr,{value:"specs",children:[s.jsx(_r,{children:"Specs"}),s.jsx(kr,{children:s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:a.attributes?s.jsx("div",{className:"space-y-1",children:Object.entries(a.attributes).map(([D,V])=>s.jsxs("div",{children:[s.jsxs("span",{className:"font-medium text-neutral-950 dark:text-neutral-50",children:[D,":"]})," ",String(V)]},D))}):"No specs provided."})})]}),m.sections.showShipping&&s.jsxs(wr,{value:"ship",children:[s.jsx(_r,{children:"Shipping & returns"}),s.jsx(kr,{children:s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:"Ships in 2–3 business days. Easy returns within 30 days."})})]})]})]})]}),m.sections.showRelatedProducts&&k.length?s.jsxs("section",{className:"mt-12",children:[s.jsx("h2",{className:"text-lg font-semibold",children:"Related products"}),s.jsx("div",{className:"mt-4",children:s.jsx(fo,{products:k,columns:{base:2,md:4,lg:4},layout:m.relatedProducts.layout.layout,imageCrop:m.relatedProducts.layout.imageCrop,getProductHref:D=>P(D.slug),onAddToCart:D=>r.addItem({productId:D.id,unitPrice:D.price,currency:D.currency,titleSnapshot:D.title,imageSnapshot:D.images[0]?.url,paymentResource:D.id},1)})})]}):null]})})}function gC({className:e,checkoutHref:t}){const{config:n}=Pe(),{settings:r}=tr(),o=t??"/checkout",a=n.checkout.allowPromoCodes&&r.checkout.promoCodes;return s.jsx("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",e),children:s.jsxs("main",{className:"mx-auto max-w-6xl px-4 py-10",children:[s.jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:"Cart"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:"Review items, adjust quantities, then check out."}),s.jsx("div",{className:"mt-8",children:s.jsx(pp,{onCheckout:()=>{typeof window<"u"&&window.location.assign(o)},showPromoCode:a})})]})})}function xC({className:e,routes:t}){const{config:n}=Pe(),r=Rt(),o=Na(),a=n.customer?.isSignedIn??!!n.customer?.id,c=!(n.checkout.requireAccount?!1:n.checkout.guestCheckout??!0)&&!a;p.useEffect(()=>{o.kind==="success"&&r.clear()},[o.kind]);const l=t?.shop??"/shop",d=t?.orders??"/account/orders",f=t?.login;return s.jsx("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",e),children:s.jsxs("main",{className:"mx-auto max-w-6xl px-4 py-10",children:[s.jsx(po,{result:o,onContinueShopping:()=>{typeof window<"u"&&window.location.assign(l)},onViewOrders:()=>{typeof window<"u"&&window.location.assign(d)}}),o.kind==="idle"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:"Checkout"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:n.checkout.mode==="none"?"Confirm and pay.":"Enter details, then complete payment."})]}),s.jsx("div",{className:"mt-8",children:s.jsx(cd,{children:c?s.jsxs(Pt,{className:"rounded-2xl",children:[s.jsx(Cr,{className:"pb-4",children:s.jsx(Nr,{className:"text-base",children:"Sign in required"})}),s.jsxs(qt,{children:[s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:"This store requires an account to complete checkout."}),f?s.jsx("div",{className:"mt-4",children:s.jsx(re,{type:"button",onClick:()=>{typeof window<"u"&&window.location.assign(f)},children:"Sign in"})}):null]})]}):s.jsx(mp,{left:s.jsxs("div",{className:"space-y-6",children:[s.jsx(gp,{}),s.jsxs(Pt,{className:"rounded-2xl",children:[s.jsx(Cr,{className:"pb-4",children:s.jsx(Nr,{className:"text-base",children:"Payment"})}),s.jsxs(qt,{children:[s.jsx(yt,{className:"mb-4"}),s.jsx(vp,{})]})]})]}),right:s.jsx("div",{className:"lg:sticky lg:top-24",children:s.jsx(yp,{})})})})})]}):null]})})}function vC({className:e,isSignedIn:t=!0,onLogin:n}){const{orders:r,isLoading:o,error:a}=dd(),[i,c]=p.useState(null);return t?s.jsx("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",e),children:s.jsxs("main",{className:"mx-auto max-w-5xl px-4 py-10 sm:py-12",children:[s.jsxs("header",{className:"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-3xl font-semibold tracking-tight",children:"Orders"}),s.jsx("p",{className:"mt-2 text-sm text-neutral-600 dark:text-neutral-400",children:"View past purchases and receipts."})]}),!o&&!a&&!i&&r.length>0?s.jsxs("div",{className:"text-sm text-neutral-600 dark:text-neutral-400",children:[r.length," order",r.length===1?"":"s"]}):null]}),a?s.jsx(Wt,{className:"mt-8",description:a}):null,o?s.jsxs("div",{className:"mt-8 grid gap-4",children:[s.jsx(Oe,{className:"h-32 rounded-2xl"}),s.jsx(Oe,{className:"h-32 rounded-2xl"}),s.jsx(Oe,{className:"h-32 rounded-2xl"})]}):r.length===0?s.jsx("div",{className:"mt-8",children:s.jsx(Yn,{title:"No orders yet",description:"When you purchase something, it will show up here."})}):i?s.jsx("div",{className:"mt-8",children:s.jsx(_p,{order:i,onBack:()=>c(null)})}):s.jsx("div",{className:"mt-8",children:s.jsx(wp,{orders:r,onView:c})})]})}):s.jsx("div",{className:F("min-h-screen bg-neutral-50 p-10 dark:bg-neutral-950",e),children:s.jsx("div",{className:"mx-auto max-w-4xl",children:s.jsx(Yn,{title:"Sign in to view your orders",description:"Your purchase history will appear here once you're logged in.",actionLabel:n?"Sign in":void 0,onAction:n})})})}function yC({className:e}){return s.jsxs("svg",{className:e,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("polyline",{points:"6 9 6 2 18 2 18 9"}),s.jsx("path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"}),s.jsx("rect",{x:"6",y:"14",width:"12",height:"8"})]})}function bC({className:e}){return s.jsx("svg",{className:e,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"m15 18-6-6 6-6"})})}function wC(e){switch(e){case"x402":return"Crypto (x402)";case"credits":return"Credits";case"stripe":return"Card";default:return"Payment"}}function _C({order:e,source:t,purchaseId:n,customerEmail:r,customerName:o,className:a,onBack:i}){const{config:c}=Pe(),l=t??e.source,d=n??e.purchaseId,f=r??e.customerEmail,u=o??e.customerName,m=c.brand?.name??"Store",h=c.brand?.logoUrl,v=()=>{typeof window<"u"&&window.print()},x=new Date(e.createdAt).toLocaleDateString(void 0,{year:"numeric",month:"long",day:"numeric"}),g=new Date(e.createdAt).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"});return s.jsxs("div",{className:F("min-h-screen bg-neutral-100 dark:bg-neutral-900 print:bg-white print:dark:bg-white",a),children:[s.jsx("div",{className:"border-b border-neutral-200 bg-white px-4 py-3 dark:border-neutral-800 dark:bg-neutral-950 print:hidden",children:s.jsxs("div",{className:"mx-auto flex max-w-2xl items-center justify-between",children:[i?s.jsxs(re,{type:"button",variant:"ghost",size:"sm",onClick:i,children:[s.jsx(bC,{className:"mr-1"})," Back"]}):s.jsx("div",{}),s.jsxs(re,{type:"button",variant:"outline",size:"sm",onClick:v,children:[s.jsx(yC,{className:"mr-2"})," Print Receipt"]})]})}),s.jsx("div",{className:"mx-auto max-w-2xl px-4 py-8 print:max-w-none print:px-0 print:py-0",children:s.jsxs("div",{className:"rounded-xl border border-neutral-200 bg-white p-8 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 print:border-0 print:shadow-none print:dark:bg-white print:dark:text-neutral-950",children:[s.jsxs("div",{className:"flex items-center justify-between border-b border-neutral-200 pb-6 dark:border-neutral-800 print:dark:border-neutral-200",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[h?s.jsx("img",{src:h,alt:m,className:"h-10 w-10 rounded-lg object-contain"}):null,s.jsx("div",{className:"text-xl font-semibold",children:m})]}),s.jsxs("div",{className:"text-right",children:[s.jsx("div",{className:"text-sm font-medium text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Receipt"}),s.jsx("div",{className:"mt-1 font-mono text-sm",children:e.id})]})]}),s.jsxs("div",{className:"mt-6 grid grid-cols-2 gap-4 text-sm sm:grid-cols-3",children:[s.jsxs("div",{children:[s.jsx("div",{className:"text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Date"}),s.jsx("div",{className:"mt-1 font-medium",children:x}),s.jsx("div",{className:"text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:g})]}),s.jsxs("div",{children:[s.jsx("div",{className:"text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Payment Method"}),s.jsx("div",{className:"mt-1 font-medium",children:wC(l)})]}),s.jsxs("div",{children:[s.jsx("div",{className:"text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Status"}),s.jsx("div",{className:"mt-1",children:s.jsx(_n,{variant:"outline",className:"capitalize print:border-neutral-300",children:e.status})})]})]}),(u||f)&&s.jsxs("div",{className:"mt-6 border-t border-neutral-200 pt-6 dark:border-neutral-800 print:dark:border-neutral-200",children:[s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Customer"}),u&&s.jsx("div",{className:"mt-1 font-medium",children:u}),f&&s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:f})]}),s.jsx("div",{className:"mt-6 border-t border-neutral-200 pt-6 dark:border-neutral-800 print:dark:border-neutral-200",children:s.jsxs("table",{className:"w-full text-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-neutral-200 dark:border-neutral-800 print:dark:border-neutral-200",children:[s.jsx("th",{className:"pb-3 text-left font-medium text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Item"}),s.jsx("th",{className:"pb-3 text-center font-medium text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Qty"}),s.jsx("th",{className:"pb-3 text-right font-medium text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Price"})]})}),s.jsx("tbody",{children:e.items.map((y,k)=>s.jsxs("tr",{className:"border-b border-neutral-100 dark:border-neutral-800/50 print:dark:border-neutral-100",children:[s.jsx("td",{className:"py-3",children:s.jsx("div",{className:"font-medium",children:y.title})}),s.jsx("td",{className:"py-3 text-center text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:y.qty}),s.jsx("td",{className:"py-3 text-right",children:Ve({amount:y.unitPrice*y.qty,currency:y.currency})})]},`${y.title}-${k}`))})]})}),s.jsxs("div",{className:"mt-4 flex flex-col items-end gap-2 text-sm",children:[s.jsxs("div",{className:"flex w-48 justify-between",children:[s.jsx("span",{className:"text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Subtotal"}),s.jsx("span",{children:Ve({amount:e.total,currency:e.currency})})]}),s.jsxs("div",{className:"flex w-48 justify-between border-t border-neutral-200 pt-2 text-base font-semibold dark:border-neutral-800 print:dark:border-neutral-200",children:[s.jsx("span",{children:"Total"}),s.jsx("span",{children:Ve({amount:e.total,currency:e.currency})})]})]}),d&&s.jsxs("div",{className:"mt-6 border-t border-neutral-200 pt-6 dark:border-neutral-800 print:dark:border-neutral-200",children:[s.jsx("div",{className:"text-sm text-neutral-600 dark:text-neutral-400 print:dark:text-neutral-600",children:"Transaction ID"}),s.jsx("div",{className:"mt-1 break-all font-mono text-xs",children:d})]}),s.jsxs("div",{className:"mt-8 border-t border-neutral-200 pt-6 text-center text-xs text-neutral-500 dark:border-neutral-800 dark:text-neutral-400 print:dark:border-neutral-200 print:dark:text-neutral-500",children:[s.jsx("p",{children:"Thank you for your purchase!"}),s.jsx("p",{className:"mt-1",children:"If you have any questions, please contact support."})]})]})})]})}function kC({className:e}){return s.jsx("svg",{className:F("h-4 w-4 flex-shrink-0",e),viewBox:"0 0 20 20",fill:"currentColor",children:s.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})}function jC({className:e,title:t="Choose Your Plan",subtitle:n="Select the plan that best fits your needs.",annualSavingsBadge:r="2 months free",popularBadgeText:o="Best Deal",footerNotice:a}){const{config:i}=Pe(),{tiers:c,status:l,isLoading:d,error:f}=ud(),[u,m]=p.useState("monthly"),h=!!i.adapter.createSubscriptionCheckoutSession,v=async x=>{if(!i.adapter.createSubscriptionCheckoutSession)return;const g=await i.adapter.createSubscriptionCheckoutSession({tierId:x,interval:u,successUrl:i.checkout.successUrl,cancelUrl:i.checkout.cancelUrl});g.kind==="redirect"&&typeof window<"u"&&window.location.assign(g.url)};return s.jsx("div",{className:F("min-h-screen bg-neutral-50 text-neutral-950 dark:bg-neutral-950 dark:text-neutral-50",e),children:s.jsxs("main",{className:"mx-auto max-w-6xl px-4 py-16",children:[s.jsxs("div",{className:"text-center",children:[s.jsx("h1",{className:"text-5xl font-bold tracking-tight",children:t}),s.jsx("p",{className:"mt-4 text-base text-neutral-600 dark:text-neutral-400",children:n})]}),s.jsx("div",{className:"mt-10 flex justify-center",children:s.jsxs("div",{className:"inline-flex items-center rounded-full bg-neutral-200/60 p-1 dark:bg-neutral-800/60",children:[s.jsxs("button",{type:"button",onClick:()=>m("annual"),className:F("relative flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium transition-all",u==="annual"?"bg-neutral-900 text-white dark:bg-white dark:text-neutral-900":"text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-white"),children:["Yearly",r&&s.jsx("span",{className:F("rounded-full px-2 py-0.5 text-xs font-medium",u==="annual"?"bg-white/20 text-white dark:bg-neutral-900/20 dark:text-neutral-900":"bg-neutral-900 text-white dark:bg-white dark:text-neutral-900"),children:r})]}),s.jsx("button",{type:"button",onClick:()=>m("monthly"),className:F("rounded-full px-4 py-2 text-sm font-medium transition-all",u==="monthly"?"bg-neutral-900 text-white dark:bg-white dark:text-neutral-900":"text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-white"),children:"Monthly"})]})}),f?s.jsx(Wt,{className:"mt-10",description:f}):null,d?s.jsxs("div",{className:"mt-12 grid gap-6 md:grid-cols-3",children:[s.jsx(Oe,{className:"h-[480px] rounded-2xl"}),s.jsx(Oe,{className:"h-[480px] rounded-2xl"}),s.jsx(Oe,{className:"h-[480px] rounded-2xl"})]}):c.length===0?s.jsx("div",{className:"mt-12",children:s.jsx(Yn,{title:"No plans available",description:"Subscription plans will appear here once configured."})}):s.jsx("div",{className:"mt-12 grid gap-6 md:grid-cols-3 items-start",children:c.map(x=>{const g=l?.isActive&&l.currentTierId===x.id,y=u==="annual"&&x.priceAnnual?x.priceAnnual:x.priceMonthly,k=x.isPopular,_=x.inventoryQuantity!=null,w=_?Math.max(0,(x.inventoryQuantity??0)-(x.inventorySold??0)):null,j=_&&w===0,P=_&&w!=null&&w>0&&w<=5,[T,...N]=x.features;return s.jsxs("div",{className:F("relative flex flex-col rounded-2xl border p-6 transition-shadow",k?"border-neutral-900 bg-neutral-900 text-white shadow-xl dark:border-white dark:bg-white dark:text-neutral-900":"border-neutral-200 bg-white dark:border-neutral-800 dark:bg-neutral-900"),children:[k&&o&&s.jsx("div",{className:"absolute -top-3 right-4",children:s.jsx("span",{className:"rounded-full bg-neutral-100 px-3 py-1 text-xs font-semibold text-neutral-900 shadow-sm dark:bg-neutral-800 dark:text-white",children:o})}),s.jsxs("div",{className:"mb-6",children:[s.jsx("h3",{className:"text-xl font-bold",children:x.title}),x.description&&s.jsx("p",{className:F("mt-2 text-sm leading-relaxed",k?"text-neutral-300 dark:text-neutral-600":"text-neutral-600 dark:text-neutral-400"),children:x.description})]}),s.jsxs("div",{className:"mb-6",children:[s.jsx("div",{className:"text-5xl font-bold tracking-tight",children:Ve({amount:y,currency:x.currency||i.currency})}),s.jsxs("div",{className:F("mt-2 text-sm",k?"text-neutral-400 dark:text-neutral-500":"text-neutral-500 dark:text-neutral-400"),children:["Per ",u==="annual"?"year":"month",", billed ",u==="annual"?"annually":"monthly"]})]}),_&&s.jsx("div",{className:F("mb-3 text-xs font-medium",j?"text-red-600 dark:text-red-400":P?k?"text-amber-300 dark:text-amber-600":"text-amber-600 dark:text-amber-400":k?"text-neutral-400 dark:text-neutral-500":"text-neutral-500 dark:text-neutral-400"),children:j?"Sold out":`${w} remaining`}),s.jsx(re,{type:"button",className:F("mb-6 w-full rounded-full py-3 font-medium",k?"bg-white text-neutral-900 hover:bg-neutral-100 dark:bg-neutral-900 dark:text-white dark:hover:bg-neutral-800":""),variant:k?"default":"outline",disabled:g||!h||j,onClick:()=>void v(x.id),children:j?"Sold Out":g?"Current Plan":"Purchase"}),T&&s.jsx("div",{className:F("mb-4 text-sm font-semibold",k?"":"text-neutral-900 dark:text-white"),children:T}),N.length>0&&s.jsx("ul",{className:"space-y-3",children:N.map((A,R)=>s.jsxs("li",{className:"flex items-start gap-3",children:[s.jsx(kC,{className:F("mt-0.5",k?"text-neutral-400 dark:text-neutral-500":"text-neutral-500 dark:text-neutral-400")}),s.jsx("span",{className:F("text-sm leading-relaxed",k?"text-neutral-300 dark:text-neutral-600":"text-neutral-600 dark:text-neutral-400"),children:A})]},R))})]},x.id)})}),a&&s.jsx("div",{className:"mt-12 text-center",children:s.jsx("p",{className:"text-xs text-neutral-500 dark:text-neutral-400 leading-relaxed max-w-2xl mx-auto",children:a})})]})})}function SC(e){const{processCartCheckout:t}=Is();return p.useMemo(()=>({...e,async createCheckoutSession(n){const{customer:r,options:o}=n,a=r.shippingAddress?r.shippingAddress:void 0,i=r.billingAddress?r.billingAddress:void 0,c=await t(n.cart,o.successUrl,o.cancelUrl,o.metadata,r.email,o.discountCode,r.name,r.phone,a,i,o.tipAmount,o.shippingMethodId,o.paymentMethodId);if(!c.success)throw new Error(c.error||"Checkout failed");return{kind:"redirect",url:n.options.successUrl??"/"}},async resolveCheckoutReturn({query:n}){return Ca(n)}}),[e,t])}const CC=Object.freeze(Object.defineProperty({__proto__:null,Accordion:Lf,AccordionContent:kr,AccordionItem:wr,AccordionTrigger:_r,AddressForm:ua,Badge:_n,Breadcrumbs:mi,Button:re,Card:Pt,CardContent:qt,CardDescription:Td,CardFooter:Rd,CardHeader:Cr,CardTitle:Nr,CartLineItem:gi,CartPageContent:pp,CartPanel:dp,CartProvider:xh,CartSidebar:Or,CartSummary:xi,CartTemplate:gC,CategoryNav:da,CategoryTemplate:pC,CedrosShopProvider:Gm,CheckoutCancelPage:oC,CheckoutForm:gp,CheckoutLayout:mp,CheckoutProvider:cd,CheckoutReceipt:po,CheckoutSuccessPage:sC,CheckoutTemplate:xC,Dialog:Qa,DialogClose:hj,DialogContent:Js,DialogDescription:Xa,DialogFooter:pf,DialogHeader:Ja,DialogOverlay:Ka,DialogPortal:ff,DialogTitle:Xs,DialogTrigger:mj,EmptyState:Yn,ErrorBoundary:Yj,ErrorState:Wt,FAQItem:ip,FAQList:ZS,FilterPanel:As,Input:Be,InventoryVerificationDialog:xp,Label:st,OrderCard:bp,OrderDetails:_p,OrderList:wp,OrderReview:yp,PaymentStep:vp,Price:uo,ProductCard:cp,ProductGallery:di,ProductGrid:fo,ProductTemplate:hC,PromoCodeInput:vi,PurchaseHistoryTemplate:vC,QuantitySelector:fi,QuickViewDialog:pi,ReceiptTemplate:_C,SearchInput:hi,Select:Ss,SelectContent:Ir,SelectGroup:Yk,SelectItem:Tr,SelectTrigger:Pr,SelectValue:Cs,Separator:yt,Sheet:eo,SheetClose:mf,SheetContent:Fr,SheetDescription:gf,SheetHeader:no,SheetOverlay:ei,SheetPortal:hf,SheetTitle:ro,SheetTrigger:to,ShippingMethodSelector:hp,ShopChatPanel:fp,ShopTemplate:uC,Skeleton:Oe,SubscriptionTemplate:jC,Tabs:ci,TabsContent:np,TabsList:co,TabsTrigger:Rr,ToastProvider:SS,VariantSelector:ui,createMockCommerceAdapter:Xm,createPaywallCommerceAdapter:lh,parseCheckoutReturn:Ca,readCatalogUrlState:Ea,useAIRelatedProducts:hd,useCart:Rt,useCartInventory:Pa,useCatalogUrlSync:Aa,useCategories:Sa,useCedrosPayCheckoutAdapter:SC,useCedrosShop:Pe,useCheckout:Ls,useCheckoutResultFromUrl:Na,useHoldExpiry:cb,useInventoryVerification:pd,useOptionalToast:lo,useOrders:dd,usePaymentMethodsConfig:md,useProduct:ld,useProducts:Ds,useShippingMethods:fd,useStandaloneCheckout:Xy,useStorefrontSettings:tr,useSubscriptionData:ud,useToast:jS,validateCommerceAdapterContract:pb},Symbol.toStringTag,{value:"Module"}));exports.CEDROS_EVENTS=dn;exports.CSP_PRESETS=em;exports.CedrosPay=dm;exports.CedrosPayAdminDashboard=Em;exports.CouponsSection=xl;exports.CreditsButton=ha;exports.CreditsSubscribeButton=Rm;exports.ErrorBanner=Dr;exports.FormDropdown=At;exports.Icons=J;exports.PaymentMethodBadge=Im;exports.PaymentModal=fl;exports.ProductPrice=Pm;exports.ProductsSection=hl;exports.PurchaseButton=pl;exports.RPC_PROVIDERS=Xp;exports.RefundsSection=vl;exports.SECURITY_RECOMMENDATIONS=Zm;exports.SettingsSection=yl;exports.StatsBar=$r;exports.StripeButton=ma;exports.SubscribeButton=Tm;exports.SubscriptionManagementPanel=zm;exports.TransactionsSection=gl;exports.calculateDiscountPercentage=Mp;exports.cedrosPayPlugin=Am;exports.createDedupedClickHandler=Qn;exports.createTranslator=dl;exports.detectLocale=cl;exports.emitPaymentError=Bt;exports.emitPaymentProcessing=Jn;exports.emitPaymentStart=Kn;exports.emitPaymentSuccess=Xn;exports.emitWalletConnect=qp;exports.emitWalletConnected=Hp;exports.emitWalletError=Zp;exports.formatCSP=il;exports.formatCouponCodes=Op;exports.formatDateTime=br;exports.generateCSP=Jp;exports.generateCSPDirectives=al;exports.getAvailableLocales=nm;exports.getCartItemCount=Mr;exports.getLocalizedError=rm;exports.getModalCloseButtonStyles=ol;exports.getUserErrorMessage=Yp;exports.index=CC;exports.isRetryableError=Gp;exports.loadLocale=ll;exports.logSecurityReport=Hm;exports.normalizeCartItems=us;exports.parseCouponCodes=Rp;exports.stackCheckoutCoupons=Lp;exports.useCreditsPayment=ul;exports.useCreditsSubscription=kl;exports.useLocalizedError=sm;exports.usePaymentMode=Lr;exports.useStripeCheckout=Is;exports.useSubscription=_l;exports.useSubscriptionManagement=jl;exports.useTranslation=Pn;exports.validateSecurity=qm;
|