@wix/agent-skills 1.14.0 → 1.15.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/README.md +12 -1
- package/package.json +1 -1
- package/skills/README.md +23 -0
- package/skills/wix-app/SKILL.md +10 -2
- package/skills/wix-app/references/AUTO_PATTERNS_DASHBOARD.md +326 -0
- package/skills/wix-app/references/CODE_QUALITY.md +1 -0
- package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +124 -115
- package/skills/wix-app/references/DASHBOARD_PAGE.md +3 -0
- package/skills/wix-app/references/DATA_COLLECTION.md +5 -3
- package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +25 -9
- package/skills/wix-app/references/SITE_PLUGIN.md +1 -1
- package/skills/wix-app/references/STORES_VERSIONING.md +9 -211
- package/skills/wix-app/references/auto-patterns-dashboard/action-cell.md +115 -0
- package/skills/wix-app/references/auto-patterns-dashboard/app-config-structure.md +264 -0
- package/skills/wix-app/references/auto-patterns-dashboard/app-context.md +37 -0
- package/skills/wix-app/references/auto-patterns-dashboard/bulk-actions.md +86 -0
- package/skills/wix-app/references/auto-patterns-dashboard/collection-page-actions.md +119 -0
- package/skills/wix-app/references/auto-patterns-dashboard/collection-page.md +103 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-actions-override.md +76 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-columns-override.md +82 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-components-override.md +89 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-header-override.md +124 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-sections-override.md +91 -0
- package/skills/wix-app/references/auto-patterns-dashboard/custom-slots-override.md +71 -0
- package/skills/wix-app/references/auto-patterns-dashboard/entity-page-actions.md +70 -0
- package/skills/wix-app/references/auto-patterns-dashboard/entity-page-view-actions.md +73 -0
- package/skills/wix-app/references/auto-patterns-dashboard/entity-page.md +98 -0
- package/skills/wix-app/references/auto-patterns-dashboard/example-patterns.json +278 -0
- package/skills/wix-app/references/auto-patterns-dashboard/pages-configuration.md +94 -0
- package/skills/wix-app/references/auto-patterns-dashboard/resolved-action.md +43 -0
- package/skills/wix-app/references/auto-patterns-dashboard/sdk-utilities.md +66 -0
- package/skills/wix-app/references/auto-patterns-dashboard/views.md +76 -0
- package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +5 -0
- package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +1 -14
- package/skills/wix-app/references/editor-react-component/ANIMATED-COMPONENTS.md +151 -0
- package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +54 -29
- package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +2 -2
- package/skills/wix-app/references/editor-react-component/COMPONENT-PREVIEW.md +57 -0
- package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +23 -105
- package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +127 -0
- package/skills/wix-app/references/editor-react-component/PARTS.md +2 -1
- package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +18 -16
- package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +25 -53
- package/skills/wix-app/references/stores/CATEGORIES.md +22 -0
- package/skills/wix-app/references/stores/GET_PRODUCT.md +99 -0
- package/skills/wix-app/references/stores/INVENTORY.md +37 -0
- package/skills/wix-app/references/stores/QUERY.md +87 -0
- package/skills/wix-app/references/stores/WRITE.md +55 -0
- package/skills/wix-app/scripts/generate-auto-patterns.js +510 -0
- package/skills/wix-auth/SKILL.md +12 -0
- package/skills/wix-auth/references/device-flow.md +140 -0
- package/skills/wix-docs/SKILL.md +188 -0
- package/skills/wix-docs/references/API_SPEC_SEARCH.md +213 -0
- package/skills/wix-docs/references/EXTRACTING.md +120 -0
- package/skills/wix-headless/SKILL.md +89 -130
- package/skills/wix-headless/entry/bootstrap.mjs +93 -0
- package/skills/wix-headless/entry/skill.md +76 -0
- package/skills/wix-headless/references/AI_FEATURES.md +178 -0
- package/skills/wix-headless/references/CAPABILITIES.md +86 -0
- package/skills/wix-headless/references/DISCOVERY.md +34 -56
- package/skills/wix-headless/references/DOC_DISCOVERY.md +37 -0
- package/skills/wix-headless/references/FEEDBACK.md +129 -0
- package/skills/wix-headless/references/IMAGE_GENERATION.md +69 -0
- package/skills/wix-headless/references/SDK_HANDOFF.md +99 -0
- package/skills/wix-headless/references/SEED.md +45 -187
- package/skills/wix-headless/references/SETUP.md +32 -103
- package/skills/wix-headless/references/astro.md +98 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +196 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +236 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +279 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +163 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +203 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +222 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +124 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +160 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +118 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +132 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +124 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +188 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +213 -0
- package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +161 -0
- package/skills/wix-headless/references/inline-recipes/setup-blog.md +175 -0
- package/skills/wix-headless/references/inline-recipes/setup-bookings.md +232 -0
- package/skills/wix-headless/references/inline-recipes/setup-cms.md +200 -0
- package/skills/wix-headless/references/inline-recipes/setup-events.md +196 -0
- package/skills/wix-headless/references/inline-recipes/setup-forms.md +174 -0
- package/skills/wix-headless/references/inline-recipes/setup-online-store.md +192 -0
- package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +155 -0
- package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +229 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-experiences.md +73 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +197 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +136 -0
- package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +152 -0
- package/skills/wix-headless/references/managed/AUTHENTICATION.md +57 -0
- package/skills/wix-headless/references/managed/CONNECT.md +74 -0
- package/skills/wix-headless/references/managed/CREATE.md +130 -0
- package/skills/wix-headless/references/managed/DEPLOYMENT.md +79 -0
- package/skills/wix-headless/references/non-astro.md +59 -0
- package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +22 -0
- package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +15 -0
- package/skills/wix-headless/references/stripe/AUTHENTICATION.md +55 -0
- package/skills/wix-headless/references/stripe/DEPLOYMENT.md +71 -0
- package/skills/wix-manage/SKILL.md +29 -3
- package/skills/wix-manage/references/analytics/query-site-analytics.md +298 -0
- package/skills/wix-manage/references/app-installation/install-wix-apps.md +3 -0
- package/skills/wix-manage/references/bookings/create-and-update-booking-services.md +1 -1
- package/skills/wix-manage/references/bookings/create-booking-service-from-prompt.md +6 -5
- package/skills/wix-manage/references/bookings/create-course-service.md +30 -5
- package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +299 -0
- package/skills/wix-manage/references/cms/cms-schema-management.md +6 -0
- package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +30 -7
- package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +517 -0
- package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +218 -0
- package/skills/wix-manage/references/rich-content/author-ricos-rich-content.md +249 -0
- package/skills/wix-manage/references/sites/site-import.md +270 -0
- package/skills/wix-manage/references/stores/create-product-from-image.md +8 -6
- package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +57 -0
- package/skills/wix-vibe-headless/SKILL.md +142 -0
- package/skills/wix-vibe-headless/platforms/README.md +22 -0
- package/skills/wix-vibe-headless/platforms/base44.md +142 -0
- package/skills/wix-vibe-headless/platforms/generic.md +87 -0
- package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +128 -0
- package/skills/wix-vibe-headless/references/blog/wix-blog.js +217 -0
- package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +157 -0
- package/skills/wix-vibe-headless/references/bookings/wix-bookings-checkout.js +147 -0
- package/skills/wix-vibe-headless/references/bookings/wix-bookings-services.js +217 -0
- package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +154 -0
- package/skills/wix-vibe-headless/references/cms/wix-cms.js +186 -0
- package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +142 -0
- package/skills/wix-vibe-headless/references/events/wix-events-browse.js +136 -0
- package/skills/wix-vibe-headless/references/events/wix-events-registration.js +187 -0
- package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +211 -0
- package/skills/wix-vibe-headless/references/members/wix-members-auth.js +387 -0
- package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +111 -0
- package/skills/wix-vibe-headless/references/portfolio/wix-portfolio.js +223 -0
- package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +127 -0
- package/skills/wix-vibe-headless/references/pricing-plans/wix-pricing-plans.js +157 -0
- package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +138 -0
- package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-menu.js +224 -0
- package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-ordering.js +156 -0
- package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-reservations.js +107 -0
- package/skills/wix-vibe-headless/references/shared/wix-client.js +186 -0
- package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +164 -0
- package/skills/wix-vibe-headless/references/storefront/wix-store-cart.js +147 -0
- package/skills/wix-vibe-headless/references/storefront/wix-store-catalog.js +146 -0
- package/skills/wix-headless/references/BUILD-astro.md +0 -253
- package/skills/wix-headless/references/BUILD-own-build.md +0 -167
- package/skills/wix-headless/references/BUILD.md +0 -105
- package/skills/wix-headless/references/DESIGN_SYSTEM.md +0 -165
- package/skills/wix-headless/references/DISCOVERY-connect.md +0 -55
- package/skills/wix-headless/references/DISCOVERY-create.md +0 -238
- package/skills/wix-headless/references/PLAN-connect.md +0 -19
- package/skills/wix-headless/references/PLAN-create.md +0 -17
- package/skills/wix-headless/references/PLAN.md +0 -92
- package/skills/wix-headless/references/astro/blog/BLOG_PAGES.md +0 -300
- package/skills/wix-headless/references/astro/blog/BLOG_SETUP.md +0 -218
- package/skills/wix-headless/references/astro/bookings/COMPONENTS.md +0 -45
- package/skills/wix-headless/references/astro/bookings/SERVICES_PAGES.md +0 -77
- package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +0 -214
- package/skills/wix-headless/references/astro/cms/FAQ_KNOWLEDGE_BASE.md +0 -231
- package/skills/wix-headless/references/astro/cms/PORTFOLIO.md +0 -453
- package/skills/wix-headless/references/astro/cms/RESOURCE_LIBRARY.md +0 -354
- package/skills/wix-headless/references/astro/cms/TEAM_DIRECTORY.md +0 -299
- package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +0 -351
- package/skills/wix-headless/references/astro/ecom/CART_PAGES.md +0 -119
- package/skills/wix-headless/references/astro/ecom/CART_WIRING.md +0 -103
- package/skills/wix-headless/references/astro/ecom/COMPONENTS_CSS.md +0 -132
- package/skills/wix-headless/references/astro/forms/CONTACT_FORM.md +0 -463
- package/skills/wix-headless/references/astro/gift-cards/COMPONENTS.md +0 -119
- package/skills/wix-headless/references/astro/gift-cards/PAGES.md +0 -129
- package/skills/wix-headless/references/astro/stores/BACK_IN_STOCK.md +0 -178
- package/skills/wix-headless/references/astro/stores/CATEGORY_PAGES.md +0 -85
- package/skills/wix-headless/references/astro/stores/COMPONENTS_CSS.md +0 -129
- package/skills/wix-headless/references/astro/stores/HOME_AND_NAV.md +0 -229
- package/skills/wix-headless/references/astro/stores/PRODUCT_PAGES.md +0 -215
- package/skills/wix-headless/references/astro/stores/SHARED_WIRING.md +0 -165
- package/skills/wix-headless/references/astro/templates/Layout.astro +0 -132
- package/skills/wix-headless/references/astro/templates/astro.config.mjs +0 -41
- package/skills/wix-headless/references/astro/templates/bookings/AvailabilityCalendar.tsx +0 -374
- package/skills/wix-headless/references/astro/templates/bookings/BookingForm.tsx +0 -136
- package/skills/wix-headless/references/astro/templates/bookings/SeoTags.astro +0 -25
- package/skills/wix-headless/references/astro/templates/bookings/ServiceBookingFlow.tsx +0 -71
- package/skills/wix-headless/references/astro/templates/bookings/ServiceCard.astro +0 -54
- package/skills/wix-headless/references/astro/templates/bookings/booking-confirmation.astro +0 -49
- package/skills/wix-headless/references/astro/templates/bookings/bookingDriver.ts +0 -245
- package/skills/wix-headless/references/astro/templates/bookings/components-bookings.css +0 -424
- package/skills/wix-headless/references/astro/templates/bookings/services/[slug].astro +0 -176
- package/skills/wix-headless/references/astro/templates/bookings/services/index.astro +0 -181
- package/skills/wix-headless/references/astro/templates/ecom/CartBadge.tsx +0 -84
- package/skills/wix-headless/references/astro/templates/ecom/CartView.tsx +0 -543
- package/skills/wix-headless/references/astro/templates/ecom/cart.astro +0 -13
- package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +0 -302
- package/skills/wix-headless/references/astro/templates/ecom/discounts.ts +0 -71
- package/skills/wix-headless/references/astro/templates/ecom/thank-you.astro +0 -24
- package/skills/wix-headless/references/astro/templates/gift-cards/GiftCardPurchase.tsx +0 -172
- package/skills/wix-headless/references/astro/templates/gift-cards/_home-teaser-snippet.astro +0 -42
- package/skills/wix-headless/references/astro/templates/gift-cards/_nav-snippet.astro +0 -11
- package/skills/wix-headless/references/astro/templates/gift-cards/components-gift-cards.css +0 -220
- package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.astro +0 -51
- package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.ts +0 -75
- package/skills/wix-headless/references/astro/templates/global.css +0 -288
- package/skills/wix-headless/references/astro/templates/stores/AddToCartButton.tsx +0 -77
- package/skills/wix-headless/references/astro/templates/stores/BackInStockForm.tsx +0 -176
- package/skills/wix-headless/references/astro/templates/stores/CategoryRail.astro +0 -69
- package/skills/wix-headless/references/astro/templates/stores/ProductCard.astro +0 -79
- package/skills/wix-headless/references/astro/templates/stores/ProductPurchase.tsx +0 -397
- package/skills/wix-headless/references/astro/templates/stores/SeoTags.astro +0 -21
- package/skills/wix-headless/references/astro/templates/stores/back-in-stock.ts +0 -67
- package/skills/wix-headless/references/astro/templates/stores/categories.ts +0 -155
- package/skills/wix-headless/references/astro/templates/stores/category/[slug].astro +0 -130
- package/skills/wix-headless/references/astro/templates/stores/components-stores.css +0 -400
- package/skills/wix-headless/references/astro/templates/stores/products/[slug].astro +0 -128
- package/skills/wix-headless/references/astro/templates/stores/products/index.astro +0 -101
- package/skills/wix-headless/references/blog/BLOG_CONTENT.md +0 -161
- package/skills/wix-headless/references/blog/INSTRUCTIONS.md +0 -32
- package/skills/wix-headless/references/bookings/FLOW.md +0 -246
- package/skills/wix-headless/references/bookings/INSTRUCTIONS.md +0 -95
- package/skills/wix-headless/references/bookings/SERVICES_DATA.md +0 -355
- package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +0 -176
- package/skills/wix-headless/references/cms/INSTRUCTIONS.md +0 -71
- package/skills/wix-headless/references/commands/known-apps.json +0 -6
- package/skills/wix-headless/references/custom/CONNECTION_PLAN.md +0 -142
- package/skills/wix-headless/references/custom/INSTRUCTIONS.md +0 -88
- package/skills/wix-headless/references/custom/blog/WIRING.md +0 -52
- package/skills/wix-headless/references/custom/bookings/WIRING.md +0 -197
- package/skills/wix-headless/references/custom/cms/WIRING.md +0 -97
- package/skills/wix-headless/references/custom/ecom/WIRING.md +0 -67
- package/skills/wix-headless/references/custom/forms/WIRING.md +0 -101
- package/skills/wix-headless/references/custom/stores/WIRING.md +0 -80
- package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +0 -59
- package/skills/wix-headless/references/forms/INSTRUCTIONS.md +0 -43
- package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +0 -51
- package/skills/wix-headless/references/images/INSTRUCTIONS.md +0 -357
- package/skills/wix-headless/references/seed-recipes.md +0 -49
- package/skills/wix-headless/references/shared/AGENTS_MD.md +0 -47
- package/skills/wix-headless/references/shared/AUTHENTICATION.md +0 -108
- package/skills/wix-headless/references/shared/BUILD_NOISE.md +0 -8
- package/skills/wix-headless/references/shared/DESIGN_MD.md +0 -84
- package/skills/wix-headless/references/shared/DOCS_SEARCH.md +0 -41
- package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +0 -186
- package/skills/wix-headless/references/shared/IMPLEMENTER.md +0 -206
- package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +0 -97
- package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +0 -143
- package/skills/wix-headless/references/shared/STYLING.md +0 -140
- package/skills/wix-headless/references/stores/INSTRUCTIONS.md +0 -126
- package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +0 -252
- package/skills/wix-headless/references/verticals/_schema.json +0 -74
- package/skills/wix-headless/references/verticals/_schema.md +0 -95
- package/skills/wix-headless/references/verticals/blog.md +0 -31
- package/skills/wix-headless/references/verticals/bookings.md +0 -41
- package/skills/wix-headless/references/verticals/cms.md +0 -30
- package/skills/wix-headless/references/verticals/ecom.md +0 -25
- package/skills/wix-headless/references/verticals/forms.md +0 -26
- package/skills/wix-headless/references/verticals/gift-cards.md +0 -24
- package/skills/wix-headless/references/verticals/stores.md +0 -33
- package/skills/wix-headless/scripts/check-manifest.mjs +0 -335
- package/skills/wix-headless/scripts/compose.mjs +0 -520
- package/skills/wix-headless/scripts/emit-design-tokens.mjs +0 -157
- package/skills/wix-headless/scripts/flatten.sh +0 -61
- package/skills/wix-headless/scripts/generate-images.mjs +0 -242
- package/skills/wix-headless/scripts/patch-decorative-slots.mjs +0 -154
- package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +0 -190
- package/skills/wix-headless/scripts/scaffold.sh +0 -139
- package/skills/wix-headless/scripts/seed-utilities.sh +0 -93
- package/skills/wix-headless/scripts/write-decorative-json.mjs +0 -62
- package/skills/wix-headless/shared-utilities/analytics.ts +0 -40
- package/skills/wix-headless/shared-utilities/ricos.ts +0 -179
- package/skills/wix-headless/shared-utilities/wix-image.ts +0 -72
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Custom Sections Override Rules
|
|
2
|
+
|
|
3
|
+
**REQUIRED**: After creating section files, you MUST update `page.tsx` to register them.
|
|
4
|
+
|
|
5
|
+
## Type Definitions
|
|
6
|
+
```typescript
|
|
7
|
+
interface Section {
|
|
8
|
+
id: string; // Unique grouping ID
|
|
9
|
+
title: string; // Header text
|
|
10
|
+
primaryAction?: {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
prefixIcon?: React.ReactElement;
|
|
14
|
+
onClick: () => void;
|
|
15
|
+
};
|
|
16
|
+
badge?: {
|
|
17
|
+
visible: boolean;
|
|
18
|
+
skin?: 'light' | 'danger' | 'neutralLight';
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Section Renderer Signature
|
|
23
|
+
type SectionRenderer = (item: any) => Section;
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Configuration Schema
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"type": "collectionPage",
|
|
30
|
+
"collectionPage": {
|
|
31
|
+
"components": [
|
|
32
|
+
{
|
|
33
|
+
"layout": [
|
|
34
|
+
{
|
|
35
|
+
"type": "Table",
|
|
36
|
+
"table": {
|
|
37
|
+
"sections": {
|
|
38
|
+
"id": "groupByType" // Matches override key
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Validation Logic
|
|
50
|
+
- **IF** `sections.id` is defined **THEN** matching override function MUST exist.
|
|
51
|
+
- **IF** multiple items return same `id` from renderer **THEN** they will be visually grouped.
|
|
52
|
+
- **NEVER** perform heavy computations in renderer; it runs for every item.
|
|
53
|
+
|
|
54
|
+
## Implementation Rules
|
|
55
|
+
- **MUST** be placed in `components/sections/` folder.
|
|
56
|
+
- **MUST** export a `useSections` hook from `components/sections/index.tsx`.
|
|
57
|
+
- **MUST** return a valid `Section` object.
|
|
58
|
+
- **MUST** handle missing fields gracefully (default values).
|
|
59
|
+
|
|
60
|
+
## Canonical Example
|
|
61
|
+
```tsx
|
|
62
|
+
// components/sections/groupByType.ts
|
|
63
|
+
import { Section } from '@wix/patterns';
|
|
64
|
+
|
|
65
|
+
export function groupByType(item: any): Section {
|
|
66
|
+
const type = item.type || 'other';
|
|
67
|
+
return {
|
|
68
|
+
id: type,
|
|
69
|
+
title: type.toUpperCase(),
|
|
70
|
+
badge: { visible: true, skin: 'neutralLight' }
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// components/sections/index.tsx
|
|
75
|
+
import { groupByType } from './groupByType';
|
|
76
|
+
export const useSections = () => ({ groupByType });
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## page.tsx Registration (REQUIRED)
|
|
80
|
+
|
|
81
|
+
**CRITICAL: PRESERVE EXISTING OVERRIDES** - Do NOT remove existing overrides. ADD this new one alongside them.
|
|
82
|
+
|
|
83
|
+
```tsx
|
|
84
|
+
// 1. Add import (keep all existing imports)
|
|
85
|
+
import { useSections } from './components/sections';
|
|
86
|
+
|
|
87
|
+
// 2. Add hook call (keep all existing hook calls)
|
|
88
|
+
const sections = useSections();
|
|
89
|
+
|
|
90
|
+
// 3. Add sections to PatternsWizardOverridesProvider value (keep ALL existing overrides)
|
|
91
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Custom Slots Override Rules
|
|
2
|
+
|
|
3
|
+
**REQUIRED**: After creating slot files, you MUST update `page.tsx` to register them.
|
|
4
|
+
|
|
5
|
+
## Type Definitions
|
|
6
|
+
```typescript
|
|
7
|
+
// Slot Component Signature
|
|
8
|
+
type SlotComponent = React.FC; // No props passed
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Configuration Schema
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"type": "collectionPage",
|
|
15
|
+
"collectionPage": {
|
|
16
|
+
"components": [
|
|
17
|
+
{
|
|
18
|
+
"type": "custom",
|
|
19
|
+
"id": "topBanner" // Matches override key
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "collection",
|
|
23
|
+
"collection": { "collectionId": "items" }
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Validation Logic
|
|
31
|
+
- **IF** `type` is `"custom"` in components array **THEN** `id` MUST match a key in the `slots` override object.
|
|
32
|
+
- **IF** implementing a slot **THEN** component MUST NOT expect any props.
|
|
33
|
+
- **NEVER** assume slot position; it renders exactly where placed in the `components` array.
|
|
34
|
+
|
|
35
|
+
## Implementation Rules
|
|
36
|
+
- **MUST** be placed in `components/slots/` folder.
|
|
37
|
+
- **MUST** export a `useSlots` hook from `components/slots/index.tsx`.
|
|
38
|
+
- **MUST** be a standard React Functional Component.
|
|
39
|
+
- **MUST** match the `id` in configuration exactly.
|
|
40
|
+
|
|
41
|
+
## Canonical Example
|
|
42
|
+
```tsx
|
|
43
|
+
// components/slots/TopBanner.tsx
|
|
44
|
+
import { Card, Text } from '@wix/design-system';
|
|
45
|
+
|
|
46
|
+
export const TopBanner = () => (
|
|
47
|
+
<Card>
|
|
48
|
+
<Card.Content>
|
|
49
|
+
<Text>Welcome to the dashboard</Text>
|
|
50
|
+
</Card.Content>
|
|
51
|
+
</Card>
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
// components/slots/index.tsx
|
|
55
|
+
import { TopBanner } from './TopBanner';
|
|
56
|
+
export const useSlots = () => ({ topBanner: TopBanner });
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## page.tsx Registration (REQUIRED)
|
|
60
|
+
|
|
61
|
+
**CRITICAL: PRESERVE EXISTING OVERRIDES** - Do NOT remove existing overrides. ADD this new one alongside them.
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
// 1. Add import (keep all existing imports)
|
|
65
|
+
import { useSlots } from './components/slots';
|
|
66
|
+
|
|
67
|
+
// 2. Add hook call (keep all existing hook calls)
|
|
68
|
+
const slots = useSlots();
|
|
69
|
+
|
|
70
|
+
// 3. Add slots to PatternsWizardOverridesProvider value (keep ALL existing overrides)
|
|
71
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Entity Page Action Rules (Edit Mode)
|
|
2
|
+
|
|
3
|
+
## Type Definitions
|
|
4
|
+
```typescript
|
|
5
|
+
interface EntityPageConfig {
|
|
6
|
+
entityPage: {
|
|
7
|
+
actions: {
|
|
8
|
+
moreActions: (CustomActionItem | DividerItem)[];
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface CustomActionItem {
|
|
14
|
+
id: string; // Matches resolver name
|
|
15
|
+
type: 'custom';
|
|
16
|
+
label: string;
|
|
17
|
+
biName: string; // MANDATORY
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface DividerItem {
|
|
21
|
+
type: 'divider';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Resolver Type
|
|
25
|
+
type CustomEntityPageActionResolver = (params: {
|
|
26
|
+
actionParams: {
|
|
27
|
+
entity: any; // Current entity data
|
|
28
|
+
form: UseFormReturn; // react-hook-form instance
|
|
29
|
+
};
|
|
30
|
+
sdk: AutoPatternsSDK;
|
|
31
|
+
}) => ResolvedAction;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Validation Logic
|
|
35
|
+
- **IF** mode is `'edit'` **THEN** ONLY `moreActions` is supported (`primaryActions` forbidden).
|
|
36
|
+
- **IF** `type: 'custom'` **THEN** `id` MUST match exported resolver name.
|
|
37
|
+
- **IF** `type: 'divider'` **THEN** NO other properties allowed.
|
|
38
|
+
- **ONLY** `'custom'` and `'divider'` are valid action types in moreActions. There is NO built-in `'duplicate'`, `'copy'`, `'clone'`, `'archive'`, `'export'`, or similar action type.
|
|
39
|
+
- **IF** you need any operation beyond navigation (duplicate, archive, export, share, etc.) **THEN** use `type: 'custom'` with a resolver implementation.
|
|
40
|
+
|
|
41
|
+
## Implementation Rules
|
|
42
|
+
- **MUST** place all custom actions in `moreActions` array for Edit Mode.
|
|
43
|
+
- **MUST** include `biName` for every action.
|
|
44
|
+
- **MUST** return a valid `ResolvedAction` object (see resolved_action.md).
|
|
45
|
+
- **MUST** use `errorHandler` for Wix API calls.
|
|
46
|
+
- **NEVER** use `primaryActions` or `secondaryActions` in Edit Mode.
|
|
47
|
+
|
|
48
|
+
## Canonical Example
|
|
49
|
+
```typescript
|
|
50
|
+
// Config
|
|
51
|
+
{
|
|
52
|
+
moreActions: [
|
|
53
|
+
{ id: 'sendEmail', type: 'custom', label: 'Send Email', biName: 'send-email-action' },
|
|
54
|
+
{ type: 'divider' },
|
|
55
|
+
{ id: 'archive', type: 'custom', label: 'Archive', biName: 'archive-action' }
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// components/actions/sendEmail.tsx (use .tsx because it contains JSX icon)
|
|
60
|
+
export const sendEmail: CustomEntityPageActionResolver = ({ actionParams, sdk }) => {
|
|
61
|
+
return {
|
|
62
|
+
label: 'Send Email',
|
|
63
|
+
icon: <EmailIcon />,
|
|
64
|
+
biName: 'send-email-action',
|
|
65
|
+
onClick: () => {
|
|
66
|
+
// Logic here
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
```
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Entity Page Action Rules (View Mode)
|
|
2
|
+
|
|
3
|
+
## Type Definitions
|
|
4
|
+
```typescript
|
|
5
|
+
interface EntityPageViewActions {
|
|
6
|
+
primaryActions?: ActionGroup;
|
|
7
|
+
secondaryActions?: ActionGroup;
|
|
8
|
+
moreActions?: (CustomActionItem | DividerItem)[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type ActionGroup = | { type: 'action'; action: { item: ActionItem } } | { type: 'menu'; menu: { label: string; items: (ActionItem | DividerItem)[] } };
|
|
12
|
+
|
|
13
|
+
interface DividerItem {
|
|
14
|
+
type: 'divider';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface ActionItem {
|
|
18
|
+
id: string; // Must match resolver if custom
|
|
19
|
+
label: string;
|
|
20
|
+
type: 'create' | 'custom';
|
|
21
|
+
biName: string; // MANDATORY
|
|
22
|
+
create?: {
|
|
23
|
+
mode: 'page';
|
|
24
|
+
page: { id: string };
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
type CustomEntityPageActionResolver = (params: {
|
|
29
|
+
actionParams: { entity: any };
|
|
30
|
+
sdk: AutoPatternsSDK;
|
|
31
|
+
}) => ResolvedAction;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Validation Logic
|
|
35
|
+
- **IF** mode is `'view'` **THEN** supports `primaryActions`, `secondaryActions`, AND `moreActions`.
|
|
36
|
+
- **IF** action type is `'create'` **THEN** `create` config is **REQUIRED**.
|
|
37
|
+
- **IF** action type is `'custom'` **THEN** resolver implementation is **REQUIRED**.
|
|
38
|
+
|
|
39
|
+
## Implementation Rules
|
|
40
|
+
- **MUST** use `primaryActions` for main workflow (e.g. Create).
|
|
41
|
+
- **MUST** use `secondaryActions` for supporting workflows.
|
|
42
|
+
- **MUST** use `moreActions` for less common/admin tasks.
|
|
43
|
+
- **MUST** check error handling rules: `errorHandler` for Wix APIs, none for external/SDK.
|
|
44
|
+
- **NEVER** manually add "Edit" action; it's automatic if an Edit Mode page exists.
|
|
45
|
+
|
|
46
|
+
## Canonical Example
|
|
47
|
+
```typescript
|
|
48
|
+
{
|
|
49
|
+
primaryActions: {
|
|
50
|
+
type: 'action',
|
|
51
|
+
action: {
|
|
52
|
+
item: {
|
|
53
|
+
id: 'createEntity',
|
|
54
|
+
label: 'Create New',
|
|
55
|
+
type: 'create',
|
|
56
|
+
biName: 'create-entity-action',
|
|
57
|
+
create: {
|
|
58
|
+
mode: 'page',
|
|
59
|
+
page: { id: 'entity-edit-page' }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
moreActions: [
|
|
65
|
+
{
|
|
66
|
+
id: 'duplicateEntity',
|
|
67
|
+
type: 'custom',
|
|
68
|
+
label: 'Duplicate',
|
|
69
|
+
biName: 'duplicate-entity-action'
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Entity Page Rules
|
|
2
|
+
|
|
3
|
+
## Type Definitions
|
|
4
|
+
```typescript
|
|
5
|
+
interface EntityPageConfig {
|
|
6
|
+
type: 'entityPage';
|
|
7
|
+
entityPage: {
|
|
8
|
+
mode?: 'edit' | 'view'; // Default 'edit'
|
|
9
|
+
route: { path: string; params: { id: string } };
|
|
10
|
+
parentPageId: string; // REQUIRED
|
|
11
|
+
collectionId: string;
|
|
12
|
+
entityTypeSource: 'cms' | 'custom';
|
|
13
|
+
title?: {
|
|
14
|
+
text: string;
|
|
15
|
+
badges?: { id: string }; // Dynamic badges override ID
|
|
16
|
+
};
|
|
17
|
+
subtitle?: {
|
|
18
|
+
text: string;
|
|
19
|
+
id?: string; // Dynamic subtitle override ID
|
|
20
|
+
};
|
|
21
|
+
layout?: {
|
|
22
|
+
main: CardLayout[];
|
|
23
|
+
sidebar?: CardLayout[];
|
|
24
|
+
};
|
|
25
|
+
actions?: EntityPageActions; // See Action Rules
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
interface CardLayout {
|
|
30
|
+
type: 'card';
|
|
31
|
+
card: {
|
|
32
|
+
title?: { text: string };
|
|
33
|
+
children: LayoutContent[];
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
type LayoutContent = | { type: 'field'; field: { fieldId: string; span?: number } } | { type: 'container'; container: { children: LayoutContent[]; span?: number } } | { type: 'component'; component: { componentId: string; span?: number } };
|
|
38
|
+
|
|
39
|
+
// Override Types
|
|
40
|
+
type EntityPageHeaderSubtitle = (entity: any) => { text: string };
|
|
41
|
+
type EntityPageHeaderBadges = (entity: any) => {
|
|
42
|
+
text: string;
|
|
43
|
+
skin?: 'success' | 'warning' | 'destructive' | 'neutral' | 'premium';
|
|
44
|
+
prefixIcon?: ReactElement;
|
|
45
|
+
suffixIcon?: ReactElement;
|
|
46
|
+
}[];
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Validation Logic
|
|
50
|
+
- **IF** `mode` is undefined **THEN** defaults to `'edit'`.
|
|
51
|
+
- **IF** `mode: 'edit'` **THEN** only `moreActions` supported.
|
|
52
|
+
- **IF** `mode: 'view'` **THEN** `primaryActions`, `secondaryActions`, `moreActions` supported.
|
|
53
|
+
- **IF** `badges.id` defined **THEN** implementation MUST return array of badge objects.
|
|
54
|
+
- **IF** `subtitle.id` defined **THEN** implementation MUST return `{ text: string }`.
|
|
55
|
+
|
|
56
|
+
## Implementation Rules
|
|
57
|
+
- **MUST** use route format `/[segment]/:entityId` (NEVER `/:entityId`).
|
|
58
|
+
- **MUST** map dynamic parameter in `route.params` (e.g. `{ id: 'entityId' }`).
|
|
59
|
+
- **MUST** register overrides for `badges` and `subtitle` if IDs are used.
|
|
60
|
+
- **MUST** use 12-column grid system for `span` (wraps if > 12).
|
|
61
|
+
- **SHOULD** put primary info in `main` layout, metadata in `sidebar`.
|
|
62
|
+
- **NEVER** return JSX from badge/subtitle functions (return data objects).
|
|
63
|
+
|
|
64
|
+
## Canonical Example
|
|
65
|
+
```typescript
|
|
66
|
+
// Config
|
|
67
|
+
{
|
|
68
|
+
type: 'entityPage',
|
|
69
|
+
entityPage: {
|
|
70
|
+
mode: 'view',
|
|
71
|
+
route: { path: '/pet/:entityId', params: { id: 'entityId' } },
|
|
72
|
+
parentPageId: 'pets-list',
|
|
73
|
+
collectionId: 'pets',
|
|
74
|
+
entityTypeSource: 'cms',
|
|
75
|
+
title: {
|
|
76
|
+
text: 'Pet Details',
|
|
77
|
+
badges: { id: 'petBadges' }
|
|
78
|
+
},
|
|
79
|
+
layout: {
|
|
80
|
+
main: [{
|
|
81
|
+
type: 'card',
|
|
82
|
+
card: {
|
|
83
|
+
title: { text: 'Info' },
|
|
84
|
+
children: [
|
|
85
|
+
{ type: 'field', field: { fieldId: 'name', span: 6 } },
|
|
86
|
+
{ type: 'field', field: { fieldId: 'age', span: 6 } }
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
}]
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Override Implementation
|
|
95
|
+
export const petBadges = (entity) => ([
|
|
96
|
+
{ text: entity.status, skin: entity.status === 'Active' ? 'success' : 'neutral' }
|
|
97
|
+
]);
|
|
98
|
+
```
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pages": [
|
|
3
|
+
{
|
|
4
|
+
"id": "additional-fees-collection",
|
|
5
|
+
"type": "collectionPage",
|
|
6
|
+
"appMainPage": true,
|
|
7
|
+
"collectionPage": {
|
|
8
|
+
"route": {
|
|
9
|
+
"path": "/"
|
|
10
|
+
},
|
|
11
|
+
"title": {
|
|
12
|
+
"text": "Additional Fees Configuration",
|
|
13
|
+
"hideTotal": false
|
|
14
|
+
},
|
|
15
|
+
"subtitle": {
|
|
16
|
+
"text": "Manage and configure additional fees for checkout"
|
|
17
|
+
},
|
|
18
|
+
"actions": {
|
|
19
|
+
"primaryActions": {
|
|
20
|
+
"type": "action",
|
|
21
|
+
"action": {
|
|
22
|
+
"item": {
|
|
23
|
+
"id": "create-additional-fees",
|
|
24
|
+
"type": "create",
|
|
25
|
+
"label": "Add New Fee",
|
|
26
|
+
"collection": {
|
|
27
|
+
"collectionId": "@mirivo/mirivo-private-app-for-test2011/additional-fees",
|
|
28
|
+
"entityTypeSource": "cms"
|
|
29
|
+
},
|
|
30
|
+
"create": {
|
|
31
|
+
"mode": "page",
|
|
32
|
+
"page": {
|
|
33
|
+
"id": "additional-fees-entity"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"components": [
|
|
41
|
+
{
|
|
42
|
+
"type": "collection",
|
|
43
|
+
"layout": [
|
|
44
|
+
{
|
|
45
|
+
"type": "Table",
|
|
46
|
+
"table": {
|
|
47
|
+
"columns": [
|
|
48
|
+
{
|
|
49
|
+
"id": "feeTitle",
|
|
50
|
+
"name": "Title",
|
|
51
|
+
"width": "200px",
|
|
52
|
+
"sortable": true
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "feeAmount",
|
|
56
|
+
"name": "Amount",
|
|
57
|
+
"width": "100px",
|
|
58
|
+
"sortable": true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "feeType",
|
|
62
|
+
"name": "Type",
|
|
63
|
+
"width": "200px",
|
|
64
|
+
"sortable": true
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "isActive",
|
|
68
|
+
"name": "Active",
|
|
69
|
+
"width": "100px",
|
|
70
|
+
"sortable": true
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"customColumns": {
|
|
74
|
+
"enabled": true
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"entityPageId": "additional-fees-entity",
|
|
80
|
+
"collection": {
|
|
81
|
+
"collectionId": "@mirivo/mirivo-private-app-for-test2011/additional-fees",
|
|
82
|
+
"entityTypeSource": "cms"
|
|
83
|
+
},
|
|
84
|
+
"toolbarTitle": {
|
|
85
|
+
"title": "Additional Fees",
|
|
86
|
+
"subtitle": {
|
|
87
|
+
"text": "Configure fees applied during checkout process"
|
|
88
|
+
},
|
|
89
|
+
"showTotal": true
|
|
90
|
+
},
|
|
91
|
+
"filters": {
|
|
92
|
+
"items": [
|
|
93
|
+
{
|
|
94
|
+
"id": "feeAmount-filter",
|
|
95
|
+
"fieldId": "feeAmount",
|
|
96
|
+
"displayName": "Fee Amount",
|
|
97
|
+
"tagLabel": "Fee Amount",
|
|
98
|
+
"numberConfig": {
|
|
99
|
+
"allowedDecimals": true
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "isActive-filter",
|
|
104
|
+
"fieldId": "isActive",
|
|
105
|
+
"displayName": "Is Active",
|
|
106
|
+
"tagLabel": "Is Active"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
"emptyState": {
|
|
111
|
+
"title": "No Additional Fees Configured",
|
|
112
|
+
"subtitle": "Start by adding your first additional fee for checkout",
|
|
113
|
+
"addNewCta": {
|
|
114
|
+
"id": "create-additional-fees",
|
|
115
|
+
"text": "Create First Fee"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"actionCell": {
|
|
119
|
+
"primaryAction": {
|
|
120
|
+
"item": {
|
|
121
|
+
"id": "edit-additional-fees",
|
|
122
|
+
"type": "update",
|
|
123
|
+
"update": {
|
|
124
|
+
"mode": "page",
|
|
125
|
+
"page": {
|
|
126
|
+
"id": "additional-fees-entity"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"secondaryActions": {
|
|
132
|
+
"items": [
|
|
133
|
+
{
|
|
134
|
+
"id": "delete-additional-fees",
|
|
135
|
+
"type": "delete",
|
|
136
|
+
"label": "Delete",
|
|
137
|
+
"delete": {
|
|
138
|
+
"mode": "modal",
|
|
139
|
+
"modal": {
|
|
140
|
+
"title": {
|
|
141
|
+
"text": "Remove Additional Fee"
|
|
142
|
+
},
|
|
143
|
+
"description": {
|
|
144
|
+
"text": "Are you sure you want to delete this additional fee? This will remove it from future checkouts."
|
|
145
|
+
},
|
|
146
|
+
"feedback": {
|
|
147
|
+
"successToast": {
|
|
148
|
+
"text": "Additional fee deleted successfully"
|
|
149
|
+
},
|
|
150
|
+
"errorToast": {
|
|
151
|
+
"text": "Failed to delete additional fee"
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"bulkActionToolbar": {
|
|
161
|
+
"primaryActions": [
|
|
162
|
+
{
|
|
163
|
+
"type": "action",
|
|
164
|
+
"action": {
|
|
165
|
+
"item": {
|
|
166
|
+
"id": "bulk-delete-additional-fees",
|
|
167
|
+
"type": "bulkDelete",
|
|
168
|
+
"bulkDelete": {
|
|
169
|
+
"mode": "modal",
|
|
170
|
+
"modal": {
|
|
171
|
+
"title": {
|
|
172
|
+
"text": "Remove Multiple Fees"
|
|
173
|
+
},
|
|
174
|
+
"description": {
|
|
175
|
+
"text": "Are you sure you want to delete the selected additional fees? This will remove them from future checkouts."
|
|
176
|
+
},
|
|
177
|
+
"feedback": {
|
|
178
|
+
"successToast": {
|
|
179
|
+
"text": "Selected additional fees deleted successfully"
|
|
180
|
+
},
|
|
181
|
+
"errorToast": {
|
|
182
|
+
"text": "Failed to delete selected additional fees"
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "additional-fees-entity",
|
|
198
|
+
"type": "entityPage",
|
|
199
|
+
"entityPage": {
|
|
200
|
+
"route": {
|
|
201
|
+
"path": "/additional-fee/:entityId",
|
|
202
|
+
"params": {
|
|
203
|
+
"id": "entityId"
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"title": {
|
|
207
|
+
"text": "Fee Details"
|
|
208
|
+
},
|
|
209
|
+
"subtitle": {
|
|
210
|
+
"text": "View and edit additional fee configuration"
|
|
211
|
+
},
|
|
212
|
+
"parentPageId": "additional-fees-collection",
|
|
213
|
+
"layout": {
|
|
214
|
+
"main": [
|
|
215
|
+
{
|
|
216
|
+
"type": "card",
|
|
217
|
+
"card": {
|
|
218
|
+
"title": {
|
|
219
|
+
"text": "Fee Information"
|
|
220
|
+
},
|
|
221
|
+
"subtitle": {
|
|
222
|
+
"text": "Basic details for the additional fee"
|
|
223
|
+
},
|
|
224
|
+
"children": [
|
|
225
|
+
{
|
|
226
|
+
"type": "field",
|
|
227
|
+
"field": {
|
|
228
|
+
"span": 12,
|
|
229
|
+
"fieldId": "feeTitle"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"type": "field",
|
|
234
|
+
"field": {
|
|
235
|
+
"span": 12,
|
|
236
|
+
"fieldId": "feeAmount"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"type": "field",
|
|
241
|
+
"field": {
|
|
242
|
+
"span": 12,
|
|
243
|
+
"fieldId": "feeType"
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
]
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"sidebar": [
|
|
251
|
+
{
|
|
252
|
+
"type": "card",
|
|
253
|
+
"card": {
|
|
254
|
+
"title": {
|
|
255
|
+
"text": "Fee Status"
|
|
256
|
+
},
|
|
257
|
+
"subtitle": {
|
|
258
|
+
"text": "Activation and usage settings"
|
|
259
|
+
},
|
|
260
|
+
"children": [
|
|
261
|
+
{
|
|
262
|
+
"type": "field",
|
|
263
|
+
"field": {
|
|
264
|
+
"span": 12,
|
|
265
|
+
"fieldId": "isActive"
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
"collectionId": "@mirivo/mirivo-private-app-for-test2011/additional-fees",
|
|
274
|
+
"entityTypeSource": "cms"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
]
|
|
278
|
+
}
|