@lssm/lib.ui-kit 1.10.0 → 1.11.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 (363) hide show
  1. package/README.md +11 -0
  2. package/dist/index.d.ts +1 -2
  3. package/dist/index.js +1 -2
  4. package/dist/tsconfig.tsbuildinfo +1 -1
  5. package/dist/ui/accordion.d.ts +6 -7
  6. package/dist/ui/accordion.js +1 -2
  7. package/dist/ui/alert-dialog.d.ts +12 -13
  8. package/dist/ui/alert-dialog.js +1 -2
  9. package/dist/ui/alert.d.ts +7 -8
  10. package/dist/ui/alert.js +1 -2
  11. package/dist/ui/aspect-ratio.d.ts +1 -2
  12. package/dist/ui/aspect-ratio.js +1 -2
  13. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +1 -2
  14. package/dist/ui/atoms/FilterSelect/FilterSelect.js +1 -2
  15. package/dist/ui/atoms/FilterSelect/types.d.ts +1 -2
  16. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +1 -2
  17. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -2
  18. package/dist/ui/atoms/Pagination/Pagination.d.ts +1 -2
  19. package/dist/ui/atoms/Pagination/Pagination.js +1 -2
  20. package/dist/ui/atoms/Pagination/types.d.ts +1 -2
  21. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +1 -2
  22. package/dist/ui/atoms/SearchInput/SearchInput.js +1 -2
  23. package/dist/ui/atoms/SearchInput/types.d.ts +1 -2
  24. package/dist/ui/avatar.d.ts +5 -6
  25. package/dist/ui/avatar.js +1 -2
  26. package/dist/ui/badge.d.ts +6 -7
  27. package/dist/ui/badge.js +1 -2
  28. package/dist/ui/breadcrumb.d.ts +9 -10
  29. package/dist/ui/breadcrumb.js +1 -2
  30. package/dist/ui/button.d.ts +8 -9
  31. package/dist/ui/button.js +1 -2
  32. package/dist/ui/card.d.ts +8 -9
  33. package/dist/ui/card.js +1 -2
  34. package/dist/ui/carousel.d.ts +1 -2
  35. package/dist/ui/carousel.js +1 -2
  36. package/dist/ui/checkbox.d.ts +4 -5
  37. package/dist/ui/checkbox.js +1 -2
  38. package/dist/ui/collapsible.d.ts +9 -10
  39. package/dist/ui/collapsible.js +1 -2
  40. package/dist/ui/command.d.ts +1 -2
  41. package/dist/ui/command.js +1 -2
  42. package/dist/ui/context-menu.d.ts +17 -18
  43. package/dist/ui/context-menu.js +1 -2
  44. package/dist/ui/date-picker.d.ts +3 -4
  45. package/dist/ui/date-picker.js +1 -2
  46. package/dist/ui/date-range-picker.d.ts +3 -4
  47. package/dist/ui/date-range-picker.js +1 -2
  48. package/dist/ui/datetime-picker.d.ts +3 -4
  49. package/dist/ui/datetime-picker.js +1 -2
  50. package/dist/ui/dialog.d.ts +11 -12
  51. package/dist/ui/dialog.js +1 -2
  52. package/dist/ui/dropdown-menu.d.ts +17 -18
  53. package/dist/ui/dropdown-menu.js +1 -2
  54. package/dist/ui/empty-state.d.ts +5 -6
  55. package/dist/ui/empty-state.js +1 -2
  56. package/dist/ui/empty.d.ts +10 -11
  57. package/dist/ui/empty.js +1 -2
  58. package/dist/ui/fab.d.ts +4 -5
  59. package/dist/ui/fab.js +1 -2
  60. package/dist/ui/field.d.ts +15 -16
  61. package/dist/ui/field.js +1 -2
  62. package/dist/ui/form.d.ts +8 -9
  63. package/dist/ui/form.js +2 -3
  64. package/dist/ui/hover-card.d.ts +7 -8
  65. package/dist/ui/hover-card.js +1 -2
  66. package/dist/ui/icons/Check.js +1 -2
  67. package/dist/ui/icons/ChevronDown.js +1 -2
  68. package/dist/ui/icons/ChevronRight.js +1 -2
  69. package/dist/ui/icons/ChevronUp.js +1 -2
  70. package/dist/ui/icons/CircleUser.js +1 -2
  71. package/dist/ui/icons/Info.js +1 -2
  72. package/dist/ui/icons/Key.js +1 -2
  73. package/dist/ui/icons/MoonStar.js +1 -2
  74. package/dist/ui/icons/Sun.js +1 -2
  75. package/dist/ui/icons/X.js +1 -2
  76. package/dist/ui/icons/iconWithClassName.d.ts +1 -2
  77. package/dist/ui/icons/iconWithClassName.js +1 -2
  78. package/dist/ui/input.d.ts +3 -4
  79. package/dist/ui/input.js +1 -2
  80. package/dist/ui/label.d.ts +3 -4
  81. package/dist/ui/label.js +1 -2
  82. package/dist/ui/link.d.ts +3 -4
  83. package/dist/ui/link.js +1 -2
  84. package/dist/ui/loading-button.d.ts +3 -4
  85. package/dist/ui/loading-button.js +1 -2
  86. package/dist/ui/loading-overlay.d.ts +3 -4
  87. package/dist/ui/loading-overlay.js +1 -2
  88. package/dist/ui/loading-screen.d.ts +3 -4
  89. package/dist/ui/loading-screen.js +1 -2
  90. package/dist/ui/marketing/FeatureGrid.d.ts +3 -4
  91. package/dist/ui/marketing/FeatureGrid.js +1 -2
  92. package/dist/ui/marketing/Hero.d.ts +3 -4
  93. package/dist/ui/marketing/Hero.js +1 -2
  94. package/dist/ui/marketing/PricingTable.d.ts +3 -4
  95. package/dist/ui/marketing/PricingTable.js +1 -2
  96. package/dist/ui/menubar.d.ts +18 -19
  97. package/dist/ui/menubar.js +1 -2
  98. package/dist/ui/molecules/Autocomplete/index.d.ts +1 -2
  99. package/dist/ui/molecules/Autocomplete/index.js +1 -2
  100. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +1 -2
  101. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +1 -2
  102. package/dist/ui/molecules/SearchAndFilter/types.d.ts +1 -2
  103. package/dist/ui/molecules/SkeletonList.d.ts +3 -4
  104. package/dist/ui/molecules/SkeletonList.js +1 -2
  105. package/dist/ui/navigation-menu.d.ts +13 -14
  106. package/dist/ui/navigation-menu.js +1 -2
  107. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +3 -4
  108. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +1 -2
  109. package/dist/ui/organisms/ListPage/ListPage.d.ts +3 -4
  110. package/dist/ui/organisms/ListPage/ListPage.js +1 -2
  111. package/dist/ui/organisms/ListPage/types.d.ts +1 -2
  112. package/dist/ui/page-header.d.ts +6 -7
  113. package/dist/ui/page-header.js +1 -2
  114. package/dist/ui/password-strength.d.ts +3 -4
  115. package/dist/ui/password-strength.js +1 -2
  116. package/dist/ui/popover.d.ts +7 -8
  117. package/dist/ui/popover.js +1 -2
  118. package/dist/ui/progress.d.ts +3 -4
  119. package/dist/ui/progress.js +1 -2
  120. package/dist/ui/radio-group.d.ts +4 -5
  121. package/dist/ui/radio-group.js +1 -2
  122. package/dist/ui/select.d.ts +14 -15
  123. package/dist/ui/select.js +1 -2
  124. package/dist/ui/separator.d.ts +3 -4
  125. package/dist/ui/separator.js +1 -2
  126. package/dist/ui/sheet.d.ts +1 -2
  127. package/dist/ui/sheet.js +1 -2
  128. package/dist/ui/sidebar.d.ts +1 -2
  129. package/dist/ui/sidebar.js +1 -2
  130. package/dist/ui/skeleton.d.ts +3 -4
  131. package/dist/ui/skeleton.js +1 -2
  132. package/dist/ui/stack.d.ts +20 -21
  133. package/dist/ui/stack.js +1 -2
  134. package/dist/ui/stepper.d.ts +5 -6
  135. package/dist/ui/stepper.js +1 -2
  136. package/dist/ui/switch.d.ts +3 -4
  137. package/dist/ui/switch.js +1 -2
  138. package/dist/ui/table.d.ts +9 -10
  139. package/dist/ui/table.js +1 -2
  140. package/dist/ui/tabs.d.ts +12 -13
  141. package/dist/ui/tabs.js +1 -2
  142. package/dist/ui/text.d.ts +3 -4
  143. package/dist/ui/text.js +1 -2
  144. package/dist/ui/textarea.d.ts +1 -2
  145. package/dist/ui/textarea.js +1 -2
  146. package/dist/ui/time-picker.d.ts +3 -4
  147. package/dist/ui/time-picker.js +1 -2
  148. package/dist/ui/toggle-group.d.ts +5 -6
  149. package/dist/ui/toggle-group.js +1 -2
  150. package/dist/ui/toggle.d.ts +7 -8
  151. package/dist/ui/toggle.js +1 -2
  152. package/dist/ui/tooltip.d.ts +7 -8
  153. package/dist/ui/tooltip.js +1 -2
  154. package/dist/ui/typography.d.ts +13 -14
  155. package/dist/ui/typography.js +1 -2
  156. package/dist/ui/useColorScheme.d.ts +3 -4
  157. package/dist/ui/useColorScheme.js +1 -2
  158. package/dist/ui/useListState.d.ts +1 -2
  159. package/dist/ui/useListState.js +1 -2
  160. package/dist/ui/usecases/UseCaseCard.d.ts +3 -4
  161. package/dist/ui/usecases/UseCaseCard.js +1 -2
  162. package/dist/ui/usecases/UserStoryCard.d.ts +3 -4
  163. package/dist/ui/usecases/UserStoryCard.js +1 -2
  164. package/dist/ui/utils.d.ts +1 -2
  165. package/dist/ui/utils.js +1 -2
  166. package/package.json +5 -3
  167. package/dist/index.d.ts.map +0 -1
  168. package/dist/index.js.map +0 -1
  169. package/dist/node_modules/@hookform/resolvers/dist/resolvers.js +0 -29
  170. package/dist/node_modules/@hookform/resolvers/dist/resolvers.js.map +0 -1
  171. package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js +0 -61
  172. package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js.map +0 -1
  173. package/dist/node_modules/react-hook-form/dist/index.esm.js +0 -2073
  174. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +0 -1
  175. package/dist/node_modules/zod/v4/classic/errors.js +0 -30
  176. package/dist/node_modules/zod/v4/classic/errors.js.map +0 -1
  177. package/dist/node_modules/zod/v4/classic/iso.js +0 -38
  178. package/dist/node_modules/zod/v4/classic/iso.js.map +0 -1
  179. package/dist/node_modules/zod/v4/classic/parse.js +0 -20
  180. package/dist/node_modules/zod/v4/classic/parse.js.map +0 -1
  181. package/dist/node_modules/zod/v4/classic/schemas.js +0 -395
  182. package/dist/node_modules/zod/v4/classic/schemas.js.map +0 -1
  183. package/dist/node_modules/zod/v4/core/api.js +0 -377
  184. package/dist/node_modules/zod/v4/core/api.js.map +0 -1
  185. package/dist/node_modules/zod/v4/core/checks.js +0 -226
  186. package/dist/node_modules/zod/v4/core/checks.js.map +0 -1
  187. package/dist/node_modules/zod/v4/core/core.js +0 -56
  188. package/dist/node_modules/zod/v4/core/core.js.map +0 -1
  189. package/dist/node_modules/zod/v4/core/errors.js +0 -63
  190. package/dist/node_modules/zod/v4/core/errors.js.map +0 -1
  191. package/dist/node_modules/zod/v4/core/parse.js +0 -110
  192. package/dist/node_modules/zod/v4/core/parse.js.map +0 -1
  193. package/dist/node_modules/zod/v4/core/regexes.js +0 -59
  194. package/dist/node_modules/zod/v4/core/regexes.js.map +0 -1
  195. package/dist/node_modules/zod/v4/core/registries.js +0 -51
  196. package/dist/node_modules/zod/v4/core/registries.js.map +0 -1
  197. package/dist/node_modules/zod/v4/core/schemas.js +0 -755
  198. package/dist/node_modules/zod/v4/core/schemas.js.map +0 -1
  199. package/dist/node_modules/zod/v4/core/util.js +0 -152
  200. package/dist/node_modules/zod/v4/core/util.js.map +0 -1
  201. package/dist/node_modules/zod/v4/core/versions.js +0 -10
  202. package/dist/node_modules/zod/v4/core/versions.js.map +0 -1
  203. package/dist/ui/accordion.d.ts.map +0 -1
  204. package/dist/ui/accordion.js.map +0 -1
  205. package/dist/ui/alert-dialog.d.ts.map +0 -1
  206. package/dist/ui/alert-dialog.js.map +0 -1
  207. package/dist/ui/alert.d.ts.map +0 -1
  208. package/dist/ui/alert.js.map +0 -1
  209. package/dist/ui/aspect-ratio.d.ts.map +0 -1
  210. package/dist/ui/aspect-ratio.js.map +0 -1
  211. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +0 -1
  212. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +0 -1
  213. package/dist/ui/atoms/FilterSelect/types.d.ts.map +0 -1
  214. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +0 -1
  215. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +0 -1
  216. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +0 -1
  217. package/dist/ui/atoms/Pagination/Pagination.js.map +0 -1
  218. package/dist/ui/atoms/Pagination/types.d.ts.map +0 -1
  219. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +0 -1
  220. package/dist/ui/atoms/SearchInput/SearchInput.js.map +0 -1
  221. package/dist/ui/atoms/SearchInput/types.d.ts.map +0 -1
  222. package/dist/ui/avatar.d.ts.map +0 -1
  223. package/dist/ui/avatar.js.map +0 -1
  224. package/dist/ui/badge.d.ts.map +0 -1
  225. package/dist/ui/badge.js.map +0 -1
  226. package/dist/ui/breadcrumb.d.ts.map +0 -1
  227. package/dist/ui/breadcrumb.js.map +0 -1
  228. package/dist/ui/button.d.ts.map +0 -1
  229. package/dist/ui/button.js.map +0 -1
  230. package/dist/ui/card.d.ts.map +0 -1
  231. package/dist/ui/card.js.map +0 -1
  232. package/dist/ui/carousel.d.ts.map +0 -1
  233. package/dist/ui/carousel.js.map +0 -1
  234. package/dist/ui/checkbox.d.ts.map +0 -1
  235. package/dist/ui/checkbox.js.map +0 -1
  236. package/dist/ui/collapsible.d.ts.map +0 -1
  237. package/dist/ui/collapsible.js.map +0 -1
  238. package/dist/ui/command.d.ts.map +0 -1
  239. package/dist/ui/command.js.map +0 -1
  240. package/dist/ui/context-menu.d.ts.map +0 -1
  241. package/dist/ui/context-menu.js.map +0 -1
  242. package/dist/ui/date-picker.d.ts.map +0 -1
  243. package/dist/ui/date-picker.js.map +0 -1
  244. package/dist/ui/date-range-picker.d.ts.map +0 -1
  245. package/dist/ui/date-range-picker.js.map +0 -1
  246. package/dist/ui/datetime-picker.d.ts.map +0 -1
  247. package/dist/ui/datetime-picker.js.map +0 -1
  248. package/dist/ui/dialog.d.ts.map +0 -1
  249. package/dist/ui/dialog.js.map +0 -1
  250. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  251. package/dist/ui/dropdown-menu.js.map +0 -1
  252. package/dist/ui/empty-state.d.ts.map +0 -1
  253. package/dist/ui/empty-state.js.map +0 -1
  254. package/dist/ui/empty.d.ts.map +0 -1
  255. package/dist/ui/empty.js.map +0 -1
  256. package/dist/ui/fab.d.ts.map +0 -1
  257. package/dist/ui/fab.js.map +0 -1
  258. package/dist/ui/field.d.ts.map +0 -1
  259. package/dist/ui/field.js.map +0 -1
  260. package/dist/ui/form.d.ts.map +0 -1
  261. package/dist/ui/form.js.map +0 -1
  262. package/dist/ui/hover-card.d.ts.map +0 -1
  263. package/dist/ui/hover-card.js.map +0 -1
  264. package/dist/ui/icons/Check.js.map +0 -1
  265. package/dist/ui/icons/ChevronDown.js.map +0 -1
  266. package/dist/ui/icons/ChevronRight.js.map +0 -1
  267. package/dist/ui/icons/ChevronUp.js.map +0 -1
  268. package/dist/ui/icons/CircleUser.js.map +0 -1
  269. package/dist/ui/icons/Info.js.map +0 -1
  270. package/dist/ui/icons/Key.js.map +0 -1
  271. package/dist/ui/icons/MoonStar.js.map +0 -1
  272. package/dist/ui/icons/Sun.js.map +0 -1
  273. package/dist/ui/icons/X.js.map +0 -1
  274. package/dist/ui/icons/iconWithClassName.d.ts.map +0 -1
  275. package/dist/ui/icons/iconWithClassName.js.map +0 -1
  276. package/dist/ui/input.d.ts.map +0 -1
  277. package/dist/ui/input.js.map +0 -1
  278. package/dist/ui/label.d.ts.map +0 -1
  279. package/dist/ui/label.js.map +0 -1
  280. package/dist/ui/link.d.ts.map +0 -1
  281. package/dist/ui/link.js.map +0 -1
  282. package/dist/ui/loading-button.d.ts.map +0 -1
  283. package/dist/ui/loading-button.js.map +0 -1
  284. package/dist/ui/loading-overlay.d.ts.map +0 -1
  285. package/dist/ui/loading-overlay.js.map +0 -1
  286. package/dist/ui/loading-screen.d.ts.map +0 -1
  287. package/dist/ui/loading-screen.js.map +0 -1
  288. package/dist/ui/marketing/FeatureGrid.d.ts.map +0 -1
  289. package/dist/ui/marketing/FeatureGrid.js.map +0 -1
  290. package/dist/ui/marketing/Hero.d.ts.map +0 -1
  291. package/dist/ui/marketing/Hero.js.map +0 -1
  292. package/dist/ui/marketing/PricingTable.d.ts.map +0 -1
  293. package/dist/ui/marketing/PricingTable.js.map +0 -1
  294. package/dist/ui/menubar.d.ts.map +0 -1
  295. package/dist/ui/menubar.js.map +0 -1
  296. package/dist/ui/molecules/Autocomplete/index.d.ts.map +0 -1
  297. package/dist/ui/molecules/Autocomplete/index.js.map +0 -1
  298. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +0 -1
  299. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +0 -1
  300. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +0 -1
  301. package/dist/ui/molecules/SkeletonList.d.ts.map +0 -1
  302. package/dist/ui/molecules/SkeletonList.js.map +0 -1
  303. package/dist/ui/navigation-menu.d.ts.map +0 -1
  304. package/dist/ui/navigation-menu.js.map +0 -1
  305. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +0 -1
  306. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +0 -1
  307. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +0 -1
  308. package/dist/ui/organisms/ListPage/ListPage.js.map +0 -1
  309. package/dist/ui/organisms/ListPage/types.d.ts.map +0 -1
  310. package/dist/ui/page-header.d.ts.map +0 -1
  311. package/dist/ui/page-header.js.map +0 -1
  312. package/dist/ui/password-strength.d.ts.map +0 -1
  313. package/dist/ui/password-strength.js.map +0 -1
  314. package/dist/ui/popover.d.ts.map +0 -1
  315. package/dist/ui/popover.js.map +0 -1
  316. package/dist/ui/progress.d.ts.map +0 -1
  317. package/dist/ui/progress.js.map +0 -1
  318. package/dist/ui/radio-group.d.ts.map +0 -1
  319. package/dist/ui/radio-group.js.map +0 -1
  320. package/dist/ui/select.d.ts.map +0 -1
  321. package/dist/ui/select.js.map +0 -1
  322. package/dist/ui/separator.d.ts.map +0 -1
  323. package/dist/ui/separator.js.map +0 -1
  324. package/dist/ui/sheet.d.ts.map +0 -1
  325. package/dist/ui/sheet.js.map +0 -1
  326. package/dist/ui/sidebar.d.ts.map +0 -1
  327. package/dist/ui/sidebar.js.map +0 -1
  328. package/dist/ui/skeleton.d.ts.map +0 -1
  329. package/dist/ui/skeleton.js.map +0 -1
  330. package/dist/ui/stack.d.ts.map +0 -1
  331. package/dist/ui/stack.js.map +0 -1
  332. package/dist/ui/stepper.d.ts.map +0 -1
  333. package/dist/ui/stepper.js.map +0 -1
  334. package/dist/ui/switch.d.ts.map +0 -1
  335. package/dist/ui/switch.js.map +0 -1
  336. package/dist/ui/table.d.ts.map +0 -1
  337. package/dist/ui/table.js.map +0 -1
  338. package/dist/ui/tabs.d.ts.map +0 -1
  339. package/dist/ui/tabs.js.map +0 -1
  340. package/dist/ui/text.d.ts.map +0 -1
  341. package/dist/ui/text.js.map +0 -1
  342. package/dist/ui/textarea.d.ts.map +0 -1
  343. package/dist/ui/textarea.js.map +0 -1
  344. package/dist/ui/time-picker.d.ts.map +0 -1
  345. package/dist/ui/time-picker.js.map +0 -1
  346. package/dist/ui/toggle-group.d.ts.map +0 -1
  347. package/dist/ui/toggle-group.js.map +0 -1
  348. package/dist/ui/toggle.d.ts.map +0 -1
  349. package/dist/ui/toggle.js.map +0 -1
  350. package/dist/ui/tooltip.d.ts.map +0 -1
  351. package/dist/ui/tooltip.js.map +0 -1
  352. package/dist/ui/typography.d.ts.map +0 -1
  353. package/dist/ui/typography.js.map +0 -1
  354. package/dist/ui/useColorScheme.d.ts.map +0 -1
  355. package/dist/ui/useColorScheme.js.map +0 -1
  356. package/dist/ui/useListState.d.ts.map +0 -1
  357. package/dist/ui/useListState.js.map +0 -1
  358. package/dist/ui/usecases/UseCaseCard.d.ts.map +0 -1
  359. package/dist/ui/usecases/UseCaseCard.js.map +0 -1
  360. package/dist/ui/usecases/UserStoryCard.d.ts.map +0 -1
  361. package/dist/ui/usecases/UserStoryCard.js.map +0 -1
  362. package/dist/ui/utils.d.ts.map +0 -1
  363. package/dist/ui/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"menubar.js","names":[],"sources":["../../ui/menubar.tsx"],"sourcesContent":["import * as MenubarPrimitive from '@rn-primitives/menubar';\nimport * as React from 'react';\nimport { Platform, Text, type TextProps, View } from 'react-native';\nimport { Check } from './icons/Check';\nimport { ChevronDown } from './icons/ChevronDown';\nimport { ChevronRight } from './icons/ChevronRight';\nimport { ChevronUp } from './icons/ChevronUp';\nimport { cn } from './utils';\nimport { TextClassContext } from './text';\n\nconst MenubarMenu = MenubarPrimitive.Menu;\n\nconst MenubarGroup = MenubarPrimitive.Group;\n\nconst MenubarPortal = MenubarPrimitive.Portal;\n\nconst MenubarSub = MenubarPrimitive.Sub;\n\nconst MenubarRadioGroup = MenubarPrimitive.RadioGroup;\n\nfunction Menubar({\n className,\n ...props\n}: MenubarPrimitive.RootProps & {\n ref?: React.RefObject<MenubarPrimitive.RootRef>;\n}) {\n return (\n <MenubarPrimitive.Root\n className={cn(\n 'native:h-12 border-border bg-background flex h-10 flex-row items-center gap-x-1 rounded-md border p-1',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: MenubarPrimitive.TriggerProps & {\n ref?: React.RefObject<MenubarPrimitive.TriggerRef>;\n}) {\n const { value } = MenubarPrimitive.useRootContext();\n const { value: itemValue } = MenubarPrimitive.useMenuContext();\n\n return (\n <MenubarPrimitive.Trigger\n className={cn(\n 'native:h-10 native:px-5 native:py-0 active:bg-accent web:cursor-default web:select-none web:outline-hidden web:focus:bg-accent web:focus:text-accent-foreground flex flex-row items-center rounded-xs px-3 py-1.5 text-sm font-medium',\n value === itemValue && 'bg-accent text-accent-foreground',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenubarPrimitive.SubTriggerProps & {\n ref?: React.RefObject<MenubarPrimitive.SubTriggerRef>;\n className?: string;\n inset?: boolean;\n children?: React.ReactNode;\n}) {\n const { open } = MenubarPrimitive.useSubContext();\n const Icon =\n Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown;\n return (\n <TextClassContext.Provider\n value={cn(\n 'native:text-lg text-primary text-sm select-none',\n open && 'native:text-accent-foreground'\n )}\n >\n <MenubarPrimitive.SubTrigger\n className={cn(\n 'native:py-2 active:bg-accent web:cursor-default web:select-none web:outline-hidden web:hover:bg-accent web:focus:bg-accent flex flex-row items-center gap-2 rounded-xs px-2 py-1.5',\n open && 'bg-accent',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <Icon size={18} className=\"text-foreground ml-auto\" />\n </MenubarPrimitive.SubTrigger>\n </TextClassContext.Provider>\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: MenubarPrimitive.SubContentProps & {\n ref?: React.RefObject<MenubarPrimitive.SubContentRef>;\n}) {\n const { open } = MenubarPrimitive.useSubContext();\n return (\n <MenubarPrimitive.SubContent\n className={cn(\n 'border-border bg-popover shadow-foreground/5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 mt-1 min-w-32 overflow-hidden rounded-md border p-1 shadow-md',\n open\n ? 'web:animate-in web:fade-in-0 web:zoom-in-95'\n : 'web:animate-out web:fade-out-0 web:zoom-out',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n portalHost,\n ...props\n}: MenubarPrimitive.ContentProps & {\n ref?: React.RefObject<MenubarPrimitive.ContentRef>;\n className?: string;\n portalHost?: string;\n}) {\n const { value } = MenubarPrimitive.useRootContext();\n const { value: itemValue } = MenubarPrimitive.useMenuContext();\n return (\n <MenubarPrimitive.Portal hostName={portalHost}>\n <MenubarPrimitive.Content\n className={cn(\n 'border-border bg-popover shadow-foreground/5 z-50 min-w-32 overflow-hidden rounded-md border p-1 shadow-md',\n value === itemValue\n ? 'web:animate-in web:fade-in-0 web:zoom-in-95'\n : 'web:animate-out web:fade-out-0 web:zoom-out-95',\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n ...props\n}: MenubarPrimitive.ItemProps & {\n ref?: React.RefObject<MenubarPrimitive.ItemRef>;\n className?: string;\n inset?: boolean;\n}) {\n return (\n <TextClassContext.Provider value=\"select-none text-sm native:text-lg text-popover-foreground web:group-focus:text-accent-foreground\">\n <MenubarPrimitive.Item\n className={cn(\n 'native:py-2 group active:bg-accent web:cursor-default web:outline-hidden web:hover:bg-accent web:focus:bg-accent relative flex flex-row items-center gap-2 rounded-xs px-2 py-1.5',\n inset && 'pl-8',\n props.disabled && 'web:pointer-events-none opacity-50',\n className\n )}\n {...props}\n />\n </TextClassContext.Provider>\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenubarPrimitive.CheckboxItemProps & {\n ref?: React.RefObject<MenubarPrimitive.CheckboxItemRef>;\n children?: React.ReactNode;\n}) {\n return (\n <MenubarPrimitive.CheckboxItem\n className={cn(\n 'web:group native:py-2 active:bg-accent web:cursor-default web:outline-hidden web:focus:bg-accent relative flex flex-row items-center rounded-xs py-1.5 pr-2 pl-8',\n props.disabled && 'web:pointer-events-none opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <View className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check size={14} strokeWidth={3} className=\"text-foreground\" />\n </MenubarPrimitive.ItemIndicator>\n </View>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: MenubarPrimitive.RadioItemProps & {\n ref?: React.RefObject<MenubarPrimitive.RadioItemRef>;\n children?: React.ReactNode;\n}) {\n return (\n <MenubarPrimitive.RadioItem\n className={cn(\n 'web:group native:py-2 active:bg-accent web:cursor-default web:outline-hidden web:focus:bg-accent relative flex flex-row items-center rounded-xs py-1.5 pr-2 pl-8',\n props.disabled && 'web:pointer-events-none opacity-50',\n className\n )}\n {...props}\n >\n <View className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <View className=\"bg-foreground h-2 w-2 rounded-full\" />\n </MenubarPrimitive.ItemIndicator>\n </View>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: MenubarPrimitive.LabelProps & {\n ref?: React.RefObject<MenubarPrimitive.LabelRef>;\n className?: string;\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n className={cn(\n 'native:text-base text-foreground web:cursor-default px-2 py-1.5 text-sm font-semibold',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: MenubarPrimitive.SeparatorProps & {\n ref?: React.RefObject<MenubarPrimitive.SeparatorRef>;\n}) {\n return (\n <MenubarPrimitive.Separator\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({ className, ...props }: TextProps) {\n return (\n <Text\n className={cn(\n 'native:text-sm text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarGroup,\n MenubarItem,\n MenubarLabel,\n MenubarMenu,\n MenubarPortal,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../ui/molecules/Autocomplete/index.tsx"],"sourcesContent":[],"mappings":";cAAa,YAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../ui/molecules/Autocomplete/index.tsx"],"sourcesContent":["export const autocomplete = 'todo';\n"],"mappings":";AAAA,MAAa,eAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchAndFilter.d.ts","names":[],"sources":["../../../../ui/molecules/SearchAndFilter/SearchAndFilter.tsx"],"sourcesContent":[],"mappings":";;;;cAYa,iBAAiB,KAAA,CAAM,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchAndFilter.js","names":["SearchAndFilter: React.FC<SearchAndFilterProps>"],"sources":["../../../../ui/molecules/SearchAndFilter/SearchAndFilter.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronDown, ChevronUp, Filter } from 'lucide-react';\nimport { Button } from '../../button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../../collapsible';\nimport { SearchInput } from '../../atoms/SearchInput';\nimport { FilterSelect } from '../../atoms/FilterSelect';\nimport type { SearchAndFilterProps } from './types';\n\nexport const SearchAndFilter: React.FC<SearchAndFilterProps> = ({\n searchValue,\n onSearchChange,\n searchPlaceholder,\n filters = [],\n isLoading = false,\n disabled = false,\n className = '',\n collapsible = true,\n defaultCollapsed = false,\n}) => {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n\n const hasFilters = filters.length > 0;\n const activeFiltersCount = filters.filter((f) => f.value).length;\n\n // On mobile, show collapsible by default; on desktop, always show filters\n const shouldUseCollapsible = collapsible && hasFilters;\n\n console.log('SearchAndFilter', { filters });\n\n const FilterComponents = () => (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n {filters.map((filter) => (\n <FilterSelect\n key={filter.key}\n value={{ value: filter.value, label: filter.value }}\n options={filter.options}\n onChange={filter.onChange}\n label={filter.label}\n disabled={disabled || isLoading}\n showCounts={filter.showCounts}\n className=\"min-w-0\"\n />\n ))}\n </div>\n );\n\n return (\n <div className={`space-y-4 ${className}`}>\n {/* Search - Always visible */}\n <div className=\"flex flex-col gap-4 sm:flex-row\">\n <div className=\"flex-1\">\n <SearchInput\n value={searchValue}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n disabled={disabled || isLoading}\n className=\"w-full\"\n />\n </div>\n\n {/* Filter toggle for mobile */}\n {shouldUseCollapsible && (\n <Collapsible\n open={!isCollapsed}\n onOpenChange={setIsCollapsed}\n className=\"sm:hidden\"\n >\n <CollapsibleTrigger asChild>\n <Button\n variant=\"outline\"\n className=\"sm:hidden\"\n disabled={disabled || isLoading}\n >\n <Filter className=\"mr-2 h-4 w-4\" />\n Filtres\n {activeFiltersCount > 0 && (\n <span className=\"bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm\">\n {activeFiltersCount}\n </span>\n )}\n {isCollapsed ? (\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n ) : (\n <ChevronUp className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </CollapsibleTrigger>\n <CollapsibleContent className=\"mt-4 space-y-4\">\n <FilterComponents />\n </CollapsibleContent>\n </Collapsible>\n )}\n </div>\n\n {/* Filters - Always visible on desktop, collapsible on mobile */}\n {hasFilters && (\n <div className=\"hidden sm:block\">\n <FilterComponents />\n </div>\n )}\n\n {/* Active filters summary */}\n {activeFiltersCount > 0 && (\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-muted-foreground text-base\">\n Filtres actifs:\n </span>\n {filters\n .filter((f) => f.value)\n .map((filter) => {\n const selectedOption = filter.options.find(\n (opt) => opt.value === filter.value\n );\n return (\n <Button\n key={filter.key}\n variant=\"secondary\"\n size=\"sm\"\n onPress={() => filter.onChange(undefined)}\n disabled={disabled || isLoading}\n className=\"h-7 px-2 text-sm\"\n >\n {filter.label}: {selectedOption?.label}\n <span className=\"ml-1\">×</span>\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,MAAaA,mBAAmD,EAC9D,aACA,gBACA,mBACA,UAAU,EAAE,EACZ,YAAY,OACZ,WAAW,OACX,YAAY,IACZ,cAAc,MACd,mBAAmB,YACf;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,iBAAiB;CAEhE,MAAM,aAAa,QAAQ,SAAS;CACpC,MAAM,qBAAqB,QAAQ,QAAQ,MAAM,EAAE,MAAM,CAAC;CAG1D,MAAM,uBAAuB,eAAe;AAE5C,SAAQ,IAAI,mBAAmB,EAAE,SAAS,CAAC;CAE3C,MAAM,yBACJ,oBAAC;EAAI,WAAU;YACZ,QAAQ,KAAK,WACZ,oBAAC;GAEC,OAAO;IAAE,OAAO,OAAO;IAAO,OAAO,OAAO;IAAO;GACnD,SAAS,OAAO;GAChB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,UAAU,YAAY;GACtB,YAAY,OAAO;GACnB,WAAU;KAPL,OAAO,IAQZ,CACF;GACE;AAGR,QACE,qBAAC;EAAI,WAAW,aAAa;;GAE3B,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAI,WAAU;eACb,oBAAC;MACC,OAAO;MACP,UAAU;MACV,aAAa;MACb,UAAU,YAAY;MACtB,WAAU;OACV;MACE,EAGL,wBACC,qBAAC;KACC,MAAM,CAAC;KACP,cAAc;KACd,WAAU;gBAEV,oBAAC;MAAmB;gBAClB,qBAAC;OACC,SAAQ;OACR,WAAU;OACV,UAAU,YAAY;;QAEtB,oBAAC,UAAO,WAAU,iBAAiB;;QAElC,qBAAqB,KACpB,oBAAC;SAAK,WAAU;mBACb;UACI;QAER,cACC,oBAAC,eAAY,WAAU,iBAAiB,GAExC,oBAAC,aAAU,WAAU,iBAAiB;;QAEjC;OACU,EACrB,oBAAC;MAAmB,WAAU;gBAC5B,oBAAC,qBAAmB;OACD;MACT;KAEZ;GAGL,cACC,oBAAC;IAAI,WAAU;cACb,oBAAC,qBAAmB;KAChB;GAIP,qBAAqB,KACpB,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eAAkC;MAE3C,EACN,QACE,QAAQ,MAAM,EAAE,MAAM,CACtB,KAAK,WAAW;KACf,MAAM,iBAAiB,OAAO,QAAQ,MACnC,QAAQ,IAAI,UAAU,OAAO,MAC/B;AACD,YACE,qBAAC;MAEC,SAAQ;MACR,MAAK;MACL,eAAe,OAAO,SAAS,OAAU;MACzC,UAAU,YAAY;MACtB,WAAU;;OAET,OAAO;OAAM;OAAG,gBAAgB;OACjC,oBAAC;QAAK,WAAU;kBAAO;SAAQ;;QAR1B,OAAO,IASL;MAEX;KACA;;GAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../ui/molecules/SearchAndFilter/types.ts"],"sourcesContent":[],"mappings":";;;;UAEiB,oBAAA;;;EAAA,iBAAA,CAAA,EAAA,MAAoB;;;;;aAWxB;sBACS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkeletonList.d.ts","names":[],"sources":["../../../ui/molecules/SkeletonList.tsx"],"sourcesContent":[],"mappings":";;;UAGU,KAAA;;;EAAA,aAAK,CAAA,EAAA,MAAA;AAMf;AACE,iBADc,YAAA,CACd;EAAA,KAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAGC,KAHD,CAAA,EAGM,oBAAA,CAAA,GAAA,CAAA,OAHN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkeletonList.js","names":[],"sources":["../../../ui/molecules/SkeletonList.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Skeleton } from '../skeleton';\n\ninterface Props {\n count?: number;\n className?: string;\n itemClassName?: string;\n}\n\nexport function SkeletonList({\n count = 6,\n className = '',\n itemClassName = '',\n}: Props) {\n return (\n <div className={`space-y-3 ${className}`}>\n {Array.from({ length: count }).map((_, i) => (\n <Skeleton key={i} className={`h-20 rounded-md ${itemClassName}`} />\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,aAAa,EAC3B,QAAQ,GACR,YAAY,IACZ,gBAAgB,MACR;AACR,QACE,oBAAC;EAAI,WAAW,aAAa;YAC1B,MAAM,KAAK,EAAE,QAAQ,OAAO,CAAC,CAAC,KAAK,GAAG,MACrC,oBAAC,YAAiB,WAAW,mBAAmB,mBAAjC,EAAoD,CACnE;GACE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../ui/navigation-menu.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAgBS,cAAA;;;;GAIN,uBAAA,CAAwB;QACnB,OAAA,CAAM,UAAU,uBAAA,CAAwB;IAC/C,oBAAA,CAAA,GAAA,CAAA;iBAeQ,kBAAA;;;AAlCqC,GAqC3C,uBAAA,CAAwB;QACnB,OAAA,CAAM,UAAU,uBAAA,CAAwB;AAtCF,CAAA,CAAA,EAuC7C,oBAAA,CAAA,GAAA,CAAA,OA1BsB;cAsCjB,kBArCJ,EAqCsB,OAAA,CAAA,yBArCtB,CAqCqD,cAAA,CAA/B,SAAA,GArCtB;EACA,OAAA,CAAA,EAAA,OAAA;CAEC,GAAA;EACqB,KAAA,EAAA,MAAA,GAAA,SAAwB;CAAxC,wBAAM,KAAA,CAAA,CAAA;cAmCR,0BAlCL,EAAA,CAAA,KAAA,CAAA,EAoCA,+BAAA,CAF+B,SAAA,GAlC/B,SAAA,EAAA,GAAA,MAAA;iBAsCQ,qBAAA,CAtCR;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EA0CE,IA1CF,CA0CO,uBAAA,CAAwB,YA1C/B,EAAA,UAAA,CAAA,GAAA;EAeQ,QAAA,CAAA,EA4BI,OAAA,CAAM,SA5BQ;EACzB,GAAA,CAAA,EA4BM,OAAA,CAAM,SA5BZ,CA4BsB,uBAAA,CAAwB,UA5B9C,CAAA;CAEC,CAAA,EA2BF,oBAAA,CAAA,GAAA,CAAA,OA3B0B;iBAiElB,qBAAA,CAhEuC;EAAA,SAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAqE7C,uBAAA,CAAwB,YArEqB,GAAA;EAAxC,UAAM,CAAA,EAAA,MAAA;EACb,GAAA,CAAA,EAsEO,OAAA,CAAM,SAtEb,CAsEuB,uBAAA,CAAwB,UAtE/C,CAAA;CAAA,CAAA,EAuEA,oBAAA,CAAA,GAAA,CAAA,OAvEA;AAAA,cAiGK,kBArFiD,EAqF/B,OAAA,CAAA,yBArF+B,CAqF/B,IArF+B,CAqFA,cAAA,CAA/B,cAAA,GAAA,OAAA,CAAA,aArF+B,CAqF/B,IArF+B,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAA/B;;;EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,GAAA;EAElB,MAAA,CAAA,EAAA,OAAA;AAA0B,CAAA,wBAIvB,KAAqB,CAAA,CAAA;iBAiFrB,sBAAA,CAhFP;EAAA,SAAA;EAAA,GAAA;CAAA,EAmFC,uBAAA,CAAwB,aAnFzB,GAAA;EACA,GAAA,CAAA,EAmFM,OAAA,CAAM,SAnFZ,CAmFsB,uBAAA,CAAwB,WAnF9C,CAAA;CAEM,CAAA,EAkFP,oBAAA,CAAA,GAAA,CAAA,OAlF+B;iBAkGvB,uBAAA,CAlGN;EAAA,GAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAsGA,uBAAA,CAAwB,cAtGxB,GAAA;EACU,GAAA,CAAA,EAsGL,OAAA,CAAM,SAtGK,CAsGK,uBAAA,CAAwB,YAtG7B,CAAA;CACK,CAAA,EAsGvB,oBAAA,CAAA,GAAA,CAAA,OAtG+C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-menu.js","names":[],"sources":["../../ui/navigation-menu.tsx"],"sourcesContent":["import * as NavigationMenuPrimitive from '@rn-primitives/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport * as React from 'react';\nimport { Platform, View } from 'react-native';\nimport Animated, {\n Extrapolation,\n FadeInLeft,\n FadeOutLeft,\n interpolate,\n useAnimatedStyle,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { ChevronDown } from './icons/ChevronDown';\nimport { cn } from './utils';\n\nfunction NavigationMenu({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.RootProps & {\n ref?: React.RefObject<NavigationMenuPrimitive.RootRef>;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n className={cn(\n 'relative z-10 flex max-w-max flex-row items-center justify-center',\n className\n )}\n {...props}\n >\n {children}\n {Platform.OS === 'web' && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: NavigationMenuPrimitive.ListProps & {\n ref?: React.RefObject<NavigationMenuPrimitive.ListRef>;\n}) {\n return (\n <NavigationMenuPrimitive.List\n className={cn(\n 'web:group web:list-none flex flex-1 flex-row items-center justify-center gap-1',\n className\n )}\n {...props}\n />\n );\n}\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst navigationMenuTriggerStyle = cva(\n 'web:group web:inline-flex flex-row h-10 native:h-12 native:px-3 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium web:transition-colors web:hover:bg-accent active:bg-accent web:hover:text-accent-foreground web:focus:bg-accent web:focus:text-accent-foreground web:focus:outline-hidden web:disabled:pointer-events-none disabled:opacity-50 web:data-active:bg-accent/50 web:data-[state=open]:bg-accent/50'\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: Omit<NavigationMenuPrimitive.TriggerProps, 'children'> & {\n children?: React.ReactNode;\n ref?: React.RefObject<NavigationMenuPrimitive.TriggerRef>;\n}) {\n const { value } = NavigationMenuPrimitive.useRootContext();\n const { value: itemValue } = NavigationMenuPrimitive.useItemContext();\n\n const progress = useDerivedValue(() =>\n value === itemValue\n ? withTiming(1, { duration: 250 })\n : withTiming(0, { duration: 200 })\n );\n const chevronStyle = useAnimatedStyle(() => ({\n transform: [{ rotate: `${progress.value * 180}deg` }],\n opacity: interpolate(progress.value, [0, 1], [1, 0.8], Extrapolation.CLAMP),\n }));\n\n return (\n <NavigationMenuPrimitive.Trigger\n className={cn(\n navigationMenuTriggerStyle(),\n 'web:group gap-1.5',\n value === itemValue && 'bg-accent',\n className\n )}\n {...props}\n >\n {children}\n <Animated.View style={chevronStyle}>\n <ChevronDown\n size={12}\n className={cn(\n 'text-foreground web:transition web:duration-200 relative h-3 w-3'\n )}\n aria-hidden={true}\n />\n </Animated.View>\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n children,\n portalHost,\n ...props\n}: NavigationMenuPrimitive.ContentProps & {\n portalHost?: string;\n ref?: React.RefObject<NavigationMenuPrimitive.ContentRef>;\n}) {\n const { value } = NavigationMenuPrimitive.useRootContext();\n const { value: itemValue } = NavigationMenuPrimitive.useItemContext();\n return (\n <NavigationMenuPrimitive.Portal hostName={portalHost}>\n <NavigationMenuPrimitive.Content\n className={cn(\n 'native:border native:border-border native:rounded-lg native:shadow-lg native:bg-popover native:text-popover-foreground native:overflow-hidden w-full',\n value === itemValue\n ? 'web:animate-in web:fade-in web:slide-in-from-right-20'\n : 'web:animate-out web:fade-out web:slide-out-to-left-20',\n className\n )}\n {...props}\n >\n <Animated.View\n entering={Platform.OS !== 'web' ? FadeInLeft : undefined}\n exiting={Platform.OS !== 'web' ? FadeOutLeft : undefined}\n >\n {children}\n </Animated.View>\n </NavigationMenuPrimitive.Content>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: NavigationMenuPrimitive.ViewportProps & {\n ref?: React.RefObject<NavigationMenuPrimitive.ViewportRef>;\n}) {\n return (\n <View className={cn('absolute top-full left-0 flex justify-center')}>\n <View\n className={cn(\n 'web:origin-top-center border-border bg-popover text-popover-foreground web:h-(--radix-navigation-menu-viewport-height) web:animate-in web:zoom-in-90 relative mt-1.5 w-full overflow-hidden rounded-md border shadow-lg',\n className\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Viewport />\n </View>\n </View>\n );\n}\n\nfunction NavigationMenuIndicator({\n ref,\n className,\n ...props\n}: NavigationMenuPrimitive.IndicatorProps & {\n ref?: React.RefObject<NavigationMenuPrimitive.IndicatorRef>;\n}) {\n const { value } = NavigationMenuPrimitive.useRootContext();\n const { value: itemValue } = NavigationMenuPrimitive.useItemContext();\n\n return (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n 'top-full z-1 flex h-1.5 items-end justify-center overflow-hidden',\n value === itemValue\n ? 'web:animate-in web:fade-in'\n : 'web:animate-out web:fade-out',\n className\n )}\n {...props}\n >\n <View className=\"bg-border shadow-foreground/5 relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuViewport,\n};\n"],"mappings":";;;;;;;;;;AAgBA,SAAS,eAAe,EACtB,WACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,wBAAwB;EACvB,WAAW,GACT,qEACA,UACD;EACD,GAAI;aAEH,UACA,SAAS,OAAO,SAAS,oBAAC,2BAAyB;GACvB;;AAInC,SAAS,mBAAmB,EAC1B,WACA,GAAG,SAGF;AACD,QACE,oBAAC,wBAAwB;EACvB,WAAW,GACT,kFACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,qBAAqB,wBAAwB;AAEnD,MAAM,6BAA6B,IACjC,0bACD;AAED,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAIF;CACD,MAAM,EAAE,UAAU,wBAAwB,gBAAgB;CAC1D,MAAM,EAAE,OAAO,cAAc,wBAAwB,gBAAgB;CAErE,MAAM,WAAW,sBACf,UAAU,YACN,WAAW,GAAG,EAAE,UAAU,KAAK,CAAC,GAChC,WAAW,GAAG,EAAE,UAAU,KAAK,CAAC,CACrC;CACD,MAAM,eAAe,wBAAwB;EAC3C,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,QAAQ,IAAI,MAAM,CAAC;EACrD,SAAS,YAAY,SAAS,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAI,EAAE,cAAc,MAAM;EAC5E,EAAE;AAEH,QACE,qBAAC,wBAAwB;EACvB,WAAW,GACT,4BAA4B,EAC5B,qBACA,UAAU,aAAa,aACvB,UACD;EACD,GAAI;aAEH,UACD,oBAAC,SAAS;GAAK,OAAO;aACpB,oBAAC;IACC,MAAM;IACN,WAAW,GACT,mEACD;IACD,eAAa;KACb;IACY;GACgB;;AAItC,SAAS,sBAAsB,EAC7B,WACA,UACA,YACA,GAAG,SAIF;CACD,MAAM,EAAE,UAAU,wBAAwB,gBAAgB;CAC1D,MAAM,EAAE,OAAO,cAAc,wBAAwB,gBAAgB;AACrE,QACE,oBAAC,wBAAwB;EAAO,UAAU;YACxC,oBAAC,wBAAwB;GACvB,WAAW,GACT,wJACA,UAAU,YACN,0DACA,yDACJ,UACD;GACD,GAAI;aAEJ,oBAAC,SAAS;IACR,UAAU,SAAS,OAAO,QAAQ,aAAa;IAC/C,SAAS,SAAS,OAAO,QAAQ,cAAc;IAE9C;KACa;IACgB;GACH;;AAIrC,MAAM,qBAAqB,wBAAwB;AAEnD,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAGF;AACD,QACE,oBAAC;EAAK,WAAW,GAAG,+CAA+C;YACjE,oBAAC;GACC,WAAW,GACT,2NACA,UACD;GACD,GAAI;aAEJ,oBAAC,wBAAwB,aAAW;IAC/B;GACF;;AAIX,SAAS,wBAAwB,EAC/B,KACA,WACA,GAAG,SAGF;CACD,MAAM,EAAE,UAAU,wBAAwB,gBAAgB;CAC1D,MAAM,EAAE,OAAO,cAAc,wBAAwB,gBAAgB;AAErE,QACE,oBAAC,wBAAwB;EAClB;EACL,WAAW,GACT,oEACA,UAAU,YACN,+BACA,gCACJ,UACD;EACD,GAAI;YAEJ,oBAAC,QAAK,WAAU,+FAA+F;GAC7E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","names":[],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":[],"mappings":";;;;UAOU,kBAAA;;SAED;EAFC,OAAA,EAAA,MAAA,GAAA,IAAkB;AAEd;UAIJ,kBAAA,CACQ;EACe,QAAA,EADrB,KAAA,CAAM,SACe;EAApB,QAAM,CAAA,EAAN,KAAA,CAAM,aAAA,CAAc,kBAAd,CAAA;EACC,OAAA,CAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,EAAkB,KAAA,CAAM,SAAxB,EAAA,GAAA,IAAA;;UAGV,kBAAA,CAH2C;EAG3C,KAAA,EACD,KADC;EAmEG,OAAA,EAAA,MAAA,GAAc,IAAA;EACzB,UAAA,EAAA,GAAA,GAAA,IAAA;;AAGmB,cAJR,aAAA,SAAsB,KAAA,CAAM,SAIpB,CAHnB,kBAGmB,EAFnB,kBAEmB,CAAA,CAAA;EASoB,WAAA,CAAA,KAAA,EATpB,kBASoB;EAAgB,OAAA,wBAAA,CAAA,KAAA,EAAhB,KAAgB,CAAA,EAAR,OAAQ,CAAA,kBAAA,CAAA;EAAR,iBAAA,CAAA,KAAA,EAOtB,KAPsB,EAAA,SAAA,EAOJ,KAAA,CAAM,SAPF,CAAA,EAAA,IAAA;EAOtB,UAAA,EAAA,GAAA,GAAA,IAAA;EAAkB,MAAM,CAAA,CAAA,EAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAgC3C,OAhC2C,CAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,KAAA,CAAA,WAhC2C,GAgC3C,KAAA,CAAA,YAhC2C,CAAA,OAAA,EAAA,MAAA,GAgC3C,KAAA,CAAA,qBAhC2C,CAAA,GAAA,CAAA,CAAA,GAgC3C,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAAA,IAAA,GAAA,SAAA,CAAA,GAgC3C,oBAAA,CAAA,GAAA,CAAA,OAAA,GAhC2C,IAAA,GAAA,SAAA;;AAgC3C,cAkBK,eAlBL,EAAA,GAAA,GAAA,CAAA,KAAA,EAmB2B,KAnB3B,EAAA,GAAA,KAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorBoundary.js","names":["DefaultErrorFallback: React.FC<ErrorFallbackProps>"],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n// import * as Sentry from '@sentry/nextjs';\nimport { AlertTriangle, RefreshCw, Home } from 'lucide-react';\nimport { Button } from '../../button';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n errorId: string | null;\n}\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n fallback?: React.ComponentType<ErrorFallbackProps>;\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n errorId: string | null;\n resetError: () => void;\n}\n\nconst DefaultErrorFallback: React.FC<ErrorFallbackProps> = ({\n error,\n errorId,\n resetError,\n}) => {\n const isDevelopment = process.env.NODE_ENV === 'development';\n\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md rounded-lg bg-white p-6 text-center shadow-lg\">\n <div className=\"mb-4 flex justify-center\">\n <AlertTriangle className=\"h-12 w-12 text-red-500\" />\n </div>\n\n <h1 className=\"mb-2 text-2xl font-semibold text-gray-900\">\n Une erreur s'est produite\n </h1>\n\n <p className=\"mb-6 text-gray-600\">\n Nous nous excusons pour ce désagrément. Notre équipe a été notifiée et\n travaille à résoudre le problème.\n </p>\n\n {isDevelopment && (\n <div className=\"mb-6 rounded-md bg-red-50 p-4 text-left\">\n <p className=\"mb-2 text-base font-medium text-red-800\">\n Erreur de développement:\n </p>\n <p className=\"font-mono text-sm break-all text-red-700\">\n {error.message}\n </p>\n {errorId && (\n <p className=\"mt-2 text-sm text-red-600\">ID: {errorId}</p>\n )}\n </div>\n )}\n\n <div className=\"flex flex-col justify-center gap-3 sm:flex-row\">\n <Button onPress={resetError} className=\"flex items-center gap-2\">\n <RefreshCw className=\"h-4 w-4\" />\n Réessayer\n </Button>\n\n <Button\n onPress={() => (window.location.href = '/')}\n variant=\"secondary\"\n className=\"flex items-center gap-2\"\n >\n <Home className=\"h-4 w-4\" />\n Accueil\n </Button>\n </div>\n\n {!isDevelopment && errorId && (\n <p className=\"mt-4 text-sm text-gray-500\">Code d'erreur: {errorId}</p>\n )}\n </div>\n </div>\n );\n};\n\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {\n hasError: false,\n error: null,\n errorId: null,\n };\n }\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return {\n hasError: true,\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n // Generate unique error ID\n const errorId = `err_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n // Log to Sentry with additional context\n // Sentry.withScope((scope) => {\n // scope.setTag('errorBoundary', true);\n // scope.setContext('errorInfo', { ...errorInfo });\n // scope.setContext('errorId', { errorId });\n // Sentry.captureException(error);\n // });\n\n // Update state with error ID\n this.setState({ errorId });\n\n // Call custom error handler if provided\n this.props.onError?.(error, errorInfo);\n\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n console.error('ErrorBoundary caught an error:', error, errorInfo);\n }\n }\n\n resetError = () => {\n this.setState({\n hasError: false,\n error: null,\n errorId: null,\n });\n };\n\n render() {\n if (this.state.hasError && this.state.error) {\n const FallbackComponent = this.props.fallback || DefaultErrorFallback;\n\n return (\n <FallbackComponent\n error={this.state.error}\n errorId={this.state.errorId}\n resetError={this.resetError}\n />\n );\n }\n\n return this.props.children;\n }\n}\n\n// Hook for functional components to trigger error boundary\nexport const useErrorHandler = () => {\n return React.useCallback((error: Error) => {\n // This will be caught by the nearest error boundary\n throw error;\n }, []);\n};\n\nexport type { ErrorBoundaryProps, ErrorFallbackProps };\n"],"mappings":";;;;;;;;AAyBA,MAAMA,wBAAsD,EAC1D,OACA,SACA,iBACI;AAGJ,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAI,WAAU;eACb,oBAAC,iBAAc,WAAU,2BAA2B;MAChD;IAEN,oBAAC;KAAG,WAAU;eAA4C;MAErD;IAEL,oBAAC;KAAE,WAAU;eAAqB;MAG9B;IAGF,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAE,WAAU;iBAA0C;QAEnD;MACJ,oBAAC;OAAE,WAAU;iBACV,MAAM;QACL;MACH,WACC,qBAAC;OAAE,WAAU;kBAA4B,QAAK;QAAY;;MAExD;IAGR,qBAAC;KAAI,WAAU;gBACb,qBAAC;MAAO,SAAS;MAAY,WAAU;iBACrC,oBAAC,aAAU,WAAU,YAAY;OAE1B,EAET,qBAAC;MACC,eAAgB,OAAO,SAAS,OAAO;MACvC,SAAQ;MACR,WAAU;iBAEV,oBAAC,QAAK,WAAU,YAAY;OAErB;MACL;IAEL;;IAGG;GACF;;AAIV,IAAa,gBAAb,cAAmC,MAAM,UAGvC;CACA,YAAY,OAA2B;AACrC,QAAM,MAAM;AACZ,OAAK,QAAQ;GACX,UAAU;GACV,OAAO;GACP,SAAS;GACV;;CAGH,OAAO,yBAAyB,OAA2C;AACzE,SAAO;GACL,UAAU;GACV;GACD;;CAGH,kBAAkB,OAAc,WAA4B;EAE1D,MAAM,UAAU,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,EAAE;AAW5E,OAAK,SAAS,EAAE,SAAS,CAAC;AAG1B,OAAK,MAAM,UAAU,OAAO,UAAU;AAIpC,UAAQ,MAAM,kCAAkC,OAAO,UAAU;;CAIrE,mBAAmB;AACjB,OAAK,SAAS;GACZ,UAAU;GACV,OAAO;GACP,SAAS;GACV,CAAC;;CAGJ,SAAS;AACP,MAAI,KAAK,MAAM,YAAY,KAAK,MAAM,MAGpC,QACE,oBAHwB,KAAK,MAAM,YAAY;GAI7C,OAAO,KAAK,MAAM;GAClB,SAAS,KAAK,MAAM;GACpB,YAAY,KAAK;IACjB;AAIN,SAAO,KAAK,MAAM;;;AAKtB,MAAa,wBAAwB;AACnC,QAAO,MAAM,aAAa,UAAiB;AAEzC,QAAM;IACL,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListPage.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":[],"mappings":";;;;iBAYgB;;;;;;;;;;;;;;;;;;;;;GAqBb,cAAc,KAAE,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListPage.js","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":["import React from 'react';\nimport Link from 'next/link';\nimport { AlertTriangle, Loader2, Plus, RefreshCcw } from 'lucide-react';\nimport { Button } from '../../button';\nimport { Card, CardContent } from '../../card';\nimport { VStack, HStack } from '../../stack';\nimport { Separator } from '../../separator';\nimport { SearchAndFilter } from '../../molecules/SearchAndFilter';\nimport { Pagination } from '../../atoms/Pagination';\nimport type { ListPageProps } from './types';\nimport type { FilterOption } from '../../atoms/FilterSelect/types';\n\nexport function ListPage<T>({\n title,\n description,\n header,\n items,\n totalItems,\n totalPages,\n isLoading,\n isFetching,\n error,\n listState,\n searchPlaceholder,\n filters = [],\n onRefresh,\n primaryAction,\n toolbar,\n renderItem,\n renderEmpty,\n renderStats,\n className = '',\n itemClassName = '',\n}: ListPageProps<T>) {\n const {\n searchQuery,\n setSearchQuery,\n filters: filterValues,\n setFilter,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage,\n } = listState;\n\n // Loading state with no items\n if (isLoading && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex items-center gap-4 p-6\">\n <Loader2 className=\"text-primary h-8 w-8 animate-spin\" />\n <div>\n <h3 className=\"font-medium\">Chargement...</h3>\n <p className=\"text-muted-foreground text-base\">\n Récupération des données en cours\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Error state with no items\n if (error && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-6 text-center\">\n <AlertTriangle className=\"text-destructive h-12 w-12\" />\n <div>\n <h3 className=\"font-medium\">Erreur de chargement</h3>\n <p className=\"text-muted-foreground text-base\">\n {error.message || 'Une erreur est survenue'}\n </p>\n </div>\n {onRefresh && (\n <Button onPress={onRefresh} variant=\"outline\" size=\"sm\">\n <RefreshCcw className=\"mr-2 h-4 w-4\" />\n Réessayer\n </Button>\n )}\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Prepare filter configurations\n const filterConfigs = filters.map((filter) => ({\n key: filter.key,\n label: filter.label,\n value: filterValues[filter.key] || '',\n options: filter.options,\n onChange: (value: FilterOption | undefined) => {\n setFilter(filter.key, value?.value || '');\n },\n showCounts: filter.showCounts,\n }));\n\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {/* Header */}\n {header ? (\n header\n ) : (\n <HStack className=\"items-center justify-between\">\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n\n <HStack className=\"items-center gap-4\">\n {toolbar}\n {(isLoading || isFetching) && (\n <div className=\"text-muted-foreground flex items-center gap-2 text-base\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n <span className=\"hidden sm:inline\">Mise à jour...</span>\n </div>\n )}\n\n {onRefresh && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onPress={onRefresh}\n disabled={Boolean(isLoading)}\n aria-label=\"Rafraîchir\"\n >\n <RefreshCcw\n className={`mr-2 h-4 w-4 ${isLoading || isFetching ? 'animate-spin' : ''}`}\n />\n <span className=\"hidden sm:inline\">Rafraîchir</span>\n </Button>\n )}\n\n {primaryAction && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n </Link>\n ) : (\n <Button onPress={primaryAction.onClick}>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n )}\n </>\n )}\n </HStack>\n </HStack>\n )}\n\n {/* Stats (optional) */}\n {renderStats && (\n <>\n {renderStats(items)}\n <Separator />\n </>\n )}\n\n {/* Search and Filters */}\n <SearchAndFilter\n searchValue={searchQuery}\n onSearchChange={setSearchQuery}\n searchPlaceholder={searchPlaceholder}\n filters={filterConfigs}\n isLoading={isLoading}\n />\n\n {/* Content */}\n {items.length === 0 && !isLoading ? (\n renderEmpty ? (\n renderEmpty()\n ) : (\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-8 text-center\">\n <div className=\"bg-muted flex h-12 w-12 items-center justify-center rounded-full\">\n <div className=\"bg-muted-foreground/20 h-6 w-6 rounded-full\" />\n </div>\n <div>\n <h3 className=\"font-medium\">Aucun élément trouvé</h3>\n <p className=\"text-muted-foreground text-base\">\n {searchQuery || Object.values(filterValues).some((v) => v)\n ? 'Essayez de modifier vos critères de recherche'\n : 'Commencez par créer votre premier élément'}\n </p>\n </div>\n {primaryAction &&\n !searchQuery &&\n !Object.values(filterValues).some((v) => v) && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n </Link>\n ) : (\n <Button onPress={primaryAction.onClick}>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n )}\n </>\n )}\n </CardContent>\n </Card>\n )\n ) : (\n <>\n {/* Items List */}\n <div className={`space-y-4 ${itemClassName}`}>\n {items.map((item, index) => renderItem(item, index))}\n </div>\n\n {/* Pagination */}\n {totalPages > 1 && (\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n totalItems={totalItems}\n itemsPerPage={itemsPerPage}\n onPageChange={setCurrentPage}\n onItemsPerPageChange={setItemsPerPage}\n disabled={isLoading}\n />\n )}\n </>\n )}\n </VStack>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/types.ts"],"sourcesContent":[],"mappings":";;;;;;UAGiB,cAAA;;;EAAA,OAAA,EAGN,YAHoB,EAAA;EAOd,UAAA,CAAA,EAAA,OAAa;;AAOrB,UAPQ,aAOR,CAAA,IAAA,OAAA,CAAA,CAAA;EAKC,KAAA,EAAA,MAAA;EAGG,WAAA,CAAA,EAAA,MAAA;EAID,MAAA,CAAA,EAfD,SAeC;EAQD,KAAA,EApBF,CAoBE,EAAA;EAEC,UAAA,EAAA,MAAA;EAGS,UAAA,EAAA,MAAA;EAAqB,SAAA,EAAA,OAAA;EACpB,UAAA,CAAA,EAAA,OAAA;EACE,KAAA,CAAA,EAtBd,KAsBc,GAAA,IAAA;EAAQ,SAAA,EAnBnB,kBAmBmB;EAAS,iBAAA,CAAA,EAAA,MAAA;YAf7B;;;;;;WAQD;;YAEC;qBAGS,qBAAqB;sBACpB;wBACE,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-header.d.ts","names":[],"sources":["../../ui/page-header.tsx"],"sourcesContent":[],"mappings":";;;;;;cAMM;;IAWJ,+BAAA,CAAA;UAEe,eAAA,SAAwB,oBAAoB;EAbvD,UAAA,CAAA,EAcS,OAAA,CAAM,SAHnB;EAEe,KAAA,EAER,OAAA,CAAM,SAFkB;EAA4B,QAAA,CAAA,EAGhD,OAAA,CAAM,SAH0C;EAC9C,OAAM,CAAA,EAGT,OAAA,CAAM,SAHG;EACZ,SAAM,CAAA,EAAA,MAAA;;AAEH,iBAII,UAAA,CAJE;EAAA,UAAA;EAAA,KAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA;AAAA,CAAA,EAWf,eAXe,CAAA,EAWA,mBAAA,CAAA,GAAA,CAAA,OAXA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-header.js","names":[],"sources":["../../ui/page-header.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from './utils';\nimport { HStack, VStack } from './stack';\nimport { H1, P } from './typography';\n\nconst headerVariants = cva('', {\n variants: {\n spacing: {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n },\n },\n defaultVariants: {\n spacing: 'md',\n },\n});\n\nexport interface PageHeaderProps extends VariantProps<typeof headerVariants> {\n breadcrumb?: React.ReactNode;\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function PageHeader({\n breadcrumb,\n title,\n subtitle,\n actions,\n spacing,\n className,\n}: PageHeaderProps) {\n return (\n <VStack className={cn(headerVariants({ spacing }), className)}>\n {breadcrumb}\n <HStack className=\"items-start justify-between\">\n <VStack className=\"gap-1\">\n <H1 className=\"text-2xl font-semibold md:text-3xl\">{title}</H1>\n {subtitle ? (\n <P className=\"text-muted-foreground text-base\">{subtitle}</P>\n ) : null}\n </VStack>\n {actions ? (\n <HStack className=\"flex items-center gap-2\">{actions}</HStack>\n ) : null}\n </HStack>\n </VStack>\n );\n}\n"],"mappings":";;;;;;;;AAMA,MAAM,iBAAiB,IAAI,IAAI;CAC7B,UAAU,EACR,SAAS;EACP,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACD,iBAAiB,EACf,SAAS,MACV;CACF,CAAC;AAUF,SAAgB,WAAW,EACzB,YACA,OACA,UACA,SACA,SACA,aACkB;AAClB,QACE,qBAAC;EAAO,WAAW,GAAG,eAAe,EAAE,SAAS,CAAC,EAAE,UAAU;aAC1D,YACD,qBAAC;GAAO,WAAU;cAChB,qBAAC;IAAO,WAAU;eAChB,oBAAC;KAAG,WAAU;eAAsC;MAAW,EAC9D,WACC,oBAAC;KAAE,WAAU;eAAmC;MAAa,GAC3D;KACG,EACR,UACC,oBAAC;IAAO,WAAU;cAA2B;KAAiB,GAC5D;IACG;GACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"password-strength.d.ts","names":[],"sources":["../../ui/password-strength.tsx"],"sourcesContent":[],"mappings":";;;;cAMa,gBAAc,CAAA,CAAA;iBASX,mBAAA;;EATH,QAAA,EAAA,MAAA,EAMoD;EAGjD,OAAA,EAAA,OAAA;AA+Cf,CAAA;AAOD,UALU,qBAAA,CAKsB;EAC9B,QAAA,EAAA,MAAA;EACA,YAAA,CAAA,EAAA,OAAA;;AACsB,iBAHR,gBAAA,CAGQ;EAAA,QAAA;EAAA;AAAA,CAAA,EAArB,qBAAqB,CAAA,EAAA,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"password-strength.js","names":["z\n .string","feedback: string[]","score","Text"],"sources":["../../ui/password-strength.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { HStack, VStack } from './stack';\nimport { Text } from './text';\nimport { z } from 'zod';\n\nexport const passwordSchema = z\n .string()\n .min(8, 'Password must be at least 8 characters')\n .max(128, 'Password is too long')\n .regex(/(?=.*[a-z])/, 'Password must contain at least one lowercase letter')\n .regex(/(?=.*[A-Z])/, 'Password must contain at least one uppercase letter')\n .regex(/(?=.*\\d)/, 'Password must contain at least one number');\n\n// Password strength indicator\nexport function getPasswordStrength(password: string): {\n score: number;\n feedback: string[];\n isValid: boolean;\n} {\n const feedback: string[] = [];\n let score = 0;\n\n if (password.length >= 8) {\n score += 1;\n } else {\n feedback.push('At least 8 characters');\n }\n\n if (/[a-z]/.test(password)) {\n score += 1;\n } else {\n feedback.push('One lowercase letter');\n }\n\n if (/[A-Z]/.test(password)) {\n score += 1;\n } else {\n feedback.push('One uppercase letter');\n }\n\n if (/\\d/.test(password)) {\n score += 1;\n } else {\n feedback.push('One number');\n }\n\n if (/[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/.test(password)) {\n score += 1;\n }\n\n if (password.length >= 12) {\n score += 1;\n }\n\n const isValid = passwordSchema.safeParse(password).success;\n\n return {\n score: Math.min(score, 5),\n feedback,\n isValid,\n };\n}\n\ninterface PasswordStrengthProps {\n password: string;\n showFeedback?: boolean;\n}\n\nexport function PasswordStrength({\n password,\n showFeedback = true,\n}: PasswordStrengthProps) {\n const { score, feedback, isValid } = getPasswordStrength(password);\n\n if (!password) return null;\n\n const getStrengthColor = (score: number) => {\n if (score <= 1) return '#ef4444'; // red-500\n if (score <= 2) return '#f97316'; // orange-500\n if (score <= 3) return '#eab308'; // yellow-500\n if (score <= 4) return '#22c55e'; // green-500\n return '#16a34a'; // green-600\n };\n\n const getStrengthText = (score: number) => {\n if (score <= 1) return 'Very Weak';\n if (score <= 2) return 'Weak';\n if (score <= 3) return 'Fair';\n if (score <= 4) return 'Good';\n return 'Strong';\n };\n\n return (\n <VStack className=\"gap-y-2\">\n {/* Strength Bar */}\n <VStack className=\"gap-y-1\">\n <HStack className=\"items-center justify-between\">\n <Text className=\"text-muted-foreground text-xs\">\n Password Strength\n </Text>\n <Text\n className=\"text-xs font-medium\"\n style={{ color: getStrengthColor(score) }}\n >\n {getStrengthText(score)}\n </Text>\n </HStack>\n\n <View className=\"h-2 overflow-hidden rounded-full bg-gray-200\">\n <View\n className=\"h-full rounded-full transition-all duration-300\"\n style={{\n width: `${(score / 5) * 100}%`,\n backgroundColor: getStrengthColor(score),\n }}\n />\n </View>\n </VStack>\n\n {/* Feedback */}\n {showFeedback && feedback.length > 0 && (\n <VStack className=\"gap-y-1\">\n <Text className=\"text-muted-foreground text-xs\">Required:</Text>\n {feedback.map((item, index) => (\n <HStack key={index} className=\"items-center gap-x-2\">\n <View className=\"bg-muted-foreground h-1 w-1 rounded-full\" />\n <Text className=\"text-muted-foreground text-xs\">{item}</Text>\n </HStack>\n ))}\n </VStack>\n )}\n\n {/* Valid indicator */}\n {isValid && (\n <HStack className=\"items-center gap-x-2\">\n <View className=\"h-2 w-2 rounded-full bg-green-500\" />\n <Text className=\"text-xs text-green-600\">Meets requirements</Text>\n </HStack>\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;;;;AAMA,MAAa,iBAAiBA,QACnB,CACR,IAAI,GAAG,yCAAyC,CAChD,IAAI,KAAK,uBAAuB,CAChC,MAAM,eAAe,sDAAsD,CAC3E,MAAM,eAAe,sDAAsD,CAC3E,MAAM,YAAY,4CAA4C;AAGjE,SAAgB,oBAAoB,UAIlC;CACA,MAAMC,WAAqB,EAAE;CAC7B,IAAI,QAAQ;AAEZ,KAAI,SAAS,UAAU,EACrB,UAAS;KAET,UAAS,KAAK,wBAAwB;AAGxC,KAAI,QAAQ,KAAK,SAAS,CACxB,UAAS;KAET,UAAS,KAAK,uBAAuB;AAGvC,KAAI,QAAQ,KAAK,SAAS,CACxB,UAAS;KAET,UAAS,KAAK,uBAAuB;AAGvC,KAAI,KAAK,KAAK,SAAS,CACrB,UAAS;KAET,UAAS,KAAK,aAAa;AAG7B,KAAI,sCAAsC,KAAK,SAAS,CACtD,UAAS;AAGX,KAAI,SAAS,UAAU,GACrB,UAAS;CAGX,MAAM,UAAU,eAAe,UAAU,SAAS,CAAC;AAEnD,QAAO;EACL,OAAO,KAAK,IAAI,OAAO,EAAE;EACzB;EACA;EACD;;AAQH,SAAgB,iBAAiB,EAC/B,UACA,eAAe,QACS;CACxB,MAAM,EAAE,OAAO,UAAU,YAAY,oBAAoB,SAAS;AAElE,KAAI,CAAC,SAAU,QAAO;CAEtB,MAAM,oBAAoB,YAAkB;AAC1C,MAAIC,WAAS,EAAG,QAAO;AACvB,MAAIA,WAAS,EAAG,QAAO;AACvB,MAAIA,WAAS,EAAG,QAAO;AACvB,MAAIA,WAAS,EAAG,QAAO;AACvB,SAAO;;CAGT,MAAM,mBAAmB,YAAkB;AACzC,MAAIA,WAAS,EAAG,QAAO;AACvB,MAAIA,WAAS,EAAG,QAAO;AACvB,MAAIA,WAAS,EAAG,QAAO;AACvB,MAAIA,WAAS,EAAG,QAAO;AACvB,SAAO;;AAGT,QACE,qBAAC;EAAO,WAAU;;GAEhB,qBAAC;IAAO,WAAU;eAChB,qBAAC;KAAO,WAAU;gBAChB,oBAACC;MAAK,WAAU;gBAAgC;OAEzC,EACP,oBAACA;MACC,WAAU;MACV,OAAO,EAAE,OAAO,iBAAiB,MAAM,EAAE;gBAExC,gBAAgB,MAAM;OAClB;MACA,EAET,oBAAC;KAAK,WAAU;eACd,oBAAC;MACC,WAAU;MACV,OAAO;OACL,OAAO,GAAI,QAAQ,IAAK,IAAI;OAC5B,iBAAiB,iBAAiB,MAAM;OACzC;OACD;MACG;KACA;GAGR,gBAAgB,SAAS,SAAS,KACjC,qBAAC;IAAO,WAAU;eAChB,oBAACA;KAAK,WAAU;eAAgC;MAAgB,EAC/D,SAAS,KAAK,MAAM,UACnB,qBAAC;KAAmB,WAAU;gBAC5B,oBAAC,QAAK,WAAU,6CAA6C,EAC7D,oBAACA;MAAK,WAAU;gBAAiC;OAAY;OAFlD,MAGJ,CACT;KACK;GAIV,WACC,qBAAC;IAAO,WAAU;eAChB,oBAAC,QAAK,WAAU,sCAAsC,EACtD,oBAACA;KAAK,WAAU;eAAyB;MAAyB;KAC3D;;GAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.d.ts","names":[],"sources":["../../ui/popover.tsx"],"sourcesContent":[],"mappings":";;;;;;cAMM,gBAAO,0BAAwB,cAAA,CAAxB,SAAA;;;;yBAAA,cAAA,CAAA,IAAA;AAN8C,cAQrD,cAF+B,SAEjB,yBAFiB,CAEjB,IAFiB,CAEU,cAAA,CAA3B,cAAA,GAAA,MAAA,CAAA,aAFiB,CAEjB,cAAA,CAAA,IAAA,CAFiB,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAxB;CAAA,GAAA;;SAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,GAAA,IAAA;CAAA,uBAAA,oCAAA,CAAA;AAAA,iBAIJ,cAAA,CAFsC;EAAA,SAAA;EAAA,KAAA;EAAA,UAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAQ5C,uBAAA,CAAiB,YAR2B,GAAA;EAAA,GAAA,CAAA,EASvC,KAAA,CAAM,SATM,CASI,uBAAA,CAAiB,UATrB,CAAA;EAAA,UAAA,CAAA,EAAA,MAAA;CAAA,CAAA,EAWnB,oBAAA,CAAA,GAAA,CAAA,OAXmB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.js","names":[],"sources":["../../ui/popover.tsx"],"sourcesContent":["import * as PopoverPrimitive from '@rn-primitives/popover';\nimport { Platform, StyleSheet } from 'react-native';\nimport Animated, { FadeIn, FadeOut } from 'react-native-reanimated';\nimport { cn } from './utils';\nimport { TextClassContext } from './text';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n portalHost,\n ...props\n}: PopoverPrimitive.ContentProps & {\n ref?: React.RefObject<PopoverPrimitive.ContentRef>;\n portalHost?: string;\n}) {\n return (\n <PopoverPrimitive.Portal hostName={portalHost}>\n <PopoverPrimitive.Overlay\n style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}\n >\n <Animated.View entering={FadeIn.duration(200)} exiting={FadeOut}>\n <TextClassContext.Provider value=\"text-popover-foreground\">\n <PopoverPrimitive.Content\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'border-border bg-popover shadow-foreground/5 web:cursor-auto web:outline-hidden web:animate-in web:fade-in-0 web:zoom-in-95 web:data-[side=bottom]:slide-in-from-top-2 web:data-[side=left]:slide-in-from-right-2 web:data-[side=right]:slide-in-from-left-2 web:data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md',\n className\n )}\n {...props}\n />\n </TextClassContext.Provider>\n </Animated.View>\n </PopoverPrimitive.Overlay>\n </PopoverPrimitive.Portal>\n );\n}\n\nexport { Popover, PopoverContent, PopoverTrigger };\n"],"mappings":";;;;;;;;AAMA,MAAM,UAAU,iBAAiB;AAEjC,MAAM,iBAAiB,iBAAiB;AAExC,SAAS,eAAe,EACtB,WACA,QAAQ,UACR,aAAa,GACb,YACA,GAAG,SAIF;AACD,QACE,oBAAC,iBAAiB;EAAO,UAAU;YACjC,oBAAC,iBAAiB;GAChB,OAAO,SAAS,OAAO,QAAQ,WAAW,eAAe;aAEzD,oBAAC,SAAS;IAAK,UAAU,OAAO,SAAS,IAAI;IAAE,SAAS;cACtD,oBAAC,iBAAiB;KAAS,OAAM;eAC/B,oBAAC,iBAAiB;MACT;MACK;MACZ,WAAW,GACT,qVACA,UACD;MACD,GAAI;OACJ;MACwB;KACd;IACS;GACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.d.ts","names":[],"sources":["../../ui/progress.tsx"],"sourcesContent":[],"mappings":";;;;;iBAYS,QAAA;;;;;AAXsB,GAgB5B,iBAAA,CAAkB;QACb,OAAA,CAAM,UAAU,iBAAA,CAAkB;;AAjBX,CAAA,CAAA,EAmB9B,mBAAA,CAAA,GAAA,CAAA,OARgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.js","names":[],"sources":["../../ui/progress.tsx"],"sourcesContent":["import * as ProgressPrimitive from '@rn-primitives/progress';\nimport * as React from 'react';\nimport { Platform, View } from 'react-native';\nimport Animated, {\n Extrapolation,\n interpolate,\n useAnimatedStyle,\n useDerivedValue,\n withSpring,\n} from 'react-native-reanimated';\nimport { cn } from './utils';\n\nfunction Progress({\n className,\n value,\n indicatorClassName,\n ...props\n}: ProgressPrimitive.RootProps & {\n ref?: React.RefObject<ProgressPrimitive.RootRef>;\n indicatorClassName?: string;\n}) {\n return (\n <ProgressPrimitive.Root\n className={cn(\n 'bg-secondary relative h-4 w-full overflow-hidden rounded-full',\n className\n )}\n {...props}\n >\n <Indicator value={value} className={indicatorClassName} />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n\nfunction Indicator({\n value,\n className,\n}: {\n value: number | undefined | null;\n className?: string;\n}) {\n const progress = useDerivedValue(() => value ?? 0);\n\n const indicator = useAnimatedStyle(() => {\n return {\n width: withSpring(\n `${interpolate(progress.value, [0, 100], [1, 100], Extrapolation.CLAMP)}%`,\n { overshootClamping: true }\n ),\n };\n });\n\n if (Platform.OS === 'web') {\n return (\n <View\n className={cn(\n 'bg-primary web:transition-all h-full w-full flex-1',\n className\n )}\n style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}\n >\n <ProgressPrimitive.Indicator\n className={cn('h-full w-full', className)}\n />\n </View>\n );\n }\n\n return (\n <ProgressPrimitive.Indicator asChild>\n <Animated.View\n style={indicator}\n className={cn('bg-foreground h-full', className)}\n />\n </ProgressPrimitive.Indicator>\n );\n}\n"],"mappings":";;;;;;;;AAYA,SAAS,SAAS,EAChB,WACA,OACA,oBACA,GAAG,SAIF;AACD,QACE,oBAAC,kBAAkB;EACjB,WAAW,GACT,iEACA,UACD;EACD,GAAI;YAEJ,oBAAC;GAAiB;GAAO,WAAW;IAAsB;GACnC;;AAM7B,SAAS,UAAU,EACjB,OACA,aAIC;CACD,MAAM,WAAW,sBAAsB,SAAS,EAAE;CAElD,MAAM,YAAY,uBAAuB;AACvC,SAAO,EACL,OAAO,WACL,GAAG,YAAY,SAAS,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,MAAM,CAAC,IACxE,EAAE,mBAAmB,MAAM,CAC5B,EACF;GACD;AAEF,KAAI,SAAS,OAAO,MAClB,QACE,oBAAC;EACC,WAAW,GACT,sDACA,UACD;EACD,OAAO,EAAE,WAAW,eAAe,OAAO,SAAS,GAAG,KAAK;YAE3D,oBAAC,kBAAkB,aACjB,WAAW,GAAG,iBAAiB,UAAU,GACzC;GACG;AAIX,QACE,oBAAC,kBAAkB;EAAU;YAC3B,oBAAC,SAAS;GACR,OAAO;GACP,WAAW,GAAG,wBAAwB,UAAU;IAChD;GAC0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-group.d.ts","names":[],"sources":["../../ui/radio-group.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,UAAA;;;GAGN,mBAAA,CAAoB,YACrB,KAAA,CAAM,cAAc,mBAAA,CAAoB,WAAQ,mBAAA,CAAA,GAAA,CAAA;iBAMzC,cAAA;;;GAGN,mBAAA,CAAoB,YACrB,KAAA,CAAM,cAAc,mBAAA,CAAoB,WAAQ,mBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-group.js","names":[],"sources":["../../ui/radio-group.tsx"],"sourcesContent":["import { cn } from './utils';\nimport * as RadioGroupPrimitive from '@rn-primitives/radio-group';\nimport { Platform } from 'react-native';\n\nfunction RadioGroup({\n className,\n ...props\n}: RadioGroupPrimitive.RootProps &\n React.RefAttributes<RadioGroupPrimitive.RootRef>) {\n return (\n <RadioGroupPrimitive.Root className={cn('gap-3', className)} {...props} />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: RadioGroupPrimitive.ItemProps &\n React.RefAttributes<RadioGroupPrimitive.ItemRef>) {\n return (\n <RadioGroupPrimitive.Item\n className={cn(\n 'border-input dark:bg-input/30 aspect-square size-4 shrink-0 items-center justify-center rounded-full border shadow-2xs shadow-black/5',\n Platform.select({\n web: 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive focus-visible:border-ring focus-visible:ring-ring/50 outline-hidden transition-all focus-visible:ring-[3px] disabled:cursor-not-allowed',\n }),\n props.disabled && 'opacity-50',\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"bg-primary size-2 rounded-full\" />\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"mappings":";;;;;;AAIA,SAAS,WAAW,EAClB,WACA,GAAG,SAE+C;AAClD,QACE,oBAAC,oBAAoB;EAAK,WAAW,GAAG,SAAS,UAAU;EAAE,GAAI;GAAS;;AAI9E,SAAS,eAAe,EACtB,WACA,GAAG,SAE+C;AAClD,QACE,oBAAC,oBAAoB;EACnB,WAAW,GACT,yIACA,SAAS,OAAO,EACd,KAAK,kPACN,CAAC,EACF,MAAM,YAAY,cAClB,UACD;EACD,GAAI;YAEJ,oBAAC,oBAAoB,aAAU,WAAU,mCAAmC;GACnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.d.ts","names":[],"sources":["../../ui/select.tsx"],"sourcesContent":[],"mappings":";;;;;;;KASK,MAAA,GAAS,sBAAA,CAAgB;cAExB,QAAM,OAAA,CAAA,0BAAuB,cAAA,CAAvB,SAAA;;;EAFP,KAAA,CAAA,EAEO,sBAAA,CAAA,MAFkB;EAExB,YAA6B,CAAA,+BAAA;EAAA,aAAvB,CAAA,EAAA,CAAA,MAAA,+BAAA,EAAA,GAAA,IAAA;EAAA,YAAA,CAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;;;;;CAAA,wBAAA,KAAA,CAAA,CAAA;cAEN,WAFM,EAEK,OAAA,CAAA,yBAFL,CAE6B,cAAA,CAAxB,SAAA,GAFL;EAEN,OAAA,CAAA,EAAA,OAAmC;CAAA,wBAAxB,KAAA,CAAA,CAAA;cAEX,aAAW,OAAA,CAAA,0BAAwB,cAAA,CAAxB,SAAA;;CAFA,GAAA;EAAA,WAAA,EAAA,MAAA;AAAA,CAAA,wBAEwB,CAAxB,cAAA,CAAA,IAAA,CAAwB,CAAA;iBAEhC,aAAA,CAFQ;EAAA,GAAA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAOd,sBAAA,CAAgB,YAPF,GAAA;EAAA,GAAA,CAAA,EAQT,OAAA,CAAM,SARG,CAQO,sBAAA,CAAgB,UARvB,CAAA;aASJ,OAAA,CAAM;CATF,CAAA,EAUhB,oBAAA,CAAA,GAAA,CAAA,OAVgB;;AAAA;;iBAkCR,oBAAA,CA9BP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiCC,sBAAA,CAAgB,mBAjCjB,CAAA,EAiCoC,oBAAA,CAAA,GAAA,CAAA,OAAA,GAjCpC,IAAA;;;;iBAqDO,sBAAA,CAjDK;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoDX,sBAAA,CAAgB,qBApDL,CAAA,EAoD0B,oBAAA,CAAA,GAAA,CAAA,OAAA,GApD1B,IAAA;iBAqEL,aAAA,CApEU;EAAA,SAAA;EAAA,QAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EA0EhB,sBAAA,CAAgB,YA1EA,GAAA;EAClB,GAAA,CAAA,EA0EO,OAAA,CAAM,SA1Eb,CA0EuB,sBAAA,CAAgB,UA1EvC,CAAA;EAAA,SAAA,CAAA,EAAA,MAAA;EAwBQ,UAAA,CAAA,EAAA,MAAA;CACP,CAAA,EAoDD,oBAAA,CAAA,GAAA,CAAA,OApDC;iBA4FO,WAAA,CA1FU;EAAA,SAAA;EAAA,GAAA;CAAA,EA6FhB,sBAAA,CAAgB,UA7FA,GAAA;EAAmB,GAAA,CAAA,EA8F9B,OAAA,CAAM,SA9FwB,CA8Fd,sBAAA,CAAgB,QA9FF,CAAA;CAAA,CAAA,EA+FrC,oBAAA,CAAA,GAAA,CAAA,OA/FqC;AAAA,iBA2G7B,UAAA,CAvFA;EAAsB,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EA2F5B,sBAAA,CAAgB,SA3FY,GAAA;EAC7B,GAAA,CAAA,EA2FM,OAAA,CAAM,SA3FZ,CA2FsB,sBAAA,CAAgB,OA3FtC,CAAA;CAEC,CAAA,EA0FF,oBAAA,CAAA,GAAA,CAAA,OA1FkB;iBAkHV,eAAA,CAlH+B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAqHrC,sBAAA,CAAgB,cArHqB,GAAA;EAAA,GAAA,CAAA,EAsHhC,OAAA,CAAM,SAtH0B,CAsHhB,sBAAA,CAAgB,YAtHA,CAAA;AAAA,CAAA,CAAA,EAuHvC,oBAAA,CAAA,GAAA,CAAA,OAtGqB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.js","names":[],"sources":["../../ui/select.tsx"],"sourcesContent":["import * as SelectPrimitive from '@rn-primitives/select';\nimport * as React from 'react';\nimport { Platform, StyleSheet, View } from 'react-native';\nimport Animated, { FadeIn, FadeOut } from 'react-native-reanimated';\nimport { Check } from './icons/Check';\nimport { ChevronDown } from './icons/ChevronDown';\nimport { ChevronUp } from './icons/ChevronUp';\nimport { cn } from './utils';\n\ntype Option = SelectPrimitive.Option;\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nfunction SelectTrigger({\n ref,\n className,\n children,\n ...props\n}: SelectPrimitive.TriggerProps & {\n ref?: React.RefObject<SelectPrimitive.TriggerRef>;\n children?: React.ReactNode;\n}) {\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'native:h-12 border-input bg-background text-muted-foreground web:ring-offset-background web:focus:outline-hidden web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 flex h-10 flex-row items-center justify-between rounded-md border px-3 py-2 text-sm [&>span]:line-clamp-1',\n props.disabled && 'web:cursor-not-allowed opacity-50',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={16}\n aria-hidden={true}\n className=\"text-foreground opacity-50\"\n />\n </SelectPrimitive.Trigger>\n );\n}\n\n/**\n * Platform: WEB ONLY\n */\nfunction SelectScrollUpButton({\n className,\n ...props\n}: SelectPrimitive.ScrollUpButtonProps) {\n if (Platform.OS !== 'web') {\n return null;\n }\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n 'web:cursor-default flex items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronUp size={14} className=\"text-foreground\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\n/**\n * Platform: WEB ONLY\n */\nfunction SelectScrollDownButton({\n className,\n ...props\n}: SelectPrimitive.ScrollDownButtonProps) {\n if (Platform.OS !== 'web') {\n return null;\n }\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n 'web:cursor-default flex items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDown size={14} className=\"text-foreground\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n portalHost,\n ...props\n}: SelectPrimitive.ContentProps & {\n ref?: React.RefObject<SelectPrimitive.ContentRef>;\n className?: string;\n portalHost?: string;\n}) {\n const { open } = SelectPrimitive.useRootContext();\n\n return (\n <SelectPrimitive.Portal hostName={portalHost}>\n <SelectPrimitive.Overlay\n style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}\n >\n <Animated.View className=\"z-50\" entering={FadeIn} exiting={FadeOut}>\n <SelectPrimitive.Content\n className={cn(\n 'border-border bg-popover shadow-foreground/10 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-32 rounded-md border px-1 py-2 shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n open\n ? 'web:animate-in web:fade-in-0 web:zoom-in-95'\n : 'web:animate-out web:fade-out-0 web:zoom-out-95',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </Animated.View>\n </SelectPrimitive.Overlay>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.LabelProps & {\n ref?: React.RefObject<SelectPrimitive.LabelRef>;\n}) {\n return (\n <SelectPrimitive.Label\n className={cn(\n 'native:pb-2 native:pl-10 native:text-base text-popover-foreground py-1.5 pr-2 pl-8 text-sm font-semibold',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.ItemProps & {\n ref?: React.RefObject<SelectPrimitive.ItemRef>;\n}) {\n return (\n <SelectPrimitive.Item\n className={cn(\n 'web:group native:py-2 native:pl-10 active:bg-accent web:cursor-default web:select-none web:outline-hidden web:hover:bg-accent/50 web:focus:bg-accent relative flex w-full flex-row items-center rounded-xs py-1.5 pr-2 pl-8',\n props.disabled && 'web:pointer-events-none opacity-50',\n className\n )}\n {...props}\n >\n <View className=\"native:left-3.5 native:pt-px absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check\n size={16}\n strokeWidth={3}\n className=\"text-popover-foreground\"\n />\n </SelectPrimitive.ItemIndicator>\n </View>\n <SelectPrimitive.ItemText className=\"native:text-lg native:text-base text-popover-foreground web:group-focus:text-accent-foreground text-sm\" />\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.SeparatorProps & {\n ref?: React.RefObject<SelectPrimitive.SeparatorRef>;\n}) {\n return (\n <SelectPrimitive.Separator\n className={cn('bg-muted -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n type Option,\n};\n"],"mappings":";;;;;;;;;;;AAWA,MAAM,SAAS,gBAAgB;AAE/B,MAAM,cAAc,gBAAgB;AAEpC,MAAM,cAAc,gBAAgB;AAEpC,SAAS,cAAc,EACrB,KACA,WACA,UACA,GAAG,SAIF;AACD,QACE,qBAAC,gBAAgB;EACV;EACL,WAAW,GACT,2RACA,MAAM,YAAY,qCAClB,UACD;EACD,GAAI;aAEH,UACD,oBAAC;GACC,MAAM;GACN,eAAa;GACb,WAAU;IACV;GACsB;;;;;AAO9B,SAAS,qBAAqB,EAC5B,WACA,GAAG,SACmC;AACtC,KAAI,SAAS,OAAO,MAClB,QAAO;AAET,QACE,oBAAC,gBAAgB;EACf,WAAW,GACT,4DACA,UACD;EACD,GAAI;YAEJ,oBAAC;GAAU,MAAM;GAAI,WAAU;IAAoB;GACpB;;;;;AAOrC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SACqC;AACxC,KAAI,SAAS,OAAO,MAClB,QAAO;AAET,QACE,oBAAC,gBAAgB;EACf,WAAW,GACT,4DACA,UACD;EACD,GAAI;YAEJ,oBAAC;GAAY,MAAM;GAAI,WAAU;IAAoB;GACpB;;AAIvC,SAAS,cAAc,EACrB,WACA,UACA,WAAW,UACX,YACA,GAAG,SAKF;CACD,MAAM,EAAE,SAAS,gBAAgB,gBAAgB;AAEjD,QACE,oBAAC,gBAAgB;EAAO,UAAU;YAChC,oBAAC,gBAAgB;GACf,OAAO,SAAS,OAAO,QAAQ,WAAW,eAAe;aAEzD,oBAAC,SAAS;IAAK,WAAU;IAAO,UAAU;IAAQ,SAAS;cACzD,qBAAC,gBAAgB;KACf,WAAW,GACT,mRACA,aAAa,YACX,mIACF,OACI,gDACA,kDACJ,UACD;KACS;KACV,GAAI;;MAEJ,oBAAC,yBAAuB;MACxB,oBAAC,gBAAgB;OACf,WAAW,GACT,OACA,aAAa,YACX,gFACH;OAEA;QACwB;MAC3B,oBAAC,2BAAyB;;MACF;KACZ;IACQ;GACH;;AAI7B,SAAS,YAAY,EACnB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,gBAAgB;EACf,WAAW,GACT,4GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAClB,WACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,gBAAgB;EACf,WAAW,GACT,+NACA,MAAM,YAAY,sCAClB,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,gBAAgB,2BACf,oBAAC;IACC,MAAM;IACN,aAAa;IACb,WAAU;KACV,GAC4B;IAC3B,EACP,oBAAC,gBAAgB,YAAS,WAAU,2GAA2G;GAC1H;;AAI3B,SAAS,gBAAgB,EACvB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,gBAAgB;EACf,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.d.ts","names":[],"sources":["../../ui/separator.tsx"],"sourcesContent":[],"mappings":";;;;;iBAIS,SAAA;;;;;GAKN,kBAAA,CAAmB;QACd,OAAA,CAAM,UAAU,kBAAA,CAAmB;IAC1C,mBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.js","names":[],"sources":["../../ui/separator.tsx"],"sourcesContent":["import * as SeparatorPrimitive from '@rn-primitives/separator';\nimport * as React from 'react';\nimport { cn } from './utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: SeparatorPrimitive.RootProps & {\n ref?: React.RefObject<SeparatorPrimitive.RootRef>;\n}) {\n return (\n <SeparatorPrimitive.Root\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"],"mappings":";;;;;;AAIA,SAAS,UAAU,EACjB,WACA,cAAc,cACd,aAAa,MACb,GAAG,SAGF;AACD,QACE,oBAAC,mBAAmB;EACN;EACC;EACb,WAAW,GACT,sBACA,gBAAgB,eAAe,gBAAgB,eAC/C,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.d.ts","names":[],"sources":["../../ui/sheet.tsx"],"sourcesContent":[],"mappings":";cAAa,KAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet.js","names":[],"sources":["../../ui/sheet.tsx"],"sourcesContent":["export const sheet = 'null';\n"],"mappings":";AAAA,MAAa,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar.d.ts","names":[],"sources":["../../ui/sidebar.tsx"],"sourcesContent":[],"mappings":";cAAa,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar.js","names":[],"sources":["../../ui/sidebar.tsx"],"sourcesContent":["export const sidebar = 'null';\n"],"mappings":";AAAA,MAAa,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton.d.ts","names":[],"sources":["../../ui/skeleton.tsx"],"sourcesContent":[],"mappings":";;;;;iBAaS,QAAA;;;GAIN,KAAK,OAAA,CAAM,gCAAgC,kBAAe,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton.js","names":[],"sources":["../../ui/skeleton.tsx"],"sourcesContent":["import * as React from 'react';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withSequence,\n withTiming,\n} from 'react-native-reanimated';\nimport { cn } from './utils';\nimport { View } from 'react-native';\n\nconst duration = 1000;\n\nfunction Skeleton({\n className,\n ...props\n // }: Omit<React.ComponentPropsWithoutRef<typeof Animated.View>, 'style'>) {\n}: Omit<React.ComponentPropsWithoutRef<typeof View>, 'style'>) {\n const sv = useSharedValue(1);\n\n React.useEffect(() => {\n sv.value = withRepeat(\n withSequence(withTiming(0.5, { duration }), withTiming(1, { duration })),\n -1\n );\n }, []);\n\n const style = useAnimatedStyle(() => ({\n opacity: sv.value,\n }));\n\n return (\n <Animated.View\n style={style}\n className={cn('bg-secondary dark:bg-muted rounded-md', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"mappings":";;;;;;;AAWA,MAAM,WAAW;AAEjB,SAAS,SAAS,EAChB,WACA,GAAG,SAE0D;CAC7D,MAAM,KAAK,eAAe,EAAE;AAE5B,SAAM,gBAAgB;AACpB,KAAG,QAAQ,WACT,aAAa,WAAW,IAAK,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,EAAE,UAAU,CAAC,CAAC,EACxE,GACD;IACA,EAAE,CAAC;CAEN,MAAM,QAAQ,wBAAwB,EACpC,SAAS,GAAG,OACb,EAAE;AAEH,QACE,oBAAC,SAAS;EACD;EACP,WAAW,GAAG,yCAAyC,UAAU;EACjE,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.d.ts","names":[],"sources":["../../ui/stack.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.js","names":[],"sources":["../../ui/stack.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ViewProps } from 'react-native';\nimport { View } from 'react-native';\nimport { cn } from './utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst baseStyle = 'flex';\n\n// VStack variants using cva\nconst vStackVariants = cva(\n [baseStyle, 'flex-col'], // base classes\n {\n variants: {\n spacing: {\n none: '',\n xs: 'gap-y-1',\n sm: 'gap-y-2',\n md: 'gap-y-4',\n lg: 'gap-y-6',\n xl: 'gap-y-8',\n '2xl': 'gap-y-12',\n },\n align: {\n stretch: 'items-stretch',\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n width: {\n auto: 'w-auto',\n full: 'w-full',\n screen: 'w-screen',\n fit: 'w-fit',\n },\n padding: {\n none: '',\n xs: 'p-1',\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n },\n gap: {\n none: '',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n },\n },\n defaultVariants: {\n spacing: 'md',\n align: 'stretch',\n justify: 'start',\n width: 'auto',\n padding: 'none',\n gap: 'none',\n },\n }\n);\n\n// HStack variants using cva\nconst hStackVariants = cva(\n [baseStyle, 'flex-row'], // base classes\n {\n variants: {\n spacing: {\n none: '',\n xs: 'gap-x-1',\n sm: 'gap-x-2',\n md: 'gap-x-4',\n lg: 'gap-x-6',\n xl: 'gap-x-8',\n '2xl': 'gap-x-12',\n },\n align: {\n stretch: 'items-stretch',\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n width: {\n auto: 'w-auto',\n full: 'w-full',\n screen: 'w-screen',\n fit: 'w-fit',\n },\n padding: {\n none: '',\n xs: 'p-1',\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n },\n gap: {\n none: '',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n },\n wrap: {\n nowrap: 'flex-nowrap',\n wrap: 'flex-wrap',\n reverse: 'flex-wrap-reverse',\n },\n },\n defaultVariants: {\n spacing: 'md',\n align: 'center',\n justify: 'start',\n width: 'auto',\n padding: 'none',\n gap: 'none',\n wrap: 'wrap',\n },\n }\n);\n\nconst boxVariants = cva(\n [baseStyle, 'flex-row'], // base classes\n {\n variants: {\n spacing: {\n none: '',\n xs: 'gap-x-1',\n sm: 'gap-x-2',\n md: 'gap-x-4',\n lg: 'gap-x-6',\n xl: 'gap-x-8',\n '2xl': 'gap-x-12',\n },\n align: {\n stretch: 'items-stretch',\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n baseline: 'items-baseline',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n width: {\n auto: 'w-auto',\n full: 'w-full',\n screen: 'w-screen',\n fit: 'w-fit',\n },\n padding: {\n none: '',\n xs: 'p-1',\n sm: 'p-2',\n md: 'p-4',\n lg: 'p-6',\n xl: 'p-8',\n },\n gap: {\n none: '',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-4',\n lg: 'gap-6',\n xl: 'gap-8',\n },\n wrap: {\n nowrap: 'flex-nowrap',\n wrap: 'flex-wrap',\n reverse: 'flex-wrap-reverse',\n },\n },\n defaultVariants: {\n spacing: 'md',\n align: 'center',\n justify: 'center',\n width: 'auto',\n padding: 'none',\n gap: 'none',\n wrap: 'wrap',\n },\n }\n);\n\ntype BoxProps = ViewProps &\n VariantProps<typeof boxVariants> & {\n ref?: React.RefObject<React.ComponentRef<typeof View>>;\n };\n\ntype VStackProps = ViewProps &\n VariantProps<typeof vStackVariants> & {\n ref?: React.RefObject<React.ComponentRef<typeof View>>;\n };\n\ntype HStackProps = ViewProps &\n VariantProps<typeof hStackVariants> & {\n ref?: React.RefObject<React.ComponentRef<typeof View>>;\n };\n\nfunction Box({\n className,\n spacing,\n align,\n justify,\n width,\n padding,\n gap,\n wrap,\n ...props\n}: BoxProps) {\n return (\n <View\n className={cn(\n boxVariants({ spacing, align, justify, width, padding, gap, wrap }),\n className\n )}\n {...props}\n />\n );\n}\n\nfunction HStack({\n className,\n spacing,\n align,\n justify,\n width,\n padding,\n gap,\n wrap,\n ...props\n}: HStackProps) {\n return (\n <View\n className={cn(\n hStackVariants({ spacing, align, justify, width, padding, gap, wrap }),\n className\n )}\n {...props}\n />\n );\n}\n\nfunction VStack({\n className,\n spacing,\n align,\n justify,\n width,\n padding,\n gap,\n ...props\n}: VStackProps) {\n return (\n <View\n className={cn(\n vStackVariants({ spacing, align, justify, width, padding, gap }),\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n HStack,\n VStack,\n type HStackProps,\n type VStackProps,\n Box,\n type BoxProps,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepper.d.ts","names":[],"sources":["../../ui/stepper.tsx"],"sourcesContent":[],"mappings":";;;;;cAMM;;;IAeJ,+BAAA,CAAA;AAfI,UAiBW,YAAA,SAAqB,YAFpC,CAAA,OAEwD,WAFxD,CAAA,CAAA;EAEe,OAAA,EAAA,MAAa;EAMd,KAAA,EAAA,MAAO;EAAG,SAAA,CAAA,EAAA,MAAA;;AAAgB,iBAA1B,OAAA,CAA0B;EAAA,OAAA;EAAA,KAAA;EAAA,IAAA;EAAA;AAAA,CAAA,EAAmB,YAAnB,CAAA,EAA+B,mBAAA,CAAA,GAAA,CAAA,OAA/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stepper.js","names":[],"sources":["../../ui/stepper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from './utils';\nimport { HStack } from './stack';\nimport { View } from 'react-native';\n\nconst dotVariants = cva('h-2 w-2 rounded-full', {\n variants: {\n state: {\n active: 'bg-primary',\n inactive: 'bg-muted-foreground/20',\n },\n size: {\n sm: '',\n md: 'h-2.5 w-2.5',\n },\n },\n defaultVariants: {\n state: 'inactive',\n size: 'md',\n },\n});\n\nexport interface StepperProps extends VariantProps<typeof dotVariants> {\n current: number;\n total: number;\n className?: string;\n}\n\nexport function Stepper({ current, total, size, className }: StepperProps) {\n const items = Array.from({ length: Math.max(0, total) });\n return (\n <HStack className={cn('items-center gap-2', className)}>\n {items.map((_, idx) => (\n <View\n key={idx}\n className={cn(\n dotVariants({\n state: idx + 1 === current ? 'active' : 'inactive',\n size,\n })\n )}\n />\n ))}\n </HStack>\n );\n}\n"],"mappings":";;;;;;;;AAMA,MAAM,cAAc,IAAI,wBAAwB;CAC9C,UAAU;EACR,OAAO;GACL,QAAQ;GACR,UAAU;GACX;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,OAAO;EACP,MAAM;EACP;CACF,CAAC;AAQF,SAAgB,QAAQ,EAAE,SAAS,OAAO,MAAM,aAA2B;CACzE,MAAM,QAAQ,MAAM,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,MAAM,EAAE,CAAC;AACxD,QACE,oBAAC;EAAO,WAAW,GAAG,sBAAsB,UAAU;YACnD,MAAM,KAAK,GAAG,QACb,oBAAC,QAEC,WAAW,GACT,YAAY;GACV,OAAO,MAAM,MAAM,UAAU,WAAW;GACxC;GACD,CAAC,CACH,IANI,IAOL,CACF;GACK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch.d.ts","names":[],"sources":["../../ui/switch.tsx"],"sourcesContent":[],"mappings":";;;;;iBAiDS,YAAA;;;GAGN,gBAAA,CAAiB;QACZ,OAAA,CAAM,UAAU,gBAAA,CAAiB;IACxC,oBAAA,CAAA,GAAA,CAAA;AArD8B,cAkGzB,MAlDe,EAAA,OAkDT,YAlDS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"switch.js","names":[],"sources":["../../ui/switch.tsx"],"sourcesContent":["import * as SwitchPrimitives from '@rn-primitives/switch';\nimport * as React from 'react';\nimport { Platform } from 'react-native';\nimport Animated, {\n interpolateColor,\n useAnimatedStyle,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { useColorScheme } from './useColorScheme';\nimport { cn } from './utils';\n\nfunction SwitchWeb({\n className,\n ...props\n}: SwitchPrimitives.RootProps & {\n ref?: React.RefObject<SwitchPrimitives.RootRef>;\n}) {\n return (\n <SwitchPrimitives.Root\n className={cn(\n 'peer focus-visible:ring-ring focus-visible:ring-offset-background h-6 w-11 shrink-0 cursor-pointer flex-row items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:cursor-not-allowed',\n props.checked ? 'bg-primary' : 'bg-input',\n props.disabled && 'opacity-50',\n className\n )}\n {...props}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'bg-background shadow-foreground/5 pointer-events-none block h-5 w-5 rounded-full shadow-md ring-0 transition-transform',\n props.checked ? 'translate-x-5' : 'translate-x-0'\n )}\n />\n </SwitchPrimitives.Root>\n );\n}\n\nconst RGB_COLORS = {\n light: {\n primary: 'rgb(24, 24, 27)',\n input: 'rgb(228, 228, 231)',\n },\n dark: {\n primary: 'rgb(250, 250, 250)',\n input: 'rgb(39, 39, 42)',\n },\n} as const;\n\nfunction SwitchNative({\n className,\n ...props\n}: SwitchPrimitives.RootProps & {\n ref?: React.RefObject<SwitchPrimitives.RootRef>;\n}) {\n const { colorScheme } = useColorScheme();\n const translateX = useDerivedValue(() => (props.checked ? 18 : 0));\n const animatedRootStyle = useAnimatedStyle(() => {\n return {\n backgroundColor: interpolateColor(\n translateX.value,\n [0, 18],\n [RGB_COLORS[colorScheme].input, RGB_COLORS[colorScheme].primary]\n ),\n };\n });\n const animatedThumbStyle = useAnimatedStyle(() => ({\n transform: [\n { translateX: withTiming(translateX.value, { duration: 200 }) },\n ],\n }));\n return (\n <Animated.View\n style={animatedRootStyle}\n className={cn(\n 'h-8 w-[46px] rounded-full',\n props.disabled && 'opacity-50'\n )}\n >\n <SwitchPrimitives.Root\n className={cn(\n 'h-8 w-[46px] shrink-0 flex-row items-center rounded-full border-2 border-transparent',\n props.checked ? 'bg-primary' : 'bg-input',\n className\n )}\n {...props}\n >\n <Animated.View style={animatedThumbStyle}>\n <SwitchPrimitives.Thumb\n className={\n 'bg-background shadow-foreground/25 h-7 w-7 rounded-full shadow-md ring-0'\n }\n />\n </Animated.View>\n </SwitchPrimitives.Root>\n </Animated.View>\n );\n}\n\nconst Switch = Platform.select({\n web: SwitchWeb,\n default: SwitchNative,\n});\n\nexport { Switch };\n"],"mappings":";;;;;;;;;AAYA,SAAS,UAAU,EACjB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,iBAAiB;EAChB,WAAW,GACT,iSACA,MAAM,UAAU,eAAe,YAC/B,MAAM,YAAY,cAClB,UACD;EACD,GAAI;YAEJ,oBAAC,iBAAiB,SAChB,WAAW,GACT,0HACA,MAAM,UAAU,kBAAkB,gBACnC,GACD;GACoB;;AAI5B,MAAM,aAAa;CACjB,OAAO;EACL,SAAS;EACT,OAAO;EACR;CACD,MAAM;EACJ,SAAS;EACT,OAAO;EACR;CACF;AAED,SAAS,aAAa,EACpB,WACA,GAAG,SAGF;CACD,MAAM,EAAE,gBAAgB,gBAAgB;CACxC,MAAM,aAAa,sBAAuB,MAAM,UAAU,KAAK,EAAG;CAClE,MAAM,oBAAoB,uBAAuB;AAC/C,SAAO,EACL,iBAAiB,iBACf,WAAW,OACX,CAAC,GAAG,GAAG,EACP,CAAC,WAAW,aAAa,OAAO,WAAW,aAAa,QAAQ,CACjE,EACF;GACD;CACF,MAAM,qBAAqB,wBAAwB,EACjD,WAAW,CACT,EAAE,YAAY,WAAW,WAAW,OAAO,EAAE,UAAU,KAAK,CAAC,EAAE,CAChE,EACF,EAAE;AACH,QACE,oBAAC,SAAS;EACR,OAAO;EACP,WAAW,GACT,6BACA,MAAM,YAAY,aACnB;YAED,oBAAC,iBAAiB;GAChB,WAAW,GACT,wFACA,MAAM,UAAU,eAAe,YAC/B,UACD;GACD,GAAI;aAEJ,oBAAC,SAAS;IAAK,OAAO;cACpB,oBAAC,iBAAiB,SAChB,WACE,6EAEF;KACY;IACM;GACV;;AAIpB,MAAM,SAAS,SAAS,OAAO;CAC7B,KAAK;CACL,SAAS;CACV,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.d.ts","names":[],"sources":["../../ui/table.tsx"],"sourcesContent":[],"mappings":";;;;;iBAKS,KAAA;;;GAGN,cAAA,CAAe;QACV,OAAA,CAAM,UAAU,cAAA,CAAe;IACtC,oBAAA,CAAA,GAAA,CAAA;AAT8B,iBAkBtB,WAAA,CAdK;EAAA,SAAA;EAAA,GAAA;CAAA,EAiBX,cAAA,CAAe,WAjBJ,GAAA;EACZ,GAAA,CAAA,EAiBM,OAAA,CAAM,SAjBZ,CAiBsB,cAAA,CAAe,SAjBrC,CAAA;CAEC,CAAA,EAgBF,oBAAA,CAAA,GAAA,CAAA,OAhBiB;iBAyBT,SAAA,CAxB8B;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;CAAA,EA4BpC,cAAA,CAAe,SA5BqB,GAAA;EAA/B,GAAA,CAAA,EA6BA,OAAA,CAAM,SA7BA,CA6BU,cAAA,CAAe,OA7BzB,CAAA;CACb,CAAA,EA6BA,oBAAA,CAAA,GAAA,CAAA,OA7BA;iBA0CQ,WAAA,CA1CR;EAAA,SAAA;EAAA,GAAA;CAAA,EA6CE,cAAA,CAAe,WA7CjB,GAAA;EASQ,GAAA,CAAA,EAqCD,OAAA,CAAM,SArCM,CAqCI,cAAA,CAAe,SArCnB,CAAA;CAClB,CAAA,EAqCD,oBAAA,CAAA,GAAA,CAAA,OArCC;iBAiDO,QAAA,CA/CS;EAAA,SAAA;EAAA,GAAA;CAAA,EAkDf,cAAA,CAAe,QAlDA,GAAA;EACM,GAAA,CAAA,EAkDhB,OAAA,CAAM,SAlDyB,CAkDf,cAAA,CAAe,MAlDA,CAAA;CAA/B,CAAA,EAmDP,oBAAA,CAAA,GAAA,CAAA,OAnDa;iBA+DL,SAAA,CA9DR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiEE,cAAA,CAAe,SAjEjB,GAAA;EAAA,GAAA,CAAA,EAkEO,OAAA,CAAM,SAlEb,CAkEuB,cAAA,CAAe,OAlEtC,CAAA;AAAA,CAAA,CAAA,EAmEA,oBAAA,CAAA,GAAA,CAAA,OA1DiB;iBAwET,SAAA,CAvEP;EAAA,SAAA;EAAA,GAAA;CAAA,EA0EC,cAAA,CAAe,SA1EhB,GAAA;EACA,GAAA,CAAA,EA0EM,OAAA,CAAM,SA1EZ,CA0EsB,cAAA,CAAe,OA1ErC,CAAA;CAEC,CAAA,EAyEF,oBAAA,CAAA,GAAA,CAAA,OAzEiB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.js","names":[],"sources":["../../ui/table.tsx"],"sourcesContent":["import * as TablePrimitive from '@rn-primitives/table';\nimport * as React from 'react';\nimport { cn } from './utils';\nimport { TextClassContext } from './text';\n\nfunction Table({\n className,\n ...props\n}: TablePrimitive.RootProps & {\n ref?: React.RefObject<TablePrimitive.RootRef>;\n}) {\n return (\n <TablePrimitive.Root\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction TableHeader({\n className,\n ...props\n}: TablePrimitive.HeaderProps & {\n ref?: React.RefObject<TablePrimitive.HeaderRef>;\n}) {\n return (\n <TablePrimitive.Header\n className={cn('border-border [&_tr]:border-b', className)}\n {...props}\n />\n );\n}\n\nfunction TableBody({\n className,\n style,\n ...props\n}: TablePrimitive.BodyProps & {\n ref?: React.RefObject<TablePrimitive.BodyRef>;\n}) {\n return (\n <TablePrimitive.Body\n className={cn(\n 'border-border flex-1 [&_tr:last-child]:border-0',\n className\n )}\n style={[{ minHeight: 2 }, style]}\n {...props}\n />\n );\n}\n\nfunction TableFooter({\n className,\n ...props\n}: TablePrimitive.FooterProps & {\n ref?: React.RefObject<TablePrimitive.FooterRef>;\n}) {\n return (\n <TablePrimitive.Footer\n className={cn(\n 'bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableRow({\n className,\n ...props\n}: TablePrimitive.RowProps & {\n ref?: React.RefObject<TablePrimitive.RowRef>;\n}) {\n return (\n <TablePrimitive.Row\n className={cn(\n 'border-border web:transition-colors web:hover:bg-muted/50 web:data-[state=selected]:bg-muted flex-row border-b',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({\n className,\n ...props\n}: TablePrimitive.HeadProps & {\n ref?: React.RefObject<TablePrimitive.HeadRef>;\n}) {\n return (\n <TextClassContext.Provider value=\"text-muted-foreground\">\n <TablePrimitive.Head\n className={cn(\n 'h-12 justify-center px-4 text-left font-medium [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n </TextClassContext.Provider>\n );\n}\n\nfunction TableCell({\n className,\n ...props\n}: TablePrimitive.CellProps & {\n ref?: React.RefObject<TablePrimitive.CellRef>;\n}) {\n return (\n <TablePrimitive.Cell\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableBody,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"mappings":";;;;;;;AAKA,SAAS,MAAM,EACb,WACA,GAAG,SAGF;AACD,QACE,oBAAC,eAAe;EACd,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,eAAe;EACd,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,UAAU,EACjB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAAC,eAAe;EACd,WAAW,GACT,mDACA,UACD;EACD,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,MAAM;EAChC,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,eAAe;EACd,WAAW,GACT,kDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,SAAS,EAChB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,eAAe;EACd,WAAW,GACT,kHACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,UAAU,EACjB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,iBAAiB;EAAS,OAAM;YAC/B,oBAAC,eAAe;GACd,WAAW,GACT,gFACA,UACD;GACD,GAAI;IACJ;GACwB;;AAIhC,SAAS,UAAU,EACjB,WACA,GAAG,SAGF;AACD,QACE,oBAAC,eAAe;EACd,WAAW,GACT,kDACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs.d.ts","names":[],"sources":["../../ui/tabs.tsx"],"sourcesContent":[],"mappings":";;;;;cAIM,MAAI,OAAA,CAAA,0BAAqB,cAAA,CAArB,SAAA;;;;EAAJ,aAAyB,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAA,WAAA,CAArB,EAAA,YAAA,GAAA,UAAA;EAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA;;CAAA,wBAAA,CAAA,cAAA,CAAA,IAAA,CAAA,CAAA;cAEJ,QAFI,EAEI,OAAA,CAAA,yBAFJ,CAEI,IAFJ,CAcR,cAAA,CAZY,SAAA,GAFJ;EAEJ,OAAA,CAAA,EAAA,OAYJ;CAAA,wBAZY,CAAA,cAAA,CAAA,IAAA,CAAA,EAAA,KAAA,CAAA,wBAAA,CAAA,cAAA,CAAA,IAAA,CAAA,CAAA;cAeR,WAfQ,EAeG,OAAA,CAAA,yBAfH,CAeG,IAfH,CAeG,IAfH,CA4BZ,cAAA,CAbe,cAAA,GAAA,OAAA,CAAA,aAfH,CAeG,cAAA,CAAA,IAAA,CAfH,EAAA,KAAA,CAAA,GAAA;;CAAA,GAAA;EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;;CAAA,GAAA;EAAA,KAAA,EAAA,MAAA;AAAA,CAAA,wBA4BZ,qBAAA,EAAA,KAAA,CAAA,wBAAA,CAbe,cAAA,CAAA,IAAA,CAaf,CAAA;cAGI,WAhBW,EAgBA,OAAA,CAAA,yBAhBA,CAgBA,IAhBA,CA4Bf,cAAA,CAZe,SAAA,GAhBA;EAAA,OAAA,CAAA,EAAA,OAAA;CAAA,GAgBA,qBAAA,CAAA,cAAA,GAhBA;EAAA,KAAA,EAAA,MAAA;+EAgBA,cAAA,CAAA,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs.js","names":["React"],"sources":["../../ui/tabs.tsx"],"sourcesContent":["import * as TabsPrimitive from '@rn-primitives/tabs';\nimport * as React from 'react';\nimport { cn } from './utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'bg-muted text-muted-foreground web:inline-flex h-10 items-center justify-center rounded-md p-1',\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'web:inline-flex web:whitespace-nowrap web:ring-offset-background web:transition-all web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 items-center justify-center rounded-xs px-3 py-1.5 text-sm font-medium disabled:pointer-events-none disabled:opacity-50',\n 'data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-2xs',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'web:ring-offset-background web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2',\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"mappings":";;;;;;AAIA,MAAM,OAAO,cAAc;AAE3B,MAAM,WAAWA,QAAM,YAGpB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAAC,cAAc;CACR;CACL,WAAW,GACT,kGACA,UACD;CACD,GAAI;EACJ,CACF;AACF,SAAS,cAAc,cAAc,KAAK;AAE1C,MAAM,cAAcA,QAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAAC,cAAc;CACR;CACL,WAAW,GACT,qUACA,wGACA,UACD;CACD,GAAI;EACJ,CACF;AACF,YAAY,cAAc,cAAc,QAAQ;AAEhD,MAAM,cAAcA,QAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAAC,cAAc;CACR;CACL,WAAW,GACT,oJACA,UACD;CACD,GAAI;EACJ,CACF;AACF,YAAY,cAAc,cAAc,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.d.ts","names":[],"sources":["../../ui/text.tsx"],"sourcesContent":[],"mappings":";;;;;cAKM,kBAAgB,OAAA,CAAA;KAEV,SAAA,GAAY,OAAA,CAAM,sBAAsB;QAC5C,OAAA,CAAM,UAAU,OAAA,CAAM,oBAAoB;EAH5C,OAAA,CAAA,EAAA,OAAA;AAEN,CAAA;iBAKS,IAAA,CAL2C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EASjD,OAAA,CAAM,cAT2C,CAAA,OASrB,MATqB,CAAA,GAAA;EAA5B,GAAA,CAAA,EAUhB,OAAA,CAAM,SAVgB,CAUN,OAAA,CAAM,YAVA,CAAA,OAUoB,MAVpB,CAAA,CAAA;EACoB,OAAA,CAAA,EAAA,OAAA;CAA1B,CAAA,EAWvB,mBAAA,CAAA,GAAA,CAAA,OAX6B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","names":["React","RNText"],"sources":["../../ui/text.tsx"],"sourcesContent":["import * as Slot from '@rn-primitives/slot';\nimport * as React from 'react';\nimport { Text as RNText } from 'react-native';\nimport { cn } from './utils';\n\nconst TextClassContext = React.createContext<string | undefined>(undefined);\n\nexport type TextProps = React.ComponentProps<typeof RNText> & {\n ref?: React.RefObject<React.ComponentRef<typeof RNText>>;\n asChild?: boolean;\n};\n\nfunction Text({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<typeof RNText> & {\n ref?: React.RefObject<React.ComponentRef<typeof RNText>>;\n asChild?: boolean;\n}) {\n const textClass = React.useContext(TextClassContext);\n const Component = asChild ? Slot.Text : RNText;\n return (\n <Component\n className={cn(\n 'text-foreground web:select-text text-base',\n textClass,\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Text, TextClassContext };\n"],"mappings":";;;;;;;AAKA,MAAM,mBAAmBA,QAAM,cAAkC,OAAU;AAO3E,SAAS,KAAK,EACZ,WACA,UAAU,OACV,GAAG,SAIF;CACD,MAAM,YAAYA,QAAM,WAAW,iBAAiB;AAEpD,QACE,oBAFgB,UAAU,KAAK,OAAOC;EAGpC,WAAW,GACT,6CACA,WACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textarea.d.ts","names":[],"sources":["../../ui/textarea.tsx"],"sourcesContent":[],"mappings":";;;;cAIM,UAAQ,OAAA,CAAA,0BAAA,KAAA;QAGJ,OAAA,CAAM,UAAU;AANoC,CAAA,EAAA,KAGxD,CAAA,wBAmBJ,UAAA,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textarea.js","names":["React"],"sources":["../../ui/textarea.tsx"],"sourcesContent":["import * as React from 'react';\nimport { TextInput, type TextInputProps } from 'react-native';\nimport { cn } from './utils';\n\nconst Textarea = React.forwardRef<\n TextInput,\n TextInputProps & {\n ref?: React.RefObject<TextInput>;\n }\n>(({ className, placeholderClassName, ...props }, ref) => {\n return (\n <TextInput\n ref={ref}\n className={cn(\n 'native:text-lg native:leading-tight border-input bg-background text-foreground placeholder:text-muted-foreground web:flex web:ring-offset-background web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 min-h-[80px] w-full rounded-md border px-3 py-2 text-base file:border-0 file:bg-transparent file:font-medium lg:text-sm',\n props.editable === false && 'web:cursor-not-allowed opacity-50',\n className\n )}\n placeholderClassName={cn('text-muted-foreground', placeholderClassName)}\n multiline\n {...props}\n />\n );\n});\n\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"mappings":";;;;;;AAIA,MAAM,WAAWA,QAAM,YAKpB,EAAE,WAAW,sBAAsB,GAAG,SAAS,QAAQ;AACxD,QACE,oBAAC;EACM;EACL,WAAW,GACT,sYACA,MAAM,aAAa,SAAS,qCAC5B,UACD;EACD,sBAAsB,GAAG,yBAAyB,qBAAqB;EACvE;EACA,GAAI;GACJ;EAEJ;AAEF,SAAS,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-picker.d.ts","names":[],"sources":["../../ui/time-picker.tsx"],"sourcesContent":[],"mappings":";;;UAUiB,eAAA;SACR;mBACU;EAFF,QAAA,CAAA,EAAA,OAAe;EAsBhB,WAAA,CAAA,EAAU,MAAA;EACxB,QAAA,CAAA,EAAA,OAAA;EACA,SAAA,CAAA,EAAA,MAAA;;AAEA,iBAJc,UAAA,CAId;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,WAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAGC,eAHD,CAAA,EAGgB,mBAAA,CAAA,GAAA,CAAA,OAHhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"time-picker.js","names":["Text"],"sources":["../../ui/time-picker.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { Platform, Pressable, View } from 'react-native';\nimport type {\n AndroidNativeProps,\n IOSNativeProps,\n} from '@react-native-community/datetimepicker';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport { cn } from './utils';\nimport { Text } from './text';\n\nexport interface TimePickerProps {\n value: Date | null;\n onChange: (date: Date | null) => void;\n disabled?: boolean;\n placeholder?: string;\n is24Hour?: boolean;\n className?: string;\n}\n\nfunction formatTimeDisplay(date: Date | null, is24Hour?: boolean) {\n if (!date) return '';\n try {\n return date.toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n hour12: !is24Hour,\n });\n } catch {\n return '';\n }\n}\n\nexport function TimePicker({\n value,\n onChange,\n disabled,\n placeholder = 'Select time',\n is24Hour = true,\n className,\n}: TimePickerProps) {\n const [show, setShow] = useState(false);\n\n const pickerProps = useMemo<Partial<AndroidNativeProps & IOSNativeProps>>(\n () => ({\n is24Hour,\n timeZoneName: undefined,\n }),\n [is24Hour]\n );\n\n const handleChange = (_event: any, selectedDate?: Date | undefined) => {\n if (Platform.OS !== 'ios') setShow(false);\n if (selectedDate) {\n onChange(selectedDate);\n }\n };\n\n return (\n <View className={cn('w-full', className)}>\n <Pressable\n disabled={disabled}\n onPress={() => setShow(true)}\n className={cn(\n 'border-input bg-background h-12 flex-row items-center rounded-md border px-3',\n disabled && 'opacity-50'\n )}\n >\n <Text\n className={cn('text-foreground text-base', !value && 'opacity-50')}\n >\n {value ? formatTimeDisplay(value, is24Hour) : placeholder}\n </Text>\n </Pressable>\n {show && (\n <DateTimePicker\n value={value ?? new Date()}\n mode=\"time\"\n display={Platform.OS === 'ios' ? 'spinner' : 'default'}\n onChange={handleChange}\n {...(pickerProps as any)}\n />\n )}\n </View>\n );\n}\n"],"mappings":";;;;;;;;AAmBA,SAAS,kBAAkB,MAAmB,UAAoB;AAChE,KAAI,CAAC,KAAM,QAAO;AAClB,KAAI;AACF,SAAO,KAAK,mBAAmB,EAAE,EAAE;GACjC,MAAM;GACN,QAAQ;GACR,QAAQ,CAAC;GACV,CAAC;SACI;AACN,SAAO;;;AAIX,SAAgB,WAAW,EACzB,OACA,UACA,UACA,cAAc,eACd,WAAW,MACX,aACkB;CAClB,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CAEvC,MAAM,cAAc,eACX;EACL;EACA,cAAc;EACf,GACD,CAAC,SAAS,CACX;CAED,MAAM,gBAAgB,QAAa,iBAAoC;AACrE,MAAI,SAAS,OAAO,MAAO,SAAQ,MAAM;AACzC,MAAI,aACF,UAAS,aAAa;;AAI1B,QACE,qBAAC;EAAK,WAAW,GAAG,UAAU,UAAU;aACtC,oBAAC;GACW;GACV,eAAe,QAAQ,KAAK;GAC5B,WAAW,GACT,gFACA,YAAY,aACb;aAED,oBAACA;IACC,WAAW,GAAG,6BAA6B,CAAC,SAAS,aAAa;cAEjE,QAAQ,kBAAkB,OAAO,SAAS,GAAG;KACzC;IACG,EACX,QACC,oBAAC;GACC,OAAO,yBAAS,IAAI,MAAM;GAC1B,MAAK;GACL,SAAS,SAAS,OAAO,QAAQ,YAAY;GAC7C,UAAU;GACV,GAAK;IACL;GAEC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle-group.d.ts","names":[],"sources":["../../ui/toggle-group.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAYS,WAAA;;;;;;GAMN,oBAAA,CAAqB,YACtB,oBAAoB;QACZ,OAAA,CAAM,UAAU,oBAAA,CAAqB;IAC5C,oBAAA,CAAA,GAAA,CAAA;AAhBiE,iBA0C3D,eAAA,CAnCW;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;CAAA,EAyCjB,oBAAA,CAAqB,SAzCJ,GA0ClB,YA1CkB,CAAA,OA0CE,cA1CF,CAAA,GAAA;EAClB,GAAA,CAAA,EA0CQ,OAAA,CAAM,SA1Cd,CA0CwB,oBAAA,CAAqB,OA1C7C,CAAA;CACA,CAAA,EA0CC,oBAAA,CAAA,GAAA,CAAA,OA1CD;iBA0EO,eAAA,CAzEP;EAAA,SAAA;EAAA,IAAA,EA2EM,IA3EN;EAAA,GAAA;CAAA,EA6EC,OAAA,CAAM,wBA7EP,CA6EgC,UA7EhC,CAAA,GAAA;EACA,IAAA,EA6EM,UA7EN;CAEC,CAAA,EA4EF,oBAAA,CAAA,GAAA,CAAA,OA5EuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle-group.js","names":["React"],"sources":["../../ui/toggle-group.tsx"],"sourcesContent":["import type { VariantProps } from 'class-variance-authority';\nimport type { LucideIcon } from 'lucide-react-native';\nimport * as React from 'react';\nimport { toggleTextVariants, toggleVariants } from './toggle';\nimport { TextClassContext } from './text';\nimport * as ToggleGroupPrimitive from '@rn-primitives/toggle-group';\nimport { cn } from './utils';\n\nconst ToggleGroupContext = React.createContext<VariantProps<\n typeof toggleVariants\n> | null>(null);\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ...props\n}: ToggleGroupPrimitive.RootProps &\n VariantProps<typeof toggleVariants> & {\n ref?: React.RefObject<ToggleGroupPrimitive.RootRef>;\n }) {\n return (\n <ToggleGroupPrimitive.Root\n className={cn(\n 'flex flex-row items-center justify-center gap-1',\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\nfunction useToggleGroupContext() {\n const context = React.useContext(ToggleGroupContext);\n if (context === null) {\n throw new Error(\n 'ToggleGroup compound components cannot be rendered outside the ToggleGroup component'\n );\n }\n return context;\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: ToggleGroupPrimitive.ItemProps &\n VariantProps<typeof toggleVariants> & {\n ref?: React.RefObject<ToggleGroupPrimitive.ItemRef>;\n }) {\n const context = useToggleGroupContext();\n const { value } = ToggleGroupPrimitive.useRootContext();\n\n return (\n <TextClassContext.Provider\n value={cn(\n toggleTextVariants({ variant, size }),\n ToggleGroupPrimitive.utils.getIsSelected(value, props.value)\n ? 'text-accent-foreground'\n : 'web:group-hover:text-muted-foreground'\n )}\n >\n <ToggleGroupPrimitive.Item\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n props.disabled && 'web:pointer-events-none opacity-50',\n ToggleGroupPrimitive.utils.getIsSelected(value, props.value) &&\n 'bg-accent',\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n </TextClassContext.Provider>\n );\n}\n\nfunction ToggleGroupIcon({\n className,\n icon: Icon,\n ...props\n}: React.ComponentPropsWithoutRef<LucideIcon> & {\n icon: LucideIcon;\n}) {\n const textClass = React.useContext(TextClassContext);\n return <Icon className={cn(textClass, className)} {...props} />;\n}\n\nexport { ToggleGroup, ToggleGroupIcon, ToggleGroupItem };\n"],"mappings":";;;;;;;;AAQA,MAAM,qBAAqBA,QAAM,cAEvB,KAAK;AAEf,SAAS,YAAY,EACnB,WACA,SACA,MACA,UACA,GAAG,SAIA;AACH,QACE,oBAAC,qBAAqB;EACpB,WAAW,GACT,mDACA,UACD;EACD,GAAI;YAEJ,oBAAC,mBAAmB;GAAS,OAAO;IAAE;IAAS;IAAM;GAClD;IAC2B;GACJ;;AAIhC,SAAS,wBAAwB;CAC/B,MAAM,UAAUA,QAAM,WAAW,mBAAmB;AACpD,KAAI,YAAY,KACd,OAAM,IAAI,MACR,uFACD;AAEH,QAAO;;AAGT,SAAS,gBAAgB,EACvB,WACA,UACA,SACA,MACA,GAAG,SAIA;CACH,MAAM,UAAU,uBAAuB;CACvC,MAAM,EAAE,UAAU,qBAAqB,gBAAgB;AAEvD,QACE,oBAAC,iBAAiB;EAChB,OAAO,GACL,mBAAmB;GAAE;GAAS;GAAM,CAAC,EACrC,qBAAqB,MAAM,cAAc,OAAO,MAAM,MAAM,GACxD,2BACA,wCACL;YAED,oBAAC,qBAAqB;GACpB,WAAW,GACT,eAAe;IACb,SAAS,QAAQ,WAAW;IAC5B,MAAM,QAAQ,QAAQ;IACvB,CAAC,EACF,MAAM,YAAY,sCAClB,qBAAqB,MAAM,cAAc,OAAO,MAAM,MAAM,IAC1D,aACF,UACD;GACD,GAAI;GAEH;IACyB;GACF;;AAIhC,SAAS,gBAAgB,EACvB,WACA,MAAM,MACN,GAAG,SAGF;AAED,QAAO,oBAAC;EAAK,WAAW,GADNA,QAAM,WAAW,iBAAiB,EACd,UAAU;EAAE,GAAI;GAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle.d.ts","names":[],"sources":["../../ui/toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;;;cAOM;;;IAoBL,gCAAA,CAAA;AAxB8B,cA0BzB,kBAFL,EAAA,CAAA,KAyBC,CAzBD,EAAA,CAAA;EAEK,OAAA,CAAA,EAAA,SAAA,GAoBL,SAAA,GAAA,IAAA,GAAA,SAAA;EAEQ,IAAA,CAAA,EAAA,SAAM,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,SAAA;CACb,GAHD,gCAAA,CAAA,SAGC,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBADO,MAAA,CAEP;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;CAAA,EAGC,eAAA,CAAgB,SAHjB,GAIA,YAJA,CAAA,OAIoB,cAJpB,CAAA,GAKA,YALA,CAAA,OAKoB,cALpB,CAAA,GAAA;EACA,GAAA,CAAA,EAKQ,OAAA,CAAM,SALd,CAKwB,eAAA,CAAgB,OALxC,CAAA;CAEC,CAAA,EAIA,oBAAA,CAAA,GAAA,CAAA,OAJgB;iBA4BV,UAAA,CA3Ba;EAAA,SAAA;EAAA,IAAA,EA6Bd,IA7Bc;EAAA,GAAA;CAAA,EA+BnB,OAAA,CAAM,wBA/Ba,CA+BY,UA/BZ,CAAA,GAAA;EAApB,IAAA,EAgCM,UAhCN;CACoB,CAAA,EAgCrB,oBAAA,CAAA,GAAA,CAAA,OAhCqB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toggle.js","names":["React"],"sources":["../../ui/toggle.tsx"],"sourcesContent":["import * as TogglePrimitive from '@rn-primitives/toggle';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type { LucideIcon } from 'lucide-react-native';\nimport * as React from 'react';\nimport { cn } from './utils';\nimport { TextClassContext } from './text';\n\nconst toggleVariants = cva(\n 'web:group web:inline-flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:hover:bg-muted active:bg-muted web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline:\n 'border border-input bg-transparent web:hover:bg-accent active:bg-accent active:bg-accent',\n },\n size: {\n default: 'h-10 px-3 native:h-12 native:px-[12]',\n sm: 'h-9 px-2.5 native:h-10 native:px-[9]',\n lg: 'h-11 px-5 native:h-14 native:px-6',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nconst toggleTextVariants = cva(\n 'text-sm native:text-base text-foreground font-medium',\n {\n variants: {\n variant: {\n default: '',\n outline:\n 'web:group-hover:text-accent-foreground web:group-active:text-accent-foreground',\n },\n size: {\n default: '',\n sm: '',\n lg: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: TogglePrimitive.RootProps &\n VariantProps<typeof toggleVariants> &\n VariantProps<typeof toggleVariants> & {\n ref?: React.RefObject<TogglePrimitive.RootRef>;\n }) {\n return (\n <TextClassContext.Provider\n value={cn(\n toggleTextVariants({ variant, size }),\n props.pressed\n ? 'text-accent-foreground'\n : 'web:group-hover:text-muted-foreground',\n className\n )}\n >\n <TogglePrimitive.Root\n className={cn(\n toggleVariants({ variant, size }),\n props.disabled && 'web:pointer-events-none opacity-50',\n props.pressed && 'bg-accent',\n className\n )}\n {...props}\n />\n </TextClassContext.Provider>\n );\n}\n\nfunction ToggleIcon({\n className,\n icon: Icon,\n ...props\n}: React.ComponentPropsWithoutRef<LucideIcon> & {\n icon: LucideIcon;\n}) {\n const textClass = React.useContext(TextClassContext);\n return <Icon className={cn(textClass, className)} {...props} />;\n}\n\nexport { Toggle, ToggleIcon, toggleTextVariants, toggleVariants };\n"],"mappings":";;;;;;;;AAOA,MAAM,iBAAiB,IACrB,8QACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SACE;GACH;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,MAAM,qBAAqB,IACzB,wDACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SACE;GACH;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,SAAS,OAAO,EACd,WACA,SACA,MACA,GAAG,SAKA;AACH,QACE,oBAAC,iBAAiB;EAChB,OAAO,GACL,mBAAmB;GAAE;GAAS;GAAM,CAAC,EACrC,MAAM,UACF,2BACA,yCACJ,UACD;YAED,oBAAC,gBAAgB;GACf,WAAW,GACT,eAAe;IAAE;IAAS;IAAM,CAAC,EACjC,MAAM,YAAY,sCAClB,MAAM,WAAW,aACjB,UACD;GACD,GAAI;IACJ;GACwB;;AAIhC,SAAS,WAAW,EAClB,WACA,MAAM,MACN,GAAG,SAGF;AAED,QAAO,oBAAC;EAAK,WAAW,GADNA,QAAM,WAAW,iBAAiB,EACd,UAAU;EAAE,GAAI;GAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip.d.ts","names":[],"sources":["../../ui/tooltip.tsx"],"sourcesContent":[],"mappings":";;;;;;cAOM,SAAO,OAAA,CAAA,0BAAwB,cAAA,CAAxB,SAAA;;;;EAAP,aAA+B,CAAA,EAAA,MAAA;EAAA,iBAAxB,CAAA,EAAA,MAAA;EAAA,uBAAA,CAAA,EAAA,OAAA;0BAAA,cAAA,CAAA,IAAA;cAEP,cAFO,EAEO,OAAA,CAAA,yBAFP,CAEO,IAFP,CAEkC,cAAA,CAA3B,cAAA,GAAA,OAAA,CAAA,aAFP,CAEO,cAAA,CAAA,IAAA,CAFP,EAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;AAAA,CAAA,GAEP;EAAyC,SAAA,CAAA,EAA3B,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,wBAAA,oCAAA,CAAA;iBAEX,cAAA,CAFW;EAAA,SAAA;EAAA,UAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EAOjB,uBAAA,CAAiB,YAPA,GAAA;QAQZ,OAAA,CAAM,UAAU,uBAAA,CAAiB;;IAExC,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tooltip.js","names":[],"sources":["../../ui/tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from '@rn-primitives/tooltip';\nimport * as React from 'react';\nimport { Platform, StyleSheet } from 'react-native';\nimport Animated, { FadeIn, FadeOut } from 'react-native-reanimated';\nimport { TextClassContext } from './text';\nimport { cn } from './utils';\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nfunction TooltipContent({\n className,\n sideOffset = 4,\n portalHost,\n ...props\n}: TooltipPrimitive.ContentProps & {\n ref?: React.RefObject<TooltipPrimitive.ContentRef>;\n portalHost?: string;\n}) {\n return (\n <TooltipPrimitive.Portal hostName={portalHost}>\n <TooltipPrimitive.Overlay\n style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}\n >\n <Animated.View\n entering={Platform.select({ web: undefined, default: FadeIn })}\n exiting={Platform.select({ web: undefined, default: FadeOut })}\n >\n <TextClassContext.Provider value=\"text-sm native:text-base text-popover-foreground\">\n <TooltipPrimitive.Content\n sideOffset={sideOffset}\n className={cn(\n 'border-border bg-popover shadow-foreground/5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 web:animate-in web:fade-in-0 web:zoom-in-95 z-50 overflow-hidden rounded-md border px-3 py-1.5 shadow-md',\n className\n )}\n {...props}\n />\n </TextClassContext.Provider>\n </Animated.View>\n </TooltipPrimitive.Overlay>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipTrigger };\n"],"mappings":";;;;;;;;;AAOA,MAAM,UAAU,iBAAiB;AAEjC,MAAM,iBAAiB,iBAAiB;AAExC,SAAS,eAAe,EACtB,WACA,aAAa,GACb,YACA,GAAG,SAIF;AACD,QACE,oBAAC,iBAAiB;EAAO,UAAU;YACjC,oBAAC,iBAAiB;GAChB,OAAO,SAAS,OAAO,QAAQ,WAAW,eAAe;aAEzD,oBAAC,SAAS;IACR,UAAU,SAAS,OAAO;KAAE,KAAK;KAAW,SAAS;KAAQ,CAAC;IAC9D,SAAS,SAAS,OAAO;KAAE,KAAK;KAAW,SAAS;KAAS,CAAC;cAE9D,oBAAC,iBAAiB;KAAS,OAAM;eAC/B,oBAAC,iBAAiB;MACJ;MACZ,WAAW,GACT,qTACA,UACD;MACD,GAAI;OACJ;MACwB;KACd;IACS;GACH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typography.d.ts","names":[],"sources":["../../ui/typography.tsx"],"sourcesContent":[],"mappings":";;;;KAMY,eAAA,GAAkB;;;AAA9B,iBAIS,EAAA,CAJG;EAAe,SAAA;EAAA,OAAG;EAAA,GAAS;AAAA,CAAA,EAIe,eAJf,CAAA,EAI8B,oBAAA,CAAA,GAAA,CAAA,OAJ9B;AAErC,iBAiBO,EAAA,CAfE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAe2C,eAf3C,CAAA,EAe0D,oBAAA,CAAA,GAAA,CAAA,OAf1D;iBA8BF,EAAA,CA9BK;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA8BwC,eA9BxC,CAAA,EA8BuD,oBAAA,CAAA,GAAA,CAAA,OA9BvD;iBA6CL,EAAA,CA7CgB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA6C6B,eA7C7B,CAAA,EA6C4C,oBAAA,CAAA,GAAA,CAAA,OA7C5C;iBA4DhB,CAAA,CA5D6C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA4DD,eA5DC,CAAA,EA4Dc,oBAAA,CAAA,GAAA,CAAA,OA5Dd;iBAsE7C,UAAA,CAtE4D;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAsEP,eAtEO,CAAA,EAsEQ,oBAAA,CAAA,GAAA,CAAA,OAtER;iBAqF5D,IAAA,CArF4D;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAqFb,eArFa,CAAA,EAqFE,oBAAA,CAAA,GAAA,CAAA,OArFF;AAAA,iBAoG5D,IAAA,CArFE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAqF6C,eArF7C,CAAA,EAqF4D,oBAAA,CAAA,GAAA,CAAA,OArF5D;iBA+FF,KAAA,CA/FK;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA+F2C,eA/F3C,CAAA,EA+F0D,oBAAA,CAAA,GAAA,CAAA,OA/F1D;iBA4GL,KAAA,CA5GgB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA4GgC,eA5GhC,CAAA,EA4G+C,oBAAA,CAAA,GAAA,CAAA,OA5G/C;iBAyHhB,KAAA,CAzH6C;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAyHG,eAzHH,CAAA,EAyHkB,oBAAA,CAAA,GAAA,CAAA,OAzHlB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typography.js","names":["Text"],"sources":["../../ui/typography.tsx"],"sourcesContent":["import * as Slot from '@rn-primitives/slot';\nimport * as React from 'react';\nimport { Platform } from 'react-native';\nimport { Text, type TextProps } from './text';\nimport { cn } from './utils';\n\nexport type TypographyProps = TextProps & {\n asChild?: boolean;\n};\n\nfunction H1({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n role=\"heading\"\n aria-level=\"1\"\n className={cn(\n 'text-foreground web:select-text web:scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction H2({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n role=\"heading\"\n aria-level=\"2\"\n className={cn(\n 'border-border text-foreground web:select-text web:scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction H3({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n role=\"heading\"\n aria-level=\"3\"\n className={cn(\n 'text-foreground web:select-text web:scroll-m-20 text-2xl font-semibold tracking-tight',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction H4({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n role=\"heading\"\n aria-level=\"4\"\n className={cn(\n 'text-foreground web:select-text web:scroll-m-20 text-xl font-semibold tracking-tight',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction P({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n className={cn('text-foreground web:select-text text-base', className)}\n {...props}\n />\n );\n}\n\nfunction BlockQuote({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n // @ts-ignore - role of blockquote renders blockquote element on the web\n role={Platform.OS === 'web' ? 'blockquote' : undefined}\n className={cn(\n 'native:mt-4 native:pl-3 border-border text-foreground web:select-text mt-6 border-l-2 pl-6 text-base italic',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction Code({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n // @ts-ignore - role of code renders code element on the web\n role={Platform.OS === 'web' ? 'code' : undefined}\n className={cn(\n 'bg-muted text-foreground web:select-text relative rounded-md px-[0.3rem] py-[0.2rem] text-sm font-semibold',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction Lead({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n className={cn('text-muted-foreground web:select-text text-xl', className)}\n {...props}\n />\n );\n}\n\nfunction Large({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n className={cn(\n 'text-foreground web:select-text text-xl font-semibold',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction Small({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n className={cn(\n 'text-foreground web:select-text text-sm leading-none font-medium',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction Muted({ className, asChild = false, ...props }: TypographyProps) {\n const Component = asChild ? Slot.Text : Text;\n return (\n <Component\n className={cn('text-muted-foreground web:select-text text-sm', className)}\n {...props}\n />\n );\n}\n\nexport { BlockQuote, Code, H1, H2, H3, H4, Large, Lead, Muted, P, Small };\n"],"mappings":";;;;;;;;AAUA,SAAS,GAAG,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAErE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,MAAK;EACL,cAAW;EACX,WAAW,GACT,sGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,GAAG,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAErE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,MAAK;EACL,cAAW;EACX,WAAW,GACT,gIACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,GAAG,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAErE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,MAAK;EACL,cAAW;EACX,WAAW,GACT,yFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,GAAG,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAErE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,MAAK;EACL,cAAW;EACX,WAAW,GACT,wFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,EAAE,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAEpE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,WAAW,GAAG,6CAA6C,UAAU;EACrE,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAE7E,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAIpC,MAAM,SAAS,OAAO,QAAQ,eAAe;EAC7C,WAAW,GACT,+GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,KAAK,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAEvE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAIpC,MAAM,SAAS,OAAO,QAAQ,SAAS;EACvC,WAAW,GACT,8GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,KAAK,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAEvE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,WAAW,GAAG,iDAAiD,UAAU;EACzE,GAAI;GACJ;;AAIN,SAAS,MAAM,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAExE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,MAAM,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAExE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,WAAW,GACT,oEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,MAAM,EAAE,WAAW,UAAU,OAAO,GAAG,SAA0B;AAExE,QACE,oBAFgB,UAAU,KAAK,OAAOA;EAGpC,WAAW,GAAG,iDAAiD,UAAU;EACzE,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useColorScheme.d.ts","names":[],"sources":["../../ui/useColorScheme.tsx"],"sourcesContent":[],"mappings":";;;iBAIgB,cAAA,CAAA;;;EAAA,cAAA,EAAA,CAAc,MAAA,EAAA,cAAA,CAAA,eAAA,EAAA,GAAA,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useColorScheme.js","names":["useNativewindColorScheme"],"sources":["../../ui/useColorScheme.tsx"],"sourcesContent":["import { useColorScheme as useNativewindColorScheme } from 'nativewind';\n\nconst DEFAULT_COLOR_SCHEME = 'light';\n\nexport function useColorScheme() {\n const { colorScheme, setColorScheme, toggleColorScheme } =\n useNativewindColorScheme();\n\n return {\n colorScheme: colorScheme ?? DEFAULT_COLOR_SCHEME,\n isDarkColorScheme: colorScheme === 'dark',\n setColorScheme,\n toggleColorScheme,\n };\n}\n"],"mappings":";;;AAEA,MAAM,uBAAuB;AAE7B,SAAgB,iBAAiB;CAC/B,MAAM,EAAE,aAAa,gBAAgB,sBACnCA,kBAA0B;AAE5B,QAAO;EACL,aAAa,eAAe;EAC5B,mBAAmB,gBAAgB;EACnC;EACA;EACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListState.d.ts","names":[],"sources":["../../ui/useListState.tsx"],"sourcesContent":[],"mappings":";UAEiB,mBAAA;EAAA,aAAA,CAAA,EAAA,MAAmB;EAQnB,cAAA,CAAA,EANE,MAMgB,CAAA,MAAA,EAAA,MAMxB,CAAA;EAqBE,WAAA,CAAA,EAAA,MA2EZ;EA3E4B,mBAAA,CAAA,EAAA,MAAA;EAAA,UAAA,CAAA,EAAA,MAAA;;AAAA,UA3BZ,kBAAA,CA2BY;EAK1B,WAAA,EAAA,MAAA;EAA2B,cAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAsE7B,OAAA,EAhGU,MAgGV,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;MAjFK;;;cAMO;;;;;IAKV,wBAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useListState.js","names":["filterParams: Record<string, string>"],"sources":["../../ui/useListState.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n\nexport interface UseListStateOptions {\n initialSearch?: string;\n initialFilters?: Record<string, string>;\n initialPage?: number;\n initialItemsPerPage?: number;\n debounceMs?: number;\n}\n\nexport interface UseListStateReturn {\n // Search\n searchQuery: string;\n setSearchQuery: (query: string) => void;\n\n // Filters\n filters: Record<string, string>;\n setFilter: (key: string, value: string) => void;\n clearFilters: () => void;\n\n // Pagination\n currentPage: number;\n itemsPerPage: number;\n setCurrentPage: (page: number) => void;\n setItemsPerPage: (itemsPerPage: number) => void;\n\n // Combined state for API calls\n queryParams: {\n search: string;\n page: number;\n limit: number;\n } & Record<string, string | number>;\n\n // Reset all\n resetAll: () => void;\n}\n\nexport const useListState = ({\n initialSearch = '',\n initialFilters = {},\n initialPage = 1,\n initialItemsPerPage = 25,\n}: UseListStateOptions = {}): UseListStateReturn => {\n const [searchQuery, setSearchQuery] = useState(initialSearch);\n const [filters, setFilters] = useState(initialFilters);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [itemsPerPage, setItemsPerPage] = useState(initialItemsPerPage);\n\n const setFilter = useCallback((key: string, value: string) => {\n setFilters((prev) => ({\n ...prev,\n [key]: value,\n }));\n // Reset to first page when filtering\n setCurrentPage(1);\n }, []);\n\n const clearFilters = useCallback(() => {\n setFilters({});\n setCurrentPage(1);\n }, []);\n\n const handleSetSearchQuery = useCallback((query: string) => {\n setSearchQuery(query);\n // Reset to first page when searching\n setCurrentPage(1);\n }, []);\n\n const handleSetItemsPerPage = useCallback((newItemsPerPage: number) => {\n setItemsPerPage(newItemsPerPage);\n // Reset to first page when changing items per page\n setCurrentPage(1);\n }, []);\n\n const resetAll = useCallback(() => {\n setSearchQuery(initialSearch);\n setFilters(initialFilters);\n setCurrentPage(initialPage);\n setItemsPerPage(initialItemsPerPage);\n }, [initialSearch, initialFilters, initialPage, initialItemsPerPage]);\n\n const queryParams = useMemo(() => {\n const baseParams = {\n search: searchQuery,\n page: currentPage,\n limit: itemsPerPage,\n };\n\n // Add active filters to params\n const filterParams: Record<string, string> = {};\n Object.entries(filters).forEach(([key, value]) => {\n if (value) {\n filterParams[key] = value;\n }\n });\n\n return { ...baseParams, ...filterParams };\n }, [searchQuery, filters, currentPage, itemsPerPage]);\n\n return {\n searchQuery,\n setSearchQuery: handleSetSearchQuery,\n filters,\n setFilter,\n clearFilters,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage: handleSetItemsPerPage,\n queryParams,\n resetAll,\n };\n};\n"],"mappings":";;;AAqCA,MAAa,gBAAgB,EAC3B,gBAAgB,IAChB,iBAAiB,EAAE,EACnB,cAAc,GACd,sBAAsB,OACC,EAAE,KAAyB;CAClD,MAAM,CAAC,aAAa,kBAAkB,SAAS,cAAc;CAC7D,MAAM,CAAC,SAAS,cAAc,SAAS,eAAe;CACtD,MAAM,CAAC,aAAa,kBAAkB,SAAS,YAAY;CAC3D,MAAM,CAAC,cAAc,mBAAmB,SAAS,oBAAoB;CAErE,MAAM,YAAY,aAAa,KAAa,UAAkB;AAC5D,cAAY,UAAU;GACpB,GAAG;IACF,MAAM;GACR,EAAE;AAEH,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,eAAe,kBAAkB;AACrC,aAAW,EAAE,CAAC;AACd,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,uBAAuB,aAAa,UAAkB;AAC1D,iBAAe,MAAM;AAErB,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,wBAAwB,aAAa,oBAA4B;AACrE,kBAAgB,gBAAgB;AAEhC,iBAAe,EAAE;IAChB,EAAE,CAAC;CAEN,MAAM,WAAW,kBAAkB;AACjC,iBAAe,cAAc;AAC7B,aAAW,eAAe;AAC1B,iBAAe,YAAY;AAC3B,kBAAgB,oBAAoB;IACnC;EAAC;EAAe;EAAgB;EAAa;EAAoB,CAAC;AAoBrE,QAAO;EACL;EACA,gBAAgB;EAChB;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB;EACjB,aA5BkB,cAAc;GAChC,MAAM,aAAa;IACjB,QAAQ;IACR,MAAM;IACN,OAAO;IACR;GAGD,MAAMA,eAAuC,EAAE;AAC/C,UAAO,QAAQ,QAAQ,CAAC,SAAS,CAAC,KAAK,WAAW;AAChD,QAAI,MACF,cAAa,OAAO;KAEtB;AAEF,UAAO;IAAE,GAAG;IAAY,GAAG;IAAc;KACxC;GAAC;GAAa;GAAS;GAAa;GAAa,CAAC;EAanD;EACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UseCaseCard.d.ts","names":[],"sources":["../../../ui/usecases/UseCaseCard.tsx"],"sourcesContent":[],"mappings":";;;iBAIgB,WAAA;;;;;;;;;EAAA,OAAA,CAAA,EAAA,MAAW;EACzB,QAAA,CAAA,EAAA,MAAA;EACA,UAAA,CAAA,EAAA,GAAA,GAAA,IAAA;CACA,CAAA,EASD,oBAAA,CAAA,GAAA,CAAA,OATC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UseCaseCard.js","names":[],"sources":["../../../ui/usecases/UseCaseCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { VStack, HStack } from '../stack';\nimport { Button } from '../button';\n\nexport function UseCaseCard({\n title,\n summary,\n ctaHref,\n ctaLabel = 'Learn more',\n onCtaClick,\n}: {\n title: string;\n summary?: string;\n ctaHref?: string;\n ctaLabel?: string;\n onCtaClick?: () => void;\n}) {\n return (\n <VStack className=\"rounded-lg border p-4\" gap=\"sm\">\n <div className=\"text-lg font-semibold\">{title}</div>\n {summary && (\n <div className=\"text-muted-foreground text-base\">{summary}</div>\n )}\n {ctaHref && (\n <HStack>\n <a href={ctaHref} onClick={onCtaClick}>\n <Button size=\"sm\" variant=\"outline\">\n {ctaLabel}\n </Button>\n </a>\n </HStack>\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,YAAY,EAC1B,OACA,SACA,SACA,WAAW,cACX,cAOC;AACD,QACE,qBAAC;EAAO,WAAU;EAAwB,KAAI;;GAC5C,oBAAC;IAAI,WAAU;cAAyB;KAAY;GACnD,WACC,oBAAC;IAAI,WAAU;cAAmC;KAAc;GAEjE,WACC,oBAAC,oBACC,oBAAC;IAAE,MAAM;IAAS,SAAS;cACzB,oBAAC;KAAO,MAAK;KAAK,SAAQ;eACvB;MACM;KACP,GACG;;GAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserStoryCard.d.ts","names":[],"sources":["../../../ui/usecases/UserStoryCard.tsx"],"sourcesContent":[],"mappings":";;;iBAGgB,aAAA;;;;;;;EAAA,OAAA,CAAA,EAAA,MAAa;CAC3B,CAAA,EAOD,oBAAA,CAAA,GAAA,CAAA,OAPC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserStoryCard.js","names":[],"sources":["../../../ui/usecases/UserStoryCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { VStack } from '../stack';\n\nexport function UserStoryCard({\n title,\n body,\n outcome,\n}: {\n title: string;\n body?: string;\n outcome?: string;\n}) {\n return (\n <VStack className=\"rounded-lg border p-4\" gap=\"sm\">\n <div className=\"text-lg font-semibold\">{title}</div>\n {body && <div className=\"text-muted-foreground text-base\">{body}</div>}\n {outcome && (\n <div className=\"text-base\">\n <span className=\"font-medium\">Outcome:</span> {outcome}\n </div>\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;AAGA,SAAgB,cAAc,EAC5B,OACA,MACA,WAKC;AACD,QACE,qBAAC;EAAO,WAAU;EAAwB,KAAI;;GAC5C,oBAAC;IAAI,WAAU;cAAyB;KAAY;GACnD,QAAQ,oBAAC;IAAI,WAAU;cAAmC;KAAW;GACrE,WACC,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAK,WAAU;gBAAc;OAAe;;KAAE;;KAC3C;;GAED"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","names":[],"sources":["../../ui/utils.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,EAAA,YAAc"}