@wix/agent-skills 1.36.0 → 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-headless-kit/install/pins.json +1 -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/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-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 -297
- 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,342 +0,0 @@
|
|
|
1
|
-
# Wix Bookings — ready-made client
|
|
2
|
-
|
|
3
|
-
The bookings client is **shipped as real files**, not snippets to regenerate. It's a complete
|
|
4
|
-
service catalog + detail page + slot picker + booking flow (create booking → hosted checkout),
|
|
5
|
-
styled with your app's design tokens (base44's `src/index.css` — the shadcn palette the design phase
|
|
6
|
-
already set). Copy it into the app and wire the routes —
|
|
7
|
-
you generate almost none of the booking code (the `{ services }` / `{ slots }` destructuring, the
|
|
8
|
-
local wall-clock date args, the null-slot re-validate guard, the participant cap, the eCom
|
|
9
|
-
redirect-session all ship and are correct).
|
|
10
|
-
|
|
11
|
-
Talks to Wix directly over the public `WIX_CLIENT_ID` (anonymous visitor tokens). Never mock
|
|
12
|
-
services or slots; never hand-build a `/checkout` URL — the shipped flow creates the booking through
|
|
13
|
-
the API and completes it via the eCom redirect-session.
|
|
14
|
-
|
|
15
|
-
## Prerequisites
|
|
16
|
-
- The site's **Wix Bookings** setup is the read/book target. It's installed and seeded separately
|
|
17
|
-
(see **Seeding** below), in parallel with this build — so it may have no services at build time;
|
|
18
|
-
the client renders the shipped empty state until services (and staff/working hours, so slots are
|
|
19
|
-
bookable) land. This client is read-only over services — it does not provision them.
|
|
20
|
-
- The public headless **`WIX_CLIENT_ID`** from your prompt (buyer-facing, safe to hardcode/commit).
|
|
21
|
-
- For **paid** services, the site must accept payments and the deployed app domain must be
|
|
22
|
-
allow-listed on the OAuth client for the hosted checkout to return. Those are separate Wix setup
|
|
23
|
-
flows the user completes later — out of scope here; if checkout return fails before that, it's
|
|
24
|
-
expected, flag it and continue.
|
|
25
|
-
|
|
26
|
-
## STEP 1 — The client is already in `src/`
|
|
27
|
-
The install step (base44.md STEP 1) deployed the whole bookings UI client + REST scaffolds into
|
|
28
|
-
`src/` (imports use the `@/` alias → `src/`). Here's every file and what it is — **this is your map,
|
|
29
|
-
so you don't need to open them:**
|
|
30
|
-
|
|
31
|
-
| file | what it is |
|
|
32
|
-
|---|---|
|
|
33
|
-
| `hooks/useServices.js` | services-list data — one page + `loadMore` paging, plus the category menu (`categories` / `activeCategory` / `setActiveCategory`); `total === 0` → empty state |
|
|
34
|
-
| `hooks/useServiceDetail.js` | detail + booking flow — load service, list slots, hold slot/contact/participants, re-validate + book + checkout |
|
|
35
|
-
| `lib/serviceFacts.js` | price / duration / capacity / where / reschedule labels, derived from a service — rateType-aware, so VARIED and NO_FEE services still show a price |
|
|
36
|
-
| `components/ServiceCard.jsx`, `ServiceGrid.jsx` | service listing UI (grid + card, with empty state); the card shows price, tagline and a `60 min · 1-to-1` meta row |
|
|
37
|
-
| `components/SlotPicker.jsx` | bookable-slot chips + paging (pure UI, driven by `useServiceDetail`) |
|
|
38
|
-
| `components/BookingForm.jsx` | contact + participant form (pure UI, driven by `useServiceDetail`) |
|
|
39
|
-
| `components/WixManageBanner.jsx` | preview-only manage banner — drop it into your Layout (STEP 3) |
|
|
40
|
-
| `pages/Services.jsx`, `pages/ServiceDetail.jsx` | the two shipped routes (`/services`, `/service/:serviceId`); the detail page is two-column — service + a duration/price/where strip on the left, the sticky booking panel on the right |
|
|
41
|
-
| `rest/wix-config.js` | the two ids, written by the install step |
|
|
42
|
-
| `rest/wix-client.js` | REST transport — mints/persists the anonymous visitor token |
|
|
43
|
-
| `rest/wix-bookings-services.js` | services + availability: `queryServices`, `queryServicesByCategory`, `categoriesOf`, `getService`, `countServices`, `listSlotsForService`, `listAvailableSlots`, `listEventTimeSlots`, `getAvailableSlot`, `mediaUrl` |
|
|
44
|
-
| `rest/wix-bookings-checkout.js` | booking + checkout: `createBooking`, `checkoutBooking`, `bookAndCheckout` |
|
|
45
|
-
|
|
46
|
-
They're already in place — go **straight to theming + wiring**, nothing to verify first. **Don't
|
|
47
|
-
`read_file` the shipped page/component/hook source to inspect it** — the table above says what each
|
|
48
|
-
is, and every field shape you need is in the snippets below. Read a shipped file's source **only**
|
|
49
|
-
on a real fallback — a runtime error, or a field the snippets don't cover (see "Fallback only" at
|
|
50
|
-
the end). (Files missing? the install's `deploy` result lists what it wrote; re-run install, or copy
|
|
51
|
-
`references/bookings/app/` → `src/`.)
|
|
52
|
-
|
|
53
|
-
**Their `Link`/`useParams` imports come from `@/lib/nav`**, so the same sources run on either
|
|
54
|
-
template. That adapter is installed at `src/lib/nav.js` with the rest of the deployed tree — use
|
|
55
|
-
the file that is there, and on TanStack check it first ([which template?](../_shared/routing.md)).
|
|
56
|
-
Import from `@/lib/nav` in the pages you write too, and they stay portable the same way.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
## STEP 2 — Theme
|
|
61
|
-
Use the existing Base44 theme in `src/index.css` so your pages and the shipped components
|
|
62
|
-
share the same colors and typography.
|
|
63
|
-
|
|
64
|
-
## STEP 3 — Wire routes (surgical `find_replace` on `src/App.jsx`, never a rewrite)
|
|
65
|
-
|
|
66
|
-
> **The template decides this step, and `src/routes/__root.jsx` is the question to ask first.**
|
|
67
|
-
> Present → TanStack Start, which mounts these pages as route files at the end of this step; absent
|
|
68
|
-
> → React Router, which the wiring below is written for. Ask in that order: an `src/App.jsx` can
|
|
69
|
-
> exist on a TanStack app because an agent created one, and `__root.jsx` is never there by mistake.
|
|
70
|
-
> The installed `src/lib/nav.js` defaults to the React Router adapter, so on TanStack swap it:
|
|
71
|
-
> [both patterns](../_shared/routing.md).
|
|
72
|
-
>
|
|
73
|
-
> **Import `Link`, `useParams` and friends from `@/lib/nav` in the pages you write too** — same
|
|
74
|
-
> names as the router exports, and nothing you write is pinned to one template.
|
|
75
|
-
|
|
76
|
-
**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.
|
|
77
|
-
`App.jsx` carries required platform auth scaffolding (`AuthProvider`/`useAuth`) — edit it in, don't
|
|
78
|
-
replace it. Bookings needs **no cross-page provider** (there's no cart — each booking completes on
|
|
79
|
-
its own detail page), so there's nothing to wrap the tree in.
|
|
80
|
-
- Put your **header + footer in a `Layout`** that renders `<Outlet/>` between them, and nest every
|
|
81
|
-
route under one pathless `<Route element={<Layout/>}>`. Your brand chrome then wraps **every** page
|
|
82
|
-
— including the shipped `Services` / `ServiceDetail` — so you **never edit the shipped pages to add
|
|
83
|
-
a header/footer** (they render inside `<Outlet/>` as-is).
|
|
84
|
-
- **Pin the top chrome as one fixed block.** Put `<WixManageBanner/>` (shipped, preview-only) **above**
|
|
85
|
-
your `<Header/>` inside a single `position:fixed` top region — the header itself is plain in-flow
|
|
86
|
-
markup, the region owns the fixing — so banner + header ride together (no scroll drift/gap). Pad
|
|
87
|
-
the content by the region's **ResizeObserver-measured** height so it clears the chrome and
|
|
88
|
-
self-corrects when the banner is dismissed.
|
|
89
|
-
- Routes under the Layout: `/services` → `Services`, `/service/:serviceId` → `ServiceDetail` (both
|
|
90
|
-
shipped, as-is). **You add `/` → your own Home** page.
|
|
91
|
-
|
|
92
|
-
```jsx
|
|
93
|
-
import { useRef, useState, useEffect } from "react";
|
|
94
|
-
import { Routes, Route, Outlet } from "react-router-dom";
|
|
95
|
-
import WixManageBanner from "@/components/WixManageBanner"; // shipped, preview-only · default export, no props
|
|
96
|
-
import Services from "@/pages/Services"; // shipped · default export, no props
|
|
97
|
-
import ServiceDetail from "@/pages/ServiceDetail"; // shipped · default export, no props
|
|
98
|
-
import Home from "@/pages/Home"; // YOU build
|
|
99
|
-
import Header from "@/components/Header"; // YOU build — plain in-flow markup, NOT position:fixed
|
|
100
|
-
import Footer from "@/components/Footer"; // YOU build
|
|
101
|
-
|
|
102
|
-
function Layout() {
|
|
103
|
-
const topRef = useRef(null);
|
|
104
|
-
const [offset, setOffset] = useState(0);
|
|
105
|
-
useEffect(() => { // measure the fixed region → pad content below it
|
|
106
|
-
const ro = new ResizeObserver(() => setOffset(topRef.current?.offsetHeight ?? 0));
|
|
107
|
-
if (topRef.current) ro.observe(topRef.current);
|
|
108
|
-
return () => ro.disconnect();
|
|
109
|
-
}, []);
|
|
110
|
-
return (<>
|
|
111
|
-
<div ref={topRef} style={{ position: "fixed", top: 0, left: 0, right: 0, zIndex: 50 }}>
|
|
112
|
-
<WixManageBanner /> {/* null on the published site / when dismissed */}
|
|
113
|
-
<Header /> {/* your brand header, in-flow inside this fixed block */}
|
|
114
|
-
</div>
|
|
115
|
-
<div style={{ paddingTop: offset }}> {/* clears the chrome; shrinks when the banner is dismissed */}
|
|
116
|
-
<Outlet /> {/* shipped Services/ServiceDetail render here, untouched */}
|
|
117
|
-
<Footer />
|
|
118
|
-
</div>
|
|
119
|
-
</>);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
<Routes>
|
|
123
|
-
<Route element={<Layout />}> {/* chrome wraps all */}
|
|
124
|
-
<Route path="/" element={<Home />} /> {/* yours */}
|
|
125
|
-
<Route path="/services" element={<Services />} /> {/* shipped, as-is */}
|
|
126
|
-
<Route path="/service/:serviceId" element={<ServiceDetail />} /> {/* shipped, as-is */}
|
|
127
|
-
</Route>
|
|
128
|
-
</Routes>
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
### TanStack Start template — the same pages, mounted as files
|
|
133
|
-
|
|
134
|
-
Chrome (header, footer, the fixed banner region described above) goes in `src/routes/__root.jsx`
|
|
135
|
-
around its `<Outlet/>`, and any provider this vertical asks for wraps that `<Outlet/>` once. Each
|
|
136
|
-
route is a two-line file; shipped pages stay in `src/pages/` untouched.
|
|
137
|
-
|
|
138
|
-
| route | file | component |
|
|
139
|
-
|---|---|---|
|
|
140
|
-
| `/` | `src/routes/index.jsx` | `Home` |
|
|
141
|
-
| `/services` | `src/routes/services.jsx` | `Services` |
|
|
142
|
-
| `/service/:serviceId` | `src/routes/service.$serviceId.jsx` | `ServiceDetail` |
|
|
143
|
-
|
|
144
|
-
```jsx
|
|
145
|
-
// src/routes/services.jsx
|
|
146
|
-
import { createFileRoute } from "@tanstack/react-router";
|
|
147
|
-
import Services from "@/pages/Services";
|
|
148
|
-
|
|
149
|
-
export const Route = createFileRoute("/services")({ component: Services });
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
Path params are `$name` in both the filename and the route path; `useParams()` from `@/lib/nav`
|
|
153
|
-
reads them unchanged. Full pattern, including `ssr: false` for per-user routes:
|
|
154
|
-
[`../_shared/routing.md`](../_shared/routing.md).
|
|
155
|
-
|
|
156
|
-
## What you build (not shipped)
|
|
157
|
-
The **home / landing page**, the **`Header`** and a **`Footer`** — the two you drop into the
|
|
158
|
-
`Layout` (STEP 3) so they wrap every route — plus the overall brand story, styled with the same
|
|
159
|
-
base44 tokens/classes. **Compose the shipped pieces** — a "featured services" strip is just
|
|
160
|
-
`queryServices` + the shipped `ServiceGrid`; the nav is a link to `/services`:
|
|
161
|
-
|
|
162
|
-
```jsx
|
|
163
|
-
import { useState, useEffect } from "react";
|
|
164
|
-
import { Link } from "react-router-dom";
|
|
165
|
-
import { queryServices } from "@/rest/wix-bookings-services";
|
|
166
|
-
import ServiceGrid from "@/components/ServiceGrid";
|
|
167
|
-
|
|
168
|
-
// Responsive header: choose ONE branch with a state flag (copy this pattern). Do NOT render a
|
|
169
|
-
// desktop nav AND a mobile nav toggled by Tailwind `hidden md:flex` / `md:hidden`: these navs are
|
|
170
|
-
// inline-styled, and an inline `display` beats a Tailwind class, so `hidden` never applies — BOTH
|
|
171
|
-
// branches render. One branch = one nav.
|
|
172
|
-
export function Header() {
|
|
173
|
-
const [mobile, setMobile] = useState(() => window.innerWidth < 768);
|
|
174
|
-
useEffect(() => {
|
|
175
|
-
const onResize = () => setMobile(window.innerWidth < 768);
|
|
176
|
-
window.addEventListener("resize", onResize); // keep it reactive to viewport changes
|
|
177
|
-
return () => window.removeEventListener("resize", onResize);
|
|
178
|
-
}, []);
|
|
179
|
-
return (
|
|
180
|
-
<nav style={{ display: "flex", alignItems: "center", justifyContent: "space-between" }}>
|
|
181
|
-
{/* brand/logo */}
|
|
182
|
-
{mobile ? <YourMenu /> : <Link to="/services">Services</Link>}
|
|
183
|
-
</nav>
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
export function Featured() { // on your home page
|
|
187
|
-
const [services, setServices] = useState([]);
|
|
188
|
-
// NB: queryServices returns { services, total, nextOffset } — destructure the array.
|
|
189
|
-
useEffect(() => { queryServices({ limit: 6 }).then(({ services }) => setServices(services)); }, []);
|
|
190
|
-
return <ServiceGrid services={services} empty="Services coming soon." />;
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
Everything reads base44's design tokens (`index.css`), so your home/nav match the shipped pages automatically.
|
|
194
|
-
|
|
195
|
-
**Editing a component and the change doesn't show? It's the preview, not your code.** The dev
|
|
196
|
-
preview can serve a stale module after a write. Before diagnosing a visual bug you just "fixed", do a
|
|
197
|
-
fresh full navigate/reload of the preview and re-check — don't keep rewriting correct code against a
|
|
198
|
-
stale render.
|
|
199
|
-
|
|
200
|
-
## Using the client from your own UI
|
|
201
|
-
The two shipped hooks are the whole flow. If you build a custom surface, drive it the same way:
|
|
202
|
-
|
|
203
|
-
> Migrating from Cart V1 / Checkout V1? These helpers are V2-only — see the [migration guide](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/migration-guide) for the before/after.
|
|
204
|
-
|
|
205
|
-
```jsx
|
|
206
|
-
// LIST — every list helper returns an OBJECT, not a bare array. Destructure it:
|
|
207
|
-
const { services, total, nextOffset } = await queryServices({ limit: 24 }); // total 0 → empty state
|
|
208
|
-
if ((await countServices()) === 0) { /* show the empty state — never invent services */ }
|
|
209
|
-
|
|
210
|
-
// DETAIL — getService(id) is keyed off the route param; returns null on a miss (not-found, never invent):
|
|
211
|
-
const service = await getService(serviceId);
|
|
212
|
-
|
|
213
|
-
// FACTS (price / duration / capacity / where / reschedule note) — lib/serviceFacts.js branches on
|
|
214
|
-
// payment.rateType and on APPOINTMENT-vs-CLASS for you. Reading payment.fixed.price yourself renders
|
|
215
|
-
// NOTHING for a VARIED or NO_FEE service, and duration is empty on a class:
|
|
216
|
-
const price = servicePriceLabel(service); // "€95.00" · "From €85.00" · "Free" · "" for CUSTOM
|
|
217
|
-
const minutes = serviceDuration(service); // 60 for an appointment; null for a class/course
|
|
218
|
-
const where = serviceLocationLabel(service); // from payment.options — service.locations has no name
|
|
219
|
-
|
|
220
|
-
// IMAGE — the primary image is media.mainMedia; resolve through mediaUrl (Wix media can be a bare
|
|
221
|
-
// handle, not a full URL). Fall back to the gallery/cover:
|
|
222
|
-
const img = mediaUrl(service.media?.mainMedia?.image ?? service.media?.items?.[0]?.image ?? service.media?.coverMedia?.image);
|
|
223
|
-
|
|
224
|
-
// SLOTS — listSlotsForService routes by service.type and returns { slots, nextCursor }; iterate .slots.
|
|
225
|
-
// Dates are LOCAL wall-clock "YYYY-MM-DDThh:mm:ss" (NO zone / Z). The LIST call takes
|
|
226
|
-
// fromLocalDate/toLocalDate — the single-slot re-validate (getAvailableSlot) takes
|
|
227
|
-
// localStartDate/localEndDate. They are NOT interchangeable.
|
|
228
|
-
// It also returns `timeZone` — the zone those localStartDate strings are in. Label the picker with
|
|
229
|
-
// that value rather than a locally guessed zone, so the times and the label can't disagree.
|
|
230
|
-
const { slots, nextCursor, timeZone } = await listSlotsForService(service, { fromLocalDate, toLocalDate });
|
|
231
|
-
|
|
232
|
-
// BOOK — re-validate the picked slot (getAvailableSlot returns the slot or NULL — guard it), then
|
|
233
|
-
// book + check out and redirect. Participants: cap at
|
|
234
|
-
// service.bookingPolicy.participantsPolicy.maxParticipantsPerBooking (commonly 1 → no selector);
|
|
235
|
-
// never use slot.remainingCapacity as the per-buyer limit.
|
|
236
|
-
const fresh = await getAvailableSlot(service.id, { localStartDate, localEndDate });
|
|
237
|
-
if (!fresh) { /* "that time was just taken — pick another" */ }
|
|
238
|
-
const { checkoutUrl } = await bookAndCheckout(fresh, { email, firstName, lastName, phone }, { totalParticipants });
|
|
239
|
-
window.location.href = checkoutUrl; // hosted checkout; on return the booking is CONFIRMED/PENDING
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
## Extending the client
|
|
243
|
-
The shipped flow covers **APPOINTMENT and CLASS** services (`listSlotsForService` routes by
|
|
244
|
-
`service.type`). For anything beyond that, add a helper on `wixApiRequest`, looking the endpoint up
|
|
245
|
-
using the documentation skill available in your environment first (never guess):
|
|
246
|
-
- **COURSE** enrollment — a course is enrolled as a *whole*, not per session; `listEventTimeSlots`
|
|
247
|
-
returns no slots for it, so the slot-picker flow doesn't apply (course-specific flow).
|
|
248
|
-
- **Service variants / participants** (duration- or person-based pricing), **add-ons**, and
|
|
249
|
-
**custom booking form fields** (render `service.form.id`).
|
|
250
|
-
- **Member login + a "my bookings" view** → the **members** vertical
|
|
251
|
-
(`references/members/INSTRUCTIONS.md`): booking works anonymously, but signing a member in lets
|
|
252
|
-
them see their own appointments.
|
|
253
|
-
|
|
254
|
-
Fallback only — when you hit an error or need something not shown here: read the relevant shipped
|
|
255
|
-
file under `src/`, or look it up via the documentation skill available in your environment. Each helper in
|
|
256
|
-
`wix-bookings-services.js` / `wix-bookings-checkout.js` links its own reference page inline; these are
|
|
257
|
-
the areas they sit in:
|
|
258
|
-
- Bookings (services, categories, bookings): https://dev.wix.com/docs/api-reference/business-solutions/bookings.md
|
|
259
|
-
- Availability time slots: https://dev.wix.com/docs/api-reference/business-solutions/bookings/time-slots.md
|
|
260
|
-
- eCommerce checkout (paid bookings): https://dev.wix.com/docs/api-reference/business-solutions/e-commerce.md
|
|
261
|
-
- Headless redirect session (hosted checkout): https://dev.wix.com/docs/api-reference/business-management/headless/redirects.md
|
|
262
|
-
|
|
263
|
-
## Rentals — the same client, one extra step
|
|
264
|
-
|
|
265
|
-
**Wix Rentals has no APIs of its own.** A rental is a Bookings *service* with rentals-specific
|
|
266
|
-
field values, so this whole client works on it: the catalog read, the booking form, and the
|
|
267
|
-
`createBooking → cart → checkout` chain are all unchanged. `rest/wix-bookings-rentals.js` and
|
|
268
|
-
`hooks/useRentalDuration.js` carry the only differences.
|
|
269
|
-
|
|
270
|
-
**What tells a rental apart — the DATA, never the brief.** A service carries either a fixed
|
|
271
|
-
session length or a duration RANGE the customer picks within; the two are mutually exclusive:
|
|
272
|
-
|
|
273
|
-
```js
|
|
274
|
-
import { isRental, rentalDuration, rentalRateLabel } from "@/rest/wix-bookings-rentals";
|
|
275
|
-
isRental(service) // true only when schedule.availabilityConstraints.durationRange is present
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
A 60-minute yoga class and a 60-minute massage are **not** rentals even though a massage is
|
|
279
|
-
`type: "APPOINTMENT"` exactly like a rental is. Never branch on the service's name, its
|
|
280
|
-
category, or what the brief called it.
|
|
281
|
-
|
|
282
|
-
**The extra step.** An ordinary service is one choice (a slot). A rental is two: pick a START,
|
|
283
|
-
then pick HOW LONG — and the price follows the length.
|
|
284
|
-
|
|
285
|
-
```jsx
|
|
286
|
-
const detail = useServiceDetail(serviceId); // service + start times
|
|
287
|
-
const rental = useRentalDuration(detail.service, detail.selectedSlot, detail.timeZone);
|
|
288
|
-
|
|
289
|
-
<SlotPicker … /> {/* pick a start, as ever */}
|
|
290
|
-
{rental.isRental && <RentalDurationPicker rental={rental} />} {/* then pick a length */}
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
Book with `rental.endDate` as the slot's `localEndDate`; everything else in the booking call is
|
|
294
|
-
identical.
|
|
295
|
-
|
|
296
|
-
**Hard rules on top of the ones below:**
|
|
297
|
-
|
|
298
|
-
- **Filter every catalog read by `appId`.** `queryRentals()` does it. On a site with both apps
|
|
299
|
-
an unfiltered `queryServices` returns haircuts next to meeting rooms.
|
|
300
|
-
- **Never compute the total yourself.** A rental is charged as a rate, hourly at per-minute
|
|
301
|
-
granularity — 90 minutes of a $10/hour room is $15. `useRentalDuration` prices the chosen
|
|
302
|
-
length on the server; multiplying the displayed rate disagrees with checkout.
|
|
303
|
-
- **Show the total before the customer commits.** A rate alone is not a price.
|
|
304
|
-
- **One unit type per service.** A room rented by the hour *and* by the day is two services.
|
|
305
|
-
|
|
306
|
-
## Hard rules
|
|
307
|
-
- Header/footer live in a `Layout` around `<Outlet/>` (STEP 3) — never edit the shipped
|
|
308
|
-
`Services`/`ServiceDetail` to add chrome.
|
|
309
|
-
- The Layout's fixed top region owns positioning: `<WixManageBanner/>` above `<Header/>`; your
|
|
310
|
-
`Header` is plain in-flow markup (not `position:fixed`).
|
|
311
|
-
- Send availability/booking dates as **local** `"YYYY-MM-DDThh:mm:ss"` strings + a `timeZone` — never
|
|
312
|
-
UTC `Z` timestamps to the slot APIs.
|
|
313
|
-
- Re-validate the slot with `getAvailableSlot()` before booking; guard the `null` — slots get taken.
|
|
314
|
-
- Cap participants at `maxParticipantsPerBooking` (no selector when 1); never offer a fixed range and
|
|
315
|
-
never use slot capacity as the per-buyer limit.
|
|
316
|
-
- Book only through the shipped flow (`bookAndCheckout` / `createBooking`→`checkoutBooking`) and
|
|
317
|
-
redirect to the returned URL — never a hand-built `/checkout` or calendar URL.
|
|
318
|
-
- Render live Wix data or the shipped empty state — never mock services, slots, or availability, and
|
|
319
|
-
never invent reviews, ratings, staff, or testimonials.
|
|
320
|
-
|
|
321
|
-
## Point the user to their dashboard
|
|
322
|
-
Provide deep links so the owner can manage bookings content (substitute the site's `metaSiteId`):
|
|
323
|
-
- **Booking Services** — `https://manage.wix.com/dashboard/{metaSiteId}/bookings/services` (add
|
|
324
|
-
services and service categories)
|
|
325
|
-
- **Staff** — `https://manage.wix.com/dashboard/{metaSiteId}/bookings/staff` (add staff and set
|
|
326
|
-
working hours, so slots are actually bookable)
|
|
327
|
-
|
|
328
|
-
## Seeding
|
|
329
|
-
Seed the services per `seed/SEED.md` (the build-time setup module) — separate from this client
|
|
330
|
-
build; run in parallel.
|
|
331
|
-
|
|
332
|
-
## Verify (before declaring done)
|
|
333
|
-
- [ ] Client files copied into `src/`; `WIX_CLIENT_ID` set (not the placeholder).
|
|
334
|
-
- [ ] **Opened `/services` and a service detail page** (not just the home page) and confirmed the shipped cards render themed (surface, text, brand color) with images.
|
|
335
|
-
- [ ] `Layout` (fixed `<WixManageBanner/>` + `<Header/>` region, then `<Outlet/>` + Footer) wraps all
|
|
336
|
-
routes; shipped `Services`/`ServiceDetail` untouched; content clears the fixed chrome.
|
|
337
|
-
- [ ] Visitor token persists across reload (same visitor identity across reloads).
|
|
338
|
-
- [ ] `queryServices()` renders live services; empty catalog shows the shipped empty state (no mock services).
|
|
339
|
-
- [ ] Slot picker shows real bookable slots; the slot is re-validated with `getAvailableSlot()` right before booking.
|
|
340
|
-
- [ ] Participant selector capped by `maxParticipantsPerBooking` (hidden when 1).
|
|
341
|
-
- [ ] Booking redirects to the hosted checkout URL the client returns; on return the booking is CONFIRMED/PENDING.
|
|
342
|
-
- [ ] No mock services, slots, or availability anywhere.
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
// Contact + participants form — pure UI. All state/handlers (field setters, participant cap,
|
|
2
|
-
// submit, submitting, error) come from useServiceDetail; this only renders them. The participant
|
|
3
|
-
// selector shows ONLY when maxParticipants > 1 (commonly 1 → no selector, book exactly one).
|
|
4
|
-
// Styled with base44 design tokens (shadcn Tailwind classes).
|
|
5
|
-
const fieldCls =
|
|
6
|
-
"w-full px-3 py-2.5 box-border font-body border border-input rounded-sm bg-background text-foreground";
|
|
7
|
-
const labelCls = "block mb-1.5 text-[11px] uppercase tracking-wide text-muted-foreground";
|
|
8
|
-
|
|
9
|
-
export default function BookingForm({
|
|
10
|
-
contact, setContactField, maxParticipants, participants, setParticipants,
|
|
11
|
-
onSubmit, submitting, canSubmit, error, needsApproval, timeLabel, priceLabel,
|
|
12
|
-
}) {
|
|
13
|
-
// Naming the time and price on the button is the last confirmation before payment, so what the
|
|
14
|
-
// buyer clicks states exactly what they're committing to.
|
|
15
|
-
const what = [timeLabel, priceLabel].filter(Boolean).join(" · ");
|
|
16
|
-
return (
|
|
17
|
-
<form onSubmit={(e) => { e.preventDefault(); onSubmit(); }} className="flex flex-col gap-4">
|
|
18
|
-
<div className="flex gap-3">
|
|
19
|
-
<div className="flex-1">
|
|
20
|
-
<label className={labelCls} htmlFor="bk-first">First name</label>
|
|
21
|
-
<input id="bk-first" className={fieldCls} value={contact.firstName} onChange={setContactField("firstName")} />
|
|
22
|
-
</div>
|
|
23
|
-
<div className="flex-1">
|
|
24
|
-
<label className={labelCls} htmlFor="bk-last">Last name</label>
|
|
25
|
-
<input id="bk-last" className={fieldCls} value={contact.lastName} onChange={setContactField("lastName")} />
|
|
26
|
-
</div>
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
<div>
|
|
30
|
-
<label className={labelCls} htmlFor="bk-email">Email</label>
|
|
31
|
-
<input id="bk-email" required type="email" autoComplete="email" placeholder="you@example.com"
|
|
32
|
-
className={fieldCls} value={contact.email} onChange={setContactField("email")} />
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<div>
|
|
36
|
-
<label className={labelCls} htmlFor="bk-phone">
|
|
37
|
-
Phone <span className="normal-case tracking-normal">optional</span>
|
|
38
|
-
</label>
|
|
39
|
-
<input id="bk-phone" type="tel" autoComplete="tel" className={fieldCls}
|
|
40
|
-
value={contact.phone} onChange={setContactField("phone")} />
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
{maxParticipants > 1 && (
|
|
44
|
-
<div>
|
|
45
|
-
<label className={labelCls} htmlFor="bk-participants">Participants</label>
|
|
46
|
-
<input id="bk-participants" type="number" min={1} max={maxParticipants} value={participants}
|
|
47
|
-
onChange={(e) => setParticipants(Math.max(1, Math.min(maxParticipants, Number(e.target.value) || 1)))}
|
|
48
|
-
className={`${fieldCls} w-[100px]`} />
|
|
49
|
-
</div>
|
|
50
|
-
)}
|
|
51
|
-
|
|
52
|
-
{error && <p role="alert" className="m-0 text-destructive text-sm">{error}</p>}
|
|
53
|
-
|
|
54
|
-
{/* The business confirms a manual-approval service after the fact, so this asks rather than books. */}
|
|
55
|
-
<button type="submit" disabled={!canSubmit}
|
|
56
|
-
className="px-6 py-3 cursor-pointer bg-primary text-primary-foreground border-none rounded-sm text-[15px] font-semibold disabled:opacity-50 disabled:cursor-not-allowed">
|
|
57
|
-
{submitting
|
|
58
|
-
? (needsApproval ? "Requesting…" : "Booking…")
|
|
59
|
-
: needsApproval
|
|
60
|
-
? (what ? `Request ${what}` : "Request appointment")
|
|
61
|
-
: (what ? `Book ${what}` : "Book appointment")}
|
|
62
|
-
</button>
|
|
63
|
-
</form>
|
|
64
|
-
);
|
|
65
|
-
}
|
package/skills/wix-vibe-headless/references/bookings/app/components/RentalDurationPicker.jsx
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// Rental length picker — pure UI. The options, the selection handler and the priced total all
|
|
2
|
-
// come from useRentalDuration; no data wiring lives here.
|
|
3
|
-
//
|
|
4
|
-
// Renders the step an ordinary service doesn't have: the customer has already picked a START
|
|
5
|
-
// (SlotPicker), and now picks HOW LONG. The running total sits beside the choices because a
|
|
6
|
-
// rental's cost depends on the length — showing only a rate per hour leaves the customer
|
|
7
|
-
// discovering the real number at checkout.
|
|
8
|
-
//
|
|
9
|
-
// Show this only when `rental.isRental` — an appointment or class has no length to choose.
|
|
10
|
-
// Styled with base44 design tokens (shadcn Tailwind classes).
|
|
11
|
-
const optionCls = "py-2.5 px-3 cursor-pointer text-sm font-body border rounded-sm transition-colors";
|
|
12
|
-
const idle = "border-border bg-card text-foreground hover:border-foreground/40";
|
|
13
|
-
const active = "border-primary bg-primary text-primary-foreground";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @param {{
|
|
17
|
-
* rental: object, // the whole return of useRentalDuration
|
|
18
|
-
* startLabel?: string, // e.g. "Fri 4 Sep, 10:00" — what the customer already picked
|
|
19
|
-
* }} props
|
|
20
|
-
*/
|
|
21
|
-
export default function RentalDurationPicker({ rental, startLabel }) {
|
|
22
|
-
const { isRental, duration, options, selected, select, price, loading, error } = rental;
|
|
23
|
-
if (!isRental) return null;
|
|
24
|
-
|
|
25
|
-
const unitWord = duration?.unit === "DAY" ? "days" : "hours";
|
|
26
|
-
|
|
27
|
-
return (
|
|
28
|
-
<div className="mb-6">
|
|
29
|
-
<div className="mb-2 flex items-baseline justify-between gap-3">
|
|
30
|
-
<p className="text-xs font-semibold uppercase tracking-wider text-muted-foreground">
|
|
31
|
-
How long{startLabel ? ` from ${startLabel}` : ""}
|
|
32
|
-
</p>
|
|
33
|
-
{price?.total ? (
|
|
34
|
-
<p className="text-sm font-semibold text-foreground">{price.total}</p>
|
|
35
|
-
) : selected ? (
|
|
36
|
-
<p className="text-sm text-muted-foreground">Pricing…</p>
|
|
37
|
-
) : null}
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
{loading ? (
|
|
41
|
-
<p className="text-sm text-muted-foreground">Loading available {unitWord}…</p>
|
|
42
|
-
) : error ? (
|
|
43
|
-
<p className="text-sm text-destructive">{error}</p>
|
|
44
|
-
) : !options.length ? (
|
|
45
|
-
// An empty list is a real answer: this start has no bookable length. Say so, and leave
|
|
46
|
-
// the start picker in place so the customer can choose another one.
|
|
47
|
-
<p className="text-sm text-muted-foreground">
|
|
48
|
-
Nothing available from that start — pick another time.
|
|
49
|
-
</p>
|
|
50
|
-
) : (
|
|
51
|
-
<div className="grid grid-cols-3 gap-2 sm:grid-cols-4">
|
|
52
|
-
{options.map((option) => (
|
|
53
|
-
<button
|
|
54
|
-
key={option.localEndDate}
|
|
55
|
-
type="button"
|
|
56
|
-
aria-pressed={selected?.localEndDate === option.localEndDate}
|
|
57
|
-
className={`${optionCls} ${selected?.localEndDate === option.localEndDate ? active : idle}`}
|
|
58
|
-
onClick={() => select(option)}
|
|
59
|
-
>
|
|
60
|
-
{option.label}
|
|
61
|
-
</button>
|
|
62
|
-
))}
|
|
63
|
-
</div>
|
|
64
|
-
)}
|
|
65
|
-
</div>
|
|
66
|
-
);
|
|
67
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// Grid tile for one bookable service. Styled with base44 design tokens (shadcn Tailwind classes:
|
|
2
|
-
// bg-card / text-foreground / border-border / text-primary) — re-skin via the app's design tokens
|
|
3
|
-
// (src/index.css :root/.dark), not this JSX. Load-bearing: the image goes through mediaUrl() (Wix
|
|
4
|
-
// media can be a bare handle), the link uses `service.id`, and every price/duration/capacity label
|
|
5
|
-
// comes from lib/serviceFacts.js so the card and the detail page can't disagree.
|
|
6
|
-
import { Link } from "@/lib/nav";
|
|
7
|
-
import { mediaUrl } from "@/rest/wix-bookings-services";
|
|
8
|
-
import { serviceCapacityLabel, serviceDuration, servicePriceLabel } from "@/lib/serviceFacts";
|
|
9
|
-
|
|
10
|
-
export default function ServiceCard({ service }) {
|
|
11
|
-
const image = mediaUrl(service.media?.mainMedia?.image ?? service.media?.items?.[0]?.image ?? service.media?.coverMedia?.image);
|
|
12
|
-
const price = servicePriceLabel(service);
|
|
13
|
-
const minutes = serviceDuration(service);
|
|
14
|
-
// A class has no duration on the service, so its meta row carries capacity alone rather than a gap.
|
|
15
|
-
const facts = [minutes && `${minutes} min`, serviceCapacityLabel(service)].filter(Boolean);
|
|
16
|
-
|
|
17
|
-
return (
|
|
18
|
-
<Link to={`/service/${service.id}`}
|
|
19
|
-
className="group flex flex-col no-underline text-foreground bg-card border border-border rounded-lg overflow-hidden shadow-sm">
|
|
20
|
-
<div className="relative aspect-[4/3] bg-background overflow-hidden">
|
|
21
|
-
{image
|
|
22
|
-
? <img src={image} alt={service.name} loading="lazy"
|
|
23
|
-
className="w-full h-full object-cover transition-transform duration-300 md:group-hover:scale-[1.03]" />
|
|
24
|
-
: <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>}
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
<div className="p-3 flex flex-col gap-1">
|
|
28
|
-
{/* Name and price share a row on a wide tile and stack on a phone's narrow one, where a long
|
|
29
|
-
name against a top-right price wraps into a ragged block. */}
|
|
30
|
-
<div className="flex flex-col gap-1 md:flex-row md:items-baseline md:justify-between md:gap-3">
|
|
31
|
-
<h3 className="m-0 font-display text-[15px] font-semibold line-clamp-2">{service.name}</h3>
|
|
32
|
-
{price && <span className="font-semibold whitespace-nowrap">{price}</span>}
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
{service.tagLine && (
|
|
36
|
-
<p className="m-0 text-muted-foreground text-[13px] line-clamp-1">{service.tagLine}</p>
|
|
37
|
-
)}
|
|
38
|
-
|
|
39
|
-
{facts.length > 0 && (
|
|
40
|
-
<p className="m-0 mt-0.5 text-[11px] uppercase tracking-wide text-muted-foreground">
|
|
41
|
-
{facts.join(" · ")}
|
|
42
|
-
</p>
|
|
43
|
-
)}
|
|
44
|
-
</div>
|
|
45
|
-
</Link>
|
|
46
|
-
);
|
|
47
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Responsive service grid + empty state. Styled with base44 design tokens (shadcn Tailwind classes).
|
|
2
|
-
import ServiceCard from "./ServiceCard";
|
|
3
|
-
|
|
4
|
-
export default function ServiceGrid({ services, empty = "No services yet." }) {
|
|
5
|
-
if (!services?.length) {
|
|
6
|
-
return <p className="text-muted-foreground p-4 text-center">{empty}</p>;
|
|
7
|
-
}
|
|
8
|
-
return (
|
|
9
|
-
<div className="grid gap-4 grid-cols-2 md:[grid-template-columns:repeat(auto-fill,minmax(240px,1fr))]">
|
|
10
|
-
{services.map((s) => <ServiceCard key={s.id} service={s} />)}
|
|
11
|
-
</div>
|
|
12
|
-
);
|
|
13
|
-
}
|