@rnative/ui 0.0.0-stage → 1.0.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 (422) hide show
  1. package/README.md +1 -3
  2. package/dist/components/accordion/Accordion.d.ts +31 -0
  3. package/dist/components/accordion/Accordion.d.ts.map +1 -0
  4. package/dist/components/accordion/Accordion.js +121 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/accordion/Accordion.styles.d.ts +8 -0
  7. package/dist/components/accordion/Accordion.styles.d.ts.map +1 -0
  8. package/dist/components/accordion/Accordion.styles.js +48 -0
  9. package/dist/components/accordion/Accordion.styles.js.map +1 -0
  10. package/dist/components/accordion/Accordion.types.d.ts +45 -0
  11. package/dist/components/accordion/Accordion.types.d.ts.map +1 -0
  12. package/dist/components/accordion/Accordion.types.js +9 -0
  13. package/dist/components/accordion/Accordion.types.js.map +1 -0
  14. package/dist/components/accordion/index.d.ts +6 -0
  15. package/dist/components/accordion/index.d.ts.map +1 -0
  16. package/dist/components/accordion/index.js +12 -0
  17. package/dist/components/accordion/index.js.map +1 -0
  18. package/dist/components/alert/Alert.d.ts +16 -0
  19. package/dist/components/alert/Alert.d.ts.map +1 -0
  20. package/dist/components/alert/Alert.js +28 -0
  21. package/dist/components/alert/Alert.js.map +1 -0
  22. package/dist/components/alert/Alert.styles.d.ts +8 -0
  23. package/dist/components/alert/Alert.styles.d.ts.map +1 -0
  24. package/dist/components/alert/Alert.styles.js +36 -0
  25. package/dist/components/alert/Alert.styles.js.map +1 -0
  26. package/dist/components/alert/Alert.types.d.ts +22 -0
  27. package/dist/components/alert/Alert.types.d.ts.map +1 -0
  28. package/dist/components/alert/Alert.types.js +9 -0
  29. package/dist/components/alert/Alert.types.js.map +1 -0
  30. package/dist/components/alert/Alert.variants.d.ts +19 -0
  31. package/dist/components/alert/Alert.variants.d.ts.map +1 -0
  32. package/dist/components/alert/Alert.variants.js +51 -0
  33. package/dist/components/alert/Alert.variants.js.map +1 -0
  34. package/dist/components/alert/index.d.ts +6 -0
  35. package/dist/components/alert/index.d.ts.map +1 -0
  36. package/dist/components/alert/index.js +9 -0
  37. package/dist/components/alert/index.js.map +1 -0
  38. package/dist/components/avatar/Avatar.d.ts +13 -0
  39. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  40. package/dist/components/avatar/Avatar.js +31 -0
  41. package/dist/components/avatar/Avatar.js.map +1 -0
  42. package/dist/components/avatar/Avatar.styles.d.ts +8 -0
  43. package/dist/components/avatar/Avatar.styles.d.ts.map +1 -0
  44. package/dist/components/avatar/Avatar.styles.js +22 -0
  45. package/dist/components/avatar/Avatar.styles.js.map +1 -0
  46. package/dist/components/avatar/Avatar.types.d.ts +21 -0
  47. package/dist/components/avatar/Avatar.types.d.ts.map +1 -0
  48. package/dist/components/avatar/Avatar.types.js +9 -0
  49. package/dist/components/avatar/Avatar.types.js.map +1 -0
  50. package/dist/components/avatar/Avatar.variants.d.ts +23 -0
  51. package/dist/components/avatar/Avatar.variants.d.ts.map +1 -0
  52. package/dist/components/avatar/Avatar.variants.js +48 -0
  53. package/dist/components/avatar/Avatar.variants.js.map +1 -0
  54. package/dist/components/avatar/index.d.ts +6 -0
  55. package/dist/components/avatar/index.d.ts.map +1 -0
  56. package/dist/components/avatar/index.js +9 -0
  57. package/dist/components/avatar/index.js.map +1 -0
  58. package/dist/components/badge/Badge.d.ts +12 -0
  59. package/dist/components/badge/Badge.d.ts.map +1 -0
  60. package/dist/components/badge/Badge.js +25 -0
  61. package/dist/components/badge/Badge.js.map +1 -0
  62. package/dist/components/badge/Badge.styles.d.ts +8 -0
  63. package/dist/components/badge/Badge.styles.d.ts.map +1 -0
  64. package/dist/components/badge/Badge.styles.js +32 -0
  65. package/dist/components/badge/Badge.styles.js.map +1 -0
  66. package/dist/components/badge/Badge.types.d.ts +16 -0
  67. package/dist/components/badge/Badge.types.d.ts.map +1 -0
  68. package/dist/components/badge/Badge.types.js +8 -0
  69. package/dist/components/badge/Badge.types.js.map +1 -0
  70. package/dist/components/badge/Badge.variants.d.ts +23 -0
  71. package/dist/components/badge/Badge.variants.d.ts.map +1 -0
  72. package/dist/components/badge/Badge.variants.js +48 -0
  73. package/dist/components/badge/Badge.variants.js.map +1 -0
  74. package/dist/components/badge/index.d.ts +6 -0
  75. package/dist/components/badge/index.d.ts.map +1 -0
  76. package/dist/components/badge/index.js +9 -0
  77. package/dist/components/badge/index.js.map +1 -0
  78. package/dist/components/button/Button.d.ts +16 -0
  79. package/dist/components/button/Button.d.ts.map +1 -0
  80. package/dist/components/button/Button.js +61 -0
  81. package/dist/components/button/Button.js.map +1 -0
  82. package/dist/components/button/Button.styles.d.ts +8 -0
  83. package/dist/components/button/Button.styles.d.ts.map +1 -0
  84. package/dist/components/button/Button.styles.js +18 -0
  85. package/dist/components/button/Button.styles.js.map +1 -0
  86. package/dist/components/button/Button.types.d.ts +23 -0
  87. package/dist/components/button/Button.types.d.ts.map +1 -0
  88. package/dist/components/button/Button.types.js +6 -0
  89. package/dist/components/button/Button.types.js.map +1 -0
  90. package/dist/components/button/Button.variants.d.ts +11 -0
  91. package/dist/components/button/Button.variants.d.ts.map +1 -0
  92. package/dist/components/button/Button.variants.js +65 -0
  93. package/dist/components/button/Button.variants.js.map +1 -0
  94. package/dist/components/button/index.d.ts +6 -0
  95. package/dist/components/button/index.d.ts.map +1 -0
  96. package/dist/components/button/index.js +9 -0
  97. package/dist/components/button/index.js.map +1 -0
  98. package/dist/components/card/Card.d.ts +36 -0
  99. package/dist/components/card/Card.d.ts.map +1 -0
  100. package/dist/components/card/Card.js +53 -0
  101. package/dist/components/card/Card.js.map +1 -0
  102. package/dist/components/card/Card.styles.d.ts +8 -0
  103. package/dist/components/card/Card.styles.d.ts.map +1 -0
  104. package/dist/components/card/Card.styles.js +30 -0
  105. package/dist/components/card/Card.styles.js.map +1 -0
  106. package/dist/components/card/Card.types.d.ts +22 -0
  107. package/dist/components/card/Card.types.d.ts.map +1 -0
  108. package/dist/components/card/Card.types.js +9 -0
  109. package/dist/components/card/Card.types.js.map +1 -0
  110. package/dist/components/card/Card.variants.d.ts +14 -0
  111. package/dist/components/card/Card.variants.d.ts.map +1 -0
  112. package/dist/components/card/Card.variants.js +32 -0
  113. package/dist/components/card/Card.variants.js.map +1 -0
  114. package/dist/components/card/index.d.ts +6 -0
  115. package/dist/components/card/index.d.ts.map +1 -0
  116. package/dist/components/card/index.js +14 -0
  117. package/dist/components/card/index.js.map +1 -0
  118. package/dist/components/checkbox/CheckBox.d.ts +14 -0
  119. package/dist/components/checkbox/CheckBox.d.ts.map +1 -0
  120. package/dist/components/checkbox/CheckBox.js +40 -0
  121. package/dist/components/checkbox/CheckBox.js.map +1 -0
  122. package/dist/components/checkbox/CheckBox.styles.d.ts +8 -0
  123. package/dist/components/checkbox/CheckBox.styles.d.ts.map +1 -0
  124. package/dist/components/checkbox/CheckBox.styles.js +32 -0
  125. package/dist/components/checkbox/CheckBox.styles.js.map +1 -0
  126. package/dist/components/checkbox/CheckBox.types.d.ts +24 -0
  127. package/dist/components/checkbox/CheckBox.types.d.ts.map +1 -0
  128. package/dist/components/checkbox/CheckBox.types.js +9 -0
  129. package/dist/components/checkbox/CheckBox.types.js.map +1 -0
  130. package/dist/components/checkbox/CheckBox.variants.d.ts +14 -0
  131. package/dist/components/checkbox/CheckBox.variants.d.ts.map +1 -0
  132. package/dist/components/checkbox/CheckBox.variants.js +19 -0
  133. package/dist/components/checkbox/CheckBox.variants.js.map +1 -0
  134. package/dist/components/checkbox/index.d.ts +6 -0
  135. package/dist/components/checkbox/index.d.ts.map +1 -0
  136. package/dist/components/checkbox/index.js +9 -0
  137. package/dist/components/checkbox/index.js.map +1 -0
  138. package/dist/components/combobox/ComboBox.d.ts +16 -0
  139. package/dist/components/combobox/ComboBox.d.ts.map +1 -0
  140. package/dist/components/combobox/ComboBox.js +79 -0
  141. package/dist/components/combobox/ComboBox.js.map +1 -0
  142. package/dist/components/combobox/ComboBox.styles.d.ts +8 -0
  143. package/dist/components/combobox/ComboBox.styles.d.ts.map +1 -0
  144. package/dist/components/combobox/ComboBox.styles.js +57 -0
  145. package/dist/components/combobox/ComboBox.styles.js.map +1 -0
  146. package/dist/components/combobox/ComboBox.types.d.ts +46 -0
  147. package/dist/components/combobox/ComboBox.types.d.ts.map +1 -0
  148. package/dist/components/combobox/ComboBox.types.js +9 -0
  149. package/dist/components/combobox/ComboBox.types.js.map +1 -0
  150. package/dist/components/combobox/ComboBox.variants.d.ts +22 -0
  151. package/dist/components/combobox/ComboBox.variants.d.ts.map +1 -0
  152. package/dist/components/combobox/ComboBox.variants.js +68 -0
  153. package/dist/components/combobox/ComboBox.variants.js.map +1 -0
  154. package/dist/components/combobox/index.d.ts +6 -0
  155. package/dist/components/combobox/index.d.ts.map +1 -0
  156. package/dist/components/combobox/index.js +9 -0
  157. package/dist/components/combobox/index.js.map +1 -0
  158. package/dist/components/dialog/Dialog.d.ts +36 -0
  159. package/dist/components/dialog/Dialog.d.ts.map +1 -0
  160. package/dist/components/dialog/Dialog.js +84 -0
  161. package/dist/components/dialog/Dialog.js.map +1 -0
  162. package/dist/components/dialog/Dialog.styles.d.ts +8 -0
  163. package/dist/components/dialog/Dialog.styles.d.ts.map +1 -0
  164. package/dist/components/dialog/Dialog.styles.js +52 -0
  165. package/dist/components/dialog/Dialog.styles.js.map +1 -0
  166. package/dist/components/dialog/Dialog.types.d.ts +48 -0
  167. package/dist/components/dialog/Dialog.types.d.ts.map +1 -0
  168. package/dist/components/dialog/Dialog.types.js +10 -0
  169. package/dist/components/dialog/Dialog.types.js.map +1 -0
  170. package/dist/components/dialog/Dialog.variants.d.ts +13 -0
  171. package/dist/components/dialog/Dialog.variants.d.ts.map +1 -0
  172. package/dist/components/dialog/Dialog.variants.js +19 -0
  173. package/dist/components/dialog/Dialog.variants.js.map +1 -0
  174. package/dist/components/dialog/index.d.ts +6 -0
  175. package/dist/components/dialog/index.d.ts.map +1 -0
  176. package/dist/components/dialog/index.js +14 -0
  177. package/dist/components/dialog/index.js.map +1 -0
  178. package/dist/components/fab/FAB.d.ts +14 -0
  179. package/dist/components/fab/FAB.d.ts.map +1 -0
  180. package/dist/components/fab/FAB.js +46 -0
  181. package/dist/components/fab/FAB.js.map +1 -0
  182. package/dist/components/fab/FAB.styles.d.ts +8 -0
  183. package/dist/components/fab/FAB.styles.d.ts.map +1 -0
  184. package/dist/components/fab/FAB.styles.js +51 -0
  185. package/dist/components/fab/FAB.styles.js.map +1 -0
  186. package/dist/components/fab/FAB.types.d.ts +23 -0
  187. package/dist/components/fab/FAB.types.d.ts.map +1 -0
  188. package/dist/components/fab/FAB.types.js +8 -0
  189. package/dist/components/fab/FAB.types.js.map +1 -0
  190. package/dist/components/fab/FAB.variants.d.ts +48 -0
  191. package/dist/components/fab/FAB.variants.d.ts.map +1 -0
  192. package/dist/components/fab/FAB.variants.js +43 -0
  193. package/dist/components/fab/FAB.variants.js.map +1 -0
  194. package/dist/components/fab/index.d.ts +6 -0
  195. package/dist/components/fab/index.d.ts.map +1 -0
  196. package/dist/components/fab/index.js +9 -0
  197. package/dist/components/fab/index.js.map +1 -0
  198. package/dist/components/index.d.ts +30 -0
  199. package/dist/components/index.d.ts.map +1 -0
  200. package/dist/components/index.js +46 -0
  201. package/dist/components/index.js.map +1 -0
  202. package/dist/components/input/Input.d.ts +17 -0
  203. package/dist/components/input/Input.d.ts.map +1 -0
  204. package/dist/components/input/Input.js +59 -0
  205. package/dist/components/input/Input.js.map +1 -0
  206. package/dist/components/input/Input.styles.d.ts +8 -0
  207. package/dist/components/input/Input.styles.d.ts.map +1 -0
  208. package/dist/components/input/Input.styles.js +25 -0
  209. package/dist/components/input/Input.styles.js.map +1 -0
  210. package/dist/components/input/Input.types.d.ts +25 -0
  211. package/dist/components/input/Input.types.d.ts.map +1 -0
  212. package/dist/components/input/Input.types.js +9 -0
  213. package/dist/components/input/Input.types.js.map +1 -0
  214. package/dist/components/input/Input.variants.d.ts +23 -0
  215. package/dist/components/input/Input.variants.d.ts.map +1 -0
  216. package/dist/components/input/Input.variants.js +61 -0
  217. package/dist/components/input/Input.variants.js.map +1 -0
  218. package/dist/components/input/index.d.ts +6 -0
  219. package/dist/components/input/index.d.ts.map +1 -0
  220. package/dist/components/input/index.js +9 -0
  221. package/dist/components/input/index.js.map +1 -0
  222. package/dist/components/separator/Separator.d.ts +17 -0
  223. package/dist/components/separator/Separator.d.ts.map +1 -0
  224. package/dist/components/separator/Separator.js +46 -0
  225. package/dist/components/separator/Separator.js.map +1 -0
  226. package/dist/components/separator/Separator.styles.d.ts +8 -0
  227. package/dist/components/separator/Separator.styles.d.ts.map +1 -0
  228. package/dist/components/separator/Separator.styles.js +25 -0
  229. package/dist/components/separator/Separator.styles.js.map +1 -0
  230. package/dist/components/separator/Separator.types.d.ts +25 -0
  231. package/dist/components/separator/Separator.types.d.ts.map +1 -0
  232. package/dist/components/separator/Separator.types.js +8 -0
  233. package/dist/components/separator/Separator.types.js.map +1 -0
  234. package/dist/components/separator/index.d.ts +6 -0
  235. package/dist/components/separator/index.d.ts.map +1 -0
  236. package/dist/components/separator/index.js +9 -0
  237. package/dist/components/separator/index.js.map +1 -0
  238. package/dist/components/text/Text.d.ts +18 -0
  239. package/dist/components/text/Text.d.ts.map +1 -0
  240. package/dist/components/text/Text.js +45 -0
  241. package/dist/components/text/Text.js.map +1 -0
  242. package/dist/components/text/Text.types.d.ts +14 -0
  243. package/dist/components/text/Text.types.d.ts.map +1 -0
  244. package/dist/components/text/Text.types.js +10 -0
  245. package/dist/components/text/Text.types.js.map +1 -0
  246. package/dist/components/text/Text.variants.d.ts +23 -0
  247. package/dist/components/text/Text.variants.d.ts.map +1 -0
  248. package/dist/components/text/Text.variants.js +32 -0
  249. package/dist/components/text/Text.variants.js.map +1 -0
  250. package/dist/components/text/index.d.ts +6 -0
  251. package/dist/components/text/index.d.ts.map +1 -0
  252. package/dist/components/text/index.js +9 -0
  253. package/dist/components/text/index.js.map +1 -0
  254. package/dist/design-tokens/animation.d.ts +22 -0
  255. package/dist/design-tokens/animation.d.ts.map +1 -0
  256. package/dist/design-tokens/animation.js +23 -0
  257. package/dist/design-tokens/animation.js.map +1 -0
  258. package/dist/design-tokens/border-radius.d.ts +15 -0
  259. package/dist/design-tokens/border-radius.d.ts.map +1 -0
  260. package/dist/design-tokens/border-radius.js +17 -0
  261. package/dist/design-tokens/border-radius.js.map +1 -0
  262. package/dist/design-tokens/colors.d.ts +179 -0
  263. package/dist/design-tokens/colors.d.ts.map +1 -0
  264. package/dist/design-tokens/colors.js +109 -0
  265. package/dist/design-tokens/colors.js.map +1 -0
  266. package/dist/design-tokens/index.d.ts +16 -0
  267. package/dist/design-tokens/index.d.ts.map +1 -0
  268. package/dist/design-tokens/index.js +32 -0
  269. package/dist/design-tokens/index.js.map +1 -0
  270. package/dist/design-tokens/shadows.d.ts +103 -0
  271. package/dist/design-tokens/shadows.d.ts.map +1 -0
  272. package/dist/design-tokens/shadows.js +75 -0
  273. package/dist/design-tokens/shadows.js.map +1 -0
  274. package/dist/design-tokens/spacing.d.ts +30 -0
  275. package/dist/design-tokens/spacing.d.ts.map +1 -0
  276. package/dist/design-tokens/spacing.js +32 -0
  277. package/dist/design-tokens/spacing.js.map +1 -0
  278. package/dist/design-tokens/typography.d.ts +40 -0
  279. package/dist/design-tokens/typography.d.ts.map +1 -0
  280. package/dist/design-tokens/typography.js +40 -0
  281. package/dist/design-tokens/typography.js.map +1 -0
  282. package/dist/primitives/Box.d.ts +38 -0
  283. package/dist/primitives/Box.d.ts.map +1 -0
  284. package/dist/primitives/Box.js +70 -0
  285. package/dist/primitives/Box.js.map +1 -0
  286. package/dist/primitives/Pressable.d.ts +30 -0
  287. package/dist/primitives/Pressable.d.ts.map +1 -0
  288. package/dist/primitives/Pressable.js +48 -0
  289. package/dist/primitives/Pressable.js.map +1 -0
  290. package/dist/primitives/Text.d.ts +23 -0
  291. package/dist/primitives/Text.d.ts.map +1 -0
  292. package/dist/primitives/Text.js +42 -0
  293. package/dist/primitives/Text.js.map +1 -0
  294. package/dist/primitives/index.d.ts +14 -0
  295. package/dist/primitives/index.d.ts.map +1 -0
  296. package/dist/primitives/index.js +16 -0
  297. package/dist/primitives/index.js.map +1 -0
  298. package/dist/theme/ThemeContext.d.ts +10 -0
  299. package/dist/theme/ThemeContext.d.ts.map +1 -0
  300. package/dist/theme/ThemeContext.js +19 -0
  301. package/dist/theme/ThemeContext.js.map +1 -0
  302. package/dist/theme/ThemeProvider.d.ts +23 -0
  303. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  304. package/dist/theme/ThemeProvider.js +87 -0
  305. package/dist/theme/ThemeProvider.js.map +1 -0
  306. package/dist/theme/index.d.ts +9 -0
  307. package/dist/theme/index.d.ts.map +1 -0
  308. package/dist/theme/index.js +14 -0
  309. package/dist/theme/index.js.map +1 -0
  310. package/dist/theme/themes.d.ts +20 -0
  311. package/dist/theme/themes.d.ts.map +1 -0
  312. package/dist/theme/themes.js +65 -0
  313. package/dist/theme/themes.js.map +1 -0
  314. package/dist/theme/types.d.ts +92 -0
  315. package/dist/theme/types.d.ts.map +1 -0
  316. package/dist/theme/types.js +9 -0
  317. package/dist/theme/types.js.map +1 -0
  318. package/dist/theme/useTheme.d.ts +7 -0
  319. package/dist/theme/useTheme.d.ts.map +1 -0
  320. package/dist/theme/useTheme.js +9 -0
  321. package/dist/theme/useTheme.js.map +1 -0
  322. package/dist/utils/cn.d.ts +16 -0
  323. package/dist/utils/cn.d.ts.map +1 -0
  324. package/dist/utils/cn.js +33 -0
  325. package/dist/utils/cn.js.map +1 -0
  326. package/dist/utils/createVariants.d.ts +32 -0
  327. package/dist/utils/createVariants.d.ts.map +1 -0
  328. package/dist/utils/createVariants.js +26 -0
  329. package/dist/utils/createVariants.js.map +1 -0
  330. package/dist/utils/index.d.ts +7 -0
  331. package/dist/utils/index.d.ts.map +1 -0
  332. package/dist/utils/index.js +13 -0
  333. package/dist/utils/index.js.map +1 -0
  334. package/dist/utils/mergeProps.d.ts +10 -0
  335. package/dist/utils/mergeProps.d.ts.map +1 -0
  336. package/dist/utils/mergeProps.js +31 -0
  337. package/dist/utils/mergeProps.js.map +1 -0
  338. package/package.json +46 -3
  339. package/src/components/accordion/Accordion.styles.ts +46 -0
  340. package/src/components/accordion/Accordion.tsx +247 -0
  341. package/src/components/accordion/Accordion.types.ts +52 -0
  342. package/src/components/accordion/index.ts +17 -0
  343. package/src/components/alert/Alert.styles.ts +34 -0
  344. package/src/components/alert/Alert.tsx +87 -0
  345. package/src/components/alert/Alert.types.ts +24 -0
  346. package/src/components/alert/Alert.variants.ts +57 -0
  347. package/src/components/alert/index.ts +6 -0
  348. package/src/components/avatar/Avatar.styles.ts +20 -0
  349. package/src/components/avatar/Avatar.tsx +74 -0
  350. package/src/components/avatar/Avatar.types.ts +24 -0
  351. package/src/components/avatar/Avatar.variants.ts +55 -0
  352. package/src/components/avatar/index.ts +6 -0
  353. package/src/components/badge/Badge.styles.ts +30 -0
  354. package/src/components/badge/Badge.tsx +47 -0
  355. package/src/components/badge/Badge.types.ts +24 -0
  356. package/src/components/badge/Badge.variants.ts +62 -0
  357. package/src/components/badge/index.ts +6 -0
  358. package/src/components/button/Button.styles.ts +16 -0
  359. package/src/components/button/Button.tsx +108 -0
  360. package/src/components/button/Button.types.ts +30 -0
  361. package/src/components/button/Button.variants.ts +68 -0
  362. package/src/components/button/index.ts +6 -0
  363. package/src/components/card/Card.styles.ts +28 -0
  364. package/src/components/card/Card.tsx +112 -0
  365. package/src/components/card/Card.types.ts +26 -0
  366. package/src/components/card/Card.variants.ts +38 -0
  367. package/src/components/card/index.ts +18 -0
  368. package/src/components/checkbox/CheckBox.styles.ts +30 -0
  369. package/src/components/checkbox/CheckBox.tsx +98 -0
  370. package/src/components/checkbox/CheckBox.types.ts +26 -0
  371. package/src/components/checkbox/CheckBox.variants.ts +25 -0
  372. package/src/components/checkbox/index.ts +6 -0
  373. package/src/components/combobox/ComboBox.styles.ts +55 -0
  374. package/src/components/combobox/ComboBox.tsx +224 -0
  375. package/src/components/combobox/ComboBox.types.ts +51 -0
  376. package/src/components/combobox/ComboBox.variants.ts +82 -0
  377. package/src/components/combobox/index.ts +6 -0
  378. package/src/components/dialog/Dialog.styles.ts +50 -0
  379. package/src/components/dialog/Dialog.tsx +221 -0
  380. package/src/components/dialog/Dialog.types.ts +55 -0
  381. package/src/components/dialog/Dialog.variants.ts +24 -0
  382. package/src/components/dialog/index.ts +20 -0
  383. package/src/components/fab/FAB.styles.ts +49 -0
  384. package/src/components/fab/FAB.tsx +84 -0
  385. package/src/components/fab/FAB.types.ts +31 -0
  386. package/src/components/fab/FAB.variants.ts +55 -0
  387. package/src/components/fab/index.ts +6 -0
  388. package/src/components/index.ts +88 -0
  389. package/src/components/input/Input.styles.ts +23 -0
  390. package/src/components/input/Input.tsx +139 -0
  391. package/src/components/input/Input.types.ts +28 -0
  392. package/src/components/input/Input.variants.ts +71 -0
  393. package/src/components/input/index.ts +6 -0
  394. package/src/components/separator/Separator.styles.ts +23 -0
  395. package/src/components/separator/Separator.tsx +70 -0
  396. package/src/components/separator/Separator.types.ts +28 -0
  397. package/src/components/separator/index.ts +10 -0
  398. package/src/components/text/Text.tsx +75 -0
  399. package/src/components/text/Text.types.ts +27 -0
  400. package/src/components/text/Text.variants.ts +44 -0
  401. package/src/components/text/index.ts +6 -0
  402. package/src/design-tokens/animation.ts +23 -0
  403. package/src/design-tokens/border-radius.ts +16 -0
  404. package/src/design-tokens/colors.ts +120 -0
  405. package/src/design-tokens/index.ts +21 -0
  406. package/src/design-tokens/shadows.ts +78 -0
  407. package/src/design-tokens/spacing.ts +31 -0
  408. package/src/design-tokens/typography.ts +45 -0
  409. package/src/primitives/Box.tsx +121 -0
  410. package/src/primitives/Pressable.tsx +106 -0
  411. package/src/primitives/Text.tsx +84 -0
  412. package/src/primitives/index.ts +15 -0
  413. package/src/theme/ThemeContext.ts +20 -0
  414. package/src/theme/ThemeProvider.tsx +152 -0
  415. package/src/theme/index.ts +9 -0
  416. package/src/theme/themes.ts +71 -0
  417. package/src/theme/types.ts +89 -0
  418. package/src/theme/useTheme.ts +7 -0
  419. package/src/utils/cn.ts +37 -0
  420. package/src/utils/createVariants.ts +47 -0
  421. package/src/utils/index.ts +7 -0
  422. package/src/utils/mergeProps.ts +35 -0
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ANAN-UI — Component: CheckBox Styles
3
+ *
4
+ * Static styles created with StyleSheet.create. Box size, border, and check
5
+ * mark color are resolved from the theme at render time via CheckBox.variants.
6
+ */
7
+
8
+ import { StyleSheet } from 'react-native';
9
+ import { spacing, borderRadius } from '../../design-tokens';
10
+
11
+ export const checkBoxStyles = StyleSheet.create({
12
+ root: {
13
+ flexDirection: 'row',
14
+ alignItems: 'center',
15
+ gap: spacing[2],
16
+ },
17
+ box: {
18
+ alignItems: 'center',
19
+ justifyContent: 'center',
20
+ borderWidth: 2,
21
+ borderRadius: borderRadius.sm,
22
+ },
23
+ check: {
24
+ fontSize: 14,
25
+ lineHeight: 16,
26
+ },
27
+ label: {
28
+ flex: 1,
29
+ },
30
+ });
@@ -0,0 +1,98 @@
1
+ /**
2
+ * ANAN-UI — Component: CheckBox
3
+ *
4
+ * A checkbox with controlled/uncontrolled state, optional label, and full
5
+ * accessibility. The whole row is the pressable touch target (≥44dp via
6
+ * `hitSlop`) and exposes `accessibilityRole="checkbox"` with
7
+ * `accessibilityState={{ checked, disabled }}`.
8
+ */
9
+
10
+ import { useState, useCallback } from 'react';
11
+ import { Pressable, View } from 'react-native';
12
+ import { useTheme } from '../../theme';
13
+ import { cn } from '../../utils/cn';
14
+ import { TextPrimitive } from '../../primitives/Text';
15
+ import { getCheckBoxVariants } from './CheckBox.variants';
16
+ import { checkBoxStyles } from './CheckBox.styles';
17
+ import type { CheckBoxProps, CheckBoxSize } from './CheckBox.types';
18
+
19
+ export function CheckBox({
20
+ checked: checkedProp,
21
+ defaultChecked = false,
22
+ onCheckedChange,
23
+ disabled = false,
24
+ label,
25
+ size: sizeProp,
26
+ style,
27
+ labelStyle,
28
+ ...rest
29
+ }: CheckBoxProps) {
30
+ const { theme } = useTheme();
31
+ const isControlled = checkedProp !== undefined;
32
+
33
+ const [internal, setInternal] = useState(defaultChecked);
34
+ const checked = isControlled ? checkedProp : internal;
35
+
36
+ const { size, defaultSize } = getCheckBoxVariants(theme);
37
+ const sizeKey: CheckBoxSize = sizeProp ?? defaultSize;
38
+
39
+ const handlePress = useCallback(() => {
40
+ if (disabled) return;
41
+ const next = !checked;
42
+ if (!isControlled) setInternal(next);
43
+ onCheckedChange?.(next);
44
+ }, [checked, disabled, isControlled, onCheckedChange]);
45
+
46
+ const borderColor = checked ? theme.colors.primary : theme.colors.border;
47
+ const bgColor = checked ? theme.colors.primary : 'transparent';
48
+
49
+ return (
50
+ <Pressable
51
+ {...rest}
52
+ onPress={handlePress}
53
+ disabled={disabled}
54
+ accessibilityRole="checkbox"
55
+ accessibilityState={{ checked, disabled }}
56
+ accessibilityLabel={label}
57
+ hitSlop={12}
58
+ style={cn(
59
+ checkBoxStyles.root,
60
+ disabled && { opacity: 0.5 },
61
+ style,
62
+ )}
63
+ >
64
+ <View
65
+ accessibilityElementsHidden
66
+ importantForAccessibility="no-hide-descendants"
67
+ style={cn(
68
+ checkBoxStyles.box,
69
+ size[sizeKey],
70
+ { borderColor, backgroundColor: bgColor },
71
+ )}
72
+ >
73
+ {checked && (
74
+ <TextPrimitive
75
+ color="primaryForeground"
76
+ fontSize={sizeKey === 'sm' ? 'xs' : 'sm'}
77
+ fontWeight="bold"
78
+ style={checkBoxStyles.check}
79
+ >
80
+ {'\u2713'}
81
+ </TextPrimitive>
82
+ )}
83
+ </View>
84
+
85
+ {label !== undefined && (
86
+ <TextPrimitive
87
+ color={disabled ? 'mutedForeground' : 'foreground'}
88
+ fontSize="base"
89
+ style={cn(checkBoxStyles.label, labelStyle)}
90
+ >
91
+ {label}
92
+ </TextPrimitive>
93
+ )}
94
+ </Pressable>
95
+ );
96
+ }
97
+
98
+ CheckBox.displayName = 'CheckBox';
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ANAN-UI — Component: CheckBox Types
3
+ *
4
+ * A checkbox input with controlled/uncontrolled state, label support, and
5
+ * full accessibility.
6
+ */
7
+
8
+ import type { ViewProps, StyleProp, ViewStyle, TextStyle } from 'react-native';
9
+
10
+ export type CheckBoxSize = 'sm' | 'default' | 'lg';
11
+
12
+ export interface CheckBoxProps extends Omit<ViewProps, 'style' | 'onChange'> {
13
+ /** Controlled checked state. */
14
+ checked?: boolean;
15
+ /** Uncontrolled default checked state. */
16
+ defaultChecked?: boolean;
17
+ /** Called when the checked state changes. */
18
+ onCheckedChange?: (checked: boolean) => void;
19
+ disabled?: boolean;
20
+ /** Optional label rendered after the checkbox. */
21
+ label?: string;
22
+ size?: CheckBoxSize;
23
+ style?: StyleProp<ViewStyle>;
24
+ /** Style applied to the label text. */
25
+ labelStyle?: StyleProp<TextStyle>;
26
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * ANAN-UI — Component: CheckBox Variants
3
+ *
4
+ * Size style definitions resolved against the active theme at render time.
5
+ */
6
+
7
+ import type { ViewStyle } from 'react-native';
8
+ import type { Theme } from '../../theme/types';
9
+ import type { CheckBoxSize } from './CheckBox.types';
10
+
11
+ export interface CheckBoxVariantConfig {
12
+ size: Record<CheckBoxSize, ViewStyle>;
13
+ defaultSize: CheckBoxSize;
14
+ }
15
+
16
+ export function getCheckBoxVariants(theme: Theme): CheckBoxVariantConfig {
17
+ return {
18
+ size: {
19
+ sm: { width: 18, height: 18 },
20
+ default: { width: 22, height: 22 },
21
+ lg: { width: 28, height: 28 },
22
+ },
23
+ defaultSize: 'default',
24
+ };
25
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ANAN-UI — Component: CheckBox Barrel Export
3
+ */
4
+
5
+ export { CheckBox } from './CheckBox';
6
+ export type { CheckBoxProps, CheckBoxSize } from './CheckBox.types';
@@ -0,0 +1,55 @@
1
+ /**
2
+ * ANAN-UI — Component: ComboBox Styles
3
+ *
4
+ * Static styles created with StyleSheet.create. The trigger field and
5
+ * dropdown colors are resolved from the theme at render time.
6
+ */
7
+
8
+ import { StyleSheet } from 'react-native';
9
+ import { spacing, borderRadius, resolveShadow } from '../../design-tokens';
10
+
11
+ export const comboBoxStyles = StyleSheet.create({
12
+ container: {
13
+ width: '100%',
14
+ },
15
+ fieldContainer: {
16
+ flexDirection: 'row',
17
+ alignItems: 'center',
18
+ justifyContent: 'space-between',
19
+ gap: spacing[2],
20
+ width: '100%',
21
+ },
22
+ fieldText: {
23
+ flex: 1,
24
+ },
25
+ label: {
26
+ marginBottom: spacing[1],
27
+ },
28
+ message: {
29
+ marginTop: spacing[1],
30
+ },
31
+ backdrop: {
32
+ flex: 1,
33
+ justifyContent: 'flex-end',
34
+ padding: spacing[4],
35
+ backgroundColor: 'rgba(0, 0, 0, 0.4)',
36
+ },
37
+ dropdown: {
38
+ width: '100%',
39
+ borderRadius: borderRadius.lg,
40
+ borderWidth: 1,
41
+ overflow: 'hidden',
42
+ ...resolveShadow('md'),
43
+ },
44
+ option: {
45
+ flexDirection: 'row',
46
+ alignItems: 'center',
47
+ justifyContent: 'space-between',
48
+ paddingHorizontal: spacing[4],
49
+ paddingVertical: spacing[3],
50
+ minHeight: 44,
51
+ },
52
+ optionText: {
53
+ flex: 1,
54
+ },
55
+ });
@@ -0,0 +1,224 @@
1
+ /**
2
+ * ANAN-UI — Component: ComboBox
3
+ *
4
+ * A combobox (select) with a dropdown presented in a Modal. The trigger field
5
+ * mirrors Input's variant/size/error API. Options are shown in a modal card
6
+ * anchored to the bottom of the screen (reliable across platforms without
7
+ * measuring the trigger). The trigger exposes `accessibilityRole="combobox"`
8
+ * with `accessibilityState={{ expanded, disabled }}`; options are `menuitem`s
9
+ * with a `selected` state.
10
+ */
11
+
12
+ import { useState, useCallback, useEffect } from 'react';
13
+ import { View, Modal, Pressable, BackHandler } from 'react-native';
14
+ import { useTheme } from '../../theme';
15
+ import { cn } from '../../utils/cn';
16
+ import { TextPrimitive } from '../../primitives/Text';
17
+ import { getComboBoxVariants } from './ComboBox.variants';
18
+ import { comboBoxStyles } from './ComboBox.styles';
19
+ import type {
20
+ ComboBoxProps,
21
+ ComboBoxVariant,
22
+ ComboBoxSize,
23
+ ComboBoxOption,
24
+ } from './ComboBox.types';
25
+
26
+ export function ComboBox({
27
+ options,
28
+ placeholder = 'Select',
29
+ value: valueProp,
30
+ defaultValue,
31
+ onValueChange,
32
+ error,
33
+ label,
34
+ hint,
35
+ variant: variantProp,
36
+ size: sizeProp,
37
+ disabled = false,
38
+ style,
39
+ fieldStyle,
40
+ dropdownStyle,
41
+ optionStyle,
42
+ ...rest
43
+ }: ComboBoxProps) {
44
+ const { theme } = useTheme();
45
+ const isControlled = valueProp !== undefined;
46
+ const [internal, setInternal] = useState(defaultValue ?? '');
47
+ const value = isControlled ? valueProp ?? '' : internal;
48
+ const [open, setOpen] = useState(false);
49
+
50
+ const { variant, size, textSize, defaultVariant, defaultSize } =
51
+ getComboBoxVariants(theme);
52
+ const variantKey: ComboBoxVariant = variantProp ?? defaultVariant;
53
+ const sizeKey: ComboBoxSize = sizeProp ?? defaultSize;
54
+
55
+ const hasError = error !== undefined && error.length > 0;
56
+ const message = hasError ? error : hint;
57
+
58
+ // Close on Android hardware back.
59
+ useEffect(() => {
60
+ if (!open) return;
61
+ const sub = BackHandler.addEventListener('hardwareBackPress', () => {
62
+ setOpen(false);
63
+ return true;
64
+ });
65
+ return () => sub.remove();
66
+ }, [open]);
67
+
68
+ const selectedOption = options.find((o) => o.value === value);
69
+ const displayText = selectedOption?.label ?? placeholder;
70
+ const isPlaceholder = selectedOption === undefined;
71
+
72
+ const handleOpen = useCallback(() => {
73
+ if (!disabled) setOpen(true);
74
+ }, [disabled]);
75
+
76
+ const handleClose = useCallback(() => setOpen(false), []);
77
+
78
+ const handleSelect = useCallback(
79
+ (opt: ComboBoxOption) => {
80
+ if (opt.disabled) return;
81
+ if (!isControlled) setInternal(opt.value);
82
+ onValueChange?.(opt.value);
83
+ setOpen(false);
84
+ },
85
+ [isControlled, onValueChange],
86
+ );
87
+
88
+ const baseBorder = variant[variantKey].container.borderColor ?? 'transparent';
89
+ const borderColor = hasError
90
+ ? theme.colors.destructive
91
+ : open
92
+ ? theme.colors.ring
93
+ : baseBorder;
94
+
95
+ return (
96
+ <View {...rest} style={cn(comboBoxStyles.container, style)}>
97
+ {label !== undefined && (
98
+ <TextPrimitive
99
+ color={disabled ? 'mutedForeground' : 'foreground'}
100
+ fontSize="sm"
101
+ fontWeight="medium"
102
+ style={comboBoxStyles.label}
103
+ >
104
+ {label}
105
+ </TextPrimitive>
106
+ )}
107
+
108
+ <Pressable
109
+ onPress={handleOpen}
110
+ disabled={disabled}
111
+ accessibilityRole="combobox"
112
+ accessibilityState={{ expanded: open, disabled }}
113
+ accessibilityLabel={label ?? placeholder}
114
+ style={cn(
115
+ comboBoxStyles.fieldContainer,
116
+ variant[variantKey].container,
117
+ size[sizeKey],
118
+ { borderColor },
119
+ disabled && { opacity: 0.5 },
120
+ fieldStyle,
121
+ )}
122
+ >
123
+ <TextPrimitive
124
+ color={isPlaceholder ? 'mutedForeground' : 'foreground'}
125
+ numberOfLines={1}
126
+ style={cn(comboBoxStyles.fieldText, textSize[sizeKey])}
127
+ >
128
+ {displayText}
129
+ </TextPrimitive>
130
+
131
+ <TextPrimitive
132
+ color="mutedForeground"
133
+ fontSize={sizeKey === 'sm' ? 'xs' : sizeKey === 'lg' ? 'lg' : 'base'}
134
+ accessibilityElementsHidden
135
+ importantForAccessibility="no-hide-descendants"
136
+ >
137
+ {'\u25BC'}
138
+ </TextPrimitive>
139
+ </Pressable>
140
+
141
+ {message !== undefined && (
142
+ <TextPrimitive
143
+ color={hasError ? 'destructive' : 'mutedForeground'}
144
+ fontSize="sm"
145
+ style={comboBoxStyles.message}
146
+ accessibilityRole={hasError ? 'alert' : 'text'}
147
+ >
148
+ {message}
149
+ </TextPrimitive>
150
+ )}
151
+
152
+ <Modal
153
+ visible={open}
154
+ animationType="fade"
155
+ transparent
156
+ onRequestClose={handleClose}
157
+ supportedOrientations={[
158
+ 'portrait',
159
+ 'landscape-left',
160
+ 'landscape-right',
161
+ 'portrait-upside-down',
162
+ ]}
163
+ >
164
+ <Pressable
165
+ style={comboBoxStyles.backdrop}
166
+ onPress={handleClose}
167
+ accessibilityLabel="Close options"
168
+ accessibilityRole="button"
169
+ >
170
+ <View
171
+ style={cn(
172
+ comboBoxStyles.dropdown,
173
+ {
174
+ backgroundColor: theme.colors.card,
175
+ borderColor: theme.colors.border,
176
+ },
177
+ dropdownStyle,
178
+ )}
179
+ >
180
+ {options.map((opt) => {
181
+ const selected = opt.value === value;
182
+ return (
183
+ <Pressable
184
+ key={opt.value}
185
+ onPress={() => handleSelect(opt)}
186
+ disabled={opt.disabled}
187
+ accessibilityRole="menuitem"
188
+ accessibilityState={{ selected, disabled: opt.disabled }}
189
+ style={cn(
190
+ comboBoxStyles.option,
191
+ selected && { backgroundColor: theme.colors.muted },
192
+ opt.disabled && { opacity: 0.4 },
193
+ optionStyle,
194
+ )}
195
+ >
196
+ <TextPrimitive
197
+ fontSize="base"
198
+ color={opt.disabled ? 'mutedForeground' : 'foreground'}
199
+ style={comboBoxStyles.optionText}
200
+ >
201
+ {opt.label}
202
+ </TextPrimitive>
203
+ {selected && (
204
+ <TextPrimitive
205
+ color="primary"
206
+ fontSize="sm"
207
+ fontWeight="bold"
208
+ accessibilityElementsHidden
209
+ importantForAccessibility="no-hide-descendants"
210
+ >
211
+ {'\u2713'}
212
+ </TextPrimitive>
213
+ )}
214
+ </Pressable>
215
+ );
216
+ })}
217
+ </View>
218
+ </Pressable>
219
+ </Modal>
220
+ </View>
221
+ );
222
+ }
223
+
224
+ ComboBox.displayName = 'ComboBox';
@@ -0,0 +1,51 @@
1
+ /**
2
+ * ANAN-UI — Component: ComboBox Types
3
+ *
4
+ * A combobox (select) with dropdown rendered in a Modal. Mirrors Input's
5
+ * variant/size/error API for the trigger field.
6
+ */
7
+
8
+ import type { ViewProps, StyleProp, ViewStyle, TextStyle } from 'react-native';
9
+ import type { ReactNode } from 'react';
10
+
11
+ export interface ComboBoxOption {
12
+ /** Unique value for this option. */
13
+ value: string;
14
+ /** Visible label. */
15
+ label: string;
16
+ /** Disables this option. */
17
+ disabled?: boolean;
18
+ }
19
+
20
+ export type ComboBoxVariant = 'outline' | 'filled' | 'ghost';
21
+
22
+ export type ComboBoxSize = 'sm' | 'default' | 'lg';
23
+
24
+ export interface ComboBoxProps extends Omit<ViewProps, 'style' | 'onChange'> {
25
+ /** List of options. */
26
+ options: ComboBoxOption[];
27
+ /** Placeholder shown when no value is selected. */
28
+ placeholder?: string;
29
+ /** Controlled selected value. */
30
+ value?: string;
31
+ /** Uncontrolled default selected value. */
32
+ defaultValue?: string;
33
+ /** Called when the selection changes. */
34
+ onValueChange?: (value: string) => void;
35
+ /** Error message; shows destructive border and announces error. */
36
+ error?: string;
37
+ /** Optional label above the trigger field. */
38
+ label?: string;
39
+ /** Optional hint below the trigger field (hidden when error is set). */
40
+ hint?: string;
41
+ variant?: ComboBoxVariant;
42
+ size?: ComboBoxSize;
43
+ disabled?: boolean;
44
+ style?: StyleProp<ViewStyle>;
45
+ /** Style applied to the trigger field container. */
46
+ fieldStyle?: StyleProp<ViewStyle>;
47
+ /** Style applied to the dropdown container. */
48
+ dropdownStyle?: StyleProp<ViewStyle>;
49
+ /** Style applied to each option text. */
50
+ optionStyle?: StyleProp<TextStyle>;
51
+ }
@@ -0,0 +1,82 @@
1
+ /**
2
+ * ANAN-UI — Component: ComboBox Variants
3
+ *
4
+ * Variant/size style definitions for the trigger field, resolved against the
5
+ * active theme at render time.
6
+ */
7
+
8
+ import type { TextStyle, ViewStyle } from 'react-native';
9
+ import type { Theme } from '../../theme/types';
10
+ import type { ComboBoxVariant, ComboBoxSize } from './ComboBox.types';
11
+ import { spacing, borderRadius } from '../../design-tokens';
12
+
13
+ export interface ComboBoxFieldVariantEntry {
14
+ container: ViewStyle;
15
+ text: TextStyle;
16
+ }
17
+
18
+ export interface ComboBoxVariantsConfig {
19
+ variant: Record<ComboBoxVariant, ComboBoxFieldVariantEntry>;
20
+ size: Record<ComboBoxSize, ViewStyle>;
21
+ textSize: Record<ComboBoxSize, TextStyle>;
22
+ defaultVariant: ComboBoxVariant;
23
+ defaultSize: ComboBoxSize;
24
+ }
25
+
26
+ export function getComboBoxVariants(theme: Theme): ComboBoxVariantsConfig {
27
+ return {
28
+ variant: {
29
+ outline: {
30
+ container: {
31
+ borderWidth: 1,
32
+ borderColor: theme.colors.border,
33
+ backgroundColor: theme.colors.card,
34
+ },
35
+ text: { color: theme.colors.foreground },
36
+ },
37
+ filled: {
38
+ container: {
39
+ borderWidth: 1,
40
+ borderColor: 'transparent',
41
+ backgroundColor: theme.colors.muted,
42
+ },
43
+ text: { color: theme.colors.foreground },
44
+ },
45
+ ghost: {
46
+ container: {
47
+ borderWidth: 1,
48
+ borderColor: 'transparent',
49
+ backgroundColor: 'transparent',
50
+ },
51
+ text: { color: theme.colors.foreground },
52
+ },
53
+ },
54
+ size: {
55
+ sm: {
56
+ minHeight: 32,
57
+ paddingHorizontal: spacing[2],
58
+ paddingVertical: spacing[1],
59
+ borderRadius: borderRadius.md,
60
+ },
61
+ default: {
62
+ minHeight: 40,
63
+ paddingHorizontal: spacing[3],
64
+ paddingVertical: spacing[2],
65
+ borderRadius: borderRadius.md,
66
+ },
67
+ lg: {
68
+ minHeight: 48,
69
+ paddingHorizontal: spacing[4],
70
+ paddingVertical: spacing[3],
71
+ borderRadius: borderRadius.lg,
72
+ },
73
+ },
74
+ textSize: {
75
+ sm: { fontSize: theme.typography.fontSize.sm },
76
+ default: { fontSize: theme.typography.fontSize.base },
77
+ lg: { fontSize: theme.typography.fontSize.lg },
78
+ },
79
+ defaultVariant: 'outline',
80
+ defaultSize: 'default',
81
+ };
82
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ANAN-UI — Component: ComboBox Barrel Export
3
+ */
4
+
5
+ export { ComboBox } from './ComboBox';
6
+ export type { ComboBoxProps, ComboBoxVariant, ComboBoxSize, ComboBoxOption } from './ComboBox.types';
@@ -0,0 +1,50 @@
1
+ /**
2
+ * ANAN-UI — Component: Dialog Styles
3
+ *
4
+ * Static styles created with StyleSheet.create. The content surface and
5
+ * shadows are resolved from the theme at render time via Dialog.variants.
6
+ */
7
+
8
+ import { StyleSheet } from 'react-native';
9
+ import { spacing, borderRadius } from '../../design-tokens';
10
+
11
+ export const dialogStyles = StyleSheet.create({
12
+ overlay: {
13
+ ...StyleSheet.absoluteFillObject,
14
+ alignItems: 'center',
15
+ justifyContent: 'center',
16
+ padding: spacing[4],
17
+ },
18
+ content: {
19
+ width: '100%',
20
+ maxWidth: 400,
21
+ borderRadius: borderRadius.lg,
22
+ overflow: 'hidden',
23
+ },
24
+ header: {
25
+ padding: spacing[5],
26
+ gap: spacing[1],
27
+ },
28
+ body: {
29
+ paddingHorizontal: spacing[5],
30
+ paddingBottom: spacing[4],
31
+ },
32
+ footer: {
33
+ flexDirection: 'row',
34
+ alignItems: 'center',
35
+ justifyContent: 'flex-end',
36
+ gap: spacing[2],
37
+ padding: spacing[4],
38
+ paddingTop: 0,
39
+ },
40
+ closeButton: {
41
+ position: 'absolute',
42
+ top: spacing[3],
43
+ right: spacing[3],
44
+ width: 32,
45
+ height: 32,
46
+ alignItems: 'center',
47
+ justifyContent: 'center',
48
+ borderRadius: 9999,
49
+ },
50
+ });