@wix/agent-skills 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/README.md +4 -1
  2. package/package.json +1 -1
  3. package/skills/README.md +23 -0
  4. package/skills/wix-app/SKILL.md +10 -2
  5. package/skills/wix-app/references/AUTO_PATTERNS_DASHBOARD.md +326 -0
  6. package/skills/wix-app/references/CODE_QUALITY.md +1 -0
  7. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +124 -115
  8. package/skills/wix-app/references/DASHBOARD_PAGE.md +3 -0
  9. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +23 -9
  10. package/skills/wix-app/references/SITE_PLUGIN.md +1 -1
  11. package/skills/wix-app/references/auto-patterns-dashboard/action-cell.md +115 -0
  12. package/skills/wix-app/references/auto-patterns-dashboard/app-config-structure.md +264 -0
  13. package/skills/wix-app/references/auto-patterns-dashboard/app-context.md +37 -0
  14. package/skills/wix-app/references/auto-patterns-dashboard/bulk-actions.md +86 -0
  15. package/skills/wix-app/references/auto-patterns-dashboard/collection-page-actions.md +119 -0
  16. package/skills/wix-app/references/auto-patterns-dashboard/collection-page.md +103 -0
  17. package/skills/wix-app/references/auto-patterns-dashboard/custom-actions-override.md +76 -0
  18. package/skills/wix-app/references/auto-patterns-dashboard/custom-columns-override.md +82 -0
  19. package/skills/wix-app/references/auto-patterns-dashboard/custom-components-override.md +89 -0
  20. package/skills/wix-app/references/auto-patterns-dashboard/custom-header-override.md +124 -0
  21. package/skills/wix-app/references/auto-patterns-dashboard/custom-sections-override.md +91 -0
  22. package/skills/wix-app/references/auto-patterns-dashboard/custom-slots-override.md +71 -0
  23. package/skills/wix-app/references/auto-patterns-dashboard/entity-page-actions.md +70 -0
  24. package/skills/wix-app/references/auto-patterns-dashboard/entity-page-view-actions.md +73 -0
  25. package/skills/wix-app/references/auto-patterns-dashboard/entity-page.md +98 -0
  26. package/skills/wix-app/references/auto-patterns-dashboard/example-patterns.json +278 -0
  27. package/skills/wix-app/references/auto-patterns-dashboard/pages-configuration.md +94 -0
  28. package/skills/wix-app/references/auto-patterns-dashboard/resolved-action.md +43 -0
  29. package/skills/wix-app/references/auto-patterns-dashboard/sdk-utilities.md +66 -0
  30. package/skills/wix-app/references/auto-patterns-dashboard/views.md +76 -0
  31. package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +1 -14
  32. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +54 -29
  33. package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +2 -2
  34. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +17 -105
  35. package/skills/wix-app/references/editor-react-component/DESIGN-STATES.md +127 -0
  36. package/skills/wix-app/references/editor-react-component/PARTS.md +2 -1
  37. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +15 -15
  38. package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +25 -53
  39. package/skills/wix-app/scripts/generate-auto-patterns.js +510 -0
  40. package/skills/wix-auth/SKILL.md +12 -0
  41. package/skills/wix-auth/references/device-flow.md +140 -0
  42. package/skills/wix-docs/SKILL.md +188 -0
  43. package/skills/wix-docs/references/API_SPEC_SEARCH.md +213 -0
  44. package/skills/wix-docs/references/EXTRACTING.md +120 -0
  45. package/skills/wix-headless/SKILL.md +84 -130
  46. package/skills/wix-headless/entry/bootstrap.mjs +93 -0
  47. package/skills/wix-headless/entry/skill.md +78 -0
  48. package/skills/wix-headless/references/AI_FEATURES.md +178 -0
  49. package/skills/wix-headless/references/CAPABILITIES.md +84 -0
  50. package/skills/wix-headless/references/DISCOVERY.md +34 -56
  51. package/skills/wix-headless/references/DOC_DISCOVERY.md +37 -0
  52. package/skills/wix-headless/references/FEEDBACK.md +118 -0
  53. package/skills/wix-headless/references/IMAGE_GENERATION.md +69 -0
  54. package/skills/wix-headless/references/SDK_HANDOFF.md +97 -0
  55. package/skills/wix-headless/references/SEED.md +44 -188
  56. package/skills/wix-headless/references/SETUP.md +32 -103
  57. package/skills/wix-headless/references/astro.md +98 -0
  58. package/skills/wix-headless/references/inline-recipes/how-to-code-a-blog.md +196 -0
  59. package/skills/wix-headless/references/inline-recipes/how-to-code-a-store.md +236 -0
  60. package/skills/wix-headless/references/inline-recipes/how-to-code-bookings.md +279 -0
  61. package/skills/wix-headless/references/inline-recipes/how-to-code-cms.md +163 -0
  62. package/skills/wix-headless/references/inline-recipes/how-to-code-events.md +203 -0
  63. package/skills/wix-headless/references/inline-recipes/how-to-code-forms.md +222 -0
  64. package/skills/wix-headless/references/inline-recipes/how-to-code-members-astro.md +124 -0
  65. package/skills/wix-headless/references/inline-recipes/how-to-code-members-custom-login.md +160 -0
  66. package/skills/wix-headless/references/inline-recipes/how-to-code-members-non-astro.md +118 -0
  67. package/skills/wix-headless/references/inline-recipes/how-to-code-portfolio.md +132 -0
  68. package/skills/wix-headless/references/inline-recipes/how-to-code-pricing-plans.md +124 -0
  69. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-orders.md +188 -0
  70. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurant-reservations.md +173 -0
  71. package/skills/wix-headless/references/inline-recipes/how-to-code-restaurants.md +161 -0
  72. package/skills/wix-headless/references/inline-recipes/setup-blog.md +175 -0
  73. package/skills/wix-headless/references/inline-recipes/setup-bookings.md +228 -0
  74. package/skills/wix-headless/references/inline-recipes/setup-cms.md +200 -0
  75. package/skills/wix-headless/references/inline-recipes/setup-events.md +196 -0
  76. package/skills/wix-headless/references/inline-recipes/setup-forms.md +174 -0
  77. package/skills/wix-headless/references/inline-recipes/setup-online-store.md +176 -0
  78. package/skills/wix-headless/references/inline-recipes/setup-portfolio.md +153 -0
  79. package/skills/wix-headless/references/inline-recipes/setup-pricing-plans.md +229 -0
  80. package/skills/wix-headless/references/inline-recipes/setup-restaurant-orders.md +161 -0
  81. package/skills/wix-headless/references/inline-recipes/setup-restaurant-reservations.md +117 -0
  82. package/skills/wix-headless/references/inline-recipes/setup-restaurants.md +152 -0
  83. package/skills/wix-headless/references/managed/AUTHENTICATION.md +57 -0
  84. package/skills/wix-headless/references/managed/CONNECT.md +74 -0
  85. package/skills/wix-headless/references/managed/CREATE.md +130 -0
  86. package/skills/wix-headless/references/managed/DEPLOYMENT.md +57 -0
  87. package/skills/wix-headless/references/non-astro.md +59 -0
  88. package/skills/wix-headless/references/self-managed/AUTHENTICATION.md +22 -0
  89. package/skills/wix-headless/references/self-managed/DEPLOYMENT.md +7 -0
  90. package/skills/wix-headless/references/stripe/AUTHENTICATION.md +55 -0
  91. package/skills/wix-headless/references/stripe/DEPLOYMENT.md +63 -0
  92. package/skills/wix-manage/SKILL.md +24 -1
  93. package/skills/wix-manage/references/analytics/query-site-analytics.md +241 -0
  94. package/skills/wix-manage/references/bookings/create-and-update-booking-services.md +1 -1
  95. package/skills/wix-manage/references/bookings/diagnose-availability-issues.md +265 -0
  96. package/skills/wix-manage/references/marketing/create-and-publish-social-post.md +436 -0
  97. package/skills/wix-manage/references/marketing/generate-and-publish-marketing-plan.md +209 -0
  98. package/skills/wix-manage/references/rich-content/author-ricos-rich-content.md +249 -0
  99. package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +51 -0
  100. package/skills/wix-vibe-headless/SKILL.md +136 -0
  101. package/skills/wix-vibe-headless/references/blog/INSTRUCTIONS.md +128 -0
  102. package/skills/wix-vibe-headless/references/blog/wix-blog.js +217 -0
  103. package/skills/wix-vibe-headless/references/bookings/INSTRUCTIONS.md +153 -0
  104. package/skills/wix-vibe-headless/references/bookings/wix-bookings-checkout.js +147 -0
  105. package/skills/wix-vibe-headless/references/bookings/wix-bookings-services.js +215 -0
  106. package/skills/wix-vibe-headless/references/cms/INSTRUCTIONS.md +154 -0
  107. package/skills/wix-vibe-headless/references/cms/wix-cms.js +186 -0
  108. package/skills/wix-vibe-headless/references/events/INSTRUCTIONS.md +142 -0
  109. package/skills/wix-vibe-headless/references/events/wix-events-browse.js +135 -0
  110. package/skills/wix-vibe-headless/references/events/wix-events-registration.js +187 -0
  111. package/skills/wix-vibe-headless/references/members/INSTRUCTIONS.md +211 -0
  112. package/skills/wix-vibe-headless/references/members/wix-members-auth.js +387 -0
  113. package/skills/wix-vibe-headless/references/portfolio/INSTRUCTIONS.md +111 -0
  114. package/skills/wix-vibe-headless/references/portfolio/wix-portfolio.js +194 -0
  115. package/skills/wix-vibe-headless/references/pricing-plans/INSTRUCTIONS.md +127 -0
  116. package/skills/wix-vibe-headless/references/pricing-plans/wix-pricing-plans.js +157 -0
  117. package/skills/wix-vibe-headless/references/restaurants/INSTRUCTIONS.md +138 -0
  118. package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-menu.js +224 -0
  119. package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-ordering.js +156 -0
  120. package/skills/wix-vibe-headless/references/restaurants/wix-restaurants-reservations.js +107 -0
  121. package/skills/wix-vibe-headless/references/shared/wix-client.js +186 -0
  122. package/skills/wix-vibe-headless/references/storefront/INSTRUCTIONS.md +155 -0
  123. package/skills/wix-vibe-headless/references/storefront/wix-store-cart.js +147 -0
  124. package/skills/wix-vibe-headless/references/storefront/wix-store-catalog.js +142 -0
  125. package/skills/wix-headless/references/BUILD-astro.md +0 -253
  126. package/skills/wix-headless/references/BUILD-own-build.md +0 -167
  127. package/skills/wix-headless/references/BUILD.md +0 -105
  128. package/skills/wix-headless/references/DESIGN_SYSTEM.md +0 -165
  129. package/skills/wix-headless/references/DISCOVERY-connect.md +0 -55
  130. package/skills/wix-headless/references/DISCOVERY-create.md +0 -238
  131. package/skills/wix-headless/references/PLAN-connect.md +0 -19
  132. package/skills/wix-headless/references/PLAN-create.md +0 -17
  133. package/skills/wix-headless/references/PLAN.md +0 -92
  134. package/skills/wix-headless/references/astro/blog/BLOG_PAGES.md +0 -300
  135. package/skills/wix-headless/references/astro/blog/BLOG_SETUP.md +0 -218
  136. package/skills/wix-headless/references/astro/bookings/COMPONENTS.md +0 -45
  137. package/skills/wix-headless/references/astro/bookings/SERVICES_PAGES.md +0 -77
  138. package/skills/wix-headless/references/astro/cms/CMS_FOUNDATIONS.md +0 -214
  139. package/skills/wix-headless/references/astro/cms/FAQ_KNOWLEDGE_BASE.md +0 -231
  140. package/skills/wix-headless/references/astro/cms/PORTFOLIO.md +0 -453
  141. package/skills/wix-headless/references/astro/cms/RESOURCE_LIBRARY.md +0 -354
  142. package/skills/wix-headless/references/astro/cms/TEAM_DIRECTORY.md +0 -299
  143. package/skills/wix-headless/references/astro/designer/INSTRUCTIONS.md +0 -351
  144. package/skills/wix-headless/references/astro/ecom/CART_PAGES.md +0 -119
  145. package/skills/wix-headless/references/astro/ecom/CART_WIRING.md +0 -103
  146. package/skills/wix-headless/references/astro/ecom/COMPONENTS_CSS.md +0 -132
  147. package/skills/wix-headless/references/astro/forms/CONTACT_FORM.md +0 -463
  148. package/skills/wix-headless/references/astro/gift-cards/COMPONENTS.md +0 -119
  149. package/skills/wix-headless/references/astro/gift-cards/PAGES.md +0 -129
  150. package/skills/wix-headless/references/astro/stores/BACK_IN_STOCK.md +0 -178
  151. package/skills/wix-headless/references/astro/stores/CATEGORY_PAGES.md +0 -85
  152. package/skills/wix-headless/references/astro/stores/COMPONENTS_CSS.md +0 -129
  153. package/skills/wix-headless/references/astro/stores/HOME_AND_NAV.md +0 -229
  154. package/skills/wix-headless/references/astro/stores/PRODUCT_PAGES.md +0 -215
  155. package/skills/wix-headless/references/astro/stores/SHARED_WIRING.md +0 -165
  156. package/skills/wix-headless/references/astro/templates/Layout.astro +0 -132
  157. package/skills/wix-headless/references/astro/templates/astro.config.mjs +0 -41
  158. package/skills/wix-headless/references/astro/templates/bookings/AvailabilityCalendar.tsx +0 -374
  159. package/skills/wix-headless/references/astro/templates/bookings/BookingForm.tsx +0 -136
  160. package/skills/wix-headless/references/astro/templates/bookings/SeoTags.astro +0 -25
  161. package/skills/wix-headless/references/astro/templates/bookings/ServiceBookingFlow.tsx +0 -71
  162. package/skills/wix-headless/references/astro/templates/bookings/ServiceCard.astro +0 -54
  163. package/skills/wix-headless/references/astro/templates/bookings/booking-confirmation.astro +0 -49
  164. package/skills/wix-headless/references/astro/templates/bookings/bookingDriver.ts +0 -245
  165. package/skills/wix-headless/references/astro/templates/bookings/components-bookings.css +0 -424
  166. package/skills/wix-headless/references/astro/templates/bookings/services/[slug].astro +0 -176
  167. package/skills/wix-headless/references/astro/templates/bookings/services/index.astro +0 -181
  168. package/skills/wix-headless/references/astro/templates/ecom/CartBadge.tsx +0 -84
  169. package/skills/wix-headless/references/astro/templates/ecom/CartView.tsx +0 -543
  170. package/skills/wix-headless/references/astro/templates/ecom/cart.astro +0 -13
  171. package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +0 -302
  172. package/skills/wix-headless/references/astro/templates/ecom/discounts.ts +0 -71
  173. package/skills/wix-headless/references/astro/templates/ecom/thank-you.astro +0 -24
  174. package/skills/wix-headless/references/astro/templates/gift-cards/GiftCardPurchase.tsx +0 -172
  175. package/skills/wix-headless/references/astro/templates/gift-cards/_home-teaser-snippet.astro +0 -42
  176. package/skills/wix-headless/references/astro/templates/gift-cards/_nav-snippet.astro +0 -11
  177. package/skills/wix-headless/references/astro/templates/gift-cards/components-gift-cards.css +0 -220
  178. package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.astro +0 -51
  179. package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.ts +0 -75
  180. package/skills/wix-headless/references/astro/templates/global.css +0 -288
  181. package/skills/wix-headless/references/astro/templates/stores/AddToCartButton.tsx +0 -77
  182. package/skills/wix-headless/references/astro/templates/stores/BackInStockForm.tsx +0 -176
  183. package/skills/wix-headless/references/astro/templates/stores/CategoryRail.astro +0 -69
  184. package/skills/wix-headless/references/astro/templates/stores/ProductCard.astro +0 -79
  185. package/skills/wix-headless/references/astro/templates/stores/ProductPurchase.tsx +0 -397
  186. package/skills/wix-headless/references/astro/templates/stores/SeoTags.astro +0 -21
  187. package/skills/wix-headless/references/astro/templates/stores/back-in-stock.ts +0 -67
  188. package/skills/wix-headless/references/astro/templates/stores/categories.ts +0 -155
  189. package/skills/wix-headless/references/astro/templates/stores/category/[slug].astro +0 -130
  190. package/skills/wix-headless/references/astro/templates/stores/components-stores.css +0 -400
  191. package/skills/wix-headless/references/astro/templates/stores/products/[slug].astro +0 -128
  192. package/skills/wix-headless/references/astro/templates/stores/products/index.astro +0 -101
  193. package/skills/wix-headless/references/blog/BLOG_CONTENT.md +0 -161
  194. package/skills/wix-headless/references/blog/INSTRUCTIONS.md +0 -32
  195. package/skills/wix-headless/references/bookings/FLOW.md +0 -246
  196. package/skills/wix-headless/references/bookings/INSTRUCTIONS.md +0 -95
  197. package/skills/wix-headless/references/bookings/SERVICES_DATA.md +0 -355
  198. package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +0 -176
  199. package/skills/wix-headless/references/cms/INSTRUCTIONS.md +0 -71
  200. package/skills/wix-headless/references/commands/known-apps.json +0 -6
  201. package/skills/wix-headless/references/custom/CONNECTION_PLAN.md +0 -142
  202. package/skills/wix-headless/references/custom/INSTRUCTIONS.md +0 -88
  203. package/skills/wix-headless/references/custom/blog/WIRING.md +0 -52
  204. package/skills/wix-headless/references/custom/bookings/WIRING.md +0 -197
  205. package/skills/wix-headless/references/custom/cms/WIRING.md +0 -97
  206. package/skills/wix-headless/references/custom/ecom/WIRING.md +0 -67
  207. package/skills/wix-headless/references/custom/forms/WIRING.md +0 -101
  208. package/skills/wix-headless/references/custom/stores/WIRING.md +0 -80
  209. package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +0 -59
  210. package/skills/wix-headless/references/forms/INSTRUCTIONS.md +0 -43
  211. package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +0 -51
  212. package/skills/wix-headless/references/images/INSTRUCTIONS.md +0 -357
  213. package/skills/wix-headless/references/seed-recipes.md +0 -49
  214. package/skills/wix-headless/references/shared/AGENTS_MD.md +0 -47
  215. package/skills/wix-headless/references/shared/AUTHENTICATION.md +0 -108
  216. package/skills/wix-headless/references/shared/BUILD_NOISE.md +0 -8
  217. package/skills/wix-headless/references/shared/DESIGN_MD.md +0 -84
  218. package/skills/wix-headless/references/shared/DOCS_SEARCH.md +0 -41
  219. package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +0 -186
  220. package/skills/wix-headless/references/shared/IMPLEMENTER.md +0 -206
  221. package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +0 -97
  222. package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +0 -143
  223. package/skills/wix-headless/references/shared/STYLING.md +0 -140
  224. package/skills/wix-headless/references/stores/INSTRUCTIONS.md +0 -126
  225. package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +0 -252
  226. package/skills/wix-headless/references/verticals/_schema.json +0 -74
  227. package/skills/wix-headless/references/verticals/_schema.md +0 -95
  228. package/skills/wix-headless/references/verticals/blog.md +0 -31
  229. package/skills/wix-headless/references/verticals/bookings.md +0 -41
  230. package/skills/wix-headless/references/verticals/cms.md +0 -30
  231. package/skills/wix-headless/references/verticals/ecom.md +0 -25
  232. package/skills/wix-headless/references/verticals/forms.md +0 -26
  233. package/skills/wix-headless/references/verticals/gift-cards.md +0 -24
  234. package/skills/wix-headless/references/verticals/stores.md +0 -33
  235. package/skills/wix-headless/scripts/check-manifest.mjs +0 -335
  236. package/skills/wix-headless/scripts/compose.mjs +0 -520
  237. package/skills/wix-headless/scripts/emit-design-tokens.mjs +0 -157
  238. package/skills/wix-headless/scripts/flatten.sh +0 -61
  239. package/skills/wix-headless/scripts/generate-images.mjs +0 -242
  240. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +0 -154
  241. package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +0 -190
  242. package/skills/wix-headless/scripts/scaffold.sh +0 -139
  243. package/skills/wix-headless/scripts/seed-utilities.sh +0 -93
  244. package/skills/wix-headless/scripts/write-decorative-json.mjs +0 -62
  245. package/skills/wix-headless/shared-utilities/analytics.ts +0 -40
  246. package/skills/wix-headless/shared-utilities/ricos.ts +0 -179
  247. package/skills/wix-headless/shared-utilities/wix-image.ts +0 -72
@@ -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
+ }
@@ -0,0 +1,94 @@
1
+ # Pages Configuration Rules
2
+
3
+ ## Type Definitions
4
+ ```typescript
5
+ interface PageConfig {
6
+ id: string; // Unique ID
7
+ type: 'collectionPage' | 'entityPage';
8
+ appMainPage?: boolean; // EXACTLY ONE page must have true
9
+ }
10
+
11
+ interface CollectionPage extends PageConfig {
12
+ type: 'collectionPage';
13
+ collectionPage: {
14
+ route: { path: '/' };
15
+ components: [{
16
+ entityPageId: string; // REQUIRED: Links to entity page ID
17
+ // ... component config
18
+ }];
19
+ };
20
+ }
21
+
22
+ interface EntityPage extends PageConfig {
23
+ type: 'entityPage';
24
+ entityPage: {
25
+ parentPageId: string; // REQUIRED: Links to collection page ID
26
+ route: {
27
+ path: string; // MUST be '/[segment]/:entityId'
28
+ params: { id: 'entityId' };
29
+ };
30
+ };
31
+ }
32
+
33
+ interface StickyConfig {
34
+ stickyColumns?: number; // Count of columns to stick from left
35
+ columns: Array<{
36
+ reorderDisabled?: boolean; // Recommended for sticky cols
37
+ }>;
38
+ }
39
+ ```
40
+
41
+ ## Validation Logic
42
+ - **IF** `pages` array length != 2 **THEN** Invalid (Must be exactly 2).
43
+ - **IF** `appMainPage: true` count != 1 **THEN** Invalid (Must be exactly 1).
44
+ - **IF** `type: 'entityPage'` **THEN** `route.path` MUST match `/[segment]/:entityId`.
45
+ - **IF** `route.path` is `/:entityId` **THEN** Invalid (Conflict with root).
46
+ - **IF** `stickyColumns` is set **THEN** value must be > 0 AND <= total columns.
47
+
48
+ ## Implementation Rules
49
+ - **MUST** generate exactly one `collectionPage` and one `entityPage`.
50
+ - **MUST** link pages bidirectionally:
51
+ - `collectionPage` references `entityPageId` (in component).
52
+ - `entityPage` references `parentPageId` (in page config).
53
+ - **MUST** use `entityId` as the dynamic parameter name.
54
+ - **MUST** use position-based stickiness (first N columns).
55
+ - **SHOULD** set `reorderDisabled: true` for sticky columns to prevent user breakage.
56
+
57
+ ## Canonical Example
58
+ ```typescript
59
+ [
60
+ {
61
+ id: 'product-list',
62
+ type: 'collectionPage',
63
+ appMainPage: true,
64
+ collectionPage: {
65
+ route: { path: '/' },
66
+ components: [{
67
+ type: 'collection',
68
+ entityPageId: 'product-details', // Link to Entity Page
69
+ layout: [{
70
+ type: 'Table',
71
+ table: {
72
+ stickyColumns: 1,
73
+ columns: [
74
+ { id: 'name', name: 'Name', reorderDisabled: true }, // Sticky & Locked
75
+ { id: 'price', name: 'Price' }
76
+ ]
77
+ }
78
+ }]
79
+ }]
80
+ }
81
+ },
82
+ {
83
+ id: 'product-details',
84
+ type: 'entityPage',
85
+ entityPage: {
86
+ parentPageId: 'product-list', // Link to Collection Page
87
+ route: {
88
+ path: '/product/:entityId', // Correct format
89
+ params: { id: 'entityId' }
90
+ }
91
+ }
92
+ }
93
+ ]
94
+ ```
@@ -0,0 +1,43 @@
1
+ # ResolvedAction Rules
2
+
3
+ ## Type Definitions
4
+ ```typescript
5
+ interface ResolvedAction {
6
+ label: string; // Display text
7
+ icon: IconElement; // React Icon Component
8
+ onClick: () => void; // async handlers compile due to TS void-return bivariance
9
+ biName?: string; // type-optional; project convention is to ALWAYS set it (see Implementation Rules)
10
+ disabled?: boolean;
11
+ hidden?: boolean;
12
+ tooltip?: string;
13
+ skin?: string; // recommended values: 'standard' | 'inverted' | 'premium' | 'dark' | 'destructive'
14
+ }
15
+ ```
16
+
17
+ ## Validation Logic
18
+ - **IF** `disabled` is true **THEN** `tooltip` is **RECOMMENDED**.
19
+ - **IF** implementing a custom action **THEN** return object MUST match `ResolvedAction`.
20
+ - **IF** `biName` is provided **THEN** value MUST match configuration `biName`.
21
+
22
+ ## Implementation Rules
23
+ - **MUST** include `label`, `icon`, `onClick`, and `biName`.
24
+ - **MUST** use valid icon element (e.g. `<Icon />`).
25
+ - **MUST** handle async `onClick` operations properly (use try/catch or SDK helpers).
26
+ - **SHOULD** use `hidden` for permission checks.
27
+ - **SHOULD** use `skin="destructive"` for delete/dangerous actions.
28
+
29
+ ## Canonical Example
30
+ ```typescript
31
+ // Resolver Function Return Value
32
+ return {
33
+ label: 'Export',
34
+ icon: <Download />,
35
+ biName: 'export-action',
36
+ onClick: async () => {
37
+ // Action logic
38
+ },
39
+ disabled: !hasData,
40
+ tooltip: !hasData ? 'No data to export' : undefined,
41
+ skin: 'standard'
42
+ };
43
+ ```
@@ -0,0 +1,66 @@
1
+ # SDK Utilities Rules
2
+
3
+ ## Type Definitions
4
+ ```typescript
5
+ interface AutoPatternsSDK {
6
+ closeModal: () => void;
7
+ getOptimisticActions: (collectionId: string) => OptimisticActions;
8
+ getSchema: (collectionId: string) => SchemaConfig | undefined;
9
+ refreshCollection: () => void;
10
+ collectionId: string;
11
+ }
12
+
13
+ interface OptimisticActions {
14
+ createOne: (item: any, params: OptimisticParams) => void;
15
+ createMany: (items: any[], params: OptimisticParams) => void;
16
+ updateOne: (item: any, params: OptimisticParams) => void;
17
+ updateMany: (items: any[], params: OptimisticParams) => void;
18
+ updateAll: (transformFn: (item: any) => Partial<any>, params: OptimisticParams) => void;
19
+ deleteOne: (item: any, params: DeleteParams) => void;
20
+ deleteMany: (items: any[], params: DeleteParams) => void;
21
+ deleteAll: (params: DeleteParams) => void;
22
+ }
23
+
24
+ interface OptimisticParams {
25
+ submit: (items: any[]) => Promise<any>;
26
+ successToast: string | ToastConfig;
27
+ errorToast: (error: Error, actions: { retry: () => void }) => string | ToastConfig;
28
+ }
29
+
30
+ type DeleteParams = OptimisticParams & { showUndoToast: true };
31
+
32
+ interface ToastConfig {
33
+ message: string; // Must use 'message' (not 'text')
34
+ action?: { text: string; onClick: () => void };
35
+ }
36
+ ```
37
+
38
+ ## Validation Logic
39
+ - **IF** using `delete*` operations **THEN** `showUndoToast: true` is **REQUIRED**.
40
+ - **IF** returning `ToastConfig` **THEN** use `message` property (NOT `text`).
41
+ - **IF** using schema in submit **THEN** check `schema` existence first (can be undefined).
42
+
43
+ ## Implementation Rules
44
+ - **MUST** use `optimisticActions` for data mutations (create/update/delete).
45
+ - **MUST** handle async submit failures in `errorToast`.
46
+ - **MUST** use `sdk.collectionId` for current context.
47
+ - **NEVER** use OptimisticActions for read-only operations.
48
+
49
+ ## Canonical Example
50
+ ```typescript
51
+ const optimisticActions = sdk.getOptimisticActions(sdk.collectionId);
52
+ const schema = sdk.getSchema(sdk.collectionId);
53
+
54
+ optimisticActions.updateOne(item, {
55
+ submit: async (items) => {
56
+ // Check schema existence
57
+ if (!schema) return items[0];
58
+ return await schema.actions.update(items[0]);
59
+ },
60
+ successToast: 'Item updated successfully',
61
+ errorToast: (err, { retry }) => ({
62
+ message: 'Update failed', // Use 'message'
63
+ action: { text: 'Retry', onClick: retry }
64
+ })
65
+ });
66
+ ```
@@ -0,0 +1,76 @@
1
+ # Views Configuration Rules
2
+
3
+ ## Type Definitions
4
+ ```typescript
5
+ interface ViewsConfig {
6
+ enabled?: boolean;
7
+ presets?: ViewsPreset | CategoriesPreset;
8
+ saveViewModalProps?: { placeholderName?: string; learnMore?: { url?: string } };
9
+ viewsDropdownProps?: {
10
+ showTotal?: boolean;
11
+ hideAllItemsView?: boolean;
12
+ customAllItemsViewLabel?: string;
13
+ };
14
+ }
15
+
16
+ interface ViewsPreset {
17
+ type: 'views';
18
+ views: PresetView[];
19
+ }
20
+
21
+ interface CategoriesPreset {
22
+ type: 'categories';
23
+ categories: {
24
+ id: string;
25
+ label: string;
26
+ views: PresetView[];
27
+ icon?: { tooltipContent: string; size?: 'small' | 'medium' };
28
+ }[];
29
+ }
30
+
31
+ interface PresetView {
32
+ id: string; // Forbidden: predefined-views, saved-views, all-items-view
33
+ label: string;
34
+ isDefaultView?: boolean;
35
+ columnPreferences?: { id: string; direction?: 'asc' | 'desc'; show?: boolean }[];
36
+ filters?: Record<string, AutoFilterValue>; // Key matches filter config ID
37
+ }
38
+ ```
39
+
40
+ ## Validation Logic
41
+ - **IF** `views.enabled` is false **THEN** all other settings ignored.
42
+ - **IF** controlling columns in views **THEN** `table.customColumns.enabled` MUST be true.
43
+ - **IF** setting `columnPreferences` **THEN** must list ALL visible columns if reordering/hiding.
44
+ - **IF** setting filters **THEN** keys MUST match defined filter IDs.
45
+
46
+ ## Implementation Rules
47
+ - **MUST** set `enabled: true` to activate.
48
+ - **MUST** use valid filter structures (Date/Number/Boolean/Enum/Reference) matching `AppConfig`.
49
+ - **MUST** avoid reserved IDs (`predefined-views`, `saved-views`, `all-items-view`).
50
+ - **SHOULD** set `isDefaultView: true` on exactly one preset if default override needed.
51
+
52
+ ## Canonical Example
53
+ ```typescript
54
+ views: {
55
+ enabled: true,
56
+ presets: {
57
+ type: 'categories',
58
+ categories: [{
59
+ id: 'status-cat',
60
+ label: 'By Status',
61
+ views: [{
62
+ id: 'active-items',
63
+ label: 'Active Only',
64
+ isDefaultView: true,
65
+ filters: {
66
+ 'status-filter': { filterType: 'boolean', value: [{ id: 'checked', name: 'Active' }] }
67
+ },
68
+ columnPreferences: [
69
+ { id: 'name', show: true },
70
+ { id: 'status', show: true, direction: 'asc' }
71
+ ]
72
+ }]
73
+ }]
74
+ }
75
+ }
76
+ ```
@@ -13,20 +13,6 @@ Rules and patterns for ARIA accessibility support in Editor React components.
13
13
  - The `A11y` type includes: `ariaLabel`, `ariaDescribedBy`, `ariaLabelledBy`, `role`, `ariaHidden`, `ariaLive`, and all other ARIA attributes.
14
14
  - Users provide ARIA values through the `a11y` prop: `<Component a11y={{ ariaLabel: "..." }} />`
15
15
 
16
- ### Stable IDs for Element Relationships
17
-
18
- ARIA relationships (`aria-controls`, `aria-labelledby`, `aria-describedby`) and `htmlFor` need element ids. Generate them with `useStableId` from `@wix/react-component-utils` — passing the `id` prop as the override — never `Math.random()`, a manual counter, or a bare `React.useId()` (those break SSR/hydration). See [`SSR.md`](SSR.md) for the full rule.
19
-
20
- ```tsx
21
- import { useStableId } from '@wix/react-component-utils';
22
-
23
- const rootId = useStableId(id);
24
- const panelId = `${rootId}-panel`;
25
-
26
- <button aria-controls={panelId}>{label}</button>
27
- <div id={panelId} role="tabpanel">{content}</div>
28
- ```
29
-
30
16
  ### ARIA Label Rules
31
17
 
32
18
  ARIA labels are user-facing content and must NEVER be hardcoded as string literals in JSX.
@@ -150,3 +136,4 @@ export interface TabsProps {
150
136
  ```
151
137
 
152
138
  **Why:** The `A11y` type from `@wix/editor-react-types` provides a standardized way to handle ALL ARIA attributes (ariaLabel, ariaDescribedBy, ariaLabelledBy, role, ariaHidden, ariaLive, etc.). Individual ARIA props fragment the API and make it harder to use.
139
+