@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,431 +0,0 @@
1
- /**
2
- * Big thank you to https://github.com/yjose/input-otp-native for logic and inspiration
3
- */
4
-
5
- import {
6
- createContext,
7
- forwardRef,
8
- useCallback,
9
- useContext,
10
- useImperativeHandle,
11
- useMemo,
12
- useRef,
13
- useState,
14
- } from 'react';
15
- import {
16
- Platform,
17
- Pressable,
18
- StyleSheet,
19
- TextInput,
20
- View,
21
- type BlurEvent,
22
- type FocusEvent,
23
- } from 'react-native';
24
- import { useControllableState } from '../../helpers/internal/hooks';
25
- import * as SlotPrimitive from '../slot';
26
- import type {
27
- GroupProps,
28
- GroupRef,
29
- InputOTPContext,
30
- RootProps,
31
- RootRef,
32
- SeparatorProps,
33
- SeparatorRef,
34
- SlotData,
35
- SlotProps,
36
- SlotRef,
37
- } from './input-otp.types';
38
- import { defaultPasteTransformer } from './input-otp.utils';
39
-
40
- const InputOTPContext = createContext<InputOTPContext | null>(null);
41
-
42
- /**
43
- * Hook to access InputOTP context
44
- * @throws Error if used outside InputOTP component
45
- */
46
- function useInputOTPContext(): InputOTPContext {
47
- const context = useContext(InputOTPContext);
48
-
49
- if (!context) {
50
- throw new Error(
51
- 'InputOTP compound components cannot be rendered outside the InputOTP component'
52
- );
53
- }
54
-
55
- return context;
56
- }
57
-
58
- // --------------------------------------------------
59
-
60
- const Root = forwardRef<RootRef, RootProps>(
61
- (
62
- {
63
- maxLength,
64
- onComplete,
65
- isDisabled = false,
66
- isInvalid = false,
67
- variant,
68
- pattern,
69
- inputMode = 'numeric',
70
- pasteTransformer,
71
- value: valueProp,
72
- defaultValue,
73
- onChange,
74
- placeholder,
75
- placeholderTextColor,
76
- placeholderTextClassName,
77
- children,
78
- onFocus: onFocusProp,
79
- onBlur: onBlurProp,
80
- textInputProps,
81
- style,
82
- className,
83
- },
84
- ref
85
- ) => {
86
- const [value = '', setValue] = useControllableState<string>({
87
- prop: valueProp,
88
- defaultProp: defaultValue,
89
- onChange,
90
- });
91
- const [isFocused, setIsFocused] = useState(false);
92
-
93
- const inputRef = useRef<TextInput>(null);
94
-
95
- const slots = useMemo<SlotData[]>(() => {
96
- return Array.from({ length: maxLength }).map((_, slotIdx) => {
97
- const isActive = isFocused && slotIdx === value.length;
98
- const char = value[slotIdx] !== undefined ? value[slotIdx] : null;
99
- const placeholderChar = isActive
100
- ? null
101
- : value[slotIdx] !== undefined
102
- ? null
103
- : (placeholder?.[slotIdx] ?? null);
104
-
105
- return {
106
- index: slotIdx,
107
- char,
108
- placeholderChar,
109
- isActive,
110
- isCaretVisible: isActive && char === null,
111
- };
112
- });
113
- }, [isFocused, maxLength, value, placeholder]);
114
-
115
- // --------------------------------------------------
116
- // TextInput onChangeText handler
117
- // --------------------------------------------------
118
-
119
- // Convert pattern string to RegExp if provided
120
- const regexp = useMemo(() => {
121
- if (!pattern) return null;
122
- return typeof pattern === 'string' ? new RegExp(pattern) : pattern;
123
- }, [pattern]);
124
-
125
- // Get paste transformer function
126
- const pasteTransformFn = useMemo(() => {
127
- return pasteTransformer ?? defaultPasteTransformer(maxLength);
128
- }, [pasteTransformer, maxLength]);
129
-
130
- // Handle text change
131
- const onChangeText = useCallback(
132
- (text: string) => {
133
- // Detect paste operation: if text length increases by more than 1 character
134
- // it's likely a paste operation rather than normal typing
135
- const isPaste = text.length > value.length + 1;
136
- const transformedText =
137
- isPaste && pasteTransformFn ? pasteTransformFn(text) : text;
138
- // Slice the text to the maxLength as we're not limiting the input length to handle paste properly
139
- const newValue = transformedText.slice(0, maxLength);
140
- // Validate against pattern if provided
141
- if (newValue.length > 0 && regexp && !regexp.test(newValue)) {
142
- return;
143
- }
144
-
145
- setValue(newValue);
146
-
147
- if (newValue.length === maxLength) {
148
- onComplete?.(newValue);
149
- }
150
- },
151
- [maxLength, regexp, setValue, onComplete, pasteTransformFn, value.length]
152
- );
153
-
154
- // --------------------------------------------------
155
- // TextInput event handlers
156
- // --------------------------------------------------
157
-
158
- const onFocus = useCallback(
159
- (e: FocusEvent) => {
160
- setIsFocused(true);
161
- onFocusProp?.(e);
162
- },
163
- [onFocusProp]
164
- );
165
-
166
- const onBlur = useCallback(
167
- (e: BlurEvent) => {
168
- setIsFocused(false);
169
- onBlurProp?.(e);
170
- },
171
- [onBlurProp]
172
- );
173
-
174
- // --------------------------------------------------
175
- // Imperative actions
176
- // --------------------------------------------------
177
-
178
- const focus = useCallback(() => {
179
- inputRef.current?.focus();
180
- }, []);
181
-
182
- const blur = useCallback(() => {
183
- inputRef.current?.blur();
184
- }, []);
185
-
186
- const clear = useCallback(() => {
187
- inputRef.current?.clear();
188
- setValue('');
189
- }, [setValue]);
190
-
191
- useImperativeHandle(
192
- ref,
193
- () => ({
194
- setValue: (newValue: string) => {
195
- onChangeText(newValue);
196
- },
197
- focus,
198
- blur,
199
- clear,
200
- }),
201
- [focus, blur, clear, onChangeText]
202
- );
203
-
204
- // --------------------------------------------------
205
- // Context value
206
- // --------------------------------------------------
207
-
208
- const contextValue = useMemo<InputOTPContext>(
209
- () => ({
210
- value,
211
- maxLength,
212
- isFocused,
213
- isDisabled,
214
- isInvalid,
215
- variant,
216
- slots,
217
- placeholderTextColor,
218
- placeholderTextClassName,
219
- handlers: {
220
- onChangeText,
221
- onFocus,
222
- onBlur,
223
- },
224
- actions: {
225
- focus,
226
- clear,
227
- },
228
- inputRef,
229
- }),
230
- [
231
- value,
232
- maxLength,
233
- isFocused,
234
- isDisabled,
235
- isInvalid,
236
- variant,
237
- slots,
238
- placeholderTextColor,
239
- placeholderTextClassName,
240
- onChangeText,
241
- onFocus,
242
- onBlur,
243
- focus,
244
- clear,
245
- ]
246
- );
247
-
248
- // --------------------------------------------------
249
- // Accessibility
250
- // --------------------------------------------------
251
-
252
- const accessibilityState = useMemo(
253
- () => ({
254
- disabled: isDisabled,
255
- }),
256
- [isDisabled]
257
- );
258
-
259
- const accessibilityValue = useMemo(
260
- () => ({
261
- text:
262
- value.length > 0
263
- ? `${value.length} of ${maxLength} digits entered`
264
- : `0 of ${maxLength} digits entered`,
265
- }),
266
- [value, maxLength]
267
- );
268
-
269
- // --------------------------------------------------
270
- // Render
271
- // --------------------------------------------------
272
-
273
- return (
274
- <InputOTPContext.Provider value={contextValue}>
275
- <Pressable
276
- onPress={focus}
277
- disabled={isDisabled}
278
- accessible={false}
279
- accessibilityRole="none"
280
- style={style}
281
- className={className}
282
- >
283
- {children}
284
- <TextInput
285
- ref={inputRef}
286
- style={[
287
- StyleSheet.absoluteFillObject,
288
- /**
289
- * On iOS if the input has an opacity of 0, we can't paste text into it.
290
- * This is a workaround to allow pasting text into the input.
291
- */
292
- Platform.select({
293
- ios: {
294
- opacity: 0.02,
295
- color: 'transparent',
296
- },
297
- android: {
298
- opacity: 0,
299
- },
300
- }),
301
- ]}
302
- value={value}
303
- onChangeText={onChangeText}
304
- onFocus={onFocus}
305
- onBlur={onBlur}
306
- maxLength={maxLength}
307
- inputMode={inputMode}
308
- /**
309
- * On iOS if the input has an opacity of 0, we can't paste text into it.
310
- * As we're setting the opacity to 0.02, we need to hide the caret.
311
- */
312
- caretHidden={Platform.OS === 'ios'}
313
- autoComplete={
314
- Platform.OS === 'android' ? 'sms-otp' : 'one-time-code'
315
- }
316
- autoCorrect={false}
317
- autoCapitalize="none"
318
- textContentType="oneTimeCode"
319
- accessible
320
- accessibilityRole="text"
321
- accessibilityLabel={`One-time passcode input, ${maxLength} digits`}
322
- accessibilityHint={`Enter ${maxLength} digit verification code`}
323
- accessibilityState={accessibilityState}
324
- accessibilityValue={accessibilityValue}
325
- editable={!isDisabled}
326
- {...textInputProps}
327
- />
328
- </Pressable>
329
- </InputOTPContext.Provider>
330
- );
331
- }
332
- );
333
-
334
- Root.displayName = 'HeroUINative.Primitive.InputOTP.Root';
335
-
336
- // --------------------------------------------------
337
-
338
- const Group = forwardRef<GroupRef, GroupProps>(
339
- (
340
- { asChild, accessible = false, accessibilityRole = 'none', ...props },
341
- ref
342
- ) => {
343
- useInputOTPContext(); // Ensure we're inside InputOTP
344
-
345
- const Component = asChild ? SlotPrimitive.View : View;
346
-
347
- return (
348
- <Component
349
- ref={ref}
350
- accessible={accessible}
351
- accessibilityRole={accessibilityRole}
352
- {...props}
353
- />
354
- );
355
- }
356
- );
357
-
358
- Group.displayName = 'HeroUINative.Primitive.InputOTP.Group';
359
-
360
- // --------------------------------------------------
361
-
362
- const Slot = forwardRef<SlotRef, SlotProps>(
363
- (
364
- {
365
- asChild,
366
- index,
367
- accessible = false,
368
- accessibilityRole = 'none',
369
- accessibilityLabel,
370
- ...props
371
- },
372
- ref
373
- ) => {
374
- const { slots, maxLength } = useInputOTPContext();
375
-
376
- if (index < 0 || index >= slots.length) {
377
- throw new Error(
378
- `InputOTP.Slot index ${index} is out of range. Must be between 0 and ${slots.length - 1}.`
379
- );
380
- }
381
-
382
- const slot = slots[index];
383
- const computedAccessibilityLabel =
384
- accessibilityLabel ??
385
- (accessible && slot
386
- ? `Digit ${index + 1} of ${maxLength}${slot.char ? `, value ${slot.char}` : ', empty'}`
387
- : undefined);
388
-
389
- const Component = asChild ? SlotPrimitive.View : View;
390
-
391
- return (
392
- <Component
393
- ref={ref}
394
- accessible={accessible}
395
- accessibilityRole={accessibilityRole}
396
- accessibilityLabel={computedAccessibilityLabel}
397
- {...props}
398
- />
399
- );
400
- }
401
- );
402
-
403
- Slot.displayName = 'HeroUINative.Primitive.InputOTP.Slot';
404
-
405
- // --------------------------------------------------
406
-
407
- const Separator = forwardRef<SeparatorRef, SeparatorProps>(
408
- (
409
- { asChild, accessible = false, accessibilityRole = 'none', ...props },
410
- ref
411
- ) => {
412
- useInputOTPContext(); // Ensure we're inside InputOTP
413
-
414
- const Component = asChild ? SlotPrimitive.View : View;
415
-
416
- return (
417
- <Component
418
- ref={ref}
419
- accessible={accessible}
420
- accessibilityRole={accessibilityRole}
421
- {...props}
422
- />
423
- );
424
- }
425
- );
426
-
427
- Separator.displayName = 'HeroUINative.Primitive.InputOTP.Separator';
428
-
429
- // --------------------------------------------------
430
-
431
- export { Group, Root, Separator, Slot, useInputOTPContext };
@@ -1,169 +0,0 @@
1
- import type {
2
- BlurEvent,
3
- FocusEvent,
4
- PressableProps,
5
- TextInput,
6
- TextInputProps,
7
- } from 'react-native';
8
- import type { SlottableViewProps, ViewRef } from '../../helpers/internal/types';
9
-
10
- /**
11
- * Slot data structure for each OTP slot
12
- */
13
- export type SlotData = {
14
- /** Zero-based index of the slot */
15
- index: number;
16
- /** The character at this slot index, or null if empty */
17
- char: string | null;
18
- /** Placeholder character for this slot, or null if not applicable */
19
- placeholderChar: string | null;
20
- /** Whether this slot is currently active (where cursor is) */
21
- isActive: boolean;
22
- /** Whether to show fake caret (when active but empty) */
23
- isCaretVisible: boolean;
24
- };
25
-
26
- /**
27
- * Internal context type for the InputOTP root component
28
- */
29
- export type InputOTPContext = {
30
- /** Current OTP value */
31
- value: string;
32
- /** Maximum length of the OTP */
33
- maxLength: number;
34
- /** Whether the input is currently focused */
35
- isFocused: boolean;
36
- /** Whether the input is disabled */
37
- isDisabled: boolean;
38
- /** Whether the input is in an invalid state */
39
- isInvalid: boolean;
40
- /** Variant style for the input OTP */
41
- variant?: 'primary' | 'secondary';
42
- /** Array of slot data for each position */
43
- slots: SlotData[];
44
- /** Placeholder text color for all slots */
45
- placeholderTextColor?: TextInputProps['placeholderTextColor'];
46
- /** Placeholder text class name for all slots */
47
- placeholderTextClassName?: string | undefined;
48
- /** Event handlers */
49
- handlers: {
50
- /** Handler for text changes */
51
- onChangeText: (text: string) => void;
52
- /** Handler for focus events */
53
- onFocus: (e: FocusEvent) => void;
54
- /** Handler for blur events */
55
- onBlur: (e: BlurEvent) => void;
56
- };
57
- /** Imperative actions */
58
- actions: {
59
- /** Focus the input */
60
- focus: () => void;
61
- /** Clear the input value */
62
- clear: () => void;
63
- };
64
- /** Ref to the underlying TextInput */
65
- inputRef: React.RefObject<TextInput | null>;
66
- };
67
-
68
- /**
69
- * Props for the InputOTP root component
70
- */
71
- export type RootProps = {
72
- /** Children elements */
73
- children?: React.ReactNode;
74
- /** Maximum length of the OTP (required) */
75
- maxLength: number;
76
- /** Whether the input is disabled @default false */
77
- isDisabled?: boolean;
78
- /** Whether the input is in an invalid state @default false */
79
- isInvalid?: boolean;
80
- /** Variant style for the input OTP */
81
- variant?: 'primary' | 'secondary';
82
- /** Regex pattern for allowed characters (e.g., REGEXP_ONLY_DIGITS) */
83
- pattern?: string;
84
- /** Input mode for the input */
85
- inputMode?: TextInputProps['inputMode'];
86
- /** Transform pasted text (e.g., remove hyphens) */
87
- pasteTransformer?: (text: string) => string;
88
- /** Placeholder text for the input */
89
- placeholder?: TextInputProps['placeholder'];
90
- /** Placeholder text color for the input */
91
- placeholderTextColor?: TextInputProps['placeholderTextColor'];
92
- /** Placeholder text class name for the input */
93
- placeholderTextClassName?: string | undefined;
94
- /** Controlled value */
95
- value?: TextInputProps['value'];
96
- /** Default value for uncontrolled usage */
97
- defaultValue?: TextInputProps['defaultValue'];
98
- /** Callback when value changes */
99
- onChange?: TextInputProps['onChangeText'];
100
- /** Handler for focus events */
101
- onFocus?: TextInputProps['onFocus'];
102
- /** Handler for blur events */
103
- onBlur?: TextInputProps['onBlur'];
104
- /** Handler called when all slots are filled */
105
- onComplete?: (value: string) => void;
106
- /** Rest props to pass to the underlying TextInput component */
107
- textInputProps?: Omit<
108
- TextInputProps,
109
- | 'value'
110
- | 'onChangeText'
111
- | 'maxLength'
112
- | 'placeholder'
113
- | 'placeholderTextColor'
114
- | 'placeholderTextClassName'
115
- | 'style'
116
- | 'className'
117
- | 'inputMode'
118
- | 'onFocus'
119
- | 'onBlur'
120
- >;
121
- /** Style to pass to the container Pressable component */
122
- style?: PressableProps['style'];
123
- /** Additional CSS classes for the container Pressable component */
124
- className?: string;
125
- };
126
-
127
- /**
128
- * Ref type for InputOTP root component
129
- * Provides imperative methods to control the input
130
- */
131
- export type RootRef = {
132
- /** Set the OTP value programmatically */
133
- setValue: (value: string) => void;
134
- /** Focus the input */
135
- focus: () => void;
136
- /** Blur the input */
137
- blur: () => void;
138
- /** Clear the input value */
139
- clear: () => void;
140
- };
141
-
142
- /**
143
- * Props for the InputOTP.Group component
144
- */
145
- export type GroupProps = SlottableViewProps;
146
-
147
- /** Ref type for InputOTP.Group */
148
- export type GroupRef = ViewRef;
149
-
150
- /**
151
- * Props for the InputOTP.Slot component
152
- */
153
- export type SlotProps = SlottableViewProps & {
154
- /** Zero-based index of the slot (required) */
155
- index: number;
156
- /** Additional CSS classes for the slot */
157
- className?: string;
158
- };
159
-
160
- /** Ref type for InputOTP.Slot */
161
- export type SlotRef = ViewRef;
162
-
163
- /**
164
- * Props for the InputOTP.Separator component
165
- */
166
- export type SeparatorProps = SlottableViewProps;
167
-
168
- /** Ref type for InputOTP.Separator */
169
- export type SeparatorRef = ViewRef;
@@ -1,31 +0,0 @@
1
- /**
2
- * Regex pattern for digits only
3
- */
4
- export const REGEXP_ONLY_DIGITS = '^\\d+$';
5
-
6
- /**
7
- * Regex pattern for letters only
8
- */
9
- export const REGEXP_ONLY_CHARS = '^[a-zA-Z]+$';
10
-
11
- /**
12
- * Regex pattern for digits and letters
13
- */
14
- export const REGEXP_ONLY_DIGITS_AND_CHARS = '^[a-zA-Z0-9]+$';
15
-
16
- /**
17
- * Default paste transformer that extracts OTP from pasted text
18
- * Matches exactly maxLength digits, not preceded or followed by another digit
19
- *
20
- * @param maxLength - Maximum length of the OTP
21
- * @returns Function that transforms pasted text to extract OTP
22
- */
23
- export function defaultPasteTransformer(maxLength: number) {
24
- return (pasted: string): string => {
25
- // Match exactly maxLength digits, not preceded or followed by another digit
26
- const otpRegex = new RegExp(`(?<!\\d)(\\d{${maxLength}})(?!\\d)`);
27
- const match = pasted.match(otpRegex);
28
-
29
- return match?.[1] ?? '';
30
- };
31
- }
@@ -1,2 +0,0 @@
1
- export * from './label';
2
- export * from './label.types';
@@ -1,24 +0,0 @@
1
- import { forwardRef } from 'react';
2
- import { Pressable, Text as RNText } from 'react-native';
3
- import * as Slot from '../slot';
4
- import type { RootProps, RootRef, TextProps, TextRef } from './label.types';
5
-
6
- const Root = forwardRef<RootRef, RootProps>(({ asChild, ...props }, ref) => {
7
- const Component = asChild ? Slot.Pressable : Pressable;
8
-
9
- return <Component ref={ref} {...props} />;
10
- });
11
-
12
- Root.displayName = 'HeroUINative.Primitive.Label.Root';
13
-
14
- // --------------------------------------------------
15
-
16
- const Text = forwardRef<TextRef, TextProps>(({ asChild, ...props }, ref) => {
17
- const Component = asChild ? Slot.Text : RNText;
18
-
19
- return <Component ref={ref} {...props} />;
20
- });
21
-
22
- Text.displayName = 'HeroUINative.Primitive.Label.Text';
23
-
24
- export { Root, Text };
@@ -1,39 +0,0 @@
1
- import type { ViewStyle } from 'react-native';
2
- import type {
3
- PressableRef,
4
- SlottablePressableProps,
5
- SlottableTextProps,
6
- TextRef,
7
- } from '../../helpers/internal/types';
8
-
9
- /**
10
- * Props for the label root component.
11
- *
12
- * @extends SlottablePressableProps Inherits pressable props except 'children', 'hitSlop', and 'style'
13
- */
14
- type RootProps = Omit<
15
- SlottablePressableProps,
16
- 'children' | 'hitSlop' | 'disabled' | 'style'
17
- > & {
18
- /** The content to be rendered inside the label */
19
- children: React.ReactNode;
20
- /** Whether the label is disabled */
21
- isDisabled?: boolean;
22
- /** Style properties for the label container */
23
- style?: ViewStyle;
24
- };
25
-
26
- /**
27
- * Props for the label text component.
28
- *
29
- * @extends SlottableTextProps Inherits text props for slot-based styling
30
- */
31
- type TextProps = SlottableTextProps & {
32
- /** Equivalent to `id` so that the same value can be passed as `aria-labelledby` to the input element */
33
- nativeID?: string;
34
- };
35
-
36
- /** Reference type for the label root component */
37
- type RootRef = PressableRef;
38
-
39
- export type { RootProps, RootRef, TextProps, TextRef };
@@ -1,2 +0,0 @@
1
- export * from './menu';
2
- export * from './menu.types';