@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,243 +0,0 @@
1
- import type { ViewStyle } from 'react-native';
2
- import {
3
- useAnimatedStyle,
4
- useSharedValue,
5
- withSpring,
6
- withTiming,
7
- } from 'react-native-reanimated';
8
- import { useThemeColor } from '../../helpers/external/hooks';
9
- import { useAnimationSettings } from '../../helpers/internal/contexts';
10
- import {
11
- useCombinedAnimationDisabledState,
12
- useResolvedStyleProperty,
13
- } from '../../helpers/internal/hooks';
14
- import {
15
- createContext,
16
- getAnimationState,
17
- getAnimationValueMergedConfig,
18
- getAnimationValueProperty,
19
- getIsAnimationDisabledValue,
20
- getRootAnimationState,
21
- } from '../../helpers/internal/utils';
22
- import { useControlField } from '../control-field/control-field.context';
23
- import {
24
- DEFAULT_SPRING_CONFIG,
25
- DEFAULT_THUMB_LEFT,
26
- DEFAULT_THUMB_WIDTH,
27
- DEFAULT_TIMING_CONFIG,
28
- } from './switch.constants';
29
- import type {
30
- SwitchAnimationContextValue,
31
- SwitchRootAnimation,
32
- SwitchThumbAnimation,
33
- } from './switch.types';
34
-
35
- const [SwitchAnimationProvider, useSwitchAnimation] =
36
- createContext<SwitchAnimationContextValue>({
37
- name: 'SwitchAnimationContext',
38
- });
39
-
40
- export { SwitchAnimationProvider, useSwitchAnimation };
41
-
42
- // --------------------------------------------------
43
-
44
- /**
45
- * Animation hook for Switch root component
46
- * Handles scale and background color animations and provides context for child components
47
- */
48
- export function useSwitchRootAnimation(options: {
49
- animation: SwitchRootAnimation | undefined;
50
- isSelected: boolean | undefined;
51
- }) {
52
- const { animation, isSelected } = options;
53
-
54
- const [themeColorAccent, themeColorDefault] = useThemeColor([
55
- 'accent',
56
- 'default',
57
- ]);
58
-
59
- const controlFieldContext = useControlField();
60
-
61
- const isSwitchPressed = useSharedValue(false);
62
- const contentContainerWidth = useSharedValue(0);
63
-
64
- const { animationConfig, isAnimationDisabled } =
65
- getRootAnimationState(animation);
66
-
67
- const isAllAnimationsDisabled = useCombinedAnimationDisabledState(animation);
68
-
69
- const isAnimationDisabledValue = getIsAnimationDisabledValue({
70
- isAnimationDisabled,
71
- isAllAnimationsDisabled,
72
- });
73
-
74
- // Scale animation
75
- const scaleValue = getAnimationValueProperty({
76
- animationValue: animationConfig?.scale,
77
- property: 'value',
78
- defaultValue: [1, 0.96] as [number, number],
79
- });
80
-
81
- const scaleTimingConfig = getAnimationValueMergedConfig({
82
- animationValue: animationConfig?.scale,
83
- property: 'timingConfig',
84
- defaultValue: { duration: 150 },
85
- });
86
-
87
- // Background color animation
88
- const backgroundColorValue = getAnimationValueProperty({
89
- animationValue: animationConfig?.backgroundColor,
90
- property: 'value',
91
- defaultValue: [themeColorDefault, themeColorAccent] as [string, string],
92
- });
93
-
94
- const backgroundColorTimingConfig = getAnimationValueMergedConfig({
95
- animationValue: animationConfig?.backgroundColor,
96
- property: 'timingConfig',
97
- defaultValue: DEFAULT_TIMING_CONFIG,
98
- });
99
-
100
- const rContainerStyle = useAnimatedStyle(() => {
101
- if (isAnimationDisabledValue) {
102
- return {
103
- backgroundColor: isSelected
104
- ? backgroundColorValue[1]
105
- : backgroundColorValue[0],
106
- };
107
- }
108
-
109
- const pressed =
110
- isSwitchPressed.get() || (controlFieldContext?.isPressed.get() ?? false);
111
-
112
- return {
113
- backgroundColor: withTiming(
114
- isSelected ? backgroundColorValue[1] : backgroundColorValue[0],
115
- backgroundColorTimingConfig
116
- ),
117
- transform: [
118
- {
119
- scale: withTiming(
120
- pressed ? scaleValue[1] : scaleValue[0],
121
- scaleTimingConfig
122
- ),
123
- },
124
- ],
125
- };
126
- });
127
-
128
- return {
129
- rContainerStyle,
130
- isSwitchPressed,
131
- contentContainerWidth,
132
- isAllAnimationsDisabled,
133
- };
134
- }
135
-
136
- // --------------------------------------------------
137
-
138
- /**
139
- * Animation hook for Switch thumb component
140
- * Handles thumb position (left) and background color animations
141
- */
142
- export function useSwitchThumbAnimation(options: {
143
- animation: SwitchThumbAnimation | undefined;
144
- style: ViewStyle | undefined;
145
- className: string;
146
- isSelected: boolean | undefined;
147
- }) {
148
- const { animation, style, className, isSelected } = options;
149
-
150
- const themeColorAccentForeground = useThemeColor('accent-foreground');
151
-
152
- const [width, left] = useResolvedStyleProperty({
153
- className,
154
- style,
155
- propertyNames: ['width', 'left'] as const,
156
- });
157
-
158
- const computedWidth = typeof width === 'number' ? width : DEFAULT_THUMB_WIDTH;
159
- const computedLeft = typeof left === 'number' ? left : DEFAULT_THUMB_LEFT;
160
-
161
- // Read from global animation context (always available in compound parts)
162
- const { isAllAnimationsDisabled } = useAnimationSettings();
163
-
164
- const { contentContainerWidth } = useSwitchAnimation();
165
-
166
- const { animationConfig, isAnimationDisabled } = getAnimationState(animation);
167
-
168
- const isAnimationDisabledValue = getIsAnimationDisabledValue({
169
- isAnimationDisabled,
170
- isAllAnimationsDisabled,
171
- });
172
-
173
- // Left position animation
174
- const leftValue = getAnimationValueProperty({
175
- animationValue: animationConfig?.left,
176
- property: 'value',
177
- defaultValue: computedLeft,
178
- });
179
-
180
- const leftSpringConfig = getAnimationValueMergedConfig({
181
- animationValue: animationConfig?.left,
182
- property: 'springConfig',
183
- defaultValue: DEFAULT_SPRING_CONFIG,
184
- });
185
-
186
- // Background color animation
187
- const backgroundColorValue = getAnimationValueProperty({
188
- animationValue: animationConfig?.backgroundColor,
189
- property: 'value',
190
- defaultValue: ['white', themeColorAccentForeground] as [string, string],
191
- });
192
-
193
- const backgroundColorTimingConfig = getAnimationValueMergedConfig({
194
- animationValue: animationConfig?.backgroundColor,
195
- property: 'timingConfig',
196
- defaultValue: DEFAULT_TIMING_CONFIG,
197
- });
198
-
199
- const rContainerStyle = useAnimatedStyle(() => {
200
- const isMounted = contentContainerWidth.get() > 0;
201
-
202
- // This is done to prevent the thumb from moving from the default position to the right
203
- // when the component is mounted with `isSelected` set to `true`,
204
- // and the user hasn't touched the switch yet.
205
- if (!isMounted) {
206
- if (isSelected) {
207
- return {
208
- right: leftValue,
209
- backgroundColor: backgroundColorValue[1],
210
- };
211
- }
212
- return {
213
- left: leftValue,
214
- backgroundColor: backgroundColorValue[0],
215
- };
216
- }
217
-
218
- const targetLeft = isSelected
219
- ? contentContainerWidth.get() - computedWidth - leftValue
220
- : leftValue;
221
-
222
- if (isAnimationDisabledValue) {
223
- return {
224
- left: targetLeft,
225
- backgroundColor: isSelected
226
- ? backgroundColorValue[1]
227
- : backgroundColorValue[0],
228
- };
229
- }
230
-
231
- return {
232
- left: withSpring(targetLeft, leftSpringConfig),
233
- backgroundColor: withTiming(
234
- isSelected ? backgroundColorValue[1] : backgroundColorValue[0],
235
- backgroundColorTimingConfig
236
- ),
237
- };
238
- });
239
-
240
- return {
241
- rContainerStyle,
242
- };
243
- }
@@ -1,26 +0,0 @@
1
- import { Easing } from 'react-native-reanimated';
2
-
3
- export const DISPLAY_NAME = {
4
- SWITCH_ROOT: 'HeroUINative.Switch.Root',
5
- SWITCH_THUMB: 'HeroUINative.Switch.Thumb',
6
- SWITCH_START_CONTENT: 'HeroUINative.Switch.StartContent',
7
- SWITCH_END_CONTENT: 'HeroUINative.Switch.EndContent',
8
- } as const;
9
-
10
- export const ANIMATION_DURATION = 175;
11
- export const ANIMATION_EASING = Easing.bezier(0.25, 0.1, 0.25, 1);
12
-
13
- export const DEFAULT_TIMING_CONFIG = {
14
- duration: ANIMATION_DURATION,
15
- easing: ANIMATION_EASING,
16
- };
17
-
18
- export const DEFAULT_SPRING_CONFIG = {
19
- damping: 120,
20
- stiffness: 1600,
21
- mass: 2,
22
- };
23
-
24
- export const DEFAULT_THUMB_WIDTH = 28;
25
-
26
- export const DEFAULT_THUMB_LEFT = 2;
@@ -1,334 +0,0 @@
1
- # Switch
2
-
3
- A toggle control that allows users to switch between on and off states.
4
-
5
- ## Import
6
-
7
- ```tsx
8
- import { Switch } from '@/heroui';
9
- ```
10
-
11
- ## Anatomy
12
-
13
- ```tsx
14
- <Switch>
15
- <Switch.Thumb>...</Switch.Thumb>
16
- <Switch.StartContent>...</Switch.StartContent>
17
- <Switch.EndContent>...</Switch.EndContent>
18
- </Switch>
19
- ```
20
-
21
- - **Switch**: Main container that handles toggle state and user interaction. Renders default thumb if no children provided. Animates scale (on press) and background color based on selection state. Acts as a pressable area for toggling.
22
- - **Switch.Thumb**: Optional sliding thumb element that moves between positions. Uses spring animation for smooth transitions. Can contain custom content like icons or be customized with different styles and animations.
23
- - **Switch.StartContent**: Optional content displayed on the left side of the switch. Typically used for icons or text that appear when switch is off. Positioned absolutely within the switch container.
24
- - **Switch.EndContent**: Optional content displayed on the right side of the switch. Typically used for icons or text that appear when switch is on. Positioned absolutely within the switch container.
25
-
26
- ## Usage
27
-
28
- ### Basic Usage
29
-
30
- The Switch component renders with default thumb if no children provided.
31
-
32
- ```tsx
33
- <Switch isSelected={isSelected} onSelectedChange={setIsSelected} />
34
- ```
35
-
36
- ### With Custom Thumb
37
-
38
- Replace the default thumb with custom content using the Thumb component.
39
-
40
- ```tsx
41
- <Switch isSelected={isSelected} onSelectedChange={setIsSelected}>
42
- <Switch.Thumb>...</Switch.Thumb>
43
- </Switch>
44
- ```
45
-
46
- ### With Start and End Content
47
-
48
- Add icons or text that appear on each side of the switch.
49
-
50
- ```tsx
51
- <Switch isSelected={isSelected} onSelectedChange={setIsSelected}>
52
- <Switch.Thumb />
53
- <Switch.StartContent>...</Switch.StartContent>
54
- <Switch.EndContent>...</Switch.EndContent>
55
- </Switch>
56
- ```
57
-
58
- ### With Render Function
59
-
60
- Use render functions for dynamic content based on switch state.
61
-
62
- ```tsx
63
- <Switch isSelected={isSelected} onSelectedChange={setIsSelected}>
64
- {({ isSelected, isDisabled }) => (
65
- <>
66
- <Switch.Thumb>
67
- {({ isSelected }) => (isSelected ? <CheckIcon /> : <XIcon />)}
68
- </Switch.Thumb>
69
- </>
70
- )}
71
- </Switch>
72
- ```
73
-
74
- ### With Custom Animations
75
-
76
- Customize animations for the switch root and thumb components.
77
-
78
- ```tsx
79
- <Switch
80
- animation={{
81
- scale: {
82
- value: [1, 0.9],
83
- timingConfig: { duration: 200 },
84
- },
85
- backgroundColor: {
86
- value: ['#172554', '#eab308'],
87
- },
88
- }}
89
- >
90
- <Switch.Thumb
91
- animation={{
92
- left: {
93
- value: 4,
94
- springConfig: {
95
- damping: 30,
96
- stiffness: 300,
97
- mass: 1,
98
- },
99
- },
100
- backgroundColor: {
101
- value: ['#dbeafe', '#854d0e'],
102
- },
103
- }}
104
- />
105
- </Switch>
106
- ```
107
-
108
- ### Disable Animations
109
-
110
- Disable animations entirely or only for specific components.
111
-
112
- ```tsx
113
- {
114
- /* Disable all animations including children */
115
- }
116
- <Switch animation="disable-all">
117
- <Switch.Thumb />
118
- </Switch>;
119
-
120
- {
121
- /* Disable only root animations, thumb can still animate */
122
- }
123
- <Switch>
124
- <Switch.Thumb animation={false} />
125
- </Switch>;
126
- ```
127
-
128
- ## Example
129
-
130
- ```tsx
131
- import { Switch } from '@/heroui';
132
- import { Ionicons } from '@expo/vector-icons';
133
- import React from 'react';
134
- import { View } from 'react-native';
135
- import Animated, { ZoomIn } from 'react-native-reanimated';
136
-
137
- export default function SwitchExample() {
138
- const [darkMode, setDarkMode] = React.useState(false);
139
-
140
- return (
141
- <View className="flex-row gap-4">
142
- <Switch
143
- isSelected={darkMode}
144
- onSelectedChange={setDarkMode}
145
- className="w-[56px] h-[32px]"
146
- animation={{
147
- backgroundColor: {
148
- value: ['#172554', '#eab308'],
149
- },
150
- }}
151
- >
152
- <Switch.Thumb
153
- className="size-[22px]"
154
- animation={{
155
- left: {
156
- value: 4,
157
- springConfig: {
158
- damping: 30,
159
- stiffness: 300,
160
- mass: 1,
161
- },
162
- },
163
- }}
164
- />
165
- <Switch.StartContent className="left-2">
166
- {darkMode && (
167
- <Animated.View key="sun" entering={ZoomIn.springify()}>
168
- <Ionicons name="sunny" size={16} color="#854d0e" />
169
- </Animated.View>
170
- )}
171
- </Switch.StartContent>
172
- <Switch.EndContent className="right-2">
173
- {!darkMode && (
174
- <Animated.View key="moon" entering={ZoomIn.springify()}>
175
- <Ionicons name="moon" size={16} color="#dbeafe" />
176
- </Animated.View>
177
- )}
178
- </Switch.EndContent>
179
- </Switch>
180
- </View>
181
- );
182
- }
183
- ```
184
-
185
- You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/switch.tsx>).
186
-
187
- ## API Reference
188
-
189
- ### Switch
190
-
191
- | prop | type | default | description |
192
- | --------------------------- | -------------------------------------------------------------------- | ----------- | ------------------------------------------------------------ |
193
- | `children` | `React.ReactNode \| ((props: SwitchRenderProps) => React.ReactNode)` | `undefined` | Content to render inside the switch, or a render function |
194
- | `isSelected` | `boolean` | `undefined` | Whether the switch is currently selected |
195
- | `isDisabled` | `boolean` | `false` | Whether the switch is disabled and cannot be interacted with |
196
- | `className` | `string` | `undefined` | Custom class name for the switch |
197
- | `animation` | `SwitchRootAnimation` | - | Animation configuration |
198
- | `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
199
- | `onSelectedChange` | `(isSelected: boolean) => void` | - | Callback fired when the switch selection state changes |
200
- | `...AnimatedPressableProps` | `AnimatedProps<PressableProps>` | - | All React Native Reanimated Pressable props are supported |
201
-
202
- #### SwitchRenderProps
203
-
204
- | prop | type | description |
205
- | ------------ | --------- | ------------------------------ |
206
- | `isSelected` | `boolean` | Whether the switch is selected |
207
- | `isDisabled` | `boolean` | Whether the switch is disabled |
208
-
209
- #### SwitchRootAnimation
210
-
211
- Animation configuration for Switch component. Can be:
212
-
213
- - `false` or `"disabled"`: Disable only root animations
214
- - `"disable-all"`: Disable all animations including children
215
- - `true` or `undefined`: Use default animations
216
- - `object`: Custom animation configuration
217
-
218
- | prop | type | default | description |
219
- | ------------------------------ | ---------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------- |
220
- | `state` | `'disabled' \| 'disable-all' \| boolean` | - | Disable animations while customizing properties |
221
- | `scale.value` | `[number, number]` | `[1, 0.96]` | Scale values [unpressed, pressed] |
222
- | `scale.timingConfig` | `WithTimingConfig` | `{ duration: 150 }` | Animation timing configuration |
223
- | `backgroundColor.value` | `[string, string]` | Uses theme colors | Background color values [unselected, selected] |
224
- | `backgroundColor.timingConfig` | `WithTimingConfig` | `{ duration: 175, easing: Easing.bezier(0.25, 0.1, 0.25, 1) }` | Animation timing configuration |
225
-
226
- ### Switch.Thumb
227
-
228
- | prop | type | default | description |
229
- | ----------------------- | -------------------------------------------------------------------- | ----------- | ------------------------------------------------------------ |
230
- | `children` | `React.ReactNode \| ((props: SwitchRenderProps) => React.ReactNode)` | `undefined` | Content to render inside the thumb, or a render function |
231
- | `className` | `string` | `undefined` | Custom class name for the thumb element |
232
- | `animation` | `SwitchThumbAnimation` | - | Animation configuration |
233
- | `isAnimatedStyleActive` | `boolean` | `true` | Whether animated styles (react-native-reanimated) are active |
234
- | `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
235
-
236
- #### SwitchThumbAnimation
237
-
238
- Animation configuration for Switch.Thumb component. Can be:
239
-
240
- - `false` or `"disabled"`: Disable all animations
241
- - `true` or `undefined`: Use default animations
242
- - `object`: Custom animation configuration
243
-
244
- | prop | type | default | description |
245
- | ------------------------------ | ----------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------- |
246
- | `state` | `'disabled' \| boolean` | - | Disable animations while customizing properties |
247
- | `left.value` | `number` | `2` | Offset value from the edges (left when unselected, right when selected) |
248
- | `left.springConfig` | `WithSpringConfig` | `{ damping: 120, stiffness: 1600, mass: 2 }` | Spring animation configuration for thumb position |
249
- | `backgroundColor.value` | `[string, string]` | `['white', theme accent-foreground color]` | Background color values [unselected, selected] |
250
- | `backgroundColor.timingConfig` | `WithTimingConfig` | `{ duration: 175, easing: Easing.bezier(0.25, 0.1, 0.25, 1) }` | Animation timing configuration |
251
-
252
- ### Switch.StartContent
253
-
254
- | prop | type | default | description |
255
- | -------------- | ----------------- | ----------- | -------------------------------------------------- |
256
- | `children` | `React.ReactNode` | `undefined` | Content to render inside the switch content |
257
- | `className` | `string` | `undefined` | Custom class name for the content element |
258
- | `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
259
-
260
- ### Switch.EndContent
261
-
262
- | prop | type | default | description |
263
- | -------------- | ----------------- | ----------- | -------------------------------------------------- |
264
- | `children` | `React.ReactNode` | `undefined` | Content to render inside the switch content |
265
- | `className` | `string` | `undefined` | Custom class name for the content element |
266
- | `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
267
-
268
- ## Hooks
269
-
270
- ### useSwitch
271
-
272
- A hook that provides access to the Switch context. This is useful when building custom switch components or when you need to access switch state in child components.
273
-
274
- **Returns:**
275
-
276
- | Property | Type | Description |
277
- | ------------ | --------- | ------------------------------ |
278
- | `isSelected` | `boolean` | Whether the switch is selected |
279
- | `isDisabled` | `boolean` | Whether the switch is disabled |
280
-
281
- **Example:**
282
-
283
- ```tsx
284
- import { useSwitch } from '@/heroui';
285
-
286
- function CustomSwitchContent() {
287
- const { isSelected, isDisabled } = useSwitch();
288
-
289
- return (
290
- <View>
291
- <Text>Status: {isSelected ? 'On' : 'Off'}</Text>
292
- {isDisabled && <Text>Disabled</Text>}
293
- </View>
294
- );
295
- }
296
-
297
- // Usage
298
- <Switch>
299
- <CustomSwitchContent />
300
- <Switch.Thumb />
301
- </Switch>;
302
- ```
303
-
304
- ## Special Notes
305
-
306
- ### Border Styling
307
-
308
- If you need to apply a border to the switch root, use the `outline` style properties instead of `border`. This ensures the border doesn't affect the internal layout calculations for the thumb position:
309
-
310
- ```tsx
311
- <Switch className="outline outline-accent">
312
- <Switch.Thumb />
313
- </Switch>
314
- ```
315
-
316
- Using `outline` keeps the border visual without impacting the switch's internal width calculations, ensuring the thumb animates correctly.
317
-
318
- ### Integration with ControlField
319
-
320
- The Switch component integrates seamlessly with ControlField for press state sharing:
321
-
322
- ```tsx
323
- import { Description, ControlField, Label } from '@/heroui';
324
-
325
- <ControlField isSelected={isSelected} onSelectedChange={setIsSelected}>
326
- <View className="flex-1">
327
- <Label>Enable notifications</Label>
328
- <Description>Receive push notifications</Description>
329
- </View>
330
- <ControlField.Indicator />
331
- </ControlField>;
332
- ```
333
-
334
- When wrapped in ControlField, the Switch will automatically respond to press events on the entire ControlField container, creating a larger touch target and better user experience.
@@ -1,83 +0,0 @@
1
- import { StyleSheet } from 'react-native';
2
- import { tv } from 'tailwind-variants';
3
- import { combineStyles } from '../../helpers/internal/utils';
4
-
5
- /**
6
- * Root style definition
7
- *
8
- * @note ANIMATED PROPERTIES (cannot be set via className):
9
- * The following properties are animated and cannot be overridden using Tailwind classes:
10
- * - `backgroundColor` - Animated for selection transitions (unselected: default, selected: accent)
11
- * - `transform` (specifically `scale`) - Animated for press feedback transitions (unpressed: 1, pressed: 0.96)
12
- *
13
- * To customize these properties, use the `animation` prop on `Switch`:
14
- * ```tsx
15
- * <Switch
16
- * animation={{
17
- * backgroundColor: { value: ['#e5e5e5', '#007AFF'], timingConfig: { duration: 175 } },
18
- * scale: { value: [1, 0.96], timingConfig: { duration: 150 } }
19
- * }}
20
- * />
21
- * ```
22
- *
23
- * To completely disable animated styles and apply your own via className or style prop,
24
- * set `isAnimatedStyleActive={false}` on `Switch`.
25
- */
26
- const root = tv({
27
- base: 'w-[48px] h-[24px] rounded-full justify-center overflow-hidden',
28
- variants: {
29
- isDisabled: {
30
- true: 'opacity-disabled pointer-events-none',
31
- false: '',
32
- },
33
- },
34
- defaultVariants: {
35
- isDisabled: false,
36
- },
37
- });
38
-
39
- /**
40
- * Thumb style definition
41
- *
42
- * @note ANIMATED PROPERTIES (cannot be set via className):
43
- * The following properties are animated and cannot be overridden using Tailwind classes:
44
- * - `left` - Animated for thumb position transitions (unselected: left edge offset, selected: right edge offset)
45
- * - `backgroundColor` - Animated for selection transitions (unselected: white, selected: accent-foreground)
46
- *
47
- * To customize these properties, use the `animation` prop on `Switch.Thumb`:
48
- * ```tsx
49
- * <Switch.Thumb
50
- * animation={{
51
- * left: { value: 2, springConfig: { damping: 120, stiffness: 1600, mass: 2 } },
52
- * backgroundColor: { value: ['white', '#ffffff'], timingConfig: { duration: 175 } }
53
- * }}
54
- * />
55
- * ```
56
- *
57
- * To completely disable animated styles and apply your own via className or style prop,
58
- * set `isAnimatedStyleActive={false}` on `Switch.Thumb`.
59
- */
60
- const thumb = tv({
61
- base: 'absolute left-[2px] items-center justify-center w-[28px] h-[20px] rounded-full shadow-field overflow-hidden',
62
- });
63
-
64
- const startContent = tv({
65
- base: 'absolute left-[2px]',
66
- });
67
-
68
- const endContent = tv({
69
- base: 'absolute right-[2px]',
70
- });
71
-
72
- export const switchClassNames = combineStyles({
73
- root,
74
- thumb,
75
- startContent,
76
- endContent,
77
- });
78
-
79
- export const switchStyleSheet = StyleSheet.create({
80
- borderCurve: {
81
- borderCurve: 'continuous',
82
- },
83
- });