@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,86 @@
1
+ import type {
2
+ PressableRef,
3
+ SlottablePressableProps,
4
+ SlottableTextProps,
5
+ SlottableViewProps,
6
+ TextRef,
7
+ ViewRef,
8
+ } from '../../helpers/internal/types';
9
+
10
+ /**
11
+ * Context for the toast root component
12
+ */
13
+ type RootContext = {
14
+ /** Unique identifier for the toast */
15
+ nativeID: string;
16
+ };
17
+
18
+ /**
19
+ * Props for the toast root component
20
+ */
21
+ type RootProps = SlottableViewProps & {
22
+ /** Unique identifier for the toast */
23
+ id?: string | number;
24
+ };
25
+
26
+ /**
27
+ * Props for the toast title component
28
+ */
29
+ type TitleProps = SlottableTextProps;
30
+
31
+ /**
32
+ * Props for the toast description component
33
+ */
34
+ type DescriptionProps = SlottableTextProps;
35
+
36
+ /**
37
+ * Props for the toast action component
38
+ */
39
+ type ActionProps = SlottablePressableProps & {
40
+ /** Alternative label for the action button for accessibility */
41
+ altText?: string;
42
+ };
43
+
44
+ /**
45
+ * Props for the toast close button component
46
+ */
47
+ type CloseProps = SlottablePressableProps;
48
+
49
+ /**
50
+ * Ref type for the toast root
51
+ */
52
+ type RootRef = ViewRef;
53
+
54
+ /**
55
+ * Ref type for the toast title
56
+ */
57
+ type TitleRef = TextRef;
58
+
59
+ /**
60
+ * Ref type for the toast description
61
+ */
62
+ type DescriptionRef = TextRef;
63
+
64
+ /**
65
+ * Ref type for the toast action button
66
+ */
67
+ type ActionRef = PressableRef;
68
+
69
+ /**
70
+ * Ref type for the toast close button
71
+ */
72
+ type CloseRef = PressableRef;
73
+
74
+ export type {
75
+ ActionProps,
76
+ ActionRef,
77
+ CloseProps,
78
+ CloseRef,
79
+ DescriptionProps,
80
+ DescriptionRef,
81
+ RootContext,
82
+ RootProps,
83
+ RootRef,
84
+ TitleProps,
85
+ TitleRef,
86
+ };
@@ -0,0 +1,8 @@
1
+ export {
2
+ default as GlobalAnimationSettingsProvider,
3
+ useGlobalAnimationSettings,
4
+ } from './provider';
5
+ export type {
6
+ GlobalAnimationSettingsContextValue,
7
+ GlobalAnimationSettingsProviderProps,
8
+ } from './types';
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { useReducedMotion } from 'react-native-reanimated';
3
+ import { createContext } from '../../helpers/internal/utils';
4
+ import type {
5
+ GlobalAnimationSettingsContextValue,
6
+ GlobalAnimationSettingsProviderProps,
7
+ } from './types';
8
+
9
+ const [GlobalAnimationSettingsProvider, useGlobalAnimationSettings] =
10
+ createContext<GlobalAnimationSettingsContextValue>({
11
+ name: 'GlobalAnimationSettingsContext',
12
+ strict: false,
13
+ });
14
+
15
+ export { useGlobalAnimationSettings };
16
+
17
+ /**
18
+ * GlobalAnimationSettingsProvider Component
19
+ *
20
+ * @description
21
+ * Provider component that controls global animation settings across the application.
22
+ * When animation is set to 'disable-all', all animations will be disabled globally.
23
+ * Additionally, if the user has enabled reduce motion in accessibility settings,
24
+ * all animations will be disabled automatically.
25
+ *
26
+ * This provider wraps AnimationSettingsProvider to cascade the global setting
27
+ * down through the component tree.
28
+ *
29
+ * @param {GlobalAnimationSettingsProviderProps} props - Provider props
30
+ * @param {AnimationRootDisableAll} [props.animation] - Global animation setting
31
+ * @param {ReactNode} props.children - Child components to wrap
32
+ */
33
+ export const GlobalAnimationSettingsProviderComponent: React.FC<
34
+ GlobalAnimationSettingsProviderProps
35
+ > = ({ animation, children }) => {
36
+ const reducedMotion = useReducedMotion();
37
+ const globalIsAllAnimationsDisabled =
38
+ animation === 'disable-all' || reducedMotion;
39
+
40
+ return (
41
+ <GlobalAnimationSettingsProvider value={{ globalIsAllAnimationsDisabled }}>
42
+ {children}
43
+ </GlobalAnimationSettingsProvider>
44
+ );
45
+ };
46
+
47
+ export default GlobalAnimationSettingsProviderComponent;
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { AnimationRootDisableAll } from '../../helpers/internal/types/animation';
3
+
4
+ /**
5
+ * Props for GlobalAnimationSettingsProvider component
6
+ */
7
+ export interface GlobalAnimationSettingsProviderProps {
8
+ /**
9
+ * Global animation setting
10
+ * When set to 'disable-all', all animations across the app will be disabled
11
+ */
12
+ animation?: AnimationRootDisableAll;
13
+ /**
14
+ * Child components to render within the provider
15
+ */
16
+ children: ReactNode;
17
+ }
18
+
19
+ /**
20
+ * Context value for global animation settings
21
+ */
22
+ export interface GlobalAnimationSettingsContextValue {
23
+ /**
24
+ * Whether all animations should be disabled globally
25
+ */
26
+ globalIsAllAnimationsDisabled: boolean;
27
+ }
@@ -0,0 +1,2 @@
1
+ export { default as HeroUINativeProvider } from './provider';
2
+ export * from './types';
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import { SafeAreaListener } from 'react-native-safe-area-context';
3
+ import { Uniwind } from 'uniwind';
4
+ import { useDevInfo } from '../../helpers/internal/hooks';
5
+ import { PortalHost } from '../../primitives/portal';
6
+ import { GlobalAnimationSettingsProvider } from '../animation-settings';
7
+ import { TextComponentProvider } from '../text-component/provider';
8
+ import { ToastProvider } from '../toast/provider';
9
+ import type { HeroUINativeProviderProps } from './types';
10
+
11
+ /**
12
+ * HeroUINativeProvider Component
13
+ *
14
+ * @description
15
+ * Main provider component for HeroUI Native that configures the application
16
+ * with global settings. This component should wrap your entire application
17
+ * or the section where you want to use HeroUI Native components.
18
+ *
19
+ * Currently provides:
20
+ * - Global animation settings
21
+ * - Global text component configuration
22
+ * - Toast notification system
23
+ * - Portal management for overlays
24
+ *
25
+ * @param {HeroUINativeProviderProps} props - Provider configuration props
26
+ * @param {ReactNode} props.children - Child components to wrap
27
+ * @param {HeroUINativeConfig} [props.config] - Configuration object
28
+ *
29
+ */
30
+ const HeroUINativeProvider: React.FC<HeroUINativeProviderProps> = ({
31
+ children,
32
+ config = {},
33
+ }) => {
34
+ const { textProps, toast, animation, devInfo } = config;
35
+
36
+ useDevInfo(devInfo);
37
+
38
+ // Determine if toast should be enabled and get props
39
+ const isToastEnabled = toast !== false && toast !== 'disabled';
40
+ const toastProps = typeof toast === 'object' ? toast : {};
41
+
42
+ return (
43
+ <SafeAreaListener
44
+ onChange={({ insets }) => {
45
+ Uniwind.updateInsets(insets);
46
+ }}
47
+ >
48
+ <GlobalAnimationSettingsProvider animation={animation}>
49
+ <TextComponentProvider value={{ textProps }}>
50
+ {isToastEnabled ? (
51
+ <ToastProvider {...toastProps}>
52
+ {children}
53
+ <PortalHost />
54
+ </ToastProvider>
55
+ ) : (
56
+ <>
57
+ {children}
58
+ <PortalHost />
59
+ </>
60
+ )}
61
+ </TextComponentProvider>
62
+ </GlobalAnimationSettingsProvider>
63
+ </SafeAreaListener>
64
+ );
65
+ };
66
+
67
+ export default HeroUINativeProvider;
@@ -0,0 +1,114 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { AnimationRootDisableAll } from '../../helpers/internal/types';
3
+ import type { TextComponentContextValue } from '../text-component/types';
4
+ import type { ToastProviderProps } from '../toast/types';
5
+
6
+ /**
7
+ * Developer information messages configuration
8
+ *
9
+ * @interface DevInfoConfig
10
+ *
11
+ * @description
12
+ * Controls developer-facing informational messages displayed in the console.
13
+ * These messages provide important guidance and best practices.
14
+ */
15
+ export interface DevInfoConfig {
16
+ /**
17
+ * Show styling principles information message
18
+ *
19
+ * @description
20
+ * When set to `false`, disables the styling principles information message
21
+ * that appears in the console during development.
22
+ *
23
+ * @default true
24
+ */
25
+ stylingPrinciples?: boolean;
26
+ }
27
+
28
+ /**
29
+ * Configuration object for HeroUINativeProvider
30
+ *
31
+ * @interface HeroUINativeConfig
32
+ * @extends TextComponentContextValue
33
+ *
34
+ * @description
35
+ * Contains configuration options for the HeroUI Native provider.
36
+ * Additional configuration options can be added in future versions.
37
+ */
38
+ export interface HeroUINativeConfig extends TextComponentContextValue {
39
+ /**
40
+ * Global animation configuration
41
+ *
42
+ * @description
43
+ * When set to 'disable-all', all animations across the application will be disabled.
44
+ */
45
+ animation?: AnimationRootDisableAll;
46
+ /**
47
+ * Toast configuration
48
+ *
49
+ * @description
50
+ * Configure the global toast system including insets and wrapper components.
51
+ * Set to `false` or `'disabled'` to disable the toast provider entirely.
52
+ * Provide a `ToastProviderProps` object for custom configuration.
53
+ */
54
+ toast?: boolean | 'disabled' | ToastProviderProps;
55
+ /**
56
+ * Developer information messages configuration
57
+ *
58
+ * @description
59
+ * Controls developer-facing informational messages displayed in the console.
60
+ * Use this to disable specific informational messages during development.
61
+ */
62
+ devInfo?: DevInfoConfig;
63
+ }
64
+
65
+ /**
66
+ * Props for HeroUINativeProvider component
67
+ *
68
+ * @interface HeroUINativeProviderProps
69
+ *
70
+ * @description
71
+ * Main provider component props that wraps the entire application
72
+ * or a section of it to provide HeroUI Native functionality.
73
+ *
74
+ * @example
75
+ * ```tsx
76
+ * <HeroUINativeProvider config={{
77
+ * textProps: {
78
+ * allowFontScaling: false,
79
+ * maxFontSizeMultiplier: 1.5
80
+ * }
81
+ * }}>
82
+ * <App />
83
+ * </HeroUINativeProvider>
84
+ * ```
85
+ */
86
+ export interface HeroUINativeProviderProps {
87
+ /**
88
+ * Child components to render within the provider
89
+ *
90
+ * @description
91
+ * All children will have access to HeroUI Native theme
92
+ * and configuration through the provider.
93
+ */
94
+ children: ReactNode;
95
+
96
+ /**
97
+ * Configuration object for the provider
98
+ *
99
+ * @description
100
+ * Contains all configuration options including global text component configuration.
101
+ *
102
+ * @example
103
+ * ```tsx
104
+ * const config: HeroUINativeConfig = {
105
+ * textProps: {
106
+ * allowFontScaling: false,
107
+ * adjustsFontSizeToFit: false,
108
+ * maxFontSizeMultiplier: 1.5
109
+ * }
110
+ * };
111
+ * ```
112
+ */
113
+ config?: HeroUINativeConfig;
114
+ }
@@ -0,0 +1,2 @@
1
+ export { default as HeroUINativeProviderRaw } from './provider';
2
+ export * from './types';
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import { SafeAreaListener } from 'react-native-safe-area-context';
3
+ import { Uniwind } from 'uniwind';
4
+ import { useDevInfo } from '../../helpers/internal/hooks';
5
+ import { GlobalAnimationSettingsProvider } from '../animation-settings';
6
+ import { TextComponentProvider } from '../text-component/provider';
7
+ import type { HeroUINativeProviderRawProps } from './types';
8
+
9
+ /**
10
+ * HeroUINativeProviderRaw Component
11
+ *
12
+ * @description
13
+ * Raw provider component for HeroUI Native that configures the application
14
+ * with global settings but without ToastProvider and PortalHost.
15
+ * Use this when you need to manage toast and portal functionality separately
16
+ * (e.g. nested providers or custom setups).
17
+ *
18
+ * Currently provides:
19
+ * - Global animation settings
20
+ * - Global text component configuration
21
+ *
22
+ * @param {HeroUINativeProviderRawProps} props - Provider configuration props
23
+ * @param {ReactNode} props.children - Child components to wrap
24
+ * @param {HeroUINativeConfigRaw} [props.config] - Configuration object
25
+ *
26
+ */
27
+ const HeroUINativeProviderRaw: React.FC<HeroUINativeProviderRawProps> = ({
28
+ children,
29
+ config = {},
30
+ }) => {
31
+ const { textProps, animation, devInfo } = config;
32
+
33
+ useDevInfo(devInfo);
34
+
35
+ return (
36
+ <SafeAreaListener
37
+ onChange={({ insets }) => {
38
+ Uniwind.updateInsets(insets);
39
+ }}
40
+ >
41
+ <GlobalAnimationSettingsProvider animation={animation}>
42
+ <TextComponentProvider value={{ textProps }}>
43
+ {children}
44
+ </TextComponentProvider>
45
+ </GlobalAnimationSettingsProvider>
46
+ </SafeAreaListener>
47
+ );
48
+ };
49
+
50
+ export default HeroUINativeProviderRaw;
@@ -0,0 +1,39 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { HeroUINativeConfig } from '../hero-ui-native/types';
3
+
4
+ /**
5
+ * Configuration object for HeroUINativeProviderRaw
6
+ *
7
+ * @description
8
+ * A subset of {@link HeroUINativeConfig} containing only the configuration
9
+ * options supported by the raw provider.
10
+ */
11
+ export type HeroUINativeConfigRaw = Pick<
12
+ HeroUINativeConfig,
13
+ 'textProps' | 'animation' | 'devInfo'
14
+ >;
15
+
16
+ /**
17
+ * Props for HeroUINativeProviderRaw component
18
+ *
19
+ * @interface HeroUINativeProviderRawProps
20
+ *
21
+ * @description
22
+ * Props for the raw variant of the provider that includes only
23
+ * a subset of functionality from {@link HeroUINativeProviderProps}.
24
+ */
25
+ export interface HeroUINativeProviderRawProps {
26
+ /**
27
+ * Child components to render within the raw provider
28
+ */
29
+ children: ReactNode;
30
+
31
+ /**
32
+ * Configuration object for the raw provider
33
+ *
34
+ * @description
35
+ * A subset of configuration options supported by the raw provider.
36
+ * See {@link HeroUINativeConfigRaw} for available options.
37
+ */
38
+ config?: HeroUINativeConfigRaw;
39
+ }
@@ -0,0 +1,2 @@
1
+ export * from './provider';
2
+ export * from './types';
@@ -0,0 +1,9 @@
1
+ import { createContext } from '../../helpers/internal/utils';
2
+ import type { TextComponentContextValue } from './types';
3
+
4
+ const [TextComponentProvider, useTextComponent] =
5
+ createContext<TextComponentContextValue>({
6
+ name: 'TextComponentContext',
7
+ });
8
+
9
+ export { TextComponentProvider, useTextComponent };
@@ -0,0 +1,52 @@
1
+ import type { TextProps } from 'react-native';
2
+
3
+ /**
4
+ * Global text component configuration props.
5
+ * These props are carefully selected to include only those that make sense
6
+ * to configure globally across all Text components in the application.
7
+ *
8
+ * @description
9
+ * Includes accessibility and font scaling settings that typically
10
+ * should be consistent throughout the app for better UX.
11
+ */
12
+ export type TextComponentProps = {
13
+ /**
14
+ * Specifies whether fonts should be scaled down automatically to fit given style constraints.
15
+ *
16
+ * @default false
17
+ */
18
+ adjustsFontSizeToFit?: TextProps['adjustsFontSizeToFit'];
19
+ /**
20
+ * Specifies whether fonts should scale to respect Text Size accessibility settings.
21
+ *
22
+ * @default true
23
+ */
24
+ allowFontScaling?: TextProps['allowFontScaling'];
25
+ /**
26
+ * Specifies the largest possible scale a font can reach when `allowFontScaling` is enabled.
27
+ *
28
+ * Possible values:
29
+ *
30
+ * - `null` or `undefined`: inherit from the parent node or the global default (0)
31
+ * - `0`: no max, ignore parent/global default
32
+ * - `>= 1`: sets the `maxFontSizeMultiplier` of this node to this value
33
+ *
34
+ * @default `undefined`
35
+ */
36
+ maxFontSizeMultiplier?: TextProps['maxFontSizeMultiplier'];
37
+ /**
38
+ * Specifies the smallest possible scale a font can reach when adjustsFontSizeToFit is enabled. (values 0.01-1.0).
39
+ *
40
+ * iOS only
41
+ *
42
+ * @default `undefined`
43
+ */
44
+ minimumFontScale?: TextProps['minimumFontScale'];
45
+ };
46
+
47
+ /**
48
+ * Context value for text component configuration
49
+ */
50
+ export interface TextComponentContextValue {
51
+ textProps?: TextComponentProps;
52
+ }
@@ -0,0 +1,3 @@
1
+ export { ToastProvider, useToast } from './provider';
2
+ export { useToastConfig } from './toast-config.context';
3
+ export type * from './types';
@@ -0,0 +1,87 @@
1
+ import type { ReactNode } from 'react';
2
+ import { useMemo } from 'react';
3
+ import { Platform, View } from 'react-native';
4
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
5
+ import { FullWindowOverlay } from '../../helpers/internal/components';
6
+ import type { ToastInsets } from './types';
7
+
8
+ interface InsetsContainerProps {
9
+ /**
10
+ * When true, uses a regular View instead of FullWindowOverlay on iOS.
11
+ * Enables element inspector but toasts won't appear above native modals.
12
+ * @default false
13
+ */
14
+ disableFullWindowOverlay: boolean;
15
+ /**
16
+ * Optional inset values for all edges
17
+ * If not provided, defaults to platform-specific values:
18
+ * - iOS: safe area insets + 0px (top), + 6px (bottom), + 12px (left/right)
19
+ * - Android: safe area insets + 12px (all edges)
20
+ */
21
+ insets?: ToastInsets;
22
+ /**
23
+ * Custom wrapper function to wrap the toast content
24
+ * Receives children and should return a component that wraps them
25
+ * The wrapper should apply flex: 1 (via className or style) to ensure proper layout
26
+ * Can be any component wrapper - KeyboardAvoidingView, View, or any custom component
27
+ */
28
+ contentWrapper?: (children: ReactNode) => React.ReactElement;
29
+ /**
30
+ * Children to render inside the container
31
+ */
32
+ children: ReactNode;
33
+ }
34
+
35
+ /**
36
+ * Container component that applies inset padding to position toasts
37
+ * away from screen edges and safe areas
38
+ *
39
+ * Combines custom insets with safe area insets:
40
+ * - If custom inset is provided, it overrides safe area + default padding
41
+ * - If not provided, uses platform-specific defaults:
42
+ * - iOS: safe area inset + 0px for top, + 6px for bottom, + 12px for left/right
43
+ * - Android: safe area inset + 12px for all edges
44
+ */
45
+ export function InsetsContainer({
46
+ insets,
47
+ contentWrapper,
48
+ children,
49
+ disableFullWindowOverlay,
50
+ }: InsetsContainerProps) {
51
+ const safeAreaInsets = useSafeAreaInsets();
52
+
53
+ const finalInsets = useMemo(() => {
54
+ return {
55
+ top: insets?.top ?? safeAreaInsets.top + (Platform.OS === 'ios' ? 0 : 12),
56
+ bottom:
57
+ insets?.bottom ??
58
+ safeAreaInsets.bottom + (Platform.OS === 'ios' ? 6 : 12),
59
+ left: insets?.left ?? safeAreaInsets.left + 12,
60
+ right: insets?.right ?? safeAreaInsets.right + 12,
61
+ };
62
+ }, [safeAreaInsets, insets]);
63
+
64
+ const content = (
65
+ <View
66
+ className="absolute inset-0 pointer-events-box-none"
67
+ style={{
68
+ paddingTop: finalInsets.top,
69
+ paddingBottom: finalInsets.bottom,
70
+ paddingLeft: finalInsets.left,
71
+ paddingRight: finalInsets.right,
72
+ }}
73
+ >
74
+ {contentWrapper ? contentWrapper(children) : children}
75
+ </View>
76
+ );
77
+
78
+ if (Platform.OS !== 'ios') {
79
+ return content;
80
+ }
81
+
82
+ return (
83
+ <FullWindowOverlay disableFullWindowOverlay={disableFullWindowOverlay}>
84
+ {content}
85
+ </FullWindowOverlay>
86
+ );
87
+ }