react-native-terra-ui 0.1.0

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 (379) hide show
  1. package/README.md +70 -0
  2. package/lib/module/components/avatar/Avatar.js +121 -0
  3. package/lib/module/components/avatar/Avatar.js.map +1 -0
  4. package/lib/module/components/avatar/index.js +4 -0
  5. package/lib/module/components/avatar/index.js.map +1 -0
  6. package/lib/module/components/avatar/types.js +4 -0
  7. package/lib/module/components/avatar/types.js.map +1 -0
  8. package/lib/module/components/box/Box.js +49 -0
  9. package/lib/module/components/box/Box.js.map +1 -0
  10. package/lib/module/components/box/index.js +4 -0
  11. package/lib/module/components/box/index.js.map +1 -0
  12. package/lib/module/components/box/utils.js +95 -0
  13. package/lib/module/components/box/utils.js.map +1 -0
  14. package/lib/module/components/button/Button.js +281 -0
  15. package/lib/module/components/button/Button.js.map +1 -0
  16. package/lib/module/components/button/index.js +4 -0
  17. package/lib/module/components/button/index.js.map +1 -0
  18. package/lib/module/components/header/Header.js +25 -0
  19. package/lib/module/components/header/Header.js.map +1 -0
  20. package/lib/module/components/header/header-buttons.js +65 -0
  21. package/lib/module/components/header/header-buttons.js.map +1 -0
  22. package/lib/module/components/header/index.js +7 -0
  23. package/lib/module/components/header/index.js.map +1 -0
  24. package/lib/module/components/header/variants/LargeTitleHeader/index.js +335 -0
  25. package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -0
  26. package/lib/module/components/header/variants/TitleHeader/index.js +184 -0
  27. package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -0
  28. package/lib/module/components/icon/Icon.js +53 -0
  29. package/lib/module/components/icon/Icon.js.map +1 -0
  30. package/lib/module/components/icon/index.js +4 -0
  31. package/lib/module/components/icon/index.js.map +1 -0
  32. package/lib/module/components/icon/utils.js +188 -0
  33. package/lib/module/components/icon/utils.js.map +1 -0
  34. package/lib/module/components/index.js +16 -0
  35. package/lib/module/components/index.js.map +1 -0
  36. package/lib/module/components/page-indicator/PageIndicator.js +49 -0
  37. package/lib/module/components/page-indicator/PageIndicator.js.map +1 -0
  38. package/lib/module/components/page-indicator/PageIndicatorRoot.js +24 -0
  39. package/lib/module/components/page-indicator/PageIndicatorRoot.js.map +1 -0
  40. package/lib/module/components/page-indicator/hooks/use-page-indicator-colors.js +24 -0
  41. package/lib/module/components/page-indicator/hooks/use-page-indicator-colors.js.map +1 -0
  42. package/lib/module/components/page-indicator/hooks/use-page-indicator-core.js +20 -0
  43. package/lib/module/components/page-indicator/hooks/use-page-indicator-core.js.map +1 -0
  44. package/lib/module/components/page-indicator/hooks/use-page-indicator-progress.js +68 -0
  45. package/lib/module/components/page-indicator/hooks/use-page-indicator-progress.js.map +1 -0
  46. package/lib/module/components/page-indicator/index.js +5 -0
  47. package/lib/module/components/page-indicator/index.js.map +1 -0
  48. package/lib/module/components/page-indicator/utils.js +127 -0
  49. package/lib/module/components/page-indicator/utils.js.map +1 -0
  50. package/lib/module/components/page-indicator/variants/DotIndicator/InactiveDot.js +50 -0
  51. package/lib/module/components/page-indicator/variants/DotIndicator/InactiveDot.js.map +1 -0
  52. package/lib/module/components/page-indicator/variants/DotIndicator/LoadingOrbit.js +165 -0
  53. package/lib/module/components/page-indicator/variants/DotIndicator/LoadingOrbit.js.map +1 -0
  54. package/lib/module/components/page-indicator/variants/DotIndicator/TravelingPill.js +60 -0
  55. package/lib/module/components/page-indicator/variants/DotIndicator/TravelingPill.js.map +1 -0
  56. package/lib/module/components/page-indicator/variants/DotIndicator/index.js +87 -0
  57. package/lib/module/components/page-indicator/variants/DotIndicator/index.js.map +1 -0
  58. package/lib/module/components/page-indicator/variants/DotIndicator/utils.js +28 -0
  59. package/lib/module/components/page-indicator/variants/DotIndicator/utils.js.map +1 -0
  60. package/lib/module/components/page-indicator/variants/PillIndicator/PillIndicatorDot.js +53 -0
  61. package/lib/module/components/page-indicator/variants/PillIndicator/PillIndicatorDot.js.map +1 -0
  62. package/lib/module/components/page-indicator/variants/PillIndicator/index.js +76 -0
  63. package/lib/module/components/page-indicator/variants/PillIndicator/index.js.map +1 -0
  64. package/lib/module/components/page-indicator/variants/PillIndicator/utils.js +47 -0
  65. package/lib/module/components/page-indicator/variants/PillIndicator/utils.js.map +1 -0
  66. package/lib/module/components/portal/PortalContext.js +20 -0
  67. package/lib/module/components/portal/PortalContext.js.map +1 -0
  68. package/lib/module/components/portal/PortalHost.js +23 -0
  69. package/lib/module/components/portal/PortalHost.js.map +1 -0
  70. package/lib/module/components/portal/PortalProvider.js +40 -0
  71. package/lib/module/components/portal/PortalProvider.js.map +1 -0
  72. package/lib/module/components/portal/index.js +6 -0
  73. package/lib/module/components/portal/index.js.map +1 -0
  74. package/lib/module/components/screen/Screen.js +100 -0
  75. package/lib/module/components/screen/Screen.js.map +1 -0
  76. package/lib/module/components/screen/ScreenContext.js +66 -0
  77. package/lib/module/components/screen/ScreenContext.js.map +1 -0
  78. package/lib/module/components/screen/ScreenFlatList.js +75 -0
  79. package/lib/module/components/screen/ScreenFlatList.js.map +1 -0
  80. package/lib/module/components/screen/ScreenScrollView.js +82 -0
  81. package/lib/module/components/screen/ScreenScrollView.js.map +1 -0
  82. package/lib/module/components/screen/index.js +7 -0
  83. package/lib/module/components/screen/index.js.map +1 -0
  84. package/lib/module/components/screen/utils.js +13 -0
  85. package/lib/module/components/screen/utils.js.map +1 -0
  86. package/lib/module/components/slot/Slot.js +38 -0
  87. package/lib/module/components/slot/Slot.js.map +1 -0
  88. package/lib/module/components/slot/index.js +10 -0
  89. package/lib/module/components/slot/index.js.map +1 -0
  90. package/lib/module/components/slot/utils.js +55 -0
  91. package/lib/module/components/slot/utils.js.map +1 -0
  92. package/lib/module/components/spinner/Spinner.js +132 -0
  93. package/lib/module/components/spinner/Spinner.js.map +1 -0
  94. package/lib/module/components/spinner/index.js +4 -0
  95. package/lib/module/components/spinner/index.js.map +1 -0
  96. package/lib/module/components/surface/Surface.js +74 -0
  97. package/lib/module/components/surface/Surface.js.map +1 -0
  98. package/lib/module/components/surface/index.js +4 -0
  99. package/lib/module/components/surface/index.js.map +1 -0
  100. package/lib/module/components/text/Text.js +67 -0
  101. package/lib/module/components/text/Text.js.map +1 -0
  102. package/lib/module/components/text/index.js +4 -0
  103. package/lib/module/components/text/index.js.map +1 -0
  104. package/lib/module/components/toast/Toast.js +350 -0
  105. package/lib/module/components/toast/Toast.js.map +1 -0
  106. package/lib/module/components/toast/ToastProvider.js +272 -0
  107. package/lib/module/components/toast/ToastProvider.js.map +1 -0
  108. package/lib/module/components/toast/index.js +5 -0
  109. package/lib/module/components/toast/index.js.map +1 -0
  110. package/lib/module/components/toast/parts/ToastAnimatedItem.js +168 -0
  111. package/lib/module/components/toast/parts/ToastAnimatedItem.js.map +1 -0
  112. package/lib/module/components/toast/types.js +4 -0
  113. package/lib/module/components/toast/types.js.map +1 -0
  114. package/lib/module/components/toast/utils/controller.js +19 -0
  115. package/lib/module/components/toast/utils/controller.js.map +1 -0
  116. package/lib/module/context/ThemeProvider.js +66 -0
  117. package/lib/module/context/ThemeProvider.js.map +1 -0
  118. package/lib/module/context/index.js +4 -0
  119. package/lib/module/context/index.js.map +1 -0
  120. package/lib/module/index.js +8 -0
  121. package/lib/module/index.js.map +1 -0
  122. package/lib/module/package.json +1 -0
  123. package/lib/module/theme/configure.js +152 -0
  124. package/lib/module/theme/configure.js.map +1 -0
  125. package/lib/module/theme/index.js +22 -0
  126. package/lib/module/theme/index.js.map +1 -0
  127. package/lib/module/theme/runtime.js +25 -0
  128. package/lib/module/theme/runtime.js.map +1 -0
  129. package/lib/module/theme/theme.js +121 -0
  130. package/lib/module/theme/theme.js.map +1 -0
  131. package/lib/module/theme/tokens/dark.js +109 -0
  132. package/lib/module/theme/tokens/dark.js.map +1 -0
  133. package/lib/module/theme/tokens/light.js +115 -0
  134. package/lib/module/theme/tokens/light.js.map +1 -0
  135. package/lib/module/theme/tokens/primitives.js +228 -0
  136. package/lib/module/theme/tokens/primitives.js.map +1 -0
  137. package/lib/module/theme/types.js +4 -0
  138. package/lib/module/theme/types.js.map +1 -0
  139. package/lib/module/types.js +2 -0
  140. package/lib/module/types.js.map +1 -0
  141. package/lib/module/utils/accent-utils.js +52 -0
  142. package/lib/module/utils/accent-utils.js.map +1 -0
  143. package/lib/module/utils/color-utils.js +53 -0
  144. package/lib/module/utils/color-utils.js.map +1 -0
  145. package/lib/module/utils/deep-merge.js +28 -0
  146. package/lib/module/utils/deep-merge.js.map +1 -0
  147. package/lib/module/utils/resolve-theme-color.js +20 -0
  148. package/lib/module/utils/resolve-theme-color.js.map +1 -0
  149. package/lib/module/utils/typography.js +13 -0
  150. package/lib/module/utils/typography.js.map +1 -0
  151. package/lib/module/utils/unflatten.js +35 -0
  152. package/lib/module/utils/unflatten.js.map +1 -0
  153. package/lib/typescript/package.json +1 -0
  154. package/lib/typescript/src/components/avatar/Avatar.d.ts +3 -0
  155. package/lib/typescript/src/components/avatar/Avatar.d.ts.map +1 -0
  156. package/lib/typescript/src/components/avatar/index.d.ts +3 -0
  157. package/lib/typescript/src/components/avatar/index.d.ts.map +1 -0
  158. package/lib/typescript/src/components/avatar/types.d.ts +30 -0
  159. package/lib/typescript/src/components/avatar/types.d.ts.map +1 -0
  160. package/lib/typescript/src/components/box/Box.d.ts +12 -0
  161. package/lib/typescript/src/components/box/Box.d.ts.map +1 -0
  162. package/lib/typescript/src/components/box/index.d.ts +4 -0
  163. package/lib/typescript/src/components/box/index.d.ts.map +1 -0
  164. package/lib/typescript/src/components/box/utils.d.ts +39 -0
  165. package/lib/typescript/src/components/box/utils.d.ts.map +1 -0
  166. package/lib/typescript/src/components/button/Button.d.ts +46 -0
  167. package/lib/typescript/src/components/button/Button.d.ts.map +1 -0
  168. package/lib/typescript/src/components/button/index.d.ts +3 -0
  169. package/lib/typescript/src/components/button/index.d.ts.map +1 -0
  170. package/lib/typescript/src/components/header/Header.d.ts +22 -0
  171. package/lib/typescript/src/components/header/Header.d.ts.map +1 -0
  172. package/lib/typescript/src/components/header/header-buttons.d.ts +16 -0
  173. package/lib/typescript/src/components/header/header-buttons.d.ts.map +1 -0
  174. package/lib/typescript/src/components/header/index.d.ts +7 -0
  175. package/lib/typescript/src/components/header/index.d.ts.map +1 -0
  176. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +25 -0
  177. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -0
  178. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +28 -0
  179. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -0
  180. package/lib/typescript/src/components/icon/Icon.d.ts +22 -0
  181. package/lib/typescript/src/components/icon/Icon.d.ts.map +1 -0
  182. package/lib/typescript/src/components/icon/index.d.ts +3 -0
  183. package/lib/typescript/src/components/icon/index.d.ts.map +1 -0
  184. package/lib/typescript/src/components/icon/utils.d.ts +4 -0
  185. package/lib/typescript/src/components/icon/utils.d.ts.map +1 -0
  186. package/lib/typescript/src/components/index.d.ts +14 -0
  187. package/lib/typescript/src/components/index.d.ts.map +1 -0
  188. package/lib/typescript/src/components/page-indicator/PageIndicator.d.ts +48 -0
  189. package/lib/typescript/src/components/page-indicator/PageIndicator.d.ts.map +1 -0
  190. package/lib/typescript/src/components/page-indicator/PageIndicatorRoot.d.ts +13 -0
  191. package/lib/typescript/src/components/page-indicator/PageIndicatorRoot.d.ts.map +1 -0
  192. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-colors.d.ts +14 -0
  193. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-colors.d.ts.map +1 -0
  194. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-core.d.ts +11 -0
  195. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-core.d.ts.map +1 -0
  196. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-progress.d.ts +19 -0
  197. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-progress.d.ts.map +1 -0
  198. package/lib/typescript/src/components/page-indicator/index.d.ts +4 -0
  199. package/lib/typescript/src/components/page-indicator/index.d.ts.map +1 -0
  200. package/lib/typescript/src/components/page-indicator/utils.d.ts +36 -0
  201. package/lib/typescript/src/components/page-indicator/utils.d.ts.map +1 -0
  202. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/InactiveDot.d.ts +14 -0
  203. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/InactiveDot.d.ts.map +1 -0
  204. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/LoadingOrbit.d.ts +11 -0
  205. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/LoadingOrbit.d.ts.map +1 -0
  206. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/TravelingPill.d.ts +15 -0
  207. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/TravelingPill.d.ts.map +1 -0
  208. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/index.d.ts +32 -0
  209. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/index.d.ts.map +1 -0
  210. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/utils.d.ts +14 -0
  211. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/utils.d.ts.map +1 -0
  212. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/PillIndicatorDot.d.ts +16 -0
  213. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/PillIndicatorDot.d.ts.map +1 -0
  214. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/index.d.ts +28 -0
  215. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/index.d.ts.map +1 -0
  216. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/utils.d.ts +21 -0
  217. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/utils.d.ts.map +1 -0
  218. package/lib/typescript/src/components/portal/PortalContext.d.ts +19 -0
  219. package/lib/typescript/src/components/portal/PortalContext.d.ts.map +1 -0
  220. package/lib/typescript/src/components/portal/PortalHost.d.ts +7 -0
  221. package/lib/typescript/src/components/portal/PortalHost.d.ts.map +1 -0
  222. package/lib/typescript/src/components/portal/PortalProvider.d.ts +11 -0
  223. package/lib/typescript/src/components/portal/PortalProvider.d.ts.map +1 -0
  224. package/lib/typescript/src/components/portal/index.d.ts +6 -0
  225. package/lib/typescript/src/components/portal/index.d.ts.map +1 -0
  226. package/lib/typescript/src/components/screen/Screen.d.ts +53 -0
  227. package/lib/typescript/src/components/screen/Screen.d.ts.map +1 -0
  228. package/lib/typescript/src/components/screen/ScreenContext.d.ts +64 -0
  229. package/lib/typescript/src/components/screen/ScreenContext.d.ts.map +1 -0
  230. package/lib/typescript/src/components/screen/ScreenFlatList.d.ts +26 -0
  231. package/lib/typescript/src/components/screen/ScreenFlatList.d.ts.map +1 -0
  232. package/lib/typescript/src/components/screen/ScreenScrollView.d.ts +36 -0
  233. package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -0
  234. package/lib/typescript/src/components/screen/index.d.ts +9 -0
  235. package/lib/typescript/src/components/screen/index.d.ts.map +1 -0
  236. package/lib/typescript/src/components/screen/utils.d.ts +10 -0
  237. package/lib/typescript/src/components/screen/utils.d.ts.map +1 -0
  238. package/lib/typescript/src/components/slot/Slot.d.ts +17 -0
  239. package/lib/typescript/src/components/slot/Slot.d.ts.map +1 -0
  240. package/lib/typescript/src/components/slot/index.d.ts +8 -0
  241. package/lib/typescript/src/components/slot/index.d.ts.map +1 -0
  242. package/lib/typescript/src/components/slot/utils.d.ts +17 -0
  243. package/lib/typescript/src/components/slot/utils.d.ts.map +1 -0
  244. package/lib/typescript/src/components/spinner/Spinner.d.ts +18 -0
  245. package/lib/typescript/src/components/spinner/Spinner.d.ts.map +1 -0
  246. package/lib/typescript/src/components/spinner/index.d.ts +3 -0
  247. package/lib/typescript/src/components/spinner/index.d.ts.map +1 -0
  248. package/lib/typescript/src/components/surface/Surface.d.ts +31 -0
  249. package/lib/typescript/src/components/surface/Surface.d.ts.map +1 -0
  250. package/lib/typescript/src/components/surface/index.d.ts +3 -0
  251. package/lib/typescript/src/components/surface/index.d.ts.map +1 -0
  252. package/lib/typescript/src/components/text/Text.d.ts +23 -0
  253. package/lib/typescript/src/components/text/Text.d.ts.map +1 -0
  254. package/lib/typescript/src/components/text/index.d.ts +3 -0
  255. package/lib/typescript/src/components/text/index.d.ts.map +1 -0
  256. package/lib/typescript/src/components/toast/Toast.d.ts +71 -0
  257. package/lib/typescript/src/components/toast/Toast.d.ts.map +1 -0
  258. package/lib/typescript/src/components/toast/ToastProvider.d.ts +4 -0
  259. package/lib/typescript/src/components/toast/ToastProvider.d.ts.map +1 -0
  260. package/lib/typescript/src/components/toast/index.d.ts +5 -0
  261. package/lib/typescript/src/components/toast/index.d.ts.map +1 -0
  262. package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts +18 -0
  263. package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts.map +1 -0
  264. package/lib/typescript/src/components/toast/types.d.ts +62 -0
  265. package/lib/typescript/src/components/toast/types.d.ts.map +1 -0
  266. package/lib/typescript/src/components/toast/utils/controller.d.ts +5 -0
  267. package/lib/typescript/src/components/toast/utils/controller.d.ts.map +1 -0
  268. package/lib/typescript/src/context/ThemeProvider.d.ts +29 -0
  269. package/lib/typescript/src/context/ThemeProvider.d.ts.map +1 -0
  270. package/lib/typescript/src/context/index.d.ts +3 -0
  271. package/lib/typescript/src/context/index.d.ts.map +1 -0
  272. package/lib/typescript/src/index.d.ts +4 -0
  273. package/lib/typescript/src/index.d.ts.map +1 -0
  274. package/lib/typescript/src/theme/configure.d.ts +47 -0
  275. package/lib/typescript/src/theme/configure.d.ts.map +1 -0
  276. package/lib/typescript/src/theme/index.d.ts +11 -0
  277. package/lib/typescript/src/theme/index.d.ts.map +1 -0
  278. package/lib/typescript/src/theme/runtime.d.ts +7 -0
  279. package/lib/typescript/src/theme/runtime.d.ts.map +1 -0
  280. package/lib/typescript/src/theme/theme.d.ts +22 -0
  281. package/lib/typescript/src/theme/theme.d.ts.map +1 -0
  282. package/lib/typescript/src/theme/tokens/dark.d.ts +100 -0
  283. package/lib/typescript/src/theme/tokens/dark.d.ts.map +1 -0
  284. package/lib/typescript/src/theme/tokens/light.d.ts +106 -0
  285. package/lib/typescript/src/theme/tokens/light.d.ts.map +1 -0
  286. package/lib/typescript/src/theme/tokens/primitives.d.ts +212 -0
  287. package/lib/typescript/src/theme/tokens/primitives.d.ts.map +1 -0
  288. package/lib/typescript/src/theme/types.d.ts +273 -0
  289. package/lib/typescript/src/theme/types.d.ts.map +1 -0
  290. package/lib/typescript/src/types.d.ts +4 -0
  291. package/lib/typescript/src/types.d.ts.map +1 -0
  292. package/lib/typescript/src/utils/accent-utils.d.ts +4 -0
  293. package/lib/typescript/src/utils/accent-utils.d.ts.map +1 -0
  294. package/lib/typescript/src/utils/color-utils.d.ts +11 -0
  295. package/lib/typescript/src/utils/color-utils.d.ts.map +1 -0
  296. package/lib/typescript/src/utils/deep-merge.d.ts +11 -0
  297. package/lib/typescript/src/utils/deep-merge.d.ts.map +1 -0
  298. package/lib/typescript/src/utils/resolve-theme-color.d.ts +12 -0
  299. package/lib/typescript/src/utils/resolve-theme-color.d.ts.map +1 -0
  300. package/lib/typescript/src/utils/typography.d.ts +6 -0
  301. package/lib/typescript/src/utils/typography.d.ts.map +1 -0
  302. package/lib/typescript/src/utils/unflatten.d.ts +12 -0
  303. package/lib/typescript/src/utils/unflatten.d.ts.map +1 -0
  304. package/package.json +137 -0
  305. package/src/components/avatar/Avatar.tsx +146 -0
  306. package/src/components/avatar/index.ts +8 -0
  307. package/src/components/avatar/types.ts +35 -0
  308. package/src/components/box/Box.tsx +59 -0
  309. package/src/components/box/index.ts +8 -0
  310. package/src/components/box/utils.ts +181 -0
  311. package/src/components/button/Button.tsx +313 -0
  312. package/src/components/button/index.ts +8 -0
  313. package/src/components/header/Header.ts +22 -0
  314. package/src/components/header/header-buttons.tsx +103 -0
  315. package/src/components/header/index.ts +11 -0
  316. package/src/components/header/variants/LargeTitleHeader/index.tsx +390 -0
  317. package/src/components/header/variants/TitleHeader/index.tsx +194 -0
  318. package/src/components/icon/Icon.tsx +74 -0
  319. package/src/components/icon/index.ts +2 -0
  320. package/src/components/icon/utils.tsx +147 -0
  321. package/src/components/index.ts +13 -0
  322. package/src/components/page-indicator/PageIndicator.tsx +100 -0
  323. package/src/components/page-indicator/PageIndicatorRoot.tsx +41 -0
  324. package/src/components/page-indicator/hooks/use-page-indicator-colors.ts +65 -0
  325. package/src/components/page-indicator/hooks/use-page-indicator-core.ts +34 -0
  326. package/src/components/page-indicator/hooks/use-page-indicator-progress.ts +122 -0
  327. package/src/components/page-indicator/index.ts +13 -0
  328. package/src/components/page-indicator/utils.ts +208 -0
  329. package/src/components/page-indicator/variants/DotIndicator/InactiveDot.tsx +70 -0
  330. package/src/components/page-indicator/variants/DotIndicator/LoadingOrbit.tsx +201 -0
  331. package/src/components/page-indicator/variants/DotIndicator/TravelingPill.tsx +80 -0
  332. package/src/components/page-indicator/variants/DotIndicator/index.tsx +145 -0
  333. package/src/components/page-indicator/variants/DotIndicator/utils.ts +28 -0
  334. package/src/components/page-indicator/variants/PillIndicator/PillIndicatorDot.tsx +107 -0
  335. package/src/components/page-indicator/variants/PillIndicator/index.tsx +149 -0
  336. package/src/components/page-indicator/variants/PillIndicator/utils.ts +63 -0
  337. package/src/components/portal/PortalContext.tsx +27 -0
  338. package/src/components/portal/PortalHost.tsx +20 -0
  339. package/src/components/portal/PortalProvider.tsx +44 -0
  340. package/src/components/portal/index.ts +5 -0
  341. package/src/components/screen/Screen.tsx +163 -0
  342. package/src/components/screen/ScreenContext.tsx +144 -0
  343. package/src/components/screen/ScreenFlatList.tsx +121 -0
  344. package/src/components/screen/ScreenScrollView.tsx +130 -0
  345. package/src/components/screen/index.ts +8 -0
  346. package/src/components/screen/utils.ts +17 -0
  347. package/src/components/slot/Slot.tsx +56 -0
  348. package/src/components/slot/index.ts +8 -0
  349. package/src/components/slot/utils.ts +61 -0
  350. package/src/components/spinner/Spinner.tsx +153 -0
  351. package/src/components/spinner/index.ts +2 -0
  352. package/src/components/surface/Surface.tsx +100 -0
  353. package/src/components/surface/index.ts +2 -0
  354. package/src/components/text/Text.tsx +115 -0
  355. package/src/components/text/index.ts +2 -0
  356. package/src/components/toast/Toast.tsx +477 -0
  357. package/src/components/toast/ToastProvider.tsx +403 -0
  358. package/src/components/toast/index.ts +26 -0
  359. package/src/components/toast/parts/ToastAnimatedItem.tsx +184 -0
  360. package/src/components/toast/types.ts +75 -0
  361. package/src/components/toast/utils/controller.ts +23 -0
  362. package/src/context/ThemeProvider.tsx +97 -0
  363. package/src/context/index.ts +2 -0
  364. package/src/index.tsx +6 -0
  365. package/src/theme/configure.ts +215 -0
  366. package/src/theme/index.ts +72 -0
  367. package/src/theme/runtime.ts +27 -0
  368. package/src/theme/theme.ts +152 -0
  369. package/src/theme/tokens/dark.ts +117 -0
  370. package/src/theme/tokens/light.ts +123 -0
  371. package/src/theme/tokens/primitives.ts +232 -0
  372. package/src/theme/types.ts +384 -0
  373. package/src/types.ts +1 -0
  374. package/src/utils/accent-utils.ts +58 -0
  375. package/src/utils/color-utils.ts +51 -0
  376. package/src/utils/deep-merge.ts +36 -0
  377. package/src/utils/resolve-theme-color.ts +27 -0
  378. package/src/utils/typography.ts +15 -0
  379. package/src/utils/unflatten.ts +36 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /** Recursively makes every property (and nested property) optional. */
4
+
5
+ const isPlainObject = value => typeof value === 'object' && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
6
+
7
+ /**
8
+ * Deep-merges `override` onto `base`, returning a new object.
9
+ * Plain objects merge recursively; all other values (and arrays) replace.
10
+ * Neither input is mutated.
11
+ */
12
+ export function deepMerge(base, override) {
13
+ if (override === undefined) return base;
14
+ if (!isPlainObject(base) || !isPlainObject(override)) {
15
+ return override ?? base;
16
+ }
17
+ const result = {
18
+ ...base
19
+ };
20
+ for (const key of Object.keys(override)) {
21
+ const overrideValue = override[key];
22
+ if (overrideValue === undefined) continue;
23
+ const baseValue = base[key];
24
+ result[key] = isPlainObject(baseValue) && isPlainObject(overrideValue) ? deepMerge(baseValue, overrideValue) : overrideValue;
25
+ }
26
+ return result;
27
+ }
28
+ //# sourceMappingURL=deep-merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isPlainObject","value","Array","isArray","Object","getPrototypeOf","prototype","deepMerge","base","override","undefined","result","key","keys","overrideValue","baseValue"],"sourceRoot":"../../../src","sources":["utils/deep-merge.ts"],"mappings":";;AAAA;;AAOA,MAAMA,aAAa,GAAIC,KAAc,IACnC,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,CAACC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,IACrBG,MAAM,CAACC,cAAc,CAACJ,KAAK,CAAC,KAAKG,MAAM,CAACE,SAAS;;AAEnD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAIC,IAAO,EAAEC,QAAyB,EAAK;EAClE,IAAIA,QAAQ,KAAKC,SAAS,EAAE,OAAOF,IAAI;EACvC,IAAI,CAACR,aAAa,CAACQ,IAAI,CAAC,IAAI,CAACR,aAAa,CAACS,QAAQ,CAAC,EAAE;IACpD,OAAQA,QAAQ,IAAqBD,IAAI;EAC3C;EAEA,MAAMG,MAA+B,GAAG;IAAE,GAAGH;EAAK,CAAC;EACnD,KAAK,MAAMI,GAAG,IAAIR,MAAM,CAACS,IAAI,CAACJ,QAAQ,CAAC,EAAE;IACvC,MAAMK,aAAa,GAAIL,QAAQ,CAA6BG,GAAG,CAAC;IAChE,IAAIE,aAAa,KAAKJ,SAAS,EAAE;IACjC,MAAMK,SAAS,GAAIP,IAAI,CAA6BI,GAAG,CAAC;IACxDD,MAAM,CAACC,GAAG,CAAC,GACTZ,aAAa,CAACe,SAAS,CAAC,IAAIf,aAAa,CAACc,aAAa,CAAC,GACpDP,SAAS,CAACQ,SAAS,EAAED,aAA8C,CAAC,GACpEA,aAAa;EACrB;EACA,OAAOH,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ const isColorLiteral = value => value.startsWith('#') || value.startsWith('rgb') || value.startsWith('hsl') || value === 'transparent' || value === 'currentColor';
4
+
5
+ /**
6
+ * Resolves a {@link ColorToken} to a concrete color string using the theme.
7
+ * Raw literals pass through unchanged.
8
+ *
9
+ * @example
10
+ * resolveThemeColor('text.default', theme) // → '#020618'
11
+ * resolveThemeColor('action.bg.primary', theme) // → '#009966'
12
+ * resolveThemeColor('#ff0000', theme) // → '#ff0000'
13
+ */
14
+ export function resolveThemeColor(token, theme) {
15
+ if (!token) return undefined;
16
+ if (isColorLiteral(token)) return token;
17
+ const value = theme.color[token];
18
+ return typeof value === 'string' ? value : undefined;
19
+ }
20
+ //# sourceMappingURL=resolve-theme-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isColorLiteral","value","startsWith","resolveThemeColor","token","theme","undefined","color"],"sourceRoot":"../../../src","sources":["utils/resolve-theme-color.ts"],"mappings":";;AAEA,MAAMA,cAAc,GAAIC,KAAa,IACnCA,KAAK,CAACC,UAAU,CAAC,GAAG,CAAC,IACrBD,KAAK,CAACC,UAAU,CAAC,KAAK,CAAC,IACvBD,KAAK,CAACC,UAAU,CAAC,KAAK,CAAC,IACvBD,KAAK,KAAK,aAAa,IACvBA,KAAK,KAAK,cAAc;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,iBAAiBA,CAC/BC,KAA6B,EAC7BC,KAAiB,EACG;EACpB,IAAI,CAACD,KAAK,EAAE,OAAOE,SAAS;EAC5B,IAAIN,cAAc,CAACI,KAAK,CAAC,EAAE,OAAOA,KAAK;EACvC,MAAMH,KAAK,GAAII,KAAK,CAACE,KAAK,CAAwCH,KAAK,CAAC;EACxE,OAAO,OAAOH,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGK,SAAS;AACtD","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ /** RN's sentinel for the platform default font (SF on iOS, Roboto on Android). */
4
+ export const SYSTEM_FONT = 'System';
5
+
6
+ /** Numeric fontWeight applied when a weight token maps to the system font. */
7
+ export const FONT_WEIGHT_VALUE = {
8
+ regular: '400',
9
+ medium: '500',
10
+ semibold: '600',
11
+ bold: '700'
12
+ };
13
+ //# sourceMappingURL=typography.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SYSTEM_FONT","FONT_WEIGHT_VALUE","regular","medium","semibold","bold"],"sourceRoot":"../../../src","sources":["utils/typography.ts"],"mappings":";;AAEA;AACA,OAAO,MAAMA,WAAW,GAAG,QAAQ;;AAEnC;AACA,OAAO,MAAMC,iBAGZ,GAAG;EACFC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,KAAK;EACbC,QAAQ,EAAE,KAAK;EACfC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Rebuilds a nested object from a flat map of dotted-path keys.
5
+ *
6
+ * @example
7
+ * unflatten({ 'a.b.c': 1, 'a.b.d': 2 }) // → { a: { b: { c: 1, d: 2 } } }
8
+ *
9
+ * Used to turn the flat, Figma-style token data (tokens/*.ts) back into the
10
+ * nested runtime theme shape that components and Unistyles consume. The caller
11
+ * is responsible for asserting the resulting shape (e.g. `as TerraTheme`).
12
+ */
13
+ export function unflatten(flat) {
14
+ const root = {};
15
+ for (const [path, value] of Object.entries(flat)) {
16
+ const segments = path.split('.');
17
+ let node = root;
18
+ for (let i = 0; i < segments.length - 1; i++) {
19
+ const seg = segments[i];
20
+ if (seg === undefined) continue;
21
+ const next = node[seg];
22
+ if (typeof next === 'object' && next !== null) {
23
+ node = next;
24
+ } else {
25
+ const created = {};
26
+ node[seg] = created;
27
+ node = created;
28
+ }
29
+ }
30
+ const leaf = segments[segments.length - 1];
31
+ if (leaf !== undefined) node[leaf] = value;
32
+ }
33
+ return root;
34
+ }
35
+ //# sourceMappingURL=unflatten.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["unflatten","flat","root","path","value","Object","entries","segments","split","node","i","length","seg","undefined","next","created","leaf"],"sourceRoot":"../../../src","sources":["utils/unflatten.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CAAcC,IAA6B,EAAK;EACvE,MAAMC,IAA6B,GAAG,CAAC,CAAC;EAExC,KAAK,MAAM,CAACC,IAAI,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,IAAI,CAAC,EAAE;IAChD,MAAMM,QAAQ,GAAGJ,IAAI,CAACK,KAAK,CAAC,GAAG,CAAC;IAChC,IAAIC,IAAI,GAAGP,IAAI;IAEf,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,CAACI,MAAM,GAAG,CAAC,EAAED,CAAC,EAAE,EAAE;MAC5C,MAAME,GAAG,GAAGL,QAAQ,CAACG,CAAC,CAAC;MACvB,IAAIE,GAAG,KAAKC,SAAS,EAAE;MACvB,MAAMC,IAAI,GAAGL,IAAI,CAACG,GAAG,CAAC;MACtB,IAAI,OAAOE,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,IAAI,EAAE;QAC7CL,IAAI,GAAGK,IAA+B;MACxC,CAAC,MAAM;QACL,MAAMC,OAAgC,GAAG,CAAC,CAAC;QAC3CN,IAAI,CAACG,GAAG,CAAC,GAAGG,OAAO;QACnBN,IAAI,GAAGM,OAAO;MAChB;IACF;IAEA,MAAMC,IAAI,GAAGT,QAAQ,CAACA,QAAQ,CAACI,MAAM,GAAG,CAAC,CAAC;IAC1C,IAAIK,IAAI,KAAKH,SAAS,EAAEJ,IAAI,CAACO,IAAI,CAAC,GAAGZ,KAAK;EAC5C;EAEA,OAAOF,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,3 @@
1
+ import type { AvatarProps } from './types.js';
2
+ export declare function Avatar({ size, shape, source, name, fallback, contentFit, color, variant, style, ...rest }: AvatarProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=Avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../../src/components/avatar/Avatar.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,WAAW,EAIZ,MAAM,YAAS,CAAC;AA2DjB,wBAAgB,MAAM,CAAC,EACrB,IAAW,EACX,KAAgB,EAChB,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,UAAoB,EACpB,KAAiB,EACjB,OAAmB,EACnB,KAAK,EACL,GAAG,IAAI,EACR,EAAE,WAAW,+BA4Db"}
@@ -0,0 +1,3 @@
1
+ export { Avatar } from './Avatar.js';
2
+ export type { AvatarColor, AvatarProps, AvatarShape, AvatarSize, AvatarVariant, } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAU,CAAC;AAClC,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,YAAS,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ViewProps } from 'react-native';
3
+ import type { TerraImageContentFit } from '#theme/types';
4
+ export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
+ export type AvatarShape = 'circle' | 'rounded' | 'square';
6
+ /** Semantic color scheme for the fallback state (initials / placeholder icon). */
7
+ export type AvatarColor = 'default' | 'accent' | 'success' | 'warning' | 'danger';
8
+ /** Visual weight of the fallback background. */
9
+ export type AvatarVariant = 'default' | 'soft';
10
+ export interface AvatarProps extends ViewProps {
11
+ /** Predefined size token. Defaults to `'md'`. */
12
+ size?: AvatarSize;
13
+ /** Corner shape. Defaults to `'circle'`. */
14
+ shape?: AvatarShape;
15
+ /** Remote URL or local asset. When omitted or on load error, the fallback is shown. */
16
+ source?: {
17
+ uri: string;
18
+ } | number;
19
+ /** Used to derive initials when no `source` or `fallback` is provided. */
20
+ name?: string;
21
+ /** Custom fallback content — takes priority over initials and the built-in placeholder. */
22
+ fallback?: ReactNode;
23
+ /** How the image fills its container. Defaults to `'cover'`. */
24
+ contentFit?: TerraImageContentFit;
25
+ /** Fallback color theme. Defaults to `'default'`. */
26
+ color?: AvatarColor;
27
+ /** Visual style variant. Defaults to `'default'`. */
28
+ variant?: AvatarVariant;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/avatar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1D,kFAAkF;AAClF,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AACb,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,iDAAiD;IACjD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uFAAuF;IACvF,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAClC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,qDAAqD;IACrD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,qDAAqD;IACrD,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB"}
@@ -0,0 +1,12 @@
1
+ import { type ViewProps } from 'react-native';
2
+ import { type BoxStyleProps } from './utils.js';
3
+ export interface BoxProps extends ViewProps, BoxStyleProps {
4
+ /** Merge Box's style/props onto a single child instead of rendering a View. */
5
+ asChild?: boolean;
6
+ }
7
+ /**
8
+ * Base layout primitive: a `View` styled through theme-token props.
9
+ * The only component family exposing token style-props.
10
+ */
11
+ export declare const Box: import("react").ForwardRefExoticComponent<BoxProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
12
+ //# sourceMappingURL=Box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Box.d.ts","sourceRoot":"","sources":["../../../../../src/components/box/Box.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,YAAS,CAAC;AAEjB,MAAM,WAAW,QAAS,SAAQ,SAAS,EAAE,aAAa;IACxD,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID;;;GAGG;AACH,eAAO,MAAM,GAAG,sLAmCd,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type { BoxProps } from './Box.js';
2
+ export { Box } from './Box.js';
3
+ export type { Align, BorderWidthInput, BoxStyleProps, Justify, } from './utils.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/box/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAO,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAO,CAAC;AAC5B,YAAY,EACV,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,OAAO,GACR,MAAM,YAAS,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { type ViewStyle } from 'react-native';
2
+ import type { ColorToken, RadiusKey, SpacingKey, TerraTheme } from '#theme/types';
3
+ export type Align = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
4
+ export type Justify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
5
+ export type BorderWidthInput = number | 'hairline';
6
+ /** Token-driven style props accepted by `Box`. */
7
+ export interface BoxStyleProps {
8
+ p?: SpacingKey;
9
+ px?: SpacingKey;
10
+ py?: SpacingKey;
11
+ pt?: SpacingKey;
12
+ pr?: SpacingKey;
13
+ pb?: SpacingKey;
14
+ pl?: SpacingKey;
15
+ m?: SpacingKey;
16
+ mx?: SpacingKey;
17
+ my?: SpacingKey;
18
+ mt?: SpacingKey;
19
+ mr?: SpacingKey;
20
+ mb?: SpacingKey;
21
+ ml?: SpacingKey;
22
+ gap?: SpacingKey;
23
+ /** Horizontal layout (`flexDirection: 'row'`). Defaults to column. */
24
+ row?: boolean;
25
+ align?: Align;
26
+ justify?: Justify;
27
+ wrap?: boolean;
28
+ flex?: number;
29
+ alignSelf?: Align;
30
+ bg?: ColorToken;
31
+ radius?: RadiusKey;
32
+ borderWidth?: BorderWidthInput;
33
+ borderColor?: ColorToken;
34
+ }
35
+ /** Builds a `ViewStyle` from token-driven props using the active theme. */
36
+ export declare function resolveBoxStyle(props: BoxStyleProps, theme: TerraTheme): ViewStyle;
37
+ /** Keys of {@link BoxStyleProps}, used to split style props from view props. */
38
+ export declare const BOX_STYLE_PROP_KEYS: readonly (keyof BoxStyleProps)[];
39
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/box/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AACxE,MAAM,MAAM,OAAO,GACf,OAAO,GACP,QAAQ,GACR,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,UAAU,CAAC;AAKnD,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAE5B,CAAC,CAAC,EAAE,UAAU,CAAC;IACf,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,CAAC,CAAC,EAAE,UAAU,CAAC;IACf,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,GAAG,CAAC,EAAE,UAAU,CAAC;IAEjB,sEAAsE;IACtE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAwBD,2EAA2E;AAC3E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,GAChB,SAAS,CAsEX;AAED,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,EAAE,SAAS,CAAC,MAAM,aAAa,CAAC,EA0B/D,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { PressableProps } from 'react-native';
3
+ import type { ColorToken, TerraIconName } from '#theme/types';
4
+ export type ButtonVariant = 'primary' | 'secondary' | 'neutral' | 'outline' | 'ghost' | 'danger';
5
+ export type ButtonSize = 'sm' | 'md' | 'lg';
6
+ export type ButtonRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
7
+ export interface ButtonProps extends Omit<PressableProps, 'style' | 'children' | 'disabled'> {
8
+ variant?: ButtonVariant;
9
+ size?: ButtonSize;
10
+ radius?: ButtonRadius;
11
+ isDisabled?: boolean;
12
+ isLoading?: boolean;
13
+ /** Square (1:1) button — pass a single icon as children. */
14
+ isIconOnly?: boolean;
15
+ /**
16
+ * Stretch to the parent width in column layouts. Defaults to `true`.
17
+ * Icon-only buttons always stay square regardless of this prop.
18
+ */
19
+ fullWidth?: boolean;
20
+ /** Remove the button's built-in horizontal padding. */
21
+ compact?: boolean;
22
+ children?: ReactNode;
23
+ }
24
+ interface ButtonContextValue {
25
+ color: string;
26
+ size: ButtonSize;
27
+ }
28
+ export declare const useButtonContext: () => ButtonContextValue;
29
+ declare const ButtonLabel: ({ children }: {
30
+ children: ReactNode;
31
+ }) => import("react").JSX.Element;
32
+ export interface ButtonIconProps {
33
+ name: TerraIconName;
34
+ size?: number;
35
+ color?: ColorToken;
36
+ strokeWidth?: number;
37
+ }
38
+ declare const ButtonIcon: ({ name, size: sizeProp, color: colorProp, strokeWidth, }: ButtonIconProps) => import("react").JSX.Element;
39
+ declare const ButtonRoot: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
40
+ type ButtonComponent = typeof ButtonRoot & {
41
+ Icon: typeof ButtonIcon;
42
+ Label: typeof ButtonLabel;
43
+ };
44
+ export declare const Button: ButtonComponent;
45
+ export {};
46
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,KAAK,EACV,UAAU,EAEV,aAAa,EAGd,MAAM,cAAc,CAAC;AAMtB,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;AACb,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAEvE,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAC/D,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAID,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB;AAOD,eAAO,MAAM,gBAAgB,QAAO,kBACT,CAAC;AA0E5B,QAAA,MAAM,WAAW,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,gCAYzD,CAAC;AAUF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,GAAI,0DAKjB,eAAe,gCAWjB,CAAC;AAkBF,QAAA,MAAM,UAAU,yLA2Df,CAAC;AAEF,KAAK,eAAe,GAAG,OAAO,UAAU,GAAG;IACzC,IAAI,EAAE,OAAO,UAAU,CAAC;IACxB,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAiB,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { ButtonIconProps, ButtonProps, ButtonRadius, ButtonSize, ButtonVariant, } from './Button.js';
2
+ export { Button, useButtonContext } from './Button.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,aAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { LargeTitleHeader } from './variants/LargeTitleHeader/index.js';
2
+ import { TitleHeader } from './variants/TitleHeader/index.js';
3
+ /**
4
+ * Composite header namespace.
5
+ *
6
+ * - `Header.Title` — compact title bar ({@link TitleHeader}).
7
+ * - `Header.LargeTitle` — collapsing large-title header ({@link LargeTitleHeader}).
8
+ *
9
+ * Both are also exported standalone (`TitleHeader`, `LargeTitleHeader`).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Screen.Header>
14
+ * <Header.LargeTitle title="Meditate" />
15
+ * </Screen.Header>
16
+ * ```
17
+ */
18
+ export declare const Header: {
19
+ Title: typeof TitleHeader;
20
+ LargeTitle: typeof LargeTitleHeader;
21
+ };
22
+ //# sourceMappingURL=Header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/Header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAwB,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export type HeaderDismissAction = 'back' | 'close' | 'none';
2
+ export interface HeaderDismissNavigation {
3
+ canGoBack?: () => boolean;
4
+ goBack?: () => void;
5
+ dismiss?: () => void;
6
+ }
7
+ export interface HeaderDismissProps {
8
+ /** Adds a built-in dismiss button to the leading/trailing header slot. */
9
+ dismissAction?: HeaderDismissAction;
10
+ /** Called before any navigation fallback. */
11
+ onDismiss?: () => void;
12
+ /** Optional navigation object, usually from `useNavigation()`. */
13
+ navigation?: HeaderDismissNavigation;
14
+ }
15
+ export declare function HeaderDismissButton({ dismissAction, navigation, onDismiss, }: HeaderDismissProps): import("react").JSX.Element | null;
16
+ //# sourceMappingURL=header-buttons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-buttons.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/header-buttons.tsx"],"names":[],"mappings":"AAQA,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,kEAAkE;IAClE,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAmBD,wBAAgB,mBAAmB,CAAC,EAClC,aAAsB,EACtB,UAAU,EACV,SAAS,GACV,EAAE,kBAAkB,sCA0CpB"}
@@ -0,0 +1,7 @@
1
+ export { Header } from './Header.js';
2
+ export { type HeaderDismissAction, HeaderDismissButton, type HeaderDismissNavigation, type HeaderDismissProps, } from './header-buttons.js';
3
+ export type { LargeTitleHeaderProps } from './variants/LargeTitleHeader/index.js';
4
+ export { LargeTitleHeader } from './variants/LargeTitleHeader/index.js';
5
+ export type { TitleHeaderProps } from './variants/TitleHeader/index.js';
6
+ export { TitleHeader } from './variants/TitleHeader/index.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/header/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAU,CAAC;AAClC,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,qBAAkB,CAAC;AAC1B,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAA6B,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAA6B,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAwB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { TitleHeaderProps } from '../TitleHeader/index.js';
2
+ export interface LargeTitleHeaderProps extends TitleHeaderProps {
3
+ /** Optional secondary line shown under the large title. */
4
+ caption?: string;
5
+ /** Hide the large title (keeps the compact bar). Defaults to `false`. */
6
+ isLargeTitleHidden?: boolean;
7
+ }
8
+ /**
9
+ * iOS-style collapsing large-title header. The large title is injected (via the
10
+ * `Screen`'s portal) into the top of the scroll content, so it scrolls away
11
+ * naturally; the compact bar title cross-fades and slides in over the measured
12
+ * portal height. Native scroll snap (`snapToOffsets`) settles between expanded
13
+ * and collapsed when released mid-collapse.
14
+ *
15
+ * Must be used inside a `Screen` with a `Screen.ScrollView` / `Screen.FlatList`.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <Screen.Header>
20
+ * <Header.LargeTitle title="Meditate" caption="Good morning" />
21
+ * </Screen.Header>
22
+ * ```
23
+ */
24
+ export declare function LargeTitleHeader({ title, caption, LeftComponent, RightComponent, dismissAction, navigation, onDismiss, titleAlignment, isLargeTitleHidden, bg, }: LargeTitleHeaderProps): import("react").JSX.Element;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/LargeTitleHeader/index.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAgB,CAAC;AASvD,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AA4DD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,aAAa,EACb,cAAc,EACd,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,kBAA0B,EAC1B,EAAsB,GACvB,EAAE,qBAAqB,+BA4KvB"}
@@ -0,0 +1,28 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ColorToken } from '#theme/types';
3
+ import { type HeaderDismissProps } from '../../header-buttons.js';
4
+ export interface TitleHeaderProps extends HeaderDismissProps {
5
+ title?: string;
6
+ /** Content on the leading side (e.g. a back button). */
7
+ LeftComponent?: ReactNode;
8
+ /** Content on the trailing side (e.g. an action). */
9
+ RightComponent?: ReactNode;
10
+ /** Title placement within the bar. Defaults to `'center'`. */
11
+ titleAlignment?: 'center' | 'left';
12
+ /** Background color token. Defaults to `surface.default`. */
13
+ bg?: ColorToken;
14
+ }
15
+ /**
16
+ * Compact title bar (leading slot · title · trailing slot) with a top safe-area
17
+ * inset. The inline counterpart to `Header.LargeTitle`; use it for screens that
18
+ * don't need a collapsing large title.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <Screen.Header>
23
+ * <Header.Title title="Stats" RightComponent={<Button>Edit</Button>} />
24
+ * </Screen.Header>
25
+ * ```
26
+ */
27
+ export declare function TitleHeader({ title, LeftComponent, RightComponent, dismissAction, navigation, onDismiss, titleAlignment, bg, }: TitleHeaderProps): import("react").JSX.Element;
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/header/variants/TitleHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAY9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,yBAAsB,CAAC;AAE9B,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,qDAAqD;IACrD,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACnC,6DAA6D;IAC7D,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,aAAa,EACb,cAAc,EACd,aAAsB,EACtB,UAAU,EACV,SAAS,EACT,cAAyB,EACzB,EAAsB,GACvB,EAAE,gBAAgB,+BAsElB"}
@@ -0,0 +1,22 @@
1
+ import { type ViewProps } from 'react-native';
2
+ import type { ColorToken, TerraIconName } from '#theme/types';
3
+ export interface IconProps extends Omit<ViewProps, 'children'> {
4
+ /** Semantic or configured icon name from the theme registry. */
5
+ name: TerraIconName;
6
+ /** Icon size in density-independent pixels. Defaults to `20`. */
7
+ size?: number;
8
+ /** Theme color token or raw CSS color. Defaults to `text.default`. */
9
+ color?: ColorToken;
10
+ strokeWidth?: number;
11
+ }
12
+ /**
13
+ * Renders an icon from the Terra UI icon registry (`configureTerraUI({ icons })`
14
+ * plus built-in semantic names like `navigation.back`).
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <Icon name="navigation.close" size={24} color="text.default" />
19
+ * ```
20
+ */
21
+ export declare const Icon: import("react").ForwardRefExoticComponent<IconProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
22
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../../src/components/icon/Icon.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9D,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAC5D,gEAAgE;IAChE,IAAI,EAAE,aAAa,CAAC;IACpB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,uLA4ChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { IconProps } from './Icon.js';
2
+ export { Icon } from './Icon.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,WAAQ,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAQ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { TerraIconComponent, TerraSemanticIconName } from '#theme/types';
2
+ export declare const PersonIcon: TerraIconComponent;
3
+ export declare const defaultIcons: Record<TerraSemanticIconName, TerraIconComponent>;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/icon/utils.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAElB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAsHtB,eAAO,MAAM,UAAU,EAAE,kBAWxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAS1E,CAAC"}
@@ -0,0 +1,14 @@
1
+ export * from './avatar/index.js';
2
+ export * from './box/index.js';
3
+ export * from './button/index.js';
4
+ export * from './header/index.js';
5
+ export * from './icon/index.js';
6
+ export * from './page-indicator/index.js';
7
+ export * from './portal/index.js';
8
+ export * from './screen/index.js';
9
+ export * from './slot/index.js';
10
+ export * from './spinner/index.js';
11
+ export * from './surface/index.js';
12
+ export * from './text/index.js';
13
+ export * from './toast/index.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAU,CAAC;AACzB,cAAc,gBAAO,CAAC;AACtB,cAAc,mBAAU,CAAC;AACzB,cAAc,mBAAU,CAAC;AACzB,cAAc,iBAAQ,CAAC;AACvB,cAAc,2BAAkB,CAAC;AACjC,cAAc,mBAAU,CAAC;AACzB,cAAc,mBAAU,CAAC;AACzB,cAAc,iBAAQ,CAAC;AACvB,cAAc,oBAAW,CAAC;AAC1B,cAAc,oBAAW,CAAC;AAC1B,cAAc,iBAAQ,CAAC;AACvB,cAAc,kBAAS,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { StyleProp, ViewStyle } from 'react-native';
2
+ import type { SharedValue } from 'react-native-reanimated';
3
+ import type { ColorToken } from '#theme/types';
4
+ export type PageIndicatorVariant = 'pill' | 'dot';
5
+ type PageIndicatorCoreProps = {
6
+ /** Number of pages represented by the indicator. */
7
+ count: number;
8
+ /**
9
+ * Active page index, or a shared value for scroll-linked motion.
10
+ * Index `0` is the first page; fractional values animate between pages.
11
+ */
12
+ current?: number | SharedValue<number>;
13
+ /** Duration for discrete `current` changes. */
14
+ duration?: number;
15
+ /** Active page color token. */
16
+ activeColor?: ColorToken;
17
+ /** Inactive page color token. */
18
+ inactiveColor?: ColorToken;
19
+ /** Stack dots vertically instead of horizontally. */
20
+ vertical?: boolean;
21
+ /**
22
+ * Maximum dots visible before the track scrolls and edge-scales.
23
+ * Defaults to `5`. Overflow scrolling is off when `count <= maxVisible`.
24
+ */
25
+ maxVisible?: number;
26
+ style?: StyleProp<ViewStyle>;
27
+ };
28
+ /** Pill indicator — active page widens into a pill. Default when `variant` is omitted. */
29
+ export type PageIndicatorPillProps = PageIndicatorCoreProps & {
30
+ variant?: 'pill';
31
+ loading?: never;
32
+ loadingColor?: never;
33
+ };
34
+ /** Dot indicator — traveling dot with optional loading ring on the active page. */
35
+ export type PageIndicatorDotProps = PageIndicatorCoreProps & {
36
+ variant: 'dot';
37
+ /** Loading ring color token. */
38
+ loadingColor?: ColorToken;
39
+ /** Renders a ring around the active dot while loading. */
40
+ loading?: boolean;
41
+ };
42
+ export type PageIndicatorProps = PageIndicatorPillProps | PageIndicatorDotProps;
43
+ export declare function PageIndicator(props: PageIndicatorProps): import("react").JSX.Element;
44
+ export type { DotIndicatorProps } from './variants/DotIndicator/index.js';
45
+ export { DotIndicator } from './variants/DotIndicator/index.js';
46
+ export type { PillIndicatorProps } from './variants/PillIndicator/index.js';
47
+ export { PillIndicator } from './variants/PillIndicator/index.js';
48
+ //# sourceMappingURL=PageIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageIndicator.d.ts","sourceRoot":"","sources":["../../../../../src/components/page-indicator/PageIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD,KAAK,sBAAsB,GAAG;IAC5B,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,iCAAiC;IACjC,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,0FAA0F;AAC1F,MAAM,MAAM,sBAAsB,GAAG,sBAAsB,GAAG;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG;IAC3D,OAAO,EAAE,KAAK,CAAC;IACf,gCAAgC;IAChC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAEhF,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,+BAyCtD;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,kCAAyB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAyB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mCAA0B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAA0B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type PageIndicatorRootProps = {
4
+ children: ReactNode;
5
+ crossSize?: number;
6
+ overflows: boolean;
7
+ style?: StyleProp<ViewStyle>;
8
+ vertical: boolean;
9
+ viewportMainSize: number;
10
+ };
11
+ /** Non-interactive root with optional overflow clipping. */
12
+ export declare function PageIndicatorRoot({ children, crossSize, overflows, style, vertical, viewportMainSize, }: PageIndicatorRootProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=PageIndicatorRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageIndicatorRoot.d.ts","sourceRoot":"","sources":["../../../../../src/components/page-indicator/PageIndicatorRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,SAAS,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,QAAQ,EACR,gBAAgB,GACjB,EAAE,sBAAsB,+BAkBxB"}
@@ -0,0 +1,14 @@
1
+ import type { ColorToken } from '#theme/types';
2
+ /** Resolved color strings for Reanimated and SVG (worklets cannot use theme tokens). */
3
+ export interface ResolvedColors {
4
+ activeColor: string;
5
+ inactiveColor: string;
6
+ loadingColor: string;
7
+ }
8
+ export type PageIndicatorColorInput = {
9
+ activeColor?: ColorToken;
10
+ inactiveColor?: ColorToken;
11
+ loadingColor?: ColorToken;
12
+ };
13
+ export declare function usePageIndicatorColors(colors?: PageIndicatorColorInput): ResolvedColors;
14
+ //# sourceMappingURL=use-page-indicator-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-page-indicator-colors.d.ts","sourceRoot":"","sources":["../../../../../../src/components/page-indicator/hooks/use-page-indicator-colors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B,CAAC;AAQF,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,uBAA4B,GACnC,cAAc,CAmChB"}
@@ -0,0 +1,11 @@
1
+ import type { SharedValue } from 'react-native-reanimated';
2
+ import { type PageIndicatorColorInput } from './use-page-indicator-colors.js';
3
+ type PageIndicatorVariant = 'pill' | 'dot';
4
+ export declare function usePageIndicatorCore(count: number, current: number | SharedValue<number>, variant: PageIndicatorVariant, duration: number, colors: PageIndicatorColorInput): {
5
+ colors: import("./use-page-indicator-colors.js").ResolvedColors;
6
+ pillJump: import("./use-page-indicator-progress.js").PillJumpState;
7
+ progress: SharedValue<number>;
8
+ scrollLinked: boolean;
9
+ };
10
+ export {};
11
+ //# sourceMappingURL=use-page-indicator-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-page-indicator-core.d.ts","sourceRoot":"","sources":["../../../../../../src/components/page-indicator/hooks/use-page-indicator-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,gCAA6B,CAAC;AAGrC,KAAK,oBAAoB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3C,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,EACrC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,uBAAuB;;;;;EAkBhC"}