@coze-arch/cli 0.0.10-alpha.11b7ea → 0.0.10-alpha.954690

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 (433) hide show
  1. package/lib/__templates__/expo/AGENTS.md +3 -3
  2. package/lib/__templates__/expo/README.md +3 -3
  3. package/lib/__templates__/expo/client/components/Provider.tsx +1 -4
  4. package/lib/__templates__/expo/client/components/Screen.tsx +1 -4
  5. package/lib/__templates__/expo/client/eslint.config.mjs +0 -2
  6. package/lib/__templates__/expo/client/global.css +0 -1
  7. package/lib/__templates__/expo/client/package.json +1 -4
  8. package/lib/__templates__/expo/package.json +1 -1
  9. package/lib/__templates__/expo/pnpm-lock.yaml +0 -68
  10. package/lib/__templates__/nextjs/AGENTS.md +6 -2
  11. package/lib/__templates__/nextjs/eslint.config.mjs +9 -0
  12. package/lib/__templates__/taro/project.config.json +1 -1
  13. package/lib/cli.js +4 -15
  14. package/package.json +1 -1
  15. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.animation.ts +0 -178
  16. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.constants.ts +0 -62
  17. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.md +0 -437
  18. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.styles.ts +0 -95
  19. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.tsx +0 -340
  20. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.types.ts +0 -267
  21. package/lib/__templates__/expo/client/heroui/components/accordion/index.ts +0 -17
  22. package/lib/__templates__/expo/client/heroui/components/alert/alert.constants.ts +0 -13
  23. package/lib/__templates__/expo/client/heroui/components/alert/alert.hooks.ts +0 -28
  24. package/lib/__templates__/expo/client/heroui/components/alert/alert.md +0 -263
  25. package/lib/__templates__/expo/client/heroui/components/alert/alert.styles.ts +0 -65
  26. package/lib/__templates__/expo/client/heroui/components/alert/alert.tsx +0 -181
  27. package/lib/__templates__/expo/client/heroui/components/alert/alert.types.ts +0 -99
  28. package/lib/__templates__/expo/client/heroui/components/alert/alert.utils.tsx +0 -25
  29. package/lib/__templates__/expo/client/heroui/components/alert/default-icon.tsx +0 -28
  30. package/lib/__templates__/expo/client/heroui/components/alert/index.ts +0 -15
  31. package/lib/__templates__/expo/client/heroui/components/alert/success-icon.tsx +0 -28
  32. package/lib/__templates__/expo/client/heroui/components/alert/warning-icon.tsx +0 -28
  33. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.animation.ts +0 -123
  34. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.constants.ts +0 -19
  35. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.context.ts +0 -11
  36. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.md +0 -386
  37. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.styles.ts +0 -145
  38. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.tsx +0 -307
  39. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.types.ts +0 -239
  40. package/lib/__templates__/expo/client/heroui/components/avatar/index.ts +0 -13
  41. package/lib/__templates__/expo/client/heroui/components/avatar/person-icon.tsx +0 -23
  42. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.animation.ts +0 -42
  43. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.constants.ts +0 -13
  44. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.md +0 -349
  45. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.styles.ts +0 -66
  46. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.tsx +0 -351
  47. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.types.ts +0 -150
  48. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/index.ts +0 -16
  49. package/lib/__templates__/expo/client/heroui/components/button/button.constants.ts +0 -7
  50. package/lib/__templates__/expo/client/heroui/components/button/button.md +0 -381
  51. package/lib/__templates__/expo/client/heroui/components/button/button.styles.ts +0 -89
  52. package/lib/__templates__/expo/client/heroui/components/button/button.tsx +0 -284
  53. package/lib/__templates__/expo/client/heroui/components/button/button.types.ts +0 -175
  54. package/lib/__templates__/expo/client/heroui/components/button/button.utils.ts +0 -34
  55. package/lib/__templates__/expo/client/heroui/components/button/index.ts +0 -9
  56. package/lib/__templates__/expo/client/heroui/components/card/card.constants.ts +0 -11
  57. package/lib/__templates__/expo/client/heroui/components/card/card.md +0 -186
  58. package/lib/__templates__/expo/client/heroui/components/card/card.styles.ts +0 -35
  59. package/lib/__templates__/expo/client/heroui/components/card/card.tsx +0 -153
  60. package/lib/__templates__/expo/client/heroui/components/card/card.types.ts +0 -77
  61. package/lib/__templates__/expo/client/heroui/components/card/index.ts +0 -10
  62. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.animation.ts +0 -202
  63. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.constants.ts +0 -6
  64. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.md +0 -311
  65. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.styles.ts +0 -105
  66. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.tsx +0 -251
  67. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.types.ts +0 -216
  68. package/lib/__templates__/expo/client/heroui/components/checkbox/index.ts +0 -3
  69. package/lib/__templates__/expo/client/heroui/components/chip/chip.animation.ts +0 -18
  70. package/lib/__templates__/expo/client/heroui/components/chip/chip.constants.ts +0 -7
  71. package/lib/__templates__/expo/client/heroui/components/chip/chip.md +0 -190
  72. package/lib/__templates__/expo/client/heroui/components/chip/chip.styles.ts +0 -234
  73. package/lib/__templates__/expo/client/heroui/components/chip/chip.tsx +0 -125
  74. package/lib/__templates__/expo/client/heroui/components/chip/chip.types.ts +0 -69
  75. package/lib/__templates__/expo/client/heroui/components/chip/index.ts +0 -3
  76. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.constants.ts +0 -6
  77. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.md +0 -109
  78. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.styles.ts +0 -13
  79. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.tsx +0 -57
  80. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.types.ts +0 -30
  81. package/lib/__templates__/expo/client/heroui/components/close-button/index.ts +0 -6
  82. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.animation.ts +0 -18
  83. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.constants.ts +0 -7
  84. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.context.ts +0 -14
  85. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.md +0 -241
  86. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.styles.ts +0 -15
  87. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.tsx +0 -245
  88. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.types.ts +0 -67
  89. package/lib/__templates__/expo/client/heroui/components/control-field/index.ts +0 -6
  90. package/lib/__templates__/expo/client/heroui/components/description/description.animation.ts +0 -53
  91. package/lib/__templates__/expo/client/heroui/components/description/description.constants.ts +0 -30
  92. package/lib/__templates__/expo/client/heroui/components/description/description.md +0 -129
  93. package/lib/__templates__/expo/client/heroui/components/description/description.styles.ts +0 -25
  94. package/lib/__templates__/expo/client/heroui/components/description/description.tsx +0 -81
  95. package/lib/__templates__/expo/client/heroui/components/description/description.types.ts +0 -77
  96. package/lib/__templates__/expo/client/heroui/components/description/index.ts +0 -3
  97. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.animation.ts +0 -9
  98. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.constants.ts +0 -13
  99. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.md +0 -288
  100. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.styles.ts +0 -77
  101. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.tsx +0 -379
  102. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.types.ts +0 -199
  103. package/lib/__templates__/expo/client/heroui/components/dialog/index.ts +0 -12
  104. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.animation.ts +0 -50
  105. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.constants.ts +0 -31
  106. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.md +0 -204
  107. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.styles.ts +0 -23
  108. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.tsx +0 -91
  109. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.types.ts +0 -79
  110. package/lib/__templates__/expo/client/heroui/components/field-error/index.ts +0 -3
  111. package/lib/__templates__/expo/client/heroui/components/input/index.ts +0 -3
  112. package/lib/__templates__/expo/client/heroui/components/input/input.constants.ts +0 -6
  113. package/lib/__templates__/expo/client/heroui/components/input/input.md +0 -193
  114. package/lib/__templates__/expo/client/heroui/components/input/input.styles.ts +0 -51
  115. package/lib/__templates__/expo/client/heroui/components/input/input.tsx +0 -96
  116. package/lib/__templates__/expo/client/heroui/components/input/input.types.ts +0 -44
  117. package/lib/__templates__/expo/client/heroui/components/input-group/index.ts +0 -9
  118. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.animation.ts +0 -14
  119. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.constants.ts +0 -6
  120. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.md +0 -197
  121. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.styles.ts +0 -31
  122. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.tsx +0 -239
  123. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.types.ts +0 -98
  124. package/lib/__templates__/expo/client/heroui/components/input-otp/index.ts +0 -9
  125. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.animation.ts +0 -199
  126. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.constants.ts +0 -12
  127. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.md +0 -376
  128. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.styles.ts +0 -68
  129. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.tsx +0 -414
  130. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.types.ts +0 -275
  131. package/lib/__templates__/expo/client/heroui/components/label/index.ts +0 -3
  132. package/lib/__templates__/expo/client/heroui/components/label/label.animation.ts +0 -18
  133. package/lib/__templates__/expo/client/heroui/components/label/label.constants.ts +0 -7
  134. package/lib/__templates__/expo/client/heroui/components/label/label.md +0 -187
  135. package/lib/__templates__/expo/client/heroui/components/label/label.styles.ts +0 -44
  136. package/lib/__templates__/expo/client/heroui/components/label/label.tsx +0 -172
  137. package/lib/__templates__/expo/client/heroui/components/label/label.types.ts +0 -86
  138. package/lib/__templates__/expo/client/heroui/components/list-group/index.ts +0 -17
  139. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.constants.ts +0 -17
  140. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.md +0 -387
  141. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.styles.ts +0 -40
  142. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.tsx +0 -206
  143. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.types.ts +0 -132
  144. package/lib/__templates__/expo/client/heroui/components/menu/index.ts +0 -38
  145. package/lib/__templates__/expo/client/heroui/components/menu/menu.animation.ts +0 -121
  146. package/lib/__templates__/expo/client/heroui/components/menu/menu.constants.ts +0 -37
  147. package/lib/__templates__/expo/client/heroui/components/menu/menu.md +0 -620
  148. package/lib/__templates__/expo/client/heroui/components/menu/menu.styles.ts +0 -107
  149. package/lib/__templates__/expo/client/heroui/components/menu/menu.tsx +0 -664
  150. package/lib/__templates__/expo/client/heroui/components/menu/menu.types.ts +0 -394
  151. package/lib/__templates__/expo/client/heroui/components/popover/arrow-svg.tsx +0 -180
  152. package/lib/__templates__/expo/client/heroui/components/popover/index.ts +0 -18
  153. package/lib/__templates__/expo/client/heroui/components/popover/popover.animation.ts +0 -9
  154. package/lib/__templates__/expo/client/heroui/components/popover/popover.constants.ts +0 -34
  155. package/lib/__templates__/expo/client/heroui/components/popover/popover.md +0 -508
  156. package/lib/__templates__/expo/client/heroui/components/popover/popover.styles.ts +0 -98
  157. package/lib/__templates__/expo/client/heroui/components/popover/popover.tsx +0 -624
  158. package/lib/__templates__/expo/client/heroui/components/popover/popover.types.ts +0 -290
  159. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/index.ts +0 -3
  160. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.animation.ts +0 -450
  161. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.constants.ts +0 -12
  162. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.md +0 -328
  163. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.styles.ts +0 -84
  164. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.tsx +0 -330
  165. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.types.ts +0 -386
  166. package/lib/__templates__/expo/client/heroui/components/radio/index.ts +0 -9
  167. package/lib/__templates__/expo/client/heroui/components/radio/radio.animation.ts +0 -92
  168. package/lib/__templates__/expo/client/heroui/components/radio/radio.constants.ts +0 -11
  169. package/lib/__templates__/expo/client/heroui/components/radio/radio.md +0 -339
  170. package/lib/__templates__/expo/client/heroui/components/radio/radio.styles.ts +0 -80
  171. package/lib/__templates__/expo/client/heroui/components/radio/radio.tsx +0 -217
  172. package/lib/__templates__/expo/client/heroui/components/radio/radio.types.ts +0 -106
  173. package/lib/__templates__/expo/client/heroui/components/radio-group/index.ts +0 -9
  174. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.animation.ts +0 -20
  175. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.constants.ts +0 -7
  176. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.context.ts +0 -14
  177. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.md +0 -273
  178. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.styles.ts +0 -15
  179. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.tsx +0 -220
  180. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.types.ts +0 -64
  181. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/index.ts +0 -7
  182. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.animation.ts +0 -132
  183. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.constants.ts +0 -21
  184. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.md +0 -206
  185. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.styles.ts +0 -52
  186. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.tsx +0 -262
  187. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.types.ts +0 -121
  188. package/lib/__templates__/expo/client/heroui/components/search-field/index.ts +0 -17
  189. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.animation.ts +0 -18
  190. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.constants.ts +0 -10
  191. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.md +0 -231
  192. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.styles.ts +0 -35
  193. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.tsx +0 -253
  194. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.types.ts +0 -160
  195. package/lib/__templates__/expo/client/heroui/components/search-field/search-icon.tsx +0 -37
  196. package/lib/__templates__/expo/client/heroui/components/select/index.ts +0 -28
  197. package/lib/__templates__/expo/client/heroui/components/select/select.animation.ts +0 -92
  198. package/lib/__templates__/expo/client/heroui/components/select/select.constants.ts +0 -53
  199. package/lib/__templates__/expo/client/heroui/components/select/select.md +0 -796
  200. package/lib/__templates__/expo/client/heroui/components/select/select.styles.ts +0 -149
  201. package/lib/__templates__/expo/client/heroui/components/select/select.tsx +0 -828
  202. package/lib/__templates__/expo/client/heroui/components/select/select.types.ts +0 -438
  203. package/lib/__templates__/expo/client/heroui/components/separator/index.ts +0 -7
  204. package/lib/__templates__/expo/client/heroui/components/separator/separator.constants.ts +0 -6
  205. package/lib/__templates__/expo/client/heroui/components/separator/separator.md +0 -106
  206. package/lib/__templates__/expo/client/heroui/components/separator/separator.styles.ts +0 -50
  207. package/lib/__templates__/expo/client/heroui/components/separator/separator.tsx +0 -62
  208. package/lib/__templates__/expo/client/heroui/components/separator/separator.types.ts +0 -40
  209. package/lib/__templates__/expo/client/heroui/components/skeleton/index.ts +0 -7
  210. package/lib/__templates__/expo/client/heroui/components/skeleton/linear-gradient.tsx +0 -45
  211. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.animation.ts +0 -351
  212. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.constants.ts +0 -39
  213. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.md +0 -208
  214. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.styles.ts +0 -49
  215. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.tsx +0 -183
  216. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.types.ts +0 -191
  217. package/lib/__templates__/expo/client/heroui/components/skeleton-group/index.ts +0 -7
  218. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.constants.ts +0 -7
  219. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.md +0 -247
  220. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.styles.ts +0 -10
  221. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.tsx +0 -94
  222. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.types.ts +0 -28
  223. package/lib/__templates__/expo/client/heroui/components/slider/index.ts +0 -23
  224. package/lib/__templates__/expo/client/heroui/components/slider/slider.animation.ts +0 -87
  225. package/lib/__templates__/expo/client/heroui/components/slider/slider.constants.ts +0 -24
  226. package/lib/__templates__/expo/client/heroui/components/slider/slider.md +0 -348
  227. package/lib/__templates__/expo/client/heroui/components/slider/slider.styles.ts +0 -85
  228. package/lib/__templates__/expo/client/heroui/components/slider/slider.tsx +0 -413
  229. package/lib/__templates__/expo/client/heroui/components/slider/slider.types.ts +0 -120
  230. package/lib/__templates__/expo/client/heroui/components/spinner/index.ts +0 -10
  231. package/lib/__templates__/expo/client/heroui/components/spinner/spinner-icon.tsx +0 -49
  232. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.animation.ts +0 -150
  233. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.constants.ts +0 -36
  234. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.md +0 -199
  235. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.styles.ts +0 -44
  236. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.tsx +0 -198
  237. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.types.ts +0 -158
  238. package/lib/__templates__/expo/client/heroui/components/surface/index.ts +0 -3
  239. package/lib/__templates__/expo/client/heroui/components/surface/surface.animation.ts +0 -18
  240. package/lib/__templates__/expo/client/heroui/components/surface/surface.constants.ts +0 -6
  241. package/lib/__templates__/expo/client/heroui/components/surface/surface.md +0 -136
  242. package/lib/__templates__/expo/client/heroui/components/surface/surface.styles.ts +0 -28
  243. package/lib/__templates__/expo/client/heroui/components/surface/surface.tsx +0 -66
  244. package/lib/__templates__/expo/client/heroui/components/surface/surface.types.ts +0 -46
  245. package/lib/__templates__/expo/client/heroui/components/switch/index.ts +0 -3
  246. package/lib/__templates__/expo/client/heroui/components/switch/switch.animation.ts +0 -243
  247. package/lib/__templates__/expo/client/heroui/components/switch/switch.constants.ts +0 -26
  248. package/lib/__templates__/expo/client/heroui/components/switch/switch.md +0 -334
  249. package/lib/__templates__/expo/client/heroui/components/switch/switch.styles.ts +0 -83
  250. package/lib/__templates__/expo/client/heroui/components/switch/switch.tsx +0 -280
  251. package/lib/__templates__/expo/client/heroui/components/switch/switch.types.ts +0 -208
  252. package/lib/__templates__/expo/client/heroui/components/tabs/index.ts +0 -8
  253. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.animation.ts +0 -246
  254. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.constants.ts +0 -17
  255. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.context.ts +0 -28
  256. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.md +0 -565
  257. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.styles.ts +0 -168
  258. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.tsx +0 -445
  259. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.types.ts +0 -341
  260. package/lib/__templates__/expo/client/heroui/components/tag-group/index.ts +0 -15
  261. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.animation.ts +0 -17
  262. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.constants.ts +0 -10
  263. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.md +0 -404
  264. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.styles.ts +0 -74
  265. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.tsx +0 -325
  266. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.types.ts +0 -125
  267. package/lib/__templates__/expo/client/heroui/components/text-area/index.ts +0 -3
  268. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.constants.ts +0 -6
  269. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.md +0 -133
  270. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.styles.ts +0 -10
  271. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.tsx +0 -44
  272. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.types.ts +0 -6
  273. package/lib/__templates__/expo/client/heroui/components/text-field/index.ts +0 -3
  274. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.animation.ts +0 -20
  275. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.constants.ts +0 -6
  276. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.md +0 -256
  277. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.styles.ts +0 -10
  278. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.tsx +0 -82
  279. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.types.ts +0 -56
  280. package/lib/__templates__/expo/client/heroui/components/toast/index.ts +0 -4
  281. package/lib/__templates__/expo/client/heroui/components/toast/toast.animation.ts +0 -381
  282. package/lib/__templates__/expo/client/heroui/components/toast/toast.constants.ts +0 -10
  283. package/lib/__templates__/expo/client/heroui/components/toast/toast.hooks.ts +0 -73
  284. package/lib/__templates__/expo/client/heroui/components/toast/toast.md +0 -420
  285. package/lib/__templates__/expo/client/heroui/components/toast/toast.styles.ts +0 -89
  286. package/lib/__templates__/expo/client/heroui/components/toast/toast.tsx +0 -472
  287. package/lib/__templates__/expo/client/heroui/components/toast/toast.types.ts +0 -320
  288. package/lib/__templates__/expo/client/heroui/docs.md +0 -47
  289. package/lib/__templates__/expo/client/heroui/helpers/external/hooks/index.ts +0 -3
  290. package/lib/__templates__/expo/client/heroui/helpers/external/hooks/use-is-on-surface.ts +0 -8
  291. package/lib/__templates__/expo/client/heroui/helpers/external/hooks/use-theme-color.ts +0 -137
  292. package/lib/__templates__/expo/client/heroui/helpers/external/utils/cn.ts +0 -12
  293. package/lib/__templates__/expo/client/heroui/helpers/external/utils/color-kit/index.ts +0 -2395
  294. package/lib/__templates__/expo/client/heroui/helpers/external/utils/color-kit/types.ts +0 -212
  295. package/lib/__templates__/expo/client/heroui/helpers/external/utils/index.ts +0 -2
  296. package/lib/__templates__/expo/client/heroui/helpers/internal/components/animated-check-icon.tsx +0 -78
  297. package/lib/__templates__/expo/client/heroui/helpers/internal/components/bottom-sheet-content-container.tsx +0 -97
  298. package/lib/__templates__/expo/client/heroui/helpers/internal/components/bottom-sheet-content.tsx +0 -158
  299. package/lib/__templates__/expo/client/heroui/helpers/internal/components/check-icon.tsx +0 -28
  300. package/lib/__templates__/expo/client/heroui/helpers/internal/components/chevron-down-icon.tsx +0 -28
  301. package/lib/__templates__/expo/client/heroui/helpers/internal/components/chevron-right-icon.tsx +0 -29
  302. package/lib/__templates__/expo/client/heroui/helpers/internal/components/close-icon.tsx +0 -29
  303. package/lib/__templates__/expo/client/heroui/helpers/internal/components/full-window-overlay.tsx +0 -48
  304. package/lib/__templates__/expo/client/heroui/helpers/internal/components/hero-text.tsx +0 -71
  305. package/lib/__templates__/expo/client/heroui/helpers/internal/components/index.ts +0 -9
  306. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/animation-settings-context.ts +0 -19
  307. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/bottom-sheet-is-dragging-context.ts +0 -11
  308. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/form-field-context.ts +0 -36
  309. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/index.ts +0 -3
  310. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/index.ts +0 -14
  311. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-augmented-ref.ts +0 -32
  312. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-bottom-sheet-aware-handlers.ts +0 -94
  313. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-bottom-sheet-gesture-handlers.ts +0 -52
  314. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-combined-animation-disabled-state.ts +0 -49
  315. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-controllable-state.ts +0 -124
  316. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-dev-info.ts +0 -38
  317. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-keyboard-status.ts +0 -22
  318. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-bottom-sheet-content-animation.ts +0 -67
  319. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-dialog-content-animation.ts +0 -296
  320. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-overlay-animation.ts +0 -91
  321. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-popover-content-animation.ts +0 -199
  322. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-root-animation.ts +0 -26
  323. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-relative-position.ts +0 -353
  324. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-resolved-style-property.ts +0 -118
  325. package/lib/__templates__/expo/client/heroui/helpers/internal/types/animation.ts +0 -131
  326. package/lib/__templates__/expo/client/heroui/helpers/internal/types/bottom-sheet.ts +0 -99
  327. package/lib/__templates__/expo/client/heroui/helpers/internal/types/index.ts +0 -5
  328. package/lib/__templates__/expo/client/heroui/helpers/internal/types/misc.ts +0 -10
  329. package/lib/__templates__/expo/client/heroui/helpers/internal/types/primitives.ts +0 -146
  330. package/lib/__templates__/expo/client/heroui/helpers/internal/types/theme.ts +0 -18
  331. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/animation.ts +0 -266
  332. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/children-to-string.ts +0 -117
  333. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/combine-styles.ts +0 -17
  334. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/create-context.ts +0 -60
  335. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/ease-gradient/create-interpolation.ts +0 -35
  336. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/ease-gradient/index.ts +0 -97
  337. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/get-element-by-display-name.ts +0 -15
  338. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/get-element-with-default.ts +0 -17
  339. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/has-prop.ts +0 -18
  340. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/index.ts +0 -8
  341. package/lib/__templates__/expo/client/heroui/index.tsx +0 -51
  342. package/lib/__templates__/expo/client/heroui/primitives/README.md +0 -27
  343. package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.tsx +0 -270
  344. package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.types.ts +0 -117
  345. package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.utils.ts +0 -12
  346. package/lib/__templates__/expo/client/heroui/primitives/accordion/index.ts +0 -2
  347. package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/activity-indicator.tsx +0 -50
  348. package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/activity-indicator.types.ts +0 -24
  349. package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/index.ts +0 -2
  350. package/lib/__templates__/expo/client/heroui/primitives/alert/alert.tsx +0 -124
  351. package/lib/__templates__/expo/client/heroui/primitives/alert/alert.types.ts +0 -87
  352. package/lib/__templates__/expo/client/heroui/primitives/alert/index.ts +0 -2
  353. package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.tsx +0 -171
  354. package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.types.ts +0 -62
  355. package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.utils.ts +0 -102
  356. package/lib/__templates__/expo/client/heroui/primitives/avatar/index.ts +0 -2
  357. package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/bottom-sheet.tsx +0 -235
  358. package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/bottom-sheet.types.ts +0 -127
  359. package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/index.ts +0 -2
  360. package/lib/__templates__/expo/client/heroui/primitives/checkbox/checkbox.tsx +0 -119
  361. package/lib/__templates__/expo/client/heroui/primitives/checkbox/checkbox.types.ts +0 -37
  362. package/lib/__templates__/expo/client/heroui/primitives/checkbox/index.ts +0 -2
  363. package/lib/__templates__/expo/client/heroui/primitives/dialog/dialog.tsx +0 -274
  364. package/lib/__templates__/expo/client/heroui/primitives/dialog/dialog.types.ts +0 -129
  365. package/lib/__templates__/expo/client/heroui/primitives/dialog/index.ts +0 -2
  366. package/lib/__templates__/expo/client/heroui/primitives/input-otp/index.ts +0 -3
  367. package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.tsx +0 -431
  368. package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.types.ts +0 -169
  369. package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.utils.ts +0 -31
  370. package/lib/__templates__/expo/client/heroui/primitives/label/index.ts +0 -2
  371. package/lib/__templates__/expo/client/heroui/primitives/label/label.tsx +0 -24
  372. package/lib/__templates__/expo/client/heroui/primitives/label/label.types.ts +0 -39
  373. package/lib/__templates__/expo/client/heroui/primitives/menu/index.ts +0 -2
  374. package/lib/__templates__/expo/client/heroui/primitives/menu/menu.tsx +0 -765
  375. package/lib/__templates__/expo/client/heroui/primitives/menu/menu.types.ts +0 -401
  376. package/lib/__templates__/expo/client/heroui/primitives/popover/index.ts +0 -2
  377. package/lib/__templates__/expo/client/heroui/primitives/popover/popover.tsx +0 -382
  378. package/lib/__templates__/expo/client/heroui/primitives/popover/popover.types.ts +0 -201
  379. package/lib/__templates__/expo/client/heroui/primitives/portal/index.ts +0 -1
  380. package/lib/__templates__/expo/client/heroui/primitives/portal/portal.tsx +0 -126
  381. package/lib/__templates__/expo/client/heroui/primitives/radio/index.ts +0 -2
  382. package/lib/__templates__/expo/client/heroui/primitives/radio/radio.tsx +0 -133
  383. package/lib/__templates__/expo/client/heroui/primitives/radio/radio.types.ts +0 -47
  384. package/lib/__templates__/expo/client/heroui/primitives/radio-group/index.ts +0 -2
  385. package/lib/__templates__/expo/client/heroui/primitives/radio-group/radio-group.tsx +0 -114
  386. package/lib/__templates__/expo/client/heroui/primitives/radio-group/radio-group.types.ts +0 -65
  387. package/lib/__templates__/expo/client/heroui/primitives/select/index.ts +0 -2
  388. package/lib/__templates__/expo/client/heroui/primitives/select/select.tsx +0 -705
  389. package/lib/__templates__/expo/client/heroui/primitives/select/select.types.ts +0 -409
  390. package/lib/__templates__/expo/client/heroui/primitives/select/select.utils.ts +0 -35
  391. package/lib/__templates__/expo/client/heroui/primitives/slider/index.ts +0 -3
  392. package/lib/__templates__/expo/client/heroui/primitives/slider/slider.tsx +0 -464
  393. package/lib/__templates__/expo/client/heroui/primitives/slider/slider.types.ts +0 -208
  394. package/lib/__templates__/expo/client/heroui/primitives/slider/slider.utils.ts +0 -93
  395. package/lib/__templates__/expo/client/heroui/primitives/slot/index.ts +0 -1
  396. package/lib/__templates__/expo/client/heroui/primitives/slot/slot.tsx +0 -122
  397. package/lib/__templates__/expo/client/heroui/primitives/slot/types.ts +0 -19
  398. package/lib/__templates__/expo/client/heroui/primitives/slot/utils.ts +0 -96
  399. package/lib/__templates__/expo/client/heroui/primitives/switch/index.ts +0 -2
  400. package/lib/__templates__/expo/client/heroui/primitives/switch/switch.tsx +0 -61
  401. package/lib/__templates__/expo/client/heroui/primitives/switch/switch.types.ts +0 -55
  402. package/lib/__templates__/expo/client/heroui/primitives/tabs/index.ts +0 -2
  403. package/lib/__templates__/expo/client/heroui/primitives/tabs/tabs.tsx +0 -202
  404. package/lib/__templates__/expo/client/heroui/primitives/tabs/tabs.types.ts +0 -77
  405. package/lib/__templates__/expo/client/heroui/primitives/tag-group/index.ts +0 -2
  406. package/lib/__templates__/expo/client/heroui/primitives/tag-group/tag-group.tsx +0 -324
  407. package/lib/__templates__/expo/client/heroui/primitives/tag-group/tag-group.types.ts +0 -119
  408. package/lib/__templates__/expo/client/heroui/primitives/toast/index.ts +0 -2
  409. package/lib/__templates__/expo/client/heroui/primitives/toast/toast.tsx +0 -138
  410. package/lib/__templates__/expo/client/heroui/primitives/toast/toast.types.ts +0 -86
  411. package/lib/__templates__/expo/client/heroui/providers/animation-settings/index.ts +0 -8
  412. package/lib/__templates__/expo/client/heroui/providers/animation-settings/provider.tsx +0 -47
  413. package/lib/__templates__/expo/client/heroui/providers/animation-settings/types.ts +0 -27
  414. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/index.ts +0 -2
  415. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/provider.tsx +0 -67
  416. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/types.ts +0 -114
  417. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/index.ts +0 -2
  418. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/provider.tsx +0 -50
  419. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/types.ts +0 -39
  420. package/lib/__templates__/expo/client/heroui/providers/text-component/index.ts +0 -2
  421. package/lib/__templates__/expo/client/heroui/providers/text-component/provider.tsx +0 -9
  422. package/lib/__templates__/expo/client/heroui/providers/text-component/types.ts +0 -52
  423. package/lib/__templates__/expo/client/heroui/providers/toast/index.ts +0 -3
  424. package/lib/__templates__/expo/client/heroui/providers/toast/insets-container.tsx +0 -87
  425. package/lib/__templates__/expo/client/heroui/providers/toast/provider.tsx +0 -431
  426. package/lib/__templates__/expo/client/heroui/providers/toast/reducer.ts +0 -34
  427. package/lib/__templates__/expo/client/heroui/providers/toast/toast-config.context.ts +0 -27
  428. package/lib/__templates__/expo/client/heroui/providers/toast/toast-item-renderer.tsx +0 -45
  429. package/lib/__templates__/expo/client/heroui/providers/toast/types.ts +0 -373
  430. package/lib/__templates__/expo/client/heroui/styles/index.css +0 -3
  431. package/lib/__templates__/expo/client/heroui/styles/theme.css +0 -112
  432. package/lib/__templates__/expo/client/heroui/styles/utilities.css +0 -8
  433. package/lib/__templates__/expo/client/heroui/styles/variables.css +0 -146
@@ -1,664 +0,0 @@
1
- import BottomSheet from '@gorhom/bottom-sheet';
2
- import { createContext, forwardRef, useMemo } from 'react';
3
- import type { GestureResponderEvent, Text as RNText } from 'react-native';
4
- import { StyleSheet, useWindowDimensions, View } from 'react-native';
5
- import Animated from 'react-native-reanimated';
6
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
- import { useThemeColor } from '../../helpers/external/hooks';
8
- import { cn } from '../../helpers/external/utils';
9
- import {
10
- BottomSheetContent,
11
- CheckIcon,
12
- FullWindowOverlay,
13
- HeroText,
14
- } from '../../helpers/internal/components';
15
- import {
16
- AnimationSettingsProvider,
17
- useAnimationSettings,
18
- } from '../../helpers/internal/contexts';
19
- import {
20
- usePopupOverlayAnimation,
21
- usePopupPopoverContentAnimation,
22
- usePopupRootAnimation,
23
- } from '../../helpers/internal/hooks';
24
- import type { PressableRef } from '../../helpers/internal/types';
25
- import { childrenToString } from '../../helpers/internal/utils';
26
- import * as MenuPrimitives from '../../primitives/menu';
27
- import * as MenuPrimitivesTypes from '../../primitives/menu/menu.types';
28
- import { CloseButton } from '../close-button';
29
- import {
30
- MenuAnimationProvider,
31
- useMenuAnimation,
32
- useMenuItemAnimation,
33
- } from './menu.animation';
34
- import {
35
- DEFAULT_ALIGN_OFFSET,
36
- DEFAULT_INSETS,
37
- DEFAULT_OFFSET,
38
- DISPLAY_NAME,
39
- } from './menu.constants';
40
- import { menuClassNames, menuStyleSheet } from './menu.styles';
41
- import type {
42
- MenuCloseProps,
43
- MenuContentBottomSheetProps,
44
- MenuContentContextValue,
45
- MenuContentPopoverProps,
46
- MenuContentProps,
47
- MenuGroupProps,
48
- MenuItemDescriptionProps,
49
- MenuItemIndicatorProps,
50
- MenuItemProps,
51
- MenuItemTitleProps,
52
- MenuLabelProps,
53
- MenuOverlayProps,
54
- MenuPortalProps,
55
- MenuRootProps,
56
- MenuTriggerProps,
57
- } from './menu.types';
58
-
59
- const AnimatedOverlay = Animated.createAnimatedComponent(
60
- MenuPrimitives.Overlay
61
- );
62
-
63
- const AnimatedContent = Animated.createAnimatedComponent(
64
- MenuPrimitives.Content
65
- );
66
-
67
- const AnimatedItem = Animated.createAnimatedComponent(MenuPrimitives.Item);
68
-
69
- const useMenu = MenuPrimitives.useRootContext;
70
- const useMenuItem = MenuPrimitives.useItemContext;
71
-
72
- const MenuContentContext = createContext<MenuContentContextValue>({
73
- placement: undefined,
74
- });
75
-
76
- // --------------------------------------------------
77
-
78
- const MenuRoot = forwardRef<MenuPrimitivesTypes.RootRef, MenuRootProps>(
79
- (
80
- {
81
- children,
82
- isOpen: isOpenProp,
83
- isDefaultOpen,
84
- onOpenChange: onOpenChangeProp,
85
- presentation = 'popover',
86
- animation,
87
- ...props
88
- },
89
- ref
90
- ) => {
91
- const { isAllAnimationsDisabled, progress, isDragging } =
92
- usePopupRootAnimation({
93
- animation,
94
- });
95
-
96
- const animationContextValue = useMemo(
97
- () => ({
98
- progress,
99
- isDragging,
100
- }),
101
- [progress, isDragging]
102
- );
103
-
104
- const animationSettingsContextValue = useMemo(
105
- () => ({
106
- isAllAnimationsDisabled,
107
- }),
108
- [isAllAnimationsDisabled]
109
- );
110
-
111
- return (
112
- <AnimationSettingsProvider value={animationSettingsContextValue}>
113
- <MenuAnimationProvider value={animationContextValue}>
114
- <MenuPrimitives.Root
115
- ref={ref}
116
- presentation={presentation}
117
- isOpen={isOpenProp}
118
- isDefaultOpen={isDefaultOpen}
119
- onOpenChange={onOpenChangeProp}
120
- {...props}
121
- >
122
- {children}
123
- </MenuPrimitives.Root>
124
- </MenuAnimationProvider>
125
- </AnimationSettingsProvider>
126
- );
127
- }
128
- );
129
-
130
- // --------------------------------------------------
131
-
132
- const MenuTrigger = forwardRef<
133
- MenuPrimitivesTypes.TriggerRef,
134
- MenuTriggerProps
135
- >((props, ref) => {
136
- return <MenuPrimitives.Trigger ref={ref} {...props} />;
137
- });
138
-
139
- // --------------------------------------------------
140
-
141
- const MenuPortal = ({
142
- className,
143
- children,
144
- disableFullWindowOverlay = false,
145
- ...props
146
- }: MenuPortalProps) => {
147
- const animationSettingsContext = useAnimationSettings();
148
- const animationContext = useMenuAnimation();
149
-
150
- const portalClassName = menuClassNames.portal({ className });
151
-
152
- return (
153
- <MenuPrimitives.Portal {...props}>
154
- <AnimationSettingsProvider value={animationSettingsContext}>
155
- <MenuAnimationProvider value={animationContext}>
156
- <FullWindowOverlay
157
- disableFullWindowOverlay={disableFullWindowOverlay}
158
- >
159
- <View className={portalClassName} pointerEvents="box-none">
160
- {children}
161
- </View>
162
- </FullWindowOverlay>
163
- </MenuAnimationProvider>
164
- </AnimationSettingsProvider>
165
- </MenuPrimitives.Portal>
166
- );
167
- };
168
-
169
- // --------------------------------------------------
170
-
171
- const MenuOverlay = forwardRef<
172
- MenuPrimitivesTypes.OverlayRef,
173
- MenuOverlayProps
174
- >(
175
- (
176
- { className, style, animation, isAnimatedStyleActive = true, ...props },
177
- ref
178
- ) => {
179
- const { isOpen, presentation } = useMenu();
180
- const { progress, isDragging } = useMenuAnimation();
181
-
182
- const overlayClassName = menuClassNames.overlay({ className });
183
-
184
- const { rContainerStyle, entering, exiting } = usePopupOverlayAnimation({
185
- progress: presentation === 'bottom-sheet' ? progress : undefined,
186
- isDragging: presentation === 'bottom-sheet' ? isDragging : undefined,
187
- animation,
188
- });
189
-
190
- const overlayStyle = isAnimatedStyleActive
191
- ? [rContainerStyle, style]
192
- : style;
193
-
194
- return (
195
- <Animated.View
196
- entering={entering}
197
- exiting={exiting}
198
- style={StyleSheet.absoluteFill}
199
- pointerEvents="box-none"
200
- >
201
- <AnimatedOverlay
202
- ref={ref}
203
- className={overlayClassName}
204
- style={overlayStyle}
205
- forceMount={presentation === 'bottom-sheet' ? true : undefined}
206
- pointerEvents={isOpen ? 'auto' : 'none'}
207
- {...props}
208
- />
209
- </Animated.View>
210
- );
211
- }
212
- );
213
-
214
- // --------------------------------------------------
215
-
216
- const MenuContentPopover = forwardRef<
217
- MenuPrimitivesTypes.ContentRef,
218
- MenuContentPopoverProps
219
- >(
220
- (
221
- {
222
- placement = 'bottom',
223
- align = 'center',
224
- avoidCollisions = true,
225
- offset = DEFAULT_OFFSET,
226
- alignOffset = DEFAULT_ALIGN_OFFSET,
227
- className,
228
- children,
229
- style,
230
- animation,
231
- ...props
232
- },
233
- ref
234
- ) => {
235
- const { contentLayout } = useMenu();
236
-
237
- const safeAreaInsets = useSafeAreaInsets();
238
- const { height: screenHeight } = useWindowDimensions();
239
-
240
- const isReady = Boolean(contentLayout?.y && contentLayout.y < screenHeight);
241
-
242
- const insets = {
243
- top: DEFAULT_INSETS.top + safeAreaInsets.top,
244
- bottom: DEFAULT_INSETS.bottom + safeAreaInsets.bottom,
245
- left: DEFAULT_INSETS.left + safeAreaInsets.left,
246
- right: DEFAULT_INSETS.right + safeAreaInsets.right,
247
- };
248
-
249
- const contentClassName = menuClassNames.content({
250
- className,
251
- });
252
-
253
- const { entering, exiting } = usePopupPopoverContentAnimation({
254
- placement,
255
- offset,
256
- animation,
257
- });
258
-
259
- return (
260
- <MenuContentContext value={{ placement }}>
261
- {isReady && (
262
- <AnimatedContent
263
- ref={ref}
264
- entering={entering}
265
- exiting={exiting}
266
- placement={placement}
267
- align={align}
268
- avoidCollisions={avoidCollisions}
269
- offset={offset}
270
- alignOffset={alignOffset}
271
- insets={insets}
272
- className={contentClassName}
273
- style={[menuStyleSheet.borderCurve, style]}
274
- {...props}
275
- >
276
- {children}
277
- </AnimatedContent>
278
- )}
279
- <AnimatedContent
280
- placement={placement}
281
- accessible={false}
282
- accessibilityElementsHidden={true}
283
- importantForAccessibility="no"
284
- pointerEvents="none"
285
- collapsable={false}
286
- align={align}
287
- avoidCollisions={avoidCollisions}
288
- offset={offset}
289
- alignOffset={alignOffset}
290
- insets={insets}
291
- className={cn(contentClassName, 'absolute opacity-0')}
292
- style={[menuStyleSheet.borderCurve, style]}
293
- {...props}
294
- >
295
- {children}
296
- </AnimatedContent>
297
- </MenuContentContext>
298
- );
299
- }
300
- );
301
-
302
- // --------------------------------------------------
303
-
304
- const MenuContentBottomSheet = forwardRef<
305
- BottomSheet,
306
- MenuContentBottomSheetProps
307
- >(
308
- (
309
- {
310
- children,
311
- index: initialIndex,
312
- backgroundClassName,
313
- handleIndicatorClassName,
314
- contentContainerClassName: contentContainerClassNameProp,
315
- contentContainerProps,
316
- animation,
317
- animationConfigs,
318
- ...restProps
319
- },
320
- ref
321
- ) => {
322
- const { isOpen, onOpenChange } = useMenu();
323
-
324
- const { progress, isDragging } = useMenuAnimation();
325
-
326
- const contentContainerClassName = menuClassNames.contentBottomSheet({
327
- className: contentContainerClassNameProp,
328
- });
329
-
330
- return (
331
- <BottomSheetContent
332
- ref={ref}
333
- index={initialIndex}
334
- backgroundClassName={backgroundClassName}
335
- handleIndicatorClassName={handleIndicatorClassName}
336
- contentContainerClassName={contentContainerClassName}
337
- contentContainerProps={contentContainerProps}
338
- animation={animation}
339
- animationConfigs={animationConfigs}
340
- backgroundStyle={[
341
- menuStyleSheet.borderCurve,
342
- restProps.backgroundStyle,
343
- ]}
344
- isOpen={isOpen}
345
- progress={progress}
346
- isDragging={isDragging}
347
- onOpenChange={onOpenChange}
348
- {...restProps}
349
- >
350
- {children}
351
- </BottomSheetContent>
352
- );
353
- }
354
- );
355
-
356
- // --------------------------------------------------
357
-
358
- const MenuContent = forwardRef<
359
- MenuPrimitivesTypes.ContentRef | BottomSheet,
360
- MenuContentProps
361
- >((props, ref) => {
362
- const { presentation: contextPresentation } = useMenu();
363
-
364
- if (__DEV__) {
365
- if (props.presentation !== contextPresentation) {
366
- throw new Error(
367
- `Menu.Content presentation prop ("${props.presentation}") does not match Menu.Root presentation prop ("${contextPresentation}"). They must be the same.`
368
- );
369
- }
370
- }
371
-
372
- if (props.presentation === 'bottom-sheet') {
373
- return (
374
- <MenuContentBottomSheet
375
- ref={ref as React.Ref<BottomSheet>}
376
- {...(props as MenuContentBottomSheetProps)}
377
- />
378
- );
379
- }
380
-
381
- return (
382
- <MenuContentPopover
383
- ref={ref as React.Ref<MenuPrimitivesTypes.ContentRef>}
384
- {...(props as MenuContentPopoverProps)}
385
- />
386
- );
387
- });
388
-
389
- // --------------------------------------------------
390
-
391
- const MenuClose = forwardRef<PressableRef, MenuCloseProps>((props, ref) => {
392
- const { onPress: onPressProp, ...restProps } = props;
393
- const { onOpenChange } = useMenu();
394
-
395
- const onPress = (ev: GestureResponderEvent) => {
396
- onOpenChange(false);
397
- if (typeof onPressProp === 'function') {
398
- onPressProp(ev);
399
- }
400
- };
401
-
402
- return <CloseButton ref={ref} onPress={onPress} {...restProps} />;
403
- });
404
-
405
- // --------------------------------------------------
406
-
407
- const MenuLabel = forwardRef<RNText, MenuLabelProps>(
408
- ({ className, children, ...props }, ref) => {
409
- const labelClassName = menuClassNames.label({ className });
410
-
411
- return (
412
- <MenuPrimitives.Label ref={ref} className={labelClassName} {...props}>
413
- {children}
414
- </MenuPrimitives.Label>
415
- );
416
- }
417
- );
418
-
419
- // --------------------------------------------------
420
-
421
- const MenuGroup = forwardRef<MenuPrimitivesTypes.GroupRef, MenuGroupProps>(
422
- ({ className, children, ...props }, ref) => {
423
- const groupClassName = menuClassNames.group({ className });
424
-
425
- return (
426
- <MenuPrimitives.Group ref={ref} className={groupClassName} {...props}>
427
- {children}
428
- </MenuPrimitives.Group>
429
- );
430
- }
431
- );
432
-
433
- // --------------------------------------------------
434
-
435
- const MenuItemComponent = forwardRef<
436
- MenuPrimitivesTypes.ItemRef,
437
- MenuItemProps
438
- >(
439
- (
440
- {
441
- children,
442
- className,
443
- style,
444
- isDisabled = false,
445
- variant = 'default',
446
- animation,
447
- isAnimatedStyleActive = true,
448
- onPressIn,
449
- onPressOut,
450
- ...props
451
- },
452
- ref
453
- ) => {
454
- const { rItemStyle, isPressed, animationOnPressIn, animationOnPressOut } =
455
- useMenuItemAnimation({ animation, variant });
456
-
457
- const itemClassName = menuClassNames.item({ className, isDisabled });
458
-
459
- const isSelected = props.isSelected ?? false;
460
-
461
- const handlePressIn = (event: GestureResponderEvent) => {
462
- animationOnPressIn();
463
- onPressIn?.(event);
464
- };
465
-
466
- const handlePressOut = (event: GestureResponderEvent) => {
467
- animationOnPressOut();
468
- onPressOut?.(event);
469
- };
470
-
471
- const resolvedChildren =
472
- typeof children === 'function'
473
- ? children({
474
- isSelected,
475
- isDisabled,
476
- isPressed,
477
- variant,
478
- })
479
- : children;
480
-
481
- const stringifiedChildren =
482
- typeof children !== 'function' ? childrenToString(children) : null;
483
-
484
- const content = stringifiedChildren ? (
485
- <MenuItemTitle>{stringifiedChildren}</MenuItemTitle>
486
- ) : (
487
- resolvedChildren
488
- );
489
-
490
- const itemStyle = isAnimatedStyleActive
491
- ? [menuStyleSheet.borderCurve, rItemStyle, style]
492
- : [menuStyleSheet.borderCurve, style];
493
-
494
- return (
495
- <AnimatedItem
496
- ref={ref}
497
- className={itemClassName}
498
- style={itemStyle}
499
- isDisabled={isDisabled}
500
- variant={variant}
501
- onPressIn={handlePressIn}
502
- onPressOut={handlePressOut}
503
- {...props}
504
- >
505
- {content}
506
- </AnimatedItem>
507
- );
508
- }
509
- );
510
-
511
- // --------------------------------------------------
512
-
513
- const MenuItemTitle = forwardRef<RNText, MenuItemTitleProps>(
514
- ({ className, children, ...props }, ref) => {
515
- const { variant } = useMenuItem();
516
- const itemTitleClassName = menuClassNames.itemTitle({ className, variant });
517
-
518
- return (
519
- <HeroText
520
- ref={ref}
521
- accessibilityRole="text"
522
- className={itemTitleClassName}
523
- {...props}
524
- >
525
- {children}
526
- </HeroText>
527
- );
528
- }
529
- );
530
-
531
- // --------------------------------------------------
532
-
533
- const MenuItemDescription = forwardRef<RNText, MenuItemDescriptionProps>(
534
- ({ className, children, ...props }, ref) => {
535
- const itemDescriptionClassName = menuClassNames.itemDescription({
536
- className,
537
- });
538
-
539
- return (
540
- <HeroText
541
- ref={ref}
542
- accessibilityRole="summary"
543
- className={itemDescriptionClassName}
544
- {...props}
545
- >
546
- {children}
547
- </HeroText>
548
- );
549
- }
550
- );
551
-
552
- // --------------------------------------------------
553
-
554
- const MenuItemIndicator = forwardRef<
555
- MenuPrimitivesTypes.ItemIndicatorRef,
556
- MenuItemIndicatorProps
557
- >(
558
- (
559
- {
560
- className,
561
- children,
562
- variant = 'checkmark',
563
- iconProps,
564
- forceMount = true,
565
- ...props
566
- },
567
- ref
568
- ) => {
569
- const { isSelected } = useMenuItem();
570
-
571
- const themeColorMuted = useThemeColor('muted');
572
-
573
- const iconSize = iconProps?.size ?? (variant === 'dot' ? 8 : 16);
574
- const iconColor = iconProps?.color ?? themeColorMuted;
575
-
576
- const itemIndicatorClassName = menuClassNames.itemIndicator({ className });
577
-
578
- const defaultContent =
579
- variant === 'dot' ? (
580
- <View
581
- style={{
582
- width: iconSize,
583
- height: iconSize,
584
- borderRadius: iconSize / 2,
585
- backgroundColor: iconColor,
586
- }}
587
- />
588
- ) : (
589
- <CheckIcon size={iconSize} color={iconColor} />
590
- );
591
-
592
- return (
593
- <MenuPrimitives.ItemIndicator
594
- ref={ref}
595
- className={itemIndicatorClassName}
596
- forceMount={forceMount}
597
- {...props}
598
- >
599
- {isSelected && (children ?? defaultContent)}
600
- </MenuPrimitives.ItemIndicator>
601
- );
602
- }
603
- );
604
-
605
- // --------------------------------------------------
606
-
607
- MenuRoot.displayName = DISPLAY_NAME.ROOT;
608
- MenuTrigger.displayName = DISPLAY_NAME.TRIGGER;
609
- MenuPortal.displayName = DISPLAY_NAME.PORTAL;
610
- MenuOverlay.displayName = DISPLAY_NAME.OVERLAY;
611
- MenuContent.displayName = DISPLAY_NAME.CONTENT;
612
- MenuClose.displayName = DISPLAY_NAME.CLOSE;
613
- MenuGroup.displayName = DISPLAY_NAME.GROUP;
614
- MenuLabel.displayName = DISPLAY_NAME.LABEL;
615
- MenuItemComponent.displayName = DISPLAY_NAME.ITEM;
616
- MenuItemTitle.displayName = DISPLAY_NAME.ITEM_TITLE;
617
- MenuItemDescription.displayName = DISPLAY_NAME.ITEM_DESCRIPTION;
618
- MenuItemIndicator.displayName = DISPLAY_NAME.ITEM_INDICATOR;
619
-
620
- /**
621
- * Compound Menu component with sub-components
622
- *
623
- * @component Menu - Main container that manages open/close state, positioning,
624
- * and provides context to child components.
625
- *
626
- * @component Menu.Trigger - Clickable element that toggles the menu visibility.
627
- *
628
- * @component Menu.Portal - Renders menu content in a portal layer above other content.
629
- *
630
- * @component Menu.Overlay - Optional background overlay to capture outside clicks.
631
- *
632
- * @component Menu.Content - Container for menu content with two presentation modes:
633
- * default floating popover with positioning and collision detection, or bottom sheet modal.
634
- *
635
- * @component Menu.Close - Close button for the menu.
636
- *
637
- * @component Menu.Group - Groups menu items with optional selection state (none, single, multiple).
638
- *
639
- * @component Menu.Label - Non-interactive section heading text within the menu.
640
- *
641
- * @component Menu.Item - Pressable menu item. Standalone or within a Group for selection.
642
- *
643
- * @component Menu.ItemTitle - Primary label text for a menu item.
644
- *
645
- * @component Menu.ItemDescription - Secondary description text for a menu item.
646
- *
647
- * @component Menu.ItemIndicator - Visual selection indicator (e.g. checkmark) for a menu item.
648
- */
649
- const Menu = Object.assign(MenuRoot, {
650
- Trigger: MenuTrigger,
651
- Portal: MenuPortal,
652
- Overlay: MenuOverlay,
653
- Content: MenuContent,
654
- Close: MenuClose,
655
- Group: MenuGroup,
656
- Label: MenuLabel,
657
- Item: MenuItemComponent,
658
- ItemTitle: MenuItemTitle,
659
- ItemDescription: MenuItemDescription,
660
- ItemIndicator: MenuItemIndicator,
661
- });
662
-
663
- export { useMenu, useMenuAnimation, useMenuItem };
664
- export default Menu;