gridsmith-ui 0.2.7 → 0.2.8
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 +3 -1
- package/dist/index.js +34 -7
- package/dist/index.js.map +1 -1
- package/dist/roots.css +24 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -376,10 +376,12 @@ interface StatsCardProps {
|
|
|
376
376
|
trend?: Trend;
|
|
377
377
|
icon?: IconName;
|
|
378
378
|
layout?: "card" | "inline";
|
|
379
|
+
interactive?: boolean;
|
|
380
|
+
onClick?: () => void;
|
|
379
381
|
children?: ReactNode;
|
|
380
382
|
className?: string;
|
|
381
383
|
}
|
|
382
|
-
declare function StatsCard({ value, label, trend, icon, layout, children, className }: StatsCardProps): react_jsx_runtime.JSX.Element;
|
|
384
|
+
declare function StatsCard({ value, label, trend, icon, layout, interactive, onClick, children, className }: StatsCardProps): react_jsx_runtime.JSX.Element;
|
|
383
385
|
|
|
384
386
|
interface DataListItem {
|
|
385
387
|
label: string;
|
package/dist/index.js
CHANGED
|
@@ -1761,8 +1761,9 @@ function Button({ variant = "default", size = "md", iconLeft, iconRight, loading
|
|
|
1761
1761
|
"border-[length:var(--ds-border-width)]",
|
|
1762
1762
|
"rounded-[var(--ds-radius-md)]",
|
|
1763
1763
|
"shadow-[var(--ds-shadow-button)]",
|
|
1764
|
-
"
|
|
1765
|
-
"
|
|
1764
|
+
"hover:scale-[var(--ds-hover-scale)] hover:-translate-y-[var(--ds-hover-lift)]",
|
|
1765
|
+
"active:shadow-[var(--ds-shadow-button-pressed)] active:translate-x-[var(--ds-press-depth)] active:translate-y-[var(--ds-press-depth)]",
|
|
1766
|
+
"transition-all duration-[var(--ds-interactive-hover-speed)] ease-[var(--ds-interactive-hover-ease)]",
|
|
1766
1767
|
"focus-visible:outline-none focus-visible:shadow-[var(--ds-shadow-focus)]",
|
|
1767
1768
|
"cursor-pointer disabled:cursor-not-allowed disabled:opacity-disabled",
|
|
1768
1769
|
variantStyles[variant],
|
|
@@ -81984,12 +81985,17 @@ function Skeleton({ variant = "text", lines = 3, width, height, className }) {
|
|
|
81984
81985
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", className), children: Array.from({ length: lines }, (_, i) => /* @__PURE__ */ jsx(Bone, { className: cn("h-4", widths[i % widths.length]) }, i)) });
|
|
81985
81986
|
}
|
|
81986
81987
|
var variantStyles3 = {
|
|
81987
|
-
default:
|
|
81988
|
+
default: [
|
|
81989
|
+
`bg-[var(--ds-bg-surface)] border-[length:var(--ds-border-width)] border-[var(--ds-border-subtle)] ${GLASS_SURFACE}`,
|
|
81990
|
+
"transition-all duration-[var(--ds-ambient-hover-speed)] ease-[var(--ds-ambient-hover-ease)]",
|
|
81991
|
+
"hover:scale-[var(--ds-ambient-hover-scale)] hover:-translate-y-[var(--ds-ambient-hover-lift)]"
|
|
81992
|
+
].join(" "),
|
|
81988
81993
|
interactive: [
|
|
81989
81994
|
`bg-[var(--ds-bg-surface)] cursor-pointer ${GLASS_SURFACE}`,
|
|
81990
81995
|
"border-[length:var(--ds-border-width)] border-[var(--ds-border-subtle)]",
|
|
81991
|
-
"transition-all duration-[var(--ds-
|
|
81992
|
-
"hover:border-[var(--ds-accent-primary)] hover:shadow-[var(--ds-shadow-card),var(--ds-glass-inset)] hover:bg-[var(--ds-bg-surface-elevated)]"
|
|
81996
|
+
"transition-all duration-[var(--ds-interactive-hover-speed)] ease-[var(--ds-interactive-hover-ease)]",
|
|
81997
|
+
"hover:border-[var(--ds-accent-primary)] hover:shadow-[var(--ds-shadow-card),var(--ds-glass-inset)] hover:bg-[var(--ds-bg-surface-elevated)]",
|
|
81998
|
+
"hover:scale-[var(--ds-hover-scale)] hover:-translate-y-[var(--ds-hover-lift)]"
|
|
81993
81999
|
].join(" "),
|
|
81994
82000
|
outline: `bg-[var(--ds-bg-surface)] border-[length:var(--ds-border-width)] border-[var(--ds-border-default)] ${GLASS_SURFACE}`,
|
|
81995
82001
|
ghost: "bg-transparent border-none shadow-none"
|
|
@@ -82008,6 +82014,7 @@ function Card({ variant = "default", loading = false, selected, selectable, onSe
|
|
|
82008
82014
|
return /* @__PURE__ */ jsxs(
|
|
82009
82015
|
"div",
|
|
82010
82016
|
{
|
|
82017
|
+
"data-card": "",
|
|
82011
82018
|
role: selectable ? "button" : void 0,
|
|
82012
82019
|
"aria-pressed": selectable ? !!selected : void 0,
|
|
82013
82020
|
tabIndex: selectable ? 0 : void 0,
|
|
@@ -82062,7 +82069,7 @@ function CardContent({ className, children, ...props }) {
|
|
|
82062
82069
|
function CardFooter({ className, children, ...props }) {
|
|
82063
82070
|
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center px-ds-5 pb-ds-4 pt-ds-2 mt-auto min-w-0", className), ...props, children });
|
|
82064
82071
|
}
|
|
82065
|
-
function StatsCard({ value, label, trend, icon, layout = "card", children, className }) {
|
|
82072
|
+
function StatsCard({ value, label, trend, icon, layout = "card", interactive, onClick, children, className }) {
|
|
82066
82073
|
if (layout === "inline") {
|
|
82067
82074
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-ds-3 min-w-0", className), children: [
|
|
82068
82075
|
icon && /* @__PURE__ */ jsx(Icon, { name: icon, size: 16, className: "shrink-0 text-[var(--ds-text-muted)]" }),
|
|
@@ -82071,16 +82078,36 @@ function StatsCard({ value, label, trend, icon, layout = "card", children, class
|
|
|
82071
82078
|
trend && /* @__PURE__ */ jsx(TrendBadge, { trend })
|
|
82072
82079
|
] });
|
|
82073
82080
|
}
|
|
82081
|
+
const isInteractive = interactive || !!onClick;
|
|
82074
82082
|
return /* @__PURE__ */ jsxs(
|
|
82075
82083
|
"div",
|
|
82076
82084
|
{
|
|
82085
|
+
"data-card": "",
|
|
82077
82086
|
className: cn(
|
|
82078
82087
|
"flex flex-col p-ds-5",
|
|
82079
82088
|
"bg-[var(--ds-bg-surface)] rounded-[var(--ds-radius-md)]",
|
|
82080
82089
|
"border-[length:var(--ds-border-width)] border-[var(--ds-border-subtle)]",
|
|
82090
|
+
isInteractive ? [
|
|
82091
|
+
"cursor-pointer",
|
|
82092
|
+
"transition-all duration-[var(--ds-interactive-hover-speed)] ease-[var(--ds-interactive-hover-ease)]",
|
|
82093
|
+
"hover:scale-[var(--ds-hover-scale)] hover:-translate-y-[var(--ds-hover-lift)]",
|
|
82094
|
+
"hover:border-[var(--ds-accent-primary)] hover:shadow-[var(--ds-shadow-card),var(--ds-glass-inset)]"
|
|
82095
|
+
] : [
|
|
82096
|
+
"transition-all duration-[var(--ds-ambient-hover-speed)] ease-[var(--ds-ambient-hover-ease)]",
|
|
82097
|
+
"hover:scale-[var(--ds-ambient-hover-scale)] hover:-translate-y-[var(--ds-ambient-hover-lift)]"
|
|
82098
|
+
],
|
|
82081
82099
|
GLASS_SURFACE,
|
|
82082
82100
|
className
|
|
82083
82101
|
),
|
|
82102
|
+
onClick,
|
|
82103
|
+
role: onClick ? "button" : void 0,
|
|
82104
|
+
tabIndex: onClick ? 0 : void 0,
|
|
82105
|
+
onKeyDown: onClick ? (e) => {
|
|
82106
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
82107
|
+
e.preventDefault();
|
|
82108
|
+
onClick();
|
|
82109
|
+
}
|
|
82110
|
+
} : void 0,
|
|
82084
82111
|
children: [
|
|
82085
82112
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-ds-2", children: [
|
|
82086
82113
|
/* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-[var(--ds-text-muted)] uppercase tracking-wider", children: label }),
|
|
@@ -93420,7 +93447,7 @@ var StackedList = forwardRef(function StackedList2({
|
|
|
93420
93447
|
className: cn(
|
|
93421
93448
|
"flex items-center gap-ds-3",
|
|
93422
93449
|
item.onClick && [
|
|
93423
|
-
"cursor-pointer transition-
|
|
93450
|
+
"cursor-pointer transition-all duration-[var(--ds-interactive-hover-speed)] ease-[var(--ds-interactive-hover-ease)]",
|
|
93424
93451
|
"hover:bg-[var(--ds-bg-muted)]",
|
|
93425
93452
|
"rounded-[var(--ds-radius-md)]"
|
|
93426
93453
|
]
|