@wix/agent-skills 1.26.0 → 1.28.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 (816) hide show
  1. package/README.md +1 -0
  2. package/package.json +1 -1
  3. package/skills/wix-app/SKILL.md +8 -6
  4. package/skills/wix-app/references/APP_VALIDATION.md +5 -1
  5. package/skills/wix-app/references/DASHBOARD_PAGE.md +1 -1
  6. package/skills/wix-app/references/SDK_MODULE_MAP.md +1 -1
  7. package/skills/wix-app/references/dashboard-page/DRAFT_TEMPLATE.md +14 -2
  8. package/skills/wix-app/references/dashboard-page/UX_SUCCESS_MODEL.md +4 -5
  9. package/skills/wix-app/references/stores/GET_PRODUCT.md +9 -1
  10. package/skills/wix-app/references/stores/INVENTORY.md +2 -0
  11. package/skills/wix-app/references/stores/QUERY.md +2 -2
  12. package/skills/wix-app/references/stores/WRITE.md +1 -1
  13. package/skills/wix-headless-kit/SKILL.md +35 -14
  14. package/skills/wix-headless-kit/guides/existing-site.md +12 -5
  15. package/skills/wix-headless-kit/guides/no-machine.md +115 -0
  16. package/skills/wix-headless-kit/install/attach.mjs +60 -13
  17. package/skills/wix-headless-kit/install/bootstrap.mjs +3 -1
  18. package/skills/wix-headless-kit/install/check.mjs +5 -5
  19. package/skills/wix-headless-kit/install/context.mjs +4 -2
  20. package/skills/wix-headless-kit/install/deploy.mjs +11 -5
  21. package/skills/wix-headless-kit/install/pins.json +8 -0
  22. package/skills/wix-headless-kit/install/setup.mjs +10 -8
  23. package/skills/wix-headless-kit/install/templates.mjs +39 -25
  24. package/skills/wix-headless-templates/SKILL.md +43 -0
  25. package/skills/wix-headless-templates/blank/project/README.md +15 -0
  26. package/skills/wix-headless-templates/blank/project/astro.config.mjs +20 -0
  27. package/skills/wix-headless-templates/blank/project/package.json +34 -0
  28. package/skills/wix-headless-templates/blank/project/public/favicon.svg +9 -0
  29. package/skills/wix-headless-templates/blank/project/src/assets/astro.svg +1 -0
  30. package/skills/wix-headless-templates/blank/project/src/assets/background.svg +1 -0
  31. package/skills/wix-headless-templates/blank/project/src/assets/wix.svg +18 -0
  32. package/skills/wix-headless-templates/blank/project/src/components/Hero.astro +77 -0
  33. package/skills/wix-headless-templates/blank/project/src/components/Welcome.astro +95 -0
  34. package/skills/wix-headless-templates/blank/project/src/layouts/Layout.astro +22 -0
  35. package/skills/wix-headless-templates/blank/project/src/pages/index.astro +8 -0
  36. package/skills/wix-headless-templates/blank/project/tsconfig.json +5 -0
  37. package/skills/wix-headless-templates/blog/INSTRUCTIONS.md +418 -0
  38. package/skills/wix-headless-templates/blog/app/components/blog/BlogFeedView.tsx +191 -0
  39. package/skills/wix-headless-templates/blog/app/components/blog/CommentsView.tsx +206 -0
  40. package/skills/wix-headless-templates/blog/app/components/blog/PostLikeButton.tsx +62 -0
  41. package/skills/wix-headless-templates/blog/app/components/blog/PostView.tsx +139 -0
  42. package/skills/wix-headless-templates/blog/app/components/blog/RichContent.tsx +42 -0
  43. package/skills/wix-headless-templates/blog/app/hooks/blog/useBlogFeed.ts +31 -0
  44. package/skills/wix-headless-templates/blog/app/hooks/blog/useComments.ts +26 -0
  45. package/skills/wix-headless-templates/blog/app/hooks/blog/usePost.ts +25 -0
  46. package/skills/wix-headless-templates/blog/app/wix/blog/authors-core.ts +51 -0
  47. package/skills/wix-headless-templates/blog/app/wix/blog/authors.ts +50 -0
  48. package/skills/wix-headless-templates/blog/app/wix/blog/blog-feed-store.ts +156 -0
  49. package/skills/wix-headless-templates/blog/app/wix/blog/comments-core.ts +189 -0
  50. package/skills/wix-headless-templates/blog/app/wix/blog/comments-store.ts +214 -0
  51. package/skills/wix-headless-templates/blog/app/wix/blog/comments.ts +84 -0
  52. package/skills/wix-headless-templates/blog/app/wix/blog/post-likes.ts +42 -0
  53. package/skills/wix-headless-templates/blog/app/wix/blog/post-store.ts +158 -0
  54. package/skills/wix-headless-templates/blog/app/wix/blog/posts-core.ts +347 -0
  55. package/skills/wix-headless-templates/blog/app/wix/blog/posts.ts +132 -0
  56. package/skills/wix-headless-templates/blog/app/wix/blog/taxonomy-core.ts +80 -0
  57. package/skills/wix-headless-templates/blog/app/wix/blog/taxonomy.ts +78 -0
  58. package/skills/wix-headless-templates/blog/app/wix/blog/types.ts +161 -0
  59. package/skills/wix-headless-templates/blog/app-astro/layouts/SiteLayout.astro +44 -0
  60. package/skills/wix-headless-templates/blog/app-astro/pages/blog/[...slug].astro +148 -0
  61. package/skills/wix-headless-templates/blog/app-astro/pages/blog/category/[slug].astro +97 -0
  62. package/skills/wix-headless-templates/blog/app-astro/pages/blog/tag/[slug].astro +51 -0
  63. package/skills/wix-headless-templates/blog/app-astro/pages/blog.astro +34 -0
  64. package/skills/wix-headless-templates/blog/project/README.md +15 -0
  65. package/skills/wix-headless-templates/blog/project/astro.config.mjs +22 -0
  66. package/skills/wix-headless-templates/blog/project/package-lock.json +14699 -0
  67. package/skills/wix-headless-templates/blog/project/package.json +39 -0
  68. package/skills/wix-headless-templates/blog/project/public/favicon.svg +9 -0
  69. package/skills/wix-headless-templates/blog/project/src/assets/astro.svg +1 -0
  70. package/skills/wix-headless-templates/blog/project/src/assets/background.svg +1 -0
  71. package/skills/wix-headless-templates/blog/project/src/assets/wix.svg +18 -0
  72. package/skills/wix-headless-templates/blog/project/src/components/Hero.astro +77 -0
  73. package/skills/wix-headless-templates/blog/project/src/components/Welcome.astro +95 -0
  74. package/skills/wix-headless-templates/blog/project/src/components/blog/BlogFeedView.tsx +191 -0
  75. package/skills/wix-headless-templates/blog/project/src/components/blog/CommentsView.tsx +206 -0
  76. package/skills/wix-headless-templates/blog/project/src/components/blog/PostLikeButton.tsx +62 -0
  77. package/skills/wix-headless-templates/blog/project/src/components/blog/PostView.tsx +139 -0
  78. package/skills/wix-headless-templates/blog/project/src/components/blog/RichContent.tsx +42 -0
  79. package/skills/wix-headless-templates/blog/project/src/hooks/blog/useBlogFeed.ts +31 -0
  80. package/skills/wix-headless-templates/blog/project/src/hooks/blog/useComments.ts +26 -0
  81. package/skills/wix-headless-templates/blog/project/src/hooks/blog/usePost.ts +25 -0
  82. package/skills/wix-headless-templates/blog/project/src/layouts/Layout.astro +22 -0
  83. package/skills/wix-headless-templates/blog/project/src/layouts/SiteLayout.astro +44 -0
  84. package/skills/wix-headless-templates/blog/project/src/pages/blog/[...slug].astro +148 -0
  85. package/skills/wix-headless-templates/blog/project/src/pages/blog/category/[slug].astro +97 -0
  86. package/skills/wix-headless-templates/blog/project/src/pages/blog/tag/[slug].astro +51 -0
  87. package/skills/wix-headless-templates/blog/project/src/pages/blog.astro +34 -0
  88. package/skills/wix-headless-templates/blog/project/src/pages/index.astro +8 -0
  89. package/skills/wix-headless-templates/blog/project/src/styles/global.css +57 -0
  90. package/skills/wix-headless-templates/blog/project/src/wix/blog/authors-core.ts +51 -0
  91. package/skills/wix-headless-templates/blog/project/src/wix/blog/authors.ts +50 -0
  92. package/skills/wix-headless-templates/blog/project/src/wix/blog/blog-feed-store.ts +156 -0
  93. package/skills/wix-headless-templates/blog/project/src/wix/blog/comments-core.ts +189 -0
  94. package/skills/wix-headless-templates/blog/project/src/wix/blog/comments-store.ts +214 -0
  95. package/skills/wix-headless-templates/blog/project/src/wix/blog/comments.ts +84 -0
  96. package/skills/wix-headless-templates/blog/project/src/wix/blog/post-likes.ts +42 -0
  97. package/skills/wix-headless-templates/blog/project/src/wix/blog/post-store.ts +158 -0
  98. package/skills/wix-headless-templates/blog/project/src/wix/blog/posts-core.ts +347 -0
  99. package/skills/wix-headless-templates/blog/project/src/wix/blog/posts.ts +132 -0
  100. package/skills/wix-headless-templates/blog/project/src/wix/blog/taxonomy-core.ts +80 -0
  101. package/skills/wix-headless-templates/blog/project/src/wix/blog/taxonomy.ts +78 -0
  102. package/skills/wix-headless-templates/blog/project/src/wix/blog/types.ts +161 -0
  103. package/skills/wix-headless-templates/blog/project/src/wix/config.ts +16 -0
  104. package/skills/wix-headless-templates/blog/project/src/wix/media.ts +106 -0
  105. package/skills/wix-headless-templates/blog/project/src/wix/money.ts +24 -0
  106. package/skills/wix-headless-templates/blog/project/src/wix/sdk.ts +89 -0
  107. package/skills/wix-headless-templates/blog/project/tsconfig.json +5 -0
  108. package/skills/wix-headless-templates/blog/rest/authors.ts +39 -0
  109. package/skills/wix-headless-templates/blog/rest/comments.ts +64 -0
  110. package/skills/wix-headless-templates/blog/rest/post-likes.ts +37 -0
  111. package/skills/wix-headless-templates/blog/rest/posts.ts +123 -0
  112. package/skills/wix-headless-templates/blog/rest/taxonomy.ts +79 -0
  113. package/skills/wix-headless-templates/blog/seed/SEED.md +81 -0
  114. package/skills/wix-headless-templates/blog/seed/read-site.mjs +33 -0
  115. package/skills/wix-headless-templates/blog/seed/seed-blog.mjs +337 -0
  116. package/skills/wix-headless-templates/bookings/INSTRUCTIONS.md +356 -0
  117. package/skills/wix-headless-templates/bookings/app/components/bookings/ServiceBookingView.tsx +369 -0
  118. package/skills/wix-headless-templates/bookings/app/components/bookings/ServicesView.tsx +193 -0
  119. package/skills/wix-headless-templates/bookings/app/hooks/bookings/useBookingFlow.ts +56 -0
  120. package/skills/wix-headless-templates/bookings/app/hooks/bookings/useServices.ts +23 -0
  121. package/skills/wix-headless-templates/bookings/app/wix/bookings/booking-core.ts +614 -0
  122. package/skills/wix-headless-templates/bookings/app/wix/bookings/booking-flow-store.ts +410 -0
  123. package/skills/wix-headless-templates/bookings/app/wix/bookings/booking.ts +227 -0
  124. package/skills/wix-headless-templates/bookings/app/wix/bookings/services-core.ts +366 -0
  125. package/skills/wix-headless-templates/bookings/app/wix/bookings/services-store.ts +213 -0
  126. package/skills/wix-headless-templates/bookings/app/wix/bookings/services.ts +100 -0
  127. package/skills/wix-headless-templates/bookings/app/wix/bookings/types.ts +236 -0
  128. package/skills/wix-headless-templates/bookings/app-astro/layouts/SiteLayout.astro +40 -0
  129. package/skills/wix-headless-templates/bookings/app-astro/pages/services/[slug].astro +81 -0
  130. package/skills/wix-headless-templates/bookings/app-astro/pages/services.astro +40 -0
  131. package/skills/wix-headless-templates/bookings/project/README.md +15 -0
  132. package/skills/wix-headless-templates/bookings/project/astro.config.mjs +22 -0
  133. package/skills/wix-headless-templates/bookings/project/package-lock.json +10546 -0
  134. package/skills/wix-headless-templates/bookings/project/package.json +41 -0
  135. package/skills/wix-headless-templates/bookings/project/public/favicon.svg +9 -0
  136. package/skills/wix-headless-templates/bookings/project/src/assets/astro.svg +1 -0
  137. package/skills/wix-headless-templates/bookings/project/src/assets/background.svg +1 -0
  138. package/skills/wix-headless-templates/bookings/project/src/assets/wix.svg +18 -0
  139. package/skills/wix-headless-templates/bookings/project/src/components/Hero.astro +77 -0
  140. package/skills/wix-headless-templates/bookings/project/src/components/Welcome.astro +95 -0
  141. package/skills/wix-headless-templates/bookings/project/src/components/bookings/ServiceBookingView.tsx +369 -0
  142. package/skills/wix-headless-templates/bookings/project/src/components/bookings/ServicesView.tsx +193 -0
  143. package/skills/wix-headless-templates/bookings/project/src/hooks/bookings/useBookingFlow.ts +56 -0
  144. package/skills/wix-headless-templates/bookings/project/src/hooks/bookings/useServices.ts +23 -0
  145. package/skills/wix-headless-templates/bookings/project/src/layouts/Layout.astro +22 -0
  146. package/skills/wix-headless-templates/bookings/project/src/layouts/SiteLayout.astro +40 -0
  147. package/skills/wix-headless-templates/bookings/project/src/pages/index.astro +8 -0
  148. package/skills/wix-headless-templates/bookings/project/src/pages/services/[slug].astro +81 -0
  149. package/skills/wix-headless-templates/bookings/project/src/pages/services.astro +40 -0
  150. package/skills/wix-headless-templates/bookings/project/src/styles/global.css +57 -0
  151. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/booking-core.ts +614 -0
  152. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/booking-flow-store.ts +410 -0
  153. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/booking.ts +227 -0
  154. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/services-core.ts +366 -0
  155. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/services-store.ts +213 -0
  156. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/services.ts +100 -0
  157. package/skills/wix-headless-templates/bookings/project/src/wix/bookings/types.ts +236 -0
  158. package/skills/wix-headless-templates/bookings/project/src/wix/config.ts +16 -0
  159. package/skills/wix-headless-templates/bookings/project/src/wix/media.ts +106 -0
  160. package/skills/wix-headless-templates/bookings/project/src/wix/money.ts +24 -0
  161. package/skills/wix-headless-templates/bookings/project/src/wix/sdk.ts +89 -0
  162. package/skills/wix-headless-templates/bookings/project/tsconfig.json +5 -0
  163. package/skills/wix-headless-templates/bookings/rest/booking.ts +227 -0
  164. package/skills/wix-headless-templates/bookings/rest/services.ts +94 -0
  165. package/skills/wix-headless-templates/bookings/seed/SEED.md +109 -0
  166. package/skills/wix-headless-templates/bookings/seed/read-site.mjs +28 -0
  167. package/skills/wix-headless-templates/bookings/seed/seed-bookings.mjs +407 -0
  168. package/skills/wix-headless-templates/cms/INSTRUCTIONS.md +399 -0
  169. package/skills/wix-headless-templates/cms/app/hooks/cms/useCollection.ts +82 -0
  170. package/skills/wix-headless-templates/cms/app/hooks/cms/useItem.ts +37 -0
  171. package/skills/wix-headless-templates/cms/app/wix/cms/collection-store.ts +220 -0
  172. package/skills/wix-headless-templates/cms/app/wix/cms/collections-core.ts +41 -0
  173. package/skills/wix-headless-templates/cms/app/wix/cms/collections.ts +28 -0
  174. package/skills/wix-headless-templates/cms/app/wix/cms/item-store.ts +93 -0
  175. package/skills/wix-headless-templates/cms/app/wix/cms/items-core.ts +259 -0
  176. package/skills/wix-headless-templates/cms/app/wix/cms/items.ts +182 -0
  177. package/skills/wix-headless-templates/cms/app/wix/cms/types.ts +138 -0
  178. package/skills/wix-headless-templates/cms/app-astro/layouts/SiteLayout.astro +41 -0
  179. package/skills/wix-headless-templates/cms/project/README.md +15 -0
  180. package/skills/wix-headless-templates/cms/project/astro.config.mjs +22 -0
  181. package/skills/wix-headless-templates/cms/project/package-lock.json +9798 -0
  182. package/skills/wix-headless-templates/cms/project/package.json +37 -0
  183. package/skills/wix-headless-templates/cms/project/public/favicon.svg +9 -0
  184. package/skills/wix-headless-templates/cms/project/src/assets/astro.svg +1 -0
  185. package/skills/wix-headless-templates/cms/project/src/assets/background.svg +1 -0
  186. package/skills/wix-headless-templates/cms/project/src/assets/wix.svg +18 -0
  187. package/skills/wix-headless-templates/cms/project/src/components/Hero.astro +77 -0
  188. package/skills/wix-headless-templates/cms/project/src/components/Welcome.astro +95 -0
  189. package/skills/wix-headless-templates/cms/project/src/hooks/cms/useCollection.ts +82 -0
  190. package/skills/wix-headless-templates/cms/project/src/hooks/cms/useItem.ts +37 -0
  191. package/skills/wix-headless-templates/cms/project/src/layouts/Layout.astro +22 -0
  192. package/skills/wix-headless-templates/cms/project/src/layouts/SiteLayout.astro +41 -0
  193. package/skills/wix-headless-templates/cms/project/src/pages/index.astro +8 -0
  194. package/skills/wix-headless-templates/cms/project/src/styles/global.css +57 -0
  195. package/skills/wix-headless-templates/cms/project/src/wix/cms/collection-store.ts +220 -0
  196. package/skills/wix-headless-templates/cms/project/src/wix/cms/collections-core.ts +41 -0
  197. package/skills/wix-headless-templates/cms/project/src/wix/cms/collections.ts +28 -0
  198. package/skills/wix-headless-templates/cms/project/src/wix/cms/item-store.ts +93 -0
  199. package/skills/wix-headless-templates/cms/project/src/wix/cms/items-core.ts +259 -0
  200. package/skills/wix-headless-templates/cms/project/src/wix/cms/items.ts +182 -0
  201. package/skills/wix-headless-templates/cms/project/src/wix/cms/types.ts +138 -0
  202. package/skills/wix-headless-templates/cms/project/src/wix/config.ts +16 -0
  203. package/skills/wix-headless-templates/cms/project/src/wix/media.ts +106 -0
  204. package/skills/wix-headless-templates/cms/project/src/wix/money.ts +24 -0
  205. package/skills/wix-headless-templates/cms/project/src/wix/sdk.ts +89 -0
  206. package/skills/wix-headless-templates/cms/project/tsconfig.json +5 -0
  207. package/skills/wix-headless-templates/cms/rest/collections.ts +25 -0
  208. package/skills/wix-headless-templates/cms/rest/items.ts +189 -0
  209. package/skills/wix-headless-templates/cms/seed/SEED.md +116 -0
  210. package/skills/wix-headless-templates/cms/seed/read-site.mjs +20 -0
  211. package/skills/wix-headless-templates/cms/seed/seed-cms.mjs +321 -0
  212. package/skills/wix-headless-templates/compose.mjs +83 -0
  213. package/skills/wix-headless-templates/donations/INSTRUCTIONS.md +348 -0
  214. package/skills/wix-headless-templates/donations/app/components/donations/DonateForm.tsx +155 -0
  215. package/skills/wix-headless-templates/donations/app/components/donations/DonationReceipt.tsx +46 -0
  216. package/skills/wix-headless-templates/donations/app/components/donations/GoalProgress.tsx +49 -0
  217. package/skills/wix-headless-templates/donations/app/hooks/donations/useCampaigns.ts +21 -0
  218. package/skills/wix-headless-templates/donations/app/hooks/donations/useDonation.ts +27 -0
  219. package/skills/wix-headless-templates/donations/app/hooks/donations/useDonationReceipt.ts +19 -0
  220. package/skills/wix-headless-templates/donations/app/wix/donations/campaigns-store.ts +59 -0
  221. package/skills/wix-headless-templates/donations/app/wix/donations/campaigns.ts +83 -0
  222. package/skills/wix-headless-templates/donations/app/wix/donations/donate.ts +68 -0
  223. package/skills/wix-headless-templates/donations/app/wix/donations/donation-store.ts +163 -0
  224. package/skills/wix-headless-templates/donations/app/wix/donations/donations-core.ts +465 -0
  225. package/skills/wix-headless-templates/donations/app/wix/donations/receipt-store.ts +55 -0
  226. package/skills/wix-headless-templates/donations/app/wix/donations/types.ts +121 -0
  227. package/skills/wix-headless-templates/donations/app-astro/components/donations/CampaignPage.astro +43 -0
  228. package/skills/wix-headless-templates/donations/app-astro/layouts/SiteLayout.astro +45 -0
  229. package/skills/wix-headless-templates/donations/app-astro/pages/donate/[id].astro +28 -0
  230. package/skills/wix-headless-templates/donations/app-astro/pages/donate/index.astro +51 -0
  231. package/skills/wix-headless-templates/donations/app-astro/pages/donate/thank-you.astro +13 -0
  232. package/skills/wix-headless-templates/donations/project/README.md +15 -0
  233. package/skills/wix-headless-templates/donations/project/astro.config.mjs +22 -0
  234. package/skills/wix-headless-templates/donations/project/package-lock.json +10266 -0
  235. package/skills/wix-headless-templates/donations/project/package.json +39 -0
  236. package/skills/wix-headless-templates/donations/project/public/favicon.svg +9 -0
  237. package/skills/wix-headless-templates/donations/project/src/assets/astro.svg +1 -0
  238. package/skills/wix-headless-templates/donations/project/src/assets/background.svg +1 -0
  239. package/skills/wix-headless-templates/donations/project/src/assets/wix.svg +18 -0
  240. package/skills/wix-headless-templates/donations/project/src/components/Hero.astro +77 -0
  241. package/skills/wix-headless-templates/donations/project/src/components/Welcome.astro +95 -0
  242. package/skills/wix-headless-templates/donations/project/src/components/donations/CampaignPage.astro +43 -0
  243. package/skills/wix-headless-templates/donations/project/src/components/donations/DonateForm.tsx +155 -0
  244. package/skills/wix-headless-templates/donations/project/src/components/donations/DonationReceipt.tsx +46 -0
  245. package/skills/wix-headless-templates/donations/project/src/components/donations/GoalProgress.tsx +49 -0
  246. package/skills/wix-headless-templates/donations/project/src/hooks/donations/useCampaigns.ts +21 -0
  247. package/skills/wix-headless-templates/donations/project/src/hooks/donations/useDonation.ts +27 -0
  248. package/skills/wix-headless-templates/donations/project/src/hooks/donations/useDonationReceipt.ts +19 -0
  249. package/skills/wix-headless-templates/donations/project/src/layouts/Layout.astro +22 -0
  250. package/skills/wix-headless-templates/donations/project/src/layouts/SiteLayout.astro +45 -0
  251. package/skills/wix-headless-templates/donations/project/src/pages/donate/[id].astro +28 -0
  252. package/skills/wix-headless-templates/donations/project/src/pages/donate/index.astro +51 -0
  253. package/skills/wix-headless-templates/donations/project/src/pages/donate/thank-you.astro +13 -0
  254. package/skills/wix-headless-templates/donations/project/src/pages/index.astro +8 -0
  255. package/skills/wix-headless-templates/donations/project/src/styles/global.css +57 -0
  256. package/skills/wix-headless-templates/donations/project/src/wix/config.ts +16 -0
  257. package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns-store.ts +59 -0
  258. package/skills/wix-headless-templates/donations/project/src/wix/donations/campaigns.ts +83 -0
  259. package/skills/wix-headless-templates/donations/project/src/wix/donations/donate.ts +68 -0
  260. package/skills/wix-headless-templates/donations/project/src/wix/donations/donation-store.ts +163 -0
  261. package/skills/wix-headless-templates/donations/project/src/wix/donations/donations-core.ts +465 -0
  262. package/skills/wix-headless-templates/donations/project/src/wix/donations/receipt-store.ts +55 -0
  263. package/skills/wix-headless-templates/donations/project/src/wix/donations/types.ts +121 -0
  264. package/skills/wix-headless-templates/donations/project/src/wix/media.ts +106 -0
  265. package/skills/wix-headless-templates/donations/project/src/wix/money.ts +24 -0
  266. package/skills/wix-headless-templates/donations/project/src/wix/sdk.ts +89 -0
  267. package/skills/wix-headless-templates/donations/project/tsconfig.json +5 -0
  268. package/skills/wix-headless-templates/donations/rest/campaigns.ts +76 -0
  269. package/skills/wix-headless-templates/donations/rest/donate.ts +64 -0
  270. package/skills/wix-headless-templates/donations/seed/SEED.md +90 -0
  271. package/skills/wix-headless-templates/donations/seed/read-site.mjs +33 -0
  272. package/skills/wix-headless-templates/donations/seed/seed-donations.mjs +250 -0
  273. package/skills/wix-headless-templates/events/INSTRUCTIONS.md +387 -0
  274. package/skills/wix-headless-templates/events/app/components/events/EventConfirmationView.tsx +139 -0
  275. package/skills/wix-headless-templates/events/app/components/events/EventRegistrationView.tsx +375 -0
  276. package/skills/wix-headless-templates/events/app/components/events/EventsView.tsx +134 -0
  277. package/skills/wix-headless-templates/events/app/hooks/events/useEventConfirmation.ts +21 -0
  278. package/skills/wix-headless-templates/events/app/hooks/events/useEventRegistration.ts +40 -0
  279. package/skills/wix-headless-templates/events/app/hooks/events/useEvents.ts +24 -0
  280. package/skills/wix-headless-templates/events/app/wix/events/events-core.ts +379 -0
  281. package/skills/wix-headless-templates/events/app/wix/events/events-store.ts +175 -0
  282. package/skills/wix-headless-templates/events/app/wix/events/events.ts +124 -0
  283. package/skills/wix-headless-templates/events/app/wix/events/order-store.ts +143 -0
  284. package/skills/wix-headless-templates/events/app/wix/events/orders-core.ts +86 -0
  285. package/skills/wix-headless-templates/events/app/wix/events/orders.ts +30 -0
  286. package/skills/wix-headless-templates/events/app/wix/events/registration-core.ts +415 -0
  287. package/skills/wix-headless-templates/events/app/wix/events/registration-store.ts +237 -0
  288. package/skills/wix-headless-templates/events/app/wix/events/registration.ts +109 -0
  289. package/skills/wix-headless-templates/events/app/wix/events/types.ts +249 -0
  290. package/skills/wix-headless-templates/events/app-astro/layouts/SiteLayout.astro +40 -0
  291. package/skills/wix-headless-templates/events/app-astro/pages/event-confirmation.astro +12 -0
  292. package/skills/wix-headless-templates/events/app-astro/pages/events/[slug].astro +104 -0
  293. package/skills/wix-headless-templates/events/app-astro/pages/events.astro +23 -0
  294. package/skills/wix-headless-templates/events/project/README.md +15 -0
  295. package/skills/wix-headless-templates/events/project/astro.config.mjs +22 -0
  296. package/skills/wix-headless-templates/events/project/package-lock.json +10497 -0
  297. package/skills/wix-headless-templates/events/project/package.json +39 -0
  298. package/skills/wix-headless-templates/events/project/public/favicon.svg +9 -0
  299. package/skills/wix-headless-templates/events/project/src/assets/astro.svg +1 -0
  300. package/skills/wix-headless-templates/events/project/src/assets/background.svg +1 -0
  301. package/skills/wix-headless-templates/events/project/src/assets/wix.svg +18 -0
  302. package/skills/wix-headless-templates/events/project/src/components/Hero.astro +77 -0
  303. package/skills/wix-headless-templates/events/project/src/components/Welcome.astro +95 -0
  304. package/skills/wix-headless-templates/events/project/src/components/events/EventConfirmationView.tsx +139 -0
  305. package/skills/wix-headless-templates/events/project/src/components/events/EventRegistrationView.tsx +375 -0
  306. package/skills/wix-headless-templates/events/project/src/components/events/EventsView.tsx +134 -0
  307. package/skills/wix-headless-templates/events/project/src/hooks/events/useEventConfirmation.ts +21 -0
  308. package/skills/wix-headless-templates/events/project/src/hooks/events/useEventRegistration.ts +40 -0
  309. package/skills/wix-headless-templates/events/project/src/hooks/events/useEvents.ts +24 -0
  310. package/skills/wix-headless-templates/events/project/src/layouts/Layout.astro +22 -0
  311. package/skills/wix-headless-templates/events/project/src/layouts/SiteLayout.astro +40 -0
  312. package/skills/wix-headless-templates/events/project/src/pages/event-confirmation.astro +12 -0
  313. package/skills/wix-headless-templates/events/project/src/pages/events/[slug].astro +104 -0
  314. package/skills/wix-headless-templates/events/project/src/pages/events.astro +23 -0
  315. package/skills/wix-headless-templates/events/project/src/pages/index.astro +8 -0
  316. package/skills/wix-headless-templates/events/project/src/styles/global.css +57 -0
  317. package/skills/wix-headless-templates/events/project/src/wix/config.ts +16 -0
  318. package/skills/wix-headless-templates/events/project/src/wix/events/events-core.ts +379 -0
  319. package/skills/wix-headless-templates/events/project/src/wix/events/events-store.ts +175 -0
  320. package/skills/wix-headless-templates/events/project/src/wix/events/events.ts +124 -0
  321. package/skills/wix-headless-templates/events/project/src/wix/events/order-store.ts +143 -0
  322. package/skills/wix-headless-templates/events/project/src/wix/events/orders-core.ts +86 -0
  323. package/skills/wix-headless-templates/events/project/src/wix/events/orders.ts +30 -0
  324. package/skills/wix-headless-templates/events/project/src/wix/events/registration-core.ts +415 -0
  325. package/skills/wix-headless-templates/events/project/src/wix/events/registration-store.ts +237 -0
  326. package/skills/wix-headless-templates/events/project/src/wix/events/registration.ts +109 -0
  327. package/skills/wix-headless-templates/events/project/src/wix/events/types.ts +249 -0
  328. package/skills/wix-headless-templates/events/project/src/wix/media.ts +106 -0
  329. package/skills/wix-headless-templates/events/project/src/wix/money.ts +24 -0
  330. package/skills/wix-headless-templates/events/project/src/wix/sdk.ts +89 -0
  331. package/skills/wix-headless-templates/events/project/tsconfig.json +5 -0
  332. package/skills/wix-headless-templates/events/rest/events.ts +112 -0
  333. package/skills/wix-headless-templates/events/rest/orders.ts +28 -0
  334. package/skills/wix-headless-templates/events/rest/registration.ts +96 -0
  335. package/skills/wix-headless-templates/events/seed/SEED.md +115 -0
  336. package/skills/wix-headless-templates/events/seed/read-site.mjs +26 -0
  337. package/skills/wix-headless-templates/events/seed/seed-events.mjs +322 -0
  338. package/skills/wix-headless-templates/faq/INSTRUCTIONS.md +317 -0
  339. package/skills/wix-headless-templates/faq/app/components/faq/FaqAccordion.tsx +159 -0
  340. package/skills/wix-headless-templates/faq/app/components/faq/FaqCategoryNav.tsx +46 -0
  341. package/skills/wix-headless-templates/faq/app/components/faq/FaqSearch.tsx +56 -0
  342. package/skills/wix-headless-templates/faq/app/hooks/faq/useFaq.ts +53 -0
  343. package/skills/wix-headless-templates/faq/app/wix/faq/faq-core.ts +428 -0
  344. package/skills/wix-headless-templates/faq/app/wix/faq/faq-store.ts +212 -0
  345. package/skills/wix-headless-templates/faq/app/wix/faq/faq.ts +72 -0
  346. package/skills/wix-headless-templates/faq/app/wix/faq/types.ts +63 -0
  347. package/skills/wix-headless-templates/faq/app-astro/layouts/SiteLayout.astro +40 -0
  348. package/skills/wix-headless-templates/faq/app-astro/pages/faq.astro +39 -0
  349. package/skills/wix-headless-templates/faq/project/README.md +15 -0
  350. package/skills/wix-headless-templates/faq/project/astro.config.mjs +22 -0
  351. package/skills/wix-headless-templates/faq/project/package-lock.json +8837 -0
  352. package/skills/wix-headless-templates/faq/project/package.json +37 -0
  353. package/skills/wix-headless-templates/faq/project/public/favicon.svg +9 -0
  354. package/skills/wix-headless-templates/faq/project/src/assets/astro.svg +1 -0
  355. package/skills/wix-headless-templates/faq/project/src/assets/background.svg +1 -0
  356. package/skills/wix-headless-templates/faq/project/src/assets/wix.svg +18 -0
  357. package/skills/wix-headless-templates/faq/project/src/components/Hero.astro +77 -0
  358. package/skills/wix-headless-templates/faq/project/src/components/Welcome.astro +95 -0
  359. package/skills/wix-headless-templates/faq/project/src/components/faq/FaqAccordion.tsx +159 -0
  360. package/skills/wix-headless-templates/faq/project/src/components/faq/FaqCategoryNav.tsx +46 -0
  361. package/skills/wix-headless-templates/faq/project/src/components/faq/FaqSearch.tsx +56 -0
  362. package/skills/wix-headless-templates/faq/project/src/hooks/faq/useFaq.ts +53 -0
  363. package/skills/wix-headless-templates/faq/project/src/layouts/Layout.astro +22 -0
  364. package/skills/wix-headless-templates/faq/project/src/layouts/SiteLayout.astro +40 -0
  365. package/skills/wix-headless-templates/faq/project/src/pages/faq.astro +39 -0
  366. package/skills/wix-headless-templates/faq/project/src/pages/index.astro +8 -0
  367. package/skills/wix-headless-templates/faq/project/src/styles/global.css +57 -0
  368. package/skills/wix-headless-templates/faq/project/src/wix/config.ts +16 -0
  369. package/skills/wix-headless-templates/faq/project/src/wix/faq/faq-core.ts +428 -0
  370. package/skills/wix-headless-templates/faq/project/src/wix/faq/faq-store.ts +212 -0
  371. package/skills/wix-headless-templates/faq/project/src/wix/faq/faq.ts +72 -0
  372. package/skills/wix-headless-templates/faq/project/src/wix/faq/types.ts +63 -0
  373. package/skills/wix-headless-templates/faq/project/src/wix/media.ts +106 -0
  374. package/skills/wix-headless-templates/faq/project/src/wix/money.ts +24 -0
  375. package/skills/wix-headless-templates/faq/project/src/wix/sdk.ts +89 -0
  376. package/skills/wix-headless-templates/faq/project/tsconfig.json +5 -0
  377. package/skills/wix-headless-templates/faq/rest/faq.ts +71 -0
  378. package/skills/wix-headless-templates/faq/seed/SEED.md +104 -0
  379. package/skills/wix-headless-templates/faq/seed/read-site.mjs +23 -0
  380. package/skills/wix-headless-templates/faq/seed/seed-faq.mjs +302 -0
  381. package/skills/wix-headless-templates/forms/INSTRUCTIONS.md +417 -0
  382. package/skills/wix-headless-templates/forms/app/hooks/forms/useWixForm.ts +108 -0
  383. package/skills/wix-headless-templates/forms/app/wix/forms/address-templates.generated.ts +13 -0
  384. package/skills/wix-headless-templates/forms/app/wix/forms/form-store.ts +533 -0
  385. package/skills/wix-headless-templates/forms/app/wix/forms/forms-core.ts +671 -0
  386. package/skills/wix-headless-templates/forms/app/wix/forms/forms.ts +57 -0
  387. package/skills/wix-headless-templates/forms/app/wix/forms/submissions-core.ts +423 -0
  388. package/skills/wix-headless-templates/forms/app/wix/forms/submissions.ts +95 -0
  389. package/skills/wix-headless-templates/forms/app/wix/forms/types.ts +284 -0
  390. package/skills/wix-headless-templates/forms/project/README.md +15 -0
  391. package/skills/wix-headless-templates/forms/project/astro.config.mjs +22 -0
  392. package/skills/wix-headless-templates/forms/project/package-lock.json +9102 -0
  393. package/skills/wix-headless-templates/forms/project/package.json +37 -0
  394. package/skills/wix-headless-templates/forms/project/public/favicon.svg +9 -0
  395. package/skills/wix-headless-templates/forms/project/src/assets/astro.svg +1 -0
  396. package/skills/wix-headless-templates/forms/project/src/assets/background.svg +1 -0
  397. package/skills/wix-headless-templates/forms/project/src/assets/wix.svg +18 -0
  398. package/skills/wix-headless-templates/forms/project/src/components/Hero.astro +77 -0
  399. package/skills/wix-headless-templates/forms/project/src/components/Welcome.astro +95 -0
  400. package/skills/wix-headless-templates/forms/project/src/hooks/forms/useWixForm.ts +108 -0
  401. package/skills/wix-headless-templates/forms/project/src/layouts/Layout.astro +22 -0
  402. package/skills/wix-headless-templates/forms/project/src/pages/index.astro +8 -0
  403. package/skills/wix-headless-templates/forms/project/src/styles/global.css +57 -0
  404. package/skills/wix-headless-templates/forms/project/src/wix/config.ts +16 -0
  405. package/skills/wix-headless-templates/forms/project/src/wix/forms/address-templates.generated.ts +13 -0
  406. package/skills/wix-headless-templates/forms/project/src/wix/forms/form-store.ts +533 -0
  407. package/skills/wix-headless-templates/forms/project/src/wix/forms/forms-core.ts +671 -0
  408. package/skills/wix-headless-templates/forms/project/src/wix/forms/forms.ts +57 -0
  409. package/skills/wix-headless-templates/forms/project/src/wix/forms/submissions-core.ts +423 -0
  410. package/skills/wix-headless-templates/forms/project/src/wix/forms/submissions.ts +95 -0
  411. package/skills/wix-headless-templates/forms/project/src/wix/forms/types.ts +284 -0
  412. package/skills/wix-headless-templates/forms/project/src/wix/media.ts +106 -0
  413. package/skills/wix-headless-templates/forms/project/src/wix/money.ts +24 -0
  414. package/skills/wix-headless-templates/forms/project/src/wix/sdk.ts +89 -0
  415. package/skills/wix-headless-templates/forms/project/tsconfig.json +5 -0
  416. package/skills/wix-headless-templates/forms/rest/forms.ts +37 -0
  417. package/skills/wix-headless-templates/forms/rest/submissions.ts +83 -0
  418. package/skills/wix-headless-templates/forms/seed/SEED.md +225 -0
  419. package/skills/wix-headless-templates/forms/seed/read-site.mjs +53 -0
  420. package/skills/wix-headless-templates/forms/seed/seed-forms.mjs +574 -0
  421. package/skills/wix-headless-templates/forms/tooling/address-templates.mjs +96 -0
  422. package/skills/wix-headless-templates/members/INSTRUCTIONS.md +345 -0
  423. package/skills/wix-headless-templates/members/app/components/members/AccountPage.tsx +16 -0
  424. package/skills/wix-headless-templates/members/app/components/members/AccountView.tsx +60 -0
  425. package/skills/wix-headless-templates/members/app/components/members/LoginForm.tsx +165 -0
  426. package/skills/wix-headless-templates/members/app/components/members/MemberMenu.tsx +78 -0
  427. package/skills/wix-headless-templates/members/app/components/members/RequireAuth.tsx +47 -0
  428. package/skills/wix-headless-templates/members/app/hooks/members/useMember.ts +67 -0
  429. package/skills/wix-headless-templates/members/app/wix/members/auth-core.ts +160 -0
  430. package/skills/wix-headless-templates/members/app/wix/members/auth.ts +117 -0
  431. package/skills/wix-headless-templates/members/app/wix/members/client.ts +27 -0
  432. package/skills/wix-headless-templates/members/app/wix/members/member-store.ts +133 -0
  433. package/skills/wix-headless-templates/members/app/wix/members/members-core.ts +43 -0
  434. package/skills/wix-headless-templates/members/app/wix/members/members.ts +29 -0
  435. package/skills/wix-headless-templates/members/app/wix/members/types.ts +21 -0
  436. package/skills/wix-headless-templates/members/app-astro/layouts/SiteLayout.astro +42 -0
  437. package/skills/wix-headless-templates/members/app-astro/pages/account.astro +9 -0
  438. package/skills/wix-headless-templates/members/app-astro/pages/login.astro +11 -0
  439. package/skills/wix-headless-templates/members/project/README.md +15 -0
  440. package/skills/wix-headless-templates/members/project/astro.config.mjs +22 -0
  441. package/skills/wix-headless-templates/members/project/package-lock.json +8892 -0
  442. package/skills/wix-headless-templates/members/project/package.json +37 -0
  443. package/skills/wix-headless-templates/members/project/public/favicon.svg +9 -0
  444. package/skills/wix-headless-templates/members/project/src/assets/astro.svg +1 -0
  445. package/skills/wix-headless-templates/members/project/src/assets/background.svg +1 -0
  446. package/skills/wix-headless-templates/members/project/src/assets/wix.svg +18 -0
  447. package/skills/wix-headless-templates/members/project/src/components/Hero.astro +77 -0
  448. package/skills/wix-headless-templates/members/project/src/components/Welcome.astro +95 -0
  449. package/skills/wix-headless-templates/members/project/src/components/members/AccountPage.tsx +16 -0
  450. package/skills/wix-headless-templates/members/project/src/components/members/AccountView.tsx +60 -0
  451. package/skills/wix-headless-templates/members/project/src/components/members/LoginForm.tsx +165 -0
  452. package/skills/wix-headless-templates/members/project/src/components/members/MemberMenu.tsx +78 -0
  453. package/skills/wix-headless-templates/members/project/src/components/members/RequireAuth.tsx +47 -0
  454. package/skills/wix-headless-templates/members/project/src/hooks/members/useMember.ts +67 -0
  455. package/skills/wix-headless-templates/members/project/src/layouts/Layout.astro +22 -0
  456. package/skills/wix-headless-templates/members/project/src/layouts/SiteLayout.astro +42 -0
  457. package/skills/wix-headless-templates/members/project/src/pages/account.astro +9 -0
  458. package/skills/wix-headless-templates/members/project/src/pages/index.astro +8 -0
  459. package/skills/wix-headless-templates/members/project/src/pages/login.astro +11 -0
  460. package/skills/wix-headless-templates/members/project/src/styles/global.css +57 -0
  461. package/skills/wix-headless-templates/members/project/src/wix/config.ts +16 -0
  462. package/skills/wix-headless-templates/members/project/src/wix/media.ts +106 -0
  463. package/skills/wix-headless-templates/members/project/src/wix/members/auth-core.ts +160 -0
  464. package/skills/wix-headless-templates/members/project/src/wix/members/auth.ts +117 -0
  465. package/skills/wix-headless-templates/members/project/src/wix/members/client.ts +27 -0
  466. package/skills/wix-headless-templates/members/project/src/wix/members/member-store.ts +133 -0
  467. package/skills/wix-headless-templates/members/project/src/wix/members/members-core.ts +43 -0
  468. package/skills/wix-headless-templates/members/project/src/wix/members/members.ts +29 -0
  469. package/skills/wix-headless-templates/members/project/src/wix/members/types.ts +21 -0
  470. package/skills/wix-headless-templates/members/project/src/wix/money.ts +24 -0
  471. package/skills/wix-headless-templates/members/project/src/wix/sdk.ts +89 -0
  472. package/skills/wix-headless-templates/members/project/tsconfig.json +5 -0
  473. package/skills/wix-headless-templates/members/rest/auth.ts +224 -0
  474. package/skills/wix-headless-templates/members/rest/members.ts +26 -0
  475. package/skills/wix-headless-templates/members/seed/SEED.md +39 -0
  476. package/skills/wix-headless-templates/members/seed/read-site.mjs +15 -0
  477. package/skills/wix-headless-templates/members/seed/seed-members.mjs +91 -0
  478. package/skills/wix-headless-templates/portfolio/INSTRUCTIONS.md +315 -0
  479. package/skills/wix-headless-templates/portfolio/app/components/portfolio/CollectionProjectsView.tsx +110 -0
  480. package/skills/wix-headless-templates/portfolio/app/components/portfolio/CollectionsView.tsx +90 -0
  481. package/skills/wix-headless-templates/portfolio/app/components/portfolio/GalleryMedia.tsx +35 -0
  482. package/skills/wix-headless-templates/portfolio/app/components/portfolio/ProjectDetailView.tsx +85 -0
  483. package/skills/wix-headless-templates/portfolio/app/hooks/portfolio/useCollectionProjects.ts +32 -0
  484. package/skills/wix-headless-templates/portfolio/app/hooks/portfolio/useCollections.ts +21 -0
  485. package/skills/wix-headless-templates/portfolio/app/hooks/portfolio/useProjectDetail.ts +31 -0
  486. package/skills/wix-headless-templates/portfolio/app/wix/portfolio/collection-projects-store.ts +82 -0
  487. package/skills/wix-headless-templates/portfolio/app/wix/portfolio/collections-store.ts +58 -0
  488. package/skills/wix-headless-templates/portfolio/app/wix/portfolio/portfolio-core.ts +177 -0
  489. package/skills/wix-headless-templates/portfolio/app/wix/portfolio/portfolio.ts +78 -0
  490. package/skills/wix-headless-templates/portfolio/app/wix/portfolio/project-detail-store.ts +81 -0
  491. package/skills/wix-headless-templates/portfolio/app/wix/portfolio/types.ts +55 -0
  492. package/skills/wix-headless-templates/portfolio/app-astro/layouts/SiteLayout.astro +40 -0
  493. package/skills/wix-headless-templates/portfolio/app-astro/pages/portfolio/[slug].astro +30 -0
  494. package/skills/wix-headless-templates/portfolio/app-astro/pages/portfolio.astro +21 -0
  495. package/skills/wix-headless-templates/portfolio/app-astro/pages/projects/[slug].astro +29 -0
  496. package/skills/wix-headless-templates/portfolio/project/README.md +15 -0
  497. package/skills/wix-headless-templates/portfolio/project/astro.config.mjs +22 -0
  498. package/skills/wix-headless-templates/portfolio/project/package-lock.json +8760 -0
  499. package/skills/wix-headless-templates/portfolio/project/package.json +37 -0
  500. package/skills/wix-headless-templates/portfolio/project/public/favicon.svg +9 -0
  501. package/skills/wix-headless-templates/portfolio/project/src/assets/astro.svg +1 -0
  502. package/skills/wix-headless-templates/portfolio/project/src/assets/background.svg +1 -0
  503. package/skills/wix-headless-templates/portfolio/project/src/assets/wix.svg +18 -0
  504. package/skills/wix-headless-templates/portfolio/project/src/components/Hero.astro +77 -0
  505. package/skills/wix-headless-templates/portfolio/project/src/components/Welcome.astro +95 -0
  506. package/skills/wix-headless-templates/portfolio/project/src/components/portfolio/CollectionProjectsView.tsx +110 -0
  507. package/skills/wix-headless-templates/portfolio/project/src/components/portfolio/CollectionsView.tsx +90 -0
  508. package/skills/wix-headless-templates/portfolio/project/src/components/portfolio/GalleryMedia.tsx +35 -0
  509. package/skills/wix-headless-templates/portfolio/project/src/components/portfolio/ProjectDetailView.tsx +85 -0
  510. package/skills/wix-headless-templates/portfolio/project/src/hooks/portfolio/useCollectionProjects.ts +32 -0
  511. package/skills/wix-headless-templates/portfolio/project/src/hooks/portfolio/useCollections.ts +21 -0
  512. package/skills/wix-headless-templates/portfolio/project/src/hooks/portfolio/useProjectDetail.ts +31 -0
  513. package/skills/wix-headless-templates/portfolio/project/src/layouts/Layout.astro +22 -0
  514. package/skills/wix-headless-templates/portfolio/project/src/layouts/SiteLayout.astro +40 -0
  515. package/skills/wix-headless-templates/portfolio/project/src/pages/index.astro +8 -0
  516. package/skills/wix-headless-templates/portfolio/project/src/pages/portfolio/[slug].astro +30 -0
  517. package/skills/wix-headless-templates/portfolio/project/src/pages/portfolio.astro +21 -0
  518. package/skills/wix-headless-templates/portfolio/project/src/pages/projects/[slug].astro +29 -0
  519. package/skills/wix-headless-templates/portfolio/project/src/styles/global.css +57 -0
  520. package/skills/wix-headless-templates/portfolio/project/src/wix/config.ts +16 -0
  521. package/skills/wix-headless-templates/portfolio/project/src/wix/media.ts +106 -0
  522. package/skills/wix-headless-templates/portfolio/project/src/wix/money.ts +24 -0
  523. package/skills/wix-headless-templates/portfolio/project/src/wix/portfolio/collection-projects-store.ts +82 -0
  524. package/skills/wix-headless-templates/portfolio/project/src/wix/portfolio/collections-store.ts +58 -0
  525. package/skills/wix-headless-templates/portfolio/project/src/wix/portfolio/portfolio-core.ts +177 -0
  526. package/skills/wix-headless-templates/portfolio/project/src/wix/portfolio/portfolio.ts +78 -0
  527. package/skills/wix-headless-templates/portfolio/project/src/wix/portfolio/project-detail-store.ts +81 -0
  528. package/skills/wix-headless-templates/portfolio/project/src/wix/portfolio/types.ts +55 -0
  529. package/skills/wix-headless-templates/portfolio/project/src/wix/sdk.ts +89 -0
  530. package/skills/wix-headless-templates/portfolio/project/tsconfig.json +5 -0
  531. package/skills/wix-headless-templates/portfolio/rest/portfolio.ts +75 -0
  532. package/skills/wix-headless-templates/portfolio/seed/SEED.md +86 -0
  533. package/skills/wix-headless-templates/portfolio/seed/read-site.mjs +20 -0
  534. package/skills/wix-headless-templates/portfolio/seed/seed-portfolio.mjs +253 -0
  535. package/skills/wix-headless-templates/pricing-plans/INSTRUCTIONS.md +378 -0
  536. package/skills/wix-headless-templates/pricing-plans/app/components/pricing-plans/PlanDetailView.tsx +54 -0
  537. package/skills/wix-headless-templates/pricing-plans/app/components/pricing-plans/PlansView.tsx +108 -0
  538. package/skills/wix-headless-templates/pricing-plans/app/components/pricing-plans/RequirePlan.tsx +87 -0
  539. package/skills/wix-headless-templates/pricing-plans/app/components/pricing-plans/SubscribeButton.tsx +41 -0
  540. package/skills/wix-headless-templates/pricing-plans/app/hooks/pricing-plans/usePlanAccess.ts +31 -0
  541. package/skills/wix-headless-templates/pricing-plans/app/hooks/pricing-plans/usePlanPurchase.ts +16 -0
  542. package/skills/wix-headless-templates/pricing-plans/app/hooks/pricing-plans/usePlans.ts +22 -0
  543. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access-core.ts +29 -0
  544. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access-store.ts +92 -0
  545. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-access.ts +37 -0
  546. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plan-purchase-store.ts +54 -0
  547. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plans-core.ts +212 -0
  548. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plans-store.ts +64 -0
  549. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/plans.ts +54 -0
  550. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/purchase-core.ts +43 -0
  551. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/purchase.ts +22 -0
  552. package/skills/wix-headless-templates/pricing-plans/app/wix/pricing-plans/types.ts +52 -0
  553. package/skills/wix-headless-templates/pricing-plans/app-astro/layouts/SiteLayout.astro +41 -0
  554. package/skills/wix-headless-templates/pricing-plans/app-astro/pages/plans/[slug].astro +43 -0
  555. package/skills/wix-headless-templates/pricing-plans/app-astro/pages/plans.astro +21 -0
  556. package/skills/wix-headless-templates/pricing-plans/project/README.md +15 -0
  557. package/skills/wix-headless-templates/pricing-plans/project/astro.config.mjs +22 -0
  558. package/skills/wix-headless-templates/pricing-plans/project/package-lock.json +9799 -0
  559. package/skills/wix-headless-templates/pricing-plans/project/package.json +38 -0
  560. package/skills/wix-headless-templates/pricing-plans/project/public/favicon.svg +9 -0
  561. package/skills/wix-headless-templates/pricing-plans/project/src/assets/astro.svg +1 -0
  562. package/skills/wix-headless-templates/pricing-plans/project/src/assets/background.svg +1 -0
  563. package/skills/wix-headless-templates/pricing-plans/project/src/assets/wix.svg +18 -0
  564. package/skills/wix-headless-templates/pricing-plans/project/src/components/Hero.astro +77 -0
  565. package/skills/wix-headless-templates/pricing-plans/project/src/components/Welcome.astro +95 -0
  566. package/skills/wix-headless-templates/pricing-plans/project/src/components/pricing-plans/PlanDetailView.tsx +54 -0
  567. package/skills/wix-headless-templates/pricing-plans/project/src/components/pricing-plans/PlansView.tsx +108 -0
  568. package/skills/wix-headless-templates/pricing-plans/project/src/components/pricing-plans/RequirePlan.tsx +87 -0
  569. package/skills/wix-headless-templates/pricing-plans/project/src/components/pricing-plans/SubscribeButton.tsx +41 -0
  570. package/skills/wix-headless-templates/pricing-plans/project/src/hooks/pricing-plans/usePlanAccess.ts +31 -0
  571. package/skills/wix-headless-templates/pricing-plans/project/src/hooks/pricing-plans/usePlanPurchase.ts +16 -0
  572. package/skills/wix-headless-templates/pricing-plans/project/src/hooks/pricing-plans/usePlans.ts +22 -0
  573. package/skills/wix-headless-templates/pricing-plans/project/src/layouts/Layout.astro +22 -0
  574. package/skills/wix-headless-templates/pricing-plans/project/src/layouts/SiteLayout.astro +41 -0
  575. package/skills/wix-headless-templates/pricing-plans/project/src/pages/index.astro +8 -0
  576. package/skills/wix-headless-templates/pricing-plans/project/src/pages/plans/[slug].astro +43 -0
  577. package/skills/wix-headless-templates/pricing-plans/project/src/pages/plans.astro +21 -0
  578. package/skills/wix-headless-templates/pricing-plans/project/src/styles/global.css +57 -0
  579. package/skills/wix-headless-templates/pricing-plans/project/src/wix/config.ts +16 -0
  580. package/skills/wix-headless-templates/pricing-plans/project/src/wix/media.ts +106 -0
  581. package/skills/wix-headless-templates/pricing-plans/project/src/wix/money.ts +24 -0
  582. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access-core.ts +29 -0
  583. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access-store.ts +92 -0
  584. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-access.ts +37 -0
  585. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plan-purchase-store.ts +54 -0
  586. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plans-core.ts +212 -0
  587. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plans-store.ts +64 -0
  588. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/plans.ts +54 -0
  589. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/purchase-core.ts +43 -0
  590. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/purchase.ts +22 -0
  591. package/skills/wix-headless-templates/pricing-plans/project/src/wix/pricing-plans/types.ts +52 -0
  592. package/skills/wix-headless-templates/pricing-plans/project/src/wix/sdk.ts +89 -0
  593. package/skills/wix-headless-templates/pricing-plans/project/tsconfig.json +5 -0
  594. package/skills/wix-headless-templates/pricing-plans/rest/plan-access.ts +31 -0
  595. package/skills/wix-headless-templates/pricing-plans/rest/plans.ts +58 -0
  596. package/skills/wix-headless-templates/pricing-plans/rest/purchase.ts +20 -0
  597. package/skills/wix-headless-templates/pricing-plans/seed/SEED.md +93 -0
  598. package/skills/wix-headless-templates/pricing-plans/seed/read-site.mjs +22 -0
  599. package/skills/wix-headless-templates/pricing-plans/seed/seed-pricing-plans.mjs +301 -0
  600. package/skills/wix-headless-templates/rentals/INSTRUCTIONS.md +309 -0
  601. package/skills/wix-headless-templates/rentals/app/components/rentals/RentalBookingView.tsx +195 -0
  602. package/skills/wix-headless-templates/rentals/app/components/rentals/RentalsView.tsx +89 -0
  603. package/skills/wix-headless-templates/rentals/app/hooks/rentals/useRentalFlow.ts +31 -0
  604. package/skills/wix-headless-templates/rentals/app/hooks/rentals/useRentals.ts +23 -0
  605. package/skills/wix-headless-templates/rentals/app/wix/rentals/rental-flow-store.ts +283 -0
  606. package/skills/wix-headless-templates/rentals/app/wix/rentals/rentals-core.ts +435 -0
  607. package/skills/wix-headless-templates/rentals/app/wix/rentals/rentals-store.ts +112 -0
  608. package/skills/wix-headless-templates/rentals/app/wix/rentals/rentals.ts +173 -0
  609. package/skills/wix-headless-templates/rentals/app/wix/rentals/types.ts +113 -0
  610. package/skills/wix-headless-templates/rentals/app-astro/layouts/SiteLayout.astro +40 -0
  611. package/skills/wix-headless-templates/rentals/app-astro/pages/rentals/[slug].astro +81 -0
  612. package/skills/wix-headless-templates/rentals/app-astro/pages/rentals.astro +24 -0
  613. package/skills/wix-headless-templates/rentals/project/README.md +15 -0
  614. package/skills/wix-headless-templates/rentals/project/astro.config.mjs +22 -0
  615. package/skills/wix-headless-templates/rentals/project/package-lock.json +10545 -0
  616. package/skills/wix-headless-templates/rentals/project/package.json +40 -0
  617. package/skills/wix-headless-templates/rentals/project/public/favicon.svg +9 -0
  618. package/skills/wix-headless-templates/rentals/project/src/assets/astro.svg +1 -0
  619. package/skills/wix-headless-templates/rentals/project/src/assets/background.svg +1 -0
  620. package/skills/wix-headless-templates/rentals/project/src/assets/wix.svg +18 -0
  621. package/skills/wix-headless-templates/rentals/project/src/components/Hero.astro +77 -0
  622. package/skills/wix-headless-templates/rentals/project/src/components/Welcome.astro +95 -0
  623. package/skills/wix-headless-templates/rentals/project/src/components/rentals/RentalBookingView.tsx +195 -0
  624. package/skills/wix-headless-templates/rentals/project/src/components/rentals/RentalsView.tsx +89 -0
  625. package/skills/wix-headless-templates/rentals/project/src/hooks/rentals/useRentalFlow.ts +31 -0
  626. package/skills/wix-headless-templates/rentals/project/src/hooks/rentals/useRentals.ts +23 -0
  627. package/skills/wix-headless-templates/rentals/project/src/layouts/Layout.astro +22 -0
  628. package/skills/wix-headless-templates/rentals/project/src/layouts/SiteLayout.astro +40 -0
  629. package/skills/wix-headless-templates/rentals/project/src/pages/index.astro +8 -0
  630. package/skills/wix-headless-templates/rentals/project/src/pages/rentals/[slug].astro +81 -0
  631. package/skills/wix-headless-templates/rentals/project/src/pages/rentals.astro +24 -0
  632. package/skills/wix-headless-templates/rentals/project/src/styles/global.css +57 -0
  633. package/skills/wix-headless-templates/rentals/project/src/wix/config.ts +16 -0
  634. package/skills/wix-headless-templates/rentals/project/src/wix/media.ts +106 -0
  635. package/skills/wix-headless-templates/rentals/project/src/wix/money.ts +24 -0
  636. package/skills/wix-headless-templates/rentals/project/src/wix/rentals/rental-flow-store.ts +283 -0
  637. package/skills/wix-headless-templates/rentals/project/src/wix/rentals/rentals-core.ts +435 -0
  638. package/skills/wix-headless-templates/rentals/project/src/wix/rentals/rentals-store.ts +112 -0
  639. package/skills/wix-headless-templates/rentals/project/src/wix/rentals/rentals.ts +173 -0
  640. package/skills/wix-headless-templates/rentals/project/src/wix/rentals/types.ts +113 -0
  641. package/skills/wix-headless-templates/rentals/project/src/wix/sdk.ts +89 -0
  642. package/skills/wix-headless-templates/rentals/project/tsconfig.json +5 -0
  643. package/skills/wix-headless-templates/rentals/rest/rentals.ts +153 -0
  644. package/skills/wix-headless-templates/rentals/seed/SEED.md +95 -0
  645. package/skills/wix-headless-templates/rentals/seed/read-site.mjs +34 -0
  646. package/skills/wix-headless-templates/rentals/seed/seed-rentals.mjs +321 -0
  647. package/skills/wix-headless-templates/restaurants/INSTRUCTIONS.md +468 -0
  648. package/skills/wix-headless-templates/restaurants/app/components/restaurants/MenuView.tsx +257 -0
  649. package/skills/wix-headless-templates/restaurants/app/components/restaurants/OrderCartButton.tsx +26 -0
  650. package/skills/wix-headless-templates/restaurants/app/components/restaurants/OrderCartDrawer.tsx +121 -0
  651. package/skills/wix-headless-templates/restaurants/app/components/restaurants/ReservationView.tsx +212 -0
  652. package/skills/wix-headless-templates/restaurants/app/hooks/restaurants/useMenus.ts +34 -0
  653. package/skills/wix-headless-templates/restaurants/app/hooks/restaurants/useOrderCart.ts +52 -0
  654. package/skills/wix-headless-templates/restaurants/app/hooks/restaurants/useReservation.ts +49 -0
  655. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu-core.ts +333 -0
  656. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu-store.ts +89 -0
  657. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/menu.ts +109 -0
  658. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/order-store.ts +141 -0
  659. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/ordering-core.ts +287 -0
  660. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/ordering.ts +237 -0
  661. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/reservation-store.ts +279 -0
  662. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/reservations-core.ts +218 -0
  663. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/reservations.ts +109 -0
  664. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/time-core.ts +118 -0
  665. package/skills/wix-headless-templates/restaurants/app/wix/restaurants/types.ts +337 -0
  666. package/skills/wix-headless-templates/restaurants/app-astro/layouts/SiteLayout.astro +47 -0
  667. package/skills/wix-headless-templates/restaurants/app-astro/pages/menu.astro +22 -0
  668. package/skills/wix-headless-templates/restaurants/app-astro/pages/reservations.astro +12 -0
  669. package/skills/wix-headless-templates/restaurants/project/README.md +15 -0
  670. package/skills/wix-headless-templates/restaurants/project/astro.config.mjs +22 -0
  671. package/skills/wix-headless-templates/restaurants/project/package-lock.json +11038 -0
  672. package/skills/wix-headless-templates/restaurants/project/package.json +40 -0
  673. package/skills/wix-headless-templates/restaurants/project/public/favicon.svg +9 -0
  674. package/skills/wix-headless-templates/restaurants/project/src/assets/astro.svg +1 -0
  675. package/skills/wix-headless-templates/restaurants/project/src/assets/background.svg +1 -0
  676. package/skills/wix-headless-templates/restaurants/project/src/assets/wix.svg +18 -0
  677. package/skills/wix-headless-templates/restaurants/project/src/components/Hero.astro +77 -0
  678. package/skills/wix-headless-templates/restaurants/project/src/components/Welcome.astro +95 -0
  679. package/skills/wix-headless-templates/restaurants/project/src/components/restaurants/MenuView.tsx +257 -0
  680. package/skills/wix-headless-templates/restaurants/project/src/components/restaurants/OrderCartButton.tsx +26 -0
  681. package/skills/wix-headless-templates/restaurants/project/src/components/restaurants/OrderCartDrawer.tsx +121 -0
  682. package/skills/wix-headless-templates/restaurants/project/src/components/restaurants/ReservationView.tsx +212 -0
  683. package/skills/wix-headless-templates/restaurants/project/src/hooks/restaurants/useMenus.ts +34 -0
  684. package/skills/wix-headless-templates/restaurants/project/src/hooks/restaurants/useOrderCart.ts +52 -0
  685. package/skills/wix-headless-templates/restaurants/project/src/hooks/restaurants/useReservation.ts +49 -0
  686. package/skills/wix-headless-templates/restaurants/project/src/layouts/Layout.astro +22 -0
  687. package/skills/wix-headless-templates/restaurants/project/src/layouts/SiteLayout.astro +47 -0
  688. package/skills/wix-headless-templates/restaurants/project/src/pages/index.astro +8 -0
  689. package/skills/wix-headless-templates/restaurants/project/src/pages/menu.astro +22 -0
  690. package/skills/wix-headless-templates/restaurants/project/src/pages/reservations.astro +12 -0
  691. package/skills/wix-headless-templates/restaurants/project/src/styles/global.css +57 -0
  692. package/skills/wix-headless-templates/restaurants/project/src/wix/config.ts +16 -0
  693. package/skills/wix-headless-templates/restaurants/project/src/wix/media.ts +106 -0
  694. package/skills/wix-headless-templates/restaurants/project/src/wix/money.ts +24 -0
  695. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu-core.ts +333 -0
  696. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu-store.ts +89 -0
  697. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/menu.ts +109 -0
  698. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/order-store.ts +141 -0
  699. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/ordering-core.ts +287 -0
  700. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/ordering.ts +237 -0
  701. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/reservation-store.ts +279 -0
  702. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/reservations-core.ts +218 -0
  703. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/reservations.ts +109 -0
  704. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/time-core.ts +118 -0
  705. package/skills/wix-headless-templates/restaurants/project/src/wix/restaurants/types.ts +337 -0
  706. package/skills/wix-headless-templates/restaurants/project/src/wix/sdk.ts +89 -0
  707. package/skills/wix-headless-templates/restaurants/project/tsconfig.json +5 -0
  708. package/skills/wix-headless-templates/restaurants/rest/menu.ts +96 -0
  709. package/skills/wix-headless-templates/restaurants/rest/ordering.ts +222 -0
  710. package/skills/wix-headless-templates/restaurants/rest/reservations.ts +102 -0
  711. package/skills/wix-headless-templates/restaurants/seed/SEED.md +118 -0
  712. package/skills/wix-headless-templates/restaurants/seed/read-site.mjs +25 -0
  713. package/skills/wix-headless-templates/restaurants/seed/seed-restaurants.mjs +577 -0
  714. package/skills/wix-headless-templates/shared/CONTENT.md +22 -0
  715. package/skills/wix-headless-templates/shared/CUSTOM_OPERATIONS.md +100 -0
  716. package/skills/wix-headless-templates/shared/DESIGN.md +37 -0
  717. package/skills/wix-headless-templates/shared/SUPPLIED-CONTENT.md +27 -0
  718. package/skills/wix-headless-templates/shared/app/styles/global.css +57 -0
  719. package/skills/wix-headless-templates/shared/app/wix/config.ts +16 -0
  720. package/skills/wix-headless-templates/shared/app/wix/media.ts +106 -0
  721. package/skills/wix-headless-templates/shared/app/wix/money.ts +24 -0
  722. package/skills/wix-headless-templates/shared/app/wix/sdk.ts +89 -0
  723. package/skills/wix-headless-templates/shared/capabilities/media-upload/app/wix/media-upload/client.ts +46 -0
  724. package/skills/wix-headless-templates/shared/capabilities/media-upload/app-astro/pages/api/wix/media-upload.ts +69 -0
  725. package/skills/wix-headless-templates/shared/capabilities/site-search/INSTRUCTIONS.md +194 -0
  726. package/skills/wix-headless-templates/shared/capabilities/site-search/app/components/site-search/SearchBox.tsx +136 -0
  727. package/skills/wix-headless-templates/shared/capabilities/site-search/app/components/site-search/SearchHit.tsx +50 -0
  728. package/skills/wix-headless-templates/shared/capabilities/site-search/app/components/site-search/SearchResults.tsx +300 -0
  729. package/skills/wix-headless-templates/shared/capabilities/site-search/app/hooks/site-search/useSearch.ts +31 -0
  730. package/skills/wix-headless-templates/shared/capabilities/site-search/app/hooks/site-search/useSuggest.ts +26 -0
  731. package/skills/wix-headless-templates/shared/capabilities/site-search/app/wix/site-search/search-core.ts +520 -0
  732. package/skills/wix-headless-templates/shared/capabilities/site-search/app/wix/site-search/search-store.ts +235 -0
  733. package/skills/wix-headless-templates/shared/capabilities/site-search/app/wix/site-search/search.ts +80 -0
  734. package/skills/wix-headless-templates/shared/capabilities/site-search/app/wix/site-search/suggest-store.ts +178 -0
  735. package/skills/wix-headless-templates/shared/capabilities/site-search/app/wix/site-search/types.ts +158 -0
  736. package/skills/wix-headless-templates/shared/capabilities/site-search/app-astro/pages/search.astro +33 -0
  737. package/skills/wix-headless-templates/shared/capabilities/site-search/rest/search.ts +82 -0
  738. package/skills/wix-headless-templates/shared/capabilities/site-search/seed/install.mjs +43 -0
  739. package/skills/wix-headless-templates/shared/rest/client.ts +155 -0
  740. package/skills/wix-headless-templates/shared/rest/config.ts +4 -0
  741. package/skills/wix-headless-templates/shared/rest/media.ts +92 -0
  742. package/skills/wix-headless-templates/shared/seed/images.mjs +183 -0
  743. package/skills/wix-headless-templates/shared/seed/read-site.mjs +97 -0
  744. package/skills/wix-headless-templates/shared/seed/site-context.mjs +70 -0
  745. package/skills/wix-headless-templates/shared/seed/site.mjs +48 -0
  746. package/skills/wix-headless-templates/shared/seed/wix-cli.mjs +47 -0
  747. package/skills/wix-headless-templates/storefront/INSTRUCTIONS.md +685 -0
  748. package/skills/wix-headless-templates/storefront/app/components/storefront/CartButton.tsx +26 -0
  749. package/skills/wix-headless-templates/storefront/app/components/storefront/CartDrawer.tsx +239 -0
  750. package/skills/wix-headless-templates/storefront/app/components/storefront/FilterPanel.tsx +267 -0
  751. package/skills/wix-headless-templates/storefront/app/components/storefront/OptionPicker.tsx +171 -0
  752. package/skills/wix-headless-templates/storefront/app/components/storefront/QuickAdd.tsx +148 -0
  753. package/skills/wix-headless-templates/storefront/app/hooks/storefront/useCart.ts +59 -0
  754. package/skills/wix-headless-templates/storefront/app/hooks/storefront/useProductDetail.ts +42 -0
  755. package/skills/wix-headless-templates/storefront/app/hooks/storefront/useShop.ts +34 -0
  756. package/skills/wix-headless-templates/storefront/app/wix/storefront/cart-core.ts +220 -0
  757. package/skills/wix-headless-templates/storefront/app/wix/storefront/cart-store.ts +134 -0
  758. package/skills/wix-headless-templates/storefront/app/wix/storefront/cart.ts +186 -0
  759. package/skills/wix-headless-templates/storefront/app/wix/storefront/catalog-core.ts +698 -0
  760. package/skills/wix-headless-templates/storefront/app/wix/storefront/catalog.ts +260 -0
  761. package/skills/wix-headless-templates/storefront/app/wix/storefront/product-detail-store.ts +280 -0
  762. package/skills/wix-headless-templates/storefront/app/wix/storefront/shop-store.ts +341 -0
  763. package/skills/wix-headless-templates/storefront/app/wix/storefront/types.ts +305 -0
  764. package/skills/wix-headless-templates/storefront/app-astro/layouts/SiteLayout.astro +65 -0
  765. package/skills/wix-headless-templates/storefront/project/README.md +15 -0
  766. package/skills/wix-headless-templates/storefront/project/astro.config.mjs +22 -0
  767. package/skills/wix-headless-templates/storefront/project/package-lock.json +10786 -0
  768. package/skills/wix-headless-templates/storefront/project/package.json +41 -0
  769. package/skills/wix-headless-templates/storefront/project/public/favicon.svg +9 -0
  770. package/skills/wix-headless-templates/storefront/project/src/assets/astro.svg +1 -0
  771. package/skills/wix-headless-templates/storefront/project/src/assets/background.svg +1 -0
  772. package/skills/wix-headless-templates/storefront/project/src/assets/wix.svg +18 -0
  773. package/skills/wix-headless-templates/storefront/project/src/components/Hero.astro +77 -0
  774. package/skills/wix-headless-templates/storefront/project/src/components/Welcome.astro +95 -0
  775. package/skills/wix-headless-templates/storefront/project/src/components/storefront/CartButton.tsx +26 -0
  776. package/skills/wix-headless-templates/storefront/project/src/components/storefront/CartDrawer.tsx +239 -0
  777. package/skills/wix-headless-templates/storefront/project/src/components/storefront/FilterPanel.tsx +267 -0
  778. package/skills/wix-headless-templates/storefront/project/src/components/storefront/OptionPicker.tsx +171 -0
  779. package/skills/wix-headless-templates/storefront/project/src/components/storefront/QuickAdd.tsx +148 -0
  780. package/skills/wix-headless-templates/storefront/project/src/hooks/storefront/useCart.ts +59 -0
  781. package/skills/wix-headless-templates/storefront/project/src/hooks/storefront/useProductDetail.ts +42 -0
  782. package/skills/wix-headless-templates/storefront/project/src/hooks/storefront/useShop.ts +34 -0
  783. package/skills/wix-headless-templates/storefront/project/src/layouts/Layout.astro +22 -0
  784. package/skills/wix-headless-templates/storefront/project/src/layouts/SiteLayout.astro +65 -0
  785. package/skills/wix-headless-templates/storefront/project/src/pages/index.astro +8 -0
  786. package/skills/wix-headless-templates/storefront/project/src/styles/global.css +57 -0
  787. package/skills/wix-headless-templates/storefront/project/src/wix/config.ts +16 -0
  788. package/skills/wix-headless-templates/storefront/project/src/wix/media.ts +106 -0
  789. package/skills/wix-headless-templates/storefront/project/src/wix/money.ts +24 -0
  790. package/skills/wix-headless-templates/storefront/project/src/wix/sdk.ts +89 -0
  791. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/cart-core.ts +220 -0
  792. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/cart-store.ts +134 -0
  793. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/cart.ts +186 -0
  794. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/catalog-core.ts +698 -0
  795. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/catalog.ts +260 -0
  796. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/product-detail-store.ts +280 -0
  797. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/shop-store.ts +341 -0
  798. package/skills/wix-headless-templates/storefront/project/src/wix/storefront/types.ts +305 -0
  799. package/skills/wix-headless-templates/storefront/project/tsconfig.json +5 -0
  800. package/skills/wix-headless-templates/storefront/rest/cart.ts +183 -0
  801. package/skills/wix-headless-templates/storefront/rest/catalog.ts +267 -0
  802. package/skills/wix-headless-templates/storefront/seed/SEED.md +169 -0
  803. package/skills/wix-headless-templates/storefront/seed/read-site.mjs +38 -0
  804. package/skills/wix-headless-templates/storefront/seed/seed-store.mjs +839 -0
  805. package/skills/wix-manage/SKILL.md +11 -7
  806. package/skills/wix-manage/references/bookings/end-to-end-booking-flow.md +1 -1
  807. package/skills/wix-manage/references/custom-apps/use-app-skills-and-app-tools.md +206 -0
  808. package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +17 -24
  809. package/skills/wix-manage/references/sites/create-headless-site.md +2 -0
  810. package/skills/wix-manage/references/sites/upload-static-site.md +281 -171
  811. package/skills/wix-manage/references/stores/update-product-with-options.md +1 -1
  812. package/skills/wix-headless/entry/bootstrap.mjs +0 -156
  813. package/skills/wix-headless/entry/skill.md +0 -78
  814. package/skills/wix-headless-kit/cold-start/bootstrap.mjs +0 -156
  815. package/skills/wix-headless-kit/cold-start/cold-start.md +0 -111
  816. package/skills/wix-manage/references/bookings/booking-system-integration-gaps.md +0 -423
package/README.md CHANGED
@@ -59,6 +59,7 @@ npx skills add wix/skills -g
59
59
  | [wix-design-system](skills/wix-design-system/SKILL.md) | Wix Design System reference | Looking up WDS component props, examples, icons |
60
60
  | [wix-manage](skills/wix-manage/SKILL.md) | Wix business solution management | REST API operations for configuring and managing Wix business solutions |
61
61
  | [wix-headless-kit](skills/wix-headless-kit/SKILL.md) | Build and release a Wix Headless site on shipped, verified per-solution code | Building a new headless site for a business from a brief — store, bookings, blog, events, restaurants, members, donations and more — fast, with the integration code already written |
62
+ | [wix-headless-templates](skills/wix-headless-templates/SKILL.md) | The shipped per-solution code wix-headless-kit builds from | Reading what a solution's data layer, hooks, pages and seed do, or seeding a site by hand; the kit fetches and deploys it for you |
62
63
  | [wix-headless](skills/wix-headless/SKILL.md) | Connect Wix business services to a headless frontend (SDK + Wix CLI), and optionally build & host the site | Setting up a Wix Headless backend or adding Wix business features (Stores, Bookings, CMS, Blog, Events, Forms, Members, Restaurants, Portfolio, Pricing Plans) — install apps, seed content, and produce an SDK-integration guide; for managed projects also scaffold a new site (create) or wire an existing design (connect), then build and release. Works across managed, self-managed, and stripe project types |
63
64
  | [wix-vibe-headless](skills/wix-vibe-headless/SKILL.md) | Connect an existing front end to Wix over client-only REST | Wiring a vibe-coded / HTML / Vite app to a live Wix site (storefront, bookings, blog, events, portfolio, restaurants, CMS, pricing plans) from the browser with a public `WIX_CLIENT_ID` — no SDK, no backend |
64
65
  | [wix-docs](skills/wix-docs/SKILL.md) | Look up the Wix API/SDK docs (shared fallback) | Confirming an exact Wix endpoint, method schema, field, or enum before writing code — `curl` doc-search + the `.md`-twin trick, or the Wix MCP tools. Referenced by the other skills as their docs-lookup fallback |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/agent-skills",
3
- "version": "1.26.0",
3
+ "version": "1.28.0",
4
4
  "description": "Wix Skills for AI coding agents — versioned npm distribution of the wix/skills content.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,7 +24,7 @@ Helps build extensions for Wix CLI applications. Covers all extension types: das
24
24
  - [ ] **Step 2:** Read extension reference file(s) for the chosen type(s) and the project-wide [CODE_QUALITY.md](references/CODE_QUALITY.md)
25
25
  - [ ] **Dashboard page UI:** Translated the prompt into a workflow before choosing components — what the user must understand, focus on, investigate, act on, and see confirmed. See [UX Success Model](references/dashboard-page/UX_SUCCESS_MODEL.md), and the installed package's own `Collection Toolkit.md` guide for which component serves each need ([The Discovery Chain](references/WIX_PATTERNS_DOCS.md#the-discovery-chain)).
26
26
  - [ ] **No `SummaryBar` unless the request asked for one** — a named total, count, or "how many / how much" figure in the prompt. Not "the page seems like it wants one": an uninvited bar pushes the rows down and puts a number on screen nobody asked to be right about. When the request did ask, the number has to come from something that counts ([QUERY_AND_PAGING.md](references/dashboard-page/QUERY_AND_PAGING.md#what-fetchtotal-is-allowed-to-call)) and be read through `useSelector`, because the state is MobX ([TABLE_STATE.md](references/dashboard-page/TABLE_STATE.md#reading-state-outside-the-table-it-is-mobx)).
27
- - [ ] **A row the user can open, as a page** — `navigateToEntityPage` to an `EntityPage` when the record is editable, or to a read-only detail route when it isn't (the package's `Collection and Read-Only Detail Template`, reached from [DRAFT_TEMPLATE.md](references/dashboard-page/DRAFT_TEMPLATE.md)) — unless the prompt is explicitly a report or an export. **Never a `SidePanel`**: in Cairo that hosts a page's own panels. The template's page says why the read-only route is a WDS `Page` rather than an `EntityPage`.
27
+ - [ ] **A row the user can open, as a page — editable by default** — `navigateToEntityPage` to an `EntityPage` with a working form and save, for CMS and vertical SDK data alike; the three read-only cases are in [DRAFT_TEMPLATE.md](references/dashboard-page/DRAFT_TEMPLATE.md#2-choose-then-read-the-chosen-templates-page). Unless the prompt is explicitly a report or an export. **Never a `SidePanel`**: in Cairo that hosts a page's own panels.
28
28
  - [ ] **Every filter reaches the query**: declared in the collection hook's `filters` and read inside `fetchData`. Filter UI that never narrows the rows is a defect that looks like a feature.
29
29
 
30
30
  A filtered table with no drill-in and no working filters is what gets built when nobody states the requirement — the most common way a generated dashboard disappoints. The aggregate is the judgment call; the drill-in and the filters are not.
@@ -118,7 +118,7 @@ names the worked call, and `bundle` says whether props live in a `.d.ts` or in t
118
118
  table. Read the one artifact your open question needs. Resolve `<pkgRoot>` once per session
119
119
  ([Prerequisites](references/WIX_PATTERNS_DOCS.md#prerequisites)) and reuse it.
120
120
 
121
- **Add / edit / view one item from a collection is an `EntityPage`, not a dashboard modal** — see
121
+ **Opening one item from a collection uses an editable `EntityPage` by default; create/edit flows also use `EntityPage`, never a dashboard modal** — see
122
122
  [Entity create and edit](#entity-create-and-edit), and `Collection to Entity Flow.md` in the
123
123
  package for the flow itself.
124
124
 
@@ -160,7 +160,9 @@ Compose from WDS layout primitives (`Box`, `Card`, `Text`). Do not add a third U
160
160
 
161
161
  ### Entity create and edit
162
162
 
163
- **Any dialog that creates, updates, or displays one record listed by a collection page is an `EntityPage` — not a Dashboard Modal.** This holds whether the records come from a CMS collection or an existing Wix app's SDK. A create / "add new" form is included: it **writes** the record, so it is an `EntityPage` even though nothing is being edited yet. "It's a simple data-entry dialog, not an entity edit" is the wrong reading of this rule.
163
+ **Opening a record listed by a collection page uses an editable `EntityPage` by default, whether the records come from CMS or a vertical SDK.** A request for a table or list is enough; the user does not need to ask for editing separately. The three read-only cases are in [DRAFT_TEMPLATE.md](references/dashboard-page/DRAFT_TEMPLATE.md#2-choose-then-read-the-chosen-templates-page); a read-only detail page still opens as a route, never a Dashboard Modal or side panel.
164
+
165
+ **Any create or edit form for a listed record is an `EntityPage`, not a Dashboard Modal.** A create / "add new" form is included: it writes the record, so it is an `EntityPage` even though nothing is being edited yet. "It's a simple data-entry dialog, not an entity edit" is the wrong reading of this rule.
164
166
 
165
167
  A page that lists nothing — a settings page, an embedded-script config page — carries no `EntityPage` obligation. But "I built the list without `@wix/patterns`" is not an exception: a page that lists records should be a `CollectionPage`.
166
168
 
@@ -170,7 +172,7 @@ The documented flow:
170
172
 
171
173
  1. From the collection page's action cell or primary action, call `navigateToEntityPage({ path, entity })` from `usePatternsNavigate()`. (The patterns docs give this exact use case — "navigate to an entity page on an action cell click on a collection page" — and it renders the entity header immediately, before the fetch resolves.) On the **create** route there is no record to pass: omit `entity` and read the **Create route** section of `<pkgRoot>/dist/docs/useEntityPage.md`, which is what the whole "add new" flow turns on.
172
174
  2. Register the route with `PatternsReactRoute` inside `PatternsReactRouter`.
173
- 3. In the entity page, `useEntityPage({ fetch, onSave })` owns fetching, saving, validation, dirty state, loading skeletons, and error states. Form state comes from `useForm` / `useController` in `@wix/patterns/form`. The call itself — both generics, what `onSave` receives, which params exist — is in `<pkgRoot>/dist/docs/useEntityPage.md`.
175
+ 3. Follow the selected template's entity hook: for SDK/API data, `useEntityPage({ fetch, onSave })` owns fetching, saving, validation, dirty state, loading skeletons, and error states; for CMS, the schema variant derives reads and writes from the source. Form state comes from `@wix/patterns/form`. Use the chosen template's documented signature, and wire saves to the real source rather than local state or a no-op.
174
176
  4. Compose the body from `EntityPage.Header`, `EntityPage.MainContent`, `EntityPage.AdditionalContent`, and `EntityPage.Card`. **WDS goes inside those cards** — `FormField`, `Input`, `Text` for the individual fields.
175
177
 
176
178
  Use a Dashboard Modal for dialogs that neither write nor display a listed record: a delete or discard confirmation, an unsaved-changes prompt, an informational notice, or any dialog on a page that lists nothing. Dialog size and field count are not exceptions — a one-field create form over a listed record is still an `EntityPage`. Reach for a modal because the interaction persists nothing, never because "the form should open in a modal."
@@ -415,7 +417,7 @@ Before moving to Step 5, re-open every page file you just wrote and check the ac
415
417
 
416
418
  - [ ] **The page has a `SummaryBar` only if the request asked for one.** Grep for it: an uninvited bar is a defect, not a bonus, and deleting it is the fix. If the request *did* ask, every metric earns its place and the headline counts what **matches the filters** (`state.collection.total`, fed by `fetchTotal`), not what has been paged in — any metric derived from `keyedItems` is labelled as such.
417
419
  - [ ] **If a `SummaryBar` number is fed by `fetchTotal`, follow that function to the call it makes and confirm the call counts.** A `fetchTotal` that resolves `undefined` — the usual cause being `pagingMetadata.total`, which a cursor-paged response does not carry — makes the bar report `0` beside a table full of rows, and it compiles, runs and passes every other check on this list. It must resolve a number from a count endpoint (`items.query(id)…count()`, a vertical's own count, or offset paging with `returnTotalCount: true`); if the API has none, delete `fetchTotal` and label the metric as loaded rows. See [TABLE_STATE.md](references/dashboard-page/TABLE_STATE.md#a-fetchtotal-that-resolves-undefined-shows-0-not-the-rows).
418
- - [ ] **Every row opens a page**: a `navigateToEntityPage` call literally appears in `onRowClick` — unless the prompt is explicitly a report or export-only view. A `SidePanel` in a collection page file is the defect this replaces; a display-only page routes to a read-only detail page, it does not fall back to a panel. `grep -n "<SidePanel" <page files>` should return nothing — match the JSX tag, not the bare word, or the templates' own "never a SidePanel" comments fail the check and invite someone to "fix" correct code.
420
+ - [ ] **Every row opens an editable entity page by default**: `onRowClick` calls `navigateToEntityPage`, and the destination has an `EntityPage`, a working form, and a real save operation. A read-only route is justified by one of the three cases in [DRAFT_TEMPLATE.md](references/dashboard-page/DRAFT_TEMPLATE.md#2-choose-then-read-the-chosen-templates-page), and the final response names which one; report-only/export-only requests need no drill-in. The save calls the source's real update method and lets a failed call throw, so the page shows its error — no no-op, local-state-only save, or `catch` that swallows the failure. If Preview is available, change one field, reload to confirm it saved, and change it back; otherwise report the save as unverified. A `SidePanel` in a collection page file is the defect this replaces. `grep -n "<SidePanel" <page files>` should return nothing — match the JSX tag, not the bare word, or the templates' own "never a SidePanel" comments fail the check and invite someone to "fix" correct code.
419
421
  - [ ] Every filter name declared in the toolbar also appears inside `fetchData`'s query construction — grep for the name in both places if unsure.
420
422
  - [ ] The table wires `errorState` — without it a failed query is indistinguishable from a slow one, and the page you just shipped cannot tell you which it is.
421
423
  - [ ] **Routed templates only (all but the settings one) — the entry file both passes and guards `location`.** `PatternsReactRouter` throws at open when `location` is missing *or* still `undefined` on the first render, and `tsc`, `wix build` and even a green build all pass regardless. Both halves are required — the `location={location}` prop **and** the `location ? … : null` guard around it, since `observeState` has not fired yet on the first render. Grep the entry file rather than trusting recall:
@@ -490,7 +492,7 @@ Execute these steps sequentially after all implementation is complete. See [APP_
490
492
  1. **Package Installation** — Detect package manager, run install
491
493
  2. **TypeScript Compilation** — `npx tsc --noEmit -p .`
492
494
  3. **Build** — `npx wix build`
493
- 4. **Preview** — `npx wix preview`, in the foreground: it uploads, prints the preview URLs and exits on its own, so no `timeout`, backgrounding or `sleep`
495
+ 4. **Preview** — `npx wix preview`, in the foreground and unpiped: it uploads, prints the preview URLs and exits on its own, so no `timeout`, backgrounding, `sleep` or `| tail`. If your shell moves it to the background anyway, it stalled: read what it printed and `.wix/debug.log` once, then report that the preview did not complete. Don't poll, and don't promise a URL
494
496
 
495
497
  Stop and report errors if any step fails. Check `.wix/debug.log` on failures.
496
498
 
@@ -85,14 +85,18 @@ npx wix build
85
85
 
86
86
  ### Step 4: Preview Deployment
87
87
 
88
- `npx wix preview` is a one-shot command, not a server: it uploads a preview build, prints the preview URLs and **exits on its own**, in seconds. Run it in the foreground and read its output:
88
+ `npx wix preview` is a one-shot command, not a server: it uploads a preview build, prints the preview URLs and **exits on its own**, in seconds. Run it in the foreground, exactly as written, and read its output:
89
89
 
90
90
  ```bash
91
91
  npx wix preview
92
92
  ```
93
93
 
94
+ Don't pipe it (`| tail`, `| head`, `| grep`). The output is short, and a pipe holds back everything until the command exits, so a slow preview shows nothing at all.
95
+
94
96
  Don't wrap it in `timeout` (macOS has none, so the call fails before preview runs), background it, `sleep` or poll a log for it, or `kill` it afterwards. There is no process left to wait for or stop.
95
97
 
98
+ **If it doesn't return:** your shell may move a long call to the background on its own (for example, after a 120s limit). That means the preview stalled, not that it's still working normally. Read the output it left and `.wix/debug.log` **once**. If neither has the preview URLs, report "preview did not complete" with whatever they show and stop validation. Don't sleep, poll, schedule a wake-up or start the preview again, and don't tell the user a URL is coming.
99
+
96
100
  **Success criteria:**
97
101
  - The command exits 0
98
102
  - It printed `✔ Preview created successfully!` and the preview URLs
@@ -66,7 +66,7 @@ See [Dashboard API Reference](dashboard-page/DASHBOARD_API.md) for all methods,
66
66
 
67
67
  Dashboard Pages cannot use `<Modal />`. For a true dialog overlay you **MUST** use a dashboard modal extension — never a React modal or the WDS `Modal` component. Reserve it for dialogs that neither write nor display a listed record (delete/discard confirmations, unsaved-changes prompts, notices), plus any dialog on a page that lists nothing (settings, config). They open via `dashboard.openModal()` — see [Dashboard Modal reference](DASHBOARD_MODAL.md).
68
68
 
69
- > **🛑 The test — does the dialog create, update, or display one record this page lists?** If yes, it is an `EntityPage`, not a modal — whether those records come from a CMS collection or an existing Wix app's SDK. **A create / "add new" form is included**: it writes the record, so it is an `EntityPage` even though nothing is being edited yet. "It's a simple data-entry dialog, not an entity edit" is the wrong reading — the most common way the patterns-first rule gets dropped after the table is already correct.
69
+ > **🛑 The test — does the dialog create, update, or display one record this page lists?** If yes, it is a route, not a modal — whether those records come from a CMS collection or an existing Wix app's SDK. **A create / "add new" form is included**: it writes the record, so it is an `EntityPage` even though nothing is being edited yet. "It's a simple data-entry dialog, not an entity edit" is the wrong reading — the most common way the patterns-first rule gets dropped after the table is already correct.
70
70
  >
71
71
  > The `EntityPage` comes from `@wix/patterns`, reached via `usePatternsNavigate().navigateToEntityPage`, with `useEntityPage` owning fetch/save/validation and `@wix/patterns/form` owning form state. Its route is registered with `PatternsReactRoute` inside `PatternsReactRouter` — so do not hand-roll page location state to fake a second view (`useState<PageLocation>` as a stand-in for a route); that is the router's job, and needing it is the signal you skipped one.
72
72
  >
@@ -15,7 +15,7 @@ Data owned by an existing Wix business app is read and written through that app'
15
15
  | pricing plans / subscriptions | `@wix/pricing-plans` |
16
16
  | bookings / services / staff / time slots | `@wix/bookings` |
17
17
  | calendar events / schedules | `@wix/calendar` |
18
- | table reservations | `@wix/table-reservations` |
18
+ | table reservations | `@wix/table-reservations` (namespace `reservations`) — not `@wix/restaurants` |
19
19
  | restaurant menus / online orders | `@wix/restaurants` |
20
20
  | blog posts | `@wix/blog` |
21
21
  | site events / tickets / RSVPs | `@wix/events` |
@@ -21,10 +21,22 @@ for k, e in i.items():
21
21
 
22
22
  ## 2. Choose, then read the chosen template's page
23
23
 
24
- 1. `Read <pkgRoot>/dist/docs/Page Templates.md` — which pages the request needs (read-only list, list with create/edit, settings only, or list with create/edit and settings) and where the rows come from (your own fetch, or a CMS collection).
24
+ 1. `Read <pkgRoot>/dist/docs/Page Templates.md` — choose the editable collection template by default, then account for the three read-only cases below, settings, and where the rows come from (your own fetch, or a CMS collection).
25
25
  2. `Read` the chosen template's page (`dist/docs/<entry file>`) — its files, and the wiring to keep. Most of that wiring passes `tsc` and `wix build` when wrong and fails only in the browser, which is why [Step 5's Preview](../../SKILL.md#validation) is not optional for a routed page.
26
26
 
27
- Take the smallest template that covers what the request names. A settings area or an edit form nobody asked for is not "more complete" — [Step 4c's checklist](../../SKILL.md#step-4c-ux-completeness-self-audit) does not ask for one.
27
+ **Editing existing records is the default.** A site owner who opens a record from a dashboard table expects to fix what they see; a read-only page they never asked for sends them to a follow-up prompt. So every collection row opens an editable `EntityPage` with a working form and save operation, for CMS and SDK data alike. "Table", "list", "show" or "view" alone do not mean read-only. Apply this choice to each collection when a page contains several.
28
+
29
+ Use the `Collection and Read-Only Detail Template` instead in exactly three cases:
30
+
31
+ - **The user explicitly asks for read-only** — "view only", "do not allow changes".
32
+ - **The source is verified to support no edits** — the schema or the documented update API leaves no editable field, or it is a CMS collection that can never be updated (owned by a Wix app other than Members and Forms, shared from another site, or without an update operation). Otherwise keep immutable fields read-only and edit the rest. When editing only needs setup (a permission, a role, an elevated backend call), keep the editable page and name the setup. Never ship a form whose save always fails, and never invent an update method or a no-op save handler to satisfy the default.
33
+ - **The records are a log your app writes** — a backend event handler or job records something that happened elsewhere (a payment, a submission, an audit entry). Editing such a record falsifies history without changing what it describes, so it opens read-only unless the user asks to edit it.
34
+
35
+ An explicit report-only or export-only request needs no detail page at all.
36
+
37
+ An existing read-only page in the project shows how to call the data, not what to build; start from the template.
38
+
39
+ Add create, delete or settings only when the workflow needs them; otherwise remove the template's create action and `/new` route. For a read-only CMS page, keep the schema-driven collection and adapt its detail route to the read-only layout rather than exposing the entity form.
28
40
 
29
41
  ## 3. Copy it into the extension
30
42
 
@@ -120,17 +120,16 @@ Presentation success applies across all five stages. Choose both the right **rep
120
120
 
121
121
  ### Choosing the Right Drill-In
122
122
 
123
- Choose the smallest interface that gives users enough context and room to complete the task. These are defaults, not rigid rules.
123
+ Choose the interface that gives users enough context and room to complete the task. These are defaults, not rigid rules.
124
124
 
125
125
  | Interface | Use when… | Success looks like… |
126
126
  |---|---|---|
127
- | **Entity page** | The item is editable — the default for a business record. | Enough space and structure to complete deeper work. |
128
- | **Read-only detail page** | The collection is display-only. | Fully readable, linkable, one back-click from the list. |
127
+ | **Entity page** | Default for opening a business record. | Editable fields, validation, and a save that persists. |
128
+ | **Read-only detail page** | One of the [three read-only cases](DRAFT_TEMPLATE.md#2-choose-then-read-the-chosen-templates-page). | Linkable, one back-click from the list; the reason stated. |
129
129
  | **Modal** | A focused, bounded task that is not "open this record". | Attention stays on one task; the user returns cleanly. |
130
130
  | **Inline or expanded row** | A quick look *alongside* the drill-in, not instead of it. | Detail appears without a separate workspace. |
131
131
 
132
- Opening an item is a **route**, editable or not — a constraint, not a preference, and it outranks
133
- "smallest interface". A side panel is not one of the choices: in Cairo it hosts a page's own
132
+ Opening an item is a **route**, editable or not — a constraint, not a preference. A side panel is not one of the choices: in Cairo it hosts a page's own
134
133
  panels. A display-only record still routes, just to a WDS `Page`, since `EntityPage` has no view
135
134
  mode.
136
135
 
@@ -4,13 +4,21 @@
4
4
 
5
5
  ```typescript
6
6
  if (v === 'V3_CATALOG') {
7
- const product = await productsV3.getProduct(id); // returns Product directly
7
+ const product = await productsV3.getProduct(id); // returns V3Product directly
8
8
  return product;
9
9
  }
10
10
  const { product } = await products.getProduct(id); // V1 wraps in { product }
11
11
  return product;
12
12
  ```
13
13
 
14
+ The V3 entity type is `productsV3.V3Product`.
15
+
16
+ ---
17
+
18
+ ## Product page URL
19
+
20
+ V3 `product.url` is populated only when the request's `fields` includes `'URL'` — `getProduct(id, { fields: ['URL'] })`, or the direct-call `searchProducts` / `queryProducts(query, { fields: ['URL'] })` (the fluent builder's `.find()` takes no options). V1 `productPageUrl` is an object, `{ base, path }`, not a string.
21
+
14
22
  ---
15
23
 
16
24
  ## Read product options and choices (V1 vs V3)
@@ -18,6 +18,8 @@ if (v === 'V3_CATALOG') {
18
18
  }
19
19
  ```
20
20
 
21
+ V3 increments work only for inventory items with `trackQuantity: true`; the entries are `{ inventoryItemId, incrementBy }` with `incrementBy` 1 to 99999.
22
+
21
23
  To find a V3 inventory item ID, use `inventoryItemsV3.searchInventoryItems` filtered by `productId` / `variantId`.
22
24
 
23
25
  ---
@@ -8,7 +8,7 @@ Both versions expose a fluent query builder, but the paging method differs:
8
8
  |--------|--------------------------------|----------------------------------|
9
9
  | API style | Fluent builder: `.skip().limit().find()` | Fluent builder: `.skipTo(cursor).limit().find()` |
10
10
  | Pagination | Offset (`.skip(n)`) | Cursor (`.skipTo(cursor)`) |
11
- | Result `items` | `res.items` (V1 `Product[]`) | `res.items` (V3 `Product[]`) |
11
+ | Result `items` | `res.items` (V1 `Product[]`) | `res.items` (V3 `productsV3.V3Product[]`) |
12
12
  | Total count | `res.totalCount` | **None** — V3 only has `cursors.next` + `hasNext()` |
13
13
  | `hasNext` | `res.hasNext()` (method) | `res.hasNext()` (method) |
14
14
  | Next cursor | n/a | `res.cursors.next` (string) |
@@ -35,7 +35,7 @@ export async function listProductsPage(
35
35
  if (v === 'V3_CATALOG') {
36
36
  let builder = productsV3.queryProducts().limit(limit);
37
37
  if (typeof cursorOrSkip === 'string') builder = builder.skipTo(cursorOrSkip);
38
- // Do NOT chain a sort — see OVERVIEW.md gotcha #10.
38
+ // Do NOT chain a sort — see [STORES_VERSIONING.md](../STORES_VERSIONING.md) gotcha #10.
39
39
  const res = await builder.find();
40
40
  return {
41
41
  products: res.items,
@@ -32,7 +32,7 @@ return product;
32
32
 
33
33
  ```typescript
34
34
  if (v === 'V3_CATALOG') {
35
- // Signature: updateProduct(_id, productFields). Returns Product directly.
35
+ // Signature: updateProduct(_id, productFields). Returns V3Product directly.
36
36
  const current = await productsV3.getProduct(id);
37
37
  if (current.revision == null) throw new Error(`Product ${id} has no revision`);
38
38
  return await productsV3.updateProduct(id, {
@@ -21,8 +21,9 @@ doesn't express — or once the site exists and the work turns to managing or ex
21
21
 
22
22
  ## The model
23
23
 
24
- - **Shipped code is the implementation.** Every vertical ships under `templates/<vertical>/` in
25
- the skill's repository, not in the skill folder: `node <SKILL_ROOT>/install/templates.mjs`
24
+ - **Shipped code is the implementation.** Every vertical ships in the repository's
25
+ `wix-headless-templates` skill (`skills/wix-headless-templates/<vertical>/`), not in this skill's
26
+ folder: `node <SKILL_ROOT>/install/templates.mjs`
26
27
  fetches all of it once into `<SKILL_ROOT>/templates/` (a second) and prints the path; every
27
28
  script below fetches it itself when the folder is missing. The folder stays with the project
28
29
  (only the composed `project/` scaffolds are left out of its repository), so a later session
@@ -84,7 +85,7 @@ doesn't express — or once the site exists and the work turns to managing or ex
84
85
 
85
86
  ## The run
86
87
 
87
- Needed throughout: Node ≥ 20.11, git, a logged-in Wix CLI (`npx @wix/cli@latest whoami`;
88
+ Needed throughout: Node ≥ 22.12 (Astro 7; the Wix CLI alone runs on 20.11), git, a logged-in Wix CLI (`npx @wix/cli@latest whoami`;
88
89
  `npx @wix/cli@latest login` is a device-code flow: surface the URL and code to the user, never
89
90
  read tokens into context), and the two companion skills installed beside this one, `wix-docs`
90
91
  and `wix-manage`. `node <SKILL_ROOT>/install/bootstrap.mjs` checks the CLI and runs the login
@@ -157,7 +158,7 @@ only after an explicit yes, never automatically. Step 5 ends with the same self-
157
158
  |---|---|
158
159
  | supplies the content in any form: a CSV, JSON or spreadsheet, a list in the prompt, a PDF price list, a folder of photos and a text file, a link to their current catalog, anything that names the content | that IS the plan: map it into `plan.json` per `templates/shared/SUPPLIED-CONTENT.md` and the vertical's `SEED.md` ("Supplied content"), every entry, names and prices verbatim, their images and no others |
159
160
  | describes the content without listing it ("a store for hand-poured candles, four of them", "a dozen FAQ questions in three groups") | draft a plan from the description per the vertical's `SEED.md` (read only that for this; save `INSTRUCTIONS.md` for step 4) |
160
- | says nothing about content ("build me a store") | on a site this run makes (create, adopt) draft a plan per the vertical's `SEED.md` so the site opens with content, and say in the closing message that it is placeholder content and where to replace it; on a site that existed before the run (attach, iterate, published-static, migrate) no plan and no seed: the site holds what the owner put there |
161
+ | says nothing about content ("build me a store") | on a site made for this run (create, adopt, config-only) draft a plan per the vertical's `SEED.md` so the site opens with content — demo content the agent decides on, without being asked — and say in the closing message that it is placeholder content and where the owner edits it. On a site that existed before the run: seed nothing; its content is its own |
161
162
 
162
163
  **An existing site has no plan of its own**: when the brief names a site by its id, or the
163
164
  folder's config does, the site holds the content already; the frontend reads what is there
@@ -184,21 +185,30 @@ only after an explicit yes, never automatically. Step 5 ends with the same self-
184
185
  | nothing, or loose files (a CSV, a brief) | **empty** → create | `wix create` with the vertical's composed template, here; `--business-name` names the site | **yes**, from `--plan` |
185
186
  | a frontend, no config (a `package.json`, or `index.html` at the root: someone's Astro, Vite, Next, plain HTML) | **project** → adopt | `init` in place gives it a new, empty site, then deploys; `--stack` from step 1 is required; make the project what that stack needs on Wix hosting (step 1) before or right after | **yes**, from `--plan` |
186
187
  | a config whose `.env.local` declares an active editor migration (`EDITOR_MIGRATION_STATUS=ACTIVE`), with or without the blank Astro starter the download carries | **migration** → migrate | the shipped code into the starter (or the composed template around a bare config), deployed with the migrated site's app as the client, the install starts; `ready_for_brand_layer` says `mode: "migrate"`, the parent as `siteId`, the child as `deploySiteId` (`guides/migration.md`) | no, ever |
187
- | a config, no frontend | **config-only** → refuses | the site exists and has no frontend yet: `attach.mjs` (below) takes the site from the config, reuses its hosting, scaffolds and deploys | no |
188
+ | a config, no frontend | **config-only** → refuses | the site exists and has no frontend yet: `attach.mjs` (below) takes the site from the config, reuses its hosting, scaffolds and deploys. That config is what `init` leaves behind, and `init` always creates a site: this site was made for this run and is empty | **yes**: draft the plan as for create, then `attach.mjs --plan` |
188
189
  | a config and a frontend (a `package.json`, or `index.html` inside the folder `site.outputDirectory` names) | **wix-project** → refuses | iterate: never scaffold, `init` or reseed. `deploy.mjs <vertical…> --stack <stack>` adds a solution (the client id comes from `.env.local`, the config as the fallback), then ONE `npm install`; a change is file edits; then release | no |
189
190
  | a config, `index.html` at the root, no `package.json` (a site published through the drop flow and downloaded) | **published-static** | the config's site, no `init`: `site/` becomes the upload, the REST layer deploys into `site/js/wix/`; the `next` says to move the pages, styles and assets in; release keeps the URL | no |
190
191
 
191
- **Setup seeds only a site it created in this run** (create and adopt: the site is empty by
192
- construction, so the plan from step 2 goes in with the one call). A site that existed before
193
- the run holds content the run did not make: read it first with the vertical's
194
- `seed/read-site.mjs`, then, when the brief supplies or describes content, run the vertical's
195
- seed module yourself with a plan (from the project root:
196
- `node <SKILL_ROOT>/templates/<vertical>/seed/seed-<vertical>.mjs plan.json`). Seeds are
197
- additive and idempotent by name; nothing on a site is ever deleted or overwritten.
192
+ **Who decides the seed: where the site came from, never the brief's wording.** A site made
193
+ for this run is empty by construction, so it is always seeded — with the brief's content when
194
+ it supplies or describes any, otherwise with demo content the agent drafts per the vertical's
195
+ `SEED.md`, without being asked, so the site opens with something to see. Made for this run
196
+ means: setup created it (create, adopt), or the folder held only a `wix.config.json` and no
197
+ frontend (config-only — the config is what `init` leaves behind, and `init` always creates a
198
+ site; attach reports `siteOrigin: "init"`). A site that existed before the run — named by its
199
+ id in the brief or by `--site`, a project linked to it, a migration's parent (attach reports
200
+ `siteOrigin: "given"`) — holds content the run did not make: seed only what the brief
201
+ **supplies or asks to add** (`attach.mjs --plan plan.json`, or the vertical's seed module from
202
+ the project root: `node <SKILL_ROOT>/templates/<vertical>/seed/seed-<vertical>.mjs plan.json`),
203
+ and never invent content for it. "A new storefront for my toy store" describes the business,
204
+ not content to add: nothing is seeded. Read an existing site first either way
205
+ (`seed/read-site.mjs`). Seeds are additive and idempotent by name; nothing on a site is ever
206
+ deleted or overwritten, and the result's `preexisting[]` names what was already there.
198
207
 
199
208
  - The brief names a site by id → not this call: read `<SKILL_ROOT>/guides/existing-site.md`
200
209
  and follow it (read the site, then `attach.mjs`, which does what setup does against the
201
- site given; self-hosting and a project already on disk are in there too).
210
+ site given and seeds only with `--plan`, which that guide says to pass only for content the
211
+ brief supplies or asks to add; self-hosting and a project already on disk are in there too).
202
212
 
203
213
  `--vertical` is required and picks which shipped code deploys AND which seed runs. The
204
214
  `ready_for_brand_layer` event says `mode` (`create`, `adopt`, `migrate`, `published-static`),
@@ -267,7 +277,14 @@ only after an explicit yes, never automatically. Step 5 ends with the same self-
267
277
  `https://manage.wix.com/dashboard/<siteId>` (the `siteId` of the `ready_for_brand_layer`
268
278
  event: on a migration preview that is the migrated site's dashboard, the release URL is the
269
279
  preview's, the original site is unchanged, and completing the migration is the user's next
270
- step in the Wix CLI once they approve — say all three). **Copy the live URL verbatim from the
280
+ step in the Wix CLI once they approve — say all three). When the site takes money through
281
+ hosted checkout (a cart, a paid booking or rental, tickets, plans, donations) and nothing says
282
+ payments are already set up, say what a visitor meets at checkout until they are — "We
283
+ can't accept online payments. Contact us for help with your order." — and hand the two links
284
+ that fix it: **Accept payments** `https://manage.wix.com/dashboard/<siteId>/wix-cashier/payments`
285
+ (connect a payment method; "manual payments" is enough for free and pay-in-person flows) and
286
+ **Upgrade the plan** `https://www.wix.com/upgrade/website?metaSiteId=<siteId>` (online payments
287
+ need a premium plan). Both are the owner's steps, not a defect in the site. **Copy the live URL verbatim from the
271
288
  `wix release` output — never retype it from memory** (a mistyped subdomain hands the user
272
289
  a 404). Before you sign off, run the feedback self-check over the whole session
273
290
  (`guides/feedback.md`): anything that cost more turns than it should have, including what you
@@ -285,6 +302,10 @@ browser versus the server, the OAuth allow-list for a self-hosted origin, pre-re
285
302
  how to close such a run. A public site is still better served by managed Astro; say so when you
286
303
  close.
287
304
 
305
+ Without a machine at all, or when the install, the CLI or the login is blocked where you are,
306
+ read `<SKILL_ROOT>/guides/no-machine.md`: the same run, step by step, as the Wix API calls the
307
+ scripts make and the files beside this skill that carry the contracts.
308
+
288
309
  ## Verticals
289
310
 
290
311
  The shortlist. Match the brief against the first column; when it names a Wix product or a
@@ -1,7 +1,10 @@
1
1
  # An existing site: a new frontend for a site that already has its content
2
2
 
3
- Read when the brief names a Wix site by its id. Nothing here is seeded: the site owns its content
4
- and the frontend reads it live. (A project downloaded from Wix whose `.env.local` declares a
3
+ Read when the brief names a Wix site by its id. That site existed before the run, so it owns its
4
+ content and the frontend reads it live. Pass `--plan` only for content the brief **supplies or
5
+ asks to add**; never draft demo content for it, however the brief describes the business (that
6
+ is the create flow's job on a site made for the run — a folder holding only a `wix.config.json`
7
+ is that case too: `init` made the site; SKILL.md step 3). (A project downloaded from Wix whose `.env.local` declares a
5
8
  migration is the other way to arrive at an existing site: `guides/migration.md`; the reading
6
9
  part below applies there too, against the migrated site.) `<SKILL_ROOT>` is the installed skill folder; the shipped code is
7
10
  under `<SKILL_ROOT>/templates/` (SKILL.md, "The run").
@@ -20,14 +23,18 @@ so on per the Verticals table); the brief picks among them. Then one determinist
20
23
  shape as setup (SKILL.md step 3):
21
24
 
22
25
  ```bash
23
- node <SKILL_ROOT>/install/attach.mjs --site <siteId> --business-name "<site name>" --vertical <vertical>[,<vertical>]
26
+ node <SKILL_ROOT>/install/attach.mjs --site <siteId> --business-name "<site name>" --vertical <vertical>[,<vertical>] [--plan plan.json]
24
27
  ```
25
28
 
26
29
  `init`/`wix create` always create a site, so they are not used here. attach does what they do
27
30
  after creating one — the site's OAuth app, Wix hosting, `wix.config.json` — against the site
28
31
  given, copies the first vertical's composed template, deploys the rest, and starts the install
29
- detached. No seed runs and nothing on the site changes: the content is the site's own, read
30
- live through the deployed data layer. `attached` also says whether a frontend is already
32
+ detached. With `--plan` the first vertical's seed runs with it, detached like setup's (sync on
33
+ `.seed-exit` before release; `preexisting[]` in the result names what the site already held —
34
+ nothing is deleted or overwritten). `--plan` also carries the plan's `capabilities` into the
35
+ deploy. Without it nothing seeds and nothing on the site changes: the content is the site's own,
36
+ read live through the deployed data layer. A vertical whose seed only installs an app (members:
37
+ the Members Area, the profile layer) still needs that seed; attach says so in a `note`. `attached` also says whether a frontend is already
31
38
  serving at the site's address (`frontend.serving`, with the release date). When it is, a
32
39
  `wix release` from this project replaces it — the old deployment keeps its own address and
33
40
  production can be pointed back, but the user's site changes. Tell the user before you release,
@@ -0,0 +1,115 @@
1
+ # No machine: the kit's run through the Wix APIs
2
+
3
+ Read when you cannot run the commands this skill is built on: no shell, no file system, no Node, a
4
+ sandbox that blocks the install, the CLI or the login, or a host that only talks to Wix through
5
+ the Wix MCP. Nothing in this guide installs, downloads or runs anything. It walks the run of
6
+ SKILL.md step by step and names, for each, the Wix API call the CLI or the script performs, and
7
+ the file beside this skill that carries the contract.
8
+
9
+ ## Where these skills are
10
+
11
+ This skill is one of a set, and the guide reads from three of them:
12
+
13
+ - `<SKILL_ROOT>` — this skill, `wix-headless-kit`: the run, its guides, the Verticals table.
14
+ - `<TEMPLATES>` — `wix-headless-templates`: the shipped, verified code per Wix Business Solution,
15
+ one folder each, with its `INSTRUCTIONS.md` (the contracts), `seed/` (the seed script and
16
+ `SEED.md`) and `rest/` (the data layer over plain `fetch`). Installed beside this skill, or
17
+ fetched to `<SKILL_ROOT>/templates/`.
18
+ - `<MANAGE>` — `wix-manage`: REST recipes to configure and manage a site's business solutions, one
19
+ recipe per operation with the exact endpoint and payload; its `SKILL.md` is the index.
20
+ - `<DOCS>` — `wix-docs`: how to look up the Wix API and SDK documentation and confirm a method's
21
+ exact shape before writing a call.
22
+
23
+ They install together and sit beside each other. When you are reading this skill online rather
24
+ than from an install, the others are published alongside it, by those names, and each skill's
25
+ manifest lists its files. Read each file in full: a fetch tool that summarizes drops the exact
26
+ calls and shapes; a tool that returns the file's text, or one that runs code and can fetch a URL,
27
+ does not.
28
+
29
+ Two things such a run does not produce, and never claims: a frontend built from the shipped `app/`
30
+ code (that needs a build), and a release of one. Everything else the kit does to a site, it does
31
+ through calls you can make.
32
+
33
+ ## 0. Identity
34
+
35
+ Every call below runs as the site owner, with whatever identity your host gives you: the Wix
36
+ MCP's `ExecuteWixAPI` carries the user's login; an API key from the user's account goes in the
37
+ `Authorization` header of any call, as `<MANAGE>/SKILL.md` describes; a site token from the Wix CLI
38
+ works the same way when the user runs the CLI for you. The site's OAuth app (`client_id`) mints
39
+ visitor tokens only, which cover what a visitor may see and nothing here.
40
+
41
+ ## 1. The brief → the solutions
42
+
43
+ Unchanged from SKILL.md step 2 and its Verticals table: the brief names the business, the table
44
+ names the solutions it needs. Read each solution's `<TEMPLATES>/<solution>/INSTRUCTIONS.md` for
45
+ what it covers and `<TEMPLATES>/<solution>/seed/SEED.md` for what a seeded site holds.
46
+
47
+ ## 2. The site
48
+
49
+ The CLI's `npm create @wix/new` is one call: `POST /headless-business-setup/v1/headless-business/provision`,
50
+ with `origin: agent-<your-id>`, a name, and the solutions to install as `seedOptions`. The recipe
51
+ is `<MANAGE>/references/sites/create-headless-site.md`; it returns the `metaSiteId` and the
52
+ site's OAuth client `appId`. Do not create a site any other way: a project from Create Project or
53
+ a template is neither headless nor publishable, and a later run with a machine cannot attach to it.
54
+
55
+ A site that already exists (the brief names it) is read first, never seeded unasked: SKILL.md
56
+ step 2 and `<SKILL_ROOT>/guides/existing-site.md` apply as written.
57
+
58
+ ## 3. The apps
59
+
60
+ A solution the provision call did not install, or a capability's app (Members Area, Forms,
61
+ Restaurants, Donations, FAQ), goes on with the Apps Installer:
62
+ `<MANAGE>/references/app-installation/install-wix-apps.md`. The app ids are in each
63
+ `seed-<solution>.mjs`, which installs them before seeding.
64
+
65
+ ## 4. The seed
66
+
67
+ `seed-<solution>.mjs` is a sequence of REST calls, and `SEED.md` is its contract: the plan shape
68
+ (what to create, how many, which images), the order the entities need, and the traps the script
69
+ encodes (a Bookings service needs a category to be visible and takes resource ids, not staff ids;
70
+ a Forms field is registered by its `validation` block; a product's choice photos are linked after
71
+ the gallery holds them). Read `SEED.md`, read the script for any call `SEED.md` only names, and make the same
72
+ calls through `<MANAGE>`'s recipe for each (services, products, posts, events, collections). Keep
73
+ the script's rules: create, never delete, and report what the site already held. Image prompts
74
+ need the Media Manager; without it, products and services stay text-only, say so.
75
+
76
+ ## 5. The frontend
77
+
78
+ The shipped `app/` code cannot be built here, and the Astro pages cannot be released. A page can
79
+ still be shipped: one self-contained `index.html` that loads the Wix SDK from a package CDN and
80
+ talks to the site as a visitor, dropped onto the site from step 2 through
81
+ `<MANAGE>/references/sites/upload-static-site.md`. The kit's own frontend for this site is a run
82
+ with a machine, which attaches to this site (`guides/existing-site.md`) rather than making a new one.
83
+
84
+ **The page.** One file, a few hundred lines, written in full before the first drop: the drop takes
85
+ the complete file set in one call, and a response has a hard size limit, so there is no second
86
+ pass. The SDK comes from a pinned package URL, `https://esm.sh/@wix/sdk@<version>` and the
87
+ solution's package (`@wix/bookings`, `@wix/stores`, `@wix/blog`, …); the client is
88
+ `createClient({ modules: { … }, auth: OAuthStrategy({ clientId }) })` with the `appId` the provision
89
+ call returned, and the SDK mints and refreshes the visitor token itself. Markup, a render function
90
+ per state, the event handlers: that is what you write. Keep what the page shows to what the site
91
+ holds; nothing invented, as in SKILL.md step 4.
92
+
93
+ **The calls.** Take every SDK call's shape from the kit's own transport for the solution,
94
+ `<TEMPLATES>/<solution>/app/wix/<solution>/*.ts` (`services.ts`, `booking.ts`, `catalog.ts`, …,
95
+ with `<TEMPLATES>/shared/app/wix/sdk.ts` for the client wiring): those files call the same SDK
96
+ modules the page imports, and they are verified. Copy the form of the call, not the file. The
97
+ cores beside them (`*-core.ts`) hold the rules the page needs and nothing else does: which fields
98
+ to read, how a price or a duration is formatted, which slot is bookable, how an id is read.
99
+
100
+ **A call those files don't cover** is confirmed before it is written, the way `<DOCS>` describes:
101
+ the method's SDK page, and when the page and the package disagree, the package's own type
102
+ declarations (the `@wix/auto_sdk_<solution>_<module>` package the solution package depends on,
103
+ its `index.d.ts`) are the truth. Two shapes that recur, as examples of what the types settle and
104
+ the kit's files already encode: SDK query methods return a query builder finished with `.find()`;
105
+ and an entity's id arrives as `_id` on some objects and `id` on others (the kit reads both,
106
+ `rawId`). Dates travel as local
107
+ wall-clock strings in the business time zone. A page cannot be run here, so a wrong shape fails
108
+ silently in the browser; the file beside the skill is the check that is available.
109
+
110
+ ## 6. Closing
111
+
112
+ As in SKILL.md step 5, minus the live URL when nothing was released: what exists on the site, by
113
+ name; the dashboard link `https://manage.wix.com/dashboard/<metaSiteId>` and each solution's own
114
+ pages from its INSTRUCTIONS.md table; what is placeholder; payments, when the site takes money;
115
+ and what this run could not do, with the site id, so a run with a machine continues here.