@szum-tech/design-system 2.5.1 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/{chunk-75T7KAAY.js → chunk-36YD6ICC.js} +2 -2
  2. package/dist/chunk-3WSQRFUY.cjs +11 -0
  3. package/dist/{chunk-V5OVQTDR.js → chunk-5BTQ6BQA.js} +2 -2
  4. package/dist/chunk-7EYMOUWG.cjs +51 -0
  5. package/dist/{chunk-MOOWZNA6.js → chunk-7V34QHYR.js} +3 -3
  6. package/dist/chunk-D3MOZUNH.cjs +1043 -0
  7. package/dist/chunk-DFD2WUOU.js +27 -0
  8. package/dist/{chunk-Q2IKZZ3U.cjs → chunk-EIXSMEDP.cjs} +1 -0
  9. package/dist/chunk-EW6TE3N5.cjs +38 -0
  10. package/dist/{chunk-3DSBDIFJ.cjs → chunk-FPFRA5Q6.cjs} +2 -2
  11. package/dist/{chunk-BJ553XYM.cjs → chunk-G6VXQ7DJ.cjs} +3 -3
  12. package/dist/{chunk-RXYZURP4.js → chunk-GEACYHTU.js} +1 -0
  13. package/dist/chunk-H5O5L6XT.js +14 -0
  14. package/dist/chunk-I5P2HH5Z.js +136 -0
  15. package/dist/{chunk-3PV6NLP5.js → chunk-IAI7BIAG.js} +3 -3
  16. package/dist/{chunk-XKXP3W3H.cjs → chunk-K4TRAPRN.cjs} +3 -3
  17. package/dist/{chunk-4C7M4HBP.js → chunk-MI3CQBHC.js} +3 -3
  18. package/dist/{chunk-KXTNZ4UO.cjs → chunk-NHFHKMX2.cjs} +3 -3
  19. package/dist/{chunk-6L3QPLRR.cjs → chunk-OIWEXHFE.cjs} +3 -3
  20. package/dist/chunk-P5IUC7HJ.js +9 -0
  21. package/dist/chunk-S5BN23O7.cjs +147 -0
  22. package/dist/chunk-XIPREW2R.js +996 -0
  23. package/dist/{chunk-WMMJEZ7Y.js → chunk-YJFJLF7Y.js} +3 -3
  24. package/dist/{chunk-FPK72OV4.cjs → chunk-ZZ3EBGSD.cjs} +2 -2
  25. package/dist/components/badge/index.cjs +2 -2
  26. package/dist/components/badge/index.js +1 -1
  27. package/dist/components/button/index.cjs +2 -2
  28. package/dist/components/button/index.js +1 -1
  29. package/dist/components/card/index.cjs +7 -7
  30. package/dist/components/card/index.js +1 -1
  31. package/dist/components/form/index.cjs +21 -17
  32. package/dist/components/form/index.js +14 -10
  33. package/dist/components/index.cjs +194 -70
  34. package/dist/components/index.d.cts +4 -0
  35. package/dist/components/index.d.ts +4 -0
  36. package/dist/components/index.js +14 -10
  37. package/dist/components/input/index.cjs +2 -2
  38. package/dist/components/input/index.js +1 -1
  39. package/dist/components/item/index.cjs +48 -0
  40. package/dist/components/item/index.d.cts +60 -0
  41. package/dist/components/item/index.d.ts +60 -0
  42. package/dist/components/item/index.js +3 -0
  43. package/dist/components/select/index.cjs +3 -3
  44. package/dist/components/select/index.js +1 -1
  45. package/dist/components/separator/index.cjs +2 -2
  46. package/dist/components/separator/index.js +1 -1
  47. package/dist/components/spinner/index.cjs +11 -0
  48. package/dist/components/spinner/index.d.cts +7 -0
  49. package/dist/components/spinner/index.d.ts +7 -0
  50. package/dist/components/spinner/index.js +2 -0
  51. package/dist/components/stepper/index.cjs +103 -0
  52. package/dist/components/stepper/index.d.cts +162 -0
  53. package/dist/components/stepper/index.d.ts +162 -0
  54. package/dist/components/stepper/index.js +22 -0
  55. package/dist/components/textarea/index.cjs +2 -2
  56. package/dist/components/textarea/index.js +1 -1
  57. package/dist/contexts/index.cjs +18 -0
  58. package/dist/contexts/index.d.cts +11 -0
  59. package/dist/contexts/index.d.ts +11 -0
  60. package/dist/contexts/index.js +1 -0
  61. package/dist/hooks/index.cjs +18 -0
  62. package/dist/hooks/index.d.cts +14 -0
  63. package/dist/hooks/index.d.ts +14 -0
  64. package/dist/hooks/index.js +1 -0
  65. package/dist/icons/index.d.cts +3 -0
  66. package/dist/icons/index.d.ts +3 -0
  67. package/package.json +22 -1
  68. package/dist/chunk-DH5YKYXV.cjs +0 -116
  69. package/dist/chunk-SPCZ3GVM.js +0 -88
@@ -0,0 +1,27 @@
1
+ import * as React3 from 'react';
2
+
3
+ // src/hooks/use-validation-log.tsx
4
+ function useValidationLog({ check, scope, message }) {
5
+ React3.useEffect(() => {
6
+ if (!check) {
7
+ console.error(
8
+ `%c[Szum Tech-Design System]%c
9
+ ${scope}%c
10
+ ${message}`,
11
+ "color: #ef4444; font-weight: bold;",
12
+ "color: #3b82f6; font-weight: bold;",
13
+ "color: #f59e0b;"
14
+ );
15
+ }
16
+ }, [check, scope, message]);
17
+ }
18
+ function useLazyRef(fn) {
19
+ const ref = React3.useRef(null);
20
+ if (ref.current === null) {
21
+ ref.current = fn();
22
+ }
23
+ return ref;
24
+ }
25
+ var useIsomorphicLayoutEffect = typeof window === "undefined" ? React3.useEffect : React3.useLayoutEffect;
26
+
27
+ export { useIsomorphicLayoutEffect, useLazyRef, useValidationLog };
@@ -8,6 +8,7 @@ function Separator({ className, orientation = "horizontal", decorative = false,
8
8
  return /* @__PURE__ */ jsxRuntime.jsx(
9
9
  radixUi.Separator.Root,
10
10
  {
11
+ "data-slot": "separator",
11
12
  decorative,
12
13
  orientation,
13
14
  "aria-orientation": orientation,
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopNamespace(e) {
6
+ if (e && e.__esModule) return e;
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n.default = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
24
+
25
+ // src/contexts/directon.tsx
26
+ var Direction = {
27
+ LTR: "ltr",
28
+ RTL: "rtl"
29
+ };
30
+ var DirectionContext = React__namespace.createContext(void 0);
31
+ function useDirection(dirProp) {
32
+ const contextDir = React__namespace.useContext(DirectionContext);
33
+ return dirProp ?? contextDir ?? Direction.LTR;
34
+ }
35
+
36
+ exports.Direction = Direction;
37
+ exports.DirectionContext = DirectionContext;
38
+ exports.useDirection = useDirection;
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkH2BWO3SI_cjs = require('./chunk-H2BWO3SI.cjs');
4
- var tailwindMerge = require('tailwind-merge');
5
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var tailwindMerge = require('tailwind-merge');
6
6
 
7
7
  function Card({ className, ...props }) {
8
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: tailwindMerge.twMerge("bg-app-foreground h-full rounded border border-gray-800", className), ...props });
8
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkH2BWO3SI_cjs.cn("bg-app-foreground h-full rounded border border-gray-800", className), ...props });
9
9
  }
10
10
  function CardHeader({ className, ...props }) {
11
11
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkH2BWO3SI_cjs.cn("flex flex-col p-6", className), ...props });
@@ -8,16 +8,16 @@ var jsxRuntime = require('react/jsx-runtime');
8
8
 
9
9
  var selectCva = classVarianceAuthority.cva(
10
10
  [
11
- "bg-app-foreground font-poppins text-body-2 inline-flex h-10 w-full items-center justify-between gap-2 border pl-3 pr-1.5 py-2 outline-0 transition-colors duration-300 ease-in-out [&>span]:line-clamp-1",
11
+ "bg-app-foreground font-poppins text-body-2 inline-flex h-10 w-full items-center justify-between gap-2 border py-2 pl-3 pr-1.5 outline-0 transition-colors duration-300 ease-in-out [&>span]:line-clamp-1",
12
12
  "data-[placeholder]:select-none data-[placeholder]:text-gray-400",
13
13
  "invalid:border-error-500 focus:border-primary-500 active:border-primary-500",
14
- "disabled:border-gray-800 disabled:text-gray-300 disabled:[&>svg]:text-gray-300 disabled:placeholder:text-gray-600 disabled:cursor-not-allowed"
14
+ "disabled:cursor-not-allowed disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600 disabled:[&>svg]:text-gray-300"
15
15
  ],
16
16
  {
17
17
  variants: {
18
18
  invalid: {
19
19
  true: ["text-error-500 border-error-500 hover:border-error-400 focus:text-gray-100"],
20
- false: ["border-gray-600 hover:border-primary-600 text-gray-100"]
20
+ false: ["hover:border-primary-600 border-gray-600 text-gray-100"]
21
21
  }
22
22
  },
23
23
  defaultVariants: {
@@ -6,6 +6,7 @@ function Separator({ className, orientation = "horizontal", decorative = false,
6
6
  return /* @__PURE__ */ jsx(
7
7
  Separator$1.Root,
8
8
  {
9
+ "data-slot": "separator",
9
10
  decorative,
10
11
  orientation,
11
12
  "aria-orientation": orientation,
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+
3
+ // src/contexts/directon.tsx
4
+ var Direction = {
5
+ LTR: "ltr",
6
+ RTL: "rtl"
7
+ };
8
+ var DirectionContext = React.createContext(void 0);
9
+ function useDirection(dirProp) {
10
+ const contextDir = React.useContext(DirectionContext);
11
+ return dirProp ?? contextDir ?? Direction.LTR;
12
+ }
13
+
14
+ export { Direction, DirectionContext, useDirection };
@@ -0,0 +1,136 @@
1
+ import { Separator } from './chunk-GEACYHTU.js';
2
+ import { cn } from './chunk-ZD2QRAOX.js';
3
+ import { Slot } from '@radix-ui/react-slot';
4
+ import { cva } from 'class-variance-authority';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var itemCva = cva(
8
+ [
9
+ "group/item flex items-center border border-transparent text-sm rounded-md transition-colors duration-100 flex-wrap outline-none",
10
+ "[a]:hover:bg-gray-900 [a]:transition-colors",
11
+ "focus-visible:ring-primary-500/50 focus-visible:ring-[3px]"
12
+ ],
13
+ {
14
+ variants: {
15
+ variant: {
16
+ default: "bg-transparent",
17
+ outlined: "border-gray-800"
18
+ },
19
+ size: {
20
+ default: "p-4 gap-4 ",
21
+ sm: "py-3 px-4 gap-2.5"
22
+ }
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ size: "default"
27
+ }
28
+ }
29
+ );
30
+ function Item({ className, variant = "default", size = "default", asChild = false, ...props }) {
31
+ const Comp = asChild ? Slot : "div";
32
+ return /* @__PURE__ */ jsx(
33
+ Comp,
34
+ {
35
+ "data-slot": "item",
36
+ "data-variant": variant,
37
+ "data-size": size,
38
+ className: cn(itemCva({ variant, size }), className),
39
+ ...props
40
+ }
41
+ );
42
+ }
43
+ var itemMediaVariants = cva(
44
+ [
45
+ "flex shrink-0 items-center justify-center gap-2 [&_svg]:pointer-events-none",
46
+ "group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start"
47
+ ],
48
+ {
49
+ variants: {
50
+ variant: {
51
+ default: "bg-transparent",
52
+ icon: "bg-gray-800 size-8 rounded border border-gray-600 [&_svg:not([class*='size-'])]:size-4",
53
+ image: "size-10 overflow-hidden rounded [&_img]:size-full [&_img]:object-cover"
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ variant: "default"
58
+ }
59
+ }
60
+ );
61
+ function ItemMedia({ className, variant = "default", ...props }) {
62
+ return /* @__PURE__ */ jsx(
63
+ "div",
64
+ {
65
+ "data-slot": "item-media",
66
+ "data-variant": variant,
67
+ className: cn(itemMediaVariants({ variant, className })),
68
+ ...props
69
+ }
70
+ );
71
+ }
72
+ function ItemGroup({ className, ...props }) {
73
+ return /* @__PURE__ */ jsx("div", { role: "list", "data-slot": "item-group", className: cn("group/item-group flex flex-col", className), ...props });
74
+ }
75
+ function ItemActions({ className, ...props }) {
76
+ return /* @__PURE__ */ jsx("div", { "data-slot": "item-actions", className: cn("flex items-center gap-2", className), ...props });
77
+ }
78
+ function ItemContent({ className, ...props }) {
79
+ return /* @__PURE__ */ jsx(
80
+ "div",
81
+ {
82
+ "data-slot": "item-content",
83
+ className: cn("flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none", className),
84
+ ...props
85
+ }
86
+ );
87
+ }
88
+ function ItemDescription({ className, ...props }) {
89
+ return /* @__PURE__ */ jsx(
90
+ "p",
91
+ {
92
+ "data-slot": "item-description",
93
+ className: cn(
94
+ "line-clamp-2 text-sm leading-normal font-normal text-balance text-gray-400",
95
+ "[&>a:hover]:text-primary-500 [&>a]:underline [&>a]:underline-offset-4",
96
+ className
97
+ ),
98
+ ...props
99
+ }
100
+ );
101
+ }
102
+ function ItemFooter({ className, ...props }) {
103
+ return /* @__PURE__ */ jsx(
104
+ "div",
105
+ {
106
+ "data-slot": "item-footer",
107
+ className: cn("flex basis-full items-center justify-between gap-2", className),
108
+ ...props
109
+ }
110
+ );
111
+ }
112
+ function ItemHeader({ className, ...props }) {
113
+ return /* @__PURE__ */ jsx(
114
+ "div",
115
+ {
116
+ "data-slot": "item-header",
117
+ className: cn("flex basis-full items-center justify-between gap-2", className),
118
+ ...props
119
+ }
120
+ );
121
+ }
122
+ function ItemTitle({ className, ...props }) {
123
+ return /* @__PURE__ */ jsx(
124
+ "div",
125
+ {
126
+ "data-slot": "item-title",
127
+ className: cn("flex w-fit items-center gap-2 text-sm leading-snug font-medium text-gray-100", className),
128
+ ...props
129
+ }
130
+ );
131
+ }
132
+ function ItemSeparator({ className, ...props }) {
133
+ return /* @__PURE__ */ jsx(Separator, { "data-slot": "item-separator", orientation: "horizontal", className: cn("my-0", className), ...props });
134
+ }
135
+
136
+ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
@@ -4,18 +4,18 @@ import { jsx } from 'react/jsx-runtime';
4
4
  // src/components/textarea/textarea.styles.tsx
5
5
  var textareaCva = cva(
6
6
  [
7
- "bg-app-foreground font-poppins h-28 min-h-10 w-full appearance-none border py-2 px-3 outline-0 transition-colors duration-300 ease-in-out",
7
+ "bg-app-foreground font-poppins h-28 min-h-10 w-full appearance-none border px-3 py-2 outline-0 transition-colors duration-300 ease-in-out",
8
8
  "placeholder:select-none placeholder:text-gray-400",
9
9
  "invalid:border-error-500",
10
10
  "focus:border-primary-500",
11
11
  "active:border-primary-500",
12
- "disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600 disabled:cursor-not-allowed"
12
+ "disabled:cursor-not-allowed disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600"
13
13
  ],
14
14
  {
15
15
  variants: {
16
16
  invalid: {
17
17
  true: ["text-error-500 border-error-500 hover:border-error-400 focus:text-gray-100"],
18
- false: ["border-gray-600 hover:border-primary-600 text-gray-100"]
18
+ false: ["hover:border-primary-600 border-gray-600 text-gray-100"]
19
19
  }
20
20
  },
21
21
  defaultVariants: {
@@ -62,7 +62,7 @@ var buttonCva = classVarianceAuthority.cva(
62
62
  color: "neutral",
63
63
  class: [
64
64
  "text-gray-100",
65
- "hover:border-gray-500 hover:bg-gray-500 hover:text-app-foreground",
65
+ "hover:text-app-foreground hover:border-gray-500 hover:bg-gray-500",
66
66
  "active:border-gray-600 active:bg-gray-600"
67
67
  ]
68
68
  },
@@ -106,7 +106,7 @@ var buttonCva = classVarianceAuthority.cva(
106
106
  {
107
107
  variant: "outlined",
108
108
  color: "neutral",
109
- class: ["border-gray-500 text-gray-100", "hover:bg-gray-500 hover:text-app-foreground", "active:bg-gray-600"]
109
+ class: ["border-gray-500 text-gray-100", "hover:text-app-foreground hover:bg-gray-500", "active:bg-gray-600"]
110
110
  },
111
111
  {
112
112
  variant: "outlined",
@@ -150,7 +150,7 @@ var buttonCva = classVarianceAuthority.cva(
150
150
  color: "neutral",
151
151
  class: [
152
152
  "border-gray-500 bg-gray-500 text-gray-100",
153
- "hover:border-gray-400 hover:bg-gray-400 hover:text-app-foreground",
153
+ "hover:text-app-foreground hover:border-gray-400 hover:bg-gray-400",
154
154
  "active:border-gray-600 active:bg-gray-600"
155
155
  ]
156
156
  },
@@ -6,16 +6,16 @@ import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
7
7
  var selectCva = cva(
8
8
  [
9
- "bg-app-foreground font-poppins text-body-2 inline-flex h-10 w-full items-center justify-between gap-2 border pl-3 pr-1.5 py-2 outline-0 transition-colors duration-300 ease-in-out [&>span]:line-clamp-1",
9
+ "bg-app-foreground font-poppins text-body-2 inline-flex h-10 w-full items-center justify-between gap-2 border py-2 pl-3 pr-1.5 outline-0 transition-colors duration-300 ease-in-out [&>span]:line-clamp-1",
10
10
  "data-[placeholder]:select-none data-[placeholder]:text-gray-400",
11
11
  "invalid:border-error-500 focus:border-primary-500 active:border-primary-500",
12
- "disabled:border-gray-800 disabled:text-gray-300 disabled:[&>svg]:text-gray-300 disabled:placeholder:text-gray-600 disabled:cursor-not-allowed"
12
+ "disabled:cursor-not-allowed disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600 disabled:[&>svg]:text-gray-300"
13
13
  ],
14
14
  {
15
15
  variants: {
16
16
  invalid: {
17
17
  true: ["text-error-500 border-error-500 hover:border-error-400 focus:text-gray-100"],
18
- false: ["border-gray-600 hover:border-primary-600 text-gray-100"]
18
+ false: ["hover:border-primary-600 border-gray-600 text-gray-100"]
19
19
  }
20
20
  },
21
21
  defaultVariants: {
@@ -7,9 +7,9 @@ var jsxRuntime = require('react/jsx-runtime');
7
7
 
8
8
  var badgeCva = classVarianceAuthority.cva(
9
9
  [
10
- "text-xs inline-flex w-fit shrink-0 items-center justify-center gap-x-1 overflow-hidden whitespace-nowrap rounded border px-2 py-0.5 transition-[color,box-shadow]",
11
- "[&>svg]:size-3 [&>svg]:pointer-events-none",
12
- "focus-visible:border-ring focus-visible:ring-primary-500/50 focus-visible:ring-[3px]",
10
+ "inline-flex w-fit shrink-0 items-center justify-center gap-x-1 overflow-hidden whitespace-nowrap rounded border px-2 py-0.5 text-xs transition-[color,box-shadow]",
11
+ "[&>svg]:pointer-events-none [&>svg]:size-3",
12
+ "focus-visible:border-ring focus-visible:ring-primary-500/50 focus-visible:ring",
13
13
  "aria-invalid:ring-error-500/20 aria-invalid:border-ring-error-500"
14
14
  ],
15
15
  {
@@ -6,18 +6,18 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  // src/components/textarea/textarea.styles.tsx
7
7
  var textareaCva = classVarianceAuthority.cva(
8
8
  [
9
- "bg-app-foreground font-poppins h-28 min-h-10 w-full appearance-none border py-2 px-3 outline-0 transition-colors duration-300 ease-in-out",
9
+ "bg-app-foreground font-poppins h-28 min-h-10 w-full appearance-none border px-3 py-2 outline-0 transition-colors duration-300 ease-in-out",
10
10
  "placeholder:select-none placeholder:text-gray-400",
11
11
  "invalid:border-error-500",
12
12
  "focus:border-primary-500",
13
13
  "active:border-primary-500",
14
- "disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600 disabled:cursor-not-allowed"
14
+ "disabled:cursor-not-allowed disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600"
15
15
  ],
16
16
  {
17
17
  variants: {
18
18
  invalid: {
19
19
  true: ["text-error-500 border-error-500 hover:border-error-400 focus:text-gray-100"],
20
- false: ["border-gray-600 hover:border-primary-600 text-gray-100"]
20
+ false: ["hover:border-primary-600 border-gray-600 text-gray-100"]
21
21
  }
22
22
  },
23
23
  defaultVariants: {
@@ -0,0 +1,9 @@
1
+ import { cn } from './chunk-ZD2QRAOX.js';
2
+ import { LoaderCircle } from 'lucide-react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function Spinner({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx(LoaderCircle, { role: "status", "aria-label": "Loading", className: cn("size-4 animate-spin", className), ...props });
7
+ }
8
+
9
+ export { Spinner };
@@ -0,0 +1,147 @@
1
+ 'use strict';
2
+
3
+ var chunkEIXSMEDP_cjs = require('./chunk-EIXSMEDP.cjs');
4
+ var chunkH2BWO3SI_cjs = require('./chunk-H2BWO3SI.cjs');
5
+ var reactSlot = require('@radix-ui/react-slot');
6
+ var classVarianceAuthority = require('class-variance-authority');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ var itemCva = classVarianceAuthority.cva(
10
+ [
11
+ "group/item flex items-center border border-transparent text-sm rounded-md transition-colors duration-100 flex-wrap outline-none",
12
+ "[a]:hover:bg-gray-900 [a]:transition-colors",
13
+ "focus-visible:ring-primary-500/50 focus-visible:ring-[3px]"
14
+ ],
15
+ {
16
+ variants: {
17
+ variant: {
18
+ default: "bg-transparent",
19
+ outlined: "border-gray-800"
20
+ },
21
+ size: {
22
+ default: "p-4 gap-4 ",
23
+ sm: "py-3 px-4 gap-2.5"
24
+ }
25
+ },
26
+ defaultVariants: {
27
+ variant: "default",
28
+ size: "default"
29
+ }
30
+ }
31
+ );
32
+ function Item({ className, variant = "default", size = "default", asChild = false, ...props }) {
33
+ const Comp = asChild ? reactSlot.Slot : "div";
34
+ return /* @__PURE__ */ jsxRuntime.jsx(
35
+ Comp,
36
+ {
37
+ "data-slot": "item",
38
+ "data-variant": variant,
39
+ "data-size": size,
40
+ className: chunkH2BWO3SI_cjs.cn(itemCva({ variant, size }), className),
41
+ ...props
42
+ }
43
+ );
44
+ }
45
+ var itemMediaVariants = classVarianceAuthority.cva(
46
+ [
47
+ "flex shrink-0 items-center justify-center gap-2 [&_svg]:pointer-events-none",
48
+ "group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start"
49
+ ],
50
+ {
51
+ variants: {
52
+ variant: {
53
+ default: "bg-transparent",
54
+ icon: "bg-gray-800 size-8 rounded border border-gray-600 [&_svg:not([class*='size-'])]:size-4",
55
+ image: "size-10 overflow-hidden rounded [&_img]:size-full [&_img]:object-cover"
56
+ }
57
+ },
58
+ defaultVariants: {
59
+ variant: "default"
60
+ }
61
+ }
62
+ );
63
+ function ItemMedia({ className, variant = "default", ...props }) {
64
+ return /* @__PURE__ */ jsxRuntime.jsx(
65
+ "div",
66
+ {
67
+ "data-slot": "item-media",
68
+ "data-variant": variant,
69
+ className: chunkH2BWO3SI_cjs.cn(itemMediaVariants({ variant, className })),
70
+ ...props
71
+ }
72
+ );
73
+ }
74
+ function ItemGroup({ className, ...props }) {
75
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "list", "data-slot": "item-group", className: chunkH2BWO3SI_cjs.cn("group/item-group flex flex-col", className), ...props });
76
+ }
77
+ function ItemActions({ className, ...props }) {
78
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "item-actions", className: chunkH2BWO3SI_cjs.cn("flex items-center gap-2", className), ...props });
79
+ }
80
+ function ItemContent({ className, ...props }) {
81
+ return /* @__PURE__ */ jsxRuntime.jsx(
82
+ "div",
83
+ {
84
+ "data-slot": "item-content",
85
+ className: chunkH2BWO3SI_cjs.cn("flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none", className),
86
+ ...props
87
+ }
88
+ );
89
+ }
90
+ function ItemDescription({ className, ...props }) {
91
+ return /* @__PURE__ */ jsxRuntime.jsx(
92
+ "p",
93
+ {
94
+ "data-slot": "item-description",
95
+ className: chunkH2BWO3SI_cjs.cn(
96
+ "line-clamp-2 text-sm leading-normal font-normal text-balance text-gray-400",
97
+ "[&>a:hover]:text-primary-500 [&>a]:underline [&>a]:underline-offset-4",
98
+ className
99
+ ),
100
+ ...props
101
+ }
102
+ );
103
+ }
104
+ function ItemFooter({ className, ...props }) {
105
+ return /* @__PURE__ */ jsxRuntime.jsx(
106
+ "div",
107
+ {
108
+ "data-slot": "item-footer",
109
+ className: chunkH2BWO3SI_cjs.cn("flex basis-full items-center justify-between gap-2", className),
110
+ ...props
111
+ }
112
+ );
113
+ }
114
+ function ItemHeader({ className, ...props }) {
115
+ return /* @__PURE__ */ jsxRuntime.jsx(
116
+ "div",
117
+ {
118
+ "data-slot": "item-header",
119
+ className: chunkH2BWO3SI_cjs.cn("flex basis-full items-center justify-between gap-2", className),
120
+ ...props
121
+ }
122
+ );
123
+ }
124
+ function ItemTitle({ className, ...props }) {
125
+ return /* @__PURE__ */ jsxRuntime.jsx(
126
+ "div",
127
+ {
128
+ "data-slot": "item-title",
129
+ className: chunkH2BWO3SI_cjs.cn("flex w-fit items-center gap-2 text-sm leading-snug font-medium text-gray-100", className),
130
+ ...props
131
+ }
132
+ );
133
+ }
134
+ function ItemSeparator({ className, ...props }) {
135
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkEIXSMEDP_cjs.Separator, { "data-slot": "item-separator", orientation: "horizontal", className: chunkH2BWO3SI_cjs.cn("my-0", className), ...props });
136
+ }
137
+
138
+ exports.Item = Item;
139
+ exports.ItemActions = ItemActions;
140
+ exports.ItemContent = ItemContent;
141
+ exports.ItemDescription = ItemDescription;
142
+ exports.ItemFooter = ItemFooter;
143
+ exports.ItemGroup = ItemGroup;
144
+ exports.ItemHeader = ItemHeader;
145
+ exports.ItemMedia = ItemMedia;
146
+ exports.ItemSeparator = ItemSeparator;
147
+ exports.ItemTitle = ItemTitle;