@kivid/native-components 1.0.0-alpha.1

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 (498) hide show
  1. package/README.md +57 -0
  2. package/assets/adaptive-icon.png +0 -0
  3. package/assets/favicon.png +0 -0
  4. package/assets/fonts/Nunito-Bold.ttf +0 -0
  5. package/assets/fonts/Nunito-BoldItalic.ttf +0 -0
  6. package/assets/fonts/Nunito-Italic.ttf +0 -0
  7. package/assets/fonts/Nunito-Medium.ttf +0 -0
  8. package/assets/fonts/Nunito-MediumItalic.ttf +0 -0
  9. package/assets/fonts/Nunito-Regular.ttf +0 -0
  10. package/assets/fonts/Nunito-SemiBold.ttf +0 -0
  11. package/assets/fonts/Nunito-SemiBoldItalic.ttf +0 -0
  12. package/assets/icon.png +0 -0
  13. package/assets/splash.png +0 -0
  14. package/dist/README.md +57 -0
  15. package/dist/commonjs/components/Button/assets/class-variants.js +91 -0
  16. package/dist/commonjs/components/Button/assets/class-variants.js.map +1 -0
  17. package/dist/commonjs/components/Button/assets/design-system-showcase.js +1455 -0
  18. package/dist/commonjs/components/Button/assets/design-system-showcase.js.map +1 -0
  19. package/dist/commonjs/components/Button/index.js +116 -0
  20. package/dist/commonjs/components/Button/index.js.map +1 -0
  21. package/dist/commonjs/components/Button/types.js +6 -0
  22. package/dist/commonjs/components/Button/types.js.map +1 -0
  23. package/dist/commonjs/components/Chip/assets/class-variants.js +63 -0
  24. package/dist/commonjs/components/Chip/assets/class-variants.js.map +1 -0
  25. package/dist/commonjs/components/Chip/enums/chip-size.js +12 -0
  26. package/dist/commonjs/components/Chip/enums/chip-size.js.map +1 -0
  27. package/dist/commonjs/components/Chip/enums/chip-variant.js +13 -0
  28. package/dist/commonjs/components/Chip/enums/chip-variant.js.map +1 -0
  29. package/dist/commonjs/components/Chip/enums/index.js +28 -0
  30. package/dist/commonjs/components/Chip/enums/index.js.map +1 -0
  31. package/dist/commonjs/components/Chip/index.js +38 -0
  32. package/dist/commonjs/components/Chip/index.js.map +1 -0
  33. package/dist/commonjs/components/Chip/types.js +6 -0
  34. package/dist/commonjs/components/Chip/types.js.map +1 -0
  35. package/dist/commonjs/components/HighlightedText/index.js +46 -0
  36. package/dist/commonjs/components/HighlightedText/index.js.map +1 -0
  37. package/dist/commonjs/components/HighlightedText/types.js +6 -0
  38. package/dist/commonjs/components/HighlightedText/types.js.map +1 -0
  39. package/dist/commonjs/components/InformationStatus/components/GradientAdd/index.js +74 -0
  40. package/dist/commonjs/components/InformationStatus/components/GradientAdd/index.js.map +1 -0
  41. package/dist/commonjs/components/InformationStatus/components/GradientAdd/types.js +6 -0
  42. package/dist/commonjs/components/InformationStatus/components/GradientAdd/types.js.map +1 -0
  43. package/dist/commonjs/components/InformationStatus/components/GradientAlert/index.js +79 -0
  44. package/dist/commonjs/components/InformationStatus/components/GradientAlert/index.js.map +1 -0
  45. package/dist/commonjs/components/InformationStatus/components/GradientAlert/types.js +6 -0
  46. package/dist/commonjs/components/InformationStatus/components/GradientAlert/types.js.map +1 -0
  47. package/dist/commonjs/components/InformationStatus/components/GradientCheck/index.js +74 -0
  48. package/dist/commonjs/components/InformationStatus/components/GradientCheck/index.js.map +1 -0
  49. package/dist/commonjs/components/InformationStatus/components/GradientCheck/types.js +6 -0
  50. package/dist/commonjs/components/InformationStatus/components/GradientCheck/types.js.map +1 -0
  51. package/dist/commonjs/components/InformationStatus/components/GradientClose/index.js +72 -0
  52. package/dist/commonjs/components/InformationStatus/components/GradientClose/index.js.map +1 -0
  53. package/dist/commonjs/components/InformationStatus/components/GradientClose/types.js +6 -0
  54. package/dist/commonjs/components/InformationStatus/components/GradientClose/types.js.map +1 -0
  55. package/dist/commonjs/components/InformationStatus/components/index.js +50 -0
  56. package/dist/commonjs/components/InformationStatus/components/index.js.map +1 -0
  57. package/dist/commonjs/components/InformationStatus/enums.js +14 -0
  58. package/dist/commonjs/components/InformationStatus/enums.js.map +1 -0
  59. package/dist/commonjs/components/InformationStatus/index.js +75 -0
  60. package/dist/commonjs/components/InformationStatus/index.js.map +1 -0
  61. package/dist/commonjs/components/InformationStatus/types.js +6 -0
  62. package/dist/commonjs/components/InformationStatus/types.js.map +1 -0
  63. package/dist/commonjs/components/InputCheckbox/assets/class-variants.js +64 -0
  64. package/dist/commonjs/components/InputCheckbox/assets/class-variants.js.map +1 -0
  65. package/dist/commonjs/components/InputCheckbox/enums/checkbox-variant.js +17 -0
  66. package/dist/commonjs/components/InputCheckbox/enums/checkbox-variant.js.map +1 -0
  67. package/dist/commonjs/components/InputCheckbox/enums/index.js +28 -0
  68. package/dist/commonjs/components/InputCheckbox/enums/index.js.map +1 -0
  69. package/dist/commonjs/components/InputCheckbox/enums/select-variant.js +12 -0
  70. package/dist/commonjs/components/InputCheckbox/enums/select-variant.js.map +1 -0
  71. package/dist/commonjs/components/InputCheckbox/icons/CheckIcon/index.js +28 -0
  72. package/dist/commonjs/components/InputCheckbox/icons/CheckIcon/index.js.map +1 -0
  73. package/dist/commonjs/components/InputCheckbox/icons/IndeterminateIcon/index.js +28 -0
  74. package/dist/commonjs/components/InputCheckbox/icons/IndeterminateIcon/index.js.map +1 -0
  75. package/dist/commonjs/components/InputCheckbox/icons/index.js +20 -0
  76. package/dist/commonjs/components/InputCheckbox/icons/index.js.map +1 -0
  77. package/dist/commonjs/components/InputCheckbox/index.js +53 -0
  78. package/dist/commonjs/components/InputCheckbox/index.js.map +1 -0
  79. package/dist/commonjs/components/InputCheckbox/types.js +6 -0
  80. package/dist/commonjs/components/InputCheckbox/types.js.map +1 -0
  81. package/dist/commonjs/components/InputOTP/components/InformationStatus/index.js +93 -0
  82. package/dist/commonjs/components/InputOTP/components/InformationStatus/index.js.map +1 -0
  83. package/dist/commonjs/components/InputOTP/components/InformationStatus/types.js +6 -0
  84. package/dist/commonjs/components/InputOTP/components/InformationStatus/types.js.map +1 -0
  85. package/dist/commonjs/components/InputOTP/components/index.js +17 -0
  86. package/dist/commonjs/components/InputOTP/components/index.js.map +1 -0
  87. package/dist/commonjs/components/InputOTP/enums/index.js +17 -0
  88. package/dist/commonjs/components/InputOTP/enums/index.js.map +1 -0
  89. package/dist/commonjs/components/InputOTP/enums/information-status.js +15 -0
  90. package/dist/commonjs/components/InputOTP/enums/information-status.js.map +1 -0
  91. package/dist/commonjs/components/InputOTP/index.js +135 -0
  92. package/dist/commonjs/components/InputOTP/index.js.map +1 -0
  93. package/dist/commonjs/components/InputOTP/types.js +6 -0
  94. package/dist/commonjs/components/InputOTP/types.js.map +1 -0
  95. package/dist/commonjs/components/LoadingDots/assets/loading-button-dark.json +1 -0
  96. package/dist/commonjs/components/LoadingDots/assets/loading-button-grape.json +1 -0
  97. package/dist/commonjs/components/LoadingDots/assets/loading-button-light.json +1 -0
  98. package/dist/commonjs/components/LoadingDots/index.js +45 -0
  99. package/dist/commonjs/components/LoadingDots/index.js.map +1 -0
  100. package/dist/commonjs/components/LoadingDots/types.js +6 -0
  101. package/dist/commonjs/components/LoadingDots/types.js.map +1 -0
  102. package/dist/commonjs/components/Seal/assets/class-variants.js +64 -0
  103. package/dist/commonjs/components/Seal/assets/class-variants.js.map +1 -0
  104. package/dist/commonjs/components/Seal/components/AddIcon/index.js +32 -0
  105. package/dist/commonjs/components/Seal/components/AddIcon/index.js.map +1 -0
  106. package/dist/commonjs/components/Seal/components/AlertIcon/index.js +32 -0
  107. package/dist/commonjs/components/Seal/components/AlertIcon/index.js.map +1 -0
  108. package/dist/commonjs/components/Seal/components/ErrorIcon/index.js +32 -0
  109. package/dist/commonjs/components/Seal/components/ErrorIcon/index.js.map +1 -0
  110. package/dist/commonjs/components/Seal/components/LeftIcon/index.js +32 -0
  111. package/dist/commonjs/components/Seal/components/LeftIcon/index.js.map +1 -0
  112. package/dist/commonjs/components/Seal/components/MinusIcon/index.js +30 -0
  113. package/dist/commonjs/components/Seal/components/MinusIcon/index.js.map +1 -0
  114. package/dist/commonjs/components/Seal/components/RightIcon/index.js +32 -0
  115. package/dist/commonjs/components/Seal/components/RightIcon/index.js.map +1 -0
  116. package/dist/commonjs/components/Seal/components/SuccessIcon/index.js +32 -0
  117. package/dist/commonjs/components/Seal/components/SuccessIcon/index.js.map +1 -0
  118. package/dist/commonjs/components/Seal/components/index.js +55 -0
  119. package/dist/commonjs/components/Seal/components/index.js.map +1 -0
  120. package/dist/commonjs/components/Seal/enums/index.js +17 -0
  121. package/dist/commonjs/components/Seal/enums/index.js.map +1 -0
  122. package/dist/commonjs/components/Seal/enums/seal-variant.js +17 -0
  123. package/dist/commonjs/components/Seal/enums/seal-variant.js.map +1 -0
  124. package/dist/commonjs/components/Seal/index.js +52 -0
  125. package/dist/commonjs/components/Seal/index.js.map +1 -0
  126. package/dist/commonjs/components/Seal/types.js +6 -0
  127. package/dist/commonjs/components/Seal/types.js.map +1 -0
  128. package/dist/commonjs/components/Title/components/icon/index.js +49 -0
  129. package/dist/commonjs/components/Title/components/icon/index.js.map +1 -0
  130. package/dist/commonjs/components/Title/components/icon/types.js +15 -0
  131. package/dist/commonjs/components/Title/components/icon/types.js.map +1 -0
  132. package/dist/commonjs/components/Title/components/index.js +28 -0
  133. package/dist/commonjs/components/Title/components/index.js.map +1 -0
  134. package/dist/commonjs/components/Title/components/marker/index.js +33 -0
  135. package/dist/commonjs/components/Title/components/marker/index.js.map +1 -0
  136. package/dist/commonjs/components/Title/components/marker/types.js +2 -0
  137. package/dist/commonjs/components/Title/components/marker/types.js.map +1 -0
  138. package/dist/commonjs/components/Title/index.js +44 -0
  139. package/dist/commonjs/components/Title/index.js.map +1 -0
  140. package/dist/commonjs/components/Title/types.js +6 -0
  141. package/dist/commonjs/components/Title/types.js.map +1 -0
  142. package/dist/commonjs/components/Toggle/assets/class-variants.js +37 -0
  143. package/dist/commonjs/components/Toggle/assets/class-variants.js.map +1 -0
  144. package/dist/commonjs/components/Toggle/enums/index.js +17 -0
  145. package/dist/commonjs/components/Toggle/enums/index.js.map +1 -0
  146. package/dist/commonjs/components/Toggle/enums/variant.js +15 -0
  147. package/dist/commonjs/components/Toggle/enums/variant.js.map +1 -0
  148. package/dist/commonjs/components/Toggle/index.js +41 -0
  149. package/dist/commonjs/components/Toggle/index.js.map +1 -0
  150. package/dist/commonjs/components/Toggle/types.js +6 -0
  151. package/dist/commonjs/components/Toggle/types.js.map +1 -0
  152. package/dist/commonjs/components/Typography/index.js +52 -0
  153. package/dist/commonjs/components/Typography/index.js.map +1 -0
  154. package/dist/commonjs/components/Typography/types.js +6 -0
  155. package/dist/commonjs/components/Typography/types.js.map +1 -0
  156. package/dist/commonjs/components/index.js +127 -0
  157. package/dist/commonjs/components/index.js.map +1 -0
  158. package/dist/commonjs/hooks/index.js +17 -0
  159. package/dist/commonjs/hooks/index.js.map +1 -0
  160. package/dist/commonjs/hooks/use-fonts.js +31 -0
  161. package/dist/commonjs/hooks/use-fonts.js.map +1 -0
  162. package/dist/commonjs/iconography/Icons/index.js +97 -0
  163. package/dist/commonjs/iconography/Icons/index.js.map +1 -0
  164. package/dist/commonjs/iconography/Icons/types.js +6 -0
  165. package/dist/commonjs/iconography/Icons/types.js.map +1 -0
  166. package/dist/commonjs/index.js +17 -0
  167. package/dist/commonjs/index.js.map +1 -0
  168. package/dist/commonjs/nativewind-env.d.js +3 -0
  169. package/dist/commonjs/nativewind-env.d.js.map +1 -0
  170. package/dist/commonjs/package.json +1 -0
  171. package/dist/commonjs/welcome.mdx +3 -0
  172. package/dist/module/components/Button/assets/class-variants.js +88 -0
  173. package/dist/module/components/Button/assets/class-variants.js.map +1 -0
  174. package/dist/module/components/Button/assets/design-system-showcase.js +1451 -0
  175. package/dist/module/components/Button/assets/design-system-showcase.js.map +1 -0
  176. package/dist/module/components/Button/index.js +110 -0
  177. package/dist/module/components/Button/index.js.map +1 -0
  178. package/dist/module/components/Button/types.js +4 -0
  179. package/dist/module/components/Button/types.js.map +1 -0
  180. package/dist/module/components/Chip/assets/class-variants.js +59 -0
  181. package/dist/module/components/Chip/assets/class-variants.js.map +1 -0
  182. package/dist/module/components/Chip/enums/chip-size.js +8 -0
  183. package/dist/module/components/Chip/enums/chip-size.js.map +1 -0
  184. package/dist/module/components/Chip/enums/chip-variant.js +9 -0
  185. package/dist/module/components/Chip/enums/chip-variant.js.map +1 -0
  186. package/dist/module/components/Chip/enums/index.js +5 -0
  187. package/dist/module/components/Chip/enums/index.js.map +1 -0
  188. package/dist/module/components/Chip/index.js +34 -0
  189. package/dist/module/components/Chip/index.js.map +1 -0
  190. package/dist/module/components/Chip/types.js +4 -0
  191. package/dist/module/components/Chip/types.js.map +1 -0
  192. package/dist/module/components/HighlightedText/index.js +41 -0
  193. package/dist/module/components/HighlightedText/index.js.map +1 -0
  194. package/dist/module/components/HighlightedText/types.js +4 -0
  195. package/dist/module/components/HighlightedText/types.js.map +1 -0
  196. package/dist/module/components/InformationStatus/components/GradientAdd/index.js +69 -0
  197. package/dist/module/components/InformationStatus/components/GradientAdd/index.js.map +1 -0
  198. package/dist/module/components/InformationStatus/components/GradientAdd/types.js +4 -0
  199. package/dist/module/components/InformationStatus/components/GradientAdd/types.js.map +1 -0
  200. package/dist/module/components/InformationStatus/components/GradientAlert/index.js +74 -0
  201. package/dist/module/components/InformationStatus/components/GradientAlert/index.js.map +1 -0
  202. package/dist/module/components/InformationStatus/components/GradientAlert/types.js +4 -0
  203. package/dist/module/components/InformationStatus/components/GradientAlert/types.js.map +1 -0
  204. package/dist/module/components/InformationStatus/components/GradientCheck/index.js +69 -0
  205. package/dist/module/components/InformationStatus/components/GradientCheck/index.js.map +1 -0
  206. package/dist/module/components/InformationStatus/components/GradientCheck/types.js +4 -0
  207. package/dist/module/components/InformationStatus/components/GradientCheck/types.js.map +1 -0
  208. package/dist/module/components/InformationStatus/components/GradientClose/index.js +67 -0
  209. package/dist/module/components/InformationStatus/components/GradientClose/index.js.map +1 -0
  210. package/dist/module/components/InformationStatus/components/GradientClose/types.js +4 -0
  211. package/dist/module/components/InformationStatus/components/GradientClose/types.js.map +1 -0
  212. package/dist/module/components/InformationStatus/components/index.js +7 -0
  213. package/dist/module/components/InformationStatus/components/index.js.map +1 -0
  214. package/dist/module/components/InformationStatus/enums.js +10 -0
  215. package/dist/module/components/InformationStatus/enums.js.map +1 -0
  216. package/dist/module/components/InformationStatus/index.js +71 -0
  217. package/dist/module/components/InformationStatus/index.js.map +1 -0
  218. package/dist/module/components/InformationStatus/types.js +4 -0
  219. package/dist/module/components/InformationStatus/types.js.map +1 -0
  220. package/dist/module/components/InputCheckbox/assets/class-variants.js +60 -0
  221. package/dist/module/components/InputCheckbox/assets/class-variants.js.map +1 -0
  222. package/dist/module/components/InputCheckbox/enums/checkbox-variant.js +13 -0
  223. package/dist/module/components/InputCheckbox/enums/checkbox-variant.js.map +1 -0
  224. package/dist/module/components/InputCheckbox/enums/index.js +5 -0
  225. package/dist/module/components/InputCheckbox/enums/index.js.map +1 -0
  226. package/dist/module/components/InputCheckbox/enums/select-variant.js +8 -0
  227. package/dist/module/components/InputCheckbox/enums/select-variant.js.map +1 -0
  228. package/dist/module/components/InputCheckbox/icons/CheckIcon/index.js +22 -0
  229. package/dist/module/components/InputCheckbox/icons/CheckIcon/index.js.map +1 -0
  230. package/dist/module/components/InputCheckbox/icons/IndeterminateIcon/index.js +22 -0
  231. package/dist/module/components/InputCheckbox/icons/IndeterminateIcon/index.js.map +1 -0
  232. package/dist/module/components/InputCheckbox/icons/index.js +5 -0
  233. package/dist/module/components/InputCheckbox/icons/index.js.map +1 -0
  234. package/dist/module/components/InputCheckbox/index.js +49 -0
  235. package/dist/module/components/InputCheckbox/index.js.map +1 -0
  236. package/dist/module/components/InputCheckbox/types.js +4 -0
  237. package/dist/module/components/InputCheckbox/types.js.map +1 -0
  238. package/dist/module/components/InputOTP/components/InformationStatus/index.js +87 -0
  239. package/dist/module/components/InputOTP/components/InformationStatus/index.js.map +1 -0
  240. package/dist/module/components/InputOTP/components/InformationStatus/types.js +4 -0
  241. package/dist/module/components/InputOTP/components/InformationStatus/types.js.map +1 -0
  242. package/dist/module/components/InputOTP/components/index.js +4 -0
  243. package/dist/module/components/InputOTP/components/index.js.map +1 -0
  244. package/dist/module/components/InputOTP/enums/index.js +4 -0
  245. package/dist/module/components/InputOTP/enums/index.js.map +1 -0
  246. package/dist/module/components/InputOTP/enums/information-status.js +11 -0
  247. package/dist/module/components/InputOTP/enums/information-status.js.map +1 -0
  248. package/dist/module/components/InputOTP/index.js +130 -0
  249. package/dist/module/components/InputOTP/index.js.map +1 -0
  250. package/dist/module/components/InputOTP/types.js +4 -0
  251. package/dist/module/components/InputOTP/types.js.map +1 -0
  252. package/dist/module/components/LoadingDots/assets/loading-button-dark.json +1 -0
  253. package/dist/module/components/LoadingDots/assets/loading-button-grape.json +1 -0
  254. package/dist/module/components/LoadingDots/assets/loading-button-light.json +1 -0
  255. package/dist/module/components/LoadingDots/index.js +39 -0
  256. package/dist/module/components/LoadingDots/index.js.map +1 -0
  257. package/dist/module/components/LoadingDots/types.js +4 -0
  258. package/dist/module/components/LoadingDots/types.js.map +1 -0
  259. package/dist/module/components/Seal/assets/class-variants.js +60 -0
  260. package/dist/module/components/Seal/assets/class-variants.js.map +1 -0
  261. package/dist/module/components/Seal/components/AddIcon/index.js +27 -0
  262. package/dist/module/components/Seal/components/AddIcon/index.js.map +1 -0
  263. package/dist/module/components/Seal/components/AlertIcon/index.js +27 -0
  264. package/dist/module/components/Seal/components/AlertIcon/index.js.map +1 -0
  265. package/dist/module/components/Seal/components/ErrorIcon/index.js +27 -0
  266. package/dist/module/components/Seal/components/ErrorIcon/index.js.map +1 -0
  267. package/dist/module/components/Seal/components/LeftIcon/index.js +27 -0
  268. package/dist/module/components/Seal/components/LeftIcon/index.js.map +1 -0
  269. package/dist/module/components/Seal/components/MinusIcon/index.js +25 -0
  270. package/dist/module/components/Seal/components/MinusIcon/index.js.map +1 -0
  271. package/dist/module/components/Seal/components/RightIcon/index.js +27 -0
  272. package/dist/module/components/Seal/components/RightIcon/index.js.map +1 -0
  273. package/dist/module/components/Seal/components/SuccessIcon/index.js +27 -0
  274. package/dist/module/components/Seal/components/SuccessIcon/index.js.map +1 -0
  275. package/dist/module/components/Seal/components/index.js +10 -0
  276. package/dist/module/components/Seal/components/index.js.map +1 -0
  277. package/dist/module/components/Seal/enums/index.js +4 -0
  278. package/dist/module/components/Seal/enums/index.js.map +1 -0
  279. package/dist/module/components/Seal/enums/seal-variant.js +13 -0
  280. package/dist/module/components/Seal/enums/seal-variant.js.map +1 -0
  281. package/dist/module/components/Seal/index.js +46 -0
  282. package/dist/module/components/Seal/index.js.map +1 -0
  283. package/dist/module/components/Seal/types.js +4 -0
  284. package/dist/module/components/Seal/types.js.map +1 -0
  285. package/dist/module/components/Title/components/icon/index.js +45 -0
  286. package/dist/module/components/Title/components/icon/index.js.map +1 -0
  287. package/dist/module/components/Title/components/icon/types.js +11 -0
  288. package/dist/module/components/Title/components/icon/types.js.map +1 -0
  289. package/dist/module/components/Title/components/index.js +5 -0
  290. package/dist/module/components/Title/components/index.js.map +1 -0
  291. package/dist/module/components/Title/components/marker/index.js +29 -0
  292. package/dist/module/components/Title/components/marker/index.js.map +1 -0
  293. package/dist/module/components/Title/components/marker/types.js +2 -0
  294. package/dist/module/components/Title/components/marker/types.js.map +1 -0
  295. package/dist/module/components/Title/index.js +41 -0
  296. package/dist/module/components/Title/index.js.map +1 -0
  297. package/dist/module/components/Title/types.js +4 -0
  298. package/dist/module/components/Title/types.js.map +1 -0
  299. package/dist/module/components/Toggle/assets/class-variants.js +34 -0
  300. package/dist/module/components/Toggle/assets/class-variants.js.map +1 -0
  301. package/dist/module/components/Toggle/enums/index.js +4 -0
  302. package/dist/module/components/Toggle/enums/index.js.map +1 -0
  303. package/dist/module/components/Toggle/enums/variant.js +11 -0
  304. package/dist/module/components/Toggle/enums/variant.js.map +1 -0
  305. package/dist/module/components/Toggle/index.js +37 -0
  306. package/dist/module/components/Toggle/index.js.map +1 -0
  307. package/dist/module/components/Toggle/types.js +4 -0
  308. package/dist/module/components/Toggle/types.js.map +1 -0
  309. package/dist/module/components/Typography/index.js +47 -0
  310. package/dist/module/components/Typography/index.js.map +1 -0
  311. package/dist/module/components/Typography/types.js +4 -0
  312. package/dist/module/components/Typography/types.js.map +1 -0
  313. package/dist/module/components/index.js +14 -0
  314. package/dist/module/components/index.js.map +1 -0
  315. package/dist/module/hooks/index.js +4 -0
  316. package/dist/module/hooks/index.js.map +1 -0
  317. package/dist/module/hooks/use-fonts.js +27 -0
  318. package/dist/module/hooks/use-fonts.js.map +1 -0
  319. package/dist/module/iconography/Icons/index.js +92 -0
  320. package/dist/module/iconography/Icons/index.js.map +1 -0
  321. package/dist/module/iconography/Icons/types.js +4 -0
  322. package/dist/module/iconography/Icons/types.js.map +1 -0
  323. package/dist/module/index.js +4 -0
  324. package/dist/module/index.js.map +1 -0
  325. package/dist/module/nativewind-env.d.js +3 -0
  326. package/dist/module/nativewind-env.d.js.map +1 -0
  327. package/dist/module/package.json +1 -0
  328. package/dist/module/welcome.mdx +3 -0
  329. package/dist/package.json +57 -0
  330. package/dist/typescript/components/Button/assets/class-variants.d.ts +16 -0
  331. package/dist/typescript/components/Button/assets/design-system-showcase.d.ts +1448 -0
  332. package/dist/typescript/components/Button/index.d.ts +6 -0
  333. package/dist/typescript/components/Button/types.d.ts +16 -0
  334. package/dist/typescript/components/Chip/assets/class-variants.d.ts +5 -0
  335. package/dist/typescript/components/Chip/enums/chip-size.d.ts +4 -0
  336. package/dist/typescript/components/Chip/enums/chip-variant.d.ts +5 -0
  337. package/dist/typescript/components/Chip/enums/index.d.ts +2 -0
  338. package/dist/typescript/components/Chip/index.d.ts +2 -0
  339. package/dist/typescript/components/Chip/types.d.ts +11 -0
  340. package/dist/typescript/components/HighlightedText/index.d.ts +6 -0
  341. package/dist/typescript/components/HighlightedText/types.d.ts +9 -0
  342. package/dist/typescript/components/InformationStatus/components/GradientAdd/index.d.ts +3 -0
  343. package/dist/typescript/components/InformationStatus/components/GradientAdd/types.d.ts +5 -0
  344. package/dist/typescript/components/InformationStatus/components/GradientAlert/index.d.ts +3 -0
  345. package/dist/typescript/components/InformationStatus/components/GradientAlert/types.d.ts +5 -0
  346. package/dist/typescript/components/InformationStatus/components/GradientCheck/index.d.ts +3 -0
  347. package/dist/typescript/components/InformationStatus/components/GradientCheck/types.d.ts +5 -0
  348. package/dist/typescript/components/InformationStatus/components/GradientClose/index.d.ts +3 -0
  349. package/dist/typescript/components/InformationStatus/components/GradientClose/types.d.ts +5 -0
  350. package/dist/typescript/components/InformationStatus/components/index.d.ts +4 -0
  351. package/dist/typescript/components/InformationStatus/enums.d.ts +6 -0
  352. package/dist/typescript/components/InformationStatus/index.d.ts +2 -0
  353. package/dist/typescript/components/InformationStatus/types.d.ts +14 -0
  354. package/dist/typescript/components/InputCheckbox/assets/class-variants.d.ts +6 -0
  355. package/dist/typescript/components/InputCheckbox/enums/checkbox-variant.d.ts +9 -0
  356. package/dist/typescript/components/InputCheckbox/enums/index.d.ts +2 -0
  357. package/dist/typescript/components/InputCheckbox/enums/select-variant.d.ts +4 -0
  358. package/dist/typescript/components/InputCheckbox/icons/CheckIcon/index.d.ts +2 -0
  359. package/dist/typescript/components/InputCheckbox/icons/IndeterminateIcon/index.d.ts +2 -0
  360. package/dist/typescript/components/InputCheckbox/icons/index.d.ts +2 -0
  361. package/dist/typescript/components/InputCheckbox/index.d.ts +2 -0
  362. package/dist/typescript/components/InputCheckbox/types.d.ts +10 -0
  363. package/dist/typescript/components/InputOTP/components/InformationStatus/index.d.ts +3 -0
  364. package/dist/typescript/components/InputOTP/components/InformationStatus/types.d.ts +6 -0
  365. package/dist/typescript/components/InputOTP/components/index.d.ts +1 -0
  366. package/dist/typescript/components/InputOTP/enums/index.d.ts +1 -0
  367. package/dist/typescript/components/InputOTP/enums/information-status.d.ts +7 -0
  368. package/dist/typescript/components/InputOTP/index.d.ts +3 -0
  369. package/dist/typescript/components/InputOTP/types.d.ts +11 -0
  370. package/dist/typescript/components/LoadingDots/index.d.ts +3 -0
  371. package/dist/typescript/components/LoadingDots/types.d.ts +9 -0
  372. package/dist/typescript/components/Seal/assets/class-variants.d.ts +5 -0
  373. package/dist/typescript/components/Seal/components/AddIcon/index.d.ts +2 -0
  374. package/dist/typescript/components/Seal/components/AlertIcon/index.d.ts +2 -0
  375. package/dist/typescript/components/Seal/components/ErrorIcon/index.d.ts +2 -0
  376. package/dist/typescript/components/Seal/components/LeftIcon/index.d.ts +2 -0
  377. package/dist/typescript/components/Seal/components/MinusIcon/index.d.ts +2 -0
  378. package/dist/typescript/components/Seal/components/RightIcon/index.d.ts +2 -0
  379. package/dist/typescript/components/Seal/components/SuccessIcon/index.d.ts +2 -0
  380. package/dist/typescript/components/Seal/components/index.d.ts +7 -0
  381. package/dist/typescript/components/Seal/enums/index.d.ts +1 -0
  382. package/dist/typescript/components/Seal/enums/seal-variant.d.ts +9 -0
  383. package/dist/typescript/components/Seal/index.d.ts +3 -0
  384. package/dist/typescript/components/Seal/types.d.ts +14 -0
  385. package/dist/typescript/components/Title/components/icon/index.d.ts +2 -0
  386. package/dist/typescript/components/Title/components/icon/types.d.ts +12 -0
  387. package/dist/typescript/components/Title/components/index.d.ts +2 -0
  388. package/dist/typescript/components/Title/components/marker/index.d.ts +2 -0
  389. package/dist/typescript/components/Title/components/marker/types.d.ts +4 -0
  390. package/dist/typescript/components/Title/index.d.ts +7 -0
  391. package/dist/typescript/components/Title/types.d.ts +7 -0
  392. package/dist/typescript/components/Toggle/assets/class-variants.d.ts +6 -0
  393. package/dist/typescript/components/Toggle/enums/index.d.ts +1 -0
  394. package/dist/typescript/components/Toggle/enums/variant.d.ts +7 -0
  395. package/dist/typescript/components/Toggle/index.d.ts +2 -0
  396. package/dist/typescript/components/Toggle/types.d.ts +7 -0
  397. package/dist/typescript/components/Typography/index.d.ts +27 -0
  398. package/dist/typescript/components/Typography/types.d.ts +7 -0
  399. package/dist/typescript/components/index.d.ts +11 -0
  400. package/dist/typescript/hooks/index.d.ts +1 -0
  401. package/dist/typescript/hooks/use-fonts.d.ts +10 -0
  402. package/dist/typescript/iconography/Icons/index.d.ts +2 -0
  403. package/dist/typescript/iconography/Icons/types.d.ts +11 -0
  404. package/dist/typescript/index.d.ts +1 -0
  405. package/index.js +6 -0
  406. package/package.json +128 -0
  407. package/src/components/Button/assets/class-variants.ts +111 -0
  408. package/src/components/Button/assets/design-system-showcase.ts +1745 -0
  409. package/src/components/Button/index.stories.tsx +407 -0
  410. package/src/components/Button/index.tsx +137 -0
  411. package/src/components/Button/types.ts +31 -0
  412. package/src/components/Chip/assets/class-variants.ts +68 -0
  413. package/src/components/Chip/enums/chip-size.ts +4 -0
  414. package/src/components/Chip/enums/chip-variant.ts +5 -0
  415. package/src/components/Chip/enums/index.ts +2 -0
  416. package/src/components/Chip/index.stories.tsx +95 -0
  417. package/src/components/Chip/index.tsx +35 -0
  418. package/src/components/Chip/types.ts +13 -0
  419. package/src/components/HighlightedText/index.stories.tsx +110 -0
  420. package/src/components/HighlightedText/index.tsx +38 -0
  421. package/src/components/HighlightedText/types.ts +10 -0
  422. package/src/components/InformationStatus/components/GradientAdd/index.tsx +74 -0
  423. package/src/components/InformationStatus/components/GradientAdd/types.ts +6 -0
  424. package/src/components/InformationStatus/components/GradientAlert/index.tsx +81 -0
  425. package/src/components/InformationStatus/components/GradientAlert/types.ts +6 -0
  426. package/src/components/InformationStatus/components/GradientCheck/index.tsx +75 -0
  427. package/src/components/InformationStatus/components/GradientCheck/types.ts +6 -0
  428. package/src/components/InformationStatus/components/GradientClose/index.tsx +73 -0
  429. package/src/components/InformationStatus/components/GradientClose/types.ts +6 -0
  430. package/src/components/InformationStatus/components/index.ts +4 -0
  431. package/src/components/InformationStatus/enums.ts +6 -0
  432. package/src/components/InformationStatus/index.stories.tsx +112 -0
  433. package/src/components/InformationStatus/index.tsx +76 -0
  434. package/src/components/InformationStatus/types.ts +16 -0
  435. package/src/components/InputCheckbox/assets/class-variants.ts +90 -0
  436. package/src/components/InputCheckbox/enums/checkbox-variant.ts +9 -0
  437. package/src/components/InputCheckbox/enums/index.ts +2 -0
  438. package/src/components/InputCheckbox/enums/select-variant.ts +4 -0
  439. package/src/components/InputCheckbox/icons/CheckIcon/index.tsx +23 -0
  440. package/src/components/InputCheckbox/icons/IndeterminateIcon/index.tsx +23 -0
  441. package/src/components/InputCheckbox/icons/index.ts +2 -0
  442. package/src/components/InputCheckbox/index.stories.tsx +133 -0
  443. package/src/components/InputCheckbox/index.tsx +53 -0
  444. package/src/components/InputCheckbox/types.ts +13 -0
  445. package/src/components/InputOTP/components/InformationStatus/index.tsx +105 -0
  446. package/src/components/InputOTP/components/InformationStatus/types.ts +6 -0
  447. package/src/components/InputOTP/components/index.ts +1 -0
  448. package/src/components/InputOTP/enums/index.ts +1 -0
  449. package/src/components/InputOTP/enums/information-status.ts +7 -0
  450. package/src/components/InputOTP/index.stories.tsx +247 -0
  451. package/src/components/InputOTP/index.tsx +177 -0
  452. package/src/components/InputOTP/types.ts +12 -0
  453. package/src/components/LoadingDots/assets/loading-button-dark.json +1 -0
  454. package/src/components/LoadingDots/assets/loading-button-grape.json +1 -0
  455. package/src/components/LoadingDots/assets/loading-button-light.json +1 -0
  456. package/src/components/LoadingDots/index.stories.tsx +74 -0
  457. package/src/components/LoadingDots/index.tsx +37 -0
  458. package/src/components/LoadingDots/types.ts +10 -0
  459. package/src/components/Seal/assets/class-variants.ts +70 -0
  460. package/src/components/Seal/components/AddIcon/index.tsx +26 -0
  461. package/src/components/Seal/components/AlertIcon/index.tsx +26 -0
  462. package/src/components/Seal/components/ErrorIcon/index.tsx +26 -0
  463. package/src/components/Seal/components/LeftIcon/index.tsx +26 -0
  464. package/src/components/Seal/components/MinusIcon/index.tsx +24 -0
  465. package/src/components/Seal/components/RightIcon/index.tsx +26 -0
  466. package/src/components/Seal/components/SuccessIcon/index.tsx +26 -0
  467. package/src/components/Seal/components/index.ts +7 -0
  468. package/src/components/Seal/enums/index.ts +1 -0
  469. package/src/components/Seal/enums/seal-variant.ts +9 -0
  470. package/src/components/Seal/index.stories.tsx +124 -0
  471. package/src/components/Seal/index.tsx +53 -0
  472. package/src/components/Seal/types.ts +18 -0
  473. package/src/components/Title/components/icon/index.tsx +51 -0
  474. package/src/components/Title/components/icon/types.ts +12 -0
  475. package/src/components/Title/components/index.ts +2 -0
  476. package/src/components/Title/components/marker/index.tsx +25 -0
  477. package/src/components/Title/components/marker/types.ts +13 -0
  478. package/src/components/Title/index.stories.tsx +619 -0
  479. package/src/components/Title/index.tsx +36 -0
  480. package/src/components/Title/types.ts +7 -0
  481. package/src/components/Toggle/assets/class-variants.ts +40 -0
  482. package/src/components/Toggle/enums/index.ts +1 -0
  483. package/src/components/Toggle/enums/variant.ts +7 -0
  484. package/src/components/Toggle/index.stories.tsx +88 -0
  485. package/src/components/Toggle/index.tsx +42 -0
  486. package/src/components/Toggle/types.ts +8 -0
  487. package/src/components/Typography/index.stories.tsx +260 -0
  488. package/src/components/Typography/index.tsx +46 -0
  489. package/src/components/Typography/types.ts +8 -0
  490. package/src/components/index.ts +11 -0
  491. package/src/hooks/index.ts +1 -0
  492. package/src/hooks/use-fonts.ts +22 -0
  493. package/src/iconography/Icons/index.stories.tsx +23 -0
  494. package/src/iconography/Icons/index.tsx +89 -0
  495. package/src/iconography/Icons/types.ts +12 -0
  496. package/src/index.ts +1 -0
  497. package/src/nativewind-env.d.ts +1 -0
  498. package/src/welcome.mdx +3 -0
@@ -0,0 +1,407 @@
1
+ import type { Meta, StoryObj } from "@storybook/react-native";
2
+ import { View, ScrollView } from "react-native";
3
+ import { Button } from "./index";
4
+ import { designSystemShowcase } from "./assets/design-system-showcase";
5
+
6
+ const action = (message: string) => () => {
7
+ console.log(`Button pressed: ${message}`);
8
+ };
9
+
10
+ const meta = {
11
+ title: "Components/Button",
12
+ component: Button,
13
+ parameters: {
14
+ layout: "centered",
15
+ docs: {
16
+ description: {
17
+ component:
18
+ "A versatile button component with multiple variants, sizes, and states matching the Figma design system. Adapted for React Native with full accessibility support.",
19
+ },
20
+ },
21
+ },
22
+ tags: ["autodocs"],
23
+ argTypes: {
24
+ variant: {
25
+ control: { type: "select" },
26
+ options: [
27
+ "grape",
28
+ "java",
29
+ "pear",
30
+ "tangerine",
31
+ "blackberry",
32
+ "chia",
33
+ "outline",
34
+ "glass",
35
+ "ghost",
36
+ ],
37
+ description: "The visual style variant of the button",
38
+ },
39
+ size: {
40
+ control: { type: "select" },
41
+ options: ["small", "medium", "large"],
42
+ description: "The size of the button",
43
+ },
44
+ corners: {
45
+ control: { type: "select" },
46
+ options: ["small", "medium"],
47
+ description: "The border radius of the button",
48
+ },
49
+ loading: {
50
+ control: { type: "boolean" },
51
+ description: "Shows loading spinner and disables interaction",
52
+ },
53
+ selected: {
54
+ control: { type: "boolean" },
55
+ description: "Selected state for toggle buttons",
56
+ },
57
+ disabled: {
58
+ control: { type: "boolean" },
59
+ description: "Disables the button",
60
+ },
61
+ fullWidth: {
62
+ control: { type: "boolean" },
63
+ description: "Makes the button full width",
64
+ },
65
+ children: {
66
+ control: { type: "text" },
67
+ description: "Button text content",
68
+ },
69
+ },
70
+ args: { onPress: action("onPress") },
71
+ } satisfies Meta<typeof Button>;
72
+
73
+ export default meta;
74
+ type Story = StoryObj<typeof meta>;
75
+
76
+ export const Default: Story = {
77
+ args: {
78
+ children: "Label",
79
+ },
80
+ };
81
+
82
+ export const DesignSystemShowcase: Story = {
83
+ render: () => {
84
+ const ColorGroup = ({ children }: { children: React.ReactNode }) => {
85
+ return (
86
+ <View className="flex-row gap-400 py-400 flex-wrap">{children}</View>
87
+ );
88
+ };
89
+
90
+ const SizeGroup = ({ children }: { children: React.ReactNode }) => {
91
+ return <View className="mb-600">{children}</View>;
92
+ };
93
+
94
+ const ColorGroupTitle = ({ children }: { children: React.ReactNode }) => {
95
+ return (
96
+ <View className="mb-400">
97
+ <Button variant="ghost" size="medium" className="self-start">
98
+ {children}
99
+ </Button>
100
+ </View>
101
+ );
102
+ };
103
+
104
+ const Container = ({ children }: { children: React.ReactNode }) => {
105
+ return (
106
+ <ScrollView className="flex-1 p-700 pt-600">
107
+ <View className="space-y-400">{children}</View>
108
+ </ScrollView>
109
+ );
110
+ };
111
+
112
+ function renderButtons() {
113
+ return (
114
+ <View>
115
+ {Object.entries(designSystemShowcase).map(
116
+ ([sizeKey, { title, buttons }]) => (
117
+ <SizeGroup key={sizeKey}>
118
+ <ColorGroupTitle>{title}</ColorGroupTitle>
119
+
120
+ <View className="flex gap-400 pb-600 flex-wrap">
121
+ {Object.entries(buttons).map(([variant, btnList]) => (
122
+ <ColorGroup key={variant}>
123
+ {btnList.map((props: any, idx: number) => (
124
+ <Button
125
+ key={`${variant}-${idx}`}
126
+ {...props}
127
+ onPress={action(`${variant}-${idx} pressed`)}
128
+ >
129
+ {props.label}
130
+ </Button>
131
+ ))}
132
+ </ColorGroup>
133
+ ))}
134
+ </View>
135
+ </SizeGroup>
136
+ )
137
+ )}
138
+ </View>
139
+ );
140
+ }
141
+
142
+ return <Container>{renderButtons()}</Container>;
143
+ },
144
+ parameters: {
145
+ layout: "fullscreen",
146
+ docs: {
147
+ description: {
148
+ story:
149
+ "Complete showcase of the button design system matching the Figma specifications with all variants, sizes, and states.",
150
+ },
151
+ },
152
+ },
153
+ };
154
+
155
+ export const Sizes: Story = {
156
+ render: () => (
157
+ <ScrollView className="flex-1 p-6">
158
+ <View className="flex gap-400 items-start">
159
+ <View className="flex-row gap-400 items-center flex-wrap">
160
+ <Button size="small" variant="grape" onPress={action("small grape")}>
161
+ Small
162
+ </Button>
163
+ <Button
164
+ size="medium"
165
+ variant="grape"
166
+ onPress={action("medium grape")}
167
+ >
168
+ Medium
169
+ </Button>
170
+ <Button size="large" variant="grape" onPress={action("large grape")}>
171
+ Large
172
+ </Button>
173
+ </View>
174
+ <View className="flex-row gap-400 items-center flex-wrap">
175
+ <Button
176
+ size="small"
177
+ variant="outline"
178
+ onPress={action("small outline")}
179
+ >
180
+ Small
181
+ </Button>
182
+ <Button
183
+ size="medium"
184
+ variant="outline"
185
+ onPress={action("medium outline")}
186
+ >
187
+ Medium
188
+ </Button>
189
+ <Button
190
+ size="large"
191
+ variant="outline"
192
+ onPress={action("large outline")}
193
+ >
194
+ Large
195
+ </Button>
196
+ </View>
197
+ </View>
198
+ </ScrollView>
199
+ ),
200
+ parameters: {
201
+ layout: "fullscreen",
202
+ docs: {
203
+ description: {
204
+ story: "Button component in different sizes: small, medium, and large.",
205
+ },
206
+ },
207
+ },
208
+ };
209
+
210
+ export const Corners: Story = {
211
+ render: () => (
212
+ <View className="flex-row gap-400 p-6 flex-wrap">
213
+ <Button corners="small" variant="grape" onPress={action("small corners")}>
214
+ Small Corners
215
+ </Button>
216
+ <Button
217
+ corners="medium"
218
+ variant="grape"
219
+ onPress={action("medium corners")}
220
+ >
221
+ Medium Corners
222
+ </Button>
223
+ </View>
224
+ ),
225
+ parameters: {
226
+ docs: {
227
+ description: {
228
+ story: "Button component with different corner radius options.",
229
+ },
230
+ },
231
+ },
232
+ };
233
+
234
+ export const States: Story = {
235
+ render: () => {
236
+ const defaultStates = [
237
+ { label: "Default", onPress: action("default") },
238
+ { disabled: true, label: "Disabled", onPress: action("disabled") },
239
+ { loading: true, label: "Loading", onPress: action("loading") },
240
+ { selected: true, label: "Selected", onPress: action("selected") },
241
+ ];
242
+
243
+ return (
244
+ <ScrollView className="flex-1 p-6">
245
+ <View className="flex-row gap-600 flex-wrap">
246
+ <View className="flex gap-500 min-w-fit">
247
+ <Button variant="ghost" size="medium" className="self-start">
248
+ Default States
249
+ </Button>
250
+ {defaultStates.map((props, index) => (
251
+ <Button key={`default-${index}`} variant="grape" {...props}>
252
+ {props.label}
253
+ </Button>
254
+ ))}
255
+ </View>
256
+ <View className="flex gap-500 min-w-fit">
257
+ <Button variant="ghost" size="medium" className="self-start">
258
+ Outline States
259
+ </Button>
260
+ {defaultStates.map((props, index) => (
261
+ <Button key={`outline-${index}`} variant="outline" {...props}>
262
+ {props.label}
263
+ </Button>
264
+ ))}
265
+ </View>
266
+ </View>
267
+ </ScrollView>
268
+ );
269
+ },
270
+ parameters: {
271
+ layout: "fullscreen",
272
+ docs: {
273
+ description: {
274
+ story:
275
+ "Button component in different interaction states: default, disabled, loading, and selected.",
276
+ },
277
+ },
278
+ },
279
+ };
280
+
281
+ export const Loading: Story = {
282
+ args: {
283
+ variant: "grape",
284
+ loading: true,
285
+ children: "Loading...",
286
+ className: "min-w-[160px]",
287
+ },
288
+ };
289
+
290
+ export const Disabled: Story = {
291
+ args: {
292
+ variant: "grape",
293
+ disabled: true,
294
+ children: "Disabled Button",
295
+ },
296
+ };
297
+
298
+ export const Selected: Story = {
299
+ args: {
300
+ variant: "grape",
301
+ selected: true,
302
+ children: "Selected Button",
303
+ },
304
+ };
305
+
306
+ export const FullWidth: Story = {
307
+ render: () => (
308
+ <View className="w-full max-w-md space-y-300 p-6">
309
+ <Button variant="grape" fullWidth onPress={action("fullwidth grape")}>
310
+ Full Width Grape
311
+ </Button>
312
+ <Button variant="outline" fullWidth onPress={action("fullwidth outline")}>
313
+ Full Width Outline
314
+ </Button>
315
+ <Button variant="glass" fullWidth onPress={action("fullwidth glass")}>
316
+ Full Width Glass
317
+ </Button>
318
+ </View>
319
+ ),
320
+ parameters: {
321
+ docs: {
322
+ description: {
323
+ story: "Button component spanning the full width of its container.",
324
+ },
325
+ },
326
+ },
327
+ };
328
+
329
+ export const Color_Grape: Story = {
330
+ args: {
331
+ variant: "grape",
332
+ children: "Grape Button",
333
+ },
334
+ };
335
+
336
+ export const Color_Java: Story = {
337
+ args: {
338
+ variant: "java",
339
+ children: "Java Button",
340
+ onPress: action("java"),
341
+ },
342
+ };
343
+
344
+ export const Color_Pear: Story = {
345
+ args: {
346
+ variant: "pear",
347
+ children: "Pear Button",
348
+ onPress: action("pear"),
349
+ },
350
+ };
351
+
352
+ export const Color_Tangerine: Story = {
353
+ args: {
354
+ variant: "tangerine",
355
+ children: "Tangerine Button",
356
+ onPress: action("tangerine"),
357
+ },
358
+ };
359
+
360
+ export const Color_Blackberry: Story = {
361
+ args: {
362
+ variant: "blackberry",
363
+ children: "Blackberry Button",
364
+ onPress: action("blackberry"),
365
+ },
366
+ };
367
+
368
+ export const Color_Chia: Story = {
369
+ args: {
370
+ variant: "chia",
371
+ children: "Chia Button",
372
+ onPress: action("chia"),
373
+ },
374
+ };
375
+
376
+ export const Color_Outline: Story = {
377
+ args: {
378
+ variant: "outline",
379
+ children: "Outline Button",
380
+ onPress: action("outline"),
381
+ },
382
+ };
383
+
384
+ export const Color_Glass: Story = {
385
+ args: {
386
+ variant: "glass",
387
+ children: "Glass Button",
388
+ onPress: action("glass"),
389
+ },
390
+ render: () => {
391
+ return (
392
+ <View className="flex-1 p-6 bg-gradient-to-tr from-java-600 to-pear-600">
393
+ <Button variant="glass" onPress={action("glass")}>
394
+ Glass Button
395
+ </Button>
396
+ </View>
397
+ );
398
+ },
399
+ };
400
+
401
+ export const Color_Ghost: Story = {
402
+ args: {
403
+ variant: "ghost",
404
+ children: "Ghost Button",
405
+ onPress: action("ghost"),
406
+ },
407
+ };
@@ -0,0 +1,137 @@
1
+ import React from "react";
2
+ import { Text, Pressable, Animated, GestureResponderEvent } from "react-native";
3
+ import { merge } from "@butterfly/tailwind-preset";
4
+ import { LoadingDots } from "../LoadingDots";
5
+ import { LoadingDotsVariant } from "../LoadingDots/types";
6
+ import { ButtonProps, ButtonVariant } from "./types";
7
+ import {
8
+ textVariants,
9
+ buttonVariants,
10
+ selectedVariants,
11
+ } from "./assets/class-variants";
12
+
13
+ export function Button(props: ButtonProps) {
14
+ const {
15
+ variant = "grape",
16
+ size = "large",
17
+ corners = "medium",
18
+ fullWidth = false,
19
+ loading = false,
20
+ selected = false,
21
+ disabled = false,
22
+ className,
23
+ children,
24
+ onPress,
25
+ accessibilityLabel,
26
+ ref,
27
+ onPressIn,
28
+ onPressOut,
29
+ ...rest
30
+ } = props;
31
+
32
+ const animatedValue = React.useRef(new Animated.Value(1)).current;
33
+
34
+ const loadingDotsVariantsMap: Record<ButtonVariant, LoadingDotsVariant> = {
35
+ grape: "light",
36
+ java: "light",
37
+ pear: "light",
38
+ tangerine: "light",
39
+ blackberry: "light",
40
+ chia: "light",
41
+ outline: "grape",
42
+ glass: "grape",
43
+ ghost: "grape",
44
+ };
45
+
46
+ function renderContent() {
47
+ const textStyle = merge(
48
+ textVariants({
49
+ variant,
50
+ size,
51
+ selected: selected && (variant === "outline" || variant === "ghost"),
52
+ })
53
+ );
54
+
55
+ if (loading) {
56
+ const _variant = loadingDotsVariantsMap[variant ?? "grape"];
57
+
58
+ return (
59
+ <>
60
+ <LoadingDots variant={_variant} className={"w-700 h-700"} />
61
+ </>
62
+ );
63
+ }
64
+
65
+ return (
66
+ <Text className={textStyle} numberOfLines={1}>
67
+ {children}
68
+ </Text>
69
+ );
70
+ }
71
+
72
+ const buttonStyle = merge(
73
+ buttonVariants({
74
+ variant: selected ? undefined : variant,
75
+ size,
76
+ corners,
77
+ fullWidth,
78
+ }),
79
+ selected && selectedVariants({ variant }),
80
+ className
81
+ );
82
+
83
+ const handlePressIn = (event: GestureResponderEvent) => {
84
+ Animated.timing(animatedValue, {
85
+ toValue: 0.7,
86
+ duration: 100,
87
+ useNativeDriver: true,
88
+ }).start();
89
+
90
+ onPressIn?.(event);
91
+ };
92
+
93
+ const handlePressOut = (event: GestureResponderEvent) => {
94
+ Animated.timing(animatedValue, {
95
+ toValue: 1,
96
+ duration: 100,
97
+ useNativeDriver: true,
98
+ }).start();
99
+
100
+ onPressOut?.(event);
101
+ };
102
+
103
+ return (
104
+ <Animated.View
105
+ style={{
106
+ opacity: animatedValue,
107
+ }}
108
+ >
109
+ <Pressable
110
+ ref={ref}
111
+ className={buttonStyle}
112
+ disabled={disabled}
113
+ onPress={onPress}
114
+ onPressIn={handlePressIn}
115
+ onPressOut={handlePressOut}
116
+ accessibilityRole="button"
117
+ accessibilityLabel={
118
+ accessibilityLabel ||
119
+ (typeof children === "string" ? children : "Button")
120
+ }
121
+ accessibilityState={{
122
+ disabled: disabled,
123
+ selected: selected,
124
+ busy: loading,
125
+ }}
126
+ pointerEvents={loading || disabled ? "none" : "auto"}
127
+ {...rest}
128
+ >
129
+ {renderContent()}
130
+ </Pressable>
131
+ </Animated.View>
132
+ );
133
+ }
134
+
135
+ Button.displayName = "Button";
136
+
137
+ export default Button;
@@ -0,0 +1,31 @@
1
+ import type { VariantProps } from "class-variance-authority";
2
+ import { buttonVariants } from "./assets/class-variants";
3
+ import { PressableProps, View } from "react-native";
4
+
5
+ export type ButtonVariant =
6
+ | "grape"
7
+ | "java"
8
+ | "pear"
9
+ | "tangerine"
10
+ | "blackberry"
11
+ | "chia"
12
+ | "outline"
13
+ | "glass"
14
+ | "ghost";
15
+
16
+ export type ButtonSize = "small" | "medium" | "large";
17
+
18
+ export type ButtonCorners = "small" | "medium";
19
+
20
+ export interface ButtonProps
21
+ extends VariantProps<typeof buttonVariants>,
22
+ PressableProps {
23
+ loading?: boolean;
24
+ selected?: boolean;
25
+ disabled?: boolean;
26
+ className?: string;
27
+ children?: React.ReactNode;
28
+ onPress?: () => void;
29
+ accessibilityLabel?: string;
30
+ ref?: React.RefObject<View | null>;
31
+ }
@@ -0,0 +1,68 @@
1
+ import { cva } from "class-variance-authority";
2
+
3
+ export const chipVariants = cva(
4
+ "flex flex-row items-center justify-between max-w-fit stroke-none border-100 bg-chia-100",
5
+ {
6
+ variants: {
7
+ size: {
8
+ medium: "min-w-[64px] max-h-700 h-full p-300 gap-300 rounded-500",
9
+ large: "min-w-[86px] max-h-800 h-full p-400 gap-400 rounded-600",
10
+ },
11
+ variant: {
12
+ filled: "",
13
+ outline: "border-chia-400",
14
+ highlight: "bg-chia-300 border-chia-300",
15
+ },
16
+ sealVariant: {
17
+ add: null,
18
+ success: null,
19
+ error: null,
20
+ alert: null,
21
+ minus: null,
22
+ right: null,
23
+ left: null,
24
+ },
25
+ },
26
+ compoundVariants: [
27
+ {
28
+ variant: "filled",
29
+ sealVariant: "add",
30
+ class: "bg-grape-500 border-grape-500",
31
+ },
32
+ {
33
+ variant: "filled",
34
+ sealVariant: "success",
35
+ class: "bg-pear-500 border-pear-500",
36
+ },
37
+ {
38
+ variant: "filled",
39
+ sealVariant: "error",
40
+ class: "bg-blackberry-500 border-blackberry-500",
41
+ },
42
+ {
43
+ variant: "filled",
44
+ sealVariant: "alert",
45
+ class: "bg-tangerine-500 border-tangerine-500",
46
+ },
47
+ {
48
+ variant: "filled",
49
+ sealVariant: "minus",
50
+ class: "bg-chia-600 border-chia-600",
51
+ },
52
+ {
53
+ variant: "filled",
54
+ sealVariant: "right",
55
+ class: "bg-chia-600 border-chia-600",
56
+ },
57
+ {
58
+ variant: "filled",
59
+ sealVariant: "left",
60
+ class: "bg-chia-600 border-chia-600",
61
+ },
62
+ ],
63
+ defaultVariants: {
64
+ size: "medium",
65
+ variant: "outline",
66
+ },
67
+ }
68
+ );
@@ -0,0 +1,4 @@
1
+ export enum ChipSizeEnum {
2
+ MEDIUM = "medium",
3
+ LARGE = "large",
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum ChipVariantEnum {
2
+ HIGHLIGHT = "highlight",
3
+ FILLED = "filled",
4
+ OUTLINE = "outline",
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./chip-variant";
2
+ export * from "./chip-size";