@cloudgrid-io/ui 0.40.0 → 0.42.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/blocks/action-link.d.ts +31 -0
- package/dist/blocks/action-link.d.ts.map +1 -0
- package/dist/blocks/action-link.js +40 -0
- package/dist/blocks/action-link.js.map +1 -0
- package/dist/blocks/activity-row.d.ts +42 -0
- package/dist/blocks/activity-row.d.ts.map +1 -0
- package/dist/blocks/activity-row.js +37 -0
- package/dist/blocks/activity-row.js.map +1 -0
- package/dist/blocks/add-tile.d.ts +31 -0
- package/dist/blocks/add-tile.d.ts.map +1 -0
- package/dist/blocks/add-tile.js +29 -0
- package/dist/blocks/add-tile.js.map +1 -0
- package/dist/blocks/avatar-stack.d.ts +40 -0
- package/dist/blocks/avatar-stack.d.ts.map +1 -0
- package/dist/blocks/avatar-stack.js +41 -0
- package/dist/blocks/avatar-stack.js.map +1 -0
- package/dist/blocks/avatar.d.ts +31 -5
- package/dist/blocks/avatar.d.ts.map +1 -1
- package/dist/blocks/avatar.js +57 -9
- package/dist/blocks/avatar.js.map +1 -1
- package/dist/blocks/confirm-delete-dialog.d.ts.map +1 -1
- package/dist/blocks/confirm-delete-dialog.js +5 -1
- package/dist/blocks/confirm-delete-dialog.js.map +1 -1
- package/dist/blocks/copy-button.d.ts +59 -0
- package/dist/blocks/copy-button.d.ts.map +1 -0
- package/dist/blocks/copy-button.js +76 -0
- package/dist/blocks/copy-button.js.map +1 -0
- package/dist/blocks/dashed-banner.d.ts +36 -0
- package/dist/blocks/dashed-banner.d.ts.map +1 -0
- package/dist/blocks/dashed-banner.js +31 -0
- package/dist/blocks/dashed-banner.js.map +1 -0
- package/dist/blocks/dashed-line.d.ts +44 -0
- package/dist/blocks/dashed-line.d.ts.map +1 -0
- package/dist/blocks/dashed-line.js +46 -0
- package/dist/blocks/dashed-line.js.map +1 -0
- package/dist/blocks/empty-creations.d.ts +18 -1
- package/dist/blocks/empty-creations.d.ts.map +1 -1
- package/dist/blocks/empty-creations.js +25 -9
- package/dist/blocks/empty-creations.js.map +1 -1
- package/dist/blocks/entity-card.d.ts +37 -2
- package/dist/blocks/entity-card.d.ts.map +1 -1
- package/dist/blocks/entity-card.js +70 -7
- package/dist/blocks/entity-card.js.map +1 -1
- package/dist/blocks/filter-tabs.d.ts +45 -0
- package/dist/blocks/filter-tabs.d.ts.map +1 -0
- package/dist/blocks/filter-tabs.js +48 -0
- package/dist/blocks/filter-tabs.js.map +1 -0
- package/dist/blocks/header-menu.d.ts +54 -0
- package/dist/blocks/header-menu.d.ts.map +1 -0
- package/dist/blocks/header-menu.js +63 -0
- package/dist/blocks/header-menu.js.map +1 -0
- package/dist/blocks/header-pill.d.ts +41 -0
- package/dist/blocks/header-pill.d.ts.map +1 -0
- package/dist/blocks/header-pill.js +67 -0
- package/dist/blocks/header-pill.js.map +1 -0
- package/dist/blocks/icons.d.ts +19 -2
- package/dist/blocks/icons.d.ts.map +1 -1
- package/dist/blocks/icons.js +22 -2
- package/dist/blocks/icons.js.map +1 -1
- package/dist/blocks/locked-section.d.ts +36 -9
- package/dist/blocks/locked-section.d.ts.map +1 -1
- package/dist/blocks/locked-section.js +31 -6
- package/dist/blocks/locked-section.js.map +1 -1
- package/dist/blocks/menu-trigger.d.ts +35 -0
- package/dist/blocks/menu-trigger.d.ts.map +1 -0
- package/dist/blocks/menu-trigger.js +24 -0
- package/dist/blocks/menu-trigger.js.map +1 -0
- package/dist/blocks/meter.d.ts +9 -1
- package/dist/blocks/meter.d.ts.map +1 -1
- package/dist/blocks/meter.js +6 -2
- package/dist/blocks/meter.js.map +1 -1
- package/dist/blocks/phosphor-marks.d.ts +8 -2
- package/dist/blocks/phosphor-marks.d.ts.map +1 -1
- package/dist/blocks/phosphor-marks.js +12 -3
- package/dist/blocks/phosphor-marks.js.map +1 -1
- package/dist/blocks/ranked-list.d.ts +15 -1
- package/dist/blocks/ranked-list.d.ts.map +1 -1
- package/dist/blocks/ranked-list.js +18 -5
- package/dist/blocks/ranked-list.js.map +1 -1
- package/dist/blocks/scroll-rail.d.ts +15 -0
- package/dist/blocks/scroll-rail.d.ts.map +1 -0
- package/dist/blocks/scroll-rail.js +134 -0
- package/dist/blocks/scroll-rail.js.map +1 -0
- package/dist/blocks/section-heading.d.ts +21 -0
- package/dist/blocks/section-heading.d.ts.map +1 -0
- package/dist/blocks/section-heading.js +18 -0
- package/dist/blocks/section-heading.js.map +1 -0
- package/dist/blocks/shelf.d.ts +24 -9
- package/dist/blocks/shelf.d.ts.map +1 -1
- package/dist/blocks/shelf.js +52 -15
- package/dist/blocks/shelf.js.map +1 -1
- package/dist/blocks/stat-tile.d.ts +21 -1
- package/dist/blocks/stat-tile.d.ts.map +1 -1
- package/dist/blocks/stat-tile.js +11 -6
- package/dist/blocks/stat-tile.js.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/cloudgrid-cn.d.ts +14 -0
- package/dist/lib/cloudgrid-cn.d.ts.map +1 -1
- package/dist/lib/cloudgrid-cn.js +17 -0
- package/dist/lib/cloudgrid-cn.js.map +1 -1
- package/dist/theme.css +2 -0
- package/dist/tokens/base.json +42 -2
- package/dist/tokens.css +18 -2
- package/dist/tokens.json +6 -2
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/badge.js +19 -0
- package/dist/ui/badge.js.map +1 -1
- package/dist/ui/button.d.ts +5 -3
- package/dist/ui/button.d.ts.map +1 -1
- package/dist/ui/button.js +107 -43
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/dialog.d.ts +52 -0
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +57 -5
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/drawer.d.ts +1 -1
- package/dist/ui/table.d.ts +27 -0
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js +39 -6
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tabs.d.ts +1 -1
- package/package.json +1 -1
package/dist/tokens/base.json
CHANGED
|
@@ -297,6 +297,16 @@
|
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
299
|
},
|
|
300
|
+
"tertiary-dark": {
|
|
301
|
+
"$value": "#45cdd4",
|
|
302
|
+
"$type": "color",
|
|
303
|
+
"$description": "Figma \"Tertiary Dark\" (CloudGrid-2026; the header menus' \"+ New\", node 11324:90629).\n\nTeal text links (\"+ New\", \"Explore All\", \"Open\", \"Dismiss\") and the line of the rail's scroll button.\n\nMeasures 1.92:1 on white and 1.70:1 on the page ground: under AA, used knowingly as a design decision (Gilad, 2026-11-01). Every link drawn in it also carries an accessible name.\n\nNot --cg-tertiary-press (#4dd8e0), which is the cta's pressed fill.",
|
|
304
|
+
"$extensions": {
|
|
305
|
+
"io.cloudgrid": {
|
|
306
|
+
"css": "--cg-tertiary-dark"
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
},
|
|
300
310
|
"accent-press": {
|
|
301
311
|
"$value": "#0052da",
|
|
302
312
|
"$type": "color",
|
|
@@ -2002,9 +2012,9 @@
|
|
|
2002
2012
|
"kind": {
|
|
2003
2013
|
"$description": "kind: what an entity IS, as a ground for its 20px badge (#196).\n\nDeclared at :root ONLY, like the identity tile and unlike everything else in\nthis file. The badge sits on a screenshot, and a picture does not flip: half of\na mark flipping is a light disc with a white glyph on the ink surface, which\nrenders perfectly and shows nothing. --cg-text-on-accent is the glyph on all\nthree, and it measures 12.74:1, 14.65:1 and 10.24:1 on them.",
|
|
2004
2014
|
"kind-inspiration": {
|
|
2005
|
-
"$value": "#
|
|
2015
|
+
"$value": "#f0f8e1",
|
|
2006
2016
|
"$type": "color",
|
|
2007
|
-
"$description": "SOURCE: the founder's draft
|
|
2017
|
+
"$description": "SOURCE: the 2026 Figma (CloudGrid-2026, the Tile's Inspiration badge, node I11324:91033), paint style \"Secondary 20\" (#382). It was #fae4b3, the founder's 2025 draft; the Gilad-approved 2026 frames put the lightbulb on lime. Ink on it measures 14.56:1.",
|
|
2008
2018
|
"$extensions": {
|
|
2009
2019
|
"io.cloudgrid": {
|
|
2010
2020
|
"css": "--cg-kind-inspiration"
|
|
@@ -2044,5 +2054,35 @@
|
|
|
2044
2054
|
}
|
|
2045
2055
|
}
|
|
2046
2056
|
}
|
|
2057
|
+
},
|
|
2058
|
+
"avatar": {
|
|
2059
|
+
"$description": "The grid avatar grounds, raw hex in the CloudGrid-2026 frames (11323:8600, 11324:90635, 11324:90641). Letters are --cg-ink: 12.02:1, 10.74:1 and 11.43:1. An identity colour, so it does not flip on the panel or ink surfaces.",
|
|
2060
|
+
"avatar-pastel-1": {
|
|
2061
|
+
"$value": "#dce4bc",
|
|
2062
|
+
"$type": "color",
|
|
2063
|
+
"$extensions": {
|
|
2064
|
+
"io.cloudgrid": {
|
|
2065
|
+
"css": "--cg-avatar-pastel-1"
|
|
2066
|
+
}
|
|
2067
|
+
}
|
|
2068
|
+
},
|
|
2069
|
+
"avatar-pastel-2": {
|
|
2070
|
+
"$value": "#bcd9e4",
|
|
2071
|
+
"$type": "color",
|
|
2072
|
+
"$extensions": {
|
|
2073
|
+
"io.cloudgrid": {
|
|
2074
|
+
"css": "--cg-avatar-pastel-2"
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
2077
|
+
},
|
|
2078
|
+
"avatar-pastel-3": {
|
|
2079
|
+
"$value": "#bce4ca",
|
|
2080
|
+
"$type": "color",
|
|
2081
|
+
"$extensions": {
|
|
2082
|
+
"io.cloudgrid": {
|
|
2083
|
+
"css": "--cg-avatar-pastel-3"
|
|
2084
|
+
}
|
|
2085
|
+
}
|
|
2086
|
+
}
|
|
2047
2087
|
}
|
|
2048
2088
|
}
|
package/dist/tokens.css
CHANGED
|
@@ -389,6 +389,15 @@
|
|
|
389
389
|
--cg-primary-tint: #eeecfe;
|
|
390
390
|
--cg-secondary-press: #a6cf57;
|
|
391
391
|
--cg-tertiary-press: #4dd8e0;
|
|
392
|
+
/*
|
|
393
|
+
Figma "Tertiary Dark" (CloudGrid-2026; the header menus' "+ New", node 11324:90629).
|
|
394
|
+
|
|
395
|
+
Teal text links ("+ New", "Explore All", "Open", "Dismiss") and the line of the rail's scroll button.
|
|
396
|
+
|
|
397
|
+
Measures 1.92:1 on white and 1.70:1 on the page ground: under AA, used knowingly as a design decision (Gilad, 2026-11-01). Every link drawn in it also carries an accessible name.
|
|
398
|
+
|
|
399
|
+
Not --cg-tertiary-press (#4dd8e0), which is the cta's pressed fill. */
|
|
400
|
+
--cg-tertiary-dark: #45cdd4;
|
|
392
401
|
/*
|
|
393
402
|
The pressed and hovered rung of the accent, and --cg-link-hover.
|
|
394
403
|
|
|
@@ -1606,8 +1615,9 @@
|
|
|
1606
1615
|
a mark flipping is a light disc with a white glyph on the ink surface, which
|
|
1607
1616
|
renders perfectly and shows nothing. --cg-text-on-accent is the glyph on all
|
|
1608
1617
|
three, and it measures 12.74:1, 14.65:1 and 10.24:1 on them. */
|
|
1609
|
-
/*
|
|
1610
|
-
|
|
1618
|
+
/*
|
|
1619
|
+
SOURCE: the 2026 Figma (CloudGrid-2026, the Tile's Inspiration badge, node I11324:91033), paint style "Secondary 20" (#382). It was #fae4b3, the founder's 2025 draft; the Gilad-approved 2026 frames put the lightbulb on lime. Ink on it measures 14.56:1. */
|
|
1620
|
+
--cg-kind-inspiration: #f0f8e1;
|
|
1611
1621
|
/* SOURCE: the founder's draft, the App badge. */
|
|
1612
1622
|
--cg-kind-app: #dffbfc;
|
|
1613
1623
|
/*
|
|
@@ -1640,6 +1650,12 @@
|
|
|
1640
1650
|
0.22. Inside the panel and ink scopes it is the brand cyan itself, which already clears
|
|
1641
1651
|
(4.01:1 on #5a47f0, 10.92:1 on #222222). A data colour, never text. */
|
|
1642
1652
|
--cg-data-cyan: #0a959b;
|
|
1653
|
+
|
|
1654
|
+
/* ---- avatar ----
|
|
1655
|
+
The grid avatar grounds, raw hex in the CloudGrid-2026 frames (11323:8600, 11324:90635, 11324:90641). Letters are --cg-ink: 12.02:1, 10.74:1 and 11.43:1. An identity colour, so it does not flip on the panel or ink surfaces. */
|
|
1656
|
+
--cg-avatar-pastel-1: #dce4bc;
|
|
1657
|
+
--cg-avatar-pastel-2: #bcd9e4;
|
|
1658
|
+
--cg-avatar-pastel-3: #bce4ca;
|
|
1643
1659
|
}
|
|
1644
1660
|
|
|
1645
1661
|
[data-cg-surface='panel'] {
|
package/dist/tokens.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"--cg-primary-tint": "#eeecfe",
|
|
34
34
|
"--cg-secondary-press": "#a6cf57",
|
|
35
35
|
"--cg-tertiary-press": "#4dd8e0",
|
|
36
|
+
"--cg-tertiary-dark": "#45cdd4",
|
|
36
37
|
"--cg-accent-press": "#0052da",
|
|
37
38
|
"--cg-neutral-0": "#ffffff",
|
|
38
39
|
"--cg-neutral-25": "#f1f1f6",
|
|
@@ -210,10 +211,13 @@
|
|
|
210
211
|
"--cg-scrim-blur": "6.8px",
|
|
211
212
|
"--cg-scrim-strong": "rgba(34, 34, 34, 0.82)",
|
|
212
213
|
"--cg-hover": "rgba(34, 34, 34, 0.045)",
|
|
213
|
-
"--cg-kind-inspiration": "#
|
|
214
|
+
"--cg-kind-inspiration": "#f0f8e1",
|
|
214
215
|
"--cg-kind-app": "#dffbfc",
|
|
215
216
|
"--cg-kind-agent": "#d1c9ff",
|
|
216
|
-
"--cg-data-cyan": "#0a959b"
|
|
217
|
+
"--cg-data-cyan": "#0a959b",
|
|
218
|
+
"--cg-avatar-pastel-1": "#dce4bc",
|
|
219
|
+
"--cg-avatar-pastel-2": "#bcd9e4",
|
|
220
|
+
"--cg-avatar-pastel-3": "#bce4ca"
|
|
217
221
|
},
|
|
218
222
|
"panel": {
|
|
219
223
|
"--cg-text-primary": "#ffffff",
|
package/dist/ui/badge.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const badgeVariants: (props?: ({
|
|
4
|
-
variant?: "link" | "ghost" | "default" | "secondary" | "destructive" | "outline" | null | undefined;
|
|
4
|
+
variant?: "link" | "ghost" | "default" | "secondary" | "destructive" | "outline" | "tinted" | "outlined" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
6
|
declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
7
7
|
export { Badge, badgeVariants };
|
package/dist/ui/badge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAyClB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAmB,EACnB,MAAM,EACN,GAAG,KAAK,EACT,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,8FAevE;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/ui/badge.js
CHANGED
|
@@ -11,6 +11,25 @@ const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-cent
|
|
|
11
11
|
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
|
|
12
12
|
ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
|
|
13
13
|
link: "text-primary underline-offset-4 hover:underline",
|
|
14
|
+
// The two pills of the 2026 Figma list (#383; Users table, node
|
|
15
|
+
// 7406:5146): height 20, padding 0/8, radius 32, Regular 13 ink,
|
|
16
|
+
// leading none. A 32 corner on a 20px pill is a full semicircle, so
|
|
17
|
+
// the corner is `rounded-full`: `rounded-3xl` is not 32 in a shadcn
|
|
18
|
+
// app, whose theme redefines it as a multiple of --radius, and
|
|
19
|
+
// tailwind-merge knows `rounded-full` replaces the base's
|
|
20
|
+
// `rounded-4xl` (it does not know `rounded-pill` does).
|
|
21
|
+
//
|
|
22
|
+
// Written as overrides of the shared base, which tailwind-merge
|
|
23
|
+
// resolves, so the six variants above render byte for byte what they
|
|
24
|
+
// did (test/ui-badge-pills.test.mjs).
|
|
25
|
+
//
|
|
26
|
+
// `tinted` is on --cg-violet-150. The frame's fill, #E1E3FE, is bound
|
|
27
|
+
// to no variable; violet-150 (#E3E0FD) is within 3/255 per channel.
|
|
28
|
+
tinted: "rounded-full bg-brand-150 py-0 font-normal leading-none text-ink",
|
|
29
|
+
// `outlined` is white with the N2 hairline ("N2 New", #E6E8EA, which
|
|
30
|
+
// is --cg-border-hairline). Not `outline`: that one is shadcn's,
|
|
31
|
+
// transparent with the shadcn border and medium weight, and unchanged.
|
|
32
|
+
outlined: "rounded-full border-hairline bg-card py-0 font-normal leading-none text-ink",
|
|
14
33
|
},
|
|
15
34
|
},
|
|
16
35
|
defaultVariants: {
|
package/dist/ui/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,aAAa,GAAG,GAAG,CACvB,8eAA8e,EAC9e;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,4DAA4D;YACrE,SAAS,EACP,kEAAkE;YACpE,WAAW,EACT,gKAAgK;YAClK,OAAO,EACL,kFAAkF;YACpF,KAAK,EACH,mEAAmE;YACrE,IAAI,EAAE,iDAAiD;
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,aAAa,GAAG,GAAG,CACvB,8eAA8e,EAC9e;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,4DAA4D;YACrE,SAAS,EACP,kEAAkE;YACpE,WAAW,EACT,gKAAgK;YAClK,OAAO,EACL,kFAAkF;YACpF,KAAK,EACH,mEAAmE;YACrE,IAAI,EAAE,iDAAiD;YACvD,gEAAgE;YAChE,iEAAiE;YACjE,oEAAoE;YACpE,oEAAoE;YACpE,+DAA+D;YAC/D,0DAA0D;YAC1D,wDAAwD;YACxD,EAAE;YACF,gEAAgE;YAChE,qEAAqE;YACrE,sCAAsC;YACtC,EAAE;YACF,sEAAsE;YACtE,oEAAoE;YACpE,MAAM,EAAE,kEAAkE;YAC1E,qEAAqE;YACrE,iEAAiE;YACjE,uEAAuE;YACvE,QAAQ,EACN,6EAA6E;SAChF;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AAED,SAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,MAAM,EACN,GAAG,KAAK,EAC8D;IACtE,OAAO,SAAS,CAAC;QACf,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,UAAU,CACf;YACE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC;SACrD,EACD,KAAK,CACN;QACD,MAAM;QACN,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,OAAO;SACR;KACF,CAAC,CAAA;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/ui/button.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
|
-
declare const
|
|
4
|
-
variant?: "link" | "ghost" | "default" | "secondary" | "destructive" | "outline" | "cta" | "tertiary-soft" | null | undefined;
|
|
5
|
-
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
3
|
+
declare const buttonCva: (props?: ({
|
|
4
|
+
variant?: "link" | "ghost" | "default" | "secondary" | "destructive" | "outline" | "cta" | "tertiary-soft" | "primary" | null | undefined;
|
|
5
|
+
size?: "default" | "xs" | "sm" | "lg" | "xl" | "2xl" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | "icon-2xl" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
type ButtonCvaProps = Parameters<typeof buttonCva>[0];
|
|
8
|
+
declare function buttonVariants(props?: ButtonCvaProps): string;
|
|
7
9
|
declare function Button({ className, variant, size, ...props }: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>): import("react").JSX.Element;
|
|
8
10
|
export { Button, buttonVariants };
|
|
9
11
|
//# sourceMappingURL=button.d.ts.map
|
package/dist/ui/button.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AA8BjE,QAAA,MAAM,SAAS;;;8EA0Fd,CAAA;AAyBD,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,iBAAS,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAStD;AAED,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,+BAQ7D;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/ui/button.js
CHANGED
|
@@ -2,76 +2,140 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
3
3
|
import { cva } from "class-variance-authority";
|
|
4
4
|
import { cn } from "../lib/cloudgrid-cn.js";
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* The Style Guide button (#376): the one button every frame in the CloudGrid
|
|
7
|
+
* 2026 Figma draws ("New Grid", node 7414:5979; "Create Item" and "Cancel",
|
|
8
|
+
* node 7537:8484). The --cg-tertiary ground, the --cg-text-on-accent ink label,
|
|
9
|
+
* Manrope Bold 15 at leading-none, radius 16 (--cg-radius-xl). Its sizes live in
|
|
10
|
+
* the compound variants below, because they are this family's and not shadcn's.
|
|
11
|
+
*
|
|
12
|
+
* It does NOT flip on the dark surfaces, and that is the design rather than an
|
|
13
|
+
* omission (#236). --cg-tertiary, --cg-tertiary-press and --cg-text-on-accent
|
|
14
|
+
* are declared at :root and redeclared on neither [data-cg-surface='panel'] nor
|
|
15
|
+
* [data-cg-surface='ink'], so the label pair measures 10.92:1 in all three
|
|
16
|
+
* scopes by construction. A filled control carries its own ground (#225). The
|
|
17
|
+
* teal measures 4.01:1 against the panel and 10.92:1 against ink, both better
|
|
18
|
+
* than the 1.46:1 it gets on the white the frames draw it on.
|
|
19
|
+
*
|
|
20
|
+
* Hover is the opaque press token, not an alpha wash: a wash composites lighter
|
|
21
|
+
* on white and darker on ink, so the same class would mean two opposite things;
|
|
22
|
+
* --cg-tertiary-press is one value everywhere. Its pair is 9.25:1. Both numbers
|
|
23
|
+
* are pinned in contrast-guardrail.test.mjs.
|
|
24
|
+
*/
|
|
25
|
+
const STYLE_GUIDE = "rounded-xl bg-cyan font-ui font-bold leading-none text-on-accent hover:bg-cyan-press aria-expanded:bg-cyan-press";
|
|
26
|
+
/** The variants that wear the Style Guide metrics (sizes below). */
|
|
27
|
+
const STYLE_GUIDE_FAMILY = ["default", "cta", "tertiary-soft"];
|
|
28
|
+
const buttonCva = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-body-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
|
|
6
29
|
variants: {
|
|
7
30
|
variant: {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
31
|
+
/* The Style Guide button (#376), what `<Button>` renders. Save, Create,
|
|
32
|
+
Open app, Continue: the frames' primary action, everywhere. */
|
|
33
|
+
default: STYLE_GUIDE,
|
|
34
|
+
/* An alias of `default`, kept so `variant="cta"` (#236: the Console's
|
|
35
|
+
primary action, EmptyCreations' Add, InvitePopup's Copy, the Plugged
|
|
36
|
+
popup's Share) keeps compiling and rendering. Same string, same
|
|
37
|
+
compound sizes: the two cannot drift, and button-styleguide.test.mjs
|
|
38
|
+
compares their rendered classes size by size. New code writes
|
|
39
|
+
nothing (the default) rather than `cta`.
|
|
13
40
|
|
|
14
41
|
Named `cta` and not `accent` because "accent" is already spent twice
|
|
15
|
-
here
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
42
|
+
here: --cg-accent is the brand BLUE (#197, utility `azure`), and
|
|
43
|
+
--cg-text-on-accent is the ink this button puts on the teal. */
|
|
44
|
+
cta: STYLE_GUIDE,
|
|
45
|
+
/* The Style Guide's secondary (#370, #376): the --cg-cyan-200 ground
|
|
46
|
+
("Teriary 20" in Figma) inside a drawn --cg-tertiary hairline, ink
|
|
47
|
+
label, the default's type and sizes. "Cancel" beside "Create Item",
|
|
48
|
+
the Plugged popup's Close, the pricing and thegrid footers'
|
|
49
|
+
secondary buttons.
|
|
19
50
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
cta: "bg-cyan text-on-accent hover:bg-cyan-press aria-expanded:bg-cyan-press",
|
|
37
|
-
/* The soft tertiary (#370): the --cg-cyan-200 ground ("Teriary 20" in
|
|
38
|
-
Figma) inside a drawn --cg-tertiary hairline, ink label. The Plugged
|
|
39
|
-
popup's Close, and the pricing and thegrid footers' secondary buttons.
|
|
40
|
-
|
|
41
|
-
The FILLED tertiary is `cta` above, already: same ground, same press
|
|
42
|
-
token, same ink. A second name for it would be two variants that must
|
|
43
|
-
never drift apart, so there is none; a caller that wants the hairline
|
|
44
|
-
drawn on the filled one adds `border-cyan`.
|
|
45
|
-
|
|
46
|
-
Like `cta`, it does not flip per surface: the tint, the tertiary and
|
|
47
|
-
the ink are declared at :root only, so the pair is the same in all
|
|
48
|
-
three scopes. Hover deepens to the full tertiary ground with the press
|
|
49
|
-
token on the hairline, both opaque, for the reason `cta` gives. Focus
|
|
50
|
-
keeps the base's ring; the base's `focus-visible:border-ring` repaints
|
|
51
|
-
the hairline while focused. */
|
|
52
|
-
"tertiary-soft": "border-cyan bg-cyan-tint text-on-accent hover:border-cyan-press hover:bg-cyan aria-expanded:bg-cyan",
|
|
51
|
+
Like the default, it does not flip per surface: the tint, the
|
|
52
|
+
tertiary and the ink are declared at :root only, so the pair is the
|
|
53
|
+
same in all three scopes. Hover deepens to the full tertiary ground
|
|
54
|
+
with the press token on the hairline, both opaque. Focus keeps the
|
|
55
|
+
base's ring; the base's `focus-visible:border-ring` repaints the
|
|
56
|
+
hairline while focused. */
|
|
57
|
+
"tertiary-soft": "rounded-xl border-cyan bg-cyan-tint font-ui font-bold leading-none text-on-accent hover:border-cyan-press hover:bg-cyan aria-expanded:bg-cyan",
|
|
58
|
+
/* The brand purple filled button: until #376 this was `default`, and it
|
|
59
|
+
renders byte for byte what `default` rendered then, at every size
|
|
60
|
+
(shadcn metrics, Space Grotesk medium, 14px corners). Kept for a
|
|
61
|
+
caller that wants the purple on purpose, and as the one-word
|
|
62
|
+
migration for a consumer who relied on the old default
|
|
63
|
+
(`variant="primary"`). ConfirmDeleteDialog's submit uses it for its
|
|
64
|
+
metrics only; its colours are its own. --primary flips per surface in
|
|
65
|
+
shadcn.css (#41), because --cg-primary IS the panel ground. */
|
|
66
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary/80",
|
|
53
67
|
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
|
|
54
68
|
secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
55
69
|
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
56
70
|
destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
|
|
57
71
|
link: "text-primary underline-offset-4 hover:underline",
|
|
58
72
|
},
|
|
73
|
+
/* The shadcn sizes, which every variant outside the Style Guide family
|
|
74
|
+
still renders unchanged. For the family, `default`, `lg` and `icon-lg`
|
|
75
|
+
resolve to #389's `xl`, `2xl` and `icon-2xl` (see `buttonVariants`
|
|
76
|
+
below), and `icon` is 40 square; `sm`, `xs`, `icon-sm` and `icon-xs`
|
|
77
|
+
keep these compact metrics (and their own corners) in every variant. */
|
|
59
78
|
size: {
|
|
60
79
|
default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
61
80
|
xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-caption in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
|
|
62
81
|
sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-caption in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
|
|
63
82
|
lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
83
|
+
/* The 2026 Button component (Figma 4919:688) has two sizes, S and M, and
|
|
84
|
+
Home draws both (#382): Invite is S, Add is M. Named `xl` and `2xl`
|
|
85
|
+
rather than `s` and `m` because `sm` already exists and means 28.
|
|
86
|
+
Radius 16, gap 12, the UI face at Bold 15, a 20px glyph. The frame's
|
|
87
|
+
10 and 14 of vertical padding are the centring inside the height,
|
|
88
|
+
not a value to set; the 1px transparent border is inside it too. */
|
|
89
|
+
xl: "h-10 gap-3 rounded-xl px-5 font-ui font-bold leading-none [&_svg:not([class*='size-'])]:size-5",
|
|
90
|
+
"2xl": "h-12 gap-3 rounded-xl px-8 font-ui font-bold leading-none [&_svg:not([class*='size-'])]:size-5",
|
|
64
91
|
icon: "size-8",
|
|
65
92
|
"icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
|
|
66
93
|
"icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
|
|
67
94
|
"icon-lg": "size-9",
|
|
95
|
+
/* The icon-only M: the scroll rail's arrow, 48 square at radius 16 (#382). */
|
|
96
|
+
"icon-2xl": "size-12 rounded-xl [&_svg:not([class*='size-'])]:size-5",
|
|
68
97
|
},
|
|
69
98
|
},
|
|
99
|
+
/* The family's `icon` is 40 square, the height of the row it sits in
|
|
100
|
+
(`default`, which resolves to `xl`). #389 has no 40 icon rung; its
|
|
101
|
+
`icon-2xl` (48) is what the family's `icon-lg` resolves to. */
|
|
102
|
+
compoundVariants: [{ variant: [...STYLE_GUIDE_FAMILY], size: "icon", class: "size-10" }],
|
|
70
103
|
defaultVariants: {
|
|
71
104
|
variant: "default",
|
|
72
105
|
size: "default",
|
|
73
106
|
},
|
|
74
107
|
});
|
|
108
|
+
/**
|
|
109
|
+
* The Style Guide sizes (#376) ARE #389's 2026 sizes, by alias, not by copy.
|
|
110
|
+
*
|
|
111
|
+
* Figma's Button component (4919:688) has S and M, which #389 shipped as `xl`
|
|
112
|
+
* (40 tall, 20 aside, radius 16, gap 12, Bold 15, a 20px glyph) and `2xl` (48,
|
|
113
|
+
* 32 aside), plus the 48 square `icon-2xl`. The Style Guide button's two sizes
|
|
114
|
+
* are those two. So for the family (`default`, `cta`, `tertiary-soft`) the
|
|
115
|
+
* size `default` resolves to `xl`, `lg` to `2xl` and `icon-lg` to `icon-2xl`:
|
|
116
|
+
* `<Button>` and `<Button size="xl">` render the same string, and there is one
|
|
117
|
+
* definition of each size to retune. Every other variant keeps the shadcn
|
|
118
|
+
* `default` and `lg` it has always had.
|
|
119
|
+
*
|
|
120
|
+
* The issue's "min-height 40, padding 10/20" is `xl`'s fixed `h-10` with 20
|
|
121
|
+
* aside: the base sets `whitespace-nowrap`, so a label never wraps and a
|
|
122
|
+
* minimum height would compute the same box; the frame's 10 (14) vertical
|
|
123
|
+
* padding is the centring inside that height (#389's note).
|
|
124
|
+
*
|
|
125
|
+
* Resolved here and not only in `Button`, so a consumer calling
|
|
126
|
+
* `buttonVariants()` on an anchor (PricingTierCards, the Console's
|
|
127
|
+
* PrimaryAction) gets the same classes as the component.
|
|
128
|
+
*/
|
|
129
|
+
const STYLE_GUIDE_SIZE = { default: "xl", lg: "2xl", "icon-lg": "icon-2xl" };
|
|
130
|
+
function buttonVariants(props) {
|
|
131
|
+
const variant = props?.variant === undefined ? "default" : props.variant;
|
|
132
|
+
const size = props?.size === undefined ? "default" : props.size;
|
|
133
|
+
const family = STYLE_GUIDE_FAMILY.includes(variant);
|
|
134
|
+
const resolved = family && size !== null && size in STYLE_GUIDE_SIZE
|
|
135
|
+
? STYLE_GUIDE_SIZE[size]
|
|
136
|
+
: size;
|
|
137
|
+
return buttonCva({ ...props, size: resolved });
|
|
138
|
+
}
|
|
75
139
|
function Button({ className, variant = "default", size = "default", ...props }) {
|
|
76
140
|
return (_jsx(ButtonPrimitive, { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
|
|
77
141
|
}
|
package/dist/ui/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/dialog.d.ts
CHANGED
|
@@ -27,13 +27,65 @@ declare function DialogClose({ ...props }: DialogPrimitive.Close.Props): React.J
|
|
|
27
27
|
* the confirm's backdrop rather than merely beside it.
|
|
28
28
|
*/
|
|
29
29
|
declare function DialogOverlay({ className, forceRender, ...props }: DialogPrimitive.Backdrop.Props): React.JSX.Element;
|
|
30
|
+
/**
|
|
31
|
+
* The card: the CloudGrid 2026 Figma popup "New Vault Item" (ui#372, node
|
|
32
|
+
* 7537:8484, file 5ouhISIL0mwYGHurvCGoEO).
|
|
33
|
+
*
|
|
34
|
+
* ```
|
|
35
|
+
* .--------------------------------------------- 525 ---.
|
|
36
|
+
* | New Vault Item [x] | 24 top
|
|
37
|
+
* | | 24 gap
|
|
38
|
+
* | (the caller's content: a form, a line, a tile) |
|
|
39
|
+
* | |
|
|
40
|
+
* | [ Cancel ] [ Create Item ] | 24 bottom
|
|
41
|
+
* '------------------------------------------------------'
|
|
42
|
+
* 32 each side
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* White in a 1px `--cg-border-hairline`, radius 12 (`--cg-radius-md`), padding
|
|
46
|
+
* 24 top and bottom and 32 left and right, its rows 24 apart. 525 wide from `sm`
|
|
47
|
+
* up; on a phone it fills the width less a 16px gutter each side.
|
|
48
|
+
*
|
|
49
|
+
* The ground is `bg-popover`, the overlay ground (#230), not `bg-card`. The card
|
|
50
|
+
* portals to the document root, where both are white, but `--cg-surface-card` is
|
|
51
|
+
* transparent on the panel and a 4% wash on ink; `--popover` stays opaque in
|
|
52
|
+
* every scope, so the card cannot turn see-through if a page ever puts a dark
|
|
53
|
+
* scope on the root.
|
|
54
|
+
*
|
|
55
|
+
* It is capped at the window's height less 2rem and scrolls inside, because a
|
|
56
|
+
* centred fixed card with no cap pushes its top above the window on a short
|
|
57
|
+
* screen (a phone on its side, 812x375), where no scroll reaches it (#375).
|
|
58
|
+
*
|
|
59
|
+
* The close X is a 20px Phosphor X at the top right, its glyph level with the
|
|
60
|
+
* title and its right edge on the 32px content edge, level with the footer
|
|
61
|
+
* (Figma 7537:8601): `right-6.5` is 26px, and the 32px target centres the glyph
|
|
62
|
+
* 6px in, so 26 + 6 = 32. Named "Close", reachable by Tab, and a real
|
|
63
|
+
* `DialogPrimitive.Close`, so it closes exactly as Escape and the scrim do.
|
|
64
|
+
* `showCloseButton={false}` drops it, as before.
|
|
65
|
+
*
|
|
66
|
+
* Blocks override the card through `className` (tailwind-merge resolves the
|
|
67
|
+
* conflict): `ConfirmDeleteDialog` keeps its 24 padding and 448 width,
|
|
68
|
+
* `PluggedDialog` its own radius and 632 width.
|
|
69
|
+
*/
|
|
30
70
|
declare function DialogContent({ className, children, showCloseButton, ...props }: DialogPrimitive.Popup.Props & {
|
|
31
71
|
showCloseButton?: boolean;
|
|
32
72
|
}): React.JSX.Element;
|
|
73
|
+
/** The title and its line. `pr-8` keeps a long title clear of the close X. */
|
|
33
74
|
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
75
|
+
/**
|
|
76
|
+
* The actions row: right-aligned at every width, 8px apart, on the card itself.
|
|
77
|
+
* No grey band and no top rule (the shadcn footer had both; the Figma popup has
|
|
78
|
+
* neither).
|
|
79
|
+
*
|
|
80
|
+
* Documented use, from the Figma popup: Cancel is `variant="tertiary-soft"`, the
|
|
81
|
+
* main action is `variant="cta"` (the filled tertiary), both `size="xl"`: 40
|
|
82
|
+
* tall, radius 16, 20 each side, Manrope Bold 15 on a 15px line (the 2026 Button
|
|
83
|
+
* S, #382). `showCloseButton` adds a Close in the soft tertiary at that size.
|
|
84
|
+
*/
|
|
34
85
|
declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
|
|
35
86
|
showCloseButton?: boolean;
|
|
36
87
|
}): React.JSX.Element;
|
|
88
|
+
/** The Figma popup's H4: Manrope Medium 22/1.2, ink. */
|
|
37
89
|
declare function DialogTitle({ className, ...props }: DialogPrimitive.Title.Props): React.JSX.Element;
|
|
38
90
|
declare function DialogDescription({ className, ...props }: DialogPrimitive.Description.Props): React.JSX.Element;
|
|
39
91
|
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
|
package/dist/ui/dialog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAiBjE,iBAAS,MAAM,CAAC,EAAE,KAAY,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,qBAMrE;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAYhC;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAiCA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAkBA;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAWxE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAWnC;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAiBjE,iBAAS,MAAM,CAAC,EAAE,KAAY,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,qBAMrE;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAkB,EAClB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAYhC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAiCA;AAED,8EAA8E;AAC9E,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED;;;;;;;;;GASG;AACH,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAkBA;AAED,wDAAwD;AACxD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAWxE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAWnC;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}
|
package/dist/ui/dialog.js
CHANGED
|
@@ -52,21 +52,73 @@ function DialogClose({ ...props }) {
|
|
|
52
52
|
function DialogOverlay({ className, forceRender = true, ...props }) {
|
|
53
53
|
return (_jsx(DialogPrimitive.Backdrop, { "data-slot": "dialog-overlay", forceRender: forceRender, className: cn("fixed inset-0 isolate z-50 scrim-overlay duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className), ...props }));
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* The card: the CloudGrid 2026 Figma popup "New Vault Item" (ui#372, node
|
|
57
|
+
* 7537:8484, file 5ouhISIL0mwYGHurvCGoEO).
|
|
58
|
+
*
|
|
59
|
+
* ```
|
|
60
|
+
* .--------------------------------------------- 525 ---.
|
|
61
|
+
* | New Vault Item [x] | 24 top
|
|
62
|
+
* | | 24 gap
|
|
63
|
+
* | (the caller's content: a form, a line, a tile) |
|
|
64
|
+
* | |
|
|
65
|
+
* | [ Cancel ] [ Create Item ] | 24 bottom
|
|
66
|
+
* '------------------------------------------------------'
|
|
67
|
+
* 32 each side
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* White in a 1px `--cg-border-hairline`, radius 12 (`--cg-radius-md`), padding
|
|
71
|
+
* 24 top and bottom and 32 left and right, its rows 24 apart. 525 wide from `sm`
|
|
72
|
+
* up; on a phone it fills the width less a 16px gutter each side.
|
|
73
|
+
*
|
|
74
|
+
* The ground is `bg-popover`, the overlay ground (#230), not `bg-card`. The card
|
|
75
|
+
* portals to the document root, where both are white, but `--cg-surface-card` is
|
|
76
|
+
* transparent on the panel and a 4% wash on ink; `--popover` stays opaque in
|
|
77
|
+
* every scope, so the card cannot turn see-through if a page ever puts a dark
|
|
78
|
+
* scope on the root.
|
|
79
|
+
*
|
|
80
|
+
* It is capped at the window's height less 2rem and scrolls inside, because a
|
|
81
|
+
* centred fixed card with no cap pushes its top above the window on a short
|
|
82
|
+
* screen (a phone on its side, 812x375), where no scroll reaches it (#375).
|
|
83
|
+
*
|
|
84
|
+
* The close X is a 20px Phosphor X at the top right, its glyph level with the
|
|
85
|
+
* title and its right edge on the 32px content edge, level with the footer
|
|
86
|
+
* (Figma 7537:8601): `right-6.5` is 26px, and the 32px target centres the glyph
|
|
87
|
+
* 6px in, so 26 + 6 = 32. Named "Close", reachable by Tab, and a real
|
|
88
|
+
* `DialogPrimitive.Close`, so it closes exactly as Escape and the scrim do.
|
|
89
|
+
* `showCloseButton={false}` drops it, as before.
|
|
90
|
+
*
|
|
91
|
+
* Blocks override the card through `className` (tailwind-merge resolves the
|
|
92
|
+
* conflict): `ConfirmDeleteDialog` keeps its 24 padding and 448 width,
|
|
93
|
+
* `PluggedDialog` its own radius and 632 width.
|
|
94
|
+
*/
|
|
55
95
|
function DialogContent({ className, children, showCloseButton = true, ...props }) {
|
|
56
96
|
const modal = React.useContext(DialogModalContext);
|
|
57
|
-
return (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Popup, { "data-slot": "dialog-content", "aria-modal": modal !== false ? true : undefined, className: cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-
|
|
97
|
+
return (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Popup, { "data-slot": "dialog-content", "aria-modal": modal !== false ? true : undefined, className: cn("fixed top-1/2 left-1/2 z-50 grid max-h-[calc(100svh-2rem)] w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 overflow-y-auto rounded-md border border-hairline bg-popover px-8 py-6 text-body-sm text-ink duration-100 outline-none sm:max-w-131.25 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [children, showCloseButton && (_jsxs(DialogPrimitive.Close, { "data-slot": "dialog-close", render: _jsx(Button, { variant: "ghost", className: "absolute top-5 right-6.5 text-ink", size: "icon" }), children: [_jsx(CloseIcon, { className: "size-5" }), _jsx("span", { className: "sr-only", children: "Close" })] }))] })] }));
|
|
58
98
|
}
|
|
99
|
+
/** The title and its line. `pr-8` keeps a long title clear of the close X. */
|
|
59
100
|
function DialogHeader({ className, ...props }) {
|
|
60
|
-
return (_jsx("div", { "data-slot": "dialog-header", className: cn("flex flex-col gap-2", className), ...props }));
|
|
101
|
+
return (_jsx("div", { "data-slot": "dialog-header", className: cn("flex flex-col gap-2 pr-8", className), ...props }));
|
|
61
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* The actions row: right-aligned at every width, 8px apart, on the card itself.
|
|
105
|
+
* No grey band and no top rule (the shadcn footer had both; the Figma popup has
|
|
106
|
+
* neither).
|
|
107
|
+
*
|
|
108
|
+
* Documented use, from the Figma popup: Cancel is `variant="tertiary-soft"`, the
|
|
109
|
+
* main action is `variant="cta"` (the filled tertiary), both `size="xl"`: 40
|
|
110
|
+
* tall, radius 16, 20 each side, Manrope Bold 15 on a 15px line (the 2026 Button
|
|
111
|
+
* S, #382). `showCloseButton` adds a Close in the soft tertiary at that size.
|
|
112
|
+
*/
|
|
62
113
|
function DialogFooter({ className, showCloseButton = false, children, ...props }) {
|
|
63
|
-
return (_jsxs("div", { "data-slot": "dialog-footer", className: cn("
|
|
114
|
+
return (_jsxs("div", { "data-slot": "dialog-footer", className: cn("flex flex-wrap items-center justify-end gap-2", className), ...props, children: [children, showCloseButton && (_jsx(DialogPrimitive.Close, { render: _jsx(Button, { variant: "tertiary-soft", size: "xl" }), children: "Close" }))] }));
|
|
64
115
|
}
|
|
116
|
+
/** The Figma popup's H4: Manrope Medium 22/1.2, ink. */
|
|
65
117
|
function DialogTitle({ className, ...props }) {
|
|
66
|
-
return (_jsx(DialogPrimitive.Title, { "data-slot": "dialog-title", className: cn("font-
|
|
118
|
+
return (_jsx(DialogPrimitive.Title, { "data-slot": "dialog-title", className: cn("m-0 font-ui text-heading-lg font-medium text-ink", className), ...props }));
|
|
67
119
|
}
|
|
68
120
|
function DialogDescription({ className, ...props }) {
|
|
69
|
-
return (_jsx(DialogPrimitive.Description, { "data-slot": "dialog-description", className: cn("text-body-sm text-
|
|
121
|
+
return (_jsx(DialogPrimitive.Description, { "data-slot": "dialog-description", className: cn("m-0 text-body-sm text-body *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-ink", className), ...props }));
|
|
70
122
|
}
|
|
71
123
|
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
|
|
72
124
|
//# sourceMappingURL=dialog.js.map
|
package/dist/ui/dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAsC,IAAI,CAAC,CAAA;AAEzF,SAAS,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,EAA8B;IACpE,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACvC,KAAC,eAAe,CAAC,IAAI,iBAAW,QAAQ,EAAC,KAAK,EAAE,KAAK,KAAM,KAAK,GAAI,GACxC,CAC/B,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAiC;IAChE,OAAO,KAAC,eAAe,CAAC,OAAO,iBAAW,gBAAgB,KAAK,KAAK,GAAI,CAAA;AAC1E,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAgC;IAC9D,OAAO,KAAC,eAAe,CAAC,MAAM,iBAAW,eAAe,KAAK,KAAK,GAAI,CAAA;AACxE,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAA+B;IAC5D,OAAO,KAAC,eAAe,CAAC,KAAK,iBAAW,cAAc,KAAK,KAAK,GAAI,CAAA;AACtE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,WAAW,GAAG,IAAI,EAClB,GAAG,KAAK,EACuB;IAC/B,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,iBACb,gBAAgB,EAC1B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,EAAE,CACX,+IAA+I,EAC/I,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAe,GAAG,IAAI,EACtB,GAAG,KAAK,EAGT;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAClD,OAAO,CACL,MAAC,YAAY,eACX,KAAC,aAAa,KAAG,EACjB,MAAC,eAAe,CAAC,KAAK,iBACV,gBAAgB,gBACd,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC9C,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/drawer.d.ts
CHANGED
|
@@ -152,7 +152,7 @@ declare const drawerViewportVariants: (props?: ({
|
|
|
152
152
|
*/
|
|
153
153
|
declare const drawerPopupVariants: (props?: ({
|
|
154
154
|
side?: "bottom" | "left" | "right" | null | undefined;
|
|
155
|
-
size?: "lg" | "
|
|
155
|
+
size?: "lg" | "xl" | "md" | null | undefined;
|
|
156
156
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
157
157
|
declare function Drawer({ modal, ...props }: DialogPrimitive.Root.Props): React.JSX.Element;
|
|
158
158
|
declare function DrawerTrigger({ ...props }: DialogPrimitive.Trigger.Props): React.JSX.Element;
|