@wix/agent-skills 1.35.1 → 1.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +8 -3
- package/skills/wix-app/references/CODE_QUALITY.md +1 -1
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +27 -29
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +1 -1
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONTRACT.md +26 -25
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +12 -42
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +9 -20
- package/skills/wix-app/references/editor-react-component/MANIFEST-ERRORS.md +5 -4
- package/skills/wix-app/references/editor-react-component/PARTS.md +1 -1
- package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +1 -1
- package/skills/wix-app/references/editor-react-component/VECTOR-ART.md +95 -0
- package/skills/wix-app/references/editor-react-component/VISUAL-QUALITY.md +39 -0
- package/skills/wix-docs/references/CALLING.md +1 -1
- package/skills/wix-headless-kit/guides/api-run.md +1 -1
- package/skills/wix-headless-kit/install/pins.json +1 -1
- package/skills/wix-headless-templates/blog/seed/seed-blog.mjs +1 -1
- package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +1 -1
- package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +1 -1
- package/skills/wix-headless-templates/donations/rest/campaigns.ts +0 -1
- package/skills/wix-headless-templates/donations/rest/donate.ts +1 -1
- package/skills/wix-headless-templates/events/seed/seed-events.mjs +1 -1
- package/skills/wix-headless-templates/faq/INSTRUCTIONS.md +1 -1
- package/skills/wix-headless-templates/faq/app/wix/faq/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/project/src/wix/faq/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/rest/faq.ts +2 -2
- package/skills/wix-headless-templates/faq/seed/SEED.md +1 -1
- package/skills/wix-headless-templates/faq/seed/read-site.mjs +1 -1
- package/skills/wix-headless-templates/faq/seed/seed-faq.mjs +5 -5
- package/skills/wix-headless-templates/forms/app/wix/forms/forms.ts +2 -2
- package/skills/wix-headless-templates/forms/app/wix/forms/submissions.ts +2 -2
- package/skills/wix-headless-templates/forms/project/src/wix/forms/forms.ts +2 -2
- package/skills/wix-headless-templates/forms/project/src/wix/forms/submissions.ts +2 -2
- package/skills/wix-headless-templates/members/seed/read-site.mjs +1 -1
- package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access.ts +1 -1
- package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access.ts +1 -1
- package/skills/wix-headless-templates/pricing-plans/rest/plan-access.ts +1 -1
- package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu.ts +0 -1
- package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu.ts +0 -1
- package/skills/wix-headless-templates/restaurants/rest/menu.ts +0 -1
- package/skills/wix-headless-templates/shared/rest/client.ts +1 -1
- package/skills/wix-headless-templates/shared/seed/site.mjs +2 -1
- package/skills/wix-manage/SKILL.md +3 -3
- package/skills/wix-manage/references/cms/cms-data-items-crud.md +78 -1
- package/skills/wix-manage/references/google-ads/create-performance-max-campaign.md +11 -11
- package/skills/wix-manage/references/google-ads/get-campaign-suggestions.md +0 -1
- package/skills/wix-manage/references/google-ads/install-and-create-account.md +0 -1
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +20 -51
- package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +4 -4
- package/skills/wix-manage/references/rich-content/ricos-converter-service.md +1 -1
- package/skills/wix-base44-connector/SKILL.md +0 -437
- package/skills/wix-base44-connector/references/CAPABILITY_MAP.md +0 -78
- package/skills/wix-base44-connector/scripts/utils.cjs +0 -466
- package/skills/wix-export/SKILL.md +0 -83
- package/skills/wix-harmony-editor/.publish-manifest.json +0 -8
- package/skills/wix-harmony-editor/COPY-SITE.md +0 -494
- package/skills/wix-harmony-editor/SKILL.md +0 -317
- package/skills/wix-harmony-editor/scripts/copy/build-description.mjs +0 -249
- package/skills/wix-harmony-editor/scripts/copy/check-description.mjs +0 -225
- package/skills/wix-harmony-editor/scripts/copy/check-mirror.mjs +0 -89
- package/skills/wix-harmony-editor/scripts/copy/compare-preview.mjs +0 -76
- package/skills/wix-harmony-editor/scripts/copy/deploy-description.mjs +0 -212
- package/skills/wix-harmony-editor/scripts/copy/desc-hash.mjs +0 -44
- package/skills/wix-harmony-editor/scripts/copy/editor-run.mjs +0 -45
- package/skills/wix-harmony-editor/scripts/copy/export-page.mjs +0 -53
- package/skills/wix-harmony-editor/scripts/copy/find-interactions.mjs +0 -76
- package/skills/wix-harmony-editor/scripts/copy/hide-scrollbars.mjs +0 -16
- package/skills/wix-harmony-editor/scripts/copy/import-media.mjs +0 -150
- package/skills/wix-harmony-editor/scripts/copy/link-url.mjs +0 -27
- package/skills/wix-harmony-editor/scripts/copy/lint-api.mjs +0 -56
- package/skills/wix-harmony-editor/scripts/copy/measure-source.mjs +0 -211
- package/skills/wix-harmony-editor/scripts/copy/merge-mirrors.mjs +0 -29
- package/skills/wix-harmony-editor/scripts/copy/mirror-site.mjs +0 -92
- package/skills/wix-harmony-editor/scripts/copy/mobile-stage.mjs +0 -56
- package/skills/wix-harmony-editor/scripts/copy/preview-widths.mjs +0 -73
- package/skills/wix-harmony-editor/scripts/copy/render-plate.mjs +0 -67
- package/skills/wix-harmony-editor/scripts/copy/serve-mirror.mjs +0 -102
- package/skills/wix-harmony-editor/scripts/copy/snapshot-capabilities.mjs +0 -40
- package/skills/wix-harmony-editor/scripts/copy/split-sections.mjs +0 -191
- package/skills/wix-harmony-editor/scripts/copy/upload-media-manager.mjs +0 -61
- package/skills/wix-harmony-editor/scripts/launch.sh +0 -359
- package/skills/wix-headless/SKILL.md +0 -151
- package/skills/wix-headless/references/AI_FEATURES.md +0 -178
- package/skills/wix-headless/references/CAPABILITIES.md +0 -117
- package/skills/wix-headless/references/CONTENT.md +0 -36
- package/skills/wix-headless/references/DESIGN.md +0 -55
- package/skills/wix-headless/references/DISCOVERY.md +0 -80
- package/skills/wix-headless/references/DOC_DISCOVERY.md +0 -43
- package/skills/wix-headless/references/FEEDBACK.md +0 -129
- package/skills/wix-headless/references/IMAGE_GENERATION.md +0 -80
- package/skills/wix-headless/references/SDK_HANDOFF.md +0 -108
- package/skills/wix-headless/references/SEED.md +0 -74
- package/skills/wix-headless/references/SETUP.md +0 -60
- package/skills/wix-headless/references/astro.md +0 -98
- package/skills/wix-headless/references/inline-recipes/experience-donations.md +0 -102
- package/skills/wix-headless/references/inline-recipes/experience-store.md +0 -49
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +0 -196
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +0 -590
- package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +0 -279
- package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +0 -163
- package/skills/wix-headless/references/inline-recipes/how-to-code-donations.md +0 -146
- package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +0 -203
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +0 -696
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +0 -124
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +0 -160
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +0 -118
- package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +0 -132
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +0 -126
- package/skills/wix-headless/references/inline-recipes/how-to-code-rentals.md +0 -254
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +0 -191
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +0 -213
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +0 -161
- package/skills/wix-headless/references/inline-recipes/setup-blog.md +0 -175
- package/skills/wix-headless/references/inline-recipes/setup-bookings.md +0 -232
- package/skills/wix-headless/references/inline-recipes/setup-cms.md +0 -200
- package/skills/wix-headless/references/inline-recipes/setup-donations.md +0 -15
- package/skills/wix-headless/references/inline-recipes/setup-events.md +0 -196
- package/skills/wix-headless/references/inline-recipes/setup-forms.md +0 -288
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +0 -214
- package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +0 -155
- package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +0 -229
- package/skills/wix-headless/references/inline-recipes/setup-rentals.md +0 -254
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +0 -73
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +0 -197
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +0 -136
- package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +0 -152
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +0 -71
- package/skills/wix-headless/references/managed/CONNECT.md +0 -74
- package/skills/wix-headless/references/managed/CREATE.md +0 -149
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +0 -104
- package/skills/wix-headless/references/non-astro.md +0 -59
- package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +0 -22
- package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +0 -15
- package/skills/wix-headless/references/stripe/AUTHENTICATION.md +0 -55
- package/skills/wix-headless/references/stripe/DEPLOYMENT.md +0 -71
- package/skills/wix-headless/scripts/bootstrap.mjs +0 -156
- package/skills/wix-headless-replatform/.publish-manifest.json +0 -8
- package/skills/wix-headless-replatform/SKILL.md +0 -116
- package/skills/wix-headless-replatform/agents/openai.yaml +0 -6
- package/skills/wix-headless-replatform/references/control-and-visual-fidelity-contract.md +0 -43
- package/skills/wix-headless-replatform/references/extraction-schema.md +0 -187
- package/skills/wix-headless-replatform/references/interaction-runtime-contract.md +0 -137
- package/skills/wix-headless-replatform/references/layout-blueprint-contract.md +0 -41
- package/skills/wix-headless-replatform/references/output-contract.md +0 -93
- package/skills/wix-headless-replatform/references/post-build-gap-contract.md +0 -125
- package/skills/wix-headless-replatform/references/qa-checklist.md +0 -83
- package/skills/wix-headless-replatform/references/safety.md +0 -19
- package/skills/wix-headless-replatform/references/ui-normalization-contract.md +0 -70
- package/skills/wix-headless-replatform/references/workflow.md +0 -157
- package/skills/wix-headless-replatform/registry/README.md +0 -20
- package/skills/wix-headless-replatform/registry/approvals/button/shadcn-default-ac60ef5.json +0 -28
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/button.tsx +0 -54
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/capabilities.json +0 -60
- package/skills/wix-headless-replatform/registry/items/button/shadcn-default-ac60ef5/contract.md +0 -48
- package/skills/wix-headless-replatform/registry/licenses/shadcn-ui-ac60ef5-MIT.txt +0 -21
- package/skills/wix-headless-replatform/registry/registry.json +0 -36
- package/skills/wix-headless-replatform/resources/rp-facelift/SKILL.md +0 -32
- package/skills/wix-headless-replatform/resources/rp-project-context/SKILL.md +0 -62
- package/skills/wix-headless-replatform/resources/rp-qa-gap-loop/SKILL.md +0 -64
- package/skills/wix-headless-replatform/resources/rp-source-evidence/SKILL.md +0 -42
- package/skills/wix-headless-replatform/resources/rp-ui-implementation/SKILL.md +0 -73
- package/skills/wix-headless-replatform/schemas/build-plan.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/candidate.schema.json +0 -19
- package/skills/wix-headless-replatform/schemas/common.schema.json +0 -33
- package/skills/wix-headless-replatform/schemas/decision-patch.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/decision-request.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/extraction-gap.schema.json +0 -28
- package/skills/wix-headless-replatform/schemas/extraction-manifest.schema.json +0 -34
- package/skills/wix-headless-replatform/schemas/final-report.schema.json +0 -10
- package/skills/wix-headless-replatform/schemas/foundation.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/metadata.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/observation-packet.schema.json +0 -17
- package/skills/wix-headless-replatform/schemas/page-capture.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/page-resolution.schema.json +0 -33
- package/skills/wix-headless-replatform/schemas/shared-chrome.schema.json +0 -11
- package/skills/wix-headless-replatform/schemas/unit.schema.json +0 -40
- package/skills/wix-headless-replatform/scripts/assemble-extraction.mjs +0 -844
- package/skills/wix-headless-replatform/scripts/benchmark-extraction.mjs +0 -163
- package/skills/wix-headless-replatform/scripts/browser-extraction-preflight.mjs +0 -42
- package/skills/wix-headless-replatform/scripts/build-extracted-homepage.mjs +0 -228
- package/skills/wix-headless-replatform/scripts/clear-wix-starter.mjs +0 -87
- package/skills/wix-headless-replatform/scripts/create-wix-project.mjs +0 -505
- package/skills/wix-headless-replatform/scripts/discover-urls.mjs +0 -142
- package/skills/wix-headless-replatform/scripts/extract-assets.mjs +0 -140
- package/skills/wix-headless-replatform/scripts/extract-design-system.mjs +0 -637
- package/skills/wix-headless-replatform/scripts/extract-interactions.mjs +0 -1903
- package/skills/wix-headless-replatform/scripts/extract-page.mjs +0 -2461
- package/skills/wix-headless-replatform/scripts/extract-seo.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/extract-tokens.mjs +0 -63
- package/skills/wix-headless-replatform/scripts/finalize-extraction-report.mjs +0 -126
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.mjs +0 -180
- package/skills/wix-headless-replatform/scripts/finalize-gap-review.test.mjs +0 -98
- package/skills/wix-headless-replatform/scripts/finalize-migration-website.mjs +0 -103
- package/skills/wix-headless-replatform/scripts/generate-control-state-contract.mjs +0 -176
- package/skills/wix-headless-replatform/scripts/generate-design-md.mjs +0 -261
- package/skills/wix-headless-replatform/scripts/generate-extraction-validators.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/generate-invoice-download-backend.mjs +0 -342
- package/skills/wix-headless-replatform/scripts/generate-layout-blueprint.mjs +0 -140
- package/skills/wix-headless-replatform/scripts/generate-repeater-cms.mjs +0 -22
- package/skills/wix-headless-replatform/scripts/generate-route-plan.mjs +0 -143
- package/skills/wix-headless-replatform/scripts/generate-scene-contract.mjs +0 -288
- package/skills/wix-headless-replatform/scripts/generate-ui-normalization.mjs +0 -266
- package/skills/wix-headless-replatform/scripts/generate-visual-assets.mjs +0 -111
- package/skills/wix-headless-replatform/scripts/lib/browser-tooling.mjs +0 -570
- package/skills/wix-headless-replatform/scripts/lib/common.mjs +0 -329
- package/skills/wix-headless-replatform/scripts/lib/component-capabilities.mjs +0 -121
- package/skills/wix-headless-replatform/scripts/lib/component-registry.mjs +0 -282
- package/skills/wix-headless-replatform/scripts/lib/content-boundary.mjs +0 -61
- package/skills/wix-headless-replatform/scripts/lib/extraction-contract.mjs +0 -374
- package/skills/wix-headless-replatform/scripts/lib/extraction-detectors.mjs +0 -243
- package/skills/wix-headless-replatform/scripts/lib/extraction-validators.generated.mjs +0 -1139
- package/skills/wix-headless-replatform/scripts/lib/font-contract.mjs +0 -326
- package/skills/wix-headless-replatform/scripts/lib/frontend-automation-state.mjs +0 -184
- package/skills/wix-headless-replatform/scripts/lib/gap-analysis.mjs +0 -396
- package/skills/wix-headless-replatform/scripts/lib/html-extract.mjs +0 -168
- package/skills/wix-headless-replatform/scripts/lib/interaction-bootstrap.mjs +0 -10
- package/skills/wix-headless-replatform/scripts/lib/interaction-runtime.mjs +0 -194
- package/skills/wix-headless-replatform/scripts/lib/interaction-timeline.mjs +0 -348
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/classifiers.mjs +0 -141
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/geometry.mjs +0 -43
- package/skills/wix-headless-replatform/scripts/lib/layout-blueprint/vocabulary.mjs +0 -18
- package/skills/wix-headless-replatform/scripts/lib/ui-normalization.css +0 -64
- package/skills/wix-headless-replatform/scripts/optimize-svg.mjs +0 -31
- package/skills/wix-headless-replatform/scripts/post-build-gap.mjs +0 -358
- package/skills/wix-headless-replatform/scripts/provision-repeater-cms.mjs +0 -25
- package/skills/wix-headless-replatform/scripts/record-gap-decision.mjs +0 -39
- package/skills/wix-headless-replatform/scripts/replay-extraction.mjs +0 -107
- package/skills/wix-headless-replatform/scripts/resolve-home-page.mjs +0 -96
- package/skills/wix-headless-replatform/scripts/site-clone.mjs +0 -658
- package/skills/wix-headless-replatform/scripts/validate-font-contract.mjs +0 -29
- package/skills/wix-headless-replatform/scripts/verify-interactions.mjs +0 -669
- package/skills/wix-headless-replatform/scripts/visual-qa.mjs +0 -370
- package/skills/wix-import/SKILL.md +0 -90
- package/skills/wix-replatform/.publish-manifest.json +0 -8
- package/skills/wix-replatform/CLI.md +0 -162
- package/skills/wix-replatform/README.md +0 -52
- package/skills/wix-replatform/SKILL.md +0 -238
- package/skills/wix-replatform/console/account.css +0 -1
- package/skills/wix-replatform/console/app.css +0 -1
- package/skills/wix-replatform/console/app.js +0 -117
- package/skills/wix-replatform/console/index.html +0 -4
- package/skills/wix-replatform/console/json.css +0 -11
- package/skills/wix-replatform/lib/agent-adapters/index.js +0 -71
- package/skills/wix-replatform/lib/app-page-routing.js +0 -75
- package/skills/wix-replatform/lib/artifact-freshness.js +0 -225
- package/skills/wix-replatform/lib/blocked-data-requests.js +0 -427
- package/skills/wix-replatform/lib/census-reconciliation.js +0 -426
- package/skills/wix-replatform/lib/completion-report.js +0 -1580
- package/skills/wix-replatform/lib/config-env.js +0 -133
- package/skills/wix-replatform/lib/confirmed-pictures.js +0 -212
- package/skills/wix-replatform/lib/dependency-readiness.js +0 -423
- package/skills/wix-replatform/lib/dependency-recovery.js +0 -21
- package/skills/wix-replatform/lib/destination-choice.js +0 -163
- package/skills/wix-replatform/lib/destination-handoff.js +0 -62
- package/skills/wix-replatform/lib/destination-http.js +0 -81
- package/skills/wix-replatform/lib/destination-route.js +0 -98
- package/skills/wix-replatform/lib/destination.js +0 -919
- package/skills/wix-replatform/lib/discovered-census.js +0 -231
- package/skills/wix-replatform/lib/discovered-set-status.js +0 -255
- package/skills/wix-replatform/lib/document-url-guard.js +0 -203
- package/skills/wix-replatform/lib/entity-qa-attestation.js +0 -339
- package/skills/wix-replatform/lib/entity-verification.js +0 -18
- package/skills/wix-replatform/lib/execution-capability.js +0 -120
- package/skills/wix-replatform/lib/execution-log.js +0 -170
- package/skills/wix-replatform/lib/execution-manifest.js +0 -203
- package/skills/wix-replatform/lib/execution-state.js +0 -195
- package/skills/wix-replatform/lib/expectations-ledger.js +0 -96
- package/skills/wix-replatform/lib/generated-plugin-handoff.js +0 -140
- package/skills/wix-replatform/lib/import-readiness-contract.js +0 -23
- package/skills/wix-replatform/lib/import-recovery.js +0 -1107
- package/skills/wix-replatform/lib/imported-redirect-targets.js +0 -608
- package/skills/wix-replatform/lib/internal-link-reconciliation.js +0 -166
- package/skills/wix-replatform/lib/link-audit.js +0 -173
- package/skills/wix-replatform/lib/link-census.js +0 -194
- package/skills/wix-replatform/lib/link-plan.js +0 -148
- package/skills/wix-replatform/lib/link-verification.js +0 -274
- package/skills/wix-replatform/lib/link-write-journal.js +0 -42
- package/skills/wix-replatform/lib/local-state.js +0 -1481
- package/skills/wix-replatform/lib/member-completion.js +0 -658
- package/skills/wix-replatform/lib/member-crosswalk.js +0 -69
- package/skills/wix-replatform/lib/member-outcome-registry.js +0 -265
- package/skills/wix-replatform/lib/migration-completion.js +0 -311
- package/skills/wix-replatform/lib/operator-identity.js +0 -47
- package/skills/wix-replatform/lib/orchestration-decisions.js +0 -248
- package/skills/wix-replatform/lib/orchestration-preflight.js +0 -525
- package/skills/wix-replatform/lib/orchestration-router.js +0 -698
- package/skills/wix-replatform/lib/orchestration-state.js +0 -631
- package/skills/wix-replatform/lib/order-reference-readiness.js +0 -30
- package/skills/wix-replatform/lib/payments-outcome-registry.js +0 -200
- package/skills/wix-replatform/lib/plugin-cms-fallback.js +0 -618
- package/skills/wix-replatform/lib/preservation-approval-stamp.js +0 -54
- package/skills/wix-replatform/lib/product-media-deferral.js +0 -96
- package/skills/wix-replatform/lib/progress-log.js +0 -240
- package/skills/wix-replatform/lib/progress-log.sh +0 -140
- package/skills/wix-replatform/lib/read-back-approval.js +0 -184
- package/skills/wix-replatform/lib/read-back-comparison.js +0 -136
- package/skills/wix-replatform/lib/read-back-contract.js +0 -243
- package/skills/wix-replatform/lib/read-back-extract.js +0 -118
- package/skills/wix-replatform/lib/read-back-gate.js +0 -734
- package/skills/wix-replatform/lib/read-back-reads.js +0 -94
- package/skills/wix-replatform/lib/read-back-state.js +0 -107
- package/skills/wix-replatform/lib/read-back-summary.js +0 -81
- package/skills/wix-replatform/lib/rerun-conflicts.js +0 -334
- package/skills/wix-replatform/lib/run-controller.js +0 -401
- package/skills/wix-replatform/lib/seo-outcome-registry.js +0 -45
- package/skills/wix-replatform/lib/setup-verification.js +0 -148
- package/skills/wix-replatform/lib/source-access.js +0 -231
- package/skills/wix-replatform/lib/source-coverage.js +0 -1130
- package/skills/wix-replatform/lib/source-secrets.js +0 -277
- package/skills/wix-replatform/lib/structured-link-patch.js +0 -59
- package/skills/wix-replatform/lib/task-state.js +0 -110
- package/skills/wix-replatform/lib/url-preservation-report.js +0 -319
- package/skills/wix-replatform/lib/url-preservation-state.js +0 -739
- package/skills/wix-replatform/lib/url-redirect-plan.js +0 -728
- package/skills/wix-replatform/lib/url-verification.js +0 -315
- package/skills/wix-replatform/lib/user-action-effects.js +0 -42
- package/skills/wix-replatform/lib/user-actions.js +0 -264
- package/skills/wix-replatform/lib/website-handoff.js +0 -1220
- package/skills/wix-replatform/lib/wix-client-callers.js +0 -54
- package/skills/wix-replatform/lib/wix-dashboard-url.js +0 -35
- package/skills/wix-replatform/lib/write-verification-state.js +0 -92
- package/skills/wix-replatform/lib/write-verification.js +0 -274
- package/skills/wix-replatform/resources/rp-destination/SKILL.md +0 -137
- package/skills/wix-replatform/resources/rp-discovery/SKILL.md +0 -357
- package/skills/wix-replatform/resources/rp-discovery/scripts/promote-source-coverage.js +0 -47
- package/skills/wix-replatform/resources/rp-execute-import/SKILL.md +0 -1369
- package/skills/wix-replatform/resources/rp-execute-import/scripts/shipping-estimate-audit.js +0 -70
- package/skills/wix-replatform/resources/rp-execute-setup/SKILL.md +0 -482
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/execute-setup.js +0 -442
- package/skills/wix-replatform/resources/rp-execute-setup/scripts/mint-token.sh +0 -64
- package/skills/wix-replatform/resources/rp-execution-policy/SKILL.md +0 -112
- package/skills/wix-replatform/resources/rp-execution-policy/lib/coupon-currency-plan-report.js +0 -143
- package/skills/wix-replatform/resources/rp-execution-policy/lib/payments-report.js +0 -244
- package/skills/wix-replatform/resources/rp-import-codegen/SKILL.md +0 -3158
- package/skills/wix-replatform/resources/rp-mapper/SKILL.md +0 -947
- package/skills/wix-replatform/resources/rp-mapper/lib/mapping-resolve.js +0 -217
- package/skills/wix-replatform/resources/rp-mapper/lib/structure-bridge-planning.js +0 -303
- package/skills/wix-replatform/resources/rp-mapper/scripts/coverage-reconcile.js +0 -88
- package/skills/wix-replatform/resources/rp-mapper/scripts/resolve-mapping.js +0 -148
- package/skills/wix-replatform/resources/rp-mapper/wix-business-solutions-taxonomy.md +0 -378
- package/skills/wix-replatform/resources/rp-preflight/SKILL.md +0 -40
- package/skills/wix-replatform/resources/rp-project-intake/SKILL.md +0 -55
- package/skills/wix-replatform/resources/rp-quick-runtime/SKILL.md +0 -60
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/import-progress.js +0 -89
- package/skills/wix-replatform/resources/rp-quick-runtime/lib/limit-recovery.js +0 -36
- package/skills/wix-replatform/resources/rp-quick-shopify/SKILL.md +0 -123
- package/skills/wix-replatform/resources/rp-quick-shopify/quick-mode.json +0 -124
- package/skills/wix-replatform/resources/rp-quick-shopify/scripts/quick-mode.js +0 -522
- package/skills/wix-replatform/resources/rp-quick-woocommerce/SKILL.md +0 -56
- package/skills/wix-replatform/resources/rp-quick-woocommerce/quick-mode.json +0 -91
- package/skills/wix-replatform/resources/rp-quick-woocommerce/scripts/quick-mode.js +0 -255
- package/skills/wix-replatform/resources/rp-setup-discovery/SKILL.md +0 -253
- package/skills/wix-replatform/resources/rp-setup-discovery/scripts/quick-setup-plan.js +0 -44
- package/skills/wix-replatform/resources/rp-source-csv/SKILL.md +0 -481
- package/skills/wix-replatform/resources/rp-source-csv/lib/canonical-record.js +0 -136
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fileset.js +0 -0
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-fingerprint.js +0 -310
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-layout.js +0 -1081
- package/skills/wix-replatform/resources/rp-source-csv/lib/csv-parse.js +0 -618
- package/skills/wix-replatform/resources/rp-source-csv/scripts/csv-discovery.js +0 -969
- package/skills/wix-replatform/resources/rp-source-csv/source-schema.example.json +0 -196
- package/skills/wix-replatform/resources/rp-source-csv/vendors/bigcommerce.json +0 -66
- package/skills/wix-replatform/resources/rp-source-csv/vendors/magento.json +0 -60
- package/skills/wix-replatform/resources/rp-source-csv/vendors/shopify.json +0 -95
- package/skills/wix-replatform/resources/rp-source-csv/vendors/woocommerce.json +0 -82
- package/skills/wix-replatform/resources/rp-source-inputs/SKILL.md +0 -66
- package/skills/wix-replatform/resources/rp-source-sfcc/SKILL.md +0 -153
- package/skills/wix-replatform/resources/rp-source-shopify/SKILL.md +0 -394
- package/skills/wix-replatform/resources/rp-source-shopify/lib/discovery-reads.js +0 -200
- package/skills/wix-replatform/resources/rp-source-shopify/lib/import-findings.js +0 -34
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk-sqlite-worker.js +0 -44
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-bulk.js +0 -1470
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-cli.js +0 -446
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-gift-cards.js +0 -474
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-protected-fields.js +0 -879
- package/skills/wix-replatform/resources/rp-source-shopify/lib/shopify-session.js +0 -426
- package/skills/wix-replatform/resources/rp-source-shopify/queries/articles.graphql +0 -24
- package/skills/wix-replatform/resources/rp-source-shopify/queries/blogs.graphql +0 -18
- package/skills/wix-replatform/resources/rp-source-shopify/queries/collections.graphql +0 -40
- package/skills/wix-replatform/resources/rp-source-shopify/queries/customers.graphql +0 -76
- package/skills/wix-replatform/resources/rp-source-shopify/queries/delivery-profiles.graphql +0 -51
- package/skills/wix-replatform/resources/rp-source-shopify/queries/discounts.graphql +0 -35
- package/skills/wix-replatform/resources/rp-source-shopify/queries/files.graphql +0 -20
- package/skills/wix-replatform/resources/rp-source-shopify/queries/gift-cards.graphql +0 -18
- package/skills/wix-replatform/resources/rp-source-shopify/queries/inventory.graphql +0 -31
- package/skills/wix-replatform/resources/rp-source-shopify/queries/locations.graphql +0 -21
- package/skills/wix-replatform/resources/rp-source-shopify/queries/menus.graphql +0 -21
- package/skills/wix-replatform/resources/rp-source-shopify/queries/metaobjects.graphql +0 -30
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-core.graphql +0 -150
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-fulfillments.graphql +0 -36
- package/skills/wix-replatform/resources/rp-source-shopify/queries/orders-refunds.graphql +0 -48
- package/skills/wix-replatform/resources/rp-source-shopify/queries/pages.graphql +0 -20
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-address.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-email.graphql +0 -6
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-name.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-customers-phone.graphql +0 -8
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-address.graphql +0 -12
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-email.graphql +0 -6
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-name.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/queries/probe-orders-phone.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/queries/products.graphql +0 -73
- package/skills/wix-replatform/resources/rp-source-shopify/queries/url-redirects.graphql +0 -13
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-discovery.js +0 -693
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-extract.js +0 -283
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-gift-card-remedy.js +0 -191
- package/skills/wix-replatform/resources/rp-source-shopify/scripts/shopify-session-check.js +0 -115
- package/skills/wix-replatform/resources/rp-source-shopify/source-schema.example.json +0 -201
- package/skills/wix-replatform/resources/rp-source-wordpress/PLUGIN-READ-PLANS.md +0 -146
- package/skills/wix-replatform/resources/rp-source-wordpress/SKILL.md +0 -970
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/blocked-data-handlers.js +0 -73
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.js +0 -115
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/checkout-field-csv-parser.test-fixture.js +0 -91
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/coupon-discovery.js +0 -440
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/currency-gate.js +0 -125
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.js +0 -252
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-source-keys.json +0 -183
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/gateway-summary.mjs +0 -333
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/invoice-discovery.js +0 -426
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-disposition.js +0 -400
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-entity-read-plan.js +0 -633
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/plugin-knowledge.js +0 -1127
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.js +0 -194
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/refund-corroboration.json +0 -100
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/sampled-ids-batch.js +0 -157
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/secret-value-guard.js +0 -234
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/store-currency.js +0 -101
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/structure-bridge-reader.js +0 -755
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.js +0 -1074
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wix-wp-plugin-v2-client.test-fixture.js +0 -149
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/woo-inventory.js +0 -25
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-http.js +0 -444
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-image-url.js +0 -186
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-plugin-detect.js +0 -1422
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-redirect-sources.js +0 -343
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/wp-route-classifier.js +0 -680
- package/skills/wix-replatform/resources/rp-source-wordpress/lib/yoast-product-seo-evidence.js +0 -272
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/README.md +0 -373
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/advanced-custom-fields.json +0 -101
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/back-in-stock-notifier-for-woocommerce.json +0 -81
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/capabilities-pending-decision.json +0 -128
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/cms-fallback-eligible.json +0 -18
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/contact-form-7.json +0 -104
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/facebook-for-woocommerce.json +0 -44
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/fingerprint-aliases.json +0 -49
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/free-gifts-for-woocommerce.json +0 -94
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/index.json +0 -863
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mailpoet.json +0 -52
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/membership-for-woocommerce.json +0 -161
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/mwb-bookings-for-woocommerce.json +0 -180
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/no-migration-needed.json +0 -286
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pricing-deals-for-woocommerce.json +0 -79
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/product-extras-for-woocommerce.json +0 -120
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/pw-woocommerce-gift-cards.json +0 -128
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/requires-development.json +0 -88
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seo-by-rank-math.json +0 -80
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/seriously-simple-podcasting.json +0 -46
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/strong-testimonials.json +0 -55
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/subscriptions-for-woocommerce.json +0 -99
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/tablepress.json +0 -55
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/the-events-calendar.json +0 -160
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/ti-woocommerce-wishlist.json +0 -81
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-checkout-field-editor-pro.json +0 -60
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-discount-rules.json +0 -74
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woo-product-bundle.json +0 -75
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-gift-cards.json +0 -60
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-other-payment-gateway.json +0 -44
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-pdf-invoices-packing-slips.json +0 -57
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-product-addon.json +0 -141
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/woocommerce-progressive-discounts.json +0 -54
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wordpress-seo.json +0 -158
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpc-composite-products.json +0 -97
- package/skills/wix-replatform/resources/rp-source-wordpress/plugins/wpforms-lite.json +0 -86
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/capture-store-settings.js +0 -90
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge-validate.js +0 -51
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/plugin-knowledge.js +0 -103
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-discovery.js +0 -2409
- package/skills/wix-replatform/resources/rp-source-wordpress/scripts/wp-plugin-inventory.js +0 -273
- package/skills/wix-replatform/resources/rp-source-wordpress/secret-value-patterns.v1.json +0 -11
- package/skills/wix-replatform/resources/rp-source-wordpress/source-schema.example.json +0 -71
- package/skills/wix-replatform/resources/rp-source-wordpress/sub-parts.json +0 -13
- package/skills/wix-replatform/resources/rp-target-wix/SKILL.md +0 -1046
- package/skills/wix-replatform/resources/rp-target-wix/app-page-routing-capabilities.json +0 -36
- package/skills/wix-replatform/resources/rp-target-wix/domains/README.md +0 -57
- package/skills/wix-replatform/resources/rp-target-wix/domains/SERVICE-PLUGINS.md +0 -322
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/docs-survey.json +0 -70
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/domain.json +0 -29
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/category.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/comment.json +0 -83
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/post.json +0 -95
- package/skills/wix-replatform/resources/rp-target-wix/domains/blog/entities/tag.json +0 -66
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/docs-survey.json +0 -332
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/domain.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/booking.json +0 -181
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service-add-on.json +0 -130
- package/skills/wix-replatform/resources/rp-target-wix/domains/bookings/entities/service.json +0 -180
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/docs-survey.json +0 -161
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/domain.json +0 -25
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/collection.json +0 -67
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/data-item.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/cms/entities/reference.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/docs-survey.json +0 -204
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/domain.json +0 -27
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/contact.json +0 -275
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/email-subscription.json +0 -105
- package/skills/wix-replatform/resources/rp-target-wix/domains/crm/entities/label.json +0 -77
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/docs-survey.json +0 -306
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/domain.json +0 -44
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/delivery-profile.json +0 -171
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/discount-rule.json +0 -182
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-applied-discount.json +0 -129
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-invoice-document.json +0 -192
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item-options.json +0 -123
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-line-item.json +0 -85
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-merchant-note.json +0 -112
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-payment.json +0 -191
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order-refund.json +0 -164
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/order.json +0 -462
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/pickup-location.json +0 -122
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/shipping-option.json +0 -98
- package/skills/wix-replatform/resources/rp-target-wix/domains/ecom/entities/wishlist-item.json +0 -86
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/docs-survey.json +0 -128
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/domain.json +0 -38
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/category.json +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/event.json +0 -107
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/registration-form.json +0 -89
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/rsvp.json +0 -118
- package/skills/wix-replatform/resources/rp-target-wix/domains/events/entities/ticket-definition.json +0 -93
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/docs-survey.json +0 -86
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/domain.json +0 -56
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form-submission.json +0 -121
- package/skills/wix-replatform/resources/rp-target-wix/domains/forms/entities/form.json +0 -134
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/domain.json +0 -50
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card-product.json +0 -87
- package/skills/wix-replatform/resources/rp-target-wix/domains/gift-cards/entities/gift-card.json +0 -130
- package/skills/wix-replatform/resources/rp-target-wix/domains/index.json +0 -1418
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/domain.json +0 -24
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-file.json +0 -75
- package/skills/wix-replatform/resources/rp-target-wix/domains/media/entities/media-folder.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/docs-survey.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/domain.json +0 -23
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/badge.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/custom-field.json +0 -82
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member-about.json +0 -77
- package/skills/wix-replatform/resources/rp-target-wix/domains/members/entities/member.json +0 -205
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/docs-survey.json +0 -41
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/domain.json +0 -46
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan-order.json +0 -137
- package/skills/wix-replatform/resources/rp-target-wix/domains/pricing-plans/entities/plan.json +0 -133
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/docs-survey.json +0 -7
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/domain.json +0 -36
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/amazon-shop-connect.json +0 -71
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/ebay-shop-connect.json +0 -67
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/google-youtube-connect.json +0 -72
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/meta-catalog-connect.json +0 -74
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/pinterest-catalog-connect.json +0 -69
- package/skills/wix-replatform/resources/rp-target-wix/domains/sales-channels/entities/tiktok-catalog-connect.json +0 -61
- package/skills/wix-replatform/resources/rp-target-wix/domains/schema.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/docs-survey.json +0 -109
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/domain.json +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/item-seo-tags.json +0 -148
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/seo-pattern.json +0 -91
- package/skills/wix-replatform/resources/rp-target-wix/domains/seo/entities/site-seo-tags.json +0 -79
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/docs-survey.json +0 -32
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/domain.json +0 -49
- package/skills/wix-replatform/resources/rp-target-wix/domains/site/entities/business-contact.json +0 -103
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/docs-survey.json +0 -203
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/domain.json +0 -42
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/back-in-stock-request.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/brand.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/category.json +0 -81
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/coupon.json +0 -241
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/inventory-item.json +0 -118
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-customization.json +0 -111
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product-tag.json +0 -79
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/product.json +0 -221
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/promotion.json +0 -84
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/review.json +0 -178
- package/skills/wix-replatform/resources/rp-target-wix/domains/stores/entities/subscription-product.json +0 -87
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/docs-survey.json +0 -106
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/domain.json +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/manual-tax-mapping.json +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-group.json +0 -94
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-region.json +0 -113
- package/skills/wix-replatform/resources/rp-target-wix/domains/tax/entities/tax-settings.json +0 -65
- package/skills/wix-replatform/resources/rp-target-wix/lib/audit-summary.js +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-author-attribution.js +0 -165
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-client.js +0 -60
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-duplicates.js +0 -201
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-ledger.js +0 -306
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-report.js +0 -229
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build-stage.js +0 -55
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-build.js +0 -715
- package/skills/wix-replatform/resources/rp-target-wix/lib/blog-post-media.js +0 -567
- package/skills/wix-replatform/resources/rp-target-wix/lib/bulk-results.js +0 -73
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-extended-fields.js +0 -194
- package/skills/wix-replatform/resources/rp-target-wix/lib/contact-import.js +0 -133
- package/skills/wix-replatform/resources/rp-target-wix/lib/contract-ledger.js +0 -150
- package/skills/wix-replatform/resources/rp-target-wix/lib/coupon-redemption-drift.js +0 -491
- package/skills/wix-replatform/resources/rp-target-wix/lib/customer-member.js +0 -104
- package/skills/wix-replatform/resources/rp-target-wix/lib/data-extension-schema.js +0 -673
- package/skills/wix-replatform/resources/rp-target-wix/lib/domain-knowledge.js +0 -835
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-balance-reconciliation.js +0 -119
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-build.js +0 -566
- package/skills/wix-replatform/resources/rp-target-wix/lib/gift-card-redemption-build.js +0 -249
- package/skills/wix-replatform/resources/rp-target-wix/lib/ndjson.js +0 -260
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-applied-discount-build.js +0 -63
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-buyer.js +0 -187
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-channel-build.js +0 -64
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-history.js +0 -1027
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-invoice-contract.js +0 -90
- package/skills/wix-replatform/resources/rp-target-wix/lib/order-payment-mapping.js +0 -420
- package/skills/wix-replatform/resources/rp-target-wix/lib/pricing-plan-definition.js +0 -177
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-import.js +0 -151
- package/skills/wix-replatform/resources/rp-target-wix/lib/product-seo.js +0 -723
- package/skills/wix-replatform/resources/rp-target-wix/lib/seo-redirects.js +0 -353
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-build.js +0 -1437
- package/skills/wix-replatform/resources/rp-target-wix/lib/shipping-option-stage.js +0 -354
- package/skills/wix-replatform/resources/rp-target-wix/lib/store-config-build.js +0 -134
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-category-attach.js +0 -221
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-inventory.js +0 -248
- package/skills/wix-replatform/resources/rp-target-wix/lib/stores-verification.js +0 -321
- package/skills/wix-replatform/resources/rp-target-wix/lib/tax-build.js +0 -231
- package/skills/wix-replatform/resources/rp-target-wix/lib/url-mapper-transport.js +0 -28
- package/skills/wix-replatform/resources/rp-target-wix/lib/value-utils.js +0 -14
- package/skills/wix-replatform/resources/rp-target-wix/lib/variant-correlation.js +0 -34
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-build.js +0 -388
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-target-spec.js +0 -255
- package/skills/wix-replatform/resources/rp-target-wix/lib/wix-writers.js +0 -6041
- package/skills/wix-replatform/resources/rp-target-wix/lib/write-verification.js +0 -3
- package/skills/wix-replatform/resources/rp-target-wix/scripts/docs-survey-sync.js +0 -150
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge-validate.js +0 -69
- package/skills/wix-replatform/resources/rp-target-wix/scripts/domain-knowledge.js +0 -100
- package/skills/wix-replatform/resources/rp-target-wix/scripts/verify-stores.js +0 -112
- package/skills/wix-replatform/resources/rp-telemetry/SKILL.md +0 -484
- package/skills/wix-replatform/resources/rp-telemetry/lib/bi-sink.js +0 -318
- package/skills/wix-replatform/resources/rp-telemetry/lib/telemetry-recorder.js +0 -2831
- package/skills/wix-replatform/resources/rp-telemetry/lib/transcript-digest.js +0 -318
- package/skills/wix-replatform/resources/rp-telemetry/scripts/meter-from-audit.js +0 -83
- package/skills/wix-replatform/resources/rp-telemetry/scripts/rp-telemetry.js +0 -243
- package/skills/wix-replatform/resources/rp-website-continuation/SKILL.md +0 -94
- package/skills/wix-replatform/scripts/artifact-freshness.js +0 -76
- package/skills/wix-replatform/scripts/census-reconciliation.js +0 -25
- package/skills/wix-replatform/scripts/cms-fallback.js +0 -89
- package/skills/wix-replatform/scripts/discovered-census.js +0 -26
- package/skills/wix-replatform/scripts/discovered-set-status.js +0 -33
- package/skills/wix-replatform/scripts/entity-qa-attestation.js +0 -130
- package/skills/wix-replatform/scripts/execution-health-check.js +0 -415
- package/skills/wix-replatform/scripts/execution-manifest-validate.js +0 -43
- package/skills/wix-replatform/scripts/execution-state-prepare.js +0 -128
- package/skills/wix-replatform/scripts/expectations-ledger.js +0 -44
- package/skills/wix-replatform/scripts/import-contract-verify.js +0 -183
- package/skills/wix-replatform/scripts/internal-link-audit.js +0 -90
- package/skills/wix-replatform/scripts/item-seo-tags-verify.js +0 -205
- package/skills/wix-replatform/scripts/migration-completion.js +0 -76
- package/skills/wix-replatform/scripts/orchestration-preflight.js +0 -67
- package/skills/wix-replatform/scripts/orchestration-route.js +0 -77
- package/skills/wix-replatform/scripts/orchestration-state.js +0 -381
- package/skills/wix-replatform/scripts/read-back-gate.js +0 -175
- package/skills/wix-replatform/scripts/replatform-console.js +0 -146
- package/skills/wix-replatform/scripts/replatform.js +0 -436
- package/skills/wix-replatform/scripts/source-secrets.js +0 -77
- package/skills/wix-replatform/scripts/url-redirects.js +0 -286
- package/skills/wix-replatform/scripts/user-action.js +0 -58
- package/skills/wix-replatform/scripts/website-handoff-generate.js +0 -64
- package/skills/wix-replatform/scripts/wix-dashboard-url.js +0 -54
- package/skills/wix-replatform/scripts/wix-destination.js +0 -143
- package/skills/wix-replatform/scripts/wix-headless-scaffold.js +0 -762
- package/skills/wix-vibe-headless/SKILL.md +0 -183
- package/skills/wix-vibe-headless/install/deploy.cjs +0 -221
- package/skills/wix-vibe-headless/install/pin-agents-md.cjs +0 -35
- package/skills/wix-vibe-headless/platforms/README.md +0 -26
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed-with-install.md +0 -127
- package/skills/wix-vibe-headless/platforms/base44-ecom-light-seed.md +0 -121
- package/skills/wix-vibe-headless/platforms/base44-ecom-light.md +0 -87
- package/skills/wix-vibe-headless/platforms/base44.md +0 -148
- package/skills/wix-vibe-headless/platforms/generic.md +0 -132
- package/skills/wix-vibe-headless/references/_shared/nav/nav.tanstack.js +0 -30
- package/skills/wix-vibe-headless/references/_shared/routing.md +0 -86
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +0 -270
- package/skills/wix-vibe-headless/references/blog/app/components/PostCard.jsx +0 -43
- package/skills/wix-vibe-headless/references/blog/app/components/PostChips.jsx +0 -25
- package/skills/wix-vibe-headless/references/blog/app/components/PostGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/blog/app/context/TaxonomyContext.jsx +0 -35
- package/skills/wix-vibe-headless/references/blog/app/hooks/usePostDetail.js +0 -38
- package/skills/wix-vibe-headless/references/blog/app/pages/Blog.jsx +0 -40
- package/skills/wix-vibe-headless/references/blog/app/pages/CategoryPage.jsx +0 -54
- package/skills/wix-vibe-headless/references/blog/app/pages/PostDetail.jsx +0 -65
- package/skills/wix-vibe-headless/references/blog/app/pages/TagPage.jsx +0 -50
- package/skills/wix-vibe-headless/references/blog/app/rest/wix-blog.js +0 -217
- package/skills/wix-vibe-headless/references/blog/seed/SEED.md +0 -99
- package/skills/wix-vibe-headless/references/blog/seed/seed-blog.cjs +0 -269
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +0 -342
- package/skills/wix-vibe-headless/references/bookings/app/components/BookingForm.jsx +0 -65
- package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx +0 -67
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceCard.jsx +0 -47
- package/skills/wix-vibe-headless/references/bookings/app/components/ServiceGrid.jsx +0 -13
- package/skills/wix-vibe-headless/references/bookings/app/components/SlotPicker.jsx +0 -126
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useRentalDuration.js +0 -128
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServiceDetail.js +0 -110
- package/skills/wix-vibe-headless/references/bookings/app/hooks/useServices.js +0 -58
- package/skills/wix-vibe-headless/references/bookings/app/lib/serviceFacts.js +0 -95
- package/skills/wix-vibe-headless/references/bookings/app/pages/ServiceDetail.jsx +0 -94
- package/skills/wix-vibe-headless/references/bookings/app/pages/Services.jsx +0 -89
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-checkout.js +0 -148
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-rentals.js +0 -250
- package/skills/wix-vibe-headless/references/bookings/app/rest/wix-bookings-services.js +0 -300
- package/skills/wix-vibe-headless/references/bookings/seed/SEED.md +0 -154
- package/skills/wix-vibe-headless/references/bookings/seed/seed-bookings.cjs +0 -333
- package/skills/wix-vibe-headless/references/bookings/seed/seed-rentals.cjs +0 -267
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +0 -178
- package/skills/wix-vibe-headless/references/cms/app/collection.config.js +0 -31
- package/skills/wix-vibe-headless/references/cms/app/lib/wixImage.js +0 -18
- package/skills/wix-vibe-headless/references/cms/app/rest/wix-cms.js +0 -231
- package/skills/wix-vibe-headless/references/cms/seed/SEED.md +0 -145
- package/skills/wix-vibe-headless/references/donations/INSTRUCTIONS.md +0 -88
- package/skills/wix-vibe-headless/references/donations/app/rest/wix-donations.js +0 -112
- package/skills/wix-vibe-headless/references/donations/seed/SEED.md +0 -11
- package/skills/wix-vibe-headless/references/donations/tests/donations.test.mjs +0 -258
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +0 -267
- package/skills/wix-vibe-headless/references/events/app/components/CategoryFilter.jsx +0 -23
- package/skills/wix-vibe-headless/references/events/app/components/EventCard.jsx +0 -43
- package/skills/wix-vibe-headless/references/events/app/components/EventGrid.jsx +0 -13
- package/skills/wix-vibe-headless/references/events/app/components/EventRegistration.jsx +0 -29
- package/skills/wix-vibe-headless/references/events/app/components/RsvpForm.jsx +0 -57
- package/skills/wix-vibe-headless/references/events/app/components/TicketPicker.jsx +0 -78
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventDetail.js +0 -27
- package/skills/wix-vibe-headless/references/events/app/hooks/useEventsList.js +0 -54
- package/skills/wix-vibe-headless/references/events/app/hooks/useRsvpForm.js +0 -40
- package/skills/wix-vibe-headless/references/events/app/hooks/useTicketing.js +0 -81
- package/skills/wix-vibe-headless/references/events/app/pages/EventDetail.jsx +0 -48
- package/skills/wix-vibe-headless/references/events/app/pages/Events.jsx +0 -36
- package/skills/wix-vibe-headless/references/events/app/rest/wix-events-browse.js +0 -136
- package/skills/wix-vibe-headless/references/events/app/rest/wix-events-registration.js +0 -187
- package/skills/wix-vibe-headless/references/events/seed/SEED.md +0 -103
- package/skills/wix-vibe-headless/references/events/seed/seed-events.cjs +0 -251
- package/skills/wix-vibe-headless/references/forms/INSTRUCTIONS.md +0 -487
- package/skills/wix-vibe-headless/references/forms/app/hooks/useWixForm.js +0 -425
- package/skills/wix-vibe-headless/references/forms/app/lib/wix-form-schema-utils.js +0 -187
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms-submissions.js +0 -238
- package/skills/wix-vibe-headless/references/forms/app/rest/wix-forms.js +0 -108
- package/skills/wix-vibe-headless/references/forms/seed/SEED.md +0 -1836
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +0 -328
- package/skills/wix-vibe-headless/references/members/app/components/LoginForm.jsx +0 -101
- package/skills/wix-vibe-headless/references/members/app/components/MemberMenu.jsx +0 -33
- package/skills/wix-vibe-headless/references/members/app/components/RequireAuth.jsx +0 -21
- package/skills/wix-vibe-headless/references/members/app/components/SocialButtons.jsx +0 -29
- package/skills/wix-vibe-headless/references/members/app/context/MemberContext.jsx +0 -54
- package/skills/wix-vibe-headless/references/members/app/hooks/useLoginForm.js +0 -77
- package/skills/wix-vibe-headless/references/members/app/pages/Account.jsx +0 -36
- package/skills/wix-vibe-headless/references/members/app/pages/Callback.jsx +0 -32
- package/skills/wix-vibe-headless/references/members/app/pages/Login.jsx +0 -35
- package/skills/wix-vibe-headless/references/members/app/rest/wix-members-auth.js +0 -390
- package/skills/wix-vibe-headless/references/members/install/Register.jsx +0 -22
- package/skills/wix-vibe-headless/references/members/seed/SEED.md +0 -21
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +0 -270
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionCard.jsx +0 -31
- package/skills/wix-vibe-headless/references/portfolio/app/components/CollectionGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectCard.jsx +0 -39
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectGrid.jsx +0 -15
- package/skills/wix-vibe-headless/references/portfolio/app/components/ProjectMedia.jsx +0 -29
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useCollectionProjects.js +0 -35
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/usePortfolioGallery.js +0 -27
- package/skills/wix-vibe-headless/references/portfolio/app/hooks/useProjectDetail.js +0 -25
- package/skills/wix-vibe-headless/references/portfolio/app/pages/CollectionPage.jsx +0 -39
- package/skills/wix-vibe-headless/references/portfolio/app/pages/Portfolio.jsx +0 -27
- package/skills/wix-vibe-headless/references/portfolio/app/pages/ProjectDetail.jsx +0 -60
- package/skills/wix-vibe-headless/references/portfolio/app/rest/wix-portfolio.js +0 -223
- package/skills/wix-vibe-headless/references/portfolio/seed/SEED.md +0 -90
- package/skills/wix-vibe-headless/references/portfolio/seed/seed-portfolio.cjs +0 -236
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +0 -280
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/OrderCard.jsx +0 -35
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanCard.jsx +0 -48
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanGrid.jsx +0 -16
- package/skills/wix-vibe-headless/references/pricing-plans/app/components/PlanPrice.jsx +0 -35
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/useMyPlans.js +0 -25
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlanDetail.js +0 -28
- package/skills/wix-vibe-headless/references/pricing-plans/app/hooks/usePlans.js +0 -30
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/MyPlans.jsx +0 -30
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/PlanDetail.jsx +0 -53
- package/skills/wix-vibe-headless/references/pricing-plans/app/pages/Plans.jsx +0 -28
- package/skills/wix-vibe-headless/references/pricing-plans/app/rest/wix-pricing-plans.js +0 -157
- package/skills/wix-vibe-headless/references/pricing-plans/seed/SEED.md +0 -82
- package/skills/wix-vibe-headless/references/pricing-plans/seed/seed-pricing-plans.cjs +0 -251
- package/skills/wix-vibe-headless/references/rentals/INSTRUCTIONS.md +0 -13
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +0 -290
- package/skills/wix-vibe-headless/references/restaurants/app/components/ItemDialog.jsx +0 -81
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuItemCard.jsx +0 -71
- package/skills/wix-vibe-headless/references/restaurants/app/components/MenuList.jsx +0 -43
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartButton.jsx +0 -21
- package/skills/wix-vibe-headless/references/restaurants/app/components/OrderCartDrawer.jsx +0 -72
- package/skills/wix-vibe-headless/references/restaurants/app/context/OrderCartContext.jsx +0 -66
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useItemOrder.js +0 -32
- package/skills/wix-vibe-headless/references/restaurants/app/hooks/useReservation.js +0 -73
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Menu.jsx +0 -28
- package/skills/wix-vibe-headless/references/restaurants/app/pages/Reservations.jsx +0 -102
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-menu.js +0 -224
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-ordering.js +0 -218
- package/skills/wix-vibe-headless/references/restaurants/app/rest/wix-restaurants-reservations.js +0 -107
- package/skills/wix-vibe-headless/references/restaurants/seed/SEED.md +0 -176
- package/skills/wix-vibe-headless/references/restaurants/seed/seed-restaurants.cjs +0 -452
- package/skills/wix-vibe-headless/references/shared/app/components/WixManageBanner.jsx +0 -56
- package/skills/wix-vibe-headless/references/shared/app/lib/nav.js +0 -9
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-client.js +0 -185
- package/skills/wix-vibe-headless/references/shared/app/rest/wix-config.js +0 -8
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +0 -471
- package/skills/wix-vibe-headless/references/storefront/app/components/CartButton.jsx +0 -20
- package/skills/wix-vibe-headless/references/storefront/app/components/CartDrawer.jsx +0 -167
- package/skills/wix-vibe-headless/references/storefront/app/context/CartContext.jsx +0 -83
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductCard.js +0 -104
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useProductDetail.js +0 -163
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useShop.js +0 -83
- package/skills/wix-vibe-headless/references/storefront/app/hooks/useVariantOptions.js +0 -76
- package/skills/wix-vibe-headless/references/storefront/app/lib/storeImage.js +0 -64
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-cart.js +0 -176
- package/skills/wix-vibe-headless/references/storefront/app/rest/wix-store-catalog.js +0 -218
- package/skills/wix-vibe-headless/references/storefront/seed/SEED.md +0 -174
- package/skills/wix-vibe-headless/references/storefront/seed/seed-store.cjs +0 -546
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
# Wix Events — ready-made client
|
|
2
|
-
|
|
3
|
-
The events client is **shipped as real files**, not snippets to regenerate. It's a complete events
|
|
4
|
-
listing + detail page + RSVP + ticketing (reserve → hosted checkout, plus in-app free-ticket
|
|
5
|
-
checkout), styled with your app's design tokens (base44's `src/index.css` — the shadcn palette the
|
|
6
|
-
design phase already set). Copy it into the app and wire the routes — you generate almost none of the
|
|
7
|
-
events code (offset paging, category filtering, the RSVP `WAITLIST` case, the ticket
|
|
8
|
-
reservation/checkout shapes all ship and are correct).
|
|
9
|
-
|
|
10
|
-
Talks to Wix directly over the public `WIX_CLIENT_ID` (anonymous visitor tokens). Never mock events;
|
|
11
|
-
never hand-build a registration/ticket/checkout URL — RSVP completes client-side and paid tickets go
|
|
12
|
-
through the Wix-hosted ticket form via the shipped reserve → redirect path.
|
|
13
|
-
|
|
14
|
-
## Prerequisites
|
|
15
|
-
- The site's **Wix Events & Tickets** app is the read/registration target. It's installed and seeded separately (see **Seeding** below), in parallel with this build — so it may have no events at build time; the client renders the shipped empty state until events are published. This client is read-only over events (it does not create them).
|
|
16
|
-
- The public headless **`WIX_CLIENT_ID`** from your prompt (visitor-facing, safe to hardcode/commit).
|
|
17
|
-
- Selling **paid** tickets also needs a Wix premium plan + a configured payment method on the site; **free** events and RSVP events work without. For paid tickets the buyer completes payment on the Wix-hosted ticket form; the deployed app domain may need to be allow-listed on the OAuth client for the return to land cleanly — a separate Wix setup the user completes later, out of scope here.
|
|
18
|
-
|
|
19
|
-
## STEP 1 — The client is already in `src/`
|
|
20
|
-
The install step (base44.md STEP 1) deployed the whole events UI client + REST scaffolds into `src/`
|
|
21
|
-
(imports use the `@/` alias → `src/`). Here's every file and what it is — **this is your map, so you
|
|
22
|
-
don't need to open them:**
|
|
23
|
-
|
|
24
|
-
| file | what it is |
|
|
25
|
-
|---|---|
|
|
26
|
-
| `hooks/useEventsList.js` | listing logic — categories, active filter, offset "load more", empty count |
|
|
27
|
-
| `hooks/useEventDetail.js` | detail data for a slug — event + derived `type`/`open` registration state |
|
|
28
|
-
| `hooks/useRsvpForm.js` | RSVP submit logic (`YES`/`NO`, additional guests, `WAITLIST` result) |
|
|
29
|
-
| `hooks/useTicketing.js` | ticket selection + reserve → paid redirect / free in-app checkout |
|
|
30
|
-
| `components/EventCard.jsx`, `EventGrid.jsx` | event listing UI (grid + card, with empty state) |
|
|
31
|
-
| `components/CategoryFilter.jsx` | category menu (renders `label` + `assignedEventsCount`) |
|
|
32
|
-
| `components/EventRegistration.jsx` | branches on `registration.type` (RSVP / TICKETING / EXTERNAL / NONE) |
|
|
33
|
-
| `components/RsvpForm.jsx` | RSVP form UI over `useRsvpForm` |
|
|
34
|
-
| `components/TicketPicker.jsx` | ticket list + quantity + checkout UI over `useTicketing` |
|
|
35
|
-
| `components/WixManageBanner.jsx` | preview-only manage banner — drop it into your Layout (STEP 3) |
|
|
36
|
-
| `pages/Events.jsx`, `pages/EventDetail.jsx` | the two shipped routes (`/events`, `/events/:slug`) |
|
|
37
|
-
| `rest/wix-config.js` | the two ids, written by the install step |
|
|
38
|
-
| `rest/wix-client.js` | visitor-token mint/refresh + REST transport (reads `wix-config.js`) |
|
|
39
|
-
| `rest/wix-events-browse.js` | browse/discovery helpers (`queryEvents`, `getEventBySlug`, categories, count) |
|
|
40
|
-
| `rest/wix-events-registration.js` | RSVP + ticketing helpers (`createRsvp`, `reserveTickets`, `getTicketCheckoutUrl`, `checkoutTickets`) |
|
|
41
|
-
|
|
42
|
-
They're already in place — go **straight to theming + wiring**, nothing to verify first. **Don't
|
|
43
|
-
`read_file` the shipped page/component/hook source to inspect it** — the table above says what each is
|
|
44
|
-
and every field shape you need is in the snippets below. Read a shipped file's source **only** on a
|
|
45
|
-
real fallback — a runtime error, or a field the snippets don't cover (see "Fallback only" at the
|
|
46
|
-
end). (Files missing? the install's `deploy` result lists what it wrote; re-run install, or copy
|
|
47
|
-
`references/events/app/` → `src/`.)
|
|
48
|
-
|
|
49
|
-
**Their `Link`/`useParams` imports come from `@/lib/nav`**, so the same sources run on either
|
|
50
|
-
template. That adapter is installed at `src/lib/nav.js` with the rest of the deployed tree — use
|
|
51
|
-
the file that is there, and on TanStack check it first ([which template?](../_shared/routing.md)).
|
|
52
|
-
Import from `@/lib/nav` in the pages you write too, and they stay portable the same way.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
## STEP 2 — Theme
|
|
57
|
-
Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
|
|
58
|
-
share the same colors and typography.
|
|
59
|
-
|
|
60
|
-
## STEP 3 — Wire routes + provider (surgical `find_replace` on `src/App.jsx`, never a rewrite)
|
|
61
|
-
|
|
62
|
-
> **The template decides this step, and `src/routes/__root.jsx` is the question to ask first.**
|
|
63
|
-
> Present → TanStack Start, which mounts these pages as route files at the end of this step; absent
|
|
64
|
-
> → React Router, which the wiring below is written for. Ask in that order: an `src/App.jsx` can
|
|
65
|
-
> exist on a TanStack app because an agent created one, and `__root.jsx` is never there by mistake.
|
|
66
|
-
> The installed `src/lib/nav.js` defaults to the React Router adapter, so on TanStack swap it:
|
|
67
|
-
> [both patterns](../_shared/routing.md).
|
|
68
|
-
>
|
|
69
|
-
> **Import `Link`, `useParams` and friends from `@/lib/nav` in the pages you write too** — same
|
|
70
|
-
> names as the router exports, and nothing you write is pinned to one template.
|
|
71
|
-
|
|
72
|
-
**No file reads needed to wire this.** Every shipped page and `WixManageBanner` is a default export that takes **no props** — wire them exactly as the snippet shows; nothing in those files needs looking up.
|
|
73
|
-
`App.jsx` carries required platform auth scaffolding (`AuthProvider`/`useAuth`) — edit it in, don't
|
|
74
|
-
replace it. (Events needs no cross-page provider — there's no cart; the RSVP/ticketing state is local
|
|
75
|
-
to the detail page.)
|
|
76
|
-
- Put your **header + footer in a `Layout`** that renders `<Outlet/>` between them, and nest every
|
|
77
|
-
route under one pathless `<Route element={<Layout/>}>`. Your brand chrome then wraps **every** page
|
|
78
|
-
— including the shipped `Events` / `EventDetail` — so you **never edit the shipped pages to add a
|
|
79
|
-
header/footer** (they render inside `<Outlet/>` as-is).
|
|
80
|
-
- **Pin the top chrome as one fixed block.** Put `<WixManageBanner/>` (shipped, preview-only) **above**
|
|
81
|
-
your `<Header/>` inside a single `position:fixed` top region — the header itself is plain in-flow
|
|
82
|
-
markup, the region owns the fixing — so banner + header ride together (no scroll drift/gap). Pad
|
|
83
|
-
the content by the region's **ResizeObserver-measured** height so it clears the chrome and
|
|
84
|
-
self-corrects when the banner is dismissed.
|
|
85
|
-
- Routes under the Layout: `/events` → `Events`, `/events/:slug` → `EventDetail` (both shipped, as-is).
|
|
86
|
-
**You add `/` → your own Home** page.
|
|
87
|
-
|
|
88
|
-
```jsx
|
|
89
|
-
import { useRef, useState, useEffect } from "react";
|
|
90
|
-
import { Routes, Route, Outlet } from "react-router-dom";
|
|
91
|
-
import WixManageBanner from "@/components/WixManageBanner"; // shipped, preview-only · default export, no props
|
|
92
|
-
import Events from "@/pages/Events"; // shipped · default export, no props
|
|
93
|
-
import EventDetail from "@/pages/EventDetail"; // shipped · default export, no props
|
|
94
|
-
import Home from "@/pages/Home"; // YOU build
|
|
95
|
-
import Header from "@/components/Header"; // YOU build — plain in-flow markup, NOT position:fixed
|
|
96
|
-
import Footer from "@/components/Footer"; // YOU build
|
|
97
|
-
|
|
98
|
-
function Layout() {
|
|
99
|
-
const topRef = useRef(null);
|
|
100
|
-
const [offset, setOffset] = useState(0);
|
|
101
|
-
useEffect(() => { // measure the fixed region → pad content below it
|
|
102
|
-
const ro = new ResizeObserver(() => setOffset(topRef.current?.offsetHeight ?? 0));
|
|
103
|
-
if (topRef.current) ro.observe(topRef.current);
|
|
104
|
-
return () => ro.disconnect();
|
|
105
|
-
}, []);
|
|
106
|
-
return (<>
|
|
107
|
-
<div ref={topRef} style={{ position: "fixed", top: 0, left: 0, right: 0, zIndex: 50 }}>
|
|
108
|
-
<WixManageBanner /> {/* null on the published site / when dismissed */}
|
|
109
|
-
<Header /> {/* your brand header, in-flow inside this fixed block */}
|
|
110
|
-
</div>
|
|
111
|
-
<div style={{ paddingTop: offset }}> {/* clears the chrome; shrinks when the banner is dismissed */}
|
|
112
|
-
<Outlet /> {/* shipped Events/EventDetail render here, untouched */}
|
|
113
|
-
<Footer />
|
|
114
|
-
</div>
|
|
115
|
-
</>);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
<Routes>
|
|
119
|
-
<Route element={<Layout />}> {/* chrome wraps all */}
|
|
120
|
-
<Route path="/" element={<Home />} /> {/* yours */}
|
|
121
|
-
<Route path="/events" element={<Events />} /> {/* shipped, as-is */}
|
|
122
|
-
<Route path="/events/:slug" element={<EventDetail />} /> {/* shipped, as-is */}
|
|
123
|
-
</Route>
|
|
124
|
-
</Routes>
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
### TanStack Start template — the same pages, mounted as files
|
|
129
|
-
|
|
130
|
-
Chrome (header, footer, the fixed banner region described above) goes in `src/routes/__root.jsx`
|
|
131
|
-
around its `<Outlet/>`, and any provider this vertical asks for wraps that `<Outlet/>` once. Each
|
|
132
|
-
route is a two-line file; shipped pages stay in `src/pages/` untouched.
|
|
133
|
-
|
|
134
|
-
| route | file | component |
|
|
135
|
-
|---|---|---|
|
|
136
|
-
| `/` | `src/routes/index.jsx` | `Home` |
|
|
137
|
-
| `/events` | `src/routes/events.index.jsx` | `Events` |
|
|
138
|
-
| `/events/:slug` | `src/routes/events.$slug.jsx` | `EventDetail` |
|
|
139
|
-
|
|
140
|
-
```jsx
|
|
141
|
-
// src/routes/events.index.jsx
|
|
142
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
143
|
-
import Events from "@/pages/Events";
|
|
144
|
-
|
|
145
|
-
export const Route = createFileRoute("/events")({ component: Events });
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
Path params are `$name` in both the filename and the route path; `useParams()` from `@/lib/nav`
|
|
149
|
-
reads them unchanged. Full pattern, including `ssr: false` for per-user routes:
|
|
150
|
-
[`../_shared/routing.md`](../_shared/routing.md).
|
|
151
|
-
|
|
152
|
-
## What you build (not shipped)
|
|
153
|
-
The **home / landing page**, the **`Header`** and a **`Footer`** — the two you drop into the `Layout`
|
|
154
|
-
(STEP 3) so they wrap every route — plus the overall brand story, styled with the same base44
|
|
155
|
-
tokens/classes. **Compose the shipped pieces** — a "featured events" strip is just `queryEvents` + the
|
|
156
|
-
shipped `EventGrid`; the nav is a link to `/events`:
|
|
157
|
-
|
|
158
|
-
```jsx
|
|
159
|
-
import { useState, useEffect } from "react";
|
|
160
|
-
import { Link } from "react-router-dom";
|
|
161
|
-
import { queryEvents } from "@/rest/wix-events-browse";
|
|
162
|
-
import EventGrid from "@/components/EventGrid";
|
|
163
|
-
|
|
164
|
-
// Responsive header: choose ONE branch with a state flag (copy this pattern). Do NOT render a
|
|
165
|
-
// desktop nav AND a mobile nav toggled by Tailwind `hidden md:*` — these navs are inline-styled and
|
|
166
|
-
// an inline `display` beats a Tailwind class, so `hidden` never applies and BOTH branches render.
|
|
167
|
-
export function Header() {
|
|
168
|
-
const [mobile, setMobile] = useState(() => window.innerWidth < 768);
|
|
169
|
-
useEffect(() => {
|
|
170
|
-
const onResize = () => setMobile(window.innerWidth < 768);
|
|
171
|
-
window.addEventListener("resize", onResize); // keep it reactive to viewport changes
|
|
172
|
-
return () => window.removeEventListener("resize", onResize);
|
|
173
|
-
}, []);
|
|
174
|
-
return (
|
|
175
|
-
<nav style={{ display: "flex", alignItems: "center", justifyContent: "space-between" }}>
|
|
176
|
-
{/* brand/logo */}
|
|
177
|
-
{mobile ? <YourMenu /> : <Link to="/events">Events</Link>}
|
|
178
|
-
</nav>
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export function Featured() { // on your home page
|
|
183
|
-
const [events, setEvents] = useState([]);
|
|
184
|
-
// NB: queryEvents returns { events, total, offset, nextOffset } — destructure the array.
|
|
185
|
-
useEffect(() => { queryEvents({ limit: 6 }).then(({ events }) => setEvents(events)); }, []);
|
|
186
|
-
return <EventGrid events={events} empty="Events coming soon." />;
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
Everything reads base44's design tokens (`index.css`), so your home/nav match the shipped pages automatically.
|
|
190
|
-
|
|
191
|
-
**Editing a component and the change doesn't show? It's the preview, not your code.** The dev preview
|
|
192
|
-
can serve a stale module after a write. Before diagnosing a visual bug you just "fixed", do a fresh
|
|
193
|
-
full navigate/reload of the preview and re-check — don't keep rewriting correct code against a stale
|
|
194
|
-
render.
|
|
195
|
-
|
|
196
|
-
## Using the client from your own UI
|
|
197
|
-
|
|
198
|
-
```jsx
|
|
199
|
-
// Every browse list helper returns an OBJECT { events, total, offset, nextOffset } — not a bare
|
|
200
|
-
// array. Destructure `events`; nextOffset is null when there are no more pages.
|
|
201
|
-
import { queryEvents, getEventBySlug, queryEventCategories, listEventsByCategory, countUpcomingEvents } from "@/rest/wix-events-browse";
|
|
202
|
-
|
|
203
|
-
const { events, nextOffset } = await queryEvents({ limit: 24 }); // live UPCOMING/STARTED, soonest first
|
|
204
|
-
const { categories } = await queryEventCategories(); // render category.label (NOT name)
|
|
205
|
-
const { events: inCat } = await listEventsByCategory(categories[0].id); // same shape + paging as queryEvents
|
|
206
|
-
const total = await countUpcomingEvents(); // 0 → shipped empty state
|
|
207
|
-
|
|
208
|
-
// Detail by slug — returns null on miss (the shipped EventDetail shows a not-found state):
|
|
209
|
-
const event = await getEventBySlug(slug);
|
|
210
|
-
|
|
211
|
-
// Image urls live at event.mainImage.url. shortDescription is a PLAIN string (safe to render).
|
|
212
|
-
// event.description is Ricos rich content { nodes: [...] } — NOT a string; render with @wix/ricos or
|
|
213
|
-
// walk nodes; NEVER call string methods (.slice/.split) on it — that crashes the page.
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
The registration flows are already wired in the shipped `EventRegistration` (branches on
|
|
217
|
-
`registration.type`, respects `registration.status` — only `OPEN_*` accepts registrations), so your
|
|
218
|
-
pages just render `<EventRegistration .../>` as the shipped `EventDetail` does. Doing a flow yourself:
|
|
219
|
-
|
|
220
|
-
```jsx
|
|
221
|
-
import { createRsvp, reserveTickets, getTicketCheckoutUrl, checkoutTickets } from "@/rest/wix-events-registration";
|
|
222
|
-
|
|
223
|
-
// RSVP (client-side): status "NO" only when registration.rsvp.responseType === "YES_AND_NO".
|
|
224
|
-
const rsvp = await createRsvp(event.id, { firstName, lastName, email }); // rsvp.status may be "WAITLIST"
|
|
225
|
-
|
|
226
|
-
// PAID tickets: reserve, then redirect to the Wix-hosted ticket form — NEVER a hand-built URL.
|
|
227
|
-
const reservation = await reserveTickets([{ ticketDefinitionId, quantity: 1 }]);
|
|
228
|
-
window.location.href = getTicketCheckoutUrl(event, reservation.id);
|
|
229
|
-
|
|
230
|
-
// FREE tickets only: finish in-app instead of redirecting (throws if payment is owed).
|
|
231
|
-
const order = await checkoutTickets(event.id, { reservationId: reservation.id, buyer, guests: [buyer] });
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
## Extending the client
|
|
235
|
-
Building something beyond the shipped pages (a "my registrations" account view, coupons, seating
|
|
236
|
-
maps, a schedule/agenda, canceling a reservation)? The helpers cover the common RSVP + ticketing
|
|
237
|
-
paths; for a gap, make the call with `wixApiRequest` — but look up the exact endpoint/body in the
|
|
238
|
-
official Wix Events API reference first, never guess:
|
|
239
|
-
- Events API reference: https://dev.wix.com/docs/api-reference/business-solutions/events.md
|
|
240
|
-
- Registration (RSVP + ticketing): https://dev.wix.com/docs/api-reference/business-solutions/events/registration/introduction.md
|
|
241
|
-
- Member login + "my registrations" → the **members** vertical (`references/members/INSTRUCTIONS.md`).
|
|
242
|
-
|
|
243
|
-
Fallback only — when you hit an error or need something not shown here: read the relevant shipped file
|
|
244
|
-
under `src/`, or look it up via the documentation skill available in your environment.
|
|
245
|
-
|
|
246
|
-
## Hard rules
|
|
247
|
-
- Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped `Events`/`EventDetail` to add chrome.
|
|
248
|
-
- The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your `Header` is plain in-flow markup (not `position:fixed`).
|
|
249
|
-
- Paid ticket checkout goes through the shipped reserve → `getTicketCheckoutUrl` redirect (the Wix-hosted ticket form) — never a hand-built registration/ticket/payment URL.
|
|
250
|
-
- Render live Wix data or the shipped empty/closed/not-found state — never mock events, tickets, guest counts, or "X spots left".
|
|
251
|
-
|
|
252
|
-
## Point the user to their dashboard
|
|
253
|
-
Provide deep links so the owner can edit content (substitute the site's `metaSiteId`):
|
|
254
|
-
- **Events** — `https://manage.wix.com/dashboard/{metaSiteId}/events` (`Dashboard → Events` → **+ Add Event**; create the event, then set it up as **Ticketed** or **RSVP**; only published events appear in the app)
|
|
255
|
-
|
|
256
|
-
## Seeding
|
|
257
|
-
Seed events per `seed/SEED.md` (the build-time setup module) — separate from this client build; run in
|
|
258
|
-
parallel.
|
|
259
|
-
|
|
260
|
-
## Verify (before declaring done)
|
|
261
|
-
- [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
|
|
262
|
-
- [ ] Opened the vertical's data route(s) (not just the home page) and confirmed the shipped components render themed (surface, text, brand) with images.
|
|
263
|
-
- [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all routes; shipped `Events`/`EventDetail` untouched; content clears the fixed chrome.
|
|
264
|
-
- [ ] Event grid renders live events; clicking a card opens the detail page by `slug`; visitor token persists across reload.
|
|
265
|
-
- [ ] Detail page branches correctly on `registration.type` (RSVP form vs. ticket picker vs. external link vs. none); closed registration / sold-out tickets show a clear state.
|
|
266
|
-
- [ ] RSVP submit creates a real RSVP (and surfaces a `WAITLIST` result when full); paid ticket purchase reserves then redirects via `getTicketCheckoutUrl`.
|
|
267
|
-
- [ ] Empty catalog shows the shipped empty state (`countUpcomingEvents()` is 0); no mock events anywhere.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// Category filter menu for the events listing. Pure UI — the active id + setter come from
|
|
2
|
-
// useEventsList. Display field is `name`; key/filter by `category.id`; the per-category
|
|
3
|
-
// count is `counts.assignedEventsCount`. Styled with base44 design tokens (shadcn Tailwind classes).
|
|
4
|
-
|
|
5
|
-
const chipBase = "py-1.5 px-3.5 cursor-pointer text-sm font-body border rounded-full";
|
|
6
|
-
const chipIdle = "border-border bg-card text-foreground";
|
|
7
|
-
const chipActive = "bg-primary text-primary-foreground border-primary";
|
|
8
|
-
|
|
9
|
-
export default function CategoryFilter({ categories, active, onSelect }) {
|
|
10
|
-
if (!categories?.length) return null;
|
|
11
|
-
return (
|
|
12
|
-
<nav className="flex flex-wrap gap-2 mb-4">
|
|
13
|
-
<button onClick={() => onSelect(null)} aria-pressed={active === null}
|
|
14
|
-
className={`${chipBase} ${active === null ? chipActive : chipIdle}`}>All</button>
|
|
15
|
-
{categories.map((c) => (
|
|
16
|
-
<button key={c.id} onClick={() => onSelect(c.id)} aria-pressed={active === c.id}
|
|
17
|
-
className={`${chipBase} ${active === c.id ? chipActive : chipIdle}`}>
|
|
18
|
-
{c.name} ({c.counts?.assignedEventsCount ?? 0})
|
|
19
|
-
</button>
|
|
20
|
-
))}
|
|
21
|
-
</nav>
|
|
22
|
-
);
|
|
23
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// Grid tile for one event. Styled with base44 design tokens (shadcn Tailwind classes) — re-skin via
|
|
2
|
-
// those tokens (src/index.css :root/.dark), not this JSX. The date/location/teaser field paths and
|
|
3
|
-
// the TICKETING "from" price are load-bearing: lowestPrice is a Money object { value, currency,
|
|
4
|
-
// formattedValue } — render formattedValue, NEVER the raw object (React "objects are not valid as a
|
|
5
|
-
// child" crash). This is a different shape from the ticket-definition price (pricing.fixedPrice.amount)
|
|
6
|
-
// used in the picker.
|
|
7
|
-
import { Link } from "@/lib/nav";
|
|
8
|
-
|
|
9
|
-
export default function EventCard({ event }) {
|
|
10
|
-
const when = event.dateAndTimeSettings?.formatted?.dateAndTime;
|
|
11
|
-
const where = event.location?.name;
|
|
12
|
-
const isTicketing = event.registration?.type === "TICKETING";
|
|
13
|
-
const fromPrice = event.registration?.tickets?.lowestPrice?.formattedValue;
|
|
14
|
-
const soldOut = event.registration?.tickets?.soldOut;
|
|
15
|
-
const image = event.mainImage?.url;
|
|
16
|
-
|
|
17
|
-
return (
|
|
18
|
-
<Link to={`/events/${event.slug}`}
|
|
19
|
-
className="flex flex-col no-underline text-foreground bg-card border border-border rounded-lg overflow-hidden shadow-sm">
|
|
20
|
-
<div className="relative aspect-[3/2] bg-background">
|
|
21
|
-
{image
|
|
22
|
-
? <img src={image} alt={event.title} loading="lazy" className="w-full h-full object-cover" />
|
|
23
|
-
: <div className="w-full h-full bg-muted flex items-center justify-center" aria-hidden="true"><svg viewBox="0 0 24 24" className="w-8 h-8 text-muted-foreground/40" fill="none" stroke="currentColor" strokeWidth="1.5"><rect x="3" y="3" width="18" height="18" rx="2" /><circle cx="8.5" cy="8.5" r="1.5" /><path d="m21 15-5-5L5 21" /></svg></div>}
|
|
24
|
-
{isTicketing && soldOut && (
|
|
25
|
-
<span className="absolute top-2 left-2 py-0.5 px-2 text-xs bg-destructive text-destructive-foreground rounded-sm">Sold out</span>
|
|
26
|
-
)}
|
|
27
|
-
</div>
|
|
28
|
-
<div className="p-3 flex flex-col gap-1">
|
|
29
|
-
<h3 className="m-0 font-display text-base font-semibold">{event.title}</h3>
|
|
30
|
-
{when && <span className="text-muted-foreground text-[13px]">{when}</span>}
|
|
31
|
-
{where && <span className="text-muted-foreground text-[13px]">{where}</span>}
|
|
32
|
-
{event.shortDescription && (
|
|
33
|
-
<p className="m-0 mt-1 text-muted-foreground text-sm leading-[1.4]">
|
|
34
|
-
{event.shortDescription}
|
|
35
|
-
</p>
|
|
36
|
-
)}
|
|
37
|
-
{isTicketing && !soldOut && fromPrice && (
|
|
38
|
-
<span className="mt-1 font-semibold text-primary">From {fromPrice}</span>
|
|
39
|
-
)}
|
|
40
|
-
</div>
|
|
41
|
-
</Link>
|
|
42
|
-
);
|
|
43
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Responsive event grid + empty state. Styled with base44 design tokens (shadcn Tailwind classes).
|
|
2
|
-
import EventCard from "./EventCard";
|
|
3
|
-
|
|
4
|
-
export default function EventGrid({ events, empty = "No events yet." }) {
|
|
5
|
-
if (!events?.length) {
|
|
6
|
-
return <p className="text-muted-foreground p-4 text-center">{empty}</p>;
|
|
7
|
-
}
|
|
8
|
-
return (
|
|
9
|
-
<div className="grid gap-4 [grid-template-columns:repeat(auto-fill,minmax(280px,1fr))]">
|
|
10
|
-
{events.map((e) => <EventCard key={e.id} event={e} />)}
|
|
11
|
-
</div>
|
|
12
|
-
);
|
|
13
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// Registration surface for the detail page — branches on registration.type and respects `open`
|
|
2
|
-
// (only OPEN_* statuses accept new registrations). Pure UI; the RSVP/ticketing logic lives in their
|
|
3
|
-
// own hooks/components. Styled with base44 design tokens (shadcn Tailwind classes).
|
|
4
|
-
import RsvpForm from "./RsvpForm";
|
|
5
|
-
import TicketPicker from "./TicketPicker";
|
|
6
|
-
|
|
7
|
-
const closed = "text-destructive font-semibold";
|
|
8
|
-
const link = "inline-block py-3 px-6 no-underline bg-primary text-primary-foreground border-none rounded-sm text-[15px] font-semibold";
|
|
9
|
-
|
|
10
|
-
export default function EventRegistration({ event, type, open, registration }) {
|
|
11
|
-
if (type === "EXTERNAL") {
|
|
12
|
-
return registration.external?.url
|
|
13
|
-
? <a href={registration.external.url} target="_blank" rel="noopener" className={link}>Register</a>
|
|
14
|
-
: null;
|
|
15
|
-
}
|
|
16
|
-
if (type === "NONE") return null;
|
|
17
|
-
|
|
18
|
-
if (type === "RSVP") {
|
|
19
|
-
return open
|
|
20
|
-
? <RsvpForm eventId={event.id} responseType={registration.rsvp?.responseType} />
|
|
21
|
-
: <p className={closed}>Registration is closed.</p>;
|
|
22
|
-
}
|
|
23
|
-
if (type === "TICKETING") {
|
|
24
|
-
return open
|
|
25
|
-
? <TicketPicker event={event} />
|
|
26
|
-
: <p className={closed}>Ticket sales are closed.</p>;
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
// RSVP form for an RSVP-type event. Pure UI over useRsvpForm — no data logic here. Styled with
|
|
2
|
-
// base44 design tokens (shadcn Tailwind classes). Offers a "NO" reply only when responseType is
|
|
3
|
-
// "YES_AND_NO"; a WAITLIST result (event full) is surfaced distinctly from a confirmed YES.
|
|
4
|
-
import { useRsvpForm } from "@/hooks/useRsvpForm";
|
|
5
|
-
|
|
6
|
-
const input = "w-full px-3 py-2.5 box-border font-body border border-input rounded-sm bg-background text-foreground";
|
|
7
|
-
const label = "block mb-1.5 text-[13px] font-semibold text-muted-foreground";
|
|
8
|
-
const field = "mb-4";
|
|
9
|
-
|
|
10
|
-
export default function RsvpForm({ eventId, responseType }) {
|
|
11
|
-
const { form, setField, submit, submitting, canSubmit, result, error } = useRsvpForm(eventId);
|
|
12
|
-
|
|
13
|
-
if (result) {
|
|
14
|
-
const waitlisted = result.status === "WAITLIST";
|
|
15
|
-
return (
|
|
16
|
-
<div className="p-4 rounded-lg bg-card border border-border text-foreground">
|
|
17
|
-
{waitlisted
|
|
18
|
-
? "This event is full — you've been added to the waitlist. We'll email you if a spot opens."
|
|
19
|
-
: "You're on the list! A confirmation is on its way to your email."}
|
|
20
|
-
</div>
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return (
|
|
25
|
-
<form onSubmit={(e) => { e.preventDefault(); submit(); }} className="max-w-[440px]">
|
|
26
|
-
<div className={field}>
|
|
27
|
-
<label className={label}>First name</label>
|
|
28
|
-
<input className={input} value={form.firstName} onChange={(e) => setField("firstName", e.target.value)} required />
|
|
29
|
-
</div>
|
|
30
|
-
<div className={field}>
|
|
31
|
-
<label className={label}>Last name</label>
|
|
32
|
-
<input className={input} value={form.lastName} onChange={(e) => setField("lastName", e.target.value)} required />
|
|
33
|
-
</div>
|
|
34
|
-
<div className={field}>
|
|
35
|
-
<label className={label}>Email</label>
|
|
36
|
-
<input className={input} type="email" value={form.email} onChange={(e) => setField("email", e.target.value)} required />
|
|
37
|
-
</div>
|
|
38
|
-
|
|
39
|
-
{responseType === "YES_AND_NO" && (
|
|
40
|
-
<div className={field}>
|
|
41
|
-
<label className={label}>Will you attend?</label>
|
|
42
|
-
<select className={input} value={form.status} onChange={(e) => setField("status", e.target.value)}>
|
|
43
|
-
<option value="YES">Yes, I'll be there</option>
|
|
44
|
-
<option value="NO">No, I can't make it</option>
|
|
45
|
-
</select>
|
|
46
|
-
</div>
|
|
47
|
-
)}
|
|
48
|
-
|
|
49
|
-
{error && <p className="text-destructive mb-4">{error}</p>}
|
|
50
|
-
|
|
51
|
-
<button type="submit" disabled={!canSubmit}
|
|
52
|
-
className="py-3 px-6 cursor-pointer bg-primary text-primary-foreground border-none rounded-sm text-[15px] font-semibold disabled:opacity-50 disabled:cursor-not-allowed">
|
|
53
|
-
{submitting ? "Sending…" : "RSVP"}
|
|
54
|
-
</button>
|
|
55
|
-
</form>
|
|
56
|
-
);
|
|
57
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// Ticket picker for a TICKETING event. Pure UI over useTicketing — no data logic here. Styled with
|
|
2
|
-
// base44 design tokens (shadcn Tailwind classes).
|
|
3
|
-
// • Ticket-definition price is a plain number at pricing.fixedPrice.amount (+ price.currency here).
|
|
4
|
-
// • FREE-only selection → an in-app buyer form + checkoutTickets (no redirect).
|
|
5
|
-
// • Any PAID ticket → "Continue to checkout", which reserves then redirects to the Wix-hosted form.
|
|
6
|
-
import { useState } from "react";
|
|
7
|
-
import { useTicketing } from "@/hooks/useTicketing";
|
|
8
|
-
|
|
9
|
-
const input = "px-3 py-2.5 box-border font-body border border-input rounded-sm bg-background text-foreground";
|
|
10
|
-
|
|
11
|
-
function ticketPrice(def) {
|
|
12
|
-
if (def.free) return "Free";
|
|
13
|
-
const amount = def.price?.amount ?? def.pricing?.fixedPrice?.amount;
|
|
14
|
-
const currency = def.price?.currency ?? def.pricing?.fixedPrice?.currency ?? "";
|
|
15
|
-
return amount != null ? `${amount} ${currency}`.trim() : "";
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default function TicketPicker({ event }) {
|
|
19
|
-
const t = useTicketing(event);
|
|
20
|
-
const [buyer, setBuyer] = useState({ firstName: "", lastName: "", email: "" });
|
|
21
|
-
const setBuyerField = (k, v) => setBuyer((b) => ({ ...b, [k]: v }));
|
|
22
|
-
|
|
23
|
-
if (t.order) {
|
|
24
|
-
return (
|
|
25
|
-
<div className="p-4 rounded-lg bg-card border border-border">
|
|
26
|
-
Your tickets are confirmed.{" "}
|
|
27
|
-
{t.order.ticketsPdf && (
|
|
28
|
-
<a href={t.order.ticketsPdf} target="_blank" rel="noopener" className="text-primary">Download tickets (PDF)</a>
|
|
29
|
-
)}
|
|
30
|
-
</div>
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (!t.definitions.length) {
|
|
35
|
-
return <p className="text-muted-foreground">No tickets are currently on sale.</p>;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const buyerReady = buyer.firstName && buyer.lastName && buyer.email;
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<div>
|
|
42
|
-
{t.definitions.map((def) => (
|
|
43
|
-
<div key={def.id} className="flex items-center justify-between gap-4 py-3 border-b border-border">
|
|
44
|
-
<div>
|
|
45
|
-
<div className="font-semibold">{def.name}</div>
|
|
46
|
-
{def.description && <div className="text-muted-foreground text-sm">{def.description}</div>}
|
|
47
|
-
<div className="text-primary font-semibold mt-0.5">{ticketPrice(def)}</div>
|
|
48
|
-
</div>
|
|
49
|
-
<input type="number" min={0} value={t.selection[def.id]?.quantity ?? 0}
|
|
50
|
-
onChange={(e) => t.setQuantity(def.id, Number(e.target.value) || 0)}
|
|
51
|
-
className={`${input} w-[72px] text-center`} />
|
|
52
|
-
</div>
|
|
53
|
-
))}
|
|
54
|
-
|
|
55
|
-
{t.error && <p className="text-destructive mt-4">{t.error}</p>}
|
|
56
|
-
|
|
57
|
-
{t.hasSelection && t.allFree && (
|
|
58
|
-
<div className="mt-4 grid gap-2 max-w-[440px]">
|
|
59
|
-
<input className={`${input} w-full`} placeholder="First name" value={buyer.firstName}
|
|
60
|
-
onChange={(e) => setBuyerField("firstName", e.target.value)} />
|
|
61
|
-
<input className={`${input} w-full`} placeholder="Last name" value={buyer.lastName}
|
|
62
|
-
onChange={(e) => setBuyerField("lastName", e.target.value)} />
|
|
63
|
-
<input className={`${input} w-full`} type="email" placeholder="Email" value={buyer.email}
|
|
64
|
-
onChange={(e) => setBuyerField("email", e.target.value)} />
|
|
65
|
-
</div>
|
|
66
|
-
)}
|
|
67
|
-
|
|
68
|
-
{t.hasSelection && (
|
|
69
|
-
<button
|
|
70
|
-
disabled={t.submitting || (t.allFree && !buyerReady)}
|
|
71
|
-
onClick={() => (t.allFree ? t.checkoutFree(buyer) : t.checkoutPaid())}
|
|
72
|
-
className="mt-4 py-3 px-6 cursor-pointer bg-primary text-primary-foreground border-none rounded-sm text-[15px] font-semibold disabled:opacity-50 disabled:cursor-not-allowed">
|
|
73
|
-
{t.submitting ? "Processing…" : t.allFree ? "Get tickets" : "Continue to checkout"}
|
|
74
|
-
</button>
|
|
75
|
-
)}
|
|
76
|
-
</div>
|
|
77
|
-
);
|
|
78
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// useEventDetail — load one event by slug and derive its registration state. No markup.
|
|
2
|
-
// • getEventBySlug returns null on miss → notFound (never invent an event).
|
|
3
|
-
// • registration.type is "RSVP" | "TICKETING" | "EXTERNAL" | "NONE" — the detail page branches on it.
|
|
4
|
-
// • Only registration.status values starting "OPEN_" accept new registrations; otherwise `open` is
|
|
5
|
-
// false and the page shows the closed state.
|
|
6
|
-
// • shortDescription is a plain string (safe to render). event.description is Ricos rich content
|
|
7
|
-
// { nodes: [...] } — NOT a string; render with @wix/ricos or walk nodes, never call string
|
|
8
|
-
// methods on it (that crashes the page). This hook does not touch description.
|
|
9
|
-
import { useState, useEffect } from "react";
|
|
10
|
-
import { getEventBySlug } from "@/rest/wix-events-browse";
|
|
11
|
-
|
|
12
|
-
export function useEventDetail(slug) {
|
|
13
|
-
const [event, setEvent] = useState(null);
|
|
14
|
-
const [notFound, setNotFound] = useState(false);
|
|
15
|
-
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
setEvent(null);
|
|
18
|
-
setNotFound(false);
|
|
19
|
-
getEventBySlug(slug).then((e) => (e ? setEvent(e) : setNotFound(true)));
|
|
20
|
-
}, [slug]);
|
|
21
|
-
|
|
22
|
-
const reg = event?.registration ?? {};
|
|
23
|
-
const type = reg.type ?? "NONE";
|
|
24
|
-
const open = typeof reg.status === "string" && reg.status.startsWith("OPEN_");
|
|
25
|
-
|
|
26
|
-
return { event, notFound, type, open, registration: reg };
|
|
27
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// useEventsList — all listing logic, no markup: load the category menu + upcoming count, list
|
|
2
|
-
// events (all or filtered by category), and page with offset "load more". The data shapes here are
|
|
3
|
-
// the bug-prone part — keep them verbatim; the Events page only renders what this returns.
|
|
4
|
-
// • queryEvents / listEventsByCategory return { events, total, offset, nextOffset } — an OBJECT,
|
|
5
|
-
// not a bare array; nextOffset is null when there are no more pages.
|
|
6
|
-
// • queryEventCategories returns { categories, total }; render category.name,
|
|
7
|
-
// key/filter by category.id, count = counts.assignedEventsCount.
|
|
8
|
-
// • total === 0 → the whole catalog is empty; show the "publish events" empty state.
|
|
9
|
-
import { useState, useEffect } from "react";
|
|
10
|
-
import {
|
|
11
|
-
queryEvents, listEventsByCategory, queryEventCategories, countUpcomingEvents,
|
|
12
|
-
} from "@/rest/wix-events-browse";
|
|
13
|
-
|
|
14
|
-
export function useEventsList({ pageSize = 24 } = {}) {
|
|
15
|
-
const [events, setEvents] = useState([]);
|
|
16
|
-
const [nextOffset, setNextOffset] = useState(null); // offset for the next page; null when no more
|
|
17
|
-
const [categories, setCategories] = useState([]); // category menu
|
|
18
|
-
const [active, setActive] = useState(null); // selected category id, or null for "all"
|
|
19
|
-
const [total, setTotal] = useState(null); // upcoming count across the whole catalog
|
|
20
|
-
const [loading, setLoading] = useState(true);
|
|
21
|
-
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
countUpcomingEvents().then(setTotal);
|
|
24
|
-
queryEventCategories().then(({ categories }) => setCategories(categories));
|
|
25
|
-
}, []);
|
|
26
|
-
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
setLoading(true);
|
|
29
|
-
const load = active
|
|
30
|
-
? listEventsByCategory(active, { limit: pageSize })
|
|
31
|
-
: queryEvents({ limit: pageSize });
|
|
32
|
-
load.then(({ events, nextOffset }) => {
|
|
33
|
-
setEvents(events);
|
|
34
|
-
setNextOffset(nextOffset);
|
|
35
|
-
setLoading(false);
|
|
36
|
-
});
|
|
37
|
-
}, [active, pageSize]);
|
|
38
|
-
|
|
39
|
-
const loadMore = () => {
|
|
40
|
-
if (nextOffset === null) return;
|
|
41
|
-
const load = active
|
|
42
|
-
? listEventsByCategory(active, { limit: pageSize, offset: nextOffset })
|
|
43
|
-
: queryEvents({ limit: pageSize, offset: nextOffset });
|
|
44
|
-
load.then(({ events: more, nextOffset: next }) => {
|
|
45
|
-
setEvents((e) => [...e, ...more]);
|
|
46
|
-
setNextOffset(next);
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
events, categories, active, setActive,
|
|
52
|
-
total, loading, hasMore: nextOffset !== null, loadMore,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// useRsvpForm — RSVP submission logic for an RSVP-type event, no markup.
|
|
2
|
-
// • createRsvp(eventId, { firstName, lastName, email, status, additionalGuestNames? }) completes
|
|
3
|
-
// fully client-side (no redirect) and throws on closed/full registration, guest-limit, duplicate
|
|
4
|
-
// email, or invalid form — surface the message, don't swallow it.
|
|
5
|
-
// • Only offer status "NO" when registration.rsvp.responseType === "YES_AND_NO".
|
|
6
|
-
// • A full-with-waitlist event returns the RSVP with status "WAITLIST" — tell the guest.
|
|
7
|
-
import { useState } from "react";
|
|
8
|
-
import { createRsvp } from "@/rest/wix-events-registration";
|
|
9
|
-
|
|
10
|
-
export function useRsvpForm(eventId) {
|
|
11
|
-
const [form, setForm] = useState({ firstName: "", lastName: "", email: "", status: "YES" });
|
|
12
|
-
const [guests, setGuests] = useState([]); // additional guest names (strings)
|
|
13
|
-
const [submitting, setSubmitting] = useState(false);
|
|
14
|
-
const [result, setResult] = useState(null); // the created RSVP (carries .status) on success
|
|
15
|
-
const [error, setError] = useState(null);
|
|
16
|
-
|
|
17
|
-
const setField = (name, value) => setForm((f) => ({ ...f, [name]: value }));
|
|
18
|
-
|
|
19
|
-
async function submit() {
|
|
20
|
-
setSubmitting(true);
|
|
21
|
-
setError(null);
|
|
22
|
-
try {
|
|
23
|
-
const rsvp = await createRsvp(eventId, {
|
|
24
|
-
firstName: form.firstName,
|
|
25
|
-
lastName: form.lastName,
|
|
26
|
-
email: form.email,
|
|
27
|
-
status: form.status,
|
|
28
|
-
additionalGuestNames: guests.filter(Boolean),
|
|
29
|
-
});
|
|
30
|
-
setResult(rsvp); // rsvp.status is "YES" | "NO" | "WAITLIST"
|
|
31
|
-
} catch (e) {
|
|
32
|
-
setError(e.message);
|
|
33
|
-
} finally {
|
|
34
|
-
setSubmitting(false);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const canSubmit = !!(form.firstName && form.lastName && form.email) && !submitting;
|
|
39
|
-
return { form, setField, guests, setGuests, submit, submitting, canSubmit, result, error };
|
|
40
|
-
}
|