@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,275 @@
|
|
|
1
|
+
# Component Contract
|
|
2
|
+
|
|
3
|
+
Use this reference when defining props, defaults, named-part wiring, complex data,
|
|
4
|
+
or internal file boundaries.
|
|
5
|
+
|
|
6
|
+
## Contents
|
|
7
|
+
|
|
8
|
+
- [Public Props Contract](#public-props-contract)
|
|
9
|
+
- [Numeric Range Constraints](#numeric-range-constraints)
|
|
10
|
+
- [Named Parts and `elementProps`](#named-parts-and-elementprops)
|
|
11
|
+
- [Content and Data](#content-and-data)
|
|
12
|
+
- [Active-Item Components](#active-item-components)
|
|
13
|
+
- [Defaults and Resources](#defaults-and-resources)
|
|
14
|
+
- [Internal File Splitting](#internal-file-splitting)
|
|
15
|
+
- [Checklist](#checklist)
|
|
16
|
+
|
|
17
|
+
## Public Props Contract
|
|
18
|
+
|
|
19
|
+
Keep identity and platform contracts together with component-specific data and
|
|
20
|
+
behavior. Do not add `children` unless the component is explicitly a container.
|
|
21
|
+
|
|
22
|
+
Use this shape:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import type { A11y, Direction } from '@wix/editor-react-types';
|
|
26
|
+
|
|
27
|
+
export type PlanCardProps = {
|
|
28
|
+
id?: string;
|
|
29
|
+
className?: string;
|
|
30
|
+
direction?: Direction;
|
|
31
|
+
a11y?: A11y;
|
|
32
|
+
|
|
33
|
+
heading?: string;
|
|
34
|
+
plans?: Array<Plan>;
|
|
35
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
36
|
+
|
|
37
|
+
elementProps?: {
|
|
38
|
+
cta?: { className?: string; href?: string };
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Rules:
|
|
44
|
+
|
|
45
|
+
- Route all ARIA attributes through `a11y`; do not add individual `ariaLabel`,
|
|
46
|
+
`role`, or similar props.
|
|
47
|
+
- Expose only content and behavior that the site owner controls. Keep derived
|
|
48
|
+
values internal.
|
|
49
|
+
- Add only callbacks required by the component specification. Use supported SDK
|
|
50
|
+
event names and types for public callbacks; keep implementation-only handlers
|
|
51
|
+
internal.
|
|
52
|
+
- Use `Array<T>`, not `T[]`, for exported arrays.
|
|
53
|
+
|
|
54
|
+
## Numeric Range Constraints
|
|
55
|
+
|
|
56
|
+
For a new or changed numeric prop, use inline `@min` and `@max` JSDoc tags when
|
|
57
|
+
the value has a fixed domain. Manifest generation reads the tags; no extension
|
|
58
|
+
override is needed.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
export type RatingProps = {
|
|
62
|
+
/** @min 0 @max 5 */
|
|
63
|
+
rating: number;
|
|
64
|
+
};
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Use fixed bounds for ratings, percentages, playback speed, columns, and similar
|
|
68
|
+
domains. Omit them for arbitrary counts, free-form prices, or an active index
|
|
69
|
+
whose upper bound depends on the current collection.
|
|
70
|
+
|
|
71
|
+
## Named Parts and `elementProps`
|
|
72
|
+
|
|
73
|
+
Treat an independently editable inner element as a named part, then apply one
|
|
74
|
+
consistent wiring rule:
|
|
75
|
+
|
|
76
|
+
- The elected root receives top-level `id`, `className`, `direction`, and `a11y`;
|
|
77
|
+
it has no `elementProps` entry.
|
|
78
|
+
- Every named inner part has an `elementProps` entry, even when `className` is
|
|
79
|
+
the only injected field it currently needs.
|
|
80
|
+
- Structural or decorative non-parts have no `elementProps` entry and use only a
|
|
81
|
+
CSS Module class.
|
|
82
|
+
|
|
83
|
+
On a raw HTML element, spread the entry and explicitly merge its injected
|
|
84
|
+
`className`. Keep the entry key short while prefixing the global class with the
|
|
85
|
+
component name.
|
|
86
|
+
|
|
87
|
+
```tsx
|
|
88
|
+
<a
|
|
89
|
+
{...elementProps?.cta}
|
|
90
|
+
className={classNames(
|
|
91
|
+
'plan-card-cta',
|
|
92
|
+
styles.cta,
|
|
93
|
+
elementProps?.cta?.className,
|
|
94
|
+
)}
|
|
95
|
+
>
|
|
96
|
+
{label}
|
|
97
|
+
</a>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
When a named part renders another component built with this skill, spread the
|
|
101
|
+
entry and let that component merge its incoming `className` on its root.
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
<PlanRow {...elementProps?.planRow} item={plan} />
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Do not merge the same class at both the call site and the sub-component root.
|
|
108
|
+
|
|
109
|
+
## Content and Data
|
|
110
|
+
|
|
111
|
+
### Derived Values
|
|
112
|
+
|
|
113
|
+
Compute a value internally when a small pure expression can derive it from
|
|
114
|
+
props or state. For example, expose `price` and `quantity`; compute `subtotal`.
|
|
115
|
+
Use numeric types when arithmetic is required.
|
|
116
|
+
|
|
117
|
+
### Data-Driven Components
|
|
118
|
+
|
|
119
|
+
Export named content props rather than `children` for leaf components:
|
|
120
|
+
|
|
121
|
+
- text: `label`, `title`, `placeholder`
|
|
122
|
+
- media: `image`, `video`, `icon`
|
|
123
|
+
- links: `link`, `href`
|
|
124
|
+
- collections: `items`, `options`, `menuItems`
|
|
125
|
+
|
|
126
|
+
Internal sub-components may still use `children` for composition.
|
|
127
|
+
|
|
128
|
+
### Container Components
|
|
129
|
+
|
|
130
|
+
Use `React.ReactNode` only when the specification defines a container or slot
|
|
131
|
+
that accepts arbitrary nested components. Put `dir="ltr"` on the element that
|
|
132
|
+
renders each `ReactNode` value so nested content does not inherit the component's
|
|
133
|
+
direction.
|
|
134
|
+
|
|
135
|
+
### Array Props
|
|
136
|
+
|
|
137
|
+
Array elements must be objects with named keys. This provides stable identity,
|
|
138
|
+
semantic field names, and room for non-breaking extension.
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
type GalleryProps = {
|
|
142
|
+
images: Array<{ id: string; image: Image; caption?: string }>;
|
|
143
|
+
tags: Array<{ id: string; label: string }>;
|
|
144
|
+
};
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Do not export arrays of primitives, leaf Wix data types, or nested arrays:
|
|
148
|
+
|
|
149
|
+
```ts
|
|
150
|
+
// Avoid:
|
|
151
|
+
// Array<string>
|
|
152
|
+
// Array<Image>
|
|
153
|
+
// Array<Array<Item>>
|
|
154
|
+
// Array<{ items: Array<Image> }>
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
The parent owns the array. Item sub-components receive one item rather than
|
|
158
|
+
redeclaring the collection. Use a stable item identifier as the React key; do
|
|
159
|
+
not synthesize identity from the array index when stable identity is available.
|
|
160
|
+
|
|
161
|
+
### Active-Item Components
|
|
162
|
+
|
|
163
|
+
Apply this contract when an array-driven UI shows one item body at a time, such
|
|
164
|
+
as tabs, slides, or steps. Skip it for always-visible lists, multi-select UIs,
|
|
165
|
+
and multi-expand accordions.
|
|
166
|
+
|
|
167
|
+
- Give every item a `name: string`; Studio uses `name` for hat-selector labels.
|
|
168
|
+
- Pair the array prop with `ActiveItemIndex<'arrayPropName'>` from
|
|
169
|
+
`@wix/react-component-utils`. The type argument must exactly match the array
|
|
170
|
+
prop name, and `defaultProps` must initialize the index to `0`.
|
|
171
|
+
- Render every body with `.map()`. Mark the active body with a prefixed
|
|
172
|
+
`--active` state class, hide inactive bodies with functional CSS visibility,
|
|
173
|
+
and apply `aria-hidden` and `inert` to inactive content.
|
|
174
|
+
- Provide keyboard navigation between triggers and the matching ARIA pattern.
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
import type { A11y, Direction } from '@wix/editor-react-types';
|
|
178
|
+
import type { ActiveItemIndex } from '@wix/react-component-utils';
|
|
179
|
+
|
|
180
|
+
export type Step = { id: string; name: string; body: string };
|
|
181
|
+
|
|
182
|
+
export type StepsProps = {
|
|
183
|
+
id?: string;
|
|
184
|
+
className?: string;
|
|
185
|
+
direction?: Direction;
|
|
186
|
+
a11y?: A11y;
|
|
187
|
+
steps: Array<Step>;
|
|
188
|
+
activeItem: ActiveItemIndex<'steps'>;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
export const defaultProps = {
|
|
192
|
+
steps: [{ id: 'first', name: 'Step 1', body: 'First step' }],
|
|
193
|
+
activeItem: 0,
|
|
194
|
+
} satisfies Omit<StepsProps, 'id' | 'className'>;
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Wix Data Types
|
|
198
|
+
|
|
199
|
+
Use types such as `Image`, `Link`, `Video`, `Audio`, `VectorArt`, and `RichText`
|
|
200
|
+
from `@wix/editor-react-types`. Inspect
|
|
201
|
+
`node_modules/@wix/react-component-schema/dist/editor-react-types.d.ts` when you
|
|
202
|
+
need the supported schema types.
|
|
203
|
+
|
|
204
|
+
## Defaults and Resources
|
|
205
|
+
|
|
206
|
+
Export `defaultProps` from `<component-name>.props.ts`. Both `component.tsx` and
|
|
207
|
+
the extension consume this object; do not duplicate fallback values in JSX.
|
|
208
|
+
|
|
209
|
+
Rendered media and runtime data must come from Wix-hosted services, local
|
|
210
|
+
bundled assets, or values supplied through props. Do not silently introduce an
|
|
211
|
+
external host or third-party runtime dependency.
|
|
212
|
+
|
|
213
|
+
For an `Image` default, populate only `uri`, `url`, and `alt`. Let the editor
|
|
214
|
+
populate dimensions and focal-point metadata after the site owner chooses an
|
|
215
|
+
image.
|
|
216
|
+
|
|
217
|
+
```ts
|
|
218
|
+
export const defaultProps = {
|
|
219
|
+
image: {
|
|
220
|
+
url: 'https://static.wixstatic.com/media/11062b_2f97b87dcea2446fa48e9ad9c5457ae1~mv2.jpg',
|
|
221
|
+
uri: '11062b_2f97b87dcea2446fa48e9ad9c5457ae1~mv2.jpg',
|
|
222
|
+
alt: 'Tropical beach viewed from above',
|
|
223
|
+
},
|
|
224
|
+
} as const satisfies Omit<ExampleComponentProps, 'id' | 'className'>;
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Use distinct Wix-hosted defaults for multiple image slots. Keep fallback data in
|
|
228
|
+
`defaultProps` so rendering reads the resolved prop instead of hardcoding a
|
|
229
|
+
second fallback in JSX.
|
|
230
|
+
|
|
231
|
+
Use this pool in order, cycling only when more than five defaults are needed:
|
|
232
|
+
|
|
233
|
+
| # | `fileName` | Description |
|
|
234
|
+
| --- | --- | --- |
|
|
235
|
+
| 1 | `11062b_2f97b87dcea2446fa48e9ad9c5457ae1~mv2.jpg` | Tropical beach aerial |
|
|
236
|
+
| 2 | `11062b_73f31c7e7d3544c69dc8ecd8d34c5717~mv2.jpg` | Dead Sea landscape |
|
|
237
|
+
| 3 | `11062b_3682ebfcb08e4da5b3168b62819a1e68~mv2.jpg` | Palm tree sunset |
|
|
238
|
+
| 4 | `11062b_45e67783d39c4963ab9e4fc418173233~mv2.jpg` | Abstract pink waves |
|
|
239
|
+
| 5 | `11062b_4c11f014b0d04948b2e6f554076bc40a~mv2.jpg` | Coastal village aerial |
|
|
240
|
+
|
|
241
|
+
For one image, use entry 1. For multiple slots, use a different entry for each
|
|
242
|
+
slot so the defaults are visually distinct.
|
|
243
|
+
|
|
244
|
+
## Internal File Splitting
|
|
245
|
+
|
|
246
|
+
Split a logical, independently understandable unit when doing so makes the main
|
|
247
|
+
component easier to read or test. Keep internal files within the scaffolded
|
|
248
|
+
component folder and use `.module.css`, matching the package convention.
|
|
249
|
+
|
|
250
|
+
```text
|
|
251
|
+
component-name/
|
|
252
|
+
├── components/
|
|
253
|
+
│ └── plan-row/
|
|
254
|
+
│ ├── plan-row.tsx
|
|
255
|
+
│ └── plan-row.module.css
|
|
256
|
+
├── hooks/
|
|
257
|
+
│ └── use-playback.ts
|
|
258
|
+
├── component-name.props.ts
|
|
259
|
+
├── component-name.tsx
|
|
260
|
+
└── component-name.module.css
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Do not extract tiny fragments merely to satisfy a line-count threshold.
|
|
264
|
+
|
|
265
|
+
## Checklist
|
|
266
|
+
|
|
267
|
+
- [ ] Identity, direction, and accessibility contracts are present.
|
|
268
|
+
- [ ] Props contain authored data or stable behavior; derived values stay internal.
|
|
269
|
+
- [ ] New or changed fixed-domain numeric props use `@min` and `@max`.
|
|
270
|
+
- [ ] Every named inner part has `elementProps` wiring and merged classes.
|
|
271
|
+
- [ ] Leaf components avoid exported `children`.
|
|
272
|
+
- [ ] Array elements are named objects with stable identity.
|
|
273
|
+
- [ ] One-body-visible arrays use the active-item contract and render all bodies.
|
|
274
|
+
- [ ] Defaults have one source of truth in the props file.
|
|
275
|
+
- [ ] Resources are Wix-hosted, prop-supplied, or locally bundled.
|
|
@@ -1,57 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Editor Preview Entry
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Use this when creating a component or changing its data, root, or editor-only
|
|
4
|
+
behavior.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
## Preserve the Structure, Synchronize the Contract
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
The Wix CLI scaffold generates `component.preview.tsx` and wires its URL into
|
|
9
|
+
the extension's editor resource. It includes `withDefaults`,
|
|
10
|
+
`withFallbackPlaceholder`, required-data fields, and the root class name.
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
Wix CLI loads it **instead of** `component.tsx` when rendering the component
|
|
12
|
-
inside the Harmony Editor. It is generated automatically by the scaffold as a
|
|
13
|
-
passthrough that forwards all props unchanged:
|
|
12
|
+
Keep the wrapper structure and synchronize its values:
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
The extension file is also pre-wired to load it — no manual wiring is needed:
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
import componentPreviewUrl from './component.preview.tsx?url';
|
|
25
|
-
|
|
26
|
-
resources: {
|
|
27
|
-
client: { componentUrl },
|
|
28
|
-
editor: { componentUrl: componentPreviewUrl },
|
|
29
|
-
},
|
|
30
|
-
```
|
|
14
|
+
- Wrap the preview adapter when one exists; otherwise wrap `Component`.
|
|
15
|
+
- In `requiredDataFields`, normally use only the one prop crucial to meaningful
|
|
16
|
+
rendering, such as `animationUrl`. Use more only when each is essential.
|
|
17
|
+
- Set `rootClassName` to the elected root's exact global class, not `styles.root`.
|
|
31
18
|
|
|
32
|
-
|
|
19
|
+
Never remove `withFallbackPlaceholder`.
|
|
33
20
|
|
|
34
|
-
##
|
|
21
|
+
## Detect Editor Design Mode
|
|
35
22
|
|
|
36
|
-
|
|
37
|
-
use `useIsEditMode()` from `@wix/react-component-utils`:
|
|
23
|
+
Use `useIsEditMode()` from `@wix/react-component-utils`:
|
|
38
24
|
|
|
39
25
|
```tsx
|
|
40
|
-
import { useIsEditMode } from '@wix/react-component-utils';
|
|
41
|
-
|
|
42
26
|
const isEditMode = useIsEditMode();
|
|
43
|
-
// true → editor is in design mode
|
|
44
|
-
// false → editor is in preview mode
|
|
45
27
|
```
|
|
46
28
|
|
|
47
|
-
|
|
29
|
+
- `true`: editor design mode
|
|
30
|
+
- `false`: editor preview mode or live-equivalent rendering
|
|
31
|
+
|
|
32
|
+
Call the hook inside a React component, never at module scope or conditionally.
|
|
33
|
+
|
|
34
|
+
## Modify Only When Needed
|
|
35
|
+
|
|
36
|
+
Keep the generated passthrough unchanged unless the component requires
|
|
37
|
+
editor-specific runtime behavior. The primary case is suppressing autoplay,
|
|
38
|
+
timers, or network activity while a site owner is designing.
|
|
48
39
|
|
|
49
|
-
|
|
40
|
+
For autoplaying components, force autoplay off in editor design mode and keep
|
|
41
|
+
the live/preview prop values unchanged.
|
|
50
42
|
|
|
51
|
-
|
|
43
|
+
Export the adapter through `withFallbackPlaceholder` and synchronize its data
|
|
44
|
+
field and root class.
|
|
52
45
|
|
|
53
|
-
|
|
54
|
-
inside the editor than it does on the live site. The most common case is
|
|
55
|
-
suppressing autoplay so animations don't run while the site owner is designing.
|
|
46
|
+
## Checklist
|
|
56
47
|
|
|
57
|
-
|
|
48
|
+
- [ ] Generated wrappers target the preview adapter when one exists.
|
|
49
|
+
- [ ] Normally one crucial data field and the exact root global class are set.
|
|
50
|
+
- [ ] The extension still loads the preview URL as its editor resource.
|
|
51
|
+
- [ ] `useIsEditMode()` is called inside a component.
|
|
52
|
+
- [ ] Live/preview behavior still receives the site owner's original props.
|