@thewhileloop/whileui 0.1.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 (437) hide show
  1. package/dist/blocks/auth/forgot-password-form.d.ts +2 -0
  2. package/dist/blocks/auth/forgot-password-form.d.ts.map +1 -0
  3. package/dist/blocks/auth/forgot-password-form.js +11 -0
  4. package/dist/blocks/auth/forgot-password-form.js.map +1 -0
  5. package/dist/blocks/auth/index.d.ts +8 -0
  6. package/dist/blocks/auth/index.d.ts.map +1 -0
  7. package/dist/blocks/auth/index.js +8 -0
  8. package/dist/blocks/auth/index.js.map +1 -0
  9. package/dist/blocks/auth/reset-password-form.d.ts +2 -0
  10. package/dist/blocks/auth/reset-password-form.d.ts.map +1 -0
  11. package/dist/blocks/auth/reset-password-form.js +10 -0
  12. package/dist/blocks/auth/reset-password-form.js.map +1 -0
  13. package/dist/blocks/auth/sign-in-form.d.ts +2 -0
  14. package/dist/blocks/auth/sign-in-form.d.ts.map +1 -0
  15. package/dist/blocks/auth/sign-in-form.js +12 -0
  16. package/dist/blocks/auth/sign-in-form.js.map +1 -0
  17. package/dist/blocks/auth/sign-up-form.d.ts +2 -0
  18. package/dist/blocks/auth/sign-up-form.d.ts.map +1 -0
  19. package/dist/blocks/auth/sign-up-form.js +12 -0
  20. package/dist/blocks/auth/sign-up-form.js.map +1 -0
  21. package/dist/blocks/auth/social-connections.d.ts +2 -0
  22. package/dist/blocks/auth/social-connections.d.ts.map +1 -0
  23. package/dist/blocks/auth/social-connections.js +8 -0
  24. package/dist/blocks/auth/social-connections.js.map +1 -0
  25. package/dist/blocks/auth/user-menu.d.ts +2 -0
  26. package/dist/blocks/auth/user-menu.d.ts.map +1 -0
  27. package/dist/blocks/auth/user-menu.js +10 -0
  28. package/dist/blocks/auth/user-menu.js.map +1 -0
  29. package/dist/blocks/auth/verify-email-form.d.ts +2 -0
  30. package/dist/blocks/auth/verify-email-form.d.ts.map +1 -0
  31. package/dist/blocks/auth/verify-email-form.js +11 -0
  32. package/dist/blocks/auth/verify-email-form.js.map +1 -0
  33. package/dist/blocks/commerce/checkout-summary.d.ts +19 -0
  34. package/dist/blocks/commerce/checkout-summary.d.ts.map +1 -0
  35. package/dist/blocks/commerce/checkout-summary.js +11 -0
  36. package/dist/blocks/commerce/checkout-summary.js.map +1 -0
  37. package/dist/blocks/commerce/index.d.ts +4 -0
  38. package/dist/blocks/commerce/index.d.ts.map +1 -0
  39. package/dist/blocks/commerce/index.js +4 -0
  40. package/dist/blocks/commerce/index.js.map +1 -0
  41. package/dist/blocks/commerce/pricing-card.d.ts +18 -0
  42. package/dist/blocks/commerce/pricing-card.d.ts.map +1 -0
  43. package/dist/blocks/commerce/pricing-card.js +11 -0
  44. package/dist/blocks/commerce/pricing-card.js.map +1 -0
  45. package/dist/blocks/commerce/product-card.d.ts +15 -0
  46. package/dist/blocks/commerce/product-card.d.ts.map +1 -0
  47. package/dist/blocks/commerce/product-card.js +11 -0
  48. package/dist/blocks/commerce/product-card.js.map +1 -0
  49. package/dist/blocks/layout/app-shell.d.ts +10 -0
  50. package/dist/blocks/layout/app-shell.d.ts.map +1 -0
  51. package/dist/blocks/layout/app-shell.js +10 -0
  52. package/dist/blocks/layout/app-shell.js.map +1 -0
  53. package/dist/blocks/layout/empty-state.d.ts +17 -0
  54. package/dist/blocks/layout/empty-state.d.ts.map +1 -0
  55. package/dist/blocks/layout/empty-state.js +10 -0
  56. package/dist/blocks/layout/empty-state.js.map +1 -0
  57. package/dist/blocks/layout/error-state.d.ts +12 -0
  58. package/dist/blocks/layout/error-state.d.ts.map +1 -0
  59. package/dist/blocks/layout/error-state.js +13 -0
  60. package/dist/blocks/layout/error-state.js.map +1 -0
  61. package/dist/blocks/layout/index.d.ts +6 -0
  62. package/dist/blocks/layout/index.d.ts.map +1 -0
  63. package/dist/blocks/layout/index.js +6 -0
  64. package/dist/blocks/layout/index.js.map +1 -0
  65. package/dist/blocks/layout/loading-screen.d.ts +7 -0
  66. package/dist/blocks/layout/loading-screen.d.ts.map +1 -0
  67. package/dist/blocks/layout/loading-screen.js +15 -0
  68. package/dist/blocks/layout/loading-screen.js.map +1 -0
  69. package/dist/blocks/layout/onboarding-screen.d.ts +19 -0
  70. package/dist/blocks/layout/onboarding-screen.d.ts.map +1 -0
  71. package/dist/blocks/layout/onboarding-screen.js +35 -0
  72. package/dist/blocks/layout/onboarding-screen.js.map +1 -0
  73. package/dist/blocks/lists/index.d.ts +4 -0
  74. package/dist/blocks/lists/index.d.ts.map +1 -0
  75. package/dist/blocks/lists/index.js +4 -0
  76. package/dist/blocks/lists/index.js.map +1 -0
  77. package/dist/blocks/lists/list-item.d.ts +15 -0
  78. package/dist/blocks/lists/list-item.d.ts.map +1 -0
  79. package/dist/blocks/lists/list-item.js +9 -0
  80. package/dist/blocks/lists/list-item.js.map +1 -0
  81. package/dist/blocks/lists/notification-item.d.ts +14 -0
  82. package/dist/blocks/lists/notification-item.d.ts.map +1 -0
  83. package/dist/blocks/lists/notification-item.js +10 -0
  84. package/dist/blocks/lists/notification-item.js.map +1 -0
  85. package/dist/blocks/lists/swipeable-item.d.ts +17 -0
  86. package/dist/blocks/lists/swipeable-item.d.ts.map +1 -0
  87. package/dist/blocks/lists/swipeable-item.js +62 -0
  88. package/dist/blocks/lists/swipeable-item.js.map +1 -0
  89. package/dist/blocks/navigation/bottom-nav.d.ts +19 -0
  90. package/dist/blocks/navigation/bottom-nav.d.ts.map +1 -0
  91. package/dist/blocks/navigation/bottom-nav.js +13 -0
  92. package/dist/blocks/navigation/bottom-nav.js.map +1 -0
  93. package/dist/blocks/navigation/drawer-menu.d.ts +26 -0
  94. package/dist/blocks/navigation/drawer-menu.d.ts.map +1 -0
  95. package/dist/blocks/navigation/drawer-menu.js +52 -0
  96. package/dist/blocks/navigation/drawer-menu.js.map +1 -0
  97. package/dist/blocks/navigation/floating-bottom-nav.d.ts +18 -0
  98. package/dist/blocks/navigation/floating-bottom-nav.d.ts.map +1 -0
  99. package/dist/blocks/navigation/floating-bottom-nav.js +13 -0
  100. package/dist/blocks/navigation/floating-bottom-nav.js.map +1 -0
  101. package/dist/blocks/navigation/header.d.ts +23 -0
  102. package/dist/blocks/navigation/header.d.ts.map +1 -0
  103. package/dist/blocks/navigation/header.js +12 -0
  104. package/dist/blocks/navigation/header.js.map +1 -0
  105. package/dist/blocks/navigation/index.d.ts +6 -0
  106. package/dist/blocks/navigation/index.d.ts.map +1 -0
  107. package/dist/blocks/navigation/index.js +6 -0
  108. package/dist/blocks/navigation/index.js.map +1 -0
  109. package/dist/blocks/navigation/tab-bar.d.ts +21 -0
  110. package/dist/blocks/navigation/tab-bar.d.ts.map +1 -0
  111. package/dist/blocks/navigation/tab-bar.js +28 -0
  112. package/dist/blocks/navigation/tab-bar.js.map +1 -0
  113. package/dist/blocks/profile/account-card.d.ts +11 -0
  114. package/dist/blocks/profile/account-card.d.ts.map +1 -0
  115. package/dist/blocks/profile/account-card.js +10 -0
  116. package/dist/blocks/profile/account-card.js.map +1 -0
  117. package/dist/blocks/profile/index.d.ts +5 -0
  118. package/dist/blocks/profile/index.d.ts.map +1 -0
  119. package/dist/blocks/profile/index.js +5 -0
  120. package/dist/blocks/profile/index.js.map +1 -0
  121. package/dist/blocks/profile/profile-header.d.ts +27 -0
  122. package/dist/blocks/profile/profile-header.d.ts.map +1 -0
  123. package/dist/blocks/profile/profile-header.js +11 -0
  124. package/dist/blocks/profile/profile-header.js.map +1 -0
  125. package/dist/blocks/profile/settings-item.d.ts +15 -0
  126. package/dist/blocks/profile/settings-item.d.ts.map +1 -0
  127. package/dist/blocks/profile/settings-item.js +11 -0
  128. package/dist/blocks/profile/settings-item.js.map +1 -0
  129. package/dist/blocks/profile/settings-section.d.ts +7 -0
  130. package/dist/blocks/profile/settings-section.d.ts.map +1 -0
  131. package/dist/blocks/profile/settings-section.js +9 -0
  132. package/dist/blocks/profile/settings-section.js.map +1 -0
  133. package/dist/blocks/splash/index.d.ts +2 -0
  134. package/dist/blocks/splash/index.d.ts.map +1 -0
  135. package/dist/blocks/splash/index.js +2 -0
  136. package/dist/blocks/splash/index.js.map +1 -0
  137. package/dist/blocks/splash/splash-screen.d.ts +29 -0
  138. package/dist/blocks/splash/splash-screen.d.ts.map +1 -0
  139. package/dist/blocks/splash/splash-screen.js +75 -0
  140. package/dist/blocks/splash/splash-screen.js.map +1 -0
  141. package/dist/components/accordion/accordion.d.ts +38 -0
  142. package/dist/components/accordion/accordion.d.ts.map +1 -0
  143. package/dist/components/accordion/accordion.js +71 -0
  144. package/dist/components/accordion/accordion.js.map +1 -0
  145. package/dist/components/accordion/index.d.ts +2 -0
  146. package/dist/components/accordion/index.d.ts.map +1 -0
  147. package/dist/components/accordion/index.js +2 -0
  148. package/dist/components/accordion/index.js.map +1 -0
  149. package/dist/components/alert/alert.d.ts +71 -0
  150. package/dist/components/alert/alert.d.ts.map +1 -0
  151. package/dist/components/alert/alert.js +34 -0
  152. package/dist/components/alert/alert.js.map +1 -0
  153. package/dist/components/alert/index.d.ts +2 -0
  154. package/dist/components/alert/index.d.ts.map +1 -0
  155. package/dist/components/alert/index.js +2 -0
  156. package/dist/components/alert/index.js.map +1 -0
  157. package/dist/components/alert-dialog/alert-dialog.d.ts +72 -0
  158. package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -0
  159. package/dist/components/alert-dialog/alert-dialog.js +81 -0
  160. package/dist/components/alert-dialog/alert-dialog.js.map +1 -0
  161. package/dist/components/alert-dialog/index.d.ts +2 -0
  162. package/dist/components/alert-dialog/index.d.ts.map +1 -0
  163. package/dist/components/alert-dialog/index.js +2 -0
  164. package/dist/components/alert-dialog/index.js.map +1 -0
  165. package/dist/components/aspect-ratio/aspect-ratio.d.ts +11 -0
  166. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  167. package/dist/components/aspect-ratio/aspect-ratio.js +11 -0
  168. package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -0
  169. package/dist/components/aspect-ratio/index.d.ts +2 -0
  170. package/dist/components/aspect-ratio/index.d.ts.map +1 -0
  171. package/dist/components/aspect-ratio/index.js +2 -0
  172. package/dist/components/aspect-ratio/index.js.map +1 -0
  173. package/dist/components/avatar/avatar.d.ts +74 -0
  174. package/dist/components/avatar/avatar.d.ts.map +1 -0
  175. package/dist/components/avatar/avatar.js +52 -0
  176. package/dist/components/avatar/avatar.js.map +1 -0
  177. package/dist/components/avatar/index.d.ts +2 -0
  178. package/dist/components/avatar/index.d.ts.map +1 -0
  179. package/dist/components/avatar/index.js +2 -0
  180. package/dist/components/avatar/index.js.map +1 -0
  181. package/dist/components/badge/badge.d.ts +158 -0
  182. package/dist/components/badge/badge.d.ts.map +1 -0
  183. package/dist/components/badge/badge.js +54 -0
  184. package/dist/components/badge/badge.js.map +1 -0
  185. package/dist/components/badge/index.d.ts +2 -0
  186. package/dist/components/badge/index.d.ts.map +1 -0
  187. package/dist/components/badge/index.js +2 -0
  188. package/dist/components/badge/index.js.map +1 -0
  189. package/dist/components/button/button.d.ts +240 -0
  190. package/dist/components/button/button.d.ts.map +1 -0
  191. package/dist/components/button/button.js +79 -0
  192. package/dist/components/button/button.js.map +1 -0
  193. package/dist/components/button/index.d.ts +2 -0
  194. package/dist/components/button/index.d.ts.map +1 -0
  195. package/dist/components/button/index.js +2 -0
  196. package/dist/components/button/index.js.map +1 -0
  197. package/dist/components/card/card.d.ts +22 -0
  198. package/dist/components/card/card.d.ts.map +1 -0
  199. package/dist/components/card/card.js +31 -0
  200. package/dist/components/card/card.js.map +1 -0
  201. package/dist/components/card/index.d.ts +2 -0
  202. package/dist/components/card/index.d.ts.map +1 -0
  203. package/dist/components/card/index.js +2 -0
  204. package/dist/components/card/index.js.map +1 -0
  205. package/dist/components/checkbox/checkbox.d.ts +14 -0
  206. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  207. package/dist/components/checkbox/checkbox.js +19 -0
  208. package/dist/components/checkbox/checkbox.js.map +1 -0
  209. package/dist/components/checkbox/index.d.ts +2 -0
  210. package/dist/components/checkbox/index.d.ts.map +1 -0
  211. package/dist/components/checkbox/index.js +2 -0
  212. package/dist/components/checkbox/index.js.map +1 -0
  213. package/dist/components/collapsible/collapsible.d.ts +36 -0
  214. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  215. package/dist/components/collapsible/collapsible.js +60 -0
  216. package/dist/components/collapsible/collapsible.js.map +1 -0
  217. package/dist/components/collapsible/index.d.ts +2 -0
  218. package/dist/components/collapsible/index.d.ts.map +1 -0
  219. package/dist/components/collapsible/index.js +2 -0
  220. package/dist/components/collapsible/index.js.map +1 -0
  221. package/dist/components/context-menu/context-menu.d.ts +48 -0
  222. package/dist/components/context-menu/context-menu.d.ts.map +1 -0
  223. package/dist/components/context-menu/context-menu.js +53 -0
  224. package/dist/components/context-menu/context-menu.js.map +1 -0
  225. package/dist/components/context-menu/index.d.ts +2 -0
  226. package/dist/components/context-menu/index.d.ts.map +1 -0
  227. package/dist/components/context-menu/index.js +2 -0
  228. package/dist/components/context-menu/index.js.map +1 -0
  229. package/dist/components/dialog/dialog.d.ts +68 -0
  230. package/dist/components/dialog/dialog.d.ts.map +1 -0
  231. package/dist/components/dialog/dialog.js +73 -0
  232. package/dist/components/dialog/dialog.js.map +1 -0
  233. package/dist/components/dialog/index.d.ts +2 -0
  234. package/dist/components/dialog/index.d.ts.map +1 -0
  235. package/dist/components/dialog/index.js +2 -0
  236. package/dist/components/dialog/index.js.map +1 -0
  237. package/dist/components/dropdown-menu/dropdown-menu.d.ts +48 -0
  238. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  239. package/dist/components/dropdown-menu/dropdown-menu.js +51 -0
  240. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
  241. package/dist/components/dropdown-menu/index.d.ts +2 -0
  242. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  243. package/dist/components/dropdown-menu/index.js +2 -0
  244. package/dist/components/dropdown-menu/index.js.map +1 -0
  245. package/dist/components/hover-card/hover-card.d.ts +20 -0
  246. package/dist/components/hover-card/hover-card.d.ts.map +1 -0
  247. package/dist/components/hover-card/hover-card.js +18 -0
  248. package/dist/components/hover-card/hover-card.js.map +1 -0
  249. package/dist/components/hover-card/index.d.ts +2 -0
  250. package/dist/components/hover-card/index.d.ts.map +1 -0
  251. package/dist/components/hover-card/index.js +2 -0
  252. package/dist/components/hover-card/index.js.map +1 -0
  253. package/dist/components/input/index.d.ts +2 -0
  254. package/dist/components/input/index.d.ts.map +1 -0
  255. package/dist/components/input/index.js +2 -0
  256. package/dist/components/input/index.js.map +1 -0
  257. package/dist/components/input/input.d.ts +45 -0
  258. package/dist/components/input/input.d.ts.map +1 -0
  259. package/dist/components/input/input.js +23 -0
  260. package/dist/components/input/input.js.map +1 -0
  261. package/dist/components/label/index.d.ts +2 -0
  262. package/dist/components/label/index.d.ts.map +1 -0
  263. package/dist/components/label/index.js +2 -0
  264. package/dist/components/label/index.js.map +1 -0
  265. package/dist/components/label/label.d.ts +7 -0
  266. package/dist/components/label/label.d.ts.map +1 -0
  267. package/dist/components/label/label.js +13 -0
  268. package/dist/components/label/label.js.map +1 -0
  269. package/dist/components/menubar/index.d.ts +2 -0
  270. package/dist/components/menubar/index.d.ts.map +1 -0
  271. package/dist/components/menubar/index.js +2 -0
  272. package/dist/components/menubar/index.js.map +1 -0
  273. package/dist/components/menubar/menubar.d.ts +54 -0
  274. package/dist/components/menubar/menubar.d.ts.map +1 -0
  275. package/dist/components/menubar/menubar.js +46 -0
  276. package/dist/components/menubar/menubar.js.map +1 -0
  277. package/dist/components/popover/index.d.ts +2 -0
  278. package/dist/components/popover/index.d.ts.map +1 -0
  279. package/dist/components/popover/index.js +2 -0
  280. package/dist/components/popover/index.js.map +1 -0
  281. package/dist/components/popover/popover.d.ts +22 -0
  282. package/dist/components/popover/popover.d.ts.map +1 -0
  283. package/dist/components/popover/popover.js +22 -0
  284. package/dist/components/popover/popover.js.map +1 -0
  285. package/dist/components/pressable/index.d.ts +2 -0
  286. package/dist/components/pressable/index.d.ts.map +1 -0
  287. package/dist/components/pressable/index.js +2 -0
  288. package/dist/components/pressable/index.js.map +1 -0
  289. package/dist/components/pressable/pressable.d.ts +8 -0
  290. package/dist/components/pressable/pressable.d.ts.map +1 -0
  291. package/dist/components/pressable/pressable.js +10 -0
  292. package/dist/components/pressable/pressable.js.map +1 -0
  293. package/dist/components/progress/index.d.ts +2 -0
  294. package/dist/components/progress/index.d.ts.map +1 -0
  295. package/dist/components/progress/index.js +2 -0
  296. package/dist/components/progress/index.js.map +1 -0
  297. package/dist/components/progress/progress.d.ts +53 -0
  298. package/dist/components/progress/progress.d.ts.map +1 -0
  299. package/dist/components/progress/progress.js +25 -0
  300. package/dist/components/progress/progress.js.map +1 -0
  301. package/dist/components/radio-group/index.d.ts +2 -0
  302. package/dist/components/radio-group/index.d.ts.map +1 -0
  303. package/dist/components/radio-group/index.js +2 -0
  304. package/dist/components/radio-group/index.js.map +1 -0
  305. package/dist/components/radio-group/radio-group.d.ts +21 -0
  306. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  307. package/dist/components/radio-group/radio-group.js +27 -0
  308. package/dist/components/radio-group/radio-group.js.map +1 -0
  309. package/dist/components/select/index.d.ts +2 -0
  310. package/dist/components/select/index.d.ts.map +1 -0
  311. package/dist/components/select/index.js +2 -0
  312. package/dist/components/select/index.js.map +1 -0
  313. package/dist/components/select/select.d.ts +79 -0
  314. package/dist/components/select/select.d.ts.map +1 -0
  315. package/dist/components/select/select.js +53 -0
  316. package/dist/components/select/select.js.map +1 -0
  317. package/dist/components/separator/index.d.ts +2 -0
  318. package/dist/components/separator/index.d.ts.map +1 -0
  319. package/dist/components/separator/index.js +2 -0
  320. package/dist/components/separator/index.js.map +1 -0
  321. package/dist/components/separator/separator.d.ts +8 -0
  322. package/dist/components/separator/separator.d.ts.map +1 -0
  323. package/dist/components/separator/separator.js +10 -0
  324. package/dist/components/separator/separator.js.map +1 -0
  325. package/dist/components/skeleton/index.d.ts +2 -0
  326. package/dist/components/skeleton/index.d.ts.map +1 -0
  327. package/dist/components/skeleton/index.js +2 -0
  328. package/dist/components/skeleton/index.js.map +1 -0
  329. package/dist/components/skeleton/skeleton.d.ts +10 -0
  330. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  331. package/dist/components/skeleton/skeleton.js +19 -0
  332. package/dist/components/skeleton/skeleton.js.map +1 -0
  333. package/dist/components/spinner/index.d.ts +2 -0
  334. package/dist/components/spinner/index.d.ts.map +1 -0
  335. package/dist/components/spinner/index.js +2 -0
  336. package/dist/components/spinner/index.js.map +1 -0
  337. package/dist/components/spinner/spinner.d.ts +54 -0
  338. package/dist/components/spinner/spinner.d.ts.map +1 -0
  339. package/dist/components/spinner/spinner.js +29 -0
  340. package/dist/components/spinner/spinner.js.map +1 -0
  341. package/dist/components/switch/index.d.ts +2 -0
  342. package/dist/components/switch/index.d.ts.map +1 -0
  343. package/dist/components/switch/index.js +2 -0
  344. package/dist/components/switch/index.js.map +1 -0
  345. package/dist/components/switch/switch.d.ts +14 -0
  346. package/dist/components/switch/switch.d.ts.map +1 -0
  347. package/dist/components/switch/switch.js +19 -0
  348. package/dist/components/switch/switch.js.map +1 -0
  349. package/dist/components/tabs/index.d.ts +2 -0
  350. package/dist/components/tabs/index.d.ts.map +1 -0
  351. package/dist/components/tabs/index.js +2 -0
  352. package/dist/components/tabs/index.js.map +1 -0
  353. package/dist/components/tabs/tabs.d.ts +72 -0
  354. package/dist/components/tabs/tabs.d.ts.map +1 -0
  355. package/dist/components/tabs/tabs.js +52 -0
  356. package/dist/components/tabs/tabs.js.map +1 -0
  357. package/dist/components/text/index.d.ts +2 -0
  358. package/dist/components/text/index.d.ts.map +1 -0
  359. package/dist/components/text/index.js +2 -0
  360. package/dist/components/text/index.js.map +1 -0
  361. package/dist/components/text/text.d.ts +149 -0
  362. package/dist/components/text/text.d.ts.map +1 -0
  363. package/dist/components/text/text.js +41 -0
  364. package/dist/components/text/text.js.map +1 -0
  365. package/dist/components/textarea/index.d.ts +2 -0
  366. package/dist/components/textarea/index.d.ts.map +1 -0
  367. package/dist/components/textarea/index.js +2 -0
  368. package/dist/components/textarea/index.js.map +1 -0
  369. package/dist/components/textarea/textarea.d.ts +52 -0
  370. package/dist/components/textarea/textarea.d.ts.map +1 -0
  371. package/dist/components/textarea/textarea.js +27 -0
  372. package/dist/components/textarea/textarea.js.map +1 -0
  373. package/dist/components/toast/index.d.ts +2 -0
  374. package/dist/components/toast/index.d.ts.map +1 -0
  375. package/dist/components/toast/index.js +2 -0
  376. package/dist/components/toast/index.js.map +1 -0
  377. package/dist/components/toast/toast.d.ts +79 -0
  378. package/dist/components/toast/toast.d.ts.map +1 -0
  379. package/dist/components/toast/toast.js +69 -0
  380. package/dist/components/toast/toast.js.map +1 -0
  381. package/dist/components/toggle/index.d.ts +2 -0
  382. package/dist/components/toggle/index.d.ts.map +1 -0
  383. package/dist/components/toggle/index.js +2 -0
  384. package/dist/components/toggle/index.js.map +1 -0
  385. package/dist/components/toggle/toggle.d.ts +195 -0
  386. package/dist/components/toggle/toggle.d.ts.map +1 -0
  387. package/dist/components/toggle/toggle.js +71 -0
  388. package/dist/components/toggle/toggle.js.map +1 -0
  389. package/dist/components/toggle-group/index.d.ts +2 -0
  390. package/dist/components/toggle-group/index.d.ts.map +1 -0
  391. package/dist/components/toggle-group/index.js +2 -0
  392. package/dist/components/toggle-group/index.js.map +1 -0
  393. package/dist/components/toggle-group/toggle-group.d.ts +204 -0
  394. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -0
  395. package/dist/components/toggle-group/toggle-group.js +97 -0
  396. package/dist/components/toggle-group/toggle-group.js.map +1 -0
  397. package/dist/components/tooltip/index.d.ts +2 -0
  398. package/dist/components/tooltip/index.d.ts.map +1 -0
  399. package/dist/components/tooltip/index.js +2 -0
  400. package/dist/components/tooltip/index.js.map +1 -0
  401. package/dist/components/tooltip/tooltip.d.ts +21 -0
  402. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  403. package/dist/components/tooltip/tooltip.js +18 -0
  404. package/dist/components/tooltip/tooltip.js.map +1 -0
  405. package/dist/components/view/index.d.ts +2 -0
  406. package/dist/components/view/index.d.ts.map +1 -0
  407. package/dist/components/view/index.js +2 -0
  408. package/dist/components/view/index.js.map +1 -0
  409. package/dist/components/view/view.d.ts +7 -0
  410. package/dist/components/view/view.d.ts.map +1 -0
  411. package/dist/components/view/view.js +10 -0
  412. package/dist/components/view/view.js.map +1 -0
  413. package/dist/index.d.ts +46 -0
  414. package/dist/index.d.ts.map +1 -0
  415. package/dist/index.js +50 -0
  416. package/dist/index.js.map +1 -0
  417. package/dist/lib/cn.d.ts +11 -0
  418. package/dist/lib/cn.d.ts.map +1 -0
  419. package/dist/lib/cn.js +14 -0
  420. package/dist/lib/cn.js.map +1 -0
  421. package/dist/lib/font-context.d.ts +24 -0
  422. package/dist/lib/font-context.d.ts.map +1 -0
  423. package/dist/lib/font-context.js +22 -0
  424. package/dist/lib/font-context.js.map +1 -0
  425. package/dist/lib/index.d.ts +4 -0
  426. package/dist/lib/index.d.ts.map +1 -0
  427. package/dist/lib/index.js +4 -0
  428. package/dist/lib/index.js.map +1 -0
  429. package/dist/lib/portal.d.ts +22 -0
  430. package/dist/lib/portal.d.ts.map +1 -0
  431. package/dist/lib/portal.js +22 -0
  432. package/dist/lib/portal.js.map +1 -0
  433. package/dist/lib/tv.d.ts +16 -0
  434. package/dist/lib/tv.d.ts.map +1 -0
  435. package/dist/lib/tv.js +16 -0
  436. package/dist/lib/tv.js.map +1 -0
  437. package/package.json +75 -0
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { type ViewProps } from 'react-native';
3
+ export interface OnboardingSlide {
4
+ key: string;
5
+ title: string;
6
+ description: string;
7
+ image?: React.ReactNode;
8
+ }
9
+ export interface OnboardingScreenProps extends ViewProps {
10
+ slides: OnboardingSlide[];
11
+ onComplete: () => void;
12
+ onSkip?: () => void;
13
+ completeLabel?: string;
14
+ nextLabel?: string;
15
+ skipLabel?: string;
16
+ showSkip?: boolean;
17
+ }
18
+ export declare function OnboardingScreen({ slides, onComplete, onSkip, completeLabel, nextLabel, skipLabel, showSkip, className, ...props }: OnboardingScreenProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=onboarding-screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-screen.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/onboarding-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,EAKL,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAOtB,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,UAAU,EACV,MAAM,EACN,aAA6B,EAC7B,SAAkB,EAClB,SAAkB,EAClB,QAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAwFvB"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useRef } from 'react';
3
+ import { View, ScrollView, Pressable, Dimensions, } from 'react-native';
4
+ import { Text } from '../../components/text';
5
+ import { Button, ButtonText } from '../../components/button';
6
+ import { cn } from '../../lib/cn';
7
+ // ─── Component ───────────────────────────────────────────────
8
+ export function OnboardingScreen({ slides, onComplete, onSkip, completeLabel = 'Get Started', nextLabel = 'Next', skipLabel = 'Skip', showSkip = true, className, ...props }) {
9
+ const [currentIndex, setCurrentIndex] = useState(0);
10
+ const scrollViewRef = useRef(null);
11
+ const { width } = Dimensions.get('window');
12
+ const isLastSlide = currentIndex === slides.length - 1;
13
+ const handleScroll = (event) => {
14
+ const index = Math.round(event.nativeEvent.contentOffset.x / width);
15
+ setCurrentIndex(index);
16
+ };
17
+ const goToNext = () => {
18
+ if (isLastSlide) {
19
+ onComplete();
20
+ }
21
+ else {
22
+ scrollViewRef.current?.scrollTo({ x: (currentIndex + 1) * width, animated: true });
23
+ }
24
+ };
25
+ const handleSkip = () => {
26
+ if (onSkip) {
27
+ onSkip();
28
+ }
29
+ else {
30
+ onComplete();
31
+ }
32
+ };
33
+ return (_jsxs(View, { className: cn('flex-1 bg-background', className), ...props, children: [showSkip && !isLastSlide && (_jsx(View, { className: "absolute right-4 top-12 z-10", children: _jsx(Pressable, { onPress: handleSkip, children: _jsx(Text, { className: "text-muted-foreground", children: skipLabel }) }) })), _jsx(ScrollView, { ref: scrollViewRef, horizontal: true, pagingEnabled: true, showsHorizontalScrollIndicator: false, onScroll: handleScroll, scrollEventThrottle: 16, className: "flex-1", children: slides.map((slide) => (_jsxs(View, { style: { width }, className: "flex-1 items-center justify-center p-8", children: [slide.image && _jsx(View, { className: "mb-8", children: slide.image }), _jsx(Text, { className: "mb-4 text-center text-2xl font-bold text-foreground", children: slide.title }), _jsx(Text, { className: "max-w-sm text-center text-base text-muted-foreground", children: slide.description })] }, slide.key))) }), _jsxs(View, { className: "px-8 pb-12", children: [_jsx(View, { className: "mb-6 flex-row justify-center gap-2", children: slides.map((_, index) => (_jsx(View, { className: cn('h-2 rounded-full', index === currentIndex ? 'w-6 bg-primary' : 'w-2 bg-muted') }, index))) }), _jsx(Button, { onPress: goToNext, className: "w-full", children: _jsx(ButtonText, { children: isLastSlide ? completeLabel : nextLabel }) })] })] }));
34
+ }
35
+ //# sourceMappingURL=onboarding-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-screen.js","sourceRoot":"","sources":["../../../src/blocks/layout/onboarding-screen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { ListItem, type ListItemProps } from './list-item';
2
+ export { SwipeableItem, type SwipeableItemProps, type SwipeAction } from './swipeable-item';
3
+ export { NotificationItem, type NotificationItemProps } from './notification-item';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { ListItem } from './list-item';
2
+ export { SwipeableItem } from './swipeable-item';
3
+ export { NotificationItem } from './notification-item';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/lists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAA8B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { type PressableProps } from 'react-native';
3
+ export interface ListItemProps extends Omit<PressableProps, 'children'> {
4
+ icon?: React.ReactNode;
5
+ title: string;
6
+ subtitle?: string;
7
+ description?: string;
8
+ rightIcon?: React.ReactNode;
9
+ rightText?: string;
10
+ action?: React.ReactNode;
11
+ showBorder?: boolean;
12
+ compact?: boolean;
13
+ }
14
+ export declare function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder, compact, className, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=list-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACrE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAiB,EACjB,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,2CAiCf"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Pressable } from 'react-native';
3
+ import { Text } from '../../components/text';
4
+ import { cn } from '../../lib/cn';
5
+ // ─── Component ───────────────────────────────────────────────
6
+ export function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder = true, compact = false, className, ...props }) {
7
+ return (_jsxs(Pressable, { className: cn('flex-row items-center bg-card px-4', compact ? 'py-2' : 'py-3', showBorder && 'border-b border-border', 'active:bg-muted', className), ...props, children: [icon && _jsx(View, { className: "mr-3 text-muted-foreground", children: icon }), _jsxs(View, { className: "flex-1", children: [_jsx(Text, { className: "text-base text-foreground", children: title }), subtitle && _jsx(Text, { className: "text-sm text-muted-foreground", children: subtitle }), description && (_jsx(Text, { className: "mt-1 text-sm text-muted-foreground", numberOfLines: 2, children: description }))] }), rightText && _jsx(Text, { className: "mr-2 text-sm text-muted-foreground", children: rightText }), rightIcon && _jsx(View, { className: "text-muted-foreground", children: rightIcon }), action, !action && !rightIcon && _jsx(Text, { className: "text-lg text-muted-foreground", children: "\u203A" })] }));
8
+ }
9
+ //# sourceMappingURL=list-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAgBlC,gEAAgE;AAEhE,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,OAAO,GAAG,KAAK,EACf,SAAS,EACT,GAAG,KAAK,EACM;IACd,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACzB,UAAU,IAAI,wBAAwB,EACtC,iBAAiB,EACjB,SAAS,CACV,KACG,KAAK,aAGR,IAAI,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,YAAE,IAAI,GAAQ,EAGnE,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAQ,EACzD,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,QAAQ,GAAQ,EAC7E,WAAW,IAAI,CACd,KAAC,IAAI,IAAC,SAAS,EAAC,oCAAoC,EAAC,aAAa,EAAE,CAAC,YAClE,WAAW,GACP,CACR,IACI,EAGN,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,oCAAoC,YAAE,SAAS,GAAQ,EACpF,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,YAAE,SAAS,GAAQ,EACvE,MAAM,EACN,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,uBAAS,IACxE,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { type PressableProps } from 'react-native';
3
+ export interface NotificationItemProps extends Omit<PressableProps, 'children'> {
4
+ icon?: React.ReactNode;
5
+ avatarUrl?: string;
6
+ avatarFallback?: string;
7
+ title: string;
8
+ message: string;
9
+ time: string;
10
+ read?: boolean;
11
+ showDot?: boolean;
12
+ }
13
+ export declare function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read, showDot, className, ...props }: NotificationItemProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=notification-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAOpE,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAY,EACZ,OAAc,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CA2CvB"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Pressable } from 'react-native';
3
+ import { Text } from '../../components/text';
4
+ import { Avatar, AvatarFallback, AvatarImage } from '../../components/avatar';
5
+ import { cn } from '../../lib/cn';
6
+ // ─── Component ───────────────────────────────────────────────
7
+ export function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read = false, showDot = true, className, ...props }) {
8
+ return (_jsxs(Pressable, { className: cn('flex-row items-start px-4 py-3 active:bg-muted', !read && 'bg-primary/5', className), ...props, children: [avatarUrl || avatarFallback ? (_jsxs(Avatar, { className: "h-10 w-10", children: [avatarUrl && _jsx(AvatarImage, { src: avatarUrl }), _jsx(AvatarFallback, { children: avatarFallback })] })) : (icon && (_jsx(View, { className: "h-10 w-10 items-center justify-center rounded-full bg-muted", children: icon }))), _jsxs(View, { className: "ml-3 flex-1", children: [_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Text, { className: cn('text-sm', !read ? 'font-semibold text-foreground' : 'text-foreground'), children: title }), _jsxs(View, { className: "flex-row items-center gap-2", children: [_jsx(Text, { className: "text-xs text-muted-foreground", children: time }), !read && showDot && _jsx(View, { className: "h-2 w-2 rounded-full bg-primary" })] })] }), _jsx(Text, { className: "mt-0.5 text-sm text-muted-foreground", numberOfLines: 2, children: message })] })] }));
9
+ }
10
+ //# sourceMappingURL=notification-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAelC,gEAAgE;AAEhE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,GAAG,KAAK,EACZ,OAAO,GAAG,IAAI,EACd,SAAS,EACT,GAAG,KAAK,EACc;IACtB,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,CAAC,IAAI,IAAI,cAAc,EACvB,SAAS,CACV,KACG,KAAK,aAGR,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAC7B,MAAC,MAAM,IAAC,SAAS,EAAC,WAAW,aAC1B,SAAS,IAAI,KAAC,WAAW,IAAC,GAAG,EAAE,SAAS,GAAI,EAC7C,KAAC,cAAc,cAAE,cAAc,GAAkB,IAC1C,CACV,CAAC,CAAC,CAAC,CACF,IAAI,IAAI,CACN,KAAC,IAAI,IAAC,SAAS,EAAC,6DAA6D,YAC1E,IAAI,GACA,CACR,CACF,EAGD,MAAC,IAAI,IAAC,SAAS,EAAC,aAAa,aAC3B,MAAC,IAAI,IAAC,SAAS,EAAC,uCAAuC,aACrD,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAEpF,KAAK,GACD,EACP,MAAC,IAAI,IAAC,SAAS,EAAC,6BAA6B,aAC3C,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,IAAI,GAAQ,EAC5D,CAAC,IAAI,IAAI,OAAO,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,GAAG,IACpE,IACF,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,sCAAsC,EAAC,aAAa,EAAE,CAAC,YACpE,OAAO,GACH,IACF,IACG,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type ViewProps } from 'react-native';
2
+ export interface SwipeAction {
3
+ key: string;
4
+ label: string;
5
+ icon?: React.ReactNode;
6
+ color: string;
7
+ onPress: () => void;
8
+ }
9
+ export interface SwipeableItemProps extends ViewProps {
10
+ leftActions?: SwipeAction[];
11
+ rightActions?: SwipeAction[];
12
+ onSwipeLeft?: () => void;
13
+ onSwipeRight?: () => void;
14
+ swipeThreshold?: number;
15
+ }
16
+ export declare function SwipeableItem({ leftActions, rightActions, onSwipeLeft, onSwipeRight, swipeThreshold, children, className, ...props }: SwipeableItemProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=swipeable-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipeable-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMvF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAgB,aAAa,CAAC,EAC5B,WAAgB,EAChB,YAAiB,EACjB,WAAW,EACX,YAAY,EACZ,cAAmB,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAkGpB"}
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef } from 'react';
3
+ import { View, Pressable, Animated, PanResponder } from 'react-native';
4
+ import { Text } from '../../components/text';
5
+ import { cn } from '../../lib/cn';
6
+ // ─── Component ───────────────────────────────────────────────
7
+ export function SwipeableItem({ leftActions = [], rightActions = [], onSwipeLeft, onSwipeRight, swipeThreshold = 80, children, className, ...props }) {
8
+ const translateX = useRef(new Animated.Value(0)).current;
9
+ const actionWidth = 80;
10
+ const panResponder = useRef(PanResponder.create({
11
+ onMoveShouldSetPanResponder: (_, gestureState) => {
12
+ return Math.abs(gestureState.dx) > 10;
13
+ },
14
+ onPanResponderMove: (_, gestureState) => {
15
+ const maxLeft = leftActions.length * actionWidth;
16
+ const maxRight = rightActions.length * actionWidth;
17
+ let newX = gestureState.dx;
18
+ if (newX > maxLeft)
19
+ newX = maxLeft;
20
+ if (newX < -maxRight)
21
+ newX = -maxRight;
22
+ translateX.setValue(newX);
23
+ },
24
+ onPanResponderRelease: (_, gestureState) => {
25
+ if (gestureState.dx > swipeThreshold && leftActions.length > 0) {
26
+ // Show left actions
27
+ Animated.spring(translateX, {
28
+ toValue: leftActions.length * actionWidth,
29
+ useNativeDriver: true,
30
+ }).start();
31
+ }
32
+ else if (gestureState.dx < -swipeThreshold && rightActions.length > 0) {
33
+ // Show right actions
34
+ Animated.spring(translateX, {
35
+ toValue: -rightActions.length * actionWidth,
36
+ useNativeDriver: true,
37
+ }).start();
38
+ }
39
+ else {
40
+ // Reset
41
+ Animated.spring(translateX, {
42
+ toValue: 0,
43
+ useNativeDriver: true,
44
+ }).start();
45
+ }
46
+ },
47
+ })).current;
48
+ const resetPosition = () => {
49
+ Animated.spring(translateX, {
50
+ toValue: 0,
51
+ useNativeDriver: true,
52
+ }).start();
53
+ };
54
+ return (_jsxs(View, { className: cn('overflow-hidden', className), ...props, children: [_jsx(View, { className: "absolute bottom-0 left-0 top-0 flex-row", children: leftActions.map((action, _index) => (_jsxs(Pressable, { onPress: () => {
55
+ action.onPress();
56
+ resetPosition();
57
+ }, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-white", children: action.label })] }, action.key))) }), _jsx(View, { className: "absolute bottom-0 right-0 top-0 flex-row", children: rightActions.map((action, _index) => (_jsxs(Pressable, { onPress: () => {
58
+ action.onPress();
59
+ resetPosition();
60
+ }, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-white", children: action.label })] }, action.key))) }), _jsx(Animated.View, { ...panResponder.panHandlers, style: { transform: [{ translateX }] }, className: "bg-background", children: children })] }));
61
+ }
62
+ //# sourceMappingURL=swipeable-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swipeable-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { type ViewProps, type PressableProps } from 'react-native';
3
+ export interface BottomNavItem {
4
+ key: string;
5
+ label: string;
6
+ icon: React.ReactNode;
7
+ badge?: number;
8
+ }
9
+ export interface BottomNavProps extends ViewProps {
10
+ items: BottomNavItem[];
11
+ activeKey: string;
12
+ onSelect: (key: string) => void;
13
+ }
14
+ export interface BottomNavItemProps extends Omit<PressableProps, 'children'> {
15
+ item: BottomNavItem;
16
+ isActive: boolean;
17
+ }
18
+ export declare function BottomNav({ items, activeKey, onSelect, className, ...props }: BottomNavProps): import("react/jsx-runtime").JSX.Element;
19
+ //# sourceMappingURL=bottom-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottom-nav.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpF,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC1E,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkCD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAgB5F"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Pressable } from 'react-native';
3
+ import { Text } from '../../components/text';
4
+ import { cn } from '../../lib/cn';
5
+ // ─── Components ──────────────────────────────────────────────
6
+ function BottomNavItemComponent({ item, isActive, className, ...props }) {
7
+ const { label, icon, badge } = item;
8
+ return (_jsxs(Pressable, { className: cn('flex-1 items-center justify-center py-2 active:opacity-70', className), ...props, children: [_jsxs(View, { className: cn('relative', !isActive && 'opacity-50'), children: [icon, badge !== undefined && badge > 0 && (_jsx(View, { className: "absolute -right-2 -top-1 h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1", children: _jsx(Text, { className: "text-[10px] font-bold text-destructive-foreground", children: badge > 99 ? '99+' : badge }) }))] }), _jsx(Text, { className: cn('mt-1 text-xs font-medium', isActive ? 'text-primary' : 'text-muted-foreground'), children: label })] }));
9
+ }
10
+ export function BottomNav({ items, activeKey, onSelect, className, ...props }) {
11
+ return (_jsx(View, { className: cn('flex-row border-t border-border bg-background px-2 pb-6 pt-2', className), ...props, children: items.map((item) => (_jsx(BottomNavItemComponent, { item: item, isActive: activeKey === item.key, onPress: () => onSelect(item.key) }, item.key))) }));
12
+ }
13
+ //# sourceMappingURL=bottom-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottom-nav.js","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAsBlC,gEAAgE;AAEhE,SAAS,sBAAsB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAsB;IACzF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEpC,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,2DAA2D,EAAE,SAAS,CAAC,KACjF,KAAK,aAET,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,IAAI,YAAY,CAAC,aACvD,IAAI,EACJ,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,CACnC,KAAC,IAAI,IAAC,SAAS,EAAC,mGAAmG,YACjH,KAAC,IAAI,IAAC,SAAS,EAAC,mDAAmD,YAChE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GACtB,GACF,CACR,IACI,EACP,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,0BAA0B,EAC1B,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CACpD,YAEA,KAAK,GACD,IACG,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IAC3F,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,KACpF,KAAK,YAER,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,sBAAsB,IAErB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAH5B,IAAI,CAAC,GAAG,CAIb,CACH,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { type ViewStyle, type StyleProp } from 'react-native';
3
+ export interface DrawerMenuItem {
4
+ key: string;
5
+ label: string;
6
+ icon?: React.ReactNode;
7
+ badge?: number;
8
+ destructive?: boolean;
9
+ }
10
+ export interface DrawerMenuSection {
11
+ title?: string;
12
+ items: DrawerMenuItem[];
13
+ }
14
+ export interface DrawerMenuProps {
15
+ visible: boolean;
16
+ onClose: () => void;
17
+ sections: DrawerMenuSection[];
18
+ activeKey?: string;
19
+ onSelect?: (key: string) => void;
20
+ header?: React.ReactNode;
21
+ footer?: React.ReactNode;
22
+ className?: string;
23
+ style?: StyleProp<ViewStyle>;
24
+ }
25
+ export declare function DrawerMenu({ visible, onClose, sections, activeKey, onSelect, header, footer, className, style, }: DrawerMenuProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=drawer-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer-menu.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/drawer-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAetB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,eAAe,2CA8GjB"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { View, Pressable, useWindowDimensions, StyleSheet, } from 'react-native';
4
+ import Animated, { useSharedValue, useAnimatedStyle, withTiming, Easing, interpolate, } from 'react-native-reanimated';
5
+ import { Text } from '../../components/text';
6
+ import { cn } from '../../lib/cn';
7
+ const DRAWER_WIDTH_RATIO = 0.85;
8
+ const OPEN_DURATION = 280;
9
+ const CLOSE_DURATION = 250;
10
+ export function DrawerMenu({ visible, onClose, sections, activeKey, onSelect, header, footer, className, style, }) {
11
+ const { width: screenWidth } = useWindowDimensions();
12
+ const drawerWidth = screenWidth * DRAWER_WIDTH_RATIO;
13
+ const progress = useSharedValue(0);
14
+ React.useEffect(() => {
15
+ progress.value = withTiming(visible ? 1 : 0, {
16
+ duration: visible ? OPEN_DURATION : CLOSE_DURATION,
17
+ easing: visible ? Easing.out(Easing.cubic) : Easing.in(Easing.cubic),
18
+ });
19
+ }, [visible, progress]);
20
+ const backdropStyle = useAnimatedStyle(() => ({
21
+ opacity: progress.value * 0.5,
22
+ pointerEvents: progress.value > 0 ? 'auto' : 'none',
23
+ }));
24
+ const drawerStyle = useAnimatedStyle(() => ({
25
+ transform: [{ translateX: interpolate(progress.value, [0, 1], [-drawerWidth, 0]) }],
26
+ }));
27
+ const containerStyle = useAnimatedStyle(() => ({
28
+ pointerEvents: progress.value > 0 ? 'auto' : 'none',
29
+ }));
30
+ const handleItemPress = (key) => {
31
+ onSelect?.(key);
32
+ };
33
+ return (_jsxs(Animated.View, { style: [StyleSheet.absoluteFill, containerStyle], children: [_jsx(Animated.View, { style: [StyleSheet.absoluteFill, { backgroundColor: '#000' }, backdropStyle], children: _jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: onClose }) }), _jsx(Animated.View, { style: [
34
+ {
35
+ position: 'absolute',
36
+ top: 0,
37
+ bottom: 0,
38
+ left: 0,
39
+ width: drawerWidth,
40
+ },
41
+ drawerStyle,
42
+ style,
43
+ ], className: cn('bg-background border-r border-border', className), children: _jsxs(View, { className: "flex-1 pt-14", children: [header && _jsx(View, { className: "px-5 pb-4 mb-2 border-b border-border", children: header }), _jsx(View, { className: "flex-1 px-3", children: sections.map((section, sectionIndex) => (_jsxs(View, { className: "mb-4", children: [section.title && (_jsx(Text, { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide px-3 mb-2", children: section.title })), _jsx(View, { className: "gap-0.5", children: section.items.map((item) => {
44
+ const isActive = activeKey === item.key;
45
+ return (_jsxs(Pressable, { onPress: () => handleItemPress(item.key), className: cn('flex-row items-center gap-3 px-3 py-3 rounded-lg active:opacity-70', isActive && 'bg-primary/10'), children: [item.icon, _jsx(Text, { className: cn('flex-1 font-medium', item.destructive
46
+ ? 'text-destructive'
47
+ : isActive
48
+ ? 'text-primary'
49
+ : 'text-foreground'), children: item.label }), item.badge !== undefined && (_jsx(View, { className: "bg-primary px-2 py-0.5 rounded-full min-w-[20px] items-center", children: _jsx(Text, { className: "text-xs font-semibold text-primary-foreground", children: item.badge }) }))] }, item.key));
50
+ }) })] }, sectionIndex))) }), footer && _jsx(View, { className: "px-5 py-4 mt-auto border-t border-border", children: footer })] }) })] }));
51
+ }
52
+ //# sourceMappingURL=drawer-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer-menu.js","sourceRoot":"","sources":["../../../src/blocks/navigation/drawer-menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { type ViewProps, type PressableProps } from 'react-native';
3
+ export interface FloatingBottomNavItem {
4
+ key: string;
5
+ label: string;
6
+ icon: React.ReactNode;
7
+ }
8
+ export interface FloatingBottomNavProps extends ViewProps {
9
+ items: FloatingBottomNavItem[];
10
+ activeKey: string;
11
+ onSelect: (key: string) => void;
12
+ }
13
+ export interface FloatingBottomNavItemProps extends Omit<PressableProps, 'children'> {
14
+ item: FloatingBottomNavItem;
15
+ isActive: boolean;
16
+ }
17
+ export declare function FloatingBottomNav({ items, activeKey, onSelect, className, ...props }: FloatingBottomNavProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=floating-bottom-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-bottom-nav.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/floating-bottom-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpF,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAClF,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,sBAAsB,2CAexB"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Pressable } from 'react-native';
3
+ import { Text } from '../../components/text';
4
+ import { cn } from '../../lib/cn';
5
+ // ─── Components ──────────────────────────────────────────────
6
+ function FloatingNavItem({ item, isActive, className, ...props }) {
7
+ const { label, icon } = item;
8
+ return (_jsxs(Pressable, { className: cn('flex-row items-center gap-2 rounded-full px-4 py-2 active:scale-95', isActive && 'bg-primary', className), ...props, children: [_jsx(View, { className: cn(isActive ? 'text-primary-foreground' : 'text-muted-foreground'), children: icon }), isActive && _jsx(Text, { className: "text-sm font-semibold text-primary-foreground", children: label })] }));
9
+ }
10
+ export function FloatingBottomNav({ items, activeKey, onSelect, className, ...props }) {
11
+ return (_jsx(View, { className: cn('items-center pb-8', className), ...props, children: _jsx(View, { className: "flex-row items-center gap-1 rounded-full bg-card p-1.5 shadow-lg", children: items.map((item) => (_jsx(FloatingNavItem, { item: item, isActive: activeKey === item.key, onPress: () => onSelect(item.key) }, item.key))) }) }));
12
+ }
13
+ //# sourceMappingURL=floating-bottom-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-bottom-nav.js","sourceRoot":"","sources":["../../../src/blocks/navigation/floating-bottom-nav.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAqBlC,gEAAgE;AAEhE,SAAS,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IAC1F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE7B,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,oEAAoE,EACpE,QAAQ,IAAI,YAAY,EACxB,SAAS,CACV,KACG,KAAK,aAET,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC,YAChF,IAAI,GACA,EACN,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+CAA+C,YAAE,KAAK,GAAQ,IACjF,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACe;IACvB,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAAM,KAAK,YAC5D,KAAC,IAAI,IAAC,SAAS,EAAC,kEAAkE,YAC/E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,eAAe,IAEd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAH5B,IAAI,CAAC,GAAG,CAIb,CACH,CAAC,GACG,GACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { type ViewProps, type PressableProps } from 'react-native';
3
+ export interface HeaderAction {
4
+ key: string;
5
+ icon: React.ReactNode;
6
+ onPress: () => void;
7
+ }
8
+ export interface HeaderProps extends ViewProps {
9
+ title?: string;
10
+ subtitle?: string;
11
+ leftAction?: React.ReactNode;
12
+ rightActions?: HeaderAction[];
13
+ centerContent?: React.ReactNode;
14
+ transparent?: boolean;
15
+ border?: boolean;
16
+ }
17
+ export declare function Header({ title, subtitle, leftAction, rightActions, centerContent, transparent, border, className, ...props }: HeaderProps): import("react/jsx-runtime").JSX.Element;
18
+ export interface HeaderBackButtonProps extends Omit<PressableProps, 'children'> {
19
+ icon?: React.ReactNode;
20
+ label?: string;
21
+ }
22
+ export declare function HeaderBackButton({ icon, label, className, ...props }: HeaderBackButtonProps): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAmB,EACnB,MAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,2CA8Cb;AAID,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAU3F"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Pressable } from 'react-native';
3
+ import { Text } from '../../components/text';
4
+ import { cn } from '../../lib/cn';
5
+ // ─── Component ───────────────────────────────────────────────
6
+ export function Header({ title, subtitle, leftAction, rightActions, centerContent, transparent = false, border = true, className, ...props }) {
7
+ return (_jsxs(View, { className: cn('flex-row items-center px-4 py-3', !transparent && 'bg-background', border && 'border-b border-border', className), ...props, children: [_jsx(View, { className: "min-w-12", children: leftAction }), _jsx(View, { className: "flex-1 items-center", children: centerContent || (_jsxs(View, { className: "items-center", children: [title && (_jsx(Text, { className: "text-base font-semibold text-foreground", numberOfLines: 1, children: title })), subtitle && (_jsx(Text, { className: "text-xs text-muted-foreground", numberOfLines: 1, children: subtitle }))] })) }), _jsx(View, { className: "min-w-12 flex-row items-center justify-end gap-2", children: rightActions?.map((action) => (_jsx(Pressable, { onPress: action.onPress, className: "rounded-full p-2 active:bg-accent", children: action.icon }, action.key))) })] }));
8
+ }
9
+ export function HeaderBackButton({ icon, label, className, ...props }) {
10
+ return (_jsxs(Pressable, { className: cn('flex-row items-center gap-1 rounded-full py-1 active:opacity-70', className), ...props, children: [icon || _jsx(Text, { className: "text-xl text-primary", children: "\u2039" }), label && _jsx(Text, { className: "text-base text-primary", children: label })] }));
11
+ }
12
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/blocks/navigation/header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAoBlC,gEAAgE;AAEhE,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,KAAK,EACnB,MAAM,GAAG,IAAI,EACb,SAAS,EACT,GAAG,KAAK,EACI;IACZ,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,iCAAiC,EACjC,CAAC,WAAW,IAAI,eAAe,EAC/B,MAAM,IAAI,wBAAwB,EAClC,SAAS,CACV,KACG,KAAK,aAGT,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,UAAU,GAAQ,EAG9C,KAAC,IAAI,IAAC,SAAS,EAAC,qBAAqB,YAClC,aAAa,IAAI,CAChB,MAAC,IAAI,IAAC,SAAS,EAAC,cAAc,aAC3B,KAAK,IAAI,CACR,KAAC,IAAI,IAAC,SAAS,EAAC,yCAAyC,EAAC,aAAa,EAAE,CAAC,YACvE,KAAK,GACD,CACR,EACA,QAAQ,IAAI,CACX,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,EAAC,aAAa,EAAE,CAAC,YAC7D,QAAQ,GACJ,CACR,IACI,CACR,GACI,EAGP,KAAC,IAAI,IAAC,SAAS,EAAC,kDAAkD,YAC/D,YAAY,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,KAAC,SAAS,IAER,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,SAAS,EAAC,mCAAmC,YAE5C,MAAM,CAAC,IAAI,IAJP,MAAM,CAAC,GAAG,CAKL,CACb,CAAC,GACG,IACF,CACR,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyB;IAC1F,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,iEAAiE,EAAE,SAAS,CAAC,KACvF,KAAK,aAER,IAAI,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,uBAAS,EACvD,KAAK,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,wBAAwB,YAAE,KAAK,GAAQ,IACvD,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { BottomNav, type BottomNavItem, type BottomNavProps } from './bottom-nav';
2
+ export { FloatingBottomNav, type FloatingBottomNavItem, type FloatingBottomNavProps, } from './floating-bottom-nav';
3
+ export { Header, HeaderBackButton, type HeaderAction, type HeaderBackButtonProps, type HeaderProps, } from './header';
4
+ export { TabBar, type TabBarItem, type TabBarProps } from './tab-bar';
5
+ export { DrawerMenu, type DrawerMenuItem, type DrawerMenuSection, type DrawerMenuProps, } from './drawer-menu';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { BottomNav } from './bottom-nav';
2
+ export { FloatingBottomNav, } from './floating-bottom-nav';
3
+ export { Header, HeaderBackButton, } from './header';
4
+ export { TabBar } from './tab-bar';
5
+ export { DrawerMenu, } from './drawer-menu';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2C,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,iBAAiB,GAGlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,MAAM,EACN,gBAAgB,GAIjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAqC,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,UAAU,GAIX,MAAM,eAAe,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { type ViewProps, type PressableProps } from 'react-native';
3
+ export interface TabBarItem {
4
+ key: string;
5
+ label: string;
6
+ icon?: React.ReactNode;
7
+ }
8
+ export interface TabBarProps extends ViewProps {
9
+ items: TabBarItem[];
10
+ activeKey: string;
11
+ onSelect: (key: string) => void;
12
+ variant?: 'default' | 'pills' | 'underline';
13
+ scrollable?: boolean;
14
+ }
15
+ export interface TabBarItemProps extends Omit<PressableProps, 'children'> {
16
+ item: TabBarItem;
17
+ isActive: boolean;
18
+ variant: 'default' | 'pills' | 'underline';
19
+ }
20
+ export declare function TabBar({ items, activeKey, onSelect, variant, scrollable, className, ...props }: TabBarProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=tab-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-bar.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/tab-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMhG,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACvE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;CAC5C;AAkCD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,UAAkB,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,2CAqCb"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View, Pressable, ScrollView } from 'react-native';
3
+ import { Text } from '../../components/text';
4
+ import { cn } from '../../lib/cn';
5
+ // ─── Components ──────────────────────────────────────────────
6
+ function TabBarItemComponent({ item, isActive, variant, className, ...props }) {
7
+ const { label, icon } = item;
8
+ const baseStyles = 'flex-row items-center justify-center gap-2 px-4 py-2';
9
+ const variantStyles = {
10
+ default: isActive ? 'border-b-2 border-primary' : 'border-b-2 border-transparent',
11
+ pills: isActive ? 'bg-primary rounded-full' : 'rounded-full',
12
+ underline: isActive ? 'border-b-2 border-primary' : '',
13
+ };
14
+ const textStyles = {
15
+ default: isActive ? 'text-primary font-medium' : 'text-muted-foreground font-medium',
16
+ pills: isActive ? 'text-primary-foreground font-medium' : 'text-muted-foreground font-medium',
17
+ underline: isActive ? 'text-foreground font-medium' : 'text-muted-foreground font-medium',
18
+ };
19
+ return (_jsxs(Pressable, { className: cn(baseStyles, variantStyles[variant], 'active:opacity-70', className), ...props, children: [icon && (_jsx(View, { className: isActive && variant === 'pills' ? 'text-primary-foreground' : '', children: icon })), _jsx(Text, { className: cn('text-sm', textStyles[variant]), children: label })] }));
20
+ }
21
+ export function TabBar({ items, activeKey, onSelect, variant = 'default', scrollable = false, className, ...props }) {
22
+ const content = (_jsx(View, { className: cn('flex-row', variant === 'pills' && 'gap-1 rounded-full bg-muted p-1', variant === 'default' && 'border-b border-border', !scrollable && 'justify-around', className), ...props, children: items.map((item) => (_jsx(TabBarItemComponent, { item: item, isActive: activeKey === item.key, variant: variant, onPress: () => onSelect(item.key) }, item.key))) }));
23
+ if (scrollable) {
24
+ return (_jsx(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: { paddingHorizontal: 16 }, children: content }));
25
+ }
26
+ return content;
27
+ }
28
+ //# sourceMappingURL=tab-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-bar.js","sourceRoot":"","sources":["../../../src/blocks/navigation/tab-bar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAuC,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAwBlC,gEAAgE;AAEhE,SAAS,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmB;IAC5F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,UAAU,GAAG,sDAAsD,CAAC;IAC1E,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,+BAA+B;QACjF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,cAAc;QAC5D,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;KACvD,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,mCAAmC;QACpF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,mCAAmC;QAC7F,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,mCAAmC;KAC1F,CAAC;IAEF,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,KAC7E,KAAK,aAER,IAAI,IAAI,CACP,KAAC,IAAI,IAAC,SAAS,EAAE,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,YAC9E,IAAI,GACA,CACR,EACD,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,YAAG,KAAK,GAAQ,IACzD,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,UAAU,GAAG,KAAK,EAClB,SAAS,EACT,GAAG,KAAK,EACI;IACZ,MAAM,OAAO,GAAG,CACd,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,UAAU,EACV,OAAO,KAAK,OAAO,IAAI,iCAAiC,EACxD,OAAO,KAAK,SAAS,IAAI,wBAAwB,EACjD,CAAC,UAAU,IAAI,gBAAgB,EAC/B,SAAS,CACV,KACG,KAAK,YAER,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,mBAAmB,IAElB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAJ5B,IAAI,CAAC,GAAG,CAKb,CACH,CAAC,GACG,CACR,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,KAAC,UAAU,IACT,UAAU,QACV,8BAA8B,EAAE,KAAK,EACrC,qBAAqB,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAE/C,OAAO,GACG,CACd,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}