@wix/agent-skills 1.16.3 → 1.18.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/package.json +1 -1
- package/skills/wix-app/SKILL.md +115 -12
- package/skills/wix-app/references/APP_MARKET_REVIEW.md +1 -1
- package/skills/wix-app/references/BACKEND_API.md +18 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +6 -0
- package/skills/wix-app/references/DASHBOARD_MODAL.md +10 -2
- package/skills/wix-app/references/DASHBOARD_PAGE.md +32 -70
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +145 -127
- package/skills/wix-app/references/SITE_PLUGIN.md +14 -2
- package/skills/wix-app/references/WIX_PATTERNS_DOCS.md +74 -68
- package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +2 -2
- package/skills/wix-app/references/dashboard-page/COLLECTION_TOOLKIT.md +79 -0
- package/skills/wix-app/references/dashboard-page/ENTITY_PAGE_TOOLKIT.md +73 -0
- package/skills/wix-app/references/dashboard-page/PATTERNS_BUNDLE_READING.md +52 -0
- package/skills/wix-app/references/dashboard-page/UX_SUCCESS_MODEL.md +184 -0
- package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +182 -99
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +94 -49
- package/skills/wix-app/references/editor-react-component/BRANDED-COMPONENTS.md +16 -6
- package/skills/wix-app/references/editor-react-component/BROWSER-SUPPORT.md +56 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +275 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +35 -40
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +167 -445
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +56 -29
- package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +53 -158
- package/skills/wix-app/references/editor-react-component/EDITOR-EXTENSION-CONFIGURATION.md +78 -0
- package/skills/wix-app/references/editor-react-component/FUNCTION-HANDLERS.md +42 -134
- package/skills/wix-app/references/editor-react-component/MANIFEST-ERRORS.md +11 -3
- package/skills/wix-app/references/editor-react-component/PARTS.md +46 -24
- package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +63 -179
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +79 -163
- package/skills/wix-app/references/editor-react-component/SITE-CONTEXT-HOOKS.md +36 -21
- package/skills/wix-app/references/editor-react-component/SSR.md +30 -99
- package/skills/wix-base44-connector/SKILL.md +156 -50
- package/skills/wix-base44-connector/references/CAPABILITY_MAP.md +78 -0
- package/skills/wix-base44-connector/scripts/utils.js +239 -45
- package/skills/wix-headless/entry/bootstrap.mjs +9 -2
- package/skills/wix-headless/entry/skill.md +1 -1
- package/skills/wix-headless/references/CAPABILITIES.md +9 -1
- package/skills/wix-headless/references/DESIGN.md +1 -0
- package/skills/wix-headless/references/DISCOVERY.md +2 -1
- package/skills/wix-headless/references/IMAGE_GENERATION.md +1 -0
- package/skills/wix-headless/references/SDK_HANDOFF.md +5 -2
- package/skills/wix-headless/references/SEED.md +2 -1
- package/skills/wix-headless/references/SETUP.md +1 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +2 -2
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +68 -31
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +26 -10
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +8 -8
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +1 -1
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +1 -1
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +10 -8
- package/skills/wix-headless/references/inline-recipes/how-to-code-rentals.md +254 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +27 -24
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +13 -0
- package/skills/wix-headless/references/inline-recipes/setup-rentals.md +254 -0
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +5 -0
- package/skills/wix-headless/references/non-astro.md +1 -1
- package/skills/wix-headless-fast/SKILL.md +166 -0
- package/skills/wix-headless-fast/entry/skill.md +99 -0
- package/skills/wix-headless-fast/install/deploy.mjs +433 -0
- package/skills/wix-headless-fast/install/fast-path.mjs +141 -0
- package/skills/wix-headless-fast/references/blog/INSTRUCTIONS.md +137 -0
- package/skills/wix-headless-fast/references/blog/app/components/blog/BlogFeedView.tsx +137 -0
- package/skills/wix-headless-fast/references/blog/app/components/blog/PostView.tsx +113 -0
- package/skills/wix-headless-fast/references/blog/app/components/blog/RichContent.tsx +42 -0
- package/skills/wix-headless-fast/references/blog/app/hooks/blog/useBlogFeed.ts +123 -0
- package/skills/wix-headless-fast/references/blog/app/hooks/blog/usePost.ts +70 -0
- package/skills/wix-headless-fast/references/blog/app/wix/blog/posts.ts +99 -0
- package/skills/wix-headless-fast/references/blog/app/wix/blog/taxonomy.ts +76 -0
- package/skills/wix-headless-fast/references/blog/app/wix/blog/types.ts +62 -0
- package/skills/wix-headless-fast/references/blog/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/blog/app-astro/pages/blog/[...slug].astro +99 -0
- package/skills/wix-headless-fast/references/blog/app-astro/pages/blog.astro +24 -0
- package/skills/wix-headless-fast/references/blog/lock/astro/package-lock.json +16156 -0
- package/skills/wix-headless-fast/references/blog/seed/SEED.md +72 -0
- package/skills/wix-headless-fast/references/blog/seed/seed-blog.mjs +287 -0
- package/skills/wix-headless-fast/references/bookings/INSTRUCTIONS.md +129 -0
- package/skills/wix-headless-fast/references/bookings/app/components/bookings/ServiceBookingView.tsx +143 -0
- package/skills/wix-headless-fast/references/bookings/app/components/bookings/ServicesView.tsx +119 -0
- package/skills/wix-headless-fast/references/bookings/app/hooks/bookings/useBookingFlow.ts +138 -0
- package/skills/wix-headless-fast/references/bookings/app/hooks/bookings/useServices.ts +54 -0
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/booking.ts +206 -0
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/services.ts +96 -0
- package/skills/wix-headless-fast/references/bookings/app/wix/bookings/types.ts +70 -0
- package/skills/wix-headless-fast/references/bookings/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/bookings/app-astro/pages/services/[slug].astro +76 -0
- package/skills/wix-headless-fast/references/bookings/app-astro/pages/services.astro +22 -0
- package/skills/wix-headless-fast/references/bookings/lock/astro/package-lock.json +11962 -0
- package/skills/wix-headless-fast/references/bookings/seed/SEED.md +61 -0
- package/skills/wix-headless-fast/references/bookings/seed/seed-bookings.mjs +302 -0
- package/skills/wix-headless-fast/references/cms/INSTRUCTIONS.md +179 -0
- package/skills/wix-headless-fast/references/cms/app/hooks/cms/useCollection.ts +83 -0
- package/skills/wix-headless-fast/references/cms/app/hooks/cms/useItem.ts +57 -0
- package/skills/wix-headless-fast/references/cms/app/wix/cms/items.ts +151 -0
- package/skills/wix-headless-fast/references/cms/app/wix/cms/types.ts +75 -0
- package/skills/wix-headless-fast/references/cms/app-astro/layouts/SiteLayout.astro +41 -0
- package/skills/wix-headless-fast/references/cms/lock/astro/package-lock.json +11262 -0
- package/skills/wix-headless-fast/references/cms/seed/SEED.md +103 -0
- package/skills/wix-headless-fast/references/cms/seed/seed-cms.mjs +324 -0
- package/skills/wix-headless-fast/references/events/INSTRUCTIONS.md +149 -0
- package/skills/wix-headless-fast/references/events/app/components/events/EventConfirmationView.tsx +66 -0
- package/skills/wix-headless-fast/references/events/app/components/events/EventRegistrationView.tsx +176 -0
- package/skills/wix-headless-fast/references/events/app/components/events/EventsView.tsx +118 -0
- package/skills/wix-headless-fast/references/events/app/hooks/events/useEventRegistration.ts +117 -0
- package/skills/wix-headless-fast/references/events/app/hooks/events/useEvents.ts +59 -0
- package/skills/wix-headless-fast/references/events/app/wix/events/events.ts +136 -0
- package/skills/wix-headless-fast/references/events/app/wix/events/registration.ts +128 -0
- package/skills/wix-headless-fast/references/events/app/wix/events/types.ts +61 -0
- package/skills/wix-headless-fast/references/events/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/events/app-astro/pages/event-confirmation.astro +12 -0
- package/skills/wix-headless-fast/references/events/app-astro/pages/events/[slug].astro +80 -0
- package/skills/wix-headless-fast/references/events/app-astro/pages/events.astro +21 -0
- package/skills/wix-headless-fast/references/events/lock/astro/package-lock.json +11884 -0
- package/skills/wix-headless-fast/references/events/seed/SEED.md +86 -0
- package/skills/wix-headless-fast/references/events/seed/seed-events.mjs +276 -0
- package/skills/wix-headless-fast/references/forms/INSTRUCTIONS.md +150 -0
- package/skills/wix-headless-fast/references/forms/app/hooks/forms/useWixForm.ts +317 -0
- package/skills/wix-headless-fast/references/forms/app/wix/forms/forms.ts +269 -0
- package/skills/wix-headless-fast/references/forms/app/wix/forms/submissions.ts +231 -0
- package/skills/wix-headless-fast/references/forms/app/wix/forms/types.ts +135 -0
- package/skills/wix-headless-fast/references/forms/lock/astro/package-lock.json +10593 -0
- package/skills/wix-headless-fast/references/forms/seed/SEED.md +108 -0
- package/skills/wix-headless-fast/references/forms/seed/seed-forms.mjs +320 -0
- package/skills/wix-headless-fast/references/members/INSTRUCTIONS.md +63 -0
- package/skills/wix-headless-fast/references/members/app/components/members/AccountView.tsx +60 -0
- package/skills/wix-headless-fast/references/members/app/components/members/LoginForm.tsx +155 -0
- package/skills/wix-headless-fast/references/members/app/components/members/MemberMenu.tsx +78 -0
- package/skills/wix-headless-fast/references/members/app/components/members/RequireAuth.tsx +47 -0
- package/skills/wix-headless-fast/references/members/app/hooks/members/useMember.ts +66 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/auth.ts +88 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/client.ts +53 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/member-store.ts +122 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/members.ts +50 -0
- package/skills/wix-headless-fast/references/members/app/wix/members/types.ts +21 -0
- package/skills/wix-headless-fast/references/members/app-astro/layouts/SiteLayout.astro +42 -0
- package/skills/wix-headless-fast/references/members/app-astro/pages/account.astro +10 -0
- package/skills/wix-headless-fast/references/members/app-astro/pages/login.astro +11 -0
- package/skills/wix-headless-fast/references/members/lock/astro/package-lock.json +10329 -0
- package/skills/wix-headless-fast/references/members/seed/SEED.md +39 -0
- package/skills/wix-headless-fast/references/members/seed/seed-members.mjs +94 -0
- package/skills/wix-headless-fast/references/portfolio/INSTRUCTIONS.md +134 -0
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/CollectionProjectsView.tsx +110 -0
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/CollectionsView.tsx +90 -0
- package/skills/wix-headless-fast/references/portfolio/app/components/portfolio/ProjectDetailView.tsx +115 -0
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useCollectionProjects.ts +59 -0
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useCollections.ts +39 -0
- package/skills/wix-headless-fast/references/portfolio/app/hooks/portfolio/useProjectDetail.ts +58 -0
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/portfolio.ts +165 -0
- package/skills/wix-headless-fast/references/portfolio/app/wix/portfolio/types.ts +55 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/layouts/SiteLayout.astro +40 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/portfolio/[slug].astro +30 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/portfolio.astro +21 -0
- package/skills/wix-headless-fast/references/portfolio/app-astro/pages/projects/[slug].astro +29 -0
- package/skills/wix-headless-fast/references/portfolio/lock/astro/package-lock.json +10197 -0
- package/skills/wix-headless-fast/references/portfolio/seed/SEED.md +78 -0
- package/skills/wix-headless-fast/references/portfolio/seed/seed-portfolio.mjs +258 -0
- package/skills/wix-headless-fast/references/pricing-plans/INSTRUCTIONS.md +133 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/PlanDetailView.tsx +58 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/components/pricing-plans/PlansView.tsx +126 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/hooks/pricing-plans/usePlanPurchase.ts +37 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/hooks/pricing-plans/usePlans.ts +39 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/plans.ts +75 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/purchase.ts +45 -0
- package/skills/wix-headless-fast/references/pricing-plans/app/wix/pricing-plans/types.ts +30 -0
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/layouts/SiteLayout.astro +41 -0
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/pages/plans/[slug].astro +40 -0
- package/skills/wix-headless-fast/references/pricing-plans/app-astro/pages/plans.astro +21 -0
- package/skills/wix-headless-fast/references/pricing-plans/lock/astro/package-lock.json +11226 -0
- package/skills/wix-headless-fast/references/pricing-plans/seed/SEED.md +71 -0
- package/skills/wix-headless-fast/references/pricing-plans/seed/seed-pricing-plans.mjs +279 -0
- package/skills/wix-headless-fast/references/restaurants/INSTRUCTIONS.md +165 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/MenuView.tsx +142 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/OrderCartButton.tsx +26 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/OrderCartDrawer.tsx +121 -0
- package/skills/wix-headless-fast/references/restaurants/app/components/restaurants/ReservationView.tsx +155 -0
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useMenus.ts +55 -0
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useOrderCart.ts +43 -0
- package/skills/wix-headless-fast/references/restaurants/app/hooks/restaurants/useReservation.ts +177 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/menu.ts +165 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/order-store.ts +103 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/ordering.ts +254 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/reservations.ts +146 -0
- package/skills/wix-headless-fast/references/restaurants/app/wix/restaurants/types.ts +168 -0
- package/skills/wix-headless-fast/references/restaurants/app-astro/layouts/SiteLayout.astro +47 -0
- package/skills/wix-headless-fast/references/restaurants/app-astro/pages/menu.astro +22 -0
- package/skills/wix-headless-fast/references/restaurants/app-astro/pages/reservations.astro +12 -0
- package/skills/wix-headless-fast/references/restaurants/lock/astro/package-lock.json +12560 -0
- package/skills/wix-headless-fast/references/restaurants/seed/SEED.md +81 -0
- package/skills/wix-headless-fast/references/restaurants/seed/seed-restaurants.mjs +479 -0
- package/skills/wix-headless-fast/references/shared/CONTENT.md +22 -0
- package/skills/wix-headless-fast/references/shared/CUSTOM_OPERATIONS.md +73 -0
- package/skills/wix-headless-fast/references/shared/DESIGN.md +26 -0
- package/skills/wix-headless-fast/references/shared/app/styles/global.css +52 -0
- package/skills/wix-headless-fast/references/shared/app/wix/config.ts +15 -0
- package/skills/wix-headless-fast/references/shared/app/wix/media.ts +27 -0
- package/skills/wix-headless-fast/references/shared/app/wix/money.ts +24 -0
- package/skills/wix-headless-fast/references/shared/app/wix/sdk.ts +76 -0
- package/skills/wix-headless-fast/references/shared/capabilities/media-upload/app/wix/media-upload/client.ts +46 -0
- package/skills/wix-headless-fast/references/shared/capabilities/media-upload/app-astro/pages/api/wix/media-upload.ts +46 -0
- package/skills/wix-headless-fast/references/shared/seed/images.mjs +145 -0
- package/skills/wix-headless-fast/references/storefront/INSTRUCTIONS.md +149 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/CartButton.tsx +26 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/CartDrawer.tsx +121 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ProductCard.tsx +100 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ProductDetailView.tsx +130 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ProductGrid.tsx +48 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/ShopView.tsx +66 -0
- package/skills/wix-headless-fast/references/storefront/app/components/storefront/VariantPicker.tsx +103 -0
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useCart.ts +48 -0
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useProductDetail.ts +140 -0
- package/skills/wix-headless-fast/references/storefront/app/hooks/storefront/useShop.ts +80 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart-store.ts +101 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/cart.ts +221 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/catalog.ts +215 -0
- package/skills/wix-headless-fast/references/storefront/app/wix/storefront/types.ts +109 -0
- package/skills/wix-headless-fast/references/storefront/app-astro/layouts/SiteLayout.astro +46 -0
- package/skills/wix-headless-fast/references/storefront/app-astro/pages/products/[slug].astro +56 -0
- package/skills/wix-headless-fast/references/storefront/app-astro/pages/shop.astro +23 -0
- package/skills/wix-headless-fast/references/storefront/lock/astro/package-lock.json +12247 -0
- package/skills/wix-headless-fast/references/storefront/seed/SEED.md +85 -0
- package/skills/wix-headless-fast/references/storefront/seed/seed-store.mjs +415 -0
- package/skills/wix-manage/SKILL.md +28 -2
- package/skills/wix-manage/references/bookings/booking-system-integration-gaps.md +20 -13
- package/skills/wix-manage/references/bookings/end-to-end-booking-flow.md +24 -11
- package/skills/wix-manage/references/cms/cms-ecommerce-catalog-integration.md +5 -5
- package/skills/wix-manage/references/google-ads/manage-campaign-success-guide.md +141 -0
- package/skills/wix-manage/references/google-business-profile/connect-google-business-profile.md +134 -0
- package/skills/wix-manage/references/google-business-profile/manage-google-business-profile-locations.md +182 -0
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +3 -0
- package/skills/wix-manage/references/seo/manage-seo-tags.md +315 -0
- package/skills/wix-manage/references/seo/manage-url-redirects.md +250 -0
- package/skills/wix-manage/references/sites/query-sites.md +72 -161
- package/skills/wix-manage/references/stores/create-product-catalog-v3.md +21 -6
- package/skills/wix-manage/references/stores/update-product-with-options.md +83 -0
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +5 -6
- package/skills/wix-vibe-headless/SKILL.md +18 -4
- package/skills/wix-vibe-headless/install/deploy.cjs +12 -4
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +2 -1
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +16 -10
- package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +13 -8
- package/skills/wix-vibe-headless/platforms/base44.md +27 -62
- package/skills/wix-vibe-headless/platforms/generic.md +6 -3
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +45 -0
- package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx +67 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useRentalDuration.js +128 -0
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +5 -3
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-checkout.js +9 -8
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-rentals.js +250 -0
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-services.js +12 -5
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +41 -0
- package/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.js +267 -0
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +6 -3
- package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +470 -0
- package/skills/wix-vibe-headless/references/forms/app/hooks/useWixForm.js +425 -0
- package/skills/wix-vibe-headless/references/forms/app/lib/wix-form-schema-utils.js +187 -0
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms-submissions.js +238 -0
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms.js +108 -0
- package/skills/wix-vibe-headless/references/forms/seed/SEED.md +1762 -0
- package/skills/wix-vibe-headless/references/rentals/INSTRUCTIONS.md +13 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +4 -1
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +23 -11
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +1 -1
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +29 -31
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +152 -92
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +37 -38
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +2 -2
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +15 -8
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +37 -0
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-cart.js +35 -35
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +18 -6
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +30 -7
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.js +46 -10
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW-REFERENCE.md +0 -172
- package/skills/wix-app/references/editor-react-component/A11Y-REVIEW.md +0 -143
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +0 -516
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +0 -225
- package/skills/wix-app/references/editor-react-component/EDIT-FLOW.md +0 -6
- package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +0 -95
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductCard.jsx +0 -110
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGallery.jsx +0 -51
- package/skills/wix-vibe-headless/references/storefront/app/components/ProductGrid.jsx +0 -49
- package/skills/wix-vibe-headless/references/storefront/app/components/VariantPicker.jsx +0 -92
- package/skills/wix-vibe-headless/references/storefront/app/pages/ProductDetail.jsx +0 -139
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rentals
|
|
3
|
+
description: Rentals — renting out an item for a length the customer picks. Runs on the Bookings vertical.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Rentals
|
|
7
|
+
|
|
8
|
+
Rentals is **the Bookings vertical** — Wix Rentals runs on the Bookings APIs. There is nothing
|
|
9
|
+
separate to build here.
|
|
10
|
+
|
|
11
|
+
Read and follow `.agents/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md` (its
|
|
12
|
+
**Rentals** section), and use the bookings scaffolds under `references/bookings/app/`. The install
|
|
13
|
+
already deploys those for you when `rentals` is selected.
|
|
@@ -170,6 +170,8 @@ render.
|
|
|
170
170
|
|
|
171
171
|
## Using the client from your own UI (menu, order cart)
|
|
172
172
|
|
|
173
|
+
> Migrating from Cart V1 / Checkout V1? These helpers are V2-only — see the [migration guide](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/migration-guide) for the before/after.
|
|
174
|
+
|
|
173
175
|
```jsx
|
|
174
176
|
import { getFullMenu } from "@/rest/wix-restaurants-menu";
|
|
175
177
|
import { useOrderCart } from "@/context/OrderCartContext";
|
|
@@ -188,7 +190,8 @@ const { menus } = await getFullMenu(); // [] when no menus → show t
|
|
|
188
190
|
// Load-bearing field paths (the shipped components already do these):
|
|
189
191
|
// - item.image / section.image / label.icon are OBJECTS → render `.url`, never the object; //-urls → https:
|
|
190
192
|
// - MENU prices are plain decimal strings with NO currency symbol ("12.50") — format in the UI.
|
|
191
|
-
// The eCom cart line price (line.
|
|
193
|
+
// The eCom cart line price (line.pricing.unitPrice / line.pricing.totalPrice) is a ConvertedMoney
|
|
194
|
+
// { amount, convertedAmount } with NO symbol either — format the number yourself.
|
|
192
195
|
// - an item is priced by EITHER item.price (single) OR item.variants[] (one-of, each { name, price }).
|
|
193
196
|
// - a cart mutation uses cart.lineItems[].id (the lineItemId), NOT the menu item id.
|
|
194
197
|
```
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
// Slide-over order cart. Reads everything from useOrderCart(); mutate by lineItem.id (NOT the menu
|
|
2
|
-
// item id), check out via the context (redirect-session URL). The eCom
|
|
3
|
-
//
|
|
4
|
-
//
|
|
2
|
+
// item id), check out via the context (redirect-session URL). The eCom Cart V2 line price is
|
|
3
|
+
// `pricing.totalPrice`, a ConvertedMoney { amount, convertedAmount } with NO formatted string —
|
|
4
|
+
// format it with the cart's currency (formatCartMoney below). Styled with base44 design tokens
|
|
5
|
+
// (shadcn Tailwind classes). Mount it once in the Layout.
|
|
5
6
|
import { useOrderCart } from "@/context/OrderCartContext";
|
|
6
7
|
|
|
8
|
+
// Cart V2 money is a ConvertedMoney { amount, convertedAmount } with NO formatted string — format it
|
|
9
|
+
// with the cart's currency (buyer's display currency when present, else the site currency).
|
|
10
|
+
function formatCartMoney(money, cart) {
|
|
11
|
+
const value = money?.convertedAmount ?? money?.amount;
|
|
12
|
+
const currency = cart?.customerInfo?.currencyCode ?? cart?.businessInfo?.currencyCode ?? "USD";
|
|
13
|
+
return value == null ? "" : new Intl.NumberFormat(undefined, { style: "currency", currency }).format(Number(value));
|
|
14
|
+
}
|
|
15
|
+
|
|
7
16
|
export default function OrderCartDrawer() {
|
|
8
17
|
const { cart, isOpen, setIsOpen, removeItem, updateQuantity, checkout, loading } = useOrderCart();
|
|
9
18
|
const lineItems = cart?.lineItems ?? [];
|
|
@@ -22,23 +31,26 @@ export default function OrderCartDrawer() {
|
|
|
22
31
|
<div className="flex-1 overflow-y-auto p-4">
|
|
23
32
|
{lineItems.length === 0 ? (
|
|
24
33
|
<p className="text-muted-foreground">Your order is empty.</p>
|
|
25
|
-
) : lineItems.map((line) =>
|
|
34
|
+
) : lineItems.map((line) => {
|
|
35
|
+
const qty = line.quantityInfo?.confirmedQuantity;
|
|
36
|
+
return (
|
|
26
37
|
<div key={line.id} className="flex gap-3 py-3 border-b border-border">
|
|
27
38
|
{/* line.id is the lineItemId for mutations — NOT the menu item id */}
|
|
28
39
|
<div className="flex-1 flex flex-col gap-1">
|
|
29
|
-
<span className="font-semibold">{line.
|
|
40
|
+
<span className="font-semibold">{line.name?.original}</span>
|
|
30
41
|
<div className="flex items-center gap-2 mt-1">
|
|
31
|
-
<QtyButton onClick={() => updateQuantity(line.id, Math.max(1,
|
|
32
|
-
<span className="min-w-[20px] text-center">{
|
|
33
|
-
<QtyButton onClick={() => updateQuantity(line.id,
|
|
42
|
+
<QtyButton onClick={() => updateQuantity(line.id, Math.max(1, qty - 1))}>−</QtyButton>
|
|
43
|
+
<span className="min-w-[20px] text-center">{qty}</span>
|
|
44
|
+
<QtyButton onClick={() => updateQuantity(line.id, qty + 1)}>+</QtyButton>
|
|
34
45
|
<button onClick={() => removeItem(line.id)}
|
|
35
46
|
className="ml-auto border-none bg-transparent cursor-pointer text-muted-foreground text-[13px] underline">Remove</button>
|
|
36
47
|
</div>
|
|
37
48
|
</div>
|
|
38
|
-
{/*
|
|
39
|
-
<span className="font-semibold">{line.
|
|
49
|
+
{/* Cart V2 has no formatted string — format the ConvertedMoney client-side */}
|
|
50
|
+
<span className="font-semibold">{formatCartMoney(line.pricing?.totalPrice, cart)}</span>
|
|
40
51
|
</div>
|
|
41
|
-
|
|
52
|
+
);
|
|
53
|
+
})}
|
|
42
54
|
</div>
|
|
43
55
|
|
|
44
56
|
{lineItems.length > 0 && (
|
|
@@ -30,7 +30,7 @@ export function OrderCartProvider({ children }) {
|
|
|
30
30
|
return () => document.removeEventListener("visibilitychange", onVisible);
|
|
31
31
|
}, [refreshCart]);
|
|
32
32
|
|
|
33
|
-
const itemCount = (cart?.lineItems ?? []).reduce((n, li) => n + (li.
|
|
33
|
+
const itemCount = (cart?.lineItems ?? []).reduce((n, li) => n + (li.quantityInfo?.confirmedQuantity || 0), 0);
|
|
34
34
|
|
|
35
35
|
// A menu item carries its menuId/sectionId from the getFullMenu tree — the caller passes both.
|
|
36
36
|
// addItemToCart throws on a missing operation/menu/section or an unavailable line; let it propagate.
|
package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js
CHANGED
|
@@ -11,15 +11,16 @@ import { wixApiRequest } from "./wix-client.js";
|
|
|
11
11
|
* fulfillmentIds {string[]}, businessLocationId {string}
|
|
12
12
|
* Full model: https://dev.wix.com/docs/api-reference/business-solutions/restaurants/online-orders/operations/operation-object.md
|
|
13
13
|
*
|
|
14
|
-
* Cart (Wix eCom) — restaurant orders use the same visitor cart as the storefront.
|
|
15
|
-
* id {string}
|
|
14
|
+
* Cart (Wix eCom V2) — restaurant orders use the same visitor cart as the storefront.
|
|
15
|
+
* id {string} — the cart id IS the checkout id,
|
|
16
16
|
* lineItems[].id {string} — lineItemId for update/remove (NOT the item id),
|
|
17
|
-
* lineItems[].
|
|
18
|
-
* lineItems[].catalogReference.catalogItemId {string} — the ordered item's GUID,
|
|
19
|
-
* lineItems[].
|
|
20
|
-
* lineItems[].
|
|
21
|
-
*
|
|
22
|
-
*
|
|
17
|
+
* lineItems[].quantityInfo.confirmedQuantity {number},
|
|
18
|
+
* lineItems[].source.catalogReference.catalogItemId {string} — the ordered item's GUID (NOT top-level in V2),
|
|
19
|
+
* lineItems[].name.original {string},
|
|
20
|
+
* lineItems[].pricing.unitPrice / lineItems[].pricing.totalPrice {ConvertedMoney} —
|
|
21
|
+
* { amount, convertedAmount } with NO formatted string; format the number client-side,
|
|
22
|
+
* lineItems[].status {string} — "IN_STOCK"|"PARTIALLY_IN_STOCK"|"OUT_OF_STOCK"|"REMOVED_FROM_CATALOG"
|
|
23
|
+
* Full model: https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/get-current-cart.md
|
|
23
24
|
*/
|
|
24
25
|
|
|
25
26
|
// Wix Restaurants Orders app id — required in catalogReference when adding menu items to the eCom cart.
|
|
@@ -61,7 +62,7 @@ export async function getDefaultOperation() {
|
|
|
61
62
|
* Confirm the shape before extending:
|
|
62
63
|
* https://dev.wix.com/docs/api-reference/business-solutions/restaurants/online-orders/sample-flows.md
|
|
63
64
|
*
|
|
64
|
-
* POST https://www.wixapis.com/ecom/
|
|
65
|
+
* POST https://www.wixapis.com/ecom/v2/carts/current/add-line-items
|
|
65
66
|
* @param {string} itemId Menu item GUID (item.id).
|
|
66
67
|
* @param {{ operationId: string, menuId: string, sectionId: string, onlineOrderingPageUrl?: string, quantity?: number }} opts
|
|
67
68
|
* @returns {Promise<object>} Updated cart.
|
|
@@ -74,15 +75,16 @@ export async function addItemToCart(itemId, { operationId, menuId, sectionId, on
|
|
|
74
75
|
const options = { operationId, menuId, sectionId };
|
|
75
76
|
if (onlineOrderingPageUrl) options.onlineOrderingPageUrl = onlineOrderingPageUrl;
|
|
76
77
|
|
|
77
|
-
const res = await wixApiRequest("/ecom/
|
|
78
|
+
const res = await wixApiRequest("/ecom/v2/carts/current/add-line-items", {
|
|
78
79
|
method: "POST",
|
|
79
80
|
body: {
|
|
80
|
-
|
|
81
|
+
catalogItems: [{ catalogReference: { appId: RESTAURANTS_ORDERS_APP_ID, catalogItemId: itemId, options }, quantity }],
|
|
81
82
|
},
|
|
82
83
|
});
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
// V2 nests the reference under `source` — a top-level lineItem.catalogReference no longer exists.
|
|
85
|
+
const line = (res?.cart?.lineItems ?? []).find((l) => l.source?.catalogReference?.catalogItemId === itemId);
|
|
86
|
+
if (line?.status && line.status !== "IN_STOCK") {
|
|
87
|
+
throw new Error(`Item not available to order (status: ${line.status}).`);
|
|
86
88
|
}
|
|
87
89
|
return res?.cart;
|
|
88
90
|
}
|
|
@@ -90,7 +92,7 @@ export async function addItemToCart(itemId, { operationId, menuId, sectionId, on
|
|
|
90
92
|
/** Read the visitor's current cart. Returns null if no cart exists yet. */
|
|
91
93
|
export async function getCurrentCart() {
|
|
92
94
|
try {
|
|
93
|
-
const res = await wixApiRequest("/ecom/
|
|
95
|
+
const res = await wixApiRequest("/ecom/v2/carts/current", { method: "GET" });
|
|
94
96
|
return res?.cart ?? null;
|
|
95
97
|
} catch {
|
|
96
98
|
return null;
|
|
@@ -99,24 +101,24 @@ export async function getCurrentCart() {
|
|
|
99
101
|
|
|
100
102
|
/**
|
|
101
103
|
* Update the quantity of a cart line. lineItemId is cart.lineItems[].id, not the item id.
|
|
102
|
-
* POST https://www.wixapis.com/ecom/
|
|
104
|
+
* POST https://www.wixapis.com/ecom/v2/carts/current/update-line-items
|
|
103
105
|
* @returns {Promise<object>} Updated cart.
|
|
104
106
|
*/
|
|
105
107
|
export async function updateCartItemQuantity(lineItemId, quantity) {
|
|
106
|
-
const res = await wixApiRequest("/ecom/
|
|
108
|
+
const res = await wixApiRequest("/ecom/v2/carts/current/update-line-items", {
|
|
107
109
|
method: "POST",
|
|
108
|
-
body: { lineItems: [{
|
|
110
|
+
body: { lineItems: [{ lineItemId, quantity: { newQuantity: quantity } }] },
|
|
109
111
|
});
|
|
110
112
|
return res?.cart;
|
|
111
113
|
}
|
|
112
114
|
|
|
113
115
|
/**
|
|
114
116
|
* Remove a line from the current cart by its cart.lineItems[].id.
|
|
115
|
-
* POST https://www.wixapis.com/ecom/
|
|
117
|
+
* POST https://www.wixapis.com/ecom/v2/carts/current/remove-line-items
|
|
116
118
|
* @returns {Promise<object>} Updated cart.
|
|
117
119
|
*/
|
|
118
120
|
export async function removeFromCart(lineItemId) {
|
|
119
|
-
const res = await wixApiRequest("/ecom/
|
|
121
|
+
const res = await wixApiRequest("/ecom/v2/carts/current/remove-line-items", {
|
|
120
122
|
method: "POST",
|
|
121
123
|
body: { lineItemIds: [lineItemId] },
|
|
122
124
|
});
|
|
@@ -124,7 +126,9 @@ export async function removeFromCart(lineItemId) {
|
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
/**
|
|
127
|
-
*
|
|
129
|
+
* Start the hosted checkout for the current cart and return the Wix-hosted checkout URL.
|
|
130
|
+
* In Cart V2 the cart id IS the checkout id — there is no separate checkout-creation call; the
|
|
131
|
+
* redirect session is created straight from the current cart's id.
|
|
128
132
|
* Throws on empty cart, unavailable lines, or a missing redirect URL.
|
|
129
133
|
* Redirect with: window.location.href = await checkout()
|
|
130
134
|
* @returns {Promise<string>}
|
|
@@ -133,22 +137,16 @@ export async function checkout() {
|
|
|
133
137
|
const cart = await getCurrentCart();
|
|
134
138
|
const lines = cart?.lineItems ?? [];
|
|
135
139
|
if (!lines.length) throw new Error("Cannot check out: the cart is empty.");
|
|
136
|
-
const unavailable = lines.filter((l) => l.
|
|
140
|
+
const unavailable = lines.filter((l) => l.status && l.status !== "IN_STOCK");
|
|
137
141
|
if (unavailable.length) {
|
|
138
|
-
const names = unavailable.map((l) => l.
|
|
142
|
+
const names = unavailable.map((l) => l.name?.original ?? l.source?.catalogReference?.catalogItemId).join(", ");
|
|
139
143
|
throw new Error(`Cannot check out: ${unavailable.length} item(s) not available — ${names}.`);
|
|
140
144
|
}
|
|
141
|
-
|
|
142
|
-
const checkoutRes = await wixApiRequest("/ecom/v1/carts/current/create-checkout", {
|
|
143
|
-
method: "POST",
|
|
144
|
-
body: { channelType: "WEB" },
|
|
145
|
-
});
|
|
146
|
-
const checkoutId = checkoutRes?.checkoutId;
|
|
147
|
-
if (!checkoutId) throw new Error("Failed to create checkout from the current cart.");
|
|
145
|
+
if (!cart.id) throw new Error("Failed to check out: the current cart has no id.");
|
|
148
146
|
|
|
149
147
|
const redirect = await wixApiRequest("/headless/v1/redirect-session", {
|
|
150
148
|
method: "POST",
|
|
151
|
-
body: { ecomCheckout: { checkoutId }, callbacks: { postFlowUrl: window.location.href } },
|
|
149
|
+
body: { ecomCheckout: { checkoutId: cart.id }, callbacks: { postFlowUrl: window.location.href } },
|
|
152
150
|
});
|
|
153
151
|
const url = redirect?.redirectSession?.fullUrl;
|
|
154
152
|
if (!url) throw new Error("Failed to create the checkout redirect session.");
|