@thorprovider/blocks 1.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +274 -46
- package/dist/.tsbuildinfo +1 -0
- package/dist/blocks/application/app-shells/app-shell-1-sidebar.d.ts +21 -0
- package/dist/blocks/application/app-shells/app-shell-1-sidebar.d.ts.map +1 -0
- package/dist/blocks/application/app-shells/app-shell-1-sidebar.js +147 -0
- package/dist/blocks/application/app-shells/app-shell-1-sidebar.js.map +1 -0
- package/dist/blocks/application/app-shells/app-shell-1-sidebar.mjs +153 -0
- package/dist/blocks/application/app-shells/app-shell-1-sidebar.mjs.map +1 -0
- package/dist/blocks/application/app-shells/app-shell-1.d.ts +27 -0
- package/dist/blocks/application/app-shells/app-shell-1.d.ts.map +1 -0
- package/dist/blocks/application/app-shells/app-shell-1.js +150 -0
- package/dist/blocks/application/app-shells/app-shell-1.js.map +1 -0
- package/dist/blocks/application/app-shells/app-shell-1.mjs +123 -0
- package/dist/blocks/application/app-shells/app-shell-1.mjs.map +1 -0
- package/dist/blocks/application/login-forms/login-page.d.ts +42 -0
- package/dist/blocks/application/login-forms/login-page.d.ts.map +1 -0
- package/dist/blocks/application/login-forms/login-page.js +209 -0
- package/dist/blocks/application/login-forms/login-page.js.map +1 -0
- package/dist/blocks/application/login-forms/login-page.mjs +185 -0
- package/dist/blocks/application/login-forms/login-page.mjs.map +1 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.d.ts +3 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.d.ts.map +1 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.js +74 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.js.map +1 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.mjs +50 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1-brand-mark.mjs.map +1 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1.d.ts +42 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1.d.ts.map +1 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1.js +293 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1.js.map +1 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1.mjs +259 -0
- package/dist/blocks/application/password-recovery/forgot-password-page-1.mjs.map +1 -0
- package/dist/blocks/application/signup-forms/signup-page-1.d.ts +41 -0
- package/dist/blocks/application/signup-forms/signup-page-1.d.ts.map +1 -0
- package/dist/blocks/application/signup-forms/signup-page-1.js +195 -0
- package/dist/blocks/application/signup-forms/signup-page-1.js.map +1 -0
- package/dist/blocks/application/signup-forms/signup-page-1.mjs +171 -0
- package/dist/blocks/application/signup-forms/signup-page-1.mjs.map +1 -0
- package/dist/blocks/application/verification/verify-1.d.ts +35 -0
- package/dist/blocks/application/verification/verify-1.d.ts.map +1 -0
- package/dist/blocks/application/verification/verify-1.js +243 -0
- package/dist/blocks/application/verification/verify-1.js.map +1 -0
- package/dist/blocks/application/verification/verify-1.mjs +219 -0
- package/dist/blocks/application/verification/verify-1.mjs.map +1 -0
- package/dist/blocks/application/verification/verify-confetti.d.ts +22 -0
- package/dist/blocks/application/verification/verify-confetti.d.ts.map +1 -0
- package/dist/blocks/application/verification/verify-confetti.js +145 -0
- package/dist/blocks/application/verification/verify-confetti.js.map +1 -0
- package/dist/blocks/application/verification/verify-confetti.mjs +121 -0
- package/dist/blocks/application/verification/verify-confetti.mjs.map +1 -0
- package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.d.ts +39 -0
- package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.d.ts.map +1 -0
- package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.js +180 -0
- package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.js.map +1 -0
- package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.mjs +156 -0
- package/dist/blocks/e-commerce/category-filters/category-listing-filter-fields.mjs.map +1 -0
- package/dist/blocks/e-commerce/category-filters/category-listing.d.ts +236 -0
- package/dist/blocks/e-commerce/category-filters/category-listing.d.ts.map +1 -0
- package/dist/blocks/e-commerce/category-filters/category-listing.js +562 -0
- package/dist/blocks/e-commerce/category-filters/category-listing.js.map +1 -0
- package/dist/blocks/e-commerce/category-filters/category-listing.mjs +539 -0
- package/dist/blocks/e-commerce/category-filters/category-listing.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkbox-check.d.ts +4 -0
- package/dist/blocks/e-commerce/checkout-forms/checkbox-check.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkbox-check.js +97 -0
- package/dist/blocks/e-commerce/checkout-forms/checkbox-check.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkbox-check.mjs +73 -0
- package/dist/blocks/e-commerce/checkout-forms/checkbox-check.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.d.ts +41 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.js +115 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.mjs +91 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.d.ts +107 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.js +180 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.mjs +156 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-confirmation.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.d.ts +13 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.js +180 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.mjs +156 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-contact-step.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.d.ts +12 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.js +50 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.mjs +33 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-country-field.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.d.ts +11 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.js +50 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.mjs +25 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-field-feedback.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.d.ts +5 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.js +17 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.mjs +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-form-types.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.d.ts +20 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.js +176 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.mjs +152 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-order-summary.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.d.ts +12 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.js +93 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.mjs +69 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-payment-step.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-progress.d.ts +11 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-progress.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-progress.js +76 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-progress.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-progress.mjs +52 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-progress.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.d.ts +11 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.js +64 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.mjs +40 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-review-step.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.d.ts +17 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.js +199 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.mjs +175 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout-shipping-step.mjs.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout.d.ts +164 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout.d.ts.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout.js +351 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout.js.map +1 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout.mjs +327 -0
- package/dist/blocks/e-commerce/checkout-forms/checkout.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/back-to-top.d.ts +28 -0
- package/dist/blocks/e-commerce/navigation/back-to-top.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/back-to-top.js +78 -0
- package/dist/blocks/e-commerce/navigation/back-to-top.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/back-to-top.mjs +52 -0
- package/dist/blocks/e-commerce/navigation/back-to-top.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/breadcrumb.d.ts +61 -0
- package/dist/blocks/e-commerce/navigation/breadcrumb.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/breadcrumb.js +111 -0
- package/dist/blocks/e-commerce/navigation/breadcrumb.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/breadcrumb.mjs +93 -0
- package/dist/blocks/e-commerce/navigation/breadcrumb.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/category-icon.d.ts +28 -0
- package/dist/blocks/e-commerce/navigation/category-icon.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/category-icon.js +86 -0
- package/dist/blocks/e-commerce/navigation/category-icon.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/category-icon.mjs +79 -0
- package/dist/blocks/e-commerce/navigation/category-icon.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/mega-menu.d.ts +112 -0
- package/dist/blocks/e-commerce/navigation/mega-menu.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/mega-menu.js +250 -0
- package/dist/blocks/e-commerce/navigation/mega-menu.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/mega-menu.mjs +228 -0
- package/dist/blocks/e-commerce/navigation/mega-menu.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.d.ts +71 -0
- package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.js +94 -0
- package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.mjs +68 -0
- package/dist/blocks/e-commerce/navigation/mobile-bottom-nav.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/mobile-category-drawer.d.ts +121 -0
- package/dist/blocks/e-commerce/navigation/mobile-category-drawer.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/mobile-category-drawer.js +257 -0
- package/dist/blocks/e-commerce/navigation/mobile-category-drawer.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/mobile-category-drawer.mjs +235 -0
- package/dist/blocks/e-commerce/navigation/mobile-category-drawer.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/skip-to-content.d.ts +25 -0
- package/dist/blocks/e-commerce/navigation/skip-to-content.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/skip-to-content.js +55 -0
- package/dist/blocks/e-commerce/navigation/skip-to-content.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/skip-to-content.mjs +30 -0
- package/dist/blocks/e-commerce/navigation/skip-to-content.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.d.ts +23 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.js +127 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.mjs +111 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-account-menu.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.d.ts +66 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.js +280 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.mjs +263 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-cart-sheet.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.d.ts +13 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.js +83 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.mjs +59 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-mobile-nav.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.d.ts +8 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.js +73 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.mjs +49 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar-search-bar.mjs.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar.d.ts +121 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar.d.ts.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar.js +424 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar.js.map +1 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar.mjs +399 -0
- package/dist/blocks/e-commerce/navigation/storefront-navbar.mjs.map +1 -0
- package/dist/blocks/e-commerce/order-history/order-history.d.ts +74 -0
- package/dist/blocks/e-commerce/order-history/order-history.d.ts.map +1 -0
- package/dist/blocks/e-commerce/order-history/order-history.js +161 -0
- package/dist/blocks/e-commerce/order-history/order-history.js.map +1 -0
- package/dist/blocks/e-commerce/order-history/order-history.mjs +141 -0
- package/dist/blocks/e-commerce/order-history/order-history.mjs.map +1 -0
- package/dist/blocks/e-commerce/order-history/order-line.d.ts +50 -0
- package/dist/blocks/e-commerce/order-history/order-line.d.ts.map +1 -0
- package/dist/blocks/e-commerce/order-history/order-line.js +75 -0
- package/dist/blocks/e-commerce/order-history/order-line.js.map +1 -0
- package/dist/blocks/e-commerce/order-history/order-line.mjs +49 -0
- package/dist/blocks/e-commerce/order-history/order-line.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-categories/category-card.d.ts +9 -0
- package/dist/blocks/e-commerce/product-categories/category-card.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-categories/category-card.js +154 -0
- package/dist/blocks/e-commerce/product-categories/category-card.js.map +1 -0
- package/dist/blocks/e-commerce/product-categories/category-card.mjs +134 -0
- package/dist/blocks/e-commerce/product-categories/category-card.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-categories/category-shared.d.ts +15 -0
- package/dist/blocks/e-commerce/product-categories/category-shared.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-categories/category-shared.js +101 -0
- package/dist/blocks/e-commerce/product-categories/category-shared.js.map +1 -0
- package/dist/blocks/e-commerce/product-categories/category-shared.mjs +97 -0
- package/dist/blocks/e-commerce/product-categories/category-shared.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-categories/product-category-grid.d.ts +10 -0
- package/dist/blocks/e-commerce/product-categories/product-category-grid.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-categories/product-category-grid.js +138 -0
- package/dist/blocks/e-commerce/product-categories/product-category-grid.js.map +1 -0
- package/dist/blocks/e-commerce/product-categories/product-category-grid.mjs +114 -0
- package/dist/blocks/e-commerce/product-categories/product-category-grid.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-categories/product-category.d.ts +41 -0
- package/dist/blocks/e-commerce/product-categories/product-category.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-categories/product-category.js +319 -0
- package/dist/blocks/e-commerce/product-categories/product-category.js.map +1 -0
- package/dist/blocks/e-commerce/product-categories/product-category.mjs +322 -0
- package/dist/blocks/e-commerce/product-categories/product-category.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-card.d.ts +47 -0
- package/dist/blocks/e-commerce/product-list/product-card.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-card.js +361 -0
- package/dist/blocks/e-commerce/product-list/product-card.js.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-card.mjs +337 -0
- package/dist/blocks/e-commerce/product-list/product-card.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-grid.d.ts +28 -0
- package/dist/blocks/e-commerce/product-list/product-grid.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-grid.js +92 -0
- package/dist/blocks/e-commerce/product-list/product-grid.js.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-grid.mjs +68 -0
- package/dist/blocks/e-commerce/product-list/product-grid.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-showcase-1.d.ts +30 -0
- package/dist/blocks/e-commerce/product-list/product-showcase-1.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-showcase-1.js +245 -0
- package/dist/blocks/e-commerce/product-list/product-showcase-1.js.map +1 -0
- package/dist/blocks/e-commerce/product-list/product-showcase-1.mjs +221 -0
- package/dist/blocks/e-commerce/product-list/product-showcase-1.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-gallery.d.ts +20 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-gallery.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-gallery.js +71 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-gallery.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-gallery.mjs +47 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-gallery.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.d.ts +15 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.js +118 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.mjs +94 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-lightbox-tab.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.d.ts +26 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.js +85 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.mjs +61 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-reviews-tab.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-tabs.d.ts +32 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-tabs.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-tabs.js +79 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-tabs.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-tabs.mjs +51 -0
- package/dist/blocks/e-commerce/product-overview/product-overview-tabs.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview.d.ts +121 -0
- package/dist/blocks/e-commerce/product-overview/product-overview.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview.js +844 -0
- package/dist/blocks/e-commerce/product-overview/product-overview.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-overview.mjs +821 -0
- package/dist/blocks/e-commerce/product-overview/product-overview.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-card.d.ts +17 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-card.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-card.js +123 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-card.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-card.mjs +99 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-card.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.d.ts +20 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.js +271 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.mjs +253 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view-dialog.mjs.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view.d.ts +68 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view.d.ts.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view.js +84 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view.js.map +1 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view.mjs +60 -0
- package/dist/blocks/e-commerce/product-overview/product-quick-view.mjs.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-card.d.ts +60 -0
- package/dist/blocks/e-commerce/reviews/review-card.d.ts.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-card.js +166 -0
- package/dist/blocks/e-commerce/reviews/review-card.js.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-card.mjs +139 -0
- package/dist/blocks/e-commerce/reviews/review-card.mjs.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-composer.d.ts +50 -0
- package/dist/blocks/e-commerce/reviews/review-composer.d.ts.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-composer.js +180 -0
- package/dist/blocks/e-commerce/reviews/review-composer.js.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-composer.mjs +155 -0
- package/dist/blocks/e-commerce/reviews/review-composer.mjs.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-list.d.ts +40 -0
- package/dist/blocks/e-commerce/reviews/review-list.d.ts.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-list.js +138 -0
- package/dist/blocks/e-commerce/reviews/review-list.js.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-list.mjs +119 -0
- package/dist/blocks/e-commerce/reviews/review-list.mjs.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-summary.d.ts +49 -0
- package/dist/blocks/e-commerce/reviews/review-summary.d.ts.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-summary.js +150 -0
- package/dist/blocks/e-commerce/reviews/review-summary.js.map +1 -0
- package/dist/blocks/e-commerce/reviews/review-summary.mjs +124 -0
- package/dist/blocks/e-commerce/reviews/review-summary.mjs.map +1 -0
- package/dist/blocks/e-commerce/shopping-carts/shopping-cart.d.ts +98 -0
- package/dist/blocks/e-commerce/shopping-carts/shopping-cart.d.ts.map +1 -0
- package/dist/blocks/e-commerce/shopping-carts/shopping-cart.js +417 -0
- package/dist/blocks/e-commerce/shopping-carts/shopping-cart.js.map +1 -0
- package/dist/blocks/e-commerce/shopping-carts/shopping-cart.mjs +393 -0
- package/dist/blocks/e-commerce/shopping-carts/shopping-cart.mjs.map +1 -0
- package/dist/blocks/e-commerce/store-containers/store-container-1.d.ts +13 -0
- package/dist/blocks/e-commerce/store-containers/store-container-1.d.ts.map +1 -0
- package/dist/blocks/e-commerce/store-containers/store-container-1.js +45 -0
- package/dist/blocks/e-commerce/store-containers/store-container-1.js.map +1 -0
- package/dist/blocks/e-commerce/store-containers/store-container-1.mjs +21 -0
- package/dist/blocks/e-commerce/store-containers/store-container-1.mjs.map +1 -0
- package/dist/blocks/e-commerce/storefront-hero/storefront-hero.d.ts +163 -0
- package/dist/blocks/e-commerce/storefront-hero/storefront-hero.d.ts.map +1 -0
- package/dist/blocks/e-commerce/storefront-hero/storefront-hero.js +810 -0
- package/dist/blocks/e-commerce/storefront-hero/storefront-hero.js.map +1 -0
- package/dist/blocks/e-commerce/storefront-hero/storefront-hero.mjs +786 -0
- package/dist/blocks/e-commerce/storefront-hero/storefront-hero.mjs.map +1 -0
- package/dist/blocks/marketing/banners/avatar-group.d.ts +8 -0
- package/dist/blocks/marketing/banners/avatar-group.d.ts.map +1 -0
- package/dist/blocks/marketing/banners/avatar-group.js +90 -0
- package/dist/blocks/marketing/banners/avatar-group.js.map +1 -0
- package/dist/blocks/marketing/banners/avatar-group.mjs +56 -0
- package/dist/blocks/marketing/banners/avatar-group.mjs.map +1 -0
- package/dist/blocks/marketing/banners/banner-1.d.ts +26 -0
- package/dist/blocks/marketing/banners/banner-1.d.ts.map +1 -0
- package/dist/blocks/marketing/banners/banner-1.js +177 -0
- package/dist/blocks/marketing/banners/banner-1.js.map +1 -0
- package/dist/blocks/marketing/banners/banner-1.mjs +153 -0
- package/dist/blocks/marketing/banners/banner-1.mjs.map +1 -0
- package/dist/blocks/marketing/cta/cta-section-1.d.ts +13 -0
- package/dist/blocks/marketing/cta/cta-section-1.d.ts.map +1 -0
- package/dist/blocks/marketing/cta/cta-section-1.js +116 -0
- package/dist/blocks/marketing/cta/cta-section-1.js.map +1 -0
- package/dist/blocks/marketing/cta/cta-section-1.mjs +92 -0
- package/dist/blocks/marketing/cta/cta-section-1.mjs.map +1 -0
- package/dist/blocks/marketing/faq/faq-block-1.d.ts +16 -0
- package/dist/blocks/marketing/faq/faq-block-1.d.ts.map +1 -0
- package/dist/blocks/marketing/faq/faq-block-1.js +49 -0
- package/dist/blocks/marketing/faq/faq-block-1.js.map +1 -0
- package/dist/blocks/marketing/faq/faq-block-1.mjs +25 -0
- package/dist/blocks/marketing/faq/faq-block-1.mjs.map +1 -0
- package/dist/blocks/marketing/features/feature.d.ts +45 -0
- package/dist/blocks/marketing/features/feature.d.ts.map +1 -0
- package/dist/blocks/marketing/features/feature.js +135 -0
- package/dist/blocks/marketing/features/feature.js.map +1 -0
- package/dist/blocks/marketing/features/feature.mjs +111 -0
- package/dist/blocks/marketing/features/feature.mjs.map +1 -0
- package/dist/blocks/marketing/footers/footer-section.d.ts +59 -0
- package/dist/blocks/marketing/footers/footer-section.d.ts.map +1 -0
- package/dist/blocks/marketing/footers/footer-section.js +356 -0
- package/dist/blocks/marketing/footers/footer-section.js.map +1 -0
- package/dist/blocks/marketing/footers/footer-section.mjs +332 -0
- package/dist/blocks/marketing/footers/footer-section.mjs.map +1 -0
- package/dist/blocks/marketing/hero-sections/avatar-group.d.ts +9 -0
- package/dist/blocks/marketing/hero-sections/avatar-group.d.ts.map +1 -0
- package/dist/blocks/marketing/hero-sections/avatar-group.js +92 -0
- package/dist/blocks/marketing/hero-sections/avatar-group.js.map +1 -0
- package/dist/blocks/marketing/hero-sections/avatar-group.mjs +58 -0
- package/dist/blocks/marketing/hero-sections/avatar-group.mjs.map +1 -0
- package/dist/blocks/marketing/hero-sections/hero-section-1.d.ts +27 -0
- package/dist/blocks/marketing/hero-sections/hero-section-1.d.ts.map +1 -0
- package/dist/blocks/marketing/hero-sections/hero-section-1.js +124 -0
- package/dist/blocks/marketing/hero-sections/hero-section-1.js.map +1 -0
- package/dist/blocks/marketing/hero-sections/hero-section-1.mjs +100 -0
- package/dist/blocks/marketing/hero-sections/hero-section-1.mjs.map +1 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.d.ts +19 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.d.ts.map +1 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.js +63 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.js.map +1 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.mjs +39 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.mjs.map +1 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1.d.ts +13 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1.d.ts.map +1 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1.js +49 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1.js.map +1 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1.mjs +25 -0
- package/dist/blocks/marketing/logo-clouds/logo-cloud-1.mjs.map +1 -0
- package/dist/blocks/marketing/navbars/navbar.d.ts +80 -0
- package/dist/blocks/marketing/navbars/navbar.d.ts.map +1 -0
- package/dist/blocks/marketing/navbars/navbar.js +484 -0
- package/dist/blocks/marketing/navbars/navbar.js.map +1 -0
- package/dist/blocks/marketing/navbars/navbar.mjs +475 -0
- package/dist/blocks/marketing/navbars/navbar.mjs.map +1 -0
- package/dist/blocks/marketing/pricing/pricing-section-1.d.ts +23 -0
- package/dist/blocks/marketing/pricing/pricing-section-1.d.ts.map +1 -0
- package/dist/blocks/marketing/pricing/pricing-section-1.js +89 -0
- package/dist/blocks/marketing/pricing/pricing-section-1.js.map +1 -0
- package/dist/blocks/marketing/pricing/pricing-section-1.mjs +65 -0
- package/dist/blocks/marketing/pricing/pricing-section-1.mjs.map +1 -0
- package/dist/blocks/marketing/statistics/statistic-1.d.ts +19 -0
- package/dist/blocks/marketing/statistics/statistic-1.d.ts.map +1 -0
- package/dist/blocks/marketing/statistics/statistic-1.js +83 -0
- package/dist/blocks/marketing/statistics/statistic-1.js.map +1 -0
- package/dist/blocks/marketing/statistics/statistic-1.mjs +59 -0
- package/dist/blocks/marketing/statistics/statistic-1.mjs.map +1 -0
- package/dist/blocks/marketing/testimonials/testimonial-section.d.ts +29 -0
- package/dist/blocks/marketing/testimonials/testimonial-section.d.ts.map +1 -0
- package/dist/blocks/marketing/testimonials/testimonial-section.js +173 -0
- package/dist/blocks/marketing/testimonials/testimonial-section.js.map +1 -0
- package/dist/blocks/marketing/testimonials/testimonial-section.mjs +155 -0
- package/dist/blocks/marketing/testimonials/testimonial-section.mjs.map +1 -0
- package/dist/blocks/shared/reaction-toggle.d.ts +14 -0
- package/dist/blocks/shared/reaction-toggle.d.ts.map +1 -0
- package/dist/blocks/shared/reaction-toggle.js +138 -0
- package/dist/blocks/shared/reaction-toggle.js.map +1 -0
- package/dist/blocks/shared/reaction-toggle.mjs +114 -0
- package/dist/blocks/shared/reaction-toggle.mjs.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +53 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-mobile.mjs +19 -0
- package/dist/hooks/use-mobile.mjs.map +1 -0
- package/dist/index.d.ts +100 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +339 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +238 -0
- package/dist/index.mjs.map +1 -0
- package/{src/lib/cart.ts → dist/lib/cart.d.ts} +2 -3
- package/dist/lib/cart.d.ts.map +1 -0
- package/dist/lib/cart.js +31 -0
- package/dist/lib/cart.js.map +1 -0
- package/dist/lib/cart.mjs +7 -0
- package/dist/lib/cart.mjs.map +1 -0
- package/dist/lib/contracts.d.ts +4008 -0
- package/dist/lib/contracts.d.ts.map +1 -0
- package/dist/lib/contracts.js +828 -0
- package/dist/lib/contracts.js.map +1 -0
- package/dist/lib/contracts.mjs +737 -0
- package/dist/lib/contracts.mjs.map +1 -0
- package/dist/lib/money.d.ts +28 -0
- package/dist/lib/money.d.ts.map +1 -0
- package/dist/lib/money.js +50 -0
- package/dist/lib/money.js.map +1 -0
- package/dist/lib/money.mjs +24 -0
- package/dist/lib/money.mjs.map +1 -0
- package/dist/lib/types/menu.d.ts +40 -0
- package/dist/lib/types/menu.d.ts.map +1 -0
- package/dist/lib/types/menu.js +50 -0
- package/dist/lib/types/menu.js.map +1 -0
- package/dist/lib/types/menu.mjs +25 -0
- package/dist/lib/types/menu.mjs.map +1 -0
- package/dist/lib/types.d.ts +5 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +17 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/types.mjs +1 -0
- package/dist/lib/types.mjs.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +33 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/utils.mjs +9 -0
- package/dist/lib/utils.mjs.map +1 -0
- package/dist/ui/accordion.d.ts +8 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +93 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/accordion.mjs +66 -0
- package/dist/ui/accordion.mjs.map +1 -0
- package/dist/ui/avatar.d.ts +12 -0
- package/dist/ui/avatar.d.ts.map +1 -0
- package/dist/ui/avatar.js +134 -0
- package/dist/ui/avatar.js.map +1 -0
- package/{src/ui/avatar.tsx → dist/ui/avatar.mjs} +67 -70
- package/dist/ui/avatar.mjs.map +1 -0
- package/dist/ui/badge.d.ts +10 -0
- package/dist/ui/badge.d.ts.map +1 -0
- package/dist/ui/badge.js +69 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/badge.mjs +44 -0
- package/dist/ui/badge.mjs.map +1 -0
- package/dist/ui/breadcrumb.d.ts +12 -0
- package/dist/ui/breadcrumb.d.ts.map +1 -0
- package/dist/ui/breadcrumb.js +134 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/breadcrumb.mjs +104 -0
- package/dist/ui/breadcrumb.mjs.map +1 -0
- package/dist/ui/button-group.d.ts +12 -0
- package/dist/ui/button-group.d.ts.map +1 -0
- package/dist/ui/button-group.js +104 -0
- package/dist/ui/button-group.js.map +1 -0
- package/dist/ui/button-group.mjs +77 -0
- package/dist/ui/button-group.mjs.map +1 -0
- package/dist/ui/button.d.ts +11 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +82 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/button.mjs +57 -0
- package/dist/ui/button.mjs.map +1 -0
- package/dist/ui/card.d.ts +10 -0
- package/dist/ui/card.d.ts.map +1 -0
- package/dist/ui/card.js +121 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/card.mjs +91 -0
- package/dist/ui/card.mjs.map +1 -0
- package/dist/ui/carousel.d.ts +20 -0
- package/dist/ui/carousel.d.ts.map +1 -0
- package/dist/ui/carousel.js +238 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/carousel.mjs +200 -0
- package/dist/ui/carousel.mjs.map +1 -0
- package/dist/ui/dialog.d.ts +18 -0
- package/dist/ui/dialog.d.ts.map +1 -0
- package/dist/ui/dialog.js +181 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/dialog.mjs +148 -0
- package/dist/ui/dialog.mjs.map +1 -0
- package/dist/ui/drawer.d.ts +14 -0
- package/dist/ui/drawer.d.ts.map +1 -0
- package/dist/ui/drawer.js +163 -0
- package/dist/ui/drawer.js.map +1 -0
- package/dist/ui/drawer.mjs +130 -0
- package/dist/ui/drawer.mjs.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +26 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/ui/dropdown-menu.js +271 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/dropdown-menu.mjs +233 -0
- package/dist/ui/dropdown-menu.mjs.map +1 -0
- package/dist/ui/empty.d.ts +12 -0
- package/dist/ui/empty.d.ts.map +1 -0
- package/dist/ui/empty.js +132 -0
- package/dist/ui/empty.js.map +1 -0
- package/dist/ui/empty.mjs +103 -0
- package/dist/ui/empty.mjs.map +1 -0
- package/dist/ui/field.d.ts +25 -0
- package/dist/ui/field.d.ts.map +1 -0
- package/dist/ui/field.js +264 -0
- package/dist/ui/field.js.map +1 -0
- package/{src/ui/field.tsx → dist/ui/field.mjs} +142 -159
- package/dist/ui/field.mjs.map +1 -0
- package/dist/ui/input-group.d.ts +17 -0
- package/dist/ui/input-group.d.ts.map +1 -0
- package/dist/ui/input-group.js +185 -0
- package/dist/ui/input-group.js.map +1 -0
- package/{src/ui/input-group.tsx → dist/ui/input-group.mjs} +92 -106
- package/dist/ui/input-group.mjs.map +1 -0
- package/dist/ui/input-otp.d.ts +12 -0
- package/dist/ui/input-otp.d.ts.map +1 -0
- package/dist/ui/input-otp.js +105 -0
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input-otp.mjs +68 -0
- package/dist/ui/input-otp.mjs.map +1 -0
- package/dist/ui/input.d.ts +4 -0
- package/dist/ui/input.d.ts.map +1 -0
- package/dist/ui/input.js +46 -0
- package/dist/ui/input.js.map +1 -0
- package/{src/ui/input.tsx → dist/ui/input.mjs} +17 -15
- package/dist/ui/input.mjs.map +1 -0
- package/dist/ui/label.d.ts +5 -0
- package/dist/ui/label.d.ts.map +1 -0
- package/dist/ui/label.js +48 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/label.mjs +24 -0
- package/dist/ui/label.mjs.map +1 -0
- package/dist/ui/navigation-menu.d.ts +15 -0
- package/dist/ui/navigation-menu.d.ts.map +1 -0
- package/dist/ui/navigation-menu.js +203 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/{src/ui/navigation-menu.tsx → dist/ui/navigation-menu.mjs} +116 -112
- package/dist/ui/navigation-menu.mjs.map +1 -0
- package/dist/ui/pagination.d.ts +14 -0
- package/dist/ui/pagination.d.ts.map +1 -0
- package/dist/ui/pagination.js +149 -0
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/pagination.mjs +123 -0
- package/dist/ui/pagination.mjs.map +1 -0
- package/dist/ui/progress.d.ts +5 -0
- package/dist/ui/progress.d.ts.map +1 -0
- package/dist/ui/progress.js +57 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/progress.mjs +33 -0
- package/dist/ui/progress.mjs.map +1 -0
- package/dist/ui/radio-group.d.ts +6 -0
- package/dist/ui/radio-group.d.ts.map +1 -0
- package/dist/ui/radio-group.js +72 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/radio-group.mjs +47 -0
- package/dist/ui/radio-group.mjs.map +1 -0
- package/dist/ui/select.d.ts +16 -0
- package/dist/ui/select.d.ts.map +1 -0
- package/dist/ui/select.js +213 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/select.mjs +180 -0
- package/dist/ui/select.mjs.map +1 -0
- package/dist/ui/separator.d.ts +5 -0
- package/dist/ui/separator.d.ts.map +1 -0
- package/dist/ui/separator.js +52 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/separator.mjs +28 -0
- package/dist/ui/separator.mjs.map +1 -0
- package/dist/ui/sheet.d.ts +15 -0
- package/dist/ui/sheet.d.ts.map +1 -0
- package/dist/ui/sheet.js +160 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sheet.mjs +129 -0
- package/dist/ui/sheet.mjs.map +1 -0
- package/dist/ui/sidebar.d.ts +70 -0
- package/dist/ui/sidebar.d.ts.map +1 -0
- package/dist/ui/sidebar.js +697 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/sidebar.mjs +651 -0
- package/dist/ui/sidebar.mjs.map +1 -0
- package/dist/ui/skeleton.d.ts +3 -0
- package/dist/ui/skeleton.d.ts.map +1 -0
- package/dist/ui/skeleton.js +40 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/skeleton.mjs +16 -0
- package/dist/ui/skeleton.mjs.map +1 -0
- package/dist/ui/table.d.ts +11 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +147 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/table.mjs +116 -0
- package/dist/ui/table.mjs.map +1 -0
- package/dist/ui/tabs.d.ts +12 -0
- package/dist/ui/tabs.d.ts.map +1 -0
- package/dist/ui/tabs.js +121 -0
- package/dist/ui/tabs.js.map +1 -0
- package/{src/ui/tabs.tsx → dist/ui/tabs.mjs} +59 -56
- package/dist/ui/tabs.mjs.map +1 -0
- package/dist/ui/textarea.d.ts +4 -0
- package/dist/ui/textarea.d.ts.map +1 -0
- package/dist/ui/textarea.js +43 -0
- package/dist/ui/textarea.js.map +1 -0
- package/{src/ui/textarea.tsx → dist/ui/textarea.mjs} +16 -14
- package/dist/ui/textarea.mjs.map +1 -0
- package/dist/ui/toggle-group.d.ts +10 -0
- package/dist/ui/toggle-group.d.ts.map +1 -0
- package/dist/ui/toggle-group.js +105 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle-group.mjs +70 -0
- package/dist/ui/toggle-group.mjs.map +1 -0
- package/dist/ui/toggle.d.ts +10 -0
- package/dist/ui/toggle.d.ts.map +1 -0
- package/dist/ui/toggle.js +70 -0
- package/dist/ui/toggle.js.map +1 -0
- package/{src/ui/toggle.tsx → dist/ui/toggle.mjs} +25 -26
- package/dist/ui/toggle.mjs.map +1 -0
- package/dist/ui/tooltip.d.ts +8 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/tooltip.js +84 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/tooltip.mjs +57 -0
- package/dist/ui/tooltip.mjs.map +1 -0
- package/package.json +8 -1
- package/AGENTS.md +0 -1
- package/CHANGELOG.md +0 -107
- package/components.json +0 -33
- package/docs/standards/data-contracts.md +0 -81
- package/docs/standards/theming.md +0 -112
- package/scripts/fix-esm-extensions.mjs +0 -40
- package/src/blocks/application/app-shells/app-shell-1-sidebar.tsx +0 -198
- package/src/blocks/application/app-shells/app-shell-1.tsx +0 -196
- package/src/blocks/application/login-forms/login-page-1.tsx +0 -246
- package/src/blocks/application/login-forms/login-page-2.tsx +0 -207
- package/src/blocks/application/password-recovery/forgot-password-page-1-brand-mark.tsx +0 -38
- package/src/blocks/application/password-recovery/forgot-password-page-1.tsx +0 -320
- package/src/blocks/application/signup-forms/signup-page-1.tsx +0 -231
- package/src/blocks/application/verification/verify-1.tsx +0 -307
- package/src/blocks/application/verification/verify-confetti.tsx +0 -192
- package/src/blocks/e-commerce/category-filters/category-filter-1.tsx +0 -260
- package/src/blocks/e-commerce/category-filters/category-filter-2-filter-panel.tsx +0 -222
- package/src/blocks/e-commerce/category-filters/category-filter-2.test.tsx +0 -513
- package/src/blocks/e-commerce/category-filters/category-filter-2.tsx +0 -921
- package/src/blocks/e-commerce/category-filters/category-filter-4-chip-rail.tsx +0 -57
- package/src/blocks/e-commerce/category-filters/category-filter-4-drawer.tsx +0 -124
- package/src/blocks/e-commerce/category-filters/category-filter-4-fields.tsx +0 -170
- package/src/blocks/e-commerce/category-filters/category-filter-4-sidebar.tsx +0 -52
- package/src/blocks/e-commerce/category-filters/category-filter-4-sort-sheet.tsx +0 -57
- package/src/blocks/e-commerce/category-filters/category-filter-4-state.ts +0 -68
- package/src/blocks/e-commerce/category-filters/category-filter-4.tsx +0 -298
- package/src/blocks/e-commerce/checkout-forms/card-formatting.test.ts +0 -47
- package/src/blocks/e-commerce/checkout-forms/card-formatting.ts +0 -9
- package/src/blocks/e-commerce/checkout-forms/checkbox-check.tsx +0 -74
- package/src/blocks/e-commerce/checkout-forms/checkout-confirmation-fulfilment-progress.tsx +0 -195
- package/src/blocks/e-commerce/checkout-forms/checkout-confirmation.test.tsx +0 -136
- package/src/blocks/e-commerce/checkout-forms/checkout-confirmation.tsx +0 -329
- package/src/blocks/e-commerce/checkout-forms/checkout-field-feedback.tsx +0 -29
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1-contact-step.tsx +0 -96
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1-country-field.tsx +0 -51
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1-order-summary.tsx +0 -252
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1-payment-step.tsx +0 -188
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1-progress.tsx +0 -36
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1-shipping-step.tsx +0 -156
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1.test.tsx +0 -216
- package/src/blocks/e-commerce/checkout-forms/checkout-form-1.tsx +0 -338
- package/src/blocks/e-commerce/checkout-forms/checkout-form-2-order-summary.tsx +0 -130
- package/src/blocks/e-commerce/checkout-forms/checkout-form-2-payment-card.tsx +0 -175
- package/src/blocks/e-commerce/checkout-forms/checkout-form-2-shipping-card.tsx +0 -190
- package/src/blocks/e-commerce/checkout-forms/checkout-form-2.tsx +0 -312
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3-information-step.tsx +0 -91
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3-order-summary.tsx +0 -110
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3-payment-step.tsx +0 -137
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3-progress.tsx +0 -68
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3-review-step.tsx +0 -79
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3-shipping-step.tsx +0 -172
- package/src/blocks/e-commerce/checkout-forms/checkout-form-3.tsx +0 -392
- package/src/blocks/e-commerce/checkout-forms/checkout-form-types.ts +0 -7
- package/src/blocks/e-commerce/navigation/back-to-top.test.tsx +0 -27
- package/src/blocks/e-commerce/navigation/back-to-top.tsx +0 -71
- package/src/blocks/e-commerce/navigation/breadcrumb.test.tsx +0 -174
- package/src/blocks/e-commerce/navigation/breadcrumb.tsx +0 -130
- package/src/blocks/e-commerce/navigation/category-icon.test.tsx +0 -54
- package/src/blocks/e-commerce/navigation/category-icon.tsx +0 -94
- package/src/blocks/e-commerce/navigation/mega-menu.test.tsx +0 -139
- package/src/blocks/e-commerce/navigation/mega-menu.tsx +0 -271
- package/src/blocks/e-commerce/navigation/mobile-bottom-nav.test.tsx +0 -74
- package/src/blocks/e-commerce/navigation/mobile-bottom-nav.tsx +0 -78
- package/src/blocks/e-commerce/navigation/mobile-category-drawer.test.tsx +0 -192
- package/src/blocks/e-commerce/navigation/mobile-category-drawer.tsx +0 -278
- package/src/blocks/e-commerce/navigation/skip-to-content.test.tsx +0 -35
- package/src/blocks/e-commerce/navigation/skip-to-content.tsx +0 -37
- package/src/blocks/e-commerce/order-history/order-history-1.tsx +0 -159
- package/src/blocks/e-commerce/order-history/order-history-2.tsx +0 -222
- package/src/blocks/e-commerce/product-categories/category-card-grid.test.tsx +0 -122
- package/src/blocks/e-commerce/product-categories/category-card.test.tsx +0 -68
- package/src/blocks/e-commerce/product-categories/category-card.tsx +0 -172
- package/src/blocks/e-commerce/product-categories/category-grid.test.tsx +0 -67
- package/src/blocks/e-commerce/product-categories/category-shared.tsx +0 -109
- package/src/blocks/e-commerce/product-categories/product-category-grid.tsx +0 -170
- package/src/blocks/e-commerce/product-categories/product-category.test.tsx +0 -266
- package/src/blocks/e-commerce/product-categories/product-category.tsx +0 -462
- package/src/blocks/e-commerce/product-list/product-card.test.tsx +0 -263
- package/src/blocks/e-commerce/product-list/product-card.tsx +0 -424
- package/src/blocks/e-commerce/product-list/product-grid.test.tsx +0 -162
- package/src/blocks/e-commerce/product-list/product-grid.tsx +0 -114
- package/src/blocks/e-commerce/product-list/product-showcase-1.test.tsx +0 -78
- package/src/blocks/e-commerce/product-list/product-showcase-1.tsx +0 -277
- package/src/blocks/e-commerce/product-overview/product-overview-gallery.tsx +0 -71
- package/src/blocks/e-commerce/product-overview/product-overview-lightbox-tab.tsx +0 -116
- package/src/blocks/e-commerce/product-overview/product-overview-reviews-tab.tsx +0 -105
- package/src/blocks/e-commerce/product-overview/product-overview-tabs.tsx +0 -70
- package/src/blocks/e-commerce/product-overview/product-overview.test.tsx +0 -283
- package/src/blocks/e-commerce/product-overview/product-overview.tsx +0 -1186
- package/src/blocks/e-commerce/product-overview/product-quick-view-card.tsx +0 -135
- package/src/blocks/e-commerce/product-overview/product-quick-view-dialog.tsx +0 -393
- package/src/blocks/e-commerce/product-overview/product-quick-view.tsx +0 -136
- package/src/blocks/e-commerce/reviews/review-rating-1-review-form.tsx +0 -133
- package/src/blocks/e-commerce/reviews/review-rating-1.tsx +0 -178
- package/src/blocks/e-commerce/reviews/review-rating-2.tsx +0 -245
- package/src/blocks/e-commerce/shopping-carts/shopping-cart.test.tsx +0 -399
- package/src/blocks/e-commerce/shopping-carts/shopping-cart.tsx +0 -628
- package/src/blocks/e-commerce/store-containers/store-container-1.tsx +0 -29
- package/src/blocks/e-commerce/storefront-hero/storefront-hero.test.tsx +0 -412
- package/src/blocks/e-commerce/storefront-hero/storefront-hero.tsx +0 -1283
- package/src/blocks/marketing/banners/avatar-group.tsx +0 -69
- package/src/blocks/marketing/banners/banner-1.tsx +0 -188
- package/src/blocks/marketing/cta/cta-section-1.tsx +0 -112
- package/src/blocks/marketing/faq/faq-block-1.tsx +0 -45
- package/src/blocks/marketing/features/feature.test.tsx +0 -153
- package/src/blocks/marketing/features/feature.tsx +0 -195
- package/src/blocks/marketing/footers/footer-section-1.test.tsx +0 -117
- package/src/blocks/marketing/footers/footer-section-1.tsx +0 -178
- package/src/blocks/marketing/footers/footer-section-3.tsx +0 -192
- package/src/blocks/marketing/footers/footer-section-4.tsx +0 -355
- package/src/blocks/marketing/hero-sections/avatar-group.tsx +0 -86
- package/src/blocks/marketing/hero-sections/hero-section-1.tsx +0 -135
- package/src/blocks/marketing/logo-clouds/logo-cloud-1-logo-icon.tsx +0 -52
- package/src/blocks/marketing/logo-clouds/logo-cloud-1.tsx +0 -56
- package/src/blocks/marketing/navbars/navbar-1.tsx +0 -267
- package/src/blocks/marketing/navbars/navbar-2.tsx +0 -351
- package/src/blocks/marketing/navbars/navbar-3.tsx +0 -303
- package/src/blocks/marketing/navbars/navbar-4-account-menu.test.tsx +0 -56
- package/src/blocks/marketing/navbars/navbar-4-account-menu.tsx +0 -134
- package/src/blocks/marketing/navbars/navbar-4-cart-sheet.test.tsx +0 -204
- package/src/blocks/marketing/navbars/navbar-4-cart-sheet.tsx +0 -371
- package/src/blocks/marketing/navbars/navbar-4-like-button.tsx +0 -177
- package/src/blocks/marketing/navbars/navbar-4-mobile-nav.tsx +0 -104
- package/src/blocks/marketing/navbars/navbar-4-product-grid.tsx +0 -219
- package/src/blocks/marketing/navbars/navbar-4-search-bar.tsx +0 -52
- package/src/blocks/marketing/navbars/navbar-4.test.tsx +0 -264
- package/src/blocks/marketing/navbars/navbar-4.tsx +0 -604
- package/src/blocks/marketing/pricing/pricing-section-1.tsx +0 -94
- package/src/blocks/marketing/statistics/statistic-1.tsx +0 -93
- package/src/blocks/marketing/testimonials/testimonial-1.tsx +0 -141
- package/src/blocks/marketing/testimonials/testimonial-2.tsx +0 -108
- package/src/blocks/shared/reaction-toggle.tsx +0 -145
- package/src/hooks/use-mobile.ts +0 -19
- package/src/index.ts +0 -285
- package/src/lib/cart.test.ts +0 -15
- package/src/lib/contracts-curated.test.ts +0 -225
- package/src/lib/contracts-server-boundary.test.ts +0 -52
- package/src/lib/contracts.test.ts +0 -173
- package/src/lib/contracts.ts +0 -795
- package/src/lib/money.test.ts +0 -64
- package/src/lib/money.ts +0 -65
- package/src/lib/types/menu.ts +0 -43
- package/src/lib/types.ts +0 -4
- package/src/lib/utils.ts +0 -10
- package/src/ui/accordion.tsx +0 -65
- package/src/ui/badge.tsx +0 -47
- package/src/ui/breadcrumb.tsx +0 -108
- package/src/ui/button-group.tsx +0 -83
- package/src/ui/button.tsx +0 -63
- package/src/ui/card.tsx +0 -91
- package/src/ui/carousel.tsx +0 -241
- package/src/ui/dialog.tsx +0 -158
- package/src/ui/drawer.tsx +0 -134
- package/src/ui/dropdown-menu.tsx +0 -256
- package/src/ui/empty.tsx +0 -103
- package/src/ui/input-otp.tsx +0 -76
- package/src/ui/label.tsx +0 -23
- package/src/ui/pagination.tsx +0 -127
- package/src/ui/progress.tsx +0 -30
- package/src/ui/radio-group.tsx +0 -44
- package/src/ui/select.tsx +0 -189
- package/src/ui/separator.tsx +0 -27
- package/src/ui/sheet.tsx +0 -142
- package/src/ui/sidebar.tsx +0 -726
- package/src/ui/skeleton.tsx +0 -13
- package/src/ui/table.tsx +0 -115
- package/src/ui/toggle-group.tsx +0 -83
- package/src/ui/tooltip.tsx +0 -56
- package/tsconfig.build.json +0 -12
- package/tsconfig.json +0 -20
- package/tsup.config.ts +0 -19
- package/vitest.config.ts +0 -17
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import { useEffect, useState } from 'react'
|
|
4
|
-
import { AnimatePresence, motion, useReducedMotion } from 'motion/react'
|
|
5
|
-
import { Minus, Plus, ShoppingBag } from 'lucide-react'
|
|
6
|
-
|
|
7
|
-
import { Button } from '../../../ui/button'
|
|
8
|
-
import {
|
|
9
|
-
Empty,
|
|
10
|
-
EmptyContent,
|
|
11
|
-
EmptyDescription,
|
|
12
|
-
EmptyHeader,
|
|
13
|
-
EmptyMedia,
|
|
14
|
-
EmptyTitle,
|
|
15
|
-
} from '../../../ui/empty'
|
|
16
|
-
import { Separator } from '../../../ui/separator'
|
|
17
|
-
import { SheetClose } from '../../../ui/sheet'
|
|
18
|
-
import type { Money } from '@thorprovider/types'
|
|
19
|
-
import { formatMoney } from '../../../lib/money'
|
|
20
|
-
|
|
21
|
-
export interface CartItem {
|
|
22
|
-
/** Backend cart line-item id — the stable identity for update/removal. */
|
|
23
|
-
id: string
|
|
24
|
-
name: string
|
|
25
|
-
variant?: string
|
|
26
|
-
price: number
|
|
27
|
-
qty: number
|
|
28
|
-
/** Optional; an absent image is omitted rather than serialized as `""`. */
|
|
29
|
-
image?: string
|
|
30
|
-
/**
|
|
31
|
-
* Canonical backend line amount. Required for truthful rendering in
|
|
32
|
-
* `canonical` mode; when absent/invalid the line shows the unavailable
|
|
33
|
-
* label rather than a numeric fallback.
|
|
34
|
-
*/
|
|
35
|
-
lineTotal?: Money
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export type CartSheetState = 'idle' | 'pending' | 'error'
|
|
39
|
-
|
|
40
|
-
export interface Navbar4CartSheetProps {
|
|
41
|
-
items: CartItem[]
|
|
42
|
-
/**
|
|
43
|
-
* Quantity DELTA for a backend cart line-item id. The boundary converts the
|
|
44
|
-
* delta into an absolute quantity against the authoritative current line
|
|
45
|
-
* quantity before mutating the cart.
|
|
46
|
-
*/
|
|
47
|
-
onQtyChange: (id: string, delta: number) => void
|
|
48
|
-
/** Remove the backend cart line-item id. */
|
|
49
|
-
onRemove: (id: string) => void
|
|
50
|
-
/** Authoritative backend subtotal. Preferred over any local line math. */
|
|
51
|
-
subtotal?: Money
|
|
52
|
-
/** Shown when an authoritative subtotal is supplied but absent/malformed. */
|
|
53
|
-
subtotalUnavailableLabel?: string
|
|
54
|
-
/** Override money formatting (locale, currency). Defaults to `Money.currencyCode`. */
|
|
55
|
-
formatMoney?: (money: Money) => string
|
|
56
|
-
/** @deprecated legacy numeric formatter; ignored when `subtotal` is supplied. */
|
|
57
|
-
formatPrice?: (value: number) => string
|
|
58
|
-
onCheckout?: () => void
|
|
59
|
-
onViewCart?: () => void
|
|
60
|
-
/**
|
|
61
|
-
* Backend-authoritative rendering. When `true`, each line amount comes from
|
|
62
|
-
* the item's canonical `lineTotal` Money and the sheet never recomputes
|
|
63
|
-
* `price * qty`. When omitted/false, legacy numeric rendering is preserved
|
|
64
|
-
* for standalone consumers.
|
|
65
|
-
*/
|
|
66
|
-
canonical?: boolean
|
|
67
|
-
/** Shown in `canonical` mode when a line amount is missing or malformed. */
|
|
68
|
-
lineUnavailableLabel?: string
|
|
69
|
-
/** Cart read/mutation lifecycle. Pending retains confirmed lines; error is recoverable. */
|
|
70
|
-
state?: CartSheetState
|
|
71
|
-
/** Message shown when `state` is `error`. */
|
|
72
|
-
errorLabel?: string
|
|
73
|
-
/** Label for the recovery action in the error state. */
|
|
74
|
-
retryLabel?: string
|
|
75
|
-
/** Recovery action invoked from the error state. */
|
|
76
|
-
onRetry?: () => void
|
|
77
|
-
/** Label shown while `state` is `pending`. */
|
|
78
|
-
pendingLabel?: string
|
|
79
|
-
/** When `true`, the checkout action is suppressed (checkout not installed). */
|
|
80
|
-
checkoutUnavailable?: boolean
|
|
81
|
-
/** When `true`, the checkout action is disabled (cart not ready / invalid amounts). */
|
|
82
|
-
checkoutDisabled?: boolean
|
|
83
|
-
/** When `true`, the review action is suppressed (cart view not installed). */
|
|
84
|
-
viewCartUnavailable?: boolean
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const usdFormatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' })
|
|
88
|
-
|
|
89
|
-
/** Approximate Transitions.dev `delete-with-smoky-dissolve` for list rows (Pro effect). */
|
|
90
|
-
const smokyExit = {
|
|
91
|
-
opacity: 0,
|
|
92
|
-
y: 10,
|
|
93
|
-
scale: 0.96,
|
|
94
|
-
filter: 'blur(8px)',
|
|
95
|
-
transition: { duration: 0.35, ease: [0.4, 0, 0.2, 1] as const },
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Transitions.dev `texts-reveal`: lines rise from below with blur, staggered.
|
|
100
|
-
* Exit is a quiet in-place fade — no Y return, no reverse stagger.
|
|
101
|
-
*/
|
|
102
|
-
const revealEase = [0.22, 1, 0.36, 1] as const
|
|
103
|
-
const revealHidden = { opacity: 0, y: 12, filter: 'blur(3px)' }
|
|
104
|
-
const revealShown = { opacity: 1, y: 0, filter: 'blur(0px)' }
|
|
105
|
-
const revealExit = { opacity: 0, y: 0, filter: 'blur(0px)', transition: { duration: 0.2, ease: 'easeOut' as const } }
|
|
106
|
-
|
|
107
|
-
export function Navbar4CartSheet({
|
|
108
|
-
items,
|
|
109
|
-
onQtyChange,
|
|
110
|
-
onRemove,
|
|
111
|
-
subtotal: subtotalProp,
|
|
112
|
-
subtotalUnavailableLabel = '—',
|
|
113
|
-
formatMoney: formatMoneyProp,
|
|
114
|
-
formatPrice,
|
|
115
|
-
onCheckout,
|
|
116
|
-
onViewCart,
|
|
117
|
-
canonical = false,
|
|
118
|
-
lineUnavailableLabel = '—',
|
|
119
|
-
state = 'idle',
|
|
120
|
-
errorLabel = 'No se pudo actualizar el carrito.',
|
|
121
|
-
retryLabel = 'Reintentar',
|
|
122
|
-
onRetry,
|
|
123
|
-
pendingLabel = 'Actualizando el carrito…',
|
|
124
|
-
checkoutUnavailable = false,
|
|
125
|
-
checkoutDisabled = false,
|
|
126
|
-
viewCartUnavailable = false,
|
|
127
|
-
}: Navbar4CartSheetProps) {
|
|
128
|
-
const reduceMotion = useReducedMotion()
|
|
129
|
-
const format = formatPrice ?? (value => usdFormatter.format(value))
|
|
130
|
-
const localSubtotal = items.reduce((total, item) => total + item.price * item.qty, 0)
|
|
131
|
-
const authoritativeSubtotal = subtotalProp !== undefined ? formatMoney(subtotalProp, formatMoneyProp) : null
|
|
132
|
-
const isEmpty = items.length === 0
|
|
133
|
-
const isPending = state === 'pending'
|
|
134
|
-
const isError = state === 'error'
|
|
135
|
-
/** Wait for the last cart row's exit before revealing empty copy. */
|
|
136
|
-
const [showEmpty, setShowEmpty] = useState(isEmpty)
|
|
137
|
-
|
|
138
|
-
useEffect(() => {
|
|
139
|
-
if (!isEmpty) {
|
|
140
|
-
setShowEmpty(false)
|
|
141
|
-
}
|
|
142
|
-
}, [isEmpty])
|
|
143
|
-
|
|
144
|
-
const lineAmount = (item: CartItem): string => {
|
|
145
|
-
if (canonical) {
|
|
146
|
-
if (item.lineTotal === undefined) {
|
|
147
|
-
return lineUnavailableLabel
|
|
148
|
-
}
|
|
149
|
-
return formatMoney(item.lineTotal, formatMoneyProp) ?? lineUnavailableLabel
|
|
150
|
-
}
|
|
151
|
-
return format(item.price * item.qty)
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// A confirmed empty cart is only claimed when no read/mutation is in flight
|
|
155
|
-
// and no read error is outstanding; otherwise the sheet shows loading/error.
|
|
156
|
-
const showConfirmedEmpty = showEmpty && !isPending && !isError
|
|
157
|
-
const mutationsDisabled = isPending
|
|
158
|
-
|
|
159
|
-
return (
|
|
160
|
-
<>
|
|
161
|
-
<div className='relative flex min-h-0 flex-1 flex-col overflow-hidden'>
|
|
162
|
-
{isPending ? (
|
|
163
|
-
<p
|
|
164
|
-
role='status'
|
|
165
|
-
aria-live='polite'
|
|
166
|
-
className='border-border text-muted-foreground border-b px-4 py-2 text-sm'
|
|
167
|
-
>
|
|
168
|
-
{pendingLabel}
|
|
169
|
-
</p>
|
|
170
|
-
) : null}
|
|
171
|
-
{isError ? (
|
|
172
|
-
<div
|
|
173
|
-
role='alert'
|
|
174
|
-
className='border-border flex items-center justify-between gap-2 border-b px-4 py-2 text-sm'
|
|
175
|
-
>
|
|
176
|
-
<span className='text-destructive'>{errorLabel}</span>
|
|
177
|
-
{onRetry ? (
|
|
178
|
-
<Button variant='ghost' size='sm' onClick={onRetry}>
|
|
179
|
-
{retryLabel}
|
|
180
|
-
</Button>
|
|
181
|
-
) : null}
|
|
182
|
-
</div>
|
|
183
|
-
) : null}
|
|
184
|
-
<ul className='flex-1 overflow-y-auto px-4'>
|
|
185
|
-
<AnimatePresence
|
|
186
|
-
initial={false}
|
|
187
|
-
mode='popLayout'
|
|
188
|
-
onExitComplete={() => {
|
|
189
|
-
if (items.length === 0) {
|
|
190
|
-
setShowEmpty(true)
|
|
191
|
-
}
|
|
192
|
-
}}
|
|
193
|
-
>
|
|
194
|
-
{items.map(item => (
|
|
195
|
-
<motion.li
|
|
196
|
-
key={item.id}
|
|
197
|
-
layout={!reduceMotion}
|
|
198
|
-
initial={reduceMotion ? false : { opacity: 0, y: 8, filter: 'blur(4px)' }}
|
|
199
|
-
animate={{ opacity: 1, y: 0, filter: 'blur(0px)' }}
|
|
200
|
-
exit={reduceMotion ? { opacity: 0 } : smokyExit}
|
|
201
|
-
transition={{ duration: 0.28, ease: [0.22, 1, 0.36, 1] }}
|
|
202
|
-
className='border-border flex gap-4 border-b py-4 last:border-b-0'
|
|
203
|
-
style={{ willChange: 'transform, opacity, filter' }}
|
|
204
|
-
>
|
|
205
|
-
{item.image ? (
|
|
206
|
-
<img
|
|
207
|
-
src={item.image || undefined}
|
|
208
|
-
alt=''
|
|
209
|
-
width={80}
|
|
210
|
-
height={96}
|
|
211
|
-
className='bg-muted size-20 shrink-0 rounded-md object-cover'
|
|
212
|
-
/>
|
|
213
|
-
) : (
|
|
214
|
-
<div aria-hidden='true' className='bg-muted size-20 shrink-0 rounded-md' />
|
|
215
|
-
)}
|
|
216
|
-
<div className='flex min-w-0 flex-1 flex-col'>
|
|
217
|
-
<div className='flex items-start justify-between gap-2'>
|
|
218
|
-
<div className='min-w-0'>
|
|
219
|
-
<p className='truncate text-sm font-medium'>{item.name}</p>
|
|
220
|
-
{item.variant ? (
|
|
221
|
-
<p className='text-muted-foreground text-sm'>{item.variant}</p>
|
|
222
|
-
) : null}
|
|
223
|
-
</div>
|
|
224
|
-
<p className='text-sm font-medium'>{lineAmount(item)}</p>
|
|
225
|
-
</div>
|
|
226
|
-
|
|
227
|
-
<div className='mt-auto flex items-center justify-between pt-2'>
|
|
228
|
-
<div className='border-border flex items-center rounded-md border'>
|
|
229
|
-
<Button
|
|
230
|
-
variant='ghost'
|
|
231
|
-
size='icon'
|
|
232
|
-
className='size-8 rounded-r-none'
|
|
233
|
-
aria-label={`Decrease quantity, ${item.name}`}
|
|
234
|
-
disabled={mutationsDisabled}
|
|
235
|
-
onClick={() => onQtyChange(item.id, -1)}
|
|
236
|
-
>
|
|
237
|
-
<Minus />
|
|
238
|
-
</Button>
|
|
239
|
-
<span className='w-8 text-center text-sm tabular-nums'>{item.qty}</span>
|
|
240
|
-
<Button
|
|
241
|
-
variant='ghost'
|
|
242
|
-
size='icon'
|
|
243
|
-
className='size-8 rounded-l-none'
|
|
244
|
-
aria-label={`Increase quantity, ${item.name}`}
|
|
245
|
-
disabled={mutationsDisabled}
|
|
246
|
-
onClick={() => onQtyChange(item.id, 1)}
|
|
247
|
-
>
|
|
248
|
-
<Plus />
|
|
249
|
-
</Button>
|
|
250
|
-
</div>
|
|
251
|
-
<Button
|
|
252
|
-
variant='ghost'
|
|
253
|
-
size='sm'
|
|
254
|
-
className='text-muted-foreground hover:text-foreground'
|
|
255
|
-
aria-label={`Remove ${item.name} from cart`}
|
|
256
|
-
disabled={mutationsDisabled}
|
|
257
|
-
onClick={() => onRemove(item.id)}
|
|
258
|
-
>
|
|
259
|
-
Remove
|
|
260
|
-
</Button>
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
</motion.li>
|
|
264
|
-
))}
|
|
265
|
-
</AnimatePresence>
|
|
266
|
-
</ul>
|
|
267
|
-
|
|
268
|
-
<AnimatePresence>
|
|
269
|
-
{showConfirmedEmpty ? (
|
|
270
|
-
<motion.div
|
|
271
|
-
key='empty'
|
|
272
|
-
initial={false}
|
|
273
|
-
exit={reduceMotion ? { opacity: 0 } : revealExit}
|
|
274
|
-
className='absolute inset-0'
|
|
275
|
-
>
|
|
276
|
-
<Empty className='h-full border-0'>
|
|
277
|
-
<EmptyHeader>
|
|
278
|
-
<motion.div
|
|
279
|
-
initial={reduceMotion ? false : revealHidden}
|
|
280
|
-
animate={revealShown}
|
|
281
|
-
transition={
|
|
282
|
-
reduceMotion
|
|
283
|
-
? { duration: 0 }
|
|
284
|
-
: { duration: 0.5, ease: revealEase, delay: 0 }
|
|
285
|
-
}
|
|
286
|
-
style={{ willChange: 'transform, opacity, filter' }}
|
|
287
|
-
>
|
|
288
|
-
<EmptyMedia variant='icon'>
|
|
289
|
-
<ShoppingBag aria-hidden='true' />
|
|
290
|
-
</EmptyMedia>
|
|
291
|
-
</motion.div>
|
|
292
|
-
<motion.div
|
|
293
|
-
initial={reduceMotion ? false : revealHidden}
|
|
294
|
-
animate={revealShown}
|
|
295
|
-
transition={
|
|
296
|
-
reduceMotion
|
|
297
|
-
? { duration: 0 }
|
|
298
|
-
: { duration: 0.5, ease: revealEase, delay: 0.04 }
|
|
299
|
-
}
|
|
300
|
-
style={{ willChange: 'transform, opacity, filter' }}
|
|
301
|
-
>
|
|
302
|
-
<EmptyTitle>Your cart is empty</EmptyTitle>
|
|
303
|
-
</motion.div>
|
|
304
|
-
<motion.div
|
|
305
|
-
initial={reduceMotion ? false : revealHidden}
|
|
306
|
-
animate={revealShown}
|
|
307
|
-
transition={
|
|
308
|
-
reduceMotion
|
|
309
|
-
? { duration: 0 }
|
|
310
|
-
: { duration: 0.5, ease: revealEase, delay: 0.08 }
|
|
311
|
-
}
|
|
312
|
-
style={{ willChange: 'transform, opacity, filter' }}
|
|
313
|
-
>
|
|
314
|
-
<EmptyDescription>Once you add something it will show up here.</EmptyDescription>
|
|
315
|
-
</motion.div>
|
|
316
|
-
</EmptyHeader>
|
|
317
|
-
<motion.div
|
|
318
|
-
initial={reduceMotion ? false : revealHidden}
|
|
319
|
-
animate={revealShown}
|
|
320
|
-
transition={
|
|
321
|
-
reduceMotion
|
|
322
|
-
? { duration: 0 }
|
|
323
|
-
: { duration: 0.5, ease: revealEase, delay: 0.12 }
|
|
324
|
-
}
|
|
325
|
-
style={{ willChange: 'transform, opacity, filter' }}
|
|
326
|
-
>
|
|
327
|
-
<EmptyContent>
|
|
328
|
-
<SheetClose asChild>
|
|
329
|
-
<Button>Continue shopping</Button>
|
|
330
|
-
</SheetClose>
|
|
331
|
-
</EmptyContent>
|
|
332
|
-
</motion.div>
|
|
333
|
-
</Empty>
|
|
334
|
-
</motion.div>
|
|
335
|
-
) : null}
|
|
336
|
-
</AnimatePresence>
|
|
337
|
-
</div>
|
|
338
|
-
|
|
339
|
-
{!isEmpty ? (
|
|
340
|
-
<div className='flex flex-col gap-4 p-4'>
|
|
341
|
-
<Separator />
|
|
342
|
-
<div className='flex items-center justify-between text-sm'>
|
|
343
|
-
<span className='text-muted-foreground'>Subtotal</span>
|
|
344
|
-
<span className='font-medium tabular-nums'>
|
|
345
|
-
{canonical || subtotalProp !== undefined
|
|
346
|
-
? authoritativeSubtotal ?? subtotalUnavailableLabel
|
|
347
|
-
: format(localSubtotal)}
|
|
348
|
-
</span>
|
|
349
|
-
</div>
|
|
350
|
-
<p className='text-muted-foreground text-xs'>Shipping and taxes are calculated at checkout.</p>
|
|
351
|
-
<div className='flex flex-col gap-2'>
|
|
352
|
-
{checkoutUnavailable ? null : (
|
|
353
|
-
<Button
|
|
354
|
-
className='w-full'
|
|
355
|
-
disabled={checkoutDisabled || isPending}
|
|
356
|
-
onClick={onCheckout}
|
|
357
|
-
>
|
|
358
|
-
Checkout
|
|
359
|
-
</Button>
|
|
360
|
-
)}
|
|
361
|
-
{viewCartUnavailable ? null : (
|
|
362
|
-
<Button variant='ghost' className='w-full' onClick={onViewCart}>
|
|
363
|
-
View cart
|
|
364
|
-
</Button>
|
|
365
|
-
)}
|
|
366
|
-
</div>
|
|
367
|
-
</div>
|
|
368
|
-
) : null}
|
|
369
|
-
</>
|
|
370
|
-
)
|
|
371
|
-
}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import { useRef, useState } from 'react'
|
|
4
|
-
import { useReducedMotion } from 'motion/react'
|
|
5
|
-
|
|
6
|
-
import { Button } from '../../../ui/button'
|
|
7
|
-
import { cn } from '../../../lib/utils'
|
|
8
|
-
|
|
9
|
-
const PARTICLE_COUNT = 8
|
|
10
|
-
const PARTICLE_DIST = 20
|
|
11
|
-
|
|
12
|
-
export interface Navbar4LikeButtonProps {
|
|
13
|
-
liked?: boolean
|
|
14
|
-
onLikedChange?: (liked: boolean) => void
|
|
15
|
-
className?: string
|
|
16
|
-
'aria-label'?: string
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Heart like control — Transitions.dev `like-button`:
|
|
21
|
-
* fill + spring pop on an HTML wrapper (never the SVG) + 8-dot particle burst.
|
|
22
|
-
*/
|
|
23
|
-
export function Navbar4LikeButton({
|
|
24
|
-
liked: likedProp,
|
|
25
|
-
onLikedChange,
|
|
26
|
-
className,
|
|
27
|
-
'aria-label': ariaLabel,
|
|
28
|
-
}: Navbar4LikeButtonProps) {
|
|
29
|
-
const [uncontrolledLiked, setUncontrolledLiked] = useState(false)
|
|
30
|
-
const [bursting, setBursting] = useState(false)
|
|
31
|
-
const particlesRef = useRef<HTMLSpanElement>(null)
|
|
32
|
-
const reduceMotion = useReducedMotion()
|
|
33
|
-
|
|
34
|
-
const liked = likedProp ?? uncontrolledLiked
|
|
35
|
-
|
|
36
|
-
const setLiked = (next: boolean) => {
|
|
37
|
-
onLikedChange?.(next)
|
|
38
|
-
if (likedProp === undefined) {
|
|
39
|
-
setUncontrolledLiked(next)
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const seedParticles = () => {
|
|
44
|
-
const dots = particlesRef.current?.querySelectorAll<HTMLElement>('i')
|
|
45
|
-
if (!dots) {
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
dots.forEach((dot, index) => {
|
|
50
|
-
const angle = (360 / PARTICLE_COUNT) * index + (Math.random() * 2 - 1) * 16
|
|
51
|
-
const mag = PARTICLE_DIST * (0.68 + Math.random() * 0.5)
|
|
52
|
-
const rad = (angle * Math.PI) / 180
|
|
53
|
-
dot.style.setProperty('--px', `${(Math.cos(rad) * mag).toFixed(2)}px`)
|
|
54
|
-
dot.style.setProperty('--py', `${(Math.sin(rad) * mag).toFixed(2)}px`)
|
|
55
|
-
dot.style.setProperty('--pdur', `${Math.round(600 * (0.78 + Math.random() * 0.44))}ms`)
|
|
56
|
-
dot.style.setProperty('--pdelay', `${Math.round(Math.random() * 70)}ms`)
|
|
57
|
-
dot.style.setProperty('--p-end-scale', (0.35 + Math.random() * 0.4).toFixed(2))
|
|
58
|
-
dot.style.setProperty('--psize', (0.6 + Math.random() * 0.8).toFixed(2))
|
|
59
|
-
})
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const toggle = () => {
|
|
63
|
-
if (liked) {
|
|
64
|
-
setLiked(false)
|
|
65
|
-
setBursting(false)
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
setLiked(true)
|
|
70
|
-
if (reduceMotion) {
|
|
71
|
-
return
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
setBursting(false)
|
|
75
|
-
seedParticles()
|
|
76
|
-
requestAnimationFrame(() => setBursting(true))
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return (
|
|
80
|
-
<Button
|
|
81
|
-
type='button'
|
|
82
|
-
variant='ghost'
|
|
83
|
-
size='icon'
|
|
84
|
-
className={cn(
|
|
85
|
-
'navbar-4-like bg-background/80 relative size-8 cursor-pointer overflow-visible rounded-full p-0 backdrop-blur-xs',
|
|
86
|
-
className,
|
|
87
|
-
)}
|
|
88
|
-
data-liked={liked ? 'true' : 'false'}
|
|
89
|
-
data-bursting={bursting ? 'true' : 'false'}
|
|
90
|
-
aria-pressed={liked}
|
|
91
|
-
aria-label={ariaLabel ?? (liked ? 'Remove from wishlist' : 'Add to wishlist')}
|
|
92
|
-
onClick={toggle}
|
|
93
|
-
>
|
|
94
|
-
<span
|
|
95
|
-
className={cn(
|
|
96
|
-
'navbar-4-like-icon inline-flex size-4 items-center justify-center',
|
|
97
|
-
liked && !reduceMotion && 'navbar-4-like-icon--pop',
|
|
98
|
-
)}
|
|
99
|
-
>
|
|
100
|
-
<svg width='16' height='16' viewBox='0 0 16 16' fill='none' aria-hidden='true'>
|
|
101
|
-
<path
|
|
102
|
-
d='M7.99511 3.42388C6.66221 1.8656 4.4395 1.44643 2.76947 2.87334C1.09944 4.30026 0.86432 6.68598 2.17581 8.3736C3.26622 9.77674 6.56619 12.7361 7.64774 13.6939C7.76874 13.801 7.82925 13.8546 7.89982 13.8757C7.96141 13.8941 8.02881 13.8941 8.0904 13.8757C8.16097 13.8546 8.22147 13.801 8.34248 13.6939C9.42403 12.7361 12.724 9.77674 13.8144 8.3736C15.1259 6.68598 14.9195 4.28525 13.2207 2.87334C11.522 1.46144 9.32801 1.8656 7.99511 3.42388Z'
|
|
103
|
-
className='navbar-4-like-path'
|
|
104
|
-
stroke='currentColor'
|
|
105
|
-
strokeWidth='1.5'
|
|
106
|
-
strokeLinecap='round'
|
|
107
|
-
strokeLinejoin='round'
|
|
108
|
-
/>
|
|
109
|
-
</svg>
|
|
110
|
-
</span>
|
|
111
|
-
<span ref={particlesRef} className='navbar-4-like-particles' aria-hidden='true'>
|
|
112
|
-
{Array.from({ length: PARTICLE_COUNT }, (_, index) => (
|
|
113
|
-
<i key={index} />
|
|
114
|
-
))}
|
|
115
|
-
</span>
|
|
116
|
-
|
|
117
|
-
<style>{`
|
|
118
|
-
.navbar-4-like {
|
|
119
|
-
--like-color: oklch(0.6 0.24 15);
|
|
120
|
-
color: var(--foreground);
|
|
121
|
-
}
|
|
122
|
-
.navbar-4-like[data-liked='true'] {
|
|
123
|
-
color: var(--like-color);
|
|
124
|
-
}
|
|
125
|
-
.navbar-4-like-path {
|
|
126
|
-
fill: transparent;
|
|
127
|
-
stroke: currentColor;
|
|
128
|
-
transition: fill 150ms cubic-bezier(0.22, 1, 0.36, 1), stroke 150ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
129
|
-
}
|
|
130
|
-
.navbar-4-like[data-liked='true'] .navbar-4-like-path {
|
|
131
|
-
fill: currentColor;
|
|
132
|
-
}
|
|
133
|
-
.navbar-4-like-icon--pop {
|
|
134
|
-
animation: navbar-4-like-pop 350ms cubic-bezier(0.34, 1.96, 0.64, 1);
|
|
135
|
-
}
|
|
136
|
-
@keyframes navbar-4-like-pop {
|
|
137
|
-
0% { transform: scale(1); }
|
|
138
|
-
30% { transform: scale(0.82); }
|
|
139
|
-
100% { transform: scale(1); }
|
|
140
|
-
}
|
|
141
|
-
.navbar-4-like-particles {
|
|
142
|
-
position: absolute;
|
|
143
|
-
left: 50%;
|
|
144
|
-
top: 50%;
|
|
145
|
-
width: 0;
|
|
146
|
-
height: 0;
|
|
147
|
-
pointer-events: none;
|
|
148
|
-
color: var(--like-color);
|
|
149
|
-
}
|
|
150
|
-
.navbar-4-like-particles i {
|
|
151
|
-
position: absolute;
|
|
152
|
-
left: calc(2.5px * var(--psize, 1) / -2);
|
|
153
|
-
top: calc(2.5px * var(--psize, 1) / -2);
|
|
154
|
-
width: calc(2.5px * var(--psize, 1));
|
|
155
|
-
height: calc(2.5px * var(--psize, 1));
|
|
156
|
-
border-radius: 50%;
|
|
157
|
-
background: currentColor;
|
|
158
|
-
opacity: 0;
|
|
159
|
-
}
|
|
160
|
-
@keyframes navbar-4-like-burst {
|
|
161
|
-
0% { opacity: 0; transform: translate(0, 0) scale(0.4); }
|
|
162
|
-
20% { opacity: 1; transform: translate(calc(var(--px) * 0.25), calc(var(--py) * 0.25)) scale(1); }
|
|
163
|
-
100% { opacity: 0; transform: translate(var(--px), var(--py)) scale(var(--p-end-scale, 0.6)); }
|
|
164
|
-
}
|
|
165
|
-
.navbar-4-like[data-bursting='true'] .navbar-4-like-particles i {
|
|
166
|
-
animation: navbar-4-like-burst var(--pdur, 600ms) ease-out var(--pdelay, 0ms) forwards;
|
|
167
|
-
}
|
|
168
|
-
@media (prefers-reduced-motion: reduce) {
|
|
169
|
-
.navbar-4-like-icon--pop,
|
|
170
|
-
.navbar-4-like-particles i {
|
|
171
|
-
animation: none !important;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
`}</style>
|
|
175
|
-
</Button>
|
|
176
|
-
)
|
|
177
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../../../ui/accordion'
|
|
2
|
-
import { Separator } from '../../../ui/separator'
|
|
3
|
-
import { SheetClose } from '../../../ui/sheet'
|
|
4
|
-
import { cn } from '../../../lib/utils'
|
|
5
|
-
|
|
6
|
-
export interface StoreCategory {
|
|
7
|
-
label: string
|
|
8
|
-
href: string
|
|
9
|
-
/** Rendered as an accordion inside the mobile sheet; omit for a flat link. */
|
|
10
|
-
children?: { label: string; href: string }[]
|
|
11
|
-
/** Styles the link with `text-destructive` — reserve it for one entry. */
|
|
12
|
-
emphasis?: boolean
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface UtilityLink {
|
|
16
|
-
label: string
|
|
17
|
-
href: string
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface Navbar4MobileNavProps {
|
|
21
|
-
storeCategories: StoreCategory[]
|
|
22
|
-
utilityLinks: UtilityLink[]
|
|
23
|
-
/** When provided, an extra "Account" link is appended after the utility links. */
|
|
24
|
-
accountHref?: string
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function Navbar4MobileNav({
|
|
28
|
-
storeCategories,
|
|
29
|
-
utilityLinks,
|
|
30
|
-
accountHref,
|
|
31
|
-
}: Navbar4MobileNavProps) {
|
|
32
|
-
return (
|
|
33
|
-
<nav aria-label='Store' className='px-2 py-2'>
|
|
34
|
-
<Accordion type='multiple'>
|
|
35
|
-
{storeCategories.map(category =>
|
|
36
|
-
category.children ? (
|
|
37
|
-
<AccordionItem key={category.href} value={category.href} className='border-none'>
|
|
38
|
-
<AccordionTrigger className='px-3 py-3 text-base font-medium hover:no-underline'>
|
|
39
|
-
{category.label}
|
|
40
|
-
</AccordionTrigger>
|
|
41
|
-
<AccordionContent className='pb-1'>
|
|
42
|
-
<ul className='flex flex-col'>
|
|
43
|
-
{category.children.map(child => (
|
|
44
|
-
<li key={child.href}>
|
|
45
|
-
<SheetClose asChild>
|
|
46
|
-
<a
|
|
47
|
-
href={child.href}
|
|
48
|
-
className='text-muted-foreground hover:bg-accent hover:text-accent-foreground block rounded-md px-3 py-3 text-sm transition-colors duration-150'
|
|
49
|
-
>
|
|
50
|
-
{child.label}
|
|
51
|
-
</a>
|
|
52
|
-
</SheetClose>
|
|
53
|
-
</li>
|
|
54
|
-
))}
|
|
55
|
-
</ul>
|
|
56
|
-
</AccordionContent>
|
|
57
|
-
</AccordionItem>
|
|
58
|
-
) : (
|
|
59
|
-
<SheetClose key={category.href} asChild>
|
|
60
|
-
<a
|
|
61
|
-
href={category.href}
|
|
62
|
-
className={cn(
|
|
63
|
-
'hover:bg-accent block rounded-md px-3 py-3 text-base font-medium transition-colors duration-150',
|
|
64
|
-
category.emphasis && 'text-destructive',
|
|
65
|
-
)}
|
|
66
|
-
>
|
|
67
|
-
{category.label}
|
|
68
|
-
</a>
|
|
69
|
-
</SheetClose>
|
|
70
|
-
),
|
|
71
|
-
)}
|
|
72
|
-
</Accordion>
|
|
73
|
-
|
|
74
|
-
<Separator className='my-2' />
|
|
75
|
-
|
|
76
|
-
<ul className='flex flex-col'>
|
|
77
|
-
{utilityLinks.map(link => (
|
|
78
|
-
<li key={link.href}>
|
|
79
|
-
<SheetClose asChild>
|
|
80
|
-
<a
|
|
81
|
-
href={link.href}
|
|
82
|
-
className='text-muted-foreground hover:bg-accent hover:text-accent-foreground block rounded-md px-3 py-3 text-sm transition-colors duration-150'
|
|
83
|
-
>
|
|
84
|
-
{link.label}
|
|
85
|
-
</a>
|
|
86
|
-
</SheetClose>
|
|
87
|
-
</li>
|
|
88
|
-
))}
|
|
89
|
-
{accountHref ? (
|
|
90
|
-
<li>
|
|
91
|
-
<SheetClose asChild>
|
|
92
|
-
<a
|
|
93
|
-
href={accountHref}
|
|
94
|
-
className='text-muted-foreground hover:bg-accent hover:text-accent-foreground block rounded-md px-3 py-3 text-sm transition-colors duration-150'
|
|
95
|
-
>
|
|
96
|
-
Account
|
|
97
|
-
</a>
|
|
98
|
-
</SheetClose>
|
|
99
|
-
</li>
|
|
100
|
-
) : null}
|
|
101
|
-
</ul>
|
|
102
|
-
</nav>
|
|
103
|
-
)
|
|
104
|
-
}
|