@tetrascience-npm/tetrascience-react-ui 0.5.0-beta.47.1 → 0.5.0-beta.49.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 e=require("react/jsx-runtime"),h=require("class-variance-authority"),r=require("lucide-react"),p=require("./button.cjs"),j=require("../../lib/utils.cjs"),o=h.cva("flex w-full items-start gap-3 border px-4 py-3 text-sm",{variants:{variant:{info:"border-info/20 bg-info/10 text-info",positive:"border-positive/20 bg-positive/10 text-positive",warning:"border-warning/20 bg-warning/10 text-warning",destructive:"border-destructive/20 bg-destructive/10 text-destructive"}},defaultVariants:{variant:"info"}}),N={info:r.Info,positive:r.CheckCircle2,warning:r.AlertTriangle,destructive:r.XCircle};function w({variant:t="info",title:s,description:n,action:i,dismissible:c=!1,onDismiss:l,className:u,children:d,role:v,"aria-live":x,...g}){const f=N[t],a=t==="warning"||t==="destructive",m=v??(a?"alert":"status"),b=x??(a?"assertive":"polite");return e.jsxs("div",{"data-slot":"banner","data-variant":t,role:m,"aria-live":b,className:j.cn(o({variant:t}),u),...g,children:[e.jsx(f,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":!0}),e.jsxs("div",{className:"flex flex-1 flex-col gap-0.5",children:[s&&e.jsx("p",{className:"font-medium leading-snug",children:s}),n&&e.jsx("p",{className:"text-current/80 leading-snug",children:n}),d,i&&e.jsx("div",{className:"mt-2",children:i})]}),c&&e.jsxs(p.Button,{type:"button",variant:"ghost",size:"icon-xs",className:"ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current",onClick:l,children:[e.jsx(r.X,{}),e.jsx("span",{className:"sr-only",children:"Dismiss"})]})]})}exports.Banner=w;exports.bannerVariants=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("class-variance-authority"),r=require("lucide-react"),j=require("./button.cjs"),N=require("../../lib/utils.cjs"),o=p.cva("flex w-full items-start gap-3 border px-4 py-3 text-sm",{variants:{variant:{info:"border-info/20 bg-info/10 text-info",positive:"border-positive/20 bg-positive/10 text-positive",warning:"border-warning/20 bg-warning/10 text-warning",destructive:"border-destructive/20 bg-destructive/10 text-destructive"}},defaultVariants:{variant:"info"}}),w={info:r.Info,positive:r.CheckCircle2,warning:r.AlertTriangle,destructive:r.XCircle};function y({variant:c="info",title:n,description:i,action:s,dismissible:l=!1,onDismiss:u,className:d,children:v,role:x,"aria-live":g,...f}){const t=c??"info",m=w[t],a=t==="warning"||t==="destructive",b=x??(a?"alert":"status"),h=g??(a?"assertive":"polite");return e.jsxs("div",{"data-slot":"banner","data-variant":t,role:b,"aria-live":h,className:N.cn(o({variant:t}),d),...f,children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":!0}),e.jsxs("div",{className:"flex flex-1 flex-col gap-0.5",children:[n&&e.jsx("p",{className:"font-medium leading-snug",children:n}),i&&e.jsx("p",{className:"text-current/80 leading-snug",children:i}),v,s&&e.jsx("div",{className:"mt-2",children:s})]}),l&&e.jsxs(j.Button,{type:"button",variant:"ghost",size:"icon-xs",className:"ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current",onClick:u,children:[e.jsx(r.X,{}),e.jsx("span",{className:"sr-only",children:"Dismiss"})]})]})}exports.Banner=y;exports.bannerVariants=o;
2
2
  //# sourceMappingURL=banner.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.cjs","sources":["../../../src/components/ui/banner.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n AlertTriangle,\n CheckCircle2,\n Info,\n X,\n XCircle,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nconst bannerVariants = cva(\n \"flex w-full items-start gap-3 border px-4 py-3 text-sm\",\n {\n variants: {\n variant: {\n info: \"border-info/20 bg-info/10 text-info\",\n positive: \"border-positive/20 bg-positive/10 text-positive\",\n warning: \"border-warning/20 bg-warning/10 text-warning\",\n destructive:\n \"border-destructive/20 bg-destructive/10 text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nconst BANNER_ICONS = {\n info: Info,\n positive: CheckCircle2,\n warning: AlertTriangle,\n destructive: XCircle,\n} as const;\n\ntype DismissibleProps =\n | { dismissible: true; onDismiss: () => void }\n | { dismissible?: false; onDismiss?: never };\n\nexport type BannerProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof bannerVariants> &\n DismissibleProps & {\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactNode;\n };\n\nfunction Banner({\n variant = \"info\",\n title,\n description,\n action,\n dismissible = false,\n onDismiss,\n className,\n children,\n role,\n \"aria-live\": ariaLive,\n ...props\n}: BannerProps) {\n const Icon = BANNER_ICONS[variant];\n const isUrgentBanner = variant === \"warning\" || variant === \"destructive\";\n const resolvedRole = role ?? (isUrgentBanner ? \"alert\" : \"status\");\n const resolvedAriaLive = ariaLive ?? (isUrgentBanner ? \"assertive\" : \"polite\");\n\n return (\n <div\n data-slot=\"banner\"\n data-variant={variant}\n role={resolvedRole}\n aria-live={resolvedAriaLive}\n className={cn(bannerVariants({ variant }), className)}\n {...props}\n >\n <Icon className=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden />\n <div className=\"flex flex-1 flex-col gap-0.5\">\n {title && <p className=\"font-medium leading-snug\">{title}</p>}\n {description && (\n <p className=\"text-current/80 leading-snug\">{description}</p>\n )}\n {children}\n {action && <div className=\"mt-2\">{action}</div>}\n </div>\n {dismissible && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n className=\"ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current\"\n onClick={onDismiss}\n >\n <X />\n <span className=\"sr-only\">Dismiss</span>\n </Button>\n )}\n </div>\n );\n}\n\nexport { Banner, bannerVariants };\n"],"names":["bannerVariants","cva","BANNER_ICONS","Info","CheckCircle2","AlertTriangle","XCircle","Banner","variant","title","description","action","dismissible","onDismiss","className","children","role","ariaLive","props","Icon","isUrgentBanner","resolvedRole","resolvedAriaLive","jsxs","cn","jsx","Button","X"],"mappings":"gPAaMA,EAAiBC,EAAAA,IACrB,yDACA,CACE,SAAU,CACR,QAAS,CACP,KAAM,sCACN,SAAU,kDACV,QAAS,+CACT,YACE,0DAAA,CACJ,EAEF,gBAAiB,CACf,QAAS,MAAA,CACX,CAEJ,EAEMC,EAAe,CACnB,KAAMC,EAAAA,KACN,SAAUC,EAAAA,aACV,QAASC,EAAAA,cACT,YAAaC,EAAAA,OACf,EAcA,SAASC,EAAO,CACd,QAAAC,EAAU,OACV,MAAAC,EACA,YAAAC,EACA,OAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EACA,UAAAC,EACA,SAAAC,EACA,KAAAC,EACA,YAAaC,EACb,GAAGC,CACL,EAAgB,CACd,MAAMC,EAAOjB,EAAaM,CAAO,EAC3BY,EAAiBZ,IAAY,WAAaA,IAAY,cACtDa,EAAeL,IAASI,EAAiB,QAAU,UACnDE,EAAmBL,IAAaG,EAAiB,YAAc,UAErE,OACEG,EAAAA,KAAC,MAAA,CACC,YAAU,SACV,eAAcf,EACd,KAAMa,EACN,YAAWC,EACX,UAAWE,EAAAA,GAAGxB,EAAe,CAAE,QAAAQ,CAAA,CAAS,EAAGM,CAAS,EACnD,GAAGI,EAEJ,SAAA,CAAAO,EAAAA,IAACN,EAAA,CAAK,UAAU,0BAA0B,cAAW,GAAC,EACtDI,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACZ,SAAA,CAAAd,GAASgB,EAAAA,IAAC,IAAA,CAAE,UAAU,2BAA4B,SAAAhB,EAAM,EACxDC,GACCe,EAAAA,IAAC,IAAA,CAAE,UAAU,+BAAgC,SAAAf,EAAY,EAE1DK,EACAJ,GAAUc,EAAAA,IAAC,MAAA,CAAI,UAAU,OAAQ,SAAAd,CAAA,CAAO,CAAA,EAC3C,EACCC,GACCW,EAAAA,KAACG,EAAAA,OAAA,CACC,KAAK,SACL,QAAQ,QACR,KAAK,UACL,UAAU,0EACV,QAASb,EAET,SAAA,CAAAY,EAAAA,IAACE,EAAAA,EAAA,EAAE,EACHF,EAAAA,IAAC,OAAA,CAAK,UAAU,UAAU,SAAA,SAAA,CAAO,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"banner.cjs","sources":["../../../src/components/ui/banner.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n AlertTriangle,\n CheckCircle2,\n Info,\n X,\n XCircle,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nconst bannerVariants = cva(\n \"flex w-full items-start gap-3 border px-4 py-3 text-sm\",\n {\n variants: {\n variant: {\n info: \"border-info/20 bg-info/10 text-info\",\n positive: \"border-positive/20 bg-positive/10 text-positive\",\n warning: \"border-warning/20 bg-warning/10 text-warning\",\n destructive:\n \"border-destructive/20 bg-destructive/10 text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nconst BANNER_ICONS = {\n info: Info,\n positive: CheckCircle2,\n warning: AlertTriangle,\n destructive: XCircle,\n} as const;\n\ntype DismissibleProps =\n | { dismissible: true; onDismiss: () => void }\n | { dismissible?: false; onDismiss?: never };\n\nexport type BannerProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof bannerVariants> &\n DismissibleProps & {\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactNode;\n };\n\nfunction Banner({\n variant = \"info\",\n title,\n description,\n action,\n dismissible = false,\n onDismiss,\n className,\n children,\n role,\n \"aria-live\": ariaLive,\n ...props\n}: BannerProps) {\n const resolvedVariant = variant ?? \"info\";\n const Icon = BANNER_ICONS[resolvedVariant];\n const isUrgentBanner =\n resolvedVariant === \"warning\" || resolvedVariant === \"destructive\";\n const resolvedRole = role ?? (isUrgentBanner ? \"alert\" : \"status\");\n const resolvedAriaLive = ariaLive ?? (isUrgentBanner ? \"assertive\" : \"polite\");\n\n return (\n <div\n data-slot=\"banner\"\n data-variant={resolvedVariant}\n role={resolvedRole}\n aria-live={resolvedAriaLive}\n className={cn(bannerVariants({ variant: resolvedVariant }), className)}\n {...props}\n >\n <Icon className=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden />\n <div className=\"flex flex-1 flex-col gap-0.5\">\n {title && <p className=\"font-medium leading-snug\">{title}</p>}\n {description && (\n <p className=\"text-current/80 leading-snug\">{description}</p>\n )}\n {children}\n {action && <div className=\"mt-2\">{action}</div>}\n </div>\n {dismissible && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n className=\"ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current\"\n onClick={onDismiss}\n >\n <X />\n <span className=\"sr-only\">Dismiss</span>\n </Button>\n )}\n </div>\n );\n}\n\nexport { Banner, bannerVariants };\n"],"names":["bannerVariants","cva","BANNER_ICONS","Info","CheckCircle2","AlertTriangle","XCircle","Banner","variant","title","description","action","dismissible","onDismiss","className","children","role","ariaLive","props","resolvedVariant","Icon","isUrgentBanner","resolvedRole","resolvedAriaLive","jsxs","cn","jsx","Button","X"],"mappings":"gPAaMA,EAAiBC,EAAAA,IACrB,yDACA,CACE,SAAU,CACR,QAAS,CACP,KAAM,sCACN,SAAU,kDACV,QAAS,+CACT,YACE,0DAAA,CACJ,EAEF,gBAAiB,CACf,QAAS,MAAA,CACX,CAEJ,EAEMC,EAAe,CACnB,KAAMC,EAAAA,KACN,SAAUC,EAAAA,aACV,QAASC,EAAAA,cACT,YAAaC,EAAAA,OACf,EAcA,SAASC,EAAO,CACd,QAAAC,EAAU,OACV,MAAAC,EACA,YAAAC,EACA,OAAAC,EACA,YAAAC,EAAc,GACd,UAAAC,EACA,UAAAC,EACA,SAAAC,EACA,KAAAC,EACA,YAAaC,EACb,GAAGC,CACL,EAAgB,CACd,MAAMC,EAAkBX,GAAW,OAC7BY,EAAOlB,EAAaiB,CAAe,EACnCE,EACJF,IAAoB,WAAaA,IAAoB,cACjDG,EAAeN,IAASK,EAAiB,QAAU,UACnDE,EAAmBN,IAAaI,EAAiB,YAAc,UAErE,OACEG,EAAAA,KAAC,MAAA,CACC,YAAU,SACV,eAAcL,EACd,KAAMG,EACN,YAAWC,EACX,UAAWE,EAAAA,GAAGzB,EAAe,CAAE,QAASmB,CAAA,CAAiB,EAAGL,CAAS,EACpE,GAAGI,EAEJ,SAAA,CAAAQ,EAAAA,IAACN,EAAA,CAAK,UAAU,0BAA0B,cAAW,GAAC,EACtDI,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACZ,SAAA,CAAAf,GAASiB,EAAAA,IAAC,IAAA,CAAE,UAAU,2BAA4B,SAAAjB,EAAM,EACxDC,GACCgB,EAAAA,IAAC,IAAA,CAAE,UAAU,+BAAgC,SAAAhB,EAAY,EAE1DK,EACAJ,GAAUe,EAAAA,IAAC,MAAA,CAAI,UAAU,OAAQ,SAAAf,CAAA,CAAO,CAAA,EAC3C,EACCC,GACCY,EAAAA,KAACG,EAAAA,OAAA,CACC,KAAK,SACL,QAAQ,QACR,KAAK,UACL,UAAU,0EACV,QAASd,EAET,SAAA,CAAAa,EAAAA,IAACE,EAAAA,EAAA,EAAE,EACHF,EAAAA,IAAC,OAAA,CAAK,UAAU,UAAU,SAAA,SAAA,CAAO,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,CAIR"}
@@ -1,9 +1,9 @@
1
1
  import { jsxs as t, jsx as e } from "react/jsx-runtime";
2
- import { cva as g } from "class-variance-authority";
3
- import { XCircle as p, AlertTriangle as x, CheckCircle2 as h, Info as b, X as N } from "lucide-react";
4
- import { Button as w } from "./button.js";
5
- import { cn as C } from "../../lib/utils.js";
6
- const k = g(
2
+ import { cva as p } from "class-variance-authority";
3
+ import { XCircle as x, AlertTriangle as h, CheckCircle2 as b, Info as N, X as w } from "lucide-react";
4
+ import { Button as C } from "./button.js";
5
+ import { cn as k } from "../../lib/utils.js";
6
+ const A = p(
7
7
  "flex w-full items-start gap-3 border px-4 py-3 text-sm",
8
8
  {
9
9
  variants: {
@@ -18,53 +18,53 @@ const k = g(
18
18
  variant: "info"
19
19
  }
20
20
  }
21
- ), A = {
22
- info: b,
23
- positive: h,
24
- warning: x,
25
- destructive: p
21
+ ), B = {
22
+ info: N,
23
+ positive: b,
24
+ warning: h,
25
+ destructive: x
26
26
  };
27
- function X({
28
- variant: r = "info",
27
+ function z({
28
+ variant: o = "info",
29
29
  title: i,
30
30
  description: n,
31
- action: s,
32
- dismissible: o = !1,
33
- onDismiss: l,
34
- className: c,
35
- children: d,
36
- role: v,
37
- "aria-live": m,
38
- ...f
31
+ action: a,
32
+ dismissible: l = !1,
33
+ onDismiss: c,
34
+ className: d,
35
+ children: v,
36
+ role: m,
37
+ "aria-live": f,
38
+ ...u
39
39
  }) {
40
- const u = A[r], a = r === "warning" || r === "destructive";
40
+ const r = o ?? "info", g = B[r], s = r === "warning" || r === "destructive";
41
41
  return /* @__PURE__ */ t(
42
42
  "div",
43
43
  {
44
44
  "data-slot": "banner",
45
45
  "data-variant": r,
46
- role: v ?? (a ? "alert" : "status"),
47
- "aria-live": m ?? (a ? "assertive" : "polite"),
48
- className: C(k({ variant: r }), c),
49
- ...f,
46
+ role: m ?? (s ? "alert" : "status"),
47
+ "aria-live": f ?? (s ? "assertive" : "polite"),
48
+ className: k(A({ variant: r }), d),
49
+ ...u,
50
50
  children: [
51
- /* @__PURE__ */ e(u, { className: "mt-0.5 h-4 w-4 shrink-0", "aria-hidden": !0 }),
51
+ /* @__PURE__ */ e(g, { className: "mt-0.5 h-4 w-4 shrink-0", "aria-hidden": !0 }),
52
52
  /* @__PURE__ */ t("div", { className: "flex flex-1 flex-col gap-0.5", children: [
53
53
  i && /* @__PURE__ */ e("p", { className: "font-medium leading-snug", children: i }),
54
54
  n && /* @__PURE__ */ e("p", { className: "text-current/80 leading-snug", children: n }),
55
- d,
56
- s && /* @__PURE__ */ e("div", { className: "mt-2", children: s })
55
+ v,
56
+ a && /* @__PURE__ */ e("div", { className: "mt-2", children: a })
57
57
  ] }),
58
- o && /* @__PURE__ */ t(
59
- w,
58
+ l && /* @__PURE__ */ t(
59
+ C,
60
60
  {
61
61
  type: "button",
62
62
  variant: "ghost",
63
63
  size: "icon-xs",
64
64
  className: "ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current",
65
- onClick: l,
65
+ onClick: c,
66
66
  children: [
67
- /* @__PURE__ */ e(N, {}),
67
+ /* @__PURE__ */ e(w, {}),
68
68
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Dismiss" })
69
69
  ]
70
70
  }
@@ -74,7 +74,7 @@ function X({
74
74
  );
75
75
  }
76
76
  export {
77
- X as Banner,
78
- k as bannerVariants
77
+ z as Banner,
78
+ A as bannerVariants
79
79
  };
80
80
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sources":["../../../src/components/ui/banner.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n AlertTriangle,\n CheckCircle2,\n Info,\n X,\n XCircle,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nconst bannerVariants = cva(\n \"flex w-full items-start gap-3 border px-4 py-3 text-sm\",\n {\n variants: {\n variant: {\n info: \"border-info/20 bg-info/10 text-info\",\n positive: \"border-positive/20 bg-positive/10 text-positive\",\n warning: \"border-warning/20 bg-warning/10 text-warning\",\n destructive:\n \"border-destructive/20 bg-destructive/10 text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nconst BANNER_ICONS = {\n info: Info,\n positive: CheckCircle2,\n warning: AlertTriangle,\n destructive: XCircle,\n} as const;\n\ntype DismissibleProps =\n | { dismissible: true; onDismiss: () => void }\n | { dismissible?: false; onDismiss?: never };\n\nexport type BannerProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof bannerVariants> &\n DismissibleProps & {\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactNode;\n };\n\nfunction Banner({\n variant = \"info\",\n title,\n description,\n action,\n dismissible = false,\n onDismiss,\n className,\n children,\n role,\n \"aria-live\": ariaLive,\n ...props\n}: BannerProps) {\n const Icon = BANNER_ICONS[variant];\n const isUrgentBanner = variant === \"warning\" || variant === \"destructive\";\n const resolvedRole = role ?? (isUrgentBanner ? \"alert\" : \"status\");\n const resolvedAriaLive = ariaLive ?? (isUrgentBanner ? \"assertive\" : \"polite\");\n\n return (\n <div\n data-slot=\"banner\"\n data-variant={variant}\n role={resolvedRole}\n aria-live={resolvedAriaLive}\n className={cn(bannerVariants({ variant }), className)}\n {...props}\n >\n <Icon className=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden />\n <div className=\"flex flex-1 flex-col gap-0.5\">\n {title && <p className=\"font-medium leading-snug\">{title}</p>}\n {description && (\n <p className=\"text-current/80 leading-snug\">{description}</p>\n )}\n {children}\n {action && <div className=\"mt-2\">{action}</div>}\n </div>\n {dismissible && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n className=\"ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current\"\n onClick={onDismiss}\n >\n <X />\n <span className=\"sr-only\">Dismiss</span>\n </Button>\n )}\n </div>\n );\n}\n\nexport { Banner, bannerVariants };\n"],"names":["bannerVariants","cva","BANNER_ICONS","Info","CheckCircle2","AlertTriangle","XCircle","Banner","variant","title","description","action","dismissible","onDismiss","className","children","role","ariaLive","props","Icon","isUrgentBanner","jsxs","cn","jsx","Button","X"],"mappings":";;;;;AAaA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,aACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ,GAEMC,IAAe;AAAA,EACnB,MAAMC;AAAA,EACN,UAAUC;AAAA,EACV,SAASC;AAAA,EACT,aAAaC;AACf;AAcA,SAASC,EAAO;AAAA,EACd,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAaC;AAAA,EACb,GAAGC;AACL,GAAgB;AACd,QAAMC,IAAOjB,EAAaM,CAAO,GAC3BY,IAAiBZ,MAAY,aAAaA,MAAY;AAI5D,SACE,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcb;AAAA,MACd,MAPiBQ,MAASI,IAAiB,UAAU;AAAA,MAQrD,aAPqBH,MAAaG,IAAiB,cAAc;AAAA,MAQjE,WAAWE,EAAGtB,EAAe,EAAE,SAAAQ,EAAA,CAAS,GAAGM,CAAS;AAAA,MACnD,GAAGI;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAK,EAACJ,GAAA,EAAK,WAAU,2BAA0B,eAAW,IAAC;AAAA,QACtD,gBAAAE,EAAC,OAAA,EAAI,WAAU,gCACZ,UAAA;AAAA,UAAAZ,KAAS,gBAAAc,EAAC,KAAA,EAAE,WAAU,4BAA4B,UAAAd,GAAM;AAAA,UACxDC,KACC,gBAAAa,EAAC,KAAA,EAAE,WAAU,gCAAgC,UAAAb,GAAY;AAAA,UAE1DK;AAAA,UACAJ,KAAU,gBAAAY,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAZ,EAAA,CAAO;AAAA,QAAA,GAC3C;AAAA,QACCC,KACC,gBAAAS;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAASX;AAAA,YAET,UAAA;AAAA,cAAA,gBAAAU,EAACE,GAAA,EAAE;AAAA,cACH,gBAAAF,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,UAAA,CAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnC;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"banner.js","sources":["../../../src/components/ui/banner.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n AlertTriangle,\n CheckCircle2,\n Info,\n X,\n XCircle,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nconst bannerVariants = cva(\n \"flex w-full items-start gap-3 border px-4 py-3 text-sm\",\n {\n variants: {\n variant: {\n info: \"border-info/20 bg-info/10 text-info\",\n positive: \"border-positive/20 bg-positive/10 text-positive\",\n warning: \"border-warning/20 bg-warning/10 text-warning\",\n destructive:\n \"border-destructive/20 bg-destructive/10 text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nconst BANNER_ICONS = {\n info: Info,\n positive: CheckCircle2,\n warning: AlertTriangle,\n destructive: XCircle,\n} as const;\n\ntype DismissibleProps =\n | { dismissible: true; onDismiss: () => void }\n | { dismissible?: false; onDismiss?: never };\n\nexport type BannerProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof bannerVariants> &\n DismissibleProps & {\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactNode;\n };\n\nfunction Banner({\n variant = \"info\",\n title,\n description,\n action,\n dismissible = false,\n onDismiss,\n className,\n children,\n role,\n \"aria-live\": ariaLive,\n ...props\n}: BannerProps) {\n const resolvedVariant = variant ?? \"info\";\n const Icon = BANNER_ICONS[resolvedVariant];\n const isUrgentBanner =\n resolvedVariant === \"warning\" || resolvedVariant === \"destructive\";\n const resolvedRole = role ?? (isUrgentBanner ? \"alert\" : \"status\");\n const resolvedAriaLive = ariaLive ?? (isUrgentBanner ? \"assertive\" : \"polite\");\n\n return (\n <div\n data-slot=\"banner\"\n data-variant={resolvedVariant}\n role={resolvedRole}\n aria-live={resolvedAriaLive}\n className={cn(bannerVariants({ variant: resolvedVariant }), className)}\n {...props}\n >\n <Icon className=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden />\n <div className=\"flex flex-1 flex-col gap-0.5\">\n {title && <p className=\"font-medium leading-snug\">{title}</p>}\n {description && (\n <p className=\"text-current/80 leading-snug\">{description}</p>\n )}\n {children}\n {action && <div className=\"mt-2\">{action}</div>}\n </div>\n {dismissible && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n className=\"ml-auto shrink-0 text-current/70 hover:bg-current/10 hover:text-current\"\n onClick={onDismiss}\n >\n <X />\n <span className=\"sr-only\">Dismiss</span>\n </Button>\n )}\n </div>\n );\n}\n\nexport { Banner, bannerVariants };\n"],"names":["bannerVariants","cva","BANNER_ICONS","Info","CheckCircle2","AlertTriangle","XCircle","Banner","variant","title","description","action","dismissible","onDismiss","className","children","role","ariaLive","props","resolvedVariant","Icon","isUrgentBanner","jsxs","cn","jsx","Button","X"],"mappings":";;;;;AAaA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,QACT,aACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ,GAEMC,IAAe;AAAA,EACnB,MAAMC;AAAA,EACN,UAAUC;AAAA,EACV,SAASC;AAAA,EACT,aAAaC;AACf;AAcA,SAASC,EAAO;AAAA,EACd,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAaC;AAAA,EACb,GAAGC;AACL,GAAgB;AACd,QAAMC,IAAkBX,KAAW,QAC7BY,IAAOlB,EAAaiB,CAAe,GACnCE,IACJF,MAAoB,aAAaA,MAAoB;AAIvD,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,gBAAcH;AAAA,MACd,MAPiBH,MAASK,IAAiB,UAAU;AAAA,MAQrD,aAPqBJ,MAAaI,IAAiB,cAAc;AAAA,MAQjE,WAAWE,EAAGvB,EAAe,EAAE,SAASmB,EAAA,CAAiB,GAAGL,CAAS;AAAA,MACpE,GAAGI;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAM,EAACJ,GAAA,EAAK,WAAU,2BAA0B,eAAW,IAAC;AAAA,QACtD,gBAAAE,EAAC,OAAA,EAAI,WAAU,gCACZ,UAAA;AAAA,UAAAb,KAAS,gBAAAe,EAAC,KAAA,EAAE,WAAU,4BAA4B,UAAAf,GAAM;AAAA,UACxDC,KACC,gBAAAc,EAAC,KAAA,EAAE,WAAU,gCAAgC,UAAAd,GAAY;AAAA,UAE1DK;AAAA,UACAJ,KAAU,gBAAAa,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAb,EAAA,CAAO;AAAA,QAAA,GAC3C;AAAA,QACCC,KACC,gBAAAU;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAASZ;AAAA,YAET,UAAA;AAAA,cAAA,gBAAAW,EAACE,GAAA,EAAE;AAAA,cACH,gBAAAF,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,UAAA,CAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnC;AAAA,IAAA;AAAA,EAAA;AAIR;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tetrascience-npm/tetrascience-react-ui",
3
- "version": "0.5.0-beta.47.1",
3
+ "version": "0.5.0-beta.49.1",
4
4
  "description": "TetraScience React UI",
5
5
  "type": "module",
6
6
  "author": "TetraScience",