@lssm/lib.ui-kit 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +1 -0
  3. package/dist/node_modules/@hookform/resolvers/dist/resolvers.js +29 -0
  4. package/dist/node_modules/@hookform/resolvers/dist/resolvers.js.map +1 -0
  5. package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js +61 -0
  6. package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js.map +1 -0
  7. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +28 -0
  8. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
  9. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +101 -0
  10. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  11. package/dist/node_modules/react-hook-form/dist/index.esm.js +2062 -0
  12. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
  13. package/dist/node_modules/zod/v4/classic/errors.js +30 -0
  14. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  15. package/dist/node_modules/zod/v4/classic/iso.js +38 -0
  16. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  17. package/dist/node_modules/zod/v4/classic/parse.js +20 -0
  18. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  19. package/dist/node_modules/zod/v4/classic/schemas.js +395 -0
  20. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  21. package/dist/node_modules/zod/v4/core/api.js +377 -0
  22. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  23. package/dist/node_modules/zod/v4/core/checks.js +226 -0
  24. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  25. package/dist/node_modules/zod/v4/core/core.js +57 -0
  26. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  27. package/dist/node_modules/zod/v4/core/errors.js +63 -0
  28. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  29. package/dist/node_modules/zod/v4/core/parse.js +110 -0
  30. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  31. package/dist/node_modules/zod/v4/core/regexes.js +59 -0
  32. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  33. package/dist/node_modules/zod/v4/core/registries.js +53 -0
  34. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  35. package/dist/node_modules/zod/v4/core/schemas.js +755 -0
  36. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  37. package/dist/node_modules/zod/v4/core/util.js +152 -0
  38. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  39. package/dist/node_modules/zod/v4/core/versions.js +10 -0
  40. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  41. package/dist/tsconfig.tsbuildinfo +1 -0
  42. package/dist/ui/accordion.d.ts +36 -0
  43. package/dist/ui/accordion.d.ts.map +1 -0
  44. package/dist/ui/accordion.js +93 -0
  45. package/dist/ui/accordion.js.map +1 -0
  46. package/dist/ui/alert-dialog.d.ts +72 -0
  47. package/dist/ui/alert-dialog.d.ts.map +1 -0
  48. package/dist/ui/alert-dialog.js +98 -0
  49. package/dist/ui/alert-dialog.js.map +1 -0
  50. package/dist/ui/alert.d.ts +37 -0
  51. package/dist/ui/alert.d.ts.map +1 -0
  52. package/dist/ui/alert.js +50 -0
  53. package/dist/ui/alert.js.map +1 -0
  54. package/dist/ui/aspect-ratio.d.ts +12 -0
  55. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  56. package/dist/ui/aspect-ratio.js +8 -0
  57. package/dist/ui/aspect-ratio.js.map +1 -0
  58. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
  59. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
  60. package/dist/ui/atoms/FilterSelect/FilterSelect.js +58 -0
  61. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
  62. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
  63. package/dist/ui/atoms/FilterSelect/index.js +3 -0
  64. package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
  65. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
  66. package/dist/ui/atoms/FilterSelect/types.js +1 -0
  67. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
  68. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
  69. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +48 -0
  70. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
  71. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
  72. package/dist/ui/atoms/LoadingSpinner/index.js +3 -0
  73. package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
  74. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
  75. package/dist/ui/atoms/Pagination/Pagination.js +163 -0
  76. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
  77. package/dist/ui/atoms/Pagination/index.d.ts +3 -0
  78. package/dist/ui/atoms/Pagination/index.js +3 -0
  79. package/dist/ui/atoms/Pagination/types.d.ts +16 -0
  80. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
  81. package/dist/ui/atoms/Pagination/types.js +1 -0
  82. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
  83. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
  84. package/dist/ui/atoms/SearchInput/SearchInput.js +50 -0
  85. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
  86. package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
  87. package/dist/ui/atoms/SearchInput/index.js +3 -0
  88. package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
  89. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
  90. package/dist/ui/atoms/SearchInput/types.js +1 -0
  91. package/dist/ui/avatar.d.ts +28 -0
  92. package/dist/ui/avatar.d.ts.map +1 -0
  93. package/dist/ui/avatar.js +28 -0
  94. package/dist/ui/avatar.js.map +1 -0
  95. package/dist/ui/badge.d.ts +22 -0
  96. package/dist/ui/badge.d.ts.map +1 -0
  97. package/dist/ui/badge.js +26 -0
  98. package/dist/ui/badge.js.map +1 -0
  99. package/dist/ui/breadcrumb.d.ts +39 -0
  100. package/dist/ui/breadcrumb.d.ts.map +1 -0
  101. package/dist/ui/breadcrumb.js +73 -0
  102. package/dist/ui/breadcrumb.js.map +1 -0
  103. package/dist/ui/button.d.ts +26 -0
  104. package/dist/ui/button.d.ts.map +1 -0
  105. package/dist/ui/button.js +75 -0
  106. package/dist/ui/button.js.map +1 -0
  107. package/dist/ui/card.d.ts +44 -0
  108. package/dist/ui/card.d.ts.map +1 -0
  109. package/dist/ui/card.js +52 -0
  110. package/dist/ui/card.js.map +1 -0
  111. package/dist/ui/carousel.d.ts +5 -0
  112. package/dist/ui/carousel.d.ts.map +1 -0
  113. package/dist/ui/carousel.js +6 -0
  114. package/dist/ui/carousel.js.map +1 -0
  115. package/dist/ui/checkbox.d.ts +17 -0
  116. package/dist/ui/checkbox.d.ts.map +1 -0
  117. package/dist/ui/checkbox.js +21 -0
  118. package/dist/ui/checkbox.js.map +1 -0
  119. package/dist/ui/collapsible.d.ts +25 -0
  120. package/dist/ui/collapsible.d.ts.map +1 -0
  121. package/dist/ui/collapsible.js +10 -0
  122. package/dist/ui/collapsible.js.map +1 -0
  123. package/dist/ui/command.d.ts +5 -0
  124. package/dist/ui/command.d.ts.map +1 -0
  125. package/dist/ui/command.js +6 -0
  126. package/dist/ui/command.js.map +1 -0
  127. package/dist/ui/context-menu.d.ts +110 -0
  128. package/dist/ui/context-menu.d.ts.map +1 -0
  129. package/dist/ui/context-menu.js +108 -0
  130. package/dist/ui/context-menu.js.map +1 -0
  131. package/dist/ui/date-picker.d.ts +24 -0
  132. package/dist/ui/date-picker.d.ts.map +1 -0
  133. package/dist/ui/date-picker.js +54 -0
  134. package/dist/ui/date-picker.js.map +1 -0
  135. package/dist/ui/date-range-picker.d.ts +31 -0
  136. package/dist/ui/date-range-picker.d.ts.map +1 -0
  137. package/dist/ui/date-range-picker.js +86 -0
  138. package/dist/ui/date-range-picker.js.map +1 -0
  139. package/dist/ui/datetime-picker.d.ts +28 -0
  140. package/dist/ui/datetime-picker.d.ts.map +1 -0
  141. package/dist/ui/datetime-picker.js +45 -0
  142. package/dist/ui/datetime-picker.js.map +1 -0
  143. package/dist/ui/dialog.d.ts +69 -0
  144. package/dist/ui/dialog.d.ts.map +1 -0
  145. package/dist/ui/dialog.js +81 -0
  146. package/dist/ui/dialog.js.map +1 -0
  147. package/dist/ui/dropdown-menu.d.ts +112 -0
  148. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  149. package/dist/ui/dropdown-menu.js +110 -0
  150. package/dist/ui/dropdown-menu.js.map +1 -0
  151. package/dist/ui/empty-state.d.ts +29 -0
  152. package/dist/ui/empty-state.d.ts.map +1 -0
  153. package/dist/ui/empty-state.js +46 -0
  154. package/dist/ui/empty-state.js.map +1 -0
  155. package/dist/ui/empty.d.ts +37 -0
  156. package/dist/ui/empty.d.ts.map +1 -0
  157. package/dist/ui/empty.js +63 -0
  158. package/dist/ui/empty.js.map +1 -0
  159. package/dist/ui/fab.d.ts +36 -0
  160. package/dist/ui/fab.d.ts.map +1 -0
  161. package/dist/ui/fab.js +104 -0
  162. package/dist/ui/fab.js.map +1 -0
  163. package/dist/ui/field.d.ts +67 -0
  164. package/dist/ui/field.d.ts.map +1 -0
  165. package/dist/ui/field.js +124 -0
  166. package/dist/ui/field.js.map +1 -0
  167. package/dist/ui/form.d.ts +47 -0
  168. package/dist/ui/form.d.ts.map +1 -0
  169. package/dist/ui/form.js +94 -0
  170. package/dist/ui/form.js.map +1 -0
  171. package/dist/ui/hover-card.d.ts +30 -0
  172. package/dist/ui/hover-card.d.ts.map +1 -0
  173. package/dist/ui/hover-card.js +33 -0
  174. package/dist/ui/hover-card.js.map +1 -0
  175. package/dist/ui/icons/Check.d.ts +2 -0
  176. package/dist/ui/icons/Check.js +9 -0
  177. package/dist/ui/icons/Check.js.map +1 -0
  178. package/dist/ui/icons/ChevronDown.d.ts +2 -0
  179. package/dist/ui/icons/ChevronDown.js +9 -0
  180. package/dist/ui/icons/ChevronDown.js.map +1 -0
  181. package/dist/ui/icons/ChevronRight.d.ts +2 -0
  182. package/dist/ui/icons/ChevronRight.js +9 -0
  183. package/dist/ui/icons/ChevronRight.js.map +1 -0
  184. package/dist/ui/icons/ChevronUp.d.ts +2 -0
  185. package/dist/ui/icons/ChevronUp.js +9 -0
  186. package/dist/ui/icons/ChevronUp.js.map +1 -0
  187. package/dist/ui/icons/CircleUser.d.ts +2 -0
  188. package/dist/ui/icons/CircleUser.js +9 -0
  189. package/dist/ui/icons/CircleUser.js.map +1 -0
  190. package/dist/ui/icons/Info.d.ts +2 -0
  191. package/dist/ui/icons/Info.js +9 -0
  192. package/dist/ui/icons/Info.js.map +1 -0
  193. package/dist/ui/icons/Key.d.ts +2 -0
  194. package/dist/ui/icons/Key.js +9 -0
  195. package/dist/ui/icons/Key.js.map +1 -0
  196. package/dist/ui/icons/MoonStar.d.ts +2 -0
  197. package/dist/ui/icons/MoonStar.js +9 -0
  198. package/dist/ui/icons/MoonStar.js.map +1 -0
  199. package/dist/ui/icons/Sun.d.ts +2 -0
  200. package/dist/ui/icons/Sun.js +9 -0
  201. package/dist/ui/icons/Sun.js.map +1 -0
  202. package/dist/ui/icons/X.d.ts +2 -0
  203. package/dist/ui/icons/X.js +9 -0
  204. package/dist/ui/icons/X.js.map +1 -0
  205. package/dist/ui/icons/iconWithClassName.d.ts +7 -0
  206. package/dist/ui/icons/iconWithClassName.d.ts.map +1 -0
  207. package/dist/ui/icons/iconWithClassName.js +16 -0
  208. package/dist/ui/icons/iconWithClassName.js.map +1 -0
  209. package/dist/ui/input.d.ts +15 -0
  210. package/dist/ui/input.d.ts.map +1 -0
  211. package/dist/ui/input.js +17 -0
  212. package/dist/ui/input.js.map +1 -0
  213. package/dist/ui/label.d.ts +16 -0
  214. package/dist/ui/label.d.ts.map +1 -0
  215. package/dist/ui/label.js +24 -0
  216. package/dist/ui/label.js.map +1 -0
  217. package/dist/ui/link.d.ts +14 -0
  218. package/dist/ui/link.d.ts.map +1 -0
  219. package/dist/ui/link.js +16 -0
  220. package/dist/ui/link.js.map +1 -0
  221. package/dist/ui/loading-button.d.ts +20 -0
  222. package/dist/ui/loading-button.d.ts.map +1 -0
  223. package/dist/ui/loading-button.js +22 -0
  224. package/dist/ui/loading-button.js.map +1 -0
  225. package/dist/ui/loading-overlay.d.ts +16 -0
  226. package/dist/ui/loading-overlay.d.ts.map +1 -0
  227. package/dist/ui/loading-overlay.js +44 -0
  228. package/dist/ui/loading-overlay.js.map +1 -0
  229. package/dist/ui/loading-screen.d.ts +14 -0
  230. package/dist/ui/loading-screen.d.ts.map +1 -0
  231. package/dist/ui/loading-screen.js +93 -0
  232. package/dist/ui/loading-screen.js.map +1 -0
  233. package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
  234. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
  235. package/dist/ui/marketing/FeatureGrid.js +35 -0
  236. package/dist/ui/marketing/FeatureGrid.js.map +1 -0
  237. package/dist/ui/marketing/Hero.d.ts +28 -0
  238. package/dist/ui/marketing/Hero.d.ts.map +1 -0
  239. package/dist/ui/marketing/Hero.js +52 -0
  240. package/dist/ui/marketing/Hero.js.map +1 -0
  241. package/dist/ui/marketing/PricingTable.d.ts +25 -0
  242. package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
  243. package/dist/ui/marketing/PricingTable.js +60 -0
  244. package/dist/ui/marketing/PricingTable.js.map +1 -0
  245. package/dist/ui/marketing/index.d.ts +4 -0
  246. package/dist/ui/marketing/index.js +5 -0
  247. package/dist/ui/menubar.d.ts +115 -0
  248. package/dist/ui/menubar.d.ts.map +1 -0
  249. package/dist/ui/menubar.js +120 -0
  250. package/dist/ui/menubar.js.map +1 -0
  251. package/dist/ui/molecules/Autocomplete/index.d.ts +5 -0
  252. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
  253. package/dist/ui/molecules/Autocomplete/index.js +6 -0
  254. package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
  255. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
  256. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
  257. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +106 -0
  258. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
  259. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
  260. package/dist/ui/molecules/SearchAndFilter/index.js +3 -0
  261. package/dist/ui/molecules/SearchAndFilter/types.d.ts +25 -0
  262. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
  263. package/dist/ui/molecules/SearchAndFilter/types.js +1 -0
  264. package/dist/ui/molecules/SkeletonList.d.ts +16 -0
  265. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
  266. package/dist/ui/molecules/SkeletonList.js +15 -0
  267. package/dist/ui/molecules/SkeletonList.js.map +1 -0
  268. package/dist/ui/nativewind-env.d.ts +1 -0
  269. package/dist/ui/navigation-menu.d.ts +68 -0
  270. package/dist/ui/navigation-menu.d.ts.map +1 -0
  271. package/dist/ui/navigation-menu.js +87 -0
  272. package/dist/ui/navigation-menu.js.map +1 -0
  273. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
  274. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  275. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +112 -0
  276. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
  277. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  278. package/dist/ui/organisms/ErrorBoundary/index.js +3 -0
  279. package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
  280. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
  281. package/dist/ui/organisms/ListPage/ListPage.js +198 -0
  282. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
  283. package/dist/ui/organisms/ListPage/index.d.ts +3 -0
  284. package/dist/ui/organisms/ListPage/index.js +3 -0
  285. package/dist/ui/organisms/ListPage/types.d.ts +42 -0
  286. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
  287. package/dist/ui/organisms/ListPage/types.js +1 -0
  288. package/dist/ui/page-header.d.ts +27 -0
  289. package/dist/ui/page-header.d.ts.map +1 -0
  290. package/dist/ui/page-header.js +41 -0
  291. package/dist/ui/page-header.js.map +1 -0
  292. package/dist/ui/password-strength.d.ts +21 -0
  293. package/dist/ui/password-strength.d.ts.map +1 -0
  294. package/dist/ui/password-strength.js +99 -0
  295. package/dist/ui/password-strength.js.map +1 -0
  296. package/dist/ui/popover.d.ts +30 -0
  297. package/dist/ui/popover.d.ts.map +1 -0
  298. package/dist/ui/popover.js +35 -0
  299. package/dist/ui/popover.js.map +1 -0
  300. package/dist/ui/progress.d.ts +17 -0
  301. package/dist/ui/progress.d.ts.map +1 -0
  302. package/dist/ui/progress.js +40 -0
  303. package/dist/ui/progress.js.map +1 -0
  304. package/dist/ui/radio-group.d.ts +15 -0
  305. package/dist/ui/radio-group.d.ts.map +1 -0
  306. package/dist/ui/radio-group.js +23 -0
  307. package/dist/ui/radio-group.js.map +1 -0
  308. package/dist/ui/select.d.ts +84 -0
  309. package/dist/ui/select.d.ts.map +1 -0
  310. package/dist/ui/select.js +111 -0
  311. package/dist/ui/select.js.map +1 -0
  312. package/dist/ui/separator.d.ts +16 -0
  313. package/dist/ui/separator.d.ts.map +1 -0
  314. package/dist/ui/separator.js +18 -0
  315. package/dist/ui/separator.js.map +1 -0
  316. package/dist/ui/sheet.d.ts +5 -0
  317. package/dist/ui/sheet.d.ts.map +1 -0
  318. package/dist/ui/sheet.js +6 -0
  319. package/dist/ui/sheet.js.map +1 -0
  320. package/dist/ui/sidebar.d.ts +5 -0
  321. package/dist/ui/sidebar.d.ts.map +1 -0
  322. package/dist/ui/sidebar.js +6 -0
  323. package/dist/ui/sidebar.js.map +1 -0
  324. package/dist/ui/skeleton.d.ts +12 -0
  325. package/dist/ui/skeleton.d.ts.map +1 -0
  326. package/dist/ui/skeleton.js +24 -0
  327. package/dist/ui/skeleton.js.map +1 -0
  328. package/dist/ui/stack.d.ts +77 -0
  329. package/dist/ui/stack.d.ts.map +1 -0
  330. package/dist/ui/stack.js +238 -0
  331. package/dist/ui/stack.js.map +1 -0
  332. package/dist/ui/stepper.d.ts +23 -0
  333. package/dist/ui/stepper.d.ts.map +1 -0
  334. package/dist/ui/stepper.js +38 -0
  335. package/dist/ui/stepper.js.map +1 -0
  336. package/dist/ui/switch.d.ts +15 -0
  337. package/dist/ui/switch.d.ts.map +1 -0
  338. package/dist/ui/switch.js +54 -0
  339. package/dist/ui/switch.js.map +1 -0
  340. package/dist/ui/table.d.ts +51 -0
  341. package/dist/ui/table.d.ts.map +1 -0
  342. package/dist/ui/table.js +57 -0
  343. package/dist/ui/table.js.map +1 -0
  344. package/dist/ui/tabs.d.ts +33 -0
  345. package/dist/ui/tabs.d.ts.map +1 -0
  346. package/dist/ui/tabs.js +29 -0
  347. package/dist/ui/tabs.js.map +1 -0
  348. package/dist/ui/text.d.ts +21 -0
  349. package/dist/ui/text.d.ts.map +1 -0
  350. package/dist/ui/text.js +19 -0
  351. package/dist/ui/text.js.map +1 -0
  352. package/dist/ui/textarea.d.ts +10 -0
  353. package/dist/ui/textarea.d.ts.map +1 -0
  354. package/dist/ui/textarea.js +20 -0
  355. package/dist/ui/textarea.js.map +1 -0
  356. package/dist/ui/time-picker.d.ts +22 -0
  357. package/dist/ui/time-picker.d.ts.map +1 -0
  358. package/dist/ui/time-picker.js +53 -0
  359. package/dist/ui/time-picker.js.map +1 -0
  360. package/dist/ui/toggle-group.d.ts +36 -0
  361. package/dist/ui/toggle-group.d.ts.map +1 -0
  362. package/dist/ui/toggle-group.js +55 -0
  363. package/dist/ui/toggle-group.js.map +1 -0
  364. package/dist/ui/toggle.d.ts +34 -0
  365. package/dist/ui/toggle.d.ts.map +1 -0
  366. package/dist/ui/toggle.js +67 -0
  367. package/dist/ui/toggle.js.map +1 -0
  368. package/dist/ui/tooltip.d.ts +32 -0
  369. package/dist/ui/tooltip.d.ts.map +1 -0
  370. package/dist/ui/tooltip.js +41 -0
  371. package/dist/ui/tooltip.js.map +1 -0
  372. package/dist/ui/typography.d.ts +65 -0
  373. package/dist/ui/typography.d.ts.map +1 -0
  374. package/dist/ui/typography.js +88 -0
  375. package/dist/ui/typography.js.map +1 -0
  376. package/dist/ui/useColorScheme.d.ts +12 -0
  377. package/dist/ui/useColorScheme.d.ts.map +1 -0
  378. package/dist/ui/useColorScheme.js +17 -0
  379. package/dist/ui/useColorScheme.js.map +1 -0
  380. package/dist/ui/useListState.d.ts +34 -0
  381. package/dist/ui/useListState.d.ts.map +1 -0
  382. package/dist/ui/useListState.js +75 -0
  383. package/dist/ui/useListState.js.map +1 -0
  384. package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
  385. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
  386. package/dist/ui/usecases/UseCaseCard.js +35 -0
  387. package/dist/ui/usecases/UseCaseCard.js.map +1 -0
  388. package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
  389. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
  390. package/dist/ui/usecases/UserStoryCard.js +36 -0
  391. package/dist/ui/usecases/UserStoryCard.js.map +1 -0
  392. package/dist/ui/usecases/index.d.ts +3 -0
  393. package/dist/ui/usecases/index.js +4 -0
  394. package/dist/ui/utils.d.ts +7 -0
  395. package/dist/ui/utils.d.ts.map +1 -0
  396. package/dist/ui/utils.js +11 -0
  397. package/dist/ui/utils.js.map +1 -0
  398. 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_runtime161 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_runtime161.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,oBAAA,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_runtime131 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_runtime131.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,oBAAA,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_runtime0 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_runtime0.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,kBAAA,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_native13 from "react-native";
3
+ import { View, ViewProps } from "react-native";
4
+ import * as react_jsx_runtime42 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_native13.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_native13.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_runtime42.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_runtime42.JSX.Element;
47
+ declare function DialogHeader({
48
+ className,
49
+ ...props
50
+ }: ViewProps): react_jsx_runtime42.JSX.Element;
51
+ declare function DialogFooter({
52
+ className,
53
+ ...props
54
+ }: ViewProps): react_jsx_runtime42.JSX.Element;
55
+ declare function DialogTitle({
56
+ className,
57
+ ...props
58
+ }: DialogPrimitive.TitleProps & {
59
+ ref?: React$1.RefObject<DialogPrimitive.TitleRef>;
60
+ }): react_jsx_runtime42.JSX.Element;
61
+ declare function DialogDescription({
62
+ className,
63
+ ...props
64
+ }: DialogPrimitive.DescriptionProps & {
65
+ ref?: React$1.RefObject<DialogPrimitive.DescriptionRef>;
66
+ }): react_jsx_runtime42.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,cAAA,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,CAAA,EAA1B,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,cAAA,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"}