@equal-experts/kuat-react 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -42,6 +42,42 @@ pnpm add lucide-react
42
42
 
43
43
  **Note:** `@equal-experts/kuat-core` is bundled with this package - you don't need to install it separately. Only install the Radix UI packages for the components you actually use.
44
44
 
45
+ ### Recommended: Use Subpath Imports
46
+
47
+ To avoid installing all peer dependencies when you only need specific components, use **subpath imports**. This allows you to import only the components you need and only install their required peer dependencies.
48
+
49
+ **Example: Only using Button**
50
+
51
+ ```bash
52
+ # Only install peer dependencies for Button
53
+ pnpm add react react-dom @radix-ui/react-slot
54
+ ```
55
+
56
+ ```tsx
57
+ // Import from subpath - only Button and its dependencies are required
58
+ import { Button } from "@equal-experts/kuat-react/button";
59
+ ```
60
+
61
+ **Component Peer Dependencies:**
62
+
63
+ - **Button**: `react`, `react-dom`, `@radix-ui/react-slot`
64
+ - **Accordion**: `react`, `react-dom`, `@radix-ui/react-accordion`, `lucide-react`
65
+ - **AlertDialog**: `react`, `react-dom`, `@radix-ui/react-alert-dialog`
66
+ - **Badge**: `react`, `react-dom` (no additional Radix UI dependencies)
67
+
68
+ **Using Main Export (All Components):**
69
+
70
+ If you import from the main package, you'll need all peer dependencies:
71
+
72
+ ```tsx
73
+ // This requires ALL peer dependencies to be installed
74
+ import { Button, Accordion, AlertDialog } from "@equal-experts/kuat-react";
75
+ ```
76
+
77
+ **lucide-react Version Support:**
78
+
79
+ The package supports `lucide-react` versions `^0.344.0 || >=0.400.0`, including the latest versions (0.562.0+).
80
+
45
81
  ---
46
82
 
47
83
  ## Setup
@@ -144,18 +180,98 @@ If you want to use different fonts or load them differently, you can override th
144
180
 
145
181
  ---
146
182
 
183
+ ## AI Agent Documentation Setup
184
+
185
+ The Kuat Design System includes AI-friendly documentation optimized for LLM consumption. This documentation helps AI assistants understand the design system, generate code that follows design patterns, and maintain brand consistency.
186
+
187
+ ### Setup Documentation
188
+
189
+ To make the agent documentation available in your repository for LLM context (e.g., Cursor), run the setup script:
190
+
191
+ ```bash
192
+ # Using pnpm exec (recommended)
193
+ pnpm exec @equal-experts/kuat-react setup-docs
194
+
195
+ # Using npm exec
196
+ npm exec @equal-experts/kuat-react setup-docs
197
+
198
+ # Or if you have the package installed locally
199
+ cd node_modules/@equal-experts/kuat-react && pnpm setup-docs
200
+ ```
201
+
202
+ This will copy the agent documentation to `.cursor/rules/kuat-docs/` in your repository root.
203
+
204
+ ### What Gets Copied
205
+
206
+ The setup script copies the following documentation:
207
+
208
+ - **Design System** (`design/`) - Colors, typography, spacing, borders, layouts, logo usage
209
+ - **Component Guidelines** (`components/`) - Component development patterns and best practices
210
+ - **Content Guidelines** (`content/`) - Content writing guidelines for marketing, sales, and product interfaces
211
+
212
+ ### Using the Documentation
213
+
214
+ Once copied, you can:
215
+
216
+ 1. **Reference in Cursor Rules**: Add references to `.cursor/rules/kuat-docs/` in your `.cursorrules` file
217
+ 2. **LLM Context**: The documentation is optimized for LLM consumption and provides context for:
218
+ - Understanding the design system
219
+ - Using components correctly
220
+ - Maintaining brand consistency
221
+ - Writing appropriate content
222
+
223
+ ### Updating Documentation
224
+
225
+ After installing a new version of `@equal-experts/kuat-react`, run the setup script again to update the documentation:
226
+
227
+ ```bash
228
+ pnpm exec @equal-experts/kuat-react setup-docs
229
+ ```
230
+
231
+ The script will automatically clean and replace the existing documentation.
232
+
233
+ ### Documentation Location
234
+
235
+ The documentation is copied to:
236
+ ```
237
+ .cursor/rules/kuat-docs/
238
+ ```
239
+
240
+ This location is chosen because:
241
+ - It's within the `.cursor/` directory (typically gitignored)
242
+ - It's in the `rules/` subdirectory where Cursor looks for context files
243
+ - It's clearly namespaced as `kuat-docs/` to avoid conflicts
244
+
245
+ ---
246
+
147
247
  ## Basic Usage
148
248
 
149
249
  ### Import Components
150
250
 
251
+ You can import components in two ways:
252
+
253
+ **Option 1: Subpath Import (Recommended for single components)**
254
+
151
255
  ```typescript
256
+ // Import only Button - only requires Button's peer dependencies
257
+ import { Button } from "@equal-experts/kuat-react/button";
258
+ ```
259
+
260
+ **Option 2: Main Package Import**
261
+
262
+ ```typescript
263
+ // Import from main package - requires all peer dependencies
152
264
  import { Button } from "@equal-experts/kuat-react";
153
265
  ```
154
266
 
155
267
  ### Use in Your App
156
268
 
157
269
  ```tsx
158
- import { Button } from "@equal-experts/kuat-react";
270
+ // Recommended: Subpath import
271
+ import { Button } from "@equal-experts/kuat-react/button";
272
+
273
+ // Or: Main package import
274
+ // import { Button } from "@equal-experts/kuat-react";
159
275
 
160
276
  function App() {
161
277
  return (
@@ -0,0 +1,46 @@
1
+ import { jsx as t, jsxs as c } from "react/jsx-runtime";
2
+ import * as s from "react";
3
+ import * as a from "@radix-ui/react-accordion";
4
+ import { ChevronDown as d } from "lucide-react";
5
+ import { c as i } from "./styles-qaFjX9_3.js";
6
+ const w = a.Root, m = s.forwardRef(({ className: e, ...o }, r) => /* @__PURE__ */ t(
7
+ a.Item,
8
+ {
9
+ ref: r,
10
+ className: i("border-b", e),
11
+ ...o
12
+ }
13
+ ));
14
+ m.displayName = "AccordionItem";
15
+ const l = s.forwardRef(({ className: e, children: o, ...r }, n) => /* @__PURE__ */ t(a.Header, { className: "flex", children: /* @__PURE__ */ c(
16
+ a.Trigger,
17
+ {
18
+ ref: n,
19
+ className: i(
20
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 ",
21
+ e
22
+ ),
23
+ ...r,
24
+ children: [
25
+ o,
26
+ /* @__PURE__ */ t(d, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
27
+ ]
28
+ }
29
+ ) }));
30
+ l.displayName = a.Trigger.displayName;
31
+ const f = s.forwardRef(({ className: e, children: o, ...r }, n) => /* @__PURE__ */ t(
32
+ a.Content,
33
+ {
34
+ ref: n,
35
+ className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
36
+ ...r,
37
+ children: /* @__PURE__ */ t("div", { className: i("pb-4 pt-0", e), children: o })
38
+ }
39
+ ));
40
+ f.displayName = a.Content.displayName;
41
+ export {
42
+ w as A,
43
+ m as a,
44
+ l as b,
45
+ f as c
46
+ };
@@ -0,0 +1,2 @@
1
+ export { cn } from './lib/utils';
2
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from './components/ui/accordion';
@@ -0,0 +1,9 @@
1
+ import { c as r } from "./styles-qaFjX9_3.js";
2
+ import { A as a, c as e, a as i, b as s } from "./accordion-Da2BsKRK.js";
3
+ export {
4
+ a as Accordion,
5
+ e as AccordionContent,
6
+ i as AccordionItem,
7
+ s as AccordionTrigger,
8
+ r as cn
9
+ };
@@ -0,0 +1,113 @@
1
+ import { jsx as s, jsxs as n } from "react/jsx-runtime";
2
+ import * as i from "react";
3
+ import * as t from "@radix-ui/react-alert-dialog";
4
+ import { c as l } from "./styles-qaFjX9_3.js";
5
+ import { b as r } from "./button-X-yV4Iwq.js";
6
+ const w = t.Root, b = t.Trigger, m = t.Portal, d = i.forwardRef(({ className: a, ...e }, o) => /* @__PURE__ */ s(
7
+ t.Overlay,
8
+ {
9
+ className: l(
10
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
11
+ a
12
+ ),
13
+ ...e,
14
+ ref: o
15
+ }
16
+ ));
17
+ d.displayName = t.Overlay.displayName;
18
+ const c = i.forwardRef(({ className: a, ...e }, o) => /* @__PURE__ */ n(m, { children: [
19
+ /* @__PURE__ */ s(d, {}),
20
+ /* @__PURE__ */ s(
21
+ t.Content,
22
+ {
23
+ ref: o,
24
+ className: l(
25
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
26
+ a
27
+ ),
28
+ ...e
29
+ }
30
+ )
31
+ ] }));
32
+ c.displayName = t.Content.displayName;
33
+ const f = ({
34
+ className: a,
35
+ ...e
36
+ }) => /* @__PURE__ */ s(
37
+ "div",
38
+ {
39
+ className: l(
40
+ "flex flex-col space-y-2 text-center sm:text-left",
41
+ a
42
+ ),
43
+ ...e
44
+ }
45
+ );
46
+ f.displayName = "AlertDialogHeader";
47
+ const p = ({
48
+ className: a,
49
+ ...e
50
+ }) => /* @__PURE__ */ s(
51
+ "div",
52
+ {
53
+ className: l(
54
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
55
+ a
56
+ ),
57
+ ...e
58
+ }
59
+ );
60
+ p.displayName = "AlertDialogFooter";
61
+ const g = i.forwardRef(({ className: a, ...e }, o) => /* @__PURE__ */ s(
62
+ t.Title,
63
+ {
64
+ ref: o,
65
+ className: l("text-lg font-semibold", a),
66
+ ...e
67
+ }
68
+ ));
69
+ g.displayName = t.Title.displayName;
70
+ const N = i.forwardRef(({ className: a, ...e }, o) => /* @__PURE__ */ s(
71
+ t.Description,
72
+ {
73
+ ref: o,
74
+ className: l("text-sm text-muted-foreground", a),
75
+ ...e
76
+ }
77
+ ));
78
+ N.displayName = t.Description.displayName;
79
+ const y = i.forwardRef(({ className: a, ...e }, o) => /* @__PURE__ */ s(
80
+ t.Action,
81
+ {
82
+ ref: o,
83
+ className: l(r(), a),
84
+ ...e
85
+ }
86
+ ));
87
+ y.displayName = t.Action.displayName;
88
+ const x = i.forwardRef(({ className: a, ...e }, o) => /* @__PURE__ */ s(
89
+ t.Cancel,
90
+ {
91
+ ref: o,
92
+ className: l(
93
+ r({ variant: "outline" }),
94
+ "mt-2 sm:mt-0",
95
+ a
96
+ ),
97
+ ...e
98
+ }
99
+ ));
100
+ x.displayName = t.Cancel.displayName;
101
+ export {
102
+ w as A,
103
+ m as a,
104
+ d as b,
105
+ b as c,
106
+ c as d,
107
+ f as e,
108
+ p as f,
109
+ g,
110
+ N as h,
111
+ y as i,
112
+ x as j
113
+ };
@@ -0,0 +1,2 @@
1
+ export { cn } from './lib/utils';
2
+ export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, } from './components/ui/alert-dialog';
@@ -0,0 +1,16 @@
1
+ import { c as e } from "./styles-qaFjX9_3.js";
2
+ import { A as o, i as t, j as i, d as g, h as s, f as A, e as D, b as c, a as n, g as f, c as p } from "./alert-dialog-C769FFOM.js";
3
+ export {
4
+ o as AlertDialog,
5
+ t as AlertDialogAction,
6
+ i as AlertDialogCancel,
7
+ g as AlertDialogContent,
8
+ s as AlertDialogDescription,
9
+ A as AlertDialogFooter,
10
+ D as AlertDialogHeader,
11
+ c as AlertDialogOverlay,
12
+ n as AlertDialogPortal,
13
+ f as AlertDialogTitle,
14
+ p as AlertDialogTrigger,
15
+ e as cn
16
+ };
@@ -0,0 +1,26 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { c as o } from "./index-D5fkjZ2l.js";
3
+ import { c as a } from "./styles-qaFjX9_3.js";
4
+ const s = o(
5
+ "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ default: "border-transparent bg-primary text-primary-foreground",
10
+ secondary: "border-transparent bg-secondary text-secondary-foreground",
11
+ destructive: "border-transparent bg-destructive text-destructive-foreground",
12
+ outline: "text-foreground"
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ variant: "default"
17
+ }
18
+ }
19
+ );
20
+ function u({ className: r, variant: t, ...e }) {
21
+ return /* @__PURE__ */ n("div", { className: a(s({ variant: t }), r), ...e });
22
+ }
23
+ export {
24
+ u as B,
25
+ s as b
26
+ };
@@ -0,0 +1,3 @@
1
+ export { cn } from './lib/utils';
2
+ export { Badge, badgeVariants } from './components/ui/badge';
3
+ export type { BadgeProps } from './components/ui/badge';
package/dist/badge.js ADDED
@@ -0,0 +1,7 @@
1
+ import { c as e } from "./styles-qaFjX9_3.js";
2
+ import { B as s, b as t } from "./badge-BXjC4NYJ.js";
3
+ export {
4
+ s as Badge,
5
+ t as badgeVariants,
6
+ e as cn
7
+ };
@@ -0,0 +1,44 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import * as a from "react";
3
+ import { Slot as d } from "@radix-ui/react-slot";
4
+ import { c } from "./index-D5fkjZ2l.js";
5
+ import { c as u } from "./styles-qaFjX9_3.js";
6
+ const f = c(
7
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
12
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
13
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
14
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
15
+ ghost: "hover:bg-accent hover:text-accent-foreground",
16
+ link: "text-primary underline-offset-4 hover:underline"
17
+ },
18
+ size: {
19
+ default: "h-10 px-4 py-2",
20
+ sm: "h-9 rounded-md px-3",
21
+ lg: "h-11 rounded-md px-8",
22
+ icon: "h-10 w-10"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ variant: "default",
27
+ size: "default"
28
+ }
29
+ }
30
+ ), g = a.forwardRef(
31
+ ({ className: e, variant: r, size: t, asChild: o = !1, ...n }, i) => /* @__PURE__ */ s(
32
+ o ? d : "button",
33
+ {
34
+ className: u(f({ variant: r, size: t, className: e })),
35
+ ref: i,
36
+ ...n
37
+ }
38
+ )
39
+ );
40
+ g.displayName = "Button";
41
+ export {
42
+ g as B,
43
+ f as b
44
+ };
@@ -0,0 +1,93 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { Slot as d } from "@radix-ui/react-slot";
3
+ import { c as u } from "./index-D5fkjZ2l.js";
4
+ import { c as e } from "./styles-qaFjX9_3.js";
5
+ import * as c from "react";
6
+ import * as n from "@radix-ui/react-separator";
7
+ const i = c.forwardRef(
8
+ ({ className: o, orientation: t = "horizontal", decorative: r = !0, ...s }, l) => /* @__PURE__ */ a(
9
+ n.Root,
10
+ {
11
+ ref: l,
12
+ decorative: r,
13
+ orientation: t,
14
+ className: e(
15
+ "shrink-0 bg-border",
16
+ t === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
17
+ o
18
+ ),
19
+ ...s
20
+ }
21
+ )
22
+ );
23
+ i.displayName = n.Root.displayName;
24
+ const p = u(
25
+ "flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
26
+ {
27
+ variants: {
28
+ orientation: {
29
+ horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
30
+ vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ orientation: "horizontal"
35
+ }
36
+ }
37
+ );
38
+ function g({
39
+ className: o,
40
+ orientation: t,
41
+ ...r
42
+ }) {
43
+ return /* @__PURE__ */ a(
44
+ "div",
45
+ {
46
+ role: "group",
47
+ "data-slot": "button-group",
48
+ "data-orientation": t,
49
+ className: e(p({ orientation: t }), o),
50
+ ...r
51
+ }
52
+ );
53
+ }
54
+ function v({
55
+ className: o,
56
+ asChild: t = !1,
57
+ ...r
58
+ }) {
59
+ return /* @__PURE__ */ a(
60
+ t ? d : "div",
61
+ {
62
+ className: e(
63
+ "bg-muted shadow-xs flex items-center gap-2 rounded-md border px-4 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",
64
+ o
65
+ ),
66
+ ...r
67
+ }
68
+ );
69
+ }
70
+ function x({
71
+ className: o,
72
+ orientation: t = "vertical",
73
+ ...r
74
+ }) {
75
+ return /* @__PURE__ */ a(
76
+ i,
77
+ {
78
+ "data-slot": "button-group-separator",
79
+ orientation: t,
80
+ className: e(
81
+ "bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto",
82
+ o
83
+ ),
84
+ ...r
85
+ }
86
+ );
87
+ }
88
+ export {
89
+ g as B,
90
+ x as a,
91
+ v as b,
92
+ p as c
93
+ };
@@ -0,0 +1,2 @@
1
+ export { cn } from './lib/utils';
2
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants, } from './components/ui/button-group';
@@ -0,0 +1,9 @@
1
+ import { c as r } from "./styles-qaFjX9_3.js";
2
+ import { B as u, a as p, b as n, c as s } from "./button-group-C55D9oj4.js";
3
+ export {
4
+ u as ButtonGroup,
5
+ p as ButtonGroupSeparator,
6
+ n as ButtonGroupText,
7
+ s as buttonGroupVariants,
8
+ r as cn
9
+ };
@@ -0,0 +1,3 @@
1
+ export { cn } from './lib/utils';
2
+ export { Button, buttonVariants } from './components/ui/button';
3
+ export type { ButtonProps } from './components/ui/button';
package/dist/button.js ADDED
@@ -0,0 +1,7 @@
1
+ import { c as a } from "./styles-qaFjX9_3.js";
2
+ import { B as n, b as s } from "./button-X-yV4Iwq.js";
3
+ export {
4
+ n as Button,
5
+ s as buttonVariants,
6
+ a as cn
7
+ };
@@ -0,0 +1,12 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import { Separator } from './separator';
3
+
4
+ declare const buttonGroupVariants: (props?: ({
5
+ orientation?: "horizontal" | "vertical" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ declare function ButtonGroup({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof buttonGroupVariants>): import("react/jsx-runtime").JSX.Element;
8
+ declare function ButtonGroupText({ className, asChild, ...props }: React.ComponentProps<"div"> & {
9
+ asChild?: boolean;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ declare function ButtonGroupSeparator({ className, orientation, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
12
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants, };
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
@@ -0,0 +1,34 @@
1
+ import { a as O } from "./styles-qaFjX9_3.js";
2
+ const m = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, y = O, j = (e, l) => (n) => {
3
+ var u;
4
+ if ((l == null ? void 0 : l.variants) == null) return y(e, n == null ? void 0 : n.class, n == null ? void 0 : n.className);
5
+ const { variants: r, defaultVariants: d } = l, V = Object.keys(r).map((t) => {
6
+ const a = n == null ? void 0 : n[t], s = d == null ? void 0 : d[t];
7
+ if (a === null) return null;
8
+ const i = m(a) || m(s);
9
+ return r[t][i];
10
+ }), v = n && Object.entries(n).reduce((t, a) => {
11
+ let [s, i] = a;
12
+ return i === void 0 || (t[s] = i), t;
13
+ }, {}), N = l == null || (u = l.compoundVariants) === null || u === void 0 ? void 0 : u.reduce((t, a) => {
14
+ let { class: s, className: i, ...f } = a;
15
+ return Object.entries(f).every((C) => {
16
+ let [c, o] = C;
17
+ return Array.isArray(o) ? o.includes({
18
+ ...d,
19
+ ...v
20
+ }[c]) : {
21
+ ...d,
22
+ ...v
23
+ }[c] === o;
24
+ }) ? [
25
+ ...t,
26
+ s,
27
+ i
28
+ ] : t;
29
+ }, []);
30
+ return y(e, V, N, n == null ? void 0 : n.class, n == null ? void 0 : n.className);
31
+ };
32
+ export {
33
+ j as c
34
+ };
package/dist/index.d.ts CHANGED
@@ -5,3 +5,4 @@ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from '.
5
5
  export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, } from './components/ui/alert-dialog';
6
6
  export { Badge, badgeVariants } from './components/ui/badge';
7
7
  export type { BadgeProps } from './components/ui/badge';
8
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants, } from './components/ui/button-group';