@lssm/lib.ui-kit 0.0.0-canary-20251120170226

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 (397) hide show
  1. package/README.md +75 -0
  2. package/dist/index.d.ts +5 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +6 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/node_modules/@hookform/resolvers/dist/resolvers.js +35 -0
  7. package/dist/node_modules/@hookform/resolvers/dist/resolvers.js.map +1 -0
  8. package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js +119 -0
  9. package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js.map +1 -0
  10. package/dist/node_modules/react-hook-form/dist/index.esm.js +2062 -0
  11. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
  12. package/dist/node_modules/zod/v4/classic/errors.js +30 -0
  13. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  14. package/dist/node_modules/zod/v4/classic/iso.js +38 -0
  15. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  16. package/dist/node_modules/zod/v4/classic/parse.js +20 -0
  17. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  18. package/dist/node_modules/zod/v4/classic/schemas.js +395 -0
  19. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  20. package/dist/node_modules/zod/v4/core/api.js +377 -0
  21. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  22. package/dist/node_modules/zod/v4/core/checks.js +226 -0
  23. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  24. package/dist/node_modules/zod/v4/core/core.js +57 -0
  25. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  26. package/dist/node_modules/zod/v4/core/errors.js +63 -0
  27. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  28. package/dist/node_modules/zod/v4/core/parse.js +110 -0
  29. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  30. package/dist/node_modules/zod/v4/core/regexes.js +59 -0
  31. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  32. package/dist/node_modules/zod/v4/core/registries.js +53 -0
  33. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  34. package/dist/node_modules/zod/v4/core/schemas.js +755 -0
  35. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  36. package/dist/node_modules/zod/v4/core/util.js +152 -0
  37. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  38. package/dist/node_modules/zod/v4/core/versions.js +10 -0
  39. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  40. package/dist/tsconfig.tsbuildinfo +1 -0
  41. package/dist/ui/accordion.d.ts +36 -0
  42. package/dist/ui/accordion.d.ts.map +1 -0
  43. package/dist/ui/accordion.js +93 -0
  44. package/dist/ui/accordion.js.map +1 -0
  45. package/dist/ui/alert-dialog.d.ts +72 -0
  46. package/dist/ui/alert-dialog.d.ts.map +1 -0
  47. package/dist/ui/alert-dialog.js +98 -0
  48. package/dist/ui/alert-dialog.js.map +1 -0
  49. package/dist/ui/alert.d.ts +37 -0
  50. package/dist/ui/alert.d.ts.map +1 -0
  51. package/dist/ui/alert.js +50 -0
  52. package/dist/ui/alert.js.map +1 -0
  53. package/dist/ui/aspect-ratio.d.ts +12 -0
  54. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  55. package/dist/ui/aspect-ratio.js +8 -0
  56. package/dist/ui/aspect-ratio.js.map +1 -0
  57. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
  58. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
  59. package/dist/ui/atoms/FilterSelect/FilterSelect.js +58 -0
  60. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
  61. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
  62. package/dist/ui/atoms/FilterSelect/index.js +3 -0
  63. package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
  64. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
  65. package/dist/ui/atoms/FilterSelect/types.js +0 -0
  66. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
  67. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
  68. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +48 -0
  69. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
  70. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
  71. package/dist/ui/atoms/LoadingSpinner/index.js +3 -0
  72. package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
  73. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
  74. package/dist/ui/atoms/Pagination/Pagination.js +163 -0
  75. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
  76. package/dist/ui/atoms/Pagination/index.d.ts +3 -0
  77. package/dist/ui/atoms/Pagination/index.js +3 -0
  78. package/dist/ui/atoms/Pagination/types.d.ts +16 -0
  79. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
  80. package/dist/ui/atoms/Pagination/types.js +0 -0
  81. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
  82. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
  83. package/dist/ui/atoms/SearchInput/SearchInput.js +50 -0
  84. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
  85. package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
  86. package/dist/ui/atoms/SearchInput/index.js +3 -0
  87. package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
  88. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
  89. package/dist/ui/atoms/SearchInput/types.js +0 -0
  90. package/dist/ui/avatar.d.ts +28 -0
  91. package/dist/ui/avatar.d.ts.map +1 -0
  92. package/dist/ui/avatar.js +28 -0
  93. package/dist/ui/avatar.js.map +1 -0
  94. package/dist/ui/badge.d.ts +22 -0
  95. package/dist/ui/badge.d.ts.map +1 -0
  96. package/dist/ui/badge.js +26 -0
  97. package/dist/ui/badge.js.map +1 -0
  98. package/dist/ui/breadcrumb.d.ts +39 -0
  99. package/dist/ui/breadcrumb.d.ts.map +1 -0
  100. package/dist/ui/breadcrumb.js +73 -0
  101. package/dist/ui/breadcrumb.js.map +1 -0
  102. package/dist/ui/button.d.ts +26 -0
  103. package/dist/ui/button.d.ts.map +1 -0
  104. package/dist/ui/button.js +75 -0
  105. package/dist/ui/button.js.map +1 -0
  106. package/dist/ui/card.d.ts +44 -0
  107. package/dist/ui/card.d.ts.map +1 -0
  108. package/dist/ui/card.js +52 -0
  109. package/dist/ui/card.js.map +1 -0
  110. package/dist/ui/carousel.d.ts +5 -0
  111. package/dist/ui/carousel.d.ts.map +1 -0
  112. package/dist/ui/carousel.js +6 -0
  113. package/dist/ui/carousel.js.map +1 -0
  114. package/dist/ui/checkbox.d.ts +17 -0
  115. package/dist/ui/checkbox.d.ts.map +1 -0
  116. package/dist/ui/checkbox.js +21 -0
  117. package/dist/ui/checkbox.js.map +1 -0
  118. package/dist/ui/collapsible.d.ts +25 -0
  119. package/dist/ui/collapsible.d.ts.map +1 -0
  120. package/dist/ui/collapsible.js +10 -0
  121. package/dist/ui/collapsible.js.map +1 -0
  122. package/dist/ui/command.d.ts +5 -0
  123. package/dist/ui/command.d.ts.map +1 -0
  124. package/dist/ui/command.js +6 -0
  125. package/dist/ui/command.js.map +1 -0
  126. package/dist/ui/context-menu.d.ts +110 -0
  127. package/dist/ui/context-menu.d.ts.map +1 -0
  128. package/dist/ui/context-menu.js +108 -0
  129. package/dist/ui/context-menu.js.map +1 -0
  130. package/dist/ui/date-picker.d.ts +24 -0
  131. package/dist/ui/date-picker.d.ts.map +1 -0
  132. package/dist/ui/date-picker.js +54 -0
  133. package/dist/ui/date-picker.js.map +1 -0
  134. package/dist/ui/date-range-picker.d.ts +31 -0
  135. package/dist/ui/date-range-picker.d.ts.map +1 -0
  136. package/dist/ui/date-range-picker.js +86 -0
  137. package/dist/ui/date-range-picker.js.map +1 -0
  138. package/dist/ui/datetime-picker.d.ts +28 -0
  139. package/dist/ui/datetime-picker.d.ts.map +1 -0
  140. package/dist/ui/datetime-picker.js +45 -0
  141. package/dist/ui/datetime-picker.js.map +1 -0
  142. package/dist/ui/dialog.d.ts +69 -0
  143. package/dist/ui/dialog.d.ts.map +1 -0
  144. package/dist/ui/dialog.js +81 -0
  145. package/dist/ui/dialog.js.map +1 -0
  146. package/dist/ui/dropdown-menu.d.ts +112 -0
  147. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  148. package/dist/ui/dropdown-menu.js +110 -0
  149. package/dist/ui/dropdown-menu.js.map +1 -0
  150. package/dist/ui/empty-state.d.ts +29 -0
  151. package/dist/ui/empty-state.d.ts.map +1 -0
  152. package/dist/ui/empty-state.js +46 -0
  153. package/dist/ui/empty-state.js.map +1 -0
  154. package/dist/ui/empty.d.ts +37 -0
  155. package/dist/ui/empty.d.ts.map +1 -0
  156. package/dist/ui/empty.js +63 -0
  157. package/dist/ui/empty.js.map +1 -0
  158. package/dist/ui/fab.d.ts +36 -0
  159. package/dist/ui/fab.d.ts.map +1 -0
  160. package/dist/ui/fab.js +104 -0
  161. package/dist/ui/fab.js.map +1 -0
  162. package/dist/ui/field.d.ts +67 -0
  163. package/dist/ui/field.d.ts.map +1 -0
  164. package/dist/ui/field.js +124 -0
  165. package/dist/ui/field.js.map +1 -0
  166. package/dist/ui/form.d.ts +50 -0
  167. package/dist/ui/form.d.ts.map +1 -0
  168. package/dist/ui/form.js +96 -0
  169. package/dist/ui/form.js.map +1 -0
  170. package/dist/ui/hover-card.d.ts +30 -0
  171. package/dist/ui/hover-card.d.ts.map +1 -0
  172. package/dist/ui/hover-card.js +33 -0
  173. package/dist/ui/hover-card.js.map +1 -0
  174. package/dist/ui/icons/Check.d.ts +2 -0
  175. package/dist/ui/icons/Check.js +9 -0
  176. package/dist/ui/icons/Check.js.map +1 -0
  177. package/dist/ui/icons/ChevronDown.d.ts +2 -0
  178. package/dist/ui/icons/ChevronDown.js +9 -0
  179. package/dist/ui/icons/ChevronDown.js.map +1 -0
  180. package/dist/ui/icons/ChevronRight.d.ts +2 -0
  181. package/dist/ui/icons/ChevronRight.js +9 -0
  182. package/dist/ui/icons/ChevronRight.js.map +1 -0
  183. package/dist/ui/icons/ChevronUp.d.ts +2 -0
  184. package/dist/ui/icons/ChevronUp.js +9 -0
  185. package/dist/ui/icons/ChevronUp.js.map +1 -0
  186. package/dist/ui/icons/CircleUser.d.ts +2 -0
  187. package/dist/ui/icons/CircleUser.js +9 -0
  188. package/dist/ui/icons/CircleUser.js.map +1 -0
  189. package/dist/ui/icons/Info.d.ts +2 -0
  190. package/dist/ui/icons/Info.js +9 -0
  191. package/dist/ui/icons/Info.js.map +1 -0
  192. package/dist/ui/icons/Key.d.ts +2 -0
  193. package/dist/ui/icons/Key.js +9 -0
  194. package/dist/ui/icons/Key.js.map +1 -0
  195. package/dist/ui/icons/MoonStar.d.ts +2 -0
  196. package/dist/ui/icons/MoonStar.js +9 -0
  197. package/dist/ui/icons/MoonStar.js.map +1 -0
  198. package/dist/ui/icons/Sun.d.ts +2 -0
  199. package/dist/ui/icons/Sun.js +9 -0
  200. package/dist/ui/icons/Sun.js.map +1 -0
  201. package/dist/ui/icons/X.d.ts +2 -0
  202. package/dist/ui/icons/X.js +9 -0
  203. package/dist/ui/icons/X.js.map +1 -0
  204. package/dist/ui/icons/iconWithClassName.d.ts +7 -0
  205. package/dist/ui/icons/iconWithClassName.d.ts.map +1 -0
  206. package/dist/ui/icons/iconWithClassName.js +16 -0
  207. package/dist/ui/icons/iconWithClassName.js.map +1 -0
  208. package/dist/ui/input.d.ts +15 -0
  209. package/dist/ui/input.d.ts.map +1 -0
  210. package/dist/ui/input.js +17 -0
  211. package/dist/ui/input.js.map +1 -0
  212. package/dist/ui/label.d.ts +16 -0
  213. package/dist/ui/label.d.ts.map +1 -0
  214. package/dist/ui/label.js +24 -0
  215. package/dist/ui/label.js.map +1 -0
  216. package/dist/ui/link.d.ts +14 -0
  217. package/dist/ui/link.d.ts.map +1 -0
  218. package/dist/ui/link.js +16 -0
  219. package/dist/ui/link.js.map +1 -0
  220. package/dist/ui/loading-button.d.ts +20 -0
  221. package/dist/ui/loading-button.d.ts.map +1 -0
  222. package/dist/ui/loading-button.js +22 -0
  223. package/dist/ui/loading-button.js.map +1 -0
  224. package/dist/ui/loading-overlay.d.ts +16 -0
  225. package/dist/ui/loading-overlay.d.ts.map +1 -0
  226. package/dist/ui/loading-overlay.js +44 -0
  227. package/dist/ui/loading-overlay.js.map +1 -0
  228. package/dist/ui/loading-screen.d.ts +14 -0
  229. package/dist/ui/loading-screen.d.ts.map +1 -0
  230. package/dist/ui/loading-screen.js +93 -0
  231. package/dist/ui/loading-screen.js.map +1 -0
  232. package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
  233. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
  234. package/dist/ui/marketing/FeatureGrid.js +35 -0
  235. package/dist/ui/marketing/FeatureGrid.js.map +1 -0
  236. package/dist/ui/marketing/Hero.d.ts +28 -0
  237. package/dist/ui/marketing/Hero.d.ts.map +1 -0
  238. package/dist/ui/marketing/Hero.js +52 -0
  239. package/dist/ui/marketing/Hero.js.map +1 -0
  240. package/dist/ui/marketing/PricingTable.d.ts +25 -0
  241. package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
  242. package/dist/ui/marketing/PricingTable.js +60 -0
  243. package/dist/ui/marketing/PricingTable.js.map +1 -0
  244. package/dist/ui/marketing/index.d.ts +4 -0
  245. package/dist/ui/marketing/index.js +5 -0
  246. package/dist/ui/menubar.d.ts +115 -0
  247. package/dist/ui/menubar.d.ts.map +1 -0
  248. package/dist/ui/menubar.js +120 -0
  249. package/dist/ui/menubar.js.map +1 -0
  250. package/dist/ui/molecules/Autocomplete/index.d.ts +5 -0
  251. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
  252. package/dist/ui/molecules/Autocomplete/index.js +6 -0
  253. package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
  254. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
  255. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
  256. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +106 -0
  257. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
  258. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
  259. package/dist/ui/molecules/SearchAndFilter/index.js +3 -0
  260. package/dist/ui/molecules/SearchAndFilter/types.d.ts +25 -0
  261. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
  262. package/dist/ui/molecules/SearchAndFilter/types.js +0 -0
  263. package/dist/ui/molecules/SkeletonList.d.ts +16 -0
  264. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
  265. package/dist/ui/molecules/SkeletonList.js +15 -0
  266. package/dist/ui/molecules/SkeletonList.js.map +1 -0
  267. package/dist/ui/nativewind-env.d.ts +1 -0
  268. package/dist/ui/navigation-menu.d.ts +68 -0
  269. package/dist/ui/navigation-menu.d.ts.map +1 -0
  270. package/dist/ui/navigation-menu.js +87 -0
  271. package/dist/ui/navigation-menu.js.map +1 -0
  272. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
  273. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  274. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +108 -0
  275. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
  276. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  277. package/dist/ui/organisms/ErrorBoundary/index.js +3 -0
  278. package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
  279. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
  280. package/dist/ui/organisms/ListPage/ListPage.js +198 -0
  281. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
  282. package/dist/ui/organisms/ListPage/index.d.ts +3 -0
  283. package/dist/ui/organisms/ListPage/index.js +3 -0
  284. package/dist/ui/organisms/ListPage/types.d.ts +42 -0
  285. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
  286. package/dist/ui/organisms/ListPage/types.js +0 -0
  287. package/dist/ui/page-header.d.ts +27 -0
  288. package/dist/ui/page-header.d.ts.map +1 -0
  289. package/dist/ui/page-header.js +41 -0
  290. package/dist/ui/page-header.js.map +1 -0
  291. package/dist/ui/password-strength.d.ts +21 -0
  292. package/dist/ui/password-strength.d.ts.map +1 -0
  293. package/dist/ui/password-strength.js +99 -0
  294. package/dist/ui/password-strength.js.map +1 -0
  295. package/dist/ui/popover.d.ts +30 -0
  296. package/dist/ui/popover.d.ts.map +1 -0
  297. package/dist/ui/popover.js +35 -0
  298. package/dist/ui/popover.js.map +1 -0
  299. package/dist/ui/progress.d.ts +17 -0
  300. package/dist/ui/progress.d.ts.map +1 -0
  301. package/dist/ui/progress.js +40 -0
  302. package/dist/ui/progress.js.map +1 -0
  303. package/dist/ui/radio-group.d.ts +15 -0
  304. package/dist/ui/radio-group.d.ts.map +1 -0
  305. package/dist/ui/radio-group.js +23 -0
  306. package/dist/ui/radio-group.js.map +1 -0
  307. package/dist/ui/select.d.ts +84 -0
  308. package/dist/ui/select.d.ts.map +1 -0
  309. package/dist/ui/select.js +111 -0
  310. package/dist/ui/select.js.map +1 -0
  311. package/dist/ui/separator.d.ts +16 -0
  312. package/dist/ui/separator.d.ts.map +1 -0
  313. package/dist/ui/separator.js +18 -0
  314. package/dist/ui/separator.js.map +1 -0
  315. package/dist/ui/sheet.d.ts +5 -0
  316. package/dist/ui/sheet.d.ts.map +1 -0
  317. package/dist/ui/sheet.js +6 -0
  318. package/dist/ui/sheet.js.map +1 -0
  319. package/dist/ui/sidebar.d.ts +5 -0
  320. package/dist/ui/sidebar.d.ts.map +1 -0
  321. package/dist/ui/sidebar.js +6 -0
  322. package/dist/ui/sidebar.js.map +1 -0
  323. package/dist/ui/skeleton.d.ts +12 -0
  324. package/dist/ui/skeleton.d.ts.map +1 -0
  325. package/dist/ui/skeleton.js +24 -0
  326. package/dist/ui/skeleton.js.map +1 -0
  327. package/dist/ui/stack.d.ts +77 -0
  328. package/dist/ui/stack.d.ts.map +1 -0
  329. package/dist/ui/stack.js +238 -0
  330. package/dist/ui/stack.js.map +1 -0
  331. package/dist/ui/stepper.d.ts +23 -0
  332. package/dist/ui/stepper.d.ts.map +1 -0
  333. package/dist/ui/stepper.js +38 -0
  334. package/dist/ui/stepper.js.map +1 -0
  335. package/dist/ui/switch.d.ts +15 -0
  336. package/dist/ui/switch.d.ts.map +1 -0
  337. package/dist/ui/switch.js +54 -0
  338. package/dist/ui/switch.js.map +1 -0
  339. package/dist/ui/table.d.ts +51 -0
  340. package/dist/ui/table.d.ts.map +1 -0
  341. package/dist/ui/table.js +57 -0
  342. package/dist/ui/table.js.map +1 -0
  343. package/dist/ui/tabs.d.ts +33 -0
  344. package/dist/ui/tabs.d.ts.map +1 -0
  345. package/dist/ui/tabs.js +29 -0
  346. package/dist/ui/tabs.js.map +1 -0
  347. package/dist/ui/text.d.ts +21 -0
  348. package/dist/ui/text.d.ts.map +1 -0
  349. package/dist/ui/text.js +19 -0
  350. package/dist/ui/text.js.map +1 -0
  351. package/dist/ui/textarea.d.ts +10 -0
  352. package/dist/ui/textarea.d.ts.map +1 -0
  353. package/dist/ui/textarea.js +20 -0
  354. package/dist/ui/textarea.js.map +1 -0
  355. package/dist/ui/time-picker.d.ts +22 -0
  356. package/dist/ui/time-picker.d.ts.map +1 -0
  357. package/dist/ui/time-picker.js +53 -0
  358. package/dist/ui/time-picker.js.map +1 -0
  359. package/dist/ui/toggle-group.d.ts +36 -0
  360. package/dist/ui/toggle-group.d.ts.map +1 -0
  361. package/dist/ui/toggle-group.js +55 -0
  362. package/dist/ui/toggle-group.js.map +1 -0
  363. package/dist/ui/toggle.d.ts +34 -0
  364. package/dist/ui/toggle.d.ts.map +1 -0
  365. package/dist/ui/toggle.js +67 -0
  366. package/dist/ui/toggle.js.map +1 -0
  367. package/dist/ui/tooltip.d.ts +32 -0
  368. package/dist/ui/tooltip.d.ts.map +1 -0
  369. package/dist/ui/tooltip.js +41 -0
  370. package/dist/ui/tooltip.js.map +1 -0
  371. package/dist/ui/typography.d.ts +65 -0
  372. package/dist/ui/typography.d.ts.map +1 -0
  373. package/dist/ui/typography.js +88 -0
  374. package/dist/ui/typography.js.map +1 -0
  375. package/dist/ui/useColorScheme.d.ts +12 -0
  376. package/dist/ui/useColorScheme.d.ts.map +1 -0
  377. package/dist/ui/useColorScheme.js +17 -0
  378. package/dist/ui/useColorScheme.js.map +1 -0
  379. package/dist/ui/useListState.d.ts +34 -0
  380. package/dist/ui/useListState.d.ts.map +1 -0
  381. package/dist/ui/useListState.js +75 -0
  382. package/dist/ui/useListState.js.map +1 -0
  383. package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
  384. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
  385. package/dist/ui/usecases/UseCaseCard.js +35 -0
  386. package/dist/ui/usecases/UseCaseCard.js.map +1 -0
  387. package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
  388. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
  389. package/dist/ui/usecases/UserStoryCard.js +36 -0
  390. package/dist/ui/usecases/UserStoryCard.js.map +1 -0
  391. package/dist/ui/usecases/index.d.ts +3 -0
  392. package/dist/ui/usecases/index.js +4 -0
  393. package/dist/ui/utils.d.ts +7 -0
  394. package/dist/ui/utils.d.ts.map +1 -0
  395. package/dist/ui/utils.js +11 -0
  396. package/dist/ui/utils.js.map +1 -0
  397. package/package.json +212 -0
@@ -0,0 +1,108 @@
1
+ import { ChevronDown } from "./icons/ChevronDown.js";
2
+ import { cn } from "./utils.js";
3
+ import { TextClassContext } from "./text.js";
4
+ import { Check } from "./icons/Check.js";
5
+ import { ChevronRight } from "./icons/ChevronRight.js";
6
+ import { ChevronUp } from "./icons/ChevronUp.js";
7
+ import "react";
8
+ import { Platform, StyleSheet, Text, View } from "react-native";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ import * as ContextMenuPrimitive from "@rn-primitives/context-menu";
11
+
12
+ //#region ui/context-menu.tsx
13
+ const ContextMenu = ContextMenuPrimitive.Root;
14
+ const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
15
+ const ContextMenuGroup = ContextMenuPrimitive.Group;
16
+ const ContextMenuSub = ContextMenuPrimitive.Sub;
17
+ const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
18
+ function ContextMenuSubTrigger({ className, inset, children,...props }) {
19
+ const { open } = ContextMenuPrimitive.useSubContext();
20
+ const Icon = Platform.OS === "web" ? ChevronRight : open ? ChevronUp : ChevronDown;
21
+ return /* @__PURE__ */ jsx(TextClassContext.Provider, {
22
+ value: cn("native:text-lg text-primary text-sm select-none", open && "native:text-accent-foreground"),
23
+ children: /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, {
24
+ className: cn("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", open && "bg-accent", inset && "pl-8", className),
25
+ ...props,
26
+ children: [children, /* @__PURE__ */ jsx(Icon, {
27
+ size: 18,
28
+ className: "text-foreground ml-auto"
29
+ })]
30
+ })
31
+ });
32
+ }
33
+ function ContextMenuSubContent({ className,...props }) {
34
+ const { open } = ContextMenuPrimitive.useSubContext();
35
+ return /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, {
36
+ className: cn("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", open ? "web:animate-in web:fade-in-0 web:zoom-in-95" : "web:animate-out web:fade-out-0 web:zoom-out", className),
37
+ ...props
38
+ });
39
+ }
40
+ function ContextMenuContent({ className, overlayClassName, overlayStyle, portalHost,...props }) {
41
+ const { open } = ContextMenuPrimitive.useRootContext();
42
+ return /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, {
43
+ hostName: portalHost,
44
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Overlay, {
45
+ style: overlayStyle ? StyleSheet.flatten([Platform.OS !== "web" ? StyleSheet.absoluteFill : void 0, overlayStyle]) : Platform.OS !== "web" ? StyleSheet.absoluteFill : void 0,
46
+ className: overlayClassName,
47
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, {
48
+ className: cn("border-border bg-popover shadow-foreground/5 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 min-w-32 overflow-hidden rounded-md border p-1 shadow-md", open ? "web:animate-in web:fade-in-0 web:zoom-in-95" : "web:animate-out web:fade-out-0 web:zoom-out-95", className),
49
+ ...props
50
+ })
51
+ })
52
+ });
53
+ }
54
+ function ContextMenuItem({ className, inset,...props }) {
55
+ return /* @__PURE__ */ jsx(TextClassContext.Provider, {
56
+ value: "select-none text-sm native:text-lg text-popover-foreground web:group-focus:text-accent-foreground",
57
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, {
58
+ className: cn("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", inset && "pl-8", props.disabled && "web:pointer-events-none opacity-50", className),
59
+ ...props
60
+ })
61
+ });
62
+ }
63
+ function ContextMenuCheckboxItem({ className, children,...props }) {
64
+ return /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, {
65
+ className: cn("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", props.disabled && "web:pointer-events-none opacity-50", className),
66
+ ...props,
67
+ children: [/* @__PURE__ */ jsx(View, {
68
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
69
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, {
70
+ size: 14,
71
+ strokeWidth: 3,
72
+ className: "text-foreground"
73
+ }) })
74
+ }), children]
75
+ });
76
+ }
77
+ function ContextMenuRadioItem({ className, children,...props }) {
78
+ return /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, {
79
+ className: cn("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", props.disabled && "web:pointer-events-none opacity-50", className),
80
+ ...props,
81
+ children: [/* @__PURE__ */ jsx(View, {
82
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
83
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(View, { className: "bg-foreground h-2 w-2 rounded-full" }) })
84
+ }), children]
85
+ });
86
+ }
87
+ function ContextMenuLabel({ className, inset,...props }) {
88
+ return /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, {
89
+ className: cn("native:text-base text-foreground web:cursor-default px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className),
90
+ ...props
91
+ });
92
+ }
93
+ function ContextMenuSeparator({ className,...props }) {
94
+ return /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, {
95
+ className: cn("bg-border -mx-1 my-1 h-px", className),
96
+ ...props
97
+ });
98
+ }
99
+ function ContextMenuShortcut({ className,...props }) {
100
+ return /* @__PURE__ */ jsx(Text, {
101
+ className: cn("native:text-sm text-muted-foreground ml-auto text-xs tracking-widest", className),
102
+ ...props
103
+ });
104
+ }
105
+
106
+ //#endregion
107
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
108
+ //# sourceMappingURL=context-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.js","names":[],"sources":["../../ui/context-menu.tsx"],"sourcesContent":["import * as ContextMenuPrimitive from '@rn-primitives/context-menu';\nimport * as React from 'react';\nimport {\n Platform,\n type StyleProp,\n StyleSheet,\n Text,\n type TextProps,\n View,\n type ViewStyle,\n} from 'react-native';\nimport { Check } from './icons/Check';\nimport { ChevronDown } from './icons/ChevronDown';\nimport { ChevronRight } from './icons/ChevronRight';\nimport { ChevronUp } from './icons/ChevronUp';\nimport { TextClassContext } from './text';\nimport { cn } from './utils';\n\nconst ContextMenu = ContextMenuPrimitive.Root;\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubTriggerProps & {\n ref?: React.RefObject<ContextMenuPrimitive.SubTriggerRef>;\n children?: React.ReactNode;\n inset?: boolean;\n}) {\n const { open } = ContextMenuPrimitive.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 <ContextMenuPrimitive.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 </ContextMenuPrimitive.SubTrigger>\n </TextClassContext.Provider>\n );\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: ContextMenuPrimitive.SubContentProps & {\n ref?: React.RefObject<ContextMenuPrimitive.SubContentRef>;\n}) {\n const { open } = ContextMenuPrimitive.useSubContext();\n return (\n <ContextMenuPrimitive.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 ContextMenuContent({\n className,\n overlayClassName,\n overlayStyle,\n portalHost,\n ...props\n}: ContextMenuPrimitive.ContentProps & {\n ref?: React.RefObject<ContextMenuPrimitive.ContentRef>;\n overlayStyle?: StyleProp<ViewStyle>;\n overlayClassName?: string;\n portalHost?: string;\n}) {\n const { open } = ContextMenuPrimitive.useRootContext();\n return (\n <ContextMenuPrimitive.Portal hostName={portalHost}>\n <ContextMenuPrimitive.Overlay\n style={\n overlayStyle\n ? StyleSheet.flatten([\n Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined,\n overlayStyle as typeof StyleSheet.absoluteFill,\n ])\n : Platform.OS !== 'web'\n ? StyleSheet.absoluteFill\n : undefined\n }\n className={overlayClassName}\n >\n <ContextMenuPrimitive.Content\n className={cn(\n 'border-border bg-popover shadow-foreground/5 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 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-95',\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Overlay>\n </ContextMenuPrimitive.Portal>\n );\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.ItemProps & {\n ref?: React.RefObject<ContextMenuPrimitive.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 <ContextMenuPrimitive.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 ContextMenuCheckboxItem({\n className,\n children,\n ...props\n}: ContextMenuPrimitive.CheckboxItemProps & {\n ref?: React.RefObject<ContextMenuPrimitive.CheckboxItemRef>;\n children?: React.ReactNode;\n}) {\n return (\n <ContextMenuPrimitive.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 {...props}\n >\n <View className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check size={14} strokeWidth={3} className=\"text-foreground\" />\n </ContextMenuPrimitive.ItemIndicator>\n </View>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n ...props\n}: ContextMenuPrimitive.RadioItemProps & {\n ref?: React.RefObject<ContextMenuPrimitive.RadioItemRef>;\n children?: React.ReactNode;\n}) {\n return (\n <ContextMenuPrimitive.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 <ContextMenuPrimitive.ItemIndicator>\n <View className=\"bg-foreground h-2 w-2 rounded-full\" />\n </ContextMenuPrimitive.ItemIndicator>\n </View>\n {children}\n </ContextMenuPrimitive.RadioItem>\n );\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.LabelProps & {\n ref?: React.RefObject<ContextMenuPrimitive.LabelRef>;\n className?: string;\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.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 ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuPrimitive.SeparatorProps & {\n ref?: React.RefObject<ContextMenuPrimitive.SeparatorRef>;\n}) {\n return (\n <ContextMenuPrimitive.Separator\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuShortcut({ 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 ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n};\n"],"mappings":";;;;;;;;;;;;AAkBA,MAAM,cAAc,qBAAqB;AACzC,MAAM,qBAAqB,qBAAqB;AAChD,MAAM,mBAAmB,qBAAqB;AAC9C,MAAM,iBAAiB,qBAAqB;AAC5C,MAAM,wBAAwB,qBAAqB;AAEnD,SAAS,sBAAsB,EAC7B,WACA,OACA,SACA,GAAG,SAKF;CACD,MAAM,EAAE,SAAS,qBAAqB,eAAe;CACrD,MAAM,OACJ,SAAS,OAAO,QAAQ,eAAe,OAAO,YAAY;AAC5D,QACE,oBAAC,iBAAiB;EAChB,OAAO,GACL,mDACA,QAAQ,gCACT;YAED,qBAAC,qBAAqB;GACpB,WAAW,GACT,sLACA,QAAQ,aACR,SAAS,QACT,UACD;GACD,GAAI;cAEH,UACD,oBAAC;IAAK,MAAM;IAAI,WAAU;KAA4B;IACtB;GACR;;AAIhC,SAAS,sBAAsB,EAC7B,UACA,GAAG,SAGF;CACD,MAAM,EAAE,SAAS,qBAAqB,eAAe;AACrD,QACE,oBAAC,qBAAqB;EACpB,WAAW,GACT,+QACA,OACI,gDACA,+CACJ,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,kBACA,cACA,WACA,GAAG,SAMF;CACD,MAAM,EAAE,SAAS,qBAAqB,gBAAgB;AACtD,QACE,oBAAC,qBAAqB;EAAO,UAAU;YACrC,oBAAC,qBAAqB;GACpB,OACE,eACI,WAAW,QAAQ,CACjB,SAAS,OAAO,QAAQ,WAAW,eAAe,QAClD,aACD,CAAC,GACF,SAAS,OAAO,QACd,WAAW,eACX;GAER,WAAW;aAEX,oBAAC,qBAAqB;IACpB,WAAW,GACT,0RACA,OACI,gDACA,kDACJ,UACD;IACD,GAAI;KACJ;IAC2B;GACH;;AAIlC,SAAS,gBAAgB,EACvB,WACA,MACA,GAAG,SAKF;AACD,QACE,oBAAC,iBAAiB;EAAS,OAAM;YAC/B,oBAAC,qBAAqB;GACpB,WAAW,GACT,qLACA,SAAS,QACT,MAAM,YAAY,sCAClB,UACD;GACD,GAAI;IACJ;GACwB;;AAIhC,SAAS,wBAAwB,EAC/B,WACA,SACA,GAAG,SAIF;AACD,QACE,qBAAC,qBAAqB;EACpB,WAAW,GACT,oKACA,MAAM,YAAY,sCAClB,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,qBAAqB,2BACpB,oBAAC;IAAM,MAAM;IAAI,aAAa;IAAG,WAAU;KAAoB,GAC5B;IAChC,EACN;GACiC;;AAIxC,SAAS,qBAAqB,EAC5B,WACA,SACA,GAAG,SAIF;AACD,QACE,qBAAC,qBAAqB;EACpB,WAAW,GACT,oKACA,MAAM,YAAY,sCAClB,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,qBAAqB,2BACpB,oBAAC,QAAK,WAAU,uCAAuC,GACpB;IAChC,EACN;GAC8B;;AAIrC,SAAS,iBAAiB,EACxB,WACA,MACA,GAAG,SAKF;AACD,QACE,oBAAC,qBAAqB;EACpB,WAAW,GACT,yFACA,SAAS,QACT,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,qBAAqB,EAC5B,UACA,GAAG,SAGF;AACD,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAAE,UAAW,GAAG,SAAoB;AAC/D,QACE,oBAAC;EACC,WAAW,GACT,wEACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,24 @@
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+
3
+ //#region ui/date-picker.d.ts
4
+ interface DatePickerProps {
5
+ value: Date | null;
6
+ onChange: (date: Date | null) => void;
7
+ disabled?: boolean;
8
+ minDate?: Date;
9
+ maxDate?: Date;
10
+ placeholder?: string;
11
+ className?: string;
12
+ }
13
+ declare function DatePicker({
14
+ value,
15
+ onChange,
16
+ disabled,
17
+ minDate,
18
+ maxDate,
19
+ placeholder,
20
+ className
21
+ }: DatePickerProps): react_jsx_runtime0.JSX.Element;
22
+ //#endregion
23
+ export { DatePicker, DatePickerProps };
24
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","names":[],"sources":["../../ui/date-picker.tsx"],"sourcesContent":[],"mappings":";;;UAUiB,eAAA;SACR;mBACU;EAFF,QAAA,CAAA,EAAA,OAAe;EACvB,OAAA,CAAA,EAGG,IAHH;EACU,OAAA,CAAA,EAGP,IAHO;EAEP,WAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,MAAA;;AAkBI,iBAAA,UAAA,CAAU;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA,WAAA;EAAA;AAAA,CAAA,EAQvB,eARuB,CAAA,EAQR,kBAAA,CAAA,GAAA,CAAA,OARQ"}
@@ -0,0 +1,54 @@
1
+ import { cn } from "./utils.js";
2
+ import { Text as Text$1 } from "./text.js";
3
+ import React, { useMemo, useState } from "react";
4
+ import { Platform, Pressable, View } from "react-native";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import DateTimePicker from "@react-native-community/datetimepicker";
7
+
8
+ //#region ui/date-picker.tsx
9
+ function formatDateDisplay(date) {
10
+ if (!date) return "";
11
+ try {
12
+ return date.toLocaleDateString(void 0, {
13
+ day: "2-digit",
14
+ month: "long",
15
+ year: "numeric"
16
+ });
17
+ } catch {
18
+ return "";
19
+ }
20
+ }
21
+ function DatePicker({ value, onChange, disabled, minDate, maxDate, placeholder = "Select date", className }) {
22
+ const [show, setShow] = useState(false);
23
+ const pickerProps = useMemo(() => ({
24
+ minimumDate: minDate,
25
+ maximumDate: maxDate,
26
+ timeZoneName: void 0
27
+ }), [minDate, maxDate]);
28
+ const handleChange = (_event, selectedDate) => {
29
+ if (Platform.OS !== "ios") setShow(false);
30
+ if (selectedDate) onChange(selectedDate);
31
+ };
32
+ return /* @__PURE__ */ jsxs(View, {
33
+ className: cn("w-full", className),
34
+ children: [/* @__PURE__ */ jsx(Pressable, {
35
+ disabled,
36
+ onPress: () => setShow(true),
37
+ className: cn("border-input bg-background h-12 flex-row items-center rounded-md border px-3", disabled && "opacity-50"),
38
+ children: /* @__PURE__ */ jsx(Text$1, {
39
+ className: cn("text-foreground text-base", !value && "opacity-50"),
40
+ children: value ? formatDateDisplay(value) : placeholder
41
+ })
42
+ }), show && /* @__PURE__ */ jsx(DateTimePicker, {
43
+ value: value ?? /* @__PURE__ */ new Date(),
44
+ mode: "date",
45
+ display: Platform.OS === "ios" ? "inline" : "default",
46
+ onChange: handleChange,
47
+ ...pickerProps
48
+ })]
49
+ });
50
+ }
51
+
52
+ //#endregion
53
+ export { DatePicker };
54
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.js","names":["Text"],"sources":["../../ui/date-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 DatePickerProps {\n value: Date | null;\n onChange: (date: Date | null) => void;\n disabled?: boolean;\n minDate?: Date;\n maxDate?: Date;\n placeholder?: string;\n className?: string;\n}\n\nfunction formatDateDisplay(date: Date | null) {\n if (!date) return '';\n try {\n return date.toLocaleDateString(undefined, {\n day: '2-digit',\n month: 'long',\n year: 'numeric',\n });\n } catch {\n return '';\n }\n}\n\nexport function DatePicker({\n value,\n onChange,\n disabled,\n minDate,\n maxDate,\n placeholder = 'Select date',\n className,\n}: DatePickerProps) {\n const [show, setShow] = useState(false);\n\n const pickerProps = useMemo<Partial<AndroidNativeProps & IOSNativeProps>>(\n () => ({\n minimumDate: minDate,\n maximumDate: maxDate,\n timeZoneName: undefined,\n }),\n [minDate, maxDate]\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 ? formatDateDisplay(value) : placeholder}\n </Text>\n </Pressable>\n {show && (\n <DateTimePicker\n value={value ?? new Date()}\n mode=\"date\"\n display={Platform.OS === 'ios' ? 'inline' : 'default'}\n onChange={handleChange}\n {...(pickerProps as any)}\n />\n )}\n </View>\n );\n}\n"],"mappings":";;;;;;;;AAoBA,SAAS,kBAAkB,MAAmB;AAC5C,KAAI,CAAC,KAAM,QAAO;AAClB,KAAI;AACF,SAAO,KAAK,mBAAmB,QAAW;GACxC,KAAK;GACL,OAAO;GACP,MAAM;GACP,CAAC;SACI;AACN,SAAO;;;AAIX,SAAgB,WAAW,EACzB,OACA,UACA,UACA,SACA,SACA,cAAc,eACd,aACkB;CAClB,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CAEvC,MAAM,cAAc,eACX;EACL,aAAa;EACb,aAAa;EACb,cAAc;EACf,GACD,CAAC,SAAS,QAAQ,CACnB;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,MAAM,GAAG;KAC/B;IACG,EACX,QACC,oBAAC;GACC,OAAO,yBAAS,IAAI,MAAM;GAC1B,MAAK;GACL,SAAS,SAAS,OAAO,QAAQ,WAAW;GAC5C,UAAU;GACV,GAAK;IACL;GAEC"}
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime12 from "react/jsx-runtime";
2
+
3
+ //#region ui/date-range-picker.d.ts
4
+ interface DateRange {
5
+ start: Date | null;
6
+ end: Date | null;
7
+ }
8
+ interface DateRangePickerProps {
9
+ value: DateRange;
10
+ onChange: (range: DateRange) => void;
11
+ disabled?: boolean;
12
+ minDate?: Date;
13
+ maxDate?: Date;
14
+ placeholders?: {
15
+ start?: string;
16
+ end?: string;
17
+ };
18
+ className?: string;
19
+ }
20
+ declare function DateRangePicker({
21
+ value,
22
+ onChange,
23
+ disabled,
24
+ minDate,
25
+ maxDate,
26
+ placeholders,
27
+ className
28
+ }: DateRangePickerProps): react_jsx_runtime12.JSX.Element;
29
+ //#endregion
30
+ export { DateRange, DateRangePicker, DateRangePickerProps };
31
+ //# sourceMappingURL=date-range-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.d.ts","names":[],"sources":["../../ui/date-range-picker.tsx"],"sourcesContent":[],"mappings":";;;UAOiB,SAAA;SACR;OACF;AAFP;AAKiB,UAAA,oBAAA,CAAoB;EAC5B,KAAA,EAAA,SAAA;EACW,QAAA,EAAA,CAAA,KAAA,EAAA,SAAA,EAAA,GAAA,IAAA;EAER,QAAA,CAAA,EAAA,OAAA;EACA,OAAA,CAAA,EADA,IACA;EAAI,OAAA,CAAA,EAAJ,IAAI;EAcA,YAAA,CAAA,EAAA;IACd,KAAA,CAAA,EAAA,MAAA;IACA,GAAA,CAAA,EAAA,MAAA;EACA,CAAA;EACA,SAAA,CAAA,EAAA,MAAA;;AAEA,iBANc,eAAA,CAMd;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA,YAAA;EAAA;AAAA,CAAA,EAEC,oBAFD,CAAA,EAEqB,mBAAA,CAAA,GAAA,CAAA,OAFrB"}
@@ -0,0 +1,86 @@
1
+ import { cn } from "./utils.js";
2
+ import { Text as Text$1 } from "./text.js";
3
+ import { HStack, VStack } from "./stack.js";
4
+ import React, { useMemo, useState } from "react";
5
+ import { Platform, Pressable, View } from "react-native";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import DateTimePicker from "@react-native-community/datetimepicker";
8
+
9
+ //#region ui/date-range-picker.tsx
10
+ function fmt(d) {
11
+ if (!d) return "";
12
+ try {
13
+ return d.toLocaleDateString();
14
+ } catch {
15
+ return "";
16
+ }
17
+ }
18
+ function DateRangePicker({ value, onChange, disabled, minDate, maxDate, placeholders, className }) {
19
+ const [showStart, setShowStart] = useState(false);
20
+ const [showEnd, setShowEnd] = useState(false);
21
+ const pickerCommon = useMemo(() => ({
22
+ minimumDate: minDate,
23
+ maximumDate: maxDate
24
+ }), [minDate, maxDate]);
25
+ const handleStart = (_, d) => {
26
+ if (Platform.OS !== "ios") setShowStart(false);
27
+ if (!d) return;
28
+ onChange({
29
+ start: d,
30
+ end: value.end && d > value.end ? d : value.end
31
+ });
32
+ };
33
+ const handleEnd = (_, d) => {
34
+ if (Platform.OS !== "ios") setShowEnd(false);
35
+ if (!d) return;
36
+ onChange({
37
+ start: value.start && d < value.start ? d : value.start,
38
+ end: d
39
+ });
40
+ };
41
+ return /* @__PURE__ */ jsxs(VStack, {
42
+ className: cn("w-full", className),
43
+ spacing: "sm",
44
+ children: [
45
+ /* @__PURE__ */ jsxs(HStack, {
46
+ gap: "sm",
47
+ children: [/* @__PURE__ */ jsx(Pressable, {
48
+ disabled,
49
+ onPress: () => setShowStart(true),
50
+ className: cn("border-input bg-background h-12 flex-1 flex-row items-center rounded-md border px-3", disabled && "opacity-50"),
51
+ children: /* @__PURE__ */ jsx(Text$1, {
52
+ className: cn("text-foreground text-base", !value.start && "opacity-50"),
53
+ children: value.start ? fmt(value.start) : placeholders?.start || "Start date"
54
+ })
55
+ }), /* @__PURE__ */ jsx(Pressable, {
56
+ disabled,
57
+ onPress: () => setShowEnd(true),
58
+ className: cn("border-input bg-background h-12 flex-1 flex-row items-center rounded-md border px-3", disabled && "opacity-50"),
59
+ children: /* @__PURE__ */ jsx(Text$1, {
60
+ className: cn("text-foreground text-base", !value.end && "opacity-50"),
61
+ children: value.end ? fmt(value.end) : placeholders?.end || "End date"
62
+ })
63
+ })]
64
+ }),
65
+ showStart && /* @__PURE__ */ jsx(DateTimePicker, {
66
+ value: value.start ?? /* @__PURE__ */ new Date(),
67
+ mode: "date",
68
+ display: Platform.OS === "ios" ? "inline" : "default",
69
+ onChange: handleStart,
70
+ ...pickerCommon
71
+ }),
72
+ showEnd && /* @__PURE__ */ jsx(DateTimePicker, {
73
+ value: value.end ?? value.start ?? /* @__PURE__ */ new Date(),
74
+ mode: "date",
75
+ display: Platform.OS === "ios" ? "inline" : "default",
76
+ onChange: handleEnd,
77
+ minimumDate: value.start ?? minDate,
78
+ maximumDate: maxDate
79
+ })
80
+ ]
81
+ });
82
+ }
83
+
84
+ //#endregion
85
+ export { DateRangePicker };
86
+ //# sourceMappingURL=date-range-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.js","names":["Text"],"sources":["../../ui/date-range-picker.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport { Platform, Pressable, View } from 'react-native';\nimport DateTimePicker from '@react-native-community/datetimepicker';\nimport { HStack, VStack } from './stack';\nimport { Text } from './text';\nimport { cn } from './utils';\n\nexport interface DateRange {\n start: Date | null;\n end: Date | null;\n}\n\nexport interface DateRangePickerProps {\n value: DateRange;\n onChange: (range: DateRange) => void;\n disabled?: boolean;\n minDate?: Date;\n maxDate?: Date;\n placeholders?: { start?: string; end?: string };\n className?: string;\n}\n\nfunction fmt(d: Date | null) {\n if (!d) return '';\n try {\n return d.toLocaleDateString();\n } catch {\n return '';\n }\n}\n\nexport function DateRangePicker({\n value,\n onChange,\n disabled,\n minDate,\n maxDate,\n placeholders,\n className,\n}: DateRangePickerProps) {\n const [showStart, setShowStart] = useState(false);\n const [showEnd, setShowEnd] = useState(false);\n\n const pickerCommon = useMemo(\n () => ({ minimumDate: minDate, maximumDate: maxDate }),\n [minDate, maxDate]\n );\n\n const handleStart = (_: any, d?: Date) => {\n if (Platform.OS !== 'ios') setShowStart(false);\n if (!d) return;\n const end = value.end && d > value.end ? d : value.end;\n onChange({ start: d, end });\n };\n const handleEnd = (_: any, d?: Date) => {\n if (Platform.OS !== 'ios') setShowEnd(false);\n if (!d) return;\n const start = value.start && d < value.start ? d : value.start;\n onChange({ start, end: d });\n };\n\n return (\n <VStack className={cn('w-full', className)} spacing=\"sm\">\n <HStack gap=\"sm\">\n <Pressable\n disabled={disabled}\n onPress={() => setShowStart(true)}\n className={cn(\n 'border-input bg-background h-12 flex-1 flex-row items-center rounded-md border px-3',\n disabled && 'opacity-50'\n )}\n >\n <Text\n className={cn(\n 'text-foreground text-base',\n !value.start && 'opacity-50'\n )}\n >\n {value.start\n ? fmt(value.start)\n : placeholders?.start || 'Start date'}\n </Text>\n </Pressable>\n <Pressable\n disabled={disabled}\n onPress={() => setShowEnd(true)}\n className={cn(\n 'border-input bg-background h-12 flex-1 flex-row items-center rounded-md border px-3',\n disabled && 'opacity-50'\n )}\n >\n <Text\n className={cn(\n 'text-foreground text-base',\n !value.end && 'opacity-50'\n )}\n >\n {value.end ? fmt(value.end) : placeholders?.end || 'End date'}\n </Text>\n </Pressable>\n </HStack>\n\n {showStart && (\n <DateTimePicker\n value={value.start ?? new Date()}\n mode=\"date\"\n display={Platform.OS === 'ios' ? 'inline' : 'default'}\n onChange={handleStart}\n {...(pickerCommon as any)}\n />\n )}\n {showEnd && (\n <DateTimePicker\n value={value.end ?? value.start ?? new Date()}\n mode=\"date\"\n display={Platform.OS === 'ios' ? 'inline' : 'default'}\n onChange={handleEnd}\n minimumDate={value.start ?? minDate}\n maximumDate={maxDate}\n />\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;;;;;AAsBA,SAAS,IAAI,GAAgB;AAC3B,KAAI,CAAC,EAAG,QAAO;AACf,KAAI;AACF,SAAO,EAAE,oBAAoB;SACvB;AACN,SAAO;;;AAIX,SAAgB,gBAAgB,EAC9B,OACA,UACA,UACA,SACA,SACA,cACA,aACuB;CACvB,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CACjD,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAE7C,MAAM,eAAe,eACZ;EAAE,aAAa;EAAS,aAAa;EAAS,GACrD,CAAC,SAAS,QAAQ,CACnB;CAED,MAAM,eAAe,GAAQ,MAAa;AACxC,MAAI,SAAS,OAAO,MAAO,cAAa,MAAM;AAC9C,MAAI,CAAC,EAAG;AAER,WAAS;GAAE,OAAO;GAAG,KADT,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,MAAM;GACzB,CAAC;;CAE7B,MAAM,aAAa,GAAQ,MAAa;AACtC,MAAI,SAAS,OAAO,MAAO,YAAW,MAAM;AAC5C,MAAI,CAAC,EAAG;AAER,WAAS;GAAE,OADG,MAAM,SAAS,IAAI,MAAM,QAAQ,IAAI,MAAM;GACvC,KAAK;GAAG,CAAC;;AAG7B,QACE,qBAAC;EAAO,WAAW,GAAG,UAAU,UAAU;EAAE,SAAQ;;GAClD,qBAAC;IAAO,KAAI;eACV,oBAAC;KACW;KACV,eAAe,aAAa,KAAK;KACjC,WAAW,GACT,uFACA,YAAY,aACb;eAED,oBAACA;MACC,WAAW,GACT,6BACA,CAAC,MAAM,SAAS,aACjB;gBAEA,MAAM,QACH,IAAI,MAAM,MAAM,GAChB,cAAc,SAAS;OACtB;MACG,EACZ,oBAAC;KACW;KACV,eAAe,WAAW,KAAK;KAC/B,WAAW,GACT,uFACA,YAAY,aACb;eAED,oBAACA;MACC,WAAW,GACT,6BACA,CAAC,MAAM,OAAO,aACf;gBAEA,MAAM,MAAM,IAAI,MAAM,IAAI,GAAG,cAAc,OAAO;OAC9C;MACG;KACL;GAER,aACC,oBAAC;IACC,OAAO,MAAM,yBAAS,IAAI,MAAM;IAChC,MAAK;IACL,SAAS,SAAS,OAAO,QAAQ,WAAW;IAC5C,UAAU;IACV,GAAK;KACL;GAEH,WACC,oBAAC;IACC,OAAO,MAAM,OAAO,MAAM,yBAAS,IAAI,MAAM;IAC7C,MAAK;IACL,SAAS,SAAS,OAAO,QAAQ,WAAW;IAC5C,UAAU;IACV,aAAa,MAAM,SAAS;IAC5B,aAAa;KACb;;GAEG"}
@@ -0,0 +1,28 @@
1
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
2
+
3
+ //#region ui/datetime-picker.d.ts
4
+ interface DateTimePickerProps {
5
+ value: Date | null;
6
+ onChange: (date: Date | null) => void;
7
+ disabled?: boolean;
8
+ minDate?: Date;
9
+ maxDate?: Date;
10
+ datePlaceholder?: string;
11
+ timePlaceholder?: string;
12
+ is24Hour?: boolean;
13
+ className?: string;
14
+ }
15
+ declare function DateTimePicker({
16
+ value,
17
+ onChange,
18
+ disabled,
19
+ minDate,
20
+ maxDate,
21
+ datePlaceholder,
22
+ timePlaceholder,
23
+ is24Hour,
24
+ className
25
+ }: DateTimePickerProps): react_jsx_runtime19.JSX.Element;
26
+ //#endregion
27
+ export { DateTimePicker, DateTimePickerProps };
28
+ //# sourceMappingURL=datetime-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime-picker.d.ts","names":[],"sources":["../../ui/datetime-picker.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;SACR;mBACU;EAFF,QAAA,CAAA,EAAA,OAAA;EACR,OAAA,CAAA,EAGG,IAHH;EACU,OAAA,CAAA,EAGP,IAHO;EAEP,eAAA,CAAA,EAAA,MAAA;EACA,eAAA,CAAA,EAAA,MAAA;EAAI,QAAA,CAAA,EAAA,OAAA;EAOA,SAAA,CAAA,EAAA,MAAc;;AAE5B,iBAFc,cAAA,CAEd;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA,eAAA;EAAA,eAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAQC,mBARD,CAAA,EAQoB,mBAAA,CAAA,GAAA,CAAA,OARpB"}
@@ -0,0 +1,45 @@
1
+ import { DatePicker } from "./date-picker.js";
2
+ import { HStack } from "./stack.js";
3
+ import { TimePicker } from "./time-picker.js";
4
+ import React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+
7
+ //#region ui/datetime-picker.tsx
8
+ function DateTimePicker({ value, onChange, disabled, minDate, maxDate, datePlaceholder, timePlaceholder, is24Hour, className }) {
9
+ const handleDateChange = (d) => {
10
+ if (!d) return;
11
+ const next = new Date(d);
12
+ if (value) next.setHours(value.getHours(), value.getMinutes(), 0, 0);
13
+ onChange(next);
14
+ };
15
+ const handleTimeChange = (t) => {
16
+ if (!t) return;
17
+ const next = new Date(value ?? /* @__PURE__ */ new Date());
18
+ next.setHours(t.getHours(), t.getMinutes(), 0, 0);
19
+ onChange(next);
20
+ };
21
+ return /* @__PURE__ */ jsxs(HStack, {
22
+ className,
23
+ gap: "sm",
24
+ children: [/* @__PURE__ */ jsx(DatePicker, {
25
+ value,
26
+ onChange: handleDateChange,
27
+ disabled,
28
+ minDate,
29
+ maxDate,
30
+ placeholder: datePlaceholder,
31
+ className: "flex-1"
32
+ }), /* @__PURE__ */ jsx(TimePicker, {
33
+ value,
34
+ onChange: handleTimeChange,
35
+ disabled,
36
+ is24Hour,
37
+ placeholder: timePlaceholder,
38
+ className: "flex-1"
39
+ })]
40
+ });
41
+ }
42
+
43
+ //#endregion
44
+ export { DateTimePicker };
45
+ //# sourceMappingURL=datetime-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime-picker.js","names":[],"sources":["../../ui/datetime-picker.tsx"],"sourcesContent":["import React from 'react';\nimport { HStack } from './stack';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\n\nexport interface DateTimePickerProps {\n value: Date | null;\n onChange: (date: Date | null) => void;\n disabled?: boolean;\n minDate?: Date;\n maxDate?: Date;\n datePlaceholder?: string;\n timePlaceholder?: string;\n is24Hour?: boolean;\n className?: string;\n}\n\nexport function DateTimePicker({\n value,\n onChange,\n disabled,\n minDate,\n maxDate,\n datePlaceholder,\n timePlaceholder,\n is24Hour,\n className,\n}: DateTimePickerProps) {\n const handleDateChange = (d: Date | null) => {\n if (!d) return;\n const next = new Date(d);\n if (value) {\n next.setHours(value.getHours(), value.getMinutes(), 0, 0);\n }\n onChange(next);\n };\n\n const handleTimeChange = (t: Date | null) => {\n if (!t) return;\n const next = new Date(value ?? new Date());\n next.setHours(t.getHours(), t.getMinutes(), 0, 0);\n onChange(next);\n };\n\n return (\n <HStack className={className} gap=\"sm\">\n <DatePicker\n value={value}\n onChange={handleDateChange}\n disabled={disabled}\n minDate={minDate}\n maxDate={maxDate}\n placeholder={datePlaceholder}\n className=\"flex-1\"\n />\n <TimePicker\n value={value}\n onChange={handleTimeChange}\n disabled={disabled}\n is24Hour={is24Hour}\n placeholder={timePlaceholder}\n className=\"flex-1\"\n />\n </HStack>\n );\n}\n"],"mappings":";;;;;;;AAiBA,SAAgB,eAAe,EAC7B,OACA,UACA,UACA,SACA,SACA,iBACA,iBACA,UACA,aACsB;CACtB,MAAM,oBAAoB,MAAmB;AAC3C,MAAI,CAAC,EAAG;EACR,MAAM,OAAO,IAAI,KAAK,EAAE;AACxB,MAAI,MACF,MAAK,SAAS,MAAM,UAAU,EAAE,MAAM,YAAY,EAAE,GAAG,EAAE;AAE3D,WAAS,KAAK;;CAGhB,MAAM,oBAAoB,MAAmB;AAC3C,MAAI,CAAC,EAAG;EACR,MAAM,OAAO,IAAI,KAAK,yBAAS,IAAI,MAAM,CAAC;AAC1C,OAAK,SAAS,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;AACjD,WAAS,KAAK;;AAGhB,QACE,qBAAC;EAAkB;EAAW,KAAI;aAChC,oBAAC;GACQ;GACP,UAAU;GACA;GACD;GACA;GACT,aAAa;GACb,WAAU;IACV,EACF,oBAAC;GACQ;GACP,UAAU;GACA;GACA;GACV,aAAa;GACb,WAAU;IACV;GACK"}
@@ -0,0 +1,69 @@
1
+ import * as React$1 from "react";
2
+ import * as react_native2 from "react-native";
3
+ import { View, ViewProps } from "react-native";
4
+ import * as react_jsx_runtime29 from "react/jsx-runtime";
5
+ import * as DialogPrimitive from "@rn-primitives/dialog";
6
+
7
+ //#region ui/dialog.d.ts
8
+ declare const Dialog: React$1.ForwardRefExoticComponent<ViewProps & {
9
+ asChild?: boolean;
10
+ } & {
11
+ open?: boolean;
12
+ defaultOpen?: boolean;
13
+ onOpenChange?: (value: boolean) => void;
14
+ } & React$1.RefAttributes<View>>;
15
+ declare const DialogTrigger: React$1.ForwardRefExoticComponent<Omit<react_native2.PressableProps & React$1.RefAttributes<View>, "ref"> & {
16
+ asChild?: boolean;
17
+ } & {
18
+ onKeyDown?: (ev: React$1.KeyboardEvent) => void;
19
+ onKeyUp?: (ev: React$1.KeyboardEvent) => void;
20
+ } & React$1.RefAttributes<View>>;
21
+ declare const DialogPortal: typeof DialogPrimitive.Portal;
22
+ declare const DialogClose: React$1.ForwardRefExoticComponent<Omit<react_native2.PressableProps & React$1.RefAttributes<View>, "ref"> & {
23
+ asChild?: boolean;
24
+ } & {
25
+ onKeyDown?: (ev: React$1.KeyboardEvent) => void;
26
+ onKeyUp?: (ev: React$1.KeyboardEvent) => void;
27
+ } & React$1.RefAttributes<View>>;
28
+ declare function DialogOverlayNative({
29
+ className,
30
+ children,
31
+ ...props
32
+ }: DialogPrimitive.OverlayProps & {
33
+ ref?: React$1.RefObject<DialogPrimitive.OverlayRef>;
34
+ children?: React$1.ReactNode;
35
+ }): react_jsx_runtime29.JSX.Element;
36
+ declare const DialogOverlay: typeof DialogOverlayNative;
37
+ declare function DialogContent({
38
+ className,
39
+ children,
40
+ portalHost,
41
+ ...props
42
+ }: DialogPrimitive.ContentProps & {
43
+ ref?: React$1.RefObject<DialogPrimitive.ContentRef>;
44
+ className?: string;
45
+ portalHost?: string;
46
+ }): react_jsx_runtime29.JSX.Element;
47
+ declare function DialogHeader({
48
+ className,
49
+ ...props
50
+ }: ViewProps): react_jsx_runtime29.JSX.Element;
51
+ declare function DialogFooter({
52
+ className,
53
+ ...props
54
+ }: ViewProps): react_jsx_runtime29.JSX.Element;
55
+ declare function DialogTitle({
56
+ className,
57
+ ...props
58
+ }: DialogPrimitive.TitleProps & {
59
+ ref?: React$1.RefObject<DialogPrimitive.TitleRef>;
60
+ }): react_jsx_runtime29.JSX.Element;
61
+ declare function DialogDescription({
62
+ className,
63
+ ...props
64
+ }: DialogPrimitive.DescriptionProps & {
65
+ ref?: React$1.RefObject<DialogPrimitive.DescriptionRef>;
66
+ }): react_jsx_runtime29.JSX.Element;
67
+ //#endregion
68
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
69
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","names":[],"sources":["../../ui/dialog.tsx"],"sourcesContent":[],"mappings":";;;;;;;cAOM,QAAM,OAAA,CAAA,0BAAA;;;;EAAN,WAA6B,CAAA,EAAA,OAAA;EAAvB,YAAA,CAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAAA,IAAA;;cAEN,eAAa,OAAA,CAAA,0BAAA,KAA0B,aAAA,CAA1B,cAAA,GAAA,OAAA,CAAA,cAAA;EAFP,OAAA,CAAA,EAAA,OAAA;CAAA,GAAA;EAEN,SAAA,CAAA,EAAA,CAAA,EAAA,uBAAuC,EAAA,GAAA,IAAA;EAAA,OAAA,CAAA,EAAA,CAA1B,EAAA,uBAAA,EAAA,GAAA,IAAA;CAAA,wBAAA,KAAA,CAAA,CAAA;cAEb,YAFa,EAAA,OAED,eAAA,CAAA,MAFC;cAIb,WAJa,EAIF,OAAA,CAAA,yBAJE,CAIF,IAJE,CAIsB,aAAA,CAAxB,cAAA,GAAA,OAAA,CAAA,aAJE,CAIF,IAJE,CAAA,EAAA,KAAA,CAAA,GAAA;;;;;CAAA,wBAAA,KAAA,CAAA,CAAA;iBA2BV,mBAAA,CA3BU;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EA+BhB,eAAA,CAAgB,YA/BA,GAAA;EAEb,GAAA,CAAA,EA8BE,OAAA,CAAM,SA9B6B,CA8BnB,eAAA,CAAgB,UA9BtB,CAAA;EAEZ,QAAA,CAAA,EA6BO,OAAA,CAAM,SA7BsB;CAAA,CAAA,EA8BxC,mBAAA,CAAA,GAAA,CAAA,OA9BgB;cAkDX,aAlDW,EAAA,OAkDE,mBAlDF;iBAuDR,aAAA,CAvDQ;EAAA,SAAA;EAAA,QAAA;EAAA,UAAA;EAAA,GAAA;CAAA,EA4Dd,eAAA,CAAgB,YA5DF,GAAA;EAAA,GAAA,CAAA,EA6DT,OAAA,CAAM,SA7DG,CA6DO,eAAA,CAAgB,UA7DvB,CAAA;;;IAgEhB,mBAAA,CAAA,GAAA,CAAA;iBAmCQ,YAAA;;;GAAsC,YAAS,mBAAA,CAAA,GAAA,CAAA;iBAY/C,YAAA,CA/GQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+G8B,SA/G9B,CAAA,EA+GuC,mBAAA,CAAA,GAAA,CAAA,OA/GvC;iBA2HR,WAAA,CA3HQ;EAAA,SAAA;EAAA,GAAA;CAAA,EA8Hd,eAAA,CAAgB,UA9HF,GAAA;EAuBR,GAAA,CAAA,EAwGD,OAAA,CAAM,SAxGL,CAwGe,eAAA,CAAgB,QAxGZ,CAAA;CAC1B,CAAA,EAwGD,mBAAA,CAAA,GAAA,CAAA,OAxGC;iBAoHO,iBAAA,CAnHP;EAAA,SAAA;EAAA,GAAA;CAAA,EAsHC,eAAA,CAAgB,gBAtHjB,GAAA;EAEC,GAAA,CAAA,EAqHK,OAAA,CAAM,SArHK,CAqHK,eAAA,CAAgB,cArHrB,CAAA;CACK,CAAA,EAqHvB,mBAAA,CAAA,GAAA,CAAA,OArHuC"}
@@ -0,0 +1,81 @@
1
+ import { cn } from "./utils.js";
2
+ import { X } from "./icons/X.js";
3
+ import "react";
4
+ import { Platform, StyleSheet, View } from "react-native";
5
+ import Animated, { FadeIn, FadeOut } from "react-native-reanimated";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import * as DialogPrimitive from "@rn-primitives/dialog";
8
+
9
+ //#region ui/dialog.tsx
10
+ const Dialog = DialogPrimitive.Root;
11
+ const DialogTrigger = DialogPrimitive.Trigger;
12
+ const DialogPortal = DialogPrimitive.Portal;
13
+ const DialogClose = DialogPrimitive.Close;
14
+ function DialogOverlayWeb({ className,...props }) {
15
+ const { open } = DialogPrimitive.useRootContext();
16
+ return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
17
+ className: cn("absolute top-0 right-0 bottom-0 left-0 flex items-center justify-center bg-black/80 p-2", open ? "web:animate-in web:fade-in-0" : "web:animate-out web:fade-out-0", className),
18
+ ...props
19
+ });
20
+ }
21
+ function DialogOverlayNative({ className, children,...props }) {
22
+ return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
23
+ style: StyleSheet.absoluteFill,
24
+ className: cn("flex items-center justify-center bg-black/80 p-2", className),
25
+ ...props,
26
+ children: /* @__PURE__ */ jsx(Animated.View, {
27
+ entering: FadeIn.duration(150),
28
+ exiting: FadeOut.duration(150),
29
+ children
30
+ })
31
+ });
32
+ }
33
+ const DialogOverlay = Platform.select({
34
+ web: DialogOverlayWeb,
35
+ default: DialogOverlayNative
36
+ });
37
+ function DialogContent({ className, children, portalHost,...props }) {
38
+ const { open } = DialogPrimitive.useRootContext();
39
+ return /* @__PURE__ */ jsx(DialogPortal, {
40
+ hostName: portalHost,
41
+ children: /* @__PURE__ */ jsx(DialogOverlay, { children: /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
42
+ className: cn("border-border bg-background web:cursor-default web:duration-200 max-w-lg gap-4 rounded-lg border p-6 shadow-lg", open ? "web:animate-in web:fade-in-0 web:zoom-in-95" : "web:animate-out web:fade-out-0 web:zoom-out-95", className),
43
+ ...props,
44
+ children: [children, /* @__PURE__ */ jsx(DialogPrimitive.Close, {
45
+ className: "web:group web:ring-offset-background web:transition-opacity web:hover:opacity-100 web:focus:outline-hidden web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 web:disabled:pointer-events-none absolute top-4 right-4 rounded-xs p-0.5 opacity-70",
46
+ children: /* @__PURE__ */ jsx(X, {
47
+ size: Platform.OS === "web" ? 16 : 18,
48
+ className: cn("text-muted-foreground", open && "text-accent-foreground")
49
+ })
50
+ })]
51
+ }) })
52
+ });
53
+ }
54
+ function DialogHeader({ className,...props }) {
55
+ return /* @__PURE__ */ jsx(View, {
56
+ className: cn("flex flex-col gap-1.5 text-center sm:text-left", className),
57
+ ...props
58
+ });
59
+ }
60
+ function DialogFooter({ className,...props }) {
61
+ return /* @__PURE__ */ jsx(View, {
62
+ className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
63
+ ...props
64
+ });
65
+ }
66
+ function DialogTitle({ className,...props }) {
67
+ return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
68
+ className: cn("native:text-xl text-foreground text-lg leading-none font-semibold tracking-tight", className),
69
+ ...props
70
+ });
71
+ }
72
+ function DialogDescription({ className,...props }) {
73
+ return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
74
+ className: cn("native:text-base text-muted-foreground text-sm", className),
75
+ ...props
76
+ });
77
+ }
78
+
79
+ //#endregion
80
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
81
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","names":[],"sources":["../../ui/dialog.tsx"],"sourcesContent":["import * as DialogPrimitive from '@rn-primitives/dialog';\nimport * as React from 'react';\nimport { Platform, StyleSheet, View, type ViewProps } from 'react-native';\nimport Animated, { FadeIn, FadeOut } from 'react-native-reanimated';\nimport { X } from './icons/X';\nimport { cn } from './utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nfunction DialogOverlayWeb({\n className,\n ...props\n}: DialogPrimitive.OverlayProps & {\n ref?: React.RefObject<DialogPrimitive.OverlayRef>;\n}) {\n const { open } = DialogPrimitive.useRootContext();\n return (\n <DialogPrimitive.Overlay\n className={cn(\n 'absolute top-0 right-0 bottom-0 left-0 flex items-center justify-center bg-black/80 p-2',\n open\n ? 'web:animate-in web:fade-in-0'\n : 'web:animate-out web:fade-out-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogOverlayNative({\n className,\n children,\n ...props\n}: DialogPrimitive.OverlayProps & {\n ref?: React.RefObject<DialogPrimitive.OverlayRef>;\n children?: React.ReactNode;\n}) {\n return (\n <DialogPrimitive.Overlay\n style={StyleSheet.absoluteFill}\n className={cn(\n 'flex items-center justify-center bg-black/80 p-2',\n className\n )}\n {...props}\n >\n <Animated.View\n entering={FadeIn.duration(150)}\n exiting={FadeOut.duration(150)}\n >\n {children}\n </Animated.View>\n </DialogPrimitive.Overlay>\n );\n}\n\nconst DialogOverlay = Platform.select({\n web: DialogOverlayWeb,\n default: DialogOverlayNative,\n});\n\nfunction DialogContent({\n className,\n children,\n portalHost,\n ...props\n}: DialogPrimitive.ContentProps & {\n ref?: React.RefObject<DialogPrimitive.ContentRef>;\n className?: string;\n portalHost?: string;\n}) {\n const { open } = DialogPrimitive.useRootContext();\n return (\n <DialogPortal hostName={portalHost}>\n <DialogOverlay>\n <DialogPrimitive.Content\n className={cn(\n 'border-border bg-background web:cursor-default web:duration-200 max-w-lg gap-4 rounded-lg border p-6 shadow-lg',\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 {...props}\n >\n {children}\n <DialogPrimitive.Close\n className={\n 'web:group web:ring-offset-background web:transition-opacity web:hover:opacity-100 web:focus:outline-hidden web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 web:disabled:pointer-events-none absolute top-4 right-4 rounded-xs p-0.5 opacity-70'\n }\n >\n <X\n size={Platform.OS === 'web' ? 16 : 18}\n className={cn(\n 'text-muted-foreground',\n open && 'text-accent-foreground'\n )}\n />\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogOverlay>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: ViewProps) {\n return (\n <View\n className={cn(\n 'flex flex-col gap-1.5 text-center sm:text-left',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: ViewProps) {\n return (\n <View\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: DialogPrimitive.TitleProps & {\n ref?: React.RefObject<DialogPrimitive.TitleRef>;\n}) {\n return (\n <DialogPrimitive.Title\n className={cn(\n 'native:text-xl text-foreground text-lg leading-none font-semibold tracking-tight',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: DialogPrimitive.DescriptionProps & {\n ref?: React.RefObject<DialogPrimitive.DescriptionRef>;\n}) {\n return (\n <DialogPrimitive.Description\n className={cn(\n 'native:text-base text-muted-foreground text-sm',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"mappings":";;;;;;;;;AAOA,MAAM,SAAS,gBAAgB;AAE/B,MAAM,gBAAgB,gBAAgB;AAEtC,MAAM,eAAe,gBAAgB;AAErC,MAAM,cAAc,gBAAgB;AAEpC,SAAS,iBAAiB,EACxB,UACA,GAAG,SAGF;CACD,MAAM,EAAE,SAAS,gBAAgB,gBAAgB;AACjD,QACE,oBAAC,gBAAgB;EACf,WAAW,GACT,2FACA,OACI,iCACA,kCACJ,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,SACA,GAAG,SAIF;AACD,QACE,oBAAC,gBAAgB;EACf,OAAO,WAAW;EAClB,WAAW,GACT,oDACA,UACD;EACD,GAAI;YAEJ,oBAAC,SAAS;GACR,UAAU,OAAO,SAAS,IAAI;GAC9B,SAAS,QAAQ,SAAS,IAAI;GAE7B;IACa;GACQ;;AAI9B,MAAM,gBAAgB,SAAS,OAAO;CACpC,KAAK;CACL,SAAS;CACV,CAAC;AAEF,SAAS,cAAc,EACrB,WACA,UACA,WACA,GAAG,SAKF;CACD,MAAM,EAAE,SAAS,gBAAgB,gBAAgB;AACjD,QACE,oBAAC;EAAa,UAAU;YACtB,oBAAC,2BACC,qBAAC,gBAAgB;GACf,WAAW,GACT,kHACA,OACI,gDACA,kDACJ,UACD;GACD,GAAI;cAEH,UACD,oBAAC,gBAAgB;IACf,WACE;cAGF,oBAAC;KACC,MAAM,SAAS,OAAO,QAAQ,KAAK;KACnC,WAAW,GACT,yBACA,QAAQ,yBACT;MACD;KACoB;IACA,GACZ;GACH;;AAInB,SAAS,aAAa,EAAE,UAAW,GAAG,SAAoB;AACxD,QACE,oBAAC;EACC,WAAW,GACT,kDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,UAAW,GAAG,SAAoB;AACxD,QACE,oBAAC;EACC,WAAW,GACT,0DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,UACA,GAAG,SAGF;AACD,QACE,oBAAC,gBAAgB;EACf,WAAW,GACT,oFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,UACA,GAAG,SAGF;AACD,QACE,oBAAC,gBAAgB;EACf,WAAW,GACT,kDACA,UACD;EACD,GAAI;GACJ"}