@tokenoftrust/storefront-runner 0.1.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/LICENSE +58 -0
- package/README.md +40 -0
- package/apps/storefront/.dev.vars.example +41 -0
- package/apps/storefront/.env.example +24 -0
- package/apps/storefront/astro.config.mjs +245 -0
- package/apps/storefront/env.d.ts +155 -0
- package/apps/storefront/lib/ensure-preview-reconcile-secret.sh +31 -0
- package/apps/storefront/lib/resolve-cf-token.sh +48 -0
- package/apps/storefront/lib/resolve-tot-credentials.sh +69 -0
- package/apps/storefront/migrations/0000_baseline.sql +54 -0
- package/apps/storefront/migrations/0001_products_fts.sql +9 -0
- package/apps/storefront/migrations/README.md +54 -0
- package/apps/storefront/migrations/meta/0000_snapshot.json +347 -0
- package/apps/storefront/migrations/meta/0001_snapshot.json +347 -0
- package/apps/storefront/migrations/meta/_journal.json +20 -0
- package/apps/storefront/package.json +41 -0
- package/apps/storefront/public/brand/northwind-logo-dark.svg +4 -0
- package/apps/storefront/public/brand/northwind-logo-light.svg +4 -0
- package/apps/storefront/public/brand/northwind-og.svg +13 -0
- package/apps/storefront/public/favicon.svg +5 -0
- package/apps/storefront/public/js/dashboard-team.js +147 -0
- package/apps/storefront/public/js/dashboard-vendor-search.js +115 -0
- package/apps/storefront/src/components/Badge.astro +34 -0
- package/apps/storefront/src/components/Breadcrumbs.astro +45 -0
- package/apps/storefront/src/components/CollectionCard.astro +56 -0
- package/apps/storefront/src/components/EmptyState.astro +35 -0
- package/apps/storefront/src/components/Img.astro +68 -0
- package/apps/storefront/src/components/ProductCard.astro +228 -0
- package/apps/storefront/src/components/Section.astro +39 -0
- package/apps/storefront/src/components/Seo.astro +70 -0
- package/apps/storefront/src/components/WidgetFrame.astro +34 -0
- package/apps/storefront/src/components/auth/AuthBadge.astro +44 -0
- package/apps/storefront/src/components/chrome/AnnouncementBar.astro +108 -0
- package/apps/storefront/src/components/chrome/MegaMenu.astro +26 -0
- package/apps/storefront/src/components/chrome/NavDropdown.astro +116 -0
- package/apps/storefront/src/components/chrome/SiteFooter.astro +181 -0
- package/apps/storefront/src/components/chrome/SiteHeader.astro +181 -0
- package/apps/storefront/src/components/chrome/UtilityNav.astro +79 -0
- package/apps/storefront/src/components/commerce/FoxyLoader.astro +23 -0
- package/apps/storefront/src/components/commerce/PriceDisplay.astro +91 -0
- package/apps/storefront/src/components/commerce/ProductCarousel.astro +197 -0
- package/apps/storefront/src/components/commerce/ProductGrid.astro +75 -0
- package/apps/storefront/src/components/commerce/RatingStars.astro +58 -0
- package/apps/storefront/src/components/compliance/NicotineWarning.astro +33 -0
- package/apps/storefront/src/components/home/Hero.astro +164 -0
- package/apps/storefront/src/components/islands/AgeGate.tsx +105 -0
- package/apps/storefront/src/components/islands/ImageGallery.tsx +237 -0
- package/apps/storefront/src/components/islands/IsolatedAgeGate.tsx +73 -0
- package/apps/storefront/src/components/islands/MobileNav.tsx +239 -0
- package/apps/storefront/src/components/islands/QuickView.tsx +138 -0
- package/apps/storefront/src/components/islands/RecentlyViewed.tsx +122 -0
- package/apps/storefront/src/components/islands/SavedList.tsx +99 -0
- package/apps/storefront/src/components/islands/SearchTypeahead.tsx +248 -0
- package/apps/storefront/src/components/islands/VariantSelector.tsx +378 -0
- package/apps/storefront/src/components/marketing/CardGrid.astro +72 -0
- package/apps/storefront/src/components/marketing/CodeSample.astro +20 -0
- package/apps/storefront/src/components/marketing/CtaBand.astro +24 -0
- package/apps/storefront/src/components/marketing/Faq.astro +37 -0
- package/apps/storefront/src/components/marketing/Integrations.astro +63 -0
- package/apps/storefront/src/components/marketing/MarketingBlocks.astro +53 -0
- package/apps/storefront/src/components/marketing/MarketingCtas.astro +48 -0
- package/apps/storefront/src/components/marketing/MarketingHero.astro +72 -0
- package/apps/storefront/src/components/marketing/ProofStrip.astro +37 -0
- package/apps/storefront/src/components/marketing/SplitCompare.astro +53 -0
- package/apps/storefront/src/components/marketing/Steps.astro +36 -0
- package/apps/storefront/src/components/marketing/Testimonials.astro +38 -0
- package/apps/storefront/src/components/marketing/TrustBar.astro +22 -0
- package/apps/storefront/src/components/nav/Footer.astro +148 -0
- package/apps/storefront/src/components/nav/Header.astro +190 -0
- package/apps/storefront/src/components/plp/ActiveFilters.astro +79 -0
- package/apps/storefront/src/components/plp/FacetSidebar.astro +146 -0
- package/apps/storefront/src/components/plp/Pagination.astro +99 -0
- package/apps/storefront/src/components/plp/SortSelect.astro +64 -0
- package/apps/storefront/src/config/devTenants.ts +16 -0
- package/apps/storefront/src/config/kvTenantResolver.ts +87 -0
- package/apps/storefront/src/config/resolver.ts +46 -0
- package/apps/storefront/src/config/tenants.ts +193 -0
- package/apps/storefront/src/layouts/Layout.astro +303 -0
- package/apps/storefront/src/lib/analytics/index.ts +47 -0
- package/apps/storefront/src/lib/auth/brokerAssertion.ts +136 -0
- package/apps/storefront/src/lib/auth/devAuth.ts +90 -0
- package/apps/storefront/src/lib/auth/gatePage.ts +81 -0
- package/apps/storefront/src/lib/auth/identityToken.ts +341 -0
- package/apps/storefront/src/lib/auth/loginGate.ts +107 -0
- package/apps/storefront/src/lib/auth/route.ts +146 -0
- package/apps/storefront/src/lib/auth/session.ts +203 -0
- package/apps/storefront/src/lib/auth/totAccessClient.ts +503 -0
- package/apps/storefront/src/lib/basePath.ts +41 -0
- package/apps/storefront/src/lib/cfImage.ts +55 -0
- package/apps/storefront/src/lib/chrome/model.ts +65 -0
- package/apps/storefront/src/lib/colors.ts +97 -0
- package/apps/storefront/src/lib/content-edit/client.ts +230 -0
- package/apps/storefront/src/lib/content-edit/index.ts +14 -0
- package/apps/storefront/src/lib/content-edit/route.ts +25 -0
- package/apps/storefront/src/lib/content-edit/types.ts +19 -0
- package/apps/storefront/src/lib/cspStaticHashes.ts +24 -0
- package/apps/storefront/src/lib/d1/catalog.ts +289 -0
- package/apps/storefront/src/lib/dashboard/staffAdmission.ts +43 -0
- package/apps/storefront/src/lib/dashboard/staffVendorAccess.ts +449 -0
- package/apps/storefront/src/lib/dashboard/tenantSelection.ts +136 -0
- package/apps/storefront/src/lib/dashboard/vendorQuery.ts +61 -0
- package/apps/storefront/src/lib/demoGate.ts +113 -0
- package/apps/storefront/src/lib/dev/ai-widget-client.js +127 -0
- package/apps/storefront/src/lib/dev/cliSignInCode.ts +132 -0
- package/apps/storefront/src/lib/diag/redact.ts +20 -0
- package/apps/storefront/src/lib/edgeCache.ts +128 -0
- package/apps/storefront/src/lib/email/magicLinkInviteEmail.ts +62 -0
- package/apps/storefront/src/lib/env.ts +60 -0
- package/apps/storefront/src/lib/fixtures/sampleProducts.ts +130 -0
- package/apps/storefront/src/lib/format.ts +29 -0
- package/apps/storefront/src/lib/foxyCommerce.ts +49 -0
- package/apps/storefront/src/lib/imageAttrs.ts +55 -0
- package/apps/storefront/src/lib/jsonld.ts +136 -0
- package/apps/storefront/src/lib/maintenance.ts +71 -0
- package/apps/storefront/src/lib/memoryKv.ts +32 -0
- package/apps/storefront/src/lib/messaging/messagesClient.ts +143 -0
- package/apps/storefront/src/lib/placeholder.ts +99 -0
- package/apps/storefront/src/lib/previewReload.ts +125 -0
- package/apps/storefront/src/lib/rawMarketingHtml.ts +133 -0
- package/apps/storefront/src/lib/search/index.ts +74 -0
- package/apps/storefront/src/lib/sections.ts +129 -0
- package/apps/storefront/src/lib/securityHeaders.ts +31 -0
- package/apps/storefront/src/lib/storyblok/content-model.ts +289 -0
- package/apps/storefront/src/lib/storyblok/provider.ts +524 -0
- package/apps/storefront/src/lib/tenantRouting.ts +91 -0
- package/apps/storefront/src/lib/tot/ToTClient.ts +177 -0
- package/apps/storefront/src/lib/tot/d1Client.ts +62 -0
- package/apps/storefront/src/lib/tot/query.ts +187 -0
- package/apps/storefront/src/lib/tot/totClientInterface.ts +30 -0
- package/apps/storefront/src/lib/url.ts +119 -0
- package/apps/storefront/src/lib/wishlist.ts +63 -0
- package/apps/storefront/src/middleware/index.ts +413 -0
- package/apps/storefront/src/pages/404.astro +61 -0
- package/apps/storefront/src/pages/[...slug].astro +90 -0
- package/apps/storefront/src/pages/api/auth/logout.ts +21 -0
- package/apps/storefront/src/pages/api/auth/magic-exchange.ts +107 -0
- package/apps/storefront/src/pages/api/auth/send.ts +85 -0
- package/apps/storefront/src/pages/api/auth/verify.ts +135 -0
- package/apps/storefront/src/pages/api/cache-purge.ts +44 -0
- package/apps/storefront/src/pages/api/content-edit/ai-edit.ts +64 -0
- package/apps/storefront/src/pages/api/csp-report.ts +25 -0
- package/apps/storefront/src/pages/api/dashboard/enter-vendor.ts +124 -0
- package/apps/storefront/src/pages/api/dashboard/vendor-search.ts +120 -0
- package/apps/storefront/src/pages/api/dev/cli-signin-code.ts +44 -0
- package/apps/storefront/src/pages/api/newsletter.ts +104 -0
- package/apps/storefront/src/pages/api/request-access.ts +172 -0
- package/apps/storefront/src/pages/auth/login.astro +149 -0
- package/apps/storefront/src/pages/auth/magic.astro +105 -0
- package/apps/storefront/src/pages/capabilities.astro +292 -0
- package/apps/storefront/src/pages/collections/[handle].astro +154 -0
- package/apps/storefront/src/pages/collections/index.astro +59 -0
- package/apps/storefront/src/pages/dashboard/[appDomain]/index.astro +100 -0
- package/apps/storefront/src/pages/dashboard/[appDomain]/team.astro +154 -0
- package/apps/storefront/src/pages/dashboard/index.astro +160 -0
- package/apps/storefront/src/pages/dev.astro +653 -0
- package/apps/storefront/src/pages/index.astro +290 -0
- package/apps/storefront/src/pages/llms.txt.ts +92 -0
- package/apps/storefront/src/pages/products/[handle].astro +443 -0
- package/apps/storefront/src/pages/robots.txt.ts +24 -0
- package/apps/storefront/src/pages/saved.astro +35 -0
- package/apps/storefront/src/pages/search.astro +150 -0
- package/apps/storefront/src/pages/sitemap.xml.ts +78 -0
- package/apps/storefront/src/pages/style-guide/[tenant]/[theme].astro +646 -0
- package/apps/storefront/src/pages/style-guide/[tenant]/index.astro +85 -0
- package/apps/storefront/src/pages/style-guide/index.astro +94 -0
- package/apps/storefront/src/pages/tenants/[id]/[...path].ts +57 -0
- package/apps/storefront/src/styles/global.css +277 -0
- package/apps/storefront/src/themes/reference.ts +61 -0
- package/apps/storefront/src/themes/schema.ts +111 -0
- package/apps/storefront/src/themes/tenants/index.ts +51 -0
- package/apps/storefront/tsconfig.json +16 -0
- package/apps/storefront/vitest.config.ts +22 -0
- package/apps/storefront/wrangler.toml +175 -0
- package/package.json +23 -0
- package/packages/public-runtime/LICENSE +58 -0
- package/packages/public-runtime/package.json +22 -0
- package/packages/public-runtime/src/binary-path.ts +68 -0
- package/packages/public-runtime/src/capabilities.ts +89 -0
- package/packages/public-runtime/src/catalog-api.ts +81 -0
- package/packages/public-runtime/src/catalog-d1.ts +192 -0
- package/packages/public-runtime/src/csp.ts +109 -0
- package/packages/public-runtime/src/customization-preview.ts +197 -0
- package/packages/public-runtime/src/customization-reconcile.ts +63 -0
- package/packages/public-runtime/src/customization-runtime.ts +157 -0
- package/packages/public-runtime/src/customization-scripts.ts +64 -0
- package/packages/public-runtime/src/customization-versioning.ts +95 -0
- package/packages/public-runtime/src/foxy.ts +184 -0
- package/packages/public-runtime/src/index.ts +30 -0
- package/packages/public-runtime/src/product.ts +159 -0
- package/packages/public-runtime/src/search.ts +45 -0
- package/packages/public-runtime/src/tenant-assets.ts +444 -0
- package/packages/public-runtime/src/tenant.ts +243 -0
- package/packages/public-runtime/tsconfig.json +8 -0
- package/packages/public-runtime/vitest.config.ts +8 -0
- package/pnpm-workspace.yaml +7 -0
- package/scripts/build/copy-tenant-assets.mjs +69 -0
- package/scripts/tot-dev.mjs +439 -0
- package/tenants/bigdvapor/content/blog.json +52 -0
- package/tenants/bigdvapor/content/chrome.html +149 -0
- package/tenants/bigdvapor/content/chrome.json +47 -0
- package/tenants/bigdvapor/content/home.html +463 -0
- package/tenants/bigdvapor/content/home.json +73 -0
- package/tenants/bigdvapor/content/pages/about.json +5 -0
- package/tenants/bigdvapor/content/pages/privacy.json +6 -0
- package/tenants/bigdvapor/content/pages/shipping-returns.json +6 -0
- package/tenants/bigdvapor/content/pages-html/blogs/news.html +86 -0
- package/tenants/bigdvapor/content/pages-html/pages/about-us.html +106 -0
- package/tenants/bigdvapor/content/pages-html/pages/contact-us.html +61 -0
- package/tenants/bigdvapor/content/pages-html/pages/privacy-policy.html +72 -0
- package/tenants/bigdvapor/content/pages-html/pages/shipping-returns.html +172 -0
- package/tenants/bigdvapor/content/themes/bigd-navy.json +109 -0
- package/tenants/bigdvapor/public/img/brands/adjust-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/again-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/al-fakher-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/arro-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/cookies-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/core-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/cyclone-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/dinner-lady-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/extre-bar-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/fifty-bar-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/firerose-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/flavor-beast-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/foger-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/kk-energy-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/kumi-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/lost-vape-dispoable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/melo-labs-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/brands/mixo-vape-disposable.webp +0 -0
- package/tenants/bigdvapor/public/img/brands/one-tank-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/oxbar-vape-disposable.webp +0 -0
- package/tenants/bigdvapor/public/img/brands/pillow-talk-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/pod-king-vape-disposable.jpg +0 -0
- package/tenants/bigdvapor/public/img/brands/raz-vape-disposable.png +0 -0
- package/tenants/bigdvapor/public/img/hero-texas.jpg +0 -0
- package/tenants/bigdvapor/public/img/og.jpg +0 -0
- package/tenants/bigdvapor/public/img/pages/AdobeStock_202106312_web.jpg +0 -0
- package/tenants/bigdvapor/public/img/pages/CREW_web.jpg +0 -0
- package/tenants/bigdvapor/public/img/pages/Hero-Image.jpg +0 -0
- package/tenants/bigdvapor/public/img/tiles/adjust.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/again.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/al-fakher.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/arro.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/cookies.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/core.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/cyclone.png +0 -0
- package/tenants/bigdvapor/public/img/tiles/disposables.svg +23 -0
- package/tenants/bigdvapor/public/logo-wordmark.png +0 -0
- package/tenants/bigdvapor/public/pages/home.css +118 -0
- package/tenants/bigdvapor/public/pages/mkt.css +185 -0
- package/tenants/bigdvapor/public/pages/page.css +148 -0
- package/tenants/bigdvapor/public/themes/bigd-navy.css +73 -0
- package/tenants/bigdvapor/theme.json +12 -0
- package/tenants/giantvapes/content/chrome.html +152 -0
- package/tenants/giantvapes/content/chrome.json +94 -0
- package/tenants/giantvapes/content/home.html +194 -0
- package/tenants/giantvapes/content/home.json +50 -0
- package/tenants/giantvapes/content/pages/about.json +10 -0
- package/tenants/giantvapes/content/pages/privacy.json +6 -0
- package/tenants/giantvapes/content/pages/shipping-returns.json +6 -0
- package/tenants/giantvapes/content/pages-html/blogs/news.html +68 -0
- package/tenants/giantvapes/content/pages-html/pages/about-us.html +95 -0
- package/tenants/giantvapes/content/pages-html/pages/contact-us.html +68 -0
- package/tenants/giantvapes/content/pages-html/pages/privacy-policy.html +65 -0
- package/tenants/giantvapes/content/pages-html/pages/shipping-returns.html +77 -0
- package/tenants/giantvapes/content/themes/giant-navy.json +73 -0
- package/tenants/giantvapes/public/img/hero-suicide-bunny.jpg +0 -0
- package/tenants/giantvapes/public/img/hero.webp +0 -0
- package/tenants/giantvapes/public/img/og.jpg +0 -0
- package/tenants/giantvapes/public/logo-wordmark.png +0 -0
- package/tenants/giantvapes/public/pages/home.css +120 -0
- package/tenants/giantvapes/public/pages/mkt.css +185 -0
- package/tenants/giantvapes/public/pages/page.css +155 -0
- package/tenants/giantvapes/public/themes/giant-navy.css +76 -0
- package/tenants/giantvapes/theme.json +39 -0
- package/tenants/home/content/chrome.json +11 -0
- package/tenants/home/content/home.html +304 -0
- package/tenants/home/content/home.json +13 -0
- package/tenants/home/public/js/storefront.js +210 -0
- package/tenants/home/public/logo-wordmark.png +0 -0
- package/tenants/home/public/pages/storefront.css +212 -0
- package/tenants/home/theme.json +6 -0
- package/tenants/tokenoftrust/.tot/config.json +9 -0
- package/tenants/tokenoftrust/content/chrome.json +55 -0
- package/tenants/tokenoftrust/content/home.html +723 -0
- package/tenants/tokenoftrust/content/home.json +233 -0
- package/tenants/tokenoftrust/content/pages-html/careers.html +231 -0
- package/tenants/tokenoftrust/content/pages-html/company.html +275 -0
- package/tenants/tokenoftrust/content/pages-html/contact/contact-sales.html +188 -0
- package/tenants/tokenoftrust/content/pages-html/contact/startup-apply.html +206 -0
- package/tenants/tokenoftrust/content/pages-html/contact.html +178 -0
- package/tenants/tokenoftrust/content/pages-html/industries/adult-content-age-verification.html +286 -0
- package/tenants/tokenoftrust/content/pages-html/industries/cannabis.html +277 -0
- package/tenants/tokenoftrust/content/pages-html/pact-act-pricing.html +289 -0
- package/tenants/tokenoftrust/content/pages-html/pricing.html +483 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-estimation.html +278 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-gate.html +279 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-verification.html +265 -0
- package/tenants/tokenoftrust/content/pages-html/product/age-assurance.html +173 -0
- package/tenants/tokenoftrust/content/pages-html/product/compliance/aml.html +214 -0
- package/tenants/tokenoftrust/content/pages-html/product/compliance/pact-act.html +226 -0
- package/tenants/tokenoftrust/content/pages-html/product/fraud-prevention.html +254 -0
- package/tenants/tokenoftrust/content/pages-html/product/social-profile-verification.html +212 -0
- package/tenants/tokenoftrust/content/pages-html/product/tax/excise-tax.html +213 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/aml.html +259 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/biometric-selfie.html +305 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/coverage.html +254 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/document-verification.html +306 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/electronic-identity-verification.html +304 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification/government-id-verification.html +308 -0
- package/tenants/tokenoftrust/content/pages-html/product/verification.html +183 -0
- package/tenants/tokenoftrust/content/pages-html/product.html +228 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations/bigcommerce-integration.html +220 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations/shopify-integration.html +221 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations/wordpress.html +220 -0
- package/tenants/tokenoftrust/content/pages-html/resources/integrations.html +172 -0
- package/tenants/tokenoftrust/content/pages-html/resources/refer-a-friend-program.html +317 -0
- package/tenants/tokenoftrust/content/pages-html/resources.html +177 -0
- package/tenants/tokenoftrust/content/pages-html/reviews.html +273 -0
- package/tenants/tokenoftrust/content/pages-html/solutions.html +292 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-alcohol.html +289 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-cigars-and-tobacco.html +286 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-firearm-accessories.html +267 -0
- package/tenants/tokenoftrust/content/pages-html/vlp-peptides.html +273 -0
- package/tenants/tokenoftrust/content/themes/tot-navy.json +88 -0
- package/tenants/tokenoftrust/public/favicon.png +0 -0
- package/tenants/tokenoftrust/public/logo-icon.png +0 -0
- package/tenants/tokenoftrust/public/logo-wordmark.png +0 -0
- package/tenants/tokenoftrust/public/pages/company.css +108 -0
- package/tenants/tokenoftrust/public/pages/home.css +457 -0
- package/tenants/tokenoftrust/public/pages/mkt.css +482 -0
- package/tenants/tokenoftrust/public/pages/pricing.css +214 -0
- package/tenants/tokenoftrust/public/pages/solutions.css +66 -0
- package/tenants/tokenoftrust/public/themes/tot-navy-1.0.0.css +136 -0
- package/tenants/tokenoftrust/public/themes/tot-navy.css +358 -0
- package/tenants/tokenoftrust/theme.json +31 -0
- package/tsconfig.base.json +20 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
Big D Vapor — shared marketing subpage styles (page.css)
|
|
3
|
+
Page hero + prose + contact cards. Used by pages-html/**. Depends on tokens
|
|
4
|
+
from themes/bigd-navy.css and components from pages/mkt.css.
|
|
5
|
+
========================================================================== */
|
|
6
|
+
|
|
7
|
+
/* --- Page hero ------------------------------------------------------------ */
|
|
8
|
+
.page-hero { background: linear-gradient(135deg, var(--navy), var(--navy-ink)); color: #fff; }
|
|
9
|
+
.page-hero .container { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
|
|
10
|
+
.page-hero .eyebrow { display: inline-block; font-family: var(--font-display); font-weight: 700; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: #afc2ff; margin-bottom: .7rem; }
|
|
11
|
+
.page-hero h1 { color: #fff; max-width: 22ch; }
|
|
12
|
+
.page-hero p { color: #dce5ff; font-size: 1.08rem; margin-top: .9rem; max-width: 60ch; }
|
|
13
|
+
.crumbs { font-size: .82rem; color: #a9b8e6; margin-bottom: 1rem; }
|
|
14
|
+
.crumbs a:hover { color: #fff; text-decoration: underline; }
|
|
15
|
+
|
|
16
|
+
/* --- Prose ---------------------------------------------------------------- */
|
|
17
|
+
.prose { max-width: 70ch; margin-inline: auto; }
|
|
18
|
+
.prose h2 { margin-top: 2.2rem; margin-bottom: .6rem; }
|
|
19
|
+
.prose h3 { margin-top: 1.6rem; margin-bottom: .4rem; }
|
|
20
|
+
.prose p { margin-bottom: 1rem; color: var(--ink); }
|
|
21
|
+
.prose p.lead { font-size: 1.15rem; color: var(--muted); }
|
|
22
|
+
.prose ul.bullets { margin: 0 0 1rem; padding-left: 1.1rem; list-style: disc; }
|
|
23
|
+
.prose ul.bullets li { margin-bottom: .4rem; color: var(--ink); }
|
|
24
|
+
.prose a { color: var(--navy); font-weight: 600; }
|
|
25
|
+
.prose a:hover { text-decoration: underline; }
|
|
26
|
+
|
|
27
|
+
/* --- Contact cards -------------------------------------------------------- */
|
|
28
|
+
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 22px); margin-top: 1.5rem; }
|
|
29
|
+
.contact-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; background: #fff; }
|
|
30
|
+
.contact-card h3 { color: var(--navy); font-size: 1.05rem; margin-bottom: .5rem; }
|
|
31
|
+
.contact-card a { color: var(--ink); font-weight: 600; }
|
|
32
|
+
.contact-card a:hover { color: var(--navy); }
|
|
33
|
+
.contact-card p { font-size: .92rem; }
|
|
34
|
+
|
|
35
|
+
/* --- Brand chips ---------------------------------------------------------- */
|
|
36
|
+
.brand-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 1rem 0 1.5rem; }
|
|
37
|
+
.brand-chips a { border: 1px solid var(--border); border-radius: 999px; padding: 8px 16px; font-size: .88rem; font-weight: 600; color: var(--navy); background: var(--surface); }
|
|
38
|
+
.brand-chips a:hover { background: var(--surface-2); }
|
|
39
|
+
|
|
40
|
+
@media (max-width: 720px) {
|
|
41
|
+
.contact-grid { grid-template-columns: 1fr; }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* ============================================================================
|
|
45
|
+
About page — hero overlay + alternating media/copy splits + pickers
|
|
46
|
+
(clones bigdvapor.com/pages/about-us section-for-section)
|
|
47
|
+
========================================================================== */
|
|
48
|
+
|
|
49
|
+
/* --- Full-bleed hero with image + left-aligned overlay copy --------------- */
|
|
50
|
+
.hero-overlay { position: relative; overflow: hidden; background: var(--navy-ink); }
|
|
51
|
+
.hero-overlay > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
|
|
52
|
+
.hero-overlay::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,10,40,.62) 0%, rgba(0,10,40,.34) 45%, rgba(0,10,40,.08) 100%); }
|
|
53
|
+
.hero-overlay__inner { position: relative; z-index: 1; padding-block: clamp(3rem, 9vw, 7rem); }
|
|
54
|
+
.hero-overlay .crumbs { color: #cdd8f5; }
|
|
55
|
+
.hero-overlay .crumbs a { color: #eaf0ff; }
|
|
56
|
+
.hero-overlay h1 { color: #fff; max-width: 16ch; text-shadow: 0 2px 18px rgba(0,10,40,.4); }
|
|
57
|
+
.hero-overlay p { color: #eaf0ff; font-size: clamp(1rem, 1.6vw, 1.2rem); margin-top: 1rem; max-width: 46ch; }
|
|
58
|
+
|
|
59
|
+
/* --- Media / copy split (Our Story, Our Mission, Service) ------------------ */
|
|
60
|
+
.split .container { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.75rem, 5vw, 4.5rem); align-items: center; }
|
|
61
|
+
.split--rev .container { direction: rtl; }
|
|
62
|
+
.split--rev .split__copy, .split--rev .split__media { direction: ltr; }
|
|
63
|
+
.split__copy h2 { margin-bottom: 1rem; }
|
|
64
|
+
.split__copy p { color: var(--ink); margin-bottom: 1rem; max-width: 52ch; }
|
|
65
|
+
.split__copy .btn { margin-top: .4rem; }
|
|
66
|
+
.split__media img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-md); object-fit: cover; }
|
|
67
|
+
.split--center .split__copy { text-align: center; }
|
|
68
|
+
.split--center .split__copy p { margin-inline: auto; }
|
|
69
|
+
.split--center .split__copy .btn { display: inline-flex; }
|
|
70
|
+
|
|
71
|
+
/* --- Trusted Brands band (centered) --------------------------------------- */
|
|
72
|
+
.brands-band .brand-chips { justify-content: center; max-width: 780px; margin-inline: auto; }
|
|
73
|
+
|
|
74
|
+
/* --- Centered CTA band (Service — decorative image absent from source) ----- */
|
|
75
|
+
.cta-band { text-align: center; }
|
|
76
|
+
.cta-band .container { max-width: 60ch; }
|
|
77
|
+
.cta-band p { color: var(--ink); margin-top: 1rem; }
|
|
78
|
+
.cta-band .btn { margin-top: 1.5rem; }
|
|
79
|
+
|
|
80
|
+
/* --- Category picker (Find Your Fav) -------------------------------------- */
|
|
81
|
+
.pick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(12px, 1.6vw, 20px); }
|
|
82
|
+
.pick-card {
|
|
83
|
+
display: flex; flex-direction: column; justify-content: space-between; gap: 12px;
|
|
84
|
+
min-height: 132px; padding: 22px 20px; background: #fff;
|
|
85
|
+
border: 1px solid var(--border); border-radius: var(--radius-lg);
|
|
86
|
+
transition: transform .14s, box-shadow .14s, border-color .14s;
|
|
87
|
+
}
|
|
88
|
+
.pick-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--surface-2); }
|
|
89
|
+
.pick-card h3 { color: var(--navy); font-size: 1.15rem; }
|
|
90
|
+
.pick-card span { font-family: var(--font-display); font-weight: 600; font-size: .9rem; color: var(--navy); }
|
|
91
|
+
.pick-card span::after { content: " →"; }
|
|
92
|
+
|
|
93
|
+
/* ============================================================================
|
|
94
|
+
Contact page — icon info band + form (clones /pages/contact-us)
|
|
95
|
+
========================================================================== */
|
|
96
|
+
.page-hero--center { text-align: center; background: none; color: inherit; }
|
|
97
|
+
.page-hero--center h1 { color: var(--ink); max-width: none; margin-inline: auto; }
|
|
98
|
+
.page-hero--center p { color: var(--muted); margin-inline: auto; }
|
|
99
|
+
|
|
100
|
+
.contact-band { background: var(--navy); border-radius: var(--radius-lg); color: #fff; }
|
|
101
|
+
.contact-band .contact-band__inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 3vw, 32px); padding: clamp(28px, 5vw, 48px); text-align: center; }
|
|
102
|
+
.contact-band__item svg { width: 40px; height: 40px; margin: 0 auto 16px; stroke: #fff; fill: none; stroke-width: 1.6; }
|
|
103
|
+
.contact-band__item a, .contact-band__item span { color: #fff; font-size: 1.02rem; font-weight: 500; }
|
|
104
|
+
.contact-band__item a:hover { text-decoration: underline; }
|
|
105
|
+
|
|
106
|
+
.contact-form { margin-top: clamp(1.75rem, 4vw, 2.75rem); display: grid; gap: 16px; }
|
|
107
|
+
.contact-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
|
108
|
+
.contact-form input, .contact-form textarea {
|
|
109
|
+
width: 100%; font: inherit; color: var(--ink); background: var(--surface);
|
|
110
|
+
border: 1px solid var(--border); border-radius: var(--radius); padding: 15px 18px;
|
|
111
|
+
}
|
|
112
|
+
.contact-form textarea { min-height: 180px; resize: vertical; }
|
|
113
|
+
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--muted); }
|
|
114
|
+
.contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(0,48,160,.14); }
|
|
115
|
+
.contact-form .btn-primary { width: 100%; padding-block: 1em; font-size: 1rem; }
|
|
116
|
+
|
|
117
|
+
/* ============================================================================
|
|
118
|
+
Blog index — post-card grid (clones /blogs/news "Latest News")
|
|
119
|
+
========================================================================== */
|
|
120
|
+
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 28px); }
|
|
121
|
+
.blog-card {
|
|
122
|
+
display: flex; flex-direction: column; gap: 10px; padding: 24px;
|
|
123
|
+
background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg);
|
|
124
|
+
transition: transform .14s, box-shadow .14s, border-color .14s;
|
|
125
|
+
}
|
|
126
|
+
.blog-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--surface-2); }
|
|
127
|
+
.blog-card__date { font-size: .8rem; color: var(--muted); font-weight: 600; letter-spacing: .02em; }
|
|
128
|
+
.blog-card h2 { font-size: 1.18rem; line-height: 1.25; color: var(--ink); }
|
|
129
|
+
.blog-card h2 a:hover { color: var(--navy); }
|
|
130
|
+
.blog-card__more { margin-top: auto; font-family: var(--font-display); font-weight: 600; color: var(--navy); font-size: .9rem; }
|
|
131
|
+
.blog-card__more:hover { text-decoration: underline; }
|
|
132
|
+
.blog-card__more::after { content: " →"; }
|
|
133
|
+
|
|
134
|
+
/* --- Responsive ----------------------------------------------------------- */
|
|
135
|
+
@media (max-width: 900px) {
|
|
136
|
+
.pick-grid { grid-template-columns: repeat(2, 1fr); }
|
|
137
|
+
.blog-grid { grid-template-columns: repeat(2, 1fr); }
|
|
138
|
+
}
|
|
139
|
+
@media (max-width: 760px) {
|
|
140
|
+
.split .container, .split--rev .container { grid-template-columns: 1fr; direction: ltr; }
|
|
141
|
+
.split--rev .split__media { order: -1; }
|
|
142
|
+
.contact-band .contact-band__inner { grid-template-columns: 1fr; }
|
|
143
|
+
.contact-form .row2 { grid-template-columns: 1fr; }
|
|
144
|
+
}
|
|
145
|
+
@media (max-width: 560px) {
|
|
146
|
+
.pick-grid { grid-template-columns: 1fr 1fr; }
|
|
147
|
+
.blog-grid { grid-template-columns: 1fr; }
|
|
148
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
Big D Vapor — "bigd-navy" theme (swappable token + base layer)
|
|
3
|
+
Brand: royal navy #0030a0 on white, red sale accent. Mirrors bigdvapor.com.
|
|
4
|
+
This file is the reskinnable layer: design tokens, reset, and base element
|
|
5
|
+
styles. Shared components live in pages/mkt.css; home-only in pages/home.css.
|
|
6
|
+
========================================================================== */
|
|
7
|
+
|
|
8
|
+
/* --- Design tokens -------------------------------------------------------- */
|
|
9
|
+
:root {
|
|
10
|
+
--navy: #0030a0;
|
|
11
|
+
--navy-dark: #002478;
|
|
12
|
+
--navy-ink: #001a5c;
|
|
13
|
+
--ink: #14181f;
|
|
14
|
+
--muted: #5a6472;
|
|
15
|
+
--bg: #ffffff;
|
|
16
|
+
--surface: #f4f7fc;
|
|
17
|
+
--surface-2: #eaf0fb;
|
|
18
|
+
--border: #e2e8f2;
|
|
19
|
+
--sale: #d81f2a;
|
|
20
|
+
--ok: #1f8a4c;
|
|
21
|
+
|
|
22
|
+
--radius-sm: 6px;
|
|
23
|
+
--radius: 10px;
|
|
24
|
+
--radius-lg: 16px;
|
|
25
|
+
--shadow-sm: 0 1px 2px rgba(16, 26, 64, .06), 0 1px 3px rgba(16, 26, 64, .08);
|
|
26
|
+
--shadow-md: 0 6px 18px rgba(16, 26, 64, .10);
|
|
27
|
+
--shadow-lg: 0 18px 48px rgba(16, 26, 64, .16);
|
|
28
|
+
|
|
29
|
+
--container: 1240px;
|
|
30
|
+
--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
31
|
+
--font-display: "Poppins", var(--font-body);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* --- Reset ---------------------------------------------------------------- */
|
|
35
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
36
|
+
* { margin: 0; }
|
|
37
|
+
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
|
|
38
|
+
body {
|
|
39
|
+
font-family: var(--font-body);
|
|
40
|
+
color: var(--ink);
|
|
41
|
+
background: var(--bg);
|
|
42
|
+
line-height: 1.55;
|
|
43
|
+
-webkit-font-smoothing: antialiased;
|
|
44
|
+
text-rendering: optimizeLegibility;
|
|
45
|
+
}
|
|
46
|
+
img, svg, video { display: block; max-width: 100%; height: auto; }
|
|
47
|
+
a { color: inherit; text-decoration: none; }
|
|
48
|
+
button { font: inherit; cursor: pointer; }
|
|
49
|
+
ul { list-style: none; padding: 0; }
|
|
50
|
+
|
|
51
|
+
/* --- Base typography ------------------------------------------------------ */
|
|
52
|
+
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.12; color: var(--ink); letter-spacing: -.01em; }
|
|
53
|
+
h1 { font-size: clamp(2rem, 4.6vw, 3.15rem); }
|
|
54
|
+
h2 { font-size: clamp(1.6rem, 3.2vw, 2.35rem); }
|
|
55
|
+
h3 { font-size: 1.2rem; }
|
|
56
|
+
p { color: var(--muted); }
|
|
57
|
+
|
|
58
|
+
/* --- Accessibility -------------------------------------------------------- */
|
|
59
|
+
:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; border-radius: 4px; }
|
|
60
|
+
.skip-link {
|
|
61
|
+
position: absolute; left: 8px; top: -48px; z-index: 200;
|
|
62
|
+
background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 8px;
|
|
63
|
+
transition: top .15s ease;
|
|
64
|
+
}
|
|
65
|
+
.skip-link:focus { top: 0; }
|
|
66
|
+
.sr-only {
|
|
67
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
|
|
68
|
+
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
|
|
69
|
+
}
|
|
70
|
+
@media (prefers-reduced-motion: reduce) {
|
|
71
|
+
html { scroll-behavior: auto; }
|
|
72
|
+
*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
|
|
73
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"brand": {
|
|
3
|
+
"logoLight": "https://www.bigdvapor.com/cdn/shop/files/BigD_Vapor_Primary_Logo_FullColor_RGB_Trimmed.png?v=1763916131",
|
|
4
|
+
"headerVariant": "dark",
|
|
5
|
+
"ogImage": "https://www.bigdvapor.com/cdn/shop/files/Big_D_Vapor_Logo.jpg?v=1766178669",
|
|
6
|
+
"heroVariant": "light"
|
|
7
|
+
},
|
|
8
|
+
"color": {
|
|
9
|
+
"primary": "#0030a0",
|
|
10
|
+
"primary-contrast": "#ffffff"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" type="image/png" href="/tenants/giantvapes/logo-wordmark.png">
|
|
7
|
+
<link rel="stylesheet" href="/tenants/giantvapes/themes/giant-navy.css">
|
|
8
|
+
<link rel="stylesheet" href="/tenants/giantvapes/pages/mkt.css">
|
|
9
|
+
<!--PAGE_HEAD-->
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<a class="skip-link" href="#main">Skip to main content</a>
|
|
13
|
+
|
|
14
|
+
<!-- Top FDA warning bar -->
|
|
15
|
+
<div class="topbar-warning"><p>WARNING: This product contains nicotine. Nicotine is an addictive chemical.</p></div>
|
|
16
|
+
|
|
17
|
+
<!-- Announcement: scrolling marquee -->
|
|
18
|
+
<div class="announce-marquee" aria-label="Free US shipping on orders over $100">
|
|
19
|
+
<div class="announce-marquee__track" aria-hidden="true">
|
|
20
|
+
<span>FREE U.S. Shipping on Orders Over $100!</span><span>FREE U.S. Shipping on Orders Over $100!</span><span>FREE U.S. Shipping on Orders Over $100!</span><span>FREE U.S. Shipping on Orders Over $100!</span>
|
|
21
|
+
<span>FREE U.S. Shipping on Orders Over $100!</span><span>FREE U.S. Shipping on Orders Over $100!</span><span>FREE U.S. Shipping on Orders Over $100!</span><span>FREE U.S. Shipping on Orders Over $100!</span>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<!-- Utility nav -->
|
|
26
|
+
<div class="utility-nav">
|
|
27
|
+
<div class="container">
|
|
28
|
+
<ul>
|
|
29
|
+
<li><a href="/blogs/news">News</a></li>
|
|
30
|
+
<li><a href="/pages/about-us">About</a></li>
|
|
31
|
+
<li><a href="/pages/contact-us">Contact</a></li>
|
|
32
|
+
<li><a href="/pages/faq">FAQ</a></li>
|
|
33
|
+
<li><a href="/pages/order-tracking">Track Order</a></li>
|
|
34
|
+
</ul>
|
|
35
|
+
<div class="utility-nav__right">
|
|
36
|
+
<span class="sel">English</span>
|
|
37
|
+
<span class="sel">United States (USD $)</span>
|
|
38
|
+
<span class="social">
|
|
39
|
+
<a href="https://instagram.com/giantvapes" aria-label="Instagram" rel="noopener"><svg viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1.1"/></svg></a>
|
|
40
|
+
<a href="https://facebook.com/giantvapes" aria-label="Facebook" rel="noopener"><svg viewBox="0 0 24 24"><path d="M14 8h2V5h-2a4 4 0 0 0-4 4v2H8v3h2v6h3v-6h2.2l.8-3H13V9a1 1 0 0 1 1-1z"/></svg></a>
|
|
41
|
+
</span>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<!-- Header -->
|
|
47
|
+
<header class="site-header">
|
|
48
|
+
<div class="container header-row">
|
|
49
|
+
<a class="brand" href="/" aria-label="Giant Vapes home"><img src="/tenants/giantvapes/logo-wordmark.png" alt="Giant Vapes" width="200" height="106"></a>
|
|
50
|
+
<form class="header-search" action="/search" method="get" role="search">
|
|
51
|
+
<label class="sr-only" for="hdr-q">Search for anything</label>
|
|
52
|
+
<input id="hdr-q" type="search" name="q" placeholder="Search e-liquids, disposables, hardware" autocomplete="off">
|
|
53
|
+
<button type="submit" aria-label="Search"><svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg></button>
|
|
54
|
+
</form>
|
|
55
|
+
<div class="header-actions">
|
|
56
|
+
<a href="/account" aria-label="Account"><svg viewBox="0 0 24 24"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7"/></svg></a>
|
|
57
|
+
<a class="cart" href="/cart" aria-label="Cart"><svg viewBox="0 0 24 24"><path d="M6 6h15l-1.5 9h-12z"/><circle cx="9" cy="20" r="1.4"/><circle cx="18" cy="20" r="1.4"/><path d="M6 6L5 3H2"/></svg><span class="count">0</span></a>
|
|
58
|
+
<button class="hamburger" id="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primaryNav"><span></span><span></span><span></span></button>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<nav class="primary-nav-bar" aria-label="Primary">
|
|
62
|
+
<div class="container">
|
|
63
|
+
<nav class="primary-nav" id="primaryNav">
|
|
64
|
+
<ul>
|
|
65
|
+
<li><a href="/collections/all">E-Liquid<span class="caret">▾</span></a></li>
|
|
66
|
+
<li><a href="/collections/salt-nic">Salt Nic</a></li>
|
|
67
|
+
<li><a href="/collections/all-disposables">Disposables<span class="caret">▾</span></a></li>
|
|
68
|
+
<li><a href="/collections/vaporesso">Hardware<span class="caret">▾</span></a></li>
|
|
69
|
+
<li><a href="/collections/nicotine-pouches">Nic Pouches</a></li>
|
|
70
|
+
<li><a href="/collections/new-arrivals">New Arrivals</a></li>
|
|
71
|
+
<li><a class="is-flag" href="/collections/clearance">Clearance<span class="new-badge">SALE</span></a></li>
|
|
72
|
+
<li><a href="/collections/all">Brands<span class="caret">▾</span></a></li>
|
|
73
|
+
</ul>
|
|
74
|
+
</nav>
|
|
75
|
+
</div>
|
|
76
|
+
</nav>
|
|
77
|
+
</header>
|
|
78
|
+
|
|
79
|
+
<!--PAGE_BODY-->
|
|
80
|
+
|
|
81
|
+
<!-- Compliance strip -->
|
|
82
|
+
<div class="compliance-strip">
|
|
83
|
+
<div class="container"><p>WARNING: This product contains nicotine. Nicotine is an addictive chemical.</p></div>
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
<!-- Footer -->
|
|
87
|
+
<footer class="site-footer">
|
|
88
|
+
<div class="container">
|
|
89
|
+
<div class="footer-grid">
|
|
90
|
+
<div class="footer-brand">
|
|
91
|
+
<img src="/tenants/giantvapes/logo-wordmark.png" alt="Giant Vapes" width="200" height="106">
|
|
92
|
+
<p>Premium e-liquid, salts, and disposables — shipped fast.<br>Serving vapers online since 2013.</p>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="footer-col">
|
|
95
|
+
<h4>Shop</h4>
|
|
96
|
+
<ul>
|
|
97
|
+
<li><a href="/collections/all">E-Liquid</a></li>
|
|
98
|
+
<li><a href="/collections/salt-nic">Salt Nic</a></li>
|
|
99
|
+
<li><a href="/collections/all-disposables">Disposables</a></li>
|
|
100
|
+
<li><a href="/collections/vaporesso">Hardware</a></li>
|
|
101
|
+
<li><a href="/collections/nicotine-pouches">Nic Pouches</a></li>
|
|
102
|
+
<li><a href="/collections/clearance">Clearance</a></li>
|
|
103
|
+
</ul>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="footer-col">
|
|
106
|
+
<h4>Support</h4>
|
|
107
|
+
<ul>
|
|
108
|
+
<li><a href="/search">Search</a></li>
|
|
109
|
+
<li><a href="/pages/about-us">About Us</a></li>
|
|
110
|
+
<li><a href="/pages/contact-us">Contact Us</a></li>
|
|
111
|
+
<li><a href="/pages/faq">FAQ</a></li>
|
|
112
|
+
<li><a href="/pages/order-tracking">Order Tracking</a></li>
|
|
113
|
+
<li><a href="/blogs/news">Blog</a></li>
|
|
114
|
+
</ul>
|
|
115
|
+
</div>
|
|
116
|
+
<div class="footer-col">
|
|
117
|
+
<h4>Company</h4>
|
|
118
|
+
<ul>
|
|
119
|
+
<li><a href="/pages/shipping-returns">Shipping & Returns</a></li>
|
|
120
|
+
<li><a href="/pages/privacy-policy">Privacy Policy</a></li>
|
|
121
|
+
<li><a href="/pages/giant-distribution">Wholesale</a></li>
|
|
122
|
+
</ul>
|
|
123
|
+
<form class="footer-news" action="/api/newsletter" method="post">
|
|
124
|
+
<input type="hidden" name="source" value="footer">
|
|
125
|
+
<label class="sr-only" for="foot-email">Email</label>
|
|
126
|
+
<input id="foot-email" type="email" name="email" placeholder="Email" required>
|
|
127
|
+
<button type="submit" aria-label="Subscribe">→</button>
|
|
128
|
+
</form>
|
|
129
|
+
<div class="pay-badges" aria-label="Accepted payments">
|
|
130
|
+
<span>AMEX</span><span>Discover</span><span>Mastercard</span><span>Visa</span><span>PayPal</span>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="footer-warning">
|
|
135
|
+
<p><strong>WARNING:</strong> This product contains nicotine. Nicotine is an addictive chemical. Products intended for adults of legal smoking age (21+) only.</p>
|
|
136
|
+
</div>
|
|
137
|
+
<div class="footer-bottom">
|
|
138
|
+
<p>© Giant Vapes, LLC. All rights reserved.</p>
|
|
139
|
+
<p>Must be 21 or older to purchase. Not for sale to minors.</p>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
</footer>
|
|
143
|
+
|
|
144
|
+
<script>
|
|
145
|
+
(function () {
|
|
146
|
+
var burger = document.getElementById('hamburger');
|
|
147
|
+
var nav = document.getElementById('primaryNav');
|
|
148
|
+
if (burger && nav) burger.addEventListener('click', function () { var o = nav.classList.toggle('open'); burger.setAttribute('aria-expanded', o ? 'true' : 'false'); });
|
|
149
|
+
})();
|
|
150
|
+
</script>
|
|
151
|
+
</body>
|
|
152
|
+
</html>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"announcement": "FREE U.S. Shipping on Orders Over $100!",
|
|
3
|
+
"nav": [
|
|
4
|
+
{
|
|
5
|
+
"label": "E-Liquid",
|
|
6
|
+
"href": "/collections/fruity-e-liquids",
|
|
7
|
+
"children": [
|
|
8
|
+
{
|
|
9
|
+
"label": "Fruity E-Liquids",
|
|
10
|
+
"href": "/collections/fruity-e-liquids"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"label": "Nicotine Salts",
|
|
14
|
+
"href": "/collections/nicotine-salts"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"label": "Fruity E-Liquids",
|
|
20
|
+
"href": "/collections/fruity-e-liquids"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"label": "Nicotine Salts",
|
|
24
|
+
"href": "/collections/nicotine-salts"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "Disposables",
|
|
28
|
+
"href": "/collections/all-disposables"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"label": "About",
|
|
32
|
+
"href": "/about"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"footer": {
|
|
36
|
+
"tagline": "Premium e-liquid, salts, and disposables — shipped fast.",
|
|
37
|
+
"columns": [
|
|
38
|
+
{
|
|
39
|
+
"title": "Shop",
|
|
40
|
+
"links": [
|
|
41
|
+
{
|
|
42
|
+
"label": "Fruity E-Liquids",
|
|
43
|
+
"href": "/collections/fruity-e-liquids"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"label": "Nicotine Salts",
|
|
47
|
+
"href": "/collections/nicotine-salts"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"label": "Disposables",
|
|
51
|
+
"href": "/collections/all-disposables"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"label": "Search",
|
|
55
|
+
"href": "/search"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"title": "Company",
|
|
61
|
+
"links": [
|
|
62
|
+
{
|
|
63
|
+
"label": "About",
|
|
64
|
+
"href": "/about"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"label": "Shipping & Returns",
|
|
68
|
+
"href": "/shipping-returns"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"label": "Privacy",
|
|
72
|
+
"href": "/privacy"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"social": [
|
|
78
|
+
{
|
|
79
|
+
"label": "Instagram",
|
|
80
|
+
"href": "https://instagram.com"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"label": "Newsletter",
|
|
84
|
+
"href": "#newsletter"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"disclaimer": "<p>This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a><p></p>\n<p>Giant Vapes will not be held liable for any injury, damage, or defect, permanent or temporary that may be caused by the improper use of these products. Please have a great understanding of the items you are using and how to store, use and care for your products properly. Terms and Conditions.</p>\n<p><b>WARNING:</b> This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a></p>\n<p>This consumable nicotine product is not eligible for return, refund or exchange.</p>",
|
|
89
|
+
"disclaimers": {
|
|
90
|
+
"Vape Juice": "<p>This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a><p></p>\n<p>Giant Vapes will not be held liable for any injury, damage, or defect, permanent or temporary that may be caused by the improper use of these products. Please have a great understanding of the items you are using and how to store, use and care for your products properly. Terms and Conditions.</p>\n<p><b>WARNING:</b> This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a></p>\n<p>This consumable nicotine product is not eligible for return, refund or exchange.</p>",
|
|
91
|
+
"Nicotine Salt": "<p><b>WARNING: Do not use this product in sub-ohm tanks or with sub-ohm coils.</b> This eliquid contains nicotine salt and has a substantially higher amount of nicotine per milliliter than other eliquids. This eliquid is designed <b>only</b> for use with high-resistance coils (1.0 ohm or higher) and ultra low output/low wattage vaping devices.<p></p>\n<p>This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a><p></p>\n<p>Giant Vapes will not be held liable for any injury, damage, or defect, permanent or temporary that may be caused by the improper use of these products. Please have a great understanding of the items you are using and how to store, use and care for your products properly. Terms and Conditions.</p>\n<p><b>WARNING:</b> This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a></p>\n<p>This consumable nicotine product is not eligible for return, refund or exchange.</p>",
|
|
92
|
+
"Vape Disposable": "<p>There is always risk involved when using tobacco and nicotine products and/or rechargeable batteries, at any time and under any circumstances. Giant Vapes is not held responsible for any damage for any modification of the batteries, chargers, devices and other products that are sold on GiantVapes.com.</p>\n<p>Please Note: There is always risk involved when using rechargeable batteries at anytime and under any circumstances. Giant Vapes, LLC is not held responsible for any damage for any modification of the batteries, chargers, devices and other products that are sold on GiantVapes.com.</p>\n<p>Giant Vapes, LLC will not be held liable for any injury, damage, or defect, permanent or temporary that may be caused by the improper use of a Li-ion (Lithium-ion), LiPo (Lithium-ion Polymer) nor any rechargeable battery/batteries as well as chargers. Please have a great understanding of the batteries/chargers you are using and how to care for them properly. You can see a list of our recommendations for proper handling of rechargeable batteries in our terms and conditions</p>\n<p>This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a><p></p>\n<p>Giant Vapes will not be held liable for any injury, damage, or defect, permanent or temporary that may be caused by the improper use of these products. Please have a great understanding of the items you are using and how to store, use and care for your products properly. Terms and Conditions.</p>\n<p><b>WARNING:</b> This product can expose you to chemicals including Nicotine, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to <a href=\"http://www.p65warnings.ca.gov\">www.P65Warnings.ca.gov</a></p>"
|
|
93
|
+
}
|
|
94
|
+
}
|