@arolariu/components 0.0.35 → 0.0.37

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 (293) hide show
  1. package/changelog.md +13 -0
  2. package/dist/cjs/components/ui/accordion.cjs +1 -1
  3. package/dist/cjs/components/ui/accordion.cjs.map +1 -1
  4. package/dist/cjs/components/ui/alert-dialog.cjs +1 -1
  5. package/dist/cjs/components/ui/alert-dialog.cjs.map +1 -1
  6. package/dist/cjs/components/ui/alert.cjs +1 -1
  7. package/dist/cjs/components/ui/alert.cjs.map +1 -1
  8. package/dist/cjs/components/ui/aspect-ratio.cjs.map +1 -1
  9. package/dist/cjs/components/ui/avatar.cjs.map +1 -1
  10. package/dist/cjs/components/ui/background-beams.cjs +210 -0
  11. package/dist/cjs/components/ui/background-beams.cjs.map +1 -0
  12. package/dist/cjs/components/ui/badge.cjs +1 -1
  13. package/dist/cjs/components/ui/badge.cjs.map +1 -1
  14. package/dist/cjs/components/ui/breadcrumb.cjs.map +1 -1
  15. package/dist/cjs/components/ui/bubble-background.cjs +214 -0
  16. package/dist/cjs/components/ui/bubble-background.cjs.map +1 -0
  17. package/dist/cjs/components/ui/button.cjs +6 -6
  18. package/dist/cjs/components/ui/button.cjs.map +1 -1
  19. package/dist/cjs/components/ui/card.cjs +13 -3
  20. package/dist/cjs/components/ui/card.cjs.map +1 -1
  21. package/dist/cjs/components/ui/carousel.cjs.map +1 -1
  22. package/dist/cjs/components/ui/chart.cjs.map +1 -1
  23. package/dist/cjs/components/ui/checkbox.cjs +1 -1
  24. package/dist/cjs/components/ui/checkbox.cjs.map +1 -1
  25. package/dist/cjs/components/ui/collapsible.cjs +1 -1
  26. package/dist/cjs/components/ui/collapsible.cjs.map +1 -1
  27. package/dist/cjs/components/ui/command.cjs +2 -2
  28. package/dist/cjs/components/ui/command.cjs.map +1 -1
  29. package/dist/cjs/components/ui/context-menu.cjs +7 -7
  30. package/dist/cjs/components/ui/context-menu.cjs.map +1 -1
  31. package/dist/cjs/components/ui/counting-number.cjs +95 -0
  32. package/dist/cjs/components/ui/counting-number.cjs.map +1 -0
  33. package/dist/cjs/components/ui/dialog.cjs +1 -1
  34. package/dist/cjs/components/ui/dialog.cjs.map +1 -1
  35. package/dist/cjs/components/ui/dot-background.cjs +131 -0
  36. package/dist/cjs/components/ui/dot-background.cjs.map +1 -0
  37. package/dist/cjs/components/ui/drawer.cjs +3 -3
  38. package/dist/cjs/components/ui/drawer.cjs.map +1 -1
  39. package/dist/cjs/components/ui/dropdown-menu.cjs +7 -7
  40. package/dist/cjs/components/ui/dropdown-menu.cjs.map +1 -1
  41. package/dist/cjs/components/ui/fireworks-background.cjs +259 -0
  42. package/dist/cjs/components/ui/fireworks-background.cjs.map +1 -0
  43. package/dist/cjs/components/ui/flip-button.cjs +100 -0
  44. package/dist/cjs/components/ui/flip-button.cjs.map +1 -0
  45. package/dist/cjs/components/ui/form.cjs +2 -2
  46. package/dist/cjs/components/ui/form.cjs.map +1 -1
  47. package/dist/cjs/components/ui/gradient-background.cjs +60 -0
  48. package/dist/cjs/components/ui/gradient-background.cjs.map +1 -0
  49. package/dist/cjs/components/ui/gradient-text.cjs +83 -0
  50. package/dist/cjs/components/ui/gradient-text.cjs.map +1 -0
  51. package/dist/cjs/components/ui/highlight-text.cjs +74 -0
  52. package/dist/cjs/components/ui/highlight-text.cjs.map +1 -0
  53. package/dist/cjs/components/ui/hole-background.cjs +361 -0
  54. package/dist/cjs/components/ui/hole-background.cjs.map +1 -0
  55. package/dist/cjs/components/ui/hover-card.cjs +9 -6
  56. package/dist/cjs/components/ui/hover-card.cjs.map +1 -1
  57. package/dist/cjs/components/ui/input-otp.cjs +2 -3
  58. package/dist/cjs/components/ui/input-otp.cjs.map +1 -1
  59. package/dist/cjs/components/ui/input.cjs +1 -1
  60. package/dist/cjs/components/ui/input.cjs.map +1 -1
  61. package/dist/cjs/components/ui/label.cjs.map +1 -1
  62. package/dist/cjs/components/ui/menubar.cjs +9 -9
  63. package/dist/cjs/components/ui/menubar.cjs.map +1 -1
  64. package/dist/cjs/components/ui/navigation-menu.cjs +5 -5
  65. package/dist/cjs/components/ui/navigation-menu.cjs.map +1 -1
  66. package/dist/cjs/components/ui/pagination.cjs.map +1 -1
  67. package/dist/cjs/components/ui/popover.cjs +1 -1
  68. package/dist/cjs/components/ui/popover.cjs.map +1 -1
  69. package/dist/cjs/components/ui/progress.cjs.map +1 -1
  70. package/dist/cjs/components/ui/radio-group.cjs +1 -1
  71. package/dist/cjs/components/ui/radio-group.cjs.map +1 -1
  72. package/dist/cjs/components/ui/resizable.cjs.map +1 -1
  73. package/dist/cjs/components/ui/ripple-button.cjs +108 -0
  74. package/dist/cjs/components/ui/ripple-button.cjs.map +1 -0
  75. package/dist/cjs/components/ui/scratcher.cjs +179 -0
  76. package/dist/cjs/components/ui/scratcher.cjs.map +1 -0
  77. package/dist/cjs/components/ui/scroll-area.cjs +1 -1
  78. package/dist/cjs/components/ui/scroll-area.cjs.map +1 -1
  79. package/dist/cjs/components/ui/select.cjs +6 -5
  80. package/dist/cjs/components/ui/select.cjs.map +1 -1
  81. package/dist/cjs/components/ui/separator.cjs.map +1 -1
  82. package/dist/cjs/components/ui/sheet.cjs +1 -1
  83. package/dist/cjs/components/ui/sheet.cjs.map +1 -1
  84. package/dist/cjs/components/ui/sidebar.cjs +14 -11
  85. package/dist/cjs/components/ui/sidebar.cjs.map +1 -1
  86. package/dist/cjs/components/ui/skeleton.cjs +2 -1
  87. package/dist/cjs/components/ui/skeleton.cjs.map +1 -1
  88. package/dist/cjs/components/ui/slider.cjs +2 -2
  89. package/dist/cjs/components/ui/slider.cjs.map +1 -1
  90. package/dist/cjs/components/ui/sonner.cjs +5 -7
  91. package/dist/cjs/components/ui/sonner.cjs.map +1 -1
  92. package/dist/cjs/components/ui/switch.cjs +2 -2
  93. package/dist/cjs/components/ui/switch.cjs.map +1 -1
  94. package/dist/cjs/components/ui/table.cjs +2 -2
  95. package/dist/cjs/components/ui/table.cjs.map +1 -1
  96. package/dist/cjs/components/ui/tabs.cjs +3 -3
  97. package/dist/cjs/components/ui/tabs.cjs.map +1 -1
  98. package/dist/cjs/components/ui/textarea.cjs +1 -1
  99. package/dist/cjs/components/ui/textarea.cjs.map +1 -1
  100. package/dist/cjs/components/ui/toggle-group.cjs +2 -2
  101. package/dist/cjs/components/ui/toggle-group.cjs.map +1 -1
  102. package/dist/cjs/components/ui/toggle.cjs +2 -2
  103. package/dist/cjs/components/ui/toggle.cjs.map +1 -1
  104. package/dist/cjs/components/ui/tooltip.cjs +1 -1
  105. package/dist/cjs/components/ui/tooltip.cjs.map +1 -1
  106. package/dist/cjs/index.cjs +55 -4
  107. package/dist/cjs/index.css +1013 -258
  108. package/dist/esm/components/ui/accordion.js +1 -1
  109. package/dist/esm/components/ui/accordion.js.map +1 -1
  110. package/dist/esm/components/ui/alert-dialog.js +1 -1
  111. package/dist/esm/components/ui/alert-dialog.js.map +1 -1
  112. package/dist/esm/components/ui/alert.js +1 -1
  113. package/dist/esm/components/ui/alert.js.map +1 -1
  114. package/dist/esm/components/ui/aspect-ratio.js.map +1 -1
  115. package/dist/esm/components/ui/avatar.js.map +1 -1
  116. package/dist/esm/components/ui/background-beams.js +166 -0
  117. package/dist/esm/components/ui/background-beams.js.map +1 -0
  118. package/dist/esm/components/ui/badge.js +1 -1
  119. package/dist/esm/components/ui/badge.js.map +1 -1
  120. package/dist/esm/components/ui/breadcrumb.js.map +1 -1
  121. package/dist/esm/components/ui/bubble-background.js +180 -0
  122. package/dist/esm/components/ui/bubble-background.js.map +1 -0
  123. package/dist/esm/components/ui/button.js +6 -6
  124. package/dist/esm/components/ui/button.js.map +1 -1
  125. package/dist/esm/components/ui/card.js +11 -4
  126. package/dist/esm/components/ui/card.js.map +1 -1
  127. package/dist/esm/components/ui/carousel.js.map +1 -1
  128. package/dist/esm/components/ui/chart.js.map +1 -1
  129. package/dist/esm/components/ui/checkbox.js +1 -1
  130. package/dist/esm/components/ui/checkbox.js.map +1 -1
  131. package/dist/esm/components/ui/collapsible.js +1 -1
  132. package/dist/esm/components/ui/collapsible.js.map +1 -1
  133. package/dist/esm/components/ui/command.js +2 -2
  134. package/dist/esm/components/ui/command.js.map +1 -1
  135. package/dist/esm/components/ui/context-menu.js +7 -7
  136. package/dist/esm/components/ui/context-menu.js.map +1 -1
  137. package/dist/esm/components/ui/counting-number.js +61 -0
  138. package/dist/esm/components/ui/counting-number.js.map +1 -0
  139. package/dist/esm/components/ui/dialog.js +1 -1
  140. package/dist/esm/components/ui/dialog.js.map +1 -1
  141. package/dist/esm/components/ui/dot-background.js +97 -0
  142. package/dist/esm/components/ui/dot-background.js.map +1 -0
  143. package/dist/esm/components/ui/drawer.js +3 -3
  144. package/dist/esm/components/ui/drawer.js.map +1 -1
  145. package/dist/esm/components/ui/dropdown-menu.js +7 -7
  146. package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
  147. package/dist/esm/components/ui/fireworks-background.js +225 -0
  148. package/dist/esm/components/ui/fireworks-background.js.map +1 -0
  149. package/dist/esm/components/ui/flip-button.js +66 -0
  150. package/dist/esm/components/ui/flip-button.js.map +1 -0
  151. package/dist/esm/components/ui/form.js +2 -2
  152. package/dist/esm/components/ui/form.js.map +1 -1
  153. package/dist/esm/components/ui/gradient-background.js +26 -0
  154. package/dist/esm/components/ui/gradient-background.js.map +1 -0
  155. package/dist/esm/components/ui/gradient-text.js +49 -0
  156. package/dist/esm/components/ui/gradient-text.js.map +1 -0
  157. package/dist/esm/components/ui/highlight-text.js +40 -0
  158. package/dist/esm/components/ui/highlight-text.js.map +1 -0
  159. package/dist/esm/components/ui/hole-background.js +327 -0
  160. package/dist/esm/components/ui/hole-background.js.map +1 -0
  161. package/dist/esm/components/ui/hover-card.js +9 -6
  162. package/dist/esm/components/ui/hover-card.js.map +1 -1
  163. package/dist/esm/components/ui/input-otp.js +2 -3
  164. package/dist/esm/components/ui/input-otp.js.map +1 -1
  165. package/dist/esm/components/ui/input.js +1 -1
  166. package/dist/esm/components/ui/input.js.map +1 -1
  167. package/dist/esm/components/ui/label.js.map +1 -1
  168. package/dist/esm/components/ui/menubar.js +9 -9
  169. package/dist/esm/components/ui/menubar.js.map +1 -1
  170. package/dist/esm/components/ui/navigation-menu.js +5 -5
  171. package/dist/esm/components/ui/navigation-menu.js.map +1 -1
  172. package/dist/esm/components/ui/pagination.js.map +1 -1
  173. package/dist/esm/components/ui/popover.js +1 -1
  174. package/dist/esm/components/ui/popover.js.map +1 -1
  175. package/dist/esm/components/ui/progress.js.map +1 -1
  176. package/dist/esm/components/ui/radio-group.js +1 -1
  177. package/dist/esm/components/ui/radio-group.js.map +1 -1
  178. package/dist/esm/components/ui/resizable.js.map +1 -1
  179. package/dist/esm/components/ui/ripple-button.js +74 -0
  180. package/dist/esm/components/ui/ripple-button.js.map +1 -0
  181. package/dist/esm/components/ui/scratcher.js +145 -0
  182. package/dist/esm/components/ui/scratcher.js.map +1 -0
  183. package/dist/esm/components/ui/scroll-area.js +1 -1
  184. package/dist/esm/components/ui/scroll-area.js.map +1 -1
  185. package/dist/esm/components/ui/select.js +6 -5
  186. package/dist/esm/components/ui/select.js.map +1 -1
  187. package/dist/esm/components/ui/separator.js.map +1 -1
  188. package/dist/esm/components/ui/sheet.js +1 -1
  189. package/dist/esm/components/ui/sheet.js.map +1 -1
  190. package/dist/esm/components/ui/sidebar.js +14 -11
  191. package/dist/esm/components/ui/sidebar.js.map +1 -1
  192. package/dist/esm/components/ui/skeleton.js +2 -1
  193. package/dist/esm/components/ui/skeleton.js.map +1 -1
  194. package/dist/esm/components/ui/slider.js +2 -2
  195. package/dist/esm/components/ui/slider.js.map +1 -1
  196. package/dist/esm/components/ui/sonner.js +5 -7
  197. package/dist/esm/components/ui/sonner.js.map +1 -1
  198. package/dist/esm/components/ui/switch.js +2 -2
  199. package/dist/esm/components/ui/switch.js.map +1 -1
  200. package/dist/esm/components/ui/table.js +2 -2
  201. package/dist/esm/components/ui/table.js.map +1 -1
  202. package/dist/esm/components/ui/tabs.js +3 -3
  203. package/dist/esm/components/ui/tabs.js.map +1 -1
  204. package/dist/esm/components/ui/textarea.js +1 -1
  205. package/dist/esm/components/ui/textarea.js.map +1 -1
  206. package/dist/esm/components/ui/toggle-group.js +2 -2
  207. package/dist/esm/components/ui/toggle-group.js.map +1 -1
  208. package/dist/esm/components/ui/toggle.js +2 -2
  209. package/dist/esm/components/ui/toggle.js.map +1 -1
  210. package/dist/esm/components/ui/tooltip.js +1 -1
  211. package/dist/esm/components/ui/tooltip.js.map +1 -1
  212. package/dist/esm/index.css +1013 -258
  213. package/dist/esm/index.js +26 -1
  214. package/dist/index.css +1013 -258
  215. package/dist/index.js +26 -1
  216. package/dist/types/components/ui/background-beams.d.ts +4 -0
  217. package/dist/types/components/ui/bubble-background.d.ts +16 -0
  218. package/dist/types/components/ui/card.d.ts +2 -1
  219. package/dist/types/components/ui/counting-number.d.ts +15 -0
  220. package/dist/types/components/ui/dot-background.d.ts +57 -0
  221. package/dist/types/components/ui/fireworks-background.d.ts +24 -0
  222. package/dist/types/components/ui/flip-button.d.ts +13 -0
  223. package/dist/types/components/ui/form.d.ts +1 -1
  224. package/dist/types/components/ui/gradient-background.d.ts +7 -0
  225. package/dist/types/components/ui/gradient-text.d.ts +10 -0
  226. package/dist/types/components/ui/highlight-text.d.ts +11 -0
  227. package/dist/types/components/ui/hole-background.d.ts +9 -0
  228. package/dist/types/components/ui/ripple-button.d.ts +10 -0
  229. package/dist/types/components/ui/scratcher.d.ts +12 -0
  230. package/dist/types/components/ui/select.d.ts +3 -1
  231. package/dist/types/components/ui/sidebar.d.ts +5 -6
  232. package/dist/types/index.d.ts +13 -1
  233. package/package.json +536 -461
  234. package/readme.md +10 -6
  235. package/src/components/ui/accordion.tsx +3 -2
  236. package/src/components/ui/alert-dialog.tsx +160 -160
  237. package/src/components/ui/alert.tsx +3 -2
  238. package/src/components/ui/aspect-ratio.tsx +12 -12
  239. package/src/components/ui/avatar.tsx +53 -52
  240. package/src/components/ui/background-beams.tsx +142 -0
  241. package/src/components/ui/badge.tsx +48 -47
  242. package/src/components/ui/breadcrumb.tsx +117 -116
  243. package/src/components/ui/bubble-background.tsx +187 -0
  244. package/src/components/ui/button.tsx +61 -60
  245. package/src/components/ui/card.tsx +97 -79
  246. package/src/components/ui/carousel.tsx +241 -240
  247. package/src/components/ui/chart.tsx +353 -352
  248. package/src/components/ui/checkbox.tsx +32 -31
  249. package/src/components/ui/collapsible.tsx +34 -34
  250. package/src/components/ui/command.tsx +177 -176
  251. package/src/components/ui/context-menu.tsx +255 -254
  252. package/src/components/ui/counting-number.tsx +108 -0
  253. package/src/components/ui/dialog.tsx +3 -2
  254. package/src/components/ui/dot-background.tsx +158 -0
  255. package/src/components/ui/drawer.tsx +138 -137
  256. package/src/components/ui/dropdown-menu.tsx +260 -259
  257. package/src/components/ui/fireworks-background.tsx +378 -0
  258. package/src/components/ui/flip-button.tsx +110 -0
  259. package/src/components/ui/form.tsx +174 -173
  260. package/src/components/ui/gradient-background.tsx +43 -0
  261. package/src/components/ui/gradient-text.tsx +65 -0
  262. package/src/components/ui/highlight-text.tsx +71 -0
  263. package/src/components/ui/hole-background.tsx +361 -0
  264. package/src/components/ui/hover-card.tsx +44 -41
  265. package/src/components/ui/input-otp.tsx +77 -77
  266. package/src/components/ui/input.tsx +23 -22
  267. package/src/components/ui/label.tsx +24 -23
  268. package/src/components/ui/menubar.tsx +279 -278
  269. package/src/components/ui/navigation-menu.tsx +171 -170
  270. package/src/components/ui/pagination.tsx +129 -128
  271. package/src/components/ui/popover.tsx +48 -47
  272. package/src/components/ui/progress.tsx +31 -30
  273. package/src/components/ui/radio-group.tsx +45 -44
  274. package/src/components/ui/resizable.tsx +56 -55
  275. package/src/components/ui/ripple-button.tsx +111 -0
  276. package/src/components/ui/scratcher.tsx +171 -0
  277. package/src/components/ui/scroll-area.tsx +58 -57
  278. package/src/components/ui/select.tsx +191 -183
  279. package/src/components/ui/separator.tsx +28 -27
  280. package/src/components/ui/sheet.tsx +145 -144
  281. package/src/components/ui/sidebar.tsx +729 -725
  282. package/src/components/ui/skeleton.tsx +19 -17
  283. package/src/components/ui/slider.tsx +63 -62
  284. package/src/components/ui/sonner.tsx +8 -12
  285. package/src/components/ui/switch.tsx +31 -30
  286. package/src/components/ui/table.tsx +119 -118
  287. package/src/components/ui/tabs.tsx +66 -65
  288. package/src/components/ui/textarea.tsx +20 -19
  289. package/src/components/ui/toggle-group.tsx +73 -72
  290. package/src/components/ui/toggle.tsx +47 -46
  291. package/src/components/ui/tooltip.tsx +61 -60
  292. package/src/index.css +75 -42
  293. package/src/index.ts +385 -330
@@ -0,0 +1,214 @@
1
+ "use client";
2
+ "use strict";
3
+ var __webpack_require__ = {};
4
+ (()=>{
5
+ __webpack_require__.d = (exports1, definition)=>{
6
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ get: definition[key]
9
+ });
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.r = (exports1)=>{
17
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
18
+ value: 'Module'
19
+ });
20
+ Object.defineProperty(exports1, '__esModule', {
21
+ value: true
22
+ });
23
+ };
24
+ })();
25
+ var __webpack_exports__ = {};
26
+ __webpack_require__.r(__webpack_exports__);
27
+ __webpack_require__.d(__webpack_exports__, {
28
+ BubbleBackground: ()=>BubbleBackground
29
+ });
30
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
31
+ const external_react_namespaceObject = require("react");
32
+ const react_namespaceObject = require("motion/react");
33
+ const utils_cjs_namespaceObject = require("../../lib/utils.cjs");
34
+ const BubbleBackground = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, children, interactive = false, transition = {
35
+ stiffness: 100,
36
+ damping: 20
37
+ }, colors = {
38
+ first: "18,113,255",
39
+ second: "221,74,255",
40
+ third: "0,220,255",
41
+ fourth: "200,50,50",
42
+ fifth: "180,180,50",
43
+ sixth: "140,100,255"
44
+ }, ...props }, ref)=>{
45
+ const containerRef = external_react_namespaceObject.useRef(null);
46
+ external_react_namespaceObject.useImperativeHandle(ref, ()=>containerRef.current);
47
+ const mouseX = (0, react_namespaceObject.useMotionValue)(0);
48
+ const mouseY = (0, react_namespaceObject.useMotionValue)(0);
49
+ const springX = (0, react_namespaceObject.useSpring)(mouseX, transition);
50
+ const springY = (0, react_namespaceObject.useSpring)(mouseY, transition);
51
+ external_react_namespaceObject.useEffect(()=>{
52
+ if (!interactive) return;
53
+ const currentContainer = containerRef.current;
54
+ if (!currentContainer) return;
55
+ const handleMouseMove = (e)=>{
56
+ const rect = currentContainer.getBoundingClientRect();
57
+ const centerX = rect.left + rect.width / 2;
58
+ const centerY = rect.top + rect.height / 2;
59
+ mouseX.set(e.clientX - centerX);
60
+ mouseY.set(e.clientY - centerY);
61
+ };
62
+ currentContainer?.addEventListener("mousemove", handleMouseMove);
63
+ return ()=>currentContainer?.removeEventListener("mousemove", handleMouseMove);
64
+ }, [
65
+ interactive,
66
+ mouseX,
67
+ mouseY
68
+ ]);
69
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
70
+ ref: containerRef,
71
+ className: (0, utils_cjs_namespaceObject.cn)("relative size-full overflow-hidden bg-gradient-to-br from-violet-900 to-blue-900", className),
72
+ ...props,
73
+ children: [
74
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("style", {
75
+ children: `
76
+ :root {
77
+ --first-color: ${colors.first};
78
+ --second-color: ${colors.second};
79
+ --third-color: ${colors.third};
80
+ --fourth-color: ${colors.fourth};
81
+ --fifth-color: ${colors.fifth};
82
+ --sixth-color: ${colors.sixth};
83
+ }
84
+ `
85
+ }),
86
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("svg", {
87
+ xmlns: "http://www.w3.org/2000/svg",
88
+ className: "absolute top-0 left-0 w-0 h-0",
89
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("defs", {
90
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("filter", {
91
+ id: "goo",
92
+ children: [
93
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("feGaussianBlur", {
94
+ in: "SourceGraphic",
95
+ stdDeviation: "10",
96
+ result: "blur"
97
+ }),
98
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("feColorMatrix", {
99
+ in: "blur",
100
+ mode: "matrix",
101
+ values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -8",
102
+ result: "goo"
103
+ }),
104
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("feBlend", {
105
+ in: "SourceGraphic",
106
+ in2: "goo"
107
+ })
108
+ ]
109
+ })
110
+ })
111
+ }),
112
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
113
+ className: "absolute inset-0",
114
+ style: {
115
+ filter: "url(#goo) blur(40px)"
116
+ },
117
+ children: [
118
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
119
+ className: "absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--first-color),0.8)_0%,rgba(var(--first-color),0)_50%)]",
120
+ animate: {
121
+ y: [
122
+ -50,
123
+ 50,
124
+ -50
125
+ ]
126
+ },
127
+ transition: {
128
+ duration: 30,
129
+ ease: "easeInOut",
130
+ repeat: 1 / 0
131
+ }
132
+ }),
133
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
134
+ className: "absolute inset-0 flex justify-center items-center origin-[calc(50%-400px)]",
135
+ animate: {
136
+ rotate: 360
137
+ },
138
+ transition: {
139
+ duration: 20,
140
+ ease: "linear",
141
+ repeat: 1 / 0,
142
+ repeatType: "loop",
143
+ reverse: true
144
+ },
145
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
146
+ className: "rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--second-color),0.8)_0%,rgba(var(--second-color),0)_50%)]"
147
+ })
148
+ }),
149
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
150
+ className: "absolute inset-0 flex justify-center items-center origin-[calc(50%+400px)]",
151
+ animate: {
152
+ rotate: 360
153
+ },
154
+ transition: {
155
+ duration: 40,
156
+ ease: "linear",
157
+ repeat: 1 / 0
158
+ },
159
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
160
+ className: "absolute rounded-full size-[80%] bg-[radial-gradient(circle_at_center,rgba(var(--third-color),0.8)_0%,rgba(var(--third-color),0)_50%)] mix-blend-hard-light top-[calc(50%+200px)] left-[calc(50%-500px)]"
161
+ })
162
+ }),
163
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
164
+ className: "absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fourth-color),0.8)_0%,rgba(var(--fourth-color),0)_50%)] opacity-70",
165
+ animate: {
166
+ x: [
167
+ -50,
168
+ 50,
169
+ -50
170
+ ]
171
+ },
172
+ transition: {
173
+ duration: 40,
174
+ ease: "easeInOut",
175
+ repeat: 1 / 0
176
+ }
177
+ }),
178
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
179
+ className: "absolute inset-0 flex justify-center items-center origin-[calc(50%_-_800px)_calc(50%_+_200px)]",
180
+ animate: {
181
+ rotate: 360
182
+ },
183
+ transition: {
184
+ duration: 20,
185
+ ease: "linear",
186
+ repeat: 1 / 0
187
+ },
188
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
189
+ className: "absolute rounded-full size-[160%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fifth-color),0.8)_0%,rgba(var(--fifth-color),0)_50%)] top-[calc(50%-80%)] left-[calc(50%-80%)]"
190
+ })
191
+ }),
192
+ interactive && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.div, {
193
+ className: "absolute rounded-full size-full mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--sixth-color),0.8)_0%,rgba(var(--sixth-color),0)_50%)] opacity-70",
194
+ style: {
195
+ x: springX,
196
+ y: springY
197
+ }
198
+ })
199
+ ]
200
+ }),
201
+ children
202
+ ]
203
+ });
204
+ });
205
+ BubbleBackground.displayName = "BubbleBackground";
206
+ exports.BubbleBackground = __webpack_exports__.BubbleBackground;
207
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
208
+ "BubbleBackground"
209
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
210
+ Object.defineProperty(exports, '__esModule', {
211
+ value: true
212
+ });
213
+
214
+ //# sourceMappingURL=bubble-background.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components\\ui\\bubble-background.cjs","sources":["webpack://@arolariu/components/./src/components/ui/bubble-background.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport {\n motion,\n type SpringOptions,\n useMotionValue,\n useSpring,\n} from \"motion/react\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface BubbleBackgroundProps extends React.HTMLAttributes<HTMLDivElement> {\n interactive?: boolean;\n transition?: SpringOptions;\n colors?: {\n first: string;\n second: string;\n third: string;\n fourth: string;\n fifth: string;\n sixth: string;\n };\n}\n\nconst BubbleBackground = React.forwardRef<\n HTMLDivElement,\n BubbleBackgroundProps\n>(\n (\n {\n className,\n children,\n interactive = false,\n transition = { stiffness: 100, damping: 20 },\n colors = {\n first: \"18,113,255\",\n second: \"221,74,255\",\n third: \"0,220,255\",\n fourth: \"200,50,50\",\n fifth: \"180,180,50\",\n sixth: \"140,100,255\",\n },\n ...props\n },\n ref\n ) => {\n const containerRef = React.useRef<HTMLDivElement>(null);\n React.useImperativeHandle(\n ref,\n () => containerRef.current as HTMLDivElement\n );\n\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const springX = useSpring(mouseX, transition);\n const springY = useSpring(mouseY, transition);\n\n React.useEffect(() => {\n if (!interactive) return;\n\n const currentContainer = containerRef.current;\n if (!currentContainer) return;\n\n const handleMouseMove = (e: MouseEvent) => {\n const rect = currentContainer.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n mouseX.set(e.clientX - centerX);\n mouseY.set(e.clientY - centerY);\n };\n\n currentContainer?.addEventListener(\"mousemove\", handleMouseMove);\n return () =>\n currentContainer?.removeEventListener(\"mousemove\", handleMouseMove);\n }, [interactive, mouseX, mouseY]);\n\n return (\n <div\n ref={containerRef}\n className={cn(\n \"relative size-full overflow-hidden bg-gradient-to-br from-violet-900 to-blue-900\",\n className\n )}\n {...props}\n >\n <style>\n {`\n :root {\n --first-color: ${colors.first};\n --second-color: ${colors.second};\n --third-color: ${colors.third};\n --fourth-color: ${colors.fourth};\n --fifth-color: ${colors.fifth};\n --sixth-color: ${colors.sixth};\n }\n `}\n </style>\n\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"absolute top-0 left-0 w-0 h-0\"\n >\n <defs>\n <filter id=\"goo\">\n <feGaussianBlur\n in=\"SourceGraphic\"\n stdDeviation=\"10\"\n result=\"blur\"\n />\n <feColorMatrix\n in=\"blur\"\n mode=\"matrix\"\n values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -8\"\n result=\"goo\"\n />\n <feBlend in=\"SourceGraphic\" in2=\"goo\" />\n </filter>\n </defs>\n </svg>\n\n <div\n className=\"absolute inset-0\"\n style={{ filter: \"url(#goo) blur(40px)\" }}\n >\n <motion.div\n className=\"absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--first-color),0.8)_0%,rgba(var(--first-color),0)_50%)]\"\n animate={{ y: [-50, 50, -50] }}\n transition={{ duration: 30, ease: \"easeInOut\", repeat: Infinity }}\n />\n\n <motion.div\n className=\"absolute inset-0 flex justify-center items-center origin-[calc(50%-400px)]\"\n animate={{ rotate: 360 }}\n transition={{\n duration: 20,\n ease: \"linear\",\n repeat: Infinity,\n repeatType: \"loop\",\n reverse: true,\n }}\n >\n <div className=\"rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--second-color),0.8)_0%,rgba(var(--second-color),0)_50%)]\" />\n </motion.div>\n\n <motion.div\n className=\"absolute inset-0 flex justify-center items-center origin-[calc(50%+400px)]\"\n animate={{ rotate: 360 }}\n transition={{ duration: 40, ease: \"linear\", repeat: Infinity }}\n >\n <div className=\"absolute rounded-full size-[80%] bg-[radial-gradient(circle_at_center,rgba(var(--third-color),0.8)_0%,rgba(var(--third-color),0)_50%)] mix-blend-hard-light top-[calc(50%+200px)] left-[calc(50%-500px)]\" />\n </motion.div>\n\n <motion.div\n className=\"absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fourth-color),0.8)_0%,rgba(var(--fourth-color),0)_50%)] opacity-70\"\n animate={{ x: [-50, 50, -50] }}\n transition={{ duration: 40, ease: \"easeInOut\", repeat: Infinity }}\n />\n\n <motion.div\n className=\"absolute inset-0 flex justify-center items-center origin-[calc(50%_-_800px)_calc(50%_+_200px)]\"\n animate={{ rotate: 360 }}\n transition={{ duration: 20, ease: \"linear\", repeat: Infinity }}\n >\n <div className=\"absolute rounded-full size-[160%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fifth-color),0.8)_0%,rgba(var(--fifth-color),0)_50%)] top-[calc(50%-80%)] left-[calc(50%-80%)]\" />\n </motion.div>\n\n {interactive && (\n <motion.div\n className=\"absolute rounded-full size-full mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--sixth-color),0.8)_0%,rgba(var(--sixth-color),0)_50%)] opacity-70\"\n style={{\n x: springX,\n y: springY,\n }}\n />\n )}\n </div>\n\n {children}\n </div>\n );\n }\n);\n\nBubbleBackground.displayName = \"BubbleBackground\";\n\nexport { BubbleBackground, type BubbleBackgroundProps };\n"],"names":["BubbleBackground","React","className","children","interactive","transition","colors","props","ref","containerRef","mouseX","useMotionValue","mouseY","springX","useSpring","springY","currentContainer","handleMouseMove","e","rect","centerX","centerY","cn","motion","Infinity"],"mappings":"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"}
@@ -33,14 +33,14 @@ require("react");
33
33
  const react_slot_namespaceObject = require("@radix-ui/react-slot");
34
34
  const external_class_variance_authority_namespaceObject = require("class-variance-authority");
35
35
  const utils_cjs_namespaceObject = require("../../lib/utils.cjs");
36
- const buttonVariants = (0, external_class_variance_authority_namespaceObject.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900", {
36
+ const buttonVariants = (0, external_class_variance_authority_namespaceObject.cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900", {
37
37
  variants: {
38
38
  variant: {
39
- default: "bg-neutral-900 text-neutral-50 shadow-2xs hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
40
- destructive: "bg-red-500 text-white shadow-2xs hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-900 dark:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:dark:focus-visible:ring-red-900/40",
41
- outline: "border border-neutral-200 bg-white shadow-2xs hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
42
- secondary: "bg-neutral-100 text-neutral-900 shadow-2xs hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
43
- ghost: "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
39
+ default: "bg-neutral-900 text-neutral-50 shadow-xs hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
40
+ destructive: "bg-red-500 text-white shadow-xs hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-500/60 dark:bg-red-900 dark:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:dark:focus-visible:ring-red-900/40 dark:dark:bg-red-900/60",
41
+ outline: "border bg-white shadow-xs hover:bg-neutral-100 hover:text-neutral-900 dark:bg-neutral-200/30 dark:border-neutral-200 dark:hover:bg-neutral-200/50 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:dark:bg-neutral-800/30 dark:dark:border-neutral-800 dark:dark:hover:bg-neutral-800/50",
42
+ secondary: "bg-neutral-100 text-neutral-900 shadow-xs hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
43
+ ghost: "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-100/50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:dark:hover:bg-neutral-800/50",
44
44
  link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50"
45
45
  },
46
46
  size: {
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\button.cjs","sources":["webpack://@arolariu/components/./src/components/ui/button.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\nimport { cn } from \"./../../lib/utils\";\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-neutral-900 text-neutral-50 shadow-2xs hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90\",\r\n destructive:\r\n \"bg-red-500 text-white shadow-2xs hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-900 dark:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:dark:focus-visible:ring-red-900/40\",\r\n outline:\r\n \"border border-neutral-200 bg-white shadow-2xs hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50\",\r\n secondary:\r\n \"bg-neutral-100 text-neutral-900 shadow-2xs hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80\",\r\n ghost:\r\n \"hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50\",\r\n link: \"text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n);\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n ...props\r\n}: React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariants> & {\r\n asChild?: boolean;\r\n }) {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n data-slot=\"button\"\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport { Button, buttonVariants };\r\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAMA,iBAAiBC,IAAAA,kDAAAA,GAAAA,EACrB,yoBACA;IACE,UAAU;QACR,SAAS;YACP,SACE;YACF,aACE;YACF,SACE;YACF,WACE;YACF,OACE;YACF,MAAM;QACR;QACA,MAAM;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;QACR;IACF;IACA,iBAAiB;QACf,SAAS;QACT,MAAM;IACR;AACF;AAGF,SAASC,OAAO,EACdC,SAAS,EACTC,OAAO,EACPC,IAAI,EACJC,UAAU,KAAK,EACf,GAAGC,OAIF;IACD,MAAMC,OAAOF,UAAUG,2BAAAA,IAAIA,GAAG;IAE9B,OACE,WADF,GACE,qCAACD,MAAAA;QACC,aAAU;QACV,WAAWE,IAAAA,0BAAAA,EAAAA,EAAGV,eAAe;YAAEI;YAASC;YAAMF;QAAU;QACvD,GAAGI,KAAK;;AAGf"}
1
+ {"version":3,"file":"components\\ui\\button.cjs","sources":["webpack://@arolariu/components/./src/components/ui/button.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 focus-visible:ring-[3px] aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\n {\n variants: {\n variant: {\n default:\n \"bg-neutral-900 text-neutral-50 shadow-xs hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90\",\n destructive:\n \"bg-red-500 text-white shadow-xs hover:bg-red-500/90 focus-visible:ring-red-500/20 dark:focus-visible:ring-red-500/40 dark:bg-red-500/60 dark:bg-red-900 dark:hover:bg-red-900/90 dark:focus-visible:ring-red-900/20 dark:dark:focus-visible:ring-red-900/40 dark:dark:bg-red-900/60\",\n outline:\n \"border bg-white shadow-xs hover:bg-neutral-100 hover:text-neutral-900 dark:bg-neutral-200/30 dark:border-neutral-200 dark:hover:bg-neutral-200/50 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:dark:bg-neutral-800/30 dark:dark:border-neutral-800 dark:dark:hover:bg-neutral-800/50\",\n secondary:\n \"bg-neutral-100 text-neutral-900 shadow-xs hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80\",\n ghost:\n \"hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-100/50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:dark:hover:bg-neutral-800/50\",\n link: \"text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAMA,iBAAiBC,IAAAA,kDAAAA,GAAAA,EACrB,wnBACA;IACE,UAAU;QACR,SAAS;YACP,SACE;YACF,aACE;YACF,SACE;YACF,WACE;YACF,OACE;YACF,MAAM;QACR;QACA,MAAM;YACJ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;QACR;IACF;IACA,iBAAiB;QACf,SAAS;QACT,MAAM;IACR;AACF;AAGF,SAASC,OAAO,EACdC,SAAS,EACTC,OAAO,EACPC,IAAI,EACJC,UAAU,KAAK,EACf,GAAGC,OAIF;IACD,MAAMC,OAAOF,UAAUG,2BAAAA,IAAIA,GAAG;IAE9B,OACE,WADF,GACE,qCAACD,MAAAA;QACC,aAAU;QACV,WAAWE,IAAAA,0BAAAA,EAAAA,EAAGV,eAAe;YAAEI;YAASC;YAAMF;QAAU;QACvD,GAAGI,KAAK;;AAGf"}
@@ -28,6 +28,7 @@ __webpack_require__.d(__webpack_exports__, {
28
28
  CardDescription: ()=>CardDescription,
29
29
  CardContent: ()=>CardContent,
30
30
  CardHeader: ()=>CardHeader,
31
+ CardAction: ()=>CardAction,
31
32
  Card: ()=>Card,
32
33
  CardTitle: ()=>CardTitle,
33
34
  CardFooter: ()=>CardFooter
@@ -38,14 +39,14 @@ const utils_cjs_namespaceObject = require("../../lib/utils.cjs");
38
39
  function Card({ className, ...props }) {
39
40
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
40
41
  "data-slot": "card",
41
- className: (0, utils_cjs_namespaceObject.cn)("bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-xs dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
42
+ className: (0, utils_cjs_namespaceObject.cn)("bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-sm dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
42
43
  ...props
43
44
  });
44
45
  }
45
46
  function CardHeader({ className, ...props }) {
46
47
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
47
48
  "data-slot": "card-header",
48
- className: (0, utils_cjs_namespaceObject.cn)("flex flex-col gap-1.5 px-6", className),
49
+ className: (0, utils_cjs_namespaceObject.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className),
49
50
  ...props
50
51
  });
51
52
  }
@@ -63,6 +64,13 @@ function CardDescription({ className, ...props }) {
63
64
  ...props
64
65
  });
65
66
  }
67
+ function CardAction({ className, ...props }) {
68
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
69
+ "data-slot": "card-action",
70
+ className: (0, utils_cjs_namespaceObject.cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className),
71
+ ...props
72
+ });
73
+ }
66
74
  function CardContent({ className, ...props }) {
67
75
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
68
76
  "data-slot": "card-content",
@@ -73,11 +81,12 @@ function CardContent({ className, ...props }) {
73
81
  function CardFooter({ className, ...props }) {
74
82
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
75
83
  "data-slot": "card-footer",
76
- className: (0, utils_cjs_namespaceObject.cn)("flex items-center px-6", className),
84
+ className: (0, utils_cjs_namespaceObject.cn)("flex items-center px-6 [.border-t]:pt-6", className),
77
85
  ...props
78
86
  });
79
87
  }
80
88
  exports.Card = __webpack_exports__.Card;
89
+ exports.CardAction = __webpack_exports__.CardAction;
81
90
  exports.CardContent = __webpack_exports__.CardContent;
82
91
  exports.CardDescription = __webpack_exports__.CardDescription;
83
92
  exports.CardFooter = __webpack_exports__.CardFooter;
@@ -85,6 +94,7 @@ exports.CardHeader = __webpack_exports__.CardHeader;
85
94
  exports.CardTitle = __webpack_exports__.CardTitle;
86
95
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
87
96
  "Card",
97
+ "CardAction",
88
98
  "CardContent",
89
99
  "CardDescription",
90
100
  "CardFooter",
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\card.cjs","sources":["webpack://@arolariu/components/./src/components/ui/card.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport { cn } from \"./../../lib/utils\";\r\n\r\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"card\"\r\n className={cn(\r\n \"bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-xs dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"card-header\"\r\n className={cn(\"flex flex-col gap-1.5 px-6\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"card-title\"\r\n className={cn(\"leading-none font-semibold\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"card-description\"\r\n className={cn(\r\n \"text-neutral-500 text-sm dark:text-neutral-400\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"card-content\"\r\n className={cn(\"px-6\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"card-footer\"\r\n className={cn(\"flex items-center px-6\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Card,\r\n CardHeader,\r\n CardFooter,\r\n CardTitle,\r\n CardDescription,\r\n CardContent,\r\n};\r\n"],"names":["Card","className","props","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAASA,KAAK,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IAChE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,sKACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASE,WAAW,EAAEH,SAAS,EAAE,GAAGC,OAAoC;IACtE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,8BAA8BF;QAC3C,GAAGC,KAAK;;AAGf;AAEA,SAASG,UAAU,EAAEJ,SAAS,EAAE,GAAGC,OAAoC;IACrE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,8BAA8BF;QAC3C,GAAGC,KAAK;;AAGf;AAEA,SAASI,gBAAgB,EAAEL,SAAS,EAAE,GAAGC,OAAoC;IAC3E,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,kDACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASK,YAAY,EAAEN,SAAS,EAAE,GAAGC,OAAoC;IACvE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,QAAQF;QACrB,GAAGC,KAAK;;AAGf;AAEA,SAASM,WAAW,EAAEP,SAAS,EAAE,GAAGC,OAAoC;IACtE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,0BAA0BF;QACvC,GAAGC,KAAK;;AAGf"}
1
+ {"version":3,"file":"components\\ui\\card.cjs","sources":["webpack://@arolariu/components/./src/components/ui/card.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-white text-neutral-950 flex flex-col gap-6 rounded-xl border border-neutral-200 py-6 shadow-sm dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\n \"text-neutral-500 text-sm dark:text-neutral-400\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n"],"names":["Card","className","props","cn","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAASA,KAAK,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IAChE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,sKACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASE,WAAW,EAAEH,SAAS,EAAE,GAAGC,OAAoC;IACtE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,8JACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASG,UAAU,EAAEJ,SAAS,EAAE,GAAGC,OAAoC;IACrE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,8BAA8BF;QAC3C,GAAGC,KAAK;;AAGf;AAEA,SAASI,gBAAgB,EAAEL,SAAS,EAAE,GAAGC,OAAoC;IAC3E,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,kDACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASK,WAAW,EAAEN,SAAS,EAAE,GAAGC,OAAoC;IACtE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,kEACAF;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASM,YAAY,EAAEP,SAAS,EAAE,GAAGC,OAAoC;IACvE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,QAAQF;QACrB,GAAGC,KAAK;;AAGf;AAEA,SAASO,WAAW,EAAER,SAAS,EAAE,GAAGC,OAAoC;IACtE,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,2CAA2CF;QACxD,GAAGC,KAAK;;AAGf"}
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\carousel.cjs","sources":["webpack://@arolariu/components/./src/components/ui/carousel.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport useEmblaCarousel, {\r\n type UseEmblaCarouselType,\r\n} from \"embla-carousel-react\";\r\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\r\nimport { cn } from \"./../../lib/utils\";\r\nimport { Button } from \"./button\";\r\n\r\ntype CarouselApi = UseEmblaCarouselType[1];\r\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\r\ntype CarouselOptions = UseCarouselParameters[0];\r\ntype CarouselPlugin = UseCarouselParameters[1];\r\n\r\ntype CarouselProps = {\r\n opts?: CarouselOptions;\r\n plugins?: CarouselPlugin;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n setApi?: (api: CarouselApi) => void;\r\n};\r\n\r\ntype CarouselContextProps = {\r\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\r\n api: ReturnType<typeof useEmblaCarousel>[1];\r\n scrollPrev: () => void;\r\n scrollNext: () => void;\r\n canScrollPrev: boolean;\r\n canScrollNext: boolean;\r\n} & CarouselProps;\r\n\r\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\r\n\r\nfunction useCarousel() {\r\n const context = React.useContext(CarouselContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useCarousel must be used within a <Carousel />\");\r\n }\r\n\r\n return context;\r\n}\r\n\r\nfunction Carousel({\r\n orientation = \"horizontal\",\r\n opts,\r\n setApi,\r\n plugins,\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<\"div\"> & CarouselProps) {\r\n const [carouselRef, api] = useEmblaCarousel(\r\n {\r\n ...opts,\r\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\r\n },\r\n plugins\r\n );\r\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\r\n const [canScrollNext, setCanScrollNext] = React.useState(false);\r\n\r\n const onSelect = React.useCallback((api: CarouselApi) => {\r\n if (!api) return;\r\n setCanScrollPrev(api.canScrollPrev());\r\n setCanScrollNext(api.canScrollNext());\r\n }, []);\r\n\r\n const scrollPrev = React.useCallback(() => {\r\n api?.scrollPrev();\r\n }, [api]);\r\n\r\n const scrollNext = React.useCallback(() => {\r\n api?.scrollNext();\r\n }, [api]);\r\n\r\n const handleKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n scrollPrev();\r\n } else if (event.key === \"ArrowRight\") {\r\n event.preventDefault();\r\n scrollNext();\r\n }\r\n },\r\n [scrollPrev, scrollNext]\r\n );\r\n\r\n React.useEffect(() => {\r\n if (!api || !setApi) return;\r\n setApi(api);\r\n }, [api, setApi]);\r\n\r\n React.useEffect(() => {\r\n if (!api) return;\r\n onSelect(api);\r\n api.on(\"reInit\", onSelect);\r\n api.on(\"select\", onSelect);\r\n\r\n return () => {\r\n api?.off(\"select\", onSelect);\r\n };\r\n }, [api, onSelect]);\r\n\r\n return (\r\n <CarouselContext.Provider\r\n value={{\r\n carouselRef,\r\n api: api,\r\n opts,\r\n orientation:\r\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\r\n scrollPrev,\r\n scrollNext,\r\n canScrollPrev,\r\n canScrollNext,\r\n }}\r\n >\r\n <div\r\n onKeyDownCapture={handleKeyDown}\r\n className={cn(\"relative\", className)}\r\n role=\"region\"\r\n aria-roledescription=\"carousel\"\r\n data-slot=\"carousel\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </CarouselContext.Provider>\r\n );\r\n}\r\n\r\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { carouselRef, orientation } = useCarousel();\r\n\r\n return (\r\n <div\r\n ref={carouselRef}\r\n className=\"overflow-hidden\"\r\n data-slot=\"carousel-content\"\r\n >\r\n <div\r\n className={cn(\r\n \"flex\",\r\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\r\n const { orientation } = useCarousel();\r\n\r\n return (\r\n <div\r\n role=\"group\"\r\n aria-roledescription=\"slide\"\r\n data-slot=\"carousel-item\"\r\n className={cn(\r\n \"min-w-0 shrink-0 grow-0 basis-full\",\r\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction CarouselPrevious({\r\n className,\r\n variant = \"outline\",\r\n size = \"icon\",\r\n ...props\r\n}: React.ComponentProps<typeof Button>) {\r\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\r\n\r\n return (\r\n <Button\r\n data-slot=\"carousel-previous\"\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n \"absolute size-8 rounded-full\",\r\n orientation === \"horizontal\"\r\n ? \"top-1/2 -left-12 -translate-y-1/2\"\r\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollPrev}\r\n onClick={scrollPrev}\r\n {...props}\r\n >\r\n <ArrowLeft />\r\n <span className=\"sr-only\">Previous slide</span>\r\n </Button>\r\n );\r\n}\r\n\r\nfunction CarouselNext({\r\n className,\r\n variant = \"outline\",\r\n size = \"icon\",\r\n ...props\r\n}: React.ComponentProps<typeof Button>) {\r\n const { orientation, scrollNext, canScrollNext } = useCarousel();\r\n\r\n return (\r\n <Button\r\n data-slot=\"carousel-next\"\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n \"absolute size-8 rounded-full\",\r\n orientation === \"horizontal\"\r\n ? \"top-1/2 -right-12 -translate-y-1/2\"\r\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\r\n className\r\n )}\r\n disabled={!canScrollNext}\r\n onClick={scrollNext}\r\n {...props}\r\n >\r\n <ArrowRight />\r\n <span className=\"sr-only\">Next slide</span>\r\n </Button>\r\n );\r\n}\r\n\r\nexport {\r\n type CarouselApi,\r\n Carousel,\r\n CarouselContent,\r\n CarouselItem,\r\n CarouselPrevious,\r\n CarouselNext,\r\n};\r\n"],"names":["CarouselContext","React","useCarousel","context","Error","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"components\\ui\\carousel.cjs","sources":["webpack://@arolariu/components/./src/components/ui/carousel.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n"],"names":["CarouselContext","React","useCarousel","context","Error","Carousel","orientation","opts","setApi","plugins","className","children","props","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\chart.cjs","sources":["webpack://@arolariu/components/./src/components/ui/chart.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport * as RechartsPrimitive from \"recharts\";\r\nimport { cn } from \"./../../lib/utils\";\r\n\r\n// Format: { THEME_NAME: CSS_SELECTOR }\r\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\r\n\r\nexport type ChartConfig = {\r\n [k in string]: {\r\n label?: React.ReactNode;\r\n icon?: React.ComponentType;\r\n } & (\r\n | { color?: string; theme?: never }\r\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\r\n );\r\n};\r\n\r\ntype ChartContextProps = {\r\n config: ChartConfig;\r\n};\r\n\r\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\r\n\r\nfunction useChart() {\r\n const context = React.useContext(ChartContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useChart must be used within a <ChartContainer />\");\r\n }\r\n\r\n return context;\r\n}\r\n\r\nfunction ChartContainer({\r\n id,\r\n className,\r\n children,\r\n config,\r\n ...props\r\n}: React.ComponentProps<\"div\"> & {\r\n config: ChartConfig;\r\n children: React.ComponentProps<\r\n typeof RechartsPrimitive.ResponsiveContainer\r\n >[\"children\"];\r\n}) {\r\n const uniqueId = React.useId();\r\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\r\n\r\n return (\r\n <ChartContext.Provider value={{ config }}>\r\n <div\r\n data-slot=\"chart\"\r\n data-chart={chartId}\r\n className={cn(\r\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ChartStyle id={chartId} config={config} />\r\n <RechartsPrimitive.ResponsiveContainer>\r\n {children}\r\n </RechartsPrimitive.ResponsiveContainer>\r\n </div>\r\n </ChartContext.Provider>\r\n );\r\n}\r\n\r\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\r\n const colorConfig = Object.entries(config).filter(\r\n ([, config]) => config.theme || config.color\r\n );\r\n\r\n if (!colorConfig.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <style\r\n dangerouslySetInnerHTML={{\r\n __html: Object.entries(THEMES)\r\n .map(\r\n ([theme, prefix]) => `\r\n${prefix} [data-chart=${id}] {\r\n${colorConfig\r\n .map(([key, itemConfig]) => {\r\n const color =\r\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\r\n itemConfig.color;\r\n return color ? ` --color-${key}: ${color};` : null;\r\n })\r\n .join(\"\\n\")}\r\n}\r\n`\r\n )\r\n .join(\"\\n\"),\r\n }}\r\n />\r\n );\r\n};\r\n\r\nconst ChartTooltip = RechartsPrimitive.Tooltip;\r\n\r\nfunction ChartTooltipContent({\r\n active,\r\n payload,\r\n className,\r\n indicator = \"dot\",\r\n hideLabel = false,\r\n hideIndicator = false,\r\n label,\r\n labelFormatter,\r\n labelClassName,\r\n formatter,\r\n color,\r\n nameKey,\r\n labelKey,\r\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\r\n React.ComponentProps<\"div\"> & {\r\n hideLabel?: boolean;\r\n hideIndicator?: boolean;\r\n indicator?: \"line\" | \"dot\" | \"dashed\";\r\n nameKey?: string;\r\n labelKey?: string;\r\n }) {\r\n const { config } = useChart();\r\n\r\n const tooltipLabel = React.useMemo(() => {\r\n if (hideLabel || !payload?.length) {\r\n return null;\r\n }\r\n\r\n const [item] = payload;\r\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\r\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n const value =\r\n !labelKey && typeof label === \"string\"\r\n ? config[label as keyof typeof config]?.label || label\r\n : itemConfig?.label;\r\n\r\n if (labelFormatter) {\r\n return (\r\n <div className={cn(\"font-medium\", labelClassName)}>\r\n {labelFormatter(value, payload)}\r\n </div>\r\n );\r\n }\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\r\n }, [\r\n label,\r\n labelFormatter,\r\n payload,\r\n hideLabel,\r\n labelClassName,\r\n config,\r\n labelKey,\r\n ]);\r\n\r\n if (!active || !payload?.length) {\r\n return null;\r\n }\r\n\r\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"border-neutral-200/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-neutral-200 px-2.5 py-1.5 text-xs shadow-xl dark:border-neutral-800/50 dark:bg-neutral-950 dark:border-neutral-800\",\r\n className\r\n )}\r\n >\r\n {!nestLabel ? tooltipLabel : null}\r\n <div className=\"grid gap-1.5\">\r\n {payload.map((item, index) => {\r\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\r\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n const indicatorColor = color || item.payload.fill || item.color;\r\n\r\n return (\r\n <div\r\n key={item.dataKey}\r\n className={cn(\r\n \"[&>svg]:text-neutral-500 flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 dark:[&>svg]:text-neutral-400\",\r\n indicator === \"dot\" && \"items-center\"\r\n )}\r\n >\r\n {formatter && item?.value !== undefined && item.name ? (\r\n formatter(item.value, item.name, item, index, item.payload)\r\n ) : (\r\n <>\r\n {itemConfig?.icon ? (\r\n <itemConfig.icon />\r\n ) : (\r\n !hideIndicator && (\r\n <div\r\n className={cn(\r\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\r\n {\r\n \"h-2.5 w-2.5\": indicator === \"dot\",\r\n \"w-1\": indicator === \"line\",\r\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\r\n indicator === \"dashed\",\r\n \"my-0.5\": nestLabel && indicator === \"dashed\",\r\n }\r\n )}\r\n style={\r\n {\r\n \"--color-bg\": indicatorColor,\r\n \"--color-border\": indicatorColor,\r\n } as React.CSSProperties\r\n }\r\n />\r\n )\r\n )}\r\n <div\r\n className={cn(\r\n \"flex flex-1 justify-between leading-none\",\r\n nestLabel ? \"items-end\" : \"items-center\"\r\n )}\r\n >\r\n <div className=\"grid gap-1.5\">\r\n {nestLabel ? tooltipLabel : null}\r\n <span className=\"text-neutral-500 dark:text-neutral-400\">\r\n {itemConfig?.label || item.name}\r\n </span>\r\n </div>\r\n {item.value && (\r\n <span className=\"text-neutral-950 font-mono font-medium tabular-nums dark:text-neutral-50\">\r\n {item.value.toLocaleString()}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst ChartLegend = RechartsPrimitive.Legend;\r\n\r\nfunction ChartLegendContent({\r\n className,\r\n hideIcon = false,\r\n payload,\r\n verticalAlign = \"bottom\",\r\n nameKey,\r\n}: React.ComponentProps<\"div\"> &\r\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\r\n hideIcon?: boolean;\r\n nameKey?: string;\r\n }) {\r\n const { config } = useChart();\r\n\r\n if (!payload?.length) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n className={cn(\r\n \"flex items-center justify-center gap-4\",\r\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\r\n className\r\n )}\r\n >\r\n {payload.map((item) => {\r\n const key = `${nameKey || item.dataKey || \"value\"}`;\r\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\r\n\r\n return (\r\n <div\r\n key={item.value}\r\n className={cn(\r\n \"[&>svg]:text-neutral-500 flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 dark:[&>svg]:text-neutral-400\"\r\n )}\r\n >\r\n {itemConfig?.icon && !hideIcon ? (\r\n <itemConfig.icon />\r\n ) : (\r\n <div\r\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\r\n style={{\r\n backgroundColor: item.color,\r\n }}\r\n />\r\n )}\r\n {itemConfig?.label}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\n// Helper to extract item config from a payload.\r\nfunction getPayloadConfigFromPayload(\r\n config: ChartConfig,\r\n payload: unknown,\r\n key: string\r\n) {\r\n if (typeof payload !== \"object\" || payload === null) {\r\n return undefined;\r\n }\r\n\r\n const payloadPayload =\r\n \"payload\" in payload &&\r\n typeof payload.payload === \"object\" &&\r\n payload.payload !== null\r\n ? payload.payload\r\n : undefined;\r\n\r\n let configLabelKey: string = key;\r\n\r\n if (\r\n key in payload &&\r\n typeof payload[key as keyof typeof payload] === \"string\"\r\n ) {\r\n configLabelKey = payload[key as keyof typeof payload] as string;\r\n } else if (\r\n payloadPayload &&\r\n key in payloadPayload &&\r\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\r\n ) {\r\n configLabelKey = payloadPayload[\r\n key as keyof typeof payloadPayload\r\n ] as string;\r\n }\r\n\r\n return configLabelKey in config\r\n ? config[configLabelKey]\r\n : config[key as keyof typeof config];\r\n}\r\n\r\nexport {\r\n ChartContainer,\r\n ChartTooltip,\r\n ChartTooltipContent,\r\n ChartLegend,\r\n ChartLegendContent,\r\n ChartStyle,\r\n};\r\n"],"names":["THEMES","ChartContext","React","useChart","context","Error","ChartContainer","id","className","children","config","props","uniqueId","chartId","cn","ChartStyle","RechartsPrimitive","colorConfig","Object","theme","prefix","key","itemConfig","color","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","undefined","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
1
+ {"version":3,"file":"components\\ui\\chart.cjs","sources":["webpack://@arolariu/components/./src/components/ui/chart.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"@/lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-neutral-200/50 bg-white grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-neutral-200 px-2.5 py-1.5 text-xs shadow-xl dark:border-neutral-800/50 dark:bg-neutral-950 dark:border-neutral-800\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-neutral-500 flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 dark:[&>svg]:text-neutral-400\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-neutral-500 dark:text-neutral-400\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-neutral-950 font-mono font-medium tabular-nums dark:text-neutral-50\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-neutral-500 flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 dark:[&>svg]:text-neutral-400\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"names":["THEMES","ChartContext","React","useChart","context","Error","ChartContainer","id","className","children","config","props","uniqueId","chartId","cn","ChartStyle","RechartsPrimitive","colorConfig","Object","theme","prefix","key","itemConfig","color","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","undefined","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
@@ -35,7 +35,7 @@ const utils_cjs_namespaceObject = require("../../lib/utils.cjs");
35
35
  function Checkbox({ className, ...props }) {
36
36
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_checkbox_namespaceObject.Root, {
37
37
  "data-slot": "checkbox",
38
- className: (0, utils_cjs_namespaceObject.cn)("peer border-neutral-200 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-2xs transition-shadow outline-hidden focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900", className),
38
+ className: (0, utils_cjs_namespaceObject.cn)("peer border-neutral-200 dark:bg-neutral-200/30 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 dark:data-[state=checked]:bg-neutral-900 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:dark:bg-neutral-800/30 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900", className),
39
39
  ...props,
40
40
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_checkbox_namespaceObject.Indicator, {
41
41
  "data-slot": "checkbox-indicator",
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\checkbox.cjs","sources":["webpack://@arolariu/components/./src/components/ui/checkbox.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\r\nimport { CheckIcon } from \"lucide-react\";\r\nimport { cn } from \"./../../lib/utils\";\r\n\r\nfunction Checkbox({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\r\n return (\r\n <CheckboxPrimitive.Root\r\n data-slot=\"checkbox\"\r\n className={cn(\r\n \"peer border-neutral-200 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-2xs transition-shadow outline-hidden focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator\r\n data-slot=\"checkbox-indicator\"\r\n className=\"flex items-center justify-center text-current transition-none\"\r\n >\r\n <CheckIcon className=\"size-3.5\" />\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n );\r\n}\r\n\r\nexport { Checkbox };\r\n"],"names":["Checkbox","className","props","CheckboxPrimitive","cn","CheckIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,SAASA,SAAS,EAChBC,SAAS,EACT,GAAGC,OACiD;IACpD,OACE,WADF,GACE,qCAACC,+BAAAA,IAAsB;QACrB,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,kxBACAH;QAED,GAAGC,KAAK;kBAET,mDAACC,+BAAAA,SAA2B;YAC1B,aAAU;YACV,WAAU;sBAEV,mDAACE,sCAAAA,SAASA,EAAAA;gBAAC,WAAU;;;;AAI7B"}
1
+ {"version":3,"file":"components\\ui\\checkbox.cjs","sources":["webpack://@arolariu/components/./src/components/ui/checkbox.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-neutral-200 dark:bg-neutral-200/30 data-[state=checked]:bg-neutral-900 data-[state=checked]:text-neutral-50 dark:data-[state=checked]:bg-neutral-900 data-[state=checked]:border-neutral-900 focus-visible:border-neutral-950 focus-visible:ring-neutral-950/50 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 aria-invalid:border-red-500 size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 dark:border-neutral-800 dark:dark:bg-neutral-800/30 dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:text-neutral-900 dark:dark:data-[state=checked]:bg-neutral-50 dark:data-[state=checked]:border-neutral-50 dark:focus-visible:border-neutral-300 dark:focus-visible:ring-neutral-300/50 dark:aria-invalid:ring-red-900/20 dark:dark:aria-invalid:ring-red-900/40 dark:aria-invalid:border-red-900\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"names":["Checkbox","className","props","CheckboxPrimitive","cn","CheckIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,SAASA,SAAS,EAChBC,SAAS,EACT,GAAGC,OACiD;IACpD,OACE,WADF,GACE,qCAACC,+BAAAA,IAAsB;QACrB,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EACT,w5BACAH;QAED,GAAGC,KAAK;kBAET,mDAACC,+BAAAA,SAA2B;YAC1B,aAAU;YACV,WAAU;sBAEV,mDAACE,sCAAAA,SAASA,EAAAA;gBAAC,WAAU;;;;AAI7B"}
@@ -1,4 +1,4 @@
1
- "use client"
1
+ "use client";
2
2
  "use strict";
3
3
  var __webpack_require__ = {};
4
4
  (()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"components\\ui\\collapsible.cjs","sources":["webpack://@arolariu/components/./src/components/ui/collapsible.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\r\n\r\nfunction Collapsible({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\r\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\r\n}\r\n\r\nfunction CollapsibleTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\r\n return (\r\n <CollapsiblePrimitive.CollapsibleTrigger\r\n data-slot=\"collapsible-trigger\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction CollapsibleContent({\r\n ...props\r\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\r\n return (\r\n <CollapsiblePrimitive.CollapsibleContent\r\n data-slot=\"collapsible-content\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\r\n"],"names":["Collapsible","props","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAASA,YAAY,EACnB,GAAGC,OACoD;IACvD,OAAO,WAAP,GAAO,qCAACC,kCAAAA,IAAyB;QAAC,aAAU;QAAe,GAAGD,KAAK;;AACrE;AAEA,SAASE,mBAAmB,EAC1B,GAAGF,OACkE;IACrE,OACE,WADF,GACE,qCAACC,kCAAAA,kBAAuC;QACtC,aAAU;QACT,GAAGD,KAAK;;AAGf;AAEA,SAASG,mBAAmB,EAC1B,GAAGH,OACkE;IACrE,OACE,WADF,GACE,qCAACC,kCAAAA,kBAAuC;QACtC,aAAU;QACT,GAAGD,KAAK;;AAGf"}
1
+ {"version":3,"file":"components\\ui\\collapsible.cjs","sources":["webpack://@arolariu/components/./src/components/ui/collapsible.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"names":["Collapsible","props","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAASA,YAAY,EACnB,GAAGC,OACoD;IACvD,OAAO,WAAP,GAAO,qCAACC,kCAAAA,IAAyB;QAAC,aAAU;QAAe,GAAGD,KAAK;;AACrE;AAEA,SAASE,mBAAmB,EAC1B,GAAGF,OACkE;IACrE,OACE,WADF,GACE,qCAACC,kCAAAA,kBAAuC;QACtC,aAAU;QACT,GAAGD,KAAK;;AAGf;AAEA,SAASG,mBAAmB,EAC1B,GAAGH,OACkE;IACrE,OACE,WADF,GACE,qCAACC,kCAAAA,kBAAuC;QACtC,aAAU;QACT,GAAGD,KAAK;;AAGf"}
@@ -66,7 +66,7 @@ function CommandDialog({ title = "Command Palette", description = "Search for a
66
66
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_dialog_cjs_namespaceObject.DialogContent, {
67
67
  className: "overflow-hidden p-0",
68
68
  children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Command, {
69
- className: "[&_[cmdk-group-heading]]:text-neutral-500 data-[slot=command-input-wrapper]:**:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5 dark:[&_[cmdk-group-heading]]:text-neutral-400",
69
+ className: "[&_[cmdk-group-heading]]:text-neutral-500 **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5 dark:[&_[cmdk-group-heading]]:text-neutral-400",
70
70
  children: children
71
71
  })
72
72
  })
@@ -120,7 +120,7 @@ function CommandSeparator({ className, ...props }) {
120
120
  function CommandItem({ className, ...props }) {
121
121
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_cmdk_namespaceObject.Command.Item, {
122
122
  "data-slot": "command-item",
123
- className: (0, utils_cjs_namespaceObject.cn)("data-[selected=true]:bg-neutral-100 data-[selected=true]:text-neutral-900 [&_svg:not([class*='text-'])]:text-neutral-500 relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:data-[selected=true]:bg-neutral-800 dark:data-[selected=true]:text-neutral-50 dark:[&_svg:not([class*='text-'])]:text-neutral-400", className),
123
+ className: (0, utils_cjs_namespaceObject.cn)("data-[selected=true]:bg-neutral-100 data-[selected=true]:text-neutral-900 [&_svg:not([class*='text-'])]:text-neutral-500 relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:data-[selected=true]:bg-neutral-800 dark:data-[selected=true]:text-neutral-50 dark:[&_svg:not([class*='text-'])]:text-neutral-400", className),
124
124
  ...props
125
125
  });
126
126
  }