shadcn-glass-ui 2.2.0 → 2.2.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +0 -51
  2. package/README.md +11 -12
  3. package/context7.json +4 -15
  4. package/dist/cli/index.cjs +1 -1
  5. package/dist/components.cjs +4 -4
  6. package/dist/components.d.ts +89 -160
  7. package/dist/components.js +1 -1
  8. package/dist/hooks.cjs +2 -2
  9. package/dist/index.cjs +966 -2289
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +965 -2253
  12. package/dist/index.js.map +1 -1
  13. package/dist/r/alert-glass.json +1 -1
  14. package/dist/r/badge-glass.json +1 -1
  15. package/dist/r/button-glass.json +1 -1
  16. package/dist/r/card-glass.json +40 -0
  17. package/dist/r/input-glass.json +1 -1
  18. package/dist/r/modal-glass.json +5 -5
  19. package/dist/r/registry.json +7 -1
  20. package/dist/r/tooltip-glass.json +1 -1
  21. package/dist/shadcn-glass-ui.css +1 -1
  22. package/dist/{theme-context-D_cb9KzA.cjs → theme-context-BEA8K_rq.cjs} +2 -2
  23. package/dist/{theme-context-D_cb9KzA.cjs.map → theme-context-BEA8K_rq.cjs.map} +1 -1
  24. package/dist/themes.cjs +1 -1
  25. package/dist/{trust-score-card-glass-CTsEVRD3.cjs → trust-score-card-glass-DTS1RdIt.cjs} +189 -341
  26. package/dist/trust-score-card-glass-DTS1RdIt.cjs.map +1 -0
  27. package/dist/{trust-score-card-glass-CUStm4o_.js → trust-score-card-glass-Dg4_b_g_.js} +158 -238
  28. package/dist/trust-score-card-glass-Dg4_b_g_.js.map +1 -0
  29. package/dist/{use-focus--Hw2nevi.cjs → use-focus-CdoUzFQ8.cjs} +2 -2
  30. package/dist/{use-focus--Hw2nevi.cjs.map → use-focus-CdoUzFQ8.cjs.map} +1 -1
  31. package/dist/{use-wallpaper-tint-B4oMQsXQ.cjs → use-wallpaper-tint-Rq5UgY9L.cjs} +2 -2
  32. package/dist/{use-wallpaper-tint-B4oMQsXQ.cjs.map → use-wallpaper-tint-Rq5UgY9L.cjs.map} +1 -1
  33. package/dist/{utils-BqeJ4aco.cjs → utils-NLnOCttr.cjs} +2 -2
  34. package/dist/{utils-BqeJ4aco.cjs.map → utils-NLnOCttr.cjs.map} +1 -1
  35. package/dist/utils.cjs +1 -1
  36. package/docs/ADVANCED_PATTERNS.md +7 -5
  37. package/docs/AI_USAGE.md +0 -1
  38. package/docs/BEST_PRACTICES.md +0 -2
  39. package/docs/BREAKING_CHANGES.md +0 -1
  40. package/docs/COMPONENTS_CATALOG.md +1 -4
  41. package/docs/COMPONENT_PATTERNS.md +325 -0
  42. package/docs/GETTING_STARTED.md +52 -28
  43. package/docs/api/README.md +0 -2
  44. package/docs/api/variables/ModalGlass.md +5 -4
  45. package/package.json +2 -4
  46. package/dist/trust-score-card-glass-CTsEVRD3.cjs.map +0 -1
  47. package/dist/trust-score-card-glass-CUStm4o_.js.map +0 -1
@@ -184,6 +184,7 @@ var AlertGlassRoot = forwardRef(({ className, variant = "default", dismissible,
184
184
  const config = variantStyles$2[effectiveVariant];
185
185
  return /* @__PURE__ */ jsxs("div", {
186
186
  ref,
187
+ "data-slot": "alert",
187
188
  className: cn(alertVariants({ variant: effectiveVariant }), className),
188
189
  style: getAlertStyles(effectiveVariant),
189
190
  role: "alert",
@@ -212,8 +213,9 @@ var AlertGlassRoot = forwardRef(({ className, variant = "default", dismissible,
212
213
  });
213
214
  AlertGlassRoot.displayName = "AlertGlass";
214
215
  var AlertGlassTitle = forwardRef(({ className, style, ...props }, ref) => {
215
- return /* @__PURE__ */ jsx("p", {
216
+ return /* @__PURE__ */ jsx("div", {
216
217
  ref,
218
+ "data-slot": "alert-title",
217
219
  className: cn("font-medium text-xs md:text-sm mb-0.5 md:mb-1", className),
218
220
  style: {
219
221
  color: "inherit",
@@ -224,8 +226,9 @@ var AlertGlassTitle = forwardRef(({ className, style, ...props }, ref) => {
224
226
  });
225
227
  AlertGlassTitle.displayName = "AlertGlassTitle";
226
228
  var AlertGlassDescription = forwardRef(({ className, style, ...props }, ref) => {
227
- return /* @__PURE__ */ jsx("p", {
229
+ return /* @__PURE__ */ jsx("div", {
228
230
  ref,
231
+ "data-slot": "alert-description",
229
232
  className: cn("text-xs md:text-sm opacity-80", className),
230
233
  style: {
231
234
  color: "inherit",
@@ -399,6 +402,7 @@ const BadgeGlass = forwardRef(({ children, className, variant = "default", size:
399
402
  const v$1 = variantStyles$1[variant];
400
403
  return /* @__PURE__ */ jsxs("span", {
401
404
  ref,
405
+ "data-slot": "badge",
402
406
  className: cn(badgeVariants({ size: size$3 }), className),
403
407
  style: getBadgeStyles(variant),
404
408
  ...props,
@@ -507,6 +511,7 @@ const ButtonGlass = forwardRef(({ asChild = false, className, variant = "default
507
511
  }, [isDisabled, onClick]);
508
512
  return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
509
513
  ref,
514
+ "data-slot": "button",
510
515
  className: cn(buttonGlassVariants({
511
516
  variant,
512
517
  size: size$3
@@ -5270,48 +5275,6 @@ const GlassCard = forwardRef(({ asChild = false, children, className, intensity
5270
5275
  });
5271
5276
  });
5272
5277
  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";
5315
5278
  var getInputStyles = (isFocused, error, success) => {
5316
5279
  let borderColor = "var(--input-border)";
5317
5280
  if (error) borderColor = "var(--alert-danger-text)";
@@ -5354,6 +5317,7 @@ const InputGlass = forwardRef(({ className, size: size$3, inputSize, label, erro
5354
5317
  }),
5355
5318
  /* @__PURE__ */ jsx("input", {
5356
5319
  ref,
5320
+ "data-slot": "input",
5357
5321
  className: cn(inputVariants({ size: sizeValue }), paddingLeft, paddingRight),
5358
5322
  style: getInputStyles(isFocused, error, success),
5359
5323
  disabled,
@@ -5370,203 +5334,138 @@ const InputGlass = forwardRef(({ className, size: size$3, inputSize, label, erro
5370
5334
  });
5371
5335
  });
5372
5336
  InputGlass.displayName = "InputGlass";
5373
- const modalSizes = cva("relative w-full rounded-2xl p-6 transition-all duration-300", {
5337
+ const modalSizes = cva("relative w-full max-w-[calc(100%-2rem)] rounded-2xl p-6 transition-all duration-300", {
5374
5338
  variants: { size: {
5375
- sm: "max-w-[480px]",
5376
- md: "max-w-[640px]",
5377
- lg: "max-w-[800px]",
5378
- xl: "max-w-xl",
5379
- full: "max-w-4xl"
5339
+ sm: "sm:max-w-[480px]",
5340
+ md: "sm:max-w-[640px]",
5341
+ lg: "sm:max-w-[800px]",
5342
+ xl: "sm:max-w-xl",
5343
+ full: "sm:max-w-4xl"
5380
5344
  } },
5381
- defaultVariants: { size: "md" }
5345
+ defaultVariants: { size: "sm" }
5382
5346
  });
5383
- var MODAL_ANIMATION_DURATION = 200;
5384
- var lockBodyScroll = () => {
5385
- if (typeof document === "undefined") return;
5386
- document.body.style.overflow = "hidden";
5387
- };
5388
- var unlockBodyScroll = () => {
5389
- if (typeof document === "undefined") return;
5390
- document.body.style.overflow = "";
5391
- };
5392
- var delay = (ms) => {
5393
- return new Promise((resolve) => setTimeout(resolve, ms));
5394
- };
5395
- var ModalContext = createContext(null);
5396
- var useModalContext = () => {
5397
- const context = useContext(ModalContext);
5398
- if (!context) throw new Error("Modal compound components must be used within ModalGlass.Root");
5399
- return context;
5400
- };
5401
- var ModalRoot = ({ open: controlledOpen, defaultOpen = false, onOpenChange, size: size$3 = "md", children }) => {
5402
- const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
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]);
5410
- const handleClose = useCallback(async () => {
5411
- setIsClosing(true);
5412
- await delay(MODAL_ANIMATION_DURATION);
5413
- setIsClosing(false);
5414
- if (isControlled) onOpenChange?.(false);
5415
- else setUncontrolledOpen(false);
5416
- }, [isControlled, onOpenChange]);
5417
- useEffect(() => {
5418
- if (open) lockBodyScroll();
5419
- else unlockBodyScroll();
5420
- return () => {
5421
- unlockBodyScroll();
5422
- };
5423
- }, [open]);
5424
- useEffect(() => {
5425
- if (!open) return;
5426
- const handleEscape = (event) => {
5427
- if (event.key === "Escape") handleClose();
5428
- };
5429
- document.addEventListener("keydown", handleEscape);
5430
- return () => {
5431
- document.removeEventListener("keydown", handleEscape);
5432
- };
5433
- }, [open, handleClose]);
5347
+ var ModalContext = React$1.createContext({ size: "sm" });
5348
+ var useModalContext = () => React$1.useContext(ModalContext);
5349
+ function ModalRoot({ size: size$3 = "sm", children, ...props }) {
5434
5350
  return /* @__PURE__ */ jsx(ModalContext.Provider, {
5435
- value: {
5436
- isOpen: open,
5437
- onOpen: handleOpen,
5438
- onClose: handleClose,
5439
- size: size$3,
5440
- isClosing
5441
- },
5442
- children
5351
+ value: { size: size$3 },
5352
+ children: /* @__PURE__ */ jsx(w$1.Root, {
5353
+ "data-slot": "dialog",
5354
+ ...props,
5355
+ children
5356
+ })
5443
5357
  });
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
5358
+ }
5359
+ function ModalTrigger({ ...props }) {
5360
+ return /* @__PURE__ */ jsx(w$1.Trigger, {
5361
+ "data-slot": "dialog-trigger",
5362
+ ...props
5457
5363
  });
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
5364
+ }
5365
+ function ModalPortal({ ...props }) {
5366
+ return /* @__PURE__ */ jsx(w$1.Portal, {
5367
+ "data-slot": "dialog-portal",
5368
+ ...props
5470
5369
  });
5471
- };
5472
- var ModalOverlay = ({ className }) => {
5473
- const { onClose, isClosing } = useModalContext();
5474
- const overlayStyles = useMemo(() => ({
5370
+ }
5371
+ var ModalOverlay = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(w$1.Overlay, {
5372
+ ref,
5373
+ "data-slot": "dialog-overlay",
5374
+ className: cn("fixed inset-0 z-50", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className),
5375
+ style: {
5475
5376
  background: "var(--modal-overlay)",
5476
5377
  backdropFilter: "blur(var(--blur-sm))",
5477
- WebkitBackdropFilter: "blur(var(--blur-sm))",
5478
- opacity: isClosing ? 0 : 1,
5479
- transition: "all 0.3s"
5480
- }), [isClosing]);
5481
- return /* @__PURE__ */ jsx("div", {
5482
- className: cn("absolute inset-0 transition-all duration-300", className),
5483
- style: overlayStyles,
5484
- onClick: onClose,
5485
- "aria-hidden": "true"
5486
- });
5487
- };
5488
- var ModalContent = forwardRef(({ children, className }, ref) => {
5489
- const { size: size$3, isClosing } = useModalContext();
5490
- const modalStyles = useMemo(() => ({
5491
- background: "var(--modal-bg)",
5492
- border: "1px solid var(--modal-border)",
5493
- boxShadow: "var(--modal-glow)",
5494
- backdropFilter: "blur(var(--blur-lg))",
5495
- WebkitBackdropFilter: "blur(var(--blur-lg))",
5496
- transform: isClosing ? "scale(0.95) translateY(10px)" : "scale(1) translateY(0)",
5497
- opacity: isClosing ? 0 : 1,
5498
- animation: !isClosing ? "modalFadeIn 0.3s ease-out" : "none"
5499
- }), [isClosing]);
5500
- return /* @__PURE__ */ jsxs("div", {
5378
+ WebkitBackdropFilter: "blur(var(--blur-sm))"
5379
+ },
5380
+ ...props
5381
+ }));
5382
+ ModalOverlay.displayName = "ModalOverlay";
5383
+ var ModalContent = React$1.forwardRef(({ className, children, showCloseButton = true, size: sizeProp, ...props }, ref) => {
5384
+ const { size: contextSize } = useModalContext();
5385
+ const size$3 = sizeProp ?? contextSize;
5386
+ return /* @__PURE__ */ jsxs(ModalPortal, { children: [/* @__PURE__ */ jsx(ModalOverlay, {}), /* @__PURE__ */ jsxs(w$1.Content, {
5501
5387
  ref,
5502
- className: cn(modalSizes({ size: size$3 }), className),
5503
- style: modalStyles,
5504
- children: [/* @__PURE__ */ jsx("div", {
5505
- className: "absolute inset-0 rounded-3xl pointer-events-none",
5506
- style: { background: "var(--modal-glow-effect)" }
5507
- }), children]
5508
- });
5388
+ "data-slot": "dialog-content",
5389
+ className: cn(modalSizes({ size: size$3 }), "fixed top-[50%] left-[50%] z-50", "translate-x-[-50%] translate-y-[-50%]", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95", "data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]", "data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]", "duration-200", className),
5390
+ style: {
5391
+ background: "var(--modal-bg)",
5392
+ border: "1px solid var(--modal-border)",
5393
+ boxShadow: "var(--modal-glow)",
5394
+ backdropFilter: "blur(var(--blur-lg))",
5395
+ WebkitBackdropFilter: "blur(var(--blur-lg))"
5396
+ },
5397
+ ...props,
5398
+ children: [
5399
+ /* @__PURE__ */ jsx("div", {
5400
+ className: "absolute inset-0 rounded-3xl pointer-events-none",
5401
+ style: { background: "var(--modal-glow-effect)" },
5402
+ "aria-hidden": "true"
5403
+ }),
5404
+ /* @__PURE__ */ jsx("div", {
5405
+ className: "relative",
5406
+ children
5407
+ }),
5408
+ showCloseButton && /* @__PURE__ */ jsxs(w$1.Close, {
5409
+ "data-slot": "dialog-close",
5410
+ className: cn("absolute top-4 right-4", "p-1.5 md:p-2 rounded-xl", "transition-all duration-300", "ring-offset-background", "focus:outline-none focus:ring-2 focus:ring-(--semantic-primary) focus:ring-offset-2", "hover:opacity-100 opacity-70", "disabled:pointer-events-none"),
5411
+ style: {
5412
+ background: "var(--modal-close-btn-bg)",
5413
+ border: "var(--modal-close-btn-border)",
5414
+ color: "var(--text-muted)"
5415
+ },
5416
+ children: [/* @__PURE__ */ jsx(X, { className: ICON_SIZES.md }), /* @__PURE__ */ jsx("span", {
5417
+ className: "sr-only",
5418
+ children: "Close"
5419
+ })]
5420
+ })
5421
+ ]
5422
+ })] });
5509
5423
  });
5510
5424
  ModalContent.displayName = "ModalContent";
5511
- var ModalHeader = ({ children, className }) => {
5425
+ function ModalHeader({ className, ...props }) {
5512
5426
  return /* @__PURE__ */ jsx("div", {
5513
- className: cn("relative flex items-start justify-between mb-4 md:mb-5", className),
5514
- children
5427
+ "data-slot": "dialog-header",
5428
+ className: cn("flex flex-col gap-2 text-center sm:text-left mb-4", className),
5429
+ ...props
5515
5430
  });
5516
- };
5517
- var ModalBody = ({ children, className }) => {
5431
+ }
5432
+ function ModalBody({ className, ...props }) {
5518
5433
  return /* @__PURE__ */ jsx("div", {
5434
+ "data-slot": "dialog-body",
5519
5435
  className: cn("relative", className),
5520
5436
  style: { color: "var(--text-secondary)" },
5521
- children
5437
+ ...props
5522
5438
  });
5523
- };
5524
- var ModalFooter = ({ children, className }) => {
5439
+ }
5440
+ function ModalFooter({ className, ...props }) {
5525
5441
  return /* @__PURE__ */ jsx("div", {
5526
- className: cn("relative flex gap-3 mt-4 md:mt-5 justify-end", className),
5527
- children
5528
- });
5529
- };
5530
- var ModalTitle = ({ children, className }) => {
5531
- return /* @__PURE__ */ jsx("h3", {
5532
- id: "modal-title",
5533
- className: cn("text-lg md:text-xl font-semibold", className),
5534
- style: { color: "var(--text-primary)" },
5535
- children
5536
- });
5537
- };
5538
- var ModalDescription = ({ children, className }) => {
5539
- return /* @__PURE__ */ jsx("p", {
5540
- id: "modal-description",
5541
- className: cn("text-sm md:text-base mt-1", className),
5542
- style: { color: "var(--text-muted)" },
5543
- children
5442
+ "data-slot": "dialog-footer",
5443
+ className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end mt-4", className),
5444
+ ...props
5544
5445
  });
5545
- };
5546
- var ModalClose = ({ className }) => {
5547
- const { onClose } = useModalContext();
5548
- const { isHovered, hoverProps } = useHover();
5549
- const { isFocusVisible, focusProps } = useFocus({ focusVisible: true });
5550
- const closeButtonStyles = useMemo(() => ({
5551
- background: "var(--modal-close-btn-bg)",
5552
- border: "var(--modal-close-btn-border)",
5553
- color: "var(--text-muted)",
5554
- boxShadow: isFocusVisible ? "var(--focus-glow)" : isHovered ? "var(--modal-close-btn-hover-glow)" : "none",
5555
- outline: "none"
5556
- }), [isHovered, isFocusVisible]);
5557
- return /* @__PURE__ */ jsx("button", {
5558
- onClick: onClose,
5559
- onMouseEnter: hoverProps.onMouseEnter,
5560
- onMouseLeave: hoverProps.onMouseLeave,
5561
- onFocus: focusProps.onFocus,
5562
- onBlur: focusProps.onBlur,
5563
- className: cn("p-1.5 md:p-2 rounded-xl transition-all duration-300", className),
5564
- style: closeButtonStyles,
5565
- type: "button",
5566
- "aria-label": "Close modal",
5567
- children: /* @__PURE__ */ jsx(X, { className: ICON_SIZES.md })
5446
+ }
5447
+ var ModalTitle = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(w$1.Title, {
5448
+ ref,
5449
+ "data-slot": "dialog-title",
5450
+ className: cn("text-lg md:text-xl font-semibold leading-none tracking-tight", className),
5451
+ style: { color: "var(--text-primary)" },
5452
+ ...props
5453
+ }));
5454
+ ModalTitle.displayName = "ModalTitle";
5455
+ var ModalDescription = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(w$1.Description, {
5456
+ ref,
5457
+ "data-slot": "dialog-description",
5458
+ className: cn("text-sm", className),
5459
+ style: { color: "var(--text-muted)" },
5460
+ ...props
5461
+ }));
5462
+ ModalDescription.displayName = "ModalDescription";
5463
+ function ModalClose({ ...props }) {
5464
+ return /* @__PURE__ */ jsx(w$1.Close, {
5465
+ "data-slot": "dialog-close",
5466
+ ...props
5568
5467
  });
5569
- };
5468
+ }
5570
5469
  const ModalGlass = {
5571
5470
  Root: ModalRoot,
5572
5471
  Trigger: ModalTrigger,
@@ -6712,26 +6611,47 @@ const ToggleGlass = forwardRef(({ className, size: size$3 = "default", variant =
6712
6611
  ToggleGlass.displayName = "ToggleGlass";
6713
6612
  var TooltipGlassProvider = ({ delayDuration = 0, ...props }) => {
6714
6613
  return /* @__PURE__ */ jsx(TooltipPrimitive.Provider, {
6614
+ "data-slot": "tooltip-provider",
6715
6615
  delayDuration,
6716
6616
  ...props
6717
6617
  });
6718
6618
  };
6719
- var TooltipGlassRoot = TooltipPrimitive.Root;
6720
- var TooltipGlassTrigger = TooltipPrimitive.Trigger;
6721
- var TooltipGlassContent = React$1.forwardRef(({ className, sideOffset = 4, ...props }, ref) => {
6722
- return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Content, {
6619
+ TooltipGlassProvider.displayName = "TooltipGlassProvider";
6620
+ function TooltipGlassRoot({ ...props }) {
6621
+ return /* @__PURE__ */ jsx(TooltipGlassProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, {
6622
+ "data-slot": "tooltip",
6623
+ ...props
6624
+ }) });
6625
+ }
6626
+ var TooltipGlassTrigger = React$1.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, {
6627
+ ref,
6628
+ "data-slot": "tooltip-trigger",
6629
+ ...props
6630
+ }));
6631
+ TooltipGlassTrigger.displayName = "TooltipGlassTrigger";
6632
+ var TooltipGlassContent = React$1.forwardRef(({ className, sideOffset = 0, children, ...props }, ref) => {
6633
+ const tooltipStyles = {
6634
+ background: "var(--tooltip-bg)",
6635
+ color: "var(--tooltip-text)",
6636
+ border: "1px solid var(--tooltip-border)",
6637
+ boxShadow: "var(--tooltip-shadow)",
6638
+ backdropFilter: "blur(var(--blur-xl))",
6639
+ WebkitBackdropFilter: "blur(var(--blur-xl))"
6640
+ };
6641
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(TooltipPrimitive.Content, {
6723
6642
  ref,
6724
6643
  sideOffset,
6725
- className: cn("z-50 overflow-hidden rounded-md px-3 py-1.5 text-xs text-balance", "animate-in fade-in-0 zoom-in-95", "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", "data-[side=bottom]:slide-in-from-top-2", "data-[side=left]:slide-in-from-right-2", "data-[side=right]:slide-in-from-left-2", "data-[side=top]:slide-in-from-bottom-2", className),
6726
- style: {
6727
- background: "var(--tooltip-bg)",
6728
- color: "var(--tooltip-text)",
6729
- border: "1px solid var(--tooltip-border)",
6730
- boxShadow: "var(--tooltip-shadow)",
6731
- backdropFilter: "blur(var(--blur-xl))",
6732
- WebkitBackdropFilter: "blur(var(--blur-xl))"
6733
- },
6734
- ...props
6644
+ "data-slot": "tooltip-content",
6645
+ className: cn("z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", "animate-in fade-in-0 zoom-in-95", "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", "data-[side=bottom]:slide-in-from-top-2", "data-[side=left]:slide-in-from-right-2", "data-[side=right]:slide-in-from-left-2", "data-[side=top]:slide-in-from-bottom-2", className),
6646
+ style: tooltipStyles,
6647
+ ...props,
6648
+ children: [children, /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, {
6649
+ className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs",
6650
+ style: {
6651
+ fill: "var(--tooltip-bg)",
6652
+ background: "var(--tooltip-bg)"
6653
+ }
6654
+ })]
6735
6655
  }) });
6736
6656
  });
6737
6657
  TooltipGlassContent.displayName = "TooltipGlassContent";
@@ -14718,11 +14638,11 @@ function createAnimateManager(timeoutController) {
14718
14638
  }
14719
14639
  var RequestAnimationFrameTimeoutController = class {
14720
14640
  setTimeout(callback) {
14721
- var delay$1 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
14641
+ var delay = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
14722
14642
  var startTime = performance.now();
14723
14643
  var requestId = null;
14724
14644
  var executeCallback = (now) => {
14725
- if (now - startTime >= delay$1) callback(now);
14645
+ if (now - startTime >= delay) callback(now);
14726
14646
  else if (typeof requestAnimationFrame === "function") requestId = requestAnimationFrame(executeCallback);
14727
14647
  };
14728
14648
  requestId = requestAnimationFrame(executeCallback);
@@ -27735,6 +27655,6 @@ const TrustScoreCardGlass = forwardRef(({ score = 72, metrics = [], className, .
27735
27655
  });
27736
27656
  });
27737
27657
  TrustScoreCardGlass.displayName = "TrustScoreCardGlass";
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 };
27658
+ 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 };
27739
27659
 
27740
- //# sourceMappingURL=trust-score-card-glass-CUStm4o_.js.map
27660
+ //# sourceMappingURL=trust-score-card-glass-Dg4_b_g_.js.map