@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,705 +0,0 @@
1
- import React, {
2
- createContext,
3
- forwardRef,
4
- useContext,
5
- useEffect,
6
- useId,
7
- useMemo,
8
- useState,
9
- } from 'react';
10
- import {
11
- BackHandler,
12
- Pressable,
13
- StyleSheet,
14
- Text,
15
- View,
16
- type GestureResponderEvent,
17
- type LayoutChangeEvent,
18
- type LayoutRectangle,
19
- } from 'react-native';
20
- import {
21
- useAugmentedRef,
22
- useControllableState,
23
- useRelativePosition,
24
- type LayoutPosition,
25
- } from '../../helpers/internal/hooks';
26
- import { Portal as PrimitivePortal } from '../portal';
27
- import * as Slot from '../slot';
28
- import type {
29
- CloseProps,
30
- CloseRef,
31
- ContentRef,
32
- DialogContentProps,
33
- GroupLabelProps,
34
- GroupLabelRef,
35
- GroupProps,
36
- GroupRef,
37
- IRootContext,
38
- ItemIndicatorProps,
39
- ItemIndicatorRef,
40
- ItemLabelProps,
41
- ItemLabelRef,
42
- ItemProps,
43
- ItemRef,
44
- OverlayProps,
45
- OverlayRef,
46
- PopoverContentProps,
47
- PortalProps,
48
- RootProps,
49
- RootRef,
50
- SelectionMode,
51
- SelectValue,
52
- TriggerIndicatorProps,
53
- TriggerIndicatorRef,
54
- TriggerProps,
55
- TriggerRef,
56
- ValueProps,
57
- ValueRef,
58
- } from './select.types';
59
- import { formatSelectedLabels, isItemSelected } from './select.utils';
60
-
61
- const RootContext = createContext<IRootContext | null>(null);
62
-
63
- const useRootContext = () => {
64
- const context = useContext(RootContext);
65
- if (!context) {
66
- throw new Error(
67
- 'Select compound components cannot be rendered outside the Select component'
68
- );
69
- }
70
- return context;
71
- };
72
-
73
- function Root<M extends SelectionMode = 'single'>({
74
- asChild,
75
- ref,
76
- value: valueProp,
77
- defaultValue,
78
- onValueChange: onValueChangeProp,
79
- isOpen: isOpenProp,
80
- isDefaultOpen,
81
- onOpenChange: onOpenChangeProp,
82
- isDisabled,
83
- selectionMode = 'single' as M,
84
- presentation = 'popover',
85
- ...viewProps
86
- }: RootProps<M> & { ref?: React.Ref<RootRef> }) {
87
- const nativeID = useId();
88
-
89
- // Widen to SelectValue internally so the context can serve both modes.
90
- const [value, onValueChange] = useControllableState<SelectValue>({
91
- prop: valueProp as SelectValue,
92
- defaultProp: defaultValue as SelectValue,
93
- onChange: onValueChangeProp as ((value: SelectValue) => void) | undefined,
94
- });
95
-
96
- const [isOpen = false, onOpenChange] = useControllableState({
97
- prop: isOpenProp,
98
- defaultProp: isDefaultOpen,
99
- onChange: onOpenChangeProp,
100
- });
101
-
102
- const [triggerPosition, setTriggerPosition] = useState<LayoutPosition | null>(
103
- null
104
- );
105
- const [contentLayout, setContentLayout] = useState<LayoutRectangle | null>(
106
- null
107
- );
108
-
109
- const Component = asChild ? Slot.View : View;
110
- return (
111
- <RootContext.Provider
112
- value={{
113
- value,
114
- onValueChange,
115
- isOpen,
116
- onOpenChange,
117
- isDefaultOpen,
118
- isDisabled,
119
- contentLayout,
120
- nativeID,
121
- selectionMode,
122
- setContentLayout,
123
- setTriggerPosition,
124
- triggerPosition,
125
- presentation,
126
- }}
127
- >
128
- <Component ref={ref} {...viewProps} />
129
- </RootContext.Provider>
130
- );
131
- }
132
-
133
- // --------------------------------------------------
134
-
135
- const Trigger = forwardRef<TriggerRef, TriggerProps>(
136
- (
137
- {
138
- asChild,
139
- onPress: onPressProp,
140
- onLayout: onLayoutProp,
141
- isDisabled = false,
142
- ...props
143
- },
144
- ref
145
- ) => {
146
- const {
147
- onOpenChange,
148
- isOpen,
149
- isDisabled: isDisabledRoot,
150
- setTriggerPosition,
151
- setContentLayout,
152
- isDefaultOpen,
153
- triggerPosition,
154
- } = useRootContext();
155
-
156
- const isDisabledValue = isDisabled || isDisabledRoot;
157
-
158
- const augmentedRef = useAugmentedRef({
159
- ref,
160
- methods: {
161
- open: () => {
162
- onOpenChange(true);
163
- augmentedRef.current?.measure(
164
- (_x, _y, width, height, pageX, pageY) => {
165
- setTriggerPosition({ width, pageX, pageY: pageY, height });
166
- }
167
- );
168
- },
169
- close: () => {
170
- onOpenChange(false);
171
- setTriggerPosition(null);
172
- setContentLayout(null);
173
- },
174
- },
175
- deps: [isOpen],
176
- });
177
-
178
- // Open popover on mount if isDefaultOpen is true or isOpen is true initially
179
- useEffect(() => {
180
- if ((isDefaultOpen || isOpen) && !triggerPosition) {
181
- // Use setTimeout to ensure the component is mounted and can be measured
182
- const timeoutId = setTimeout(() => {
183
- augmentedRef.current?.measure(
184
- (_x, _y, width, height, pageX, pageY) => {
185
- setTriggerPosition({ width, pageX, pageY: pageY, height });
186
- if (isDefaultOpen) {
187
- onOpenChange(true);
188
- }
189
- }
190
- );
191
- }, 0);
192
- return () => clearTimeout(timeoutId);
193
- }
194
- return undefined;
195
- // eslint-disable-next-line react-hooks/exhaustive-deps
196
- }, []);
197
-
198
- function onPress(ev: GestureResponderEvent) {
199
- if (isDisabledValue) return;
200
- augmentedRef.current?.measure((_x, _y, width, height, pageX, pageY) => {
201
- setTriggerPosition({ width, pageX, pageY: pageY, height });
202
- });
203
- onOpenChange(!isOpen);
204
- onPressProp?.(ev);
205
- }
206
-
207
- function onLayout(event: LayoutChangeEvent) {
208
- augmentedRef.current?.measure((_x, _y, width, height, pageX, pageY) => {
209
- setTriggerPosition({ width, pageX, pageY: pageY, height });
210
- if (isDefaultOpen) {
211
- onOpenChange(true);
212
- }
213
- });
214
- onLayoutProp?.(event);
215
- }
216
-
217
- const Component = asChild ? Slot.Pressable : Pressable;
218
-
219
- return (
220
- <Component
221
- ref={augmentedRef}
222
- aria-disabled={isDisabledValue}
223
- role="combobox"
224
- onPress={onPress}
225
- disabled={isDisabledValue}
226
- onLayout={onLayout}
227
- {...props}
228
- />
229
- );
230
- }
231
- );
232
-
233
- // --------------------------------------------------
234
-
235
- const Value = React.forwardRef<ValueRef, ValueProps>(
236
- ({ asChild, placeholder, ...props }, ref) => {
237
- const { value, selectionMode } = useRootContext();
238
-
239
- /** Resolves the display text based on selection mode and current value */
240
- const displayText = useMemo(() => {
241
- if (selectionMode === 'multiple') {
242
- const values = Array.isArray(value) ? value : value ? [value] : [];
243
- const labels = values
244
- .map((v) => v?.label)
245
- .filter((label): label is string => typeof label === 'string');
246
-
247
- return formatSelectedLabels(labels) ?? placeholder;
248
- }
249
-
250
- // Single mode — preserve backward-compatible behavior
251
- if (Array.isArray(value)) {
252
- return value[0]?.label ?? placeholder;
253
- }
254
-
255
- return value?.label ?? placeholder;
256
- }, [value, selectionMode, placeholder]);
257
-
258
- const Component = asChild ? Slot.Text : Text;
259
-
260
- return (
261
- <Component ref={ref} {...props}>
262
- {displayText}
263
- </Component>
264
- );
265
- }
266
- );
267
-
268
- // --------------------------------------------------
269
-
270
- const TriggerIndicator = forwardRef<TriggerIndicatorRef, TriggerIndicatorProps>(
271
- ({ asChild, ...props }, ref) => {
272
- const Component = asChild ? Slot.View : View;
273
-
274
- return (
275
- <Component ref={ref} role="presentation" aria-hidden={true} {...props} />
276
- );
277
- }
278
- );
279
-
280
- // --------------------------------------------------
281
-
282
- /**
283
- * @warning when using a custom `<PortalHost />`, you might have to adjust the Content's offset to account for nav elements like headers.
284
- */
285
- function Portal({ forceMount, hostName, children }: PortalProps) {
286
- const value = useRootContext();
287
-
288
- const isBottomSheet = value.presentation === 'bottom-sheet';
289
- const isDialog = value.presentation === 'dialog';
290
-
291
- // For popover presentation, triggerPosition is required
292
- // For bottom-sheet and dialog, triggerPosition is not required
293
- if (!value.triggerPosition && !isBottomSheet && !isDialog) {
294
- return null;
295
- }
296
-
297
- if (!forceMount && !isBottomSheet) {
298
- if (!value.isOpen) {
299
- return null;
300
- }
301
- }
302
-
303
- return (
304
- <PrimitivePortal hostName={hostName} name={`${value.nativeID}_portal`}>
305
- <RootContext.Provider value={value}>{children}</RootContext.Provider>
306
- </PrimitivePortal>
307
- );
308
- }
309
-
310
- // --------------------------------------------------
311
-
312
- const Overlay = forwardRef<OverlayRef, OverlayProps>(
313
- (
314
- {
315
- asChild,
316
- forceMount,
317
- onPress: OnPressProp,
318
- closeOnPress = true,
319
- ...props
320
- },
321
- ref
322
- ) => {
323
- const { isOpen, onOpenChange, setTriggerPosition, setContentLayout } =
324
- useRootContext();
325
-
326
- function onPress(ev: GestureResponderEvent) {
327
- if (closeOnPress) {
328
- setTriggerPosition(null);
329
- setContentLayout(null);
330
- onOpenChange(false);
331
- }
332
- OnPressProp?.(ev);
333
- }
334
-
335
- if (!forceMount) {
336
- if (!isOpen) {
337
- return null;
338
- }
339
- }
340
-
341
- const Component = asChild ? Slot.Pressable : Pressable;
342
- return <Component ref={ref} onPress={onPress} {...props} />;
343
- }
344
- );
345
-
346
- // --------------------------------------------------
347
-
348
- /**
349
- * @info `position`, `top`, `left`, and `maxWidth` style properties are controlled internally. Opt out of this behavior by setting `disablePositioningStyle` to `true`.
350
- */
351
- const PopoverContent = forwardRef<ContentRef, PopoverContentProps>(
352
- (
353
- {
354
- asChild = false,
355
- forceMount,
356
- align = 'start',
357
- placement = 'bottom',
358
- offset = 0,
359
- alignOffset = 0,
360
- avoidCollisions = true,
361
- onLayout: onLayoutProp,
362
- insets,
363
- style,
364
- disablePositioningStyle,
365
- width = 'content-fit',
366
- ...props
367
- },
368
- ref
369
- ) => {
370
- const {
371
- isOpen,
372
- onOpenChange,
373
- contentLayout,
374
- nativeID,
375
- setContentLayout,
376
- setTriggerPosition,
377
- triggerPosition,
378
- } = useRootContext();
379
-
380
- useEffect(() => {
381
- const backHandler = BackHandler.addEventListener(
382
- 'hardwareBackPress',
383
- () => {
384
- onOpenChange(false);
385
- setTriggerPosition(null);
386
- setContentLayout(null);
387
- return true;
388
- }
389
- );
390
-
391
- return () => {
392
- setContentLayout(null);
393
- backHandler.remove();
394
- };
395
- // eslint-disable-next-line react-hooks/exhaustive-deps
396
- }, []);
397
-
398
- const positionStyle = useRelativePosition({
399
- align,
400
- avoidCollisions,
401
- triggerPosition,
402
- contentLayout,
403
- alignOffset,
404
- insets,
405
- offset,
406
- placement,
407
- disablePositioningStyle,
408
- });
409
-
410
- // Calculate content width based on width prop
411
- const widthStyle: { width?: number | `${number}%` } = {};
412
- if (width === 'trigger' && triggerPosition) {
413
- widthStyle.width = triggerPosition.width;
414
- } else if (width === 'full') {
415
- widthStyle.width = '100%';
416
- } else if (typeof width === 'number') {
417
- widthStyle.width = width;
418
- }
419
- // 'content-fit' is default - no explicit width set
420
-
421
- const flatStyle = StyleSheet.flatten([positionStyle, widthStyle, style]);
422
-
423
- function onLayout(event: LayoutChangeEvent) {
424
- setContentLayout(event.nativeEvent.layout);
425
- onLayoutProp?.(event);
426
- }
427
-
428
- if (!forceMount) {
429
- if (!isOpen) {
430
- return null;
431
- }
432
- }
433
-
434
- const Component = asChild ? Slot.View : View;
435
-
436
- return (
437
- <Component
438
- ref={ref}
439
- role="dialog"
440
- nativeID={nativeID}
441
- aria-modal={true}
442
- style={flatStyle}
443
- onLayout={onLayout}
444
- {...props}
445
- />
446
- );
447
- }
448
- );
449
-
450
- // --------------------------------------------------
451
-
452
- const DialogContent = forwardRef<ContentRef, DialogContentProps>(
453
- ({ asChild, forceMount, ...props }, ref) => {
454
- const { isOpen, nativeID, onOpenChange } = useRootContext();
455
-
456
- useEffect(() => {
457
- const backHandler = BackHandler.addEventListener(
458
- 'hardwareBackPress',
459
- () => {
460
- onOpenChange(false);
461
- return true;
462
- }
463
- );
464
-
465
- return () => {
466
- backHandler.remove();
467
- };
468
- // eslint-disable-next-line react-hooks/exhaustive-deps
469
- }, []);
470
-
471
- if (!forceMount) {
472
- if (!isOpen) {
473
- return null;
474
- }
475
- }
476
-
477
- const Component = asChild ? Slot.View : View;
478
-
479
- return (
480
- <Component
481
- ref={ref}
482
- role="dialog"
483
- nativeID={nativeID}
484
- aria-labelledby={`${nativeID}_label`}
485
- aria-describedby={`${nativeID}_desc`}
486
- aria-modal={true}
487
- {...props}
488
- />
489
- );
490
- }
491
- );
492
-
493
- // --------------------------------------------------
494
-
495
- const Close = forwardRef<CloseRef, CloseProps>(
496
- ({ asChild, onPress: onPressProp, disabled = false, ...props }, ref) => {
497
- const { onOpenChange, setContentLayout, setTriggerPosition } =
498
- useRootContext();
499
-
500
- function onPress(ev: GestureResponderEvent) {
501
- if (disabled) return;
502
- onOpenChange(false);
503
- setTriggerPosition(null);
504
- setContentLayout(null);
505
- onPressProp?.(ev);
506
- }
507
-
508
- const Component = asChild ? Slot.Pressable : Pressable;
509
-
510
- return (
511
- <Component
512
- ref={ref}
513
- aria-disabled={disabled ?? undefined}
514
- role="button"
515
- onPress={onPress}
516
- disabled={disabled ?? undefined}
517
- {...props}
518
- />
519
- );
520
- }
521
- );
522
-
523
- // --------------------------------------------------
524
-
525
- const ItemContext = createContext<{
526
- itemValue: string;
527
- label: string;
528
- } | null>(null);
529
-
530
- function useItemContext() {
531
- const context = useContext(ItemContext);
532
- if (!context) {
533
- throw new Error(
534
- 'Item compound components cannot be rendered outside of an Item component'
535
- );
536
- }
537
- return context;
538
- }
539
-
540
- // --------------------------------------------------
541
-
542
- const Item = React.forwardRef<ItemRef, ItemProps>(
543
- (
544
- {
545
- asChild,
546
- value: itemValue,
547
- label,
548
- onPress: onPressProp,
549
- disabled = false,
550
- closeOnPress: closeOnPressProp,
551
- ...props
552
- },
553
- ref
554
- ) => {
555
- const {
556
- onOpenChange,
557
- value,
558
- onValueChange,
559
- selectionMode,
560
- setTriggerPosition,
561
- setContentLayout,
562
- } = useRootContext();
563
-
564
- /** Default closeOnPress to `true` for single mode, `false` for multiple mode */
565
- const closeOnPress = closeOnPressProp ?? selectionMode === 'single';
566
- const checked = isItemSelected(value, itemValue);
567
-
568
- function onPress(ev: GestureResponderEvent) {
569
- if (selectionMode === 'multiple') {
570
- // Toggle item in the selected values array
571
- const currentValues = Array.isArray(value)
572
- ? value
573
- : value
574
- ? [value]
575
- : [];
576
-
577
- const nextValues = checked
578
- ? currentValues.filter((v) => v?.value !== itemValue)
579
- : [...currentValues, { value: itemValue, label }];
580
-
581
- onValueChange(nextValues);
582
- } else {
583
- onValueChange({ value: itemValue, label });
584
- }
585
-
586
- if (closeOnPress) {
587
- onOpenChange(false);
588
- setTriggerPosition(null);
589
- setContentLayout(null);
590
- }
591
-
592
- onPressProp?.(ev);
593
- }
594
-
595
- const Component = asChild ? Slot.Pressable : Pressable;
596
-
597
- return (
598
- <ItemContext.Provider value={{ itemValue, label }}>
599
- <Component
600
- ref={ref}
601
- role="option"
602
- onPress={onPress}
603
- disabled={disabled}
604
- aria-checked={checked}
605
- aria-valuetext={label}
606
- aria-disabled={!!disabled}
607
- accessibilityState={{
608
- disabled: !!disabled,
609
- checked,
610
- }}
611
- {...props}
612
- />
613
- </ItemContext.Provider>
614
- );
615
- }
616
- );
617
-
618
- // --------------------------------------------------
619
-
620
- const ItemLabel = React.forwardRef<ItemLabelRef, ItemLabelProps>(
621
- ({ asChild, ...props }, ref) => {
622
- const { label } = useItemContext();
623
-
624
- const Component = asChild ? Slot.Text : Text;
625
-
626
- return (
627
- <Component ref={ref} {...props}>
628
- {label}
629
- </Component>
630
- );
631
- }
632
- );
633
-
634
- // --------------------------------------------------
635
-
636
- const ItemIndicator = React.forwardRef<ItemIndicatorRef, ItemIndicatorProps>(
637
- ({ asChild, forceMount, ...props }, ref) => {
638
- const { itemValue } = useItemContext();
639
- const { value } = useRootContext();
640
-
641
- if (!forceMount) {
642
- if (!isItemSelected(value, itemValue)) {
643
- return null;
644
- }
645
- }
646
- const Component = asChild ? Slot.View : View;
647
-
648
- return <Component ref={ref} role="presentation" {...props} />;
649
- }
650
- );
651
-
652
- // --------------------------------------------------
653
-
654
- const Group = React.forwardRef<GroupRef, GroupProps>(
655
- ({ asChild, ...props }, ref) => {
656
- const Component = asChild ? Slot.View : View;
657
-
658
- return <Component ref={ref} role="group" {...props} />;
659
- }
660
- );
661
-
662
- // --------------------------------------------------
663
-
664
- const GroupLabel = React.forwardRef<GroupLabelRef, GroupLabelProps>(
665
- ({ asChild, ...props }, ref) => {
666
- const Component = asChild ? Slot.Text : Text;
667
-
668
- return <Component ref={ref} {...props} />;
669
- }
670
- );
671
-
672
- // --------------------------------------------------
673
-
674
- Root.displayName = 'HeroUINative.Primitive.Select.Root';
675
- Trigger.displayName = 'HeroUINative.Primitive.Select.Trigger';
676
- TriggerIndicator.displayName = 'HeroUINative.Primitive.Select.TriggerIndicator';
677
- Value.displayName = 'HeroUINative.Primitive.Select.Value';
678
- Overlay.displayName = 'HeroUINative.Primitive.Select.Overlay';
679
- PopoverContent.displayName = 'HeroUINative.Primitive.Select.PopoverContent';
680
- DialogContent.displayName = 'HeroUINative.Primitive.Select.DialogContent';
681
- Close.displayName = 'HeroUINative.Primitive.Select.Close';
682
- Item.displayName = 'HeroUINative.Primitive.Select.Item';
683
- ItemLabel.displayName = 'HeroUINative.Primitive.Select.ItemLabel';
684
- ItemIndicator.displayName = 'HeroUINative.Primitive.Select.ItemIndicator';
685
- Group.displayName = 'HeroUINative.Primitive.Select.Group';
686
- GroupLabel.displayName = 'HeroUINative.Primitive.Select.GroupLabel';
687
-
688
- export {
689
- Close,
690
- DialogContent,
691
- Group,
692
- GroupLabel,
693
- Item,
694
- ItemIndicator,
695
- ItemLabel,
696
- Overlay,
697
- PopoverContent,
698
- Portal,
699
- Root,
700
- Trigger,
701
- TriggerIndicator,
702
- useItemContext,
703
- useRootContext,
704
- Value,
705
- };