@coze-arch/cli 0.0.10 → 0.0.11

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 (437) 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 +4 -1
  4. package/lib/__templates__/expo/client/components/Screen.tsx +4 -1
  5. package/lib/__templates__/expo/client/eslint.config.mjs +2 -0
  6. package/lib/__templates__/expo/client/global.css +1 -0
  7. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.animation.ts +178 -0
  8. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.constants.ts +62 -0
  9. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.md +437 -0
  10. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.styles.ts +95 -0
  11. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.tsx +340 -0
  12. package/lib/__templates__/expo/client/heroui/components/accordion/accordion.types.ts +267 -0
  13. package/lib/__templates__/expo/client/heroui/components/accordion/index.ts +17 -0
  14. package/lib/__templates__/expo/client/heroui/components/alert/alert.constants.ts +13 -0
  15. package/lib/__templates__/expo/client/heroui/components/alert/alert.hooks.ts +28 -0
  16. package/lib/__templates__/expo/client/heroui/components/alert/alert.md +263 -0
  17. package/lib/__templates__/expo/client/heroui/components/alert/alert.styles.ts +65 -0
  18. package/lib/__templates__/expo/client/heroui/components/alert/alert.tsx +181 -0
  19. package/lib/__templates__/expo/client/heroui/components/alert/alert.types.ts +99 -0
  20. package/lib/__templates__/expo/client/heroui/components/alert/alert.utils.tsx +25 -0
  21. package/lib/__templates__/expo/client/heroui/components/alert/default-icon.tsx +28 -0
  22. package/lib/__templates__/expo/client/heroui/components/alert/index.ts +15 -0
  23. package/lib/__templates__/expo/client/heroui/components/alert/success-icon.tsx +28 -0
  24. package/lib/__templates__/expo/client/heroui/components/alert/warning-icon.tsx +28 -0
  25. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.animation.ts +123 -0
  26. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.constants.ts +19 -0
  27. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.context.ts +11 -0
  28. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.md +386 -0
  29. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.styles.ts +145 -0
  30. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.tsx +307 -0
  31. package/lib/__templates__/expo/client/heroui/components/avatar/avatar.types.ts +239 -0
  32. package/lib/__templates__/expo/client/heroui/components/avatar/index.ts +13 -0
  33. package/lib/__templates__/expo/client/heroui/components/avatar/person-icon.tsx +23 -0
  34. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.animation.ts +42 -0
  35. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.constants.ts +13 -0
  36. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.md +349 -0
  37. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.styles.ts +66 -0
  38. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.tsx +351 -0
  39. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/bottom-sheet.types.ts +150 -0
  40. package/lib/__templates__/expo/client/heroui/components/bottom-sheet/index.ts +16 -0
  41. package/lib/__templates__/expo/client/heroui/components/button/button.constants.ts +7 -0
  42. package/lib/__templates__/expo/client/heroui/components/button/button.md +381 -0
  43. package/lib/__templates__/expo/client/heroui/components/button/button.styles.ts +89 -0
  44. package/lib/__templates__/expo/client/heroui/components/button/button.tsx +284 -0
  45. package/lib/__templates__/expo/client/heroui/components/button/button.types.ts +175 -0
  46. package/lib/__templates__/expo/client/heroui/components/button/button.utils.ts +34 -0
  47. package/lib/__templates__/expo/client/heroui/components/button/index.ts +9 -0
  48. package/lib/__templates__/expo/client/heroui/components/card/card.constants.ts +11 -0
  49. package/lib/__templates__/expo/client/heroui/components/card/card.md +186 -0
  50. package/lib/__templates__/expo/client/heroui/components/card/card.styles.ts +35 -0
  51. package/lib/__templates__/expo/client/heroui/components/card/card.tsx +153 -0
  52. package/lib/__templates__/expo/client/heroui/components/card/card.types.ts +77 -0
  53. package/lib/__templates__/expo/client/heroui/components/card/index.ts +10 -0
  54. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.animation.ts +202 -0
  55. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.constants.ts +6 -0
  56. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.md +311 -0
  57. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.styles.ts +105 -0
  58. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.tsx +251 -0
  59. package/lib/__templates__/expo/client/heroui/components/checkbox/checkbox.types.ts +216 -0
  60. package/lib/__templates__/expo/client/heroui/components/checkbox/index.ts +3 -0
  61. package/lib/__templates__/expo/client/heroui/components/chip/chip.animation.ts +18 -0
  62. package/lib/__templates__/expo/client/heroui/components/chip/chip.constants.ts +7 -0
  63. package/lib/__templates__/expo/client/heroui/components/chip/chip.md +190 -0
  64. package/lib/__templates__/expo/client/heroui/components/chip/chip.styles.ts +234 -0
  65. package/lib/__templates__/expo/client/heroui/components/chip/chip.tsx +125 -0
  66. package/lib/__templates__/expo/client/heroui/components/chip/chip.types.ts +69 -0
  67. package/lib/__templates__/expo/client/heroui/components/chip/index.ts +3 -0
  68. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.constants.ts +6 -0
  69. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.md +109 -0
  70. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.styles.ts +13 -0
  71. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.tsx +57 -0
  72. package/lib/__templates__/expo/client/heroui/components/close-button/close-button.types.ts +30 -0
  73. package/lib/__templates__/expo/client/heroui/components/close-button/index.ts +6 -0
  74. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.animation.ts +18 -0
  75. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.constants.ts +7 -0
  76. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.context.ts +14 -0
  77. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.md +241 -0
  78. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.styles.ts +15 -0
  79. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.tsx +245 -0
  80. package/lib/__templates__/expo/client/heroui/components/control-field/control-field.types.ts +67 -0
  81. package/lib/__templates__/expo/client/heroui/components/control-field/index.ts +6 -0
  82. package/lib/__templates__/expo/client/heroui/components/description/description.animation.ts +53 -0
  83. package/lib/__templates__/expo/client/heroui/components/description/description.constants.ts +30 -0
  84. package/lib/__templates__/expo/client/heroui/components/description/description.md +129 -0
  85. package/lib/__templates__/expo/client/heroui/components/description/description.styles.ts +25 -0
  86. package/lib/__templates__/expo/client/heroui/components/description/description.tsx +81 -0
  87. package/lib/__templates__/expo/client/heroui/components/description/description.types.ts +77 -0
  88. package/lib/__templates__/expo/client/heroui/components/description/index.ts +3 -0
  89. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.animation.ts +9 -0
  90. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.constants.ts +13 -0
  91. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.md +288 -0
  92. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.styles.ts +77 -0
  93. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.tsx +379 -0
  94. package/lib/__templates__/expo/client/heroui/components/dialog/dialog.types.ts +199 -0
  95. package/lib/__templates__/expo/client/heroui/components/dialog/index.ts +12 -0
  96. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.animation.ts +50 -0
  97. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.constants.ts +31 -0
  98. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.md +204 -0
  99. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.styles.ts +23 -0
  100. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.tsx +91 -0
  101. package/lib/__templates__/expo/client/heroui/components/field-error/field-error.types.ts +79 -0
  102. package/lib/__templates__/expo/client/heroui/components/field-error/index.ts +3 -0
  103. package/lib/__templates__/expo/client/heroui/components/input/index.ts +3 -0
  104. package/lib/__templates__/expo/client/heroui/components/input/input.constants.ts +6 -0
  105. package/lib/__templates__/expo/client/heroui/components/input/input.md +193 -0
  106. package/lib/__templates__/expo/client/heroui/components/input/input.styles.ts +51 -0
  107. package/lib/__templates__/expo/client/heroui/components/input/input.tsx +96 -0
  108. package/lib/__templates__/expo/client/heroui/components/input/input.types.ts +44 -0
  109. package/lib/__templates__/expo/client/heroui/components/input-group/index.ts +9 -0
  110. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.animation.ts +14 -0
  111. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.constants.ts +6 -0
  112. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.md +197 -0
  113. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.styles.ts +31 -0
  114. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.tsx +239 -0
  115. package/lib/__templates__/expo/client/heroui/components/input-group/input-group.types.ts +98 -0
  116. package/lib/__templates__/expo/client/heroui/components/input-otp/index.ts +9 -0
  117. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.animation.ts +199 -0
  118. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.constants.ts +12 -0
  119. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.md +376 -0
  120. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.styles.ts +68 -0
  121. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.tsx +414 -0
  122. package/lib/__templates__/expo/client/heroui/components/input-otp/input-otp.types.ts +275 -0
  123. package/lib/__templates__/expo/client/heroui/components/label/index.ts +3 -0
  124. package/lib/__templates__/expo/client/heroui/components/label/label.animation.ts +18 -0
  125. package/lib/__templates__/expo/client/heroui/components/label/label.constants.ts +7 -0
  126. package/lib/__templates__/expo/client/heroui/components/label/label.md +187 -0
  127. package/lib/__templates__/expo/client/heroui/components/label/label.styles.ts +44 -0
  128. package/lib/__templates__/expo/client/heroui/components/label/label.tsx +172 -0
  129. package/lib/__templates__/expo/client/heroui/components/label/label.types.ts +86 -0
  130. package/lib/__templates__/expo/client/heroui/components/list-group/index.ts +17 -0
  131. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.constants.ts +17 -0
  132. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.md +387 -0
  133. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.styles.ts +40 -0
  134. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.tsx +206 -0
  135. package/lib/__templates__/expo/client/heroui/components/list-group/list-group.types.ts +132 -0
  136. package/lib/__templates__/expo/client/heroui/components/menu/index.ts +38 -0
  137. package/lib/__templates__/expo/client/heroui/components/menu/menu.animation.ts +121 -0
  138. package/lib/__templates__/expo/client/heroui/components/menu/menu.constants.ts +37 -0
  139. package/lib/__templates__/expo/client/heroui/components/menu/menu.md +620 -0
  140. package/lib/__templates__/expo/client/heroui/components/menu/menu.styles.ts +107 -0
  141. package/lib/__templates__/expo/client/heroui/components/menu/menu.tsx +664 -0
  142. package/lib/__templates__/expo/client/heroui/components/menu/menu.types.ts +394 -0
  143. package/lib/__templates__/expo/client/heroui/components/popover/arrow-svg.tsx +180 -0
  144. package/lib/__templates__/expo/client/heroui/components/popover/index.ts +18 -0
  145. package/lib/__templates__/expo/client/heroui/components/popover/popover.animation.ts +9 -0
  146. package/lib/__templates__/expo/client/heroui/components/popover/popover.constants.ts +34 -0
  147. package/lib/__templates__/expo/client/heroui/components/popover/popover.md +508 -0
  148. package/lib/__templates__/expo/client/heroui/components/popover/popover.styles.ts +98 -0
  149. package/lib/__templates__/expo/client/heroui/components/popover/popover.tsx +624 -0
  150. package/lib/__templates__/expo/client/heroui/components/popover/popover.types.ts +290 -0
  151. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/index.ts +3 -0
  152. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.animation.ts +450 -0
  153. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.constants.ts +12 -0
  154. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.md +328 -0
  155. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.styles.ts +84 -0
  156. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.tsx +330 -0
  157. package/lib/__templates__/expo/client/heroui/components/pressable-feedback/pressable-feedback.types.ts +386 -0
  158. package/lib/__templates__/expo/client/heroui/components/radio/index.ts +9 -0
  159. package/lib/__templates__/expo/client/heroui/components/radio/radio.animation.ts +92 -0
  160. package/lib/__templates__/expo/client/heroui/components/radio/radio.constants.ts +11 -0
  161. package/lib/__templates__/expo/client/heroui/components/radio/radio.md +339 -0
  162. package/lib/__templates__/expo/client/heroui/components/radio/radio.styles.ts +80 -0
  163. package/lib/__templates__/expo/client/heroui/components/radio/radio.tsx +217 -0
  164. package/lib/__templates__/expo/client/heroui/components/radio/radio.types.ts +106 -0
  165. package/lib/__templates__/expo/client/heroui/components/radio-group/index.ts +9 -0
  166. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.animation.ts +20 -0
  167. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.constants.ts +7 -0
  168. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.context.ts +14 -0
  169. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.md +273 -0
  170. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.styles.ts +15 -0
  171. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.tsx +220 -0
  172. package/lib/__templates__/expo/client/heroui/components/radio-group/radio-group.types.ts +64 -0
  173. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/index.ts +7 -0
  174. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.animation.ts +132 -0
  175. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.constants.ts +21 -0
  176. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.md +206 -0
  177. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.styles.ts +52 -0
  178. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.tsx +262 -0
  179. package/lib/__templates__/expo/client/heroui/components/scroll-shadow/scroll-shadow.types.ts +121 -0
  180. package/lib/__templates__/expo/client/heroui/components/search-field/index.ts +17 -0
  181. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.animation.ts +18 -0
  182. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.constants.ts +10 -0
  183. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.md +231 -0
  184. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.styles.ts +35 -0
  185. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.tsx +253 -0
  186. package/lib/__templates__/expo/client/heroui/components/search-field/search-field.types.ts +160 -0
  187. package/lib/__templates__/expo/client/heroui/components/search-field/search-icon.tsx +37 -0
  188. package/lib/__templates__/expo/client/heroui/components/select/index.ts +28 -0
  189. package/lib/__templates__/expo/client/heroui/components/select/select.animation.ts +92 -0
  190. package/lib/__templates__/expo/client/heroui/components/select/select.constants.ts +53 -0
  191. package/lib/__templates__/expo/client/heroui/components/select/select.md +796 -0
  192. package/lib/__templates__/expo/client/heroui/components/select/select.styles.ts +149 -0
  193. package/lib/__templates__/expo/client/heroui/components/select/select.tsx +828 -0
  194. package/lib/__templates__/expo/client/heroui/components/select/select.types.ts +438 -0
  195. package/lib/__templates__/expo/client/heroui/components/separator/index.ts +7 -0
  196. package/lib/__templates__/expo/client/heroui/components/separator/separator.constants.ts +6 -0
  197. package/lib/__templates__/expo/client/heroui/components/separator/separator.md +106 -0
  198. package/lib/__templates__/expo/client/heroui/components/separator/separator.styles.ts +50 -0
  199. package/lib/__templates__/expo/client/heroui/components/separator/separator.tsx +62 -0
  200. package/lib/__templates__/expo/client/heroui/components/separator/separator.types.ts +40 -0
  201. package/lib/__templates__/expo/client/heroui/components/skeleton/index.ts +7 -0
  202. package/lib/__templates__/expo/client/heroui/components/skeleton/linear-gradient.tsx +45 -0
  203. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.animation.ts +351 -0
  204. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.constants.ts +39 -0
  205. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.md +208 -0
  206. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.styles.ts +49 -0
  207. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.tsx +183 -0
  208. package/lib/__templates__/expo/client/heroui/components/skeleton/skeleton.types.ts +191 -0
  209. package/lib/__templates__/expo/client/heroui/components/skeleton-group/index.ts +7 -0
  210. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.constants.ts +7 -0
  211. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.md +247 -0
  212. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.styles.ts +10 -0
  213. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.tsx +94 -0
  214. package/lib/__templates__/expo/client/heroui/components/skeleton-group/skeleton-group.types.ts +28 -0
  215. package/lib/__templates__/expo/client/heroui/components/slider/index.ts +23 -0
  216. package/lib/__templates__/expo/client/heroui/components/slider/slider.animation.ts +87 -0
  217. package/lib/__templates__/expo/client/heroui/components/slider/slider.constants.ts +24 -0
  218. package/lib/__templates__/expo/client/heroui/components/slider/slider.md +348 -0
  219. package/lib/__templates__/expo/client/heroui/components/slider/slider.styles.ts +85 -0
  220. package/lib/__templates__/expo/client/heroui/components/slider/slider.tsx +413 -0
  221. package/lib/__templates__/expo/client/heroui/components/slider/slider.types.ts +120 -0
  222. package/lib/__templates__/expo/client/heroui/components/spinner/index.ts +10 -0
  223. package/lib/__templates__/expo/client/heroui/components/spinner/spinner-icon.tsx +49 -0
  224. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.animation.ts +150 -0
  225. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.constants.ts +36 -0
  226. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.md +199 -0
  227. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.styles.ts +44 -0
  228. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.tsx +198 -0
  229. package/lib/__templates__/expo/client/heroui/components/spinner/spinner.types.ts +158 -0
  230. package/lib/__templates__/expo/client/heroui/components/surface/index.ts +3 -0
  231. package/lib/__templates__/expo/client/heroui/components/surface/surface.animation.ts +18 -0
  232. package/lib/__templates__/expo/client/heroui/components/surface/surface.constants.ts +6 -0
  233. package/lib/__templates__/expo/client/heroui/components/surface/surface.md +136 -0
  234. package/lib/__templates__/expo/client/heroui/components/surface/surface.styles.ts +28 -0
  235. package/lib/__templates__/expo/client/heroui/components/surface/surface.tsx +66 -0
  236. package/lib/__templates__/expo/client/heroui/components/surface/surface.types.ts +46 -0
  237. package/lib/__templates__/expo/client/heroui/components/switch/index.ts +3 -0
  238. package/lib/__templates__/expo/client/heroui/components/switch/switch.animation.ts +243 -0
  239. package/lib/__templates__/expo/client/heroui/components/switch/switch.constants.ts +26 -0
  240. package/lib/__templates__/expo/client/heroui/components/switch/switch.md +334 -0
  241. package/lib/__templates__/expo/client/heroui/components/switch/switch.styles.ts +83 -0
  242. package/lib/__templates__/expo/client/heroui/components/switch/switch.tsx +280 -0
  243. package/lib/__templates__/expo/client/heroui/components/switch/switch.types.ts +208 -0
  244. package/lib/__templates__/expo/client/heroui/components/tabs/index.ts +8 -0
  245. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.animation.ts +246 -0
  246. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.constants.ts +17 -0
  247. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.context.ts +28 -0
  248. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.md +565 -0
  249. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.styles.ts +168 -0
  250. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.tsx +445 -0
  251. package/lib/__templates__/expo/client/heroui/components/tabs/tabs.types.ts +341 -0
  252. package/lib/__templates__/expo/client/heroui/components/tag-group/index.ts +15 -0
  253. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.animation.ts +17 -0
  254. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.constants.ts +10 -0
  255. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.md +404 -0
  256. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.styles.ts +74 -0
  257. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.tsx +325 -0
  258. package/lib/__templates__/expo/client/heroui/components/tag-group/tag-group.types.ts +125 -0
  259. package/lib/__templates__/expo/client/heroui/components/text-area/index.ts +3 -0
  260. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.constants.ts +6 -0
  261. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.md +133 -0
  262. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.styles.ts +10 -0
  263. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.tsx +44 -0
  264. package/lib/__templates__/expo/client/heroui/components/text-area/text-area.types.ts +6 -0
  265. package/lib/__templates__/expo/client/heroui/components/text-field/index.ts +3 -0
  266. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.animation.ts +20 -0
  267. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.constants.ts +6 -0
  268. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.md +256 -0
  269. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.styles.ts +10 -0
  270. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.tsx +82 -0
  271. package/lib/__templates__/expo/client/heroui/components/text-field/text-field.types.ts +56 -0
  272. package/lib/__templates__/expo/client/heroui/components/toast/index.ts +4 -0
  273. package/lib/__templates__/expo/client/heroui/components/toast/toast.animation.ts +381 -0
  274. package/lib/__templates__/expo/client/heroui/components/toast/toast.constants.ts +10 -0
  275. package/lib/__templates__/expo/client/heroui/components/toast/toast.hooks.ts +73 -0
  276. package/lib/__templates__/expo/client/heroui/components/toast/toast.md +420 -0
  277. package/lib/__templates__/expo/client/heroui/components/toast/toast.styles.ts +89 -0
  278. package/lib/__templates__/expo/client/heroui/components/toast/toast.tsx +472 -0
  279. package/lib/__templates__/expo/client/heroui/components/toast/toast.types.ts +320 -0
  280. package/lib/__templates__/expo/client/heroui/docs.md +47 -0
  281. package/lib/__templates__/expo/client/heroui/helpers/external/hooks/index.ts +3 -0
  282. package/lib/__templates__/expo/client/heroui/helpers/external/hooks/use-is-on-surface.ts +8 -0
  283. package/lib/__templates__/expo/client/heroui/helpers/external/hooks/use-theme-color.ts +137 -0
  284. package/lib/__templates__/expo/client/heroui/helpers/external/utils/cn.ts +12 -0
  285. package/lib/__templates__/expo/client/heroui/helpers/external/utils/color-kit/index.ts +2395 -0
  286. package/lib/__templates__/expo/client/heroui/helpers/external/utils/color-kit/types.ts +212 -0
  287. package/lib/__templates__/expo/client/heroui/helpers/external/utils/index.ts +2 -0
  288. package/lib/__templates__/expo/client/heroui/helpers/internal/components/animated-check-icon.tsx +78 -0
  289. package/lib/__templates__/expo/client/heroui/helpers/internal/components/bottom-sheet-content-container.tsx +97 -0
  290. package/lib/__templates__/expo/client/heroui/helpers/internal/components/bottom-sheet-content.tsx +158 -0
  291. package/lib/__templates__/expo/client/heroui/helpers/internal/components/check-icon.tsx +28 -0
  292. package/lib/__templates__/expo/client/heroui/helpers/internal/components/chevron-down-icon.tsx +28 -0
  293. package/lib/__templates__/expo/client/heroui/helpers/internal/components/chevron-right-icon.tsx +29 -0
  294. package/lib/__templates__/expo/client/heroui/helpers/internal/components/close-icon.tsx +29 -0
  295. package/lib/__templates__/expo/client/heroui/helpers/internal/components/full-window-overlay.tsx +48 -0
  296. package/lib/__templates__/expo/client/heroui/helpers/internal/components/hero-text.tsx +71 -0
  297. package/lib/__templates__/expo/client/heroui/helpers/internal/components/index.ts +9 -0
  298. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/animation-settings-context.ts +19 -0
  299. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/bottom-sheet-is-dragging-context.ts +11 -0
  300. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/form-field-context.ts +36 -0
  301. package/lib/__templates__/expo/client/heroui/helpers/internal/contexts/index.ts +3 -0
  302. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/index.ts +14 -0
  303. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-augmented-ref.ts +32 -0
  304. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-bottom-sheet-aware-handlers.ts +94 -0
  305. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-bottom-sheet-gesture-handlers.ts +52 -0
  306. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-combined-animation-disabled-state.ts +49 -0
  307. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-controllable-state.ts +124 -0
  308. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-dev-info.ts +38 -0
  309. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-keyboard-status.ts +22 -0
  310. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-bottom-sheet-content-animation.ts +67 -0
  311. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-dialog-content-animation.ts +296 -0
  312. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-overlay-animation.ts +91 -0
  313. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-popover-content-animation.ts +199 -0
  314. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-popup-root-animation.ts +26 -0
  315. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-relative-position.ts +353 -0
  316. package/lib/__templates__/expo/client/heroui/helpers/internal/hooks/use-resolved-style-property.ts +118 -0
  317. package/lib/__templates__/expo/client/heroui/helpers/internal/types/animation.ts +131 -0
  318. package/lib/__templates__/expo/client/heroui/helpers/internal/types/bottom-sheet.ts +99 -0
  319. package/lib/__templates__/expo/client/heroui/helpers/internal/types/index.ts +5 -0
  320. package/lib/__templates__/expo/client/heroui/helpers/internal/types/misc.ts +10 -0
  321. package/lib/__templates__/expo/client/heroui/helpers/internal/types/primitives.ts +146 -0
  322. package/lib/__templates__/expo/client/heroui/helpers/internal/types/theme.ts +18 -0
  323. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/animation.ts +266 -0
  324. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/children-to-string.ts +117 -0
  325. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/combine-styles.ts +17 -0
  326. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/create-context.ts +60 -0
  327. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/ease-gradient/create-interpolation.ts +35 -0
  328. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/ease-gradient/index.ts +97 -0
  329. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/get-element-by-display-name.ts +15 -0
  330. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/get-element-with-default.ts +17 -0
  331. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/has-prop.ts +18 -0
  332. package/lib/__templates__/expo/client/heroui/helpers/internal/utils/index.ts +8 -0
  333. package/lib/__templates__/expo/client/heroui/index.tsx +51 -0
  334. package/lib/__templates__/expo/client/heroui/primitives/README.md +27 -0
  335. package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.tsx +270 -0
  336. package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.types.ts +117 -0
  337. package/lib/__templates__/expo/client/heroui/primitives/accordion/accordion.utils.ts +12 -0
  338. package/lib/__templates__/expo/client/heroui/primitives/accordion/index.ts +2 -0
  339. package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/activity-indicator.tsx +50 -0
  340. package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/activity-indicator.types.ts +24 -0
  341. package/lib/__templates__/expo/client/heroui/primitives/activity-indicator/index.ts +2 -0
  342. package/lib/__templates__/expo/client/heroui/primitives/alert/alert.tsx +124 -0
  343. package/lib/__templates__/expo/client/heroui/primitives/alert/alert.types.ts +87 -0
  344. package/lib/__templates__/expo/client/heroui/primitives/alert/index.ts +2 -0
  345. package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.tsx +171 -0
  346. package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.types.ts +62 -0
  347. package/lib/__templates__/expo/client/heroui/primitives/avatar/avatar.utils.ts +102 -0
  348. package/lib/__templates__/expo/client/heroui/primitives/avatar/index.ts +2 -0
  349. package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/bottom-sheet.tsx +235 -0
  350. package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/bottom-sheet.types.ts +127 -0
  351. package/lib/__templates__/expo/client/heroui/primitives/bottom-sheet/index.ts +2 -0
  352. package/lib/__templates__/expo/client/heroui/primitives/checkbox/checkbox.tsx +119 -0
  353. package/lib/__templates__/expo/client/heroui/primitives/checkbox/checkbox.types.ts +37 -0
  354. package/lib/__templates__/expo/client/heroui/primitives/checkbox/index.ts +2 -0
  355. package/lib/__templates__/expo/client/heroui/primitives/dialog/dialog.tsx +274 -0
  356. package/lib/__templates__/expo/client/heroui/primitives/dialog/dialog.types.ts +129 -0
  357. package/lib/__templates__/expo/client/heroui/primitives/dialog/index.ts +2 -0
  358. package/lib/__templates__/expo/client/heroui/primitives/input-otp/index.ts +3 -0
  359. package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.tsx +431 -0
  360. package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.types.ts +169 -0
  361. package/lib/__templates__/expo/client/heroui/primitives/input-otp/input-otp.utils.ts +31 -0
  362. package/lib/__templates__/expo/client/heroui/primitives/label/index.ts +2 -0
  363. package/lib/__templates__/expo/client/heroui/primitives/label/label.tsx +24 -0
  364. package/lib/__templates__/expo/client/heroui/primitives/label/label.types.ts +39 -0
  365. package/lib/__templates__/expo/client/heroui/primitives/menu/index.ts +2 -0
  366. package/lib/__templates__/expo/client/heroui/primitives/menu/menu.tsx +765 -0
  367. package/lib/__templates__/expo/client/heroui/primitives/menu/menu.types.ts +401 -0
  368. package/lib/__templates__/expo/client/heroui/primitives/popover/index.ts +2 -0
  369. package/lib/__templates__/expo/client/heroui/primitives/popover/popover.tsx +382 -0
  370. package/lib/__templates__/expo/client/heroui/primitives/popover/popover.types.ts +201 -0
  371. package/lib/__templates__/expo/client/heroui/primitives/portal/index.ts +1 -0
  372. package/lib/__templates__/expo/client/heroui/primitives/portal/portal.tsx +126 -0
  373. package/lib/__templates__/expo/client/heroui/primitives/radio/index.ts +2 -0
  374. package/lib/__templates__/expo/client/heroui/primitives/radio/radio.tsx +133 -0
  375. package/lib/__templates__/expo/client/heroui/primitives/radio/radio.types.ts +47 -0
  376. package/lib/__templates__/expo/client/heroui/primitives/radio-group/index.ts +2 -0
  377. package/lib/__templates__/expo/client/heroui/primitives/radio-group/radio-group.tsx +114 -0
  378. package/lib/__templates__/expo/client/heroui/primitives/radio-group/radio-group.types.ts +65 -0
  379. package/lib/__templates__/expo/client/heroui/primitives/select/index.ts +2 -0
  380. package/lib/__templates__/expo/client/heroui/primitives/select/select.tsx +705 -0
  381. package/lib/__templates__/expo/client/heroui/primitives/select/select.types.ts +409 -0
  382. package/lib/__templates__/expo/client/heroui/primitives/select/select.utils.ts +35 -0
  383. package/lib/__templates__/expo/client/heroui/primitives/slider/index.ts +3 -0
  384. package/lib/__templates__/expo/client/heroui/primitives/slider/slider.tsx +464 -0
  385. package/lib/__templates__/expo/client/heroui/primitives/slider/slider.types.ts +208 -0
  386. package/lib/__templates__/expo/client/heroui/primitives/slider/slider.utils.ts +93 -0
  387. package/lib/__templates__/expo/client/heroui/primitives/slot/index.ts +1 -0
  388. package/lib/__templates__/expo/client/heroui/primitives/slot/slot.tsx +122 -0
  389. package/lib/__templates__/expo/client/heroui/primitives/slot/types.ts +19 -0
  390. package/lib/__templates__/expo/client/heroui/primitives/slot/utils.ts +96 -0
  391. package/lib/__templates__/expo/client/heroui/primitives/switch/index.ts +2 -0
  392. package/lib/__templates__/expo/client/heroui/primitives/switch/switch.tsx +61 -0
  393. package/lib/__templates__/expo/client/heroui/primitives/switch/switch.types.ts +55 -0
  394. package/lib/__templates__/expo/client/heroui/primitives/tabs/index.ts +2 -0
  395. package/lib/__templates__/expo/client/heroui/primitives/tabs/tabs.tsx +202 -0
  396. package/lib/__templates__/expo/client/heroui/primitives/tabs/tabs.types.ts +77 -0
  397. package/lib/__templates__/expo/client/heroui/primitives/tag-group/index.ts +2 -0
  398. package/lib/__templates__/expo/client/heroui/primitives/tag-group/tag-group.tsx +324 -0
  399. package/lib/__templates__/expo/client/heroui/primitives/tag-group/tag-group.types.ts +119 -0
  400. package/lib/__templates__/expo/client/heroui/primitives/toast/index.ts +2 -0
  401. package/lib/__templates__/expo/client/heroui/primitives/toast/toast.tsx +138 -0
  402. package/lib/__templates__/expo/client/heroui/primitives/toast/toast.types.ts +86 -0
  403. package/lib/__templates__/expo/client/heroui/providers/animation-settings/index.ts +8 -0
  404. package/lib/__templates__/expo/client/heroui/providers/animation-settings/provider.tsx +47 -0
  405. package/lib/__templates__/expo/client/heroui/providers/animation-settings/types.ts +27 -0
  406. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/index.ts +2 -0
  407. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/provider.tsx +67 -0
  408. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native/types.ts +114 -0
  409. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/index.ts +2 -0
  410. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/provider.tsx +50 -0
  411. package/lib/__templates__/expo/client/heroui/providers/hero-ui-native-raw/types.ts +39 -0
  412. package/lib/__templates__/expo/client/heroui/providers/text-component/index.ts +2 -0
  413. package/lib/__templates__/expo/client/heroui/providers/text-component/provider.tsx +9 -0
  414. package/lib/__templates__/expo/client/heroui/providers/text-component/types.ts +52 -0
  415. package/lib/__templates__/expo/client/heroui/providers/toast/index.ts +3 -0
  416. package/lib/__templates__/expo/client/heroui/providers/toast/insets-container.tsx +87 -0
  417. package/lib/__templates__/expo/client/heroui/providers/toast/provider.tsx +431 -0
  418. package/lib/__templates__/expo/client/heroui/providers/toast/reducer.ts +34 -0
  419. package/lib/__templates__/expo/client/heroui/providers/toast/toast-config.context.ts +27 -0
  420. package/lib/__templates__/expo/client/heroui/providers/toast/toast-item-renderer.tsx +45 -0
  421. package/lib/__templates__/expo/client/heroui/providers/toast/types.ts +373 -0
  422. package/lib/__templates__/expo/client/heroui/styles/index.css +3 -0
  423. package/lib/__templates__/expo/client/heroui/styles/theme.css +112 -0
  424. package/lib/__templates__/expo/client/heroui/styles/utilities.css +8 -0
  425. package/lib/__templates__/expo/client/heroui/styles/variables.css +146 -0
  426. package/lib/__templates__/expo/client/package.json +4 -1
  427. package/lib/__templates__/expo/package.json +1 -1
  428. package/lib/__templates__/expo/pnpm-lock.yaml +68 -0
  429. package/lib/__templates__/nextjs/AGENTS.md +6 -4
  430. package/lib/__templates__/nextjs/eslint.config.mjs +9 -0
  431. package/lib/__templates__/taro/.coze +2 -0
  432. package/lib/__templates__/taro/.cozeproj/scripts/pack.sh +1 -2
  433. package/lib/__templates__/taro/config/index.ts +1 -1
  434. package/lib/__templates__/taro/package.json +1 -0
  435. package/lib/__templates__/taro/project.config.json +1 -1
  436. package/lib/cli.js +246 -252
  437. package/package.json +3 -2
@@ -0,0 +1,438 @@
1
+ import type BottomSheet from '@gorhom/bottom-sheet';
2
+ import type { ReactNode } from 'react';
3
+ import type { TextProps, ViewStyle } from 'react-native';
4
+ import type {
5
+ AnimatedProps,
6
+ SharedValue,
7
+ WithSpringConfig,
8
+ } from 'react-native-reanimated';
9
+ import type {
10
+ Animation,
11
+ AnimationRootDisableAll,
12
+ AnimationValue,
13
+ BaseBottomSheetContentProps,
14
+ ElementSlots,
15
+ PopupDialogContentAnimation,
16
+ PopupOverlayAnimation,
17
+ PopupPopoverContentAnimation,
18
+ } from '../../helpers/internal/types';
19
+ import type * as SelectPrimitivesTypes from '../../primitives/select/select.types';
20
+ import type { CloseButtonProps } from '../close-button/close-button.types';
21
+ import type { DialogContentFallbackSlots } from './select.styles';
22
+
23
+ /**
24
+ * Select internal state for animation coordination
25
+ */
26
+ export type SelectState = 'idle' | 'open' | 'close';
27
+
28
+ /**
29
+ * Context value for select animation state
30
+ */
31
+ export interface SelectAnimationContextValue {
32
+ /** Animation progress shared value (0=idle, 1=open, 2=close) */
33
+ progress: SharedValue<number>;
34
+ /** Dragging state shared value */
35
+ isDragging: SharedValue<boolean>;
36
+ /** Gesture release animation running state shared value */
37
+ isGestureReleaseAnimationRunning: SharedValue<boolean>;
38
+ }
39
+
40
+ /**
41
+ * Ref type for the Select Trigger component
42
+ */
43
+ export type SelectTriggerRef = SelectPrimitivesTypes.TriggerRef;
44
+
45
+ /**
46
+ * Select placement options
47
+ */
48
+ export type SelectPlacement = 'top' | 'bottom' | 'left' | 'right';
49
+
50
+ /**
51
+ * Select alignment options
52
+ */
53
+ export type SelectAlign = 'start' | 'center' | 'end';
54
+
55
+ /**
56
+ * Select Root component props.
57
+ * Generic on `M extends SelectionMode` — inherits value/onChange typing from the primitive.
58
+ */
59
+ export type SelectRootProps<
60
+ M extends SelectPrimitivesTypes.SelectionMode = 'single',
61
+ > = SelectPrimitivesTypes.RootProps<M> & {
62
+ /**
63
+ * The content of the select
64
+ */
65
+ children?: ReactNode;
66
+ /**
67
+ * Additional CSS classes for the select root
68
+ */
69
+ className?: string;
70
+ /**
71
+ * The controlled open state of the select
72
+ */
73
+ isOpen?: boolean;
74
+ /**
75
+ * The open state of the select when initially rendered (uncontrolled)
76
+ */
77
+ isDefaultOpen?: boolean;
78
+ /**
79
+ * Animation configuration for select root
80
+ * - `"disable-all"`: Disable all animations including children
81
+ * - `false` or `"disabled"`: Disable only root animations
82
+ * - `true` or `undefined`: Use default animations
83
+ */
84
+ animation?: AnimationRootDisableAll;
85
+ };
86
+
87
+ /**
88
+ * Select Trigger component props
89
+ */
90
+ export interface SelectTriggerProps extends SelectPrimitivesTypes.TriggerProps {
91
+ /**
92
+ * The variant of the trigger
93
+ * @default 'default'
94
+ */
95
+ variant?: 'default' | 'unstyled';
96
+ /**
97
+ * The trigger element content
98
+ */
99
+ children?: ReactNode;
100
+ /**
101
+ * Additional CSS class for the trigger
102
+ */
103
+ className?: string;
104
+ }
105
+
106
+ /**
107
+ * Icon props for the Select.TriggerIndicator component
108
+ */
109
+ export interface SelectTriggerIndicatorIconProps {
110
+ /**
111
+ * Size of the icon
112
+ * @default 16
113
+ */
114
+ size?: number;
115
+ /**
116
+ * Color of the icon
117
+ * @default foreground
118
+ */
119
+ color?: string;
120
+ }
121
+
122
+ /**
123
+ * Animation configuration for select trigger indicator component
124
+ */
125
+ export type SelectTriggerIndicatorAnimation = Animation<{
126
+ rotation?: AnimationValue<{
127
+ /**
128
+ * Rotation values [closed, open] in degrees
129
+ * @default [0, -180]
130
+ */
131
+ value?: [number, number];
132
+ /**
133
+ * Spring animation configuration for rotation
134
+ * @default { damping: 140, stiffness: 1000, mass: 4 }
135
+ */
136
+ springConfig?: WithSpringConfig;
137
+ }>;
138
+ }>;
139
+
140
+ /**
141
+ * Props for the Select.TriggerIndicator component
142
+ */
143
+ export interface SelectTriggerIndicatorProps
144
+ extends AnimatedProps<SelectPrimitivesTypes.TriggerIndicatorProps> {
145
+ /**
146
+ * Custom trigger indicator content, if not provided defaults to animated chevron
147
+ */
148
+ children?: ReactNode;
149
+ /**
150
+ * Additional CSS classes
151
+ *
152
+ * @note The following style properties are occupied by animations and cannot be set via className:
153
+ * - `transform` (specifically `rotate`) - Animated for open/close rotation transitions
154
+ *
155
+ * To customize this property, use the `animation` prop:
156
+ * ```tsx
157
+ * <Select.TriggerIndicator
158
+ * animation={{
159
+ * rotation: { value: [0, -180], springConfig: { damping: 140, stiffness: 1000, mass: 4 } }
160
+ * }}
161
+ * />
162
+ * ```
163
+ *
164
+ * To completely disable animated styles and use your own via className or style prop, set `isAnimatedStyleActive={false}`.
165
+ */
166
+ className?: string;
167
+ /**
168
+ * Custom styles for the trigger indicator
169
+ */
170
+ style?: ViewStyle;
171
+ /**
172
+ * Icon configuration
173
+ */
174
+ iconProps?: SelectTriggerIndicatorIconProps;
175
+ /**
176
+ * Animation configuration for trigger indicator
177
+ * - `false` or `"disabled"`: Disable all animations
178
+ * - `true` or `undefined`: Use default animations
179
+ * - `object`: Custom animation configuration
180
+ */
181
+ animation?: SelectTriggerIndicatorAnimation;
182
+ /**
183
+ * Whether animated styles (react-native-reanimated) are active
184
+ * When `false`, the animated style is removed and you can implement custom logic
185
+ * This prop should only be used when you want to write custom styling logic instead of the default animated styles
186
+ * @default true
187
+ */
188
+ isAnimatedStyleActive?: boolean;
189
+ }
190
+
191
+ /**
192
+ * Select Portal component props
193
+ */
194
+ export interface SelectPortalProps extends SelectPrimitivesTypes.PortalProps {
195
+ /**
196
+ * When true, uses a regular View instead of FullWindowOverlay on iOS.
197
+ * Enables React Native element inspector but overlay won't appear above native modals.
198
+ * @default false
199
+ */
200
+ disableFullWindowOverlay?: boolean;
201
+ /**
202
+ * Additional CSS class for the portal container
203
+ */
204
+ className?: string;
205
+ /**
206
+ * The portal content
207
+ */
208
+ children: ReactNode;
209
+ }
210
+
211
+ /**
212
+ * Animation configuration for Select Overlay component
213
+ */
214
+ export type SelectOverlayAnimation = PopupOverlayAnimation;
215
+
216
+ /**
217
+ * Select Overlay component props
218
+ */
219
+ export interface SelectOverlayProps extends SelectPrimitivesTypes.OverlayProps {
220
+ /**
221
+ * Additional CSS class for the overlay
222
+ */
223
+ className?: string;
224
+ /**
225
+ * Animation configuration for overlay
226
+ * - `false` or `"disabled"`: Disable all animations
227
+ * - `true` or `undefined`: Use default animations (progress-based opacity for bottom-sheet/dialog, Keyframe animations for popover)
228
+ * - `object`: Custom animation configuration
229
+ * - For bottom-sheet/dialog: `opacity` with progress-based values
230
+ * - For popover: `entering` and/or `exiting` Keyframe animations
231
+ */
232
+ animation?: SelectOverlayAnimation;
233
+ /**
234
+ * Whether animated styles (react-native-reanimated) are active
235
+ * When `false`, the animated style is removed and you can implement custom logic
236
+ * This prop should only be used when you want to write custom styling logic instead of the default animated styles
237
+ * @default true
238
+ */
239
+ isAnimatedStyleActive?: boolean;
240
+ }
241
+
242
+ /**
243
+ * Animation configuration for Select Content Popover component
244
+ * Reuses PopupPopoverContentAnimation since they share the same animation behavior
245
+ */
246
+ export type SelectContentPopoverAnimation = PopupPopoverContentAnimation;
247
+
248
+ /**
249
+ * Select Content props for 'popover' presentation
250
+ */
251
+ export interface SelectContentPopoverProps
252
+ extends SelectPrimitivesTypes.PopoverContentProps {
253
+ /**
254
+ * Additional CSS class for the content container
255
+ */
256
+ className?: string;
257
+ /**
258
+ * The select content
259
+ */
260
+ children?: ReactNode;
261
+ /**
262
+ * Presentation mode for the select
263
+ */
264
+ presentation: 'popover';
265
+ /**
266
+ * Animation configuration for content
267
+ * - `false` or `"disabled"`: Disable all animations
268
+ * - `true` or `undefined`: Use default Keyframe animations (translateY/translateX, scale, opacity based on placement)
269
+ * - `object`: Custom animation configuration with `entering` and/or `exiting` Keyframe animations
270
+ */
271
+ animation?: SelectContentPopoverAnimation;
272
+ }
273
+
274
+ /**
275
+ * Select Content props for 'bottom-sheet' presentation
276
+ */
277
+ export interface SelectContentBottomSheetProps
278
+ extends Partial<React.ComponentProps<typeof BottomSheet>>,
279
+ BaseBottomSheetContentProps {
280
+ /**
281
+ * Presentation mode for the select
282
+ */
283
+ presentation: 'bottom-sheet';
284
+ }
285
+
286
+ /**
287
+ * Animation configuration for Select Content component (dialog presentation)
288
+ * Reuses PopupDialogContentAnimation since they share the same animation behavior
289
+ */
290
+ export type SelectContentAnimation = PopupDialogContentAnimation;
291
+
292
+ /**
293
+ * Select Content props for 'dialog' presentation
294
+ */
295
+ export interface SelectContentDialogProps
296
+ extends SelectPrimitivesTypes.DialogContentProps {
297
+ /**
298
+ * Additional CSS classes for the content container
299
+ */
300
+ classNames?: ElementSlots<DialogContentFallbackSlots>;
301
+ /**
302
+ * Styles for different parts of the dialog content
303
+ */
304
+ styles?: Partial<Record<DialogContentFallbackSlots, ViewStyle>>;
305
+ /**
306
+ * The select content
307
+ */
308
+ children?: ReactNode;
309
+ /**
310
+ * Presentation mode for the select
311
+ */
312
+ presentation: 'dialog';
313
+ /**
314
+ * Animation configuration for content
315
+ * - `false` or `"disabled"`: Disable all animations
316
+ * - `true` or `undefined`: Use default Keyframe animations (scale and opacity transitions)
317
+ * - `object`: Custom animation configuration with `entering` and/or `exiting` Keyframe animations
318
+ */
319
+ animation?: SelectContentAnimation;
320
+ /**
321
+ * Whether the dialog content can be swiped to dismiss
322
+ * @default true
323
+ */
324
+ isSwipeable?: boolean;
325
+ }
326
+
327
+ /**
328
+ * Select Content component props
329
+ */
330
+ export type SelectContentProps =
331
+ | SelectContentPopoverProps
332
+ | SelectContentBottomSheetProps
333
+ | SelectContentDialogProps;
334
+
335
+ /**
336
+ * Select Close component props
337
+ *
338
+ * Extends CloseButtonProps, allowing full override of all close button props.
339
+ * Automatically handles select close functionality when pressed.
340
+ */
341
+ export type SelectCloseProps = CloseButtonProps;
342
+
343
+ /**
344
+ * Select Value component props
345
+ */
346
+ export interface SelectValueProps extends SelectPrimitivesTypes.ValueProps {
347
+ /**
348
+ * Additional CSS class for the value
349
+ */
350
+ className?: string;
351
+ }
352
+
353
+ /**
354
+ * Select List Label component props
355
+ */
356
+ export interface SelectListLabelProps extends TextProps {
357
+ /**
358
+ * Additional CSS class for the list label
359
+ */
360
+ className?: string;
361
+ }
362
+
363
+ /**
364
+ * Render function props for SelectItem children
365
+ */
366
+ export interface SelectItemRenderProps {
367
+ /** Whether this item is currently selected */
368
+ isSelected: boolean;
369
+ /** The value of the item */
370
+ value: string;
371
+ /** Whether the item is disabled */
372
+ isDisabled: boolean;
373
+ }
374
+
375
+ /**
376
+ * Select Item component props
377
+ */
378
+ export interface SelectItemProps
379
+ extends Omit<SelectPrimitivesTypes.ItemProps, 'children'> {
380
+ /**
381
+ * Additional CSS class for the item
382
+ */
383
+ className?: string;
384
+ /**
385
+ * Child elements to render inside the item, or a render function
386
+ */
387
+ children?: ReactNode | ((props: SelectItemRenderProps) => ReactNode);
388
+ }
389
+
390
+ /**
391
+ * Select Item Label component props
392
+ */
393
+ export interface SelectItemLabelProps extends Omit<TextProps, 'children'> {
394
+ /**
395
+ * Additional CSS class for the item label
396
+ */
397
+ className?: string;
398
+ }
399
+
400
+ /**
401
+ * Select Item Description component props
402
+ */
403
+ export interface SelectItemDescriptionProps extends TextProps {
404
+ /**
405
+ * Additional CSS class for the item description
406
+ */
407
+ className?: string;
408
+ }
409
+
410
+ /**
411
+ * Select Item Indicator Icon props
412
+ */
413
+ export interface SelectItemIndicatorIconProps {
414
+ /**
415
+ * Size of the check icon
416
+ * @default 16
417
+ */
418
+ size?: number;
419
+ /**
420
+ * Color of the check icon
421
+ */
422
+ color?: string;
423
+ }
424
+
425
+ /**
426
+ * Select Item Indicator component props
427
+ */
428
+ export interface SelectItemIndicatorProps
429
+ extends SelectPrimitivesTypes.ItemIndicatorProps {
430
+ /**
431
+ * Additional CSS class for the item indicator
432
+ */
433
+ className?: string;
434
+ /**
435
+ * Check icon props
436
+ */
437
+ iconProps?: SelectItemIndicatorIconProps;
438
+ }
@@ -0,0 +1,7 @@
1
+ export { default as Separator } from './separator';
2
+ export { separatorClassNames } from './separator.styles';
3
+ export type {
4
+ SeparatorOrientation,
5
+ SeparatorProps,
6
+ SeparatorVariant,
7
+ } from './separator.types';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Display name for the Separator component
3
+ */
4
+ export const DISPLAY_NAME = {
5
+ ROOT: 'HeroUINative.Separator.Root',
6
+ } as const;
@@ -0,0 +1,106 @@
1
+ # Separator
2
+
3
+ A simple line to separate content visually.
4
+
5
+ ## Import
6
+
7
+ ```tsx
8
+ import { Separator } from '@/heroui';
9
+ ```
10
+
11
+ ## Anatomy
12
+
13
+ ```tsx
14
+ <Separator />
15
+ ```
16
+
17
+ - **Separator**: A simple line component that separates content visually. Can be oriented horizontally or vertically, with customizable thickness and variant styles.
18
+
19
+ ## Usage
20
+
21
+ ### Basic Usage
22
+
23
+ The Separator component creates a visual separation between content sections.
24
+
25
+ ```tsx
26
+ <Separator />
27
+ ```
28
+
29
+ ### Orientation
30
+
31
+ Control the direction of the separator with the `orientation` prop.
32
+
33
+ ```tsx
34
+ <View>
35
+ <Text>Horizontal separator</Text>
36
+ <Separator orientation="horizontal" />
37
+ <Text>Content below</Text>
38
+ </View>
39
+
40
+ <View className="h-24 flex-row">
41
+ <Text>Left</Text>
42
+ <Separator orientation="vertical" />
43
+ <Text>Right</Text>
44
+ </View>
45
+ ```
46
+
47
+ ### Variants
48
+
49
+ Choose between thin and thick variants for different visual emphasis.
50
+
51
+ ```tsx
52
+ <Separator variant="thin" />
53
+ <Separator variant="thick" />
54
+ ```
55
+
56
+ ### Custom Thickness
57
+
58
+ Set a specific thickness value for precise control.
59
+
60
+ ```tsx
61
+ <Separator thickness={1} />
62
+ <Separator thickness={5} />
63
+ <Separator thickness={10} />
64
+ ```
65
+
66
+ ## Example
67
+
68
+ ```tsx
69
+ import { Separator, Surface } from '@/heroui';
70
+ import { Text, View } from 'react-native';
71
+
72
+ export default function SeparatorExample() {
73
+ return (
74
+ <Surface variant="secondary" className="px-6 py-7">
75
+ <Text className="text-base font-medium text-foreground">
76
+ HeroUI Native
77
+ </Text>
78
+ <Text className="text-sm text-muted">
79
+ A modern React Native component library.
80
+ </Text>
81
+ <Separator className="my-4" />
82
+ <View className="flex-row items-center h-5">
83
+ <Text className="text-sm text-foreground">Components</Text>
84
+ <Separator orientation="vertical" className="mx-3" />
85
+ <Text className="text-sm text-foreground">Themes</Text>
86
+ <Separator orientation="vertical" className="mx-3" />
87
+ <Text className="text-sm text-foreground">Examples</Text>
88
+ </View>
89
+ </Surface>
90
+ );
91
+ }
92
+ ```
93
+
94
+ You can find more examples in the [GitHub repository](<https://github.com/heroui-inc/heroui-native/blob/rc/example/src/app/(home)/components/separator.tsx>).
95
+
96
+ ## API Reference
97
+
98
+ ### Separator
99
+
100
+ | prop | type | default | description |
101
+ | -------------- | ---------------------------- | -------------- | -------------------------------------------------------------------------------------------- |
102
+ | `variant` | `'thin' \| 'thick'` | `'thin'` | Variant style of the separator |
103
+ | `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Orientation of the separator |
104
+ | `thickness` | `number` | `undefined` | Custom thickness in pixels. Controls height for horizontal or width for vertical orientation |
105
+ | `className` | `string` | `undefined` | Additional CSS classes to apply |
106
+ | `...ViewProps` | `ViewProps` | - | All standard React Native View props are supported |
@@ -0,0 +1,50 @@
1
+ import { tv } from 'tailwind-variants';
2
+ import { combineStyles } from '../../helpers/internal/utils';
3
+
4
+ const root = tv({
5
+ base: 'bg-separator',
6
+ variants: {
7
+ variant: {
8
+ thin: '',
9
+ thick: '',
10
+ },
11
+ orientation: {
12
+ horizontal: '',
13
+ vertical: 'h-full',
14
+ },
15
+ },
16
+ compoundVariants: [
17
+ // Thin variant - horizontal orientation
18
+ {
19
+ variant: 'thin',
20
+ orientation: 'horizontal',
21
+ className: 'h-hairline',
22
+ },
23
+ // Thin variant - vertical orientation
24
+ {
25
+ variant: 'thin',
26
+ orientation: 'vertical',
27
+ className: 'w-hairline',
28
+ },
29
+ // Thick variant - horizontal orientation
30
+ {
31
+ variant: 'thick',
32
+ orientation: 'horizontal',
33
+ className: `h-[6px]`,
34
+ },
35
+ // Thick variant - vertical orientation
36
+ {
37
+ variant: 'thick',
38
+ orientation: 'vertical',
39
+ className: `w-[6px]`,
40
+ },
41
+ ],
42
+ defaultVariants: {
43
+ variant: 'thin',
44
+ orientation: 'horizontal',
45
+ },
46
+ });
47
+
48
+ export const separatorClassNames = combineStyles({
49
+ root,
50
+ });
@@ -0,0 +1,62 @@
1
+ import { forwardRef } from 'react';
2
+ import { View } from 'react-native';
3
+ import { DISPLAY_NAME } from './separator.constants';
4
+ import { separatorClassNames } from './separator.styles';
5
+ import type { SeparatorProps } from './separator.types';
6
+
7
+ // --------------------------------------------------
8
+
9
+ const SeparatorRoot = forwardRef<View, SeparatorProps>((props, ref) => {
10
+ const {
11
+ variant = 'thin',
12
+ orientation = 'horizontal',
13
+ thickness,
14
+ className,
15
+ style,
16
+ ...restProps
17
+ } = props;
18
+
19
+ const rootClassName = separatorClassNames.root({
20
+ variant,
21
+ orientation,
22
+ className,
23
+ });
24
+
25
+ /**
26
+ * Custom thickness handling: when thickness prop is provided,
27
+ * override the variant-based thickness with inline styles
28
+ */
29
+ const customThicknessStyle =
30
+ thickness !== undefined
31
+ ? orientation === 'horizontal'
32
+ ? { height: thickness }
33
+ : { width: thickness }
34
+ : undefined;
35
+
36
+ return (
37
+ <View
38
+ ref={ref}
39
+ className={rootClassName}
40
+ style={customThicknessStyle ? [customThicknessStyle, style] : style}
41
+ {...restProps}
42
+ />
43
+ );
44
+ });
45
+
46
+ // --------------------------------------------------
47
+
48
+ SeparatorRoot.displayName = DISPLAY_NAME.ROOT;
49
+
50
+ /**
51
+ * Separator component for visual separation
52
+ *
53
+ * @component Separator - A simple line to separate content visually.
54
+ * Supports horizontal and vertical orientations with thin and thick variants.
55
+ * Uses hairline width utility classes for the thin variant by default.
56
+ * Custom thickness can be provided via the thickness prop to override variant-based sizing.
57
+ *
58
+ * @see Full documentation: https://v3.heroui.com/docs/native/components/separator
59
+ */
60
+ const Separator = SeparatorRoot;
61
+
62
+ export default Separator;
@@ -0,0 +1,40 @@
1
+ import type { ViewProps } from 'react-native';
2
+
3
+ /**
4
+ * Orientation of the separator
5
+ * @default 'horizontal'
6
+ */
7
+ export type SeparatorOrientation = 'horizontal' | 'vertical';
8
+
9
+ /**
10
+ * Variant style of the separator
11
+ * @default 'thin'
12
+ */
13
+ export type SeparatorVariant = 'thin' | 'thick';
14
+
15
+ /**
16
+ * Props for the Separator component
17
+ */
18
+ export interface SeparatorProps extends ViewProps {
19
+ /**
20
+ * Variant style of the separator
21
+ * @default 'thin'
22
+ */
23
+ variant?: SeparatorVariant;
24
+
25
+ /**
26
+ * Orientation of the separator
27
+ * @default 'horizontal'
28
+ */
29
+ orientation?: SeparatorOrientation;
30
+
31
+ /**
32
+ * Custom thickness of the separator. This controls the height (for horizontal) or width (for vertical) of the separator.
33
+ */
34
+ thickness?: number;
35
+
36
+ /**
37
+ * Additional CSS classes to apply to the separator
38
+ */
39
+ className?: string;
40
+ }