@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,828 +0,0 @@
1
- import BottomSheet from '@gorhom/bottom-sheet';
2
- import { forwardRef, useLayoutEffect, useMemo, useRef } from 'react';
3
- import type { GestureResponderEvent, Text as RNText } from 'react-native';
4
- import { StyleSheet, useWindowDimensions, View } from 'react-native';
5
- import { GestureDetector } from 'react-native-gesture-handler';
6
- import Animated from 'react-native-reanimated';
7
- import { useSafeAreaInsets } from 'react-native-safe-area-context';
8
- import { useThemeColor } from '../../helpers/external/hooks';
9
- import { cn } from '../../helpers/external/utils';
10
- import {
11
- BottomSheetContent,
12
- CheckIcon,
13
- ChevronDownIcon,
14
- FullWindowOverlay,
15
- HeroText,
16
- } from '../../helpers/internal/components';
17
- import {
18
- AnimationSettingsProvider,
19
- useAnimationSettings,
20
- } from '../../helpers/internal/contexts';
21
- import {
22
- usePopupDialogContentAnimation,
23
- usePopupOverlayAnimation,
24
- usePopupPopoverContentAnimation,
25
- usePopupRootAnimation,
26
- } from '../../helpers/internal/hooks';
27
- import type { PressableRef, ViewRef } from '../../helpers/internal/types';
28
- import * as SelectPrimitives from '../../primitives/select';
29
- import * as SelectPrimitivesTypes from '../../primitives/select/select.types';
30
- import { CloseButton } from '../close-button';
31
- import {
32
- SelectAnimationProvider,
33
- useSelectAnimation,
34
- useSelectTriggerIndicatorAnimation,
35
- } from './select.animation';
36
- import {
37
- DEFAULT_ALIGN_OFFSET,
38
- DEFAULT_ICON_SIZE,
39
- DEFAULT_INSETS,
40
- DEFAULT_OFFSET,
41
- DISPLAY_NAME,
42
- } from './select.constants';
43
- import { selectClassNames, selectStyleSheet } from './select.styles';
44
- import type {
45
- SelectCloseProps,
46
- SelectContentBottomSheetProps,
47
- SelectContentDialogProps,
48
- SelectContentPopoverProps,
49
- SelectContentProps,
50
- SelectItemDescriptionProps,
51
- SelectItemIndicatorProps,
52
- SelectItemLabelProps,
53
- SelectItemProps,
54
- SelectItemRenderProps,
55
- SelectListLabelProps,
56
- SelectOverlayProps,
57
- SelectPortalProps,
58
- SelectRootProps,
59
- SelectTriggerIndicatorProps,
60
- SelectTriggerProps,
61
- SelectValueProps,
62
- } from './select.types';
63
-
64
- const AnimatedOverlay = Animated.createAnimatedComponent(
65
- SelectPrimitives.Overlay
66
- );
67
-
68
- const AnimatedPopoverContent = Animated.createAnimatedComponent(
69
- SelectPrimitives.PopoverContent
70
- );
71
-
72
- const AnimatedTriggerIndicator = Animated.createAnimatedComponent(
73
- SelectPrimitives.TriggerIndicator
74
- );
75
-
76
- const useSelect = SelectPrimitives.useRootContext;
77
-
78
- const useSelectItem = SelectPrimitives.useItemContext;
79
-
80
- // --------------------------------------------------
81
-
82
- function SelectRoot<M extends SelectPrimitivesTypes.SelectionMode = 'single'>({
83
- children,
84
- ref,
85
- isOpen,
86
- isDefaultOpen,
87
- onOpenChange,
88
- animation,
89
- ...props
90
- }: SelectRootProps<M> & {
91
- ref?: React.Ref<SelectPrimitivesTypes.RootRef>;
92
- }) {
93
- const {
94
- progress,
95
- isDragging,
96
- isGestureReleaseAnimationRunning,
97
- isAllAnimationsDisabled,
98
- } = usePopupRootAnimation({
99
- animation,
100
- });
101
-
102
- const animationContextValue = useMemo(
103
- () => ({
104
- progress,
105
- isDragging,
106
- isGestureReleaseAnimationRunning,
107
- }),
108
- [progress, isDragging, isGestureReleaseAnimationRunning]
109
- );
110
-
111
- const animationSettingsContextValue = useMemo(
112
- () => ({
113
- isAllAnimationsDisabled,
114
- }),
115
- [isAllAnimationsDisabled]
116
- );
117
-
118
- return (
119
- <AnimationSettingsProvider value={animationSettingsContextValue}>
120
- <SelectAnimationProvider value={animationContextValue}>
121
- <SelectPrimitives.Root
122
- ref={ref}
123
- isOpen={isOpen}
124
- isDefaultOpen={isDefaultOpen}
125
- onOpenChange={onOpenChange}
126
- {...props}
127
- >
128
- {children}
129
- </SelectPrimitives.Root>
130
- </SelectAnimationProvider>
131
- </AnimationSettingsProvider>
132
- );
133
- }
134
-
135
- // --------------------------------------------------
136
-
137
- const SelectTrigger = forwardRef<
138
- SelectPrimitivesTypes.TriggerRef,
139
- SelectTriggerProps
140
- >(
141
- (
142
- { variant = 'default', isDisabled: isDisabledProp, className, ...props },
143
- ref
144
- ) => {
145
- const { isDisabled } = useSelect();
146
-
147
- const triggerClassName = selectClassNames.trigger({
148
- variant,
149
- isDisabled: isDisabledProp || isDisabled,
150
- className,
151
- });
152
-
153
- return (
154
- <SelectPrimitives.Trigger
155
- ref={ref}
156
- className={triggerClassName}
157
- {...props}
158
- />
159
- );
160
- }
161
- );
162
-
163
- // --------------------------------------------------
164
-
165
- const SelectValue = forwardRef<
166
- SelectPrimitivesTypes.ValueRef,
167
- SelectValueProps
168
- >(({ className, ...props }, ref) => {
169
- const { value } = useSelect();
170
-
171
- const isSelected = Array.isArray(value)
172
- ? value.length > 0
173
- : Boolean(value?.value);
174
-
175
- const valueClassName = selectClassNames.value({
176
- isSelected,
177
- className,
178
- });
179
-
180
- return (
181
- <SelectPrimitives.Value ref={ref} className={valueClassName} {...props} />
182
- );
183
- });
184
-
185
- // --------------------------------------------------
186
-
187
- const SelectTriggerIndicator = forwardRef<ViewRef, SelectTriggerIndicatorProps>(
188
- (props, ref) => {
189
- const {
190
- children,
191
- className,
192
- iconProps,
193
- animation,
194
- isAnimatedStyleActive = true,
195
- style,
196
- ...restProps
197
- } = props;
198
-
199
- const { isOpen } = useSelect();
200
-
201
- const themeColorForeground = useThemeColor('foreground');
202
-
203
- const triggerIndicatorClassName = selectClassNames.triggerIndicator({
204
- className,
205
- });
206
-
207
- const { rContainerStyle } = useSelectTriggerIndicatorAnimation({
208
- animation,
209
- isOpen,
210
- });
211
-
212
- const triggerIndicatorStyle = isAnimatedStyleActive
213
- ? [rContainerStyle, style]
214
- : style;
215
-
216
- if (children) {
217
- return (
218
- <AnimatedTriggerIndicator
219
- ref={ref}
220
- className={triggerIndicatorClassName}
221
- style={style}
222
- {...restProps}
223
- >
224
- {children}
225
- </AnimatedTriggerIndicator>
226
- );
227
- }
228
-
229
- return (
230
- <AnimatedTriggerIndicator
231
- ref={ref}
232
- className={triggerIndicatorClassName}
233
- style={triggerIndicatorStyle}
234
- {...restProps}
235
- >
236
- <ChevronDownIcon
237
- size={iconProps?.size ?? DEFAULT_ICON_SIZE}
238
- color={iconProps?.color ?? themeColorForeground}
239
- />
240
- </AnimatedTriggerIndicator>
241
- );
242
- }
243
- );
244
-
245
- // --------------------------------------------------
246
-
247
- const SelectPortal = ({
248
- className,
249
- children,
250
- disableFullWindowOverlay = false,
251
- ...props
252
- }: SelectPortalProps) => {
253
- const animationSettingsContext = useAnimationSettings();
254
- const animationContext = useSelectAnimation();
255
-
256
- const portalClassName = selectClassNames.portal({ className });
257
-
258
- return (
259
- <SelectPrimitives.Portal {...props}>
260
- <AnimationSettingsProvider value={animationSettingsContext}>
261
- <SelectAnimationProvider value={animationContext}>
262
- <FullWindowOverlay
263
- disableFullWindowOverlay={disableFullWindowOverlay}
264
- >
265
- <View className={portalClassName} pointerEvents="box-none">
266
- {children}
267
- </View>
268
- </FullWindowOverlay>
269
- </SelectAnimationProvider>
270
- </AnimationSettingsProvider>
271
- </SelectPrimitives.Portal>
272
- );
273
- };
274
-
275
- // --------------------------------------------------
276
-
277
- const SelectOverlay = forwardRef<
278
- SelectPrimitivesTypes.OverlayRef,
279
- SelectOverlayProps
280
- >(
281
- (
282
- { className, style, animation, isAnimatedStyleActive = true, ...props },
283
- ref
284
- ) => {
285
- const { isOpen, presentation } = useSelect();
286
- const { progress, isDragging, isGestureReleaseAnimationRunning } =
287
- useSelectAnimation();
288
-
289
- const overlayClassName = selectClassNames.overlay({
290
- className,
291
- });
292
-
293
- const { rContainerStyle, entering, exiting } = usePopupOverlayAnimation({
294
- progress: presentation !== 'popover' ? progress : undefined,
295
- isDragging: presentation === 'popover' ? isDragging : undefined,
296
- isGestureReleaseAnimationRunning:
297
- presentation === 'dialog'
298
- ? isGestureReleaseAnimationRunning
299
- : undefined,
300
- animation,
301
- });
302
-
303
- const overlayStyle = isAnimatedStyleActive
304
- ? [rContainerStyle, style]
305
- : style;
306
-
307
- return (
308
- <Animated.View
309
- entering={entering}
310
- exiting={exiting}
311
- style={StyleSheet.absoluteFill}
312
- pointerEvents="box-none"
313
- >
314
- <AnimatedOverlay
315
- ref={ref}
316
- className={overlayClassName}
317
- style={overlayStyle}
318
- forceMount={presentation === 'bottom-sheet' ? true : undefined}
319
- pointerEvents={isOpen ? 'auto' : 'none'}
320
- {...props}
321
- />
322
- </Animated.View>
323
- );
324
- }
325
- );
326
-
327
- // --------------------------------------------------
328
-
329
- const SelectContentPopover = forwardRef<
330
- SelectPrimitivesTypes.ContentRef,
331
- SelectContentProps & { presentation?: 'popover' }
332
- >(
333
- (
334
- {
335
- placement = 'bottom',
336
- align = 'center',
337
- avoidCollisions = true,
338
- offset = DEFAULT_OFFSET,
339
- alignOffset = DEFAULT_ALIGN_OFFSET,
340
- className,
341
- children,
342
- style,
343
- animation,
344
- ...props
345
- },
346
- ref
347
- ) => {
348
- const { contentLayout } = useSelect();
349
-
350
- const safeAreaInsets = useSafeAreaInsets();
351
- const { height: screenHeight } = useWindowDimensions();
352
-
353
- // Initially useRelativePosition returns { position: 'absolute', opacity: 0, top: dimensions.height }
354
- // So we need to wait for the content to be ready before showing it
355
- const isReady = Boolean(contentLayout?.y && contentLayout.y < screenHeight);
356
-
357
- const insets = {
358
- top: DEFAULT_INSETS.top + safeAreaInsets.top,
359
- bottom: DEFAULT_INSETS.bottom + safeAreaInsets.bottom,
360
- left: DEFAULT_INSETS.left + safeAreaInsets.left,
361
- right: DEFAULT_INSETS.right + safeAreaInsets.right,
362
- };
363
-
364
- const contentClassName = selectClassNames.content({
365
- className,
366
- });
367
-
368
- const { entering, exiting } = usePopupPopoverContentAnimation({
369
- placement,
370
- offset,
371
- animation,
372
- });
373
-
374
- return (
375
- <>
376
- {isReady && (
377
- <AnimatedPopoverContent
378
- ref={ref}
379
- entering={entering}
380
- exiting={exiting}
381
- placement={placement}
382
- align={align}
383
- avoidCollisions={avoidCollisions}
384
- offset={offset}
385
- alignOffset={alignOffset}
386
- insets={insets}
387
- className={contentClassName}
388
- style={[selectStyleSheet.contentContainer, style]}
389
- {...props}
390
- >
391
- {children}
392
- </AnimatedPopoverContent>
393
- )}
394
- <AnimatedPopoverContent
395
- placement={placement}
396
- accessible={false}
397
- accessibilityElementsHidden={true}
398
- importantForAccessibility="no"
399
- pointerEvents="none"
400
- collapsable={false}
401
- align={align}
402
- avoidCollisions={avoidCollisions}
403
- offset={offset}
404
- alignOffset={alignOffset}
405
- insets={insets}
406
- className={cn(contentClassName, 'absolute opacity-0')}
407
- style={[selectStyleSheet.contentContainer, style]}
408
- {...props}
409
- >
410
- {children}
411
- </AnimatedPopoverContent>
412
- </>
413
- );
414
- }
415
- );
416
-
417
- // --------------------------------------------------
418
-
419
- const SelectContentBottomSheet = forwardRef<
420
- BottomSheet,
421
- SelectContentProps & { presentation: 'bottom-sheet' }
422
- >(
423
- (
424
- {
425
- children,
426
- index: initialIndex,
427
- backgroundClassName,
428
- handleIndicatorClassName,
429
- contentContainerClassName: contentContainerClassNameProp,
430
- contentContainerProps,
431
- animation,
432
- animationConfigs,
433
- ...restProps
434
- },
435
- ref
436
- ) => {
437
- const { isOpen, onOpenChange } = useSelect();
438
-
439
- const { progress, isDragging } = useSelectAnimation();
440
-
441
- return (
442
- <BottomSheetContent
443
- ref={ref}
444
- index={initialIndex}
445
- backgroundClassName={backgroundClassName}
446
- handleIndicatorClassName={handleIndicatorClassName}
447
- contentContainerClassName={contentContainerClassNameProp}
448
- contentContainerProps={contentContainerProps}
449
- animation={animation}
450
- animationConfigs={animationConfigs}
451
- backgroundStyle={[
452
- selectStyleSheet.contentContainer,
453
- restProps.backgroundStyle,
454
- ]}
455
- isOpen={isOpen}
456
- progress={progress}
457
- isDragging={isDragging}
458
- onOpenChange={onOpenChange}
459
- {...restProps}
460
- >
461
- {children}
462
- </BottomSheetContent>
463
- );
464
- }
465
- );
466
-
467
- // --------------------------------------------------
468
-
469
- const SelectContentDialog = forwardRef<
470
- SelectPrimitivesTypes.ContentRef,
471
- SelectContentProps & { presentation: 'dialog' }
472
- >(
473
- (
474
- {
475
- classNames,
476
- styles,
477
- style,
478
- children,
479
- animation,
480
- isSwipeable = true,
481
- ...props
482
- },
483
- ref
484
- ) => {
485
- const { isOpen, onOpenChange } = useSelect();
486
-
487
- const { progress, isDragging, isGestureReleaseAnimationRunning } =
488
- useSelectAnimation();
489
-
490
- const { wrapper, content } = selectClassNames.dialogContent();
491
-
492
- const wrapperClassName = wrapper({ className: classNames?.wrapper });
493
- const contentClassName = content({ className: classNames?.content });
494
-
495
- const dragContainerRef = useRef<View>(null);
496
-
497
- const {
498
- contentY,
499
- contentHeight,
500
- panGesture,
501
- rDragContainerStyle,
502
- entering,
503
- exiting,
504
- } = usePopupDialogContentAnimation({
505
- progress,
506
- isDragging,
507
- isGestureReleaseAnimationRunning,
508
- isOpen,
509
- onOpenChange,
510
- animation,
511
- isSwipeable,
512
- });
513
-
514
- useLayoutEffect(() => {
515
- dragContainerRef.current?.measure(
516
- (_x, _y, _width, height, _pageX, pageY) => {
517
- contentY.set(pageY);
518
- contentHeight.set(height);
519
- }
520
- );
521
- // eslint-disable-next-line react-hooks/exhaustive-deps
522
- }, []);
523
-
524
- return (
525
- <View className={wrapperClassName} style={styles?.wrapper}>
526
- <GestureDetector gesture={panGesture}>
527
- <Animated.View
528
- ref={dragContainerRef}
529
- entering={entering}
530
- exiting={exiting}
531
- >
532
- <Animated.View style={rDragContainerStyle} pointerEvents="box-none">
533
- <SelectPrimitives.DialogContent
534
- ref={ref}
535
- className={contentClassName}
536
- style={[
537
- selectStyleSheet.contentContainer,
538
- styles?.content,
539
- style,
540
- ]}
541
- {...props}
542
- >
543
- {children}
544
- </SelectPrimitives.DialogContent>
545
- </Animated.View>
546
- </Animated.View>
547
- </GestureDetector>
548
- </View>
549
- );
550
- }
551
- );
552
-
553
- // --------------------------------------------------
554
-
555
- const SelectContent = forwardRef<
556
- SelectPrimitivesTypes.ContentRef | BottomSheet,
557
- SelectContentProps
558
- >((props, ref) => {
559
- const presentation = props.presentation || 'popover';
560
- const { presentation: contextPresentation } = useSelect();
561
-
562
- if (__DEV__) {
563
- if (presentation !== contextPresentation) {
564
- throw new Error(
565
- `Select.Content presentation prop ("${props.presentation}") does not match Select.Root presentation prop ("${contextPresentation}"). They must be the same.`
566
- );
567
- }
568
- }
569
-
570
- if (presentation === 'bottom-sheet') {
571
- return (
572
- <SelectContentBottomSheet
573
- ref={ref as React.Ref<BottomSheet>}
574
- {...(props as SelectContentBottomSheetProps)}
575
- />
576
- );
577
- }
578
-
579
- if (presentation === 'dialog') {
580
- return (
581
- <SelectContentDialog
582
- ref={ref as React.Ref<SelectPrimitivesTypes.ContentRef>}
583
- {...(props as SelectContentDialogProps)}
584
- />
585
- );
586
- }
587
-
588
- return (
589
- <SelectContentPopover
590
- ref={ref as React.Ref<SelectPrimitivesTypes.ContentRef>}
591
- {...(props as SelectContentPopoverProps)}
592
- />
593
- );
594
- });
595
-
596
- // --------------------------------------------------
597
-
598
- const SelectClose = forwardRef<PressableRef, SelectCloseProps>((props, ref) => {
599
- const { onPress: onPressProp, ...restProps } = props;
600
- const { onOpenChange } = useSelect();
601
-
602
- const onPress = (ev: GestureResponderEvent) => {
603
- onOpenChange(false);
604
- if (typeof onPressProp === 'function') {
605
- onPressProp(ev);
606
- }
607
- };
608
-
609
- return <CloseButton ref={ref} onPress={onPress} {...restProps} />;
610
- });
611
-
612
- // --------------------------------------------------
613
-
614
- const SelectItem = forwardRef<SelectPrimitivesTypes.ItemRef, SelectItemProps>(
615
- (
616
- {
617
- children,
618
- className,
619
- disabled = false,
620
- value: itemValue,
621
- label,
622
- ...props
623
- },
624
- ref
625
- ) => {
626
- const { value } = useSelect();
627
-
628
- const isSelected = Array.isArray(value)
629
- ? value.some((v) => v?.value === itemValue)
630
- : value?.value === itemValue;
631
- const isDisabled = disabled ?? false;
632
-
633
- const itemClassName = selectClassNames.item({ className });
634
-
635
- const renderProps: SelectItemRenderProps = {
636
- isSelected,
637
- value: itemValue,
638
- isDisabled,
639
- };
640
-
641
- const content =
642
- typeof children === 'function'
643
- ? children(renderProps)
644
- : (children ?? (
645
- <>
646
- <SelectItemLabel />
647
- <SelectItemIndicator />
648
- </>
649
- ));
650
-
651
- return (
652
- <SelectPrimitives.Item
653
- ref={ref}
654
- className={itemClassName}
655
- disabled={disabled}
656
- value={itemValue}
657
- label={label}
658
- {...props}
659
- >
660
- {content}
661
- </SelectPrimitives.Item>
662
- );
663
- }
664
- );
665
-
666
- // --------------------------------------------------
667
-
668
- const SelectItemLabel = forwardRef<
669
- SelectPrimitivesTypes.ItemLabelRef,
670
- SelectItemLabelProps
671
- >(({ className, ...props }, ref) => {
672
- const { label } = useSelectItem();
673
-
674
- const itemLabelClassName = selectClassNames.itemLabel({ className });
675
-
676
- return (
677
- <HeroText
678
- ref={ref}
679
- accessibilityRole="text"
680
- className={itemLabelClassName}
681
- {...props}
682
- >
683
- {label}
684
- </HeroText>
685
- );
686
- });
687
-
688
- // --------------------------------------------------
689
-
690
- const SelectItemDescription = forwardRef<RNText, SelectItemDescriptionProps>(
691
- ({ className, ...props }, ref) => {
692
- const itemDescriptionClassName = selectClassNames.itemDescription({
693
- className,
694
- });
695
-
696
- return (
697
- <HeroText
698
- ref={ref}
699
- accessibilityRole="summary"
700
- className={itemDescriptionClassName}
701
- {...props}
702
- />
703
- );
704
- }
705
- );
706
-
707
- // --------------------------------------------------
708
-
709
- const SelectItemIndicator = forwardRef<
710
- SelectPrimitivesTypes.ItemIndicatorRef,
711
- SelectItemIndicatorProps
712
- >(({ className, children, iconProps, ...props }, ref) => {
713
- const themeColorAccent = useThemeColor('accent');
714
-
715
- const iconSize = iconProps?.size ?? 16;
716
- const iconColor = iconProps?.color ?? themeColorAccent;
717
-
718
- const itemIndicatorClassName = selectClassNames.itemIndicator({ className });
719
-
720
- return (
721
- <SelectPrimitives.ItemIndicator
722
- ref={ref}
723
- className={itemIndicatorClassName}
724
- {...props}
725
- >
726
- {children || <CheckIcon size={iconSize} color={iconColor} />}
727
- </SelectPrimitives.ItemIndicator>
728
- );
729
- });
730
-
731
- // --------------------------------------------------
732
-
733
- const SelectListLabel = forwardRef<
734
- SelectPrimitivesTypes.GroupLabelRef,
735
- SelectListLabelProps
736
- >(({ className, ...props }, ref) => {
737
- const listLabelClassName = selectClassNames.listLabel({
738
- className,
739
- });
740
-
741
- return (
742
- <HeroText
743
- ref={ref}
744
- className={listLabelClassName}
745
- accessibilityRole="header"
746
- {...props}
747
- />
748
- );
749
- });
750
-
751
- // --------------------------------------------------
752
-
753
- SelectRoot.displayName = DISPLAY_NAME.ROOT;
754
- SelectTrigger.displayName = DISPLAY_NAME.TRIGGER;
755
- SelectTriggerIndicator.displayName = DISPLAY_NAME.TRIGGER_INDICATOR;
756
- SelectValue.displayName = DISPLAY_NAME.VALUE;
757
- SelectPortal.displayName = DISPLAY_NAME.PORTAL;
758
- SelectOverlay.displayName = DISPLAY_NAME.OVERLAY;
759
- SelectContent.displayName = DISPLAY_NAME.CONTENT;
760
- SelectClose.displayName = DISPLAY_NAME.CLOSE;
761
- SelectItemDescription.displayName = DISPLAY_NAME.ITEM_DESCRIPTION;
762
- SelectItem.displayName = DISPLAY_NAME.ITEM;
763
- SelectItemLabel.displayName = DISPLAY_NAME.ITEM_LABEL;
764
- SelectItemIndicator.displayName = DISPLAY_NAME.ITEM_INDICATOR;
765
- SelectListLabel.displayName = DISPLAY_NAME.LIST_LABEL;
766
-
767
- /**
768
- * Compound Select component with sub-components
769
- *
770
- * @component Select - Main container that manages open/close state, positioning,
771
- * value selection and provides context to child components. Handles placement, alignment, and collision detection.
772
- *
773
- * @component Select.Trigger - Clickable element that toggles the select visibility.
774
- * Wraps any child element with press handlers.
775
- *
776
- * @component Select.TriggerIndicator - Optional visual indicator showing open/close state.
777
- * Defaults to an animated chevron icon that rotates based on select state.
778
- * Supports custom animation configuration.
779
- *
780
- * @component Select.Value - Displays the selected value or placeholder text.
781
- * Automatically updates when selection changes.
782
- *
783
- * @component Select.Portal - Renders select content in a portal layer above other content.
784
- * Ensures proper stacking and positioning.
785
- *
786
- * @component Select.Overlay - Optional background overlay. Can be transparent or
787
- * semi-transparent to capture outside clicks.
788
- *
789
- * @component Select.Content - Container for select content with three presentation modes:
790
- * popover (default floating with positioning and collision detection), bottom sheet modal, or dialog modal.
791
- * Supports custom animations.
792
- *
793
- * @component Select.Item - Selectable option item. Handles selection state and press events.
794
- *
795
- * @component Select.ItemLabel - Displays the label text for an item.
796
- *
797
- * @component Select.ItemIndicator - Optional indicator shown for selected items.
798
- *
799
- * @component Select.ListLabel - Label for the list of items.
800
- *
801
- * @component Select.Close - Close button for the select.
802
- * Can accept custom children or uses default close icon.
803
- *
804
- * @component Select.ItemDescription - Optional description text for items with muted styling.
805
- *
806
- * Props flow from Select to sub-components via context (placement, align, offset, value, etc.).
807
- * The select automatically positions itself relative to the trigger element.
808
- *
809
- * @see Full documentation: https://v3.heroui.com/docs/native/components/select
810
- */
811
- const Select = Object.assign(SelectRoot, {
812
- Trigger: SelectTrigger,
813
- /** @optional Visual indicator showing open/close state (defaults to chevron) */
814
- TriggerIndicator: SelectTriggerIndicator,
815
- Value: SelectValue,
816
- Portal: SelectPortal,
817
- Overlay: SelectOverlay,
818
- Content: SelectContent,
819
- Item: SelectItem,
820
- ItemLabel: SelectItemLabel,
821
- ItemDescription: SelectItemDescription,
822
- ItemIndicator: SelectItemIndicator,
823
- ListLabel: SelectListLabel,
824
- Close: SelectClose,
825
- });
826
-
827
- export { useSelect, useSelectAnimation, useSelectItem };
828
- export default Select;