@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,320 @@
1
+ import type {
2
+ EntryOrExitLayoutType,
3
+ WithTimingConfig,
4
+ } from 'react-native-reanimated';
5
+ import type {
6
+ AnimationRoot,
7
+ AnimationValue,
8
+ ViewRef,
9
+ } from '../../helpers/internal/types';
10
+ import type * as ToastPrimitive from '../../primitives/toast';
11
+ import type {
12
+ ToastComponentProps,
13
+ ToastShowOptions,
14
+ } from '../../providers/toast';
15
+ import type { ButtonRootProps } from '../button';
16
+ import type { ButtonRootPropsScaleHighlight } from '../button/button.types';
17
+
18
+ /**
19
+ * Toast variant types
20
+ */
21
+ export type ToastVariant =
22
+ | 'default'
23
+ | 'accent'
24
+ | 'success'
25
+ | 'warning'
26
+ | 'danger';
27
+
28
+ /**
29
+ * Toast placement types
30
+ */
31
+ export type ToastPlacement = 'top' | 'bottom';
32
+
33
+ /**
34
+ * Animation configuration for toast root component
35
+ */
36
+ export type ToastRootAnimation = AnimationRoot<{
37
+ opacity?: AnimationValue<{
38
+ /**
39
+ * Opacity interpolation values [start, end]
40
+ * Controls how fast toast items fade out as they move beyond the visible stack limits.
41
+ * When toasts are pushed out of view (beyond the last few visible items), their opacity
42
+ * gradually decreases to create a smooth disappearing effect.
43
+ * - First value: fully visible opacity (1) for items within visible stack
44
+ * - Second value: hidden opacity (0) for items pushed out of view
45
+ * @default [1, 0]
46
+ */
47
+ value?: [number, number];
48
+ /**
49
+ * Animation timing configuration
50
+ * @default { duration: 300 }
51
+ */
52
+ timingConfig?: WithTimingConfig;
53
+ }>;
54
+ translateY?: AnimationValue<{
55
+ /**
56
+ * Translate Y interpolation values [start, end]
57
+ * Controls how much of a toast item is visible when it's positioned behind the last visible toast.
58
+ * This creates a "peek" effect where stacked toasts are slightly offset vertically,
59
+ * allowing users to see a portion of the toast behind the current one.
60
+ * - First value: no offset (0) for the last/active toast
61
+ * - Second value: vertical offset in pixels (10) for toasts behind the last one
62
+ * Note: The offset direction is automatically adjusted based on placement (top/bottom)
63
+ * @default [0, 10] (multiplied by placement sign)
64
+ */
65
+ value?: [number, number];
66
+ /**
67
+ * Animation timing configuration
68
+ * @default { duration: 300 }
69
+ */
70
+ timingConfig?: WithTimingConfig;
71
+ }>;
72
+ scale?: AnimationValue<{
73
+ /**
74
+ * Scale interpolation values [start, end]
75
+ * Controls the size scaling of toast items in the stack.
76
+ * Toasts behind the active one are slightly scaled down to create depth and visual hierarchy.
77
+ * - First value: normal scale (1) for the active/last toast
78
+ * - Second value: scaled down value (0.97) for toasts positioned behind
79
+ * @default [1, 0.97]
80
+ */
81
+ value?: [number, number];
82
+ /**
83
+ * Animation timing configuration
84
+ * @default { duration: 300 }
85
+ */
86
+ timingConfig?: WithTimingConfig;
87
+ }>;
88
+ entering?: AnimationValue<{
89
+ /**
90
+ * Custom entering animation for top placement
91
+ * @default FadeInUp.springify().withInitialValues({ opacity: 1, transform: [{ translateY: -100 }] }).mass(3)
92
+ */
93
+ top?: EntryOrExitLayoutType;
94
+ /**
95
+ * Custom entering animation for bottom placement
96
+ * @default FadeInDown.springify().withInitialValues({ opacity: 1, transform: [{ translateY: 100 }] }).mass(3)
97
+ */
98
+ bottom?: EntryOrExitLayoutType;
99
+ }>;
100
+ exiting?: AnimationValue<{
101
+ /**
102
+ * Custom exiting animation for top placement
103
+ * @default Keyframe animation with translateY: -100, scale: 0.97, opacity: 0.5
104
+ */
105
+ top?: EntryOrExitLayoutType;
106
+ /**
107
+ * Custom exiting animation for bottom placement
108
+ * @default Keyframe animation with translateY: 100, scale: 0.97, opacity: 0.5
109
+ */
110
+ bottom?: EntryOrExitLayoutType;
111
+ }>;
112
+ }>;
113
+
114
+ /**
115
+ * Props for the Toast.Root component
116
+ */
117
+ export interface ToastRootProps
118
+ extends ToastPrimitive.RootProps,
119
+ Omit<ToastComponentProps, 'id'> {
120
+ /**
121
+ * Visual variant of the toast
122
+ * @default 'default'
123
+ */
124
+ variant?: ToastVariant;
125
+ /**
126
+ * Placement of the toast
127
+ * @default 'top'
128
+ */
129
+ placement?: ToastPlacement;
130
+ /**
131
+ * Additional CSS class for the toast container
132
+ *
133
+ * @note The following style properties are occupied by animations and cannot be set via className:
134
+ * - `opacity` - Animated for visibility transitions when toasts are pushed beyond visible stack limits
135
+ * - `transform` (translateY) - Animated for vertical position transitions when toasts are stacked, and for swipe-to-dismiss gestures
136
+ * - `transform` (scale) - Animated for size scaling transitions when toasts are stacked (toasts behind active one are scaled down)
137
+ * - `height` - Animated for height transitions when toast content changes
138
+ *
139
+ * To customize these properties, use the `animation` prop:
140
+ * ```tsx
141
+ * <Toast.Root
142
+ * animation={{
143
+ * opacity: {
144
+ * value: [1, 0],
145
+ * timingConfig: { duration: 300 }
146
+ * },
147
+ * translateY: {
148
+ * value: [0, 10],
149
+ * timingConfig: { duration: 300 }
150
+ * },
151
+ * scale: {
152
+ * value: [1, 0.97],
153
+ * timingConfig: { duration: 300 }
154
+ * }
155
+ * }}
156
+ * />
157
+ * ```
158
+ *
159
+ * To completely disable animated styles and use your own via className or style prop, set `isAnimatedStyleActive={false}`.
160
+ */
161
+ className?: string;
162
+ /**
163
+ * Animation configuration for toast
164
+ * - `false` or `"disabled"`: Disable only root animations
165
+ * - `"disable-all"`: Disable all animations including children
166
+ * - `true` or `undefined`: Use default animations
167
+ * - `object`: Custom animation configuration
168
+ */
169
+ animation?: ToastRootAnimation;
170
+ /**
171
+ * Whether the toast can be swiped to dismiss and dragged with rubber effect
172
+ * @default true
173
+ */
174
+ isSwipeable?: boolean;
175
+ /**
176
+ * Whether animated styles (react-native-reanimated) are active
177
+ * When `false`, the animated style is removed and you can implement custom logic
178
+ * This prop should only be used when you want to write custom styling logic instead of the default animated styles
179
+ * @default true
180
+ */
181
+ isAnimatedStyleActive?: boolean;
182
+ }
183
+
184
+ /**
185
+ * Props for the Toast.Title component
186
+ */
187
+ export interface ToastTitleProps extends ToastPrimitive.TitleProps {
188
+ /**
189
+ * Content to be rendered as title
190
+ */
191
+ children?: React.ReactNode;
192
+ /**
193
+ * Additional CSS class for the title
194
+ */
195
+ className?: string;
196
+ }
197
+
198
+ /**
199
+ * Props for the Toast.Description component
200
+ */
201
+ export interface ToastDescriptionProps extends ToastPrimitive.DescriptionProps {
202
+ /**
203
+ * Content to be rendered as description
204
+ */
205
+ children?: React.ReactNode;
206
+ /**
207
+ * Additional CSS class for the description
208
+ */
209
+ className?: string;
210
+ }
211
+
212
+ /**
213
+ * Props for the Toast.Action component
214
+ */
215
+ export type ToastActionProps = Omit<
216
+ ButtonRootPropsScaleHighlight,
217
+ 'feedbackVariant'
218
+ >;
219
+
220
+ /**
221
+ * Props for the Toast.Close component
222
+ */
223
+ export type ToastCloseProps = ButtonRootProps & {
224
+ /**
225
+ * Custom icon props for the close button icon
226
+ */
227
+ iconProps?: {
228
+ size?: number;
229
+ color?: string;
230
+ };
231
+ };
232
+
233
+ /**
234
+ * Context values shared between Toast components
235
+ */
236
+ export interface ToastContextValue {
237
+ /**
238
+ * Visual variant of the toast
239
+ */
240
+ variant: ToastVariant;
241
+ /**
242
+ * Function to hide the toast
243
+ */
244
+ hide?: (ids?: string | string[] | 'all') => void;
245
+ /**
246
+ * ID of the toast
247
+ */
248
+ id?: string;
249
+ }
250
+
251
+ /**
252
+ * Ref type for the Toast.Root component
253
+ */
254
+ export type ToastRootRef = ViewRef;
255
+
256
+ /**
257
+ * Props for useToastRootAnimation hook
258
+ * Picks required properties from ToastRootProps and adds id from ToastComponentProps
259
+ */
260
+ export type UseToastRootAnimationOptions = Pick<
261
+ ToastRootProps,
262
+ | 'animation'
263
+ | 'index'
264
+ | 'total'
265
+ | 'heights'
266
+ | 'placement'
267
+ | 'hide'
268
+ | 'isSwipeable'
269
+ | 'maxVisibleToasts'
270
+ > &
271
+ Pick<ToastComponentProps, 'id'>;
272
+
273
+ /**
274
+ * Props for the DefaultToast component
275
+ * Used internally when showing toasts with string or config object (without component)
276
+ */
277
+ export interface DefaultToastProps extends ToastComponentProps {
278
+ /**
279
+ * Visual variant of the toast
280
+ * @default 'default'
281
+ */
282
+ variant?: ToastRootProps['variant'];
283
+ /**
284
+ * Placement of the toast
285
+ * @default 'top'
286
+ */
287
+ placement?: ToastRootProps['placement'];
288
+ /**
289
+ * Animation configuration for toast
290
+ */
291
+ animation?: ToastRootProps['animation'];
292
+ /**
293
+ * Whether the toast can be swiped to dismiss and dragged with rubber effect
294
+ */
295
+ isSwipeable?: ToastRootProps['isSwipeable'];
296
+ /**
297
+ * Label text for the toast
298
+ */
299
+ label?: string;
300
+ /**
301
+ * Description text for the toast
302
+ */
303
+ description?: string;
304
+ /**
305
+ * Action button label text
306
+ */
307
+ actionLabel?: string;
308
+ /**
309
+ * Callback function called when the action button is pressed
310
+ * Receives show and hide functions for programmatic toast control
311
+ */
312
+ onActionPress?: (helpers: {
313
+ show: (options: string | ToastShowOptions) => string;
314
+ hide: (ids?: string | string[] | 'all') => void;
315
+ }) => void;
316
+ /**
317
+ * Icon element to display in the toast
318
+ */
319
+ icon?: React.ReactNode;
320
+ }
@@ -0,0 +1,47 @@
1
+ # HeroUI Native Documentation
2
+
3
+ > Documentation for HeroUI Native component library.
4
+
5
+ HeroUI Native is a component library built on [Tailwind v4](https://tailwindcss.com/) via [Uniwind](https://uniwind.dev/) and modern mobile development technologies. Every component comes with smooth animations, polished details, and built-in accessibility—ready to use, fully customizable.
6
+
7
+ ## Documentation Index
8
+
9
+ ### Components
10
+
11
+ - [Button](./components/button/button.md): Interactive component that triggers an action when pressed.
12
+ - [CloseButton](./components/close-button/close-button.md): Button component for closing dialogs, modals, or dismissing content.
13
+ - [Menu](./components/menu/menu.md): A floating context menu with positioning, selection groups, and multiple presentation modes.
14
+ - [TagGroup](./components/tag-group/tag-group.md): A compound component for displaying and managing selectable tags with optional removal.
15
+ - [Slider](./components/slider/slider.md): A draggable input for selecting a value or range within a bounded interval.
16
+ - [Switch](./components/switch/switch.md): A toggle control that allows users to switch between on and off states.
17
+ - [Chip](./components/chip/chip.md): Displays a compact element in a capsule shape.
18
+ - [Alert](./components/alert/alert.md): Displays important messages and notifications to users with status indicators.
19
+ - [SkeletonGroup](./components/skeleton-group/skeleton-group.md): Coordinates multiple skeleton loading placeholders with centralized animation control.
20
+ - [Skeleton](./components/skeleton/skeleton.md): Displays a loading placeholder with shimmer or pulse animation effects.
21
+ - [Spinner](./components/spinner/spinner.md): Displays an animated loading indicator.
22
+ - [Checkbox](./components/checkbox/checkbox.md): A selectable control that allows users to toggle between checked and unchecked states.
23
+ - [ControlField](./components/control-field/control-field.md): A field component that combines a label, description (or other content), and a control component (Switch or Checkbox) into a single pressable area.
24
+ - [Description](./components/description/description.md): Text component for providing accessible descriptions and helper text for form fields and other UI elements.
25
+ - [FieldError](./components/field-error/field-error.md): Displays validation error message content with smooth animations.
26
+ - [InputGroup](./components/input-group/input-group.md): A compound layout component that groups an input with optional prefix and suffix decorators.
27
+ - [InputOTP](./components/input-otp/input-otp.md): Input component for entering one-time passwords (OTP) with individual character slots, animations, and validation support.
28
+ - [Input](./components/input/input.md): A text input component with styled border and background for collecting user input.
29
+ - [Label](./components/label/label.md): Text component for labeling form fields and other UI elements with support for required indicators and validation states.
30
+ - [RadioGroup](./components/radio-group/radio-group.md): A set of radio buttons where only one option can be selected at a time.
31
+ - [SearchField](./components/search-field/search-field.md): A compound search input for filtering and querying content.
32
+ - [Select](./components/select/select.md): Displays a list of options for the user to pick from — triggered by a button.
33
+ - [TextArea](./components/text-area/text-area.md): A multiline text input component with styled border and background for collecting longer user input.
34
+ - [TextField](./components/text-field/text-field.md): A text input component with label, description, and error handling for collecting user input.
35
+ - [Card](./components/card/card.md): Displays a card container with flexible layout sections for structured content.
36
+ - [Separator](./components/separator/separator.md): A simple line to separate content visually.
37
+ - [Surface](./components/surface/surface.md): Container component that provides elevation and background styling.
38
+ - [Avatar](./components/avatar/avatar.md): Displays a user avatar with support for images, text initials, or fallback icons.
39
+ - [Accordion](./components/accordion/accordion.md): A collapsible content panel for organizing information in a compact space
40
+ - [ListGroup](./components/list-group/list-group.md): A Surface-based container that groups related list items with consistent layout and spacing.
41
+ - [Tabs](./components/tabs/tabs.md): Organize content into tabbed views with animated transitions and indicators.
42
+ - [BottomSheet](./components/bottom-sheet/bottom-sheet.md): Displays a bottom sheet that slides up from the bottom with animated transitions and swipe-to-dismiss gestures.
43
+ - [Dialog](./components/dialog/dialog.md): Displays a modal overlay with animated transitions and gesture-based dismissal.
44
+ - [Popover](./components/popover/popover.md): Displays a floating content panel anchored to a trigger element with placement and alignment options.
45
+ - [Toast](./components/toast/toast.md): Displays temporary notification messages that appear at the top or bottom of the screen.
46
+ - [PressableFeedback](./components/pressable-feedback/pressable-feedback.md): Container component that provides visual feedback for press interactions with automatic scale animation.
47
+ - [ScrollShadow](./components/scroll-shadow/scroll-shadow.md): Adds dynamic gradient shadows to scrollable content based on scroll position and overflow.
@@ -0,0 +1,3 @@
1
+ export { useTextComponent } from '../../../providers/text-component/index';
2
+ export * from './use-is-on-surface';
3
+ export * from './use-theme-color';
@@ -0,0 +1,8 @@
1
+ import { useSurface } from '../../../components/surface';
2
+
3
+ export const useIsOnSurface = () => {
4
+ const surfaceContext = useSurface();
5
+ return surfaceContext?.variant && surfaceContext.variant !== 'transparent'
6
+ ? true
7
+ : false;
8
+ };
@@ -0,0 +1,137 @@
1
+ import { useCSSVariable } from 'uniwind';
2
+
3
+ /**
4
+ * Theme colors as const array for efficient mapping
5
+ * Ordered to match the order in src/styles/theme.css
6
+ */
7
+ const THEME_COLORS = [
8
+ 'background',
9
+ 'foreground',
10
+ 'surface',
11
+ 'surface-foreground',
12
+ 'surface-hover',
13
+ 'overlay',
14
+ 'overlay-foreground',
15
+ 'muted',
16
+ 'accent',
17
+ 'accent-foreground',
18
+ 'segment',
19
+ 'segment-foreground',
20
+ 'border',
21
+ 'separator',
22
+ 'focus',
23
+ 'link',
24
+ 'default',
25
+ 'default-foreground',
26
+ 'success',
27
+ 'success-foreground',
28
+ 'warning',
29
+ 'warning-foreground',
30
+ 'danger',
31
+ 'danger-foreground',
32
+ 'field',
33
+ 'field-foreground',
34
+ 'field-placeholder',
35
+ 'field-border',
36
+ 'background-secondary',
37
+ 'background-tertiary',
38
+ 'background-inverse',
39
+ 'default-hover',
40
+ 'accent-hover',
41
+ 'success-hover',
42
+ 'warning-hover',
43
+ 'danger-hover',
44
+ 'field-hover',
45
+ 'field-focus',
46
+ 'field-border-hover',
47
+ 'field-border-focus',
48
+ 'accent-soft',
49
+ 'accent-soft-foreground',
50
+ 'accent-soft-hover',
51
+ 'danger-soft',
52
+ 'danger-soft-foreground',
53
+ 'danger-soft-hover',
54
+ 'warning-soft',
55
+ 'warning-soft-foreground',
56
+ 'warning-soft-hover',
57
+ 'success-soft',
58
+ 'success-soft-foreground',
59
+ 'success-soft-hover',
60
+ 'surface-secondary',
61
+ 'surface-tertiary',
62
+ 'on-surface',
63
+ 'on-surface-foreground',
64
+ 'on-surface-hover',
65
+ 'on-surface-focus',
66
+ 'on-surface-secondary',
67
+ 'on-surface-secondary-foreground',
68
+ 'on-surface-secondary-hover',
69
+ 'on-surface-secondary-focus',
70
+ 'on-surface-tertiary',
71
+ 'on-surface-tertiary-foreground',
72
+ 'on-surface-tertiary-hover',
73
+ 'on-surface-tertiary-focus',
74
+ 'separator-secondary',
75
+ 'separator-tertiary',
76
+ 'border-secondary',
77
+ 'border-tertiary',
78
+ ] as const;
79
+
80
+ /**
81
+ * Theme colors type derived from THEME_COLORS array
82
+ */
83
+ export type ThemeColor = (typeof THEME_COLORS)[number];
84
+
85
+ /**
86
+ * Helper type to create a tuple of strings with the same length as the input array
87
+ */
88
+ type CreateStringTuple<
89
+ N extends number,
90
+ TAcc extends string[] = [],
91
+ > = TAcc['length'] extends N ? TAcc : CreateStringTuple<N, [...TAcc, string]>;
92
+
93
+ /**
94
+ * Hook to retrieve theme color values from CSS variables.
95
+ * Supports both single color and multiple colors for efficient batch retrieval.
96
+ *
97
+ * @param themeColor - Single theme color name or array of theme color names
98
+ * @returns Single color string or array of color strings
99
+ *
100
+ * @example
101
+ * // Single color
102
+ * const primaryColor = useThemeColor('accent');
103
+ *
104
+ * @example
105
+ * // Multiple colors (more efficient)
106
+ * const [primaryColor, backgroundColor] = useThemeColor(['accent', 'background']);
107
+ */
108
+ export function useThemeColor(themeColor: ThemeColor): string;
109
+ export function useThemeColor<T extends readonly [ThemeColor, ...ThemeColor[]]>(
110
+ themeColor: T
111
+ ): CreateStringTuple<T['length']>;
112
+ export function useThemeColor(themeColor: ThemeColor[]): string[];
113
+ export function useThemeColor(
114
+ themeColor: ThemeColor | ThemeColor[]
115
+ ): string | string[] {
116
+ const isArray = Array.isArray(themeColor);
117
+ const cssVariables = isArray
118
+ ? themeColor.map((color) => `--color-${color}`)
119
+ : [`--color-${themeColor}`];
120
+
121
+ const resolvedColors = useCSSVariable(cssVariables);
122
+
123
+ const processedColors: string[] = resolvedColors.map((color) => {
124
+ if (typeof color === 'string') {
125
+ return color;
126
+ }
127
+ if (typeof color === 'number') {
128
+ return String(color);
129
+ }
130
+ return 'invalid';
131
+ });
132
+
133
+ if (isArray) {
134
+ return processedColors;
135
+ }
136
+ return processedColors[0]!;
137
+ }
@@ -0,0 +1,12 @@
1
+ import { cnMerge, type CnOptions } from 'tailwind-variants';
2
+
3
+ export function cn(...args: CnOptions) {
4
+ return cnMerge(args)({
5
+ twMerge: true,
6
+ twMergeConfig: {
7
+ classGroups: {
8
+ opacity: [{ opacity: ['disabled'] }],
9
+ },
10
+ },
11
+ });
12
+ }