@wix/agent-skills 1.13.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 (250) 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 -244
  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/Footer.astro +0 -27
  157. package/skills/wix-headless/references/astro/templates/Layout.astro +0 -132
  158. package/skills/wix-headless/references/astro/templates/Navigation.astro +0 -38
  159. package/skills/wix-headless/references/astro/templates/astro.config.mjs +0 -41
  160. package/skills/wix-headless/references/astro/templates/bookings/AvailabilityCalendar.tsx +0 -374
  161. package/skills/wix-headless/references/astro/templates/bookings/BookingForm.tsx +0 -136
  162. package/skills/wix-headless/references/astro/templates/bookings/SeoTags.astro +0 -25
  163. package/skills/wix-headless/references/astro/templates/bookings/ServiceBookingFlow.tsx +0 -71
  164. package/skills/wix-headless/references/astro/templates/bookings/ServiceCard.astro +0 -54
  165. package/skills/wix-headless/references/astro/templates/bookings/booking-confirmation.astro +0 -49
  166. package/skills/wix-headless/references/astro/templates/bookings/bookingDriver.ts +0 -245
  167. package/skills/wix-headless/references/astro/templates/bookings/components-bookings.css +0 -424
  168. package/skills/wix-headless/references/astro/templates/bookings/services/[slug].astro +0 -176
  169. package/skills/wix-headless/references/astro/templates/bookings/services/index.astro +0 -181
  170. package/skills/wix-headless/references/astro/templates/ecom/CartBadge.tsx +0 -84
  171. package/skills/wix-headless/references/astro/templates/ecom/CartView.tsx +0 -543
  172. package/skills/wix-headless/references/astro/templates/ecom/cart.astro +0 -13
  173. package/skills/wix-headless/references/astro/templates/ecom/components-ecom.css +0 -302
  174. package/skills/wix-headless/references/astro/templates/ecom/discounts.ts +0 -71
  175. package/skills/wix-headless/references/astro/templates/ecom/thank-you.astro +0 -24
  176. package/skills/wix-headless/references/astro/templates/gift-cards/GiftCardPurchase.tsx +0 -172
  177. package/skills/wix-headless/references/astro/templates/gift-cards/_home-teaser-snippet.astro +0 -42
  178. package/skills/wix-headless/references/astro/templates/gift-cards/_nav-snippet.astro +0 -11
  179. package/skills/wix-headless/references/astro/templates/gift-cards/components-gift-cards.css +0 -220
  180. package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.astro +0 -51
  181. package/skills/wix-headless/references/astro/templates/gift-cards/gift-cards.ts +0 -75
  182. package/skills/wix-headless/references/astro/templates/global.css +0 -288
  183. package/skills/wix-headless/references/astro/templates/index.astro +0 -56
  184. package/skills/wix-headless/references/astro/templates/stores/AddToCartButton.tsx +0 -77
  185. package/skills/wix-headless/references/astro/templates/stores/BackInStockForm.tsx +0 -176
  186. package/skills/wix-headless/references/astro/templates/stores/CategoryRail.astro +0 -69
  187. package/skills/wix-headless/references/astro/templates/stores/ProductCard.astro +0 -79
  188. package/skills/wix-headless/references/astro/templates/stores/ProductPurchase.tsx +0 -397
  189. package/skills/wix-headless/references/astro/templates/stores/SeoTags.astro +0 -21
  190. package/skills/wix-headless/references/astro/templates/stores/back-in-stock.ts +0 -67
  191. package/skills/wix-headless/references/astro/templates/stores/categories.ts +0 -155
  192. package/skills/wix-headless/references/astro/templates/stores/category/[slug].astro +0 -130
  193. package/skills/wix-headless/references/astro/templates/stores/components-stores.css +0 -400
  194. package/skills/wix-headless/references/astro/templates/stores/products/[slug].astro +0 -128
  195. package/skills/wix-headless/references/astro/templates/stores/products/index.astro +0 -101
  196. package/skills/wix-headless/references/blog/BLOG_CONTENT.md +0 -161
  197. package/skills/wix-headless/references/blog/INSTRUCTIONS.md +0 -32
  198. package/skills/wix-headless/references/bookings/FLOW.md +0 -246
  199. package/skills/wix-headless/references/bookings/INSTRUCTIONS.md +0 -95
  200. package/skills/wix-headless/references/bookings/SERVICES_DATA.md +0 -355
  201. package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +0 -176
  202. package/skills/wix-headless/references/cms/INSTRUCTIONS.md +0 -71
  203. package/skills/wix-headless/references/commands/known-apps.json +0 -6
  204. package/skills/wix-headless/references/custom/CONNECTION_PLAN.md +0 -142
  205. package/skills/wix-headless/references/custom/INSTRUCTIONS.md +0 -88
  206. package/skills/wix-headless/references/custom/blog/WIRING.md +0 -52
  207. package/skills/wix-headless/references/custom/bookings/WIRING.md +0 -197
  208. package/skills/wix-headless/references/custom/cms/WIRING.md +0 -97
  209. package/skills/wix-headless/references/custom/ecom/WIRING.md +0 -67
  210. package/skills/wix-headless/references/custom/forms/WIRING.md +0 -101
  211. package/skills/wix-headless/references/custom/stores/WIRING.md +0 -80
  212. package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +0 -59
  213. package/skills/wix-headless/references/forms/INSTRUCTIONS.md +0 -43
  214. package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +0 -51
  215. package/skills/wix-headless/references/images/INSTRUCTIONS.md +0 -357
  216. package/skills/wix-headless/references/seed-recipes.md +0 -49
  217. package/skills/wix-headless/references/shared/AGENTS_MD.md +0 -47
  218. package/skills/wix-headless/references/shared/AUTHENTICATION.md +0 -108
  219. package/skills/wix-headless/references/shared/BUILD_NOISE.md +0 -8
  220. package/skills/wix-headless/references/shared/DESIGN_MD.md +0 -84
  221. package/skills/wix-headless/references/shared/DOCS_SEARCH.md +0 -41
  222. package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +0 -186
  223. package/skills/wix-headless/references/shared/IMPLEMENTER.md +0 -206
  224. package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +0 -97
  225. package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +0 -143
  226. package/skills/wix-headless/references/shared/STYLING.md +0 -141
  227. package/skills/wix-headless/references/stores/INSTRUCTIONS.md +0 -126
  228. package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +0 -252
  229. package/skills/wix-headless/references/verticals/_schema.json +0 -74
  230. package/skills/wix-headless/references/verticals/_schema.md +0 -95
  231. package/skills/wix-headless/references/verticals/blog.md +0 -31
  232. package/skills/wix-headless/references/verticals/bookings.md +0 -41
  233. package/skills/wix-headless/references/verticals/cms.md +0 -30
  234. package/skills/wix-headless/references/verticals/ecom.md +0 -25
  235. package/skills/wix-headless/references/verticals/forms.md +0 -26
  236. package/skills/wix-headless/references/verticals/gift-cards.md +0 -24
  237. package/skills/wix-headless/references/verticals/stores.md +0 -33
  238. package/skills/wix-headless/scripts/check-manifest.mjs +0 -335
  239. package/skills/wix-headless/scripts/compose.mjs +0 -525
  240. package/skills/wix-headless/scripts/emit-design-tokens.mjs +0 -157
  241. package/skills/wix-headless/scripts/flatten.sh +0 -61
  242. package/skills/wix-headless/scripts/generate-images.mjs +0 -242
  243. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +0 -148
  244. package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +0 -190
  245. package/skills/wix-headless/scripts/scaffold.sh +0 -139
  246. package/skills/wix-headless/scripts/seed-utilities.sh +0 -93
  247. package/skills/wix-headless/scripts/write-decorative-json.mjs +0 -62
  248. package/skills/wix-headless/shared-utilities/analytics.ts +0 -40
  249. package/skills/wix-headless/shared-utilities/ricos.ts +0 -179
  250. 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
+