@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,464 +0,0 @@
1
- /* eslint-disable react-hooks/refs */
2
- import {
3
- forwardRef,
4
- useCallback,
5
- useEffect,
6
- useMemo,
7
- useRef,
8
- useState,
9
- } from 'react';
10
- import { View } from 'react-native';
11
- import { useControllableState } from '../../helpers/internal/hooks';
12
- import { createContext } from '../../helpers/internal/utils';
13
- import * as Slot from '../slot';
14
- import type {
15
- FillProps,
16
- FillRef,
17
- OutputProps,
18
- OutputRef,
19
- RootProps,
20
- RootRef,
21
- SliderContextValue,
22
- SliderRenderProps,
23
- SliderState,
24
- SliderValue,
25
- ThumbProps,
26
- ThumbRef,
27
- TrackProps,
28
- TrackRef,
29
- } from './slider.types';
30
- import {
31
- clamp,
32
- denormalizeValue,
33
- formatValue,
34
- normalizeValue,
35
- snapToStep,
36
- valueToPercent,
37
- } from './slider.utils';
38
-
39
- // ---------------------------------------------------------------------------
40
- // Slider context – provides all value logic to sub-components
41
- // ---------------------------------------------------------------------------
42
-
43
- const [SliderProvider, useSlider] = createContext<SliderContextValue>({
44
- name: 'SliderPrimitiveContext',
45
- errorMessage:
46
- 'Slider compound components cannot be rendered outside the Slider.Root component',
47
- });
48
-
49
- // --------------------------------------------------
50
- // Root – manages value state and provides context
51
- // --------------------------------------------------
52
-
53
- const Root = forwardRef<RootRef, RootProps>(
54
- (
55
- {
56
- asChild,
57
- children,
58
- 'value': valueProp,
59
- defaultValue,
60
- onChange,
61
- onChangeEnd,
62
- minValue = 0,
63
- maxValue = 100,
64
- step = 1,
65
- formatOptions,
66
- orientation = 'horizontal',
67
- isDisabled = false,
68
- 'aria-label': ariaLabel,
69
- ...restProps
70
- },
71
- ref
72
- ) => {
73
- /** Track whether the consumer originally passed an array value */
74
- const wasArray = useRef(
75
- Array.isArray(valueProp) || Array.isArray(defaultValue)
76
- );
77
-
78
- /** Track layout width (horizontal) or height (vertical) in pixels */
79
- const [trackSize, setTrackSize] = useState(0);
80
-
81
- /** Measured thumb dimension (main-axis) in pixels, set via onLayout at the component level */
82
- const [thumbSize, setThumbSize] = useState(0);
83
-
84
- const [internalValue, setInternalValue] = useControllableState<SliderValue>(
85
- {
86
- prop: valueProp,
87
- defaultProp: defaultValue ?? minValue,
88
- onChange,
89
- }
90
- );
91
-
92
- const values = useMemo(
93
- () =>
94
- normalizeValue(internalValue ?? minValue).map((v) =>
95
- clamp(v, minValue, maxValue)
96
- ),
97
- [internalValue, minValue, maxValue]
98
- );
99
-
100
- // -----------------------------------------------------------------
101
- // Dragging state – tracks which thumb (if any) is being dragged.
102
- // When dragging transitions true → false, `onChangeEnd` fires with
103
- // the latest committed value (avoids the stale-closure problem of
104
- // calling onChangeEnd directly from gesture callbacks).
105
- // -----------------------------------------------------------------
106
-
107
- const [draggingIndex, setDraggingIndex] = useState<number | null>(null);
108
-
109
- const internalValueRef = useRef(internalValue);
110
- internalValueRef.current = internalValue;
111
-
112
- const onChangeEndRef = useRef(onChangeEnd);
113
- onChangeEndRef.current = onChangeEnd;
114
-
115
- const prevDraggingRef = useRef<number | null>(null);
116
-
117
- useEffect(() => {
118
- const wasDragging = prevDraggingRef.current !== null;
119
- const isNowIdle = draggingIndex === null;
120
-
121
- if (wasDragging && isNowIdle && internalValueRef.current !== undefined) {
122
- onChangeEndRef.current?.(internalValueRef.current);
123
- }
124
-
125
- prevDraggingRef.current = draggingIndex;
126
- }, [draggingIndex]);
127
-
128
- // -----------------------------------------------------------------
129
- // Value helpers
130
- // -----------------------------------------------------------------
131
-
132
- const getThumbPercent = useCallback(
133
- (index: number): number => {
134
- const val = values[index] ?? minValue;
135
- return valueToPercent(val, minValue, maxValue);
136
- },
137
- [values, minValue, maxValue]
138
- );
139
-
140
- const getThumbValueLabel = useCallback(
141
- (index: number): string => {
142
- const val = values[index] ?? minValue;
143
- return formatValue(val, formatOptions);
144
- },
145
- [values, minValue, formatOptions]
146
- );
147
-
148
- /**
149
- * For range sliders the thumb's min is bounded by the previous thumb's value;
150
- * for the first thumb (or single-thumb sliders) it equals `minValue`.
151
- */
152
- const getThumbMinValue = useCallback(
153
- (index: number): number => {
154
- return index === 0 ? minValue : (values[index - 1] ?? minValue);
155
- },
156
- [values, minValue]
157
- );
158
-
159
- /**
160
- * For range sliders the thumb's max is bounded by the next thumb's value;
161
- * for the last thumb (or single-thumb sliders) it equals `maxValue`.
162
- */
163
- const getThumbMaxValue = useCallback(
164
- (index: number): number => {
165
- return index === values.length - 1
166
- ? maxValue
167
- : (values[index + 1] ?? maxValue);
168
- },
169
- [values, maxValue]
170
- );
171
-
172
- /**
173
- * Update a single thumb's value with range-ordering enforcement.
174
- * Adjacent thumbs act as boundaries: a thumb can never cross its neighbours.
175
- */
176
- const updateValue = useCallback(
177
- (index: number, newValue: number) => {
178
- const newValues = [...values];
179
- newValues[index] = newValue;
180
-
181
- if (newValues.length > 1) {
182
- if (index > 0 && newValue < (newValues[index - 1] ?? minValue)) {
183
- newValues[index] = newValues[index - 1] ?? minValue;
184
- }
185
- if (
186
- index < newValues.length - 1 &&
187
- newValue > (newValues[index + 1] ?? maxValue)
188
- ) {
189
- newValues[index] = newValues[index + 1] ?? maxValue;
190
- }
191
- }
192
-
193
- setInternalValue(denormalizeValue(newValues, wasArray.current));
194
- },
195
- [values, minValue, maxValue, setInternalValue]
196
- );
197
-
198
- // -----------------------------------------------------------------
199
- // Dragging helpers exposed via context
200
- // -----------------------------------------------------------------
201
-
202
- const isThumbDragging = useCallback(
203
- (index: number): boolean => {
204
- return draggingIndex === index;
205
- },
206
- [draggingIndex]
207
- );
208
-
209
- const setThumbDragging = useCallback(
210
- (index: number, dragging: boolean): void => {
211
- setDraggingIndex(dragging ? index : null);
212
- },
213
- []
214
- );
215
-
216
- /**
217
- * Snap the closest thumb to a raw target value.
218
- * Used by tap-to-position on the track (implemented at the component level).
219
- * Calls `onChangeEnd` directly since no drag phase is involved.
220
- */
221
- const handleTapAtValue = useCallback(
222
- (targetValue: number) => {
223
- if (isDisabled) return;
224
-
225
- const snapped = snapToStep(targetValue, minValue, maxValue, step);
226
-
227
- let closestIdx = 0;
228
- if (values.length > 1) {
229
- let closestDist = Math.abs((values[0] ?? 0) - snapped);
230
- for (let i = 1; i < values.length; i++) {
231
- const dist = Math.abs((values[i] ?? 0) - snapped);
232
- if (dist < closestDist) {
233
- closestDist = dist;
234
- closestIdx = i;
235
- }
236
- }
237
- }
238
-
239
- const newValues = [...values];
240
- newValues[closestIdx] = snapped;
241
- const newSliderValue = denormalizeValue(newValues, wasArray.current);
242
- setInternalValue(newSliderValue);
243
- onChangeEnd?.(newSliderValue);
244
- },
245
- [
246
- isDisabled,
247
- values,
248
- minValue,
249
- maxValue,
250
- step,
251
- setInternalValue,
252
- onChangeEnd,
253
- ]
254
- );
255
-
256
- // -----------------------------------------------------------------
257
- // Context
258
- // -----------------------------------------------------------------
259
-
260
- const contextValue = useMemo<SliderContextValue>(
261
- () => ({
262
- values,
263
- minValue,
264
- maxValue,
265
- step,
266
- orientation,
267
- isDisabled,
268
- formatOptions,
269
- getThumbPercent,
270
- getThumbValueLabel,
271
- getThumbMinValue,
272
- getThumbMaxValue,
273
- updateValue,
274
- isThumbDragging,
275
- setThumbDragging,
276
- handleTapAtValue,
277
- trackSize,
278
- setTrackSize,
279
- thumbSize,
280
- setThumbSize,
281
- }),
282
- [
283
- values,
284
- minValue,
285
- maxValue,
286
- step,
287
- orientation,
288
- isDisabled,
289
- formatOptions,
290
- getThumbPercent,
291
- getThumbValueLabel,
292
- getThumbMinValue,
293
- getThumbMaxValue,
294
- updateValue,
295
- isThumbDragging,
296
- setThumbDragging,
297
- handleTapAtValue,
298
- trackSize,
299
- thumbSize,
300
- ]
301
- );
302
-
303
- const Component = asChild ? Slot.View : View;
304
-
305
- return (
306
- <SliderProvider value={contextValue}>
307
- <Component
308
- ref={ref}
309
- aria-label={ariaLabel}
310
- aria-disabled={isDisabled}
311
- accessibilityState={{ disabled: isDisabled }}
312
- {...restProps}
313
- >
314
- {children}
315
- </Component>
316
- </SliderProvider>
317
- );
318
- }
319
- );
320
-
321
- Root.displayName = 'HeroUINative.Primitive.Slider.Root';
322
-
323
- // --------------------------------------------------
324
- // Track – resolves render-function children via context
325
- // --------------------------------------------------
326
-
327
- const Track = forwardRef<TrackRef, TrackProps>(
328
- ({ asChild, children, onLayout, ...restProps }, ref) => {
329
- const {
330
- values,
331
- orientation,
332
- isDisabled,
333
- getThumbValueLabel,
334
- setTrackSize,
335
- } = useSlider();
336
-
337
- const state = useMemo<SliderState>(
338
- () => ({ values, getThumbValueLabel }),
339
- [values, getThumbValueLabel]
340
- );
341
-
342
- const renderProps: SliderRenderProps = { state, orientation, isDisabled };
343
-
344
- const resolvedChildren =
345
- typeof children === 'function' ? children(renderProps) : children;
346
-
347
- const handleLayout = useCallback(
348
- (event: import('react-native').LayoutChangeEvent) => {
349
- const { width, height } = event.nativeEvent.layout;
350
- setTrackSize(orientation === 'horizontal' ? width : height);
351
- onLayout?.(event);
352
- },
353
- [orientation, setTrackSize, onLayout]
354
- );
355
-
356
- const Component = asChild ? Slot.View : View;
357
-
358
- return (
359
- <Component ref={ref} onLayout={handleLayout} {...restProps}>
360
- {resolvedChildren}
361
- </Component>
362
- );
363
- }
364
- );
365
-
366
- Track.displayName = 'HeroUINative.Primitive.Slider.Track';
367
-
368
- // --------------------------------------------------
369
- // Fill – unstyled placeholder
370
- // --------------------------------------------------
371
-
372
- const Fill = forwardRef<FillRef, FillProps>(({ asChild, ...props }, ref) => {
373
- const Component = asChild ? Slot.View : View;
374
-
375
- return <Component ref={ref} {...props} />;
376
- });
377
-
378
- Fill.displayName = 'HeroUINative.Primitive.Slider.Fill';
379
-
380
- // --------------------------------------------------
381
- // Thumb – accessibility-enabled view for each slider thumb
382
- // --------------------------------------------------
383
-
384
- const Thumb = forwardRef<ThumbRef, ThumbProps>(
385
- ({ asChild, index = 0, onLayout, ...props }, ref) => {
386
- const {
387
- orientation,
388
- isDisabled,
389
- getThumbPercent,
390
- getThumbValueLabel,
391
- setThumbSize,
392
- } = useSlider();
393
-
394
- const Component = asChild ? Slot.View : View;
395
-
396
- /**
397
- * RN's native bridge converts `accessibilityValue.min/max/now` to integers
398
- * (`long long`), so passing fractional slider values (e.g. 0.75) crashes.
399
- * We normalise to a 0–100 percentage scale and let `text` carry the
400
- * human-readable label.
401
- */
402
- const percentNow = Math.round(getThumbPercent(index) * 100);
403
-
404
- const handleLayout = useCallback(
405
- (event: import('react-native').LayoutChangeEvent) => {
406
- const { width, height } = event.nativeEvent.layout;
407
- setThumbSize(orientation === 'horizontal' ? width : height);
408
- onLayout?.(event);
409
- },
410
- [orientation, setThumbSize, onLayout]
411
- );
412
-
413
- return (
414
- <Component
415
- ref={ref}
416
- role="slider"
417
- aria-disabled={isDisabled}
418
- accessibilityValue={{
419
- min: 0,
420
- max: 100,
421
- now: percentNow,
422
- text: getThumbValueLabel(index),
423
- }}
424
- accessibilityState={{ disabled: isDisabled }}
425
- onLayout={handleLayout}
426
- {...props}
427
- />
428
- );
429
- }
430
- );
431
-
432
- Thumb.displayName = 'HeroUINative.Primitive.Slider.Thumb';
433
-
434
- // --------------------------------------------------
435
- // Output – resolves render-function children via context
436
- // --------------------------------------------------
437
-
438
- const Output = forwardRef<OutputRef, OutputProps>(
439
- ({ asChild, children, ...restProps }, ref) => {
440
- const { values, orientation, isDisabled, getThumbValueLabel } = useSlider();
441
-
442
- const state = useMemo<SliderState>(
443
- () => ({ values, getThumbValueLabel }),
444
- [values, getThumbValueLabel]
445
- );
446
-
447
- const renderProps: SliderRenderProps = { state, orientation, isDisabled };
448
-
449
- const resolvedChildren =
450
- typeof children === 'function' ? children(renderProps) : children;
451
-
452
- const Component = asChild ? Slot.View : View;
453
-
454
- return (
455
- <Component ref={ref} {...restProps}>
456
- {resolvedChildren}
457
- </Component>
458
- );
459
- }
460
- );
461
-
462
- Output.displayName = 'HeroUINative.Primitive.Slider.Output';
463
-
464
- export { Fill, Output, Root, Thumb, Track, useSlider };
@@ -1,208 +0,0 @@
1
- import type { SlottableViewProps, ViewRef } from '../../helpers/internal/types';
2
-
3
- /**
4
- * Value type for slider - single number or array for range sliders
5
- */
6
- type SliderValue = number | number[];
7
-
8
- /**
9
- * Orientation of the slider
10
- */
11
- type SliderOrientation = 'horizontal' | 'vertical';
12
-
13
- /**
14
- * State object provided to render functions
15
- */
16
- interface SliderState {
17
- /** Current slider value(s) by thumb index */
18
- values: number[];
19
- /** Returns the formatted string label for a given thumb index */
20
- getThumbValueLabel: (index: number) => string;
21
- }
22
-
23
- /**
24
- * Render props provided to children render functions on Track and Output
25
- */
26
- interface SliderRenderProps {
27
- /** Current slider state with values and label helpers */
28
- state: SliderState;
29
- /** Orientation of the slider */
30
- orientation: SliderOrientation;
31
- /** Whether the slider is disabled */
32
- isDisabled: boolean;
33
- }
34
-
35
- /**
36
- * Context value provided by the primitive Root to all slider sub-components.
37
- * Contains all value-related state and business logic.
38
- */
39
- interface SliderContextValue {
40
- /** Current slider values (one per thumb) */
41
- values: number[];
42
- /** Minimum value */
43
- minValue: number;
44
- /** Maximum value */
45
- maxValue: number;
46
- /** Step increment */
47
- step: number;
48
- /** Current orientation */
49
- orientation: SliderOrientation;
50
- /** Whether the slider is disabled */
51
- isDisabled: boolean;
52
- /** Number format options for labels */
53
- formatOptions?: Intl.NumberFormatOptions;
54
- /** Get the percentage position (0–1) for a given thumb index */
55
- getThumbPercent: (index: number) => number;
56
- /** Get the formatted label for a given thumb index */
57
- getThumbValueLabel: (index: number) => string;
58
- /**
59
- * Get the minimum allowed value for a thumb.
60
- * For range sliders the min is bounded by the previous thumb's value.
61
- */
62
- getThumbMinValue: (index: number) => number;
63
- /**
64
- * Get the maximum allowed value for a thumb.
65
- * For range sliders the max is bounded by the next thumb's value.
66
- */
67
- getThumbMaxValue: (index: number) => number;
68
- /** Update a thumb value by index */
69
- updateValue: (index: number, newValue: number) => void;
70
- /** Whether a given thumb is currently being dragged */
71
- isThumbDragging: (index: number) => boolean;
72
- /**
73
- * Set the dragging state of a thumb.
74
- * When dragging transitions `true → false`, `onChangeEnd` fires automatically
75
- * with the latest committed value.
76
- */
77
- setThumbDragging: (index: number, dragging: boolean) => void;
78
- /** Snaps the closest thumb to a target value (used for tap-to-position) */
79
- handleTapAtValue: (targetValue: number) => void;
80
- /** Track layout width (horizontal) or height (vertical) in pixels */
81
- trackSize: number;
82
- /** Set the track layout size after measurement */
83
- setTrackSize: (size: number) => void;
84
- /** Measured thumb size (main-axis dimension) in pixels, populated via onLayout */
85
- thumbSize: number;
86
- /** Set the thumb size after measurement */
87
- setThumbSize: (size: number) => void;
88
- }
89
-
90
- // ---------------------------------------------------------------------------
91
- // Component props
92
- // ---------------------------------------------------------------------------
93
-
94
- /**
95
- * Props for the primitive Slider Root component.
96
- * Manages value state, provides context, and handles accessibility.
97
- */
98
- interface RootProps extends Omit<SlottableViewProps, 'children'> {
99
- /** Children content */
100
- children?: React.ReactNode;
101
-
102
- /** Current slider value (controlled mode) */
103
- value?: SliderValue;
104
-
105
- /** Default slider value (uncontrolled mode) */
106
- defaultValue?: SliderValue;
107
-
108
- /** Callback fired when the slider value changes during interaction */
109
- onChange?: (value: SliderValue) => void;
110
-
111
- /** Callback fired when an interaction completes (drag end or tap) */
112
- onChangeEnd?: (value: SliderValue) => void;
113
-
114
- /**
115
- * Minimum value of the slider
116
- * @default 0
117
- */
118
- minValue?: number;
119
-
120
- /**
121
- * Maximum value of the slider
122
- * @default 100
123
- */
124
- maxValue?: number;
125
-
126
- /**
127
- * Step increment for the slider
128
- * @default 1
129
- */
130
- step?: number;
131
-
132
- /** Intl.NumberFormat options for value label formatting */
133
- formatOptions?: Intl.NumberFormatOptions;
134
-
135
- /**
136
- * Orientation of the slider
137
- * @default "horizontal"
138
- */
139
- orientation?: SliderOrientation;
140
-
141
- /**
142
- * Whether the slider is disabled
143
- * @default false
144
- */
145
- isDisabled?: boolean;
146
- }
147
-
148
- /**
149
- * Props for the primitive Slider Track component.
150
- * Supports render-function children that receive slider state.
151
- */
152
- interface TrackProps extends Omit<SlottableViewProps, 'children'> {
153
- /** Children content or render function receiving slider state */
154
- children?: React.ReactNode | ((props: SliderRenderProps) => React.ReactNode);
155
- }
156
-
157
- /**
158
- * Props for the primitive Slider Fill component
159
- */
160
- type FillProps = SlottableViewProps;
161
-
162
- /**
163
- * Props for the primitive Slider Thumb component
164
- */
165
- interface ThumbProps extends SlottableViewProps {
166
- /**
167
- * Index of this thumb within the slider (for range sliders)
168
- * @default 0
169
- */
170
- index?: number;
171
- }
172
-
173
- /**
174
- * Props for the primitive Slider Output component.
175
- * Supports render-function children that receive slider state.
176
- */
177
- interface OutputProps extends Omit<SlottableViewProps, 'children'> {
178
- /** Children content or render function receiving slider state */
179
- children?: React.ReactNode | ((props: SliderRenderProps) => React.ReactNode);
180
- }
181
-
182
- // ---------------------------------------------------------------------------
183
- // Ref types
184
- // ---------------------------------------------------------------------------
185
-
186
- type RootRef = ViewRef;
187
- type TrackRef = ViewRef;
188
- type FillRef = ViewRef;
189
- type ThumbRef = ViewRef;
190
- type OutputRef = ViewRef;
191
-
192
- export type {
193
- FillProps,
194
- FillRef,
195
- OutputProps,
196
- OutputRef,
197
- RootProps,
198
- RootRef,
199
- SliderContextValue,
200
- SliderOrientation,
201
- SliderRenderProps,
202
- SliderState,
203
- SliderValue,
204
- ThumbProps,
205
- ThumbRef,
206
- TrackProps,
207
- TrackRef,
208
- };