shadcn-glass-ui 2.1.4 → 2.2.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 (38) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +13 -13
  3. package/context7.json +30 -4
  4. package/dist/cli/index.cjs +1 -1
  5. package/dist/components.cjs +4 -4
  6. package/dist/components.d.ts +18 -4
  7. package/dist/components.js +1 -1
  8. package/dist/hooks.cjs +2 -2
  9. package/dist/index.cjs +2320 -997
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +2284 -996
  12. package/dist/index.js.map +1 -1
  13. package/dist/shadcn-glass-ui.css +1 -1
  14. package/dist/{theme-context-Y98bGvcm.cjs → theme-context-D_cb9KzA.cjs} +2 -2
  15. package/dist/{theme-context-Y98bGvcm.cjs.map → theme-context-D_cb9KzA.cjs.map} +1 -1
  16. package/dist/themes.cjs +1 -1
  17. package/dist/{trust-score-card-glass-2rjz00d_.cjs → trust-score-card-glass-CTsEVRD3.cjs} +178 -35
  18. package/dist/{trust-score-card-glass-2rjz00d_.cjs.map → trust-score-card-glass-CTsEVRD3.cjs.map} +1 -1
  19. package/dist/{trust-score-card-glass-zjkx4OC2.js → trust-score-card-glass-CUStm4o_.js} +86 -15
  20. package/dist/{trust-score-card-glass-zjkx4OC2.js.map → trust-score-card-glass-CUStm4o_.js.map} +1 -1
  21. package/dist/{use-focus-DbpBEuee.cjs → use-focus--Hw2nevi.cjs} +2 -2
  22. package/dist/{use-focus-DbpBEuee.cjs.map → use-focus--Hw2nevi.cjs.map} +1 -1
  23. package/dist/{use-wallpaper-tint-DbawS9zh.cjs → use-wallpaper-tint-B4oMQsXQ.cjs} +2 -2
  24. package/dist/{use-wallpaper-tint-DbawS9zh.cjs.map → use-wallpaper-tint-B4oMQsXQ.cjs.map} +1 -1
  25. package/dist/{utils-XlyXIhuP.cjs → utils-BqeJ4aco.cjs} +2 -2
  26. package/dist/{utils-XlyXIhuP.cjs.map → utils-BqeJ4aco.cjs.map} +1 -1
  27. package/dist/utils.cjs +1 -1
  28. package/docs/AI_USAGE.md +5 -5
  29. package/docs/BEST_PRACTICES.md +1 -1
  30. package/docs/COMPONENTS_CATALOG.md +215 -0
  31. package/docs/EXPORTS_MAP.json +140 -14
  32. package/docs/EXPORTS_STRUCTURE.md +43 -9
  33. package/docs/GETTING_STARTED.md +1 -1
  34. package/docs/REGISTRY_USAGE.md +1 -1
  35. package/docs/api/README.md +1 -1
  36. package/docs/components/SIDEBAR_GLASS.md +555 -0
  37. package/docs/components/SPLIT_LAYOUT_GLASS.md +304 -365
  38. package/package.json +6 -3
@@ -5270,6 +5270,48 @@ const GlassCard = forwardRef(({ asChild = false, children, className, intensity
5270
5270
  });
5271
5271
  });
5272
5272
  GlassCard.displayName = "GlassCard";
5273
+ const GlassCardHeader = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
5274
+ ref,
5275
+ "data-slot": "card-header",
5276
+ className: cn("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", className),
5277
+ ...props
5278
+ }));
5279
+ GlassCardHeader.displayName = "GlassCardHeader";
5280
+ const GlassCardTitle = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
5281
+ ref,
5282
+ "data-slot": "card-title",
5283
+ className: cn("leading-none font-semibold tracking-tight", className),
5284
+ ...props
5285
+ }));
5286
+ GlassCardTitle.displayName = "GlassCardTitle";
5287
+ const GlassCardDescription = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
5288
+ ref,
5289
+ "data-slot": "card-description",
5290
+ className: cn("text-muted-foreground text-sm", className),
5291
+ ...props
5292
+ }));
5293
+ GlassCardDescription.displayName = "GlassCardDescription";
5294
+ const GlassCardAction = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
5295
+ ref,
5296
+ "data-slot": "card-action",
5297
+ className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className),
5298
+ ...props
5299
+ }));
5300
+ GlassCardAction.displayName = "GlassCardAction";
5301
+ const GlassCardContent = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
5302
+ ref,
5303
+ "data-slot": "card-content",
5304
+ className: cn("px-6", className),
5305
+ ...props
5306
+ }));
5307
+ GlassCardContent.displayName = "GlassCardContent";
5308
+ const GlassCardFooter = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
5309
+ ref,
5310
+ "data-slot": "card-footer",
5311
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className),
5312
+ ...props
5313
+ }));
5314
+ GlassCardFooter.displayName = "GlassCardFooter";
5273
5315
  var getInputStyles = (isFocused, error, success) => {
5274
5316
  let borderColor = "var(--input-border)";
5275
5317
  if (error) borderColor = "var(--alert-danger-text)";
@@ -5356,14 +5398,22 @@ var useModalContext = () => {
5356
5398
  if (!context) throw new Error("Modal compound components must be used within ModalGlass.Root");
5357
5399
  return context;
5358
5400
  };
5359
- var ModalRoot = ({ open, onOpenChange, size: size$3 = "md", children, ...props }) => {
5401
+ var ModalRoot = ({ open: controlledOpen, defaultOpen = false, onOpenChange, size: size$3 = "md", children }) => {
5402
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
5360
5403
  const [isClosing, setIsClosing] = useState(false);
5404
+ const isControlled = controlledOpen !== void 0;
5405
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
5406
+ const handleOpen = useCallback(() => {
5407
+ if (isControlled) onOpenChange?.(true);
5408
+ else setUncontrolledOpen(true);
5409
+ }, [isControlled, onOpenChange]);
5361
5410
  const handleClose = useCallback(async () => {
5362
5411
  setIsClosing(true);
5363
5412
  await delay(MODAL_ANIMATION_DURATION);
5364
5413
  setIsClosing(false);
5365
- onOpenChange?.(false);
5366
- }, [onOpenChange]);
5414
+ if (isControlled) onOpenChange?.(false);
5415
+ else setUncontrolledOpen(false);
5416
+ }, [isControlled, onOpenChange]);
5367
5417
  useEffect(() => {
5368
5418
  if (open) lockBodyScroll();
5369
5419
  else unlockBodyScroll();
@@ -5381,23 +5431,42 @@ var ModalRoot = ({ open, onOpenChange, size: size$3 = "md", children, ...props }
5381
5431
  document.removeEventListener("keydown", handleEscape);
5382
5432
  };
5383
5433
  }, [open, handleClose]);
5384
- if (!open) return null;
5385
5434
  return /* @__PURE__ */ jsx(ModalContext.Provider, {
5386
5435
  value: {
5387
5436
  isOpen: open,
5437
+ onOpen: handleOpen,
5388
5438
  onClose: handleClose,
5389
5439
  size: size$3,
5390
5440
  isClosing
5391
5441
  },
5392
- children: /* @__PURE__ */ jsx("div", {
5393
- className: "fixed inset-0 z-50 flex items-center justify-center p-2 sm:p-4",
5394
- role: "dialog",
5395
- "aria-modal": "true",
5396
- "aria-labelledby": "modal-title",
5397
- "aria-describedby": "modal-description",
5398
- ...props,
5399
- children
5400
- })
5442
+ children
5443
+ });
5444
+ };
5445
+ var ModalTrigger = forwardRef(({ asChild = false, children, onClick, ...props }, ref) => {
5446
+ const { onOpen } = useModalContext();
5447
+ const handleClick = (event) => {
5448
+ onClick?.(event);
5449
+ if (!event.defaultPrevented) onOpen();
5450
+ };
5451
+ return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
5452
+ ref,
5453
+ type: "button",
5454
+ onClick: handleClick,
5455
+ ...props,
5456
+ children
5457
+ });
5458
+ });
5459
+ ModalTrigger.displayName = "ModalTrigger";
5460
+ var ModalPortal = ({ children }) => {
5461
+ const { isOpen } = useModalContext();
5462
+ if (!isOpen) return null;
5463
+ return /* @__PURE__ */ jsx("div", {
5464
+ className: "fixed inset-0 z-50 flex items-center justify-center p-2 sm:p-4",
5465
+ role: "dialog",
5466
+ "aria-modal": "true",
5467
+ "aria-labelledby": "modal-title",
5468
+ "aria-describedby": "modal-description",
5469
+ children
5401
5470
  });
5402
5471
  };
5403
5472
  var ModalOverlay = ({ className }) => {
@@ -5500,6 +5569,8 @@ var ModalClose = ({ className }) => {
5500
5569
  };
5501
5570
  const ModalGlass = {
5502
5571
  Root: ModalRoot,
5572
+ Trigger: ModalTrigger,
5573
+ Portal: ModalPortal,
5503
5574
  Overlay: ModalOverlay,
5504
5575
  Content: ModalContent,
5505
5576
  Header: ModalHeader,
@@ -27664,6 +27735,6 @@ const TrustScoreCardGlass = forwardRef(({ score = 72, metrics = [], className, .
27664
27735
  });
27665
27736
  });
27666
27737
  TrustScoreCardGlass.displayName = "TrustScoreCardGlass";
27667
- export { BaseProgressGlass as $, useLayoutEffect2 as $t, useChartHeight as A, modalSizes as At, adaptEventsOfChild as B, DropdownMenuGlassLabel as Bt, sparklineContainerVariants as C, PopoverGlassAnchor as Ct, Tooltip as D, NotificationGlass as Dt, Cell as E, PopoverGlassTrigger as Et, selectLegendPayload as F, DropdownMenuGlass as Ft, SegmentedControlGlass as G, DropdownMenuGlassShortcut as Gt, isNumber as H, DropdownMenuGlassRadioGroup as Ht, useAppDispatch as I, DropdownMenuGlassCheckboxItem as It, progressSizes as J, DropdownMenuGlassSubTrigger as Jt, RainbowProgressGlass as K, DropdownMenuGlassSub as Kt, useAppSelector as L, DropdownMenuGlassContent as Lt, useMargin as M, GlassCard as Mt, ResponsiveContainer as N, cardIntensity as Nt, setLegendSettings as O, notificationVariants as Ot, useElementOffset as P, DropdownGlass as Pt, StatusIndicatorGlass as Q, Presence as Qt, getUniqPayload as R, DropdownMenuGlassGroup as Rt, sparklineBarVariants as S, PopoverGlass as St, Bar as T, PopoverGlassLegacy as Tt, useLegendPortal as U, DropdownMenuGlassRadioItem as Ut, Symbols as V, DropdownMenuGlassPortal as Vt, Surface as W, DropdownMenuGlassSeparator as Wt, LanguageBarGlass as X, ComboBoxGlass as Xt, ProfileAvatarGlass as Y, DropdownMenuGlassTrigger as Yt, FlagAlertGlass as Z, inputVariants as Zt, ContributionMetricsGlass as _, AlertGlassTitle as _n, SliderGlass as _t, HeaderBrandingGlass as a, ButtonGlass as an, insightCardVariants as at, AICardGlass as b, TouchTarget as bn, SkeletonGlass as bt, YearCardGlass as c, badgeVariants as cn, ExpandableHeaderGlass as ct, TrustScoreDisplayGlass as d, AvatarGlassImage as dn, TooltipGlassProvider as dt, useCallbackRef$1 as en, ThemeToggleGlass as et, RepositoryMetadataGlass as f, AvatarGlassSimple as fn, TooltipGlassSimple as ft, MetricCardGlass as g, AlertGlassDescription as gn, TabsGlass as gt, MetricsGridGlass as h, AlertGlass as hn, toggleSizes as ht, HeaderNavGlass as i, CheckboxGlass as in, InsightCardGlass as it, useChartWidth as j, InputGlass as jt, setLegendSize as k, ModalGlass as kt, UserStatsLineGlass as l, AvatarGlass as ln, TooltipGlass as lt, RepositoryCardGlass as m, statusSizes as mn, ToggleGlass as mt, ProjectsListGlass as n, composeEventHandlers as nn, SortDropdownGlass as nt, FlagsSectionGlass as o, buttonGlassVariants as on, insightVariantConfig as ot, RepositoryHeaderGlass as p, avatarSizes as pn, TooltipGlassTrigger as pt, ProgressGlass as q, DropdownMenuGlassSubContent as qt, ProfileHeaderGlass as r, CircularProgressGlass as rn, SearchBoxGlass as rt, CareerStatsGlass as s, BadgeGlass as sn, IconButtonGlass as st, TrustScoreCardGlass as t, useComposedRefs as tn, StatItemGlass as tt, UserInfoGlass as u, AvatarGlassFallback as un, TooltipGlassContent as ut, CircularMetricGlass as v, InteractiveCard as vn, useDirection as vt, BarChart as w, PopoverGlassContent as wt, SparklineGlass as x, alertVariants as xn, skeletonVariants as xt, CareerStatsHeaderGlass as y, FormFieldWrapper as yn, clamp as yt, resolveDefaultProps as z, DropdownMenuGlassItem as zt };
27738
+ export { BaseProgressGlass as $, DropdownMenuGlassShortcut as $t, useChartHeight as A, InteractiveCard as An, notificationVariants as At, adaptEventsOfChild as B, GlassCardTitle as Bt, sparklineContainerVariants as C, AvatarGlassImage as Cn, skeletonVariants as Ct, Tooltip as D, AlertGlass as Dn, PopoverGlassLegacy as Dt, Cell as E, statusSizes as En, PopoverGlassContent as Et, selectLegendPayload as F, GlassCardAction as Ft, SegmentedControlGlass as G, DropdownMenuGlassContent as Gt, isNumber as H, DropdownGlass as Ht, useAppDispatch as I, GlassCardContent as It, progressSizes as J, DropdownMenuGlassLabel as Jt, RainbowProgressGlass as K, DropdownMenuGlassGroup as Kt, useAppSelector as L, GlassCardDescription as Lt, useMargin as M, TouchTarget as Mn, modalSizes as Mt, ResponsiveContainer as N, alertVariants as Nn, InputGlass as Nt, setLegendSettings as O, AlertGlassDescription as On, PopoverGlassTrigger as Ot, useElementOffset as P, GlassCard as Pt, StatusIndicatorGlass as Q, DropdownMenuGlassSeparator as Qt, getUniqPayload as R, GlassCardFooter as Rt, sparklineBarVariants as S, AvatarGlassFallback as Sn, SkeletonGlass as St, Bar as T, avatarSizes as Tn, PopoverGlassAnchor as Tt, useLegendPortal as U, DropdownMenuGlass as Ut, Symbols as V, cardIntensity as Vt, Surface as W, DropdownMenuGlassCheckboxItem as Wt, LanguageBarGlass as X, DropdownMenuGlassRadioGroup as Xt, ProfileAvatarGlass as Y, DropdownMenuGlassPortal as Yt, FlagAlertGlass as Z, DropdownMenuGlassRadioItem as Zt, ContributionMetricsGlass as _, ButtonGlass as _n, SliderGlass as _t, HeaderBrandingGlass as a, inputVariants as an, insightCardVariants as at, AICardGlass as b, badgeVariants as bn, useDirection as bt, YearCardGlass as c, Presence as cn, ExpandableHeaderGlass as ct, TrustScoreDisplayGlass as d, useLayoutEffect2 as dn, TooltipGlassProvider as dt, DropdownMenuGlassSub as en, ThemeToggleGlass as et, RepositoryMetadataGlass as f, useCallbackRef$1 as fn, TooltipGlassSimple as ft, MetricCardGlass as g, CheckboxGlass as gn, TabsGlass as gt, MetricsGridGlass as h, CircularProgressGlass as hn, toggleSizes as ht, HeaderNavGlass as i, ComboBoxGlass as in, InsightCardGlass as it, useChartWidth as j, FormFieldWrapper as jn, ModalGlass as jt, setLegendSize as k, AlertGlassTitle as kn, NotificationGlass as kt, UserStatsLineGlass as l, useSize as ln, TooltipGlass as lt, RepositoryCardGlass as m, composeEventHandlers as mn, ToggleGlass as mt, ProjectsListGlass as n, DropdownMenuGlassSubTrigger as nn, SortDropdownGlass as nt, FlagsSectionGlass as o, Primitive$1 as on, insightVariantConfig as ot, RepositoryHeaderGlass as p, useComposedRefs as pn, TooltipGlassTrigger as pt, ProgressGlass as q, DropdownMenuGlassItem as qt, ProfileHeaderGlass as r, DropdownMenuGlassTrigger as rn, SearchBoxGlass as rt, CareerStatsGlass as s, useControllableState as sn, IconButtonGlass as st, TrustScoreCardGlass as t, DropdownMenuGlassSubContent as tn, StatItemGlass as tt, UserInfoGlass as u, useId$2 as un, TooltipGlassContent as ut, CircularMetricGlass as v, buttonGlassVariants as vn, createCollection as vt, BarChart as w, AvatarGlassSimple as wn, PopoverGlass as wt, SparklineGlass as x, AvatarGlass as xn, clamp as xt, CareerStatsHeaderGlass as y, BadgeGlass as yn, usePrevious as yt, resolveDefaultProps as z, GlassCardHeader as zt };
27668
27739
 
27669
- //# sourceMappingURL=trust-score-card-glass-zjkx4OC2.js.map
27740
+ //# sourceMappingURL=trust-score-card-glass-CUStm4o_.js.map