cloudcommerce 0.14.0 → 0.15.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/.github/renovate.json +20 -3
- package/.github/workflows/{e2e-tests.yml → test-e2e.yml} +28 -19
- package/.vscode/settings.json +6 -0
- package/CHANGELOG.md +99 -0
- package/action.yml +74 -2
- package/ecomplus-stores/monocard/README.md +1 -1
- package/ecomplus-stores/monocard/README.pt-BR.md +1 -1
- package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +2 -3
- package/ecomplus-stores/monocard/functions/ssr/uno.config.cjs +3 -3
- package/ecomplus-stores/tia-sonia/README.md +1 -1
- package/ecomplus-stores/tia-sonia/README.pt-BR.md +1 -1
- package/ecomplus-stores/tia-sonia/functions/ssr/tailwind.config.cjs +2 -3
- package/ecomplus-stores/tia-sonia/functions/ssr/uno.config.cjs +3 -3
- package/package.json +14 -14
- package/packages/api/lib/api.d.ts +13 -12
- package/packages/api/lib/api.js +51 -29
- package/packages/api/lib/api.js.map +1 -1
- package/packages/api/package.json +3 -3
- package/packages/api/src/api.ts +52 -22
- package/packages/api/tests/index.test.ts +18 -3
- package/packages/api/{src/types → types}/brands.d.ts +1 -1
- package/packages/api/{lib/types → types}/carts.d.ts +5 -5
- package/packages/api/{src/types → types}/categories.d.ts +2 -2
- package/packages/api/{src/types → types}/collections.d.ts +2 -2
- package/packages/api/{src/types → types}/customers.d.ts +1 -1
- package/packages/api/{src/types → types}/grids.d.ts +1 -1
- package/packages/api/{lib/types → types}/orders.d.ts +13 -13
- package/packages/api/{lib/types → types}/products.d.ts +10 -10
- package/packages/api/{src/types.ts → types.d.ts} +254 -31
- package/packages/api/types.ts +1 -1
- package/packages/apps/affilate-program/CHANGELOG.md +1 -0
- package/packages/apps/affilate-program/README.md +1 -0
- package/packages/apps/affilate-program/lib/affilate-program.js +9 -0
- package/packages/apps/affilate-program/lib/affilate-program.js.map +1 -0
- package/packages/apps/affilate-program/lib/events-to-affilate-program.js +154 -0
- package/packages/apps/affilate-program/lib/events-to-affilate-program.js.map +1 -0
- package/packages/apps/affilate-program/lib/index.js +2 -0
- package/packages/apps/affilate-program/lib/index.js.map +1 -0
- package/packages/apps/affilate-program/package.json +30 -0
- package/packages/apps/affilate-program/src/affilate-program.ts +14 -0
- package/packages/apps/affilate-program/src/events-to-affilate-program.ts +184 -0
- package/packages/apps/affilate-program/src/index.ts +1 -0
- package/packages/apps/affilate-program/tsconfig.json +3 -0
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-payment/lib/custom-payment-create-transaction.d.ts +4 -0
- package/packages/apps/custom-payment/lib/custom-payment.d.ts +4 -0
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +4 -4
- package/packages/apps/discounts/lib-mjs/apply-discount.mjs +27 -2
- package/packages/apps/discounts/lib-mjs/helpers.mjs +4 -2
- package/packages/apps/discounts/package.json +2 -2
- package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -1
- package/packages/apps/emails/package.json +3 -3
- package/packages/apps/emails/src/functios-lib/utils.ts +2 -1
- package/packages/apps/fb-conversions/lib/fb-conversions-events.js +20 -6
- package/packages/apps/fb-conversions/lib/fb-conversions-events.js.map +1 -1
- package/packages/apps/fb-conversions/package.json +3 -3
- package/packages/apps/fb-conversions/src/fb-conversions-events.ts +21 -6
- package/packages/apps/flash-courier/CHANGELOG.md +1 -0
- package/packages/apps/flash-courier/README.md +1 -0
- package/packages/apps/flash-courier/events.js +1 -0
- package/packages/apps/flash-courier/lib/flash-courier-events.d.ts +5 -0
- package/packages/apps/flash-courier/lib/flash-courier-events.js +14 -0
- package/packages/apps/flash-courier/lib/flash-courier-events.js.map +1 -0
- package/packages/apps/flash-courier/lib/flash-courier.d.ts +2 -0
- package/packages/apps/flash-courier/lib/flash-courier.js +6 -0
- package/packages/apps/flash-courier/lib/flash-courier.js.map +1 -0
- package/packages/apps/flash-courier/lib/index.d.ts +1 -0
- package/packages/apps/flash-courier/lib/index.js +2 -0
- package/packages/apps/flash-courier/lib/index.js.map +1 -0
- package/packages/apps/flash-courier/lib-mjs/calculate-flash-courier.mjs +246 -0
- package/packages/apps/flash-courier/lib-mjs/update-tracking.mjs +176 -0
- package/packages/apps/flash-courier/package.json +34 -0
- package/packages/apps/flash-courier/src/flash-courier-events.ts +13 -0
- package/packages/apps/flash-courier/src/flash-courier.ts +7 -0
- package/packages/apps/flash-courier/src/index.ts +1 -0
- package/packages/apps/flash-courier/tsconfig.json +6 -0
- package/packages/apps/frenet/lib/functions-lib/database.d.ts +4 -3
- package/packages/apps/frenet/lib/functions-lib/database.js.map +1 -1
- package/packages/apps/frenet/lib/functions-lib/update-fulfillments.d.ts +3 -2
- package/packages/apps/frenet/lib/functions-lib/update-fulfillments.js.map +1 -1
- package/packages/apps/frenet/lib-mjs/calculate-frenet.mjs +13 -6
- package/packages/apps/frenet/package.json +3 -3
- package/packages/apps/frenet/src/functions-lib/database.ts +4 -3
- package/packages/apps/frenet/src/functions-lib/update-fulfillments.ts +2 -1
- package/packages/apps/galaxpay/lib/functions-lib/all-parses.js +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/all-parses.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js +18 -2
- package/packages/apps/galaxpay/lib/functions-lib/ecom/events-to-galaxpay.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/auth/create-access.d.ts +2 -2
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.d.ts +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/handle-plans.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js +19 -2
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/update-subscription.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js +18 -2
- package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -1
- package/packages/apps/galaxpay/lib/functions-lib/utils.js +3 -3
- package/packages/apps/galaxpay/lib/functions-lib/utils.js.map +1 -1
- package/packages/apps/galaxpay/lib/galaxpay-create-transaction.d.ts +4 -0
- package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js +19 -3
- package/packages/apps/galaxpay/lib/galaxpay-create-transaction.js.map +1 -1
- package/packages/apps/galaxpay/lib/galaxpay-list-payments.js +17 -1
- package/packages/apps/galaxpay/lib/galaxpay-list-payments.js.map +1 -1
- package/packages/apps/galaxpay/lib/galaxpay.d.ts +4 -0
- package/packages/apps/galaxpay/package.json +3 -3
- package/packages/apps/galaxpay/src/functions-lib/all-parses.ts +1 -1
- package/packages/apps/galaxpay/src/functions-lib/ecom/events-to-galaxpay.ts +21 -2
- package/packages/apps/galaxpay/src/functions-lib/galaxpay/auth/create-access.ts +2 -2
- package/packages/apps/galaxpay/src/functions-lib/galaxpay/handle-plans.ts +1 -2
- package/packages/apps/galaxpay/src/functions-lib/galaxpay/update-subscription.ts +21 -2
- package/packages/apps/galaxpay/src/functions-lib/galaxpay/webhook.ts +23 -5
- package/packages/apps/galaxpay/src/functions-lib/utils.ts +3 -3
- package/packages/apps/galaxpay/src/galaxpay-create-transaction.ts +19 -2
- package/packages/apps/galaxpay/src/galaxpay-list-payments.ts +19 -1
- package/packages/apps/google-analytics/lib/google-analytics-events.js +20 -4
- package/packages/apps/google-analytics/lib/google-analytics-events.js.map +1 -1
- package/packages/apps/google-analytics/package.json +3 -3
- package/packages/apps/google-analytics/src/google-analytics-events.ts +21 -4
- package/packages/apps/infinitepay/lib/functions-lib/add-installments.d.ts +1 -1
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.d.ts +2 -2
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js +12 -8
- package/packages/apps/infinitepay/lib/functions-lib/ip-auth/create-access.js.map +1 -1
- package/packages/apps/infinitepay/lib/functions-lib/utils.js +3 -3
- package/packages/apps/infinitepay/lib/functions-lib/utils.js.map +1 -1
- package/packages/apps/infinitepay/lib/infinitepay.d.ts +4 -0
- package/packages/apps/infinitepay/lib/ip-create-transaction.d.ts +4 -0
- package/packages/apps/infinitepay/lib/ip-create-transaction.js +18 -2
- package/packages/apps/infinitepay/lib/ip-create-transaction.js.map +1 -1
- package/packages/apps/infinitepay/lib/ip-list-payments.js +19 -3
- package/packages/apps/infinitepay/lib/ip-list-payments.js.map +1 -1
- package/packages/apps/infinitepay/lib/ip-webhook.js.map +1 -1
- package/packages/apps/infinitepay/package.json +3 -3
- package/packages/apps/infinitepay/src/functions-lib/add-installments.ts +1 -1
- package/packages/apps/infinitepay/src/functions-lib/ip-auth/create-access.ts +14 -10
- package/packages/apps/infinitepay/src/functions-lib/utils.ts +3 -3
- package/packages/apps/infinitepay/src/ip-create-transaction.ts +20 -2
- package/packages/apps/infinitepay/src/ip-list-payments.ts +21 -3
- package/packages/apps/infinitepay/src/ip-webhook.ts +4 -5
- package/packages/apps/jadlog/lib-mjs/calculate-jadlog.mjs +19 -6
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.d.ts +4 -0
- package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -1
- package/packages/apps/loyalty-points/lib/loyalty-points.d.ts +4 -0
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/loyalty-points/src/functions-lib/handle-loyalty-points-event.ts +2 -2
- package/packages/apps/loyalty-points/src/loyalty-create-transaction.ts +4 -3
- package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js +18 -14
- package/packages/apps/melhor-envio/lib/functions-lib/events-to-melhor-envio.js.map +1 -1
- package/packages/apps/melhor-envio/lib-mjs/calculate-melhor-envio.mjs +21 -15
- package/packages/apps/melhor-envio/package.json +3 -3
- package/packages/apps/melhor-envio/src/functions-lib/events-to-melhor-envio.ts +34 -22
- package/packages/apps/mercadopago/lib/mercadopago.d.ts +4 -0
- package/packages/apps/mercadopago/lib/mp-create-transaction.d.ts +4 -0
- package/packages/apps/mercadopago/lib/mp-create-transaction.js +14 -1
- package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
- package/packages/apps/mercadopago/lib/mp-list-payments.js +16 -7
- package/packages/apps/mercadopago/lib/mp-list-payments.js.map +1 -1
- package/packages/apps/mercadopago/lib/mp-webhook.js +10 -3
- package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
- package/packages/apps/mercadopago/package.json +3 -3
- package/packages/apps/mercadopago/src/mp-create-transaction.ts +15 -1
- package/packages/apps/mercadopago/src/mp-list-payments.ts +17 -7
- package/packages/apps/mercadopago/src/mp-webhook.ts +11 -3
- package/packages/apps/pagarme/assets/onload-expression.js +22 -8
- package/packages/apps/pagarme/assets/onload-expression.min.js +1 -1
- package/packages/apps/pagarme/lib/functions-lib/add-installments.d.ts +3 -3
- package/packages/apps/pagarme/lib/functions-lib/add-installments.js +5 -1
- package/packages/apps/pagarme/lib/functions-lib/add-installments.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme-create-transaction.d.ts +4 -0
- package/packages/apps/pagarme/lib/pagarme-create-transaction.js +27 -2
- package/packages/apps/pagarme/lib/pagarme-create-transaction.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme-list-payments.js +28 -6
- package/packages/apps/pagarme/lib/pagarme-list-payments.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme-webhook.js +10 -2
- package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -1
- package/packages/apps/pagarme/lib/pagarme.d.ts +4 -0
- package/packages/apps/pagarme/package.json +3 -3
- package/packages/apps/pagarme/src/functions-lib/add-installments.ts +8 -2
- package/packages/apps/pagarme/src/pagarme-create-transaction.ts +28 -2
- package/packages/apps/pagarme/src/pagarme-list-payments.ts +37 -6
- package/packages/apps/pagarme/src/pagarme-webhook.ts +11 -2
- package/packages/apps/paghiper/lib/functions-lib/handle-webhook.js +11 -3
- package/packages/apps/paghiper/lib/functions-lib/handle-webhook.js.map +1 -1
- package/packages/apps/paghiper/lib/paghiper-create-transaction.d.ts +4 -0
- package/packages/apps/paghiper/lib/paghiper-create-transaction.js +9 -1
- package/packages/apps/paghiper/lib/paghiper-create-transaction.js.map +1 -1
- package/packages/apps/paghiper/lib/paghiper-list-payments.js +11 -4
- package/packages/apps/paghiper/lib/paghiper-list-payments.js.map +1 -1
- package/packages/apps/paghiper/lib/paghiper.d.ts +4 -0
- package/packages/apps/paghiper/package.json +3 -3
- package/packages/apps/paghiper/src/functions-lib/handle-webhook.ts +13 -4
- package/packages/apps/paghiper/src/paghiper-create-transaction.ts +9 -1
- package/packages/apps/paghiper/src/paghiper-list-payments.ts +15 -8
- package/packages/apps/pix/lib/functions-lib/get-certificate.js +3 -3
- package/packages/apps/pix/lib/functions-lib/get-certificate.js.map +1 -1
- package/packages/apps/pix/lib/pix-create-transaction.d.ts +4 -0
- package/packages/apps/pix/lib/pix-create-transaction.js +23 -3
- package/packages/apps/pix/lib/pix-create-transaction.js.map +1 -1
- package/packages/apps/pix/lib/pix-list-payments.js +23 -1
- package/packages/apps/pix/lib/pix-list-payments.js.map +1 -1
- package/packages/apps/pix/lib/pix.d.ts +4 -0
- package/packages/apps/pix/package.json +3 -3
- package/packages/apps/pix/src/functions-lib/get-certificate.ts +3 -3
- package/packages/apps/pix/src/pix-create-transaction.ts +26 -3
- package/packages/apps/pix/src/pix-list-payments.ts +26 -1
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +8 -7
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +4 -2
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/package.json +4 -4
- package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +9 -9
- package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +4 -2
- package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +1 -1
- package/packages/apps/webhooks/lib/events-to-webhooks-app.js +12 -8
- package/packages/apps/webhooks/lib/events-to-webhooks-app.js.map +1 -1
- package/packages/apps/webhooks/package.json +3 -3
- package/packages/apps/webhooks/src/events-to-webhooks-app.ts +22 -12
- package/packages/cli/package.json +1 -1
- package/packages/config/lib/config.js +2 -4
- package/packages/config/lib/config.js.map +1 -1
- package/packages/config/lib/env.js +2 -4
- package/packages/config/lib/env.js.map +1 -1
- package/packages/config/package.json +1 -1
- package/packages/config/src/config.ts +4 -4
- package/packages/config/src/env.ts +4 -4
- package/packages/emails/package.json +3 -3
- package/packages/emails/tests/sendgrid.test.ts +2 -2
- package/packages/emails/tests/smtp.test.ts +2 -2
- package/packages/events/lib/firebase.js +4 -0
- package/packages/events/lib/firebase.js.map +1 -1
- package/packages/events/package.json +5 -3
- package/packages/events/src/firebase.ts +4 -0
- package/packages/feeds/lib/firebase.js +3 -3
- package/packages/feeds/lib/firebase.js.map +1 -1
- package/packages/feeds/package.json +2 -2
- package/packages/feeds/src/firebase.ts +5 -3
- package/packages/firebase/lib/config.d.ts +11 -1
- package/packages/firebase/lib/config.js +12 -0
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/helpers/update-app-data.d.ts +1 -1
- package/packages/firebase/package.json +4 -4
- package/packages/firebase/src/config.ts +14 -1
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/call-app-module.js +5 -0
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/lib/firebase/checkout.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/fix-items.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/handle-order-transaction.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/new-order.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js +1 -1
- package/packages/modules/lib/firebase/functions-checkout/request-to-module.js.map +1 -1
- package/packages/modules/lib/firebase/functions-checkout/utils.js +1 -1
- package/packages/modules/lib/firebase/functions-checkout/utils.js.map +1 -1
- package/packages/modules/package.json +6 -5
- package/packages/modules/schemas/@checkout.cjs +5 -0
- package/packages/modules/schemas/apply_discount.cjs +6 -0
- package/packages/modules/schemas/create_transaction.cjs +22 -0
- package/packages/modules/src/firebase/call-app-module.ts +5 -0
- package/packages/modules/src/firebase/checkout.ts +9 -9
- package/packages/modules/src/firebase/functions-checkout/fix-items.ts +3 -3
- package/packages/modules/src/firebase/functions-checkout/handle-order-transaction.ts +8 -8
- package/packages/modules/src/firebase/functions-checkout/new-order.ts +6 -7
- package/packages/modules/src/firebase/functions-checkout/request-to-module.ts +2 -4
- package/packages/modules/src/firebase/functions-checkout/utils.ts +23 -23
- package/packages/modules/src/types/index.d.ts +4 -8
- package/packages/modules/tests/modules.test.mjs +1 -1
- package/packages/passport/package.json +3 -3
- package/packages/ssr/lib/firebase/serve-storefront.js +2 -2
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/package.json +10 -10
- package/packages/ssr/src/firebase/serve-storefront.ts +2 -2
- package/packages/storefront/.base.eslintrc.cjs +4 -0
- package/packages/storefront/.eslintrc.cjs +4 -1
- package/packages/storefront/astro.config.mjs +6 -2
- package/packages/storefront/config/{storefront.cms.cjs → storefront.cms.js} +6 -5
- package/packages/storefront/{storefront.config.mjs → config/storefront.config.mjs} +5 -5
- package/packages/storefront/config/storefront.tailwind.cjs +266 -0
- package/packages/storefront/config/storefront.unocss.cjs +139 -0
- package/packages/storefront/dist/client/_astro/Carousel.93c2309b.js +1 -0
- package/packages/storefront/dist/client/_astro/HeroSlider.c5b673b3.js +1 -0
- package/packages/storefront/dist/client/_astro/{PitchBar.94f525f9.js → PitchBar.d0e3362e.js} +1 -1
- package/packages/storefront/dist/client/_astro/Prices.51598206.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.5186c09f.js +1 -0
- package/packages/storefront/dist/client/_astro/ProductShelf.d90bfc6e.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.06c4c46e.js +4 -0
- package/packages/storefront/dist/client/_astro/_...slug_.ab554647.css +1 -0
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.8870d8dc.js +1 -0
- package/packages/storefront/dist/client/_astro/api.7f62c1ff.js +1 -0
- package/packages/storefront/dist/client/_astro/client.06720904.js +1 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.d513d4b8.js → firebase-app.4381f424.js} +17 -4
- package/packages/storefront/dist/client/_astro/{format-money.1a95a3b5.js → format-money.3868f219.js} +1 -1
- package/packages/storefront/dist/client/_astro/{hoisted.be7b77c7.js → hoisted.6aebc438.js} +1 -1
- package/packages/storefront/dist/client/_astro/img.2ae78c70.js +1 -0
- package/packages/storefront/dist/client/_astro/index.3de006ba.js +1 -0
- package/packages/storefront/dist/client/_astro/{modules-info.bc2146d9.js → modules-info.c65d970c.js} +1 -1
- package/packages/storefront/dist/client/_astro/{runtime-dom.esm-bundler.e2053595.js → runtime-dom.esm-bundler.7a95af90.js} +1 -1
- package/packages/storefront/dist/client/_astro/{workbox-window.prod.es5.dc90f814.js → workbox-window.prod.es5.a7b12eab.js} +2 -2
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/client/{workbox-e0d788d4.js → workbox-5e0bf4e4.js} +1 -1
- package/packages/storefront/dist/server/_empty-middleware.mjs +3 -0
- package/packages/storefront/dist/server/chunks/_...51f243e0.mjs +35 -0
- package/packages/storefront/dist/server/chunks/account@_@astro.70d0a2b6.mjs +35 -0
- package/packages/storefront/dist/server/chunks/{astro.7ac24846.mjs → astro.c449fda8.mjs} +1479 -1217
- package/packages/storefront/dist/server/chunks/endpoint@_@js.58e19bda.mjs +35 -0
- package/packages/storefront/dist/server/chunks/fallback@_@astro.6c6e2bf9.mjs +35 -0
- package/packages/storefront/dist/server/chunks/index@_@astro.09a10813.mjs +35 -0
- package/packages/storefront/dist/server/chunks/index@_@astro.81422b02.mjs +35 -0
- package/packages/storefront/dist/server/chunks/pages/{all.a42f9fc6.mjs → _...slug_.astro.5667273a.mjs} +215 -1017
- package/packages/storefront/dist/server/chunks/pages/account.astro.72dc24f9.mjs +23 -0
- package/packages/storefront/dist/server/chunks/pages/endpoint.js.5d128d9d.mjs +119 -0
- package/packages/storefront/dist/server/chunks/pages/fallback.astro.72b8d520.mjs +64 -0
- package/packages/storefront/dist/server/chunks/pages/index.astro.e80eea52.mjs +1098 -0
- package/packages/storefront/dist/server/entry.mjs +57 -313
- package/packages/storefront/dist/server/renderers.mjs +333 -0
- package/packages/storefront/package.json +18 -21
- package/packages/storefront/scripts/prepare-monorepo.sh +0 -1
- package/packages/storefront/server.d.ts +8 -1
- package/packages/storefront/src/env.d.ts +0 -1
- package/packages/storefront/src/helpers/afetch.ts +2 -2
- package/packages/storefront/src/lib/assets/components.css +28 -0
- package/packages/storefront/src/lib/components/Carousel.vue +9 -23
- package/packages/storefront/src/lib/components/CarouselControl.vue +2 -2
- package/packages/storefront/src/lib/components/globals/AImg.vue +4 -7
- package/packages/storefront/src/lib/components/globals/ALink.vue +1 -1
- package/packages/storefront/src/lib/components/globals/Fade.vue +5 -30
- package/packages/storefront/src/lib/composables/use-hero-slider.ts +2 -0
- package/packages/storefront/src/lib/composables/use-prices.ts +4 -1
- package/packages/storefront/src/lib/composables/use-product-card.ts +104 -0
- package/packages/storefront/src/lib/composables/use-product-shelf.ts +91 -0
- package/packages/storefront/src/lib/composables/use-shop-header-submenu.ts +2 -0
- package/packages/storefront/src/lib/composables/use-sticky-header.ts +2 -0
- package/packages/storefront/src/lib/content.d.ts +3 -4
- package/packages/storefront/src/lib/layouts/Base.astro +5 -7
- package/packages/storefront/src/lib/layouts/BaseBody.astro +4 -8
- package/packages/storefront/src/lib/layouts/BaseHead.astro +1 -7
- package/packages/storefront/src/lib/layouts/BaseStateJson.astro +11 -18
- package/packages/storefront/src/lib/layouts/{sections/use-hero-section.ts → main/use-page-hero.ts} +7 -8
- package/packages/storefront/src/lib/layouts/main/use-page-sections.ts +98 -0
- package/packages/storefront/src/lib/layouts/use-page-layout.ts +4 -4
- package/packages/storefront/src/lib/ssr-context.ts +26 -19
- package/packages/storefront/src/lib/state/customer-session.ts +1 -1
- package/packages/storefront/tailwind.config.cjs +2 -225
- package/packages/storefront/uno.config.cjs +2 -141
- package/packages/types/index.ts +5 -1
- package/packages/types/modules/@checkout:params.d.ts +4 -0
- package/packages/types/modules/apply_discount:params.d.ts +4 -0
- package/packages/types/modules/create_transaction:response.d.ts +15 -0
- package/packages/types/package.json +1 -1
- package/packages/api/lib/types/brands.d.ts +0 -157
- package/packages/api/lib/types/categories.d.ts +0 -199
- package/packages/api/lib/types/collections.d.ts +0 -159
- package/packages/api/lib/types/customers.d.ts +0 -523
- package/packages/api/lib/types/grids.d.ts +0 -157
- package/packages/api/lib/types.d.ts +0 -132
- package/packages/api/lib/types.js +0 -2
- package/packages/api/lib/types.js.map +0 -1
- package/packages/api/src/types/applications.d.ts +0 -165
- package/packages/api/src/types/authentications.d.ts +0 -107
- package/packages/api/src/types/carts.d.ts +0 -360
- package/packages/api/src/types/orders.d.ts +0 -1720
- package/packages/api/src/types/products.d.ts +0 -1424
- package/packages/api/src/types/stores.d.ts +0 -123
- package/packages/storefront/.astro/types.d.ts +0 -117
- package/packages/storefront/config/storefront.cms.mjs +0 -72
- package/packages/storefront/dist/client/_astro/Carousel.e137cab2.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.d677b64a.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.b8d4b8e4.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.f12e72f6.js +0 -4
- package/packages/storefront/dist/client/_astro/_...slug_.48ea2ee1.css +0 -1
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.116fec5b.js +0 -1
- package/packages/storefront/dist/client/_astro/client.c2102734.js +0 -1
- package/packages/storefront/dist/client/_astro/index.1190ddf5.js +0 -1
- package/packages/storefront/dist/client/_astro/index.1eaf97c3.css +0 -1
- package/packages/storefront/dist/client/_astro/index.e56fc6b3.css +0 -1
- package/packages/storefront/dist/client/_astro/server.1dabec03.css +0 -1
- package/packages/storefront/src/lib/layouts/use-home-main.ts +0 -16
- /package/packages/api/{lib/types → types}/applications.d.ts +0 -0
- /package/packages/api/{lib/types → types}/authentications.d.ts +0 -0
- /package/packages/api/{lib/types → types}/stores.d.ts +0 -0
- /package/packages/storefront/src/lib/assets/{preflight.css → reset.css} +0 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const { resolve: resolvePath } = require('path');
|
|
3
|
+
const deepmerge = require('@fastify/deepmerge')();
|
|
4
|
+
const colors = require('tailwindcss/colors');
|
|
5
|
+
const chroma = require('chroma-js');
|
|
6
|
+
require('./storefront.cms.js');
|
|
7
|
+
|
|
8
|
+
let defaultThemeOptions = {
|
|
9
|
+
baseColor: 'slate',
|
|
10
|
+
successColor: 'emerald',
|
|
11
|
+
warningColor: 'amber',
|
|
12
|
+
dangerColor: 'rose',
|
|
13
|
+
// IntelliSense for UnoCSS icons
|
|
14
|
+
brandIcons: 'fa6-brands',
|
|
15
|
+
brandIconsShortcuts: [
|
|
16
|
+
'facebook',
|
|
17
|
+
'twitter',
|
|
18
|
+
'instagram',
|
|
19
|
+
'linkedin',
|
|
20
|
+
'youtube',
|
|
21
|
+
'google',
|
|
22
|
+
'pinterest',
|
|
23
|
+
'tiktok',
|
|
24
|
+
'telegram',
|
|
25
|
+
'whatsapp',
|
|
26
|
+
'messenger',
|
|
27
|
+
'pix',
|
|
28
|
+
],
|
|
29
|
+
brandLogos: 'logos',
|
|
30
|
+
brandLogosShortcuts: [
|
|
31
|
+
'visa',
|
|
32
|
+
'mastercard',
|
|
33
|
+
'paypal',
|
|
34
|
+
'apple-pay',
|
|
35
|
+
'google-pay',
|
|
36
|
+
'amex',
|
|
37
|
+
'elo',
|
|
38
|
+
'hipercard',
|
|
39
|
+
'dinersclub',
|
|
40
|
+
],
|
|
41
|
+
generalIcons: 'heroicons',
|
|
42
|
+
iconAliases: {
|
|
43
|
+
'shopping-cart': 'shopping-bag',
|
|
44
|
+
cashback: 'arrow-uturn-left',
|
|
45
|
+
menu: 'bars-3-bottom-left',
|
|
46
|
+
search: 'magnifying-glass',
|
|
47
|
+
account: 'user-circle',
|
|
48
|
+
close: 'x-mark',
|
|
49
|
+
logout: 'arrow-right-on-rectangle',
|
|
50
|
+
favorites: 'heart',
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
if (globalThis.$storefrontThemeOptions) {
|
|
54
|
+
defaultThemeOptions = deepmerge(defaultThemeOptions, globalThis.$storefrontThemeOptions);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const { primaryColor, secondaryColor } = global.__storefrontCMS(fs, resolvePath);
|
|
58
|
+
const brandColors = {
|
|
59
|
+
primary: primaryColor,
|
|
60
|
+
secondary: secondaryColor || primaryColor,
|
|
61
|
+
...globalThis.$storefrontBrandColors,
|
|
62
|
+
};
|
|
63
|
+
const brandColorsPalletes = {};
|
|
64
|
+
const onBrandColors = {};
|
|
65
|
+
Object.keys(brandColors).forEach((colorName) => {
|
|
66
|
+
const hex = brandColors[colorName];
|
|
67
|
+
const color = chroma(hex);
|
|
68
|
+
let subtle;
|
|
69
|
+
let bold;
|
|
70
|
+
const luminance = color.luminance();
|
|
71
|
+
if (luminance >= 0.1) {
|
|
72
|
+
subtle = chroma(hex).brighten(1.5);
|
|
73
|
+
bold = chroma(hex).darken(1.25);
|
|
74
|
+
} else if (luminance > 0.03) {
|
|
75
|
+
subtle = chroma(hex).brighten();
|
|
76
|
+
bold = chroma(hex).darken();
|
|
77
|
+
} else {
|
|
78
|
+
subtle = chroma(hex).darken();
|
|
79
|
+
bold = chroma(hex).brighten();
|
|
80
|
+
}
|
|
81
|
+
const pallete = {
|
|
82
|
+
subtle: subtle.css(),
|
|
83
|
+
DEFAULT: color.css(),
|
|
84
|
+
bold: bold.css(),
|
|
85
|
+
};
|
|
86
|
+
const scale = chroma.scale([
|
|
87
|
+
chroma(hex).luminance(0.95), // 50
|
|
88
|
+
chroma(hex).luminance(0.84), // 100
|
|
89
|
+
chroma(hex).luminance(0.73), // 200
|
|
90
|
+
chroma(hex).luminance(0.62), // 300
|
|
91
|
+
chroma(hex).luminance(0.49), // 400
|
|
92
|
+
chroma(hex).luminance(0.35), // 500
|
|
93
|
+
chroma(hex).luminance(0.23), // 600
|
|
94
|
+
chroma(hex).luminance(0.15), // 700
|
|
95
|
+
chroma(hex).luminance(0.10), // 800
|
|
96
|
+
chroma(hex).luminance(0.05), // 900
|
|
97
|
+
chroma(hex).luminance(0.02), // 950
|
|
98
|
+
]).colors(11);
|
|
99
|
+
scale.forEach((sHex, index) => {
|
|
100
|
+
let palleteIndex;
|
|
101
|
+
if (index === 0) palleteIndex = '50';
|
|
102
|
+
else if (index === scale.length - 1) palleteIndex = '950';
|
|
103
|
+
else palleteIndex = (100 * index).toString();
|
|
104
|
+
pallete[palleteIndex] = chroma(sHex).css();
|
|
105
|
+
});
|
|
106
|
+
brandColorsPalletes[colorName] = pallete;
|
|
107
|
+
const colorVariants = { color, subtle, bold };
|
|
108
|
+
Object.keys(colorVariants).forEach((tone) => {
|
|
109
|
+
const label = tone === 'color' ? colorName : `${colorName}-${tone}`;
|
|
110
|
+
const lightness = colorVariants[tone].get('lab.l');
|
|
111
|
+
if (lightness > 90) {
|
|
112
|
+
onBrandColors[label] = pallete['800'];
|
|
113
|
+
} else if (lightness > 76) {
|
|
114
|
+
onBrandColors[label] = pallete['900'];
|
|
115
|
+
} else if (lightness > 67) {
|
|
116
|
+
onBrandColors[label] = pallete['950'];
|
|
117
|
+
} else {
|
|
118
|
+
onBrandColors[label] = `var(--c-on-${(lightness > 60 ? 'light' : 'dark')})`;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
const genTailwindConfig = (themeOptions = {}) => {
|
|
124
|
+
const {
|
|
125
|
+
brandIcons,
|
|
126
|
+
brandIconsShortcuts,
|
|
127
|
+
brandLogos,
|
|
128
|
+
brandLogosShortcuts,
|
|
129
|
+
generalIcons,
|
|
130
|
+
baseColor,
|
|
131
|
+
successColor,
|
|
132
|
+
warningColor,
|
|
133
|
+
dangerColor,
|
|
134
|
+
iconAliases,
|
|
135
|
+
} = deepmerge(defaultThemeOptions, themeOptions);
|
|
136
|
+
const config = {
|
|
137
|
+
content: ['./src/**/*.{vue,astro,tsx,jsx,md,html,svelte}'],
|
|
138
|
+
theme: {
|
|
139
|
+
extend: {
|
|
140
|
+
colors: {
|
|
141
|
+
...brandColorsPalletes,
|
|
142
|
+
on: onBrandColors,
|
|
143
|
+
base: typeof baseColor === 'string' ? colors[baseColor] : baseColor,
|
|
144
|
+
success: typeof successColor === 'string' ? colors[successColor] : successColor,
|
|
145
|
+
warning: typeof warningColor === 'string' ? colors[warningColor] : warningColor,
|
|
146
|
+
danger: typeof dangerColor === 'string' ? colors[dangerColor] : dangerColor,
|
|
147
|
+
},
|
|
148
|
+
fontFamily: {
|
|
149
|
+
sans: ['var(--font-sans)'],
|
|
150
|
+
mono: ['var(--font-mono)'],
|
|
151
|
+
brand: ['var(--font-brand, var(--font-sans))'],
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
plugins: [
|
|
156
|
+
({ addUtilities }) => {
|
|
157
|
+
addUtilities({
|
|
158
|
+
...Object.keys(onBrandColors).reduce((utilities, colorLabel) => {
|
|
159
|
+
const [colorName, tone] = colorLabel.split('-');
|
|
160
|
+
const textColor = onBrandColors[colorLabel];
|
|
161
|
+
const backgroundColor = brandColorsPalletes[colorName][tone || 'DEFAULT'];
|
|
162
|
+
utilities[`.${colorLabel}`] = {
|
|
163
|
+
'background-color': `var(--c-${colorLabel}, ${backgroundColor})`,
|
|
164
|
+
color: `var(--c-on-${colorLabel}, ${textColor})`,
|
|
165
|
+
};
|
|
166
|
+
return utilities;
|
|
167
|
+
}, {}),
|
|
168
|
+
...[{
|
|
169
|
+
iconset: generalIcons,
|
|
170
|
+
}, {
|
|
171
|
+
iconset: brandIcons,
|
|
172
|
+
shortcuts: brandIconsShortcuts,
|
|
173
|
+
}, {
|
|
174
|
+
iconset: brandLogos,
|
|
175
|
+
shortcuts: brandLogosShortcuts,
|
|
176
|
+
}].reduce((utilities, { iconset, shortcuts }) => {
|
|
177
|
+
if (iconset) {
|
|
178
|
+
if (!shortcuts) {
|
|
179
|
+
const { icons } = require(`@iconify-json/${iconset}`);
|
|
180
|
+
shortcuts = Object.keys(icons.icons);
|
|
181
|
+
Object.keys(iconAliases).forEach((alias) => {
|
|
182
|
+
shortcuts.push([alias, iconAliases[alias]]);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
shortcuts.forEach((shortcut) => {
|
|
186
|
+
if (typeof shortcut === 'string') {
|
|
187
|
+
utilities[`.i-${shortcut}`] = {
|
|
188
|
+
'--iconify': iconset,
|
|
189
|
+
'--icon': `"${shortcut}"`,
|
|
190
|
+
};
|
|
191
|
+
} else {
|
|
192
|
+
utilities[`.i-${shortcut[0]}`] = {
|
|
193
|
+
'--iconify': iconset,
|
|
194
|
+
'--icon': `"${shortcut[1]}"`,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return utilities;
|
|
200
|
+
}, {}),
|
|
201
|
+
// require('@tailwindcss/typography'),
|
|
202
|
+
// https://github.com/unocss/unocss/tree/main/packages/preset-typography
|
|
203
|
+
...['prose', 'not-prose', 'prose-invert'].reduce((utilities, proseClass) => {
|
|
204
|
+
utilities[`.${proseClass}`] = {
|
|
205
|
+
[`--un-${proseClass}`]: 'default',
|
|
206
|
+
};
|
|
207
|
+
return utilities;
|
|
208
|
+
}, {}),
|
|
209
|
+
});
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
};
|
|
213
|
+
const uiElNames = [];
|
|
214
|
+
try {
|
|
215
|
+
const styleCSSFile = resolvePath(process.env.STOREFRONT_BASE_DIR, 'src/assets/style.css');
|
|
216
|
+
const styleCSS = fs.readFileSync(styleCSSFile, 'utf8');
|
|
217
|
+
// '.ui-btn { color: green }; .ui-title { font-size: 18px }'.split(/\.ui-/i)
|
|
218
|
+
// => [ "", "btn { color: green }; ", "title { font-size: 18px }" ]
|
|
219
|
+
styleCSS.split(/[.=]ui-/).forEach((partCSS, i) => {
|
|
220
|
+
if (i === 0) return;
|
|
221
|
+
const elName = partCSS.replace(/[^\w-].*/g, '');
|
|
222
|
+
if (elName) {
|
|
223
|
+
let [, styles] = partCSS.split(/[{}]/);
|
|
224
|
+
if (!styles && /,[\n\s]+$/.test(partCSS)) {
|
|
225
|
+
styles = styleCSS.split(partCSS)[1]?.split(/[{}]/)[1];
|
|
226
|
+
}
|
|
227
|
+
styles = styles?.replace(/\n/g, ' ').trim().replace(/\s\s/g, ' ') || '';
|
|
228
|
+
// .ui-btn -> .ui-btn-primary
|
|
229
|
+
const parentEl = uiElNames.find((el) => elName.startsWith(`${el.elName}-`));
|
|
230
|
+
if (parentEl) {
|
|
231
|
+
styles = `${parentEl.styles} ${styles}`;
|
|
232
|
+
}
|
|
233
|
+
const uiEl = uiElNames.find((el) => el.elName === elName);
|
|
234
|
+
if (!uiEl) {
|
|
235
|
+
uiElNames.push({ elName, styles });
|
|
236
|
+
} else {
|
|
237
|
+
uiEl.styles += ` ${styles}`;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
} catch {
|
|
242
|
+
//
|
|
243
|
+
}
|
|
244
|
+
if (uiElNames.length) {
|
|
245
|
+
config.plugins.push(({ addUtilities }) => {
|
|
246
|
+
addUtilities(uiElNames.reduce((utilities, { elName, styles }) => {
|
|
247
|
+
utilities[`.ui-${elName}`] = {
|
|
248
|
+
[`--${elName}`]: `"${styles}" /* Consistent UI element from assets/style.css */`,
|
|
249
|
+
};
|
|
250
|
+
return utilities;
|
|
251
|
+
}, {}));
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
if (globalThis.$storefrontTailwindConfig) {
|
|
255
|
+
return deepmerge(config, globalThis.$storefrontTailwindConfig);
|
|
256
|
+
}
|
|
257
|
+
return config;
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
module.exports = {
|
|
261
|
+
genTailwindConfig,
|
|
262
|
+
defaultThemeOptions,
|
|
263
|
+
brandColors,
|
|
264
|
+
brandColorsPalletes,
|
|
265
|
+
onBrandColors,
|
|
266
|
+
};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
const deepmerge = require('@fastify/deepmerge')();
|
|
2
|
+
const {
|
|
3
|
+
defineConfig,
|
|
4
|
+
presetUno,
|
|
5
|
+
presetIcons,
|
|
6
|
+
presetTypography,
|
|
7
|
+
transformerCompileClass,
|
|
8
|
+
transformerDirectives,
|
|
9
|
+
} = require('unocss');
|
|
10
|
+
const {
|
|
11
|
+
genTailwindConfig,
|
|
12
|
+
defaultThemeOptions,
|
|
13
|
+
brandColors,
|
|
14
|
+
brandColorsPalletes,
|
|
15
|
+
onBrandColors,
|
|
16
|
+
} = require('./storefront.tailwind.cjs');
|
|
17
|
+
|
|
18
|
+
const colorCSSVars = {};
|
|
19
|
+
Object.keys(brandColors).forEach((colorName) => {
|
|
20
|
+
Object.keys(brandColorsPalletes[colorName]).forEach((tone) => {
|
|
21
|
+
const cssRGB = brandColorsPalletes[colorName][tone];
|
|
22
|
+
const colorLabel = tone === 'DEFAULT' ? colorName : `${colorName}-${tone}`;
|
|
23
|
+
colorCSSVars[`rgb-${colorLabel}`] = cssRGB.substring(4).replace(')', ''); // rgb(rgb) -> rgb
|
|
24
|
+
if (!/\d/.test(tone)) {
|
|
25
|
+
colorCSSVars[`c-${colorLabel}`] = cssRGB;
|
|
26
|
+
colorCSSVars[`c-on-${colorLabel}`] = onBrandColors[colorLabel];
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
Object.keys(onBrandColors).forEach((colorLabel) => {
|
|
31
|
+
const cssRGB = onBrandColors[colorLabel];
|
|
32
|
+
const [colorName] = colorLabel.split('-');
|
|
33
|
+
const colorCSSVar = Object.keys(colorCSSVars).find((varName) => {
|
|
34
|
+
return `rgb(${colorCSSVars[varName]})` === cssRGB
|
|
35
|
+
&& new RegExp(`${colorName}-\\d`).test(varName);
|
|
36
|
+
});
|
|
37
|
+
if (colorCSSVar) {
|
|
38
|
+
colorCSSVars[`rgb-on-${colorLabel}`] = colorCSSVar;
|
|
39
|
+
} else {
|
|
40
|
+
colorCSSVars[`rgb-on-${colorLabel}`] = cssRGB.startsWith('rgb')
|
|
41
|
+
? cssRGB.substring(4).replace(')', '')
|
|
42
|
+
: cssRGB.replace('--c-', '--rgb-');
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const genUnoCSSConfig = (_tailwindConfig) => {
|
|
47
|
+
const themeOptions = _tailwindConfig?.themeOptions || {};
|
|
48
|
+
const {
|
|
49
|
+
brandIcons,
|
|
50
|
+
brandIconsShortcuts,
|
|
51
|
+
brandLogos,
|
|
52
|
+
brandLogosShortcuts,
|
|
53
|
+
generalIcons,
|
|
54
|
+
iconAliases,
|
|
55
|
+
preflights = [{
|
|
56
|
+
getCSS: () => {
|
|
57
|
+
const strCSSVars = Object.entries(colorCSSVars)
|
|
58
|
+
.map(([varName, value]) => `--${varName}:${value};`)
|
|
59
|
+
.join(' ');
|
|
60
|
+
return `:root { ${strCSSVars} }`;
|
|
61
|
+
},
|
|
62
|
+
}],
|
|
63
|
+
} = deepmerge(defaultThemeOptions, themeOptions);
|
|
64
|
+
const tailwindConfig = _tailwindConfig || genTailwindConfig(themeOptions);
|
|
65
|
+
const rules = [];
|
|
66
|
+
tailwindConfig.plugins?.forEach((plugin) => {
|
|
67
|
+
plugin({
|
|
68
|
+
addUtilities: (utilities) => {
|
|
69
|
+
Object.keys(utilities).forEach((s) => {
|
|
70
|
+
/* Skip icons, custom UI and prose selectors
|
|
71
|
+
added on tailwind.config.cjs only for IntelliSense */
|
|
72
|
+
if (!s.startsWith('.i-') && !s.startsWith('.ui-') && !s.includes('prose')) {
|
|
73
|
+
rules.push([s.replace('.', ''), utilities[s]]);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
const theme = tailwindConfig.theme.extend;
|
|
80
|
+
return defineConfig({
|
|
81
|
+
preflights,
|
|
82
|
+
rules,
|
|
83
|
+
shortcuts: [
|
|
84
|
+
[/^i-([^:]+)$/, ([, icon]) => `i-${generalIcons}:${icon}`],
|
|
85
|
+
...brandIconsShortcuts.map((brand) => {
|
|
86
|
+
return typeof brand === 'string'
|
|
87
|
+
? { [`i-${brand}`]: `i-${brandIcons}:${brand}` }
|
|
88
|
+
: { [`i-${brand[0]}`]: `i-${brandIcons}:${brand[1]}` };
|
|
89
|
+
}),
|
|
90
|
+
...brandLogosShortcuts.map((brand) => {
|
|
91
|
+
return typeof brand === 'string'
|
|
92
|
+
? { [`i-${brand}`]: `i-${brandLogos}:${brand}` }
|
|
93
|
+
: { [`i-${brand[0]}`]: `i-${brandLogos}:${brand[1]}` };
|
|
94
|
+
}),
|
|
95
|
+
...Object.keys(iconAliases).map((alias) => {
|
|
96
|
+
return { [`i-${alias}`]: `i-${generalIcons}:${iconAliases[alias]}` };
|
|
97
|
+
}),
|
|
98
|
+
],
|
|
99
|
+
theme: {
|
|
100
|
+
...theme,
|
|
101
|
+
colors: {
|
|
102
|
+
...theme.colors,
|
|
103
|
+
// Generate runtime themeable brand colors utilities with CSS vars
|
|
104
|
+
...Object.keys(brandColors).reduce((colors, colorName) => {
|
|
105
|
+
colors[colorName] = {};
|
|
106
|
+
Object.keys(brandColorsPalletes[colorName]).forEach((tone) => {
|
|
107
|
+
const colorLabel = tone === 'DEFAULT' ? colorName : `${colorName}-${tone}`;
|
|
108
|
+
colors[colorName][tone] = `rgb(var(--rgb-${colorLabel}))`;
|
|
109
|
+
});
|
|
110
|
+
return colors;
|
|
111
|
+
}, {}),
|
|
112
|
+
on: Object.keys(onBrandColors).reduce((onColors, colorLabel) => {
|
|
113
|
+
return {
|
|
114
|
+
...onColors,
|
|
115
|
+
[colorLabel]: `rgb(var(--rgb-on-${colorLabel}))`,
|
|
116
|
+
};
|
|
117
|
+
}, {}),
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
transformers: [
|
|
121
|
+
transformerDirectives(),
|
|
122
|
+
transformerCompileClass(),
|
|
123
|
+
],
|
|
124
|
+
presets: [
|
|
125
|
+
presetUno(),
|
|
126
|
+
presetIcons({
|
|
127
|
+
extraProperties: {
|
|
128
|
+
display: 'inline-block',
|
|
129
|
+
'vertical-align': 'middle',
|
|
130
|
+
'margin-bottom': '0.22rem',
|
|
131
|
+
},
|
|
132
|
+
}),
|
|
133
|
+
presetTypography(),
|
|
134
|
+
],
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
exports.genUnoCSSConfig = genUnoCSSConfig;
|
|
139
|
+
exports.colorCSSVars = colorCSSVars;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as K,c as M,b as q}from"./index.3de006ba.js";import{_ as D,d as H,A as G,o as y,a as $,q as f,b as U,n as N,j as c,k as p,t as j,c as A,l as J,D as Q,K as X,B as Y,g as Z,w as b,i as ee,e as O,G as te,H as oe}from"./_plugin-vue_export-helper.8870d8dc.js";const F=Symbol("carousel"),ae=H({__name:"CarouselControl",props:{direction:{default:1}},setup(n,{expose:r}){r();const{changeSlide:l}=G(F),t={changeSlide:l};return Object.defineProperty(t,"__isScriptSetup",{enumerable:!1,value:!0}),t}}),le=["aria-label","data-carousel-control"];function ne(n,r,l,t,s,a){return y(),$("button",{type:"button","aria-label":l.direction>0?"Próximo":"Anterior",onClick:r[0]||(r[0]=v=>t.changeSlide(l.direction)),class:N(["group absolute top-0 z-1",l.direction>0?"right-0":"left-0"]),"data-carousel-control":l.direction>0?"next":"previous"},[f(n.$slots,"default",{},()=>[U("i",{class:N(["m-0",l.direction>0?"i-chevron-right group-active:translate-x-1":"i-chevron-left group-active:-translate-x-1"])},null,2)])],10,le)}const re=D(ae,[["render",ne]]),se=H({__name:"Carousel",props:{as:{default:"ul"},modelValue:{default:1},autoplay:{}},emits:["update:modelValue"],setup(n,{expose:r,emit:l}){r();const t=n,s=c(t.modelValue-1);p(j(t,"modelValue"),e=>{s.value=e-1}),p(s,(e,o)=>{e!==o&&l("update:modelValue",e+1)});const a=c(null),{x:v,isScrolling:S,arrivedState:h}=K(a),B=A(()=>h.left),W=A(()=>h.right),i=c([]),m=c(0),_=c(0),L=c(0),T=()=>{a.value&&(m.value=a.value.scrollWidth,_.value=a.value.offsetWidth)},I=()=>{if(!a.value)return;let e=[...a.value.children];e.length===1&&e[0].tagName.endsWith("SLOT")&&(e=[...e[0].children]),i.value=e.map(o=>({offsetLeft:o.offsetLeft,width:o.offsetWidth}))},P=e=>{let o=s.value+e;o>=i.value.length?(o=0,e=-e):o<0&&(o=i.value.length-1,e=-e);const E=i.value[o]?.width||0;return E?E*e:0},x=()=>{const e=i.value.findIndex(o=>Math.abs(o.offsetLeft-v.value)<=5);e>-1&&(s.value=e||0)},V=()=>{const e=m.value-_.value;L.value=i.value.findIndex(({offsetLeft:o})=>o>=e-5)};let u;const d=()=>{t.autoplay&&(clearTimeout(u),u=setTimeout(()=>{g(1)},t.autoplay))},g=e=>{const o=P(e);o&&(a.value?.scrollBy({left:o,behavior:"smooth"}),d())};p(S,e=>{e?clearTimeout(u):(x(),d())});const k=c(null),z=M(k);p(z,e=>{e?clearTimeout(u):d()});const C=()=>{a.value&&(T(),I(),x(),V())},w=q(()=>{a.value&&(a.value.scrollLeft=0,C())},400);J(()=>{C(),Q(()=>{a.value&&[...a.value.children].forEach(e=>{e.setAttribute("tabindex","0")})}),d(),window.addEventListener("resize",w)}),X(()=>{window.removeEventListener("resize",w),clearTimeout(u)}),Y(F,{autoplay:j(t,"autoplay"),changeSlide:g,isBoundLeft:B,isBoundRight:W});const R={props:t,emit:l,currentIndex:s,wrapper:a,currentPos:v,isScrolling:S,arrivedState:h,isBoundLeft:B,isBoundRight:W,slidesWidth:i,wrapperScrollWidth:m,wrapperVisibleWidth:_,indexCount:L,calcWrapperWidth:T,calcSlidesWidth:I,calcNextWidth:P,calcCurrentIndex:x,calcIndexCount:V,get autoplayTimer(){return u},set autoplayTimer(e){u=e},restartAutoplay:d,changeSlide:g,carousel:k,isHovered:z,calcOnInit:C,onResize:w,CarouselControl:re};return Object.defineProperty(R,"__isScriptSetup",{enumerable:!1,value:!0}),R}}),ie={ref:"carousel",class:"relative","data-carousel":""};function ue(n,r,l,t,s,a){return y(),$("div",ie,[(y(),Z(ee(l.as),{ref:"wrapper",class:"flex overflow-x-scroll overflow-y-hidden list-none m-0 p-0 snap-x snap-mandatory scroll-smooth [&>*]:snap-start [&>*]:outline-none",style:{"scrollbar-width":"none","-webkit-overflow-scrolling":"touch","-ms-overflow-style":"none"},"data-carousel-wrapper":""},{default:b(()=>[f(n.$slots,"default")]),_:3},512)),f(n.$slots,"controls",te(oe({changeSlide:t.changeSlide,isBoundLeft:t.isBoundLeft,isBoundRight:t.isBoundRight,currentPage:t.currentIndex+1,pageCount:t.indexCount+1})),()=>[O(t.CarouselControl,{direction:-1},{default:b(()=>[f(n.$slots,"previous")]),_:3}),O(t.CarouselControl,null,{default:b(()=>[f(n.$slots,"next")]),_:3})])],512)}const fe=D(se,[["render",ue]]);export{fe as C,re as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{v as b}from"./runtime-dom.esm-bundler.7a95af90.js";import{p as u}from"./modules-info.c65d970c.js";import{c as x,_ as v,d as g,a as o,e as d,w as m,o as r,f as w,b as l,F as y,r as C,n as f,q as S,g as k,x as H,v as p,i as T,h}from"./_plugin-vue_export-helper.8870d8dc.js";import{C as B,a as N}from"./Carousel.93c2309b.js";import"./session-utm.744b0db3.js";import"./idle-callback.889bf0ea.js";import"./format-money.3868f219.js";import"./index.3de006ba.js";const V=a=>({parsedSlides:x(()=>a.slides.map(e=>{const s=e.title?u(e.title).value:"",n=e.subtitle?u(e.subtitle).value:"",_=e.buttonText?u(e.buttonText).value:"";return{...e,hasHeader:!!(s||n||_)}}))}),D=g({__name:"HeroSlider",props:{autoplay:{},slides:{}},setup(a,{expose:i}){i();const e=a,{parsedSlides:s}=V(e),n={props:e,parsedSlides:s,Carousel:B,CarouselControl:N};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),j={class:"relative mx-auto"},z=["href"],F={key:0,class:"basis-1/2 grow-0 p-12 xl:ps-32 mb-3 md:mb-0"},L={key:0,class:"text-lg mt-4 md:mt-6"},P=["href"],q={class:"absolute z-10 bottom-5 flex justify-end items-center w-screen xl:max-w-screen-xl xl:left-1/2 -ms-[640px]"},E={class:"relative w-20 h-10 rounded-full bg-white/50 text-primary shadow-sm ring-1 ring-black/5"};function O(a,i,e,s,n,_){return r(),o("section",j,[d(s.Carousel,{autoplay:e.autoplay},{controls:m(()=>[w(l("div",q,[l("div",E,[d(s.CarouselControl,{direction:-1,class:"w-10 h-10 rounded-full hover:bg-primary/10"}),d(s.CarouselControl,{class:"w-10 h-10 rounded-full hover:bg-primary/10"})])],512),[[b,s.parsedSlides.length>1]])]),default:m(()=>[(r(!0),o(y,null,C(s.parsedSlides,(t,c)=>(r(),o("li",{key:c,class:"shrink-0 basis-full h-full secondary"},[l("div",{class:f(["w-screen max-w-screen-2xl mx-auto overflow-x-hidden",t.hasHeader?"grid grid-cols-1 md:grid-cols-2 items-center":null])},[l("a",{href:t.href,class:f(t.hasHeader?"basis-1/2 grow-0 md:order-last":null)},[S(a.$slots,`picture-${c}`)],10,z),t.hasHeader?(r(),o("div",F,[(r(),k(T(c===0?"h2":"h3"),{class:"ui-title mt-1"},{default:m(()=>[H(p(t.title),1)]),_:2},1024)),t.subtitle?(r(),o("p",L,p(t.subtitle),1)):h("",!0),t.buttonText?(r(),o("a",{key:1,href:t.buttonLink,class:"ui-btn-lg ui-btn-contrast min-w-[150px] mt-7 md:mt-10"},p(t.buttonText),9,P)):h("",!0)])):h("",!0)],2)]))),128))]),_:3},8,["autoplay"])])}const U=v(D,[["render",O]]);export{U as default};
|
package/packages/storefront/dist/client/_astro/{PitchBar.94f525f9.js → PitchBar.d0e3362e.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as h}from"./runtime-dom.esm-bundler.
|
|
1
|
+
import{v as h}from"./runtime-dom.esm-bundler.7a95af90.js";import{p as f}from"./modules-info.c65d970c.js";import{s as _,c as u,_ as C,d as v,a as l,b as m,e as d,w as p,o as n,f as g,F as b,r as w,g as x,h as y,n as S,i as k}from"./_plugin-vue_export-helper.8870d8dc.js";import{C as B,a as P}from"./Carousel.93c2309b.js";import"./session-utm.744b0db3.js";import"./idle-callback.889bf0ea.js";import"./format-money.3868f219.js";import"./index.3de006ba.js";function V(s,t){{const a=btoa(JSON.stringify({filename:s}));window.parent.postMessage(JSON.parse(JSON.stringify({type:"open",filename:s,id:a})),window.location.origin),window.addEventListener("message",e=>{e.data.id===a&&t(e.data.data)})}}const L=s=>{const t=_(null);return window.$isCmsPreview&&V(s,a=>{t.value=a}),{liveContent:t}},N=s=>{const t={slides:[]};return s.header?.pitch_bar&&(t.slides=s.header.pitch_bar),t},O=s=>{const{liveContent:t}=L("layout"),a=u(()=>(t.value?N(t.value).slides:s.slides).map(({html:o})=>f(o).value.replace(/<\/?p>/g,"").replace(/<(\/?d-md)>/g,"<$1>"))),e=u(()=>a.value.filter(r=>r).length);return{parsedContents:a,countValidSlides:e}},J=v({__name:"PitchBar",props:{slides:{}},setup(s,{expose:t}){t();const a=s,{parsedContents:e,countValidSlides:r}=O(a),o={props:a,parsedContents:e,countValidSlides:r,Carousel:B,CarouselControl:P};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),M={class:"bg-base-100 relative z-20"},z={class:"container md:w-2/3 mx-auto px-3 py-1"},D=["innerHTML"],E={class:"text-xl leading-none text-base-400"};function F(s,t,a,e,r,o){return n(),l("div",M,[m("div",z,[d(e.Carousel,{autoplay:e.countValidSlides>1?7e3:void 0},{controls:p(()=>[g(m("div",E,[d(e.CarouselControl,{direction:-1,class:"pr-2 bg-base-100 hover:text-base-700"}),d(e.CarouselControl,{class:"pl-2 bg-base-100 hover:text-base-700"})],512),[[h,e.countValidSlides>1]])]),default:p(()=>[(n(!0),l(b,null,w(a.slides,(i,c)=>(n(),l("li",{key:c,class:"shrink-0 basis-full h-full text-center"},[(n(),x(k(i.href?"ALink":"span"),{href:i.href,target:i.target,class:S(["inline-block px-8",i.href?"hover:underline":null])},{default:p(()=>[e.parsedContents[c]?(n(),l("span",{key:0,innerHTML:e.parsedContents[c],class:"prose text-sm text-base-800"},null,8,D)):y("",!0)]),_:2},1032,["href","target","class"]))]))),128))]),_:1},8,["autoplay"])])])}const I=C(J,[["render",F]]);export{I as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{m as g}from"./modules-info.c65d970c.js";import{g as k,c as A}from"./format-money.3868f219.js";import{c as a,_ as S,d as M,m as T,a as i,v as o,h as u,b as h,x as C,n as I,e as L,w as D,o as l}from"./_plugin-vue_export-helper.8870d8dc.js";const j=(n,c)=>{const{type:s,value:t}=c;let r;return t?(s==="percentage"?r=n*((100-t)/100):r=n-t,r>0?r:0):n},E=n=>{const c=a(()=>n.product||{price:n.price||0,base_price:n.basePrice}),s=a(()=>{const{variations:e}=c.value;if(e){const _=k(c.value);for(let v=0;v<e.length;v++)if(k({...c.value,...e[v]})>_)return!0}return!1}),t=a(()=>g.apply_discount.available_extra_discount),r=a(()=>{const e=k(c.value),_=t.value;return _&&(!_.min_amount||e>_.min_amount)?j(e,_):e}),f=a(()=>{if(A(c.value))return c.value.base_price;const e=k(c.value);return e>r.value?e:0}),m=a(()=>n.installmentsOption||g.list_payments.installments_option||{max_number:1}),b=a(()=>{if(m.value.max_number<=1)return 1;const e=m.value.min_installment||5,_=Math.round(r.value/e);return Math.min(_,m.value.max_number)}),y=a(()=>m.value.monthly_interest||0),x=a(()=>{if(b.value>=2){if(!y.value)return r.value/b.value;const e=y.value/100;return r.value*e/(1-(1+e)**-b.value)}return 0}),P=a(()=>{const e=n.discountOption||g.list_payments.discount_option;return e&&(!e.min_amount||e.min_amount<=r.value)&&(!n.isAmountTotal||e.apply_at==="total")?e:{}}),V=a(()=>{const{label:e}=P.value;return e?e.includes(" ")?e:`via ${e}`:""}),O=a(()=>j(r.value,P.value)),d=a(()=>{if(n.loyaltyPointsProgram)return n.loyaltyPointsProgram;const e=g.list_payments.loyalty_points_programs;if(e){const _=Object.keys(e);for(let v=0;v<_.length;v++){const p=e[_[v]];if(p?.earn_percentage&&p.earn_percentage>0)return p}}return{ratio:0}}),w=a(()=>d.value.min_subtotal_to_earn||0),W=a(()=>d.value.name||""),N=a(()=>d.value.earn_percentage||0),B=a(()=>N.value*d.value.ratio),z=a(()=>B.value>=1?r.value*(B.value/100):0);return{hasVariedPrices:s,salePrice:r,comparePrice:f,installmentsObject:m,installmentsNumber:b,monthlyInterest:y,installmentValue:x,discountObject:P,discountLabel:V,priceWithDiscount:O,pointsProgramObject:d,pointsMinPrice:w,pointsProgramName:W,earnPointsPercentage:N,cashbackPercentage:B,cashbackValue:z}},F=M({__name:"Prices",props:{isBig:{type:Boolean},isLiteral:{type:Boolean},hasCashback:{type:Boolean,default:!0},hasPriceOptions:{type:Boolean,default:!0},product:{},price:{},basePrice:{},isAmountTotal:{type:Boolean},installmentsOption:{},discountOption:{},loyaltyPointsProgram:{}},setup(n,{expose:c}){c();const s=n,{hasVariedPrices:t,salePrice:r,comparePrice:f,cashbackPercentage:m,cashbackValue:b,installmentsNumber:y,monthlyInterest:x,installmentValue:P,priceWithDiscount:V,discountLabel:O}=E(s),d={props:s,hasVariedPrices:t,salePrice:r,comparePrice:f,cashbackPercentage:m,cashbackValue:b,installmentsNumber:y,monthlyInterest:x,installmentValue:P,priceWithDiscount:V,discountLabel:O};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),R={key:0,class:"text-base-500 mr-1 [font-size:87%]"},q={key:0},G={key:1},H={key:0},J={key:0,class:"relative z-10"},K=["data-tooltip"],Q=h("i",{class:"i-cashback mr-1"},null,-1),U={class:"font-medium"},X=h("small",null," cashback",-1),Y={key:0},Z={key:0},$={key:1},ee={key:2},te={key:0},ne={key:0},ae={key:1};function se(n,c,s,t,r,f){const m=T("Fade");return l(),i("div",{class:I(["text-base-600 [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]",s.isBig?"text-lg":null]),"data-prices":""},[t.comparePrice?(l(),i("span",R,[s.isLiteral?(l(),i("small",q,o("De "))):u("",!0),h("s",null,o(n.$money(t.comparePrice)),1),s.isLiteral?(l(),i("small",G,o(" Por"))):u("",!0)])):u("",!0),h("strong",{class:I(["inline-block text-base-800",s.isBig?"text-5xl block":null])},[t.hasVariedPrices?(l(),i("small",H,o("A partir de "))):u("",!0),C(" "+o(n.$money(t.salePrice)),1)],2),L(m,{slide:"down"},{default:D(()=>[t.cashbackValue&&s.hasCashback?(l(),i("div",J,[h("span",{"data-tooltip":"Receba $1 de volta".replace("$1",n.$percentage(t.cashbackPercentage))},[Q,h("span",U,o(n.$money(t.cashbackValue)),1),X],8,K)])):u("",!0)]),_:1}),L(m,{slide:"down"},{default:D(()=>[t.installmentValue&&s.hasPriceOptions?(l(),i("div",Y,[s.isLiteral?(l(),i("small",Z,o("Até "))):u("",!0),C(" "+o(t.installmentsNumber)+"x ",1),s.isLiteral?(l(),i("small",$,o(" De "))):u("",!0),h("span",null,o(n.$money(t.installmentValue)),1),!t.monthlyInterest&&s.isLiteral?(l(),i("small",ee,o("Sem juros"))):u("",!0)])):u("",!0)]),_:1}),L(m,{slide:"down"},{default:D(()=>[t.priceWithDiscount<t.salePrice&&s.hasPriceOptions?(l(),i("div",te,[t.discountLabel?u("",!0):(l(),i("small",ne,o("A partir de "))),h("span",null,o(n.$money(t.priceWithDiscount)),1),t.discountLabel?(l(),i("small",ae,o(` ${t.discountLabel}`),1)):u("",!0)])):u("",!0)]),_:1})],2)}const le=S(F,[["render",se]]);export{le as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e}from"./Prices.51598206.js";import"./modules-info.c65d970c.js";import"./session-utm.744b0db3.js";import"./idle-callback.889bf0ea.js";import"./_plugin-vue_export-helper.8870d8dc.js";import"./format-money.3868f219.js";export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as b}from"./api.7f62c1ff.js";import{L as H,j as m,M as E,c as v,_ as Q,d as B,m as N,o as l,a as h,g as w,w as x,b as y,F as P,e as I,h as q,i as j,n as M,x as S,v as L,r as V}from"./_plugin-vue_export-helper.8870d8dc.js";import{c as z,w as T}from"./index.3de006ba.js";import{i as D,g as A}from"./img.2ae78c70.js";import{g as O,c as R}from"./format-money.3868f219.js";import{P as $}from"./Prices.51598206.js";import"./modules-info.c65d970c.js";import"./session-utm.744b0db3.js";import"./idle-callback.889bf0ea.js";const G=(e,n=H.get("lang"))=>n&&e.i18n&&e.i18n[n]?e.i18n[n]:e.name||e.title||D(e.i18n,n)||"",J=G,K=e=>e&&e.min_quantity||1,U=K,W=e=>!e.hasOwnProperty("quantity")||e.quantity>=U(e),F=W,X=e=>{const n=m(e.title||""),s=m(e.titleLink||""),t=m(!1);let o=null;const u=m(null),a=E(e.products||[]);return e.products||(t.value=!0,o=(async()=>{let i=e.searchQuery||"",d;if(e.collectionId){try{const{data:c}=await b.get(`collections/${e.collectionId}`);d=c}catch(c){console.error(c),u.value=c}const r=d?.products;Array.isArray(r)&&r.length&&(i+=`&_id=${r.slice(0,60).join(",")}`),!n.value&&n.value!==null&&d?.name&&(n.value=d?.name)}const g=e.limit||24;let _=`offset=${e.page?(e.page-1)*g:0}&limit=${g}`;e.sort&&(_+=`&sort=${e.sort}`),_+=i;try{const{data:r}=await b.get(`search/v1?${_}`);if(e.isShuffle){let c=r.result.filter(C=>C.available&&F(C)).length,p,f;for(;c;)f=Math.floor(Math.random()*c--),p=r.result[c],r.result[c]=r.result[f],r.result[f]=p}r.result.forEach(c=>a.push(c))}catch(r){console.error(r),u.value=r}t.value=!1})()),{title:n,titleLink:s,isFetching:t,fetching:o,fetchError:u,products:a}},Y=e=>{const n=m(!1);let s=null;const t=m(null),o=E({...e.product,price:O(e.product||{})}),u=v(()=>J(o)),a=v(()=>{const{slug:r}=o;return typeof r=="string"?`/${r}`:null}),i=v(()=>{const{pictures:r}=o,c=[];if(r)r.forEach(p=>{const f=A(p);f&&c.push(f)});else{const{picture:p}=o;if(p){const f=A(p);f&&c.push(f)}}return c}),d=v(()=>F(o)),g=v(()=>d.value&&o.available&&o.visible),k=v(()=>{if(R(o)){const r=o.base_price;return Math.round((r-O(o))*100/r)}return 0}),{productId:_}=e;return!e.product&&_&&(n.value=!0,s=(async()=>{try{const{data:r}=await b.get(`products/${_}`);Object.assign(o,r)}catch(r){console.error(r),t.value=r}n.value=!1})()),{isFetching:n,fetching:s,fetchError:t,product:o,title:u,link:a,images:i,isInStock:d,isActive:g,discountPercentage:k}},Z=B({__name:"ProductCard",props:{product:{},productId:{},headingTag:{default:"h3"}},setup(e,{expose:n}){n();const s=e,{product:t,title:o,link:u,images:a}=Y({product:s.product,productId:s.productId}),i=m(null),d=z(i),g=m(!1);T(d,()=>{g.value=!0});const k={props:s,product:t,title:o,link:u,images:a,card:i,isHovered:d,wasHoveredOnce:g,Prices:$};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}}),ee=["data-sku"],te={class:"aspect-square p-2 motion-safe:group-hover:scale-110 transition-transform"},re={class:"relative w-full h-full bg-white rounded overflow-hidden group-hover:rounded-none"},oe={key:1,class:"w-full h-full bg-gradient-to-br from-base-50/20 to-base-100"},ne={class:"flex flex-col grow justify-between p-4 group-hover:backdrop-blur-md bg-white/40 z-10"},ce={class:"pt-2"};function se(e,n,s,t,o,u){const a=N("AImg");return l(),h("article",{ref:"card","data-sku":t.product.sku,class:"relative h-full max-w-[350px] mx-auto py-3 group"},[(l(),w(j(t.link?"ALink":"span"),{href:t.link,class:"flex flex-col h-full rounded overflow-hidden group-hover:shadow group-hover:ring-1 ring-black/5"},{default:x(()=>[y("div",te,[y("div",re,[t.images?.length?(l(),h(P,{key:0},[I(a,{picture:t.images[0],class:"absolute top-0 left-0 block w-full h-full object-cover"},null,8,["picture"]),t.images[1]&&t.wasHoveredOnce?(l(),w(a,{key:0,picture:t.images[1],class:"absolute top-0 left-0 block w-full h-full object-cover opacity-0 group-hover:opacity-100 transition-opacity motion-safe:duration-300 text-transparent z-10"},null,8,["picture"])):q("",!0)],64)):(l(),h("div",oe))])]),y("div",ne,[(l(),w(j(s.headingTag),{class:M(["ui-link text-base-700 no-underline line-clamp-2",t.link?"group-hover:underline group-hover:text-primary":null])},{default:x(()=>[S(L(t.title),1)]),_:1},8,["class"])),y("div",ce,[I(t.Prices,{product:t.product},null,8,["product"])])])]),_:1},8,["href"]))],8,ee)}const ae=Q(Z,[["render",se]]),ie=B({__name:"ProductShelf",props:{collectionId:{},searchQuery:{},sort:{},title:{},titleLink:{},isShuffle:{type:Boolean},limit:{},page:{},products:{}},async setup(e,{expose:n}){n();const s=e,{title:t,titleLink:o,fetching:u,products:a}=X(s),i={props:s,title:t,titleLink:o,fetching:u,products:a,ProductCard:ae};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),le={key:0},ue={class:"grid grid-cols-4"};function de(e,n,s,t,o,u){const a=N("ALink");return l(),h("section",null,[t.title?(l(),h("h2",le,[t.titleLink?(l(),w(a,{key:0,href:t.titleLink},{default:x(()=>[S(L(t.title),1)]),_:1},8,["href"])):(l(),h(P,{key:1},[S(L(t.title),1)],64))])):q("",!0),y("ul",ue,[(l(!0),h(P,null,V(t.products,i=>(l(),h("li",{key:i._id},[I(t.ProductCard,{product:i},null,8,["product"])]))),128))])])}const we=Q(ie,[["render",de]]);export{we as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{u as yt,a as _t,p as wt,b as xt}from"./index.3de006ba.js";import{j as k,c as w,k as ne,l as le,_ as U,d as L,t as St,m as Z,o as b,g as N,w as T,a as I,n as $,p as Ue,b as g,q as ee,h as j,T as kt,e as O,u as Oe,i as Pt,v as A,F as B,r as z,x as X,y as It,z as J,A as se,B as de,C as Y,D as oe,E as Ie,G as We,H as Ke,I as Ce,J as Fe}from"./_plugin-vue_export-helper.8870d8dc.js";import{w as Et}from"./runtime-dom.esm-bundler.7a95af90.js";import{_ as Tt}from"./preload-helper.101896b7.js";import{a as Mt}from"./api.7f62c1ff.js";import{i as Ot}from"./idle-callback.889bf0ea.js";const Ct=e=>{if(e){if(e.display_name)return e.display_name;if(e.name&&e.name.given_name)return e.name.given_name}return""},Ft=Ct,At=e=>{const{header:n,canSetStyles:r,canCreateHeightDiv:t,isShownOnScrollDown:o}={canSetStyles:!0,canCreateHeightDiv:!0,...e},{ready:a,start:l}=yt(100,{controls:!0,immediate:!1}),s=k(0),c=k(0);let u;const{y:i}=_t(document),h=w(()=>a.value&&i.value>c.value*1.2),v=k("none");ne(h,async m=>{r&&n.value&&(n.value.style.position=m?"sticky":""),u&&(u.style.height=m?`${s.value}px`:""),m?(await wt(300),v.value="opacity var(--transition-slow), transform var(--transition)"):(l(),v.value="none")});const f=k(!1);return ne(i,(m,d)=>{f.value=m>0&&m<d}),le(()=>{if(!n.value)throw new Error("<header> (props.header) not set");const m=()=>{const x=n.value;s.value=x.offsetHeight,c.value=s.value+window.pageYOffset+x.getBoundingClientRect().top,l()},d=n.value.getElementsByTagName("IMG");let y=!0;for(let x=0;x<d.length;x++){const P=d[x];(!P.complete||P.naturalHeight===0)&&(y=!1,P.onload=m)}y&&m(),window.addEventListener("resize",xt(m,300)),r&&(n.value.style.willChange="transform",ne([h,f],([x,P])=>{let S="",C="";x&&(!P||o)&&(S="0",C="translateY(-100%)");const _=n.value;_.style.opacity=S,_.style.transform=C}),ne(v,x=>{n.value.style.transition=x})),t&&(u=document.createElement("div"),n.value.parentElement?.insertBefore(u,n.value))}),{staticHeight:s,staticY:c,isSticky:h,isScrollUp:f,transition:v}},$t=(e,n)=>{const r=e.filter(({name:t,slug:o,parent:a})=>t&&o&&!a);return n?.length&&r.sort((t,o)=>{const a=n.indexOf(t.slug),l=n.indexOf(o.slug);return a>-1?l===-1||a<l?-1:1:l>-1?1:0}),r},Lt=(e,n,r=!1)=>{const t=e.filter(({name:o,slug:a,parent:l})=>o&&a&&l?l._id===n._id||l.slug&&l.slug===n.slug:!1);return r&&t.sort((o,a)=>o.name<a.name?-1:1),t},Nt=({header:e,categories:n,menuCategorySlugs:r,menuRandomCategories:t=7,isAlphabeticalSortSubmenu:o})=>{const{isSticky:a,staticHeight:l,staticY:s}=At({header:e}),c=w(()=>a.value?e.value?.offsetHeight:s.value),u=$t(n,r),i=d=>Lt(n,d,!!o),h=d=>({...d,subcategories:i(d).map(y=>h(y))}),v=u.map(h);let f=0;const m=v.filter(({slug:d})=>r?.includes(d)?!0:f<t?(f+=1,!0):!1);return{isSticky:a,staticHeight:l,staticY:s,positionY:c,mainCategories:u,getSubcategories:i,getCategoryTree:h,categoryTrees:v,inlineMenuTrees:m}},Dt=L({__name:"Drawer",props:{modelValue:{type:Boolean,default:!1},placement:{default:"start"},position:{default:"fixed"},hasCloseButton:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{expose:n,emit:r}){n();const t=e,o=()=>r("update:modelValue",!1),a=k(null),l=f=>{a.value?.contains(f.target)||o()},s=f=>{f.key==="Escape"&&o()},c=k(0);ne(St(t,"modelValue"),async f=>{f?(c.value=window.innerWidth-document.documentElement.clientWidth,document.body.style.overflow="hidden",document.body.style.paddingRight=`${c.value}px`,setTimeout(()=>{document.addEventListener("click",l,{passive:!0}),document.addEventListener("keydown",s,{passive:!0})},500)):(document.body.style.overflow="",document.body.style.paddingRight="",document.removeEventListener("click",l),document.removeEventListener("keydown",s))});const u=w(()=>{switch(t.placement){case"start":return"left";case"end":return"right";case"top":return"down";default:return"up"}}),i=w(()=>t.position==="fixed"),h=w(()=>t.placement==="start"||t.placement==="end"),v={props:t,emit:r,close:o,drawer:a,outsideClickListener:l,escClickListener:s,scrollbarWidth:c,slideTo:u,isFixed:i,isPlacementX:h};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}}),Rt=["open","data-drawer"],jt={class:"relative h-full"},Bt=["onClick"],Ht=g("i",{class:"i-close text-base-400 text-3xl"},null,-1),Vt={key:0,class:"fixed top-0 left-0 w-screen h-screen bg-black/50 z-40","data-drawer-backdrop":""};function Ut(e,n,r,t,o,a){const l=Z("Fade");return b(),N(l,{slide:t.slideTo,speed:"slow","is-floating":""},{default:T(()=>[r.modelValue?(b(),I("dialog",{key:0,ref:"drawer",class:$(["w-screen shadow p-0 m-0 z-50",[r.position,t.isFixed?`top-0 left-0 ${t.isPlacementX?"h-screen":""}`:null,t.isPlacementX?"max-w-sm":null]]),style:Ue({maxWidth:t.isPlacementX?void 0:`calc(100vw - ${t.scrollbarWidth}px)`}),open:r.modelValue,"data-drawer":r.placement},[g("div",jt,[r.hasCloseButton?(b(),I("button",{key:0,type:"button","aria-label":"Fechar",onClick:Et(t.close,["prevent"]),class:$(["absolute top-2",r.placement==="end"?"left-2":"right-2"]),"data-drawer-close":""},[ee(e.$slots,"close",{},()=>[Ht])],10,Bt)):j("",!0),ee(e.$slots,"default")]),(b(),N(kt,{to:"#teleported-top"},[O(l,null,{default:T(()=>[r.modelValue?(b(),I("div",Vt)):j("",!0)]),_:1})]))],14,Rt)):j("",!0)]),_:3},8,["slide"])}const Wt=U(Dt,[["render",Ut]]),Kt=(e,n,r=globalThis.localStorage)=>{if(!r)return Oe(n);let t;const o=r.getItem(e);if(o)try{t=JSON.parse(o)}catch{t=null,r.removeItem(e)}const a=Oe(t||n);return ne(a,()=>{r.setItem(e,JSON.stringify(a))}),a},ze="SESSION",ke={customer:{display_name:"",main_email:""},auth:null},H=Kt(ze,ke),Ee=w(()=>{const{auth:e}=H;return e&&new Date(e.expires).getTime()-Date.now()>1e3*10}),Ge=w(()=>H.customer),me=w(()=>Ft(Ge.value)),Ae=w({get(){return Ge.value.main_email},set(e){H.customer.main_email=e}});let re;const Ye=w(()=>Ee.value||!!re?.currentUser?.emailVerified),Te=()=>{H.auth=ke.auth,H.customer=ke.customer,localStorage.removeItem(ze),re.signOut()},Xe=(e="Not authenticated")=>{const n=new Error(e);throw n.isNoAuth=!0,n},qe=async()=>{const e=await re.currentUser?.getIdToken();if(!e){Xe("Can't get Firebase user ID token");return}const{domain:n}=window.$storefront.settings;try{const r=await fetch(`https://${n}/api/passport/token`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}});H.auth=await r.json()}catch(r){console.error(r)}},zt=async()=>(Ee.value||await qe(),H.auth?H.auth.access_token:Xe()),Gt=async()=>{const e=await zt(),n=H.auth,{data:r}=await Mt.get(`customers/${n.customer_id}`,{accessToken:e});return H.customer=r,r};let $e=!1;const Je=(e=!window.location.pathname.startsWith("/app/"))=>{if($e)return;$e=!0;const n=()=>Tt(()=>import("./firebase-app.4381f424.js"),[]).then(({getAuth:r,onAuthStateChanged:t,isSignInWithEmailLink:o,signInWithEmailLink:a})=>{if(re=r(),t(re,async l=>{if(l){if(l.displayName&&!me.value&&(H.customer.display_name=l.displayName),l.email&&(!Ae.value||l.emailVerified)&&(H.customer.main_email=l.email),l.emailVerified){const s=l.email!==Ae.value;(s||!Ee.value)&&(await qe(),(s||!me.value)&&await Gt())}}else Te()}),o(re,window.location.href)){const s=new URLSearchParams(window.location.search).get("email");s&&a(re,s,window.location.href).then(()=>window.localStorage.removeItem("emailForSignIn")).catch(console.error)}}).catch(console.error);e?Ot(n):n()},{settings:Le,context:no}=globalThis.$storefront,Yt=["whatsapp","instagram","facebook","twitter","youtube","tiktok","pinterest"],be={};Yt.forEach(e=>{Le[e]&&(be[e]=Le[e])});const Xt=L({__name:"AccountLink",props:{to:{},accountUrl:{default:globalThis.$storefront.settings.account_url||"/app/account"},returnUrl:{default:globalThis.location?.href},isSignUp:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=w(()=>{let a=r.accountUrl;if(!r.to)return r.isSignUp?a+="?sign_up&":a+="?",`${a}return_url=${r.returnUrl}`;const{settings:l}=globalThis.$storefront;return r.to==="orders"&&l.orders_url?l.orders_url:r.to==="favorites"&&l.favorites_url?l.favorites_url:`${a}/${r.to}`}),o={props:r,href:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),qt=["href"];function Jt(e,n,r,t,o,a){return b(),I("a",{href:t.href},[ee(e.$slots,"default")],8,qt)}const Qe=U(Xt,[["render",Jt]]);let ie;ie=navigator.userAgent,document.body?document.body.offsetWidth:window.screen.width;ie.includes("Safari")&&ie.includes("Chrome");const Qt=/iPad|iPhone|iPod/.test(ie)&&!window.MSStream,Zt=Qt||/Android|webOS|BlackBerry|IEMobile|Opera Mini/i.test(ie),en=L({__name:"SocialNetworkIcon",props:{as:{default:"i"},network:{}},setup(e,{expose:n}){n();const r=e,t=w(()=>{switch(r.network){case"facebook":return"i-facebook";case"instagram":return"i-instagram";case"whatsapp":return"i-whatsapp";case"youtube":return"i-youtube";case"pinterest":return"i-pinterest";case"tiktok":return"i-tiktok";case"twitter":return"i-twitter";default:return""}}),o={props:r,iconClassName:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function tn(e,n,r,t,o,a){return b(),N(Pt(r.as),{class:$(t.iconClassName)},null,8,["class"])}const nn=U(en,[["render",tn]]),rn=L({__name:"SocialNetworkLink",props:{network:{},href:{},message:{}},setup(e,{expose:n}){n();const r=e,t=w(()=>{let a=r.href||be[r.network]||"";if(r.network==="whatsapp"){const l=a.replace(/[^+\d]/g,"");a=`https://${Zt?"api":"web"}.whatsapp.com/send?phone=`+encodeURIComponent(l.charAt(0)==="+"?l:`+55${l}`),r.message&&(a+=`&text=${encodeURIComponent(r.message)}`)}return a}),o={props:r,fixedHref:t,SocialNetworkIcon:nn};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function on(e,n,r,t,o,a){const l=Z("ALink");return b(),N(l,{href:t.fixedHref},{default:T(()=>[ee(e.$slots,"default",{},()=>[O(t.SocialNetworkIcon,{network:r.network},null,8,["network"]),ee(e.$slots,"append")])]),_:3},8,["href"])}const Ze=U(rn,[["render",on]]),an=L({__name:"ShopSidenavCategory",props:{categoryTree:{}},setup(e,{expose:n}){n();const r=k(!1),t=k(!0);ne(r,a=>{a?setTimeout(()=>{t.value=!1},25):t.value=!0});const o={isOpen:r,isFaded:t};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),ln={class:"text-lg text-base-800"},sn=["href"],un=["href"],cn={class:"inline"};function dn(e,n,r,t,o,a){const l=Z("AImg"),s=Z("ShopSidenavCategory",!0);return b(),I("li",ln,[r.categoryTree.subcategories.length?(b(),I("details",{key:0,class:"bg-white overflow-y-auto overflow-x-hidden z-10 open:absolute open:top-0 open:left-0 open:w-full open:h-full",onToggle:n[0]||(n[0]=c=>t.isOpen=!t.isOpen)},[g("summary",{class:$(["cursor-pointer list-none px-6 py-3 active:bg-base-100 transition-colors",t.isOpen?"bg-base-100":null])},[g("i",{class:$(t.isOpen?"i-arrow-left text-lg":"i-arrow-right float-right mb-0 mt-1 text-xl text-base-500")},null,2),!t.isOpen&&r.categoryTree.icon?(b(),N(l,{key:0,picture:r.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):j("",!0),g("h3",{class:$(["inline",t.isOpen?"ml-4 text-base":null])},A(r.categoryTree.name),3)],2),g("ul",{class:$(["mt-2 transition-opacity",t.isFaded?"opacity-20":"opacity-100"]),tabindex:"-1"},[(b(!0),I(B,null,z(r.categoryTree.subcategories,c=>(b(),N(s,{key:c._id,"category-tree":c},null,8,["category-tree"]))),128)),g("li",null,[g("a",{href:`/${r.categoryTree.slug}`,class:"block px-6 py-3 text-base underline active:bg-base-200"},A("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,sn)])],2)],32)):(b(),I("a",{key:1,href:`/${r.categoryTree.slug}`,class:"block px-6 py-3 active:bg-base-200"},[!t.isOpen&&r.categoryTree.icon?(b(),N(l,{key:0,picture:r.categoryTree.icon,class:"w-auto h-5 inline mr-3"},null,8,["picture"])):j("",!0),g("h3",cn,A(r.categoryTree.name),1)],8,un))])}const fn=U(an,[["render",dn]]),pn=L({__name:"ShopSidenav",props:{categoryTrees:{}},setup(e,{expose:n}){n(),le(()=>Je());const r={get customerName(){return me},get isLogged(){return Ye},get logout(){return Te},get socialNetworks(){return be},AccountLink:Qe,SocialNetworkLink:Ze,ShopSidenavCategory:fn};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),vn={class:"flex flex-col h-full"},mn={class:"py-4 grow"},hn={class:"relative h-full"},gn={class:"text-base"},bn={class:"flex items-center px-2 py-4 bg-base-100"},yn=g("i",{class:"i-account text-4xl text-base-500 m-0"},null,-1),_n={class:"leading-tight"},wn=g("small",{class:"block lowercase font-semibold text-primary"},A("Meus pedidos")+", "+A("Minha conta"),-1),xn=g("span",{class:"text-base-600"},A("Sair"),-1),Sn=g("i",{class:"i-logout text-lg ml-1"},null,-1),kn=[xn,Sn],Pn={class:"flex gap-3 p-4 bg-base-200 text-xl text-base-700"};function In(e,n,r,t,o,a){return b(),I("aside",vn,[g("nav",mn,[g("ul",hn,[(b(!0),I(B,null,z(r.categoryTrees,l=>(b(),N(t.ShopSidenavCategory,{key:l._id,"category-tree":l},null,8,["category-tree"]))),128))])]),g("footer",gn,[g("div",bn,[O(t.AccountLink,{class:"p-2 grow flex items-center gap-3"},{default:T(()=>[yn,g("span",_n,[X(A(`Olá ${t.customerName||"Visitante"}`)+" ",1),wn])]),_:1}),t.isLogged?(b(),I("button",{key:0,onClick:n[0]||(n[0]=(...l)=>t.logout&&t.logout(...l)),class:"p-2 text-right text-base-800"},kn)):j("",!0)]),g("ul",Pn,[(b(!0),I(B,null,z(t.socialNetworks,(l,s)=>(b(),I("li",{key:s},[O(t.SocialNetworkLink,{network:s,class:"p-1 active:text-primary"},null,8,["network"])]))),128))])])])}const En=U(pn,[["render",In]]);function W(e,n,...r){if(e in n){let o=n[e];return typeof o=="function"?o(...r):o}let t=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(o=>`"${o}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,W),t}var ue=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(ue||{}),Tn=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(Tn||{});function te({visible:e=!0,features:n=0,ourProps:r,theirProps:t,...o}){var a;let l=tt(t,r),s=Object.assign(o,{props:l});if(e||n&2&&l.static)return Se(s);if(n&1){let c=(a=l.unmount)==null||a?0:1;return W(c,{[0](){return null},[1](){return Se({...o,props:{...l,hidden:!0,style:{display:"none"}}})}})}return Se(s)}function Se({props:e,attrs:n,slots:r,slot:t,name:o}){var a,l;let{as:s,...c}=Mn(e,["unmount","static"]),u=(a=r.default)==null?void 0:a.call(r,t),i={};if(t){let h=!1,v=[];for(let[f,m]of Object.entries(t))typeof m=="boolean"&&(h=!0),m===!0&&v.push(f);h&&(i["data-headlessui-state"]=v.join(" "))}if(s==="template"){if(u=et(u??[]),Object.keys(c).length>0||Object.keys(n).length>0){let[h,...v]=u??[];if(!On(h)||v.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${o} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(c).concat(Object.keys(n)).map(d=>d.trim()).filter((d,y,x)=>x.indexOf(d)===y).sort((d,y)=>d.localeCompare(y)).map(d=>` - ${d}`).join(`
|
|
2
|
+
`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(d=>` - ${d}`).join(`
|
|
3
|
+
`)].join(`
|
|
4
|
+
`));let f=tt((l=h.props)!=null?l:{},c),m=It(h,f);for(let d in f)d.startsWith("on")&&(m.props||(m.props={}),m.props[d]=f[d]);return m}return Array.isArray(u)&&u.length===1?u[0]:u}return J(s,Object.assign({},c,i),{default:()=>u})}function et(e){return e.flatMap(n=>n.type===B?et(n.children):[n])}function tt(...e){if(e.length===0)return{};if(e.length===1)return e[0];let n={},r={};for(let t of e)for(let o in t)o.startsWith("on")&&typeof t[o]=="function"?(r[o]!=null||(r[o]=[]),r[o].push(t[o])):n[o]=t[o];if(n.disabled||n["aria-disabled"])return Object.assign(n,Object.fromEntries(Object.keys(r).map(t=>[t,void 0])));for(let t in r)Object.assign(n,{[t](o,...a){let l=r[t];for(let s of l){if(o instanceof Event&&o.defaultPrevented)return;s(o,...a)}}});return n}function Mn(e,n=[]){let r=Object.assign({},e);for(let t of n)t in r&&delete r[t];return r}function On(e){return e==null?!1:typeof e.type=="string"||typeof e.type=="object"||typeof e.type=="function"}let Cn=0;function Fn(){return++Cn}function Q(){return Fn()}var F=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(F||{});function An(e){throw new Error("Unexpected object: "+e)}var D=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(D||{});function $n(e,n){let r=n.resolveItems();if(r.length<=0)return null;let t=n.resolveActiveIndex(),o=t??-1,a=(()=>{switch(e.focus){case 0:return r.findIndex(l=>!n.resolveDisabled(l));case 1:{let l=r.slice().reverse().findIndex((s,c,u)=>o!==-1&&u.length-c-1>=o?!1:!n.resolveDisabled(s));return l===-1?l:r.length-1-l}case 2:return r.findIndex((l,s)=>s<=o?!1:!n.resolveDisabled(l));case 3:{let l=r.slice().reverse().findIndex(s=>!n.resolveDisabled(s));return l===-1?l:r.length-1-l}case 4:return r.findIndex(l=>n.resolveId(l)===e.id);case 5:return null;default:An(e)}})();return a===-1?t:a}function p(e){var n;return e==null||e.value==null?null:(n=e.value.$el)!=null?n:e.value}let nt=Symbol("Context");var G=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(G||{});function rt(){return se(nt,null)}function ot(e){de(nt,e)}function Ne(e,n){if(e)return e;let r=n??"button";if(typeof r=="string"&&r.toLowerCase()==="button")return"button"}function at(e,n){let r=k(Ne(e.value.type,e.value.as));return le(()=>{r.value=Ne(e.value.type,e.value.as)}),Y(()=>{var t;r.value||p(n)&&p(n)instanceof HTMLButtonElement&&!((t=p(n))!=null&&t.hasAttribute("type"))&&(r.value="button")}),r}var Ln=Object.defineProperty,Nn=(e,n,r)=>n in e?Ln(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,De=(e,n,r)=>(Nn(e,typeof n!="symbol"?n+"":n,r),r);class Dn{constructor(){De(this,"current",this.detect()),De(this,"currentId",0)}set(n){this.current!==n&&(this.currentId=0,this.current=n)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}}let ye=new Dn;function ae(e){if(ye.isServer)return null;if(e instanceof Node)return e.ownerDocument;if(e!=null&&e.hasOwnProperty("value")){let n=p(e);if(n)return n.ownerDocument}return document}function Rn({container:e,accept:n,walk:r,enabled:t}){Y(()=>{let o=e.value;if(!o||t!==void 0&&!t.value)return;let a=ae(e);if(!a)return;let l=Object.assign(c=>n(c),{acceptNode:n}),s=a.createTreeWalker(o,NodeFilter.SHOW_ELEMENT,l,!1);for(;s.nextNode();)r(s.currentNode)})}let Pe=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var V=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(V||{}),he=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(he||{}),jn=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(jn||{});function fe(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Pe)).sort((n,r)=>Math.sign((n.tabIndex||Number.MAX_SAFE_INTEGER)-(r.tabIndex||Number.MAX_SAFE_INTEGER)))}var _e=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(_e||{});function we(e,n=0){var r;return e===((r=ae(e))==null?void 0:r.body)?!1:W(n,{[0](){return e.matches(Pe)},[1](){let t=e;for(;t!==null;){if(t.matches(Pe))return!0;t=t.parentElement}return!1}})}function lt(e){let n=ae(e);oe(()=>{n&&!we(n.activeElement,0)&&Hn(e)})}var Bn=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Bn||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function Hn(e){e?.focus({preventScroll:!0})}let Vn=["textarea","input"].join(",");function Un(e){var n,r;return(r=(n=e?.matches)==null?void 0:n.call(e,Vn))!=null?r:!1}function st(e,n=r=>r){return e.slice().sort((r,t)=>{let o=n(r),a=n(t);if(o===null||a===null)return 0;let l=o.compareDocumentPosition(a);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function Wn(e,n){return q(fe(),n,{relativeTo:e})}function q(e,n,{sorted:r=!0,relativeTo:t=null,skipElements:o=[]}={}){var a;let l=(a=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e?.ownerDocument)!=null?a:document,s=Array.isArray(e)?r?st(e):e:fe(e);o.length>0&&s.length>1&&(s=s.filter(m=>!o.includes(m))),t=t??l.activeElement;let c=(()=>{if(n&5)return 1;if(n&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),u=(()=>{if(n&1)return 0;if(n&2)return Math.max(0,s.indexOf(t))-1;if(n&4)return Math.max(0,s.indexOf(t))+1;if(n&8)return s.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),i=n&32?{preventScroll:!0}:{},h=0,v=s.length,f;do{if(h>=v||h+v<=0)return 0;let m=u+h;if(n&16)m=(m+v)%v;else{if(m<0)return 3;if(m>=v)return 1}f=s[m],f?.focus(i),h+=c}while(f!==l.activeElement);return n&6&&Un(f)&&f.select(),2}function Re(e,n,r){ye.isServer||Y(t=>{document.addEventListener(e,n,r),t(()=>document.removeEventListener(e,n,r))})}function it(e,n,r){ye.isServer||Y(t=>{window.addEventListener(e,n,r),t(()=>window.removeEventListener(e,n,r))})}function ut(e,n,r=w(()=>!0)){function t(a,l){if(!r.value||a.defaultPrevented)return;let s=l(a);if(s===null||!s.getRootNode().contains(s))return;let c=function u(i){return typeof i=="function"?u(i()):Array.isArray(i)||i instanceof Set?i:[i]}(e);for(let u of c){if(u===null)continue;let i=u instanceof HTMLElement?u:p(u);if(i!=null&&i.contains(s)||a.composed&&a.composedPath().includes(i))return}return!we(s,_e.Loose)&&s.tabIndex!==-1&&a.preventDefault(),n(a,s)}let o=k(null);Re("mousedown",a=>{var l,s;r.value&&(o.value=((s=(l=a.composedPath)==null?void 0:l.call(a))==null?void 0:s[0])||a.target)},!0),Re("click",a=>{o.value&&(t(a,()=>o.value),o.value=null)},!0),it("blur",a=>t(a,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}var ce=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(ce||{});let ge=L({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(e,{slots:n,attrs:r}){return()=>{let{features:t,...o}=e,a={"aria-hidden":(t&2)===2?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(t&4)===4&&(t&2)!==2&&{display:"none"}}};return te({ourProps:a,theirProps:o,slot:{},attrs:r,slots:n,name:"Hidden"})}}});function je(e){return[e.screenX,e.screenY]}function Kn(){let e=k([-1,-1]);return{wasMoved(n){let r=je(n);return e.value[0]===r[0]&&e.value[1]===r[1]?!1:(e.value=r,!0)},update(n){e.value=je(n)}}}var K=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(K||{});function ct(){let e=k(0);return it("keydown",n=>{n.key==="Tab"&&(e.value=n.shiftKey?1:0)}),e}function zn(e,n,r,t){ye.isServer||Y(o=>{e=e??window,e.addEventListener(n,r,t),o(()=>e.removeEventListener(n,r,t))})}let Be=Symbol("PortalParentContext");function Gn(){let e=se(Be,null),n=k([]);function r(a){return n.value.push(a),e&&e.register(a),()=>t(a)}function t(a){let l=n.value.indexOf(a);l!==-1&&n.value.splice(l,1),e&&e.unregister(a)}let o={register:r,unregister:t,portals:n};return[n,L({name:"PortalWrapper",setup(a,{slots:l}){return de(Be,o),()=>{var s;return(s=l.default)==null?void 0:s.call(l)}}})]}function Yn({defaultContainers:e=[],portals:n}={}){let r=k(null),t=ae(r);function o(){var a;let l=[];for(let s of e)s!==null&&(s instanceof HTMLElement?l.push(s):"value"in s&&s.value instanceof HTMLElement&&l.push(s.value));if(n!=null&&n.value)for(let s of n.value)l.push(s);for(let s of(a=t?.querySelectorAll("html > *, body > *"))!=null?a:[])s!==document.body&&s!==document.head&&s instanceof HTMLElement&&s.id!=="headlessui-portal-root"&&(s.contains(p(r))||l.some(c=>s.contains(c))||l.push(s));return l}return{resolveContainers:o,contains(a){return o().some(l=>l.contains(a))},mainTreeNodeRef:r,MainTreeNode(){return J(ge,{features:ce.Hidden,ref:r})}}}let He=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Ve(e){var n,r;let t=(n=e.innerText)!=null?n:"",o=e.cloneNode(!0);if(!(o instanceof HTMLElement))return t;let a=!1;for(let s of o.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))s.remove(),a=!0;let l=a?(r=o.innerText)!=null?r:"":t;return He.test(l)&&(l=l.replace(He,"")),l}function Xn(e){let n=e.getAttribute("aria-label");if(typeof n=="string")return n.trim();let r=e.getAttribute("aria-labelledby");if(r){let t=r.split(" ").map(o=>{let a=document.getElementById(o);if(a){let l=a.getAttribute("aria-label");return typeof l=="string"?l.trim():Ve(a).trim()}return null}).filter(Boolean);if(t.length>0)return t.join(", ")}return Ve(e).trim()}function qn(e){let n=k(""),r=k("");return()=>{let t=p(e);if(!t)return"";let o=t.innerText;if(n.value===o)return r.value;let a=Xn(t).trim().toLowerCase();return n.value=o,r.value=a,a}}var Jn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Jn||{}),Qn=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(Qn||{});function Zn(e){requestAnimationFrame(()=>requestAnimationFrame(e))}let dt=Symbol("MenuContext");function xe(e){let n=se(dt,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,xe),r}return n}let er=L({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(e,{slots:n,attrs:r}){let t=k(1),o=k(null),a=k(null),l=k([]),s=k(""),c=k(null),u=k(1);function i(v=f=>f){let f=c.value!==null?l.value[c.value]:null,m=st(v(l.value.slice()),y=>p(y.dataRef.domRef)),d=f?m.indexOf(f):null;return d===-1&&(d=null),{items:m,activeItemIndex:d}}let h={menuState:t,buttonRef:o,itemsRef:a,items:l,searchQuery:s,activeItemIndex:c,activationTrigger:u,closeMenu:()=>{t.value=1,c.value=null},openMenu:()=>t.value=0,goToItem(v,f,m){let d=i(),y=$n(v===D.Specific?{focus:D.Specific,id:f}:{focus:v},{resolveItems:()=>d.items,resolveActiveIndex:()=>d.activeItemIndex,resolveId:x=>x.id,resolveDisabled:x=>x.dataRef.disabled});s.value="",c.value=y,u.value=m??1,l.value=d.items},search(v){let f=s.value!==""?0:1;s.value+=v.toLowerCase();let m=(c.value!==null?l.value.slice(c.value+f).concat(l.value.slice(0,c.value+f)):l.value).find(y=>y.dataRef.textValue.startsWith(s.value)&&!y.dataRef.disabled),d=m?l.value.indexOf(m):-1;d===-1||d===c.value||(c.value=d,u.value=1)},clearSearch(){s.value=""},registerItem(v,f){let m=i(d=>[...d,{id:v,dataRef:f}]);l.value=m.items,c.value=m.activeItemIndex,u.value=1},unregisterItem(v){let f=i(m=>{let d=m.findIndex(y=>y.id===v);return d!==-1&&m.splice(d,1),m});l.value=f.items,c.value=f.activeItemIndex,u.value=1}};return ut([o,a],(v,f)=>{var m;h.closeMenu(),we(f,_e.Loose)||(v.preventDefault(),(m=p(o))==null||m.focus())},w(()=>t.value===0)),de(dt,h),ot(w(()=>W(t.value,{[0]:G.Open,[1]:G.Closed}))),()=>{let v={open:t.value===0,close:h.closeMenu};return te({ourProps:{},theirProps:e,slot:v,slots:n,attrs:r,name:"Menu"})}}}),tr=L({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:()=>`headlessui-menu-button-${Q()}`}},setup(e,{attrs:n,slots:r,expose:t}){let o=xe("MenuButton");t({el:o.buttonRef,$el:o.buttonRef});function a(u){switch(u.key){case F.Space:case F.Enter:case F.ArrowDown:u.preventDefault(),u.stopPropagation(),o.openMenu(),oe(()=>{var i;(i=p(o.itemsRef))==null||i.focus({preventScroll:!0}),o.goToItem(D.First)});break;case F.ArrowUp:u.preventDefault(),u.stopPropagation(),o.openMenu(),oe(()=>{var i;(i=p(o.itemsRef))==null||i.focus({preventScroll:!0}),o.goToItem(D.Last)});break}}function l(u){switch(u.key){case F.Space:u.preventDefault();break}}function s(u){e.disabled||(o.menuState.value===0?(o.closeMenu(),oe(()=>{var i;return(i=p(o.buttonRef))==null?void 0:i.focus({preventScroll:!0})})):(u.preventDefault(),o.openMenu(),Zn(()=>{var i;return(i=p(o.itemsRef))==null?void 0:i.focus({preventScroll:!0})})))}let c=at(w(()=>({as:e.as,type:n.type})),o.buttonRef);return()=>{var u;let i={open:o.menuState.value===0},{id:h,...v}=e,f={ref:o.buttonRef,id:h,type:c.value,"aria-haspopup":"menu","aria-controls":(u=p(o.itemsRef))==null?void 0:u.id,"aria-expanded":e.disabled?void 0:o.menuState.value===0,onKeydown:a,onKeyup:l,onClick:s};return te({ourProps:f,theirProps:v,slot:i,attrs:n,slots:r,name:"MenuButton"})}}}),nr=L({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:()=>`headlessui-menu-items-${Q()}`}},setup(e,{attrs:n,slots:r,expose:t}){let o=xe("MenuItems"),a=k(null);t({el:o.itemsRef,$el:o.itemsRef}),Rn({container:w(()=>p(o.itemsRef)),enabled:w(()=>o.menuState.value===0),accept(i){return i.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:i.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(i){i.setAttribute("role","none")}});function l(i){var h;switch(a.value&&clearTimeout(a.value),i.key){case F.Space:if(o.searchQuery.value!=="")return i.preventDefault(),i.stopPropagation(),o.search(i.key);case F.Enter:if(i.preventDefault(),i.stopPropagation(),o.activeItemIndex.value!==null){let v=o.items.value[o.activeItemIndex.value];(h=p(v.dataRef.domRef))==null||h.click()}o.closeMenu(),lt(p(o.buttonRef));break;case F.ArrowDown:return i.preventDefault(),i.stopPropagation(),o.goToItem(D.Next);case F.ArrowUp:return i.preventDefault(),i.stopPropagation(),o.goToItem(D.Previous);case F.Home:case F.PageUp:return i.preventDefault(),i.stopPropagation(),o.goToItem(D.First);case F.End:case F.PageDown:return i.preventDefault(),i.stopPropagation(),o.goToItem(D.Last);case F.Escape:i.preventDefault(),i.stopPropagation(),o.closeMenu(),oe(()=>{var v;return(v=p(o.buttonRef))==null?void 0:v.focus({preventScroll:!0})});break;case F.Tab:i.preventDefault(),i.stopPropagation(),o.closeMenu(),oe(()=>Wn(p(o.buttonRef),i.shiftKey?V.Previous:V.Next));break;default:i.key.length===1&&(o.search(i.key),a.value=setTimeout(()=>o.clearSearch(),350));break}}function s(i){switch(i.key){case F.Space:i.preventDefault();break}}let c=rt(),u=w(()=>c!==null?(c.value&G.Open)===G.Open:o.menuState.value===0);return()=>{var i,h;let v={open:o.menuState.value===0},{id:f,...m}=e,d={"aria-activedescendant":o.activeItemIndex.value===null||(i=o.items.value[o.activeItemIndex.value])==null?void 0:i.id,"aria-labelledby":(h=p(o.buttonRef))==null?void 0:h.id,id:f,onKeydown:l,onKeyup:s,role:"menu",tabIndex:0,ref:o.itemsRef};return te({ourProps:d,theirProps:m,slot:v,attrs:n,slots:r,features:ue.RenderStrategy|ue.Static,visible:u.value,name:"MenuItems"})}}}),rr=L({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-menu-item-${Q()}`}},setup(e,{slots:n,attrs:r,expose:t}){let o=xe("MenuItem"),a=k(null);t({el:a,$el:a});let l=w(()=>o.activeItemIndex.value!==null?o.items.value[o.activeItemIndex.value].id===e.id:!1),s=qn(a),c=w(()=>({disabled:e.disabled,get textValue(){return s()},domRef:a}));le(()=>o.registerItem(e.id,c)),Ie(()=>o.unregisterItem(e.id)),Y(()=>{o.menuState.value===0&&l.value&&o.activationTrigger.value!==0&&oe(()=>{var d,y;return(y=(d=p(a))==null?void 0:d.scrollIntoView)==null?void 0:y.call(d,{block:"nearest"})})});function u(d){if(e.disabled)return d.preventDefault();o.closeMenu(),lt(p(o.buttonRef))}function i(){if(e.disabled)return o.goToItem(D.Nothing);o.goToItem(D.Specific,e.id)}let h=Kn();function v(d){h.update(d)}function f(d){h.wasMoved(d)&&(e.disabled||l.value||o.goToItem(D.Specific,e.id,0))}function m(d){h.wasMoved(d)&&(e.disabled||l.value&&o.goToItem(D.Nothing))}return()=>{let{disabled:d}=e,y={active:l.value,disabled:d,close:o.closeMenu},{id:x,...P}=e;return te({ourProps:{id:x,ref:a,role:"menuitem",tabIndex:d===!0?void 0:-1,"aria-disabled":d===!0?!0:void 0,disabled:void 0,onClick:u,onFocus:i,onPointerenter:v,onMouseenter:v,onPointermove:f,onMousemove:f,onPointerleave:m,onMouseleave:m},theirProps:{...r,...P},slot:y,attrs:r,slots:n,name:"MenuItem"})}}});var or=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(or||{});let ft=Symbol("PopoverContext");function Me(e){let n=se(ft,null);if(n===null){let r=new Error(`<${e} /> is missing a parent <${mt.name} /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Me),r}return n}let ar=Symbol("PopoverGroupContext");function pt(){return se(ar,null)}let vt=Symbol("PopoverPanelContext");function lr(){return se(vt,null)}let mt=L({name:"Popover",props:{as:{type:[Object,String],default:"div"}},setup(e,{slots:n,attrs:r,expose:t}){var o;let a=k(null);t({el:a,$el:a});let l=k(1),s=k(null),c=k(null),u=k(null),i=k(null),h=w(()=>ae(a)),v=w(()=>{var _,E;if(!p(s)||!p(i))return!1;for(let ve of document.querySelectorAll("body > *"))if(Number(ve?.contains(p(s)))^Number(ve?.contains(p(i))))return!0;let M=fe(),R=M.indexOf(p(s)),pe=(R+M.length-1)%M.length,ht=(R+1)%M.length,gt=M[pe],bt=M[ht];return!((_=p(i))!=null&&_.contains(gt))&&!((E=p(i))!=null&&E.contains(bt))}),f={popoverState:l,buttonId:k(null),panelId:k(null),panel:i,button:s,isPortalled:v,beforePanelSentinel:c,afterPanelSentinel:u,togglePopover(){l.value=W(l.value,{[0]:1,[1]:0})},closePopover(){l.value!==1&&(l.value=1)},close(_){f.closePopover();let E=(()=>_?_ instanceof HTMLElement?_:_.value instanceof HTMLElement?p(_):p(f.button):p(f.button))();E?.focus()}};de(ft,f),ot(w(()=>W(l.value,{[0]:G.Open,[1]:G.Closed})));let m={buttonId:f.buttonId,panelId:f.panelId,close(){f.closePopover()}},d=pt(),y=d?.registerPopover,[x,P]=Gn(),S=Yn({portals:x,defaultContainers:[s,i]});function C(){var _,E,M,R;return(R=d?.isFocusWithinPopoverGroup())!=null?R:((_=h.value)==null?void 0:_.activeElement)&&(((E=p(s))==null?void 0:E.contains(h.value.activeElement))||((M=p(i))==null?void 0:M.contains(h.value.activeElement)))}return Y(()=>y?.(m)),zn((o=h.value)==null?void 0:o.defaultView,"focus",_=>{var E,M;_.target!==window&&_.target instanceof HTMLElement&&l.value===0&&(C()||s&&i&&(S.contains(_.target)||(E=p(f.beforePanelSentinel))!=null&&E.contains(_.target)||(M=p(f.afterPanelSentinel))!=null&&M.contains(_.target)||f.closePopover()))},!0),ut(S.resolveContainers,(_,E)=>{var M;f.closePopover(),we(E,_e.Loose)||(_.preventDefault(),(M=p(s))==null||M.focus())},w(()=>l.value===0)),()=>{let _={open:l.value===0,close:f.close};return J(P,{},()=>te({theirProps:{...e,...r},ourProps:{ref:a},slot:_,slots:n,attrs:r,name:"Popover"}))}}}),sr=L({name:"PopoverButton",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:()=>`headlessui-popover-button-${Q()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let o=Me("PopoverButton"),a=w(()=>ae(o.button));t({el:o.button,$el:o.button}),le(()=>{o.buttonId.value=e.id}),Ie(()=>{o.buttonId.value=null});let l=pt(),s=l?.closeOthers,c=lr(),u=w(()=>c===null?!1:c.value===o.panelId.value),i=k(null),h=`headlessui-focus-sentinel-${Q()}`;u.value||Y(()=>{o.button.value=i.value});let v=at(w(()=>({as:e.as,type:n.type})),i);function f(S){var C,_,E,M,R;if(u.value){if(o.popoverState.value===1)return;switch(S.key){case F.Space:case F.Enter:S.preventDefault(),(_=(C=S.target).click)==null||_.call(C),o.closePopover(),(E=p(o.button))==null||E.focus();break}}else switch(S.key){case F.Space:case F.Enter:S.preventDefault(),S.stopPropagation(),o.popoverState.value===1&&s?.(o.buttonId.value),o.togglePopover();break;case F.Escape:if(o.popoverState.value!==0)return s?.(o.buttonId.value);if(!p(o.button)||(M=a.value)!=null&&M.activeElement&&!((R=p(o.button))!=null&&R.contains(a.value.activeElement)))return;S.preventDefault(),S.stopPropagation(),o.closePopover();break}}function m(S){u.value||S.key===F.Space&&S.preventDefault()}function d(S){var C,_;e.disabled||(u.value?(o.closePopover(),(C=p(o.button))==null||C.focus()):(S.preventDefault(),S.stopPropagation(),o.popoverState.value===1&&s?.(o.buttonId.value),o.togglePopover(),(_=p(o.button))==null||_.focus()))}function y(S){S.preventDefault(),S.stopPropagation()}let x=ct();function P(){let S=p(o.panel);if(!S)return;function C(){W(x.value,{[K.Forwards]:()=>q(S,V.First),[K.Backwards]:()=>q(S,V.Last)})===he.Error&&q(fe().filter(_=>_.dataset.headlessuiFocusGuard!=="true"),W(x.value,{[K.Forwards]:V.Next,[K.Backwards]:V.Previous}),{relativeTo:p(o.button)})}C()}return()=>{let S=o.popoverState.value===0,C={open:S},{id:_,...E}=e,M=u.value?{ref:i,type:v.value,onKeydown:f,onClick:d}:{ref:i,id:_,type:v.value,"aria-expanded":e.disabled?void 0:o.popoverState.value===0,"aria-controls":p(o.panel)?o.panelId.value:void 0,disabled:e.disabled?!0:void 0,onKeydown:f,onKeyup:m,onClick:d,onMousedown:y};return J(B,[te({ourProps:M,theirProps:{...n,...E},slot:C,attrs:n,slots:r,name:"PopoverButton"}),S&&!u.value&&o.isPortalled.value&&J(ge,{id:h,features:ce.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:P})])}}}),ir=L({name:"PopoverPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},focus:{type:Boolean,default:!1},id:{type:String,default:()=>`headlessui-popover-panel-${Q()}`}},inheritAttrs:!1,setup(e,{attrs:n,slots:r,expose:t}){let{focus:o}=e,a=Me("PopoverPanel"),l=w(()=>ae(a.panel)),s=`headlessui-focus-sentinel-before-${Q()}`,c=`headlessui-focus-sentinel-after-${Q()}`;t({el:a.panel,$el:a.panel}),le(()=>{a.panelId.value=e.id}),Ie(()=>{a.panelId.value=null}),de(vt,a.panelId),Y(()=>{var y,x;if(!o||a.popoverState.value!==0||!a.panel)return;let P=(y=l.value)==null?void 0:y.activeElement;(x=p(a.panel))!=null&&x.contains(P)||q(p(a.panel),V.First)});let u=rt(),i=w(()=>u!==null?(u.value&G.Open)===G.Open:a.popoverState.value===0);function h(y){var x,P;switch(y.key){case F.Escape:if(a.popoverState.value!==0||!p(a.panel)||l.value&&!((x=p(a.panel))!=null&&x.contains(l.value.activeElement)))return;y.preventDefault(),y.stopPropagation(),a.closePopover(),(P=p(a.button))==null||P.focus();break}}function v(y){var x,P,S,C,_;let E=y.relatedTarget;E&&p(a.panel)&&((x=p(a.panel))!=null&&x.contains(E)||(a.closePopover(),((S=(P=p(a.beforePanelSentinel))==null?void 0:P.contains)!=null&&S.call(P,E)||(_=(C=p(a.afterPanelSentinel))==null?void 0:C.contains)!=null&&_.call(C,E))&&E.focus({preventScroll:!0})))}let f=ct();function m(){let y=p(a.panel);if(!y)return;function x(){W(f.value,{[K.Forwards]:()=>{var P;q(y,V.First)===he.Error&&((P=p(a.afterPanelSentinel))==null||P.focus())},[K.Backwards]:()=>{var P;(P=p(a.button))==null||P.focus({preventScroll:!0})}})}x()}function d(){let y=p(a.panel);if(!y)return;function x(){W(f.value,{[K.Forwards]:()=>{let P=p(a.button),S=p(a.panel);if(!P)return;let C=fe(),_=C.indexOf(P),E=C.slice(0,_+1),M=[...C.slice(_+1),...E];for(let R of M.slice())if(R.dataset.headlessuiFocusGuard==="true"||S!=null&&S.contains(R)){let pe=M.indexOf(R);pe!==-1&&M.splice(pe,1)}q(M,V.First,{sorted:!1})},[K.Backwards]:()=>{var P;q(y,V.Previous)===he.Error&&((P=p(a.button))==null||P.focus())}})}x()}return()=>{let y={open:a.popoverState.value===0,close:a.close},{id:x,focus:P,...S}=e,C={ref:a.panel,id:x,onKeydown:h,onFocusout:o&&a.popoverState.value===0?v:void 0,tabIndex:-1};return te({ourProps:C,theirProps:{...n,...S},attrs:n,slot:y,slots:{...r,default:(..._)=>{var E;return[J(B,[i.value&&a.isPortalled.value&&J(ge,{id:s,ref:a.beforePanelSentinel,features:ce.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:m}),(E=r.default)==null?void 0:E.call(r,..._),i.value&&a.isPortalled.value&&J(ge,{id:c,ref:a.afterPanelSentinel,features:ce.Focusable,"data-headlessui-focus-guard":!0,as:"button",type:"button",onFocus:d})])]}},features:ue.RenderStrategy|ue.Static,visible:i.value,name:"PopoverPanel"})}}});const ur=e=>{const n=w(()=>e.categoryTree.pictures?.[0]),r=w(()=>e.categoryTree.subcategories.filter(({subcategories:c})=>c.length)),t=w(()=>{let c=r.value.length;return n.value&&(c+=1),r.value.length<e.categoryTree.subcategories.length&&(c+=1),c}),o=w(()=>(e.megaMenuMaxCols||7)>=t.value),a=w(()=>o.value?e.categoryTree.subcategories.filter(({subcategories:c})=>!c.length):e.categoryTree.subcategories),l=w(()=>o.value?e.categoryTree.subcategories.filter(({subcategories:c})=>c.length):e.categoryTree.subcategories),s=w(()=>o.value?t.value:n.value?2:1);return{categoryPicture:n,isMegaMenu:o,subcategoryLinks:a,subcategoryCols:l,countMenuCols:s}},cr=L({__name:"ShopHeaderSubmenu",props:{categoryTree:{},megaMenuMaxCols:{}},setup(e,{expose:n}){n();const r=e,{categoryPicture:t,subcategoryLinks:o,subcategoryCols:a,countMenuCols:l}=ur(r),s={props:r,categoryPicture:t,subcategoryLinks:o,subcategoryCols:a,countMenuCols:l,get Popover(){return mt},get PopoverButton(){return sr},get PopoverPanel(){return ir}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),dr={class:"relative"},fr={class:"flex gap-6 w-full"},pr={key:0,class:"flex-1"},vr=["href"],mr=["href"],hr={class:"text-sm text-base-600 mt-1 mb-1.5"},gr=["href"],br=["href"];function yr(e,n,r,t,o,a){const l=Z("AImg"),s=Z("Fade");return b(),N(t.Popover,null,{default:T(({open:c})=>[O(t.PopoverButton,{class:"outline-none"},{default:T(()=>[ee(e.$slots,"button",We(Ke({open:c})))]),_:2},1024),g("div",dr,[O(s,null,{default:T(()=>[O(t.PopoverPanel,{class:$(["absolute z-20 top-3 left-1/2 -translate-x-1/2 !transform px-6 py-4 rounded backdrop-blur-md shadow bg-white/80 text-base text-base-700",t.countMenuCols===1?"w-60":t.countMenuCols===2?`w-screen ${t.categoryPicture?"max-w-lg":"max-w-sm"}`:t.countMenuCols===3?`w-screen ${t.categoryPicture?"max-w-xl":"max-w-md"}`:t.countMenuCols<6?"w-screen max-w-3xl":"w-screen max-w-5xl"])},{default:T(()=>[g("div",fr,[t.subcategoryLinks.length?(b(),I("ul",pr,[(b(!0),I(B,null,z(t.subcategoryLinks,(u,i)=>(b(),I("li",{key:`link-${i}`,class:$(t.subcategoryLinks.length>10?"text-sm mb-1":"mb-2")},[g("a",{href:`/${u.slug}`,class:"hover:text-primary"},[g("h3",null,A(u.name),1)],8,vr)],2))),128))])):j("",!0),(b(!0),I(B,null,z(t.subcategoryCols,(u,i)=>(b(),I("div",{key:u._id,class:"flex-1"},[g("a",{href:`/${u.slug}`,class:"hover:text-primary"},[g("h3",null,A(u.name),1)],8,mr),g("ul",hr,[(b(!0),I(B,null,z(u.subcategories,(h,v)=>(b(),I("li",{key:`${i}-${v}`,class:"mb-0.5"},[g("a",{href:`/${h.slug}`,class:"hover:text-primary hover:underline"},[g("h3",null,A(h.name),1)],8,gr)]))),128))])]))),128)),t.categoryPicture?(b(),I("div",{key:1,class:$(t.countMenuCols===2?"basis-1/2":t.countMenuCols<5?"basis-2/5":"basis-1/3")},[O(l,{picture:t.categoryPicture,class:"ml-auto rounded"},null,8,["picture"])],2)):j("",!0)]),g("a",{href:`/${r.categoryTree.slug}`,class:"block mt-1 text-xs text-base-600 leading-snug underline"},A("Ver toda a categoria $1".replace("$1",r.categoryTree.name)),9,br)]),_:1},8,["class"])]),_:1})])]),_:3})}const _r=U(cr,[["render",yr]]),wr=L({__name:"ShopHeaderMenu",props:{inlineMenuTrees:{}},setup(e,{expose:n}){n();const r=e,t=w(()=>!!r.inlineMenuTrees.find(({subcategories:a})=>!a.length)),o={props:r,hasOneLevelSubcategories:t,ShopHeaderSubmenu:_r};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),xr={class:"hover:text-primary group"},Sr=["href"],kr={class:"inline"};function Pr(e,n,r,t,o,a){return b(),I("nav",null,[g("ul",{class:$(["flex gap-4 xl:gap-5 text-base-700",r.inlineMenuTrees.length<7?"text-base":"text-sm"])},[(b(!0),I(B,null,z(r.inlineMenuTrees,(l,s)=>(b(),I("li",{key:s},[l.subcategories.length?(b(),N(t.ShopHeaderSubmenu,{key:0,"category-tree":l},{button:T(({open:c})=>[g("span",xr,[g("h3",{class:$(["group-hover:underline inline",[r.inlineMenuTrees.length<7?"decoration-2":null,c?"underline":null]])},A(l.name),3),t.hasOneLevelSubcategories?(b(),I("i",{key:0,class:$(["i-chevron-down ml-1 transition-transform text-base-400 group-hover:text-primary-subtle",c?"rotate-180":null])},null,2)):j("",!0)])]),_:2},1032,["category-tree"])):(b(),I("a",{key:1,href:`/${l.slug}`,class:$(["hover:text-primary hover:underline",r.inlineMenuTrees.length<7?"decoration-2":null])},[g("h3",kr,A(l.name),1)],10,Sr))]))),128))],2)])}const Ir=U(wr,[["render",Pr]]),Er={},Tr={class:"w-full h-40 bg-base-300"};function Mr(e,n){return b(),I("div",Tr)}const Or=U(Er,[["render",Mr]]),Cr=L({__name:"AccountMenu",props:{serviceLinks:{}},setup(e,{expose:n}){n();const r={get Menu(){return er},get MenuButton(){return tr},get MenuItems(){return nr},get MenuItem(){return rr},get socialNetworks(){return be},get customerName(){return me},get initializeFirebaseAuth(){return Je},get isLogged(){return Ye},get logout(){return Te},AccountLink:Qe,SocialNetworkLink:Ze};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Fr={key:0},Ar={class:"p-3 text-base-600"},$r={class:"list-none"},Lr=g("i",{class:"i-favorites mr-1"},null,-1),Nr={class:"flex justify-center gap-2 p-2 text-base-500 text-base"},Dr=g("span",{class:"text-base-600"},A("Sair"),-1),Rr=g("i",{class:"i-logout text-lg ml-1"},null,-1),jr=[Dr,Rr];function Br(e,n,r,t,o,a){const l=Z("ALink"),s=Z("Fade");return b(),N(t.Menu,{as:"div",class:"relative text-center text-sm text-base-800"},{default:T(({open:c})=>[c?(b(),I("div",Fr,[n[0]||(Ce(-1),n[0]=g("span",null,[X(A(t.initializeFirebaseAuth()),1)]),Ce(1),n[0])])):j("",!0),O(t.MenuButton,{class:"outline-none"},{default:T(()=>[ee(e.$slots,"button",We(Ke({open:c})))]),_:2},1024),O(s,null,{default:T(()=>[O(t.MenuItems,{class:"absolute -right-8 mt-2 w-56 rounded shadow ring-1 ring-black/5 bg-white divide-y divide-base-100 focus:outline-none"},{default:T(()=>[g("div",Ar,[X(A(`Olá ${t.customerName||"Visitante"}`)+" ",1),O(t.AccountLink,{role:"button",class:"ui-btn-sm ui-btn-primary block my-1"},{default:T(()=>[X(A("Acessar minha conta"))]),_:1}),t.isLogged?j("",!0):(b(),N(t.AccountLink,{key:0,"is-sign-up":"",class:"ui-link block"},{default:T(()=>[X(A("Criar uma conta"))]),_:1}))]),g("ul",$r,[O(t.MenuItem,{as:"li"},{default:T(({active:u})=>[O(t.AccountLink,{to:"orders",class:$(["block p-2",u?"bg-base-100 text-primary":null])},{default:T(()=>[X(A("Meus pedidos"))]),_:2},1032,["class"])]),_:1}),O(t.MenuItem,{as:"li"},{default:T(({active:u})=>[O(t.AccountLink,{to:"favorites",class:$(["block p-2",u?"bg-base-100 text-primary":null])},{default:T(()=>[Lr,X(" "+A("Meus favoritos"))]),_:2},1032,["class"])]),_:1}),(b(!0),I(B,null,z(r.serviceLinks,({title:u,href:i},h)=>(b(),N(t.MenuItem,{as:"li",key:`s-${h}`},{default:T(({active:v})=>[O(l,{href:i,class:$(["block p-2",v?"bg-base-100 text-primary":null])},{default:T(()=>[X(A(u),1)]),_:2},1032,["href","class"])]),_:2},1024))),128)),O(t.MenuItem,{as:"li"},{default:T(()=>[g("div",Nr,[(b(!0),I(B,null,z(t.socialNetworks,(u,i)=>(b(),I("span",{key:i},[O(t.SocialNetworkLink,{network:i,class:"p-1 hover:text-primary"},null,8,["network"])]))),128))])]),_:1}),t.isLogged?(b(),N(t.MenuItem,{key:0,as:"li"},{default:T(()=>[g("button",{onClick:n[1]||(n[1]=(...u)=>t.logout&&t.logout(...u)),class:"p-2 text-right text-base-800"},jr)]),_:1})):j("",!0)])]),_:1})]),_:1})]),_:3})}const Hr=U(Cr,[["render",Br]]),Vr=L({__name:"ShopHeader",props:{serviceLinks:{},categories:{},menuCategorySlugs:{},menuRandomCategories:{},isAlphabeticalSortSubmenu:{type:Boolean}},setup(e,{expose:n}){n();const r=e,t=k(null),{isSticky:o,positionY:a,categoryTrees:l,inlineMenuTrees:s}=Nt({...r,header:t}),c=k(!1),u=k(!1),i={props:r,header:t,isSticky:o,positionY:a,categoryTrees:l,inlineMenuTrees:s,isSidenavOpen:c,isSearchOpen:u,Drawer:Wt,ShopSidenav:En,ShopHeaderMenu:Ir,SearchModal:Or,AccountMenu:Hr};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Ur={class:"container 2xl:max-w-7xl mx-auto px-1 lg:pr-3 lg:pl-5 xl:pr-7 xl:pl-9 2xl:pr-0 2xl:pl-2 flex md:grid grid-flow-col grid-cols-3 lg:grid-cols-none lg:auto-cols-max justify-between items-center"},Wr={class:"basis-1/4 lg:hidden"},Kr={class:"basis-1/4 px-2 flex justify-end items-center gap-3 lg:gap-4 text-base-800"},zr=g("i",{class:"i-search w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"},null,-1),Gr=[zr],Yr=g("button",{"aria-label":"Abrir carrinho"},[g("i",{class:"i-shopping-cart w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"})],-1);function Xr(e,n,r,t,o,a){return b(),I("header",{ref:"header",class:$(["relative top-0 z-50 transition-colors",[t.isSticky&&!t.isSidenavOpen?"bg-white/80":"bg-white",t.isSticky?"backdrop-blur-md shadow py-2 md:py-3":"py-3 sm:py-4 md:py-5"]])},[g("div",Ur,[g("div",Wr,[g("button",{class:"px-2 my-1","aria-label":"Abrir/fechar menu",onClick:n[0]||(n[0]=l=>t.isSidenavOpen=!t.isSidenavOpen)},[g("i",{class:$(["text-base-500 text-3xl",t.isSidenavOpen?"i-close":"i-menu"])},null,2)])]),ee(e.$slots,"logo"),O(t.ShopHeaderMenu,Fe({class:"hidden lg:block"},{inlineMenuTrees:t.inlineMenuTrees}),null,16),g("div",Kr,[g("button",{"aria-label":"Buscar produtos",onClick:n[1]||(n[1]=l=>t.isSearchOpen=!t.isSearchOpen)},Gr),O(t.AccountMenu,{class:"hidden sm:block","aria-label":"Minha conta","service-links":r.serviceLinks},{button:T(({open:l})=>[g("i",{class:$(["i-account w-7 h-7 hover:text-primary hover:scale-110 active:scale-125",l?"text-black scale-110":null])},null,2)]),_:1},8,["service-links"]),Yr])]),O(t.Drawer,{modelValue:t.isSidenavOpen,"onUpdate:modelValue":n[2]||(n[2]=l=>t.isSidenavOpen=l),"has-close-button":!1,position:"absolute",class:$(t.isSticky?"mt-2 md:mt-3":"mt-3 sm:mt-4 md:mt-5"),style:Ue({height:`calc(100vh - ${t.positionY}px + .5rem)`})},{default:T(()=>[O(t.ShopSidenav,Fe({class:"bg-white pt-6"},{categoryTrees:t.categoryTrees}),null,16)]),_:1},8,["modelValue","class","style"]),O(t.Drawer,{modelValue:t.isSearchOpen,"onUpdate:modelValue":n[3]||(n[3]=l=>t.isSearchOpen=l),"has-close-button":!1,placement:"top"},{default:T(()=>[O(t.SearchModal)]),_:1},8,["modelValue"])],2)}const ro=U(Vr,[["render",Xr]]);export{ro as default};
|