@admin-layout/gluestack-ui-mobile 11.0.1-alpha.0 → 11.0.3-alpha.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 (429) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/components/Fallback.js +12 -12
  3. package/lib/components/Fallback.js.map +1 -1
  4. package/lib/components/Layout/components/BasicLayout.js +2 -2
  5. package/lib/components/Layout/components/BasicLayout.js.map +1 -1
  6. package/lib/components/Layout/components/BottomTabBar.js +6 -6
  7. package/lib/components/Layout/components/BottomTabBar.js.map +1 -1
  8. package/lib/components/Layout/components/Drawer.js +16 -17
  9. package/lib/components/Layout/components/Drawer.js.map +1 -1
  10. package/lib/components/Layout/components/Header.js +12 -15
  11. package/lib/components/Layout/components/Header.js.map +1 -1
  12. package/lib/components/Layout/components/Sample.js +1 -1
  13. package/lib/components/Layout/components/Sample.js.map +1 -1
  14. package/lib/components/Layout/components/SettingDrawer/LayoutButton.js +9 -9
  15. package/lib/components/Layout/components/SettingDrawer/LayoutButton.js.map +1 -1
  16. package/lib/components/Layout/components/SettingDrawer/SettingDrawer.js +37 -36
  17. package/lib/components/Layout/components/SettingDrawer/SettingDrawer.js.map +1 -1
  18. package/lib/components/Layout/components/SettingDrawer/ThemeColorButton.js +13 -2
  19. package/lib/components/Layout/components/SettingDrawer/ThemeColorButton.js.map +1 -1
  20. package/lib/components/Layout/components/SideBar.js +7 -10
  21. package/lib/components/Layout/components/SideBar.js.map +1 -1
  22. package/lib/components/ToastAlert.d.ts +1 -1
  23. package/lib/components/ToastAlert.js +4 -4
  24. package/lib/components/ToastAlert.js.map +1 -1
  25. package/lib/components/UnAuthenticatedComponent.js +9 -9
  26. package/lib/components/UnAuthenticatedComponent.js.map +1 -1
  27. package/lib/components/WithConfiguration.js +1 -1
  28. package/lib/components/WithConfiguration.js.map +1 -1
  29. package/lib/components/WithPermission.d.ts +1 -1
  30. package/lib/components/WithPermission.js +1 -1
  31. package/lib/components/WithPermission.js.map +1 -1
  32. package/lib/components/WithPolicy.js +1 -1
  33. package/lib/components/WithPolicy.js.map +1 -1
  34. package/lib/components/index.d.ts +1 -0
  35. package/lib/components/index.js +1 -0
  36. package/lib/components/index.js.map +1 -1
  37. package/lib/components/ui/IconSymbol.d.ts +19 -0
  38. package/lib/components/ui/IconSymbol.ios.d.ts +10 -0
  39. package/lib/components/ui/IconSymbol.ios.js +12 -0
  40. package/lib/components/ui/IconSymbol.ios.js.map +1 -0
  41. package/lib/components/ui/IconSymbol.js +21 -0
  42. package/lib/components/ui/IconSymbol.js.map +1 -0
  43. package/lib/components/ui/TabBarBackground.d.ts +2 -0
  44. package/lib/components/ui/TabBarBackground.ios.d.ts +3 -0
  45. package/lib/components/ui/TabBarBackground.ios.js +20 -0
  46. package/lib/components/ui/TabBarBackground.ios.js.map +1 -0
  47. package/lib/components/ui/TabBarBackground.js +6 -0
  48. package/lib/components/ui/TabBarBackground.js.map +1 -0
  49. package/lib/components/ui/accordion/index.d.ts +193 -0
  50. package/lib/components/ui/accordion/index.js +177 -0
  51. package/lib/components/ui/accordion/index.js.map +1 -0
  52. package/lib/components/ui/actionsheet/index.d.ts +735 -0
  53. package/lib/components/ui/actionsheet/index.js +274 -0
  54. package/lib/components/ui/actionsheet/index.js.map +1 -0
  55. package/lib/components/ui/alert/index.d.ts +479 -0
  56. package/lib/components/ui/alert/index.js +153 -0
  57. package/lib/components/ui/alert/index.js.map +1 -0
  58. package/lib/components/ui/alert-dialog/index.d.ts +59 -0
  59. package/lib/components/ui/alert-dialog/index.js +137 -0
  60. package/lib/components/ui/alert-dialog/index.js.map +1 -0
  61. package/lib/components/ui/avatar/index.d.ts +144 -0
  62. package/lib/components/ui/avatar/index.js +99 -0
  63. package/lib/components/ui/avatar/index.js.map +1 -0
  64. package/lib/components/ui/badge/index.d.ts +386 -0
  65. package/lib/components/ui/badge/index.js +139 -0
  66. package/lib/components/ui/badge/index.js.map +1 -0
  67. package/lib/components/ui/box/index.d.ts +7 -0
  68. package/lib/components/ui/box/index.js +9 -0
  69. package/lib/components/ui/box/index.js.map +1 -0
  70. package/lib/components/ui/box/index.web.d.ts +6 -0
  71. package/lib/components/ui/box/index.web.js +8 -0
  72. package/lib/components/ui/box/index.web.js.map +1 -0
  73. package/lib/components/ui/box/styles.d.ts +1 -0
  74. package/lib/components/ui/box/styles.js +9 -0
  75. package/lib/components/ui/box/styles.js.map +1 -0
  76. package/lib/components/ui/button/index.d.ts +529 -0
  77. package/lib/components/ui/button/index.js +280 -0
  78. package/lib/components/ui/button/index.js.map +1 -0
  79. package/lib/components/ui/card/index.d.ts +129 -0
  80. package/lib/components/ui/card/index.js +9 -0
  81. package/lib/components/ui/card/index.js.map +1 -0
  82. package/lib/components/ui/card/index.web.d.ts +126 -0
  83. package/lib/components/ui/card/index.web.js +8 -0
  84. package/lib/components/ui/card/index.web.js.map +1 -0
  85. package/lib/components/ui/card/styles.d.ts +123 -0
  86. package/lib/components/ui/card/styles.js +20 -0
  87. package/lib/components/ui/card/styles.js.map +1 -0
  88. package/lib/components/ui/center/index.d.ts +5 -0
  89. package/lib/components/ui/center/index.js +9 -0
  90. package/lib/components/ui/center/index.js.map +1 -0
  91. package/lib/components/ui/center/index.web.d.ts +4 -0
  92. package/lib/components/ui/center/index.web.js +8 -0
  93. package/lib/components/ui/center/index.web.js.map +1 -0
  94. package/lib/components/ui/center/styles.d.ts +1 -0
  95. package/lib/components/ui/center/styles.js +7 -0
  96. package/lib/components/ui/center/styles.js.map +1 -0
  97. package/lib/components/ui/checkbox/index.d.ts +115 -0
  98. package/lib/components/ui/checkbox/index.js +127 -0
  99. package/lib/components/ui/checkbox/index.js.map +1 -0
  100. package/lib/components/ui/divider/index.d.ts +54 -0
  101. package/lib/components/ui/divider/index.js +22 -0
  102. package/lib/components/ui/divider/index.js.map +1 -0
  103. package/lib/components/ui/drawer/index.d.ts +207 -0
  104. package/lib/components/ui/drawer/index.js +198 -0
  105. package/lib/components/ui/drawer/index.js.map +1 -0
  106. package/lib/components/ui/fab/index.d.ts +520 -0
  107. package/lib/components/ui/fab/index.js +142 -0
  108. package/lib/components/ui/fab/index.js.map +1 -0
  109. package/lib/components/ui/flat-list/index.d.ts +1 -0
  110. package/lib/components/ui/flat-list/index.js +3 -0
  111. package/lib/components/ui/flat-list/index.js.map +1 -0
  112. package/lib/components/ui/form-control/index.d.ts +2072 -0
  113. package/lib/components/ui/form-control/index.js +290 -0
  114. package/lib/components/ui/form-control/index.js.map +1 -0
  115. package/lib/components/ui/gluestack-ui-provider/config.d.ts +4 -0
  116. package/lib/components/ui/gluestack-ui-provider/config.js +287 -0
  117. package/lib/components/ui/gluestack-ui-provider/config.js.map +1 -0
  118. package/lib/components/ui/gluestack-ui-provider/index.d.ts +8 -0
  119. package/lib/components/ui/gluestack-ui-provider/index.js +22 -0
  120. package/lib/components/ui/gluestack-ui-provider/index.js.map +1 -0
  121. package/lib/components/ui/gluestack-ui-provider/index.web.d.ts +7 -0
  122. package/lib/components/ui/gluestack-ui-provider/index.web.js +69 -0
  123. package/lib/components/ui/gluestack-ui-provider/index.web.js.map +1 -0
  124. package/lib/components/ui/gluestack-ui-provider/script.d.ts +1 -0
  125. package/lib/components/ui/gluestack-ui-provider/script.js +17 -0
  126. package/lib/components/ui/gluestack-ui-provider/script.js.map +1 -0
  127. package/lib/components/ui/gluestack-ui-provider/types.d.ts +1 -0
  128. package/lib/components/ui/gluestack-ui-provider/types.js +2 -0
  129. package/lib/components/ui/gluestack-ui-provider/types.js.map +1 -0
  130. package/lib/components/ui/grid/index.d.ts +27 -0
  131. package/lib/components/ui/grid/index.js +175 -0
  132. package/lib/components/ui/grid/index.js.map +1 -0
  133. package/lib/components/ui/grid/index.web.d.ts +23 -0
  134. package/lib/components/ui/grid/index.web.js +20 -0
  135. package/lib/components/ui/grid/index.web.js.map +1 -0
  136. package/lib/components/ui/grid/styles.d.ts +2 -0
  137. package/lib/components/ui/grid/styles.js +11 -0
  138. package/lib/components/ui/grid/styles.js.map +1 -0
  139. package/lib/components/ui/heading/index.d.ts +335 -0
  140. package/lib/components/ui/heading/index.js +135 -0
  141. package/lib/components/ui/heading/index.js.map +1 -0
  142. package/lib/components/ui/heading/index.web.d.ts +335 -0
  143. package/lib/components/ui/heading/index.web.js +113 -0
  144. package/lib/components/ui/heading/index.web.js.map +1 -0
  145. package/lib/components/ui/heading/styles.d.ts +330 -0
  146. package/lib/components/ui/heading/styles.js +43 -0
  147. package/lib/components/ui/heading/styles.js.map +1 -0
  148. package/lib/components/ui/hstack/index.d.ts +150 -0
  149. package/lib/components/ui/hstack/index.js +9 -0
  150. package/lib/components/ui/hstack/index.js.map +1 -0
  151. package/lib/components/ui/hstack/index.web.d.ts +148 -0
  152. package/lib/components/ui/hstack/index.web.js +8 -0
  153. package/lib/components/ui/hstack/index.web.js.map +1 -0
  154. package/lib/components/ui/hstack/styles.d.ts +145 -0
  155. package/lib/components/ui/hstack/styles.js +24 -0
  156. package/lib/components/ui/hstack/styles.js.map +1 -0
  157. package/lib/components/ui/icon/index.d.ts +364 -0
  158. package/lib/components/ui/icon/index.js +565 -0
  159. package/lib/components/ui/icon/index.js.map +1 -0
  160. package/lib/components/ui/icon/index.web.d.ts +489 -0
  161. package/lib/components/ui/icon/index.web.js +555 -0
  162. package/lib/components/ui/icon/index.web.js.map +1 -0
  163. package/lib/components/ui/image/index.d.ts +132 -0
  164. package/lib/components/ui/image/index.js +33 -0
  165. package/lib/components/ui/image/index.js.map +1 -0
  166. package/lib/components/ui/image-background/index.d.ts +3 -0
  167. package/lib/components/ui/image-background/index.js +11 -0
  168. package/lib/components/ui/image-background/index.js.map +1 -0
  169. package/lib/components/ui/index.d.ts +54 -0
  170. package/lib/components/ui/index.js +55 -0
  171. package/lib/components/ui/index.js.map +1 -0
  172. package/lib/components/ui/input/index.d.ts +262 -0
  173. package/lib/components/ui/input/index.js +121 -0
  174. package/lib/components/ui/input/index.js.map +1 -0
  175. package/lib/components/ui/input-accessory-view/index.d.ts +1 -0
  176. package/lib/components/ui/input-accessory-view/index.js +3 -0
  177. package/lib/components/ui/input-accessory-view/index.js.map +1 -0
  178. package/lib/components/ui/keyboard-avoiding-view/index.d.ts +1 -0
  179. package/lib/components/ui/keyboard-avoiding-view/index.js +3 -0
  180. package/lib/components/ui/keyboard-avoiding-view/index.js.map +1 -0
  181. package/lib/components/ui/link/index.d.ts +369 -0
  182. package/lib/components/ui/link/index.js +69 -0
  183. package/lib/components/ui/link/index.js.map +1 -0
  184. package/lib/components/ui/menu/index.d.ts +376 -0
  185. package/lib/components/ui/menu/index.js +120 -0
  186. package/lib/components/ui/menu/index.js.map +1 -0
  187. package/lib/components/ui/modal/index.d.ts +146 -0
  188. package/lib/components/ui/modal/index.js +137 -0
  189. package/lib/components/ui/modal/index.js.map +1 -0
  190. package/lib/components/ui/popover/index.d.ts +310 -0
  191. package/lib/components/ui/popover/index.js +172 -0
  192. package/lib/components/ui/popover/index.js.map +1 -0
  193. package/lib/components/ui/portal/index.d.ts +2 -0
  194. package/lib/components/ui/portal/index.js +9 -0
  195. package/lib/components/ui/portal/index.js.map +1 -0
  196. package/lib/components/ui/pressable/index.d.ts +13 -0
  197. package/lib/components/ui/pressable/index.js +20 -0
  198. package/lib/components/ui/pressable/index.js.map +1 -0
  199. package/lib/components/ui/progress/index.d.ts +174 -0
  200. package/lib/components/ui/progress/index.js +127 -0
  201. package/lib/components/ui/progress/index.js.map +1 -0
  202. package/lib/components/ui/radio/index.d.ts +160 -0
  203. package/lib/components/ui/radio/index.js +122 -0
  204. package/lib/components/ui/radio/index.js.map +1 -0
  205. package/lib/components/ui/refresh-control/index.d.ts +1 -0
  206. package/lib/components/ui/refresh-control/index.js +3 -0
  207. package/lib/components/ui/refresh-control/index.js.map +1 -0
  208. package/lib/components/ui/safe-area-view/index.d.ts +6 -0
  209. package/lib/components/ui/safe-area-view/index.js +9 -0
  210. package/lib/components/ui/safe-area-view/index.js.map +1 -0
  211. package/lib/components/ui/safe-area-view/styles.d.ts +1 -0
  212. package/lib/components/ui/safe-area-view/styles.js +9 -0
  213. package/lib/components/ui/safe-area-view/styles.js.map +1 -0
  214. package/lib/components/ui/scroll-view/index.d.ts +1 -0
  215. package/lib/components/ui/scroll-view/index.js +3 -0
  216. package/lib/components/ui/scroll-view/index.js.map +1 -0
  217. package/lib/components/ui/section-list/index.d.ts +1 -0
  218. package/lib/components/ui/section-list/index.js +3 -0
  219. package/lib/components/ui/section-list/index.js.map +1 -0
  220. package/lib/components/ui/select/index.d.ts +1708 -0
  221. package/lib/components/ui/select/index.js +155 -0
  222. package/lib/components/ui/select/index.js.map +1 -0
  223. package/lib/components/ui/select/select-actionsheet.d.ts +900 -0
  224. package/lib/components/ui/select/select-actionsheet.js +275 -0
  225. package/lib/components/ui/select/select-actionsheet.js.map +1 -0
  226. package/lib/components/ui/skeleton/index.d.ts +268 -0
  227. package/lib/components/ui/skeleton/index.js +63 -0
  228. package/lib/components/ui/skeleton/index.js.map +1 -0
  229. package/lib/components/ui/skeleton/index.web.d.ts +267 -0
  230. package/lib/components/ui/skeleton/index.web.js +37 -0
  231. package/lib/components/ui/skeleton/index.web.js.map +1 -0
  232. package/lib/components/ui/skeleton/styles.d.ts +257 -0
  233. package/lib/components/ui/skeleton/styles.js +35 -0
  234. package/lib/components/ui/skeleton/styles.js.map +1 -0
  235. package/lib/components/ui/slider/index.d.ts +211 -0
  236. package/lib/components/ui/slider/index.js +180 -0
  237. package/lib/components/ui/slider/index.js.map +1 -0
  238. package/lib/components/ui/spinner/index.d.ts +4 -0
  239. package/lib/components/ui/spinner/index.js +15 -0
  240. package/lib/components/ui/spinner/index.js.map +1 -0
  241. package/lib/components/ui/status-bar/index.d.ts +1 -0
  242. package/lib/components/ui/status-bar/index.js +3 -0
  243. package/lib/components/ui/status-bar/index.js.map +1 -0
  244. package/lib/components/ui/switch/index.d.ts +72 -0
  245. package/lib/components/ui/switch/index.js +25 -0
  246. package/lib/components/ui/switch/index.js.map +1 -0
  247. package/lib/components/ui/table/index.d.ts +17 -0
  248. package/lib/components/ui/table/index.js +96 -0
  249. package/lib/components/ui/table/index.js.map +1 -0
  250. package/lib/components/ui/table/index.web.d.ts +10 -0
  251. package/lib/components/ui/table/index.web.js +60 -0
  252. package/lib/components/ui/table/index.web.js.map +1 -0
  253. package/lib/components/ui/table/styles.d.ts +75 -0
  254. package/lib/components/ui/table/styles.js +36 -0
  255. package/lib/components/ui/table/styles.js.map +1 -0
  256. package/lib/components/ui/text/index.d.ts +358 -0
  257. package/lib/components/ui/text/index.js +19 -0
  258. package/lib/components/ui/text/index.js.map +1 -0
  259. package/lib/components/ui/text/index.web.d.ts +6 -0
  260. package/lib/components/ui/text/index.web.js +18 -0
  261. package/lib/components/ui/text/index.web.js.map +1 -0
  262. package/lib/components/ui/text/styles.d.ts +352 -0
  263. package/lib/components/ui/text/styles.js +45 -0
  264. package/lib/components/ui/text/styles.js.map +1 -0
  265. package/lib/components/ui/textarea/index.d.ts +129 -0
  266. package/lib/components/ui/textarea/index.js +52 -0
  267. package/lib/components/ui/textarea/index.js.map +1 -0
  268. package/lib/components/ui/toast/index.d.ts +527 -0
  269. package/lib/components/ui/toast/index.js +165 -0
  270. package/lib/components/ui/toast/index.js.map +1 -0
  271. package/lib/components/ui/tooltip/index.d.ts +391 -0
  272. package/lib/components/ui/tooltip/index.js +75 -0
  273. package/lib/components/ui/tooltip/index.js.map +1 -0
  274. package/lib/components/ui/utils/use-break-point-value.d.ts +14 -0
  275. package/lib/components/ui/utils/use-break-point-value.js +54 -0
  276. package/lib/components/ui/utils/use-break-point-value.js.map +1 -0
  277. package/lib/components/ui/view/index.d.ts +1 -0
  278. package/lib/components/ui/view/index.js +3 -0
  279. package/lib/components/ui/view/index.js.map +1 -0
  280. package/lib/components/ui/virtualized-list/index.d.ts +1 -0
  281. package/lib/components/ui/virtualized-list/index.js +3 -0
  282. package/lib/components/ui/virtualized-list/index.js.map +1 -0
  283. package/lib/components/ui/vstack/index.d.ts +149 -0
  284. package/lib/components/ui/vstack/index.js +9 -0
  285. package/lib/components/ui/vstack/index.js.map +1 -0
  286. package/lib/components/ui/vstack/index.web.d.ts +6 -0
  287. package/lib/components/ui/vstack/index.web.js +8 -0
  288. package/lib/components/ui/vstack/index.web.js.map +1 -0
  289. package/lib/components/ui/vstack/styles.d.ts +145 -0
  290. package/lib/components/ui/vstack/styles.js +24 -0
  291. package/lib/components/ui/vstack/styles.js.map +1 -0
  292. package/lib/components/usePermissionAutoFetch.d.ts +19 -7
  293. package/lib/components/with-interactions-lifecycle-managed.js +13 -11
  294. package/lib/components/with-interactions-lifecycle-managed.js.map +1 -1
  295. package/lib/components/with-interactions-managed.js +3 -3
  296. package/lib/components/with-interactions-managed.js.map +1 -1
  297. package/lib/containers/layout/ProLayout.js +2 -2
  298. package/lib/containers/layout/ProLayout.js.map +1 -1
  299. package/lib/global.css +3 -0
  300. package/lib/gluestack-ui-base-config.d.ts +8 -0
  301. package/lib/gluestack-ui-base-config.js +12 -0
  302. package/lib/gluestack-ui-base-config.js.map +1 -0
  303. package/lib/gluestack-ui.config.json +10 -0
  304. package/lib/index.d.ts +0 -3
  305. package/lib/index.js +5 -5
  306. package/lib/index.js.map +1 -1
  307. package/lib/nativewind-env.d.ts +1 -0
  308. package/lib/tailwind-base-config.d.ts +194 -0
  309. package/lib/tailwind-base-config.js +197 -0
  310. package/lib/tailwind-base-config.js.map +1 -0
  311. package/lib/tailwind.config.d.ts +1 -0
  312. package/lib/tailwind.config.js +197 -0
  313. package/lib/tailwind.config.js.map +1 -0
  314. package/lib/utils/generateMobileNavigations.js +26 -2
  315. package/lib/utils/generateMobileNavigations.js.map +1 -1
  316. package/package.json +39 -8
  317. package/src/components/Fallback.tsx +54 -58
  318. package/src/components/Layout/components/BasicLayout.tsx +2 -2
  319. package/src/components/Layout/components/BottomTabBar.tsx +92 -101
  320. package/src/components/Layout/components/Drawer.tsx +31 -28
  321. package/src/components/Layout/components/Header.tsx +26 -27
  322. package/src/components/Layout/components/Sample.tsx +1 -1
  323. package/src/components/Layout/components/SettingDrawer/LayoutButton.tsx +15 -29
  324. package/src/components/Layout/components/SettingDrawer/SettingDrawer.tsx +49 -57
  325. package/src/components/Layout/components/SettingDrawer/ThemeColorButton.tsx +14 -5
  326. package/src/components/Layout/components/SideBar.tsx +12 -17
  327. package/src/components/ToastAlert.tsx +13 -13
  328. package/src/components/UnAuthenticatedComponent.tsx +19 -27
  329. package/src/components/WithConfiguration.tsx +1 -1
  330. package/src/components/WithPermission.tsx +1 -1
  331. package/src/components/WithPolicy.tsx +1 -1
  332. package/src/components/index.ts +1 -0
  333. package/src/components/ui/IconSymbol.ios.tsx +33 -0
  334. package/src/components/ui/IconSymbol.tsx +40 -0
  335. package/src/components/ui/TabBarBackground.ios.tsx +23 -0
  336. package/src/components/ui/TabBarBackground.tsx +6 -0
  337. package/src/components/ui/accordion/index.tsx +304 -0
  338. package/src/components/ui/actionsheet/index.tsx +499 -0
  339. package/src/components/ui/alert/index.tsx +205 -0
  340. package/src/components/ui/alert-dialog/index.tsx +260 -0
  341. package/src/components/ui/avatar/index.tsx +162 -0
  342. package/src/components/ui/badge/index.tsx +188 -0
  343. package/src/components/ui/box/index.tsx +14 -0
  344. package/src/components/ui/box/index.web.tsx +13 -0
  345. package/src/components/ui/box/styles.tsx +10 -0
  346. package/src/components/ui/button/index.tsx +353 -0
  347. package/src/components/ui/card/index.tsx +16 -0
  348. package/src/components/ui/card/index.web.tsx +15 -0
  349. package/src/components/ui/card/styles.tsx +20 -0
  350. package/src/components/ui/center/index.tsx +14 -0
  351. package/src/components/ui/center/index.web.tsx +14 -0
  352. package/src/components/ui/center/styles.tsx +8 -0
  353. package/src/components/ui/checkbox/index.tsx +192 -0
  354. package/src/components/ui/divider/index.tsx +38 -0
  355. package/src/components/ui/drawer/index.tsx +311 -0
  356. package/src/components/ui/fab/index.tsx +190 -0
  357. package/src/components/ui/flat-list/index.tsx +2 -0
  358. package/src/components/ui/form-control/index.tsx +432 -0
  359. package/src/components/ui/gluestack-ui-provider/config.ts +309 -0
  360. package/src/components/ui/gluestack-ui-provider/index.tsx +38 -0
  361. package/src/components/ui/gluestack-ui-provider/index.web.tsx +88 -0
  362. package/src/components/ui/gluestack-ui-provider/script.ts +17 -0
  363. package/src/components/ui/gluestack-ui-provider/types.ts +1 -0
  364. package/src/components/ui/grid/index.tsx +284 -0
  365. package/src/components/ui/grid/index.web.tsx +61 -0
  366. package/src/components/ui/grid/styles.tsx +13 -0
  367. package/src/components/ui/heading/index.tsx +193 -0
  368. package/src/components/ui/heading/index.web.tsx +177 -0
  369. package/src/components/ui/heading/styles.tsx +43 -0
  370. package/src/components/ui/hstack/index.tsx +17 -0
  371. package/src/components/ui/hstack/index.web.tsx +15 -0
  372. package/src/components/ui/hstack/styles.tsx +25 -0
  373. package/src/components/ui/icon/index.tsx +1202 -0
  374. package/src/components/ui/icon/index.web.tsx +1190 -0
  375. package/src/components/ui/image/index.tsx +48 -0
  376. package/src/components/ui/image-background/index.tsx +21 -0
  377. package/src/components/ui/index.ts +54 -0
  378. package/src/components/ui/input/index.tsx +191 -0
  379. package/src/components/ui/input-accessory-view/index.tsx +2 -0
  380. package/src/components/ui/keyboard-avoiding-view/index.tsx +2 -0
  381. package/src/components/ui/link/index.tsx +92 -0
  382. package/src/components/ui/menu/index.tsx +179 -0
  383. package/src/components/ui/modal/index.tsx +244 -0
  384. package/src/components/ui/popover/index.tsx +309 -0
  385. package/src/components/ui/portal/index.tsx +12 -0
  386. package/src/components/ui/pressable/index.tsx +34 -0
  387. package/src/components/ui/progress/index.tsx +160 -0
  388. package/src/components/ui/radio/index.tsx +178 -0
  389. package/src/components/ui/refresh-control/index.tsx +2 -0
  390. package/src/components/ui/safe-area-view/index.tsx +22 -0
  391. package/src/components/ui/safe-area-view/styles.tsx +10 -0
  392. package/src/components/ui/scroll-view/index.tsx +2 -0
  393. package/src/components/ui/section-list/index.tsx +2 -0
  394. package/src/components/ui/select/index.tsx +251 -0
  395. package/src/components/ui/select/select-actionsheet.tsx +503 -0
  396. package/src/components/ui/skeleton/index.tsx +113 -0
  397. package/src/components/ui/skeleton/index.web.tsx +92 -0
  398. package/src/components/ui/skeleton/styles.tsx +35 -0
  399. package/src/components/ui/slider/index.tsx +239 -0
  400. package/src/components/ui/spinner/index.tsx +31 -0
  401. package/src/components/ui/status-bar/index.tsx +2 -0
  402. package/src/components/ui/switch/index.tsx +33 -0
  403. package/src/components/ui/table/index.tsx +171 -0
  404. package/src/components/ui/table/index.web.tsx +95 -0
  405. package/src/components/ui/table/styles.tsx +44 -0
  406. package/src/components/ui/text/index.tsx +53 -0
  407. package/src/components/ui/text/index.web.tsx +45 -0
  408. package/src/components/ui/text/styles.tsx +47 -0
  409. package/src/components/ui/textarea/index.tsx +83 -0
  410. package/src/components/ui/toast/index.tsx +218 -0
  411. package/src/components/ui/tooltip/index.tsx +104 -0
  412. package/src/components/ui/utils/use-break-point-value.ts +79 -0
  413. package/src/components/ui/view/index.tsx +2 -0
  414. package/src/components/ui/virtualized-list/index.tsx +2 -0
  415. package/src/components/ui/vstack/index.tsx +17 -0
  416. package/src/components/ui/vstack/index.web.tsx +16 -0
  417. package/src/components/ui/vstack/styles.tsx +25 -0
  418. package/src/components/with-interactions-lifecycle-managed.tsx +13 -14
  419. package/src/components/with-interactions-managed.tsx +3 -7
  420. package/src/containers/layout/ProLayout.tsx +3 -3
  421. package/src/global.css +3 -0
  422. package/src/gluestack-ui-base-config.js +12 -0
  423. package/src/gluestack-ui.config.json +10 -0
  424. package/src/index.ts +6 -7
  425. package/src/nativewind-env.d.ts +1 -0
  426. package/src/tailwind-base-config.js +197 -0
  427. package/src/tailwind.config.js +198 -0
  428. package/src/utils/generateMobileNavigations.ts +29 -1
  429. package/tsconfig.json +3 -9
@@ -0,0 +1,35 @@
1
+ import { tva } from '@gluestack-ui/nativewind-utils/tva';
2
+
3
+ export const skeletonStyle = tva({
4
+ base: 'w-full h-full',
5
+ variants: {
6
+ variant: {
7
+ sharp: 'rounded-none',
8
+ circular: 'rounded-full',
9
+ rounded: 'rounded-md',
10
+ },
11
+ speed: {
12
+ 1: 'duration-75',
13
+ 2: 'duration-100',
14
+ 3: 'duration-150',
15
+ 4: 'duration-200',
16
+ },
17
+ },
18
+ });
19
+ export const skeletonTextStyle = tva({
20
+ base: 'rounded-sm w-full',
21
+ variants: {
22
+ speed: {
23
+ 1: 'duration-75',
24
+ 2: 'duration-100',
25
+ 3: 'duration-150',
26
+ 4: 'duration-200',
27
+ },
28
+ gap: {
29
+ 1: 'gap-1',
30
+ 2: 'gap-2',
31
+ 3: 'gap-3',
32
+ 4: 'gap-4',
33
+ },
34
+ },
35
+ });
@@ -0,0 +1,239 @@
1
+ 'use client';
2
+ import { createSlider } from '@gluestack-ui/slider';
3
+ import { Pressable } from 'react-native';
4
+ import { View } from 'react-native';
5
+ import React from 'react';
6
+ import { tva } from '@gluestack-ui/nativewind-utils/tva';
7
+ import { withStyleContext, useStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext';
8
+ import type { VariantProps } from '@gluestack-ui/nativewind-utils';
9
+ import { cssInterop } from 'nativewind';
10
+
11
+ const SCOPE = 'SLIDER';
12
+ const Root = withStyleContext(View, SCOPE);
13
+ export const UISlider = createSlider({
14
+ Root: Root,
15
+ Thumb: View,
16
+ Track: Pressable,
17
+ FilledTrack: View,
18
+ ThumbInteraction: View,
19
+ });
20
+
21
+ cssInterop(UISlider.Track, { className: 'style' });
22
+
23
+ const sliderStyle = tva({
24
+ base: 'justify-center items-center data-[disabled=true]:opacity-40 data-[disabled=true]:web:pointer-events-none',
25
+ variants: {
26
+ orientation: {
27
+ horizontal: 'w-full',
28
+ vertical: 'h-full',
29
+ },
30
+ size: {
31
+ sm: '',
32
+ md: '',
33
+ lg: '',
34
+ },
35
+ isReversed: {
36
+ true: '',
37
+ false: '',
38
+ },
39
+ },
40
+ });
41
+
42
+ const sliderThumbStyle = tva({
43
+ base: 'bg-primary-500 absolute rounded-full data-[focus=true]:bg-primary-600 data-[active=true]:bg-primary-600 data-[hover=true]:bg-primary-600 data-[disabled=true]:bg-primary-500 web:cursor-pointer web:data-[active=true]:outline web:data-[active=true]:outline-4 web:data-[active=true]:outline-primary-400 shadow-hard-1',
44
+
45
+ parentVariants: {
46
+ size: {
47
+ sm: 'h-4 w-4',
48
+ md: 'h-5 w-5',
49
+ lg: 'h-6 w-6',
50
+ },
51
+ },
52
+ });
53
+
54
+ const sliderTrackStyle = tva({
55
+ base: 'bg-background-300 rounded-lg overflow-hidden',
56
+ parentVariants: {
57
+ orientation: {
58
+ horizontal: 'w-full',
59
+ vertical: 'h-full',
60
+ },
61
+ isReversed: {
62
+ true: '',
63
+ false: '',
64
+ },
65
+ size: {
66
+ sm: '',
67
+ md: '',
68
+ lg: '',
69
+ },
70
+ },
71
+ parentCompoundVariants: [
72
+ {
73
+ orientation: 'horizontal',
74
+ size: 'sm',
75
+ class: 'h-1 flex-row',
76
+ },
77
+ {
78
+ orientation: 'horizontal',
79
+ size: 'sm',
80
+ isReversed: true,
81
+ class: 'h-1 flex-row-reverse',
82
+ },
83
+ {
84
+ orientation: 'horizontal',
85
+ size: 'md',
86
+ class: 'h-1 flex-row',
87
+ },
88
+ {
89
+ orientation: 'horizontal',
90
+ size: 'md',
91
+ isReversed: true,
92
+ class: 'h-[5px] flex-row-reverse',
93
+ },
94
+ {
95
+ orientation: 'horizontal',
96
+ size: 'lg',
97
+ class: 'h-1.5 flex-row',
98
+ },
99
+ {
100
+ orientation: 'horizontal',
101
+ size: 'lg',
102
+ isReversed: true,
103
+ class: 'h-1.5 flex-row-reverse',
104
+ },
105
+ {
106
+ orientation: 'vertical',
107
+ size: 'sm',
108
+ class: 'w-1 flex-col-reverse',
109
+ },
110
+ {
111
+ orientation: 'vertical',
112
+ size: 'sm',
113
+ isReversed: true,
114
+ class: 'w-1 flex-col',
115
+ },
116
+ {
117
+ orientation: 'vertical',
118
+ size: 'md',
119
+ class: 'w-[5px] flex-col-reverse',
120
+ },
121
+ {
122
+ orientation: 'vertical',
123
+ size: 'md',
124
+ isReversed: true,
125
+ class: 'w-[5px] flex-col',
126
+ },
127
+ {
128
+ orientation: 'vertical',
129
+ size: 'lg',
130
+ class: 'w-1.5 flex-col-reverse',
131
+ },
132
+ {
133
+ orientation: 'vertical',
134
+ size: 'lg',
135
+ isReversed: true,
136
+ class: 'w-1.5 flex-col',
137
+ },
138
+ ],
139
+ });
140
+
141
+ const sliderFilledTrackStyle = tva({
142
+ base: 'bg-primary-500 data-[focus=true]:bg-primary-600 data-[active=true]:bg-primary-600 data-[hover=true]:bg-primary-600',
143
+ parentVariants: {
144
+ orientation: {
145
+ horizontal: 'h-full',
146
+ vertical: 'w-full',
147
+ },
148
+ },
149
+ });
150
+
151
+ type ISliderProps = React.ComponentProps<typeof UISlider> & VariantProps<typeof sliderStyle>;
152
+
153
+ const Slider = React.forwardRef<React.ElementRef<typeof UISlider>, ISliderProps>(
154
+ ({ className, size = 'md', orientation = 'horizontal', isReversed = false, ...props }, ref) => {
155
+ return (
156
+ <UISlider
157
+ ref={ref}
158
+ isReversed={isReversed}
159
+ orientation={orientation}
160
+ {...props}
161
+ className={sliderStyle({
162
+ orientation,
163
+ isReversed,
164
+ class: className,
165
+ })}
166
+ context={{ size, orientation, isReversed }}
167
+ />
168
+ );
169
+ },
170
+ );
171
+
172
+ type ISliderThumbProps = React.ComponentProps<typeof UISlider.Thumb> & VariantProps<typeof sliderThumbStyle>;
173
+
174
+ const SliderThumb = React.forwardRef<React.ElementRef<typeof UISlider.Thumb>, ISliderThumbProps>(
175
+ ({ className, size, ...props }, ref) => {
176
+ const { size: parentSize } = useStyleContext(SCOPE);
177
+
178
+ return (
179
+ <UISlider.Thumb
180
+ ref={ref}
181
+ {...props}
182
+ className={sliderThumbStyle({
183
+ parentVariants: {
184
+ size: parentSize,
185
+ },
186
+ size,
187
+ class: className,
188
+ })}
189
+ />
190
+ );
191
+ },
192
+ );
193
+
194
+ type ISliderTrackProps = React.ComponentProps<typeof UISlider.Track> & VariantProps<typeof sliderTrackStyle>;
195
+
196
+ const SliderTrack = React.forwardRef<React.ElementRef<typeof UISlider.Track>, ISliderTrackProps>(
197
+ ({ className, ...props }, ref) => {
198
+ const { orientation: parentOrientation, size: parentSize, isReversed } = useStyleContext(SCOPE);
199
+
200
+ return (
201
+ <UISlider.Track
202
+ ref={ref}
203
+ {...props}
204
+ className={sliderTrackStyle({
205
+ parentVariants: {
206
+ orientation: parentOrientation,
207
+ size: parentSize,
208
+ isReversed,
209
+ },
210
+ class: className,
211
+ })}
212
+ />
213
+ );
214
+ },
215
+ );
216
+
217
+ type ISliderFilledTrackProps = React.ComponentProps<typeof UISlider.FilledTrack> &
218
+ VariantProps<typeof sliderFilledTrackStyle>;
219
+
220
+ const SliderFilledTrack = React.forwardRef<React.ElementRef<typeof UISlider.FilledTrack>, ISliderFilledTrackProps>(
221
+ ({ className, ...props }, ref) => {
222
+ const { orientation: parentOrientation } = useStyleContext(SCOPE);
223
+
224
+ return (
225
+ <UISlider.FilledTrack
226
+ ref={ref}
227
+ {...props}
228
+ className={sliderFilledTrackStyle({
229
+ parentVariants: {
230
+ orientation: parentOrientation,
231
+ },
232
+ class: className,
233
+ })}
234
+ />
235
+ );
236
+ },
237
+ );
238
+
239
+ export { Slider, SliderThumb, SliderTrack, SliderFilledTrack };
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ import { ActivityIndicator } from 'react-native';
3
+ import React from 'react';
4
+ import { tva } from '@gluestack-ui/nativewind-utils/tva';
5
+ import { cssInterop } from 'nativewind';
6
+
7
+ cssInterop(ActivityIndicator, {
8
+ className: { target: 'style', nativeStyleToProp: { color: true } },
9
+ });
10
+
11
+ const spinnerStyle = tva({});
12
+
13
+ const Spinner = React.forwardRef<
14
+ React.ElementRef<typeof ActivityIndicator>,
15
+ React.ComponentProps<typeof ActivityIndicator>
16
+ >(({ className, color, focusable = false, 'aria-label': ariaLabel = 'loading', ...props }, ref) => {
17
+ return (
18
+ <ActivityIndicator
19
+ ref={ref}
20
+ focusable={focusable}
21
+ aria-label={ariaLabel}
22
+ {...props}
23
+ color={color}
24
+ className={spinnerStyle({ class: className })}
25
+ />
26
+ );
27
+ });
28
+
29
+ Spinner.displayName = 'Spinner';
30
+
31
+ export { Spinner };
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ export { StatusBar } from 'react-native';
@@ -0,0 +1,33 @@
1
+ 'use client';
2
+ import React from 'react';
3
+ import { Switch as RNSwitch } from 'react-native';
4
+ import { createSwitch } from '@gluestack-ui/switch';
5
+ import { tva } from '@gluestack-ui/nativewind-utils/tva';
6
+ import { withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext';
7
+ import type { VariantProps } from '@gluestack-ui/nativewind-utils';
8
+
9
+ const UISwitch = createSwitch({
10
+ Root: withStyleContext(RNSwitch),
11
+ });
12
+
13
+ const switchStyle = tva({
14
+ base: 'data-[focus=true]:outline-0 data-[focus=true]:ring-2 data-[focus=true]:ring-indicator-primary web:cursor-pointer disabled:cursor-not-allowed data-[disabled=true]:opacity-40 data-[invalid=true]:border-error-700 data-[invalid=true]:rounded-xl data-[invalid=true]:border-2',
15
+
16
+ variants: {
17
+ size: {
18
+ sm: 'scale-75',
19
+ md: '',
20
+ lg: 'scale-125',
21
+ },
22
+ },
23
+ });
24
+
25
+ type ISwitchProps = React.ComponentProps<typeof UISwitch> & VariantProps<typeof switchStyle>;
26
+ const Switch = React.forwardRef<React.ElementRef<typeof UISwitch>, ISwitchProps>(
27
+ ({ className, size = 'md', ...props }, ref) => {
28
+ return <UISwitch ref={ref} {...props} className={switchStyle({ size, class: className })} />;
29
+ },
30
+ );
31
+
32
+ Switch.displayName = 'Switch';
33
+ export { Switch };
@@ -0,0 +1,171 @@
1
+ import React, { createContext, useMemo, useContext } from 'react';
2
+ import {
3
+ Table as ExpoTable,
4
+ THead as ExpoTHead,
5
+ TBody as ExpoTBody,
6
+ TFoot as ExpoTFoot,
7
+ TR as ExpoTR,
8
+ Caption as ExpoTCaption,
9
+ } from '@expo/html-elements';
10
+
11
+ import {
12
+ tableStyle,
13
+ tableHeaderStyle,
14
+ tableBodyStyle,
15
+ tableFooterStyle,
16
+ tableHeadStyle,
17
+ tableRowStyleStyle,
18
+ tableDataStyle,
19
+ tableCaptionStyle,
20
+ } from './styles';
21
+ import { Text, View } from 'react-native';
22
+
23
+ const TableHeaderContext = createContext<{
24
+ isHeaderRow: boolean;
25
+ }>({
26
+ isHeaderRow: false,
27
+ });
28
+ const TableFooterContext = createContext<{
29
+ isFooterRow: boolean;
30
+ }>({
31
+ isFooterRow: false,
32
+ });
33
+
34
+ type ITableProps = React.ComponentProps<typeof ExpoTable>;
35
+ type ITableHeaderProps = React.ComponentProps<typeof ExpoTHead>;
36
+ type ITableBodyProps = React.ComponentProps<typeof ExpoTBody>;
37
+ type ITableFooterProps = React.ComponentProps<typeof ExpoTFoot>;
38
+ type ITableHeadProps = React.ComponentProps<typeof View | typeof Text> & {
39
+ useRNView?: boolean;
40
+ };
41
+ type ITableRowProps = React.ComponentProps<typeof ExpoTR>;
42
+ type ITableDataProps = React.ComponentProps<typeof View | typeof Text> & {
43
+ useRNView?: boolean;
44
+ };
45
+ type ITableCaptionProps = React.ComponentProps<typeof ExpoTCaption>;
46
+
47
+ const Table = React.forwardRef<React.ElementRef<typeof ExpoTable>, ITableProps>(({ className, ...props }, ref) => {
48
+ return (
49
+ <ExpoTable
50
+ // @ts-expect-error
51
+ ref={ref}
52
+ className={tableStyle({ class: className })}
53
+ {...props}
54
+ />
55
+ );
56
+ });
57
+
58
+ const TableHeader = React.forwardRef<React.ElementRef<typeof ExpoTHead>, ITableHeaderProps>(
59
+ ({ className, ...props }, ref) => {
60
+ const contextValue = useMemo(() => {
61
+ return {
62
+ isHeaderRow: true,
63
+ };
64
+ }, []);
65
+ return (
66
+ <TableHeaderContext.Provider value={contextValue}>
67
+ <ExpoTHead
68
+ // @ts-expect-error
69
+ ref={ref}
70
+ className={tableHeaderStyle({ class: className })}
71
+ {...props}
72
+ />
73
+ </TableHeaderContext.Provider>
74
+ );
75
+ },
76
+ );
77
+
78
+ const TableBody = React.forwardRef<React.ElementRef<typeof ExpoTBody>, ITableBodyProps>(
79
+ ({ className, ...props }, ref) => {
80
+ return (
81
+ <ExpoTBody
82
+ // @ts-expect-error
83
+ ref={ref}
84
+ className={tableBodyStyle({ class: className })}
85
+ {...props}
86
+ />
87
+ );
88
+ },
89
+ );
90
+
91
+ const TableFooter = React.forwardRef<React.ElementRef<typeof ExpoTFoot>, ITableFooterProps>(
92
+ ({ className, ...props }, ref) => {
93
+ const contextValue = useMemo(() => {
94
+ return {
95
+ isFooterRow: true,
96
+ };
97
+ }, []);
98
+ return (
99
+ <TableFooterContext.Provider value={contextValue}>
100
+ <ExpoTFoot
101
+ // @ts-expect-error
102
+ ref={ref}
103
+ className={tableFooterStyle({ class: className })}
104
+ {...props}
105
+ />
106
+ </TableFooterContext.Provider>
107
+ );
108
+ },
109
+ );
110
+
111
+ const TableHead = React.forwardRef<React.ElementRef<typeof View | typeof Text>, ITableHeadProps>(
112
+ ({ useRNView = false, className, ...props }, ref) => {
113
+ if (useRNView) {
114
+ return <View ref={ref} className={tableHeadStyle({ class: className })} {...props} />;
115
+ } else {
116
+ return <Text ref={ref} className={tableHeadStyle({ class: className })} {...props} />;
117
+ }
118
+ },
119
+ );
120
+
121
+ const TableRow = React.forwardRef<React.ElementRef<typeof ExpoTR>, ITableRowProps>(({ className, ...props }, ref) => {
122
+ const { isHeaderRow } = useContext(TableHeaderContext);
123
+ const { isFooterRow } = useContext(TableFooterContext);
124
+
125
+ return (
126
+ <ExpoTR
127
+ // @ts-expect-error
128
+ ref={ref}
129
+ className={tableRowStyleStyle({
130
+ isHeaderRow,
131
+ isFooterRow,
132
+ class: className,
133
+ })}
134
+ {...props}
135
+ />
136
+ );
137
+ });
138
+
139
+ const TableData = React.forwardRef<React.ElementRef<typeof View | typeof Text>, ITableDataProps>(
140
+ ({ useRNView = false, className, ...props }, ref) => {
141
+ if (useRNView) {
142
+ return <View ref={ref} className={tableDataStyle({ class: className })} {...props} />;
143
+ } else {
144
+ return <Text ref={ref} className={tableDataStyle({ class: className })} {...props} />;
145
+ }
146
+ },
147
+ );
148
+
149
+ const TableCaption = React.forwardRef<React.ElementRef<typeof ExpoTCaption>, ITableCaptionProps>(
150
+ ({ className, ...props }, ref) => {
151
+ return (
152
+ <ExpoTCaption
153
+ // @ts-expect-error
154
+ ref={ref}
155
+ className={tableCaptionStyle({ class: className })}
156
+ {...props}
157
+ />
158
+ );
159
+ },
160
+ );
161
+
162
+ Table.displayName = 'Table';
163
+ TableHeader.displayName = 'TableHeader';
164
+ TableBody.displayName = 'TableBody';
165
+ TableFooter.displayName = 'TableFooter';
166
+ TableHead.displayName = 'TableHead';
167
+ TableRow.displayName = 'TableRow';
168
+ TableData.displayName = 'TableData';
169
+ TableCaption.displayName = 'TableCaption';
170
+
171
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableData, TableCaption };
@@ -0,0 +1,95 @@
1
+ import React, { createContext, useMemo, useContext } from 'react';
2
+ import {
3
+ tableStyle,
4
+ tableHeaderStyle,
5
+ tableBodyStyle,
6
+ tableFooterStyle,
7
+ tableHeadStyle,
8
+ tableRowStyleStyle,
9
+ tableDataStyle,
10
+ tableCaptionStyle,
11
+ } from './styles';
12
+
13
+ const TableHeaderContext = createContext<{
14
+ isHeaderRow: boolean;
15
+ }>({
16
+ isHeaderRow: false,
17
+ });
18
+ const TableFooterContext = createContext<{
19
+ isFooterRow: boolean;
20
+ }>({
21
+ isFooterRow: false,
22
+ });
23
+
24
+ const Table = React.forwardRef(({ className, ...props }: any, ref?: any) => {
25
+ return <table ref={ref} className={tableStyle({ class: className })} {...props} />;
26
+ });
27
+
28
+ const TableHeader = React.forwardRef(({ className, ...props }: any, ref?: any) => {
29
+ const contextValue = useMemo(() => {
30
+ return {
31
+ isHeaderRow: true,
32
+ };
33
+ }, []);
34
+ return (
35
+ <TableHeaderContext.Provider value={contextValue}>
36
+ <thead ref={ref} className={tableHeaderStyle({ class: className })} {...props} />
37
+ </TableHeaderContext.Provider>
38
+ );
39
+ });
40
+
41
+ const TableBody = React.forwardRef(({ className, ...props }: any, ref?: any) => {
42
+ return <tbody ref={ref} className={tableBodyStyle({ class: className })} {...props} />;
43
+ });
44
+
45
+ const TableFooter = React.forwardRef(({ className, ...props }: any, ref?: any) => {
46
+ const contextValue = useMemo(() => {
47
+ return {
48
+ isFooterRow: true,
49
+ };
50
+ }, []);
51
+ return (
52
+ <TableFooterContext.Provider value={contextValue}>
53
+ <tfoot ref={ref} className={tableFooterStyle({ class: className })} {...props} />
54
+ </TableFooterContext.Provider>
55
+ );
56
+ });
57
+
58
+ const TableHead = React.forwardRef(({ className, ...props }: any, ref?: any) => {
59
+ return <th ref={ref} className={tableHeadStyle({ class: className })} {...props} />;
60
+ });
61
+
62
+ const TableRow = React.forwardRef(({ className, ...props }: any, ref?: any) => {
63
+ const { isHeaderRow } = useContext(TableHeaderContext);
64
+ const { isFooterRow } = useContext(TableFooterContext);
65
+ return (
66
+ <tr
67
+ ref={ref}
68
+ className={tableRowStyleStyle({
69
+ isHeaderRow,
70
+ isFooterRow,
71
+ class: className,
72
+ })}
73
+ {...props}
74
+ />
75
+ );
76
+ });
77
+
78
+ const TableData = React.forwardRef(({ className, ...props }: any, ref?: any) => {
79
+ return <td ref={ref} className={tableDataStyle({ class: className })} {...props} />;
80
+ });
81
+
82
+ const TableCaption = React.forwardRef(({ className, ...props }: any, ref?: any) => {
83
+ return <caption ref={ref} className={tableCaptionStyle({ class: className })} {...props} />;
84
+ });
85
+
86
+ Table.displayName = 'Table';
87
+ TableHeader.displayName = 'TableHeader';
88
+ TableBody.displayName = 'TableBody';
89
+ TableFooter.displayName = 'TableFooter';
90
+ TableHead.displayName = 'TableHead';
91
+ TableRow.displayName = 'TableRow';
92
+ TableData.displayName = 'TableData';
93
+ TableCaption.displayName = 'TableCaption';
94
+
95
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableData, TableCaption };
@@ -0,0 +1,44 @@
1
+ import { tva } from '@gluestack-ui/nativewind-utils/tva';
2
+ import { isWeb } from '@gluestack-ui/nativewind-utils/IsWeb';
3
+
4
+ const captionTableStyle = isWeb ? 'caption-bottom' : '';
5
+
6
+ export const tableStyle = tva({
7
+ base: `table border-collapse border-collapse w-[800px]`,
8
+ });
9
+
10
+ export const tableHeaderStyle = tva({
11
+ base: '',
12
+ });
13
+
14
+ export const tableBodyStyle = tva({
15
+ base: '',
16
+ });
17
+
18
+ export const tableFooterStyle = tva({
19
+ base: '',
20
+ });
21
+
22
+ export const tableHeadStyle = tva({
23
+ base: 'flex-1 px-6 py-[14px] text-left font-bold text-[16px] leading-[22px] text-typography-800 font-roboto',
24
+ });
25
+
26
+ export const tableRowStyleStyle = tva({
27
+ base: 'border-0 border-b border-solid border-outline-200 bg-background-0',
28
+ variants: {
29
+ isHeaderRow: {
30
+ true: '',
31
+ },
32
+ isFooterRow: {
33
+ true: 'border-b-0 ',
34
+ },
35
+ },
36
+ });
37
+
38
+ export const tableDataStyle = tva({
39
+ base: 'flex-1 px-6 py-[14px] text-left text-[16px] font-medium leading-[22px] text-typography-800 font-roboto',
40
+ });
41
+
42
+ export const tableCaptionStyle = tva({
43
+ base: `${captionTableStyle} px-6 py-[14px] text-[16px] font-normal leading-[22px] text-typography-800 bg-background-50 font-roboto`,
44
+ });