@shopify/shop-minis-cli 0.0.37 → 0.0.82

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 (362) hide show
  1. package/.eslintrc.cjs +78 -0
  2. package/.vscode/extensions.json +3 -0
  3. package/.vscode/launch.json +29 -0
  4. package/.vscode/settings.json +8 -0
  5. package/.vscode/shop-minis-cli.code-workspace +8 -0
  6. package/build/commands/cancel-submission/cancel-submission.d.ts +1 -0
  7. package/build/commands/cancel-submission/cancel-submission.js +57 -0
  8. package/build/commands/cancel-submission/cancel-submission.js.map +1 -0
  9. package/build/commands/cancel-submission/index.d.ts +2 -0
  10. package/build/commands/cancel-submission/index.js +18 -0
  11. package/build/commands/cancel-submission/index.js.map +1 -0
  12. package/build/commands/cancel-submission/types.d.ts +3 -0
  13. package/build/commands/cancel-submission/types.js +2 -0
  14. package/build/commands/cancel-submission/types.js.map +1 -0
  15. package/build/commands/check-submission/index.d.ts +2 -0
  16. package/build/commands/check-submission/index.js +55 -0
  17. package/build/commands/check-submission/index.js.map +1 -0
  18. package/build/commands/check-submission/types.d.ts +3 -0
  19. package/build/commands/check-submission/types.js +2 -0
  20. package/build/commands/check-submission/types.js.map +1 -0
  21. package/build/commands/codemod/index.d.ts +3 -0
  22. package/build/commands/codemod/index.js +47 -0
  23. package/build/commands/codemod/index.js.map +1 -0
  24. package/build/commands/codemod/releases/index.d.ts +7 -0
  25. package/build/commands/codemod/releases/index.js +58 -0
  26. package/build/commands/codemod/releases/index.js.map +1 -0
  27. package/build/commands/codemod/releases/types.d.ts +9 -0
  28. package/build/commands/codemod/releases/types.js +2 -0
  29. package/build/commands/codemod/releases/types.js.map +1 -0
  30. package/build/commands/codemod/releases/v0-0-42/index.d.ts +3 -0
  31. package/build/commands/codemod/releases/v0-0-42/index.js +46 -0
  32. package/build/commands/codemod/releases/v0-0-42/index.js.map +1 -0
  33. package/build/commands/codemod/releases/v0-0-42/reset-files.d.ts +7 -0
  34. package/build/commands/codemod/releases/v0-0-42/reset-files.js +83 -0
  35. package/build/commands/codemod/releases/v0-0-42/reset-files.js.map +1 -0
  36. package/build/commands/codemod/releases/v0-0-43.d.ts +3 -0
  37. package/build/commands/codemod/releases/v0-0-43.js +32 -0
  38. package/build/commands/codemod/releases/v0-0-43.js.map +1 -0
  39. package/build/commands/codemod/releases/v0-0-44.d.ts +3 -0
  40. package/build/commands/codemod/releases/v0-0-44.js +214 -0
  41. package/build/commands/codemod/releases/v0-0-44.js.map +1 -0
  42. package/build/commands/codemod/releases/v0-0-45.d.ts +3 -0
  43. package/build/commands/codemod/releases/v0-0-45.js +23 -0
  44. package/build/commands/codemod/releases/v0-0-45.js.map +1 -0
  45. package/build/commands/codemod/releases/v0-0-50.d.ts +3 -0
  46. package/build/commands/codemod/releases/v0-0-50.js +34 -0
  47. package/build/commands/codemod/releases/v0-0-50.js.map +1 -0
  48. package/build/commands/codemod/releases/v0-0-54.d.ts +3 -0
  49. package/build/commands/codemod/releases/v0-0-54.js +70 -0
  50. package/build/commands/codemod/releases/v0-0-54.js.map +1 -0
  51. package/build/commands/codemod/releases/v0-0-56.d.ts +3 -0
  52. package/build/commands/codemod/releases/v0-0-56.js +48 -0
  53. package/build/commands/codemod/releases/v0-0-56.js.map +1 -0
  54. package/build/commands/codemod/releases/v0-0-57.d.ts +3 -0
  55. package/build/commands/codemod/releases/v0-0-57.js +41 -0
  56. package/build/commands/codemod/releases/v0-0-57.js.map +1 -0
  57. package/build/commands/codemod/releases/v0-0-58.d.ts +3 -0
  58. package/build/commands/codemod/releases/v0-0-58.js +68 -0
  59. package/build/commands/codemod/releases/v0-0-58.js.map +1 -0
  60. package/build/commands/codemod/releases/v0-0-61.d.ts +3 -0
  61. package/build/commands/codemod/releases/v0-0-61.js +30 -0
  62. package/build/commands/codemod/releases/v0-0-61.js.map +1 -0
  63. package/build/commands/codemod/releases/v0-0-63.d.ts +3 -0
  64. package/build/commands/codemod/releases/v0-0-63.js +42 -0
  65. package/build/commands/codemod/releases/v0-0-63.js.map +1 -0
  66. package/build/commands/codemod/releases/v0-0-64.d.ts +3 -0
  67. package/build/commands/codemod/releases/v0-0-64.js +47 -0
  68. package/build/commands/codemod/releases/v0-0-64.js.map +1 -0
  69. package/build/commands/codemod/releases/v0-0-75.d.ts +3 -0
  70. package/build/commands/codemod/releases/v0-0-75.js +30 -0
  71. package/build/commands/codemod/releases/v0-0-75.js.map +1 -0
  72. package/build/commands/codemod/releases/v0-0-76.d.ts +3 -0
  73. package/build/commands/codemod/releases/v0-0-76.js +32 -0
  74. package/build/commands/codemod/releases/v0-0-76.js.map +1 -0
  75. package/build/commands/codemod/releases/v0-0-77.d.ts +3 -0
  76. package/build/commands/codemod/releases/v0-0-77.js +39 -0
  77. package/build/commands/codemod/releases/v0-0-77.js.map +1 -0
  78. package/build/commands/codemod/releases/v0-0-79.d.ts +3 -0
  79. package/build/commands/codemod/releases/v0-0-79.js +35 -0
  80. package/build/commands/codemod/releases/v0-0-79.js.map +1 -0
  81. package/build/commands/config.d.ts +14 -0
  82. package/build/commands/config.js +42 -0
  83. package/build/commands/config.js.map +1 -0
  84. package/build/commands/create-mini/index.js +84 -68
  85. package/build/commands/create-mini/index.js.map +1 -1
  86. package/build/commands/create-mini/utils/template-app.d.ts +1 -1
  87. package/build/commands/create-mini/utils/template-app.js +38 -38
  88. package/build/commands/create-mini/utils/template-app.js.map +1 -1
  89. package/build/commands/dev/index.d.ts +3 -0
  90. package/build/commands/dev/index.js +51 -22
  91. package/build/commands/dev/index.js.map +1 -1
  92. package/build/commands/dev/utils/android.d.ts +6 -4
  93. package/build/commands/dev/utils/android.js +55 -67
  94. package/build/commands/dev/utils/android.js.map +1 -1
  95. package/build/commands/dev/utils/binaries.d.ts +2 -80
  96. package/build/commands/dev/utils/binaries.js +10 -166
  97. package/build/commands/dev/utils/binaries.js.map +1 -1
  98. package/build/commands/dev/utils/build-type.d.ts +2 -0
  99. package/build/commands/dev/utils/build-type.js +14 -0
  100. package/build/commands/dev/utils/build-type.js.map +1 -0
  101. package/build/commands/dev/utils/deeplink.d.ts +3 -3
  102. package/build/commands/dev/utils/deeplink.js +13 -18
  103. package/build/commands/dev/utils/deeplink.js.map +1 -1
  104. package/build/commands/dev/utils/interactive-terminal.d.ts +4 -2
  105. package/build/commands/dev/utils/interactive-terminal.js +66 -107
  106. package/build/commands/dev/utils/interactive-terminal.js.map +1 -1
  107. package/build/commands/dev/utils/metro/metro-config.js +17 -20
  108. package/build/commands/dev/utils/metro/metro-config.js.map +1 -1
  109. package/build/commands/dev/utils/metro/metro-reporter.d.ts +3 -4
  110. package/build/commands/dev/utils/metro/metro-reporter.js +6 -13
  111. package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -1
  112. package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +1 -0
  113. package/build/commands/dev/utils/metro/metro-server-middleware.js +11 -12
  114. package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -1
  115. package/build/commands/dev/utils/metro/metro-server.d.ts +2 -2
  116. package/build/commands/dev/utils/metro/metro-server.js +7 -14
  117. package/build/commands/dev/utils/metro/metro-server.js.map +1 -1
  118. package/build/commands/dev/utils/network.d.ts +20 -0
  119. package/build/commands/dev/utils/network.js +122 -0
  120. package/build/commands/dev/utils/network.js.map +1 -0
  121. package/build/commands/dev/utils/platform.d.ts +18 -0
  122. package/build/commands/dev/utils/platform.js +41 -0
  123. package/build/commands/dev/utils/platform.js.map +1 -0
  124. package/build/commands/dev/utils/prompt-binary-upgrade.d.ts +1 -0
  125. package/build/commands/dev/utils/prompt-binary-upgrade.js +12 -0
  126. package/build/commands/dev/utils/prompt-binary-upgrade.js.map +1 -0
  127. package/build/commands/dev/utils/qr-code.js +3 -10
  128. package/build/commands/dev/utils/qr-code.js.map +1 -1
  129. package/build/commands/dev/utils/simulator.d.ts +5 -2
  130. package/build/commands/dev/utils/simulator.js +43 -37
  131. package/build/commands/dev/utils/simulator.js.map +1 -1
  132. package/build/commands/dev/utils/start-app/config.d.ts +5 -0
  133. package/build/commands/dev/utils/start-app/config.js +25 -0
  134. package/build/commands/dev/utils/start-app/config.js.map +1 -0
  135. package/build/commands/dev/utils/start-app/start-app-with-options.d.ts +2 -0
  136. package/build/commands/dev/utils/start-app/start-app-with-options.js +94 -0
  137. package/build/commands/dev/utils/start-app/start-app-with-options.js.map +1 -0
  138. package/build/commands/dev/utils/start-app/start-app.d.ts +2 -0
  139. package/build/commands/dev/utils/start-app/start-app.js +10 -0
  140. package/build/commands/dev/utils/start-app/start-app.js.map +1 -0
  141. package/build/commands/dev/utils/start-app/types.d.ts +20 -0
  142. package/build/commands/dev/utils/start-app/types.js +2 -0
  143. package/build/commands/dev/utils/start-app/types.js.map +1 -0
  144. package/build/commands/dev/utils/types.d.ts +24 -0
  145. package/build/commands/dev/utils/types.js +7 -0
  146. package/build/commands/dev/utils/types.js.map +1 -0
  147. package/build/commands/dev/utils/version.d.ts +64 -0
  148. package/build/commands/dev/utils/version.js +101 -0
  149. package/build/commands/dev/utils/version.js.map +1 -0
  150. package/build/commands/dev/utils/with-retries.js +1 -5
  151. package/build/commands/dev/utils/with-retries.js.map +1 -1
  152. package/build/commands/doctor/index.d.ts +6 -0
  153. package/build/commands/doctor/index.js +21 -0
  154. package/build/commands/doctor/index.js.map +1 -0
  155. package/build/commands/doctor/utils/diagnose-dependencies.d.ts +7 -0
  156. package/build/commands/doctor/utils/diagnose-dependencies.js +108 -0
  157. package/build/commands/doctor/utils/diagnose-dependencies.js.map +1 -0
  158. package/build/commands/generate-graphql-types/index.d.ts +1 -0
  159. package/build/commands/generate-graphql-types/index.js +43 -27
  160. package/build/commands/generate-graphql-types/index.js.map +1 -1
  161. package/build/commands/info/index.d.ts +3 -0
  162. package/build/commands/info/index.js +42 -0
  163. package/build/commands/info/index.js.map +1 -0
  164. package/build/commands/setup/index.d.ts +2 -0
  165. package/build/commands/setup/index.js +81 -0
  166. package/build/commands/setup/index.js.map +1 -0
  167. package/build/commands/submit/config.d.ts +9 -0
  168. package/build/commands/submit/config.js +18 -0
  169. package/build/commands/submit/config.js.map +1 -0
  170. package/build/commands/submit/errors.d.ts +19 -0
  171. package/build/commands/submit/errors.js +87 -0
  172. package/build/commands/submit/errors.js.map +1 -0
  173. package/build/commands/submit/gcs.d.ts +6 -0
  174. package/build/commands/submit/gcs.js +10 -0
  175. package/build/commands/submit/gcs.js.map +1 -0
  176. package/build/commands/submit/index.d.ts +2 -0
  177. package/build/commands/submit/index.js +25 -0
  178. package/build/commands/submit/index.js.map +1 -0
  179. package/build/commands/submit/submit.d.ts +5 -0
  180. package/build/commands/submit/submit.js +222 -0
  181. package/build/commands/submit/submit.js.map +1 -0
  182. package/build/commands/submit/tasks.d.ts +37 -0
  183. package/build/commands/submit/tasks.js +91 -0
  184. package/build/commands/submit/tasks.js.map +1 -0
  185. package/build/commands/submit/types.d.ts +14 -0
  186. package/build/commands/submit/types.js +2 -0
  187. package/build/commands/submit/types.js.map +1 -0
  188. package/build/commands/submit/utils/assert-core-dependencies-version.d.ts +1 -0
  189. package/build/commands/submit/utils/assert-core-dependencies-version.js +58 -0
  190. package/build/commands/submit/utils/assert-core-dependencies-version.js.map +1 -0
  191. package/build/commands/submit/utils/request-entry-point-params.d.ts +1 -0
  192. package/build/commands/submit/utils/request-entry-point-params.js +41 -0
  193. package/build/commands/submit/utils/request-entry-point-params.js.map +1 -0
  194. package/build/commands/submit/validation.d.ts +1 -0
  195. package/build/commands/submit/validation.js +11 -0
  196. package/build/commands/submit/validation.js.map +1 -0
  197. package/build/commands/upgrade/index.d.ts +13 -0
  198. package/build/commands/upgrade/index.js +53 -0
  199. package/build/commands/upgrade/index.js.map +1 -0
  200. package/build/commands/upgrade/utils/cli.d.ts +1 -0
  201. package/build/commands/upgrade/utils/cli.js +15 -0
  202. package/build/commands/upgrade/utils/cli.js.map +1 -0
  203. package/build/commands/validate-manifest/index.d.ts +3 -0
  204. package/build/commands/validate-manifest/index.js +29 -0
  205. package/build/commands/validate-manifest/index.js.map +1 -0
  206. package/build/data/accept-invitation.d.ts +4 -0
  207. package/build/data/accept-invitation.js +16 -0
  208. package/build/data/accept-invitation.js.map +1 -0
  209. package/build/data/cancel-submission.d.ts +22 -0
  210. package/build/data/cancel-submission.js +26 -0
  211. package/build/data/cancel-submission.js.map +1 -0
  212. package/build/data/create-submission.d.ts +20 -0
  213. package/build/data/create-submission.js +27 -0
  214. package/build/data/create-submission.js.map +1 -0
  215. package/build/data/create-upload.d.ts +21 -0
  216. package/build/data/create-upload.js +40 -0
  217. package/build/data/create-upload.js.map +1 -0
  218. package/build/data/get-submissions.d.ts +27 -0
  219. package/build/data/get-submissions.js +33 -0
  220. package/build/data/get-submissions.js.map +1 -0
  221. package/build/data/gql-client.d.ts +8 -0
  222. package/build/data/gql-client.js +9 -0
  223. package/build/data/gql-client.js.map +1 -0
  224. package/build/data/mini.d.ts +5 -0
  225. package/build/data/mini.js +14 -0
  226. package/build/data/mini.js.map +1 -0
  227. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
  228. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
  229. package/build/data/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
  230. package/build/data/types/autogenerated/shop-minis-admin-api/gql.d.ts +75 -0
  231. package/build/data/types/autogenerated/shop-minis-admin-api/gql.js +24 -0
  232. package/build/data/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
  233. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.d.ts +1570 -0
  234. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js +1062 -0
  235. package/build/data/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -0
  236. package/build/data/types/autogenerated/shop-minis-admin-api/index.d.ts +2 -0
  237. package/build/data/types/autogenerated/shop-minis-admin-api/index.js +3 -0
  238. package/build/data/types/autogenerated/shop-minis-admin-api/index.js.map +1 -0
  239. package/build/dev-panel/asset-manifest.json +6 -9
  240. package/build/dev-panel/index.html +1 -1
  241. package/build/dev-panel/static/css/{main.31436fe3.css → main.7f1ee407.css} +2 -2
  242. package/build/dev-panel/static/css/main.7f1ee407.css.map +1 -0
  243. package/build/dev-panel/static/js/{main.27f47095.js → main.6625699c.js} +3 -3
  244. package/build/dev-panel/static/js/main.6625699c.js.map +1 -0
  245. package/build/index.d.ts +1 -1
  246. package/build/index.js +30 -15
  247. package/build/index.js.map +1 -1
  248. package/build/schemas/manifest.schema.json +198 -0
  249. package/build/utils/archive.d.ts +30 -0
  250. package/build/utils/archive.js +38 -0
  251. package/build/utils/archive.js.map +1 -0
  252. package/build/utils/common-tasks.d.ts +1 -0
  253. package/build/utils/common-tasks.js +49 -0
  254. package/build/utils/common-tasks.js.map +1 -0
  255. package/build/utils/development-params.d.ts +13 -0
  256. package/build/utils/development-params.js +42 -0
  257. package/build/utils/development-params.js.map +1 -0
  258. package/build/{commands/utils → utils}/exec-async-child-process.d.ts +1 -1
  259. package/build/{commands/utils → utils}/exec-async-child-process.js +6 -13
  260. package/build/utils/exec-async-child-process.js.map +1 -0
  261. package/build/utils/file.d.ts +1 -0
  262. package/build/utils/file.js +7 -0
  263. package/build/utils/file.js.map +1 -0
  264. package/build/utils/minis-manifest.d.ts +6 -0
  265. package/build/utils/minis-manifest.js +56 -0
  266. package/build/utils/minis-manifest.js.map +1 -0
  267. package/build/utils/package-manager.d.ts +38 -0
  268. package/build/utils/package-manager.js +98 -0
  269. package/build/utils/package-manager.js.map +1 -0
  270. package/build/utils/patch-package.d.ts +5 -0
  271. package/build/utils/patch-package.js +76 -0
  272. package/build/utils/patch-package.js.map +1 -0
  273. package/build/utils/replace-strings-in-template.d.ts +1 -0
  274. package/build/utils/replace-strings-in-template.js +15 -0
  275. package/build/utils/replace-strings-in-template.js.map +1 -0
  276. package/build/utils/semver.d.ts +1 -0
  277. package/build/utils/semver.js +19 -0
  278. package/build/utils/semver.js.map +1 -0
  279. package/build/{commands/utils → utils}/wrap-with-loading-indicator.d.ts +1 -1
  280. package/build/utils/wrap-with-loading-indicator.js +16 -0
  281. package/build/utils/wrap-with-loading-indicator.js.map +1 -0
  282. package/package.json +35 -28
  283. package/scripts/graphql-codegen.ts +23 -0
  284. package/scripts/test-template.ts +63 -0
  285. package/shipit.alpha.yml +3 -0
  286. package/templates/__template_blank/src/index.tsx +5 -4
  287. package/templates/__template_blank/src/types.ts +1 -1
  288. package/templates/__template_common/.eslintrc.js +16 -0
  289. package/templates/__template_common/assets.d.ts +14 -0
  290. package/templates/__template_common/babel.config.js +3 -17
  291. package/templates/__template_common/gitignore +2 -0
  292. package/templates/__template_common/index.tsx +3 -6
  293. package/templates/__template_common/metro.config.js +4 -30
  294. package/templates/__template_common/package.json +17 -47
  295. package/templates/__template_common/src/manifest.json +1 -27
  296. package/templates/__template_hello_world/src/components/ComponentLink.ts +31 -19
  297. package/templates/__template_hello_world/src/components/ComponentListItem.tsx +1 -0
  298. package/templates/__template_hello_world/src/components/FeaturedComponents.tsx +4 -2
  299. package/templates/__template_hello_world/src/components/quiz/ImageCarouselSlide.tsx +54 -0
  300. package/templates/__template_hello_world/src/components/quiz/MultipleChoiceSlide.tsx +77 -0
  301. package/templates/__template_hello_world/src/components/quiz/QuizProvider.tsx +64 -0
  302. package/templates/__template_hello_world/src/components/quiz/QuizSlide.tsx +79 -0
  303. package/templates/__template_hello_world/src/components/quiz/QuizSlideCommander.tsx +35 -0
  304. package/templates/__template_hello_world/src/components/quiz/TextFieldSlide.tsx +84 -0
  305. package/templates/__template_hello_world/src/components/quiz/TextSlide.tsx +6 -0
  306. package/templates/__template_hello_world/src/components/quiz/types.ts +72 -0
  307. package/templates/__template_hello_world/src/data/Test.graphql.d.ts +69 -76
  308. package/templates/__template_hello_world/src/data/TestProducts.graphql +30 -0
  309. package/templates/__template_hello_world/src/data/TestProducts.graphql.d.ts +159 -81
  310. package/templates/__template_hello_world/src/fixtures/mocked-products-with-variants.ts +274 -0
  311. package/templates/__template_hello_world/src/hooks/useQuizData.ts +26 -0
  312. package/templates/__template_hello_world/src/hooks/useQuizState.ts +27 -0
  313. package/templates/__template_hello_world/src/index.tsx +6 -5
  314. package/templates/__template_hello_world/src/routes.tsx +46 -22
  315. package/templates/__template_hello_world/src/screens/AccordionScreen.tsx +73 -0
  316. package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
  317. package/templates/__template_hello_world/src/screens/HomeScreen.tsx +14 -3
  318. package/templates/__template_hello_world/src/screens/{ImageCarouselScreen.tsx → ImageMultipleChoiceScreen.tsx} +4 -6
  319. package/templates/__template_hello_world/src/screens/InputScreen.tsx +13 -70
  320. package/templates/__template_hello_world/src/screens/QuizResultScreen.tsx +82 -0
  321. package/templates/__template_hello_world/src/screens/QuizScreen.tsx +40 -0
  322. package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +150 -0
  323. package/templates/__template_hello_world/src/screens/ShopActionsScreen.tsx +48 -0
  324. package/templates/__template_hello_world/src/screens/VariantPickerScreen.tsx +120 -0
  325. package/templates/__template_hello_world/src/types.ts +27 -24
  326. package/templates/__template_hello_world/src/utils/mockQuizData.ts +330 -0
  327. package/templates/__template_hello_world/src/utils/quizUtils.ts +75 -0
  328. package/templates/__template_snowboardz/src/components/SkillLevelIcon.tsx +1 -4
  329. package/templates/__template_snowboardz/src/components/SkillLevelPicker.tsx +7 -1
  330. package/templates/__template_snowboardz/src/data/TestProducts.graphql +1 -1
  331. package/templates/__template_snowboardz/src/data/TestProducts.graphql.d.ts +84 -74
  332. package/templates/__template_snowboardz/src/index.tsx +6 -5
  333. package/templates/__template_snowboardz/src/routes.tsx +2 -2
  334. package/templates/__template_snowboardz/src/types.ts +3 -3
  335. package/build/commands/check/index.d.ts +0 -5
  336. package/build/commands/check/index.js +0 -77
  337. package/build/commands/check/index.js.map +0 -1
  338. package/build/commands/check/utils/versions.d.ts +0 -1
  339. package/build/commands/check/utils/versions.js +0 -14
  340. package/build/commands/check/utils/versions.js.map +0 -1
  341. package/build/commands/dev/utils/binaries.test.d.ts +0 -1
  342. package/build/commands/dev/utils/binaries.test.js +0 -275
  343. package/build/commands/dev/utils/binaries.test.js.map +0 -1
  344. package/build/commands/dev/utils/minis-manifest.d.ts +0 -1
  345. package/build/commands/dev/utils/minis-manifest.js +0 -24
  346. package/build/commands/dev/utils/minis-manifest.js.map +0 -1
  347. package/build/commands/utils/exec-async-child-process.js.map +0 -1
  348. package/build/commands/utils/wrap-with-loading-indicator.js +0 -23
  349. package/build/commands/utils/wrap-with-loading-indicator.js.map +0 -1
  350. package/build/dev-panel/middleware.d.ts +0 -4
  351. package/build/dev-panel/middleware.js +0 -11
  352. package/build/dev-panel/middleware.js.map +0 -1
  353. package/build/dev-panel/static/css/main.31436fe3.css.map +0 -1
  354. package/build/dev-panel/static/js/main.27f47095.js.map +0 -1
  355. package/build/dev-panel/static/media/bottomsheet.fe525b8722f6d504a185.png +0 -0
  356. package/build/dev-panel/static/media/navigation.597434370a97c328a970.png +0 -0
  357. package/build/dev-panel/static/media/stories.a425b6972a5338fabdad.png +0 -0
  358. package/templates/__template_blank/src/custom.d.ts +0 -4
  359. package/templates/__template_common/.eslintrc.json +0 -132
  360. package/templates/__template_common/patches/react-native+0.68.5.patch +0 -173
  361. package/templates/__template_hello_world/src/utils/getFlagEmoji.spec.tsx +0 -19
  362. /package/build/dev-panel/static/js/{main.27f47095.js.LICENSE.txt → main.6625699c.js.LICENSE.txt} +0 -0
@@ -0,0 +1,274 @@
1
+ const BASE_PRODUCT = {
2
+ __typename: 'Product',
3
+ id: 'gid://shopify/Product/7632803594495',
4
+ title: 'Canvas Shoes',
5
+ featuredImage: {
6
+ __typename: 'Image',
7
+ id: 'gid://shopify/ProductImage/37069008929023',
8
+ altText: null,
9
+ url: 'https://cdn.shopify.com/s/files/1/0621/0463/3599/products/mahabis-footwear-dv5AJQJ6ay8-unsplash.jpg?v=1651848310',
10
+ },
11
+ } as const
12
+
13
+ const BASE_VARIANT = {
14
+ __typename: 'ProductVariant',
15
+ image: {
16
+ __typename: 'Image',
17
+ id: 'gid://shopify/ProductImage/39889211949311',
18
+ altText: null,
19
+ url: 'https://cdn.shopify.com/s/files/1/0621/0463/3599/files/518DoMlGnHL._AC_SY695._SX._UX._SY._UY.jpg?v=1687945939',
20
+ },
21
+ price: {
22
+ __typename: 'Money',
23
+ amount: '899.0',
24
+ currencyCode: 'USD',
25
+ },
26
+ }
27
+
28
+ function createVariantForOptions(
29
+ optionEntries: [optionName: string, optionValue: string][],
30
+ {currentlyNotInStock = false, availableForSale = true} = {}
31
+ ) {
32
+ return {
33
+ ...BASE_VARIANT,
34
+ id: `gid://shopify/ProductVariant/${optionEntries
35
+ .map(([, value]) => value)
36
+ .join('')}`,
37
+ selectedOptions: optionEntries.map(([name, value]) => ({
38
+ __typename: 'SelectedOption',
39
+ name,
40
+ value,
41
+ })),
42
+ title: optionEntries.map(([, value]) => value).join(' / '),
43
+ currentlyNotInStock,
44
+ availableForSale,
45
+ }
46
+ }
47
+
48
+ const BASE_VARIANTS_CONFIG: [string, string][][] = [
49
+ [
50
+ ['Size', '43'],
51
+ ['Color', 'Black'],
52
+ ],
53
+ [
54
+ ['Size', '43'],
55
+ ['Color', 'Red'],
56
+ ],
57
+ [
58
+ ['Size', '43'],
59
+ ['Color', 'White'],
60
+ ],
61
+ [
62
+ ['Size', '44'],
63
+ ['Color', 'Black'],
64
+ ],
65
+ [
66
+ ['Size', '44'],
67
+ ['Color', 'Red'],
68
+ ],
69
+ [
70
+ ['Size', '44'],
71
+ ['Color', 'White'],
72
+ ],
73
+ [
74
+ ['Size', '45'],
75
+ ['Color', 'Black'],
76
+ ],
77
+ [
78
+ ['Size', '45'],
79
+ ['Color', 'Red'],
80
+ ],
81
+ [
82
+ ['Size', '45'],
83
+ ['Color', 'White'],
84
+ ],
85
+ ]
86
+
87
+ const MOCKED_PRODUCT_1_DISABLED_VARIANTS = [
88
+ ['43', 'Black'],
89
+ ['44', 'White'],
90
+ ['44', 'Red'],
91
+ ['45', 'Red'],
92
+ ]
93
+
94
+ /**
95
+ * 2 options: size, color
96
+ *
97
+ * all variants available except:
98
+ * variant with size 45 and color white is not available for sale
99
+ */
100
+ export const MOCKED_PRODUCT_1 = {
101
+ ...BASE_PRODUCT,
102
+ options: [
103
+ {
104
+ __typename: 'ProductOption',
105
+ id: 'gid://shopify/ProductOption/9702957383935',
106
+ name: 'Size',
107
+ values: [
108
+ '40',
109
+ '43',
110
+ '44',
111
+ '45',
112
+ '46',
113
+ '47',
114
+ '48',
115
+ '49',
116
+ '50',
117
+ '51',
118
+ '52',
119
+ '53',
120
+ '54',
121
+ '55',
122
+ ],
123
+ },
124
+ {
125
+ __typename: 'ProductOption',
126
+ id: 'gid://shopify/ProductOption/10355959628031',
127
+ name: 'Color',
128
+ values: ['Black', 'Red', 'White'],
129
+ },
130
+ ],
131
+ variants: {
132
+ __typename: 'ProductVariantConnection',
133
+ nodes: [
134
+ // Standard options
135
+ ...BASE_VARIANTS_CONFIG.map(options => createVariantForOptions(options)),
136
+ // Use many sizes for black
137
+ createVariantForOptions([
138
+ ['Size', '55'],
139
+ ['Color', 'Black'],
140
+ ]),
141
+ createVariantForOptions([
142
+ ['Size', '54'],
143
+ ['Color', 'Black'],
144
+ ]),
145
+ createVariantForOptions([
146
+ ['Size', '53'],
147
+ ['Color', 'Black'],
148
+ ]),
149
+ createVariantForOptions([
150
+ ['Size', '52'],
151
+ ['Color', 'Black'],
152
+ ]),
153
+ createVariantForOptions([
154
+ ['Size', '51'],
155
+ ['Color', 'Black'],
156
+ ]),
157
+ createVariantForOptions([
158
+ ['Size', '50'],
159
+ ['Color', 'Black'],
160
+ ]),
161
+ createVariantForOptions([
162
+ ['Size', '49'],
163
+ ['Color', 'Black'],
164
+ ]),
165
+ createVariantForOptions([
166
+ ['Size', '48'],
167
+ ['Color', 'Black'],
168
+ ]),
169
+ createVariantForOptions([
170
+ ['Size', '47'],
171
+ ['Color', 'Black'],
172
+ ]),
173
+ createVariantForOptions([
174
+ ['Size', '46'],
175
+ ['Color', 'Black'],
176
+ ]),
177
+ ].map(variant => {
178
+ MOCKED_PRODUCT_1_DISABLED_VARIANTS.forEach(variantOptions =>
179
+ makeVariantNotAvailableForSale(variant, variantOptions)
180
+ )
181
+
182
+ return variant
183
+ }),
184
+ },
185
+ defaultVariant: createVariantForOptions([
186
+ ['Size', '43'],
187
+ ['Color', 'White'],
188
+ ]),
189
+ }
190
+
191
+ export const MOCKED_PRODUCT_1_DESCRIPTION = `Product with variants by size and color.\n* Sizes >45 only have Black color\n* Not available for sale: ${MOCKED_PRODUCT_1_DISABLED_VARIANTS.join(
192
+ ' - '
193
+ )}`
194
+
195
+ const MOCKED_PRODUCT_2_DISABLED_VARIANTS = [
196
+ ['45', 'Red', 'Warm'],
197
+ ['44', 'White', 'Cool'],
198
+ ['43', 'Black', 'Warm'],
199
+ ['44', 'Red', 'Extra Warm'],
200
+ ]
201
+
202
+ /**
203
+ * 3 options: size, color and warmth
204
+ */
205
+ export const MOCKED_PRODUCT_2 = {
206
+ ...BASE_PRODUCT,
207
+ options: [
208
+ {
209
+ __typename: 'ProductOption',
210
+ id: 'gid://shopify/ProductOption/9702957383935',
211
+ name: 'Size',
212
+ values: ['43', '44', '45'],
213
+ },
214
+ {
215
+ __typename: 'ProductOption',
216
+ id: 'gid://shopify/ProductOption/10355959628031',
217
+ name: 'Color',
218
+ values: ['Black', 'Red', 'White'],
219
+ },
220
+ {
221
+ __typename: 'ProductOption',
222
+ id: 'gid://shopify/ProductOption/WARMTH',
223
+ name: 'Warmth',
224
+ values: ['Cool', 'Warm', 'Extra Warm'],
225
+ },
226
+ ],
227
+ variants: {
228
+ __typename: 'ProductVariantConnection',
229
+ nodes: [
230
+ // Add warmth variants
231
+ ...BASE_VARIANTS_CONFIG.map(options => [
232
+ ...options,
233
+ ['Warmth', 'Cool'],
234
+ ]).map(options => createVariantForOptions(options as [string, string][])),
235
+ ...BASE_VARIANTS_CONFIG.map(options => [
236
+ ...options,
237
+ ['Warmth', 'Warm'],
238
+ ]).map(options => createVariantForOptions(options as [string, string][])),
239
+ ...BASE_VARIANTS_CONFIG.map(options => [
240
+ ...options,
241
+ ['Warmth', 'Extra Warm'],
242
+ ]).map(options => createVariantForOptions(options as [string, string][])),
243
+ ].map(variant => {
244
+ // make some variants not available for sale
245
+ MOCKED_PRODUCT_2_DISABLED_VARIANTS.forEach(variantOptions =>
246
+ makeVariantNotAvailableForSale(variant, variantOptions)
247
+ )
248
+ return variant
249
+ }),
250
+ },
251
+ defaultVariant: createVariantForOptions([
252
+ ['Size', '43'],
253
+ ['Color', 'White'],
254
+ ['Warmth', 'Cool'],
255
+ ]),
256
+ }
257
+
258
+ export const MOCKED_PRODUCT_2_DESCRIPTION = `Product with variants by size, color and warmth.\n* Not available for sale: ${MOCKED_PRODUCT_2_DISABLED_VARIANTS.join(
259
+ ' - '
260
+ )}`
261
+
262
+ function makeVariantNotAvailableForSale(
263
+ variant: ReturnType<typeof createVariantForOptions>,
264
+ optionValues: string[]
265
+ ) {
266
+ if (
267
+ optionValues.every(optionValue =>
268
+ variant.selectedOptions.find((opt: any) => opt.value === optionValue)
269
+ )
270
+ ) {
271
+ variant.availableForSale = false
272
+ }
273
+ return variant
274
+ }
@@ -0,0 +1,26 @@
1
+ import {useEffect, useState} from 'react'
2
+
3
+ import {QuizData, QuizDataState} from '../components/quiz/types'
4
+ import {mockQuizData} from '../utils/mockQuizData'
5
+
6
+ const MOCK_FETCH_TIME = 2000
7
+
8
+ export const useQuizData = () => {
9
+ const [quizDataState, setQuizDataState] = useState<QuizDataState>('Loading')
10
+ const [quizData, setQuizData] = useState<QuizData>()
11
+
12
+ // Here is where you would fetch the quesitons from your server
13
+ // and process them into the shape you need
14
+ useEffect(() => {
15
+ const timer = setTimeout(() => {
16
+ setQuizData(mockQuizData)
17
+ setQuizDataState('Ready')
18
+ }, MOCK_FETCH_TIME)
19
+ return () => clearTimeout(timer)
20
+ }, [])
21
+
22
+ return {
23
+ quizDataState,
24
+ quizData,
25
+ }
26
+ }
@@ -0,0 +1,27 @@
1
+ import {useCallback, useState} from 'react'
2
+
3
+ import {QuizResult, QuizResultEntry} from '../components/quiz/types'
4
+
5
+ export const useQuizState = () => {
6
+ const [userName, setUserName] = useState('you')
7
+
8
+ const [quizResult, setQuizResult] = useState<QuizResult>()
9
+
10
+ const recordQuestionResult = useCallback(
11
+ (id: string, answer: QuizResultEntry) => {
12
+ const newQuizResult = {
13
+ ...quizResult,
14
+ [id]: answer,
15
+ }
16
+ setQuizResult(newQuizResult)
17
+ },
18
+ [quizResult]
19
+ )
20
+
21
+ return {
22
+ recordQuestionResult,
23
+ quizResult,
24
+ setUserName,
25
+ userName,
26
+ }
27
+ }
@@ -1,9 +1,10 @@
1
- import {theme as defaultTheme, Theme} from '@shopify/shop-minis-platform-sdk'
1
+ import {MiniAppConfig} from '@shopify/shop-minis-platform-sdk'
2
2
 
3
- import {__MINI_APP_HANDLE_PASCAL_CASE__Navigator} from './routes'
3
+ import {__MINI_APP_NAME_PASCAL_CASE__Navigator} from './routes'
4
4
 
5
- export const theme: Theme = {
6
- ...defaultTheme,
5
+ const config: MiniAppConfig = {
6
+ name: '__MINI_APP_NAME__',
7
+ Root: __MINI_APP_NAME_PASCAL_CASE__Navigator,
7
8
  }
8
9
 
9
- export default __MINI_APP_HANDLE_PASCAL_CASE__Navigator
10
+ export default config
@@ -11,6 +11,7 @@ import {ProgressIndicatorScreen} from './screens/ProgressIndicatorScreen'
11
11
  import {SpinnerScreen} from './screens/SpinnerScreen'
12
12
  import {TypographyScreen} from './screens/TypographyScreen'
13
13
  import {QuantityPickerScreen} from './screens/QuantityPickerScreen'
14
+ import {VariantPickerScreen} from './screens/VariantPickerScreen'
14
15
  import {WebViewScreen} from './screens/WebViewScreen'
15
16
  import {ModalScreen} from './screens/ModalScreen'
16
17
  import {ProductLinkScreen} from './screens/ProductLinkScreen'
@@ -18,106 +19,129 @@ import {ProductCardScreen} from './screens/ProductCardScreen'
18
19
  import {ProductCardGridScreen} from './screens/ProductCardGridScreen'
19
20
  import {InputScreen} from './screens/InputScreen'
20
21
  import {MultipleChoiceScreen} from './screens/MultipleChoiceScreen'
21
- import {ImageCarouselScreen} from './screens/ImageCarouselScreen'
22
+ import {QuizScreen} from './screens/QuizScreen'
23
+ import {ImageMultipleChoiceScreen} from './screens/ImageMultipleChoiceScreen'
24
+ import {AccordionScreen} from './screens/AccordionScreen'
25
+ import {ShopActionsScreen} from './screens/ShopActionsScreen'
22
26
 
23
27
  const Stack = createNativeStackNavigator()
24
28
 
25
- export const __MINI_APP_HANDLE_PASCAL_CASE__Navigator = () => {
29
+ export const __MINI_APP_NAME_PASCAL_CASE__Navigator = () => {
26
30
  return (
27
31
  <Stack.Navigator>
28
32
  <Stack.Screen
29
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Home"
33
+ name="__MINI_APP_NAME_PASCAL_CASE__.Home"
30
34
  component={HomeScreen}
31
35
  options={{headerShown: false}}
32
36
  />
33
37
  <Stack.Screen
34
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Avatar"
38
+ name="__MINI_APP_NAME_PASCAL_CASE__.Avatar"
35
39
  component={AvatarScreen}
36
40
  options={{headerShown: false}}
37
41
  />
38
42
  <Stack.Screen
39
- name="__MINI_APP_HANDLE_PASCAL_CASE__.BottomSheet"
43
+ name="__MINI_APP_NAME_PASCAL_CASE__.BottomSheet"
40
44
  component={BottomSheetScreen}
41
45
  options={{headerShown: false}}
42
46
  />
43
47
  <Stack.Screen
44
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Buttons"
48
+ name="__MINI_APP_NAME_PASCAL_CASE__.Buttons"
45
49
  component={ButtonsScreen}
46
50
  options={{headerShown: false}}
47
51
  />
48
52
  <Stack.Screen
49
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Grid"
53
+ name="__MINI_APP_NAME_PASCAL_CASE__.Grid"
50
54
  component={GridScreen}
51
55
  options={{headerShown: false}}
52
56
  />
53
57
  <Stack.Screen
54
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Icons"
58
+ name="__MINI_APP_NAME_PASCAL_CASE__.Icons"
55
59
  component={IconsScreen}
56
60
  options={{headerShown: false}}
57
61
  />
58
62
  <Stack.Screen
59
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Media"
63
+ name="__MINI_APP_NAME_PASCAL_CASE__.Media"
60
64
  component={MediaScreen}
61
65
  options={{headerShown: false}}
62
66
  />
63
67
  <Stack.Screen
64
- name="__MINI_APP_HANDLE_PASCAL_CASE__.ProgressIndicator"
68
+ name="__MINI_APP_NAME_PASCAL_CASE__.ProgressIndicator"
65
69
  component={ProgressIndicatorScreen}
66
70
  options={{headerShown: false}}
67
71
  />
68
72
  <Stack.Screen
69
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Spinner"
73
+ name="__MINI_APP_NAME_PASCAL_CASE__.Spinner"
70
74
  component={SpinnerScreen}
71
75
  options={{headerShown: false}}
72
76
  />
73
77
  <Stack.Screen
74
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Typography"
78
+ name="__MINI_APP_NAME_PASCAL_CASE__.Typography"
75
79
  component={TypographyScreen}
76
80
  options={{headerShown: false}}
77
81
  />
78
82
  <Stack.Screen
79
- name="__MINI_APP_HANDLE_PASCAL_CASE__.QuantityPicker"
83
+ name="__MINI_APP_NAME_PASCAL_CASE__.QuantityPicker"
80
84
  component={QuantityPickerScreen}
81
85
  options={{headerShown: false}}
82
86
  />
83
87
  <Stack.Screen
84
- name="__MINI_APP_HANDLE_PASCAL_CASE__.WebView"
88
+ name="__MINI_APP_NAME_PASCAL_CASE__.VariantPicker"
89
+ component={VariantPickerScreen}
90
+ options={{headerShown: false}}
91
+ />
92
+ <Stack.Screen
93
+ name="__MINI_APP_NAME_PASCAL_CASE__.WebView"
85
94
  component={WebViewScreen}
86
95
  options={{headerShown: false}}
87
96
  />
88
97
  <Stack.Screen
89
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Modal"
98
+ name="__MINI_APP_NAME_PASCAL_CASE__.Modal"
90
99
  component={ModalScreen}
91
100
  options={{headerShown: false}}
92
101
  />
93
102
  <Stack.Screen
94
- name="__MINI_APP_HANDLE_PASCAL_CASE__.ProductLink"
103
+ name="__MINI_APP_NAME_PASCAL_CASE__.ProductLink"
95
104
  component={ProductLinkScreen}
96
105
  options={{headerShown: false}}
97
106
  />
98
107
  <Stack.Screen
99
- name="__MINI_APP_HANDLE_PASCAL_CASE__.ProductCard"
108
+ name="__MINI_APP_NAME_PASCAL_CASE__.ProductCard"
100
109
  component={ProductCardScreen}
101
110
  options={{headerShown: false}}
102
111
  />
103
112
  <Stack.Screen
104
- name="__MINI_APP_HANDLE_PASCAL_CASE__.ProductCardGrid"
113
+ name="__MINI_APP_NAME_PASCAL_CASE__.ProductCardGrid"
105
114
  component={ProductCardGridScreen}
106
115
  options={{headerShown: false}}
107
116
  />
108
117
  <Stack.Screen
109
- name="__MINI_APP_HANDLE_PASCAL_CASE__.Inputs"
118
+ name="__MINI_APP_NAME_PASCAL_CASE__.Inputs"
110
119
  component={InputScreen}
111
120
  options={{headerShown: false}}
112
121
  />
113
122
  <Stack.Screen
114
- name="__MINI_APP_HANDLE_PASCAL_CASE__.MultipleChoice"
123
+ name="__MINI_APP_NAME_PASCAL_CASE__.MultipleChoice"
115
124
  component={MultipleChoiceScreen}
116
125
  options={{headerShown: false}}
117
126
  />
118
127
  <Stack.Screen
119
- name="__MINI_APP_HANDLE_PASCAL_CASE__.ImageCarousel"
120
- component={ImageCarouselScreen}
128
+ name="__MINI_APP_NAME_PASCAL_CASE__.ImageMultipleChoice"
129
+ component={ImageMultipleChoiceScreen}
130
+ options={{headerShown: false}}
131
+ />
132
+ <Stack.Screen
133
+ name="__MINI_APP_NAME_PASCAL_CASE__.Quiz"
134
+ component={QuizScreen}
135
+ options={{headerShown: false}}
136
+ />
137
+ <Stack.Screen
138
+ name="__MINI_APP_NAME_PASCAL_CASE__.Accordion"
139
+ component={AccordionScreen}
140
+ options={{headerShown: false}}
141
+ />
142
+ <Stack.Screen
143
+ name="__MINI_APP_NAME_PASCAL_CASE__.ShopActions"
144
+ component={ShopActionsScreen}
121
145
  options={{headerShown: false}}
122
146
  />
123
147
  </Stack.Navigator>
@@ -0,0 +1,73 @@
1
+ import {
2
+ Box,
3
+ Text,
4
+ AccordionProps,
5
+ Accordion,
6
+ } from '@shopify/shop-minis-platform-sdk'
7
+ import {SafeAreaView, ScrollView} from 'react-native'
8
+
9
+ import {Header} from '../components/Header'
10
+
11
+ const createAccordionEntries = (
12
+ numberOfEntries: number,
13
+ initiallyOpenIndexes?: number[]
14
+ ): AccordionProps['items'] => {
15
+ return Array(numberOfEntries)
16
+ .fill(undefined)
17
+ .map((_, index) => ({
18
+ title: `Option ${
19
+ index + 1
20
+ } - Reiciendis repellendus blanditiis, nam soluta `,
21
+ body: (
22
+ <Text>
23
+ Lorem ipsum dolor sit, amet consectetur adipisicing elit. Cum
24
+ architecto, quibusdam incidunt error atque id voluptas sit dolores
25
+ reprehenderit. Reiciendis repellendus blanditiis, nam soluta
26
+ distinctio est nostrum reprehenderit veritatis id END?
27
+ </Text>
28
+ ),
29
+ isInitiallyOpen: initiallyOpenIndexes?.includes(index),
30
+ }))
31
+ }
32
+
33
+ const mockAccordionItems = createAccordionEntries(5)
34
+ const mockAccordionItemsWithInitialOpen = createAccordionEntries(5, [1, 2])
35
+
36
+ export const AccordionScreen = () => {
37
+ return (
38
+ <SafeAreaView style={{flex: 1}}>
39
+ <ScrollView style={{flex: 1}}>
40
+ <Header />
41
+ <Box padding="m">
42
+ <Box marginBottom="m">
43
+ <Text variant="headerBold">Accordion</Text>
44
+ </Box>
45
+ <Box marginBottom="xxl">
46
+ <Box marginBottom="s">
47
+ <Text variant="subtitle">All Closed</Text>
48
+ </Box>
49
+ <Box>
50
+ <Accordion items={mockAccordionItems} />
51
+ </Box>
52
+ </Box>
53
+ <Box marginBottom="xxl">
54
+ <Box marginBottom="s">
55
+ <Text variant="subtitle">Initial Open (2 & 3)</Text>
56
+ </Box>
57
+ <Box>
58
+ <Accordion items={mockAccordionItemsWithInitialOpen} />
59
+ </Box>
60
+ </Box>
61
+ <Box marginBottom="xxl">
62
+ <Box marginBottom="s">
63
+ <Text variant="subtitle">Toggle (alwaysOpen=false)</Text>
64
+ </Box>
65
+ <Box>
66
+ <Accordion items={mockAccordionItems} alwaysOpen={false} />
67
+ </Box>
68
+ </Box>
69
+ </Box>
70
+ </ScrollView>
71
+ </SafeAreaView>
72
+ )
73
+ }
@@ -302,11 +302,12 @@ const ExampleUseBottomSheet = ({
302
302
  ref?.scrollTo({y: 0, animated: false})
303
303
  }, [])
304
304
 
305
- const {BottomSheet, scrollRef, onScroll, dismissBottomSheet} =
306
- useBottomSheet<Animated.ScrollView>({
307
- onDismiss,
308
- scrollToTop,
309
- })
305
+ const {BottomSheet, scrollRef, onScroll, dismissBottomSheet} = useBottomSheet<
306
+ typeof Animated.ScrollView
307
+ >({
308
+ onDismiss,
309
+ scrollToTop,
310
+ })
310
311
 
311
312
  return (
312
313
  <BottomSheet>
@@ -11,17 +11,17 @@ const featuredComponents: ComponentLink[] = [
11
11
  {
12
12
  name: 'Modal',
13
13
  thumbnail: require('../assets/Modal-component-thumbnail.png'),
14
- screen: '__MINI_APP_HANDLE_PASCAL_CASE__.Modal',
14
+ screen: '__MINI_APP_NAME_PASCAL_CASE__.Modal',
15
15
  },
16
16
  {
17
17
  name: 'ProductLink',
18
18
  thumbnail: require('../assets/ProductLink-component-thumbnail.png'),
19
- screen: '__MINI_APP_HANDLE_PASCAL_CASE__.ProductLink',
19
+ screen: '__MINI_APP_NAME_PASCAL_CASE__.ProductLink',
20
20
  },
21
21
  {
22
22
  name: 'ProductCard',
23
23
  thumbnail: require('../assets/ProductCard-component-thumbnail.png'),
24
- screen: '__MINI_APP_HANDLE_PASCAL_CASE__.ProductCard',
24
+ screen: '__MINI_APP_NAME_PASCAL_CASE__.ProductCard',
25
25
  },
26
26
  ]
27
27
 
@@ -64,6 +64,17 @@ export const HomeScreen = () => {
64
64
  ))}
65
65
  </Box>
66
66
  </Box>
67
+ <Box flex={1} p="gutter" backgroundColor="backgrounds-regular">
68
+ <Text variant="label" mb="s" mt="l">
69
+ Hooks
70
+ </Text>
71
+ <Box flexDirection="column">
72
+ <ComponentListItem
73
+ name="Shop actions"
74
+ screen="__MINI_APP_NAME_PASCAL_CASE__.ShopActions"
75
+ />
76
+ </Box>
77
+ </Box>
67
78
  </ScrollView>
68
79
  </SafeAreaView>
69
80
  )
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Box,
3
3
  Button,
4
- ImageCarousel,
4
+ ImageMultipleChoice,
5
5
  ImageChoiceType,
6
6
  Text,
7
7
  useMultiSelect,
@@ -9,7 +9,6 @@ import {
9
9
  } from '@shopify/shop-minis-platform-sdk'
10
10
  import {useMemo, useState} from 'react'
11
11
  import {SafeAreaView, ScrollView} from 'react-native'
12
- import {Header} from '../components/Header'
13
12
 
14
13
  const DEFAULT_IMAGE_SIZE = 160
15
14
  const MOCK_IMAGE_INDEX_OFFSET = 20
@@ -62,7 +61,7 @@ const ControlSection = ({label, children}: ControlSectionProps) => (
62
61
  {children}
63
62
  </Box>
64
63
  )
65
- export const ImageCarouselScreen = () => {
64
+ export const ImageMultipleChoiceScreen = () => {
66
65
  const [choiceText, setChoiceText] =
67
66
  useState<keyof typeof textOptions>('short')
68
67
 
@@ -82,7 +81,6 @@ export const ImageCarouselScreen = () => {
82
81
 
83
82
  return (
84
83
  <SafeAreaView style={{flex: 1}}>
85
- <Header />
86
84
  <Box paddingVertical="xs">
87
85
  <ControlSection label="Text Length">
88
86
  <Box flexDirection="row">
@@ -120,7 +118,7 @@ export const ImageCarouselScreen = () => {
120
118
  <Box marginVertical="s" marginHorizontal="gutter">
121
119
  <Text variant="headerNormal">Single Select</Text>
122
120
  </Box>
123
- <ImageCarousel
121
+ <ImageMultipleChoice
124
122
  initialOffsetX={theme.spacing.gutter}
125
123
  imageSize={imageSize}
126
124
  choices={choices}
@@ -133,7 +131,7 @@ export const ImageCarouselScreen = () => {
133
131
  <Box marginVertical="s" marginHorizontal="gutter">
134
132
  <Text variant="headerNormal">Multi Select</Text>
135
133
  </Box>
136
- <ImageCarousel
134
+ <ImageMultipleChoice
137
135
  initialOffsetX={theme.spacing.gutter}
138
136
  imageSize={imageSize}
139
137
  choices={choices}