@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,168 +0,0 @@
1
- import { StyleSheet } from 'react-native';
2
- import { tv } from 'tailwind-variants';
3
- import { combineStyles } from '../../helpers/internal/utils';
4
-
5
- const root = tv({
6
- base: 'flex-col gap-2',
7
- });
8
-
9
- const list = tv({
10
- base: 'self-start flex-row items-center gap-1',
11
- variants: {
12
- variant: {
13
- primary: 'p-[3px] rounded-3xl bg-default',
14
- secondary: 'p-0 border-b border-border',
15
- },
16
- },
17
- defaultVariants: {
18
- variant: 'primary',
19
- isScrollView: false,
20
- },
21
- });
22
-
23
- const scrollView = tv({
24
- base: '',
25
- variants: {
26
- variant: {
27
- primary: '-my-[3px] rounded-3xl',
28
- secondary: '',
29
- },
30
- },
31
- defaultVariants: {
32
- variant: 'primary',
33
- },
34
- });
35
-
36
- const scrollViewContentContainer = tv({
37
- base: '',
38
- variants: {
39
- variant: {
40
- primary: 'py-[3px] px-px',
41
- secondary: '',
42
- },
43
- },
44
- defaultVariants: {
45
- variant: 'primary',
46
- },
47
- });
48
-
49
- const trigger = tv({
50
- base: 'flex-row items-center justify-center px-3 py-1.5 gap-1.5',
51
- variants: {
52
- isDisabled: {
53
- true: 'opacity-disabled pointer-events-none',
54
- false: '',
55
- },
56
- },
57
- defaultVariants: {
58
- isDisabled: false,
59
- },
60
- });
61
-
62
- const label = tv({
63
- base: 'text-base font-medium',
64
- variants: {
65
- isSelected: {
66
- true: 'text-segment-foreground',
67
- false: 'text-muted',
68
- },
69
- },
70
- });
71
-
72
- /**
73
- * Indicator style definition
74
- *
75
- * @note ANIMATED PROPERTIES (cannot be set via className):
76
- * The following properties are animated and cannot be overridden using Tailwind classes:
77
- * - `width` - Animated for indicator width transitions when switching tabs
78
- * - `height` - Animated for indicator height transitions when switching tabs
79
- * - `translateX` - Animated for indicator position transitions when switching tabs (uses translateX for GPU-accelerated performance)
80
- * - `opacity` - Animated for indicator visibility transitions (0 when no active tab, 1 when active tab is selected)
81
- *
82
- * To customize these properties, use the `animation` prop on `Tabs.Indicator`:
83
- * ```tsx
84
- * <Tabs.Indicator
85
- * animation={{
86
- * width: { type: 'spring', config: { stiffness: 1200, damping: 120 } },
87
- * height: { type: 'spring', config: { stiffness: 1200, damping: 120 } },
88
- * translateX: { type: 'timing', config: { duration: 200 } }
89
- * }}
90
- * />
91
- * ```
92
- *
93
- * To completely disable animated styles and apply your own via className or style prop,
94
- * set `isAnimatedStyleActive={false}` on `Tabs.Indicator`.
95
- */
96
- const indicator = tv({
97
- base: 'absolute left-0',
98
- variants: {
99
- variant: {
100
- primary: 'rounded-3xl shadow-sm shadow-surface/25 bg-segment',
101
- secondary: 'bottom-0 border-b-2 border-accent',
102
- },
103
- isScrollView: {
104
- true: '',
105
- false: '',
106
- },
107
- },
108
- compoundVariants: [
109
- {
110
- variant: 'primary',
111
- isScrollView: true,
112
- className: 'top-[3px]',
113
- },
114
- ],
115
- defaultVariants: {
116
- variant: 'primary',
117
- isScrollView: false,
118
- },
119
- });
120
-
121
- /**
122
- * Separator style definition
123
- *
124
- * @note ANIMATED PROPERTIES (cannot be set via className):
125
- * The following properties are animated and cannot be overridden using Tailwind classes:
126
- * - `opacity` - Animated for separator visibility transitions (0 when not between values, 1 when between values)
127
- *
128
- * To customize these properties, use the `animation` prop on `Tabs.Separator`:
129
- * ```tsx
130
- * <Tabs.Separator
131
- * betweenValues={["tab1", "tab2"]}
132
- * animation={{
133
- * opacity: { value: [0, 1], timingConfig: { duration: 200 } }
134
- * }}
135
- * />
136
- * ```
137
- *
138
- * To completely disable animated styles and apply your own via className or style prop,
139
- * set `isAnimatedStyleActive={false}` on `Tabs.Separator`.
140
- */
141
- const separator = tv({
142
- base: 'w-px h-3/5 bg-separator/30 self-center',
143
- });
144
-
145
- const content = tv({
146
- base: '',
147
- });
148
-
149
- export const tabsClassNames = combineStyles({
150
- root,
151
- list,
152
- scrollView,
153
- scrollViewContentContainer,
154
- trigger,
155
- label,
156
- indicator,
157
- separator,
158
- content,
159
- });
160
-
161
- export const tabsStyleSheet = StyleSheet.create({
162
- listRoot: {
163
- borderCurve: 'continuous',
164
- },
165
- triggerRoot: {
166
- borderCurve: 'continuous',
167
- },
168
- });
@@ -1,445 +0,0 @@
1
- import {
2
- Children,
3
- forwardRef,
4
- isValidElement,
5
- useCallback,
6
- useEffect,
7
- useMemo,
8
- useRef,
9
- useState,
10
- } from 'react';
11
- import {
12
- ScrollView,
13
- useWindowDimensions,
14
- type LayoutChangeEvent,
15
- type ViewStyle,
16
- } from 'react-native';
17
- import Animated from 'react-native-reanimated';
18
- import { AnimationSettingsProvider } from '../../helpers/internal/contexts';
19
- import * as TabsPrimitives from '../../primitives/tabs';
20
- import type * as TabsPrimitivesTypes from '../../primitives/tabs/tabs.types';
21
- import {
22
- useTabsIndicatorAnimation,
23
- useTabsRootAnimation,
24
- useTabsSeparatorAnimation,
25
- } from './tabs.animation';
26
- import { DISPLAY_NAME } from './tabs.constants';
27
- import { MeasurementsContext, useTabsMeasurements } from './tabs.context';
28
- import { tabsClassNames, tabsStyleSheet } from './tabs.styles';
29
- import type {
30
- ItemMeasurements,
31
- TabsContentProps,
32
- TabsIndicatorProps,
33
- TabsLabelProps,
34
- TabsListProps,
35
- TabsProps,
36
- TabsScrollViewProps,
37
- TabsSeparatorProps,
38
- TabsTriggerProps,
39
- TabsTriggerRenderProps,
40
- } from './tabs.types';
41
-
42
- const AnimatedIndicator = Animated.createAnimatedComponent(
43
- TabsPrimitives.Indicator
44
- );
45
-
46
- const useTabs = TabsPrimitives.useRootContext;
47
- const useTabsTrigger = TabsPrimitives.useTriggerContext;
48
-
49
- // --------------------------------------------------
50
-
51
- const TabsRoot = forwardRef<TabsPrimitivesTypes.RootRef, TabsProps>(
52
- (props, ref) => {
53
- const {
54
- children,
55
- value,
56
- onValueChange,
57
- className,
58
- variant = 'primary',
59
- animation,
60
- ...restProps
61
- } = props;
62
-
63
- const [measurements, setMeasurementsState] = useState<
64
- Record<string, ItemMeasurements>
65
- >({});
66
- const [isScrollView, setIsScrollView] = useState(false);
67
-
68
- const setMeasurements = useCallback(
69
- (key: string, newMeasurements: ItemMeasurements) => {
70
- setMeasurementsState((prev) => ({
71
- ...prev,
72
- [key]: newMeasurements,
73
- }));
74
- },
75
- []
76
- );
77
-
78
- const { isAllAnimationsDisabled } = useTabsRootAnimation({ animation });
79
-
80
- const animationSettingsContextValue = useMemo(
81
- () => ({
82
- isAllAnimationsDisabled,
83
- }),
84
- [isAllAnimationsDisabled]
85
- );
86
-
87
- const rootClassName = tabsClassNames.root({ className });
88
-
89
- return (
90
- <AnimationSettingsProvider value={animationSettingsContextValue}>
91
- <MeasurementsContext.Provider
92
- value={{
93
- measurements,
94
- setMeasurements,
95
- variant,
96
- isScrollView,
97
- setIsScrollView,
98
- }}
99
- >
100
- <TabsPrimitives.Root
101
- ref={ref}
102
- value={value}
103
- onValueChange={onValueChange}
104
- className={rootClassName}
105
- {...restProps}
106
- >
107
- {children}
108
- </TabsPrimitives.Root>
109
- </MeasurementsContext.Provider>
110
- </AnimationSettingsProvider>
111
- );
112
- }
113
- );
114
-
115
- // --------------------------------------------------
116
-
117
- const TabsList = forwardRef<TabsPrimitivesTypes.ListRef, TabsListProps>(
118
- (props, ref) => {
119
- const { children, className, style, ...restProps } = props;
120
-
121
- const { variant, setIsScrollView } = useTabsMeasurements();
122
-
123
- const handleLayout = useCallback(() => {
124
- const childrenArray = Children.toArray(children);
125
- const hasScrollView =
126
- childrenArray.length === 1 &&
127
- isValidElement(childrenArray[0]) &&
128
- (childrenArray[0].type as any)?.displayName ===
129
- DISPLAY_NAME.SCROLL_VIEW;
130
- setIsScrollView(hasScrollView);
131
- }, [children, setIsScrollView]);
132
-
133
- const listClassName = tabsClassNames.list({ variant, className });
134
-
135
- return (
136
- <TabsPrimitives.List
137
- ref={ref}
138
- className={listClassName}
139
- style={[tabsStyleSheet.listRoot, style]}
140
- onLayout={handleLayout}
141
- {...restProps}
142
- >
143
- {children}
144
- </TabsPrimitives.List>
145
- );
146
- }
147
- );
148
-
149
- // --------------------------------------------------
150
-
151
- const TabsScrollView = forwardRef<ScrollView, TabsScrollViewProps>(
152
- (props, ref) => {
153
- const {
154
- children,
155
- className,
156
- contentContainerClassName,
157
- showsHorizontalScrollIndicator = false,
158
- scrollAlign = 'center',
159
- ...restProps
160
- } = props;
161
-
162
- const { value } = useTabs();
163
- const { measurements, variant } = useTabsMeasurements();
164
- const { width: screenWidth } = useWindowDimensions();
165
-
166
- const scrollViewClassName = tabsClassNames.scrollView({
167
- variant,
168
- className,
169
- });
170
- const contentContainerClassNameValue =
171
- tabsClassNames.scrollViewContentContainer({
172
- variant,
173
- className: contentContainerClassName,
174
- });
175
-
176
- const scrollRef = useRef<ScrollView>(null);
177
-
178
- useEffect(() => {
179
- if (scrollAlign === 'none' || !measurements[value]) return;
180
-
181
- const itemMeasurement = measurements[value];
182
- let scrollToX = 0;
183
-
184
- if (scrollAlign === 'start') {
185
- scrollToX = itemMeasurement.x;
186
- } else if (scrollAlign === 'center') {
187
- const itemCenter = itemMeasurement.x + itemMeasurement.width / 2;
188
- scrollToX = itemCenter - screenWidth / 2;
189
- } else if (scrollAlign === 'end') {
190
- scrollToX = itemMeasurement.x + itemMeasurement.width - screenWidth;
191
- }
192
-
193
- scrollRef.current?.scrollTo({
194
- x: Math.max(0, scrollToX),
195
- animated: true,
196
- });
197
- }, [value, measurements, scrollAlign, screenWidth]);
198
-
199
- return (
200
- <ScrollView
201
- ref={(instance) => {
202
- scrollRef.current = instance;
203
- if (typeof ref === 'function') {
204
- ref(instance);
205
- } else if (ref) {
206
- ref.current = instance;
207
- }
208
- }}
209
- horizontal
210
- showsHorizontalScrollIndicator={showsHorizontalScrollIndicator}
211
- className={scrollViewClassName}
212
- contentContainerClassName={contentContainerClassNameValue}
213
- {...restProps}
214
- >
215
- {children}
216
- </ScrollView>
217
- );
218
- }
219
- );
220
-
221
- // --------------------------------------------------
222
-
223
- const TabsTrigger = forwardRef<
224
- TabsPrimitivesTypes.TriggerRef,
225
- TabsTriggerProps
226
- >((props, ref) => {
227
- const {
228
- children,
229
- value,
230
- isDisabled = false,
231
- className,
232
- style,
233
- ...restProps
234
- } = props;
235
- const { setMeasurements } = useTabsMeasurements();
236
- const { value: rootValue } = useTabs();
237
-
238
- const isSelected = rootValue === value;
239
-
240
- const triggerClassName = tabsClassNames.trigger({ isDisabled, className });
241
-
242
- const handleLayout = useCallback(
243
- (event: LayoutChangeEvent) => {
244
- const { width, height, x } = event.nativeEvent.layout;
245
- setMeasurements(value, { width, height, x });
246
- },
247
- [value, setMeasurements]
248
- );
249
-
250
- const renderProps: TabsTriggerRenderProps = {
251
- isSelected,
252
- value,
253
- isDisabled,
254
- };
255
-
256
- const content =
257
- typeof children === 'function' ? children(renderProps) : children;
258
-
259
- return (
260
- <TabsPrimitives.Trigger
261
- ref={ref}
262
- value={value}
263
- disabled={isDisabled}
264
- className={triggerClassName}
265
- style={[tabsStyleSheet.triggerRoot, style as ViewStyle]}
266
- onLayout={handleLayout}
267
- {...restProps}
268
- >
269
- {content}
270
- </TabsPrimitives.Trigger>
271
- );
272
- });
273
-
274
- // --------------------------------------------------
275
-
276
- const TabsLabel = forwardRef<TabsPrimitivesTypes.LabelRef, TabsLabelProps>(
277
- (props, ref) => {
278
- const { children, className, ...restProps } = props;
279
- const { isSelected } = useTabsTrigger();
280
-
281
- const labelClassName = tabsClassNames.label({ isSelected, className });
282
-
283
- return (
284
- <TabsPrimitives.Label ref={ref} className={labelClassName} {...restProps}>
285
- {children}
286
- </TabsPrimitives.Label>
287
- );
288
- }
289
- );
290
-
291
- // --------------------------------------------------
292
-
293
- const TabsIndicator = forwardRef<
294
- TabsPrimitivesTypes.IndicatorRef,
295
- TabsIndicatorProps
296
- >((props, ref) => {
297
- const {
298
- children,
299
- className,
300
- style,
301
- animation,
302
- isAnimatedStyleActive = true,
303
- ...restProps
304
- } = props;
305
-
306
- const { variant, isScrollView } = useTabsMeasurements();
307
-
308
- const { rContainerStyle } = useTabsIndicatorAnimation({
309
- animation,
310
- });
311
-
312
- const indicatorClassName = tabsClassNames.indicator({
313
- variant,
314
- isScrollView,
315
- className,
316
- });
317
-
318
- const indicatorStyle = isAnimatedStyleActive
319
- ? [rContainerStyle, style]
320
- : style;
321
-
322
- return (
323
- <AnimatedIndicator
324
- ref={ref}
325
- className={indicatorClassName}
326
- style={indicatorStyle}
327
- {...restProps}
328
- >
329
- {children}
330
- </AnimatedIndicator>
331
- );
332
- });
333
-
334
- // --------------------------------------------------
335
-
336
- const TabsSeparator = forwardRef<Animated.View, TabsSeparatorProps>(
337
- (props, ref) => {
338
- const {
339
- betweenValues,
340
- isAlwaysVisible = false,
341
- animation,
342
- isAnimatedStyleActive = true,
343
- className,
344
- style,
345
- ...restProps
346
- } = props;
347
-
348
- const { rContainerStyle } = useTabsSeparatorAnimation({
349
- animation,
350
- betweenValues,
351
- isAlwaysVisible,
352
- });
353
-
354
- const separatorClassName = tabsClassNames.separator({ className });
355
-
356
- const separatorStyle = isAnimatedStyleActive
357
- ? [rContainerStyle, style]
358
- : style;
359
-
360
- return (
361
- <Animated.View
362
- ref={ref}
363
- className={separatorClassName}
364
- style={separatorStyle}
365
- {...restProps}
366
- />
367
- );
368
- }
369
- );
370
-
371
- // --------------------------------------------------
372
-
373
- const TabsContent = forwardRef<
374
- TabsPrimitivesTypes.ContentRef,
375
- TabsContentProps
376
- >((props, ref) => {
377
- const { children, value, className, ...restProps } = props;
378
-
379
- const contentClassName = tabsClassNames.content({ className });
380
-
381
- return (
382
- <TabsPrimitives.Content
383
- ref={ref}
384
- value={value}
385
- className={contentClassName}
386
- {...restProps}
387
- >
388
- {children}
389
- </TabsPrimitives.Content>
390
- );
391
- });
392
-
393
- // --------------------------------------------------
394
-
395
- TabsRoot.displayName = DISPLAY_NAME.ROOT;
396
- TabsList.displayName = DISPLAY_NAME.LIST;
397
- TabsScrollView.displayName = DISPLAY_NAME.SCROLL_VIEW;
398
- TabsTrigger.displayName = DISPLAY_NAME.TRIGGER;
399
- TabsLabel.displayName = DISPLAY_NAME.LABEL;
400
- TabsIndicator.displayName = DISPLAY_NAME.INDICATOR;
401
- TabsSeparator.displayName = DISPLAY_NAME.SEPARATOR;
402
- TabsContent.displayName = DISPLAY_NAME.CONTENT;
403
-
404
- /**
405
- * Compound Tabs component with sub-components
406
- *
407
- * @component Tabs - Main container for the tabs system
408
- *
409
- * @component Tabs.List - Container for tab triggers
410
- *
411
- * @component Tabs.ScrollView - Scrollable wrapper for tab triggers
412
- *
413
- * @component Tabs.Trigger - Individual tab button
414
- *
415
- * @component Tabs.Label - Label text for tab triggers
416
- *
417
- * @component Tabs.Indicator - Visual indicator for active tab
418
- *
419
- * @component Tabs.Separator - Visual separator between tabs
420
- *
421
- * @component Tabs.Content - Content panel for each tab
422
- *
423
- * Props flow from Tabs to sub-components via context.
424
- *
425
- * @see Full documentation: https://v3.heroui.com/docs/native/components/tabs
426
- */
427
- const Tabs = Object.assign(TabsRoot, {
428
- /** Container for tab triggers */
429
- List: TabsList,
430
- /** Scrollable wrapper for tab triggers */
431
- ScrollView: TabsScrollView,
432
- /** Individual tab button */
433
- Trigger: TabsTrigger,
434
- /** Label text for tab triggers */
435
- Label: TabsLabel,
436
- /** Visual indicator for active tab */
437
- Indicator: TabsIndicator,
438
- /** Visual separator between tabs */
439
- Separator: TabsSeparator,
440
- /** Content panel for each tab */
441
- Content: TabsContent,
442
- });
443
-
444
- export { useTabs, useTabsMeasurements, useTabsTrigger };
445
- export default Tabs;