shadcn-glass-ui 2.2.4 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cli/index.cjs +1 -1
  3. package/dist/components/glass/ui/checkbox-glass.d.ts +71 -38
  4. package/dist/components/glass/ui/checkbox-glass.d.ts.map +1 -1
  5. package/dist/components/glass/ui/tabs-glass.d.ts +57 -7
  6. package/dist/components/glass/ui/tabs-glass.d.ts.map +1 -1
  7. package/dist/components.cjs +4 -4
  8. package/dist/components.mjs +1 -1
  9. package/dist/hooks.cjs +2 -2
  10. package/dist/index.cjs +10 -5
  11. package/dist/index.d.ts +4 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.mjs +2 -2
  14. package/dist/lib/types.d.ts +2 -2
  15. package/dist/lib/types.d.ts.map +1 -1
  16. package/dist/r/checkbox-glass.json +3 -2
  17. package/dist/r/tabs-glass.json +4 -2
  18. package/dist/{theme-context-DBAPfMto.cjs → theme-context-DmTETrFi.cjs} +2 -2
  19. package/dist/{theme-context-DBAPfMto.cjs.map → theme-context-DmTETrFi.cjs.map} +1 -1
  20. package/dist/themes.cjs +1 -1
  21. package/dist/{trust-score-card-glass-_v9hGnCW.cjs → trust-score-card-glass-3VBi9soW.cjs} +76 -17
  22. package/dist/trust-score-card-glass-3VBi9soW.cjs.map +1 -0
  23. package/dist/{trust-score-card-glass-BUt9MIF0.mjs → trust-score-card-glass-EfMB5l5J.mjs} +44 -15
  24. package/dist/trust-score-card-glass-EfMB5l5J.mjs.map +1 -0
  25. package/dist/{use-focus-DBs46Dxv.cjs → use-focus-CswOSq71.cjs} +2 -2
  26. package/dist/{use-focus-DBs46Dxv.cjs.map → use-focus-CswOSq71.cjs.map} +1 -1
  27. package/dist/{use-wallpaper-tint-DNdTbD1y.cjs → use-wallpaper-tint-WtRWtupA.cjs} +2 -2
  28. package/dist/{use-wallpaper-tint-DNdTbD1y.cjs.map → use-wallpaper-tint-WtRWtupA.cjs.map} +1 -1
  29. package/dist/{utils-D5ef293O.cjs → utils-DX6rdBol.cjs} +2 -2
  30. package/dist/{utils-D5ef293O.cjs.map → utils-DX6rdBol.cjs.map} +1 -1
  31. package/dist/utils.cjs +1 -1
  32. package/package.json +1 -1
  33. package/dist/trust-score-card-glass-BUt9MIF0.mjs.map +0 -1
  34. package/dist/trust-score-card-glass-_v9hGnCW.cjs.map +0 -1
@@ -528,14 +528,31 @@ const ButtonGlass = forwardRef(({ asChild = false, className, variant = "default
528
528
  });
529
529
  });
530
530
  ButtonGlass.displayName = "ButtonGlass";
531
- const CheckboxGlass = forwardRef(({ className, checked, onChange, label, disabled, ...props }, ref) => {
531
+ const CheckboxGlass = forwardRef(({ className, checked: controlledChecked, defaultChecked, onCheckedChange, onChange, label, disabled, ...props }, ref) => {
532
532
  const { isHovered, hoverProps } = useHover();
533
533
  const { isFocusVisible, focusProps } = useFocus({ focusVisible: true });
534
+ const [uncontrolledChecked, setUncontrolledChecked] = React.useState(defaultChecked ?? false);
535
+ const isControlled = controlledChecked !== void 0;
536
+ const checked = isControlled ? controlledChecked : uncontrolledChecked;
537
+ const isChecked = checked === true;
538
+ const isIndeterminate = checked === "indeterminate";
539
+ const showIndicator = isChecked || isIndeterminate;
540
+ const handleChange = (newChecked) => {
541
+ if (disabled) return;
542
+ if (!isControlled) setUncontrolledChecked(newChecked);
543
+ onCheckedChange?.(newChecked);
544
+ if (onChange && typeof newChecked === "boolean") onChange(newChecked);
545
+ };
546
+ const toggleChecked = () => {
547
+ if (isIndeterminate) handleChange(true);
548
+ else handleChange(!isChecked);
549
+ };
534
550
  const checkboxStyles = {
535
- background: checked ? "var(--checkbox-checked-bg)" : "var(--checkbox-bg)",
536
- border: `2px solid ${checked ? "var(--checkbox-checked-bg)" : "var(--checkbox-border)"}`,
551
+ background: showIndicator ? "var(--checkbox-checked-bg)" : "var(--checkbox-bg)",
552
+ border: `2px solid ${showIndicator ? "var(--checkbox-checked-bg)" : "var(--checkbox-border)"}`,
537
553
  boxShadow: isFocusVisible && !disabled ? "var(--focus-glow)" : isHovered && !disabled ? "var(--checkbox-glow)" : "none"
538
554
  };
555
+ const ariaChecked = isIndeterminate ? "mixed" : isChecked;
539
556
  return /* @__PURE__ */ jsxs("label", {
540
557
  className: cn("inline-flex items-center gap-2 md:gap-2.5", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer", className),
541
558
  onMouseEnter: hoverProps.onMouseEnter,
@@ -544,34 +561,37 @@ const CheckboxGlass = forwardRef(({ className, checked, onChange, label, disable
544
561
  /* @__PURE__ */ jsx("input", {
545
562
  ref,
546
563
  type: "checkbox",
547
- checked,
548
- onChange: (e) => !disabled && onChange?.(e.target.checked),
564
+ checked: isChecked,
565
+ onChange: (e) => handleChange(e.target.checked),
549
566
  disabled,
550
567
  className: "sr-only",
551
568
  ...props
552
569
  }),
553
570
  /* @__PURE__ */ jsx("span", {
554
571
  className: "inline-flex items-center justify-center min-w-11 min-h-11",
555
- children: /* @__PURE__ */ jsx("div", {
556
- onClick: () => !disabled && onChange?.(!checked),
572
+ children: /* @__PURE__ */ jsxs("div", {
573
+ onClick: toggleChecked,
557
574
  onFocus: focusProps.onFocus,
558
575
  onBlur: focusProps.onBlur,
559
576
  className: "relative w-6 h-6 md:w-5 md:h-5 rounded-md flex items-center justify-center transition-all duration-300",
560
577
  style: checkboxStyles,
561
578
  role: "checkbox",
562
- "aria-checked": checked,
579
+ "aria-checked": ariaChecked,
563
580
  "aria-label": label || "Checkbox",
564
581
  tabIndex: disabled ? -1 : 0,
565
582
  onKeyDown: (e) => {
566
583
  if (!disabled && (e.key === "Enter" || e.key === " ")) {
567
584
  e.preventDefault();
568
- onChange?.(!checked);
585
+ toggleChecked();
569
586
  }
570
587
  },
571
- children: checked && /* @__PURE__ */ jsx(Check, {
588
+ children: [isChecked && /* @__PURE__ */ jsx(Check, {
572
589
  className: "w-3.5 h-3.5 md:w-3 md:h-3",
573
590
  style: { color: "var(--text-inverse)" }
574
- })
591
+ }), isIndeterminate && /* @__PURE__ */ jsx(Minus, {
592
+ className: "w-3.5 h-3.5 md:w-3 md:h-3",
593
+ style: { color: "var(--text-inverse)" }
594
+ })]
575
595
  })
576
596
  }),
577
597
  label && /* @__PURE__ */ jsx("span", {
@@ -583,6 +603,7 @@ const CheckboxGlass = forwardRef(({ className, checked, onChange, label, disable
583
603
  });
584
604
  });
585
605
  CheckboxGlass.displayName = "CheckboxGlass";
606
+ const Checkbox = CheckboxGlass;
586
607
  var circularProgressVariants = cva("relative inline-flex items-center justify-center p-4", {
587
608
  variants: { size: {
588
609
  sm: "w-20 h-20",
@@ -1545,11 +1566,18 @@ var useTabsContext = () => {
1545
1566
  if (!context) throw new Error("Tabs compound components must be used within TabsGlass.Root");
1546
1567
  return context;
1547
1568
  };
1548
- var TabsRoot = ({ value, onValueChange, children, className }) => {
1569
+ var TabsRoot = ({ value: controlledValue, defaultValue, onValueChange, children, className }) => {
1570
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? "");
1571
+ const isControlled = controlledValue !== void 0;
1572
+ const value = isControlled ? controlledValue : uncontrolledValue;
1573
+ const handleValueChange = (newValue) => {
1574
+ if (!isControlled) setUncontrolledValue(newValue);
1575
+ onValueChange?.(newValue);
1576
+ };
1549
1577
  return /* @__PURE__ */ jsx(TabsContext.Provider, {
1550
1578
  value: {
1551
1579
  value,
1552
- onValueChange
1580
+ onValueChange: handleValueChange
1553
1581
  },
1554
1582
  children: /* @__PURE__ */ jsx("div", {
1555
1583
  className: cn("tabs-glass-root", className),
@@ -1650,6 +1678,7 @@ const TabsGlass = {
1650
1678
  Trigger: TabsTrigger,
1651
1679
  Content: TabsContent
1652
1680
  };
1681
+ const Tabs = TabsRoot;
1653
1682
  const toggleSizes = cva("relative rounded-full transition-all duration-300", {
1654
1683
  variants: {
1655
1684
  size: {
@@ -4192,6 +4221,6 @@ const TrustScoreCardGlass = forwardRef(({ score = 72, metrics = [], className, .
4192
4221
  });
4193
4222
  });
4194
4223
  TrustScoreCardGlass.displayName = "TrustScoreCardGlass";
4195
- export { PopoverGlass as $, FlagAlertGlass as A, CheckboxGlass as At, IconButtonGlass as B, statusSizes as Bt, sparklineContainerVariants as C, DropdownMenuGlassSub as Ct, progressSizes as D, ComboBoxGlass as Dt, ProgressGlass as E, DropdownMenuGlassTrigger as Et, SortDropdownGlass as F, AvatarGlass as Ft, TooltipGlassSimple as G, FormFieldWrapper as Gt, TooltipGlass as H, AlertGlassDescription as Ht, SearchBoxGlass as I, AvatarGlassFallback as It, toggleSizes as J, TooltipGlassTrigger as K, TouchTarget as Kt, InsightCardGlass as L, AvatarGlassImage as Lt, BaseProgressGlass as M, buttonGlassVariants as Mt, ThemeToggleGlass as N, BadgeGlass as Nt, ProfileAvatarGlass as O, inputVariants as Ot, StatItemGlass as P, badgeVariants as Pt, skeletonVariants as Q, insightCardVariants as R, AvatarGlassSimple as Rt, sparklineBarVariants as S, DropdownMenuGlassShortcut as St, RainbowProgressGlass as T, DropdownMenuGlassSubTrigger as Tt, TooltipGlassContent as U, AlertGlassTitle as Ut, ExpandableHeaderGlass as V, AlertGlass as Vt, TooltipGlassProvider as W, InteractiveCard as Wt, SliderGlass as X, TabsGlass as Y, SkeletonGlass as Z, ContributionMetricsGlass as _, DropdownMenuGlassLabel as _t, HeaderBrandingGlass as a, notificationVariants as at, AICardGlass as b, DropdownMenuGlassRadioItem as bt, YearCardGlass as c, InputGlass as ct, TrustScoreDisplayGlass as d, DropdownGlass as dt, PopoverGlassAnchor as et, RepositoryMetadataGlass as f, DropdownMenuGlass as ft, MetricCardGlass as g, DropdownMenuGlassItem as gt, MetricsGridGlass as h, DropdownMenuGlassGroup as ht, HeaderNavGlass as i, NotificationGlass as it, StatusIndicatorGlass as j, ButtonGlass as jt, LanguageBarGlass as k, CircularProgressGlass as kt, UserStatsLineGlass as l, GlassCard as lt, RepositoryCardGlass as m, DropdownMenuGlassContent as mt, ProjectsListGlass as n, PopoverGlassLegacy as nt, FlagsSectionGlass as o, ModalGlass as ot, RepositoryHeaderGlass as p, DropdownMenuGlassCheckboxItem as pt, ToggleGlass as q, alertVariants as qt, ProfileHeaderGlass as r, PopoverGlassTrigger as rt, CareerStatsGlass as s, modalSizes as st, TrustScoreCardGlass as t, PopoverGlassContent as tt, UserInfoGlass as u, cardIntensity as ut, CircularMetricGlass as v, DropdownMenuGlassPortal as vt, SegmentedControlGlass as w, DropdownMenuGlassSubContent as wt, SparklineGlass as x, DropdownMenuGlassSeparator as xt, CareerStatsHeaderGlass as y, DropdownMenuGlassRadioGroup as yt, insightVariantConfig as z, avatarSizes as zt };
4224
+ export { TabsTrigger as $, FlagAlertGlass as A, DropdownMenuGlassTrigger as At, IconButtonGlass as B, AvatarGlass as Bt, sparklineContainerVariants as C, DropdownMenuGlassRadioGroup as Ct, progressSizes as D, DropdownMenuGlassSub as Dt, ProgressGlass as E, DropdownMenuGlassShortcut as Et, SortDropdownGlass as F, CheckboxGlass as Ft, TooltipGlassSimple as G, statusSizes as Gt, TooltipGlass as H, AvatarGlassImage as Ht, SearchBoxGlass as I, ButtonGlass as It, toggleSizes as J, AlertGlassTitle as Jt, TooltipGlassTrigger as K, AlertGlass as Kt, InsightCardGlass as L, buttonGlassVariants as Lt, BaseProgressGlass as M, inputVariants as Mt, ThemeToggleGlass as N, CircularProgressGlass as Nt, ProfileAvatarGlass as O, DropdownMenuGlassSubContent as Ot, StatItemGlass as P, Checkbox as Pt, TabsList as Q, alertVariants as Qt, insightCardVariants as R, BadgeGlass as Rt, sparklineBarVariants as S, DropdownMenuGlassPortal as St, RainbowProgressGlass as T, DropdownMenuGlassSeparator as Tt, TooltipGlassContent as U, AvatarGlassSimple as Ut, ExpandableHeaderGlass as V, AvatarGlassFallback as Vt, TooltipGlassProvider as W, avatarSizes as Wt, TabsContent as X, FormFieldWrapper as Xt, Tabs as Y, InteractiveCard as Yt, TabsGlass as Z, TouchTarget as Zt, ContributionMetricsGlass as _, DropdownMenuGlassCheckboxItem as _t, HeaderBrandingGlass as a, PopoverGlassContent as at, AICardGlass as b, DropdownMenuGlassItem as bt, YearCardGlass as c, NotificationGlass as ct, TrustScoreDisplayGlass as d, modalSizes as dt, SliderGlass as et, RepositoryMetadataGlass as f, InputGlass as ft, MetricCardGlass as g, DropdownMenuGlass as gt, MetricsGridGlass as h, DropdownGlass as ht, HeaderNavGlass as i, PopoverGlassAnchor as it, StatusIndicatorGlass as j, ComboBoxGlass as jt, LanguageBarGlass as k, DropdownMenuGlassSubTrigger as kt, UserStatsLineGlass as l, notificationVariants as lt, RepositoryCardGlass as m, cardIntensity as mt, ProjectsListGlass as n, skeletonVariants as nt, FlagsSectionGlass as o, PopoverGlassLegacy as ot, RepositoryHeaderGlass as p, GlassCard as pt, ToggleGlass as q, AlertGlassDescription as qt, ProfileHeaderGlass as r, PopoverGlass as rt, CareerStatsGlass as s, PopoverGlassTrigger as st, TrustScoreCardGlass as t, SkeletonGlass as tt, UserInfoGlass as u, ModalGlass as ut, CircularMetricGlass as v, DropdownMenuGlassContent as vt, SegmentedControlGlass as w, DropdownMenuGlassRadioItem as wt, SparklineGlass as x, DropdownMenuGlassLabel as xt, CareerStatsHeaderGlass as y, DropdownMenuGlassGroup as yt, insightVariantConfig as z, badgeVariants as zt };
4196
4225
 
4197
- //# sourceMappingURL=trust-score-card-glass-BUt9MIF0.mjs.map
4226
+ //# sourceMappingURL=trust-score-card-glass-EfMB5l5J.mjs.map