@vendure-platform/create 0.1.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 (531) hide show
  1. package/README.md +70 -0
  2. package/dist/assets/demo-data/branding/logo.svg +4 -0
  3. package/dist/assets/demo-data/images/absorbent-pad.webp +0 -0
  4. package/dist/assets/demo-data/images/adjustable-wrench.webp +0 -0
  5. package/dist/assets/demo-data/images/anchor-bolt.webp +0 -0
  6. package/dist/assets/demo-data/images/angle-grinder.webp +0 -0
  7. package/dist/assets/demo-data/images/barrier-tape.webp +0 -0
  8. package/dist/assets/demo-data/images/bench-grinder.webp +0 -0
  9. package/dist/assets/demo-data/images/bracket.webp +0 -0
  10. package/dist/assets/demo-data/images/broom.webp +0 -0
  11. package/dist/assets/demo-data/images/bucket.webp +0 -0
  12. package/dist/assets/demo-data/images/cable-gland.webp +0 -0
  13. package/dist/assets/demo-data/images/cable-tie.webp +0 -0
  14. package/dist/assets/demo-data/images/cable-tray.webp +0 -0
  15. package/dist/assets/demo-data/images/cable.webp +0 -0
  16. package/dist/assets/demo-data/images/chimney-base-kit.webp +0 -0
  17. package/dist/assets/demo-data/images/chimney-cowl-bird-guard.webp +0 -0
  18. package/dist/assets/demo-data/images/chimney-cowl-open.webp +0 -0
  19. package/dist/assets/demo-data/images/chimney-storm-collar.webp +0 -0
  20. package/dist/assets/demo-data/images/chimney-wall-bracket.webp +0 -0
  21. package/dist/assets/demo-data/images/circular-saw.webp +0 -0
  22. package/dist/assets/demo-data/images/cleaning-spray.webp +0 -0
  23. package/dist/assets/demo-data/images/conduit.webp +0 -0
  24. package/dist/assets/demo-data/images/cordless-drill.webp +0 -0
  25. package/dist/assets/demo-data/images/drill-bits.webp +0 -0
  26. package/dist/assets/demo-data/images/dust-mask.webp +0 -0
  27. package/dist/assets/demo-data/images/ear-defenders.webp +0 -0
  28. package/dist/assets/demo-data/images/ear-plugs.webp +0 -0
  29. package/dist/assets/demo-data/images/extension-lead.webp +0 -0
  30. package/dist/assets/demo-data/images/eye-wash-station.webp +0 -0
  31. package/dist/assets/demo-data/images/face-shield.webp +0 -0
  32. package/dist/assets/demo-data/images/file-set.webp +0 -0
  33. package/dist/assets/demo-data/images/first-aid-kit.webp +0 -0
  34. package/dist/assets/demo-data/images/floor-sign.webp +0 -0
  35. package/dist/assets/demo-data/images/flue-bend-45.webp +0 -0
  36. package/dist/assets/demo-data/images/flue-bend-90.webp +0 -0
  37. package/dist/assets/demo-data/images/flue-section-1000mm.webp +0 -0
  38. package/dist/assets/demo-data/images/flue-section-250mm.webp +0 -0
  39. package/dist/assets/demo-data/images/flue-section-500mm.webp +0 -0
  40. package/dist/assets/demo-data/images/fuse.webp +0 -0
  41. package/dist/assets/demo-data/images/glove-dispenser.webp +0 -0
  42. package/dist/assets/demo-data/images/grinding-disc.webp +0 -0
  43. package/dist/assets/demo-data/images/hacksaw.webp +0 -0
  44. package/dist/assets/demo-data/images/hammer.webp +0 -0
  45. package/dist/assets/demo-data/images/hand-sanitiser.webp +0 -0
  46. package/dist/assets/demo-data/images/head-torch.webp +0 -0
  47. package/dist/assets/demo-data/images/heat-gun.webp +0 -0
  48. package/dist/assets/demo-data/images/hex-bolt.webp +0 -0
  49. package/dist/assets/demo-data/images/hex-key-set.webp +0 -0
  50. package/dist/assets/demo-data/images/hex-nut.webp +0 -0
  51. package/dist/assets/demo-data/images/hi-vis-jacket.webp +0 -0
  52. package/dist/assets/demo-data/images/hi-vis-vest.webp +0 -0
  53. package/dist/assets/demo-data/images/hose-clamp.webp +0 -0
  54. package/dist/assets/demo-data/images/impact-driver.webp +0 -0
  55. package/dist/assets/demo-data/images/jigsaw.webp +0 -0
  56. package/dist/assets/demo-data/images/junction-box.webp +0 -0
  57. package/dist/assets/demo-data/images/knee-pads.webp +0 -0
  58. package/dist/assets/demo-data/images/machine-screw.webp +0 -0
  59. package/dist/assets/demo-data/images/made-to-order-configurable-chimney.webp +0 -0
  60. package/dist/assets/demo-data/images/mallet.webp +0 -0
  61. package/dist/assets/demo-data/images/mcb.webp +0 -0
  62. package/dist/assets/demo-data/images/mop.webp +0 -0
  63. package/dist/assets/demo-data/images/paper-towels.webp +0 -0
  64. package/dist/assets/demo-data/images/pipe-wrench.webp +0 -0
  65. package/dist/assets/demo-data/images/pliers-set.webp +0 -0
  66. package/dist/assets/demo-data/images/pry-bar.webp +0 -0
  67. package/dist/assets/demo-data/images/rcd.webp +0 -0
  68. package/dist/assets/demo-data/images/reciprocating-saw.webp +0 -0
  69. package/dist/assets/demo-data/images/rivet.webp +0 -0
  70. package/dist/assets/demo-data/images/roof-flashing-high-pitch.webp +0 -0
  71. package/dist/assets/demo-data/images/roof-flashing-low-pitch.webp +0 -0
  72. package/dist/assets/demo-data/images/safety-boots.webp +0 -0
  73. package/dist/assets/demo-data/images/safety-glasses.webp +0 -0
  74. package/dist/assets/demo-data/images/safety-harness.webp +0 -0
  75. package/dist/assets/demo-data/images/safety-helmet.webp +0 -0
  76. package/dist/assets/demo-data/images/safety-sign.webp +0 -0
  77. package/dist/assets/demo-data/images/sanding-disc.webp +0 -0
  78. package/dist/assets/demo-data/images/saw-blade.webp +0 -0
  79. package/dist/assets/demo-data/images/screwdriver-set.webp +0 -0
  80. package/dist/assets/demo-data/images/screwdriver.webp +0 -0
  81. package/dist/assets/demo-data/images/self-tapping-screw.webp +0 -0
  82. package/dist/assets/demo-data/images/socket-set.webp +0 -0
  83. package/dist/assets/demo-data/images/socket.webp +0 -0
  84. package/dist/assets/demo-data/images/spanner-set.webp +0 -0
  85. package/dist/assets/demo-data/images/spanner.webp +0 -0
  86. package/dist/assets/demo-data/images/spill-kit.webp +0 -0
  87. package/dist/assets/demo-data/images/spirit-level.webp +0 -0
  88. package/dist/assets/demo-data/images/switch.webp +0 -0
  89. package/dist/assets/demo-data/images/tape-measure.webp +0 -0
  90. package/dist/assets/demo-data/images/terminal-block.webp +0 -0
  91. package/dist/assets/demo-data/images/threaded-rod.webp +0 -0
  92. package/dist/assets/demo-data/images/torque-wrench.webp +0 -0
  93. package/dist/assets/demo-data/images/utility-knife.webp +0 -0
  94. package/dist/assets/demo-data/images/wall-pass-sleeve.webp +0 -0
  95. package/dist/assets/demo-data/images/wall-plug.webp +0 -0
  96. package/dist/assets/demo-data/images/washer.webp +0 -0
  97. package/dist/assets/demo-data/images/waste-bin.webp +0 -0
  98. package/dist/assets/demo-data/images/wire-connector.webp +0 -0
  99. package/dist/assets/demo-data/images/wire-cutters.webp +0 -0
  100. package/dist/assets/demo-data/images/wood-screw.webp +0 -0
  101. package/dist/assets/demo-data/images/work-gloves.webp +0 -0
  102. package/dist/assets/demo-data/images/work-light.webp +0 -0
  103. package/dist/assets/demo-data/initial-data.json +667 -0
  104. package/dist/assets/demo-data/products.csv +779 -0
  105. package/dist/assets/storefront/.env.example +14 -0
  106. package/dist/assets/storefront/.env.local +1 -0
  107. package/dist/assets/storefront/components.json +22 -0
  108. package/dist/assets/storefront/eslint.config.mjs +23 -0
  109. package/dist/assets/storefront/graphql.config.yml +2 -0
  110. package/dist/assets/storefront/messages/de.json +1196 -0
  111. package/dist/assets/storefront/messages/en.json +1196 -0
  112. package/dist/assets/storefront/next-env.d.ts +6 -0
  113. package/dist/assets/storefront/next.config.ts +73 -0
  114. package/dist/assets/storefront/package.json +77 -0
  115. package/dist/assets/storefront/postcss.config.mjs +5 -0
  116. package/dist/assets/storefront/public/next.svg +22 -0
  117. package/dist/assets/storefront/public/scenarios/b2b-wholesale/hero/hero-bg.webp +0 -0
  118. package/dist/assets/storefront/public/scenarios/b2b-wholesale/logo.svg +4 -0
  119. package/dist/assets/storefront/public/scenarios/default/logo.svg +4 -0
  120. package/dist/assets/storefront/public/scenarios/kaminpro/hero/hero-bg.webp +0 -0
  121. package/dist/assets/storefront/public/scenarios/kaminpro/logo.svg +7 -0
  122. package/dist/assets/storefront/public/vendure.svg +4 -0
  123. package/dist/assets/storefront/src/app/[locale]/(catalog)/catalog/page.tsx +65 -0
  124. package/dist/assets/storefront/src/app/[locale]/(catalog)/collection/[slug]/loading.tsx +24 -0
  125. package/dist/assets/storefront/src/app/[locale]/(catalog)/collection/[slug]/page.tsx +194 -0
  126. package/dist/assets/storefront/src/app/[locale]/(catalog)/layout.tsx +9 -0
  127. package/dist/assets/storefront/src/app/[locale]/(catalog)/product/[slug]/actions.ts +139 -0
  128. package/dist/assets/storefront/src/app/[locale]/(catalog)/product/[slug]/loading.tsx +46 -0
  129. package/dist/assets/storefront/src/app/[locale]/(catalog)/product/[slug]/page.tsx +330 -0
  130. package/dist/assets/storefront/src/app/[locale]/(catalog)/search/actions.ts +11 -0
  131. package/dist/assets/storefront/src/app/[locale]/(catalog)/search/loading.tsx +20 -0
  132. package/dist/assets/storefront/src/app/[locale]/(catalog)/search/page.tsx +97 -0
  133. package/dist/assets/storefront/src/app/[locale]/(catalog)/search/search-analytics-tracker.tsx +46 -0
  134. package/dist/assets/storefront/src/app/[locale]/(catalog)/search/search-results.tsx +53 -0
  135. package/dist/assets/storefront/src/app/[locale]/(catalog)/search/search-term.tsx +26 -0
  136. package/dist/assets/storefront/src/app/[locale]/(scenario)/[...path]/page.tsx +31 -0
  137. package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/accept-invitation-client.tsx +56 -0
  138. package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/actions.ts +32 -0
  139. package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/page.tsx +85 -0
  140. package/dist/assets/storefront/src/app/[locale]/accept-invitation/[token]/sign-out-and-retry.tsx +26 -0
  141. package/dist/assets/storefront/src/app/[locale]/account/addresses/actions.ts +125 -0
  142. package/dist/assets/storefront/src/app/[locale]/account/addresses/address-form.tsx +180 -0
  143. package/dist/assets/storefront/src/app/[locale]/account/addresses/addresses-client.tsx +292 -0
  144. package/dist/assets/storefront/src/app/[locale]/account/addresses/loading.tsx +48 -0
  145. package/dist/assets/storefront/src/app/[locale]/account/addresses/page.tsx +54 -0
  146. package/dist/assets/storefront/src/app/[locale]/account/approvals/actions.ts +28 -0
  147. package/dist/assets/storefront/src/app/[locale]/account/approvals/page.tsx +340 -0
  148. package/dist/assets/storefront/src/app/[locale]/account/company/actions.ts +33 -0
  149. package/dist/assets/storefront/src/app/[locale]/account/company/addresses/actions.ts +83 -0
  150. package/dist/assets/storefront/src/app/[locale]/account/company/addresses/address-form.tsx +267 -0
  151. package/dist/assets/storefront/src/app/[locale]/account/company/addresses/addresses-client.tsx +253 -0
  152. package/dist/assets/storefront/src/app/[locale]/account/company/addresses/page.tsx +75 -0
  153. package/dist/assets/storefront/src/app/[locale]/account/company/business-units/actions.ts +70 -0
  154. package/dist/assets/storefront/src/app/[locale]/account/company/business-units/business-unit-form.tsx +153 -0
  155. package/dist/assets/storefront/src/app/[locale]/account/company/business-units/business-units-client.tsx +210 -0
  156. package/dist/assets/storefront/src/app/[locale]/account/company/business-units/page.tsx +66 -0
  157. package/dist/assets/storefront/src/app/[locale]/account/company/business-units/types.ts +8 -0
  158. package/dist/assets/storefront/src/app/[locale]/account/company/edit-company-form.tsx +57 -0
  159. package/dist/assets/storefront/src/app/[locale]/account/company/page.tsx +89 -0
  160. package/dist/assets/storefront/src/app/[locale]/account/company/payment-methods/page.tsx +65 -0
  161. package/dist/assets/storefront/src/app/[locale]/account/company/payment-methods/payment-methods-client.tsx +55 -0
  162. package/dist/assets/storefront/src/app/[locale]/account/company/roles/page.tsx +66 -0
  163. package/dist/assets/storefront/src/app/[locale]/account/company/roles/roles-client.tsx +93 -0
  164. package/dist/assets/storefront/src/app/[locale]/account/company/tax-ids/actions.ts +51 -0
  165. package/dist/assets/storefront/src/app/[locale]/account/company/tax-ids/page.tsx +57 -0
  166. package/dist/assets/storefront/src/app/[locale]/account/company/tax-ids/tax-ids-client.tsx +326 -0
  167. package/dist/assets/storefront/src/app/[locale]/account/company/users/actions.ts +74 -0
  168. package/dist/assets/storefront/src/app/[locale]/account/company/users/edit-user-form.tsx +157 -0
  169. package/dist/assets/storefront/src/app/[locale]/account/company/users/invite-user-form.tsx +133 -0
  170. package/dist/assets/storefront/src/app/[locale]/account/company/users/page.tsx +104 -0
  171. package/dist/assets/storefront/src/app/[locale]/account/company/users/users-client.tsx +266 -0
  172. package/dist/assets/storefront/src/app/[locale]/account/error.tsx +24 -0
  173. package/dist/assets/storefront/src/app/[locale]/account/layout.tsx +50 -0
  174. package/dist/assets/storefront/src/app/[locale]/account/orders/[code]/page.tsx +463 -0
  175. package/dist/assets/storefront/src/app/[locale]/account/orders/[code]/reorder-actions.ts +160 -0
  176. package/dist/assets/storefront/src/app/[locale]/account/orders/[code]/reorder-dialog.tsx +386 -0
  177. package/dist/assets/storefront/src/app/[locale]/account/orders/loading.tsx +45 -0
  178. package/dist/assets/storefront/src/app/[locale]/account/orders/page.tsx +309 -0
  179. package/dist/assets/storefront/src/app/[locale]/account/profile/actions.ts +106 -0
  180. package/dist/assets/storefront/src/app/[locale]/account/profile/change-password-form.tsx +82 -0
  181. package/dist/assets/storefront/src/app/[locale]/account/profile/edit-email-form.tsx +88 -0
  182. package/dist/assets/storefront/src/app/[locale]/account/profile/edit-profile-form.tsx +80 -0
  183. package/dist/assets/storefront/src/app/[locale]/account/profile/loading.tsx +54 -0
  184. package/dist/assets/storefront/src/app/[locale]/account/profile/page.tsx +44 -0
  185. package/dist/assets/storefront/src/app/[locale]/account/quick-order/actions.ts +103 -0
  186. package/dist/assets/storefront/src/app/[locale]/account/quick-order/file-upload-tab.tsx +148 -0
  187. package/dist/assets/storefront/src/app/[locale]/account/quick-order/manual-entry-tab.tsx +112 -0
  188. package/dist/assets/storefront/src/app/[locale]/account/quick-order/page.tsx +26 -0
  189. package/dist/assets/storefront/src/app/[locale]/account/quick-order/preview-table.tsx +170 -0
  190. package/dist/assets/storefront/src/app/[locale]/account/quick-order/quick-order-form.tsx +243 -0
  191. package/dist/assets/storefront/src/app/[locale]/account/quick-order/save-to-list-dialog.tsx +153 -0
  192. package/dist/assets/storefront/src/app/[locale]/account/quick-order/sku-autocomplete.tsx +118 -0
  193. package/dist/assets/storefront/src/app/[locale]/account/quick-order/text-input-tab.tsx +40 -0
  194. package/dist/assets/storefront/src/app/[locale]/account/quotes/[id]/page.tsx +260 -0
  195. package/dist/assets/storefront/src/app/[locale]/account/quotes/actions.ts +253 -0
  196. package/dist/assets/storefront/src/app/[locale]/account/quotes/new/new-quote-form.tsx +28 -0
  197. package/dist/assets/storefront/src/app/[locale]/account/quotes/new/page.tsx +51 -0
  198. package/dist/assets/storefront/src/app/[locale]/account/quotes/page.tsx +248 -0
  199. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/[id]/loading.tsx +44 -0
  200. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/[id]/page.tsx +51 -0
  201. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/[id]/shopping-list-detail-client.tsx +562 -0
  202. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/actions.ts +235 -0
  203. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/create-shopping-list-form.tsx +86 -0
  204. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/loading.tsx +48 -0
  205. package/dist/assets/storefront/src/app/[locale]/account/shopping-lists/page.tsx +176 -0
  206. package/dist/assets/storefront/src/app/[locale]/account/store-credits/actions.ts +31 -0
  207. package/dist/assets/storefront/src/app/[locale]/account/store-credits/claim-form.tsx +41 -0
  208. package/dist/assets/storefront/src/app/[locale]/account/store-credits/page.tsx +190 -0
  209. package/dist/assets/storefront/src/app/[locale]/account/store-credits/reveal-code.tsx +38 -0
  210. package/dist/assets/storefront/src/app/[locale]/account/verify-email/page.tsx +117 -0
  211. package/dist/assets/storefront/src/app/[locale]/cart/actions.ts +128 -0
  212. package/dist/assets/storefront/src/app/[locale]/cart/cart-items.tsx +228 -0
  213. package/dist/assets/storefront/src/app/[locale]/cart/cart-line-actions.tsx +55 -0
  214. package/dist/assets/storefront/src/app/[locale]/cart/cart-quantity-control.tsx +158 -0
  215. package/dist/assets/storefront/src/app/[locale]/cart/cart-remove-button.tsx +36 -0
  216. package/dist/assets/storefront/src/app/[locale]/cart/cart.tsx +151 -0
  217. package/dist/assets/storefront/src/app/[locale]/cart/code-input.tsx +49 -0
  218. package/dist/assets/storefront/src/app/[locale]/cart/loading.tsx +10 -0
  219. package/dist/assets/storefront/src/app/[locale]/cart/order-summary.tsx +178 -0
  220. package/dist/assets/storefront/src/app/[locale]/cart/page.tsx +33 -0
  221. package/dist/assets/storefront/src/app/[locale]/cart/promotion-code.tsx +142 -0
  222. package/dist/assets/storefront/src/app/[locale]/cart/reapproval-confirm.tsx +76 -0
  223. package/dist/assets/storefront/src/app/[locale]/cart/request-quote-button.tsx +80 -0
  224. package/dist/assets/storefront/src/app/[locale]/checkout/actions.ts +192 -0
  225. package/dist/assets/storefront/src/app/[locale]/checkout/cancel-quote-checkout-button.tsx +30 -0
  226. package/dist/assets/storefront/src/app/[locale]/checkout/checkout-flow.tsx +214 -0
  227. package/dist/assets/storefront/src/app/[locale]/checkout/checkout-provider.tsx +181 -0
  228. package/dist/assets/storefront/src/app/[locale]/checkout/loading.tsx +90 -0
  229. package/dist/assets/storefront/src/app/[locale]/checkout/order-summary.tsx +160 -0
  230. package/dist/assets/storefront/src/app/[locale]/checkout/page.tsx +154 -0
  231. package/dist/assets/storefront/src/app/[locale]/checkout/steps/delivery-step.tsx +107 -0
  232. package/dist/assets/storefront/src/app/[locale]/checkout/steps/payment-step.tsx +110 -0
  233. package/dist/assets/storefront/src/app/[locale]/checkout/steps/review-step.tsx +180 -0
  234. package/dist/assets/storefront/src/app/[locale]/checkout/steps/shipping-address-step.tsx +518 -0
  235. package/dist/assets/storefront/src/app/[locale]/checkout/types.ts +7 -0
  236. package/dist/assets/storefront/src/app/[locale]/error.tsx +28 -0
  237. package/dist/assets/storefront/src/app/[locale]/forgot-password/actions.ts +28 -0
  238. package/dist/assets/storefront/src/app/[locale]/forgot-password/forgot-password-form.tsx +128 -0
  239. package/dist/assets/storefront/src/app/[locale]/forgot-password/page.tsx +24 -0
  240. package/dist/assets/storefront/src/app/[locale]/globals.css +72 -0
  241. package/dist/assets/storefront/src/app/[locale]/layout.tsx +202 -0
  242. package/dist/assets/storefront/src/app/[locale]/not-found.tsx +26 -0
  243. package/dist/assets/storefront/src/app/[locale]/order-confirmation/[code]/order-confirmation.tsx +296 -0
  244. package/dist/assets/storefront/src/app/[locale]/order-confirmation/[code]/page.tsx +18 -0
  245. package/dist/assets/storefront/src/app/[locale]/page.tsx +125 -0
  246. package/dist/assets/storefront/src/app/[locale]/register/actions.ts +50 -0
  247. package/dist/assets/storefront/src/app/[locale]/register/page.tsx +82 -0
  248. package/dist/assets/storefront/src/app/[locale]/register/registration-form.tsx +237 -0
  249. package/dist/assets/storefront/src/app/[locale]/register-company/actions.ts +40 -0
  250. package/dist/assets/storefront/src/app/[locale]/register-company/page.tsx +43 -0
  251. package/dist/assets/storefront/src/app/[locale]/register-company/registration-form.tsx +48 -0
  252. package/dist/assets/storefront/src/app/[locale]/reset-password/actions.ts +40 -0
  253. package/dist/assets/storefront/src/app/[locale]/reset-password/page.tsx +32 -0
  254. package/dist/assets/storefront/src/app/[locale]/reset-password/reset-password-form.tsx +96 -0
  255. package/dist/assets/storefront/src/app/[locale]/shopping-list/[code]/add-to-cart-button.tsx +31 -0
  256. package/dist/assets/storefront/src/app/[locale]/shopping-list/[code]/loading.tsx +29 -0
  257. package/dist/assets/storefront/src/app/[locale]/shopping-list/[code]/page.tsx +157 -0
  258. package/dist/assets/storefront/src/app/[locale]/sign-in/actions.ts +76 -0
  259. package/dist/assets/storefront/src/app/[locale]/sign-in/login-form.tsx +177 -0
  260. package/dist/assets/storefront/src/app/[locale]/sign-in/page.tsx +81 -0
  261. package/dist/assets/storefront/src/app/[locale]/verify/actions.ts +41 -0
  262. package/dist/assets/storefront/src/app/[locale]/verify/page.tsx +40 -0
  263. package/dist/assets/storefront/src/app/[locale]/verify/verify-content.tsx +127 -0
  264. package/dist/assets/storefront/src/app/[locale]/verify-pending/page.tsx +67 -0
  265. package/dist/assets/storefront/src/app/api/clear-company-context/route.ts +26 -0
  266. package/dist/assets/storefront/src/app/api/draft/disable/route.ts +12 -0
  267. package/dist/assets/storefront/src/app/api/draft/route.ts +17 -0
  268. package/dist/assets/storefront/src/app/api/revalidate/route.ts +110 -0
  269. package/dist/assets/storefront/src/app/api/search-analytics/route.ts +16 -0
  270. package/dist/assets/storefront/src/app/favicon.ico +0 -0
  271. package/dist/assets/storefront/src/components/commerce/account-nav-items.ts +56 -0
  272. package/dist/assets/storefront/src/components/commerce/account-sidebar.tsx +112 -0
  273. package/dist/assets/storefront/src/components/commerce/active-filters.tsx +107 -0
  274. package/dist/assets/storefront/src/components/commerce/approval-decision-form.tsx +70 -0
  275. package/dist/assets/storefront/src/components/commerce/approval-status-badge.tsx +37 -0
  276. package/dist/assets/storefront/src/components/commerce/business-unit-switcher.tsx +56 -0
  277. package/dist/assets/storefront/src/components/commerce/catalog-search-bar.tsx +83 -0
  278. package/dist/assets/storefront/src/components/commerce/category-product-section.tsx +69 -0
  279. package/dist/assets/storefront/src/components/commerce/category-sidebar.tsx +133 -0
  280. package/dist/assets/storefront/src/components/commerce/collection-hero-banner.tsx +36 -0
  281. package/dist/assets/storefront/src/components/commerce/company-state-badge.tsx +32 -0
  282. package/dist/assets/storefront/src/components/commerce/company-switcher.tsx +58 -0
  283. package/dist/assets/storefront/src/components/commerce/configurator-form.tsx +606 -0
  284. package/dist/assets/storefront/src/components/commerce/facet-filters.tsx +286 -0
  285. package/dist/assets/storefront/src/components/commerce/gift-card-pdp.tsx +43 -0
  286. package/dist/assets/storefront/src/components/commerce/gift-card-product-info.tsx +137 -0
  287. package/dist/assets/storefront/src/components/commerce/highlighted-text.tsx +30 -0
  288. package/dist/assets/storefront/src/components/commerce/instant-search-dropdown.tsx +377 -0
  289. package/dist/assets/storefront/src/components/commerce/order-status-badge.tsx +41 -0
  290. package/dist/assets/storefront/src/components/commerce/packaging-unit-selector.tsx +146 -0
  291. package/dist/assets/storefront/src/components/commerce/permission-gate.tsx +20 -0
  292. package/dist/assets/storefront/src/components/commerce/price-range-filter.tsx +111 -0
  293. package/dist/assets/storefront/src/components/commerce/price-tiers.tsx +98 -0
  294. package/dist/assets/storefront/src/components/commerce/price.tsx +29 -0
  295. package/dist/assets/storefront/src/components/commerce/product-card-list.tsx +121 -0
  296. package/dist/assets/storefront/src/components/commerce/product-card.tsx +89 -0
  297. package/dist/assets/storefront/src/components/commerce/product-carousel.tsx +42 -0
  298. package/dist/assets/storefront/src/components/commerce/product-grid.tsx +54 -0
  299. package/dist/assets/storefront/src/components/commerce/product-image-carousel.tsx +127 -0
  300. package/dist/assets/storefront/src/components/commerce/product-info.tsx +525 -0
  301. package/dist/assets/storefront/src/components/commerce/product-list-expansion.tsx +393 -0
  302. package/dist/assets/storefront/src/components/commerce/product-list-view.tsx +34 -0
  303. package/dist/assets/storefront/src/components/commerce/product-sidebar.tsx +175 -0
  304. package/dist/assets/storefront/src/components/commerce/product-view-switcher.tsx +107 -0
  305. package/dist/assets/storefront/src/components/commerce/quote-action-buttons.tsx +235 -0
  306. package/dist/assets/storefront/src/components/commerce/quote-activity-timeline.tsx +320 -0
  307. package/dist/assets/storefront/src/components/commerce/quote-comment-form.tsx +52 -0
  308. package/dist/assets/storefront/src/components/commerce/quote-csv-export-button.tsx +97 -0
  309. package/dist/assets/storefront/src/components/commerce/quote-product-search.tsx +139 -0
  310. package/dist/assets/storefront/src/components/commerce/quote-request-form.tsx +252 -0
  311. package/dist/assets/storefront/src/components/commerce/quote-status-badge.tsx +41 -0
  312. package/dist/assets/storefront/src/components/commerce/quote-validity-indicator.tsx +33 -0
  313. package/dist/assets/storefront/src/components/commerce/quote-version-comparison.tsx +88 -0
  314. package/dist/assets/storefront/src/components/commerce/related-products.tsx +56 -0
  315. package/dist/assets/storefront/src/components/commerce/shop-by-category.tsx +59 -0
  316. package/dist/assets/storefront/src/components/commerce/shopping-list-toggle.tsx +158 -0
  317. package/dist/assets/storefront/src/components/commerce/sort-dropdown.tsx +51 -0
  318. package/dist/assets/storefront/src/components/commerce/store-credit-summary.tsx +45 -0
  319. package/dist/assets/storefront/src/components/commerce/subcollection-tiles.tsx +56 -0
  320. package/dist/assets/storefront/src/components/layout/auth-page-shell.tsx +15 -0
  321. package/dist/assets/storefront/src/components/layout/draft-mode-action.ts +8 -0
  322. package/dist/assets/storefront/src/components/layout/draft-mode-indicator.tsx +54 -0
  323. package/dist/assets/storefront/src/components/layout/draft-mode-link.tsx +29 -0
  324. package/dist/assets/storefront/src/components/layout/footer.tsx +168 -0
  325. package/dist/assets/storefront/src/components/layout/navbar/actions.ts +33 -0
  326. package/dist/assets/storefront/src/components/layout/navbar/cart-icon.tsx +50 -0
  327. package/dist/assets/storefront/src/components/layout/navbar/channel-picker-wrapper.tsx +19 -0
  328. package/dist/assets/storefront/src/components/layout/navbar/channel-picker.tsx +53 -0
  329. package/dist/assets/storefront/src/components/layout/navbar/currency-picker-wrapper.tsx +21 -0
  330. package/dist/assets/storefront/src/components/layout/navbar/currency-picker.tsx +52 -0
  331. package/dist/assets/storefront/src/components/layout/navbar/language-picker.tsx +51 -0
  332. package/dist/assets/storefront/src/components/layout/navbar/login-button.tsx +34 -0
  333. package/dist/assets/storefront/src/components/layout/navbar/mobile-nav.tsx +74 -0
  334. package/dist/assets/storefront/src/components/layout/navbar/nav-menu-items.tsx +51 -0
  335. package/dist/assets/storefront/src/components/layout/navbar/navbar-cart.tsx +5 -0
  336. package/dist/assets/storefront/src/components/layout/navbar/navbar-collections.tsx +291 -0
  337. package/dist/assets/storefront/src/components/layout/navbar/navbar-link.tsx +28 -0
  338. package/dist/assets/storefront/src/components/layout/navbar/navbar-user.tsx +147 -0
  339. package/dist/assets/storefront/src/components/layout/navbar/theme-switcher.tsx +39 -0
  340. package/dist/assets/storefront/src/components/layout/navbar.tsx +117 -0
  341. package/dist/assets/storefront/src/components/layout/search-input.tsx +71 -0
  342. package/dist/assets/storefront/src/components/providers/awaiting-approval-banner.tsx +58 -0
  343. package/dist/assets/storefront/src/components/providers/cart-count-server.tsx +31 -0
  344. package/dist/assets/storefront/src/components/providers/company-context-guard.tsx +47 -0
  345. package/dist/assets/storefront/src/components/providers/company-permissions-server.tsx +14 -0
  346. package/dist/assets/storefront/src/components/providers/theme-provider.tsx +16 -0
  347. package/dist/assets/storefront/src/components/shared/breadcrumbs.tsx +39 -0
  348. package/dist/assets/storefront/src/components/shared/catalog-sidebar-skeleton.tsx +21 -0
  349. package/dist/assets/storefront/src/components/shared/country-select.tsx +83 -0
  350. package/dist/assets/storefront/src/components/shared/error-state.tsx +16 -0
  351. package/dist/assets/storefront/src/components/shared/pagination.tsx +119 -0
  352. package/dist/assets/storefront/src/components/shared/prefetch-link.tsx +36 -0
  353. package/dist/assets/storefront/src/components/shared/product-grid-skeleton.tsx +26 -0
  354. package/dist/assets/storefront/src/components/shared/scenario-paused.tsx +80 -0
  355. package/dist/assets/storefront/src/components/shared/skeletons/cart-skeleton.tsx +48 -0
  356. package/dist/assets/storefront/src/components/shared/skeletons/navbar-user-skeleton.tsx +9 -0
  357. package/dist/assets/storefront/src/components/shared/skeletons/search-input-skeleton.tsx +7 -0
  358. package/dist/assets/storefront/src/components/shared/skeletons/search-results-skeleton.tsx +17 -0
  359. package/dist/assets/storefront/src/components/ui/accordion.tsx +66 -0
  360. package/dist/assets/storefront/src/components/ui/alert-dialog.tsx +157 -0
  361. package/dist/assets/storefront/src/components/ui/alert.tsx +66 -0
  362. package/dist/assets/storefront/src/components/ui/aspect-ratio.tsx +11 -0
  363. package/dist/assets/storefront/src/components/ui/avatar.tsx +53 -0
  364. package/dist/assets/storefront/src/components/ui/badge.tsx +46 -0
  365. package/dist/assets/storefront/src/components/ui/breadcrumb.tsx +109 -0
  366. package/dist/assets/storefront/src/components/ui/button.tsx +58 -0
  367. package/dist/assets/storefront/src/components/ui/calendar.tsx +213 -0
  368. package/dist/assets/storefront/src/components/ui/card.tsx +92 -0
  369. package/dist/assets/storefront/src/components/ui/carousel.tsx +241 -0
  370. package/dist/assets/storefront/src/components/ui/chart.tsx +357 -0
  371. package/dist/assets/storefront/src/components/ui/checkbox.tsx +32 -0
  372. package/dist/assets/storefront/src/components/ui/collapsible.tsx +33 -0
  373. package/dist/assets/storefront/src/components/ui/command.tsx +184 -0
  374. package/dist/assets/storefront/src/components/ui/context-menu.tsx +252 -0
  375. package/dist/assets/storefront/src/components/ui/dialog.tsx +143 -0
  376. package/dist/assets/storefront/src/components/ui/drawer.tsx +135 -0
  377. package/dist/assets/storefront/src/components/ui/dropdown-menu.tsx +257 -0
  378. package/dist/assets/storefront/src/components/ui/empty-state.tsx +37 -0
  379. package/dist/assets/storefront/src/components/ui/field.tsx +244 -0
  380. package/dist/assets/storefront/src/components/ui/form.tsx +167 -0
  381. package/dist/assets/storefront/src/components/ui/hover-card.tsx +44 -0
  382. package/dist/assets/storefront/src/components/ui/input-otp.tsx +77 -0
  383. package/dist/assets/storefront/src/components/ui/input.tsx +21 -0
  384. package/dist/assets/storefront/src/components/ui/kbd-shortcut.tsx +20 -0
  385. package/dist/assets/storefront/src/components/ui/label.tsx +24 -0
  386. package/dist/assets/storefront/src/components/ui/menubar.tsx +276 -0
  387. package/dist/assets/storefront/src/components/ui/navigation-menu.tsx +168 -0
  388. package/dist/assets/storefront/src/components/ui/pagination.tsx +127 -0
  389. package/dist/assets/storefront/src/components/ui/popover.tsx +48 -0
  390. package/dist/assets/storefront/src/components/ui/progress.tsx +31 -0
  391. package/dist/assets/storefront/src/components/ui/radio-group.tsx +45 -0
  392. package/dist/assets/storefront/src/components/ui/resizable.tsx +56 -0
  393. package/dist/assets/storefront/src/components/ui/scroll-area.tsx +58 -0
  394. package/dist/assets/storefront/src/components/ui/select.tsx +185 -0
  395. package/dist/assets/storefront/src/components/ui/separator.tsx +28 -0
  396. package/dist/assets/storefront/src/components/ui/sheet.tsx +139 -0
  397. package/dist/assets/storefront/src/components/ui/sidebar.tsx +728 -0
  398. package/dist/assets/storefront/src/components/ui/skeleton.tsx +13 -0
  399. package/dist/assets/storefront/src/components/ui/slider.tsx +63 -0
  400. package/dist/assets/storefront/src/components/ui/sonner.tsx +25 -0
  401. package/dist/assets/storefront/src/components/ui/switch.tsx +31 -0
  402. package/dist/assets/storefront/src/components/ui/table.tsx +116 -0
  403. package/dist/assets/storefront/src/components/ui/tabs.tsx +66 -0
  404. package/dist/assets/storefront/src/components/ui/textarea.tsx +18 -0
  405. package/dist/assets/storefront/src/components/ui/toggle-group.tsx +73 -0
  406. package/dist/assets/storefront/src/components/ui/toggle.tsx +47 -0
  407. package/dist/assets/storefront/src/components/ui/tooltip.tsx +61 -0
  408. package/dist/assets/storefront/src/config/branding.ts +4 -0
  409. package/dist/assets/storefront/src/config/scenario-meta.ts +46 -0
  410. package/dist/assets/storefront/src/config/scenario.ts +313 -0
  411. package/dist/assets/storefront/src/contexts/auth-context.tsx +35 -0
  412. package/dist/assets/storefront/src/graphql.ts +14 -0
  413. package/dist/assets/storefront/src/hooks/use-mobile.ts +19 -0
  414. package/dist/assets/storefront/src/i18n/locale-utils.ts +33 -0
  415. package/dist/assets/storefront/src/i18n/locales.ts +18 -0
  416. package/dist/assets/storefront/src/i18n/navigation.ts +35 -0
  417. package/dist/assets/storefront/src/i18n/request.ts +19 -0
  418. package/dist/assets/storefront/src/i18n/routing.ts +19 -0
  419. package/dist/assets/storefront/src/i18n/server.ts +16 -0
  420. package/dist/assets/storefront/src/lib/actions/switch-channel.ts +32 -0
  421. package/dist/assets/storefront/src/lib/actions/switch-currency.ts +25 -0
  422. package/dist/assets/storefront/src/lib/auth.ts +18 -0
  423. package/dist/assets/storefront/src/lib/backend-health.ts +38 -0
  424. package/dist/assets/storefront/src/lib/cart-count-context.tsx +59 -0
  425. package/dist/assets/storefront/src/lib/cart-guard-utils.ts +10 -0
  426. package/dist/assets/storefront/src/lib/cart-guard.ts +104 -0
  427. package/dist/assets/storefront/src/lib/channel-server.ts +28 -0
  428. package/dist/assets/storefront/src/lib/channel.ts +2 -0
  429. package/dist/assets/storefront/src/lib/company-context.ts +35 -0
  430. package/dist/assets/storefront/src/lib/company-permissions-context.tsx +40 -0
  431. package/dist/assets/storefront/src/lib/currency-server.ts +20 -0
  432. package/dist/assets/storefront/src/lib/currency.ts +2 -0
  433. package/dist/assets/storefront/src/lib/format.ts +48 -0
  434. package/dist/assets/storefront/src/lib/metadata.ts +85 -0
  435. package/dist/assets/storefront/src/lib/quantity.test.js +20 -0
  436. package/dist/assets/storefront/src/lib/quantity.ts +20 -0
  437. package/dist/assets/storefront/src/lib/search-bar-context.tsx +45 -0
  438. package/dist/assets/storefront/src/lib/search-helpers.ts +69 -0
  439. package/dist/assets/storefront/src/lib/use-recent-searches.ts +55 -0
  440. package/dist/assets/storefront/src/lib/utils.ts +6 -0
  441. package/dist/assets/storefront/src/lib/vendure/actions.ts +96 -0
  442. package/dist/assets/storefront/src/lib/vendure/api.ts +164 -0
  443. package/dist/assets/storefront/src/lib/vendure/approval-utils.ts +21 -0
  444. package/dist/assets/storefront/src/lib/vendure/cached.ts +71 -0
  445. package/dist/assets/storefront/src/lib/vendure/fragments.ts +213 -0
  446. package/dist/assets/storefront/src/lib/vendure/instant-search-action.ts +104 -0
  447. package/dist/assets/storefront/src/lib/vendure/mutations.ts +1136 -0
  448. package/dist/assets/storefront/src/lib/vendure/queries.ts +1406 -0
  449. package/dist/assets/storefront/src/middleware.ts +11 -0
  450. package/dist/assets/storefront/src/scenarios/b2b-wholesale/branding.ts +180 -0
  451. package/dist/assets/storefront/src/scenarios/b2b-wholesale/hero.tsx +122 -0
  452. package/dist/assets/storefront/src/scenarios/b2b-wholesale/index.ts +21 -0
  453. package/dist/assets/storefront/src/scenarios/b2b-wholesale/meta.ts +3 -0
  454. package/dist/assets/storefront/src/scenarios/default/branding.ts +148 -0
  455. package/dist/assets/storefront/src/scenarios/default/hero.tsx +107 -0
  456. package/dist/assets/storefront/src/scenarios/default/index.ts +12 -0
  457. package/dist/assets/storefront/src/scenarios/default/meta.ts +3 -0
  458. package/dist/assets/storefront/src/scenarios/kaminpro/auth-gate.tsx +36 -0
  459. package/dist/assets/storefront/src/scenarios/kaminpro/branding.ts +238 -0
  460. package/dist/assets/storefront/src/scenarios/kaminpro/cart-items.tsx +359 -0
  461. package/dist/assets/storefront/src/scenarios/kaminpro/hero.tsx +123 -0
  462. package/dist/assets/storefront/src/scenarios/kaminpro/index.ts +50 -0
  463. package/dist/assets/storefront/src/scenarios/kaminpro/meta.ts +9 -0
  464. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/banners.tsx +21 -0
  465. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/bom-basket.tsx +221 -0
  466. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/btn.tsx +38 -0
  467. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/chip.tsx +35 -0
  468. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/config-header.tsx +72 -0
  469. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/field-row.tsx +126 -0
  470. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/info-dot.tsx +38 -0
  471. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/login-notice.tsx +81 -0
  472. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/module-panel.tsx +144 -0
  473. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/quote-dialog.tsx +110 -0
  474. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/schematic.tsx +674 -0
  475. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/components/why-panel.tsx +66 -0
  476. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/configurator-pdp.tsx +43 -0
  477. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/configurator-shell.tsx +320 -0
  478. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/lib/data.ts +150 -0
  479. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/lib/types.ts +30 -0
  480. package/dist/assets/storefront/src/scenarios/kaminpro/pdp/styles.css +104 -0
  481. package/dist/assets/storefront/src/scenarios/kaminpro/shop-by-system.tsx +97 -0
  482. package/dist/assets/storefront/src/scenarios/kaminpro/system-finder/decision-tree.ts +261 -0
  483. package/dist/assets/storefront/src/scenarios/kaminpro/system-finder/page.tsx +21 -0
  484. package/dist/assets/storefront/src/scenarios/kaminpro/system-finder/wizard.tsx +600 -0
  485. package/dist/assets/storefront/src/schema.graphql.placeholder +5 -0
  486. package/dist/assets/storefront/tsconfig.json +37 -0
  487. package/dist/assets/templates/CLAUDE.md.hbs +63 -0
  488. package/dist/assets/templates/README.md.hbs +53 -0
  489. package/dist/assets/templates/custom-populate.ts.hbs +28 -0
  490. package/dist/assets/templates/docker-compose.yml.hbs +29 -0
  491. package/dist/assets/templates/env.hbs +44 -0
  492. package/dist/assets/templates/environment.d.ts.hbs +32 -0
  493. package/dist/assets/templates/gitignore.hbs +7 -0
  494. package/dist/assets/templates/index.ts.hbs +16 -0
  495. package/dist/assets/templates/npmrc.hbs +1 -0
  496. package/dist/assets/templates/populate.ts.hbs +27 -0
  497. package/dist/assets/templates/root-package.json.hbs +17 -0
  498. package/dist/assets/templates/server-package.json.hbs +31 -0
  499. package/dist/assets/templates/tsconfig.dashboard.json.hbs +17 -0
  500. package/dist/assets/templates/tsconfig.root.json.hbs +16 -0
  501. package/dist/assets/templates/tsconfig.server.json.hbs +20 -0
  502. package/dist/assets/templates/vendure-config.ts.hbs +80 -0
  503. package/dist/assets/templates/vite.config.mts.hbs +27 -0
  504. package/dist/bin/run.d.ts +2 -0
  505. package/dist/bin/run.js +79 -0
  506. package/dist/bin/run.js.map +1 -0
  507. package/dist/cli.d.ts +6 -0
  508. package/dist/cli.js +154 -0
  509. package/dist/cli.js.map +1 -0
  510. package/dist/git-init.d.ts +4 -0
  511. package/dist/git-init.js +60 -0
  512. package/dist/git-init.js.map +1 -0
  513. package/dist/index.d.ts +4 -0
  514. package/dist/index.js +13 -0
  515. package/dist/index.js.map +1 -0
  516. package/dist/plugin-registry.d.ts +10 -0
  517. package/dist/plugin-registry.js +485 -0
  518. package/dist/plugin-registry.js.map +1 -0
  519. package/dist/scaffolder.d.ts +10 -0
  520. package/dist/scaffolder.js +218 -0
  521. package/dist/scaffolder.js.map +1 -0
  522. package/dist/storefront-copier.d.ts +6 -0
  523. package/dist/storefront-copier.js +68 -0
  524. package/dist/storefront-copier.js.map +1 -0
  525. package/dist/template-renderer.d.ts +30 -0
  526. package/dist/template-renderer.js +177 -0
  527. package/dist/template-renderer.js.map +1 -0
  528. package/dist/types.d.ts +60 -0
  529. package/dist/types.js +3 -0
  530. package/dist/types.js.map +1 -0
  531. package/package.json +48 -0
@@ -0,0 +1,1406 @@
1
+ import { graphql, type ResultOf } from '@/graphql';
2
+ import type { VendureResponse } from '@vendure-platform/storefront-client';
3
+ import {
4
+ ActiveCustomerFragment,
5
+ CompanyAddressFragment,
6
+ CompanyBusinessUnitFragment,
7
+ CompanyFragment,
8
+ CompanyPaymentMethodFragment,
9
+ CompanyRoleFragment,
10
+ CompanyUserFragment,
11
+ ProductCardFragment,
12
+ ShoppingListFragment,
13
+ ShoppingListItemFragment,
14
+ TaxIdFragment,
15
+ } from './fragments';
16
+
17
+ export const GetTopCollectionsQuery = graphql(`
18
+ query GetTopCollections {
19
+ collections(options: { topLevelOnly: true }) {
20
+ items {
21
+ id
22
+ name
23
+ slug
24
+ featuredAsset {
25
+ id
26
+ preview
27
+ }
28
+ children {
29
+ id
30
+ name
31
+ slug
32
+ children {
33
+ id
34
+ name
35
+ slug
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ `);
42
+
43
+ /**
44
+ * Compact product-by-slug lookup used by the KaminPro homepage tile override
45
+ * to fetch the featured + gallery assets for the two configurable systems.
46
+ * Narrower than GetProductDetailQuery so it stays cheap to run at homepage
47
+ * build / request time.
48
+ */
49
+ export const GetProductTileQuery = graphql(`
50
+ query GetProductTile($slug: String!) {
51
+ product(slug: $slug) {
52
+ id
53
+ name
54
+ slug
55
+ description
56
+ featuredAsset {
57
+ id
58
+ preview
59
+ }
60
+ }
61
+ }
62
+ `);
63
+
64
+ export const GetActiveCustomerQuery = graphql(
65
+ `
66
+ query GetActiveCustomer {
67
+ activeCustomer {
68
+ ...ActiveCustomer
69
+ }
70
+ }
71
+ `,
72
+ [ActiveCustomerFragment],
73
+ );
74
+
75
+ export const SearchProductsQuery = graphql(
76
+ `
77
+ query SearchProducts($input: SearchInput!) {
78
+ search(input: $input) {
79
+ queryId
80
+ totalItems
81
+ items {
82
+ ...ProductCard
83
+ }
84
+ facets {
85
+ facet {
86
+ id
87
+ code
88
+ name
89
+ }
90
+ facetValueCounts {
91
+ count
92
+ facetValue {
93
+ id
94
+ code
95
+ name
96
+ }
97
+ }
98
+ }
99
+ prices {
100
+ range {
101
+ min
102
+ max
103
+ }
104
+ rangeWithTax {
105
+ min
106
+ max
107
+ }
108
+ }
109
+ }
110
+ }
111
+ `,
112
+ [ProductCardFragment],
113
+ );
114
+
115
+ export const GetActiveUserShoppingListQuery = graphql(
116
+ `
117
+ query GetActiveUserShoppingList($id: ID) {
118
+ activeUserShoppingList(id: $id) {
119
+ ...ShoppingListFields
120
+ items {
121
+ items {
122
+ ...ShoppingListItemFields
123
+ }
124
+ totalItems
125
+ }
126
+ }
127
+ }
128
+ `,
129
+ [ShoppingListFragment, ShoppingListItemFragment],
130
+ );
131
+
132
+ export const GetActiveUserShoppingListsQuery = graphql(
133
+ `
134
+ query GetActiveUserShoppingLists {
135
+ activeUserShoppingLists {
136
+ ...ShoppingListFields
137
+ items {
138
+ totalItems
139
+ }
140
+ }
141
+ }
142
+ `,
143
+ [ShoppingListFragment],
144
+ );
145
+
146
+ export const GetShoppingListsWithItemVariantsQuery = graphql(`
147
+ query GetShoppingListsWithItemVariants {
148
+ activeCustomer {
149
+ id
150
+ }
151
+ activeUserShoppingLists {
152
+ id
153
+ name
154
+ isDefault
155
+ customer {
156
+ id
157
+ }
158
+ items(options: { take: 100 }) {
159
+ items {
160
+ id
161
+ productVariantId
162
+ }
163
+ }
164
+ }
165
+ }
166
+ `);
167
+
168
+ export const GetPublicShoppingListQuery = graphql(
169
+ `
170
+ query GetPublicShoppingList($publicCode: String!) {
171
+ publicShoppingList(publicCode: $publicCode) {
172
+ ...ShoppingListFields
173
+ items {
174
+ items {
175
+ ...ShoppingListItemFields
176
+ }
177
+ totalItems
178
+ }
179
+ }
180
+ }
181
+ `,
182
+ [ShoppingListFragment, ShoppingListItemFragment],
183
+ );
184
+
185
+ export type SearchProductsResult = Promise<VendureResponse<ResultOf<typeof SearchProductsQuery>>>;
186
+
187
+ export const GetProductDetailQuery = graphql(`
188
+ query GetProductDetail($slug: String!) {
189
+ product(slug: $slug) {
190
+ id
191
+ name
192
+ description
193
+ slug
194
+ assets {
195
+ id
196
+ preview
197
+ source
198
+ }
199
+ variants {
200
+ id
201
+ name
202
+ sku
203
+ price
204
+ priceWithTax
205
+ stockLevel
206
+ priceTiers {
207
+ minQuantity
208
+ price
209
+ priceWithTax
210
+ willApplyOnAdd
211
+ }
212
+ options {
213
+ id
214
+ code
215
+ name
216
+ groupId
217
+ group {
218
+ id
219
+ code
220
+ name
221
+ }
222
+ }
223
+ packagingUnits {
224
+ id
225
+ conversionFactor
226
+ isBaseUnit
227
+ sku
228
+ minQuantity
229
+ quantityIncrement
230
+ packagingUnit {
231
+ id
232
+ code
233
+ name
234
+ description
235
+ }
236
+ effectiveStockLevel
237
+ }
238
+ }
239
+ optionGroups {
240
+ id
241
+ code
242
+ name
243
+ options {
244
+ id
245
+ code
246
+ name
247
+ }
248
+ }
249
+ collections {
250
+ id
251
+ name
252
+ slug
253
+ parent {
254
+ id
255
+ }
256
+ breadcrumbs {
257
+ id
258
+ name
259
+ slug
260
+ }
261
+ }
262
+ customFields {
263
+ isGiftCard
264
+ configuratorSystemCode
265
+ }
266
+ }
267
+ }
268
+ `);
269
+
270
+ /** The full product object returned by GetProductDetailQuery. */
271
+ export type ProductDetail = NonNullable<ResultOf<typeof GetProductDetailQuery>['product']>;
272
+
273
+ /** A packaging unit option on a product variant. */
274
+ export type PackagingUnitOption = NonNullable<ProductDetail['variants'][number]['packagingUnits']>[number];
275
+
276
+ export const GetDraftVariantQuery = graphql(`
277
+ query GetDraftVariant($id: ID!) {
278
+ contentVersioningProductVariant(id: $id) {
279
+ id
280
+ name
281
+ sku
282
+ }
283
+ }
284
+ `);
285
+
286
+ export const GetActiveOrderQuery = graphql(`
287
+ query GetActiveOrder {
288
+ activeOrder {
289
+ id
290
+ code
291
+ state
292
+ totalQuantity
293
+ subTotal
294
+ subTotalWithTax
295
+ shipping
296
+ shippingWithTax
297
+ total
298
+ totalWithTax
299
+ currencyCode
300
+ couponCodes
301
+ storeCreditsApplied {
302
+ code
303
+ balance
304
+ amountDeducted
305
+ }
306
+ totalWithTaxAfterStoreCredit
307
+ taxSummary {
308
+ description
309
+ taxRate
310
+ taxTotal
311
+ }
312
+ discounts {
313
+ description
314
+ amount
315
+ amountWithTax
316
+ }
317
+ lines {
318
+ id
319
+ productVariant {
320
+ id
321
+ name
322
+ sku
323
+ price
324
+ product {
325
+ id
326
+ name
327
+ slug
328
+ featuredAsset {
329
+ id
330
+ preview
331
+ }
332
+ }
333
+ }
334
+ unitPrice
335
+ unitPriceWithTax
336
+ linePrice
337
+ quantity
338
+ linePriceWithTax
339
+ giftCardInput {
340
+ value
341
+ senderName
342
+ recipientEmailAddress
343
+ message
344
+ deliveryDate
345
+ templateName
346
+ }
347
+ customFields {
348
+ packagingUnit {
349
+ id
350
+ name
351
+ }
352
+ packagingUnitConversionFactor
353
+ productConfiguration {
354
+ id
355
+ name
356
+ system {
357
+ id
358
+ code
359
+ name
360
+ }
361
+ }
362
+ productConfigurationLine {
363
+ id
364
+ productConfiguration {
365
+ id
366
+ }
367
+ }
368
+ }
369
+ }
370
+ customFields {
371
+ sourceQuoteId
372
+ }
373
+ }
374
+ }
375
+ `);
376
+
377
+ /** A store credit applied to the active order. */
378
+ export type StoreCredit = NonNullable<ResultOf<typeof GetActiveOrderQuery>['activeOrder']>['storeCreditsApplied'][number];
379
+
380
+ export const GetActiveOrderForCheckoutQuery = graphql(`
381
+ query GetActiveOrderForCheckout {
382
+ activeOrder {
383
+ id
384
+ code
385
+ state
386
+ totalQuantity
387
+ subTotal
388
+ subTotalWithTax
389
+ shipping
390
+ shippingWithTax
391
+ total
392
+ totalWithTax
393
+ currencyCode
394
+ couponCodes
395
+ storeCreditsApplied {
396
+ code
397
+ balance
398
+ amountDeducted
399
+ }
400
+ totalWithTaxAfterStoreCredit
401
+ customer {
402
+ id
403
+ firstName
404
+ lastName
405
+ emailAddress
406
+ }
407
+ shippingAddress {
408
+ fullName
409
+ company
410
+ streetLine1
411
+ streetLine2
412
+ city
413
+ province
414
+ postalCode
415
+ country
416
+ phoneNumber
417
+ }
418
+ billingAddress {
419
+ fullName
420
+ company
421
+ streetLine1
422
+ streetLine2
423
+ city
424
+ province
425
+ postalCode
426
+ country
427
+ phoneNumber
428
+ }
429
+ shippingLines {
430
+ shippingMethod {
431
+ id
432
+ name
433
+ description
434
+ }
435
+ price
436
+ priceWithTax
437
+ }
438
+ taxSummary {
439
+ description
440
+ taxRate
441
+ taxTotal
442
+ }
443
+ discounts {
444
+ description
445
+ amount
446
+ amountWithTax
447
+ }
448
+ lines {
449
+ id
450
+ productVariant {
451
+ id
452
+ name
453
+ sku
454
+ product {
455
+ id
456
+ name
457
+ slug
458
+ featuredAsset {
459
+ id
460
+ preview
461
+ }
462
+ }
463
+ }
464
+ unitPrice
465
+ unitPriceWithTax
466
+ linePrice
467
+ quantity
468
+ linePriceWithTax
469
+ }
470
+ customFields {
471
+ sourceQuoteId
472
+ }
473
+ }
474
+ }
475
+ `);
476
+
477
+ export const GetCustomerAddressesQuery = graphql(`
478
+ query GetCustomerAddresses {
479
+ activeCustomer {
480
+ id
481
+ addresses {
482
+ id
483
+ fullName
484
+ company
485
+ streetLine1
486
+ streetLine2
487
+ city
488
+ province
489
+ postalCode
490
+ country {
491
+ id
492
+ code
493
+ name
494
+ }
495
+ phoneNumber
496
+ defaultShippingAddress
497
+ defaultBillingAddress
498
+ }
499
+ }
500
+ }
501
+ `);
502
+
503
+ export const GetEligibleShippingMethodsQuery = graphql(`
504
+ query GetEligibleShippingMethods {
505
+ eligibleShippingMethods {
506
+ id
507
+ name
508
+ code
509
+ description
510
+ price
511
+ priceWithTax
512
+ }
513
+ }
514
+ `);
515
+
516
+ export const GetEligiblePaymentMethodsQuery = graphql(`
517
+ query GetEligiblePaymentMethods {
518
+ eligiblePaymentMethods {
519
+ id
520
+ name
521
+ code
522
+ description
523
+ isEligible
524
+ eligibilityMessage
525
+ }
526
+ }
527
+ `);
528
+
529
+ export const GetAvailableCountriesQuery = graphql(`
530
+ query GetAvailableCountries {
531
+ availableCountries {
532
+ id
533
+ code
534
+ name
535
+ }
536
+ }
537
+ `);
538
+
539
+ export const GetCustomerOrdersQuery = graphql(`
540
+ query GetCustomerOrders($options: OrderListOptions) {
541
+ activeCustomer {
542
+ id
543
+ orders(options: $options) {
544
+ totalItems
545
+ items {
546
+ id
547
+ code
548
+ state
549
+ totalWithTax
550
+ currencyCode
551
+ createdAt
552
+ updatedAt
553
+ lines {
554
+ id
555
+ productVariant {
556
+ id
557
+ name
558
+ product {
559
+ id
560
+ name
561
+ featuredAsset {
562
+ id
563
+ preview
564
+ }
565
+ }
566
+ }
567
+ }
568
+ }
569
+ }
570
+ }
571
+ }
572
+ `);
573
+
574
+ export const GetOrderSummaryQuery = graphql(`
575
+ query GetOrderSummary($code: String!) {
576
+ orderByCode(code: $code) {
577
+ id
578
+ code
579
+ totalWithTax
580
+ currencyCode
581
+ customer {
582
+ id
583
+ firstName
584
+ lastName
585
+ }
586
+ lines {
587
+ id
588
+ quantity
589
+ productVariant {
590
+ name
591
+ sku
592
+ product {
593
+ name
594
+ featuredAsset {
595
+ preview
596
+ }
597
+ }
598
+ }
599
+ }
600
+ }
601
+ }
602
+ `);
603
+
604
+ export const GetOrderDetailQuery = graphql(`
605
+ query GetOrderDetail($code: String!) {
606
+ orderByCode(code: $code) {
607
+ id
608
+ code
609
+ state
610
+ active
611
+ createdAt
612
+ updatedAt
613
+ totalQuantity
614
+ subTotal
615
+ subTotalWithTax
616
+ shipping
617
+ shippingWithTax
618
+ total
619
+ totalWithTax
620
+ currencyCode
621
+ storeCreditsApplied {
622
+ code
623
+ balance
624
+ amountDeducted
625
+ }
626
+ totalWithTaxAfterStoreCredit
627
+ customer {
628
+ id
629
+ firstName
630
+ lastName
631
+ emailAddress
632
+ }
633
+ shippingAddress {
634
+ fullName
635
+ company
636
+ streetLine1
637
+ streetLine2
638
+ city
639
+ province
640
+ postalCode
641
+ country
642
+ phoneNumber
643
+ }
644
+ billingAddress {
645
+ fullName
646
+ company
647
+ streetLine1
648
+ streetLine2
649
+ city
650
+ province
651
+ postalCode
652
+ country
653
+ phoneNumber
654
+ }
655
+ shippingLines {
656
+ shippingMethod {
657
+ id
658
+ name
659
+ description
660
+ }
661
+ price
662
+ priceWithTax
663
+ }
664
+ taxSummary {
665
+ description
666
+ taxRate
667
+ taxTotal
668
+ }
669
+ payments {
670
+ id
671
+ method
672
+ amount
673
+ state
674
+ transactionId
675
+ createdAt
676
+ }
677
+ lines {
678
+ id
679
+ productVariant {
680
+ id
681
+ name
682
+ sku
683
+ product {
684
+ id
685
+ name
686
+ slug
687
+ featuredAsset {
688
+ id
689
+ preview
690
+ }
691
+ }
692
+ }
693
+ unitPrice
694
+ unitPriceWithTax
695
+ linePrice
696
+ quantity
697
+ linePriceWithTax
698
+ giftCardInput {
699
+ value
700
+ senderName
701
+ recipientEmailAddress
702
+ message
703
+ deliveryDate
704
+ templateName
705
+ }
706
+ }
707
+ surcharges {
708
+ id
709
+ description
710
+ sku
711
+ price
712
+ priceWithTax
713
+ }
714
+ discounts {
715
+ description
716
+ amount
717
+ amountWithTax
718
+ }
719
+ }
720
+ }
721
+ `);
722
+
723
+ export const GetMyApprovalRequestsQuery = graphql(`
724
+ query GetMyApprovalRequests($options: ApprovalRequestListOptions) {
725
+ myApprovalRequests(options: $options) {
726
+ totalItems
727
+ items {
728
+ id
729
+ createdAt
730
+ entityType
731
+ entityId
732
+ status
733
+ summary
734
+ requestedByCustomer {
735
+ id
736
+ firstName
737
+ lastName
738
+ }
739
+ decisions {
740
+ id
741
+ level
742
+ decision
743
+ comment
744
+ decidedAt
745
+ customer {
746
+ id
747
+ firstName
748
+ lastName
749
+ }
750
+ }
751
+ }
752
+ }
753
+ }
754
+ `);
755
+
756
+ export const GetApprovalHistoryForEntityQuery = graphql(`
757
+ query GetApprovalHistoryForEntity($entityType: String!, $entityId: ID!) {
758
+ approvalHistoryForEntity(entityType: $entityType, entityId: $entityId) {
759
+ id
760
+ createdAt
761
+ status
762
+ summary
763
+ decisions {
764
+ id
765
+ level
766
+ decision
767
+ comment
768
+ decidedAt
769
+ customer {
770
+ id
771
+ firstName
772
+ lastName
773
+ }
774
+ }
775
+ }
776
+ }
777
+ `);
778
+
779
+ export const GetCompanyOrdersQuery = graphql(`
780
+ query GetCompanyOrders($options: OrderListOptions) {
781
+ companyOrders(options: $options) {
782
+ totalItems
783
+ items {
784
+ id
785
+ code
786
+ createdAt
787
+ state
788
+ totalWithTax
789
+ currencyCode
790
+ customer {
791
+ id
792
+ firstName
793
+ lastName
794
+ }
795
+ }
796
+ }
797
+ }
798
+ `);
799
+
800
+ export const GetActiveChannelQuery = graphql(`
801
+ query GetActiveChannel {
802
+ activeChannel {
803
+ id
804
+ code
805
+ defaultLanguageCode
806
+ availableLanguageCodes
807
+ defaultCurrencyCode
808
+ availableCurrencyCodes
809
+ }
810
+ }
811
+ `);
812
+
813
+ export const GetCollectionProductsQuery = graphql(
814
+ `
815
+ query GetCollectionProducts($slug: String!, $input: SearchInput!) {
816
+ collection(slug: $slug) {
817
+ id
818
+ name
819
+ slug
820
+ description
821
+ featuredAsset {
822
+ id
823
+ preview
824
+ }
825
+ breadcrumbs {
826
+ id
827
+ name
828
+ slug
829
+ }
830
+ children {
831
+ id
832
+ name
833
+ slug
834
+ featuredAsset {
835
+ id
836
+ preview
837
+ }
838
+ }
839
+ }
840
+ search(input: $input) {
841
+ totalItems
842
+ items {
843
+ ...ProductCard
844
+ }
845
+ }
846
+ }
847
+ `,
848
+ [ProductCardFragment],
849
+ );
850
+
851
+ export const GetMyCompaniesQuery = graphql(`
852
+ query GetMyCompanies {
853
+ activeCustomer {
854
+ id
855
+ companyUsers {
856
+ id
857
+ state
858
+ company {
859
+ id
860
+ name
861
+ state
862
+ }
863
+ }
864
+ }
865
+ }
866
+ `);
867
+
868
+ export type CompanyUserCompany = NonNullable<ResultOf<typeof GetMyCompaniesQuery>['activeCustomer']>['companyUsers'][number]['company'];
869
+
870
+ export const GetActiveCustomerCompanyQuery = graphql(
871
+ `
872
+ query GetActiveCustomerCompany {
873
+ activeCustomer {
874
+ id
875
+ companyUsers {
876
+ ...CompanyUser
877
+ }
878
+ }
879
+ }
880
+ `,
881
+ [CompanyUserFragment],
882
+ );
883
+
884
+ export const GetCompanyAccountQuery = graphql(
885
+ `
886
+ query GetCompanyAccount {
887
+ companyAccount {
888
+ company {
889
+ ...Company
890
+ }
891
+ companyUser {
892
+ ...CompanyUser
893
+ }
894
+ activeBusinessUnit {
895
+ ...CompanyBusinessUnit
896
+ }
897
+ permissions
898
+ }
899
+ }
900
+ `,
901
+ [CompanyFragment, CompanyUserFragment, CompanyBusinessUnitFragment],
902
+ );
903
+
904
+ export const GetCompanyBusinessUnitsQuery = graphql(
905
+ `
906
+ query GetCompanyBusinessUnits {
907
+ companyBusinessUnits {
908
+ ...CompanyBusinessUnit
909
+ }
910
+ }
911
+ `,
912
+ [CompanyBusinessUnitFragment],
913
+ );
914
+
915
+ export const GetShopCompanyUsersQuery = graphql(
916
+ `
917
+ query GetShopCompanyUsers {
918
+ shopCompanyUsers {
919
+ ...CompanyUser
920
+ }
921
+ }
922
+ `,
923
+ [CompanyUserFragment],
924
+ );
925
+
926
+ export const GetCompanyRolesQuery = graphql(
927
+ `
928
+ query GetCompanyRoles {
929
+ companyRoles {
930
+ ...CompanyRole
931
+ }
932
+ }
933
+ `,
934
+ [CompanyRoleFragment],
935
+ );
936
+
937
+ export const GetCompanyAddressesQuery = graphql(
938
+ `
939
+ query GetCompanyAddresses {
940
+ companyAddresses {
941
+ ...CompanyAddress
942
+ }
943
+ }
944
+ `,
945
+ [CompanyAddressFragment],
946
+ );
947
+
948
+ export const GetCompanyPaymentMethodsQuery = graphql(
949
+ `
950
+ query GetCompanyPaymentMethods {
951
+ companyPaymentMethods {
952
+ ...CompanyPaymentMethod
953
+ }
954
+ }
955
+ `,
956
+ [CompanyPaymentMethodFragment],
957
+ );
958
+
959
+ export const GetCompanyInvitationQuery = graphql(
960
+ `
961
+ query GetCompanyInvitation($token: String!) {
962
+ companyInvitation(token: $token) {
963
+ companyUser {
964
+ ...CompanyUser
965
+ }
966
+ company {
967
+ ...Company
968
+ }
969
+ }
970
+ }
971
+ `,
972
+ [CompanyUserFragment, CompanyFragment],
973
+ );
974
+
975
+ export const InstantSearchQuery = graphql(`
976
+ query InstantSearch($input: SearchInput!) {
977
+ search(input: $input) {
978
+ totalItems
979
+ items {
980
+ productId
981
+ productName
982
+ slug
983
+ sku
984
+ inStock
985
+ productAsset {
986
+ id
987
+ preview
988
+ }
989
+ price {
990
+ __typename
991
+ ... on PriceRange {
992
+ min
993
+ max
994
+ }
995
+ ... on SinglePrice {
996
+ value
997
+ }
998
+ }
999
+ priceWithTax {
1000
+ __typename
1001
+ ... on PriceRange {
1002
+ min
1003
+ max
1004
+ }
1005
+ ... on SinglePrice {
1006
+ value
1007
+ }
1008
+ }
1009
+ currencyCode
1010
+ }
1011
+ }
1012
+ }
1013
+ `);
1014
+
1015
+ export const CollectionSearchQuery = graphql(`
1016
+ query CollectionSearch($input: ExternalSearchScopedInput!) {
1017
+ searchCollections(input: $input) {
1018
+ items {
1019
+ id
1020
+ name
1021
+ slug
1022
+ thumbnailUrl
1023
+ score
1024
+ }
1025
+ totalItems
1026
+ }
1027
+ }
1028
+ `);
1029
+
1030
+ export const SearchVariantsQuery = graphql(`
1031
+ query SearchVariants($input: SearchInput!) {
1032
+ search(input: $input) {
1033
+ totalItems
1034
+ items {
1035
+ productVariantId
1036
+ productId
1037
+ productName
1038
+ productVariantName
1039
+ slug
1040
+ sku
1041
+ inStock
1042
+ productAsset {
1043
+ id
1044
+ preview
1045
+ }
1046
+ price {
1047
+ __typename
1048
+ ... on SinglePrice {
1049
+ value
1050
+ }
1051
+ }
1052
+ currencyCode
1053
+ }
1054
+ }
1055
+ }
1056
+ `);
1057
+
1058
+ export const QuoteStockCheckQuery = graphql(`
1059
+ query QuoteStockCheck($quoteId: ID!) {
1060
+ quoteStockCheck(quoteId: $quoteId) {
1061
+ allInStock
1062
+ outOfStockItems {
1063
+ sku
1064
+ productName
1065
+ requestedQuantity
1066
+ availableStock
1067
+ }
1068
+ }
1069
+ }
1070
+ `);
1071
+
1072
+ export const GetMyQuotesQuery = graphql(`
1073
+ query GetMyQuotes($options: QuoteListOptions) {
1074
+ myQuotes(options: $options) {
1075
+ totalItems
1076
+ items {
1077
+ id
1078
+ quoteNumber
1079
+ status
1080
+ validUntil
1081
+ createdAt
1082
+ customer {
1083
+ id
1084
+ firstName
1085
+ lastName
1086
+ }
1087
+ currentVersion {
1088
+ total
1089
+ lineItems {
1090
+ sku
1091
+ productName
1092
+ quantity
1093
+ unitPrice
1094
+ }
1095
+ }
1096
+ }
1097
+ }
1098
+ }
1099
+ `);
1100
+
1101
+ export const GetMyStoreCreditsQuery = graphql(`
1102
+ query GetMyStoreCredits($options: StoreCreditListOptions) {
1103
+ myStoreCredits(options: $options) {
1104
+ totalItems
1105
+ items {
1106
+ id
1107
+ code
1108
+ type
1109
+ initialValue
1110
+ balance
1111
+ currencyCode
1112
+ expiryDate
1113
+ issuedTo {
1114
+ id
1115
+ firstName
1116
+ lastName
1117
+ }
1118
+ }
1119
+ }
1120
+ }
1121
+ `);
1122
+
1123
+ export const GetGiftCardTemplatesQuery = graphql(`
1124
+ query GetGiftCardTemplates {
1125
+ giftCardTemplates {
1126
+ items {
1127
+ id
1128
+ name
1129
+ image {
1130
+ id
1131
+ preview
1132
+ source
1133
+ }
1134
+ }
1135
+ totalItems
1136
+ }
1137
+ }
1138
+ `);
1139
+
1140
+ /** A gift card template. */
1141
+ export type GiftCardTemplate = ResultOf<typeof GetGiftCardTemplatesQuery>['giftCardTemplates']['items'][number];
1142
+
1143
+ export const GetMyQuoteDetailQuery = graphql(`
1144
+ query GetMyQuoteDetail($id: ID!) {
1145
+ myQuote(id: $id) {
1146
+ id
1147
+ createdAt
1148
+ quoteNumber
1149
+ status
1150
+ validUntil
1151
+ convertedOrderId
1152
+ customer {
1153
+ id
1154
+ firstName
1155
+ lastName
1156
+ emailAddress
1157
+ }
1158
+ currentVersion {
1159
+ versionNumber
1160
+ subtotal
1161
+ shippingCost
1162
+ total
1163
+ lineItems {
1164
+ id
1165
+ sku
1166
+ productName
1167
+ quantity
1168
+ unitPrice
1169
+ note
1170
+ productVariant {
1171
+ id
1172
+ name
1173
+ stockLevel
1174
+ }
1175
+ }
1176
+ }
1177
+ versions {
1178
+ id
1179
+ versionNumber
1180
+ createdAt
1181
+ subtotal
1182
+ shippingCost
1183
+ total
1184
+ lineItems {
1185
+ id
1186
+ sku
1187
+ productName
1188
+ quantity
1189
+ unitPrice
1190
+ note
1191
+ }
1192
+ }
1193
+ comments {
1194
+ id
1195
+ text
1196
+ visibility
1197
+ createdAt
1198
+ authorCustomer {
1199
+ id
1200
+ firstName
1201
+ lastName
1202
+ }
1203
+ }
1204
+ }
1205
+ }
1206
+ `);
1207
+
1208
+ /** A quote detail object. */
1209
+ export type QuoteDetail = NonNullable<ResultOf<typeof GetMyQuoteDetailQuery>['myQuote']>;
1210
+ /** A version in a quote. */
1211
+ export type QuoteVersion = QuoteDetail['versions'][number];
1212
+ /** A comment on a quote. */
1213
+ export type QuoteComment = QuoteDetail['comments'][number];
1214
+
1215
+ // ── Quote Order Checkout queries ──
1216
+
1217
+ export const GetQuoteOrderEligibleShippingMethodsQuery = graphql(`
1218
+ query GetQuoteOrderEligibleShippingMethods($orderId: ID!) {
1219
+ quoteOrderEligibleShippingMethods(orderId: $orderId) {
1220
+ id
1221
+ name
1222
+ description
1223
+ price
1224
+ priceWithTax
1225
+ }
1226
+ }
1227
+ `);
1228
+
1229
+ export const GetTaxIdsQuery = graphql(
1230
+ `
1231
+ query GetTaxIds {
1232
+ taxIds {
1233
+ ...TaxIdFields
1234
+ }
1235
+ }
1236
+ `,
1237
+ [TaxIdFragment],
1238
+ );
1239
+
1240
+ // ── Configurator ─────────────────────────────────────────
1241
+
1242
+ export const GetConfiguratorSystemQuery = graphql(`
1243
+ query GetConfiguratorSystem($code: String!) {
1244
+ configuratorSystem(code: $code) {
1245
+ id
1246
+ code
1247
+ name
1248
+ description
1249
+ modules {
1250
+ id
1251
+ code
1252
+ name
1253
+ optional
1254
+ sortOrder
1255
+ fields {
1256
+ id
1257
+ code
1258
+ fieldType
1259
+ name
1260
+ unit
1261
+ defaultValue
1262
+ required
1263
+ sortOrder
1264
+ min
1265
+ max
1266
+ options {
1267
+ id
1268
+ code
1269
+ label
1270
+ }
1271
+ dynamicOptionsSource
1272
+ }
1273
+ }
1274
+ }
1275
+ }
1276
+ `);
1277
+
1278
+ export type ConfiguratorSystem = NonNullable<ResultOf<typeof GetConfiguratorSystemQuery>['configuratorSystem']>;
1279
+ export type ConfiguratorModule = ConfiguratorSystem['modules'][number];
1280
+ export type ConfiguratorField = ConfiguratorModule['fields'][number];
1281
+
1282
+ export const EvaluateConfigurationQuery = graphql(`
1283
+ query EvaluateProductConfiguration($input: EvaluateProductConfigurationInput!) {
1284
+ evaluateProductConfiguration(input: $input) {
1285
+ fields {
1286
+ fieldRef
1287
+ moduleCode
1288
+ fieldCode
1289
+ value
1290
+ hidden
1291
+ availableOptions {
1292
+ value
1293
+ label
1294
+ }
1295
+ messages {
1296
+ type
1297
+ message
1298
+ }
1299
+ }
1300
+ lines {
1301
+ sourceKey
1302
+ quantity
1303
+ productVariant {
1304
+ id
1305
+ name
1306
+ sku
1307
+ priceWithTax
1308
+ product {
1309
+ featuredAsset {
1310
+ id
1311
+ preview
1312
+ }
1313
+ }
1314
+ facetValues {
1315
+ id
1316
+ code
1317
+ name
1318
+ facet {
1319
+ code
1320
+ }
1321
+ }
1322
+ }
1323
+ metadata
1324
+ }
1325
+ errors {
1326
+ sourceKey
1327
+ type
1328
+ message
1329
+ }
1330
+ executedRules {
1331
+ ruleId
1332
+ ruleName
1333
+ phaseKey
1334
+ order
1335
+ matched
1336
+ skipReason
1337
+ actionsApplied
1338
+ }
1339
+ totals {
1340
+ lineCount
1341
+ totalQuantity
1342
+ }
1343
+ }
1344
+ }
1345
+ `);
1346
+
1347
+ export type ConfigurationEvaluation = ResultOf<typeof EvaluateConfigurationQuery>['evaluateProductConfiguration'];
1348
+ export type EvaluatedField = ConfigurationEvaluation['fields'][number];
1349
+ export type EvaluatedLine = ConfigurationEvaluation['lines'][number];
1350
+ export type EvaluatedExecutedRule = ConfigurationEvaluation['executedRules'][number];
1351
+
1352
+ // ── Quick Order ──
1353
+
1354
+ export const QuickOrderSearchQuery = graphql(`
1355
+ query QuickOrderSearch($term: String!, $take: Int) {
1356
+ quickOrderSearch(term: $term, take: $take) {
1357
+ variantId
1358
+ sku
1359
+ productName
1360
+ variantName
1361
+ price
1362
+ priceWithTax
1363
+ currencyCode
1364
+ inStock
1365
+ }
1366
+ }
1367
+ `);
1368
+
1369
+ export const PreviewReorderQuery = graphql(`
1370
+ query PreviewReorder($input: ReorderPreviewInput!) {
1371
+ previewReorder(input: $input) {
1372
+ lines {
1373
+ sourceLineId
1374
+ productVariant {
1375
+ id
1376
+ name
1377
+ sku
1378
+ product {
1379
+ name
1380
+ slug
1381
+ featuredAsset {
1382
+ id
1383
+ preview
1384
+ }
1385
+ }
1386
+ }
1387
+ quantity
1388
+ status
1389
+ originalUnitPrice
1390
+ originalUnitPriceWithTax
1391
+ currentCatalogUnitPrice
1392
+ currentCatalogUnitPriceWithTax
1393
+ messages {
1394
+ type
1395
+ message
1396
+ }
1397
+ }
1398
+ summary {
1399
+ availableCount
1400
+ unavailableCount
1401
+ indicativeTotal
1402
+ currencyCode
1403
+ }
1404
+ }
1405
+ }
1406
+ `);