@zentauri-ui/zentauri-components 1.4.51 → 1.4.62

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 (314) hide show
  1. package/README.md +63 -1
  2. package/cli/registry.json +2 -1
  3. package/dist/{chunk-UXGHUBNJ.mjs → chunk-2PJF7DLJ.mjs} +3 -3
  4. package/dist/{chunk-UXGHUBNJ.mjs.map → chunk-2PJF7DLJ.mjs.map} +1 -1
  5. package/dist/{chunk-WDCIZHXY.mjs → chunk-45FCOQ63.mjs} +5 -3
  6. package/dist/chunk-45FCOQ63.mjs.map +1 -0
  7. package/dist/{chunk-RDSPHBHK.mjs → chunk-4ANBTJ5G.mjs} +49 -6
  8. package/dist/chunk-4ANBTJ5G.mjs.map +1 -0
  9. package/dist/chunk-4E66ICIR.mjs +158 -0
  10. package/dist/chunk-4E66ICIR.mjs.map +1 -0
  11. package/dist/{chunk-XLAFQ24R.js → chunk-4U6FOCFK.js} +22 -14
  12. package/dist/chunk-4U6FOCFK.js.map +1 -0
  13. package/dist/{chunk-XWM2S6VV.mjs → chunk-EQSSYK27.mjs} +12 -10
  14. package/dist/chunk-EQSSYK27.mjs.map +1 -0
  15. package/dist/{chunk-5QB2KNZQ.js → chunk-FGGYDAX3.js} +5 -3
  16. package/dist/chunk-FGGYDAX3.js.map +1 -0
  17. package/dist/{chunk-7HL3A4YF.mjs → chunk-IK75NHRX.mjs} +63 -14
  18. package/dist/chunk-IK75NHRX.mjs.map +1 -0
  19. package/dist/{chunk-BORK3BJO.mjs → chunk-J56L4ZQ3.mjs} +10 -10
  20. package/dist/{chunk-BORK3BJO.mjs.map → chunk-J56L4ZQ3.mjs.map} +1 -1
  21. package/dist/{chunk-PGH27VTL.mjs → chunk-JF3FKUUP.mjs} +21 -13
  22. package/dist/chunk-JF3FKUUP.mjs.map +1 -0
  23. package/dist/{chunk-WZKGRU3U.js → chunk-MQZB5EPD.js} +92 -27
  24. package/dist/chunk-MQZB5EPD.js.map +1 -0
  25. package/dist/{chunk-N4NO3SYL.js → chunk-NX3IHMT7.js} +22 -14
  26. package/dist/chunk-NX3IHMT7.js.map +1 -0
  27. package/dist/{chunk-BVXTOEBI.mjs → chunk-OG2WM5YK.mjs} +45 -17
  28. package/dist/chunk-OG2WM5YK.mjs.map +1 -0
  29. package/dist/{chunk-IXDJ3IPG.mjs → chunk-OXS6UJUG.mjs} +21 -13
  30. package/dist/chunk-OXS6UJUG.mjs.map +1 -0
  31. package/dist/{chunk-PCK6LX3K.js → chunk-PFOV3U7W.js} +3 -3
  32. package/dist/{chunk-PCK6LX3K.js.map → chunk-PFOV3U7W.js.map} +1 -1
  33. package/dist/{chunk-2PQEXQVR.js → chunk-THCNTPPL.js} +62 -13
  34. package/dist/chunk-THCNTPPL.js.map +1 -0
  35. package/dist/chunk-UP6S75V5.js +160 -0
  36. package/dist/chunk-UP6S75V5.js.map +1 -0
  37. package/dist/{chunk-P5HUBXUX.js → chunk-V2IWLR4O.js} +48 -5
  38. package/dist/chunk-V2IWLR4O.js.map +1 -0
  39. package/dist/{chunk-3OR47XMY.js → chunk-VSKL5LOB.js} +45 -17
  40. package/dist/chunk-VSKL5LOB.js.map +1 -0
  41. package/dist/{chunk-E3DZNJAD.js → chunk-Y4EDWZKH.js} +12 -10
  42. package/dist/chunk-Y4EDWZKH.js.map +1 -0
  43. package/dist/{chunk-YNCD6TKE.mjs → chunk-Y4IFVO46.mjs} +93 -28
  44. package/dist/chunk-Y4IFVO46.mjs.map +1 -0
  45. package/dist/{chunk-BITDSQMR.js → chunk-ZNDHS5OK.js} +10 -10
  46. package/dist/{chunk-BITDSQMR.js.map → chunk-ZNDHS5OK.js.map} +1 -1
  47. package/dist/hooks/useFocusManagement/useFocusManagement.d.ts +5 -14
  48. package/dist/hooks/useFocusManagement/useFocusManagement.d.ts.map +1 -1
  49. package/dist/hooks/useFocusManagement.js +2 -2
  50. package/dist/hooks/useFocusManagement.mjs +1 -1
  51. package/dist/ui/badge/animated.js +2 -2
  52. package/dist/ui/badge/animated.mjs +1 -1
  53. package/dist/ui/badge/badge-base.d.ts +1 -1
  54. package/dist/ui/badge/badge-base.d.ts.map +1 -1
  55. package/dist/ui/badge/types.d.ts +1 -0
  56. package/dist/ui/badge/types.d.ts.map +1 -1
  57. package/dist/ui/badge/variants.d.ts +7 -7
  58. package/dist/ui/badge.js +4 -4
  59. package/dist/ui/badge.mjs +2 -2
  60. package/dist/ui/buttons/animated.js +3 -3
  61. package/dist/ui/buttons/animated.mjs +1 -1
  62. package/dist/ui/buttons.js +4 -4
  63. package/dist/ui/buttons.mjs +2 -2
  64. package/dist/ui/drawer/animated/drawer-content-animated.d.ts.map +1 -1
  65. package/dist/ui/drawer/animated.js +17 -18
  66. package/dist/ui/drawer/animated.js.map +1 -1
  67. package/dist/ui/drawer/animated.mjs +8 -9
  68. package/dist/ui/drawer/animated.mjs.map +1 -1
  69. package/dist/ui/drawer/drawer-base.d.ts +1 -1
  70. package/dist/ui/drawer/drawer-base.d.ts.map +1 -1
  71. package/dist/ui/drawer/types.d.ts +1 -0
  72. package/dist/ui/drawer/types.d.ts.map +1 -1
  73. package/dist/ui/drawer.js +12 -12
  74. package/dist/ui/drawer.mjs +2 -2
  75. package/dist/ui/dropdown/dropdown.d.ts +1 -1
  76. package/dist/ui/dropdown/dropdown.d.ts.map +1 -1
  77. package/dist/ui/dropdown/types.d.ts +1 -0
  78. package/dist/ui/dropdown/types.d.ts.map +1 -1
  79. package/dist/ui/dropdown/variants.d.ts +1 -1
  80. package/dist/ui/dropdown.js +25 -7
  81. package/dist/ui/dropdown.js.map +1 -1
  82. package/dist/ui/dropdown.mjs +26 -8
  83. package/dist/ui/dropdown.mjs.map +1 -1
  84. package/dist/ui/empty-state/animated.js +2 -2
  85. package/dist/ui/empty-state/animated.mjs +1 -1
  86. package/dist/ui/empty-state/empty-state-base.d.ts.map +1 -1
  87. package/dist/ui/empty-state/types.d.ts +1 -0
  88. package/dist/ui/empty-state/types.d.ts.map +1 -1
  89. package/dist/ui/empty-state.js +10 -10
  90. package/dist/ui/empty-state.mjs +2 -2
  91. package/dist/ui/file-upload/file-upload.d.ts.map +1 -1
  92. package/dist/ui/file-upload.js +1 -3
  93. package/dist/ui/file-upload.js.map +1 -1
  94. package/dist/ui/file-upload.mjs +1 -3
  95. package/dist/ui/file-upload.mjs.map +1 -1
  96. package/dist/ui/inputs/input-base.d.ts.map +1 -1
  97. package/dist/ui/inputs/types.d.ts +3 -1
  98. package/dist/ui/inputs/types.d.ts.map +1 -1
  99. package/dist/ui/inputs.js +46 -2
  100. package/dist/ui/inputs.js.map +1 -1
  101. package/dist/ui/inputs.mjs +46 -2
  102. package/dist/ui/inputs.mjs.map +1 -1
  103. package/dist/ui/modal/animated/modal-content-animated.d.ts.map +1 -1
  104. package/dist/ui/modal/animated.js +10 -11
  105. package/dist/ui/modal/animated.js.map +1 -1
  106. package/dist/ui/modal/animated.mjs +7 -8
  107. package/dist/ui/modal/animated.mjs.map +1 -1
  108. package/dist/ui/modal/modal-base.d.ts +4 -2
  109. package/dist/ui/modal/modal-base.d.ts.map +1 -1
  110. package/dist/ui/modal.js +13 -13
  111. package/dist/ui/modal.mjs +3 -3
  112. package/dist/ui/pagination.js +6 -6
  113. package/dist/ui/pagination.js.map +1 -1
  114. package/dist/ui/pagination.mjs +3 -3
  115. package/dist/ui/pagination.mjs.map +1 -1
  116. package/dist/ui/progress/animated/progress-animated.d.ts.map +1 -1
  117. package/dist/ui/progress/animated.js +49 -11
  118. package/dist/ui/progress/animated.js.map +1 -1
  119. package/dist/ui/progress/animated.mjs +44 -6
  120. package/dist/ui/progress/animated.mjs.map +1 -1
  121. package/dist/ui/progress/progress-base.d.ts.map +1 -1
  122. package/dist/ui/progress/types.d.ts +3 -0
  123. package/dist/ui/progress/types.d.ts.map +1 -1
  124. package/dist/ui/progress.js +9 -9
  125. package/dist/ui/progress.mjs +2 -2
  126. package/dist/ui/search/search-bar.d.ts +1 -1
  127. package/dist/ui/search/search-bar.d.ts.map +1 -1
  128. package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
  129. package/dist/ui/search.js +12 -6
  130. package/dist/ui/search.js.map +1 -1
  131. package/dist/ui/search.mjs +12 -6
  132. package/dist/ui/search.mjs.map +1 -1
  133. package/dist/ui/select/select.d.ts +1 -1
  134. package/dist/ui/select/select.d.ts.map +1 -1
  135. package/dist/ui/select/types.d.ts +1 -0
  136. package/dist/ui/select/types.d.ts.map +1 -1
  137. package/dist/ui/select/variants.d.ts +1 -1
  138. package/dist/ui/select/variants.d.ts.map +1 -1
  139. package/dist/ui/select.js +121 -39
  140. package/dist/ui/select.js.map +1 -1
  141. package/dist/ui/select.mjs +122 -40
  142. package/dist/ui/select.mjs.map +1 -1
  143. package/dist/ui/skeleton/variants.d.ts +1 -1
  144. package/dist/ui/slider/slider.d.ts.map +1 -1
  145. package/dist/ui/slider/types.d.ts +8 -2
  146. package/dist/ui/slider/types.d.ts.map +1 -1
  147. package/dist/ui/slider.js +43 -7
  148. package/dist/ui/slider.js.map +1 -1
  149. package/dist/ui/slider.mjs +43 -7
  150. package/dist/ui/slider.mjs.map +1 -1
  151. package/dist/ui/spinner/animated/spinner.d.ts.map +1 -1
  152. package/dist/ui/spinner/animated.js +62 -50
  153. package/dist/ui/spinner/animated.js.map +1 -1
  154. package/dist/ui/spinner/animated.mjs +63 -51
  155. package/dist/ui/spinner/animated.mjs.map +1 -1
  156. package/dist/ui/stepper/stepper.d.ts +2 -7
  157. package/dist/ui/stepper/stepper.d.ts.map +1 -1
  158. package/dist/ui/stepper/types.d.ts +3 -3
  159. package/dist/ui/stepper/types.d.ts.map +1 -1
  160. package/dist/ui/stepper/variants.d.ts +1 -1
  161. package/dist/ui/stepper.js +7 -5
  162. package/dist/ui/stepper.js.map +1 -1
  163. package/dist/ui/stepper.mjs +7 -5
  164. package/dist/ui/stepper.mjs.map +1 -1
  165. package/dist/ui/table/animated.js +8 -8
  166. package/dist/ui/table/animated.mjs +2 -2
  167. package/dist/ui/table/table-base.d.ts +1 -1
  168. package/dist/ui/table/table-base.d.ts.map +1 -1
  169. package/dist/ui/table/types.d.ts +5 -1
  170. package/dist/ui/table/types.d.ts.map +1 -1
  171. package/dist/ui/table.js +14 -14
  172. package/dist/ui/table.mjs +1 -1
  173. package/dist/ui/tabs/animated.js +2 -2
  174. package/dist/ui/tabs/animated.mjs +1 -1
  175. package/dist/ui/tabs/tabs-base.d.ts.map +1 -1
  176. package/dist/ui/tabs/types.d.ts +2 -1
  177. package/dist/ui/tabs/types.d.ts.map +1 -1
  178. package/dist/ui/tabs.js +9 -9
  179. package/dist/ui/tabs.mjs +1 -1
  180. package/dist/ui/toast/animated.js +7 -7
  181. package/dist/ui/toast/animated.mjs +1 -1
  182. package/dist/ui/toast.js +12 -12
  183. package/dist/ui/toast.mjs +1 -1
  184. package/dist/ui/toggle/toggle-base.d.ts.map +1 -1
  185. package/dist/ui/toggle.js +28 -3
  186. package/dist/ui/toggle.js.map +1 -1
  187. package/dist/ui/toggle.mjs +29 -4
  188. package/dist/ui/toggle.mjs.map +1 -1
  189. package/dist/ui/tooltip/animated.js +3 -3
  190. package/dist/ui/tooltip/animated.mjs +1 -1
  191. package/dist/ui/tooltip/tooltip-base.d.ts.map +1 -1
  192. package/dist/ui/tooltip/types.d.ts +1 -0
  193. package/dist/ui/tooltip/types.d.ts.map +1 -1
  194. package/dist/ui/tooltip.js +7 -7
  195. package/dist/ui/tooltip.mjs +1 -1
  196. package/dist/ui/typography/blockquote-base.d.ts +6 -0
  197. package/dist/ui/typography/blockquote-base.d.ts.map +1 -0
  198. package/dist/ui/typography/blockquote.d.ts +6 -0
  199. package/dist/ui/typography/blockquote.d.ts.map +1 -0
  200. package/dist/ui/typography/code-block-base.d.ts +6 -0
  201. package/dist/ui/typography/code-block-base.d.ts.map +1 -0
  202. package/dist/ui/typography/code-block.d.ts +6 -0
  203. package/dist/ui/typography/code-block.d.ts.map +1 -0
  204. package/dist/ui/typography/heading-base.d.ts +6 -0
  205. package/dist/ui/typography/heading-base.d.ts.map +1 -0
  206. package/dist/ui/typography/heading.d.ts +6 -0
  207. package/dist/ui/typography/heading.d.ts.map +1 -0
  208. package/dist/ui/typography/index.d.ts +9 -0
  209. package/dist/ui/typography/index.d.ts.map +1 -0
  210. package/dist/ui/typography/inline-code-base.d.ts +6 -0
  211. package/dist/ui/typography/inline-code-base.d.ts.map +1 -0
  212. package/dist/ui/typography/inline-code.d.ts +6 -0
  213. package/dist/ui/typography/inline-code.d.ts.map +1 -0
  214. package/dist/ui/typography/list-base.d.ts +10 -0
  215. package/dist/ui/typography/list-base.d.ts.map +1 -0
  216. package/dist/ui/typography/list.d.ts +12 -0
  217. package/dist/ui/typography/list.d.ts.map +1 -0
  218. package/dist/ui/typography/text-base.d.ts +6 -0
  219. package/dist/ui/typography/text-base.d.ts.map +1 -0
  220. package/dist/ui/typography/text.d.ts +6 -0
  221. package/dist/ui/typography/text.d.ts.map +1 -0
  222. package/dist/ui/typography/types.d.ts +56 -0
  223. package/dist/ui/typography/types.d.ts.map +1 -0
  224. package/dist/ui/typography/variants.d.ts +16 -0
  225. package/dist/ui/typography/variants.d.ts.map +1 -0
  226. package/dist/ui/typography.js +334 -0
  227. package/dist/ui/typography.js.map +1 -0
  228. package/dist/ui/typography.mjs +321 -0
  229. package/dist/ui/typography.mjs.map +1 -0
  230. package/package.json +1 -1
  231. package/src/hooks/useFocusManagement/useFocusManagement.test.tsx +8 -0
  232. package/src/hooks/useFocusManagement/useFocusManagement.ts +162 -33
  233. package/src/ui/badge/badge-base.tsx +4 -1
  234. package/src/ui/badge/types.ts +1 -0
  235. package/src/ui/badge/variants.ts +7 -7
  236. package/src/ui/buttons/button.test.tsx +1 -1
  237. package/src/ui/buttons/variants.ts +8 -8
  238. package/src/ui/drawer/animated/drawer-content-animated.tsx +4 -5
  239. package/src/ui/drawer/drawer-base.tsx +16 -8
  240. package/src/ui/drawer/types.ts +1 -0
  241. package/src/ui/dropdown/dropdown.test.tsx +1 -3
  242. package/src/ui/dropdown/dropdown.tsx +23 -5
  243. package/src/ui/dropdown/types.ts +1 -0
  244. package/src/ui/dropdown/variants.ts +2 -2
  245. package/src/ui/empty-state/empty-state-base.tsx +9 -1
  246. package/src/ui/empty-state/types.ts +1 -0
  247. package/src/ui/file-upload/file-upload.tsx +0 -2
  248. package/src/ui/inputs/input-base.tsx +60 -6
  249. package/src/ui/inputs/types.ts +3 -1
  250. package/src/ui/modal/animated/modal-content-animated.tsx +4 -5
  251. package/src/ui/modal/modal-base.tsx +19 -9
  252. package/src/ui/modal/modal.test.tsx +38 -0
  253. package/src/ui/pagination/pagination.tsx +2 -2
  254. package/src/ui/progress/animated/progress-animated.tsx +42 -3
  255. package/src/ui/progress/progress-base.tsx +59 -3
  256. package/src/ui/progress/types.ts +3 -0
  257. package/src/ui/search/search-bar.tsx +6 -1
  258. package/src/ui/search/search-suggestion-list.tsx +14 -6
  259. package/src/ui/select/select.tsx +97 -6
  260. package/src/ui/select/types.ts +1 -0
  261. package/src/ui/select/variants.ts +5 -3
  262. package/src/ui/slider/slider.test.tsx +25 -1
  263. package/src/ui/slider/slider.tsx +45 -4
  264. package/src/ui/slider/types.ts +8 -2
  265. package/src/ui/spinner/animated/spinner.tsx +4 -0
  266. package/src/ui/stepper/stepper.test.tsx +6 -7
  267. package/src/ui/stepper/stepper.tsx +11 -10
  268. package/src/ui/stepper/types.ts +7 -3
  269. package/src/ui/table/table-base.tsx +32 -6
  270. package/src/ui/table/types.ts +8 -1
  271. package/src/ui/tabs/tabs-base.tsx +71 -10
  272. package/src/ui/tabs/types.ts +2 -1
  273. package/src/ui/tabs/variants.ts +1 -1
  274. package/src/ui/toast/toast-base.tsx +1 -1
  275. package/src/ui/toggle/toggle-base.tsx +37 -4
  276. package/src/ui/tooltip/tooltip-base.tsx +119 -22
  277. package/src/ui/tooltip/types.ts +1 -0
  278. package/src/ui/tooltip/variants.ts +2 -2
  279. package/src/ui/typography/blockquote-base.tsx +39 -0
  280. package/src/ui/typography/blockquote.tsx +8 -0
  281. package/src/ui/typography/code-block-base.tsx +37 -0
  282. package/src/ui/typography/code-block.tsx +8 -0
  283. package/src/ui/typography/heading-base.tsx +59 -0
  284. package/src/ui/typography/heading.tsx +8 -0
  285. package/src/ui/typography/index.ts +28 -0
  286. package/src/ui/typography/inline-code-base.tsx +27 -0
  287. package/src/ui/typography/inline-code.tsx +8 -0
  288. package/src/ui/typography/list-base.tsx +88 -0
  289. package/src/ui/typography/list.tsx +15 -0
  290. package/src/ui/typography/text-base.tsx +43 -0
  291. package/src/ui/typography/text.tsx +8 -0
  292. package/src/ui/typography/types.ts +90 -0
  293. package/src/ui/typography/typography.test.tsx +80 -0
  294. package/src/ui/typography/variants.ts +72 -0
  295. package/dist/chunk-2PQEXQVR.js.map +0 -1
  296. package/dist/chunk-3OR47XMY.js.map +0 -1
  297. package/dist/chunk-5QB2KNZQ.js.map +0 -1
  298. package/dist/chunk-7HL3A4YF.mjs.map +0 -1
  299. package/dist/chunk-BVXTOEBI.mjs.map +0 -1
  300. package/dist/chunk-E3DZNJAD.js.map +0 -1
  301. package/dist/chunk-IXDJ3IPG.mjs.map +0 -1
  302. package/dist/chunk-N4NO3SYL.js.map +0 -1
  303. package/dist/chunk-P5HUBXUX.js.map +0 -1
  304. package/dist/chunk-PGH27VTL.mjs.map +0 -1
  305. package/dist/chunk-RDSPHBHK.mjs.map +0 -1
  306. package/dist/chunk-WDCIZHXY.mjs.map +0 -1
  307. package/dist/chunk-WL5I7RVS.mjs +0 -54
  308. package/dist/chunk-WL5I7RVS.mjs.map +0 -1
  309. package/dist/chunk-WZKGRU3U.js.map +0 -1
  310. package/dist/chunk-XLAFQ24R.js.map +0 -1
  311. package/dist/chunk-XWM2S6VV.mjs.map +0 -1
  312. package/dist/chunk-YNCD6TKE.mjs.map +0 -1
  313. package/dist/chunk-YPLVTUYL.js +0 -56
  314. package/dist/chunk-YPLVTUYL.js.map +0 -1
@@ -1,8 +1,10 @@
1
1
  import type { VariantProps } from "class-variance-authority";
2
- import type { ComponentPropsWithRef } from "react";
2
+ import type { ComponentPropsWithRef, ReactNode } from "react";
3
3
  import type { inputVariants } from "./variants";
4
4
  export type InputSharedProps = Omit<VariantProps<typeof inputVariants>, "as"> & {
5
5
  errorMessage?: string;
6
+ hint?: ReactNode;
7
+ label?: ReactNode;
6
8
  };
7
9
  export type InputProps = (InputSharedProps & Omit<ComponentPropsWithRef<"input">, "size" | "as"> & {
8
10
  as?: "input" | "file" | "checkbox" | "radio";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/inputs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,CAAC,gBAAgB,GACf,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IACpD,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;CAC9C,CAAC,GACJ,CAAC,gBAAgB,GACf,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IACvD,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/inputs/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,CAAC,gBAAgB,GACf,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IACpD,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;CAC9C,CAAC,GACJ,CAAC,gBAAgB,GACf,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IACvD,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC,CAAC"}
package/dist/ui/inputs.js CHANGED
@@ -6,6 +6,14 @@ var chunkUOZYPWDZ_js = require('../chunk-UOZYPWDZ.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
 
9
+ function mergeDescribedByIds(user, ...generated) {
10
+ const ids = [
11
+ ...(user ?? "").split(/\s+/).filter(Boolean),
12
+ ...generated.filter((id) => Boolean(id))
13
+ ];
14
+ const unique = [...new Set(ids)];
15
+ return unique.length > 0 ? unique.join(" ") : void 0;
16
+ }
9
17
  var InputBase = (props) => {
10
18
  const generatedId = react.useId();
11
19
  if (props.as === "textarea") {
@@ -17,14 +25,32 @@ var InputBase = (props) => {
17
25
  ref: ref2,
18
26
  "aria-invalid": ariaInvalidProp2,
19
27
  errorMessage: errorMessage2,
28
+ hint: hint2,
29
+ label: label2,
20
30
  id: id2,
21
31
  as: as2,
32
+ "aria-describedby": ariaDescribedByUser2,
22
33
  ...rest2
23
34
  } = props;
24
35
  const controlId2 = id2 ?? generatedId;
25
36
  const errorId2 = `${controlId2}-error`;
37
+ const hintId2 = `${controlId2}-hint`;
26
38
  const ariaInvalid2 = ariaInvalidProp2 !== void 0 ? ariaInvalidProp2 : appearance2 === "error" ? true : void 0;
39
+ const describedBy2 = mergeDescribedByIds(
40
+ ariaDescribedByUser2,
41
+ hint2 !== void 0 ? hintId2 : void 0,
42
+ errorMessage2 && appearance2 === "error" ? errorId2 : void 0
43
+ );
27
44
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
45
+ label2 !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
46
+ "label",
47
+ {
48
+ htmlFor: controlId2,
49
+ className: "mb-1 block text-sm font-medium text-slate-200",
50
+ children: label2
51
+ }
52
+ ),
53
+ hint2 !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: hintId2, className: "mb-1 text-xs text-slate-400", children: hint2 }),
28
54
  /* @__PURE__ */ jsxRuntime.jsx(
29
55
  "textarea",
30
56
  {
@@ -36,7 +62,7 @@ var InputBase = (props) => {
36
62
  className2
37
63
  ),
38
64
  "aria-invalid": ariaInvalid2,
39
- "aria-describedby": errorMessage2 && appearance2 === "error" ? errorId2 : void 0,
65
+ "aria-describedby": describedBy2,
40
66
  ...rest2
41
67
  }
42
68
  ),
@@ -58,14 +84,32 @@ var InputBase = (props) => {
58
84
  ref,
59
85
  "aria-invalid": ariaInvalidProp,
60
86
  errorMessage,
87
+ hint,
88
+ label,
61
89
  id,
62
90
  as,
91
+ "aria-describedby": ariaDescribedByUser,
63
92
  ...rest
64
93
  } = props;
65
94
  const controlId = id ?? generatedId;
66
95
  const errorId = `${controlId}-error`;
96
+ const hintId = `${controlId}-hint`;
67
97
  const ariaInvalid = ariaInvalidProp !== void 0 ? ariaInvalidProp : appearance === "error" ? true : void 0;
98
+ const describedBy = mergeDescribedByIds(
99
+ ariaDescribedByUser,
100
+ hint !== void 0 ? hintId : void 0,
101
+ errorMessage && appearance === "error" ? errorId : void 0
102
+ );
68
103
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
104
+ label !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
105
+ "label",
106
+ {
107
+ htmlFor: controlId,
108
+ className: "mb-1 block text-sm font-medium text-slate-200",
109
+ children: label
110
+ }
111
+ ),
112
+ hint !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: hintId, className: "mb-1 text-xs text-slate-400", children: hint }),
69
113
  /* @__PURE__ */ jsxRuntime.jsx(
70
114
  "input",
71
115
  {
@@ -77,7 +121,7 @@ var InputBase = (props) => {
77
121
  className
78
122
  ),
79
123
  "aria-invalid": ariaInvalid,
80
- "aria-describedby": errorMessage && appearance === "error" ? errorId : void 0,
124
+ "aria-describedby": describedBy,
81
125
  ...rest
82
126
  }
83
127
  ),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/inputs/input-base.tsx","../../src/ui/inputs/input.tsx"],"names":["useId","className","appearance","size","ring","ref","ariaInvalidProp","errorMessage","id","as","rest","controlId","errorId","ariaInvalid","jsxs","Fragment","jsx","cn","inputVariants"],"mappings":"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","file":"inputs.js","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { InputProps } from \"./types\";\nimport { inputVariants } from \"./variants\";\n\nexport const InputBase = (props: InputProps) => {\n const generatedId = useId();\n\n if (props.as === \"textarea\") {\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n id,\n as,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n return (\n <>\n <textarea\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={\n errorMessage && appearance === \"error\" ? errorId : undefined\n }\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n }\n\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n id,\n as,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n return (\n <>\n <input\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as: as ?? \"input\" }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={\n errorMessage && appearance === \"error\" ? errorId : undefined\n }\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n};\n\nInputBase.displayName = \"Input\";\n","import { InputBase } from \"./input-base\";\nimport type { InputProps } from \"./types\";\n\nexport const Input = (props: InputProps) => {\n return <InputBase {...props} />;\n};\n\nInput.displayName = \"Input\";\n"]}
1
+ {"version":3,"sources":["../../src/ui/inputs/input-base.tsx","../../src/ui/inputs/input.tsx"],"names":["useId","className","appearance","size","ring","ref","ariaInvalidProp","errorMessage","hint","label","id","as","ariaDescribedByUser","rest","controlId","errorId","hintId","ariaInvalid","describedBy","jsxs","Fragment","jsx","cn","inputVariants"],"mappings":"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","file":"inputs.js","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { InputProps } from \"./types\";\nimport { inputVariants } from \"./variants\";\n\nfunction mergeDescribedByIds(\n user: string | undefined,\n ...generated: (string | undefined)[]\n): string | undefined {\n const ids = [\n ...(user ?? \"\").split(/\\s+/).filter(Boolean),\n ...generated.filter((id): id is string => Boolean(id)),\n ];\n const unique = [...new Set(ids)];\n return unique.length > 0 ? unique.join(\" \") : undefined;\n}\n\nexport const InputBase = (props: InputProps) => {\n const generatedId = useId();\n\n if (props.as === \"textarea\") {\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n hint,\n label,\n id,\n as,\n \"aria-describedby\": ariaDescribedByUser,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const hintId = `${controlId}-hint`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n const describedBy = mergeDescribedByIds(\n ariaDescribedByUser,\n hint !== undefined ? hintId : undefined,\n errorMessage && appearance === \"error\" ? errorId : undefined,\n );\n\n return (\n <>\n {label !== undefined && (\n <label\n htmlFor={controlId}\n className=\"mb-1 block text-sm font-medium text-slate-200\"\n >\n {label}\n </label>\n )}\n {hint !== undefined && (\n <p id={hintId} className=\"mb-1 text-xs text-slate-400\">\n {hint}\n </p>\n )}\n <textarea\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={describedBy}\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n }\n\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n hint,\n label,\n id,\n as,\n \"aria-describedby\": ariaDescribedByUser,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const hintId = `${controlId}-hint`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n const describedBy = mergeDescribedByIds(\n ariaDescribedByUser,\n hint !== undefined ? hintId : undefined,\n errorMessage && appearance === \"error\" ? errorId : undefined,\n );\n\n return (\n <>\n {label !== undefined && (\n <label\n htmlFor={controlId}\n className=\"mb-1 block text-sm font-medium text-slate-200\"\n >\n {label}\n </label>\n )}\n {hint !== undefined && (\n <p id={hintId} className=\"mb-1 text-xs text-slate-400\">\n {hint}\n </p>\n )}\n <input\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as: as ?? \"input\" }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={describedBy}\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n};\n\nInputBase.displayName = \"Input\";\n","import { InputBase } from \"./input-base\";\nimport type { InputProps } from \"./types\";\n\nexport const Input = (props: InputProps) => {\n return <InputBase {...props} />;\n};\n\nInput.displayName = \"Input\";\n"]}
@@ -5,6 +5,14 @@ import { cn } from '../chunk-DFEZH7TC.mjs';
5
5
  import { useId } from 'react';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
 
8
+ function mergeDescribedByIds(user, ...generated) {
9
+ const ids = [
10
+ ...(user ?? "").split(/\s+/).filter(Boolean),
11
+ ...generated.filter((id) => Boolean(id))
12
+ ];
13
+ const unique = [...new Set(ids)];
14
+ return unique.length > 0 ? unique.join(" ") : void 0;
15
+ }
8
16
  var InputBase = (props) => {
9
17
  const generatedId = useId();
10
18
  if (props.as === "textarea") {
@@ -16,14 +24,32 @@ var InputBase = (props) => {
16
24
  ref: ref2,
17
25
  "aria-invalid": ariaInvalidProp2,
18
26
  errorMessage: errorMessage2,
27
+ hint: hint2,
28
+ label: label2,
19
29
  id: id2,
20
30
  as: as2,
31
+ "aria-describedby": ariaDescribedByUser2,
21
32
  ...rest2
22
33
  } = props;
23
34
  const controlId2 = id2 ?? generatedId;
24
35
  const errorId2 = `${controlId2}-error`;
36
+ const hintId2 = `${controlId2}-hint`;
25
37
  const ariaInvalid2 = ariaInvalidProp2 !== void 0 ? ariaInvalidProp2 : appearance2 === "error" ? true : void 0;
38
+ const describedBy2 = mergeDescribedByIds(
39
+ ariaDescribedByUser2,
40
+ hint2 !== void 0 ? hintId2 : void 0,
41
+ errorMessage2 && appearance2 === "error" ? errorId2 : void 0
42
+ );
26
43
  return /* @__PURE__ */ jsxs(Fragment, { children: [
44
+ label2 !== void 0 && /* @__PURE__ */ jsx(
45
+ "label",
46
+ {
47
+ htmlFor: controlId2,
48
+ className: "mb-1 block text-sm font-medium text-slate-200",
49
+ children: label2
50
+ }
51
+ ),
52
+ hint2 !== void 0 && /* @__PURE__ */ jsx("p", { id: hintId2, className: "mb-1 text-xs text-slate-400", children: hint2 }),
27
53
  /* @__PURE__ */ jsx(
28
54
  "textarea",
29
55
  {
@@ -35,7 +61,7 @@ var InputBase = (props) => {
35
61
  className2
36
62
  ),
37
63
  "aria-invalid": ariaInvalid2,
38
- "aria-describedby": errorMessage2 && appearance2 === "error" ? errorId2 : void 0,
64
+ "aria-describedby": describedBy2,
39
65
  ...rest2
40
66
  }
41
67
  ),
@@ -57,14 +83,32 @@ var InputBase = (props) => {
57
83
  ref,
58
84
  "aria-invalid": ariaInvalidProp,
59
85
  errorMessage,
86
+ hint,
87
+ label,
60
88
  id,
61
89
  as,
90
+ "aria-describedby": ariaDescribedByUser,
62
91
  ...rest
63
92
  } = props;
64
93
  const controlId = id ?? generatedId;
65
94
  const errorId = `${controlId}-error`;
95
+ const hintId = `${controlId}-hint`;
66
96
  const ariaInvalid = ariaInvalidProp !== void 0 ? ariaInvalidProp : appearance === "error" ? true : void 0;
97
+ const describedBy = mergeDescribedByIds(
98
+ ariaDescribedByUser,
99
+ hint !== void 0 ? hintId : void 0,
100
+ errorMessage && appearance === "error" ? errorId : void 0
101
+ );
67
102
  return /* @__PURE__ */ jsxs(Fragment, { children: [
103
+ label !== void 0 && /* @__PURE__ */ jsx(
104
+ "label",
105
+ {
106
+ htmlFor: controlId,
107
+ className: "mb-1 block text-sm font-medium text-slate-200",
108
+ children: label
109
+ }
110
+ ),
111
+ hint !== void 0 && /* @__PURE__ */ jsx("p", { id: hintId, className: "mb-1 text-xs text-slate-400", children: hint }),
68
112
  /* @__PURE__ */ jsx(
69
113
  "input",
70
114
  {
@@ -76,7 +120,7 @@ var InputBase = (props) => {
76
120
  className
77
121
  ),
78
122
  "aria-invalid": ariaInvalid,
79
- "aria-describedby": errorMessage && appearance === "error" ? errorId : void 0,
123
+ "aria-describedby": describedBy,
80
124
  ...rest
81
125
  }
82
126
  ),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/inputs/input-base.tsx","../../src/ui/inputs/input.tsx"],"names":["className","appearance","size","ring","ref","ariaInvalidProp","errorMessage","id","as","rest","controlId","errorId","ariaInvalid","jsx"],"mappings":"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","file":"inputs.mjs","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { InputProps } from \"./types\";\nimport { inputVariants } from \"./variants\";\n\nexport const InputBase = (props: InputProps) => {\n const generatedId = useId();\n\n if (props.as === \"textarea\") {\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n id,\n as,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n return (\n <>\n <textarea\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={\n errorMessage && appearance === \"error\" ? errorId : undefined\n }\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n }\n\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n id,\n as,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n return (\n <>\n <input\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as: as ?? \"input\" }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={\n errorMessage && appearance === \"error\" ? errorId : undefined\n }\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n};\n\nInputBase.displayName = \"Input\";\n","import { InputBase } from \"./input-base\";\nimport type { InputProps } from \"./types\";\n\nexport const Input = (props: InputProps) => {\n return <InputBase {...props} />;\n};\n\nInput.displayName = \"Input\";\n"]}
1
+ {"version":3,"sources":["../../src/ui/inputs/input-base.tsx","../../src/ui/inputs/input.tsx"],"names":["className","appearance","size","ring","ref","ariaInvalidProp","errorMessage","hint","label","id","as","ariaDescribedByUser","rest","controlId","errorId","hintId","ariaInvalid","describedBy","jsx"],"mappings":"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","file":"inputs.mjs","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { InputProps } from \"./types\";\nimport { inputVariants } from \"./variants\";\n\nfunction mergeDescribedByIds(\n user: string | undefined,\n ...generated: (string | undefined)[]\n): string | undefined {\n const ids = [\n ...(user ?? \"\").split(/\\s+/).filter(Boolean),\n ...generated.filter((id): id is string => Boolean(id)),\n ];\n const unique = [...new Set(ids)];\n return unique.length > 0 ? unique.join(\" \") : undefined;\n}\n\nexport const InputBase = (props: InputProps) => {\n const generatedId = useId();\n\n if (props.as === \"textarea\") {\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n hint,\n label,\n id,\n as,\n \"aria-describedby\": ariaDescribedByUser,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const hintId = `${controlId}-hint`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n const describedBy = mergeDescribedByIds(\n ariaDescribedByUser,\n hint !== undefined ? hintId : undefined,\n errorMessage && appearance === \"error\" ? errorId : undefined,\n );\n\n return (\n <>\n {label !== undefined && (\n <label\n htmlFor={controlId}\n className=\"mb-1 block text-sm font-medium text-slate-200\"\n >\n {label}\n </label>\n )}\n {hint !== undefined && (\n <p id={hintId} className=\"mb-1 text-xs text-slate-400\">\n {hint}\n </p>\n )}\n <textarea\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={describedBy}\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n }\n\n const {\n className,\n appearance,\n size,\n ring = true,\n ref,\n \"aria-invalid\": ariaInvalidProp,\n errorMessage,\n hint,\n label,\n id,\n as,\n \"aria-describedby\": ariaDescribedByUser,\n ...rest\n } = props;\n\n const controlId = id ?? generatedId;\n const errorId = `${controlId}-error`;\n const hintId = `${controlId}-hint`;\n const ariaInvalid =\n ariaInvalidProp !== undefined\n ? ariaInvalidProp\n : appearance === \"error\"\n ? true\n : undefined;\n\n const describedBy = mergeDescribedByIds(\n ariaDescribedByUser,\n hint !== undefined ? hintId : undefined,\n errorMessage && appearance === \"error\" ? errorId : undefined,\n );\n\n return (\n <>\n {label !== undefined && (\n <label\n htmlFor={controlId}\n className=\"mb-1 block text-sm font-medium text-slate-200\"\n >\n {label}\n </label>\n )}\n {hint !== undefined && (\n <p id={hintId} className=\"mb-1 text-xs text-slate-400\">\n {hint}\n </p>\n )}\n <input\n ref={ref}\n id={controlId}\n data-slot=\"input\"\n className={cn(\n inputVariants({ appearance, size, ring, as: as ?? \"input\" }),\n className,\n )}\n aria-invalid={ariaInvalid}\n aria-describedby={describedBy}\n {...rest}\n />\n {errorMessage && appearance === \"error\" && (\n <p\n id={errorId}\n className=\"mt-2 pl-4 text-sm text-rose-500 wrap-break-word\"\n >\n {errorMessage}\n </p>\n )}\n </>\n );\n};\n\nInputBase.displayName = \"Input\";\n","import { InputBase } from \"./input-base\";\nimport type { InputProps } from \"./types\";\n\nexport const Input = (props: InputProps) => {\n return <InputBase {...props} />;\n};\n\nInput.displayName = \"Input\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"modal-content-animated.d.ts","sourceRoot":"","sources":["../../../../src/ui/modal/animated/modal-content-animated.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIzD,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,SAAmB,EACnB,QAAQ,EACR,GAAG,EACH,EAAE,EACF,KAAK,GACN,EAAE,yBAAyB,sCAsE3B;yBAhFe,oBAAoB"}
1
+ {"version":3,"file":"modal-content-animated.d.ts","sourceRoot":"","sources":["../../../../src/ui/modal/animated/modal-content-animated.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIzD,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,SAAmB,EACnB,QAAQ,EACR,GAAG,EACH,EAAE,EACF,KAAK,GACN,EAAE,yBAAyB,sCAqE3B;yBA/Ee,oBAAoB"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkXLAFQ24R_js = require('../../chunk-XLAFQ24R.js');
5
- var chunkYPLVTUYL_js = require('../../chunk-YPLVTUYL.js');
4
+ var chunk4U6FOCFK_js = require('../../chunk-4U6FOCFK.js');
5
+ var chunkUP6S75V5_js = require('../../chunk-UP6S75V5.js');
6
6
  require('../../chunk-UIYFEP3I.js');
7
7
  var chunkUOZYPWDZ_js = require('../../chunk-UOZYPWDZ.js');
8
8
  var framerMotion = require('framer-motion');
@@ -48,14 +48,15 @@ function ModalContentAnimated({
48
48
  id,
49
49
  style
50
50
  }) {
51
- const { open, setOpen, titleId, descriptionId, contentRef } = chunkXLAFQ24R_js.useModalContext("ModalContent");
51
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = chunk4U6FOCFK_js.useModalContext("ModalContent");
52
52
  const reduceMotion = framerMotion.useReducedMotion();
53
53
  const overlayMotion = modalOverlayAnimationPresets[reduceMotion ? "fade" : animation];
54
54
  const panelMotion = modalOverlayAnimationPresets[reduceMotion ? "fade" : animation];
55
- chunkYPLVTUYL_js.useFocusManagement({
55
+ chunkUP6S75V5_js.useFocusManagement({
56
56
  open,
57
57
  setOpen,
58
- contentRef
58
+ contentRef,
59
+ triggerRef
59
60
  });
60
61
  const portalTarget = typeof document !== "undefined" ? document.body : null;
61
62
  if (!portalTarget) {
@@ -64,13 +65,11 @@ function ModalContentAnimated({
64
65
  return reactDom.createPortal(
65
66
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { children: open ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50", "data-slot": "modal-portal", children: [
66
67
  /* @__PURE__ */ jsxRuntime.jsx(
67
- framerMotion.motion.button,
68
+ framerMotion.motion.div,
68
69
  {
69
- type: "button",
70
- "aria-hidden": true,
71
- tabIndex: -1,
70
+ role: "presentation",
72
71
  "data-slot": "modal-overlay",
73
- className: chunkXLAFQ24R_js.modalOverlayVariants(),
72
+ className: chunk4U6FOCFK_js.modalOverlayVariants(),
74
73
  onClick: () => setOpen(false),
75
74
  initial: animation === "none" ? false : overlayMotion.initial,
76
75
  animate: animation === "none" ? void 0 : overlayMotion.animate,
@@ -96,7 +95,7 @@ function ModalContentAnimated({
96
95
  "data-slot": "modal-content",
97
96
  tabIndex: -1,
98
97
  className: chunkUOZYPWDZ_js.cn(
99
- chunkXLAFQ24R_js.modalContentVariants({ size, position, appearance }),
98
+ chunk4U6FOCFK_js.modalContentVariants({ size, position, appearance }),
100
99
  className
101
100
  ),
102
101
  initial: animation === "none" ? false : panelMotion.initial,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ui/modal/animated/animations.ts","../../../src/ui/modal/animated/modal-content-animated.tsx"],"names":["useModalContext","useReducedMotion","useFocusManagement","createPortal","jsx","AnimatePresence","jsxs","motion","modalOverlayVariants","cn","modalContentVariants"],"mappings":"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","file":"animated.js","sourcesContent":["import type { ModalAnimationPresets } from \"./types\";\n\nexport const modalOverlayAnimationPresets: ModalAnimationPresets = {\n none: {},\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.2 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.96 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.96 },\n transition: { type: \"spring\", stiffness: 420, damping: 32 },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n \"slide-down\": {\n initial: { opacity: 0, y: -24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n};\n","\"use client\";\n\nimport { AnimatePresence, motion, useReducedMotion } from \"framer-motion\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { useFocusManagement } from \"../../../hooks/useFocusManagement\";\n\nimport { modalOverlayAnimationPresets } from \"./animations\";\nimport type { ModalContentAnimatedProps } from \"./types\";\nimport { modalContentVariants, modalOverlayVariants } from \"../variants\";\nimport { useModalContext } from \"../modal-base\";\n\nexport function ModalContentAnimated({\n className,\n size,\n position,\n appearance,\n animation = \"scale\",\n children,\n ref,\n id,\n style,\n}: ModalContentAnimatedProps) {\n const { open, setOpen, titleId, descriptionId, contentRef } =\n useModalContext(\"ModalContent\");\n const reduceMotion = useReducedMotion();\n const overlayMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n const panelMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n\n useFocusManagement({\n open,\n setOpen,\n contentRef,\n });\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <AnimatePresence>\n {open ? (\n <div className=\"fixed inset-0 z-50\" data-slot=\"modal-portal\">\n <motion.button\n type=\"button\"\n aria-hidden\n tabIndex={-1}\n data-slot=\"modal-overlay\"\n className={modalOverlayVariants()}\n onClick={() => setOpen(false)}\n initial={animation === \"none\" ? false : overlayMotion.initial}\n animate={animation === \"none\" ? undefined : overlayMotion.animate}\n exit={animation === \"none\" ? undefined : overlayMotion.exit}\n transition={overlayMotion.transition}\n />\n <motion.div\n ref={(node) => {\n contentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-slot=\"modal-content\"\n tabIndex={-1}\n className={cn(\n modalContentVariants({ size, position, appearance }),\n className,\n )}\n initial={animation === \"none\" ? false : panelMotion.initial}\n animate={animation === \"none\" ? undefined : panelMotion.animate}\n exit={animation === \"none\" ? undefined : panelMotion.exit}\n transition={panelMotion.transition}\n id={id}\n style={style}\n >\n {children}\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n portalTarget,\n );\n}\n\nModalContentAnimated.displayName = \"ModalContent\";\n"]}
1
+ {"version":3,"sources":["../../../src/ui/modal/animated/animations.ts","../../../src/ui/modal/animated/modal-content-animated.tsx"],"names":["useModalContext","useReducedMotion","useFocusManagement","createPortal","jsx","AnimatePresence","jsxs","motion","modalOverlayVariants","cn","modalContentVariants"],"mappings":";;;;;;;;;;;AAEO,IAAM,4BAAA,GAAsD;AAAA,EACjE,MAAM,EAAC;AAAA,EACP,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,IACtB,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,IACtB,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,IACnB,UAAA,EAAY,EAAE,QAAA,EAAU,GAAA;AAAI,GAC9B;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAG,OAAO,IAAA,EAAK;AAAA,IACnC,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAG,OAAO,CAAA,EAAE;AAAA,IAChC,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAG,OAAO,IAAA,EAAK;AAAA,IAChC,YAAY,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,SAAS,EAAA;AAAG,GAC5D;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAG,GAAG,EAAA,EAAG;AAAA,IAC7B,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,IAC5B,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAG,GAAG,EAAA,EAAG;AAAA,IAC1B,YAAY,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,SAAS,EAAA;AAAG,GAC5D;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAG,GAAG,GAAA,EAAI;AAAA,IAC9B,OAAA,EAAS,EAAE,OAAA,EAAS,CAAA,EAAG,GAAG,CAAA,EAAE;AAAA,IAC5B,IAAA,EAAM,EAAE,OAAA,EAAS,CAAA,EAAG,GAAG,GAAA,EAAI;AAAA,IAC3B,YAAY,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,SAAS,EAAA;AAAG;AAE9D;ACfO,SAAS,oBAAA,CAAqB;AAAA,EACnC,SAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,OAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAA;AAAA,EACA,EAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,EAAE,MAAM,OAAA,EAAS,OAAA,EAAS,eAAe,UAAA,EAAY,UAAA,EAAW,GACpEA,gCAAA,CAAgB,cAAc,CAAA;AAChC,EAAA,MAAM,eAAeC,6BAAA,EAAiB;AACtC,EAAA,MAAM,aAAA,GACJ,4BAAA,CAA6B,YAAA,GAAe,MAAA,GAAS,SAAS,CAAA;AAChE,EAAA,MAAM,WAAA,GACJ,4BAAA,CAA6B,YAAA,GAAe,MAAA,GAAS,SAAS,CAAA;AAEhE,EAAAC,mCAAA,CAAmB;AAAA,IACjB,IAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,OAAO,QAAA,KAAa,WAAA,GAAc,SAAS,IAAA,GAAO,IAAA;AAEvE,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAOC,qBAAA;AAAA,oBACLC,cAAA,CAACC,gCACE,QAAA,EAAA,IAAA,mBACCC,eAAA,CAAC,SAAI,SAAA,EAAU,oBAAA,EAAqB,aAAU,cAAA,EAC5C,QAAA,EAAA;AAAA,sBAAAF,cAAA;AAAA,QAACG,mBAAA,CAAO,GAAA;AAAA,QAAP;AAAA,UACC,IAAA,EAAK,cAAA;AAAA,UACL,WAAA,EAAU,eAAA;AAAA,UACV,WAAWC,qCAAA,EAAqB;AAAA,UAChC,OAAA,EAAS,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,UAC5B,OAAA,EAAS,SAAA,KAAc,MAAA,GAAS,KAAA,GAAQ,aAAA,CAAc,OAAA;AAAA,UACtD,OAAA,EAAS,SAAA,KAAc,MAAA,GAAS,MAAA,GAAY,aAAA,CAAc,OAAA;AAAA,UAC1D,IAAA,EAAM,SAAA,KAAc,MAAA,GAAS,MAAA,GAAY,aAAA,CAAc,IAAA;AAAA,UACvD,YAAY,aAAA,CAAc;AAAA;AAAA,OAC5B;AAAA,sBACAJ,cAAA;AAAA,QAACG,mBAAA,CAAO,GAAA;AAAA,QAAP;AAAA,UACC,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,YAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,YAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,cAAA,GAAA,CAAI,IAAI,CAAA;AAAA,YACV,WAAW,GAAA,EAAK;AACd,cAAC,IAA+C,OAAA,GAAU,IAAA;AAAA,YAC5D;AAAA,UACF,CAAA;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,YAAA,EAAW,MAAA;AAAA,UACX,iBAAA,EAAiB,OAAA;AAAA,UACjB,kBAAA,EAAkB,aAAA;AAAA,UAClB,WAAA,EAAU,eAAA;AAAA,UACV,QAAA,EAAU,EAAA;AAAA,UACV,SAAA,EAAWE,mBAAA;AAAA,YACTC,qCAAA,CAAqB,EAAE,IAAA,EAAM,QAAA,EAAU,YAAY,CAAA;AAAA,YACnD;AAAA,WACF;AAAA,UACA,OAAA,EAAS,SAAA,KAAc,MAAA,GAAS,KAAA,GAAQ,WAAA,CAAY,OAAA;AAAA,UACpD,OAAA,EAAS,SAAA,KAAc,MAAA,GAAS,MAAA,GAAY,WAAA,CAAY,OAAA;AAAA,UACxD,IAAA,EAAM,SAAA,KAAc,MAAA,GAAS,MAAA,GAAY,WAAA,CAAY,IAAA;AAAA,UACrD,YAAY,WAAA,CAAY,UAAA;AAAA,UACxB,EAAA;AAAA,UACA,KAAA;AAAA,UAEC;AAAA;AAAA;AACH,KAAA,EACF,IACE,IAAA,EACN,CAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,oBAAA,CAAqB,WAAA,GAAc,cAAA","file":"animated.js","sourcesContent":["import type { ModalAnimationPresets } from \"./types\";\n\nexport const modalOverlayAnimationPresets: ModalAnimationPresets = {\n none: {},\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.2 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.96 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.96 },\n transition: { type: \"spring\", stiffness: 420, damping: 32 },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n \"slide-down\": {\n initial: { opacity: 0, y: -24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n};\n","\"use client\";\n\nimport { AnimatePresence, motion, useReducedMotion } from \"framer-motion\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { useFocusManagement } from \"../../../hooks/useFocusManagement\";\n\nimport { modalOverlayAnimationPresets } from \"./animations\";\nimport type { ModalContentAnimatedProps } from \"./types\";\nimport { modalContentVariants, modalOverlayVariants } from \"../variants\";\nimport { useModalContext } from \"../modal-base\";\n\nexport function ModalContentAnimated({\n className,\n size,\n position,\n appearance,\n animation = \"scale\",\n children,\n ref,\n id,\n style,\n}: ModalContentAnimatedProps) {\n const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } =\n useModalContext(\"ModalContent\");\n const reduceMotion = useReducedMotion();\n const overlayMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n const panelMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n\n useFocusManagement({\n open,\n setOpen,\n contentRef,\n triggerRef,\n });\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <AnimatePresence>\n {open ? (\n <div className=\"fixed inset-0 z-50\" data-slot=\"modal-portal\">\n <motion.div\n role=\"presentation\"\n data-slot=\"modal-overlay\"\n className={modalOverlayVariants()}\n onClick={() => setOpen(false)}\n initial={animation === \"none\" ? false : overlayMotion.initial}\n animate={animation === \"none\" ? undefined : overlayMotion.animate}\n exit={animation === \"none\" ? undefined : overlayMotion.exit}\n transition={overlayMotion.transition}\n />\n <motion.div\n ref={(node) => {\n contentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-slot=\"modal-content\"\n tabIndex={-1}\n className={cn(\n modalContentVariants({ size, position, appearance }),\n className,\n )}\n initial={animation === \"none\" ? false : panelMotion.initial}\n animate={animation === \"none\" ? undefined : panelMotion.animate}\n exit={animation === \"none\" ? undefined : panelMotion.exit}\n transition={panelMotion.transition}\n id={id}\n style={style}\n >\n {children}\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n portalTarget,\n );\n}\n\nModalContentAnimated.displayName = \"ModalContent\";\n"]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useModalContext, modalOverlayVariants, modalContentVariants } from '../../chunk-IXDJ3IPG.mjs';
3
- import { useFocusManagement } from '../../chunk-WL5I7RVS.mjs';
2
+ import { useModalContext, modalOverlayVariants, modalContentVariants } from '../../chunk-OXS6UJUG.mjs';
3
+ import { useFocusManagement } from '../../chunk-4E66ICIR.mjs';
4
4
  import '../../chunk-PMAF6FBF.mjs';
5
5
  import { cn } from '../../chunk-DFEZH7TC.mjs';
6
6
  import { useReducedMotion, AnimatePresence, motion } from 'framer-motion';
@@ -46,14 +46,15 @@ function ModalContentAnimated({
46
46
  id,
47
47
  style
48
48
  }) {
49
- const { open, setOpen, titleId, descriptionId, contentRef } = useModalContext("ModalContent");
49
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = useModalContext("ModalContent");
50
50
  const reduceMotion = useReducedMotion();
51
51
  const overlayMotion = modalOverlayAnimationPresets[reduceMotion ? "fade" : animation];
52
52
  const panelMotion = modalOverlayAnimationPresets[reduceMotion ? "fade" : animation];
53
53
  useFocusManagement({
54
54
  open,
55
55
  setOpen,
56
- contentRef
56
+ contentRef,
57
+ triggerRef
57
58
  });
58
59
  const portalTarget = typeof document !== "undefined" ? document.body : null;
59
60
  if (!portalTarget) {
@@ -62,11 +63,9 @@ function ModalContentAnimated({
62
63
  return createPortal(
63
64
  /* @__PURE__ */ jsx(AnimatePresence, { children: open ? /* @__PURE__ */ jsxs("div", { className: "fixed inset-0 z-50", "data-slot": "modal-portal", children: [
64
65
  /* @__PURE__ */ jsx(
65
- motion.button,
66
+ motion.div,
66
67
  {
67
- type: "button",
68
- "aria-hidden": true,
69
- tabIndex: -1,
68
+ role: "presentation",
70
69
  "data-slot": "modal-overlay",
71
70
  className: modalOverlayVariants(),
72
71
  onClick: () => setOpen(false),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/ui/modal/animated/animations.ts","../../../src/ui/modal/animated/modal-content-animated.tsx"],"names":[],"mappings":"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","file":"animated.mjs","sourcesContent":["import type { ModalAnimationPresets } from \"./types\";\n\nexport const modalOverlayAnimationPresets: ModalAnimationPresets = {\n none: {},\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.2 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.96 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.96 },\n transition: { type: \"spring\", stiffness: 420, damping: 32 },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n \"slide-down\": {\n initial: { opacity: 0, y: -24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n};\n","\"use client\";\n\nimport { AnimatePresence, motion, useReducedMotion } from \"framer-motion\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { useFocusManagement } from \"../../../hooks/useFocusManagement\";\n\nimport { modalOverlayAnimationPresets } from \"./animations\";\nimport type { ModalContentAnimatedProps } from \"./types\";\nimport { modalContentVariants, modalOverlayVariants } from \"../variants\";\nimport { useModalContext } from \"../modal-base\";\n\nexport function ModalContentAnimated({\n className,\n size,\n position,\n appearance,\n animation = \"scale\",\n children,\n ref,\n id,\n style,\n}: ModalContentAnimatedProps) {\n const { open, setOpen, titleId, descriptionId, contentRef } =\n useModalContext(\"ModalContent\");\n const reduceMotion = useReducedMotion();\n const overlayMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n const panelMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n\n useFocusManagement({\n open,\n setOpen,\n contentRef,\n });\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <AnimatePresence>\n {open ? (\n <div className=\"fixed inset-0 z-50\" data-slot=\"modal-portal\">\n <motion.button\n type=\"button\"\n aria-hidden\n tabIndex={-1}\n data-slot=\"modal-overlay\"\n className={modalOverlayVariants()}\n onClick={() => setOpen(false)}\n initial={animation === \"none\" ? false : overlayMotion.initial}\n animate={animation === \"none\" ? undefined : overlayMotion.animate}\n exit={animation === \"none\" ? undefined : overlayMotion.exit}\n transition={overlayMotion.transition}\n />\n <motion.div\n ref={(node) => {\n contentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-slot=\"modal-content\"\n tabIndex={-1}\n className={cn(\n modalContentVariants({ size, position, appearance }),\n className,\n )}\n initial={animation === \"none\" ? false : panelMotion.initial}\n animate={animation === \"none\" ? undefined : panelMotion.animate}\n exit={animation === \"none\" ? undefined : panelMotion.exit}\n transition={panelMotion.transition}\n id={id}\n style={style}\n >\n {children}\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n portalTarget,\n );\n}\n\nModalContentAnimated.displayName = \"ModalContent\";\n"]}
1
+ {"version":3,"sources":["../../../src/ui/modal/animated/animations.ts","../../../src/ui/modal/animated/modal-content-animated.tsx"],"names":[],"mappings":"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","file":"animated.mjs","sourcesContent":["import type { ModalAnimationPresets } from \"./types\";\n\nexport const modalOverlayAnimationPresets: ModalAnimationPresets = {\n none: {},\n fade: {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n transition: { duration: 0.2 },\n },\n scale: {\n initial: { opacity: 0, scale: 0.96 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.96 },\n transition: { type: \"spring\", stiffness: 420, damping: 32 },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n \"slide-down\": {\n initial: { opacity: 0, y: -24 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: -16 },\n transition: { type: \"spring\", stiffness: 380, damping: 30 },\n },\n};\n","\"use client\";\n\nimport { AnimatePresence, motion, useReducedMotion } from \"framer-motion\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { useFocusManagement } from \"../../../hooks/useFocusManagement\";\n\nimport { modalOverlayAnimationPresets } from \"./animations\";\nimport type { ModalContentAnimatedProps } from \"./types\";\nimport { modalContentVariants, modalOverlayVariants } from \"../variants\";\nimport { useModalContext } from \"../modal-base\";\n\nexport function ModalContentAnimated({\n className,\n size,\n position,\n appearance,\n animation = \"scale\",\n children,\n ref,\n id,\n style,\n}: ModalContentAnimatedProps) {\n const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } =\n useModalContext(\"ModalContent\");\n const reduceMotion = useReducedMotion();\n const overlayMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n const panelMotion =\n modalOverlayAnimationPresets[reduceMotion ? \"fade\" : animation];\n\n useFocusManagement({\n open,\n setOpen,\n contentRef,\n triggerRef,\n });\n\n const portalTarget = typeof document !== \"undefined\" ? document.body : null;\n\n if (!portalTarget) {\n return null;\n }\n\n return createPortal(\n <AnimatePresence>\n {open ? (\n <div className=\"fixed inset-0 z-50\" data-slot=\"modal-portal\">\n <motion.div\n role=\"presentation\"\n data-slot=\"modal-overlay\"\n className={modalOverlayVariants()}\n onClick={() => setOpen(false)}\n initial={animation === \"none\" ? false : overlayMotion.initial}\n animate={animation === \"none\" ? undefined : overlayMotion.animate}\n exit={animation === \"none\" ? undefined : overlayMotion.exit}\n transition={overlayMotion.transition}\n />\n <motion.div\n ref={(node) => {\n contentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n (ref as React.RefObject<HTMLDivElement | null>).current = node;\n }\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n data-slot=\"modal-content\"\n tabIndex={-1}\n className={cn(\n modalContentVariants({ size, position, appearance }),\n className,\n )}\n initial={animation === \"none\" ? false : panelMotion.initial}\n animate={animation === \"none\" ? undefined : panelMotion.animate}\n exit={animation === \"none\" ? undefined : panelMotion.exit}\n transition={panelMotion.transition}\n id={id}\n style={style}\n >\n {children}\n </motion.div>\n </div>\n ) : null}\n </AnimatePresence>,\n portalTarget,\n );\n}\n\nModalContentAnimated.displayName = \"ModalContent\";\n"]}
@@ -1,17 +1,19 @@
1
+ import { type RefObject } from "react";
1
2
  import type { ModalContentProps, ModalProps, ModalSectionProps, ModalTriggerProps } from "./types";
2
3
  type ModalCtx = {
3
4
  open: boolean;
4
5
  setOpen: (next: boolean) => void;
5
6
  titleId: string;
6
7
  descriptionId: string;
7
- contentRef: React.RefObject<HTMLDivElement | null>;
8
+ contentRef: RefObject<HTMLDivElement | null>;
9
+ triggerRef: RefObject<HTMLElement | null>;
8
10
  };
9
11
  export declare function useModalContext(component: string): ModalCtx;
10
12
  export declare function Modal({ open, defaultOpen, onOpenChange, children, }: ModalProps): import("react/jsx-runtime").JSX.Element;
11
13
  export declare namespace Modal {
12
14
  var displayName: string;
13
15
  }
14
- export declare function ModalTrigger({ className, children, appearance, onClick, ref, ...rest }: ModalTriggerProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ModalTrigger({ className, children, appearance, onClick, ref: refProp, ...rest }: ModalTriggerProps): import("react/jsx-runtime").JSX.Element;
15
17
  export declare namespace ModalTrigger {
16
18
  var displayName: string;
17
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"modal-base.d.ts","sourceRoot":"","sources":["../../../src/ui/modal/modal-base.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAOjB,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACpD,CAAC;AAIF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAM3D;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,GACT,EAAE,UAAU,2CAgCZ;yBArCe,KAAK;;;AAyCrB,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,GAAG,EACH,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAmBnB;yBA1Be,YAAY;;;AA+B5B,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,GAAG,EACH,EAAE,EACF,KAAK,GACN,EAAE,iBAAiB,sCAuDnB;yBAhEe,YAAY;;;AAoE5B,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASrE;yBATe,WAAW;;;AAa3B,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASnE;yBATe,SAAS;;;AAazB,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASrE;yBATe,WAAW;;;AAa3B,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAWpE;yBAXe,UAAU;;;AAe1B,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAW1E;yBAXe,gBAAgB;;;AAehC,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAiBnB;yBArBe,UAAU"}
1
+ {"version":3,"file":"modal-base.d.ts","sourceRoot":"","sources":["../../../src/ui/modal/modal-base.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAOjB,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CAC3C,CAAC;AAIF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAM3D;AAED,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAQ,GACT,EAAE,UAAU,2CAkCZ;yBAvCe,KAAK;;;AA2CrB,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,GAAG,EAAE,OAAO,EACZ,GAAG,IAAI,EACR,EAAE,iBAAiB,2CA0BnB;yBAjCe,YAAY;;;AAsC5B,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,GAAG,EACH,EAAE,EACF,KAAK,GACN,EAAE,iBAAiB,sCAsDnB;yBA/De,YAAY;;;AAmE5B,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASrE;yBATe,WAAW;;;AAa3B,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASnE;yBATe,SAAS;;;AAazB,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASrE;yBATe,WAAW;;;AAa3B,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAWpE;yBAXe,UAAU;;;AAe1B,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAW1E;yBAXe,gBAAgB;;;AAehC,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,iBAAiB,2CAiBnB;yBArBe,UAAU"}
package/dist/ui/modal.js CHANGED
@@ -1,56 +1,56 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkXLAFQ24R_js = require('../chunk-XLAFQ24R.js');
5
- require('../chunk-YPLVTUYL.js');
4
+ var chunk4U6FOCFK_js = require('../chunk-4U6FOCFK.js');
5
+ require('../chunk-UP6S75V5.js');
6
6
  require('../chunk-UIYFEP3I.js');
7
7
  require('../chunk-UOZYPWDZ.js');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  var Modal2 = (props) => {
11
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXLAFQ24R_js.Modal, { ...props });
11
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk4U6FOCFK_js.Modal, { ...props });
12
12
  };
13
13
  Modal2.displayName = "Modal";
14
14
 
15
15
  Object.defineProperty(exports, "ModalBody", {
16
16
  enumerable: true,
17
- get: function () { return chunkXLAFQ24R_js.ModalBody; }
17
+ get: function () { return chunk4U6FOCFK_js.ModalBody; }
18
18
  });
19
19
  Object.defineProperty(exports, "ModalClose", {
20
20
  enumerable: true,
21
- get: function () { return chunkXLAFQ24R_js.ModalClose; }
21
+ get: function () { return chunk4U6FOCFK_js.ModalClose; }
22
22
  });
23
23
  Object.defineProperty(exports, "ModalContent", {
24
24
  enumerable: true,
25
- get: function () { return chunkXLAFQ24R_js.ModalContent; }
25
+ get: function () { return chunk4U6FOCFK_js.ModalContent; }
26
26
  });
27
27
  Object.defineProperty(exports, "ModalDescription", {
28
28
  enumerable: true,
29
- get: function () { return chunkXLAFQ24R_js.ModalDescription; }
29
+ get: function () { return chunk4U6FOCFK_js.ModalDescription; }
30
30
  });
31
31
  Object.defineProperty(exports, "ModalFooter", {
32
32
  enumerable: true,
33
- get: function () { return chunkXLAFQ24R_js.ModalFooter; }
33
+ get: function () { return chunk4U6FOCFK_js.ModalFooter; }
34
34
  });
35
35
  Object.defineProperty(exports, "ModalHeader", {
36
36
  enumerable: true,
37
- get: function () { return chunkXLAFQ24R_js.ModalHeader; }
37
+ get: function () { return chunk4U6FOCFK_js.ModalHeader; }
38
38
  });
39
39
  Object.defineProperty(exports, "ModalTitle", {
40
40
  enumerable: true,
41
- get: function () { return chunkXLAFQ24R_js.ModalTitle; }
41
+ get: function () { return chunk4U6FOCFK_js.ModalTitle; }
42
42
  });
43
43
  Object.defineProperty(exports, "ModalTrigger", {
44
44
  enumerable: true,
45
- get: function () { return chunkXLAFQ24R_js.ModalTrigger; }
45
+ get: function () { return chunk4U6FOCFK_js.ModalTrigger; }
46
46
  });
47
47
  Object.defineProperty(exports, "modalContentVariants", {
48
48
  enumerable: true,
49
- get: function () { return chunkXLAFQ24R_js.modalContentVariants; }
49
+ get: function () { return chunk4U6FOCFK_js.modalContentVariants; }
50
50
  });
51
51
  Object.defineProperty(exports, "modalOverlayVariants", {
52
52
  enumerable: true,
53
- get: function () { return chunkXLAFQ24R_js.modalOverlayVariants; }
53
+ get: function () { return chunk4U6FOCFK_js.modalOverlayVariants; }
54
54
  });
55
55
  exports.Modal = Modal2;
56
56
  //# sourceMappingURL=modal.js.map
package/dist/ui/modal.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { Modal } from '../chunk-IXDJ3IPG.mjs';
3
- export { ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants, modalOverlayVariants } from '../chunk-IXDJ3IPG.mjs';
4
- import '../chunk-WL5I7RVS.mjs';
2
+ import { Modal } from '../chunk-OXS6UJUG.mjs';
3
+ export { ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants, modalOverlayVariants } from '../chunk-OXS6UJUG.mjs';
4
+ import '../chunk-4E66ICIR.mjs';
5
5
  import '../chunk-PMAF6FBF.mjs';
6
6
  import '../chunk-DFEZH7TC.mjs';
7
7
  import { jsx } from 'react/jsx-runtime';