@tetrascience-npm/tetrascience-react-ui 1.0.0-beta.141.1 → 1.0.0-beta.143.1

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("class-variance-authority"),l=require("radix-ui"),u=require("./separator.cjs"),a=require("../lib/utils.cjs"),n=i.cva("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"}},defaultVariants:{orientation:"horizontal"}});function d({className:o,orientation:t,...e}){return r.jsx("div",{role:"group","data-slot":"button-group","data-orientation":t,className:a.cn(n({orientation:t}),o),...e})}function c({className:o,asChild:t=!1,...e}){const s=t?l.Slot.Root:"div";return r.jsx(s,{className:a.cn("flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",o),...e})}function p({className:o,orientation:t="vertical",...e}){return r.jsx(u.Separator,{"data-slot":"button-group-separator",orientation:t,className:a.cn("relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",o),...e})}exports.ButtonGroup=d;exports.ButtonGroupSeparator=p;exports.ButtonGroupText=c;exports.buttonGroupVariants=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("class-variance-authority"),l=require("radix-ui"),u=require("./separator.cjs"),a=require("../lib/utils.cjs"),n=i.cva("flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",{variants:{orientation:{horizontal:"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>*:has(+[data-slot=button-group-separator])]:border-r-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!",vertical:"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>*:has(+[data-slot=button-group-separator])]:border-b-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"}},defaultVariants:{orientation:"horizontal"}});function d({className:o,orientation:t,...r}){return e.jsx("div",{role:"group","data-slot":"button-group","data-orientation":t,className:a.cn(n({orientation:t}),o),...r})}function c({className:o,asChild:t=!1,...r}){const s=t?l.Slot.Root:"div";return e.jsx(s,{className:a.cn("flex items-center gap-2 rounded-lg border px-2.5 text-sm font-normal text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",o),...r})}function p({className:o,orientation:t="vertical",...r}){return e.jsx(u.Separator,{"data-slot":"button-group-separator",orientation:t,className:a.cn("relative self-stretch bg-border data-horizontal:w-auto data-vertical:h-auto",o),...r})}exports.ButtonGroup=d;exports.ButtonGroupSeparator=p;exports.ButtonGroupText=c;exports.buttonGroupVariants=n;
2
2
  //# sourceMappingURL=button-group.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.cjs","sources":["../../src/components/ui/button-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { Separator } from \"@/components/ui/separator\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n"],"names":["buttonGroupVariants","cva","ButtonGroup","className","orientation","props","jsx","cn","ButtonGroupText","asChild","Comp","Slot","ButtonGroupSeparator","Separator"],"mappings":"4OAMMA,EAAsBC,EAAAA,IAC1B,2RACA,CACE,SAAU,CACR,YAAa,CACX,WACE,wKACF,SACE,gLAAA,CACJ,EAEF,gBAAiB,CACf,YAAa,YAAA,CACf,CAEJ,EAEA,SAASC,EAAY,CACnB,UAAAC,EACA,YAAAC,EACA,GAAGC,CACL,EAA2E,CACzE,OACEC,EAAAA,IAAC,MAAA,CACC,KAAK,QACL,YAAU,eACV,mBAAkBF,EAClB,UAAWG,EAAAA,GAAGP,EAAoB,CAAE,YAAAI,CAAA,CAAa,EAAGD,CAAS,EAC5D,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASG,EAAgB,CACvB,UAAAL,EACA,QAAAM,EAAU,GACV,GAAGJ,CACL,EAEG,CACD,MAAMK,EAAOD,EAAUE,EAAAA,KAAK,KAAO,MAEnC,OACEL,EAAAA,IAACI,EAAA,CACC,UAAWH,EAAAA,GACT,iJACAJ,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASO,EAAqB,CAC5B,UAAAT,EACA,YAAAC,EAAc,WACd,GAAGC,CACL,EAA2C,CACzC,OACEC,EAAAA,IAACO,EAAAA,UAAA,CACC,YAAU,yBACV,YAAAT,EACA,UAAWG,EAAAA,GACT,uHACAJ,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"button-group.cjs","sources":["../../src/components/ui/button-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { Separator } from \"@/components/ui/separator\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>*:has(+[data-slot=button-group-separator])]:border-r-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>*:has(+[data-slot=button-group-separator])]:border-b-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-lg border px-2.5 text-sm font-normal text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-border data-horizontal:w-auto data-vertical:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n"],"names":["buttonGroupVariants","cva","ButtonGroup","className","orientation","props","jsx","cn","ButtonGroupText","asChild","Comp","Slot","ButtonGroupSeparator","Separator"],"mappings":"4OAMMA,EAAsBC,EAAAA,IAC1B,2RACA,CACE,SAAU,CACR,YAAa,CACX,WACE,kOACF,SACE,0OAAA,CACJ,EAEF,gBAAiB,CACf,YAAa,YAAA,CACf,CAEJ,EAEA,SAASC,EAAY,CACnB,UAAAC,EACA,YAAAC,EACA,GAAGC,CACL,EAA2E,CACzE,OACEC,EAAAA,IAAC,MAAA,CACC,KAAK,QACL,YAAU,eACV,mBAAkBF,EAClB,UAAWG,EAAAA,GAAGP,EAAoB,CAAE,YAAAI,CAAA,CAAa,EAAGD,CAAS,EAC5D,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASG,EAAgB,CACvB,UAAAL,EACA,QAAAM,EAAU,GACV,GAAGJ,CACL,EAEG,CACD,MAAMK,EAAOD,EAAUE,EAAAA,KAAK,KAAO,MAEnC,OACEL,EAAAA,IAACI,EAAA,CACC,UAAWH,EAAAA,GACT,8JACAJ,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASO,EAAqB,CAC5B,UAAAT,EACA,YAAAC,EAAc,WACd,GAAGC,CACL,EAA2C,CACzC,OACEC,EAAAA,IAACO,EAAAA,UAAA,CACC,YAAU,yBACV,YAAAT,EACA,UAAWG,EAAAA,GACT,8EACAJ,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
@@ -1,15 +1,15 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
2
  import { cva as s } from "class-variance-authority";
3
- import { Slot as i } from "radix-ui";
4
- import { Separator as l } from "./separator.js";
3
+ import { Slot as l } from "radix-ui";
4
+ import { Separator as i } from "./separator.js";
5
5
  import { cn as e } from "../lib/utils.js";
6
6
  const d = s(
7
7
  "flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
8
8
  {
9
9
  variants: {
10
10
  orientation: {
11
- horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!",
12
- vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"
11
+ horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>*:has(+[data-slot=button-group-separator])]:border-r-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!",
12
+ vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>*:has(+[data-slot=button-group-separator])]:border-b-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!"
13
13
  }
14
14
  },
15
15
  defaultVariants: {
@@ -33,35 +33,35 @@ function h({
33
33
  }
34
34
  );
35
35
  }
36
- function g({
36
+ function m({
37
37
  className: o,
38
38
  asChild: t = !1,
39
39
  ...r
40
40
  }) {
41
- const n = t ? i.Root : "div";
41
+ const n = t ? l.Root : "div";
42
42
  return /* @__PURE__ */ a(
43
43
  n,
44
44
  {
45
45
  className: e(
46
- "flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
46
+ "flex items-center gap-2 rounded-lg border px-2.5 text-sm font-normal text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
47
47
  o
48
48
  ),
49
49
  ...r
50
50
  }
51
51
  );
52
52
  }
53
- function v({
53
+ function b({
54
54
  className: o,
55
55
  orientation: t = "vertical",
56
56
  ...r
57
57
  }) {
58
58
  return /* @__PURE__ */ a(
59
- l,
59
+ i,
60
60
  {
61
61
  "data-slot": "button-group-separator",
62
62
  orientation: t,
63
63
  className: e(
64
- "relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",
64
+ "relative self-stretch bg-border data-horizontal:w-auto data-vertical:h-auto",
65
65
  o
66
66
  ),
67
67
  ...r
@@ -70,8 +70,8 @@ function v({
70
70
  }
71
71
  export {
72
72
  h as ButtonGroup,
73
- v as ButtonGroupSeparator,
74
- g as ButtonGroupText,
73
+ b as ButtonGroupSeparator,
74
+ m as ButtonGroupText,
75
75
  d as buttonGroupVariants
76
76
  };
77
77
  //# sourceMappingURL=button-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.js","sources":["../../src/components/ui/button-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { Separator } from \"@/components/ui/separator\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-input data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n"],"names":["buttonGroupVariants","cva","ButtonGroup","className","orientation","props","jsx","cn","ButtonGroupText","asChild","Comp","Slot","ButtonGroupSeparator","Separator"],"mappings":";;;;;AAMA,MAAMA,IAAsBC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,aAAa;AAAA,QACX,YACE;AAAA,QACF,UACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ;AAEA,SAASC,EAAY;AAAA,EACnB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACL,GAA2E;AACzE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkBF;AAAA,MAClB,WAAWG,EAAGP,EAAoB,EAAE,aAAAI,EAAA,CAAa,GAAGD,CAAS;AAAA,MAC5D,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAgB;AAAA,EACvB,WAAAL;AAAA,EACA,SAAAM,IAAU;AAAA,EACV,GAAGJ;AACL,GAEG;AACD,QAAMK,IAAOD,IAAUE,EAAK,OAAO;AAEnC,SACE,gBAAAL;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAWH;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASO,EAAqB;AAAA,EAC5B,WAAAT;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,GAAGC;AACL,GAA2C;AACzC,SACE,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,aAAAT;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"button-group.js","sources":["../../src/components/ui/button-group.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { Separator } from \"@/components/ui/separator\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none [&>*:has(+[data-slot=button-group-separator])]:border-r-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg!\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none [&>*:has(+[data-slot=button-group-separator])]:border-b-0 [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg!\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n className={cn(\n \"flex items-center gap-2 rounded-lg border px-2.5 text-sm font-normal text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-border data-horizontal:w-auto data-vertical:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n"],"names":["buttonGroupVariants","cva","ButtonGroup","className","orientation","props","jsx","cn","ButtonGroupText","asChild","Comp","Slot","ButtonGroupSeparator","Separator"],"mappings":";;;;;AAMA,MAAMA,IAAsBC;AAAA,EAC1B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,aAAa;AAAA,QACX,YACE;AAAA,QACF,UACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ;AAEA,SAASC,EAAY;AAAA,EACnB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACL,GAA2E;AACzE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,oBAAkBF;AAAA,MAClB,WAAWG,EAAGP,EAAoB,EAAE,aAAAI,EAAA,CAAa,GAAGD,CAAS;AAAA,MAC5D,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAgB;AAAA,EACvB,WAAAL;AAAA,EACA,SAAAM,IAAU;AAAA,EACV,GAAGJ;AACL,GAEG;AACD,QAAMK,IAAOD,IAAUE,EAAK,OAAO;AAEnC,SACE,gBAAAL;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,WAAWH;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASO,EAAqB;AAAA,EAC5B,WAAAT;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,GAAGC;AACL,GAA2C;AACzC,SACE,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,aAAAT;AAAA,MACA,WAAWG;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),s=require("class-variance-authority"),u=require("radix-ui"),c=require("../lib/utils.cjs"),t=s.cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]",outline:"border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function l({className:n,variant:e="default",size:a="default",asChild:r=!1,...i}){const o=r?u.Slot.Root:"button";return d.jsx(o,{"data-slot":"button","data-variant":e,"data-size":a,className:c.cn(t({variant:e,size:a,className:n})),...i})}exports.Button=l;exports.buttonVariants=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),d=require("class-variance-authority"),u=require("radix-ui"),c=require("../lib/utils.cjs"),r=d.cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]",outline:"border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function l({className:t,variant:e="default",size:a="default",asChild:n=!1,...i}){const o=n?u.Slot.Root:"button";return s.jsx(o,{"data-slot":"button","data-variant":e,"data-size":a,className:c.cn(r({variant:e,size:a,className:t})),...i})}exports.Button=l;exports.buttonVariants=r;
2
2
  //# sourceMappingURL=button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs","sources":["../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]\",\n outline:\n \"border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"+MAMMA,EAAiBC,EAAAA,IACrB,mfACA,CACE,SAAU,CACR,QAAS,CACP,QACE,iHACF,QACE,2JACF,UACE,4LACF,MACE,4GACF,YACE,yGACF,KAAM,iDAAA,EAER,KAAM,CACJ,QACE,uFACF,GAAI,gNACJ,GAAI,0NACJ,GAAI,uFACJ,KAAM,SACN,UACE,0HACF,UACE,qFACF,UAAW,QAAA,CACb,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACH,MAAMC,EAAOF,EAAUG,EAAAA,KAAK,KAAO,SAEnC,OACEC,EAAAA,IAACF,EAAA,CACC,YAAU,SACV,eAAcJ,EACd,YAAWC,EACX,UAAWM,EAAAA,GAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGI,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"button.cjs","sources":["../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]\",\n outline:\n \"border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":"+MAMMA,EAAiBC,EAAAA,IACrB,mfACA,CACE,SAAU,CACR,QAAS,CACP,QACE,iHACF,QACE,uQACF,UACE,4LACF,MACE,wNACF,YACE,yGACF,KAAM,iDAAA,EAER,KAAM,CACJ,QACE,uFACF,GAAI,gNACJ,GAAI,0NACJ,GAAI,uFACJ,KAAM,SACN,UACE,0HACF,UACE,qFACF,UAAW,QAAA,CACb,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,QAAAC,EAAU,GACV,GAAGC,CACL,EAGK,CACH,MAAMC,EAAOF,EAAUG,EAAAA,KAAK,KAAO,SAEnC,OACEC,EAAAA,IAACF,EAAA,CACC,YAAU,SACV,eAAcJ,EACd,YAAWC,EACX,UAAWM,EAAAA,GAAGX,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGI,CAAA,CAAA,CAGV"}
package/dist/ui/button.js CHANGED
@@ -8,9 +8,9 @@ const u = d(
8
8
  variants: {
9
9
  variant: {
10
10
  default: "bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]",
11
- outline: "border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input",
11
+ outline: "border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)",
12
12
  secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
13
- ghost: "hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground",
13
+ ghost: "hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)",
14
14
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40",
15
15
  link: "text-primary underline-offset-4 hover:underline"
16
16
  },
@@ -32,21 +32,21 @@ const u = d(
32
32
  }
33
33
  );
34
34
  function b({
35
- className: r,
35
+ className: a,
36
36
  variant: e = "default",
37
- size: a = "default",
38
- asChild: n = !1,
39
- ...t
37
+ size: r = "default",
38
+ asChild: t = !1,
39
+ ...n
40
40
  }) {
41
- const o = n ? s.Root : "button";
41
+ const o = t ? s.Root : "button";
42
42
  return /* @__PURE__ */ i(
43
43
  o,
44
44
  {
45
45
  "data-slot": "button",
46
46
  "data-variant": e,
47
- "data-size": a,
48
- className: c(u({ variant: e, size: a, className: r })),
49
- ...t
47
+ "data-size": r,
48
+ className: c(u({ variant: e, size: r, className: a })),
49
+ ...n
50
50
  }
51
51
  );
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sources":["../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]\",\n outline:\n \"border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":";;;;AAMA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,aACE;AAAA,QACF,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,SACE;AAAA,QACF,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WACE;AAAA,QACF,WACE;AAAA,QACF,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,SAASC,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAGK;AACH,QAAMC,IAAOF,IAAUG,EAAK,OAAO;AAEnC,SACE,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcJ;AAAA,MACd,aAAWC;AAAA,MACX,WAAWM,EAAGX,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"button.js","sources":["../../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:shadow-focus active:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus dark:aria-invalid:border-destructive/50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-[color-mix(in_oklab,var(--primary),var(--primary-foreground)_15%)]\",\n outline:\n \"border-border bg-transparent hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground dark:border-input aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklab,var(--secondary),var(--secondary-foreground)_15%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground aria-expanded:bg-accent aria-expanded:text-accent-foreground aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed)\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:border-destructive/40\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-8\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-lg\": \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","Slot","jsx","cn"],"mappings":";;;;AAMA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,aACE;AAAA,QACF,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,SACE;AAAA,QACF,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WACE;AAAA,QACF,WACE;AAAA,QACF,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,SAASC,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAGK;AACH,QAAMC,IAAOF,IAAUG,EAAK,OAAO;AAEnC,SACE,gBAAAC;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcJ;AAAA,MACd,aAAWC;AAAA,MACX,WAAWM,EAAGX,EAAe,EAAE,SAAAI,GAAS,MAAAC,GAAM,WAAAF,EAAA,CAAW,CAAC;AAAA,MACzD,GAAGI;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),n=require("radix-ui"),p=require("react"),c=require("./toggle.cjs"),u=require("../lib/utils.cjs");function f(a){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const t in a)if(t!=="default"){const e=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(r,t,e.get?e:{enumerable:!0,get:()=>a[t]})}}return r.default=a,Object.freeze(r)}const l=f(p),d=l.createContext({size:"default",variant:"default",spacing:0,orientation:"horizontal"});function m({className:a,variant:r,size:t,spacing:e=0,orientation:g="horizontal",children:o,...s}){return i.jsx(n.ToggleGroup.Root,{"data-slot":"toggle-group","data-variant":r,"data-size":t,"data-spacing":e,"data-orientation":g,style:{"--gap":e},className:u.cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch",a),...s,children:i.jsx(d.Provider,{value:{variant:r,size:t,spacing:e,orientation:g},children:o})})}function v({className:a,children:r,variant:t="default",size:e="default",...g}){const o=l.useContext(d);return i.jsx(n.ToggleGroup.Item,{"data-slot":"toggle-group-item","data-variant":o.variant||t,"data-size":o.size||e,"data-spacing":o.spacing,className:u.cn("shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",c.toggleVariants({variant:o.variant||t,size:o.size||e}),"aria-pressed:bg-primary aria-pressed:text-primary-foreground data-[state=on]:bg-primary data-[state=on]:text-primary-foreground",a),...g,children:r})}exports.ToggleGroup=m;exports.ToggleGroupItem=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),d=require("lucide-react"),c=require("radix-ui"),m=require("react"),v=require("./toggle.cjs"),s=require("../lib/utils.cjs");function x(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const u=x(m),p=u.createContext({size:"default",variant:"default",spacing:0,orientation:"horizontal"});function h({className:e,variant:r,size:t,spacing:a=0,orientation:g="horizontal",children:n,...o}){return i.jsx(c.ToggleGroup.Root,{"data-slot":"toggle-group","data-variant":r,"data-size":t,"data-spacing":a,"data-orientation":g,style:{"--gap":a},className:s.cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch",e),...o,children:i.jsx(p.Provider,{value:{variant:r,size:t,spacing:a,orientation:g},children:n})})}function z({className:e,children:r,variant:t="default",size:a="default",selectedIndicator:g,...n}){const o=u.useContext(p),l=(o.spacing??0)===0,f=o.orientation==="vertical"?"[&:not(:first-child)]:border-t-0":"[&:not(:first-child)]:border-l-0";return i.jsxs(c.ToggleGroup.Item,{"data-slot":"toggle-group-item","data-variant":o.variant||t,"data-size":o.size||a,"data-spacing":o.spacing,className:s.cn("shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg",v.toggleVariants({variant:o.variant||t,size:o.size||a}),l&&"border border-input",l&&f,e),...n,children:[g!=="none"&&i.jsxs("span",{"aria-hidden":!0,"data-slot":"toggle-group-indicator",className:s.cn("grid size-4 shrink-0 place-items-center [&>svg]:[grid-area:1/1]",g===void 0&&"group-has-[svg:not([data-slot=toggle-group-indicator]_svg)]/toggle:hidden"),children:[i.jsx(d.CircleDashed,{className:"size-3.5 text-muted-foreground/50 transition-opacity group-data-[state=on]/toggle:opacity-0"}),i.jsx(d.Check,{className:"size-3.5 opacity-0 transition-opacity group-data-[state=on]/toggle:opacity-100"})]}),r]})}exports.ToggleGroup=h;exports.ToggleGroupItem=z;
2
2
  //# sourceMappingURL=toggle-group.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-group.cjs","sources":["../../src/components/ui/toggle-group.tsx"],"sourcesContent":["import { type VariantProps } from \"class-variance-authority\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { toggleVariants } from \"@/components/ui/toggle\"\nimport { cn } from \"@/lib/utils\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n // SW-2292: selected group items use a high-contrast primary fill (the\n // shared toggle `on` state is the subtle bg-accent). twMerge drops the\n // inherited accent so this wins; standalone Toggle is unaffected.\n \"aria-pressed:bg-primary aria-pressed:text-primary-foreground data-[state=on]:bg-primary data-[state=on]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"names":["ToggleGroupContext","React","ToggleGroup","className","variant","size","spacing","orientation","children","props","jsx","ToggleGroupPrimitive","cn","ToggleGroupItem","context","toggleVariants"],"mappings":"gfAOMA,EAAqBC,EAAM,cAK/B,CACA,KAAM,UACN,QAAS,UACT,QAAS,EACT,YAAa,YACf,CAAC,EAED,SAASC,EAAY,CACnB,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,EACV,YAAAC,EAAc,aACd,SAAAC,EACA,GAAGC,CACL,EAIK,CACH,OACEC,EAAAA,IAACC,EAAAA,YAAqB,KAArB,CACC,YAAU,eACV,eAAcP,EACd,YAAWC,EACX,eAAcC,EACd,mBAAkBC,EAClB,MAAO,CAAE,QAASD,CAAA,EAClB,UAAWM,EAAAA,GACT,oMACAT,CAAA,EAED,GAAGM,EAEJ,SAAAC,EAAAA,IAACV,EAAmB,SAAnB,CACC,MAAO,CAAE,QAAAI,EAAS,KAAAC,EAAM,QAAAC,EAAS,YAAAC,CAAA,EAEhC,SAAAC,CAAA,CAAA,CACH,CAAA,CAGN,CAEA,SAASK,EAAgB,CACvB,UAAAV,EACA,SAAAK,EACA,QAAAJ,EAAU,UACV,KAAAC,EAAO,UACP,GAAGI,CACL,EACuC,CACrC,MAAMK,EAAUb,EAAM,WAAWD,CAAkB,EAEnD,OACEU,EAAAA,IAACC,EAAAA,YAAqB,KAArB,CACC,YAAU,oBACV,eAAcG,EAAQ,SAAWV,EACjC,YAAWU,EAAQ,MAAQT,EAC3B,eAAcS,EAAQ,QACtB,UAAWF,EAAAA,GACT,qvBACAG,iBAAe,CACb,QAASD,EAAQ,SAAWV,EAC5B,KAAMU,EAAQ,MAAQT,CAAA,CACvB,EAID,kIACAF,CAAA,EAED,GAAGM,EAEH,SAAAD,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"toggle-group.cjs","sources":["../../src/components/ui/toggle-group.tsx"],"sourcesContent":["import { type VariantProps } from \"class-variance-authority\"\nimport { CircleDashed, Check } from \"lucide-react\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { toggleVariants } from \"@/components/ui/toggle\"\nimport { cn } from \"@/lib/utils\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n selectedIndicator,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants> & {\n /**\n * Leading indicator for the selectable state (SW-2445). `\"dot\"` shows a\n * faint dotted ring when off that cross-fades to a check when on — a resting\n * affordance so an item reads as \"selectable\" and stays legible when every\n * option is selected.\n *\n * Defaults by content: **label-only** items get `\"dot\"`; items that render\n * an **icon** (icon-only or icon + label) get `\"none\"` — the icon carries\n * the state and there's no room for a ring. The default is decided in CSS\n * from the rendered DOM (`:has(svg)`), not from the React children, so a\n * label wrapped in a `<span>`, a translation component or a tooltip still\n * keeps its ring. Pass the prop to override either way.\n */\n selectedIndicator?: \"dot\" | \"none\"\n }) {\n const context = React.useContext(ToggleGroupContext)\n\n // Segmented (spacing=0) items carry their own border. Applied as plain\n // `border` rather than a `group-data-*:` variant on purpose: a group-scoped\n // selector compiles to specificity (0,2,0) and would silently beat a\n // consumer's own `border-r-0`/`border-l-0` in `className` (0,1,0). Plain\n // utilities stay at (0,1,0), so `className` keeps winning — which is the\n // contract every other component here follows.\n const segmented = (context.spacing ?? 0) === 0\n const collapseLeadingEdge =\n context.orientation === \"vertical\"\n ? \"[&:not(:first-child)]:border-t-0\"\n : \"[&:not(:first-child)]:border-l-0\"\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n // SW-2445: every segmented item is bordered (not only variant=outline),\n // so the group always reads as outlined and stays countable when all are\n // selected. Non-first items drop their shared (leading) edge so adjacent\n // borders collapse to a single divider. Border + rounded corners live on\n // the same element, so the selected fill always aligns with the outline.\n segmented && \"border border-input\",\n segmented && collapseLeadingEdge,\n className\n )}\n {...props}\n >\n {selectedIndicator !== \"none\" && (\n <span\n aria-hidden\n data-slot=\"toggle-group-indicator\"\n className={cn(\n \"grid size-4 shrink-0 place-items-center [&>svg]:[grid-area:1/1]\",\n // Content-aware default, decided in CSS rather than by inspecting\n // React children: hide the ring when the item renders any *other*\n // svg (an icon carries the state). Inspecting children would treat\n // a `<span>`-wrapped or translated label as \"has icon\" and silently\n // drop the ring — misaligning a group that mixes plain and wrapped\n // labels. `display:none` also drops the slot, so no layout shift.\n selectedIndicator === undefined &&\n \"group-has-[svg:not([data-slot=toggle-group-indicator]_svg)]/toggle:hidden\"\n )}\n >\n <CircleDashed className=\"size-3.5 text-muted-foreground/50 transition-opacity group-data-[state=on]/toggle:opacity-0\" />\n <Check className=\"size-3.5 opacity-0 transition-opacity group-data-[state=on]/toggle:opacity-100\" />\n </span>\n )}\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"names":["ToggleGroupContext","React","ToggleGroup","className","variant","size","spacing","orientation","children","props","jsx","ToggleGroupPrimitive","cn","ToggleGroupItem","selectedIndicator","context","segmented","collapseLeadingEdge","jsxs","toggleVariants","CircleDashed","Check"],"mappings":"0gBAQMA,EAAqBC,EAAM,cAK/B,CACA,KAAM,UACN,QAAS,UACT,QAAS,EACT,YAAa,YACf,CAAC,EAED,SAASC,EAAY,CACnB,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,EACV,YAAAC,EAAc,aACd,SAAAC,EACA,GAAGC,CACL,EAIK,CACH,OACEC,EAAAA,IAACC,EAAAA,YAAqB,KAArB,CACC,YAAU,eACV,eAAcP,EACd,YAAWC,EACX,eAAcC,EACd,mBAAkBC,EAClB,MAAO,CAAE,QAASD,CAAA,EAClB,UAAWM,EAAAA,GACT,oMACAT,CAAA,EAED,GAAGM,EAEJ,SAAAC,EAAAA,IAACV,EAAmB,SAAnB,CACC,MAAO,CAAE,QAAAI,EAAS,KAAAC,EAAM,QAAAC,EAAS,YAAAC,CAAA,EAEhC,SAAAC,CAAA,CAAA,CACH,CAAA,CAGN,CAEA,SAASK,EAAgB,CACvB,UAAAV,EACA,SAAAK,EACA,QAAAJ,EAAU,UACV,KAAAC,EAAO,UACP,kBAAAS,EACA,GAAGL,CACL,EAgBK,CACH,MAAMM,EAAUd,EAAM,WAAWD,CAAkB,EAQ7CgB,GAAaD,EAAQ,SAAW,KAAO,EACvCE,EACJF,EAAQ,cAAgB,WACpB,mCACA,mCAEN,OACEG,EAAAA,KAACP,EAAAA,YAAqB,KAArB,CACC,YAAU,oBACV,eAAcI,EAAQ,SAAWX,EACjC,YAAWW,EAAQ,MAAQV,EAC3B,eAAcU,EAAQ,QACtB,UAAWH,EAAAA,GACT,yZACAO,iBAAe,CACb,QAASJ,EAAQ,SAAWX,EAC5B,KAAMW,EAAQ,MAAQV,CAAA,CACvB,EAMDW,GAAa,sBACbA,GAAaC,EACbd,CAAA,EAED,GAAGM,EAEH,SAAA,CAAAK,IAAsB,QACrBI,EAAAA,KAAC,OAAA,CACC,cAAW,GACX,YAAU,yBACV,UAAWN,EAAAA,GACT,kEAOAE,IAAsB,QACpB,2EAAA,EAGJ,SAAA,CAAAJ,EAAAA,IAACU,EAAAA,aAAA,CAAa,UAAU,6FAAA,CAA8F,EACtHV,EAAAA,IAACW,EAAAA,MAAA,CAAM,UAAU,gFAAA,CAAiF,CAAA,CAAA,CAAA,EAGrGb,CAAA,CAAA,CAAA,CAGP"}
@@ -1,81 +1,109 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { ToggleGroup as d } from "radix-ui";
3
- import * as n from "react";
4
- import { toggleVariants as s } from "./toggle.js";
5
- import { cn as l } from "../lib/utils.js";
6
- const p = n.createContext({
1
+ import { jsx as g, jsxs as l } from "react/jsx-runtime";
2
+ import { CircleDashed as f, Check as v } from "lucide-react";
3
+ import { ToggleGroup as p } from "radix-ui";
4
+ import * as c from "react";
5
+ import { toggleVariants as h } from "./toggle.js";
6
+ import { cn as s } from "../lib/utils.js";
7
+ const u = c.createContext({
7
8
  size: "default",
8
9
  variant: "default",
9
10
  spacing: 0,
10
11
  orientation: "horizontal"
11
12
  });
12
- function x({
13
- className: g,
14
- variant: o,
15
- size: r,
16
- spacing: t = 0,
13
+ function G({
14
+ className: i,
15
+ variant: r,
16
+ size: o,
17
+ spacing: a = 0,
17
18
  orientation: e = "horizontal",
18
- children: a,
19
- ...u
19
+ children: n,
20
+ ...t
20
21
  }) {
21
- return /* @__PURE__ */ i(
22
- d.Root,
22
+ return /* @__PURE__ */ g(
23
+ p.Root,
23
24
  {
24
25
  "data-slot": "toggle-group",
25
- "data-variant": o,
26
- "data-size": r,
27
- "data-spacing": t,
26
+ "data-variant": r,
27
+ "data-size": o,
28
+ "data-spacing": a,
28
29
  "data-orientation": e,
29
- style: { "--gap": t },
30
- className: l(
30
+ style: { "--gap": a },
31
+ className: s(
31
32
  "group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch",
32
- g
33
+ i
33
34
  ),
34
- ...u,
35
- children: /* @__PURE__ */ i(
36
- p.Provider,
35
+ ...t,
36
+ children: /* @__PURE__ */ g(
37
+ u.Provider,
37
38
  {
38
- value: { variant: o, size: r, spacing: t, orientation: e },
39
- children: a
39
+ value: { variant: r, size: o, spacing: a, orientation: e },
40
+ children: n
40
41
  }
41
42
  )
42
43
  }
43
44
  );
44
45
  }
45
- function z({
46
- className: g,
47
- children: o,
48
- variant: r = "default",
49
- size: t = "default",
50
- ...e
46
+ function N({
47
+ className: i,
48
+ children: r,
49
+ variant: o = "default",
50
+ size: a = "default",
51
+ selectedIndicator: e,
52
+ ...n
51
53
  }) {
52
- const a = n.useContext(p);
53
- return /* @__PURE__ */ i(
54
- d.Item,
54
+ const t = c.useContext(u), d = (t.spacing ?? 0) === 0, m = t.orientation === "vertical" ? "[&:not(:first-child)]:border-t-0" : "[&:not(:first-child)]:border-l-0";
55
+ return /* @__PURE__ */ l(
56
+ p.Item,
55
57
  {
56
58
  "data-slot": "toggle-group-item",
57
- "data-variant": a.variant || r,
58
- "data-size": a.size || t,
59
- "data-spacing": a.spacing,
60
- className: l(
61
- "shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
62
- s({
63
- variant: a.variant || r,
64
- size: a.size || t
59
+ "data-variant": t.variant || o,
60
+ "data-size": t.size || a,
61
+ "data-spacing": t.spacing,
62
+ className: s(
63
+ "shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg",
64
+ h({
65
+ variant: t.variant || o,
66
+ size: t.size || a
65
67
  }),
66
- // SW-2292: selected group items use a high-contrast primary fill (the
67
- // shared toggle `on` state is the subtle bg-accent). twMerge drops the
68
- // inherited accent so this wins; standalone Toggle is unaffected.
69
- "aria-pressed:bg-primary aria-pressed:text-primary-foreground data-[state=on]:bg-primary data-[state=on]:text-primary-foreground",
70
- g
68
+ // SW-2445: every segmented item is bordered (not only variant=outline),
69
+ // so the group always reads as outlined and stays countable when all are
70
+ // selected. Non-first items drop their shared (leading) edge so adjacent
71
+ // borders collapse to a single divider. Border + rounded corners live on
72
+ // the same element, so the selected fill always aligns with the outline.
73
+ d && "border border-input",
74
+ d && m,
75
+ i
71
76
  ),
72
- ...e,
73
- children: o
77
+ ...n,
78
+ children: [
79
+ e !== "none" && /* @__PURE__ */ l(
80
+ "span",
81
+ {
82
+ "aria-hidden": !0,
83
+ "data-slot": "toggle-group-indicator",
84
+ className: s(
85
+ "grid size-4 shrink-0 place-items-center [&>svg]:[grid-area:1/1]",
86
+ // Content-aware default, decided in CSS rather than by inspecting
87
+ // React children: hide the ring when the item renders any *other*
88
+ // svg (an icon carries the state). Inspecting children would treat
89
+ // a `<span>`-wrapped or translated label as "has icon" and silently
90
+ // drop the ring — misaligning a group that mixes plain and wrapped
91
+ // labels. `display:none` also drops the slot, so no layout shift.
92
+ e === void 0 && "group-has-[svg:not([data-slot=toggle-group-indicator]_svg)]/toggle:hidden"
93
+ ),
94
+ children: [
95
+ /* @__PURE__ */ g(f, { className: "size-3.5 text-muted-foreground/50 transition-opacity group-data-[state=on]/toggle:opacity-0" }),
96
+ /* @__PURE__ */ g(v, { className: "size-3.5 opacity-0 transition-opacity group-data-[state=on]/toggle:opacity-100" })
97
+ ]
98
+ }
99
+ ),
100
+ r
101
+ ]
74
102
  }
75
103
  );
76
104
  }
77
105
  export {
78
- x as ToggleGroup,
79
- z as ToggleGroupItem
106
+ G as ToggleGroup,
107
+ N as ToggleGroupItem
80
108
  };
81
109
  //# sourceMappingURL=toggle-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-group.js","sources":["../../src/components/ui/toggle-group.tsx"],"sourcesContent":["import { type VariantProps } from \"class-variance-authority\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { toggleVariants } from \"@/components/ui/toggle\"\nimport { cn } from \"@/lib/utils\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n // SW-2292: selected group items use a high-contrast primary fill (the\n // shared toggle `on` state is the subtle bg-accent). twMerge drops the\n // inherited accent so this wins; standalone Toggle is unaffected.\n \"aria-pressed:bg-primary aria-pressed:text-primary-foreground data-[state=on]:bg-primary data-[state=on]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"names":["ToggleGroupContext","React","ToggleGroup","className","variant","size","spacing","orientation","children","props","jsx","ToggleGroupPrimitive","cn","ToggleGroupItem","context","toggleVariants"],"mappings":";;;;;AAOA,MAAMA,IAAqBC,EAAM,cAK/B;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AACf,CAAC;AAED,SAASC,EAAY;AAAA,EACnB,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,GAAGC;AACL,GAIK;AACH,SACE,gBAAAC;AAAA,IAACC,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAcP;AAAA,MACd,aAAWC;AAAA,MACX,gBAAcC;AAAA,MACd,oBAAkBC;AAAA,MAClB,OAAO,EAAE,SAASD,EAAA;AAAA,MAClB,WAAWM;AAAA,QACT;AAAA,QACAT;AAAA,MAAA;AAAA,MAED,GAAGM;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACV,EAAmB;AAAA,QAAnB;AAAA,UACC,OAAO,EAAE,SAAAI,GAAS,MAAAC,GAAM,SAAAC,GAAS,aAAAC,EAAA;AAAA,UAEhC,UAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;AAEA,SAASK,EAAgB;AAAA,EACvB,WAAAV;AAAA,EACA,UAAAK;AAAA,EACA,SAAAJ,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,GAAGI;AACL,GACuC;AACrC,QAAMK,IAAUb,EAAM,WAAWD,CAAkB;AAEnD,SACE,gBAAAU;AAAA,IAACC,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAcG,EAAQ,WAAWV;AAAA,MACjC,aAAWU,EAAQ,QAAQT;AAAA,MAC3B,gBAAcS,EAAQ;AAAA,MACtB,WAAWF;AAAA,QACT;AAAA,QACAG,EAAe;AAAA,UACb,SAASD,EAAQ,WAAWV;AAAA,UAC5B,MAAMU,EAAQ,QAAQT;AAAA,QAAA,CACvB;AAAA;AAAA;AAAA;AAAA,QAID;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGM;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
1
+ {"version":3,"file":"toggle-group.js","sources":["../../src/components/ui/toggle-group.tsx"],"sourcesContent":["import { type VariantProps } from \"class-variance-authority\"\nimport { CircleDashed, Check } from \"lucide-react\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { toggleVariants } from \"@/components/ui/toggle\"\nimport { cn } from \"@/lib/utils\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n selectedIndicator,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants> & {\n /**\n * Leading indicator for the selectable state (SW-2445). `\"dot\"` shows a\n * faint dotted ring when off that cross-fades to a check when on — a resting\n * affordance so an item reads as \"selectable\" and stays legible when every\n * option is selected.\n *\n * Defaults by content: **label-only** items get `\"dot\"`; items that render\n * an **icon** (icon-only or icon + label) get `\"none\"` — the icon carries\n * the state and there's no room for a ring. The default is decided in CSS\n * from the rendered DOM (`:has(svg)`), not from the React children, so a\n * label wrapped in a `<span>`, a translation component or a tooltip still\n * keeps its ring. Pass the prop to override either way.\n */\n selectedIndicator?: \"dot\" | \"none\"\n }) {\n const context = React.useContext(ToggleGroupContext)\n\n // Segmented (spacing=0) items carry their own border. Applied as plain\n // `border` rather than a `group-data-*:` variant on purpose: a group-scoped\n // selector compiles to specificity (0,2,0) and would silently beat a\n // consumer's own `border-r-0`/`border-l-0` in `className` (0,1,0). Plain\n // utilities stay at (0,1,0), so `className` keeps winning — which is the\n // contract every other component here follows.\n const segmented = (context.spacing ?? 0) === 0\n const collapseLeadingEdge =\n context.orientation === \"vertical\"\n ? \"[&:not(:first-child)]:border-t-0\"\n : \"[&:not(:first-child)]:border-l-0\"\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n // SW-2445: every segmented item is bordered (not only variant=outline),\n // so the group always reads as outlined and stays countable when all are\n // selected. Non-first items drop their shared (leading) edge so adjacent\n // borders collapse to a single divider. Border + rounded corners live on\n // the same element, so the selected fill always aligns with the outline.\n segmented && \"border border-input\",\n segmented && collapseLeadingEdge,\n className\n )}\n {...props}\n >\n {selectedIndicator !== \"none\" && (\n <span\n aria-hidden\n data-slot=\"toggle-group-indicator\"\n className={cn(\n \"grid size-4 shrink-0 place-items-center [&>svg]:[grid-area:1/1]\",\n // Content-aware default, decided in CSS rather than by inspecting\n // React children: hide the ring when the item renders any *other*\n // svg (an icon carries the state). Inspecting children would treat\n // a `<span>`-wrapped or translated label as \"has icon\" and silently\n // drop the ring — misaligning a group that mixes plain and wrapped\n // labels. `display:none` also drops the slot, so no layout shift.\n selectedIndicator === undefined &&\n \"group-has-[svg:not([data-slot=toggle-group-indicator]_svg)]/toggle:hidden\"\n )}\n >\n <CircleDashed className=\"size-3.5 text-muted-foreground/50 transition-opacity group-data-[state=on]/toggle:opacity-0\" />\n <Check className=\"size-3.5 opacity-0 transition-opacity group-data-[state=on]/toggle:opacity-100\" />\n </span>\n )}\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"],"names":["ToggleGroupContext","React","ToggleGroup","className","variant","size","spacing","orientation","children","props","jsx","ToggleGroupPrimitive","cn","ToggleGroupItem","selectedIndicator","context","segmented","collapseLeadingEdge","jsxs","toggleVariants","CircleDashed","Check"],"mappings":";;;;;;AAQA,MAAMA,IAAqBC,EAAM,cAK/B;AAAA,EACA,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,aAAa;AACf,CAAC;AAED,SAASC,EAAY;AAAA,EACnB,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,GAAGC;AACL,GAIK;AACH,SACE,gBAAAC;AAAA,IAACC,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAcP;AAAA,MACd,aAAWC;AAAA,MACX,gBAAcC;AAAA,MACd,oBAAkBC;AAAA,MAClB,OAAO,EAAE,SAASD,EAAA;AAAA,MAClB,WAAWM;AAAA,QACT;AAAA,QACAT;AAAA,MAAA;AAAA,MAED,GAAGM;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACV,EAAmB;AAAA,QAAnB;AAAA,UACC,OAAO,EAAE,SAAAI,GAAS,MAAAC,GAAM,SAAAC,GAAS,aAAAC,EAAA;AAAA,UAEhC,UAAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;AAEA,SAASK,EAAgB;AAAA,EACvB,WAAAV;AAAA,EACA,UAAAK;AAAA,EACA,SAAAJ,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,mBAAAS;AAAA,EACA,GAAGL;AACL,GAgBK;AACH,QAAMM,IAAUd,EAAM,WAAWD,CAAkB,GAQ7CgB,KAAaD,EAAQ,WAAW,OAAO,GACvCE,IACJF,EAAQ,gBAAgB,aACpB,qCACA;AAEN,SACE,gBAAAG;AAAA,IAACP,EAAqB;AAAA,IAArB;AAAA,MACC,aAAU;AAAA,MACV,gBAAcI,EAAQ,WAAWX;AAAA,MACjC,aAAWW,EAAQ,QAAQV;AAAA,MAC3B,gBAAcU,EAAQ;AAAA,MACtB,WAAWH;AAAA,QACT;AAAA,QACAO,EAAe;AAAA,UACb,SAASJ,EAAQ,WAAWX;AAAA,UAC5B,MAAMW,EAAQ,QAAQV;AAAA,QAAA,CACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMDW,KAAa;AAAA,QACbA,KAAaC;AAAA,QACbd;AAAA,MAAA;AAAA,MAED,GAAGM;AAAA,MAEH,UAAA;AAAA,QAAAK,MAAsB,UACrB,gBAAAI;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,aAAU;AAAA,YACV,WAAWN;AAAA,cACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAOAE,MAAsB,UACpB;AAAA,YAAA;AAAA,YAGJ,UAAA;AAAA,cAAA,gBAAAJ,EAACU,GAAA,EAAa,WAAU,8FAAA,CAA8F;AAAA,cACtH,gBAAAV,EAACW,GAAA,EAAM,WAAU,iFAAA,CAAiF;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGrGb;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),o=require("class-variance-authority"),s=require("radix-ui"),d=require("../lib/utils.cjs"),e=o.cva("group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus aria-pressed:bg-accent aria-pressed:text-accent-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent hover:bg-accent"},size:{default:"h-8 min-w-8 px-2",sm:"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]",lg:"h-9 min-w-9 px-2.5"}},defaultVariants:{variant:"default",size:"default"}});function c({className:t,variant:a="default",size:n="default",...r}){return i.jsx(s.Toggle.Root,{"data-slot":"toggle",className:d.cn(e({variant:a,size:n,className:t})),...r})}exports.Toggle=c;exports.toggleVariants=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),o=require("class-variance-authority"),i=require("radix-ui"),d=require("../lib/utils.cjs"),e=o.cva("group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed) data-[state=on]:bg-selected data-[state=on]:text-selected-foreground data-[state=on]:shadow-(--shadow-inset-pressed) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent hover:bg-accent aria-pressed:border-selected-border data-[state=on]:border-selected-border"},size:{default:"h-8 min-w-8 px-2",sm:"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]",lg:"h-9 min-w-9 px-2.5"}},defaultVariants:{variant:"default",size:"default"}});function l({className:t,variant:a="default",size:r="default",...s}){return n.jsx(i.Toggle.Root,{"data-slot":"toggle",className:d.cn(e({variant:a,size:r,className:t})),...s})}exports.Toggle=l;exports.toggleVariants=e;
2
2
  //# sourceMappingURL=toggle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.cjs","sources":["../../src/components/ui/toggle.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus aria-pressed:bg-accent aria-pressed:text-accent-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-accent\",\n },\n size: {\n default: \"h-8 min-w-8 px-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]\",\n lg: \"h-9 min-w-9 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n"],"names":["toggleVariants","cva","Toggle","className","variant","size","props","jsx","TogglePrimitive","cn"],"mappings":"+MAMMA,EAAiBC,EAAAA,IACrB,qiBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QAAS,oDAAA,EAEX,KAAM,CACJ,QAAS,mBACT,GAAI,wEACJ,GAAI,oBAAA,CACN,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,GAAGC,CACL,EACuC,CACrC,OACEC,EAAAA,IAACC,EAAAA,OAAgB,KAAhB,CACC,YAAU,SACV,UAAWC,EAAAA,GAAGT,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGG,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"toggle.cjs","sources":["../../src/components/ui/toggle.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed) data-[state=on]:bg-selected data-[state=on]:text-selected-foreground data-[state=on]:shadow-(--shadow-inset-pressed) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent hover:bg-accent aria-pressed:border-selected-border data-[state=on]:border-selected-border\",\n },\n size: {\n default: \"h-8 min-w-8 px-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]\",\n lg: \"h-9 min-w-9 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n"],"names":["toggleVariants","cva","Toggle","className","variant","size","props","jsx","TogglePrimitive","cn"],"mappings":"+MAMMA,EAAiBC,EAAAA,IACrB,0oBACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,iBACT,QACE,+HAAA,EAEJ,KAAM,CACJ,QAAS,mBACT,GAAI,wEACJ,GAAI,oBAAA,CACN,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,SAAA,CACR,CAEJ,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,UACP,GAAGC,CACL,EACuC,CACrC,OACEC,EAAAA,IAACC,EAAAA,OAAgB,KAAhB,CACC,YAAU,SACV,UAAWC,EAAAA,GAAGT,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAA,CAAW,CAAC,EACzD,GAAGG,CAAA,CAAA,CAGV"}
package/dist/ui/toggle.js CHANGED
@@ -1,14 +1,14 @@
1
- import { jsx as r } from "react/jsx-runtime";
1
+ import { jsx as s } from "react/jsx-runtime";
2
2
  import { cva as o } from "class-variance-authority";
3
- import { Toggle as i } from "radix-ui";
4
- import { cn as s } from "../lib/utils.js";
5
- const d = o(
6
- "group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus aria-pressed:bg-accent aria-pressed:text-accent-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3
+ import { Toggle as n } from "radix-ui";
4
+ import { cn as d } from "../lib/utils.js";
5
+ const i = o(
6
+ "group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:shadow-focus disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:shadow-focus aria-pressed:bg-selected aria-pressed:text-selected-foreground aria-pressed:shadow-(--shadow-inset-pressed) data-[state=on]:bg-selected data-[state=on]:text-selected-foreground data-[state=on]:shadow-(--shadow-inset-pressed) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
7
7
  {
8
8
  variants: {
9
9
  variant: {
10
10
  default: "bg-transparent",
11
- outline: "border border-input bg-transparent hover:bg-accent"
11
+ outline: "border border-input bg-transparent hover:bg-accent aria-pressed:border-selected-border data-[state=on]:border-selected-border"
12
12
  },
13
13
  size: {
14
14
  default: "h-8 min-w-8 px-2",
@@ -22,23 +22,23 @@ const d = o(
22
22
  }
23
23
  }
24
24
  );
25
- function f({
25
+ function p({
26
26
  className: e,
27
27
  variant: t = "default",
28
28
  size: a = "default",
29
- ...n
29
+ ...r
30
30
  }) {
31
- return /* @__PURE__ */ r(
32
- i.Root,
31
+ return /* @__PURE__ */ s(
32
+ n.Root,
33
33
  {
34
34
  "data-slot": "toggle",
35
- className: s(d({ variant: t, size: a, className: e })),
36
- ...n
35
+ className: d(i({ variant: t, size: a, className: e })),
36
+ ...r
37
37
  }
38
38
  );
39
39
  }
40
40
  export {
41
- f as Toggle,
42
- d as toggleVariants
41
+ p as Toggle,
42
+ i as toggleVariants
43
43
  };
44
44
  //# sourceMappingURL=toggle.js.map