@zentauri-ui/zentauri-components 1.4.63 → 1.4.70

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 (160) hide show
  1. package/README.md +97 -51
  2. package/cli/index.mjs +45 -26
  3. package/cli/registry.json +9 -1
  4. package/cli/rewrite-imports.mjs +8 -3
  5. package/dist/charts/area/Area.d.ts +6 -0
  6. package/dist/charts/area/Area.d.ts.map +1 -0
  7. package/dist/charts/area/index.d.ts +4 -0
  8. package/dist/charts/area/index.d.ts.map +1 -0
  9. package/dist/charts/area.js +119 -0
  10. package/dist/charts/area.js.map +1 -0
  11. package/dist/charts/area.mjs +106 -0
  12. package/dist/charts/area.mjs.map +1 -0
  13. package/dist/charts/bar/Bar.d.ts +6 -0
  14. package/dist/charts/bar/Bar.d.ts.map +1 -0
  15. package/dist/charts/bar/index.d.ts +4 -0
  16. package/dist/charts/bar/index.d.ts.map +1 -0
  17. package/dist/charts/bar.js +110 -0
  18. package/dist/charts/bar.js.map +1 -0
  19. package/dist/charts/bar.mjs +97 -0
  20. package/dist/charts/bar.mjs.map +1 -0
  21. package/dist/charts/bubble/Bubble.d.ts +6 -0
  22. package/dist/charts/bubble/Bubble.d.ts.map +1 -0
  23. package/dist/charts/bubble/index.d.ts +4 -0
  24. package/dist/charts/bubble/index.d.ts.map +1 -0
  25. package/dist/charts/bubble.js +122 -0
  26. package/dist/charts/bubble.js.map +1 -0
  27. package/dist/charts/bubble.mjs +109 -0
  28. package/dist/charts/bubble.mjs.map +1 -0
  29. package/dist/charts/line/Line.d.ts +6 -0
  30. package/dist/charts/line/Line.d.ts.map +1 -0
  31. package/dist/charts/line/index.d.ts +4 -0
  32. package/dist/charts/line/index.d.ts.map +1 -0
  33. package/dist/charts/line.js +113 -0
  34. package/dist/charts/line.js.map +1 -0
  35. package/dist/charts/line.mjs +100 -0
  36. package/dist/charts/line.mjs.map +1 -0
  37. package/dist/charts/shared/chart-frame.d.ts +32 -0
  38. package/dist/charts/shared/chart-frame.d.ts.map +1 -0
  39. package/dist/charts/shared/colors.d.ts +43 -0
  40. package/dist/charts/shared/colors.d.ts.map +1 -0
  41. package/dist/charts/shared/types.d.ts +43 -0
  42. package/dist/charts/shared/types.d.ts.map +1 -0
  43. package/dist/charts/shared/variants.d.ts +93 -0
  44. package/dist/charts/shared/variants.d.ts.map +1 -0
  45. package/dist/{chunk-TTYZBO4E.mjs → chunk-2BAMNRAL.mjs} +20 -20
  46. package/dist/chunk-2BAMNRAL.mjs.map +1 -0
  47. package/dist/{chunk-Z7PHKV2T.js → chunk-AD2LA3XN.js} +11 -11
  48. package/dist/chunk-AD2LA3XN.js.map +1 -0
  49. package/dist/{chunk-G3B6OHFG.js → chunk-AUGLZ3AN.js} +20 -20
  50. package/dist/chunk-AUGLZ3AN.js.map +1 -0
  51. package/dist/{chunk-LJ7AAIA3.mjs → chunk-C5L465FW.mjs} +11 -11
  52. package/dist/chunk-C5L465FW.mjs.map +1 -0
  53. package/dist/chunk-CIN5JDN4.js +174 -0
  54. package/dist/chunk-CIN5JDN4.js.map +1 -0
  55. package/dist/{chunk-H2I54QPJ.mjs → chunk-FQBMIZH2.mjs} +11 -11
  56. package/dist/{chunk-H2I54QPJ.mjs.map → chunk-FQBMIZH2.mjs.map} +1 -1
  57. package/dist/{chunk-4LT2GNJL.mjs → chunk-INMNX3HQ.mjs} +11 -11
  58. package/dist/{chunk-4LT2GNJL.mjs.map → chunk-INMNX3HQ.mjs.map} +1 -1
  59. package/dist/chunk-IQZROQNJ.mjs +165 -0
  60. package/dist/chunk-IQZROQNJ.mjs.map +1 -0
  61. package/dist/{chunk-ZIDKBEQJ.mjs → chunk-JBAUEGYD.mjs} +20 -20
  62. package/dist/chunk-JBAUEGYD.mjs.map +1 -0
  63. package/dist/{chunk-KEKNNZD3.js → chunk-OLEMP2HL.js} +11 -11
  64. package/dist/{chunk-KEKNNZD3.js.map → chunk-OLEMP2HL.js.map} +1 -1
  65. package/dist/{chunk-SKPZCISM.js → chunk-Q5B44QW7.js} +20 -20
  66. package/dist/chunk-Q5B44QW7.js.map +1 -0
  67. package/dist/{chunk-MXLRXYIX.js → chunk-S7WKFNPT.js} +11 -11
  68. package/dist/{chunk-MXLRXYIX.js.map → chunk-S7WKFNPT.js.map} +1 -1
  69. package/dist/{chunk-QEGACUFU.mjs → chunk-TINHLHCN.mjs} +11 -11
  70. package/dist/chunk-TINHLHCN.mjs.map +1 -0
  71. package/dist/{chunk-MXKGDFQH.js → chunk-Y745GQR2.js} +11 -11
  72. package/dist/chunk-Y745GQR2.js.map +1 -0
  73. package/dist/ui/accordion/animated.js +7 -7
  74. package/dist/ui/accordion/animated.mjs +2 -2
  75. package/dist/ui/accordion/variants.d.ts +2 -2
  76. package/dist/ui/accordion.js +9 -9
  77. package/dist/ui/accordion.mjs +2 -2
  78. package/dist/ui/alert/animated.js +2 -2
  79. package/dist/ui/alert/animated.mjs +1 -1
  80. package/dist/ui/alert/variants.d.ts +1 -1
  81. package/dist/ui/alert.js +10 -10
  82. package/dist/ui/alert.mjs +2 -2
  83. package/dist/ui/avatar/variants.d.ts +1 -1
  84. package/dist/ui/badge/variants.d.ts +2 -2
  85. package/dist/ui/breadcrumb/variants.d.ts +1 -1
  86. package/dist/ui/buttons/variants.d.ts +2 -2
  87. package/dist/ui/card/animated.js +7 -7
  88. package/dist/ui/card/animated.mjs +2 -2
  89. package/dist/ui/card/variants.d.ts +1 -1
  90. package/dist/ui/card.js +12 -12
  91. package/dist/ui/card.mjs +2 -2
  92. package/dist/ui/divider/variants.d.ts +2 -2
  93. package/dist/ui/drawer/animated.js +11 -11
  94. package/dist/ui/drawer/animated.mjs +2 -2
  95. package/dist/ui/drawer/variants.d.ts +3 -3
  96. package/dist/ui/drawer.js +11 -11
  97. package/dist/ui/drawer.mjs +1 -1
  98. package/dist/ui/dropdown/variants.d.ts +4 -4
  99. package/dist/ui/dropdown.js +9 -9
  100. package/dist/ui/dropdown.js.map +1 -1
  101. package/dist/ui/dropdown.mjs +9 -9
  102. package/dist/ui/dropdown.mjs.map +1 -1
  103. package/dist/ui/file-upload/variants.d.ts +1 -1
  104. package/dist/ui/inputs/variants.d.ts +2 -2
  105. package/dist/ui/modal/animated.js +4 -4
  106. package/dist/ui/modal/animated.mjs +1 -1
  107. package/dist/ui/modal/variants.d.ts +2 -2
  108. package/dist/ui/modal.js +12 -12
  109. package/dist/ui/modal.mjs +2 -2
  110. package/dist/ui/pagination/pagination.d.ts +2 -2
  111. package/dist/ui/pagination/variants.d.ts +3 -3
  112. package/dist/ui/progress/variants.d.ts +1 -1
  113. package/dist/ui/select/variants.d.ts +4 -4
  114. package/dist/ui/select.js +27 -27
  115. package/dist/ui/select.js.map +1 -1
  116. package/dist/ui/select.mjs +27 -27
  117. package/dist/ui/select.mjs.map +1 -1
  118. package/dist/ui/skeleton/variants.d.ts +2 -2
  119. package/dist/ui/slider/variants.d.ts +1 -1
  120. package/dist/ui/spinner/animated/variants.d.ts +1 -1
  121. package/dist/ui/stepper/variants.d.ts +1 -1
  122. package/dist/ui/table/variants.d.ts +3 -3
  123. package/dist/ui/tabs/variants.d.ts +1 -1
  124. package/dist/ui/toast/animated.js +7 -7
  125. package/dist/ui/toast/animated.mjs +1 -1
  126. package/dist/ui/toast/variants.d.ts +1 -1
  127. package/dist/ui/toast.js +12 -12
  128. package/dist/ui/toast.mjs +1 -1
  129. package/dist/ui/toggle/variants.d.ts +1 -1
  130. package/dist/ui/tooltip/variants.d.ts +1 -1
  131. package/dist/ui/typography/variants.d.ts +3 -3
  132. package/package.json +32 -12
  133. package/src/charts/area/Area.tsx +103 -0
  134. package/src/charts/area/index.ts +9 -0
  135. package/src/charts/bar/Bar.tsx +94 -0
  136. package/src/charts/bar/index.ts +9 -0
  137. package/src/charts/bubble/Bubble.tsx +113 -0
  138. package/src/charts/bubble/index.ts +9 -0
  139. package/src/charts/line/Line.tsx +97 -0
  140. package/src/charts/line/index.ts +9 -0
  141. package/src/charts/shared/chart-frame.tsx +107 -0
  142. package/src/charts/shared/colors.ts +31 -0
  143. package/src/charts/shared/types.ts +60 -0
  144. package/src/charts/shared/variants.ts +87 -0
  145. package/src/ui/accordion/variants.ts +9 -9
  146. package/src/ui/alert/variants.ts +9 -9
  147. package/src/ui/card/variants.ts +9 -9
  148. package/src/ui/drawer/variants.ts +18 -18
  149. package/src/ui/dropdown/variants.ts +9 -9
  150. package/src/ui/modal/variants.ts +18 -18
  151. package/src/ui/select/variants.ts +27 -27
  152. package/src/ui/toast/variants.ts +9 -9
  153. package/dist/chunk-G3B6OHFG.js.map +0 -1
  154. package/dist/chunk-LJ7AAIA3.mjs.map +0 -1
  155. package/dist/chunk-MXKGDFQH.js.map +0 -1
  156. package/dist/chunk-QEGACUFU.mjs.map +0 -1
  157. package/dist/chunk-SKPZCISM.js.map +0 -1
  158. package/dist/chunk-TTYZBO4E.mjs.map +0 -1
  159. package/dist/chunk-Z7PHKV2T.js.map +0 -1
  160. package/dist/chunk-ZIDKBEQJ.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkMXLRXYIX_js = require('../../chunk-MXLRXYIX.js');
4
+ var chunkS7WKFNPT_js = require('../../chunk-S7WKFNPT.js');
5
5
  require('../../chunk-ZS5756ZC.js');
6
6
  var framerMotion = require('framer-motion');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -33,7 +33,7 @@ function CardAnimated({
33
33
  }) {
34
34
  const motionProps = cardAnimationPresets[animation];
35
35
  return /* @__PURE__ */ jsxRuntime.jsx(
36
- chunkMXLRXYIX_js.CardBase,
36
+ chunkS7WKFNPT_js.CardBase,
37
37
  {
38
38
  ...{
39
39
  as: framerMotion.motion.article,
@@ -48,23 +48,23 @@ CardAnimated.displayName = "CardAnimated";
48
48
 
49
49
  Object.defineProperty(exports, "CardBody", {
50
50
  enumerable: true,
51
- get: function () { return chunkMXLRXYIX_js.CardBody; }
51
+ get: function () { return chunkS7WKFNPT_js.CardBody; }
52
52
  });
53
53
  Object.defineProperty(exports, "CardDescription", {
54
54
  enumerable: true,
55
- get: function () { return chunkMXLRXYIX_js.CardDescription; }
55
+ get: function () { return chunkS7WKFNPT_js.CardDescription; }
56
56
  });
57
57
  Object.defineProperty(exports, "CardFooter", {
58
58
  enumerable: true,
59
- get: function () { return chunkMXLRXYIX_js.CardFooter; }
59
+ get: function () { return chunkS7WKFNPT_js.CardFooter; }
60
60
  });
61
61
  Object.defineProperty(exports, "CardHeader", {
62
62
  enumerable: true,
63
- get: function () { return chunkMXLRXYIX_js.CardHeader; }
63
+ get: function () { return chunkS7WKFNPT_js.CardHeader; }
64
64
  });
65
65
  Object.defineProperty(exports, "CardTitle", {
66
66
  enumerable: true,
67
- get: function () { return chunkMXLRXYIX_js.CardTitle; }
67
+ get: function () { return chunkS7WKFNPT_js.CardTitle; }
68
68
  });
69
69
  exports.CardAnimated = CardAnimated;
70
70
  exports.cardAnimationPresets = cardAnimationPresets;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { CardBase } from '../../chunk-H2I54QPJ.mjs';
3
- export { CardBody, CardDescription, CardFooter, CardHeader, CardTitle } from '../../chunk-H2I54QPJ.mjs';
2
+ import { CardBase } from '../../chunk-FQBMIZH2.mjs';
3
+ export { CardBody, CardDescription, CardFooter, CardHeader, CardTitle } from '../../chunk-FQBMIZH2.mjs';
4
4
  import '../../chunk-4D54YOL6.mjs';
5
5
  import { motion } from 'framer-motion';
6
6
  import { jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  export declare const cardVariants: (props?: ({
2
- appearance?: "default" | "outline" | "ghost" | "glass" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "elevated" | null | undefined;
2
+ appearance?: "default" | "outline" | "glass" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "elevated" | null | undefined;
3
3
  size?: "sm" | "md" | "lg" | null | undefined;
4
4
  rounded?: "sm" | "md" | "lg" | "full" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
package/dist/ui/card.js CHANGED
@@ -1,54 +1,54 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkMXLRXYIX_js = require('../chunk-MXLRXYIX.js');
4
+ var chunkS7WKFNPT_js = require('../chunk-S7WKFNPT.js');
5
5
  require('../chunk-ZS5756ZC.js');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
8
8
  function Card(props) {
9
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMXLRXYIX_js.CardBase, { ...props });
9
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkS7WKFNPT_js.CardBase, { ...props });
10
10
  }
11
11
  Card.displayName = "Card";
12
12
 
13
13
  Object.defineProperty(exports, "CardBody", {
14
14
  enumerable: true,
15
- get: function () { return chunkMXLRXYIX_js.CardBody; }
15
+ get: function () { return chunkS7WKFNPT_js.CardBody; }
16
16
  });
17
17
  Object.defineProperty(exports, "CardDescription", {
18
18
  enumerable: true,
19
- get: function () { return chunkMXLRXYIX_js.CardDescription; }
19
+ get: function () { return chunkS7WKFNPT_js.CardDescription; }
20
20
  });
21
21
  Object.defineProperty(exports, "CardFooter", {
22
22
  enumerable: true,
23
- get: function () { return chunkMXLRXYIX_js.CardFooter; }
23
+ get: function () { return chunkS7WKFNPT_js.CardFooter; }
24
24
  });
25
25
  Object.defineProperty(exports, "CardHeader", {
26
26
  enumerable: true,
27
- get: function () { return chunkMXLRXYIX_js.CardHeader; }
27
+ get: function () { return chunkS7WKFNPT_js.CardHeader; }
28
28
  });
29
29
  Object.defineProperty(exports, "CardTitle", {
30
30
  enumerable: true,
31
- get: function () { return chunkMXLRXYIX_js.CardTitle; }
31
+ get: function () { return chunkS7WKFNPT_js.CardTitle; }
32
32
  });
33
33
  Object.defineProperty(exports, "cardDescriptionVariants", {
34
34
  enumerable: true,
35
- get: function () { return chunkMXLRXYIX_js.cardDescriptionVariants; }
35
+ get: function () { return chunkS7WKFNPT_js.cardDescriptionVariants; }
36
36
  });
37
37
  Object.defineProperty(exports, "cardFooterVariants", {
38
38
  enumerable: true,
39
- get: function () { return chunkMXLRXYIX_js.cardFooterVariants; }
39
+ get: function () { return chunkS7WKFNPT_js.cardFooterVariants; }
40
40
  });
41
41
  Object.defineProperty(exports, "cardHeaderVariants", {
42
42
  enumerable: true,
43
- get: function () { return chunkMXLRXYIX_js.cardHeaderVariants; }
43
+ get: function () { return chunkS7WKFNPT_js.cardHeaderVariants; }
44
44
  });
45
45
  Object.defineProperty(exports, "cardTitleVariants", {
46
46
  enumerable: true,
47
- get: function () { return chunkMXLRXYIX_js.cardTitleVariants; }
47
+ get: function () { return chunkS7WKFNPT_js.cardTitleVariants; }
48
48
  });
49
49
  Object.defineProperty(exports, "cardVariants", {
50
50
  enumerable: true,
51
- get: function () { return chunkMXLRXYIX_js.cardVariants; }
51
+ get: function () { return chunkS7WKFNPT_js.cardVariants; }
52
52
  });
53
53
  exports.Card = Card;
54
54
  //# sourceMappingURL=card.js.map
package/dist/ui/card.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { CardBase } from '../chunk-H2I54QPJ.mjs';
3
- export { CardBody, CardDescription, CardFooter, CardHeader, CardTitle, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardVariants } from '../chunk-H2I54QPJ.mjs';
2
+ import { CardBase } from '../chunk-FQBMIZH2.mjs';
3
+ export { CardBody, CardDescription, CardFooter, CardHeader, CardTitle, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardVariants } from '../chunk-FQBMIZH2.mjs';
4
4
  import '../chunk-4D54YOL6.mjs';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,8 +1,8 @@
1
1
  export declare const dividerToneVariants: (props?: ({
2
- appearance?: "default" | "destructive" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "muted" | "primary" | null | undefined;
2
+ appearance?: "default" | "muted" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "destructive" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "primary" | null | undefined;
3
3
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
4
4
  export declare const dividerVariants: (props?: ({
5
- appearance?: "default" | "destructive" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "muted" | "primary" | null | undefined;
5
+ appearance?: "default" | "muted" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "destructive" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "primary" | null | undefined;
6
6
  orientation?: "horizontal" | "vertical" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkSKPZCISM_js = require('../../chunk-SKPZCISM.js');
4
+ var chunkQ5B44QW7_js = require('../../chunk-Q5B44QW7.js');
5
5
  var chunkGBWGVNDA_js = require('../../chunk-GBWGVNDA.js');
6
6
  require('../../chunk-UIYFEP3I.js');
7
7
  var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
@@ -42,7 +42,7 @@ function DrawerContentAnimated({
42
42
  id,
43
43
  style
44
44
  }) {
45
- const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = chunkSKPZCISM_js.useDrawerContext("DrawerContent");
45
+ const { open, setOpen, titleId, descriptionId, contentRef, triggerRef } = chunkQ5B44QW7_js.useDrawerContext("DrawerContent");
46
46
  const resolvedSide = side ?? "right";
47
47
  const reduceMotion = framerMotion.useReducedMotion();
48
48
  const overlayMotion = drawerPanelPresets(resolvedSide)[reduceMotion ? "fade" : animation];
@@ -64,7 +64,7 @@ function DrawerContentAnimated({
64
64
  {
65
65
  role: "presentation",
66
66
  "data-slot": "drawer-overlay",
67
- className: chunkSKPZCISM_js.drawerOverlayVariants(),
67
+ className: chunkQ5B44QW7_js.drawerOverlayVariants(),
68
68
  onClick: () => setOpen(false),
69
69
  initial: animation === "none" ? false : overlayMotion.initial,
70
70
  animate: animation === "none" ? void 0 : overlayMotion.animate,
@@ -90,7 +90,7 @@ function DrawerContentAnimated({
90
90
  "data-slot": "drawer-content",
91
91
  tabIndex: -1,
92
92
  className: chunkZS5756ZC_js.cn(
93
- chunkSKPZCISM_js.drawerContentVariants({ side: resolvedSide, size, appearance }),
93
+ chunkQ5B44QW7_js.drawerContentVariants({ side: resolvedSide, size, appearance }),
94
94
  className
95
95
  ),
96
96
  initial: animation === "none" ? false : panelMotion.initial,
@@ -110,31 +110,31 @@ DrawerContentAnimated.displayName = "DrawerContent";
110
110
 
111
111
  Object.defineProperty(exports, "Drawer", {
112
112
  enumerable: true,
113
- get: function () { return chunkSKPZCISM_js.Drawer; }
113
+ get: function () { return chunkQ5B44QW7_js.Drawer; }
114
114
  });
115
115
  Object.defineProperty(exports, "DrawerBody", {
116
116
  enumerable: true,
117
- get: function () { return chunkSKPZCISM_js.DrawerBody; }
117
+ get: function () { return chunkQ5B44QW7_js.DrawerBody; }
118
118
  });
119
119
  Object.defineProperty(exports, "DrawerClose", {
120
120
  enumerable: true,
121
- get: function () { return chunkSKPZCISM_js.DrawerClose; }
121
+ get: function () { return chunkQ5B44QW7_js.DrawerClose; }
122
122
  });
123
123
  Object.defineProperty(exports, "DrawerFooter", {
124
124
  enumerable: true,
125
- get: function () { return chunkSKPZCISM_js.DrawerFooter; }
125
+ get: function () { return chunkQ5B44QW7_js.DrawerFooter; }
126
126
  });
127
127
  Object.defineProperty(exports, "DrawerHeader", {
128
128
  enumerable: true,
129
- get: function () { return chunkSKPZCISM_js.DrawerHeader; }
129
+ get: function () { return chunkQ5B44QW7_js.DrawerHeader; }
130
130
  });
131
131
  Object.defineProperty(exports, "DrawerTitle", {
132
132
  enumerable: true,
133
- get: function () { return chunkSKPZCISM_js.DrawerTitle; }
133
+ get: function () { return chunkQ5B44QW7_js.DrawerTitle; }
134
134
  });
135
135
  Object.defineProperty(exports, "DrawerTrigger", {
136
136
  enumerable: true,
137
- get: function () { return chunkSKPZCISM_js.DrawerTrigger; }
137
+ get: function () { return chunkQ5B44QW7_js.DrawerTrigger; }
138
138
  });
139
139
  exports.DrawerContentAnimated = DrawerContentAnimated;
140
140
  exports.drawerPanelPresets = drawerPanelPresets;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useDrawerContext, drawerOverlayVariants, drawerContentVariants } from '../../chunk-ZIDKBEQJ.mjs';
3
- export { Drawer, DrawerBody, DrawerClose, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger } from '../../chunk-ZIDKBEQJ.mjs';
2
+ import { useDrawerContext, drawerOverlayVariants, drawerContentVariants } from '../../chunk-JBAUEGYD.mjs';
3
+ export { Drawer, DrawerBody, DrawerClose, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger } from '../../chunk-JBAUEGYD.mjs';
4
4
  import { useFocusManagement } from '../../chunk-K6YI4FJO.mjs';
5
5
  import '../../chunk-PMAF6FBF.mjs';
6
6
  import { cn } from '../../chunk-4D54YOL6.mjs';
@@ -1,10 +1,10 @@
1
1
  export declare const drawerOverlayVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
2
2
  export declare const drawerTriggerVariants: (props?: ({
3
- appearance?: "default" | "glass" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
3
+ appearance?: "default" | "glass" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const drawerContentVariants: (props?: ({
6
- side?: "bottom" | "left" | "right" | "top" | null | undefined;
6
+ side?: "left" | "right" | "bottom" | "top" | null | undefined;
7
7
  size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
8
- appearance?: "default" | "glass" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
8
+ appearance?: "default" | "glass" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "orange" | "pink" | "purple" | "teal" | "yellow" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
9
9
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
10
  //# sourceMappingURL=variants.d.ts.map
package/dist/ui/drawer.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkSKPZCISM_js = require('../chunk-SKPZCISM.js');
4
+ var chunkQ5B44QW7_js = require('../chunk-Q5B44QW7.js');
5
5
  require('../chunk-GBWGVNDA.js');
6
6
  require('../chunk-UIYFEP3I.js');
7
7
  require('../chunk-ZS5756ZC.js');
@@ -10,43 +10,43 @@ require('../chunk-ZS5756ZC.js');
10
10
 
11
11
  Object.defineProperty(exports, "Drawer", {
12
12
  enumerable: true,
13
- get: function () { return chunkSKPZCISM_js.Drawer; }
13
+ get: function () { return chunkQ5B44QW7_js.Drawer; }
14
14
  });
15
15
  Object.defineProperty(exports, "DrawerBody", {
16
16
  enumerable: true,
17
- get: function () { return chunkSKPZCISM_js.DrawerBody; }
17
+ get: function () { return chunkQ5B44QW7_js.DrawerBody; }
18
18
  });
19
19
  Object.defineProperty(exports, "DrawerClose", {
20
20
  enumerable: true,
21
- get: function () { return chunkSKPZCISM_js.DrawerClose; }
21
+ get: function () { return chunkQ5B44QW7_js.DrawerClose; }
22
22
  });
23
23
  Object.defineProperty(exports, "DrawerContent", {
24
24
  enumerable: true,
25
- get: function () { return chunkSKPZCISM_js.DrawerContent; }
25
+ get: function () { return chunkQ5B44QW7_js.DrawerContent; }
26
26
  });
27
27
  Object.defineProperty(exports, "DrawerFooter", {
28
28
  enumerable: true,
29
- get: function () { return chunkSKPZCISM_js.DrawerFooter; }
29
+ get: function () { return chunkQ5B44QW7_js.DrawerFooter; }
30
30
  });
31
31
  Object.defineProperty(exports, "DrawerHeader", {
32
32
  enumerable: true,
33
- get: function () { return chunkSKPZCISM_js.DrawerHeader; }
33
+ get: function () { return chunkQ5B44QW7_js.DrawerHeader; }
34
34
  });
35
35
  Object.defineProperty(exports, "DrawerTitle", {
36
36
  enumerable: true,
37
- get: function () { return chunkSKPZCISM_js.DrawerTitle; }
37
+ get: function () { return chunkQ5B44QW7_js.DrawerTitle; }
38
38
  });
39
39
  Object.defineProperty(exports, "DrawerTrigger", {
40
40
  enumerable: true,
41
- get: function () { return chunkSKPZCISM_js.DrawerTrigger; }
41
+ get: function () { return chunkQ5B44QW7_js.DrawerTrigger; }
42
42
  });
43
43
  Object.defineProperty(exports, "drawerContentVariants", {
44
44
  enumerable: true,
45
- get: function () { return chunkSKPZCISM_js.drawerContentVariants; }
45
+ get: function () { return chunkQ5B44QW7_js.drawerContentVariants; }
46
46
  });
47
47
  Object.defineProperty(exports, "drawerOverlayVariants", {
48
48
  enumerable: true,
49
- get: function () { return chunkSKPZCISM_js.drawerOverlayVariants; }
49
+ get: function () { return chunkQ5B44QW7_js.drawerOverlayVariants; }
50
50
  });
51
51
  //# sourceMappingURL=drawer.js.map
52
52
  //# sourceMappingURL=drawer.js.map
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, drawerContentVariants, drawerOverlayVariants } from '../chunk-ZIDKBEQJ.mjs';
2
+ export { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, drawerContentVariants, drawerOverlayVariants } from '../chunk-JBAUEGYD.mjs';
3
3
  import '../chunk-K6YI4FJO.mjs';
4
4
  import '../chunk-PMAF6FBF.mjs';
5
5
  import '../chunk-4D54YOL6.mjs';
@@ -1,12 +1,12 @@
1
1
  export declare const triggerVariants: (props?: ({
2
- variant?: "default" | "outline" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "black" | "white" | null | undefined;
2
+ variant?: "default" | "outline" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "white" | "black" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
3
3
  size?: "sm" | "md" | "lg" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const contentVariants: (props?: ({
6
- placement?: "bottom" | "left" | "right" | "top" | null | undefined;
7
- spacing?: "none" | "default" | "sm" | "md" | "lg" | "xl" | null | undefined;
6
+ placement?: "left" | "right" | "bottom" | "top" | null | undefined;
7
+ spacing?: "default" | "none" | "sm" | "md" | "lg" | "xl" | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
9
  export declare const itemVariants: (props?: ({
10
- variant?: "default" | "outline" | "ghost" | "emerald" | "indigo" | "purple" | "pink" | "rose" | "sky" | "teal" | "yellow" | "orange" | "gray" | "amber" | "violet" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | "black" | "white" | null | undefined;
10
+ variant?: "default" | "outline" | "sky" | "emerald" | "violet" | "amber" | "rose" | "gray" | "indigo" | "white" | "black" | "orange" | "pink" | "purple" | "teal" | "yellow" | "ghost" | "gradient-blue" | "gradient-green" | "gradient-red" | "gradient-yellow" | "gradient-purple" | "gradient-teal" | "gradient-indigo" | "gradient-pink" | "gradient-orange" | null | undefined;
11
11
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
12
  //# sourceMappingURL=variants.d.ts.map
@@ -30,15 +30,15 @@ var triggerVariants = classVarianceAuthority.cva(
30
30
  gray: "border border-gray-600 text-gray-600",
31
31
  amber: "border border-amber-600 text-amber-600",
32
32
  violet: "border border-violet-600 text-violet-600",
33
- "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600",
34
- "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600",
35
- "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600",
36
- "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600",
37
- "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600",
38
- "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600",
39
- "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600",
40
- "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600",
41
- "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600"
33
+ "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-blue-200",
34
+ "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-green-200",
35
+ "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-red-200",
36
+ "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-yellow-200",
37
+ "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-purple-200",
38
+ "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-teal-200",
39
+ "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-indigo-200",
40
+ "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-pink-200",
41
+ "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-orange-200"
42
42
  },
43
43
  size: {
44
44
  sm: "px-2 py-1 text-sm",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/dropdown/variants.ts","../../src/ui/dropdown/dropdown.tsx"],"names":["cva","createContext","useContext","useId","useState","jsx","cn","useRef","useClickOutside","jsxs","FiCheck"],"mappings":";;;;;;;;;AAEO,IAAM,eAAA,GAAkBA,0BAAA;AAAA,EAC7B,0KAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wBAAA;AAAA,QACT,OAAA,EAAS,wBAAA;AAAA,QACT,KAAA,EAAO,gBAAA;AAAA,QACP,KAAA,EAAO,wBAAA;AAAA,QACP,KAAA,EAAO,qBAAA;AAAA,QACP,GAAA,EAAK,oCAAA;AAAA,QACL,IAAA,EAAM,sCAAA;AAAA,QACN,MAAA,EAAQ,0CAAA;AAAA,QACR,IAAA,EAAM,sCAAA;AAAA,QACN,MAAA,EAAQ,0CAAA;AAAA,QACR,MAAA,EAAQ,0CAAA;AAAA,QACR,IAAA,EAAM,sCAAA;AAAA,QACN,MAAA,EAAQ,0CAAA;AAAA,QACR,OAAA,EAAS,4CAAA;AAAA,QACT,IAAA,EAAM,sCAAA;AAAA,QACN,KAAA,EAAO,wCAAA;AAAA,QACP,MAAA,EAAQ,0CAAA;AAAA,QACR,eAAA,EACE,2FAAA;AAAA,QACF,gBAAA,EACE,yFAAA;AAAA,QACF,cAAA,EACE,qFAAA;AAAA,QACF,iBAAA,EACE,+FAAA;AAAA,QACF,iBAAA,EACE,2FAAA;AAAA,QACF,eAAA,EACE,uFAAA;AAAA,QACF,iBAAA,EACE,+FAAA;AAAA,QACF,eAAA,EACE,uFAAA;AAAA,QACF,iBAAA,EACE;AAAA,OACJ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEO,IAAM,eAAA,GAAkBA,0BAAA;AAAA,EAC7B,6DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,GAAA,EAAK,kBAAA;AAAA,QACL,MAAA,EAAQ,eAAA;AAAA,QACR,IAAA,EAAM,iBAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS,WAAA;AAAA,QACT,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,QAAA;AAAA,MACX,OAAA,EAAS;AAAA;AACX;AAEJ;AAEO,IAAM,YAAA,GAAeA,0BAAA;AAAA,EAC1B,gLAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,qDAAA;AAAA,QACT,OAAA,EACE,yEAAA;AAAA,QACF,KAAA,EACE,oEAAA;AAAA,QACF,KAAA,EAAO,8DAAA;AAAA,QACP,KAAA,EAAO,2DAAA;AAAA,QACP,GAAA,EAAK,6DAAA;AAAA,QACL,IAAA,EAAM,iEAAA;AAAA,QACN,MAAA,EACE,yEAAA;AAAA,QACF,IAAA,EAAM,iEAAA;AAAA,QACN,MAAA,EACE,yEAAA;AAAA,QACF,MAAA,EACE,yEAAA;AAAA,QACF,IAAA,EAAM,iEAAA;AAAA,QACN,MAAA,EACE,yEAAA;AAAA,QACF,OAAA,EACE,6EAAA;AAAA,QACF,IAAA,EAAM,iEAAA;AAAA,QACN,KAAA,EACE,qEAAA;AAAA,QACF,MAAA,EACE,yEAAA;AAAA,QACF,eAAA,EACE,+HAAA;AAAA,QACF,gBAAA,EACE,+HAAA;AAAA,QACF,cAAA,EACE,uHAAA;AAAA,QACF,iBAAA,EACE,uIAAA;AAAA,QACF,iBAAA,EACE,mIAAA;AAAA,QACF,eAAA,EACE,2HAAA;AAAA,QACF,iBAAA,EACE,uIAAA;AAAA,QACF,eAAA,EACE,2HAAA;AAAA,QACF,iBAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AChHA,IAAM,eAAA,GAAkBC,oBAA0C,IAAI,CAAA;AAEtE,IAAM,cAAc,MAAM;AACxB,EAAA,MAAM,GAAA,GAAMC,iBAAW,eAAe,CAAA;AACtC,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAC/C,EAAA,OAAO,GAAA;AACT,CAAA;AAKO,IAAM,WAAW,CAAC;AAAA,EACvB,QAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,IAAA,EAAM,cAAA;AAAA,EACN,YAAA;AAAA,EACA,WAAA,GAAc;AAChB,CAAA,KAAqB;AACnB,EAAA,MAAM,MAAA,GAAS,CAAA,EAAGC,WAAA,EAAO,CAAA,KAAA,CAAA;AACzB,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIC,eAAS,WAAW,CAAA;AACpE,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,cAAA,CAAmB,EAAE,CAAA;AAEjE,EAAA,MAAM,OAAO,cAAA,IAAkB,gBAAA;AAE/B,EAAA,MAAM,OAAA,GAAU,CAAC,GAAA,KAAiB;AAChC,IAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,MAAA,YAAA,GAAe,GAAG,CAAA;AAAA,IACpB,CAAA,MAAO;AACL,MAAA,mBAAA,CAAoB,GAAG,CAAA;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,CAAC,IAAI,CAAA;AAElC,EAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAkB;AACtC,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,iBAAA,CAAkB,CAAC,KAAK,CAAC,CAAA;AACzB,MAAA,OAAA,CAAQ,KAAK,CAAA;AACb,MAAA;AAAA,IACF;AAEA,IAAA,iBAAA;AAAA,MAAkB,CAAC,IAAA,KACjB,IAAA,CAAK,QAAA,CAAS,KAAK,IAAI,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,KAAK,CAAA,GAAI,CAAC,GAAG,MAAM,KAAK;AAAA,KAC1E;AAAA,EACF,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,eAAA,CAAgB,QAAA;AAAA,IAAhB;AAAA,MACC,KAAA,EAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,MAAA;AAAA,QACA,cAAA;AAAA,QACA,YAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAS;AAAA;AAAA,GACnD;AAEJ;AAKO,IAAM,kBAAkB,CAAC;AAAA,EAC9B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA4B;AAC1B,EAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,MAAA,KAAW,WAAA,EAAY;AAE7C,EAAA,uBACEA,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,eAAA,EAAe,IAAA;AAAA,MACf,eAAA,EAAc,MAAA;AAAA,MACd,eAAA,EAAe,MAAA;AAAA,MACf,SAAA,EAAWC,oBAAG,eAAA,CAAgB,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC1D,GAAG,KAAA;AAAA,MACJ,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,OAAA,GAAU,KAAK,CAAA;AACf,QAAA,IAAI,CAAC,MAAM,gBAAA,EAAkB;AAC3B,UAAA,MAAA,EAAO;AAAA,QACT;AAAA,MACF,CAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAKO,IAAM,kBAAkB,CAAC;AAAA,EAC9B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,OAAA,GAAU,SAAA;AAAA,EACV,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA4B;AAC1B,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,MAAA,KAAW,WAAA,EAAY;AAC9C,EAAA,MAAM,GAAA,GAAMC,aAAuB,IAAI,CAAA;AAGvC,EAAAC,gCAAA,CAAgB,EAAE,GAAA,EAAK,OAAA,EAAS,CAAA;AAEhC,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,uBACEH,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAWC,mBAAA;AAAA,QACT,eAAA,CAAgB,EAAE,SAAA,EAAW,OAAA,EAAS,CAAA;AAAA,QACtC,SAAA;AAAA,QACA,OAAA,IAAW;AAAA,OACb;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAKO,IAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAyB;AACvB,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,WAAA,EAAY;AACrD,EAAA,MAAM,UAAA,GAAa,cAAA,CAAe,QAAA,CAAS,KAAK,CAAA;AAEhD,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,YAAA,CAAa,KAAK,CAAA;AAClB,IAAA,QAAA,IAAW;AAAA,EACb,CAAA;AAEA,EAAA,uBACEG,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,UAAA;AAAA,MACL,QAAA,EAAU,CAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MACT,SAAA,EAAW,CAAC,CAAA,KAAM;AAChB,QAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,CAAA;AAAA,MACA,WAAWH,mBAAA,CAAG,YAAA,CAAa,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACjD,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAG,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,UACA;AAAA,SAAA,EACH,CAAA;AAAA,wBAEAA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,UAAA,mCAAeC,UAAA,EAAA,EAAQ,CAAA;AAAA,UACvB;AAAA,SAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ","file":"dropdown.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const triggerVariants = cva(\n \"inline-flex items-center justify-between rounded-md font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60 cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-900 text-white\",\n outline: \"border border-gray-300\",\n ghost: \"bg-transparent\",\n white: \"bg-white text-gray-900\",\n black: \"bg-black text-white\",\n sky: \"border border-sky-600 text-sky-600\",\n rose: \"border border-rose-600 text-rose-600\",\n purple: \"border border-purple-600 text-purple-600\",\n pink: \"border border-pink-600 text-pink-600\",\n orange: \"border border-orange-600 text-orange-600\",\n yellow: \"border border-yellow-600 text-yellow-600\",\n teal: \"border border-teal-600 text-teal-600\",\n indigo: \"border border-indigo-600 text-indigo-600\",\n emerald: \"border border-emerald-600 text-emerald-600\",\n gray: \"border border-gray-600 text-gray-600\",\n amber: \"border border-amber-600 text-amber-600\",\n violet: \"border border-violet-600 text-violet-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2 text-base\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const contentVariants = cva(\n \"absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border\",\n {\n variants: {\n placement: {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n },\n },\n defaultVariants: {\n placement: \"bottom\",\n spacing: \"default\",\n },\n },\n);\n\nexport const itemVariants = cva(\n \"flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60\",\n {\n variants: {\n variant: {\n default: \"hover:bg-gray-100 hover:text-gray-900 text-gray-100\",\n outline:\n \"hover:bg-gray-100 hover:text-gray-900 border border-white text-gray-100\",\n ghost:\n \"hover:bg-gray-100 hover:text-gray-900 bg-transparent text-gray-100\",\n white: \"hover:bg-gray-100 hover:text-gray-900 bg-white text-gray-900\",\n black: \"hover:bg-gray-100 hover:text-gray-900 bg-black text-white\",\n sky: \"hover:bg-sky-100 hover:text-sky-600 bg-sky-200 text-sky-800\",\n rose: \"hover:bg-rose-100 hover:text-rose-600 bg-rose-200 text-rose-800\",\n purple:\n \"hover:bg-purple-100 hover:text-purple-600 bg-purple-200 text-purple-800\",\n pink: \"hover:bg-pink-100 hover:text-pink-600 bg-pink-200 text-pink-800\",\n orange:\n \"hover:bg-orange-100 hover:text-orange-600 bg-orange-200 text-orange-800\",\n yellow:\n \"hover:bg-yellow-100 hover:text-yellow-600 bg-yellow-200 text-yellow-800\",\n teal: \"hover:bg-teal-100 hover:text-teal-600 bg-teal-200 text-teal-800\",\n indigo:\n \"hover:bg-indigo-100 hover:text-indigo-600 bg-indigo-200 text-indigo-800\",\n emerald:\n \"hover:bg-emerald-100 hover:text-emerald-600 bg-emerald-200 text-emerald-800\",\n gray: \"hover:bg-gray-100 hover:text-gray-900 bg-gray-200 text-gray-800\",\n amber:\n \"hover:bg-amber-100 hover:text-amber-600 bg-amber-200 text-amber-800\",\n violet:\n \"hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800\",\n \"gradient-blue\":\n \"hover:bg-linear-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-linear-to-r from-blue-200 to-purple-200 text-blue-800\",\n \"gradient-green\":\n \"hover:bg-linear-to-r from-green-600 to-lime-600 hover:text-green-900 bg-linear-to-r from-green-200 to-lime-200 text-green-800\",\n \"gradient-red\":\n \"hover:bg-linear-to-r from-red-600 to-pink-600 hover:text-red-900 bg-linear-to-r from-red-200 to-pink-200 text-red-800\",\n \"gradient-yellow\":\n \"hover:bg-linear-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-linear-to-r from-yellow-200 to-orange-200 text-yellow-800\",\n \"gradient-purple\":\n \"hover:bg-linear-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-linear-to-r from-purple-200 to-pink-200 text-purple-800\",\n \"gradient-teal\":\n \"hover:bg-linear-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-linear-to-r from-teal-200 to-cyan-200 text-teal-800\",\n \"gradient-indigo\":\n \"hover:bg-linear-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-linear-to-r from-indigo-200 to-purple-200 text-indigo-800\",\n \"gradient-pink\":\n \"hover:bg-linear-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-linear-to-r from-pink-200 to-rose-200 text-pink-800\",\n \"gradient-orange\":\n \"hover:bg-linear-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-linear-to-r from-orange-200 to-red-200 text-orange-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n useId,\n} from \"react\";\nimport { FiCheck } from \"react-icons/fi\";\nimport { cn } from \"../../lib/utils\";\nimport type {\n DropdownContextType,\n DropdownProps,\n DropdownTriggerProps,\n DropdownContentProps,\n DropdownItemProps,\n} from \"./types\";\nimport { triggerVariants, contentVariants, itemVariants } from \"./variants\";\nimport { useClickOutside } from \"../../hooks/useClickOutside\";\n\n/* =========================\n Context\n========================= */\nconst DropdownContext = createContext<DropdownContextType | null>(null);\n\nconst useDropdown = () => {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Use inside Dropdown\");\n return ctx;\n};\n\n/* =========================\n Root\n========================= */\nexport const Dropdown = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n multiSelect = false,\n}: DropdownProps) => {\n const menuId = `${useId()}-menu`;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [selectedValues, setSelectedValues] = useState<string[]>([]);\n\n const open = controlledOpen ?? uncontrolledOpen;\n\n const setOpen = (val: boolean) => {\n if (controlledOpen !== undefined) {\n onOpenChange?.(val);\n } else {\n setUncontrolledOpen(val);\n }\n };\n\n const toggle = () => setOpen(!open);\n\n const toggleSelect = (value: string) => {\n if (!multiSelect) {\n setSelectedValues([value]);\n setOpen(false);\n return;\n }\n\n setSelectedValues((prev) =>\n prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value],\n );\n };\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen,\n toggle,\n selectedValues,\n toggleSelect,\n multiSelect,\n menuId,\n }}\n >\n <div className=\"relative inline-block\">{children}</div>\n </DropdownContext.Provider>\n );\n};\n\n/* =========================\n Trigger\n========================= */\nexport const DropdownTrigger = ({\n children,\n className,\n variant,\n size,\n onClick,\n ...props\n}: DropdownTriggerProps) => {\n const { toggle, open, menuId } = useDropdown();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"menu\"\n aria-controls={menuId}\n className={cn(triggerVariants({ variant, size }), className)}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n toggle();\n }\n }}\n >\n {children}\n </button>\n );\n};\n\n/* =========================\n Content\n========================= */\nexport const DropdownContent = ({\n children,\n className,\n placement = \"bottom\",\n spacing = \"default\",\n divider,\n ...props\n}: DropdownContentProps) => {\n const { open, setOpen, menuId } = useDropdown();\n const ref = useRef<HTMLDivElement>(null);\n\n // click outside\n useClickOutside({ ref, setOpen });\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n id={menuId}\n role=\"menu\"\n className={cn(\n contentVariants({ placement, spacing }),\n className,\n divider && \"divide-y divide-current\",\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n/* =========================\n Item\n========================= */\nexport const DropdownItem = ({\n children,\n value,\n className,\n variant,\n onSelect,\n leftIcon,\n rightIcon,\n ...props\n}: DropdownItemProps) => {\n const { toggleSelect, selectedValues } = useDropdown();\n const isSelected = selectedValues.includes(value);\n\n const handleClick = () => {\n toggleSelect(value);\n onSelect?.();\n };\n\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleClick();\n }\n }}\n className={cn(itemVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {leftIcon}\n {children}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {isSelected && <FiCheck />}\n {rightIcon}\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../../src/ui/dropdown/variants.ts","../../src/ui/dropdown/dropdown.tsx"],"names":["cva","createContext","useContext","useId","useState","jsx","cn","useRef","useClickOutside","jsxs","FiCheck"],"mappings":"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","file":"dropdown.js","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const triggerVariants = cva(\n \"inline-flex items-center justify-between rounded-md font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60 cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-900 text-white\",\n outline: \"border border-gray-300\",\n ghost: \"bg-transparent\",\n white: \"bg-white text-gray-900\",\n black: \"bg-black text-white\",\n sky: \"border border-sky-600 text-sky-600\",\n rose: \"border border-rose-600 text-rose-600\",\n purple: \"border border-purple-600 text-purple-600\",\n pink: \"border border-pink-600 text-pink-600\",\n orange: \"border border-orange-600 text-orange-600\",\n yellow: \"border border-yellow-600 text-yellow-600\",\n teal: \"border border-teal-600 text-teal-600\",\n indigo: \"border border-indigo-600 text-indigo-600\",\n emerald: \"border border-emerald-600 text-emerald-600\",\n gray: \"border border-gray-600 text-gray-600\",\n amber: \"border border-amber-600 text-amber-600\",\n violet: \"border border-violet-600 text-violet-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 text-blue-200\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 text-green-200\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 text-red-200\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 text-yellow-200\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 text-purple-200\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 text-teal-200\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 text-indigo-200\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 text-pink-200\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 text-orange-200\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2 text-base\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const contentVariants = cva(\n \"absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border\",\n {\n variants: {\n placement: {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n },\n },\n defaultVariants: {\n placement: \"bottom\",\n spacing: \"default\",\n },\n },\n);\n\nexport const itemVariants = cva(\n \"flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60\",\n {\n variants: {\n variant: {\n default: \"hover:bg-gray-100 hover:text-gray-900 text-gray-100\",\n outline:\n \"hover:bg-gray-100 hover:text-gray-900 border border-white text-gray-100\",\n ghost:\n \"hover:bg-gray-100 hover:text-gray-900 bg-transparent text-gray-100\",\n white: \"hover:bg-gray-100 hover:text-gray-900 bg-white text-gray-900\",\n black: \"hover:bg-gray-100 hover:text-gray-900 bg-black text-white\",\n sky: \"hover:bg-sky-100 hover:text-sky-600 bg-sky-200 text-sky-800\",\n rose: \"hover:bg-rose-100 hover:text-rose-600 bg-rose-200 text-rose-800\",\n purple:\n \"hover:bg-purple-100 hover:text-purple-600 bg-purple-200 text-purple-800\",\n pink: \"hover:bg-pink-100 hover:text-pink-600 bg-pink-200 text-pink-800\",\n orange:\n \"hover:bg-orange-100 hover:text-orange-600 bg-orange-200 text-orange-800\",\n yellow:\n \"hover:bg-yellow-100 hover:text-yellow-600 bg-yellow-200 text-yellow-800\",\n teal: \"hover:bg-teal-100 hover:text-teal-600 bg-teal-200 text-teal-800\",\n indigo:\n \"hover:bg-indigo-100 hover:text-indigo-600 bg-indigo-200 text-indigo-800\",\n emerald:\n \"hover:bg-emerald-100 hover:text-emerald-600 bg-emerald-200 text-emerald-800\",\n gray: \"hover:bg-gray-100 hover:text-gray-900 bg-gray-200 text-gray-800\",\n amber:\n \"hover:bg-amber-100 hover:text-amber-600 bg-amber-200 text-amber-800\",\n violet:\n \"hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800\",\n \"gradient-blue\":\n \"hover:bg-linear-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-linear-to-r from-blue-200 to-purple-200 text-blue-800\",\n \"gradient-green\":\n \"hover:bg-linear-to-r from-green-600 to-lime-600 hover:text-green-900 bg-linear-to-r from-green-200 to-lime-200 text-green-800\",\n \"gradient-red\":\n \"hover:bg-linear-to-r from-red-600 to-pink-600 hover:text-red-900 bg-linear-to-r from-red-200 to-pink-200 text-red-800\",\n \"gradient-yellow\":\n \"hover:bg-linear-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-linear-to-r from-yellow-200 to-orange-200 text-yellow-800\",\n \"gradient-purple\":\n \"hover:bg-linear-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-linear-to-r from-purple-200 to-pink-200 text-purple-800\",\n \"gradient-teal\":\n \"hover:bg-linear-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-linear-to-r from-teal-200 to-cyan-200 text-teal-800\",\n \"gradient-indigo\":\n \"hover:bg-linear-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-linear-to-r from-indigo-200 to-purple-200 text-indigo-800\",\n \"gradient-pink\":\n \"hover:bg-linear-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-linear-to-r from-pink-200 to-rose-200 text-pink-800\",\n \"gradient-orange\":\n \"hover:bg-linear-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-linear-to-r from-orange-200 to-red-200 text-orange-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n useId,\n} from \"react\";\nimport { FiCheck } from \"react-icons/fi\";\nimport { cn } from \"../../lib/utils\";\nimport type {\n DropdownContextType,\n DropdownProps,\n DropdownTriggerProps,\n DropdownContentProps,\n DropdownItemProps,\n} from \"./types\";\nimport { triggerVariants, contentVariants, itemVariants } from \"./variants\";\nimport { useClickOutside } from \"../../hooks/useClickOutside\";\n\n/* =========================\n Context\n========================= */\nconst DropdownContext = createContext<DropdownContextType | null>(null);\n\nconst useDropdown = () => {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Use inside Dropdown\");\n return ctx;\n};\n\n/* =========================\n Root\n========================= */\nexport const Dropdown = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n multiSelect = false,\n}: DropdownProps) => {\n const menuId = `${useId()}-menu`;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [selectedValues, setSelectedValues] = useState<string[]>([]);\n\n const open = controlledOpen ?? uncontrolledOpen;\n\n const setOpen = (val: boolean) => {\n if (controlledOpen !== undefined) {\n onOpenChange?.(val);\n } else {\n setUncontrolledOpen(val);\n }\n };\n\n const toggle = () => setOpen(!open);\n\n const toggleSelect = (value: string) => {\n if (!multiSelect) {\n setSelectedValues([value]);\n setOpen(false);\n return;\n }\n\n setSelectedValues((prev) =>\n prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value],\n );\n };\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen,\n toggle,\n selectedValues,\n toggleSelect,\n multiSelect,\n menuId,\n }}\n >\n <div className=\"relative inline-block\">{children}</div>\n </DropdownContext.Provider>\n );\n};\n\n/* =========================\n Trigger\n========================= */\nexport const DropdownTrigger = ({\n children,\n className,\n variant,\n size,\n onClick,\n ...props\n}: DropdownTriggerProps) => {\n const { toggle, open, menuId } = useDropdown();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"menu\"\n aria-controls={menuId}\n className={cn(triggerVariants({ variant, size }), className)}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n toggle();\n }\n }}\n >\n {children}\n </button>\n );\n};\n\n/* =========================\n Content\n========================= */\nexport const DropdownContent = ({\n children,\n className,\n placement = \"bottom\",\n spacing = \"default\",\n divider,\n ...props\n}: DropdownContentProps) => {\n const { open, setOpen, menuId } = useDropdown();\n const ref = useRef<HTMLDivElement>(null);\n\n // click outside\n useClickOutside({ ref, setOpen });\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n id={menuId}\n role=\"menu\"\n className={cn(\n contentVariants({ placement, spacing }),\n className,\n divider && \"divide-y divide-current\",\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n/* =========================\n Item\n========================= */\nexport const DropdownItem = ({\n children,\n value,\n className,\n variant,\n onSelect,\n leftIcon,\n rightIcon,\n ...props\n}: DropdownItemProps) => {\n const { toggleSelect, selectedValues } = useDropdown();\n const isSelected = selectedValues.includes(value);\n\n const handleClick = () => {\n toggleSelect(value);\n onSelect?.();\n };\n\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleClick();\n }\n }}\n className={cn(itemVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {leftIcon}\n {children}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {isSelected && <FiCheck />}\n {rightIcon}\n </div>\n </div>\n );\n};\n"]}
@@ -28,15 +28,15 @@ var triggerVariants = cva(
28
28
  gray: "border border-gray-600 text-gray-600",
29
29
  amber: "border border-amber-600 text-amber-600",
30
30
  violet: "border border-violet-600 text-violet-600",
31
- "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600",
32
- "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600",
33
- "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600",
34
- "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600",
35
- "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600",
36
- "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600",
37
- "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600",
38
- "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600",
39
- "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600"
31
+ "gradient-blue": "bg-linear-to-r from-blue-600 to-purple-600 text-blue-200",
32
+ "gradient-green": "bg-linear-to-r from-green-600 to-lime-600 text-green-200",
33
+ "gradient-red": "bg-linear-to-r from-red-600 to-pink-600 text-red-200",
34
+ "gradient-yellow": "bg-linear-to-r from-yellow-600 to-orange-600 text-yellow-200",
35
+ "gradient-purple": "bg-linear-to-r from-purple-600 to-pink-600 text-purple-200",
36
+ "gradient-teal": "bg-linear-to-r from-teal-600 to-cyan-600 text-teal-200",
37
+ "gradient-indigo": "bg-linear-to-r from-indigo-600 to-purple-600 text-indigo-200",
38
+ "gradient-pink": "bg-linear-to-r from-pink-600 to-rose-600 text-pink-200",
39
+ "gradient-orange": "bg-linear-to-r from-orange-600 to-red-600 text-orange-200"
40
40
  },
41
41
  size: {
42
42
  sm: "px-2 py-1 text-sm",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/dropdown/variants.ts","../../src/ui/dropdown/dropdown.tsx"],"names":[],"mappings":"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","file":"dropdown.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const triggerVariants = cva(\n \"inline-flex items-center justify-between rounded-md font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60 cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-900 text-white\",\n outline: \"border border-gray-300\",\n ghost: \"bg-transparent\",\n white: \"bg-white text-gray-900\",\n black: \"bg-black text-white\",\n sky: \"border border-sky-600 text-sky-600\",\n rose: \"border border-rose-600 text-rose-600\",\n purple: \"border border-purple-600 text-purple-600\",\n pink: \"border border-pink-600 text-pink-600\",\n orange: \"border border-orange-600 text-orange-600\",\n yellow: \"border border-yellow-600 text-yellow-600\",\n teal: \"border border-teal-600 text-teal-600\",\n indigo: \"border border-indigo-600 text-indigo-600\",\n emerald: \"border border-emerald-600 text-emerald-600\",\n gray: \"border border-gray-600 text-gray-600\",\n amber: \"border border-amber-600 text-amber-600\",\n violet: \"border border-violet-600 text-violet-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2 text-base\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const contentVariants = cva(\n \"absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border\",\n {\n variants: {\n placement: {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n },\n },\n defaultVariants: {\n placement: \"bottom\",\n spacing: \"default\",\n },\n },\n);\n\nexport const itemVariants = cva(\n \"flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60\",\n {\n variants: {\n variant: {\n default: \"hover:bg-gray-100 hover:text-gray-900 text-gray-100\",\n outline:\n \"hover:bg-gray-100 hover:text-gray-900 border border-white text-gray-100\",\n ghost:\n \"hover:bg-gray-100 hover:text-gray-900 bg-transparent text-gray-100\",\n white: \"hover:bg-gray-100 hover:text-gray-900 bg-white text-gray-900\",\n black: \"hover:bg-gray-100 hover:text-gray-900 bg-black text-white\",\n sky: \"hover:bg-sky-100 hover:text-sky-600 bg-sky-200 text-sky-800\",\n rose: \"hover:bg-rose-100 hover:text-rose-600 bg-rose-200 text-rose-800\",\n purple:\n \"hover:bg-purple-100 hover:text-purple-600 bg-purple-200 text-purple-800\",\n pink: \"hover:bg-pink-100 hover:text-pink-600 bg-pink-200 text-pink-800\",\n orange:\n \"hover:bg-orange-100 hover:text-orange-600 bg-orange-200 text-orange-800\",\n yellow:\n \"hover:bg-yellow-100 hover:text-yellow-600 bg-yellow-200 text-yellow-800\",\n teal: \"hover:bg-teal-100 hover:text-teal-600 bg-teal-200 text-teal-800\",\n indigo:\n \"hover:bg-indigo-100 hover:text-indigo-600 bg-indigo-200 text-indigo-800\",\n emerald:\n \"hover:bg-emerald-100 hover:text-emerald-600 bg-emerald-200 text-emerald-800\",\n gray: \"hover:bg-gray-100 hover:text-gray-900 bg-gray-200 text-gray-800\",\n amber:\n \"hover:bg-amber-100 hover:text-amber-600 bg-amber-200 text-amber-800\",\n violet:\n \"hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800\",\n \"gradient-blue\":\n \"hover:bg-linear-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-linear-to-r from-blue-200 to-purple-200 text-blue-800\",\n \"gradient-green\":\n \"hover:bg-linear-to-r from-green-600 to-lime-600 hover:text-green-900 bg-linear-to-r from-green-200 to-lime-200 text-green-800\",\n \"gradient-red\":\n \"hover:bg-linear-to-r from-red-600 to-pink-600 hover:text-red-900 bg-linear-to-r from-red-200 to-pink-200 text-red-800\",\n \"gradient-yellow\":\n \"hover:bg-linear-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-linear-to-r from-yellow-200 to-orange-200 text-yellow-800\",\n \"gradient-purple\":\n \"hover:bg-linear-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-linear-to-r from-purple-200 to-pink-200 text-purple-800\",\n \"gradient-teal\":\n \"hover:bg-linear-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-linear-to-r from-teal-200 to-cyan-200 text-teal-800\",\n \"gradient-indigo\":\n \"hover:bg-linear-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-linear-to-r from-indigo-200 to-purple-200 text-indigo-800\",\n \"gradient-pink\":\n \"hover:bg-linear-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-linear-to-r from-pink-200 to-rose-200 text-pink-800\",\n \"gradient-orange\":\n \"hover:bg-linear-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-linear-to-r from-orange-200 to-red-200 text-orange-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n useId,\n} from \"react\";\nimport { FiCheck } from \"react-icons/fi\";\nimport { cn } from \"../../lib/utils\";\nimport type {\n DropdownContextType,\n DropdownProps,\n DropdownTriggerProps,\n DropdownContentProps,\n DropdownItemProps,\n} from \"./types\";\nimport { triggerVariants, contentVariants, itemVariants } from \"./variants\";\nimport { useClickOutside } from \"../../hooks/useClickOutside\";\n\n/* =========================\n Context\n========================= */\nconst DropdownContext = createContext<DropdownContextType | null>(null);\n\nconst useDropdown = () => {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Use inside Dropdown\");\n return ctx;\n};\n\n/* =========================\n Root\n========================= */\nexport const Dropdown = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n multiSelect = false,\n}: DropdownProps) => {\n const menuId = `${useId()}-menu`;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [selectedValues, setSelectedValues] = useState<string[]>([]);\n\n const open = controlledOpen ?? uncontrolledOpen;\n\n const setOpen = (val: boolean) => {\n if (controlledOpen !== undefined) {\n onOpenChange?.(val);\n } else {\n setUncontrolledOpen(val);\n }\n };\n\n const toggle = () => setOpen(!open);\n\n const toggleSelect = (value: string) => {\n if (!multiSelect) {\n setSelectedValues([value]);\n setOpen(false);\n return;\n }\n\n setSelectedValues((prev) =>\n prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value],\n );\n };\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen,\n toggle,\n selectedValues,\n toggleSelect,\n multiSelect,\n menuId,\n }}\n >\n <div className=\"relative inline-block\">{children}</div>\n </DropdownContext.Provider>\n );\n};\n\n/* =========================\n Trigger\n========================= */\nexport const DropdownTrigger = ({\n children,\n className,\n variant,\n size,\n onClick,\n ...props\n}: DropdownTriggerProps) => {\n const { toggle, open, menuId } = useDropdown();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"menu\"\n aria-controls={menuId}\n className={cn(triggerVariants({ variant, size }), className)}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n toggle();\n }\n }}\n >\n {children}\n </button>\n );\n};\n\n/* =========================\n Content\n========================= */\nexport const DropdownContent = ({\n children,\n className,\n placement = \"bottom\",\n spacing = \"default\",\n divider,\n ...props\n}: DropdownContentProps) => {\n const { open, setOpen, menuId } = useDropdown();\n const ref = useRef<HTMLDivElement>(null);\n\n // click outside\n useClickOutside({ ref, setOpen });\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n id={menuId}\n role=\"menu\"\n className={cn(\n contentVariants({ placement, spacing }),\n className,\n divider && \"divide-y divide-current\",\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n/* =========================\n Item\n========================= */\nexport const DropdownItem = ({\n children,\n value,\n className,\n variant,\n onSelect,\n leftIcon,\n rightIcon,\n ...props\n}: DropdownItemProps) => {\n const { toggleSelect, selectedValues } = useDropdown();\n const isSelected = selectedValues.includes(value);\n\n const handleClick = () => {\n toggleSelect(value);\n onSelect?.();\n };\n\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleClick();\n }\n }}\n className={cn(itemVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {leftIcon}\n {children}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {isSelected && <FiCheck />}\n {rightIcon}\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../../src/ui/dropdown/variants.ts","../../src/ui/dropdown/dropdown.tsx"],"names":[],"mappings":"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","file":"dropdown.mjs","sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const triggerVariants = cva(\n \"inline-flex items-center justify-between rounded-md font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60 cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-900 text-white\",\n outline: \"border border-gray-300\",\n ghost: \"bg-transparent\",\n white: \"bg-white text-gray-900\",\n black: \"bg-black text-white\",\n sky: \"border border-sky-600 text-sky-600\",\n rose: \"border border-rose-600 text-rose-600\",\n purple: \"border border-purple-600 text-purple-600\",\n pink: \"border border-pink-600 text-pink-600\",\n orange: \"border border-orange-600 text-orange-600\",\n yellow: \"border border-yellow-600 text-yellow-600\",\n teal: \"border border-teal-600 text-teal-600\",\n indigo: \"border border-indigo-600 text-indigo-600\",\n emerald: \"border border-emerald-600 text-emerald-600\",\n gray: \"border border-gray-600 text-gray-600\",\n amber: \"border border-amber-600 text-amber-600\",\n violet: \"border border-violet-600 text-violet-600\",\n \"gradient-blue\":\n \"bg-linear-to-r from-blue-600 to-purple-600 text-blue-200\",\n \"gradient-green\":\n \"bg-linear-to-r from-green-600 to-lime-600 text-green-200\",\n \"gradient-red\":\n \"bg-linear-to-r from-red-600 to-pink-600 text-red-200\",\n \"gradient-yellow\":\n \"bg-linear-to-r from-yellow-600 to-orange-600 text-yellow-200\",\n \"gradient-purple\":\n \"bg-linear-to-r from-purple-600 to-pink-600 text-purple-200\",\n \"gradient-teal\":\n \"bg-linear-to-r from-teal-600 to-cyan-600 text-teal-200\",\n \"gradient-indigo\":\n \"bg-linear-to-r from-indigo-600 to-purple-600 text-indigo-200\",\n \"gradient-pink\":\n \"bg-linear-to-r from-pink-600 to-rose-600 text-pink-200\",\n \"gradient-orange\":\n \"bg-linear-to-r from-orange-600 to-red-600 text-orange-200\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2 text-base\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport const contentVariants = cva(\n \"absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border\",\n {\n variants: {\n placement: {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n },\n spacing: {\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n },\n },\n defaultVariants: {\n placement: \"bottom\",\n spacing: \"default\",\n },\n },\n);\n\nexport const itemVariants = cva(\n \"flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-500/60\",\n {\n variants: {\n variant: {\n default: \"hover:bg-gray-100 hover:text-gray-900 text-gray-100\",\n outline:\n \"hover:bg-gray-100 hover:text-gray-900 border border-white text-gray-100\",\n ghost:\n \"hover:bg-gray-100 hover:text-gray-900 bg-transparent text-gray-100\",\n white: \"hover:bg-gray-100 hover:text-gray-900 bg-white text-gray-900\",\n black: \"hover:bg-gray-100 hover:text-gray-900 bg-black text-white\",\n sky: \"hover:bg-sky-100 hover:text-sky-600 bg-sky-200 text-sky-800\",\n rose: \"hover:bg-rose-100 hover:text-rose-600 bg-rose-200 text-rose-800\",\n purple:\n \"hover:bg-purple-100 hover:text-purple-600 bg-purple-200 text-purple-800\",\n pink: \"hover:bg-pink-100 hover:text-pink-600 bg-pink-200 text-pink-800\",\n orange:\n \"hover:bg-orange-100 hover:text-orange-600 bg-orange-200 text-orange-800\",\n yellow:\n \"hover:bg-yellow-100 hover:text-yellow-600 bg-yellow-200 text-yellow-800\",\n teal: \"hover:bg-teal-100 hover:text-teal-600 bg-teal-200 text-teal-800\",\n indigo:\n \"hover:bg-indigo-100 hover:text-indigo-600 bg-indigo-200 text-indigo-800\",\n emerald:\n \"hover:bg-emerald-100 hover:text-emerald-600 bg-emerald-200 text-emerald-800\",\n gray: \"hover:bg-gray-100 hover:text-gray-900 bg-gray-200 text-gray-800\",\n amber:\n \"hover:bg-amber-100 hover:text-amber-600 bg-amber-200 text-amber-800\",\n violet:\n \"hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800\",\n \"gradient-blue\":\n \"hover:bg-linear-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-linear-to-r from-blue-200 to-purple-200 text-blue-800\",\n \"gradient-green\":\n \"hover:bg-linear-to-r from-green-600 to-lime-600 hover:text-green-900 bg-linear-to-r from-green-200 to-lime-200 text-green-800\",\n \"gradient-red\":\n \"hover:bg-linear-to-r from-red-600 to-pink-600 hover:text-red-900 bg-linear-to-r from-red-200 to-pink-200 text-red-800\",\n \"gradient-yellow\":\n \"hover:bg-linear-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-linear-to-r from-yellow-200 to-orange-200 text-yellow-800\",\n \"gradient-purple\":\n \"hover:bg-linear-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-linear-to-r from-purple-200 to-pink-200 text-purple-800\",\n \"gradient-teal\":\n \"hover:bg-linear-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-linear-to-r from-teal-200 to-cyan-200 text-teal-800\",\n \"gradient-indigo\":\n \"hover:bg-linear-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-linear-to-r from-indigo-200 to-purple-200 text-indigo-800\",\n \"gradient-pink\":\n \"hover:bg-linear-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-linear-to-r from-pink-200 to-rose-200 text-pink-800\",\n \"gradient-orange\":\n \"hover:bg-linear-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-linear-to-r from-orange-200 to-red-200 text-orange-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n useId,\n} from \"react\";\nimport { FiCheck } from \"react-icons/fi\";\nimport { cn } from \"../../lib/utils\";\nimport type {\n DropdownContextType,\n DropdownProps,\n DropdownTriggerProps,\n DropdownContentProps,\n DropdownItemProps,\n} from \"./types\";\nimport { triggerVariants, contentVariants, itemVariants } from \"./variants\";\nimport { useClickOutside } from \"../../hooks/useClickOutside\";\n\n/* =========================\n Context\n========================= */\nconst DropdownContext = createContext<DropdownContextType | null>(null);\n\nconst useDropdown = () => {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Use inside Dropdown\");\n return ctx;\n};\n\n/* =========================\n Root\n========================= */\nexport const Dropdown = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n multiSelect = false,\n}: DropdownProps) => {\n const menuId = `${useId()}-menu`;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [selectedValues, setSelectedValues] = useState<string[]>([]);\n\n const open = controlledOpen ?? uncontrolledOpen;\n\n const setOpen = (val: boolean) => {\n if (controlledOpen !== undefined) {\n onOpenChange?.(val);\n } else {\n setUncontrolledOpen(val);\n }\n };\n\n const toggle = () => setOpen(!open);\n\n const toggleSelect = (value: string) => {\n if (!multiSelect) {\n setSelectedValues([value]);\n setOpen(false);\n return;\n }\n\n setSelectedValues((prev) =>\n prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value],\n );\n };\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen,\n toggle,\n selectedValues,\n toggleSelect,\n multiSelect,\n menuId,\n }}\n >\n <div className=\"relative inline-block\">{children}</div>\n </DropdownContext.Provider>\n );\n};\n\n/* =========================\n Trigger\n========================= */\nexport const DropdownTrigger = ({\n children,\n className,\n variant,\n size,\n onClick,\n ...props\n}: DropdownTriggerProps) => {\n const { toggle, open, menuId } = useDropdown();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"menu\"\n aria-controls={menuId}\n className={cn(triggerVariants({ variant, size }), className)}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n toggle();\n }\n }}\n >\n {children}\n </button>\n );\n};\n\n/* =========================\n Content\n========================= */\nexport const DropdownContent = ({\n children,\n className,\n placement = \"bottom\",\n spacing = \"default\",\n divider,\n ...props\n}: DropdownContentProps) => {\n const { open, setOpen, menuId } = useDropdown();\n const ref = useRef<HTMLDivElement>(null);\n\n // click outside\n useClickOutside({ ref, setOpen });\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n id={menuId}\n role=\"menu\"\n className={cn(\n contentVariants({ placement, spacing }),\n className,\n divider && \"divide-y divide-current\",\n )}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n/* =========================\n Item\n========================= */\nexport const DropdownItem = ({\n children,\n value,\n className,\n variant,\n onSelect,\n leftIcon,\n rightIcon,\n ...props\n}: DropdownItemProps) => {\n const { toggleSelect, selectedValues } = useDropdown();\n const isSelected = selectedValues.includes(value);\n\n const handleClick = () => {\n toggleSelect(value);\n onSelect?.();\n };\n\n return (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleClick();\n }\n }}\n className={cn(itemVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {leftIcon}\n {children}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {isSelected && <FiCheck />}\n {rightIcon}\n </div>\n </div>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
1
  export declare const fileUploadVariants: (props?: ({
2
- appearance?: "error" | "emerald" | "indigo" | "purple" | "pink" | "teal" | "orange" | "amber" | "success" | "warning" | "info" | "disabled" | "idle" | "active" | "neutral" | null | undefined;
2
+ appearance?: "emerald" | "amber" | "indigo" | "orange" | "pink" | "purple" | "teal" | "active" | "disabled" | "error" | "success" | "warning" | "info" | "idle" | "neutral" | null | undefined;
3
3
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
4
4
  //# sourceMappingURL=variants.d.ts.map