@cimplify/sdk 0.44.34 → 0.45.1
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 +21 -16
- package/dist/advanced.d.mts +1 -1
- package/dist/advanced.d.ts +1 -1
- package/dist/{client-5B9IPDmf.d.ts → client-Bsd4Vi_y.d.ts} +1 -0
- package/dist/{client-CpVMRI8V.d.mts → client-C5LcbNxL.d.mts} +1 -0
- package/dist/{client-DMhRxuzm.d.ts → client-DjzIoewX.d.ts} +1 -1
- package/dist/{client-Cwb1sMr3.d.mts → client-EM8xKCPO.d.mts} +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/react.d.mts +120 -45
- package/dist/react.d.ts +120 -45
- package/dist/react.js +453 -97
- package/dist/react.mjs +452 -98
- package/dist/server.d.mts +2 -2
- package/dist/server.d.ts +2 -2
- package/dist/styles.css +2 -2
- package/dist/testing/suite.d.mts +2 -2
- package/dist/testing/suite.d.ts +2 -2
- package/dist/testing.d.mts +2 -2
- package/dist/testing.d.ts +2 -2
- package/package.json +5 -9
- package/registry/booking-page.json +2 -1
- package/registry/bookings-page.json +1 -1
- package/registry/index.json +24 -0
- package/dist/cli/commands/deploy.mjs +0 -717
- package/dist/cli/commands/dev.mjs +0 -479
- package/dist/cli/commands/domains.mjs +0 -769
- package/dist/cli/commands/env.mjs +0 -705
- package/dist/cli/commands/link.mjs +0 -378
- package/dist/cli/commands/login.mjs +0 -584
- package/dist/cli/commands/logout.mjs +0 -75
- package/dist/cli/commands/logs.mjs +0 -432
- package/dist/cli/commands/projects.mjs +0 -473
- package/dist/cli/commands/repo.mjs +0 -584
- package/dist/cli/commands/rollback.mjs +0 -553
- package/dist/cli/commands/status.mjs +0 -450
- package/dist/cli/commands/unlink.mjs +0 -79
- package/dist/cli/commands/whoami.mjs +0 -285
- package/dist/cli.js +0 -184
- package/dist/dispatcher.mjs +0 -360
- package/registry/service-card.json +0 -16
- package/registry/service-grid.json +0 -16
- package/templates/storefront-bakery/.claude/skills/cimplify-storefront/SKILL.md +0 -145
- package/templates/storefront-bakery/.cursor/rules/cimplify-storefront.mdc +0 -25
- package/templates/storefront-bakery/.env.example +0 -16
- package/templates/storefront-bakery/AGENTS.md +0 -120
- package/templates/storefront-bakery/CLAUDE.md +0 -22
- package/templates/storefront-bakery/README.md +0 -73
- package/templates/storefront-bakery/__tests__/brand.test.ts +0 -4
- package/templates/storefront-bakery/__tests__/cart-flow.test.ts +0 -4
- package/templates/storefront-bakery/__tests__/contract.test.ts +0 -4
- package/templates/storefront-bakery/app/about/page.tsx +0 -38
- package/templates/storefront-bakery/app/accessibility/page.tsx +0 -11
- package/templates/storefront-bakery/app/account/addresses/page.tsx +0 -21
- package/templates/storefront-bakery/app/account/orders/page.tsx +0 -21
- package/templates/storefront-bakery/app/account/page.tsx +0 -22
- package/templates/storefront-bakery/app/account/settings/page.tsx +0 -21
- package/templates/storefront-bakery/app/cart/page.tsx +0 -9
- package/templates/storefront-bakery/app/categories/[slug]/listing-client.tsx +0 -19
- package/templates/storefront-bakery/app/categories/[slug]/page.tsx +0 -118
- package/templates/storefront-bakery/app/checkout/page.tsx +0 -17
- package/templates/storefront-bakery/app/collections/[slug]/listing-client.tsx +0 -20
- package/templates/storefront-bakery/app/collections/[slug]/page.tsx +0 -118
- package/templates/storefront-bakery/app/contact/contact-form.tsx +0 -109
- package/templates/storefront-bakery/app/contact/page.tsx +0 -54
- package/templates/storefront-bakery/app/error.tsx +0 -60
- package/templates/storefront-bakery/app/faq/page.tsx +0 -46
- package/templates/storefront-bakery/app/globals.css +0 -47
- package/templates/storefront-bakery/app/layout.tsx +0 -82
- package/templates/storefront-bakery/app/llms.txt/route.ts +0 -94
- package/templates/storefront-bakery/app/login/page.tsx +0 -17
- package/templates/storefront-bakery/app/not-found.tsx +0 -39
- package/templates/storefront-bakery/app/opensearch.xml/route.ts +0 -37
- package/templates/storefront-bakery/app/orders/[id]/page.tsx +0 -21
- package/templates/storefront-bakery/app/page.tsx +0 -97
- package/templates/storefront-bakery/app/privacy/page.tsx +0 -44
- package/templates/storefront-bakery/app/returns/page.tsx +0 -11
- package/templates/storefront-bakery/app/robots.ts +0 -18
- package/templates/storefront-bakery/app/search/page.tsx +0 -38
- package/templates/storefront-bakery/app/search/search-client.tsx +0 -7
- package/templates/storefront-bakery/app/shipping/page.tsx +0 -16
- package/templates/storefront-bakery/app/shop/page.tsx +0 -31
- package/templates/storefront-bakery/app/shop/shop-client.tsx +0 -27
- package/templates/storefront-bakery/app/signup/page.tsx +0 -17
- package/templates/storefront-bakery/app/sitemap-page/page.tsx +0 -167
- package/templates/storefront-bakery/app/sitemap.ts +0 -62
- package/templates/storefront-bakery/app/terms/page.tsx +0 -44
- package/templates/storefront-bakery/app/track-order/page.tsx +0 -24
- package/templates/storefront-bakery/app/track-order/track-order-form.tsx +0 -69
- package/templates/storefront-bakery/components/account-iframe.tsx +0 -13
- package/templates/storefront-bakery/components/cart-drawer.tsx +0 -14
- package/templates/storefront-bakery/components/cart-pill.tsx +0 -36
- package/templates/storefront-bakery/components/category-grid.tsx +0 -28
- package/templates/storefront-bakery/components/collection-strip.tsx +0 -45
- package/templates/storefront-bakery/components/footer.tsx +0 -148
- package/templates/storefront-bakery/components/header.tsx +0 -43
- package/templates/storefront-bakery/components/hero.tsx +0 -25
- package/templates/storefront-bakery/components/nav-link.tsx +0 -20
- package/templates/storefront-bakery/components/policy-page.tsx +0 -49
- package/templates/storefront-bakery/components/product-modal.tsx +0 -104
- package/templates/storefront-bakery/components/providers.tsx +0 -35
- package/templates/storefront-bakery/components/store-product-card.tsx +0 -87
- package/templates/storefront-bakery/lib/brand.ts +0 -570
- package/templates/storefront-bakery/lib/cart.ts +0 -12
- package/templates/storefront-bakery/next.config.ts +0 -42
- package/templates/storefront-bakery/package.json +0 -35
- package/templates/storefront-bakery/postcss.config.mjs +0 -7
- package/templates/storefront-bakery/tsconfig.json +0 -23
- package/templates/storefront-bakery/vitest.config.ts +0 -9
- package/templates/storefront-fashion/.claude/skills/cimplify-storefront/SKILL.md +0 -145
- package/templates/storefront-fashion/.cursor/rules/cimplify-storefront.mdc +0 -25
- package/templates/storefront-fashion/.env.example +0 -16
- package/templates/storefront-fashion/AGENTS.md +0 -126
- package/templates/storefront-fashion/CLAUDE.md +0 -22
- package/templates/storefront-fashion/README.md +0 -77
- package/templates/storefront-fashion/__tests__/brand.test.ts +0 -4
- package/templates/storefront-fashion/__tests__/cart-flow.test.ts +0 -55
- package/templates/storefront-fashion/__tests__/contract.test.ts +0 -4
- package/templates/storefront-fashion/app/about/page.tsx +0 -41
- package/templates/storefront-fashion/app/accessibility/page.tsx +0 -11
- package/templates/storefront-fashion/app/account/addresses/page.tsx +0 -21
- package/templates/storefront-fashion/app/account/orders/page.tsx +0 -21
- package/templates/storefront-fashion/app/account/page.tsx +0 -22
- package/templates/storefront-fashion/app/account/settings/page.tsx +0 -21
- package/templates/storefront-fashion/app/cart/page.tsx +0 -9
- package/templates/storefront-fashion/app/categories/[slug]/listing-client.tsx +0 -19
- package/templates/storefront-fashion/app/categories/[slug]/page.tsx +0 -130
- package/templates/storefront-fashion/app/checkout/page.tsx +0 -17
- package/templates/storefront-fashion/app/collections/[slug]/listing-client.tsx +0 -20
- package/templates/storefront-fashion/app/collections/[slug]/page.tsx +0 -130
- package/templates/storefront-fashion/app/contact/contact-form.tsx +0 -109
- package/templates/storefront-fashion/app/contact/page.tsx +0 -54
- package/templates/storefront-fashion/app/error.tsx +0 -61
- package/templates/storefront-fashion/app/faq/page.tsx +0 -46
- package/templates/storefront-fashion/app/globals.css +0 -46
- package/templates/storefront-fashion/app/layout.tsx +0 -78
- package/templates/storefront-fashion/app/llms.txt/route.ts +0 -94
- package/templates/storefront-fashion/app/login/page.tsx +0 -17
- package/templates/storefront-fashion/app/lookbook/page.tsx +0 -132
- package/templates/storefront-fashion/app/not-found.tsx +0 -39
- package/templates/storefront-fashion/app/opensearch.xml/route.ts +0 -37
- package/templates/storefront-fashion/app/orders/[id]/page.tsx +0 -24
- package/templates/storefront-fashion/app/page.tsx +0 -183
- package/templates/storefront-fashion/app/privacy/page.tsx +0 -44
- package/templates/storefront-fashion/app/products/[slug]/page.tsx +0 -165
- package/templates/storefront-fashion/app/products/[slug]/product-detail.tsx +0 -70
- package/templates/storefront-fashion/app/returns/page.tsx +0 -11
- package/templates/storefront-fashion/app/robots.ts +0 -18
- package/templates/storefront-fashion/app/search/page.tsx +0 -38
- package/templates/storefront-fashion/app/search/search-client.tsx +0 -7
- package/templates/storefront-fashion/app/shipping/page.tsx +0 -16
- package/templates/storefront-fashion/app/shop/page.tsx +0 -63
- package/templates/storefront-fashion/app/shop/shop-client.tsx +0 -32
- package/templates/storefront-fashion/app/signup/page.tsx +0 -17
- package/templates/storefront-fashion/app/sitemap-page/page.tsx +0 -167
- package/templates/storefront-fashion/app/sitemap.ts +0 -59
- package/templates/storefront-fashion/app/size-guide/page.tsx +0 -155
- package/templates/storefront-fashion/app/terms/page.tsx +0 -44
- package/templates/storefront-fashion/app/track-order/page.tsx +0 -24
- package/templates/storefront-fashion/app/track-order/track-order-form.tsx +0 -69
- package/templates/storefront-fashion/components/account-iframe.tsx +0 -13
- package/templates/storefront-fashion/components/brand-marquee.tsx +0 -27
- package/templates/storefront-fashion/components/cart-drawer.tsx +0 -14
- package/templates/storefront-fashion/components/cart-pill.tsx +0 -36
- package/templates/storefront-fashion/components/category-grid.tsx +0 -28
- package/templates/storefront-fashion/components/category-tiles.tsx +0 -104
- package/templates/storefront-fashion/components/collection-strip.tsx +0 -45
- package/templates/storefront-fashion/components/feature-hero.tsx +0 -82
- package/templates/storefront-fashion/components/footer.tsx +0 -153
- package/templates/storefront-fashion/components/header.tsx +0 -43
- package/templates/storefront-fashion/components/hero.tsx +0 -28
- package/templates/storefront-fashion/components/nav-link.tsx +0 -20
- package/templates/storefront-fashion/components/newsletter.tsx +0 -50
- package/templates/storefront-fashion/components/policy-page.tsx +0 -49
- package/templates/storefront-fashion/components/promo-banner.tsx +0 -41
- package/templates/storefront-fashion/components/providers.tsx +0 -35
- package/templates/storefront-fashion/components/section-heading.tsx +0 -37
- package/templates/storefront-fashion/components/store-product-card.tsx +0 -87
- package/templates/storefront-fashion/components/trade-in-cta.tsx +0 -54
- package/templates/storefront-fashion/components/trust-bar.tsx +0 -66
- package/templates/storefront-fashion/e2e/visual.spec.ts +0 -52
- package/templates/storefront-fashion/lib/brand.ts +0 -518
- package/templates/storefront-fashion/lib/cart.ts +0 -12
- package/templates/storefront-fashion/next.config.ts +0 -42
- package/templates/storefront-fashion/package.json +0 -38
- package/templates/storefront-fashion/playwright.config.ts +0 -48
- package/templates/storefront-fashion/postcss.config.mjs +0 -7
- package/templates/storefront-fashion/tsconfig.json +0 -23
- package/templates/storefront-fashion/vitest.config.ts +0 -9
- package/templates/storefront-grocery/.claude/skills/cimplify-storefront/SKILL.md +0 -145
- package/templates/storefront-grocery/.cursor/rules/cimplify-storefront.mdc +0 -25
- package/templates/storefront-grocery/.env.example +0 -16
- package/templates/storefront-grocery/AGENTS.md +0 -96
- package/templates/storefront-grocery/CLAUDE.md +0 -22
- package/templates/storefront-grocery/README.md +0 -73
- package/templates/storefront-grocery/__tests__/brand.test.ts +0 -4
- package/templates/storefront-grocery/__tests__/cart-flow.test.ts +0 -4
- package/templates/storefront-grocery/__tests__/contract.test.ts +0 -4
- package/templates/storefront-grocery/app/about/page.tsx +0 -38
- package/templates/storefront-grocery/app/accessibility/page.tsx +0 -11
- package/templates/storefront-grocery/app/account/addresses/page.tsx +0 -21
- package/templates/storefront-grocery/app/account/orders/page.tsx +0 -21
- package/templates/storefront-grocery/app/account/page.tsx +0 -22
- package/templates/storefront-grocery/app/account/settings/page.tsx +0 -21
- package/templates/storefront-grocery/app/cart/page.tsx +0 -9
- package/templates/storefront-grocery/app/categories/[slug]/listing-client.tsx +0 -19
- package/templates/storefront-grocery/app/categories/[slug]/page.tsx +0 -118
- package/templates/storefront-grocery/app/checkout/page.tsx +0 -17
- package/templates/storefront-grocery/app/collections/[slug]/listing-client.tsx +0 -20
- package/templates/storefront-grocery/app/collections/[slug]/page.tsx +0 -118
- package/templates/storefront-grocery/app/contact/contact-form.tsx +0 -109
- package/templates/storefront-grocery/app/contact/page.tsx +0 -54
- package/templates/storefront-grocery/app/error.tsx +0 -60
- package/templates/storefront-grocery/app/faq/page.tsx +0 -46
- package/templates/storefront-grocery/app/globals.css +0 -45
- package/templates/storefront-grocery/app/layout.tsx +0 -77
- package/templates/storefront-grocery/app/llms.txt/route.ts +0 -94
- package/templates/storefront-grocery/app/login/page.tsx +0 -17
- package/templates/storefront-grocery/app/not-found.tsx +0 -39
- package/templates/storefront-grocery/app/opensearch.xml/route.ts +0 -37
- package/templates/storefront-grocery/app/orders/[id]/page.tsx +0 -21
- package/templates/storefront-grocery/app/page.tsx +0 -97
- package/templates/storefront-grocery/app/privacy/page.tsx +0 -44
- package/templates/storefront-grocery/app/returns/page.tsx +0 -11
- package/templates/storefront-grocery/app/robots.ts +0 -18
- package/templates/storefront-grocery/app/search/page.tsx +0 -38
- package/templates/storefront-grocery/app/search/search-client.tsx +0 -7
- package/templates/storefront-grocery/app/shipping/page.tsx +0 -16
- package/templates/storefront-grocery/app/shop/page.tsx +0 -31
- package/templates/storefront-grocery/app/shop/shop-client.tsx +0 -27
- package/templates/storefront-grocery/app/signup/page.tsx +0 -17
- package/templates/storefront-grocery/app/sitemap-page/page.tsx +0 -167
- package/templates/storefront-grocery/app/sitemap.ts +0 -62
- package/templates/storefront-grocery/app/terms/page.tsx +0 -44
- package/templates/storefront-grocery/app/track-order/page.tsx +0 -24
- package/templates/storefront-grocery/app/track-order/track-order-form.tsx +0 -69
- package/templates/storefront-grocery/components/account-iframe.tsx +0 -13
- package/templates/storefront-grocery/components/cart-drawer.tsx +0 -14
- package/templates/storefront-grocery/components/cart-pill.tsx +0 -36
- package/templates/storefront-grocery/components/category-grid.tsx +0 -28
- package/templates/storefront-grocery/components/collection-strip.tsx +0 -45
- package/templates/storefront-grocery/components/footer.tsx +0 -148
- package/templates/storefront-grocery/components/header.tsx +0 -43
- package/templates/storefront-grocery/components/hero.tsx +0 -25
- package/templates/storefront-grocery/components/nav-link.tsx +0 -20
- package/templates/storefront-grocery/components/policy-page.tsx +0 -49
- package/templates/storefront-grocery/components/product-modal.tsx +0 -104
- package/templates/storefront-grocery/components/providers.tsx +0 -35
- package/templates/storefront-grocery/components/store-product-card.tsx +0 -87
- package/templates/storefront-grocery/lib/brand.ts +0 -375
- package/templates/storefront-grocery/lib/cart.ts +0 -12
- package/templates/storefront-grocery/next.config.ts +0 -42
- package/templates/storefront-grocery/package.json +0 -35
- package/templates/storefront-grocery/postcss.config.mjs +0 -7
- package/templates/storefront-grocery/tsconfig.json +0 -23
- package/templates/storefront-grocery/vitest.config.ts +0 -9
- package/templates/storefront-restaurant/.claude/skills/cimplify-storefront/SKILL.md +0 -145
- package/templates/storefront-restaurant/.cursor/rules/cimplify-storefront.mdc +0 -25
- package/templates/storefront-restaurant/.env.example +0 -16
- package/templates/storefront-restaurant/AGENTS.md +0 -102
- package/templates/storefront-restaurant/CLAUDE.md +0 -22
- package/templates/storefront-restaurant/README.md +0 -73
- package/templates/storefront-restaurant/__tests__/brand.test.ts +0 -4
- package/templates/storefront-restaurant/__tests__/cart-flow.test.ts +0 -4
- package/templates/storefront-restaurant/__tests__/contract.test.ts +0 -4
- package/templates/storefront-restaurant/app/about/page.tsx +0 -38
- package/templates/storefront-restaurant/app/accessibility/page.tsx +0 -11
- package/templates/storefront-restaurant/app/account/addresses/page.tsx +0 -21
- package/templates/storefront-restaurant/app/account/orders/page.tsx +0 -21
- package/templates/storefront-restaurant/app/account/page.tsx +0 -22
- package/templates/storefront-restaurant/app/account/settings/page.tsx +0 -21
- package/templates/storefront-restaurant/app/cart/page.tsx +0 -9
- package/templates/storefront-restaurant/app/categories/[slug]/listing-client.tsx +0 -19
- package/templates/storefront-restaurant/app/categories/[slug]/page.tsx +0 -118
- package/templates/storefront-restaurant/app/checkout/page.tsx +0 -17
- package/templates/storefront-restaurant/app/collections/[slug]/listing-client.tsx +0 -20
- package/templates/storefront-restaurant/app/collections/[slug]/page.tsx +0 -118
- package/templates/storefront-restaurant/app/contact/contact-form.tsx +0 -109
- package/templates/storefront-restaurant/app/contact/page.tsx +0 -54
- package/templates/storefront-restaurant/app/error.tsx +0 -60
- package/templates/storefront-restaurant/app/faq/page.tsx +0 -46
- package/templates/storefront-restaurant/app/globals.css +0 -44
- package/templates/storefront-restaurant/app/layout.tsx +0 -82
- package/templates/storefront-restaurant/app/llms.txt/route.ts +0 -94
- package/templates/storefront-restaurant/app/login/page.tsx +0 -17
- package/templates/storefront-restaurant/app/not-found.tsx +0 -39
- package/templates/storefront-restaurant/app/opensearch.xml/route.ts +0 -37
- package/templates/storefront-restaurant/app/orders/[id]/page.tsx +0 -21
- package/templates/storefront-restaurant/app/page.tsx +0 -97
- package/templates/storefront-restaurant/app/privacy/page.tsx +0 -44
- package/templates/storefront-restaurant/app/reservations/page.tsx +0 -66
- package/templates/storefront-restaurant/app/reservations/reservations-client.tsx +0 -234
- package/templates/storefront-restaurant/app/returns/page.tsx +0 -11
- package/templates/storefront-restaurant/app/robots.ts +0 -18
- package/templates/storefront-restaurant/app/search/page.tsx +0 -38
- package/templates/storefront-restaurant/app/search/search-client.tsx +0 -7
- package/templates/storefront-restaurant/app/shipping/page.tsx +0 -16
- package/templates/storefront-restaurant/app/shop/page.tsx +0 -31
- package/templates/storefront-restaurant/app/shop/shop-client.tsx +0 -27
- package/templates/storefront-restaurant/app/signup/page.tsx +0 -17
- package/templates/storefront-restaurant/app/sitemap-page/page.tsx +0 -167
- package/templates/storefront-restaurant/app/sitemap.ts +0 -62
- package/templates/storefront-restaurant/app/terms/page.tsx +0 -44
- package/templates/storefront-restaurant/app/track-order/page.tsx +0 -24
- package/templates/storefront-restaurant/app/track-order/track-order-form.tsx +0 -69
- package/templates/storefront-restaurant/components/account-iframe.tsx +0 -13
- package/templates/storefront-restaurant/components/cart-drawer.tsx +0 -14
- package/templates/storefront-restaurant/components/cart-pill.tsx +0 -36
- package/templates/storefront-restaurant/components/category-grid.tsx +0 -28
- package/templates/storefront-restaurant/components/collection-strip.tsx +0 -45
- package/templates/storefront-restaurant/components/footer.tsx +0 -148
- package/templates/storefront-restaurant/components/header.tsx +0 -43
- package/templates/storefront-restaurant/components/hero.tsx +0 -25
- package/templates/storefront-restaurant/components/nav-link.tsx +0 -20
- package/templates/storefront-restaurant/components/policy-page.tsx +0 -49
- package/templates/storefront-restaurant/components/product-modal.tsx +0 -104
- package/templates/storefront-restaurant/components/providers.tsx +0 -35
- package/templates/storefront-restaurant/components/store-product-card.tsx +0 -87
- package/templates/storefront-restaurant/lib/brand.ts +0 -377
- package/templates/storefront-restaurant/lib/cart.ts +0 -12
- package/templates/storefront-restaurant/next.config.ts +0 -42
- package/templates/storefront-restaurant/package.json +0 -35
- package/templates/storefront-restaurant/postcss.config.mjs +0 -7
- package/templates/storefront-restaurant/tsconfig.json +0 -23
- package/templates/storefront-restaurant/vitest.config.ts +0 -9
- package/templates/storefront-retail/.claude/skills/cimplify-storefront/SKILL.md +0 -145
- package/templates/storefront-retail/.cursor/rules/cimplify-storefront.mdc +0 -25
- package/templates/storefront-retail/.env.example +0 -16
- package/templates/storefront-retail/AGENTS.md +0 -117
- package/templates/storefront-retail/CLAUDE.md +0 -22
- package/templates/storefront-retail/README.md +0 -77
- package/templates/storefront-retail/__tests__/brand.test.ts +0 -4
- package/templates/storefront-retail/__tests__/cart-flow.test.ts +0 -4
- package/templates/storefront-retail/__tests__/contract.test.ts +0 -4
- package/templates/storefront-retail/app/about/page.tsx +0 -41
- package/templates/storefront-retail/app/accessibility/page.tsx +0 -11
- package/templates/storefront-retail/app/account/addresses/page.tsx +0 -21
- package/templates/storefront-retail/app/account/orders/page.tsx +0 -21
- package/templates/storefront-retail/app/account/page.tsx +0 -22
- package/templates/storefront-retail/app/account/settings/page.tsx +0 -21
- package/templates/storefront-retail/app/cart/page.tsx +0 -9
- package/templates/storefront-retail/app/categories/[slug]/listing-client.tsx +0 -19
- package/templates/storefront-retail/app/categories/[slug]/page.tsx +0 -130
- package/templates/storefront-retail/app/checkout/page.tsx +0 -17
- package/templates/storefront-retail/app/collections/[slug]/listing-client.tsx +0 -20
- package/templates/storefront-retail/app/collections/[slug]/page.tsx +0 -130
- package/templates/storefront-retail/app/contact/contact-form.tsx +0 -109
- package/templates/storefront-retail/app/contact/page.tsx +0 -54
- package/templates/storefront-retail/app/error.tsx +0 -61
- package/templates/storefront-retail/app/faq/page.tsx +0 -46
- package/templates/storefront-retail/app/globals.css +0 -47
- package/templates/storefront-retail/app/layout.tsx +0 -77
- package/templates/storefront-retail/app/llms.txt/route.ts +0 -94
- package/templates/storefront-retail/app/login/page.tsx +0 -17
- package/templates/storefront-retail/app/not-found.tsx +0 -39
- package/templates/storefront-retail/app/opensearch.xml/route.ts +0 -37
- package/templates/storefront-retail/app/orders/[id]/page.tsx +0 -24
- package/templates/storefront-retail/app/page.tsx +0 -182
- package/templates/storefront-retail/app/privacy/page.tsx +0 -44
- package/templates/storefront-retail/app/products/[slug]/page.tsx +0 -165
- package/templates/storefront-retail/app/products/[slug]/product-detail.tsx +0 -70
- package/templates/storefront-retail/app/returns/page.tsx +0 -11
- package/templates/storefront-retail/app/robots.ts +0 -18
- package/templates/storefront-retail/app/search/page.tsx +0 -38
- package/templates/storefront-retail/app/search/search-client.tsx +0 -7
- package/templates/storefront-retail/app/shipping/page.tsx +0 -16
- package/templates/storefront-retail/app/shop/page.tsx +0 -63
- package/templates/storefront-retail/app/shop/shop-client.tsx +0 -32
- package/templates/storefront-retail/app/signup/page.tsx +0 -17
- package/templates/storefront-retail/app/sitemap-page/page.tsx +0 -167
- package/templates/storefront-retail/app/sitemap.ts +0 -59
- package/templates/storefront-retail/app/terms/page.tsx +0 -44
- package/templates/storefront-retail/app/track-order/page.tsx +0 -24
- package/templates/storefront-retail/app/track-order/track-order-form.tsx +0 -69
- package/templates/storefront-retail/components/account-iframe.tsx +0 -13
- package/templates/storefront-retail/components/brand-marquee.tsx +0 -27
- package/templates/storefront-retail/components/cart-drawer.tsx +0 -14
- package/templates/storefront-retail/components/cart-pill.tsx +0 -36
- package/templates/storefront-retail/components/category-grid.tsx +0 -28
- package/templates/storefront-retail/components/category-tiles.tsx +0 -104
- package/templates/storefront-retail/components/collection-strip.tsx +0 -45
- package/templates/storefront-retail/components/feature-hero.tsx +0 -84
- package/templates/storefront-retail/components/footer.tsx +0 -153
- package/templates/storefront-retail/components/header.tsx +0 -45
- package/templates/storefront-retail/components/hero.tsx +0 -28
- package/templates/storefront-retail/components/nav-link.tsx +0 -20
- package/templates/storefront-retail/components/newsletter.tsx +0 -50
- package/templates/storefront-retail/components/policy-page.tsx +0 -49
- package/templates/storefront-retail/components/promo-banner.tsx +0 -41
- package/templates/storefront-retail/components/providers.tsx +0 -35
- package/templates/storefront-retail/components/section-heading.tsx +0 -37
- package/templates/storefront-retail/components/store-product-card.tsx +0 -87
- package/templates/storefront-retail/components/trade-in-cta.tsx +0 -54
- package/templates/storefront-retail/components/trust-bar.tsx +0 -66
- package/templates/storefront-retail/lib/brand.ts +0 -664
- package/templates/storefront-retail/lib/cart.ts +0 -12
- package/templates/storefront-retail/next.config.ts +0 -42
- package/templates/storefront-retail/package.json +0 -35
- package/templates/storefront-retail/postcss.config.mjs +0 -7
- package/templates/storefront-retail/tsconfig.json +0 -23
- package/templates/storefront-retail/vitest.config.ts +0 -9
- package/templates/storefront-services/.claude/skills/cimplify-storefront/SKILL.md +0 -145
- package/templates/storefront-services/.cursor/rules/cimplify-storefront.mdc +0 -25
- package/templates/storefront-services/.env.example +0 -16
- package/templates/storefront-services/AGENTS.md +0 -101
- package/templates/storefront-services/CLAUDE.md +0 -22
- package/templates/storefront-services/README.md +0 -73
- package/templates/storefront-services/__tests__/brand.test.ts +0 -4
- package/templates/storefront-services/__tests__/cart-flow.test.ts +0 -4
- package/templates/storefront-services/__tests__/contract.test.ts +0 -4
- package/templates/storefront-services/app/about/page.tsx +0 -38
- package/templates/storefront-services/app/accessibility/page.tsx +0 -11
- package/templates/storefront-services/app/account/addresses/page.tsx +0 -21
- package/templates/storefront-services/app/account/orders/page.tsx +0 -21
- package/templates/storefront-services/app/account/page.tsx +0 -22
- package/templates/storefront-services/app/account/settings/page.tsx +0 -21
- package/templates/storefront-services/app/book/book-client.tsx +0 -195
- package/templates/storefront-services/app/book/page.tsx +0 -65
- package/templates/storefront-services/app/cart/page.tsx +0 -9
- package/templates/storefront-services/app/categories/[slug]/listing-client.tsx +0 -19
- package/templates/storefront-services/app/categories/[slug]/page.tsx +0 -118
- package/templates/storefront-services/app/checkout/page.tsx +0 -17
- package/templates/storefront-services/app/collections/[slug]/listing-client.tsx +0 -20
- package/templates/storefront-services/app/collections/[slug]/page.tsx +0 -118
- package/templates/storefront-services/app/contact/contact-form.tsx +0 -109
- package/templates/storefront-services/app/contact/page.tsx +0 -54
- package/templates/storefront-services/app/error.tsx +0 -60
- package/templates/storefront-services/app/faq/page.tsx +0 -46
- package/templates/storefront-services/app/globals.css +0 -45
- package/templates/storefront-services/app/layout.tsx +0 -82
- package/templates/storefront-services/app/llms.txt/route.ts +0 -94
- package/templates/storefront-services/app/login/page.tsx +0 -17
- package/templates/storefront-services/app/not-found.tsx +0 -39
- package/templates/storefront-services/app/opensearch.xml/route.ts +0 -37
- package/templates/storefront-services/app/orders/[id]/page.tsx +0 -21
- package/templates/storefront-services/app/page.tsx +0 -97
- package/templates/storefront-services/app/privacy/page.tsx +0 -44
- package/templates/storefront-services/app/returns/page.tsx +0 -11
- package/templates/storefront-services/app/robots.ts +0 -18
- package/templates/storefront-services/app/search/page.tsx +0 -38
- package/templates/storefront-services/app/search/search-client.tsx +0 -7
- package/templates/storefront-services/app/shipping/page.tsx +0 -16
- package/templates/storefront-services/app/shop/page.tsx +0 -31
- package/templates/storefront-services/app/shop/shop-client.tsx +0 -27
- package/templates/storefront-services/app/signup/page.tsx +0 -17
- package/templates/storefront-services/app/sitemap-page/page.tsx +0 -167
- package/templates/storefront-services/app/sitemap.ts +0 -62
- package/templates/storefront-services/app/terms/page.tsx +0 -44
- package/templates/storefront-services/app/track-order/page.tsx +0 -24
- package/templates/storefront-services/app/track-order/track-order-form.tsx +0 -69
- package/templates/storefront-services/components/account-iframe.tsx +0 -13
- package/templates/storefront-services/components/cart-drawer.tsx +0 -14
- package/templates/storefront-services/components/cart-pill.tsx +0 -36
- package/templates/storefront-services/components/category-grid.tsx +0 -28
- package/templates/storefront-services/components/collection-strip.tsx +0 -45
- package/templates/storefront-services/components/footer.tsx +0 -148
- package/templates/storefront-services/components/header.tsx +0 -43
- package/templates/storefront-services/components/hero.tsx +0 -25
- package/templates/storefront-services/components/nav-link.tsx +0 -20
- package/templates/storefront-services/components/policy-page.tsx +0 -49
- package/templates/storefront-services/components/product-modal.tsx +0 -104
- package/templates/storefront-services/components/providers.tsx +0 -35
- package/templates/storefront-services/components/store-product-card.tsx +0 -87
- package/templates/storefront-services/lib/brand.ts +0 -396
- package/templates/storefront-services/lib/cart.ts +0 -12
- package/templates/storefront-services/next.config.ts +0 -42
- package/templates/storefront-services/package.json +0 -35
- package/templates/storefront-services/postcss.config.mjs +0 -7
- package/templates/storefront-services/tsconfig.json +0 -23
- package/templates/storefront-services/vitest.config.ts +0 -9
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import Link from "next/link";
|
|
4
|
-
import {
|
|
5
|
-
CardVariant,
|
|
6
|
-
FoodProductCard,
|
|
7
|
-
RetailProductCard,
|
|
8
|
-
WholesaleProductCard,
|
|
9
|
-
DigitalProductCard,
|
|
10
|
-
BundleProductCard,
|
|
11
|
-
CompositeProductCard,
|
|
12
|
-
StandardServiceCard,
|
|
13
|
-
CompactServiceCard,
|
|
14
|
-
ScheduleServiceCard,
|
|
15
|
-
RentalServiceCard,
|
|
16
|
-
AccommodationCard,
|
|
17
|
-
LeaseServiceCard,
|
|
18
|
-
SubscriptionCard,
|
|
19
|
-
} from "@cimplify/sdk/react";
|
|
20
|
-
import type { CardLayoutProps } from "@cimplify/sdk/react";
|
|
21
|
-
import type { Product } from "@cimplify/sdk";
|
|
22
|
-
import { PRODUCT_TYPE, RENDER_HINT, DURATION_UNIT } from "@cimplify/sdk";
|
|
23
|
-
|
|
24
|
-
const RENTAL_UNITS = new Set<string>([DURATION_UNIT.Days, DURATION_UNIT.Hours]);
|
|
25
|
-
const LEASE_UNITS = new Set<string>([DURATION_UNIT.Weeks, DURATION_UNIT.Months, DURATION_UNIT.Years]);
|
|
26
|
-
|
|
27
|
-
const VARIANT_CARDS: Record<CardVariant, React.ComponentType<CardLayoutProps>> = {
|
|
28
|
-
[CardVariant.Food]: FoodProductCard,
|
|
29
|
-
[CardVariant.Retail]: RetailProductCard,
|
|
30
|
-
[CardVariant.Wholesale]: WholesaleProductCard,
|
|
31
|
-
[CardVariant.Digital]: DigitalProductCard,
|
|
32
|
-
[CardVariant.Bundle]: BundleProductCard,
|
|
33
|
-
[CardVariant.Composite]: CompositeProductCard,
|
|
34
|
-
[CardVariant.Standard]: StandardServiceCard,
|
|
35
|
-
[CardVariant.Compact]: CompactServiceCard,
|
|
36
|
-
[CardVariant.Schedule]: ScheduleServiceCard,
|
|
37
|
-
[CardVariant.Rental]: RentalServiceCard,
|
|
38
|
-
[CardVariant.Accommodation]: AccommodationCard,
|
|
39
|
-
[CardVariant.Lease]: LeaseServiceCard,
|
|
40
|
-
[CardVariant.Subscription]: SubscriptionCard,
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
function resolveVariant(p: Product): CardVariant {
|
|
44
|
-
if (p.type === PRODUCT_TYPE.Bundle) return CardVariant.Bundle;
|
|
45
|
-
if (p.type === PRODUCT_TYPE.Composite) return CardVariant.Composite;
|
|
46
|
-
if (p.quantity_pricing && p.quantity_pricing.length > 1) return CardVariant.Wholesale;
|
|
47
|
-
if (p.type === PRODUCT_TYPE.Digital) return CardVariant.Digital;
|
|
48
|
-
if (p.type === PRODUCT_TYPE.Service) {
|
|
49
|
-
if (p.duration_unit && RENTAL_UNITS.has(p.duration_unit)) return CardVariant.Rental;
|
|
50
|
-
if (p.duration_unit === DURATION_UNIT.Nights) return CardVariant.Accommodation;
|
|
51
|
-
if (p.duration_unit && LEASE_UNITS.has(p.duration_unit)) return CardVariant.Lease;
|
|
52
|
-
if (p.billing_plans && p.billing_plans.length > 0 && !p.duration_minutes) return CardVariant.Subscription;
|
|
53
|
-
return CardVariant.Standard;
|
|
54
|
-
}
|
|
55
|
-
if (p.render_hint === RENDER_HINT.Food) return CardVariant.Food;
|
|
56
|
-
return CardVariant.Retail;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
interface Props {
|
|
60
|
-
product: Product;
|
|
61
|
-
/** Override the auto-detected card variant. */
|
|
62
|
-
variant?: CardVariant;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Variant-aware product card that opens the URL-driven product modal on
|
|
67
|
-
* click. Uses `next/link` with `?product=<slug>` so the link is statically
|
|
68
|
-
* pre-renderable — no `useSearchParams` dependency means cards don't
|
|
69
|
-
* become dynamic islands. The modal (which already reads `useSearchParams`
|
|
70
|
-
* inside a Suspense boundary in the root layout) handles the rest.
|
|
71
|
-
*/
|
|
72
|
-
export function StoreProductCard({ product, variant }: Props) {
|
|
73
|
-
const slug = product.slug || product.id;
|
|
74
|
-
const Card = VARIANT_CARDS[variant ?? resolveVariant(product)];
|
|
75
|
-
const href = `?product=${encodeURIComponent(slug)}`;
|
|
76
|
-
|
|
77
|
-
return (
|
|
78
|
-
<Card
|
|
79
|
-
product={product}
|
|
80
|
-
renderLink={({ className, children }) => (
|
|
81
|
-
<Link href={href} scroll={false} prefetch={false} className={className}>
|
|
82
|
-
{children}
|
|
83
|
-
</Link>
|
|
84
|
-
)}
|
|
85
|
-
/>
|
|
86
|
-
);
|
|
87
|
-
}
|
|
@@ -1,570 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Brand & content configuration — the **single source of truth** for every
|
|
3
|
-
* visible string in this storefront.
|
|
4
|
-
*
|
|
5
|
-
* To rebrand the entire site, edit this file. Every page, component,
|
|
6
|
-
* metadata block, JSON-LD object, sitemap, robots.txt, and llms.txt entry
|
|
7
|
-
* reads from `brand`.
|
|
8
|
-
*
|
|
9
|
-
* Schema is intentionally generous: optional fields (tradeIn, trustItems,
|
|
10
|
-
* brandStrip, promo) only render when present, so the same Brand type
|
|
11
|
-
* works across industry templates.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type { SeedName } from "@cimplify/sdk/testing/suite";
|
|
15
|
-
|
|
16
|
-
export interface BrandSocial {
|
|
17
|
-
/** Display label (Instagram, X, YouTube, …). Used as aria-label and footer chip. */
|
|
18
|
-
label: string;
|
|
19
|
-
href: string;
|
|
20
|
-
/** Optional icon override — defaults to inline SVG keyed by `label`. */
|
|
21
|
-
icon?: "instagram" | "x" | "tiktok" | "facebook" | "youtube" | "linkedin" | "whatsapp";
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface BrandFaqEntry {
|
|
25
|
-
q: string;
|
|
26
|
-
a: string;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface BrandFaqSection {
|
|
30
|
-
title: string;
|
|
31
|
-
items: BrandFaqEntry[];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface BrandPolicySection {
|
|
35
|
-
heading: string;
|
|
36
|
-
/** Plain prose, or { intro + bullets } for list-style sections. */
|
|
37
|
-
body: string | { intro: string; bullets: string[] };
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface BrandSitemapSection {
|
|
41
|
-
title: string;
|
|
42
|
-
links: { label: string; href: string }[];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface Brand {
|
|
46
|
-
name: string;
|
|
47
|
-
shortName: string;
|
|
48
|
-
microTag: string;
|
|
49
|
-
description: string;
|
|
50
|
-
schemaType:
|
|
51
|
-
| "Store"
|
|
52
|
-
| "Bakery"
|
|
53
|
-
| "Restaurant"
|
|
54
|
-
| "BeautySalon"
|
|
55
|
-
| "GroceryStore"
|
|
56
|
-
| "LocalBusiness"
|
|
57
|
-
| "Organization";
|
|
58
|
-
|
|
59
|
-
currency: string;
|
|
60
|
-
locale: string;
|
|
61
|
-
|
|
62
|
-
contact: {
|
|
63
|
-
address: string;
|
|
64
|
-
streetAddress: string;
|
|
65
|
-
city: string;
|
|
66
|
-
countryCode: string;
|
|
67
|
-
phone: string;
|
|
68
|
-
phoneTel: string;
|
|
69
|
-
email: string;
|
|
70
|
-
privacyEmail: string;
|
|
71
|
-
supportEmail?: string;
|
|
72
|
-
businessEmail?: string;
|
|
73
|
-
hours: string;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
socials: BrandSocial[];
|
|
77
|
-
|
|
78
|
-
header: {
|
|
79
|
-
nav: { label: string; href: string }[];
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
hero: {
|
|
83
|
-
badge: string;
|
|
84
|
-
title: string;
|
|
85
|
-
subtitle: string;
|
|
86
|
-
primaryCtaLabel: string;
|
|
87
|
-
secondaryCtaLabel?: string;
|
|
88
|
-
secondaryCtaHref?: string;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
trustItems?: { label: string; value: string; description: string; iconKey: string }[];
|
|
92
|
-
brandStrip?: { headline: string; brands: string[] };
|
|
93
|
-
promo?: { badge: string; title: string; body: string; ctaLabel: string; ctaHref: string };
|
|
94
|
-
tradeIn?: {
|
|
95
|
-
eyebrow: string;
|
|
96
|
-
title: string;
|
|
97
|
-
body: string;
|
|
98
|
-
primaryCtaLabel: string;
|
|
99
|
-
primaryCtaHref: string;
|
|
100
|
-
secondaryCtaLabel: string;
|
|
101
|
-
secondaryCtaHref: string;
|
|
102
|
-
steps: { step: string; title: string; body: string }[];
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
newsletter: {
|
|
106
|
-
eyebrow: string;
|
|
107
|
-
title: string;
|
|
108
|
-
body: string;
|
|
109
|
-
placeholder: string;
|
|
110
|
-
submitLabel: string;
|
|
111
|
-
successLabel: string;
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
about: {
|
|
115
|
-
eyebrow: string;
|
|
116
|
-
title: string;
|
|
117
|
-
paragraphs: string[];
|
|
118
|
-
sections: { heading: string; body: string }[];
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
faq: {
|
|
122
|
-
eyebrow: string;
|
|
123
|
-
title: string;
|
|
124
|
-
sections: BrandFaqSection[];
|
|
125
|
-
contactPrompt: string;
|
|
126
|
-
contactEmail: string;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
terms: {
|
|
130
|
-
eyebrow: string;
|
|
131
|
-
title: string;
|
|
132
|
-
lastUpdated: string;
|
|
133
|
-
sections: BrandPolicySection[];
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
privacy: {
|
|
137
|
-
eyebrow: string;
|
|
138
|
-
title: string;
|
|
139
|
-
lastUpdated: string;
|
|
140
|
-
sections: BrandPolicySection[];
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
// ─── Standalone policy pages ──────────────────────────────────
|
|
144
|
-
shipping: { eyebrow: string; title: string; lastUpdated: string; sections: BrandPolicySection[] };
|
|
145
|
-
returns: { eyebrow: string; title: string; lastUpdated: string; sections: BrandPolicySection[] };
|
|
146
|
-
accessibility: { eyebrow: string; title: string; lastUpdated: string; sections: BrandPolicySection[] };
|
|
147
|
-
|
|
148
|
-
// ─── Auth + account UX copy ───────────────────────────────────
|
|
149
|
-
account: {
|
|
150
|
-
loginEyebrow: string;
|
|
151
|
-
loginTitle: string;
|
|
152
|
-
loginSubtitle: string;
|
|
153
|
-
signupEyebrow: string;
|
|
154
|
-
signupTitle: string;
|
|
155
|
-
signupSubtitle: string;
|
|
156
|
-
accountEyebrow: string;
|
|
157
|
-
accountTitle: string;
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
// ─── Contact form copy ────────────────────────────────────────
|
|
161
|
-
contactPage: {
|
|
162
|
-
eyebrow: string;
|
|
163
|
-
title: string;
|
|
164
|
-
body: string;
|
|
165
|
-
/** Reasons offered in the contact form's subject dropdown. */
|
|
166
|
-
reasons: string[];
|
|
167
|
-
/** Direct lines under the form (label + href, e.g. tel: / mailto:). */
|
|
168
|
-
directLines: { label: string; value: string; href: string }[];
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
// ─── Track-order page copy ────────────────────────────────────
|
|
172
|
-
trackOrder: {
|
|
173
|
-
eyebrow: string;
|
|
174
|
-
title: string;
|
|
175
|
-
body: string;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
footer: {
|
|
179
|
-
blurb: string;
|
|
180
|
-
sitemap: BrandSitemapSection[];
|
|
181
|
-
poweredBy?: { label: string; href: string };
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
llms: {
|
|
185
|
-
summary: string;
|
|
186
|
-
};
|
|
187
|
-
|
|
188
|
-
mock: {
|
|
189
|
-
seed: SeedName;
|
|
190
|
-
businessId: string;
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export const brand: Brand = {
|
|
195
|
-
name: "Akua's Bakery",
|
|
196
|
-
shortName: "Akua's Bakery",
|
|
197
|
-
microTag: "ACCRA · SINCE 2018",
|
|
198
|
-
description:
|
|
199
|
-
"Sourdough, croissants, cakes, and more — handcrafted in East Legon, delivered across Accra.",
|
|
200
|
-
schemaType: "Bakery",
|
|
201
|
-
|
|
202
|
-
currency: "GHS",
|
|
203
|
-
locale: "en_GH",
|
|
204
|
-
|
|
205
|
-
contact: {
|
|
206
|
-
address: "12 Independence Ave, Accra",
|
|
207
|
-
streetAddress: "12 Independence Ave",
|
|
208
|
-
city: "Accra",
|
|
209
|
-
countryCode: "GH",
|
|
210
|
-
phone: "+233 244 000 000",
|
|
211
|
-
phoneTel: "+233244000000",
|
|
212
|
-
email: "hello@akuasbakery.test",
|
|
213
|
-
privacyEmail: "privacy@akuasbakery.test",
|
|
214
|
-
hours: "Tue–Sun · 8am–8pm · closed Mondays",
|
|
215
|
-
},
|
|
216
|
-
|
|
217
|
-
socials: [
|
|
218
|
-
{ label: "Instagram", href: "https://instagram.com/akuasbakery", icon: "instagram" },
|
|
219
|
-
{ label: "TikTok", href: "https://tiktok.com/@akuasbakery", icon: "tiktok" },
|
|
220
|
-
{ label: "X", href: "https://x.com/akuasbakery", icon: "x" },
|
|
221
|
-
{ label: "Facebook", href: "https://facebook.com/akuasbakery", icon: "facebook" },
|
|
222
|
-
{ label: "WhatsApp", href: "https://wa.me/233244000000", icon: "whatsapp" },
|
|
223
|
-
],
|
|
224
|
-
|
|
225
|
-
header: {
|
|
226
|
-
nav: [
|
|
227
|
-
{ label: "Home", href: "/" },
|
|
228
|
-
{ label: "Shop", href: "/shop" },
|
|
229
|
-
{ label: "About", href: "/about" },
|
|
230
|
-
{ label: "FAQ", href: "/faq" },
|
|
231
|
-
],
|
|
232
|
-
},
|
|
233
|
-
|
|
234
|
-
hero: {
|
|
235
|
-
badge: "BAKERY · PÂTISSERIE · COFFEE",
|
|
236
|
-
title: "Fresh from the oven, every day.",
|
|
237
|
-
subtitle:
|
|
238
|
-
"Sourdough, croissants, cakes, and more — handcrafted in East Legon, delivered across Accra.",
|
|
239
|
-
primaryCtaLabel: "Shop the menu",
|
|
240
|
-
},
|
|
241
|
-
|
|
242
|
-
newsletter: {
|
|
243
|
-
eyebrow: "Stay in touch",
|
|
244
|
-
title: "Fresh bakes, in your inbox.",
|
|
245
|
-
body: "One email a week. New seasonal pastries, the cake of the month, and the limited drops you don't want to miss.",
|
|
246
|
-
placeholder: "you@email.com",
|
|
247
|
-
submitLabel: "Subscribe",
|
|
248
|
-
successLabel: "Subscribed ✓",
|
|
249
|
-
},
|
|
250
|
-
|
|
251
|
-
about: {
|
|
252
|
-
eyebrow: "Our story",
|
|
253
|
-
title: "Bread is a love letter.",
|
|
254
|
-
paragraphs: [
|
|
255
|
-
"Akua started baking in 2018 from a converted shipping container in East Legon, with a wood-fired oven, a 12-year-old sourdough starter, and a stubborn belief that good bread shouldn't be a luxury.",
|
|
256
|
-
"Today, we bake out of a 200-square-metre kitchen on Independence Avenue, milling our own heritage flour and supplying restaurants and homes across Greater Accra. Every loaf, every croissant, every cake is mixed, shaped, and baked by hand — usually by Akua, increasingly by a team of ten she trained from scratch.",
|
|
257
|
-
"We're proud to source over 90% of our ingredients within Ghana: flour from the Volta Region, butter from Tamale, hibiscus from local farmers we've worked with for years.",
|
|
258
|
-
],
|
|
259
|
-
sections: [
|
|
260
|
-
{
|
|
261
|
-
heading: "What we believe",
|
|
262
|
-
body: "Slow over fast. 24-hour ferments, double proofs, cold lamination. Local first — Ghanaian wheat, Ghanaian dairy, Ghanaian hands. People over yield — every team member starts on the bench, learning the doughs by feel.",
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
heading: "Visit",
|
|
266
|
-
body: "12 Independence Ave, Accra · open Tuesday–Sunday, 8am–8pm. We close on Mondays so the team can rest and the ovens can rest.",
|
|
267
|
-
},
|
|
268
|
-
],
|
|
269
|
-
},
|
|
270
|
-
|
|
271
|
-
faq: {
|
|
272
|
-
eyebrow: "Frequently asked",
|
|
273
|
-
title: "Questions, answered.",
|
|
274
|
-
sections: [
|
|
275
|
-
{
|
|
276
|
-
title: "Ordering & delivery",
|
|
277
|
-
items: [
|
|
278
|
-
{
|
|
279
|
-
q: "Where do you deliver?",
|
|
280
|
-
a: "Same-day delivery within Greater Accra for orders placed before 2pm. Outside Accra, we offer next-day shipping by partner courier — checkout will show the available options for your address.",
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
q: "Can I pick up my order?",
|
|
284
|
-
a: "Yes. Pickup is available 8am–8pm at our East Legon location, 12 Independence Avenue. Choose 'Pickup' at checkout and we'll have everything boxed and ready when you arrive.",
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
q: "How quickly will my order arrive?",
|
|
288
|
-
a: "Same-day delivery typically arrives within 2–4 hours of order confirmation. You'll get an SMS when the rider is en route.",
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
q: "Do you offer subscriptions?",
|
|
292
|
-
a: "Yes — our Weekly Loaf Subscription delivers a fresh loaf to your door every week. Pause or skip any time.",
|
|
293
|
-
},
|
|
294
|
-
],
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
title: "Custom cakes & celebrations",
|
|
298
|
-
items: [
|
|
299
|
-
{
|
|
300
|
-
q: "How much notice do you need for a custom cake?",
|
|
301
|
-
a: "48 hours minimum for tier cakes; 7 days for elaborate designs with sugar work or fondant figures.",
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
q: "Can I bring my own design?",
|
|
305
|
-
a: "Absolutely — send us a reference image and we'll quote what's possible within your timeline and budget.",
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
q: "Do you do wedding cakes?",
|
|
309
|
-
a: "We do, with at least 6 weeks' notice. Tasting sessions are GH₵150 and credited toward your final order.",
|
|
310
|
-
},
|
|
311
|
-
],
|
|
312
|
-
},
|
|
313
|
-
{
|
|
314
|
-
title: "Allergens & ingredients",
|
|
315
|
-
items: [
|
|
316
|
-
{
|
|
317
|
-
q: "Is your kitchen allergen-free?",
|
|
318
|
-
a: "No. Our kitchen handles wheat, dairy, eggs, and tree nuts. Cross-contamination is possible. Please let us know about severe allergies before ordering.",
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
q: "Do you have vegan options?",
|
|
322
|
-
a: "Yes. The country sourdough, whole-wheat seed loaf, baguette, and most of the breads are vegan.",
|
|
323
|
-
},
|
|
324
|
-
],
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
title: "Payment & returns",
|
|
328
|
-
items: [
|
|
329
|
-
{
|
|
330
|
-
q: "What payment methods do you accept?",
|
|
331
|
-
a: "Mobile Money (MTN, Telecel, AirtelTigo), Visa/Mastercard, and cash on delivery for Accra-based orders.",
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
q: "What's your return policy?",
|
|
335
|
-
a: "We don't accept returns on baked goods for food-safety reasons, but if anything is wrong with your order — quality, accuracy, or freshness — message us within 24 hours and we'll make it right or refund you.",
|
|
336
|
-
},
|
|
337
|
-
],
|
|
338
|
-
},
|
|
339
|
-
],
|
|
340
|
-
contactPrompt: "Still stuck? Email",
|
|
341
|
-
contactEmail: "hello@akuasbakery.test",
|
|
342
|
-
},
|
|
343
|
-
|
|
344
|
-
terms: {
|
|
345
|
-
eyebrow: "Terms of service",
|
|
346
|
-
title: "Terms of Service",
|
|
347
|
-
lastUpdated: "1 May 2026",
|
|
348
|
-
sections: [
|
|
349
|
-
{
|
|
350
|
-
heading: "1. Who we are",
|
|
351
|
-
body: "Akua's Bakery (\"we\", \"us\") is a bakery and pâtisserie operating at 12 Independence Avenue, Accra, Ghana. By placing an order through this website, you (\"you\", \"customer\") agree to these terms.",
|
|
352
|
-
},
|
|
353
|
-
{
|
|
354
|
-
heading: "2. Orders and acceptance",
|
|
355
|
-
body: "Placing an order constitutes an offer to buy. We confirm acceptance by sending an order confirmation email or SMS. Until acceptance, we may decline an order — we'll refund any payment in full, immediately.",
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
heading: "3. Pricing and payment",
|
|
359
|
-
body: "Prices are in Ghana Cedis (GH₵) and include VAT where applicable. Payment is due at checkout via Mobile Money, card, or cash on delivery. We reserve the right to correct typographical pricing errors before fulfilment.",
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
heading: "4. Delivery and pickup",
|
|
363
|
-
body: "Delivery times are estimates, not guarantees. We're not liable for delays caused by weather, traffic, or events outside our control. If a rider can't reach you within 30 minutes of arrival, the order may be returned to the kitchen — please make sure your address and phone are correct.",
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
heading: "5. Custom cakes",
|
|
367
|
-
body: "Custom cake orders require a 50% deposit at booking and the balance before pickup or dispatch. Cancellations more than 72 hours before the event date receive a full refund of the deposit; within 72 hours, the deposit is non-refundable.",
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
heading: "6. Allergens",
|
|
371
|
-
body: "Our kitchen handles wheat, dairy, eggs, and tree nuts. We can't guarantee freedom from cross-contamination. Customers with severe allergies order at their own risk.",
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
heading: "7. Returns",
|
|
375
|
-
body: "Baked goods are non-returnable for food-safety reasons. If something is wrong with your order, contact us within 24 hours of delivery and we'll replace it, refund it, or credit your account — your choice.",
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
heading: "8. Liability",
|
|
379
|
-
body: "To the maximum extent permitted by Ghanaian law, our liability for any claim arising from this website or your order is limited to the value of the order. We're not liable for indirect or consequential losses.",
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
heading: "9. Governing law",
|
|
383
|
-
body: "These terms are governed by the laws of Ghana. Disputes will be resolved in the courts of Greater Accra.",
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
heading: "10. Contact",
|
|
387
|
-
body: "Questions? Email hello@akuasbakery.test.",
|
|
388
|
-
},
|
|
389
|
-
],
|
|
390
|
-
},
|
|
391
|
-
|
|
392
|
-
privacy: {
|
|
393
|
-
eyebrow: "Privacy",
|
|
394
|
-
title: "Privacy Policy",
|
|
395
|
-
lastUpdated: "1 May 2026",
|
|
396
|
-
sections: [
|
|
397
|
-
{
|
|
398
|
-
heading: "What we collect",
|
|
399
|
-
body: "We collect only what we need to fulfil your order: your name, phone, delivery address, email, and the items in your order. Payment details are processed by our payment partners (Paystack, Stripe) and never stored on our servers.",
|
|
400
|
-
},
|
|
401
|
-
{
|
|
402
|
-
heading: "How we use it",
|
|
403
|
-
body: {
|
|
404
|
-
intro: "We use your data to:",
|
|
405
|
-
bullets: [
|
|
406
|
-
"Prepare, deliver, and confirm your order.",
|
|
407
|
-
"Send order updates by SMS and email.",
|
|
408
|
-
"Send occasional product news — only if you opted in. Unsubscribe anytime in one click.",
|
|
409
|
-
"Analyse aggregated, anonymised browsing patterns so we can improve the site.",
|
|
410
|
-
],
|
|
411
|
-
},
|
|
412
|
-
},
|
|
413
|
-
{
|
|
414
|
-
heading: "Who we share it with",
|
|
415
|
-
body: "We share data only with the partners required to fulfil your order: payment processors (Paystack, Stripe), delivery riders, and our email/SMS providers. We do not sell or rent personal data to third parties — ever.",
|
|
416
|
-
},
|
|
417
|
-
{
|
|
418
|
-
heading: "Cookies",
|
|
419
|
-
body: "We use a small number of strictly-necessary cookies to keep your cart working and your session signed in. We don't use third-party advertising or tracking cookies.",
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
heading: "Your rights",
|
|
423
|
-
body: "Under the Ghana Data Protection Act, 2012 (Act 843), you have the right to access the data we hold about you, correct it, or have it deleted. Email privacy@akuasbakery.test and we'll respond within 14 days.",
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
heading: "Retention",
|
|
427
|
-
body: "We keep order records for 7 years to comply with Ghanaian tax law. Marketing-list opt-ins are kept until you unsubscribe.",
|
|
428
|
-
},
|
|
429
|
-
{
|
|
430
|
-
heading: "Changes",
|
|
431
|
-
body: "If we make material changes to this policy, we'll email customers on our marketing list and update the \"last updated\" date above.",
|
|
432
|
-
},
|
|
433
|
-
],
|
|
434
|
-
},
|
|
435
|
-
|
|
436
|
-
shipping: {
|
|
437
|
-
eyebrow: "Shipping",
|
|
438
|
-
title: "Shipping & Pickup",
|
|
439
|
-
lastUpdated: "1 May 2026",
|
|
440
|
-
sections: [
|
|
441
|
-
{ heading: "Same-day Greater Accra", body: "Orders placed before 2pm are delivered the same day. Free over GH₵150; GH₵25 below." },
|
|
442
|
-
{ heading: "Outside Accra", body: "Next-day shipping by partner courier. Rates and ETA computed at checkout based on your address." },
|
|
443
|
-
{ heading: "Pickup", body: "Available 8am–8pm at our East Legon location, Tuesday through Sunday. Choose 'Pickup' at checkout — order is boxed and ready within 30 minutes of confirmation." },
|
|
444
|
-
{ heading: "Custom-cake delivery", body: "All custom cakes are hand-delivered. We coordinate the time window with you 24 hours before the event." },
|
|
445
|
-
],
|
|
446
|
-
},
|
|
447
|
-
|
|
448
|
-
returns: {
|
|
449
|
-
eyebrow: "Returns",
|
|
450
|
-
title: "Returns & Refunds",
|
|
451
|
-
lastUpdated: "1 May 2026",
|
|
452
|
-
sections: [
|
|
453
|
-
{ heading: "Baked goods", body: "We don't accept returns on baked goods for food-safety reasons. If anything is wrong with your order — quality, accuracy, or freshness — message us within 24 hours and we'll replace, refund, or credit your account. Your choice." },
|
|
454
|
-
{ heading: "Merchandise", body: "Aprons, totes, eBooks, and gift cards: 14 days, no questions asked, on unopened items." },
|
|
455
|
-
{ heading: "How to start", body: "Email hello@akuasbakery.test with your order number and what's wrong. We respond within 24 hours." },
|
|
456
|
-
],
|
|
457
|
-
},
|
|
458
|
-
|
|
459
|
-
accessibility: {
|
|
460
|
-
eyebrow: "Accessibility",
|
|
461
|
-
title: "Accessibility Statement",
|
|
462
|
-
lastUpdated: "1 May 2026",
|
|
463
|
-
sections: [
|
|
464
|
-
{ heading: "Our commitment", body: "We're committed to making this site usable by everyone, including people who use screen readers, keyboard navigation, or assistive devices. We aim for WCAG 2.1 AA compliance and test against it regularly." },
|
|
465
|
-
{ heading: "What we've done", body: { intro: "Specifically, we've:", bullets: [
|
|
466
|
-
"Maintained a minimum colour contrast of 4.5:1 on body text.",
|
|
467
|
-
"Ensured every interactive element is reachable by keyboard.",
|
|
468
|
-
"Labelled images and icons for screen-reader users.",
|
|
469
|
-
"Kept focus indicators visible at all times.",
|
|
470
|
-
] } },
|
|
471
|
-
{ heading: "Reporting issues", body: "If you encounter a barrier, email accessibility@akuasbakery.test. We respond within 5 business days." },
|
|
472
|
-
],
|
|
473
|
-
},
|
|
474
|
-
|
|
475
|
-
account: {
|
|
476
|
-
loginEyebrow: "Welcome back",
|
|
477
|
-
loginTitle: "Sign in to your account",
|
|
478
|
-
loginSubtitle: "Pick up where you left off — orders, addresses, and your subscription, all in one place.",
|
|
479
|
-
signupEyebrow: "Welcome",
|
|
480
|
-
signupTitle: "Create a baker's account",
|
|
481
|
-
signupSubtitle: "Save your favourite loaves, track orders, and get first dibs on seasonal drops.",
|
|
482
|
-
accountEyebrow: "Your account",
|
|
483
|
-
accountTitle: "Welcome back",
|
|
484
|
-
},
|
|
485
|
-
|
|
486
|
-
contactPage: {
|
|
487
|
-
eyebrow: "Contact",
|
|
488
|
-
title: "We'd love to hear from you.",
|
|
489
|
-
body: "Bug, idea, special request, or just hello — message us and a real human will reply within 24 hours.",
|
|
490
|
-
reasons: ["General question", "An order issue", "Custom cake enquiry", "Press / partnerships", "Wholesale", "Something else"],
|
|
491
|
-
directLines: [
|
|
492
|
-
{ label: "Email", value: "hello@akuasbakery.test", href: "mailto:hello@akuasbakery.test" },
|
|
493
|
-
{ label: "Phone", value: "+233 244 000 000", href: "tel:+233244000000" },
|
|
494
|
-
{ label: "WhatsApp", value: "+233 244 000 000", href: "https://wa.me/233244000000" },
|
|
495
|
-
],
|
|
496
|
-
},
|
|
497
|
-
|
|
498
|
-
trackOrder: {
|
|
499
|
-
eyebrow: "Track an order",
|
|
500
|
-
title: "Where's my loaf?",
|
|
501
|
-
body: "Enter your order number and the email you used at checkout. We'll show you the latest status, the rider's contact, and the live ETA.",
|
|
502
|
-
},
|
|
503
|
-
|
|
504
|
-
footer: {
|
|
505
|
-
blurb:
|
|
506
|
-
"Family-run bakery in East Legon. Sourdough, croissants, layered cakes — handcrafted since 2018, delivered across Accra.",
|
|
507
|
-
sitemap: [
|
|
508
|
-
{
|
|
509
|
-
title: "Shop",
|
|
510
|
-
links: [
|
|
511
|
-
{ label: "All products", href: "/shop" },
|
|
512
|
-
{ label: "Breads", href: "/categories/breads" },
|
|
513
|
-
{ label: "Pastries", href: "/categories/pastries" },
|
|
514
|
-
{ label: "Cakes", href: "/categories/cakes" },
|
|
515
|
-
{ label: "Drinks", href: "/categories/drinks" },
|
|
516
|
-
{ label: "Merch & More", href: "/categories/merch" },
|
|
517
|
-
{ label: "Classes & Stays", href: "/categories/classes" },
|
|
518
|
-
],
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
title: "Bakery",
|
|
522
|
-
links: [
|
|
523
|
-
{ label: "Our story", href: "/about" },
|
|
524
|
-
{ label: "FAQ", href: "/faq" },
|
|
525
|
-
{ label: "Visit us", href: "/about" },
|
|
526
|
-
{ label: "Wholesale", href: "/categories/merch" },
|
|
527
|
-
],
|
|
528
|
-
},
|
|
529
|
-
{
|
|
530
|
-
title: "Help",
|
|
531
|
-
links: [
|
|
532
|
-
{ label: "Contact", href: "/contact" },
|
|
533
|
-
{ label: "Track an order", href: "/track-order" },
|
|
534
|
-
{ label: "Shipping", href: "/shipping" },
|
|
535
|
-
{ label: "Returns", href: "/returns" },
|
|
536
|
-
{ label: "FAQ", href: "/faq" },
|
|
537
|
-
],
|
|
538
|
-
},
|
|
539
|
-
{
|
|
540
|
-
title: "Account",
|
|
541
|
-
links: [
|
|
542
|
-
{ label: "Sign in", href: "/login" },
|
|
543
|
-
{ label: "Create account", href: "/signup" },
|
|
544
|
-
{ label: "Your orders", href: "/account/orders" },
|
|
545
|
-
{ label: "Settings", href: "/account/settings" },
|
|
546
|
-
],
|
|
547
|
-
},
|
|
548
|
-
{
|
|
549
|
-
title: "Legal",
|
|
550
|
-
links: [
|
|
551
|
-
{ label: "Terms of Service", href: "/terms" },
|
|
552
|
-
{ label: "Privacy Policy", href: "/privacy" },
|
|
553
|
-
{ label: "Accessibility", href: "/accessibility" },
|
|
554
|
-
{ label: "Sitemap", href: "/sitemap-page" },
|
|
555
|
-
],
|
|
556
|
-
},
|
|
557
|
-
],
|
|
558
|
-
poweredBy: { label: "Cimplify", href: "https://app.cimplify.io" },
|
|
559
|
-
},
|
|
560
|
-
|
|
561
|
-
llms: {
|
|
562
|
-
summary:
|
|
563
|
-
"Family-run bakery in East Legon, Accra. Sourdough, croissants, cakes, and more — handcrafted since 2018. Same-day delivery across Greater Accra; pickup at 12 Independence Ave.",
|
|
564
|
-
},
|
|
565
|
-
|
|
566
|
-
mock: {
|
|
567
|
-
seed: "default",
|
|
568
|
-
businessId: "bus_default_akua_bakery",
|
|
569
|
-
},
|
|
570
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { useCart } from "@cimplify/sdk/react";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Reactive cart count for the header pill. Subscribes to the SDK cart
|
|
7
|
-
* state — updates immediately on add / remove / quantity change.
|
|
8
|
-
*/
|
|
9
|
-
export function useCartCount(): { count: number } {
|
|
10
|
-
const { itemCount } = useCart();
|
|
11
|
-
return { count: itemCount };
|
|
12
|
-
}
|