@mdigital_ui/ui 0.2.4 → 0.2.6

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 (228) hide show
  1. package/dist/accordion/index.js +3 -3
  2. package/dist/badge/index.js +3 -3
  3. package/dist/breadcrumbs/index.js +5 -5
  4. package/dist/button/index.js +4 -4
  5. package/dist/button-group/index.js +2 -2
  6. package/dist/card/index.js +2 -2
  7. package/dist/carousel/index.js +2 -1
  8. package/dist/cascader/index.js +2 -2
  9. package/dist/chart/index.js +2 -2
  10. package/dist/checkbox/index.js +3 -3
  11. package/dist/checkbox-group/index.js +2 -2
  12. package/dist/chunk-22FIGRGO.js +312 -0
  13. package/dist/chunk-22FIGRGO.js.map +1 -0
  14. package/dist/{chunk-GEWR5ROK.js → chunk-23BPDLT4.js} +9 -16
  15. package/dist/chunk-23BPDLT4.js.map +1 -0
  16. package/dist/{chunk-YNNAOXU5.js → chunk-2OGZENFC.js} +3 -4
  17. package/dist/chunk-2OGZENFC.js.map +1 -0
  18. package/dist/{chunk-SOV4PE3P.js → chunk-35K7N4JT.js} +11 -4
  19. package/dist/chunk-35K7N4JT.js.map +1 -0
  20. package/dist/chunk-3QKPSJTV.js +120 -0
  21. package/dist/chunk-3QKPSJTV.js.map +1 -0
  22. package/dist/chunk-3WVJE5MF.js +735 -0
  23. package/dist/chunk-3WVJE5MF.js.map +1 -0
  24. package/dist/chunk-555KXZRK.js +73 -0
  25. package/dist/chunk-555KXZRK.js.map +1 -0
  26. package/dist/{chunk-FYHQDFKE.js → chunk-6IPISGTP.js} +31 -9
  27. package/dist/chunk-6IPISGTP.js.map +1 -0
  28. package/dist/chunk-6MYKJE6A.js +312 -0
  29. package/dist/chunk-6MYKJE6A.js.map +1 -0
  30. package/dist/{chunk-6V5I5HJ2.js → chunk-6PFBSVLK.js} +4 -4
  31. package/dist/{chunk-6V5I5HJ2.js.map → chunk-6PFBSVLK.js.map} +1 -1
  32. package/dist/{chunk-267WNY3E.js → chunk-77YTCM7G.js} +53 -60
  33. package/dist/chunk-77YTCM7G.js.map +1 -0
  34. package/dist/{chunk-XMAH5PDW.js → chunk-7BUNJYZO.js} +11 -10
  35. package/dist/chunk-7BUNJYZO.js.map +1 -0
  36. package/dist/chunk-7ODPSHIQ.js +78 -0
  37. package/dist/chunk-7ODPSHIQ.js.map +1 -0
  38. package/dist/{chunk-ZNJ7M5QK.js → chunk-7TN4PGYF.js} +29 -22
  39. package/dist/chunk-7TN4PGYF.js.map +1 -0
  40. package/dist/{chunk-RPAQAZTI.js → chunk-7YPX6NJK.js} +3 -3
  41. package/dist/{chunk-RPAQAZTI.js.map → chunk-7YPX6NJK.js.map} +1 -1
  42. package/dist/{chunk-LEKLQR4I.js → chunk-ARK3EROZ.js} +55 -38
  43. package/dist/chunk-ARK3EROZ.js.map +1 -0
  44. package/dist/chunk-AVPPV5OM.js +203 -0
  45. package/dist/chunk-AVPPV5OM.js.map +1 -0
  46. package/dist/{chunk-NNSS366W.js → chunk-BYWYC7RC.js} +38 -5
  47. package/dist/chunk-BYWYC7RC.js.map +1 -0
  48. package/dist/{chunk-R225A5II.js → chunk-C2MZL644.js} +3 -3
  49. package/dist/{chunk-R225A5II.js.map → chunk-C2MZL644.js.map} +1 -1
  50. package/dist/{chunk-7PKVBUGL.js → chunk-CPPFXCNB.js} +3 -3
  51. package/dist/{chunk-7PKVBUGL.js.map → chunk-CPPFXCNB.js.map} +1 -1
  52. package/dist/chunk-DP6AWUH5.js +93 -0
  53. package/dist/chunk-DP6AWUH5.js.map +1 -0
  54. package/dist/{chunk-D3JWPGCA.js → chunk-DV5J5NLI.js} +6 -55
  55. package/dist/chunk-DV5J5NLI.js.map +1 -0
  56. package/dist/chunk-EFMKUCGX.js +104 -0
  57. package/dist/chunk-EFMKUCGX.js.map +1 -0
  58. package/dist/chunk-GFQXGLFD.js +256 -0
  59. package/dist/chunk-GFQXGLFD.js.map +1 -0
  60. package/dist/{chunk-SK5ECBBK.js → chunk-GGREAJO5.js} +8 -4
  61. package/dist/chunk-GGREAJO5.js.map +1 -0
  62. package/dist/{chunk-S5XJXU52.js → chunk-GH3CNX5N.js} +3 -3
  63. package/dist/{chunk-S5XJXU52.js.map → chunk-GH3CNX5N.js.map} +1 -1
  64. package/dist/{chunk-FCMVKFVV.js → chunk-HBEJ4S2Y.js} +11 -11
  65. package/dist/chunk-HBEJ4S2Y.js.map +1 -0
  66. package/dist/{chunk-SAVE5ACL.js → chunk-HWSLJGT7.js} +3 -3
  67. package/dist/{chunk-SAVE5ACL.js.map → chunk-HWSLJGT7.js.map} +1 -1
  68. package/dist/{chunk-BNILRB4T.js → chunk-IHKPZOE5.js} +10 -7
  69. package/dist/chunk-IHKPZOE5.js.map +1 -0
  70. package/dist/{chunk-I5ANSIDK.js → chunk-INH7KYCK.js} +17 -17
  71. package/dist/chunk-INH7KYCK.js.map +1 -0
  72. package/dist/{chunk-Y5A26EGR.js → chunk-IRNJZ754.js} +9 -9
  73. package/dist/{chunk-Y5A26EGR.js.map → chunk-IRNJZ754.js.map} +1 -1
  74. package/dist/{chunk-MLDX3Z67.js → chunk-IUUEYOMN.js} +3 -3
  75. package/dist/{chunk-MLDX3Z67.js.map → chunk-IUUEYOMN.js.map} +1 -1
  76. package/dist/chunk-JFGLDCAK.js +225 -0
  77. package/dist/chunk-JFGLDCAK.js.map +1 -0
  78. package/dist/{chunk-C7SXY3ZV.js → chunk-JGQOEAWL.js} +3 -3
  79. package/dist/{chunk-C7SXY3ZV.js.map → chunk-JGQOEAWL.js.map} +1 -1
  80. package/dist/{chunk-75XESYGN.js → chunk-L6EVOPWH.js} +5 -13
  81. package/dist/chunk-L6EVOPWH.js.map +1 -0
  82. package/dist/{chunk-XMKNYG7I.js → chunk-LSQLUYTD.js} +35 -24
  83. package/dist/chunk-LSQLUYTD.js.map +1 -0
  84. package/dist/{chunk-QPJL66S7.js → chunk-MDY3HCRC.js} +80 -41
  85. package/dist/chunk-MDY3HCRC.js.map +1 -0
  86. package/dist/chunk-MLNIKNLI.js +150 -0
  87. package/dist/chunk-MLNIKNLI.js.map +1 -0
  88. package/dist/{chunk-J3G5WWGR.js → chunk-NQB4V5P7.js} +6 -14
  89. package/dist/chunk-NQB4V5P7.js.map +1 -0
  90. package/dist/chunk-NZA526GC.js +106 -0
  91. package/dist/chunk-NZA526GC.js.map +1 -0
  92. package/dist/{chunk-FGWSUPVW.js → chunk-O2VJ6KP4.js} +8 -3
  93. package/dist/chunk-O2VJ6KP4.js.map +1 -0
  94. package/dist/{chunk-OALOWWO7.js → chunk-PQZB43VJ.js} +32 -36
  95. package/dist/chunk-PQZB43VJ.js.map +1 -0
  96. package/dist/{chunk-UAMFKX6L.js → chunk-QVCGNOBE.js} +34 -20
  97. package/dist/chunk-QVCGNOBE.js.map +1 -0
  98. package/dist/{chunk-ASW7TEAN.js → chunk-R2FZO7AM.js} +14 -14
  99. package/dist/chunk-R2FZO7AM.js.map +1 -0
  100. package/dist/{chunk-HUVXKOJC.js → chunk-SGMIDNPI.js} +13 -9
  101. package/dist/chunk-SGMIDNPI.js.map +1 -0
  102. package/dist/{chunk-DOKTHDG3.js → chunk-SMVVCZNM.js} +3 -3
  103. package/dist/{chunk-DOKTHDG3.js.map → chunk-SMVVCZNM.js.map} +1 -1
  104. package/dist/{chunk-FPOXTCYV.js → chunk-SOIF4SHB.js} +8 -8
  105. package/dist/chunk-SOIF4SHB.js.map +1 -0
  106. package/dist/{chunk-RMGIO27V.js → chunk-SYDNDYZJ.js} +20 -4
  107. package/dist/chunk-SYDNDYZJ.js.map +1 -0
  108. package/dist/chunk-TG2AECIN.js +446 -0
  109. package/dist/chunk-TG2AECIN.js.map +1 -0
  110. package/dist/{chunk-JLTDJ3VZ.js → chunk-TIMRHEKH.js} +4 -4
  111. package/dist/{chunk-JLTDJ3VZ.js.map → chunk-TIMRHEKH.js.map} +1 -1
  112. package/dist/chunk-TUTOU4X6.js +574 -0
  113. package/dist/chunk-TUTOU4X6.js.map +1 -0
  114. package/dist/chunk-TWZ5LXLL.js +254 -0
  115. package/dist/chunk-TWZ5LXLL.js.map +1 -0
  116. package/dist/{chunk-DPOSWW22.js → chunk-XG3KLPPS.js} +5 -3
  117. package/dist/chunk-XG3KLPPS.js.map +1 -0
  118. package/dist/{chunk-BP434VYV.js → chunk-Y2CXG3PT.js} +12 -12
  119. package/dist/chunk-Y2CXG3PT.js.map +1 -0
  120. package/dist/{chunk-ROR4E6IE.js → chunk-YII4K64U.js} +5 -5
  121. package/dist/{chunk-ROR4E6IE.js.map → chunk-YII4K64U.js.map} +1 -1
  122. package/dist/clipboard/index.js +2 -2
  123. package/dist/collapse/index.js +2 -2
  124. package/dist/command/index.js +3 -3
  125. package/dist/date-picker/index.js +4 -3
  126. package/dist/descriptions/index.js +2 -2
  127. package/dist/drawer/index.js +2 -2
  128. package/dist/dropdown/index.js +4 -3
  129. package/dist/empty/index.js +2 -2
  130. package/dist/fetching-overlay/index.js +4 -3
  131. package/dist/grid/index.js +2 -2
  132. package/dist/image/index.js +2 -2
  133. package/dist/index.d.ts +1358 -156
  134. package/dist/index.js +762 -65
  135. package/dist/index.js.map +1 -1
  136. package/dist/input/index.js +4 -3
  137. package/dist/input-group/index.js +2 -2
  138. package/dist/input-otp/index.js +2 -2
  139. package/dist/input-password/index.js +5 -4
  140. package/dist/kbd/index.js +3 -2
  141. package/dist/modal/index.js +2 -2
  142. package/dist/multi-select/index.js +4 -3
  143. package/dist/notification/index.js +3 -2
  144. package/dist/pagination/index.js +2 -2
  145. package/dist/popover/index.js +3 -2
  146. package/dist/progress/index.js +2 -2
  147. package/dist/radio/index.js +3 -2
  148. package/dist/radio-group/index.js +2 -2
  149. package/dist/rating/index.js +2 -2
  150. package/dist/ribbon/index.js +2 -2
  151. package/dist/select/index.js +5 -4
  152. package/dist/skeleton/index.js +3 -2
  153. package/dist/slider/index.js +2 -2
  154. package/dist/spinner/index.js +3 -2
  155. package/dist/stepper/index.js +2 -2
  156. package/dist/styles/base.css +2033 -1313
  157. package/dist/styles/global.css +1242 -459
  158. package/dist/switch/index.js +3 -2
  159. package/dist/table/index.js +10 -10
  160. package/dist/tabs/index.js +3 -3
  161. package/dist/textarea/index.js +2 -2
  162. package/dist/toggle/index.js +2 -2
  163. package/dist/toggle-group/index.js +2 -2
  164. package/dist/tooltip/index.js +3 -2
  165. package/dist/transfer/index.js +4 -4
  166. package/dist/tree/index.js +2 -2
  167. package/dist/tree-select/index.js +5 -4
  168. package/dist/upload/index.js +2 -2
  169. package/package.json +4 -1
  170. package/dist/chunk-267WNY3E.js.map +0 -1
  171. package/dist/chunk-2EKAF6EJ.js +0 -128
  172. package/dist/chunk-2EKAF6EJ.js.map +0 -1
  173. package/dist/chunk-3PFA3YG6.js +0 -228
  174. package/dist/chunk-3PFA3YG6.js.map +0 -1
  175. package/dist/chunk-56IXGP5C.js +0 -56
  176. package/dist/chunk-56IXGP5C.js.map +0 -1
  177. package/dist/chunk-5UEWVFF6.js +0 -212
  178. package/dist/chunk-5UEWVFF6.js.map +0 -1
  179. package/dist/chunk-75XESYGN.js.map +0 -1
  180. package/dist/chunk-ASW7TEAN.js.map +0 -1
  181. package/dist/chunk-AWPKZYHT.js +0 -152
  182. package/dist/chunk-AWPKZYHT.js.map +0 -1
  183. package/dist/chunk-BFO3ARVJ.js +0 -104
  184. package/dist/chunk-BFO3ARVJ.js.map +0 -1
  185. package/dist/chunk-BNILRB4T.js.map +0 -1
  186. package/dist/chunk-BP434VYV.js.map +0 -1
  187. package/dist/chunk-C3MX5EXL.js +0 -95
  188. package/dist/chunk-C3MX5EXL.js.map +0 -1
  189. package/dist/chunk-D3JWPGCA.js.map +0 -1
  190. package/dist/chunk-DPOSWW22.js.map +0 -1
  191. package/dist/chunk-FCMVKFVV.js.map +0 -1
  192. package/dist/chunk-FGWSUPVW.js.map +0 -1
  193. package/dist/chunk-FPOXTCYV.js.map +0 -1
  194. package/dist/chunk-FYHQDFKE.js.map +0 -1
  195. package/dist/chunk-G6TAVRTJ.js +0 -640
  196. package/dist/chunk-G6TAVRTJ.js.map +0 -1
  197. package/dist/chunk-GEWR5ROK.js.map +0 -1
  198. package/dist/chunk-HUVXKOJC.js.map +0 -1
  199. package/dist/chunk-I5ANSIDK.js.map +0 -1
  200. package/dist/chunk-J3G5WWGR.js.map +0 -1
  201. package/dist/chunk-KBCBVH7B.js +0 -51
  202. package/dist/chunk-KBCBVH7B.js.map +0 -1
  203. package/dist/chunk-KNQ7UQ2W.js +0 -143
  204. package/dist/chunk-KNQ7UQ2W.js.map +0 -1
  205. package/dist/chunk-KTAIRCOL.js +0 -100
  206. package/dist/chunk-KTAIRCOL.js.map +0 -1
  207. package/dist/chunk-LEKLQR4I.js.map +0 -1
  208. package/dist/chunk-NNSS366W.js.map +0 -1
  209. package/dist/chunk-OALOWWO7.js.map +0 -1
  210. package/dist/chunk-OOS3B7YZ.js +0 -94
  211. package/dist/chunk-OOS3B7YZ.js.map +0 -1
  212. package/dist/chunk-OQANRZPV.js +0 -197
  213. package/dist/chunk-OQANRZPV.js.map +0 -1
  214. package/dist/chunk-OW5A5IIF.js +0 -175
  215. package/dist/chunk-OW5A5IIF.js.map +0 -1
  216. package/dist/chunk-QPJL66S7.js.map +0 -1
  217. package/dist/chunk-RMGIO27V.js.map +0 -1
  218. package/dist/chunk-SK5ECBBK.js.map +0 -1
  219. package/dist/chunk-SOV4PE3P.js.map +0 -1
  220. package/dist/chunk-UAMFKX6L.js.map +0 -1
  221. package/dist/chunk-XMAH5PDW.js.map +0 -1
  222. package/dist/chunk-XMKNYG7I.js.map +0 -1
  223. package/dist/chunk-YNNAOXU5.js.map +0 -1
  224. package/dist/chunk-YZ6V6BQ7.js +0 -134
  225. package/dist/chunk-YZ6V6BQ7.js.map +0 -1
  226. package/dist/chunk-YZVSDRJD.js +0 -253
  227. package/dist/chunk-YZVSDRJD.js.map +0 -1
  228. package/dist/chunk-ZNJ7M5QK.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/drawer/index.tsx"],"names":["DrawerPrimitive"],"mappings":"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","file":"chunk-6MYKJE6A.js","sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport React, { createContext, useContext } from \"react\";\n\nimport { cn } from \"../utils\";\nimport type {\n ComposedDrawerProps,\n DrawerBodyProps,\n DrawerCloseProps,\n DrawerContentProps,\n DrawerDescriptionProps,\n DrawerDirection,\n DrawerFooterProps,\n DrawerHeaderProps,\n DrawerOverlayProps,\n DrawerProps,\n DrawerSize,\n DrawerTitleProps,\n DrawerTriggerProps,\n} from \"./types\";\n\n// Context to pass direction from Drawer to DrawerContent\nconst DrawerContext = createContext<{\n direction: DrawerDirection;\n}>({ direction: \"bottom\" });\n\nconst drawerContentVariants = cva(\n \"fixed bg-background border-border flex flex-col outline-none\",\n {\n variants: {\n direction: {\n bottom: \"bottom-0 left-0 right-0 border-t rounded-t-xl max-h-[96vh]\",\n top: \"top-0 left-0 right-0 border-b rounded-b-xl max-h-[96vh]\",\n left: \"left-0 top-0 bottom-0 border-r rounded-r-xl max-w-[96vw]\",\n right: \"right-0 top-0 bottom-0 border-l rounded-l-xl max-w-[96vw]\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n // Bottom/Top - height based\n { direction: \"bottom\", size: \"xs\", class: \"h-1/4\" },\n { direction: \"bottom\", size: \"sm\", class: \"h-1/3\" },\n { direction: \"bottom\", size: \"md\", class: \"h-1/2\" },\n { direction: \"bottom\", size: \"lg\", class: \"h-3/4\" },\n { direction: \"bottom\", size: \"full\", class: \"h-[96vh]\" },\n { direction: \"top\", size: \"xs\", class: \"h-1/4\" },\n { direction: \"top\", size: \"sm\", class: \"h-1/3\" },\n { direction: \"top\", size: \"md\", class: \"h-1/2\" },\n { direction: \"top\", size: \"lg\", class: \"h-3/4\" },\n { direction: \"top\", size: \"full\", class: \"h-[96vh]\" },\n // Left/Right - width based\n { direction: \"left\", size: \"xs\", class: \"w-64\" },\n { direction: \"left\", size: \"sm\", class: \"w-80\" },\n { direction: \"left\", size: \"md\", class: \"w-96\" },\n { direction: \"left\", size: \"lg\", class: \"w-[480px]\" },\n { direction: \"left\", size: \"full\", class: \"w-[96vw]\" },\n { direction: \"right\", size: \"xs\", class: \"w-64\" },\n { direction: \"right\", size: \"sm\", class: \"w-80\" },\n { direction: \"right\", size: \"md\", class: \"w-96\" },\n { direction: \"right\", size: \"lg\", class: \"w-[480px]\" },\n { direction: \"right\", size: \"full\", class: \"w-[96vw]\" },\n ],\n defaultVariants: {\n direction: \"bottom\",\n size: \"md\",\n },\n },\n);\n\n/**\n * Close button size classes\n */\nconst closeButtonSizeClasses: Record<DrawerSize, string> = {\n xs: \"top-2 right-2 p-1 [&_svg]:size-3.5\",\n sm: \"top-3 right-3 p-1.5 [&_svg]:size-4\",\n md: \"top-4 right-4 p-1.5 [&_svg]:size-4\",\n lg: \"top-4 right-4 p-2 [&_svg]:size-5\",\n full: \"top-5 right-5 p-2 [&_svg]:size-5\",\n};\n\n/**\n * Padding classes based on size\n */\nconst paddingClasses: Record<DrawerSize, string> = {\n xs: \"p-3\",\n sm: \"p-4\",\n md: \"p-5\",\n lg: \"p-6\",\n full: \"p-6\",\n};\n\nexport const Drawer = React.memo<DrawerProps>(\n ({\n open,\n onOpenChange,\n direction = \"bottom\",\n modal = true,\n dismissible = true,\n snapPoints,\n children,\n }) => {\n return (\n <DrawerContext.Provider value={{ direction }}>\n <DrawerPrimitive.Root\n open={open}\n onOpenChange={onOpenChange}\n direction={direction}\n modal={modal}\n dismissible={dismissible}\n snapPoints={snapPoints}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n },\n);\n\nDrawer.displayName = \"Drawer\";\n\nexport const DrawerTrigger = React.memo<DrawerTriggerProps>(\n ({ children, asChild = false, className, ref }) => {\n return (\n <DrawerPrimitive.Trigger\n ref={ref}\n asChild={asChild}\n className={className}\n >\n {children}\n </DrawerPrimitive.Trigger>\n );\n },\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n\nexport const DrawerPortal = DrawerPrimitive.Portal;\n\nexport const DrawerOverlay = React.memo<DrawerOverlayProps>(\n ({ className, ref, ...props }) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm\",\n className,\n )}\n {...props}\n />\n ),\n);\n\nDrawerOverlay.displayName = \"DrawerOverlay\";\n\nexport const DrawerContent = React.memo<DrawerContentProps>(\n ({\n children,\n direction: directionProp,\n size = \"md\",\n showCloseButton = false,\n showHandle,\n className,\n ref,\n }) => {\n const { direction: contextDirection } = useContext(DrawerContext);\n const direction = directionProp ?? contextDirection;\n\n // Default showHandle based on direction\n const shouldShowHandle =\n showHandle ?? (direction === \"bottom\" || direction === \"top\");\n\n const isHorizontal = direction === \"left\" || direction === \"right\";\n\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n drawerContentVariants({ direction, size }),\n paddingClasses[size],\n \"z-50\",\n className,\n )}\n >\n {/* Handle for bottom drawer */}\n {shouldShowHandle && direction === \"bottom\" && (\n <div className=\"mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4\" />\n )}\n\n {/* Handle for top drawer */}\n {shouldShowHandle && direction === \"top\" && (\n <div className=\"mx-auto w-12 h-1.5 flex-shrink-0 rounded-full bg-border mb-4 order-last mt-auto\" />\n )}\n\n {/* Handle for left drawer */}\n {shouldShowHandle && direction === \"left\" && (\n <div className=\"absolute right-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border\" />\n )}\n\n {/* Handle for right drawer */}\n {shouldShowHandle && direction === \"right\" && (\n <div className=\"absolute left-2 top-1/2 -translate-y-1/2 w-1.5 h-12 rounded-full bg-border\" />\n )}\n\n {/* Close button */}\n {showCloseButton && (\n <DrawerPrimitive.Close\n className={cn(\n \"absolute rounded-md opacity-70 transition-opacity hover:opacity-100\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2\",\n \"text-text-secondary hover:text-text-primary hover:bg-surface\",\n closeButtonSizeClasses[size],\n )}\n >\n <X />\n <span className=\"sr-only\">Close</span>\n </DrawerPrimitive.Close>\n )}\n\n {/* Content wrapper */}\n <div\n className={cn(\n \"flex flex-col flex-1 min-h-0\",\n isHorizontal && \"overflow-y-auto\",\n showCloseButton && \"pt-6\",\n )}\n >\n {children}\n </div>\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n },\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n\nexport const DrawerHeader = React.memo<DrawerHeaderProps>(\n ({ children, className, ref }) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col gap-1.5 mb-4 shrink-0\", className)}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n\nexport const DrawerBody = React.memo<DrawerBodyProps>(\n ({ children, className, ref }) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex-1 overflow-y-auto min-h-0\", className)}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerBody.displayName = \"DrawerBody\";\n\nexport const DrawerFooter = React.memo<DrawerFooterProps>(\n ({ children, className, ref }) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex gap-2 mt-auto pt-4 shrink-0\", className)}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n\nexport const DrawerTitle = React.memo<DrawerTitleProps>(\n ({ children, className, ref }) => {\n return (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-text-primary\", className)}\n >\n {children}\n </DrawerPrimitive.Title>\n );\n },\n);\n\nDrawerTitle.displayName = \"DrawerTitle\";\n\nexport const DrawerDescription = React.memo<DrawerDescriptionProps>(\n ({ children, className, ref }) => {\n return (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-text-secondary\", className)}\n >\n {children}\n </DrawerPrimitive.Description>\n );\n },\n);\n\nDrawerDescription.displayName = \"DrawerDescription\";\n\nexport const DrawerClose = React.memo<DrawerCloseProps>(\n ({ children, asChild = false, className, ref }) => {\n return (\n <DrawerPrimitive.Close ref={ref} asChild={asChild} className={className}>\n {children}\n </DrawerPrimitive.Close>\n );\n },\n);\n\nDrawerClose.displayName = \"DrawerClose\";\n\n/**\n * ComposedDrawer - A convenience component that combines all drawer parts\n */\nexport function ComposedDrawer({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n direction = \"right\",\n size = \"md\",\n modal = true,\n showCloseButton = true,\n showHandle,\n dismissible = true,\n hideHeader = false,\n hideFooter = false,\n className,\n contentClassName,\n}: ComposedDrawerProps) {\n return (\n <Drawer\n open={open}\n onOpenChange={onOpenChange}\n direction={direction}\n modal={modal}\n dismissible={dismissible}\n >\n <DrawerContent\n direction={direction}\n size={size}\n showCloseButton={showCloseButton}\n showHandle={showHandle}\n className={contentClassName}\n >\n {!hideHeader && (title || description) && (\n <DrawerHeader className={className}>\n {title && <DrawerTitle>{title}</DrawerTitle>}\n {description && (\n <DrawerDescription>{description}</DrawerDescription>\n )}\n </DrawerHeader>\n )}\n <DrawerBody>{children}</DrawerBody>\n {!hideFooter && footer && <DrawerFooter>{footer}</DrawerFooter>}\n </DrawerContent>\n </Drawer>\n );\n}\n\nComposedDrawer.displayName = \"ComposedDrawer\";\n\nexport type * from \"./types\";\nexport default ComposedDrawer;\n"]}
@@ -1,5 +1,5 @@
1
- import { input_default } from './chunk-XMKNYG7I.js';
2
- import { iconSizes } from './chunk-YNNAOXU5.js';
1
+ import { input_default } from './chunk-LSQLUYTD.js';
2
+ import { iconSizes } from './chunk-2OGZENFC.js';
3
3
  import { Eye, EyeOff } from 'lucide-react';
4
4
  import React from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -35,5 +35,5 @@ PasswordInput.displayName = "PasswordInput";
35
35
  var input_password_default = input_default;
36
36
 
37
37
  export { PasswordInput, input_password_default };
38
- //# sourceMappingURL=chunk-6V5I5HJ2.js.map
39
- //# sourceMappingURL=chunk-6V5I5HJ2.js.map
38
+ //# sourceMappingURL=chunk-6PFBSVLK.js.map
39
+ //# sourceMappingURL=chunk-6PFBSVLK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AAOO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,OAAO,IAAA,EAAM,GAAA,EAAK,GAAG,KAAA,EAAM,KAAM;AAC3D,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,SAAA,EAAU,wCAAA;AAAA,YACV,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG,CAAA,mBAEjC,GAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG;AAAA;AAAA,SAExC,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-6V5I5HJ2.js","sourcesContent":["import { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n className=\"cursor-pointer hover:text-text-primary\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye className={iconSizes[size]} />\n ) : (\n <EyeOff className={iconSizes[size]} />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}
1
+ {"version":3,"sources":["../src/input-password/index.tsx"],"names":[],"mappings":";;;;;;AAOO,IAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,EACjC,CAAC,EAAE,gBAAA,GAAmB,IAAA,EAAM,OAAO,IAAA,EAAM,GAAA,EAAK,GAAG,KAAA,EAAM,KAAM;AAC3D,IAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE5D,IAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,WAAA,CAAY,MAAM;AAC/C,MAAA,eAAA,CAAgB,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAAA,IACjC,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,IAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,QAC9B,WACE,gBAAA,mBACE,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,gBAAA;AAAA,YACT,SAAA,EAAU,wCAAA;AAAA,YACV,YAAA,EAAY,eAAe,eAAA,GAAkB,eAAA;AAAA,YAG5C,QAAA,EAAA,YAAA,mBACC,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG,CAAA,mBAEjC,GAAA,CAAC,MAAA,EAAA,EAAO,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG;AAAA;AAAA,SAExC,GACE;AAAA;AAAA,KAER;AAAA,EAEJ;AACF;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;AAG5B,IAAO,sBAAA,GAAQ","file":"chunk-6PFBSVLK.js","sourcesContent":["import { Eye, EyeOff } from 'lucide-react'\nimport React from 'react'\n\nimport Input from '../input'\nimport { iconSizes } from '../utils'\nimport type { PasswordInputProps } from './types'\n\nexport const PasswordInput = React.memo<PasswordInputProps>(\n ({ visibilityToggle = true, size = 'md', ref, ...props }) => {\n const [showPassword, setShowPassword] = React.useState(false)\n\n const toggleVisibility = React.useCallback(() => {\n setShowPassword((prev) => !prev)\n }, [])\n\n return (\n <Input\n {...props}\n size={size}\n ref={ref}\n type={showPassword ? 'text' : 'password'}\n rightIcon={\n visibilityToggle ? (\n <button\n type=\"button\"\n onClick={toggleVisibility}\n className=\"cursor-pointer hover:text-text-primary\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n // tabIndex={-1}\n >\n {showPassword ? (\n <Eye className={iconSizes[size]} />\n ) : (\n <EyeOff className={iconSizes[size]} />\n )}\n </button>\n ) : undefined\n }\n />\n )\n },\n)\n\nPasswordInput.displayName = 'PasswordInput'\n\nexport type * from './types'\nexport default Input\n"]}
@@ -1,5 +1,5 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-3PFA3YG6.js';
2
- import { cn, iconSizes } from './chunk-YNNAOXU5.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-EFMKUCGX.js';
2
+ import { cn, iconSizes } from './chunk-2OGZENFC.js';
3
3
  import { useVirtualizer } from '@tanstack/react-virtual';
4
4
  import { X, Loader2, Search, ChevronDown, ChevronUp, Check } from 'lucide-react';
5
5
  import React, { useCallback } from 'react';
@@ -18,10 +18,10 @@ var multiSelectTriggerVariants = cva(
18
18
  success: "border-success"
19
19
  },
20
20
  size: {
21
- xs: "h-[var(--select-height-xs)] pl-[var(--select-padding-x-xs)] pr-[calc(var(--select-padding-x-xs)*2)] text-xs",
22
- sm: "h-[var(--select-height-sm)] pl-[var(--select-padding-x-sm)] pr-[calc(var(--select-padding-x-sm)*2)] text-sm",
23
- md: "h-[var(--select-height-md)] pl-[var(--select-padding-x-md)] pr-[calc(var(--select-padding-x-md)*2)] text-base",
24
- lg: "h-[var(--select-height-lg)] pl-[var(--select-padding-x-lg)] pr-[calc(var(--select-padding-x-lg)*2)] text-lg"
21
+ xs: "h-(--select-height-xs) pl-(--select-padding-x-xs) pr-[calc(var(--select-padding-x-xs)*2)] text-xs",
22
+ sm: "h-(--select-height-sm) pl-(--select-padding-x-sm) pr-[calc(var(--select-padding-x-sm)*2)] text-sm",
23
+ md: "h-(--select-height-md) pl-(--select-padding-x-md) pr-[calc(var(--select-padding-x-md)*2)] text-base",
24
+ lg: "h-(--select-height-lg) pl-(--select-padding-x-lg) pr-[calc(var(--select-padding-x-lg)*2)] text-lg"
25
25
  },
26
26
  fullWidth: {
27
27
  true: "w-full",
@@ -236,11 +236,13 @@ var MultiSelect = React.memo(
236
236
  case "ArrowDown":
237
237
  e.preventDefault();
238
238
  setHighlightedIndex((prev) => {
239
- const nextIndex = Math.min(prev + 1, selectableOptions.length - 1);
240
- const optionIndex = filteredOptions.indexOf(
241
- selectableOptions[nextIndex]
239
+ const nextIndex = Math.min(
240
+ prev + 1,
241
+ selectableOptions.length - 1
242
242
  );
243
- if (shouldVirtualize && virtualizerRef.current) {
243
+ const option = selectableOptions[nextIndex];
244
+ if (option && shouldVirtualize && virtualizerRef.current) {
245
+ const optionIndex = filteredOptions.indexOf(option);
244
246
  virtualizerRef.current.scrollToIndex(optionIndex, {
245
247
  align: "auto"
246
248
  });
@@ -252,10 +254,9 @@ var MultiSelect = React.memo(
252
254
  e.preventDefault();
253
255
  setHighlightedIndex((prev) => {
254
256
  const nextIndex = Math.max(prev - 1, 0);
255
- const optionIndex = filteredOptions.indexOf(
256
- selectableOptions[nextIndex]
257
- );
258
- if (shouldVirtualize && virtualizerRef.current) {
257
+ const option = selectableOptions[nextIndex];
258
+ if (option && shouldVirtualize && virtualizerRef.current) {
259
+ const optionIndex = filteredOptions.indexOf(option);
259
260
  virtualizerRef.current.scrollToIndex(optionIndex, {
260
261
  align: "auto"
261
262
  });
@@ -266,8 +267,11 @@ var MultiSelect = React.memo(
266
267
  case "Enter":
267
268
  e.preventDefault();
268
269
  if (highlightedIndex >= 0 && highlightedIndex < selectableOptions.length) {
269
- const option = selectableOptions[highlightedIndex].data;
270
- handleSelect(option.value);
270
+ const item = selectableOptions[highlightedIndex];
271
+ if (item) {
272
+ const option = item.data;
273
+ handleSelect(option.value);
274
+ }
271
275
  }
272
276
  break;
273
277
  case "Home":
@@ -325,7 +329,9 @@ var MultiSelect = React.memo(
325
329
  let totalWidth = 0;
326
330
  let visibleCount = 0;
327
331
  for (let i = 0; i < hiddenChips.length; i++) {
328
- const chipWidth = hiddenChips[i].getBoundingClientRect().width;
332
+ const chip = hiddenChips[i];
333
+ if (!chip) continue;
334
+ const chipWidth = chip.getBoundingClientRect().width;
329
335
  const requiredSpace = totalWidth + chipWidth + (visibleCount > 0 ? gap : 0);
330
336
  const needsPlusIndicator = i < hiddenChips.length - 1;
331
337
  const spaceWithIndicator = requiredSpace + (needsPlusIndicator ? gap + plusIndicatorWidth : 0);
@@ -385,9 +391,10 @@ var MultiSelect = React.memo(
385
391
  className: "overflow-auto relative",
386
392
  style: { maxHeight: maxDropdownHeight },
387
393
  role: "listbox",
394
+ "aria-multiselectable": "true",
388
395
  "aria-labelledby": label ? "multiselect-label" : void 0,
389
396
  onScroll: handleScroll,
390
- children: filteredOptions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-sm text-text-muted", children: "No options found" }) : shouldVirtualize ? /* @__PURE__ */ jsx(
397
+ children: filteredOptions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-4 text-center text-sm text-text-secondary", children: "No options found" }) : shouldVirtualize ? /* @__PURE__ */ jsx(
391
398
  "div",
392
399
  {
393
400
  ref: refCallback,
@@ -538,11 +545,11 @@ var MultiSelect = React.memo(
538
545
  "aria-labelledby": label ? "multiselect-label" : void 0,
539
546
  onClick: () => setIsOpen(!isOpen),
540
547
  children: [
541
- selectedOptions.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex gap-1 flex-shrink-0", children: [
548
+ selectedOptions.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex gap-1 shrink-0", children: [
542
549
  selectedOptions.slice(0, visibleChipsCount).map((option) => /* @__PURE__ */ jsxs(
543
550
  "span",
544
551
  {
545
- className: "inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary rounded text-sm whitespace-nowrap",
552
+ className: "inline-flex items-center gap-1 px-2 bg-primary/10 text-primary rounded text-sm whitespace-nowrap",
546
553
  children: [
547
554
  option.label,
548
555
  /* @__PURE__ */ jsx(
@@ -559,7 +566,7 @@ var MultiSelect = React.memo(
559
566
  },
560
567
  option.value
561
568
  )),
562
- selectedOptions.length > visibleChipsCount && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center px-2 py-0.5 bg-surface text-text-muted rounded text-sm whitespace-nowrap", children: [
569
+ selectedOptions.length > visibleChipsCount && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center px-2 py-0.5 bg-surface text-text-secondary rounded text-sm whitespace-nowrap", children: [
563
570
  "+",
564
571
  selectedOptions.length - visibleChipsCount
565
572
  ] })
@@ -588,7 +595,7 @@ var MultiSelect = React.memo(
588
595
  {
589
596
  ref: inputRef,
590
597
  type: "text",
591
- className: "bg-transparent outline-none cursor-pointer placeholder:text-text-muted flex-1 min-w-0 pointer-events-none",
598
+ className: "bg-transparent outline-none cursor-pointer placeholder:text-text-secondary/50 flex-1 min-w-0 pointer-events-none",
592
599
  placeholder: selectedOptions.length > 0 ? "" : placeholder,
593
600
  value: searchQuery,
594
601
  onChange: handleInputChange,
@@ -599,7 +606,7 @@ var MultiSelect = React.memo(
599
606
  tabIndex: -1
600
607
  }
601
608
  ),
602
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 text-text-muted", children: loading ? /* @__PURE__ */ jsx(Loader2, { className: cn("animate-spin", iconSizes[size]) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
609
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1 text-text-secondary", children: loading ? /* @__PURE__ */ jsx(Loader2, { className: cn("animate-spin", iconSizes[size]) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
603
610
  clearable && selectedOptions.length > 0 && !disabled && /* @__PURE__ */ jsx(
604
611
  "button",
605
612
  {
@@ -621,45 +628,31 @@ var MultiSelect = React.memo(
621
628
  className: cn("relative group", fullWidth ? "w-full" : "inline-block"),
622
629
  ref,
623
630
  ...props,
624
- children: /* @__PURE__ */ jsxs(
625
- Popover,
626
- {
627
- open: isOpen,
628
- onOpenChange: setIsOpen,
629
- children: [
630
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: triggerButton }),
631
- /* @__PURE__ */ jsx(
632
- PopoverContent,
633
- {
634
- className: "p-0 w-[var(--radix-popover-trigger-width)]",
635
- align: "start",
636
- sideOffset: 4,
637
- onOpenAutoFocus: (e) => {
638
- e.preventDefault();
639
- inputRef.current?.focus();
640
- },
641
- children: renderOptionsList()
642
- }
643
- )
644
- ]
645
- }
646
- )
631
+ children: /* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [
632
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: triggerButton }),
633
+ /* @__PURE__ */ jsx(
634
+ PopoverContent,
635
+ {
636
+ className: "p-0 w-[var(--radix-popover-trigger-width)]",
637
+ align: "start",
638
+ sideOffset: 4,
639
+ onOpenAutoFocus: (e) => {
640
+ e.preventDefault();
641
+ inputRef.current?.focus();
642
+ },
643
+ children: renderOptionsList()
644
+ }
645
+ )
646
+ ] })
647
647
  }
648
648
  );
649
649
  if (!label && !helperMessage) return selectElement;
650
650
  return /* @__PURE__ */ jsxs("div", { className: cn("w-full flex flex-col", !fullWidth && "inline-block"), children: [
651
651
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2 items-center", children: [
652
- label && /* @__PURE__ */ jsx(
653
- "label",
654
- {
655
- id: "multiselect-label",
656
- className: "block mb-0.5",
657
- children: /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium text-text-muted", children: [
658
- label,
659
- required && /* @__PURE__ */ jsx("span", { className: "text-error ml-1", children: "*" })
660
- ] })
661
- }
662
- ),
652
+ label && /* @__PURE__ */ jsx("label", { id: "multiselect-label", className: "block mb-0.5", children: /* @__PURE__ */ jsxs("span", { className: "text-sm font-medium text-text-secondary", children: [
653
+ label,
654
+ required && /* @__PURE__ */ jsx("span", { className: "text-error ml-1", children: "*" })
655
+ ] }) }),
663
656
  helperMessage && /* @__PURE__ */ jsx(
664
657
  "p",
665
658
  {
@@ -669,7 +662,7 @@ var MultiSelect = React.memo(
669
662
  status === "warning" && "text-warning",
670
663
  status === "info" && "text-info",
671
664
  status === "success" && "text-success",
672
- status === "default" && "text-text-muted"
665
+ status === "default" && "text-text-secondary"
673
666
  ),
674
667
  children: helperMessage
675
668
  }
@@ -683,5 +676,5 @@ MultiSelect.displayName = "MultiSelect";
683
676
  var multi_select_default = MultiSelect;
684
677
 
685
678
  export { multi_select_default };
686
- //# sourceMappingURL=chunk-267WNY3E.js.map
687
- //# sourceMappingURL=chunk-267WNY3E.js.map
679
+ //# sourceMappingURL=chunk-77YTCM7G.js.map
680
+ //# sourceMappingURL=chunk-77YTCM7G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/multi-select/utils.ts","../src/multi-select/index.tsx"],"names":[],"mappings":"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","file":"chunk-77YTCM7G.js","sourcesContent":["import { cva } from 'class-variance-authority'\n\nexport const multiSelectTriggerVariants = cva(\n 'w-full flex items-center justify-between rounded-md bg-background text-text-primary border focus:border-primary outline-none disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer gap-1',\n {\n variants: {\n status: {\n default: 'border-border',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n success: 'border-success',\n },\n size: {\n xs: 'h-(--select-height-xs) pl-(--select-padding-x-xs) pr-[calc(var(--select-padding-x-xs)*2)] text-xs',\n sm: 'h-(--select-height-sm) pl-(--select-padding-x-sm) pr-[calc(var(--select-padding-x-sm)*2)] text-sm',\n md: 'h-(--select-height-md) pl-(--select-padding-x-md) pr-[calc(var(--select-padding-x-md)*2)] text-base',\n lg: 'h-(--select-height-lg) pl-(--select-padding-x-lg) pr-[calc(var(--select-padding-x-lg)*2)] text-lg',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n status: 'default',\n size: 'md',\n fullWidth: true,\n },\n },\n)\n\nexport const multiSelectDropdownVariants = cva(\n 'absolute z-50 mt-1 overflow-auto rounded-md border border-border bg-background',\n)\n\nexport const multiSelectOptionVariants = cva(\n 'relative cursor-pointer select-none px-3 py-2 text-text-primary',\n {\n variants: {\n selected: {\n true: 'bg-primary/10 text-primary font-medium',\n false: 'hover:bg-surface',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n disabled: false,\n },\n },\n)\n\nexport const multiSelectGroupVariants = cva(\n 'px-3 py-2 text-xs font-semibold text-text-secondary uppercase tracking-wider bg-surface',\n)\n","import { useVirtualizer } from \"@tanstack/react-virtual\";\nimport {\n Check,\n ChevronDown,\n ChevronUp,\n Loader2,\n Search,\n X,\n} from \"lucide-react\";\nimport React, { useCallback } from \"react\";\n\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport { cn, iconSizes } from \"../utils\";\nimport type { MultiSelectOption, MultiSelectProps } from \"./types\";\nimport {\n multiSelectGroupVariants,\n multiSelectOptionVariants,\n multiSelectTriggerVariants,\n} from \"./utils\";\n\nconst MultiSelect = React.memo<MultiSelectProps>(\n ({\n size = \"md\",\n label,\n helperText,\n error,\n warning,\n info,\n success,\n options = [],\n placeholder = \"Select options\",\n loading = false,\n fullWidth = true,\n maxChipsVisible = 3,\n value,\n defaultValue,\n onChange,\n disabled,\n required,\n clearable = false,\n virtualizeThreshold = 50,\n maxDropdownHeight = 300,\n className,\n ref,\n ...props\n }) => {\n const [isOpen, setIsOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState<string[]>(\n defaultValue || [],\n );\n const [parentNode, setParentNode] = React.useState<HTMLDivElement | null>(\n null,\n );\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n const [highlightedIndex, setHighlightedIndex] = React.useState(-1);\n const [visibleChipsCount, setVisibleChipsCount] =\n React.useState(maxChipsVisible);\n const [showTopArrow, setShowTopArrow] = React.useState(false);\n const [showBottomArrow, setShowBottomArrow] = React.useState(false);\n\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const scrollContainerRef = React.useRef<HTMLDivElement>(null);\n\n const currentValue = value !== undefined ? value : internalValue;\n\n let status: \"default\" | \"error\" | \"warning\" | \"info\" | \"success\" =\n \"default\";\n const helperMessage = error || warning || info || success || helperText;\n\n if (error) {\n status = \"error\";\n } else if (warning) {\n status = \"warning\";\n } else if (success) {\n status = \"success\";\n } else if (info) {\n status = \"info\";\n }\n\n const groupedOptions = React.useMemo(() => {\n const groups: Record<string, MultiSelectOption[]> = {};\n const ungrouped: MultiSelectOption[] = [];\n\n options.forEach((option) => {\n if (option.group) {\n if (!groups[option.group]) {\n groups[option.group] = [];\n }\n groups[option.group]!.push(option);\n } else {\n ungrouped.push(option);\n }\n });\n\n return { groups, ungrouped };\n }, [options]);\n\n const flattenedOptions = React.useMemo(() => {\n const items: Array<{\n type: \"option\" | \"group\";\n data: MultiSelectOption | string;\n }> = [];\n\n groupedOptions.ungrouped.forEach((option) => {\n items.push({ type: \"option\", data: option });\n });\n\n Object.entries(groupedOptions.groups).forEach(\n ([groupName, groupOptions]) => {\n items.push({ type: \"group\", data: groupName });\n groupOptions.forEach((option) => {\n items.push({ type: \"option\", data: option });\n });\n },\n );\n\n return items;\n }, [groupedOptions]);\n\n const filteredOptions = React.useMemo(() => {\n if (!searchQuery) return flattenedOptions;\n\n return flattenedOptions.filter((item) => {\n if (item.type === \"group\") return true;\n const option = item.data as MultiSelectOption;\n return option.label.toLowerCase().includes(searchQuery.toLowerCase());\n });\n }, [flattenedOptions, searchQuery]);\n\n const shouldVirtualize = filteredOptions.length > virtualizeThreshold;\n\n const virtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => parentNode,\n estimateSize: () => 40,\n enabled: shouldVirtualize,\n });\n\n // Store virtualizer in ref to avoid recreating handleKeyDown on every render\n const virtualizerRef = React.useRef(virtualizer);\n React.useEffect(() => {\n virtualizerRef.current = virtualizer;\n }, [virtualizer]);\n\n const refCallback = useCallback((node: HTMLDivElement) => {\n if (node) {\n setParentNode(node);\n // Also set as scroll container for virtualized lists\n scrollContainerRef.current = node;\n }\n }, []);\n\n const selectedOptions = options.filter((opt) =>\n currentValue.includes(opt.value),\n );\n\n const handleSelect = React.useCallback(\n (optionValue: string) => {\n const newValue = currentValue.includes(optionValue)\n ? currentValue.filter((v) => v !== optionValue)\n : [...currentValue, optionValue];\n\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n setHighlightedIndex(-1);\n },\n [value, onChange, currentValue],\n );\n\n const handleRemoveChip = React.useCallback(\n (optionValue: string, e: React.MouseEvent | React.KeyboardEvent) => {\n e.stopPropagation();\n const newValue = currentValue.filter((v) => v !== optionValue);\n\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n },\n [value, onChange, currentValue],\n );\n\n const handleClear = React.useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n if (value === undefined) {\n setInternalValue([]);\n }\n onChange?.([]);\n },\n [value, onChange],\n );\n\n const handleInputChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value);\n if (!isOpen) setIsOpen(true);\n },\n [isOpen],\n );\n\n const handleInputFocus = React.useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (!isOpen && e.key !== \"Tab\") {\n if (e.key === \"Enter\" || e.key === \" \" || e.key === \"ArrowDown\") {\n e.preventDefault();\n setIsOpen(true);\n }\n return;\n }\n\n const selectableOptions = filteredOptions.filter(\n (item) =>\n item.type === \"option\" &&\n !(item.data as MultiSelectOption).disabled,\n );\n\n switch (e.key) {\n case \"Escape\":\n e.preventDefault();\n setIsOpen(false);\n setSearchQuery(\"\");\n setHighlightedIndex(-1);\n inputRef.current?.blur();\n break;\n\n case \"ArrowDown\":\n e.preventDefault();\n setHighlightedIndex((prev) => {\n const nextIndex = Math.min(\n prev + 1,\n selectableOptions.length - 1,\n );\n const option = selectableOptions[nextIndex];\n if (option && shouldVirtualize && virtualizerRef.current) {\n const optionIndex = filteredOptions.indexOf(option);\n virtualizerRef.current.scrollToIndex(optionIndex, {\n align: \"auto\",\n });\n }\n return nextIndex;\n });\n break;\n\n case \"ArrowUp\":\n e.preventDefault();\n setHighlightedIndex((prev) => {\n const nextIndex = Math.max(prev - 1, 0);\n const option = selectableOptions[nextIndex];\n if (option && shouldVirtualize && virtualizerRef.current) {\n const optionIndex = filteredOptions.indexOf(option);\n virtualizerRef.current.scrollToIndex(optionIndex, {\n align: \"auto\",\n });\n }\n return nextIndex;\n });\n break;\n\n case \"Enter\":\n e.preventDefault();\n if (\n highlightedIndex >= 0 &&\n highlightedIndex < selectableOptions.length\n ) {\n const item = selectableOptions[highlightedIndex];\n if (item) {\n const option = item.data as MultiSelectOption;\n handleSelect(option.value);\n }\n }\n break;\n\n case \"Home\":\n e.preventDefault();\n setHighlightedIndex(0);\n if (shouldVirtualize && virtualizerRef.current) {\n virtualizerRef.current.scrollToIndex(0);\n }\n break;\n\n case \"End\":\n e.preventDefault();\n setHighlightedIndex(selectableOptions.length - 1);\n if (shouldVirtualize && virtualizerRef.current) {\n virtualizerRef.current.scrollToIndex(filteredOptions.length - 1);\n }\n break;\n\n default:\n break;\n }\n },\n [\n isOpen,\n filteredOptions,\n highlightedIndex,\n handleSelect,\n shouldVirtualize,\n ],\n );\n\n const handleInputKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Backspace\" && !searchQuery && currentValue.length > 0) {\n e.preventDefault();\n const lastValue = currentValue[currentValue.length - 1];\n handleRemoveChip(lastValue!, e);\n } else {\n handleKeyDown(e);\n }\n },\n [searchQuery, currentValue, handleRemoveChip, handleKeyDown],\n );\n\n React.useEffect(() => {\n if (selectedOptions.length === 0 || !triggerRef.current) {\n setVisibleChipsCount(maxChipsVisible);\n return;\n }\n\n const calculateVisibleChips = () => {\n const container = triggerRef.current;\n if (!container) return;\n\n const hiddenChips = container.querySelectorAll(\"[data-hidden-chip]\");\n if (hiddenChips.length === 0) return;\n\n const containerWidth = container.offsetWidth;\n const padding =\n size === \"sm\" ? 12 : size === \"md\" ? 16 : size === \"lg\" ? 20 : 24;\n const chevronWidth = 32;\n const gap = 4;\n const plusIndicatorWidth = 50;\n\n const availableWidth = containerWidth - padding * 2 - chevronWidth;\n let totalWidth = 0;\n let visibleCount = 0;\n\n for (let i = 0; i < hiddenChips.length; i++) {\n const chip = hiddenChips[i];\n if (!chip) continue;\n const chipWidth = chip.getBoundingClientRect().width;\n const requiredSpace =\n totalWidth + chipWidth + (visibleCount > 0 ? gap : 0);\n\n const needsPlusIndicator = i < hiddenChips.length - 1;\n const spaceWithIndicator =\n requiredSpace + (needsPlusIndicator ? gap + plusIndicatorWidth : 0);\n\n if (spaceWithIndicator <= availableWidth) {\n totalWidth = requiredSpace;\n visibleCount++;\n } else {\n break;\n }\n }\n\n setVisibleChipsCount(Math.max(1, visibleCount));\n };\n\n const timeoutId = setTimeout(calculateVisibleChips, 0);\n\n const resizeObserver = new ResizeObserver(() => {\n calculateVisibleChips();\n });\n\n if (triggerRef.current) {\n resizeObserver.observe(triggerRef.current);\n }\n\n return () => {\n clearTimeout(timeoutId);\n resizeObserver.disconnect();\n };\n }, [selectedOptions, size, maxChipsVisible]);\n\n // Handle scroll to update arrow visibility\n const handleScroll = React.useCallback(\n (e: React.UIEvent<HTMLDivElement>) => {\n const element = e.currentTarget;\n const { scrollTop, scrollHeight, clientHeight } = element;\n\n setShowTopArrow(scrollTop > 0);\n setShowBottomArrow(scrollTop + clientHeight < scrollHeight - 1);\n },\n [],\n );\n\n // Check initial scroll state when dropdown opens\n React.useEffect(() => {\n if (isOpen) {\n // Use a small delay to ensure the DOM is fully rendered\n const timeoutId = setTimeout(() => {\n const element = scrollContainerRef.current;\n if (element) {\n const { scrollTop, scrollHeight, clientHeight } = element;\n setShowTopArrow(scrollTop > 0);\n setShowBottomArrow(scrollTop + clientHeight < scrollHeight - 1);\n }\n }, 50);\n\n return () => clearTimeout(timeoutId);\n } else {\n setShowTopArrow(false);\n setShowBottomArrow(false);\n return;\n }\n }, [isOpen, filteredOptions, shouldVirtualize]);\n\n const renderOptionsList = () => (\n <div className=\"relative\">\n {/* Top scroll indicator */}\n {showTopArrow && (\n <div className=\"flex items-center justify-center\">\n <ChevronUp className=\"h-4 w-4 text-text-primary\" />\n </div>\n )}\n\n <div\n ref={scrollContainerRef}\n className=\"overflow-auto relative\"\n style={{ maxHeight: maxDropdownHeight }}\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-labelledby={label ? \"multiselect-label\" : undefined}\n onScroll={handleScroll}\n >\n {filteredOptions.length === 0 ? (\n <div className=\"px-3 py-4 text-center text-sm text-text-secondary\">\n No options found\n </div>\n ) : shouldVirtualize ? (\n <div\n ref={refCallback}\n style={{\n height: `${Math.min(virtualizer.getTotalSize(), maxDropdownHeight)}px`,\n overflow: \"auto\",\n }}\n onScroll={handleScroll}\n >\n <div\n style={{\n height: `${virtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {virtualizer.getVirtualItems().map((virtualItem) => {\n const item = filteredOptions[virtualItem.index];\n\n if (item?.type === \"group\") {\n return (\n <div\n key={`group-${virtualItem.index}`}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n className={multiSelectGroupVariants()}\n >\n {item?.data as string}\n </div>\n );\n }\n\n const option = item?.data as MultiSelectOption;\n const isSelected = currentValue.includes(option.value);\n const selectableOptions = filteredOptions.filter(\n (i) =>\n i.type === \"option\" &&\n !(i.data as MultiSelectOption).disabled,\n );\n const selectableIndex = selectableOptions.findIndex(\n (i) => i === item,\n );\n const isHighlighted = selectableIndex === highlightedIndex;\n\n return (\n <div\n key={option.value}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n className={cn(\n multiSelectOptionVariants({\n selected: isSelected,\n disabled: !!option.disabled,\n }),\n isHighlighted && \"bg-surface\",\n )}\n onClick={() =>\n !option.disabled && handleSelect(option.value)\n }\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n >\n {option.label}\n {isSelected && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <Check\n className={cn(\"text-primary\", iconSizes[size])}\n />\n </span>\n )}\n </div>\n );\n })}\n </div>\n </div>\n ) : (\n <div className=\"py-1\">\n {filteredOptions.map((item, index) => {\n if (item.type === \"group\") {\n return (\n <div\n key={`group-${index}`}\n className={multiSelectGroupVariants()}\n >\n {item.data as string}\n </div>\n );\n }\n\n const option = item.data as MultiSelectOption;\n const isSelected = currentValue.includes(option.value);\n const selectableOptions = filteredOptions.filter(\n (i) =>\n i.type === \"option\" &&\n !(i.data as MultiSelectOption).disabled,\n );\n const selectableIndex = selectableOptions.findIndex(\n (i) => i === item,\n );\n const isHighlighted = selectableIndex === highlightedIndex;\n\n return (\n <div\n key={option.value}\n className={cn(\n multiSelectOptionVariants({\n selected: isSelected,\n disabled: !!option.disabled,\n }),\n isHighlighted && \"bg-surface\",\n )}\n onClick={() =>\n !option.disabled && handleSelect(option.value)\n }\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n >\n {option.label}\n {isSelected && (\n <span className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <Check\n className={cn(\"text-primary\", iconSizes[size])}\n />\n </span>\n )}\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n {/* Bottom scroll indicator */}\n {showBottomArrow && (\n <div className=\"flex items-center justify-center\">\n <ChevronDown className=\"h-4 w-4 text-text-primary\" />\n </div>\n )}\n </div>\n );\n\n // Trigger button (used in both desktop and mobile)\n const triggerButton = (\n <button\n ref={triggerRef}\n type=\"button\"\n className={cn(\n multiSelectTriggerVariants({ status, size, fullWidth }),\n loading && \"opacity-50\",\n className,\n )}\n disabled={disabled || loading}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-labelledby={label ? \"multiselect-label\" : undefined}\n onClick={() => setIsOpen(!isOpen)}\n >\n {selectedOptions.length > 0 && (\n <div className=\"flex gap-1 shrink-0\">\n {selectedOptions.slice(0, visibleChipsCount).map((option) => (\n <span\n key={option.value}\n className=\"inline-flex items-center gap-1 px-2 bg-primary/10 text-primary rounded text-sm whitespace-nowrap\"\n >\n {option.label}\n <button\n type=\"button\"\n onClick={(e) => handleRemoveChip(option.value, e)}\n className=\"hover:text-error\"\n disabled={disabled}\n >\n <X className=\"h-3 w-3\" />\n </button>\n </span>\n ))}\n {selectedOptions.length > visibleChipsCount && (\n <span className=\"inline-flex items-center px-2 py-0.5 bg-surface text-text-secondary rounded text-sm whitespace-nowrap\">\n +{selectedOptions.length - visibleChipsCount}\n </span>\n )}\n </div>\n )}\n <div\n className=\"absolute opacity-0 pointer-events-none whitespace-nowrap\"\n aria-hidden=\"true\"\n >\n {selectedOptions.map((option) => (\n <span\n key={option.value}\n data-hidden-chip\n className=\"inline-flex items-center gap-1 px-2 py-0.5 bg-primary/10 text-primary rounded text-sm whitespace-nowrap\"\n >\n {option.label}\n <X className=\"h-3 w-3\" />\n </span>\n ))}\n </div>\n <input\n ref={inputRef}\n type=\"text\"\n className=\"bg-transparent outline-none cursor-pointer placeholder:text-text-secondary/50 flex-1 min-w-0 pointer-events-none\"\n placeholder={selectedOptions.length > 0 ? \"\" : placeholder}\n value={searchQuery}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onKeyDown={handleInputKeyDown}\n disabled={disabled || loading}\n readOnly={!isOpen}\n tabIndex={-1}\n />\n <div className=\"flex items-center gap-1 text-text-secondary\">\n {loading ? (\n <Loader2 className={cn(\"animate-spin\", iconSizes[size])} />\n ) : (\n <>\n {clearable && selectedOptions.length > 0 && !disabled && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"hover:text-text-primary transition-colors\"\n aria-label=\"Clear selection\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n {isOpen ? (\n <Search className={iconSizes[size]} />\n ) : (\n <ChevronDown className={iconSizes[size]} />\n )}\n </>\n )}\n </div>\n </button>\n );\n\n const selectElement = (\n <div\n className={cn(\"relative group\", fullWidth ? \"w-full\" : \"inline-block\")}\n ref={ref}\n {...props}\n >\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>{triggerButton}</PopoverTrigger>\n\n <PopoverContent\n className=\"p-0 w-[var(--radix-popover-trigger-width)]\"\n align=\"start\"\n sideOffset={4}\n onOpenAutoFocus={(e: Event) => {\n e.preventDefault();\n inputRef.current?.focus();\n }}\n >\n {renderOptionsList()}\n </PopoverContent>\n </Popover>\n </div>\n );\n\n if (!label && !helperMessage) return selectElement;\n\n return (\n <div className={cn(\"w-full flex flex-col\", !fullWidth && \"inline-block\")}>\n <div className=\"flex gap-2 items-center\">\n {label && (\n <label id=\"multiselect-label\" className=\"block mb-0.5\">\n <span className=\"text-sm font-medium text-text-secondary\">\n {label}\n {required && <span className=\"text-error ml-1\">*</span>}\n </span>\n </label>\n )}\n {helperMessage && (\n <p\n className={cn(\n \"text-xs\",\n status === \"error\" && \"text-error\",\n status === \"warning\" && \"text-warning\",\n status === \"info\" && \"text-info\",\n status === \"success\" && \"text-success\",\n status === \"default\" && \"text-text-secondary\",\n )}\n >\n {helperMessage}\n </p>\n )}\n </div>\n {selectElement}\n </div>\n );\n },\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n\nexport type * from \"./types\";\nexport default MultiSelect;\n"]}
@@ -1,14 +1,14 @@
1
- import { cn } from './chunk-YNNAOXU5.js';
2
- import { useState, useRef, useEffect } from 'react';
1
+ import { cn } from './chunk-2OGZENFC.js';
2
+ import React, { useState, useRef, useEffect } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
5
- function Image({
5
+ var Image = React.memo(({
6
6
  src,
7
7
  withBlur,
8
- className = "",
8
+ className,
9
9
  fetchPriority = "auto",
10
10
  ...props
11
- }) {
11
+ }) => {
12
12
  const [imageError, setImageError] = useState(false);
13
13
  const [isLoaded, setIsLoaded] = useState(false);
14
14
  const imageRef = useRef(null);
@@ -26,7 +26,7 @@ function Image({
26
26
  }
27
27
  return () => img?.removeEventListener("load", handleLoad);
28
28
  }, []);
29
- return /* @__PURE__ */ jsxs("div", { className: `relative inline-block ${className || ""}`, children: [
29
+ return /* @__PURE__ */ jsxs("div", { className: cn("relative inline-block", className), children: [
30
30
  withBlur && !isLoaded && /* @__PURE__ */ jsx(
31
31
  "div",
32
32
  {
@@ -34,7 +34,7 @@ function Image({
34
34
  width: props.width ? `${props.width}px` : void 0,
35
35
  height: props.height ? `${props.height}px` : void 0
36
36
  },
37
- className: "\n absolute top-0 left-0 w-full h-full\n rounded-md\n animate-pulse\n bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200\n "
37
+ className: "\n absolute top-0 left-0 w-full h-full\n rounded-md\n animate-pulse\n bg-gradient-to-r from-surface via-background to-surface\n "
38
38
  }
39
39
  ),
40
40
  /* @__PURE__ */ jsx(
@@ -51,9 +51,10 @@ function Image({
51
51
  }
52
52
  )
53
53
  ] });
54
- }
54
+ });
55
+ Image.displayName = "Image";
55
56
  var image_default = Image;
56
57
 
57
58
  export { image_default };
58
- //# sourceMappingURL=chunk-XMAH5PDW.js.map
59
- //# sourceMappingURL=chunk-XMAH5PDW.js.map
59
+ //# sourceMappingURL=chunk-7BUNJYZO.js.map
60
+ //# sourceMappingURL=chunk-7BUNJYZO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/image/index.tsx"],"names":[],"mappings":";;;;AAQA,IAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAiB,CAAC;AAAA,EACpC,GAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,GAAgB,MAAA;AAAA,EAChB,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,KAAK,CAAA;AAClD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,SAAS,OAAA,EAAS;AACpB,QAAA,WAAA,CAAY,IAAI,CAAA;AAAA,MAClB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,MAAM,QAAA,CAAS,OAAA;AACrB,IAAA,IAAI,KAAK,QAAA,EAAU;AACjB,MAAA,UAAA,EAAW;AAAA,IACb,CAAA,MAAO;AACL,MAAA,GAAA,EAAK,gBAAA,CAAiB,QAAQ,UAAU,CAAA;AAAA,IAC1C;AAEA,IAAA,OAAO,MAAM,GAAA,EAAK,mBAAA,CAAoB,MAAA,EAAQ,UAAU,CAAA;AAAA,EAC1D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS,CAAA,EAClD,QAAA,EAAA;AAAA,IAAA,QAAA,IAAY,CAAC,QAAA,oBACZ,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,OAAO,KAAA,CAAM,KAAA,GAAQ,CAAA,EAAG,KAAA,CAAM,KAAK,CAAA,EAAA,CAAA,GAAO,MAAA;AAAA,UAC1C,QAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,KAAA,CAAM,MAAM,CAAA,EAAA,CAAA,GAAO;AAAA,SAC/C;AAAA,QACA,SAAA,EAAU;AAAA;AAAA,KAMZ;AAAA,oBAEF,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,QAAA;AAAA,QACL,OAAA,EAAS,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,QACjC,GAAA,EAAK,UAAA,IAAc,CAAC,GAAA,GAAM,uBAAA,GAA0B,GAAA;AAAA,QACpD,SAAA,EAAW,EAAA,CAAG,yCAAA,EAA2C,SAAS,CAAA;AAAA,QACjE,GAAG,KAAA;AAAA,QACJ,KAAK,KAAA,CAAM,GAAA;AAAA,QACX,OAAA,EAAQ,MAAA;AAAA,QACR;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAO,aAAA,GAAQ","file":"chunk-7BUNJYZO.js","sourcesContent":["'use client'\n\nimport React, { useEffect, useRef, useState } from 'react'\n\nimport { cn } from '../utils'\n\nimport { ImageProps } from './types'\n\nconst Image = React.memo<ImageProps>(({\n src,\n withBlur,\n className,\n fetchPriority = 'auto',\n ...props\n}) => {\n const [imageError, setImageError] = useState(false)\n const [isLoaded, setIsLoaded] = useState(false)\n const imageRef = useRef<HTMLImageElement>(null)\n\n useEffect(() => {\n const handleLoad = () => {\n if (imageRef.current) {\n setIsLoaded(true)\n }\n }\n\n const img = imageRef.current\n if (img?.complete) {\n handleLoad()\n } else {\n img?.addEventListener('load', handleLoad)\n }\n\n return () => img?.removeEventListener('load', handleLoad)\n }, [])\n\n return (\n <div className={cn('relative inline-block', className)}>\n {withBlur && !isLoaded && (\n <div\n style={{\n width: props.width ? `${props.width}px` : undefined,\n height: props.height ? `${props.height}px` : undefined,\n }}\n className=\"\n absolute top-0 left-0 w-full h-full\n rounded-md\n animate-pulse\n bg-gradient-to-r from-surface via-background to-surface\n \"\n />\n )}\n <img\n ref={imageRef}\n onError={() => setImageError(true)}\n src={imageError || !src ? '/static/png/empty.png' : src}\n className={cn('transition-all duration-500 ease-in-out', className)}\n {...props}\n alt={props.alt}\n loading=\"lazy\"\n fetchPriority={fetchPriority}\n />\n </div>\n )\n})\n\nImage.displayName = 'Image'\n\nexport type * from './types'\nexport default Image\n"]}
@@ -0,0 +1,78 @@
1
+ import { cn } from './chunk-2OGZENFC.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import React from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var buttonGroupVariants = cva("inline-flex", {
7
+ variants: {
8
+ vertical: {
9
+ true: "flex-col",
10
+ false: "flex-row"
11
+ },
12
+ fullWidth: {
13
+ true: "w-full [&>*]:flex-1",
14
+ false: ""
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ vertical: false,
19
+ fullWidth: false
20
+ }
21
+ });
22
+ var attachedHorizontalClasses = "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none";
23
+ var attachedVerticalClasses = "[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:border-b-0 [&>*:not(:last-child)]:rounded-b-none";
24
+ var gapClasses = {
25
+ sm: "gap-1",
26
+ md: "gap-2",
27
+ lg: "gap-3"
28
+ };
29
+ var ButtonGroup = React.memo(
30
+ ({
31
+ vertical = false,
32
+ attached = true,
33
+ gap = "md",
34
+ fullWidth = false,
35
+ size,
36
+ variant,
37
+ color,
38
+ disabled = false,
39
+ className,
40
+ children,
41
+ ref,
42
+ ...props
43
+ }) => {
44
+ const enhancedChildren = React.Children.map(children, (child) => {
45
+ if (React.isValidElement(child)) {
46
+ return React.cloneElement(child, {
47
+ // Group props are defaults - child props take precedence
48
+ size: child.props.size ?? size,
49
+ variant: child.props.variant ?? variant,
50
+ color: child.props.color ?? color,
51
+ // Disabled is additive - if group is disabled, all children are disabled
52
+ disabled: child.props.disabled || disabled
53
+ });
54
+ }
55
+ return child;
56
+ });
57
+ return /* @__PURE__ */ jsx(
58
+ "div",
59
+ {
60
+ ref,
61
+ role: "group",
62
+ className: cn(
63
+ buttonGroupVariants({ vertical, fullWidth }),
64
+ attached ? vertical ? attachedVerticalClasses : attachedHorizontalClasses : gapClasses[gap],
65
+ className
66
+ ),
67
+ ...props,
68
+ children: enhancedChildren
69
+ }
70
+ );
71
+ }
72
+ );
73
+ ButtonGroup.displayName = "ButtonGroup";
74
+ var button_group_default = ButtonGroup;
75
+
76
+ export { button_group_default };
77
+ //# sourceMappingURL=chunk-7ODPSHIQ.js.map
78
+ //# sourceMappingURL=chunk-7ODPSHIQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button-group/index.tsx"],"names":[],"mappings":";;;;;AAOA,IAAM,mBAAA,GAAsB,IAAI,aAAA,EAAe;AAAA,EAC7C,QAAA,EAAU;AAAA,IACR,QAAA,EAAU;AAAA,MACR,IAAA,EAAM,UAAA;AAAA,MACN,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,SAAA,EAAW;AAAA;AAEf,CAAC,CAAA;AAKD,IAAM,yBAAA,GACJ,gHAAA;AAEF,IAAM,uBAAA,GACJ,gHAAA;AAKF,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AA8BA,IAAM,cAAc,KAAA,CAAM,IAAA;AAAA,EACxB,CAAC;AAAA,IACC,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,IAAA;AAAA,IACX,GAAA,GAAM,IAAA;AAAA,IACN,SAAA,GAAY,KAAA;AAAA,IACZ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AAEJ,IAAA,MAAM,mBAAmB,KAAA,CAAM,QAAA,CAAS,GAAA,CAAI,QAAA,EAAU,CAAC,KAAA,KAAU;AAC/D,MAAA,IAAI,KAAA,CAAM,cAAA,CAA4B,KAAK,CAAA,EAAG;AAC5C,QAAA,OAAO,KAAA,CAAM,aAAa,KAAA,EAAO;AAAA;AAAA,UAE/B,IAAA,EAAM,KAAA,CAAM,KAAA,CAAM,IAAA,IAAQ,IAAA;AAAA,UAC1B,OAAA,EAAS,KAAA,CAAM,KAAA,CAAM,OAAA,IAAW,OAAA;AAAA,UAChC,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,KAAA,IAAS,KAAA;AAAA;AAAA,UAE5B,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,QAAA,IAAY;AAAA,SACnC,CAAA;AAAA,MACH;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,SAAA,EAAW,EAAA;AAAA,UACT,mBAAA,CAAoB,EAAE,QAAA,EAAU,SAAA,EAAW,CAAA;AAAA,UAC3C,QAAA,GACI,QAAA,GACE,uBAAA,GACA,yBAAA,GACF,WAAW,GAAG,CAAA;AAAA,UAClB;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;AAG1B,IAAO,oBAAA,GAAQ","file":"chunk-7ODPSHIQ.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport type { ButtonProps } from '../button/types'\nimport { cn } from '../utils'\nimport type { ButtonGroupProps } from './types'\n\nconst buttonGroupVariants = cva('inline-flex', {\n variants: {\n vertical: {\n true: 'flex-col',\n false: 'flex-row',\n },\n fullWidth: {\n true: 'w-full [&>*]:flex-1',\n false: '',\n },\n },\n defaultVariants: {\n vertical: false,\n fullWidth: false,\n },\n})\n\n/**\n * Attached button styling - removes inner borders and rounds only outer corners\n */\nconst attachedHorizontalClasses =\n '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:border-r-0 [&>*:not(:last-child)]:rounded-r-none'\n\nconst attachedVerticalClasses =\n '[&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:border-b-0 [&>*:not(:last-child)]:rounded-b-none'\n\n/**\n * Gap size classes\n */\nconst gapClasses = {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n}\n\n/**\n * ButtonGroup Component\n *\n * Groups multiple buttons together with consistent styling and spacing.\n * Can propagate common props (size, variant, color, disabled) to all child buttons.\n *\n * @example\n * // Basic horizontal group\n * <ButtonGroup>\n * <Button>Save</Button>\n * <Button>Cancel</Button>\n * </ButtonGroup>\n *\n * @example\n * // Vertical group with uniform styling\n * <ButtonGroup vertical variant=\"outline\" size=\"sm\">\n * <Button>Option 1</Button>\n * <Button>Option 2</Button>\n * </ButtonGroup>\n *\n * @example\n * // Separated buttons with gap\n * <ButtonGroup attached={false} gap=\"md\">\n * <Button>A</Button>\n * <Button>B</Button>\n * <Button>C</Button>\n * </ButtonGroup>\n */\nconst ButtonGroup = React.memo<ButtonGroupProps>(\n ({\n vertical = false,\n attached = true,\n gap = 'md',\n fullWidth = false,\n size,\n variant,\n color,\n disabled = false,\n className,\n children,\n ref,\n ...props\n }) => {\n // Clone children and inject group props\n const enhancedChildren = React.Children.map(children, (child) => {\n if (React.isValidElement<ButtonProps>(child)) {\n return React.cloneElement(child, {\n // Group props are defaults - child props take precedence\n size: child.props.size ?? size,\n variant: child.props.variant ?? variant,\n color: child.props.color ?? color,\n // Disabled is additive - if group is disabled, all children are disabled\n disabled: child.props.disabled || disabled,\n })\n }\n return child\n })\n\n return (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n buttonGroupVariants({ vertical, fullWidth }),\n attached\n ? vertical\n ? attachedVerticalClasses\n : attachedHorizontalClasses\n : gapClasses[gap],\n className,\n )}\n {...props}\n >\n {enhancedChildren}\n </div>\n )\n },\n)\n\nButtonGroup.displayName = 'ButtonGroup'\n\nexport type * from './types'\nexport default ButtonGroup\n"]}