@still-forest/canopy 0.50.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -53,9 +53,13 @@ export declare interface AlertProps {
53
53
 
54
54
  declare type AlertVariant = "info" | "success" | "warning" | "error";
55
55
 
56
- export declare const Badge: ({ label, onClick, className, variant, color, children }: BadgeProps) => JSX.Element;
56
+ export declare const Badge: ({ label, onClick, className, variant, color, children, ...props }: BadgeProps) => JSX.Element;
57
57
 
58
- export declare interface BadgeProps {
58
+ declare function Badge_2({ className, variant, asChild, ...props }: React_2.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
59
+ asChild?: boolean;
60
+ }): JSX.Element;
61
+
62
+ export declare interface BadgeProps extends React.ComponentProps<typeof Badge_2> {
59
63
  variant?: BadgeVariant;
60
64
  color?: TailwindColor;
61
65
  label?: string;
@@ -66,6 +70,10 @@ export declare interface BadgeProps {
66
70
 
67
71
  declare type BadgeVariant = AlertVariant | "default" | "secondary" | "destructive" | "outline";
68
72
 
73
+ declare const badgeVariants: (props?: ({
74
+ variant?: "info" | "success" | "warning" | "error" | "default" | "secondary" | "destructive" | "outline" | null | undefined;
75
+ } & ClassProp) | undefined) => string;
76
+
69
77
  export declare type BaseButtonSize = "xs" | "sm" | "md" | "lg" | "xl" | "icon" | "unstyled";
70
78
 
71
79
  export declare type BaseButtonVariant = "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | "unstyled" | "error" | "info" | "success" | "warning";
@@ -265,7 +273,9 @@ declare interface CopyButtonProps extends Omit<ButtonProps, "onClick" | "disable
265
273
  content: string;
266
274
  }
267
275
 
268
- export declare type CursorType = "arrow" | "pointer" | "text" | "not-allowed";
276
+ export declare const CURSOR_TYPES: readonly ["arrow", "pointer", "text", "not-allowed", "help", "wait", "context-menu", "none", "copy", "move", "progress", "cell", "crosshair", "vertical-text", "alias", "zoom-in", "zoom-out", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "s-resize", "e-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "nesw-resize", "nwse-resize"];
277
+
278
+ export declare type CursorType = (typeof CURSOR_TYPES)[number];
269
279
 
270
280
  export declare const DateInput: ({ name, label, placeholder, note, className, size, ...props }: DateInputProps) => JSX.Element;
271
281
 
@@ -871,10 +881,11 @@ declare interface SideLinkSet {
871
881
  links: SideLink[];
872
882
  }
873
883
 
874
- export declare const SimpleTooltip: ({ children, content }: SimpleTooltipProps) => JSX.Element;
884
+ export declare const SimpleTooltip: ({ children, cursor, content }: SimpleTooltipProps) => JSX.Element;
875
885
 
876
886
  declare interface SimpleTooltipProps {
877
887
  children: string | React.ReactNode;
888
+ cursor?: CursorType;
878
889
  content: string | React.ReactNode;
879
890
  }
880
891
 
package/dist/index.js CHANGED
@@ -4126,15 +4126,15 @@ const Vp = mt(
4126
4126
  }
4127
4127
  ]
4128
4128
  }
4129
- ), eS = ({ label: e, onClick: t, className: n, variant: r = "default", color: o, children: a }) => {
4130
- const s = e || a;
4131
- if (!s)
4129
+ ), eS = ({ label: e, onClick: t, className: n, variant: r = "default", color: o, children: a, ...s }) => {
4130
+ const i = e || a;
4131
+ if (!i)
4132
4132
  throw new Error("Badge must have either a label or children");
4133
4133
  if (o && !(r === "default" || r === "outline"))
4134
4134
  throw new Error(
4135
4135
  `Color ${o} is not allowed for variant '${r}'. Only default and outline variants support color.`
4136
4136
  );
4137
- const i = S(
4137
+ const c = S(
4138
4138
  "cursor-default",
4139
4139
  !!t && "cursor-pointer",
4140
4140
  Vp({ color: o, variant: r }),
@@ -4147,7 +4147,7 @@ const Vp = mt(
4147
4147
  },
4148
4148
  n
4149
4149
  );
4150
- return /* @__PURE__ */ l.jsx(Hp, { className: i, onClick: t, variant: r, children: s });
4150
+ return /* @__PURE__ */ l.jsx(Hp, { className: c, onClick: t, variant: r, ...s, children: i });
4151
4151
  };
4152
4152
  function Gp({ ...e }) {
4153
4153
  return /* @__PURE__ */ l.jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...e });
@@ -6668,7 +6668,41 @@ function Rl({
6668
6668
  }
6669
6669
  ) });
6670
6670
  }
6671
- const Me = ({ children: e, open: t, onOpenChange: n }) => /* @__PURE__ */ l.jsx(Ra, { children: /* @__PURE__ */ l.jsx(Dl, { onOpenChange: n, open: t, children: e }) }), hv = ({ children: e, cursor: t = "pointer", className: n }) => /* @__PURE__ */ l.jsx(
6671
+ const oS = [
6672
+ "arrow",
6673
+ "pointer",
6674
+ "text",
6675
+ "not-allowed",
6676
+ "help",
6677
+ "wait",
6678
+ "context-menu",
6679
+ "none",
6680
+ "copy",
6681
+ "move",
6682
+ "progress",
6683
+ "cell",
6684
+ "crosshair",
6685
+ "vertical-text",
6686
+ "alias",
6687
+ "zoom-in",
6688
+ "zoom-out",
6689
+ "no-drop",
6690
+ "grab",
6691
+ "grabbing",
6692
+ "all-scroll",
6693
+ "col-resize",
6694
+ "row-resize",
6695
+ "n-resize",
6696
+ "s-resize",
6697
+ "e-resize",
6698
+ "w-resize",
6699
+ "ne-resize",
6700
+ "nw-resize",
6701
+ "se-resize",
6702
+ "sw-resize",
6703
+ "nesw-resize",
6704
+ "nwse-resize"
6705
+ ], Me = ({ children: e, open: t, onOpenChange: n }) => /* @__PURE__ */ l.jsx(Ra, { children: /* @__PURE__ */ l.jsx(Dl, { onOpenChange: n, open: t, children: e }) }), hv = ({ children: e, cursor: t = "pointer", className: n }) => /* @__PURE__ */ l.jsx(
6672
6706
  Ol,
6673
6707
  {
6674
6708
  asChild: !0,
@@ -6677,6 +6711,35 @@ const Me = ({ children: e, open: t, onOpenChange: n }) => /* @__PURE__ */ l.jsx(
6677
6711
  t === "pointer" && "cursor-pointer",
6678
6712
  t === "text" && "cursor-text",
6679
6713
  t === "not-allowed" && "cursor-not-allowed",
6714
+ t === "help" && "cursor-help",
6715
+ t === "wait" && "cursor-wait",
6716
+ t === "context-menu" && "cursor-context-menu",
6717
+ t === "none" && "cursor-none",
6718
+ t === "copy" && "cursor-copy",
6719
+ t === "move" && "cursor-move",
6720
+ t === "progress" && "cursor-progress",
6721
+ t === "cell" && "cursor-cell",
6722
+ t === "crosshair" && "cursor-crosshair",
6723
+ t === "vertical-text" && "cursor-vertical-text",
6724
+ t === "alias" && "cursor-alias",
6725
+ t === "zoom-in" && "cursor-zoom-in",
6726
+ t === "zoom-out" && "cursor-zoom-out",
6727
+ t === "no-drop" && "cursor-no-drop",
6728
+ t === "grab" && "cursor-grab",
6729
+ t === "grabbing" && "cursor-grabbing",
6730
+ t === "all-scroll" && "cursor-all-scroll",
6731
+ t === "col-resize" && "cursor-col-resize",
6732
+ t === "row-resize" && "cursor-row-resize",
6733
+ t === "n-resize" && "cursor-n-resize",
6734
+ t === "s-resize" && "cursor-s-resize",
6735
+ t === "e-resize" && "cursor-e-resize",
6736
+ t === "w-resize" && "cursor-w-resize",
6737
+ t === "ne-resize" && "cursor-ne-resize",
6738
+ t === "nw-resize" && "cursor-nw-resize",
6739
+ t === "se-resize" && "cursor-se-resize",
6740
+ t === "sw-resize" && "cursor-sw-resize",
6741
+ t === "nesw-resize" && "cursor-nesw-resize",
6742
+ t === "nwse-resize" && "cursor-nwse-resize",
6680
6743
  n
6681
6744
  ),
6682
6745
  children: e
@@ -6684,9 +6747,9 @@ const Me = ({ children: e, open: t, onOpenChange: n }) => /* @__PURE__ */ l.jsx(
6684
6747
  ), gv = ({ className: e, children: t }) => /* @__PURE__ */ l.jsx(Rl, { className: e, children: t });
6685
6748
  Me.Trigger = hv;
6686
6749
  Me.Content = gv;
6687
- const vv = ({ children: e, content: t }) => /* @__PURE__ */ l.jsxs(Me, { children: [
6688
- /* @__PURE__ */ l.jsx(Me.Trigger, { children: typeof e == "string" ? /* @__PURE__ */ l.jsx("span", { children: e }) : e }),
6689
- /* @__PURE__ */ l.jsx(Me.Content, { children: t })
6750
+ const vv = ({ children: e, cursor: t = "pointer", content: n }) => /* @__PURE__ */ l.jsxs(Me, { children: [
6751
+ /* @__PURE__ */ l.jsx(Me.Trigger, { cursor: t, children: typeof e == "string" ? /* @__PURE__ */ l.jsx("span", { children: e }) : e }),
6752
+ /* @__PURE__ */ l.jsx(Me.Content, { children: n })
6690
6753
  ] }), Nt = ({ content: e, className: t }) => /* @__PURE__ */ l.jsx(vv, { content: e, children: /* @__PURE__ */ l.jsx(Hf, { className: S("size-4 text-muted-foreground stroke-1", t) }) });
6691
6754
  var bv = [
6692
6755
  "a",
@@ -6749,7 +6812,7 @@ function Al({
6749
6812
  }
6750
6813
  );
6751
6814
  }
6752
- function oS({ className: e, ...t }) {
6815
+ function aS({ className: e, ...t }) {
6753
6816
  return /* @__PURE__ */ l.jsx("div", { className: S("group/item-group flex flex-col", e), "data-slot": "item-group", role: "list", ...t });
6754
6817
  }
6755
6818
  const Cv = mt(
@@ -7576,7 +7639,7 @@ var kb = function(e) {
7576
7639
  return o ? (r.push.apply(r, Array.from(o.querySelectorAll("[aria-live], script"))), Sb(r, o, n, "aria-hidden")) : function() {
7577
7640
  return null;
7578
7641
  };
7579
- }, Wr = "Dialog", [Ul, aS] = De(Wr), [Nb, Ge] = Ul(Wr), ql = (e) => {
7642
+ }, Wr = "Dialog", [Ul, sS] = De(Wr), [Nb, Ge] = Ul(Wr), ql = (e) => {
7580
7643
  const {
7581
7644
  __scopeDialog: t,
7582
7645
  children: n,
@@ -7778,7 +7841,7 @@ sc.displayName = ac;
7778
7841
  function Ia(e) {
7779
7842
  return e ? "open" : "closed";
7780
7843
  }
7781
- var ic = "DialogTitleWarning", [sS, lc] = $u(ic, {
7844
+ var ic = "DialogTitleWarning", [iS, lc] = $u(ic, {
7782
7845
  contentName: _t,
7783
7846
  titleName: _a,
7784
7847
  docsSlug: "dialog"
@@ -7885,7 +7948,7 @@ function _s({ className: e, ...t }) {
7885
7948
  }
7886
7949
  );
7887
7950
  }
7888
- const iS = ({ trigger: e, children: t, title: n, description: r, open: o, onOpenChange: a, ariaDescription: s }) => {
7951
+ const lS = ({ trigger: e, children: t, title: n, description: r, open: o, onOpenChange: a, ariaDescription: s }) => {
7889
7952
  const i = o !== void 0, [c, d] = Be(i ? o : !1);
7890
7953
  if (Jt(() => {
7891
7954
  !s && !r && console.warn("Warning: Missing aria description. Please provide either an ariaDescription or description prop.");
@@ -8031,7 +8094,7 @@ function Is({ className: e, ...t }) {
8031
8094
  }
8032
8095
  );
8033
8096
  }
8034
- const lS = ({ pageCount: e, currentPage: t, onChange: n }) => {
8097
+ const cS = ({ pageCount: e, currentPage: t, onChange: n }) => {
8035
8098
  const r = Math.max(1, e), o = Math.max(1, Math.min(t, r)), a = Tt(() => r === 1 ? [1] : o <= 3 ? Array.from({ length: Math.min(3, r) }, (s, i) => i + 1) : o >= r - 2 ? Array.from(
8036
8099
  { length: Math.min(3, r) },
8037
8100
  (s, i) => r - Math.min(3, r) + i + 1
@@ -8113,7 +8176,7 @@ const lS = ({ pageCount: e, currentPage: t, onChange: n }) => {
8113
8176
  ) })
8114
8177
  ] }) });
8115
8178
  };
8116
- var Vr = "Popover", [mc, cS] = De(Vr, [
8179
+ var Vr = "Popover", [mc, dS] = De(Vr, [
8117
8180
  Ar
8118
8181
  ]), Fn = Ar(), [Gb, Et] = mc(Vr), pc = (e) => {
8119
8182
  const {
@@ -8351,7 +8414,7 @@ function La({
8351
8414
  const Cc = ({ children: e, ...t }) => /* @__PURE__ */ l.jsx(Fa, { ...t, children: e });
8352
8415
  Cc.Trigger = Wa;
8353
8416
  Cc.Content = La;
8354
- const dS = ({ className: e, orientation: t = "horizontal", gap: n, ...r }) => {
8417
+ const uS = ({ className: e, orientation: t = "horizontal", gap: n, ...r }) => {
8355
8418
  const o = t === "vertical", s = n ?? (o ? "2" : "4");
8356
8419
  return /* @__PURE__ */ l.jsx(
8357
8420
  Al,
@@ -8403,7 +8466,7 @@ const dS = ({ className: e, orientation: t = "horizontal", gap: n, ...r }) => {
8403
8466
  }
8404
8467
  );
8405
8468
  };
8406
- function uS({ className: e, ...t }) {
8469
+ function fS({ className: e, ...t }) {
8407
8470
  return /* @__PURE__ */ l.jsx("div", { className: S("bg-accent animate-pulse rounded-md", e), "data-slot": "skeleton", ...t });
8408
8471
  }
8409
8472
  function ax({ className: e, ...t }) {
@@ -8625,7 +8688,7 @@ function Mc(e, t = !1) {
8625
8688
  function wx(e, t) {
8626
8689
  return e.map((n, r) => e[(t + r) % e.length]);
8627
8690
  }
8628
- var Dc = Nc, Oc = jc, Yr = "Tabs", [kx, fS] = De(Yr, [
8691
+ var Dc = Nc, Oc = jc, Yr = "Tabs", [kx, mS] = De(Yr, [
8629
8692
  Gr
8630
8693
  ]), Rc = Gr(), [Cx, Ba] = kx(Yr), Tc = m.forwardRef(
8631
8694
  (e, t) => {
@@ -8768,10 +8831,10 @@ function Lc(e, t) {
8768
8831
  return `${e}-content-${t}`;
8769
8832
  }
8770
8833
  var Sx = Tc, Nx = Ac, Ex = Ic, jx = Fc;
8771
- function mS({ className: e, ...t }) {
8834
+ function pS({ className: e, ...t }) {
8772
8835
  return /* @__PURE__ */ l.jsx(Sx, { className: S("flex flex-col gap-2", e), "data-slot": "tabs", ...t });
8773
8836
  }
8774
- function pS({ className: e, ...t }) {
8837
+ function hS({ className: e, ...t }) {
8775
8838
  return /* @__PURE__ */ l.jsx(
8776
8839
  Nx,
8777
8840
  {
@@ -8784,7 +8847,7 @@ function pS({ className: e, ...t }) {
8784
8847
  }
8785
8848
  );
8786
8849
  }
8787
- function hS({ className: e, ...t }) {
8850
+ function gS({ className: e, ...t }) {
8788
8851
  return /* @__PURE__ */ l.jsx(
8789
8852
  Ex,
8790
8853
  {
@@ -8797,7 +8860,7 @@ function hS({ className: e, ...t }) {
8797
8860
  }
8798
8861
  );
8799
8862
  }
8800
- function gS({ className: e, ...t }) {
8863
+ function vS({ className: e, ...t }) {
8801
8864
  return /* @__PURE__ */ l.jsx(jx, { className: S("flex-1 outline-none", e), "data-slot": "tabs-content", ...t });
8802
8865
  }
8803
8866
  const Mx = ({
@@ -9375,7 +9438,7 @@ const Px = ({ children: e, sticky: t = !1, className: n, ...r }) => /* @__PURE__
9375
9438
  ...n,
9376
9439
  children: e
9377
9440
  }
9378
- )), vS = Object.assign(_x, { Header: Px, Body: Ax, Footer: Tx }), tt = ({
9441
+ )), bS = Object.assign(_x, { Header: Px, Body: Ax, Footer: Tx }), tt = ({
9379
9442
  label: e,
9380
9443
  children: t,
9381
9444
  onClick: n,
@@ -9436,7 +9499,7 @@ En.Button = sa(({ children: e, className: t, ...n }, r) => /* @__PURE__ */ l.jsx
9436
9499
  }
9437
9500
  ));
9438
9501
  En.Button.displayName = "ButtonGroupButton";
9439
- const bS = ({ icon: e, disabled: t = !1, handleDelete: n, ...r }) => {
9502
+ const xS = ({ icon: e, disabled: t = !1, handleDelete: n, ...r }) => {
9440
9503
  const o = e ? () => e : Am;
9441
9504
  return /* @__PURE__ */ l.jsx(
9442
9505
  tt,
@@ -9455,7 +9518,7 @@ const bS = ({ icon: e, disabled: t = !1, handleDelete: n, ...r }) => {
9455
9518
  submit: { label: "Submit", submittingLabel: "Submitting", IconComponent: fo },
9456
9519
  save: { label: "Save", submittingLabel: "Saving", IconComponent: Em },
9457
9520
  send: { label: "Send", submittingLabel: "Sending", IconComponent: fo }
9458
- }, xS = ({
9521
+ }, yS = ({
9459
9522
  submitting: e = !1,
9460
9523
  disabled: t = !1,
9461
9524
  submittingIcon: n,
@@ -9939,7 +10002,7 @@ const hy = ({ label: e, options: t, onSelect: n, selectedValue: r }) => /* @__PU
9939
10002
  /* @__PURE__ */ l.jsx(fy, { children: n ? "No options found." : "No results found." }),
9940
10003
  e.map(({ label: o, options: a }, s) => /* @__PURE__ */ l.jsx(hy, { label: o, options: a, ...r }, o || `option-list-${s}`))
9941
10004
  ] })
9942
- ] }), yS = ({
10005
+ ] }), wS = ({
9943
10006
  name: e,
9944
10007
  label: t,
9945
10008
  hint: n,
@@ -10070,7 +10133,7 @@ function qr(e) {
10070
10133
  const t = m.useRef({ value: e, previous: e });
10071
10134
  return m.useMemo(() => (t.current.value !== e && (t.current.previous = t.current.value, t.current.value = e), t.current.previous), [e]);
10072
10135
  }
10073
- var Kr = "Checkbox", [gy, wS] = De(Kr), [vy, Ga] = gy(Kr);
10136
+ var Kr = "Checkbox", [gy, kS] = De(Kr), [vy, Ga] = gy(Kr);
10074
10137
  function by(e) {
10075
10138
  const {
10076
10139
  __scopeCheckbox: t,
@@ -10320,7 +10383,7 @@ function yy({ className: e, ...t }) {
10320
10383
  }
10321
10384
  );
10322
10385
  }
10323
- const kS = ({
10386
+ const CS = ({
10324
10387
  label: e,
10325
10388
  name: t,
10326
10389
  value: n,
@@ -10362,7 +10425,7 @@ const kS = ({
10362
10425
  s && /* @__PURE__ */ l.jsx(nt, { message: s })
10363
10426
  ] })
10364
10427
  ] });
10365
- }, CS = ({ content: e, className: t, size: n = "md", ...r }) => {
10428
+ }, SS = ({ content: e, className: t, size: n = "md", ...r }) => {
10366
10429
  const [o, a] = Be(!1), s = Zt(null);
10367
10430
  Jt(() => () => {
10368
10431
  s.current && clearTimeout(s.current);
@@ -13342,7 +13405,7 @@ function E1({
13342
13405
  );
13343
13406
  }) });
13344
13407
  }
13345
- const SS = ({ onDateSelection: e, initialValue: t, className: n, size: r = "default", error: o }) => {
13408
+ const NS = ({ onDateSelection: e, initialValue: t, className: n, size: r = "default", error: o }) => {
13346
13409
  const [a, s] = Be(t), i = (c) => {
13347
13410
  s(c), c && e(c);
13348
13411
  };
@@ -13582,7 +13645,7 @@ const $1 = ({
13582
13645
  type: "number",
13583
13646
  ...s
13584
13647
  }
13585
- ), NS = ({
13648
+ ), ES = ({
13586
13649
  name: e,
13587
13650
  size: t = "md",
13588
13651
  label: n,
@@ -13723,7 +13786,7 @@ Wd.displayName = z1;
13723
13786
  function Ld(e) {
13724
13787
  return e ? "checked" : "unchecked";
13725
13788
  }
13726
- var H1 = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], Xr = "RadioGroup", [V1, ES] = De(Xr, [
13789
+ var H1 = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"], Xr = "RadioGroup", [V1, jS] = De(Xr, [
13727
13790
  Gr,
13728
13791
  _d
13729
13792
  ]), Bd = Gr(), zd = _d(), [G1, Y1] = V1(Xr), Hd = m.forwardRef(
@@ -13855,7 +13918,7 @@ function Q1({ className: e, ...t }) {
13855
13918
  }
13856
13919
  );
13857
13920
  }
13858
- const jS = ({ label: e, name: t, options: n, value: r, onChange: o, error: a, labelClassName: s }) => /* @__PURE__ */ l.jsxs($1, { className: "flex flex-col gap-4 px-2 py-1", label: e, labelFor: t, children: [
13921
+ const MS = ({ label: e, name: t, options: n, value: r, onChange: o, error: a, labelClassName: s }) => /* @__PURE__ */ l.jsxs($1, { className: "flex flex-col gap-4 px-2 py-1", label: e, labelFor: t, children: [
13859
13922
  /* @__PURE__ */ l.jsx(X1, { className: "w-full", name: t, onValueChange: o, value: r, children: /* @__PURE__ */ l.jsx(Bc, { cols: "2", children: n.map((i, c) => /* @__PURE__ */ l.jsxs(se, { align: "center", gap: "2", justify: "start", children: [
13860
13923
  /* @__PURE__ */ l.jsx(Q1, { id: i.value, value: i.value }),
13861
13924
  /* @__PURE__ */ l.jsx(_e, { className: s, htmlFor: i.value, children: i.label }),
@@ -13901,7 +13964,7 @@ function To({ ...e }) {
13901
13964
  function ek({ className: e, ...t }) {
13902
13965
  return /* @__PURE__ */ l.jsx("optgroup", { className: S(e), "data-slot": "native-select-optgroup", ...t });
13903
13966
  }
13904
- const MS = ({
13967
+ const DS = ({
13905
13968
  name: e,
13906
13969
  defaultValue: t,
13907
13970
  options: n,
@@ -15048,7 +15111,7 @@ const Ak = ({
15048
15111
  }) => /* @__PURE__ */ l.jsxs(Dk, { onOpenChange: n, open: t, children: [
15049
15112
  /* @__PURE__ */ l.jsx(Ok, { asChild: !0, children: /* @__PURE__ */ l.jsx(It, { className: S("w-full justify-start", a), id: o, variant: "outline", children: e }) }),
15050
15113
  /* @__PURE__ */ l.jsx(Pk, { children: r })
15051
- ] }), DS = ({
15114
+ ] }), OS = ({
15052
15115
  options: e,
15053
15116
  value: t,
15054
15117
  placeholder: n = "Select an option",
@@ -15130,7 +15193,7 @@ var su = ["PageUp", "PageDown"], iu = ["ArrowUp", "ArrowDown", "ArrowLeft", "Arr
15130
15193
  "from-right": ["Home", "PageDown", "ArrowDown", "ArrowRight"],
15131
15194
  "from-bottom": ["Home", "PageDown", "ArrowDown", "ArrowLeft"],
15132
15195
  "from-top": ["Home", "PageDown", "ArrowUp", "ArrowLeft"]
15133
- }, mn = "Slider", [na, _k, Ik] = la(mn), [cu, OS] = De(mn, [
15196
+ }, mn = "Slider", [na, _k, Ik] = la(mn), [cu, RS] = De(mn, [
15134
15197
  Ik
15135
15198
  ]), [$k, Qr] = cu(mn), du = m.forwardRef(
15136
15199
  (e, t) => {
@@ -15599,7 +15662,7 @@ function eC({
15599
15662
  }
15600
15663
  );
15601
15664
  }
15602
- const RS = ({
15665
+ const TS = ({
15603
15666
  name: e,
15604
15667
  size: t = "md",
15605
15668
  label: n,
@@ -15665,7 +15728,7 @@ const RS = ({
15665
15728
  i && /* @__PURE__ */ l.jsx(nt, { id: g, message: i })
15666
15729
  ] });
15667
15730
  };
15668
- var Jr = "Switch", [tC, TS] = De(Jr), [nC, rC] = tC(Jr), yu = m.forwardRef(
15731
+ var Jr = "Switch", [tC, PS] = De(Jr), [nC, rC] = tC(Jr), yu = m.forwardRef(
15669
15732
  (e, t) => {
15670
15733
  const {
15671
15734
  __scopeSwitch: n,
@@ -15809,7 +15872,7 @@ function iC({
15809
15872
  }
15810
15873
  );
15811
15874
  }
15812
- const PS = ({
15875
+ const AS = ({
15813
15876
  id: e,
15814
15877
  label: t,
15815
15878
  className: n,
@@ -16127,10 +16190,10 @@ const Qa = ({
16127
16190
  } catch {
16128
16191
  console.warn("Page reload prevented in test environment");
16129
16192
  }
16130
- }, AS = ({ error: e, onRetry: t = wC, ...n }) => /* @__PURE__ */ l.jsx(yC, { ...n, children: /* @__PURE__ */ l.jsxs(se, { align: "center", direction: "col", gap: "8", children: [
16193
+ }, _S = ({ error: e, onRetry: t = wC, ...n }) => /* @__PURE__ */ l.jsx(yC, { ...n, children: /* @__PURE__ */ l.jsxs(se, { align: "center", direction: "col", gap: "8", children: [
16131
16194
  /* @__PURE__ */ l.jsx(za, { className: "p-4", variant: "muted", width: "full", children: /* @__PURE__ */ l.jsx(Qp, { align: "center", size: "xs", variant: "inherit", children: e.message || "Unknown error occurred" }) }),
16132
16195
  /* @__PURE__ */ l.jsx(tt, { icon: /* @__PURE__ */ l.jsx(Sm, {}), onClick: t, variant: "primary", children: "Reload" })
16133
- ] }) }), kC = (e) => /* @__PURE__ */ l.jsx(_l, { className: "text-info", "data-testid": "icon", ...e }), _S = ({ iconComponent: e, message: t, iconSize: n = "5xl", iconClassName: r, ...o }) => {
16196
+ ] }) }), kC = (e) => /* @__PURE__ */ l.jsx(_l, { className: "text-info", "data-testid": "icon", ...e }), IS = ({ iconComponent: e, message: t, iconSize: n = "5xl", iconClassName: r, ...o }) => {
16134
16197
  const a = e || kC;
16135
16198
  return /* @__PURE__ */ l.jsx(
16136
16199
  Qa,
@@ -16144,7 +16207,7 @@ const Qa = ({
16144
16207
  ...o
16145
16208
  }
16146
16209
  );
16147
- }, IS = ({
16210
+ }, $S = ({
16148
16211
  onBack: e,
16149
16212
  headline: t = "Page not found",
16150
16213
  message: n = "The page you are looking for does not exist.",
@@ -16604,7 +16667,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16604
16667
  ] })
16605
16668
  ] }) }),
16606
16669
  /* @__PURE__ */ l.jsx(WC, {})
16607
- ] }), $S = ({ children: e, ...t }) => /* @__PURE__ */ l.jsxs(IC, { children: [
16670
+ ] }), FS = ({ children: e, ...t }) => /* @__PURE__ */ l.jsxs(IC, { children: [
16608
16671
  /* @__PURE__ */ l.jsx(qC, { ...t }),
16609
16672
  /* @__PURE__ */ l.jsx(LC, { className: "max-w-screen-xl", children: e })
16610
16673
  ] }), Du = [
@@ -16617,7 +16680,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16617
16680
  "warning",
16618
16681
  "destructive",
16619
16682
  "brand"
16620
- ], FS = [
16683
+ ], WS = [
16621
16684
  "red",
16622
16685
  "orange",
16623
16686
  "amber",
@@ -16642,7 +16705,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16642
16705
  "stone",
16643
16706
  "white",
16644
16707
  "black"
16645
- ], WS = [
16708
+ ], LS = [
16646
16709
  "div",
16647
16710
  "span",
16648
16711
  "section",
@@ -16652,7 +16715,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16652
16715
  "aside",
16653
16716
  "nav",
16654
16717
  "article"
16655
- ], LS = ["p", "span", "label", "div", "h1", "h2", "h3", "h4", "h5", "h6"], BS = ["default", ...Du], KC = [
16718
+ ], BS = ["p", "span", "label", "div", "h1", "h2", "h3", "h4", "h5", "h6"], zS = ["default", ...Du], KC = [
16656
16719
  "0",
16657
16720
  "1",
16658
16721
  "2",
@@ -16682,7 +16745,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16682
16745
  "72",
16683
16746
  "84",
16684
16747
  "96"
16685
- ], Ou = [...KC, "auto", "full", "min", "max", "fit", "px"], zS = [
16748
+ ], Ou = [...KC, "auto", "full", "min", "max", "fit", "px"], HS = [
16686
16749
  ...Ou,
16687
16750
  "3xs",
16688
16751
  "2xs",
@@ -16698,7 +16761,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16698
16761
  "6xl",
16699
16762
  "7xl",
16700
16763
  "screen"
16701
- ], HS = [...Ou, "screen"], VS = [
16764
+ ], VS = [...Ou, "screen"], GS = [
16702
16765
  "block",
16703
16766
  "flex",
16704
16767
  "grid",
@@ -16722,7 +16785,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16722
16785
  "hidden",
16723
16786
  "sr-only",
16724
16787
  "not-sr-only"
16725
- ], GS = ["content", "border"], YS = ["static", "fixed", "absolute", "relative", "sticky"], US = ["auto", "scroll", "hidden", "clip", "visible"], qS = ["none", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "full", !0, !1], KS = ["row", "col", "row-reverse", "col-reverse"], ZS = ["start", "center", "end", "stretch", "baseline"], XS = [
16788
+ ], YS = ["content", "border"], US = ["static", "fixed", "absolute", "relative", "sticky"], qS = ["auto", "scroll", "hidden", "clip", "visible"], KS = ["none", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "full", !0, !1], ZS = ["row", "col", "row-reverse", "col-reverse"], XS = ["start", "center", "end", "stretch", "baseline"], QS = [
16726
16789
  "start",
16727
16790
  "center",
16728
16791
  "end",
@@ -16732,7 +16795,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16732
16795
  "stretch",
16733
16796
  "baseline",
16734
16797
  "normal"
16735
- ], QS = ["nowrap", "wrap", "wrap-reverse"], JS = [
16798
+ ], JS = ["nowrap", "wrap", "wrap-reverse"], eN = [
16736
16799
  null,
16737
16800
  !0,
16738
16801
  !1,
@@ -16749,7 +16812,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16749
16812
  "10",
16750
16813
  "11",
16751
16814
  "12"
16752
- ], eN = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "none"], tN = [
16815
+ ], tN = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "none"], nN = [
16753
16816
  "1",
16754
16817
  "2",
16755
16818
  "3",
@@ -16775,7 +16838,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16775
16838
  "23",
16776
16839
  "24",
16777
16840
  "none"
16778
- ], nN = ["row", "col", "dense", "row-dense", "col-dense"], rN = [
16841
+ ], rN = ["row", "col", "dense", "row-dense", "col-dense"], oN = [
16779
16842
  "0",
16780
16843
  "1",
16781
16844
  "2",
@@ -16793,7 +16856,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16793
16856
  "14",
16794
16857
  "15",
16795
16858
  "16"
16796
- ], oN = ["1", "2", "3", "4", "5", "6"], aN = [
16859
+ ], aN = ["1", "2", "3", "4", "5", "6"], sN = [
16797
16860
  "xs",
16798
16861
  "sm",
16799
16862
  "base",
@@ -16808,7 +16871,7 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16808
16871
  "7xl",
16809
16872
  "8xl",
16810
16873
  "9xl"
16811
- ], sN = ["display", "serif", "sans", "mono", "heading", "body", "brand"], iN = ["default", "inherit", ...Du], lN = [
16874
+ ], iN = ["display", "serif", "sans", "mono", "heading", "body", "brand"], lN = ["default", "inherit", ...Du], cN = [
16812
16875
  "thin",
16813
16876
  "extralight",
16814
16877
  "light",
@@ -16818,49 +16881,50 @@ const Mu = ({ children: e }) => /* @__PURE__ */ l.jsx(we, { size: "base", trunca
16818
16881
  "bold",
16819
16882
  "extrabold",
16820
16883
  "black"
16821
- ], cN = ["left", "center", "right", "justify", "start", "end"], dN = ["none", "tight", "snug", "normal", "relaxed", "loose"], uN = ["tighter", "tight", "normal", "wide", "wider", "widest"];
16884
+ ], dN = ["left", "center", "right", "justify", "start", "end"], uN = ["none", "tight", "snug", "normal", "relaxed", "loose"], fN = ["tighter", "tight", "normal", "wide", "wider", "widest"];
16822
16885
  export {
16823
16886
  xa as Accordion,
16824
16887
  JC as Alert,
16825
- GS as BOX_SIZINGS,
16888
+ YS as BOX_SIZINGS,
16826
16889
  eS as Badge,
16827
16890
  za as Box,
16828
16891
  tS as Breadcrumbs,
16829
16892
  Jp as BulletList,
16830
16893
  tt as Button,
16831
16894
  En as ButtonGroup,
16832
- yS as ButtonSelectInput,
16895
+ wS as ButtonSelectInput,
16833
16896
  Du as COLOR_VARIANTS,
16897
+ oS as CURSOR_TYPES,
16834
16898
  sn as Card,
16835
- kS as Checkbox,
16899
+ CS as Checkbox,
16836
16900
  Qp as Code,
16837
16901
  Yi as Collapsible,
16838
16902
  Ha as Container,
16839
- CS as CopyButton,
16840
- VS as DISPLAYS,
16903
+ SS as CopyButton,
16904
+ GS as DISPLAYS,
16841
16905
  wy as DateInput,
16842
- SS as DatePicker,
16843
- bS as DeleteButton,
16906
+ NS as DatePicker,
16907
+ xS as DeleteButton,
16844
16908
  An as Empty,
16845
- AS as ErrorFallback,
16909
+ _S as ErrorFallback,
16846
16910
  yC as ErrorOverlay,
16847
- ZS as FLEX_ALIGNS,
16848
- KS as FLEX_DIRECTIONS,
16849
- JS as FLEX_GROWS,
16850
- XS as FLEX_JUSTIFIES,
16851
- QS as FLEX_WRAPS,
16852
- sN as FONT_FAMILIES,
16853
- aN as FONT_SIZES,
16854
- lN as FONT_WEIGHTS,
16911
+ XS as FLEX_ALIGNS,
16912
+ ZS as FLEX_DIRECTIONS,
16913
+ eN as FLEX_GROWS,
16914
+ QS as FLEX_JUSTIFIES,
16915
+ JS as FLEX_WRAPS,
16916
+ iN as FONT_FAMILIES,
16917
+ sN as FONT_SIZES,
16918
+ cN as FONT_WEIGHTS,
16855
16919
  se as Flex,
16856
16920
  Tx as Footer,
16857
- rN as GAPS,
16858
- eN as GRID_COLS,
16859
- nN as GRID_FLOWS,
16860
- tN as GRID_ROWS,
16921
+ oN as GAPS,
16922
+ tN as GRID_COLS,
16923
+ rN as GRID_FLOWS,
16924
+ nN as GRID_ROWS,
16861
16925
  Bc as Grid,
16862
- oN as HEADING_LEVELS,
16863
- HS as HEIGHTS,
16926
+ aN as HEADING_LEVELS,
16927
+ VS as HEIGHTS,
16864
16928
  Px as Header,
16865
16929
  Mr as Heading,
16866
16930
  Nt as Hint,
@@ -16869,44 +16933,44 @@ export {
16869
16933
  ct as InputGroup,
16870
16934
  Qa as Interstitial,
16871
16935
  Wt as Item,
16872
- oS as ItemGroup,
16873
- WS as LAYOUT_ELEMENTS,
16874
- BS as LAYOUT_VARIANTS,
16936
+ aS as ItemGroup,
16937
+ LS as LAYOUT_ELEMENTS,
16938
+ zS as LAYOUT_VARIANTS,
16875
16939
  _e as Label,
16876
- vS as Layout,
16940
+ bS as Layout,
16877
16941
  $1 as LegacyInputGroup,
16878
16942
  _l as Loader,
16879
16943
  Mu as MenuItemText,
16880
- iS as Modal,
16944
+ lS as Modal,
16881
16945
  F1 as NumberInput,
16882
- US as OVERFLOWS,
16883
- YS as POSITIONS,
16884
- _S as PageLoader,
16885
- IS as PageNotFound,
16886
- lS as Pagination,
16946
+ qS as OVERFLOWS,
16947
+ US as POSITIONS,
16948
+ IS as PageLoader,
16949
+ $S as PageNotFound,
16950
+ cS as Pagination,
16887
16951
  nS as Paragraph,
16888
- NS as PasswordInput,
16952
+ ES as PasswordInput,
16889
16953
  Cc as Popover,
16890
- qS as ROUNDED_SIZES,
16891
- jS as RadioSelect,
16954
+ KS as ROUNDED_SIZES,
16955
+ MS as RadioSelect,
16892
16956
  Ou as SIZES,
16893
- MS as SelectInput,
16894
- DS as SelectPicker,
16895
- dS as Separator,
16957
+ DS as SelectInput,
16958
+ OS as SelectPicker,
16959
+ uS as Separator,
16896
16960
  qC as Sidebar,
16897
- $S as SidebarLayout,
16961
+ FS as SidebarLayout,
16898
16962
  FC as SidebarTrigger,
16899
16963
  vv as SimpleTooltip,
16900
- uS as Skeleton,
16901
- RS as Slider,
16902
- xS as SubmitButton,
16903
- PS as Switch,
16904
- FS as TAILWIND_COLORS,
16905
- cN as TEXT_ALIGNS,
16906
- dN as TEXT_LEADINGS,
16907
- uN as TEXT_TRACKINGS,
16908
- LS as TYPOGRAPHY_ELEMENTS,
16909
- iN as TYPOGRAPHY_VARIANTS,
16964
+ fS as Skeleton,
16965
+ TS as Slider,
16966
+ yS as SubmitButton,
16967
+ AS as Switch,
16968
+ WS as TAILWIND_COLORS,
16969
+ dN as TEXT_ALIGNS,
16970
+ uN as TEXT_LEADINGS,
16971
+ fN as TEXT_TRACKINGS,
16972
+ BS as TYPOGRAPHY_ELEMENTS,
16973
+ lN as TYPOGRAPHY_VARIANTS,
16910
16974
  dn as Table,
16911
16975
  ix as TableBody,
16912
16976
  ux as TableCaption,
@@ -16914,10 +16978,10 @@ export {
16914
16978
  cx as TableHead,
16915
16979
  sx as TableHeader,
16916
16980
  lx as TableRow,
16917
- mS as Tabs,
16918
- gS as TabsContent,
16919
- pS as TabsList,
16920
- hS as TabsTrigger,
16981
+ pS as Tabs,
16982
+ vS as TabsContent,
16983
+ hS as TabsList,
16984
+ gS as TabsTrigger,
16921
16985
  we as Text,
16922
16986
  qa as TextInput,
16923
16987
  Mx as TextList,
@@ -16925,6 +16989,6 @@ export {
16925
16989
  dC as ThemeSelector,
16926
16990
  Bt as Timeline,
16927
16991
  Me as Tooltip,
16928
- zS as WIDTHS,
16992
+ HS as WIDTHS,
16929
16993
  S as cn
16930
16994
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@still-forest/canopy",
3
- "version": "0.50.0",
3
+ "version": "0.51.0",
4
4
  "author": "John Szymanowski",
5
5
  "license": "MIT",
6
6
  "description": "React components, built with Tailwind CSS, Shadcn, and VisX",
@@ -73,7 +73,7 @@
73
73
  "@testing-library/jest-dom": "6.9.1",
74
74
  "@testing-library/react": "16.3.0",
75
75
  "@testing-library/user-event": "14.6.1",
76
- "@types/node": "22.19.1",
76
+ "@types/node": "24.10.1",
77
77
  "@types/react": "19.2.7",
78
78
  "@types/react-dom": "19.2.3",
79
79
  "@vitejs/plugin-react": "5.1.0",
@@ -101,5 +101,10 @@
101
101
  "tailwindcss": "^4.0.0",
102
102
  "tw-animate-css": "^1.0.0"
103
103
  },
104
- "packageManager": "pnpm@10.23.0"
104
+ "packageManager": "pnpm@10.23.0",
105
+ "pnpm": {
106
+ "overrides": {
107
+ "rollup": "4.44.1"
108
+ }
109
+ }
105
110
  }