@cloudgrid-io/ui 0.18.1 → 0.20.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/compare-table.d.ts.map +1 -1
- package/dist/blocks/compare-table.js +10 -8
- package/dist/blocks/compare-table.js.map +1 -1
- package/dist/blocks/drop-zone.js +2 -2
- package/dist/blocks/drop-zone.js.map +1 -1
- package/dist/blocks/entity-card.d.ts +190 -13
- package/dist/blocks/entity-card.d.ts.map +1 -1
- package/dist/blocks/entity-card.js +223 -52
- package/dist/blocks/entity-card.js.map +1 -1
- package/dist/blocks/eyebrow.d.ts +43 -0
- package/dist/blocks/eyebrow.d.ts.map +1 -0
- package/dist/blocks/eyebrow.js +53 -0
- package/dist/blocks/eyebrow.js.map +1 -0
- package/dist/blocks/feature-cells.d.ts +12 -7
- package/dist/blocks/feature-cells.d.ts.map +1 -1
- package/dist/blocks/feature-cells.js +11 -11
- package/dist/blocks/feature-cells.js.map +1 -1
- package/dist/blocks/icons.d.ts +68 -10
- package/dist/blocks/icons.d.ts.map +1 -1
- package/dist/blocks/icons.js +68 -10
- package/dist/blocks/icons.js.map +1 -1
- package/dist/blocks/onboarding-question.js +2 -2
- package/dist/blocks/onboarding-question.js.map +1 -1
- package/dist/blocks/page-heading.d.ts +5 -0
- package/dist/blocks/page-heading.d.ts.map +1 -1
- package/dist/blocks/page-heading.js +7 -1
- package/dist/blocks/page-heading.js.map +1 -1
- package/dist/blocks/phosphor-marks.d.ts +99 -22
- package/dist/blocks/phosphor-marks.d.ts.map +1 -1
- package/dist/blocks/phosphor-marks.js +155 -25
- package/dist/blocks/phosphor-marks.js.map +1 -1
- package/dist/blocks/pricing-tier-cards.d.ts +6 -3
- package/dist/blocks/pricing-tier-cards.d.ts.map +1 -1
- package/dist/blocks/pricing-tier-cards.js +2 -2
- package/dist/blocks/pricing-tier-cards.js.map +1 -1
- package/dist/blocks/token-specimen.d.ts +59 -0
- package/dist/blocks/token-specimen.d.ts.map +1 -0
- package/dist/blocks/token-specimen.js +61 -0
- package/dist/blocks/token-specimen.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/ui/accordion.d.ts.map +1 -1
- package/dist/ui/accordion.js +2 -2
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/badge.d.ts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +2 -2
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code-block.js +1 -1
- package/dist/ui/code-block.js.map +1 -1
- package/dist/ui/combobox.js +3 -3
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +2 -2
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/number-field.js +1 -1
- package/dist/ui/number-field.js.map +1 -1
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +1 -1
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/sonner.js +5 -5
- package/dist/ui/sonner.js.map +1 -1
- package/package.json +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-table.d.ts","sourceRoot":"","sources":["../../src/blocks/compare-table.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compare-table.d.ts","sourceRoot":"","sources":["../../src/blocks/compare-table.tsx"],"names":[],"mappings":"AAuCA,KAAK,UAAU,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAY1C,iBAAS,YAAY,CAAC,EACpB,KAAK,EACL,SAAS,EACT,IAAI,EACJ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,iEAAiE;IACjE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB,+BA+DA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,YAAY,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { IncludedIcon, NotIncludedIcon } from "./icons.js";
|
|
3
3
|
import { Logo } from "./logo.js";
|
|
4
4
|
import { cn } from "../lib/cloudgrid-cn.js";
|
|
5
5
|
/**
|
|
@@ -25,17 +25,19 @@ import { cn } from "../lib/cloudgrid-cn.js";
|
|
|
25
25
|
* represents a rival is the caller's call, not this component's. Pass a
|
|
26
26
|
* `rivalLogo` if you have one. Without it the name alone reads fine.
|
|
27
27
|
*
|
|
28
|
-
* ## Marks are
|
|
28
|
+
* ## Marks are the library's, and they carry text
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
30
|
+
* `IncludedIcon` / `NotIncludedIcon` from `@/registry/ui/icons` — Phosphor
|
|
31
|
+
* `check-circle` and `x-circle`, which is what v0's inlined SVG strings were
|
|
32
|
+
* before they were transcribed (#167). The marks set `aria-hidden` themselves
|
|
33
|
+
* and each cell carries visually-hidden "Included" or "Not included", so a
|
|
34
|
+
* screen reader hears the claim rather than nothing, and so does anything
|
|
35
|
+
* reading the markup.
|
|
34
36
|
*/
|
|
35
37
|
const VALID = ["both", "us", "them", "neither"];
|
|
36
38
|
function Mark({ yes }) {
|
|
37
|
-
const Icon = yes ?
|
|
38
|
-
return (_jsxs(_Fragment, { children: [_jsx(Icon, {
|
|
39
|
+
const Icon = yes ? IncludedIcon : NotIncludedIcon;
|
|
40
|
+
return (_jsxs(_Fragment, { children: [_jsx(Icon, { className: cn("inline-block size-[22px]", yes ? "text-brand" : "text-faint") }), _jsx("span", { className: "sr-only", children: yes ? "Included" : "Not included" })] }));
|
|
39
41
|
}
|
|
40
42
|
function CompareTable({ rival, rivalLogo, rows, className, ...props }) {
|
|
41
43
|
const parsed = rows.map((pair) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-table.js","sourceRoot":"","sources":["../../src/blocks/compare-table.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compare-table.js","sourceRoot":"","sources":["../../src/blocks/compare-table.tsx"],"names":[],"mappings":"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"}
|
package/dist/blocks/drop-zone.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { ArrowDownIcon,
|
|
4
|
+
import { ArrowDownIcon, WarningIcon } from "./icons.js";
|
|
5
5
|
import { cn } from "../lib/cloudgrid-cn.js";
|
|
6
6
|
/**
|
|
7
7
|
* `accept` on the input governs the PICKER only. A drag and drop hands over
|
|
@@ -109,7 +109,7 @@ function DropZone({ onDrop, onReject, accept, multiple = false, disabled = false
|
|
|
109
109
|
// utility for `--cg-text-accent`. `text-ring` resolves to the same value
|
|
110
110
|
// through the bridge and was used here first, but one spelling per
|
|
111
111
|
// concept is worth more than saving eight characters.
|
|
112
|
-
bad ? "text-destructive" : "text-(--cg-text-accent)"), children: bad ? _jsx(
|
|
112
|
+
bad ? "text-destructive" : "text-(--cg-text-accent)"), children: bad ? _jsx(WarningIcon, { className: "size-5" }) : _jsx(ArrowDownIcon, { className: "size-5" }) }), _jsx("span", { id: `${base}-prompt`, className: "text-body-sm text-muted-foreground", children: prompt })] }), _jsx("span", { id: `${base}-status`, role: bad ? "alert" : undefined, "aria-live": "polite", className: cn("text-caption", bad ? "text-destructive" : "text-faint"), children: taken.length === 1
|
|
113
113
|
? taken[0].name
|
|
114
114
|
: taken.length > 1
|
|
115
115
|
? `${taken.length} ready`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drop-zone.js","sourceRoot":"","sources":["../../src/blocks/drop-zone.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"drop-zone.js","sourceRoot":"","sources":["../../src/blocks/drop-zone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,71 @@
|
|
|
14
14
|
* does not route. All of that stays where it belongs. A design system that
|
|
15
15
|
* learns the product's rules stops being a design system.
|
|
16
16
|
*
|
|
17
|
+
* ## Three sizes, one card underneath them
|
|
18
|
+
*
|
|
19
|
+
* `size` is `default`, `compact` or `row`. Founder direction 2026-09-08 (#182):
|
|
20
|
+
* every entity card in the console behaves the same way, and the only things
|
|
21
|
+
* that vary are its SIZE and, later, its MODE. The console census of the same
|
|
22
|
+
* day found eight renderers, three hand-built tiles and three track widths
|
|
23
|
+
* across Home, Discover, Spaces, Saved and the inspired-by rails. This axis is
|
|
24
|
+
* what lets all of them route through one block.
|
|
25
|
+
*
|
|
26
|
+
* Every size carries the same kind badge, the same state node and the same two
|
|
27
|
+
* actions. What changes is the type scale, the padding, how much of the
|
|
28
|
+
* description survives the clamp, and — on `row` — the direction the card runs
|
|
29
|
+
* in.
|
|
30
|
+
*
|
|
31
|
+
* **One recommended grid track per size**, because a card sized for a track it
|
|
32
|
+
* is not in is the failure this axis exists to prevent:
|
|
33
|
+
*
|
|
34
|
+
* default the 1200/630 media card this file already was. Track:
|
|
35
|
+
* `repeat(auto-fill, minmax(320px, 1fr))`, which is the 360px the
|
|
36
|
+
* console's Discover grid renders today.
|
|
37
|
+
* compact the same card at the console's 260 and 280 tracks. Track:
|
|
38
|
+
* `repeat(auto-fill, minmax(240px, 1fr))`.
|
|
39
|
+
* row not a track at all. One column, at least 640px of it. That floor
|
|
40
|
+
* is measured rather than picked: the two actions RESERVE their
|
|
41
|
+
* width at rest so that nothing reflows when they appear, and with
|
|
42
|
+
* the state chip beside them the end of a row costs about 245px
|
|
43
|
+
* whether or not anything is hovering it. Add the 128px thumbnail
|
|
44
|
+
* and the padding and a row cannot go under about 420px at all;
|
|
45
|
+
* between 420 and 640 the description is truncated to a few words.
|
|
46
|
+
* Under 640, `compact` is the right form — not a narrower row.
|
|
47
|
+
*
|
|
48
|
+
* **Rest and hover are identical on `default` and `compact`.** The reveal panel,
|
|
49
|
+
* its scrim, the ink surface it declares and the tap-target rule below all carry
|
|
50
|
+
* across unchanged. Compact reduces the type and the padding and nothing else.
|
|
51
|
+
*
|
|
52
|
+
* Two things compact does drop, and both are about height rather than taste. The
|
|
53
|
+
* description is clamped to one line whatever `descriptionLines` says, and the
|
|
54
|
+
* stats collapse to the first: at 260px a second stat wraps, which takes that
|
|
55
|
+
* card a line taller than the ones beside it and breaks the row it sits in.
|
|
56
|
+
*
|
|
57
|
+
* **`row` is the one that differs, and not for space.** A reveal exists to show
|
|
58
|
+
* what a thumbnail is covering — the title, the line, the creator, the state. A
|
|
59
|
+
* row shows all of that already, so there is nothing left to reveal, and a panel
|
|
60
|
+
* sliding over a 128px thumbnail would hide the smallest part of the card to
|
|
61
|
+
* repeat what the widest part already says. What appears on hover and on
|
|
62
|
+
* focus-within is the two actions, and only those.
|
|
63
|
+
*
|
|
64
|
+
* `stats` and `footer` are not rendered on a row. They are the stacked sizes'
|
|
65
|
+
* furniture: a stat rule under a one-line description makes the row two and a
|
|
66
|
+
* half lines tall, and a list of those stops being scannable. `meta` is
|
|
67
|
+
* rendered, on the creator's line, because the console's residence line is one
|
|
68
|
+
* line and belongs next to who made the thing.
|
|
69
|
+
*
|
|
70
|
+
* ## The open mode is NOT here
|
|
71
|
+
*
|
|
72
|
+
* #182 names a second axis as well: `open`, the card expanded in place with the
|
|
73
|
+
* full information — description unclamped, the residence grid, the owner, the
|
|
74
|
+
* tags — without navigating anywhere. It is deliberately not built. Its content
|
|
75
|
+
* comes from Figma frames that have not been shared yet, and a mode invented
|
|
76
|
+
* ahead of them is a second thing to unpick rather than a head start.
|
|
77
|
+
*
|
|
78
|
+
* The seam is `size`'s own: a `mode` prop beside it, resolved in the same place,
|
|
79
|
+
* with `SIZE_STYLE` below gaining a column rather than this component gaining a
|
|
80
|
+
* branch. Nothing here forecloses it, and nothing here pretends it exists.
|
|
81
|
+
*
|
|
17
82
|
* ## Two tiers of preview, and neither can fail dark
|
|
18
83
|
*
|
|
19
84
|
* `seed` turns the preview region on. With `seed` alone the card shows the
|
|
@@ -66,10 +131,23 @@
|
|
|
66
131
|
* ## The hover reveal, and the rule it supersedes
|
|
67
132
|
*
|
|
68
133
|
* `reveal` puts a panel over the preview carrying the title, one line of
|
|
69
|
-
* description, the creator, the status and two real links: Open and
|
|
134
|
+
* description, the creator, the status and two real links: Open and Dashboard.
|
|
70
135
|
* It shows on hover and on `:focus-within`, and it respects
|
|
71
136
|
* `prefers-reduced-motion` by arriving without the fade rather than not at all.
|
|
72
137
|
*
|
|
138
|
+
* **The second action is Dashboard, and it is not a gear.** Founder direction
|
|
139
|
+
* 2026-09-08 (#182). The door it opens is the entity's page in the console,
|
|
140
|
+
* which shows analytics and what runs under the hood — so what it promises is
|
|
141
|
+
* "look inside", and a gear promises "change how this is configured". Those are
|
|
142
|
+
* different pages and a reader who takes one for the other has been misled by
|
|
143
|
+
* the icon rather than by the label. The mark is `EntityDashboardIcon`
|
|
144
|
+
* (Phosphor `gauge`); `SettingsIcon` is still exported for the surfaces that
|
|
145
|
+
* really are settings.
|
|
146
|
+
*
|
|
147
|
+
* The prop is `dashboardHref`. `settingsHref` is kept as a deprecated alias for
|
|
148
|
+
* this minor and maps straight to it, so no caller breaks on the rename — see
|
|
149
|
+
* the note on the prop.
|
|
150
|
+
*
|
|
73
151
|
* **This supersedes the "cards are visually static" rule of the console's
|
|
74
152
|
* 2026-08-16 card spec, for the media variant only.** Founder direction
|
|
75
153
|
* 2026-09-08 (#165). The rest of that rule stands and is unchanged: no lift, no
|
|
@@ -84,22 +162,22 @@
|
|
|
84
162
|
* browsers repair it by closing the outer one — which silently unlinks the card
|
|
85
163
|
* and leaves the actions where the parser decides to put them. The panel is the
|
|
86
164
|
* link surface instead: Open stretches across the whole panel with an
|
|
87
|
-
* `::after`, so a click anywhere on the thumbnail opens the entity, and
|
|
88
|
-
* sits above it. Every existing caller is unaffected — `reveal`
|
|
89
|
-
* the wrapper behaves exactly as it did.
|
|
165
|
+
* `::after`, so a click anywhere on the thumbnail opens the entity, and
|
|
166
|
+
* Dashboard sits above it. Every existing caller is unaffected — `reveal`
|
|
167
|
+
* defaults off and the wrapper behaves exactly as it did.
|
|
90
168
|
*
|
|
91
|
-
* **The panel stays clickable while it is invisible — except
|
|
169
|
+
* **The panel stays clickable while it is invisible — except Dashboard.**
|
|
92
170
|
* `opacity-0` is a paint state, not a pointer state, so a touch user with no
|
|
93
171
|
* hover at all still gets Open by tapping the thumbnail. Gating Open's pointer
|
|
94
172
|
* events on hover would make the card do nothing on a phone.
|
|
95
173
|
*
|
|
96
|
-
*
|
|
174
|
+
* Dashboard is the one exception, and it has to be. It is `relative`, so it
|
|
97
175
|
* stacks above Open's stretched hit area; live at rest, that made a pill-sized
|
|
98
|
-
* region of an invisible panel go to
|
|
176
|
+
* region of an invisible panel go to that link on a tap — different from every
|
|
99
177
|
* pixel around it, and impossible to see (#171). So it carries
|
|
100
178
|
* `pointer-events-none` until the panel is revealed by hover or focus-within,
|
|
101
179
|
* which is the reasoning the kind mark beside it already carried. Open's
|
|
102
|
-
* overlay is untouched, so a tap anywhere on the thumbnail —
|
|
180
|
+
* overlay is untouched, so a tap anywhere on the thumbnail — the second pill
|
|
103
181
|
* included — opens the entity, and the touch fallback is exactly as it was.
|
|
104
182
|
*
|
|
105
183
|
* **It is an ink surface, declared.** The panel carries
|
|
@@ -122,6 +200,51 @@
|
|
|
122
200
|
* is product knowledge. The console maps its wire status through its own table
|
|
123
201
|
* and drops the result in here.
|
|
124
202
|
*
|
|
203
|
+
* ## `headerActions` is the OTHER slot, and the difference is where it renders
|
|
204
|
+
*
|
|
205
|
+
* `status` is one node rendered in TWO places: the header row and the reveal
|
|
206
|
+
* panel. That is right for a state chip — what an entity currently is stays true
|
|
207
|
+
* while you hover it — and wrong for everything else, because a slot rendered
|
|
208
|
+
* twice can only carry something that belongs in both.
|
|
209
|
+
*
|
|
210
|
+
* The console found the edge (#176, cloudgrid-console#654). Its cards carry a
|
|
211
|
+
* save toggle and an overflow menu at the header's right, which is exactly where
|
|
212
|
+
* `status` sits. Putting them in that slot duplicates two interactive controls
|
|
213
|
+
* into an invisible hover panel: two menu triggers with the same accessible name
|
|
214
|
+
* on every card, two save buttons, and a kebab whose dropdown opens inside a
|
|
215
|
+
* panel that disappears when the pointer leaves. So the console moved them to
|
|
216
|
+
* its footer instead — nothing lost, nothing duplicated, and the controls a row
|
|
217
|
+
* below where the design puts them for a library reason rather than a design
|
|
218
|
+
* one.
|
|
219
|
+
*
|
|
220
|
+
* `headerActions` is that slot. It renders **once**, in the header row, to the
|
|
221
|
+
* right of `status`, and never in the reveal panel. Nothing else about the card
|
|
222
|
+
* changes and no existing caller is affected.
|
|
223
|
+
*
|
|
224
|
+
* Three things about it:
|
|
225
|
+
*
|
|
226
|
+
* **The panel deliberately has no equivalent.** The reveal already carries the
|
|
227
|
+
* two actions it can carry — Open, and Dashboard — and its own hit model is one
|
|
228
|
+
* stretched anchor with a single exception lifted above it. A third control in
|
|
229
|
+
* there would need the same `pointer-events` gating Dashboard carries, for the
|
|
230
|
+
* same reason (#171), and would be invisible on a phone. The panel's actions are
|
|
231
|
+
* a fixed pair by design; the header's are the caller's.
|
|
232
|
+
*
|
|
233
|
+
* **Interactive controls inside a whole-card link are the caller's problem, and
|
|
234
|
+
* they are a real one.** With `href` set and `reveal` off, this card is wrapped
|
|
235
|
+
* in an `<a>`. A `<button>` inside an anchor is invalid HTML, and even where a
|
|
236
|
+
* browser tolerates it a click on the button also activates the link. This card
|
|
237
|
+
* cannot fix that for you: stopping the event needs a handler, a handler needs
|
|
238
|
+
* `"use client"`, and that would put a client boundary on a card that is
|
|
239
|
+
* otherwise entirely static — on every listing that renders it, for a slot most
|
|
240
|
+
* callers never pass. So a caller passing controls here either composes its own
|
|
241
|
+
* wrapper (which is what the console does, for `next/link`) or drops the
|
|
242
|
+
* whole-card `href` and gives the title its own link.
|
|
243
|
+
*
|
|
244
|
+
* **It does not render when `children` replaces the body.** Same as `status`:
|
|
245
|
+
* both live in the default body, and a caller supplying its own body owns its
|
|
246
|
+
* own header row.
|
|
247
|
+
*
|
|
125
248
|
* ## Surfaces
|
|
126
249
|
*
|
|
127
250
|
* The chrome flips: ground, hairlines, title, body text and the stat rule all
|
|
@@ -165,6 +288,18 @@ export declare const ENTITY_KIND_ICON: Record<EntityKind, React.ComponentType<{
|
|
|
165
288
|
* Plain nouns, no adjective: this names a thing, it does not sell it.
|
|
166
289
|
*/
|
|
167
290
|
export declare const ENTITY_KIND_LABEL: Record<EntityKind, string>;
|
|
291
|
+
/**
|
|
292
|
+
* The sizes, in the order they get smaller. Read from the console census
|
|
293
|
+
* (2026-09-08) rather than invented: `default` is the 360px track, `compact`
|
|
294
|
+
* covers the 260 and 280 ones, `row` is the list surfaces, the rails and the
|
|
295
|
+
* sidebar.
|
|
296
|
+
*
|
|
297
|
+
* The array is the source and the type is derived from it, the same arrangement
|
|
298
|
+
* `ENTITY_KIND_ORDER` uses: a size added here is immediately missing from
|
|
299
|
+
* `SIZE_STYLE` and typecheck says so.
|
|
300
|
+
*/
|
|
301
|
+
export declare const ENTITY_CARD_SIZE_ORDER: readonly ["default", "compact", "row"];
|
|
302
|
+
export type EntityCardSize = (typeof ENTITY_CARD_SIZE_ORDER)[number];
|
|
168
303
|
/**
|
|
169
304
|
* The kind badge on its own, exported because a listing header, a detail page or
|
|
170
305
|
* a row may want the same mark without a card around it.
|
|
@@ -177,15 +312,41 @@ declare function EntityKindBadge({ kind, size, className, ...props }: Omit<React
|
|
|
177
312
|
kind: EntityKind;
|
|
178
313
|
size?: "sm" | "md";
|
|
179
314
|
}): import("react").JSX.Element;
|
|
180
|
-
declare function EntityCard({ title, slug, description, titleLines, descriptionLines, status, stats, seed, previewUrl, kind, reveal, settingsHref, creator, href, ariaLabel, meta, footer, className, children, ...props }: Omit<React.ComponentProps<"div">, "ref" | "title"> & {
|
|
315
|
+
declare function EntityCard({ title, slug, description, size, titleLines, descriptionLines, status, headerActions, stats, seed, previewUrl, kind, reveal, dashboardHref, settingsHref, creator, href, ariaLabel, meta, footer, className, children, ...props }: Omit<React.ComponentProps<"div">, "ref" | "title"> & {
|
|
181
316
|
title: string;
|
|
182
317
|
/** The entity's address, in the mono utility face. */
|
|
183
318
|
slug?: string;
|
|
184
319
|
description?: string;
|
|
320
|
+
/**
|
|
321
|
+
* How big, and which way up. `default` is the 1200/630 media card, `compact`
|
|
322
|
+
* the same card at the console's 260 and 280 tracks, `row` the horizontal
|
|
323
|
+
* list form. See the note at the top of this file for the grid track each one
|
|
324
|
+
* is meant for, and for what `row` deliberately does differently.
|
|
325
|
+
*/
|
|
326
|
+
size?: EntityCardSize;
|
|
185
327
|
titleLines?: 1 | 2;
|
|
328
|
+
/**
|
|
329
|
+
* Ignored on `compact` and on `row`, both of which always clamp to one line.
|
|
330
|
+
* At 260px a second line of description takes the card taller than the ones
|
|
331
|
+
* beside it, and a row has one line by definition.
|
|
332
|
+
*/
|
|
186
333
|
descriptionLines?: 1 | 2;
|
|
187
|
-
/**
|
|
334
|
+
/**
|
|
335
|
+
* Top right of the header row, and ALSO inside the reveal panel. One node,
|
|
336
|
+
* two places, so it can only carry something true in both: drop an
|
|
337
|
+
* `EntityStatus` in. Row controls go in `headerActions`.
|
|
338
|
+
*/
|
|
188
339
|
status?: React.ReactNode;
|
|
340
|
+
/**
|
|
341
|
+
* The header row's own controls — a save toggle, an overflow menu — to the
|
|
342
|
+
* right of `status`. Rendered **once**, in the header, never in the reveal
|
|
343
|
+
* panel (#176).
|
|
344
|
+
*
|
|
345
|
+
* Read the note above before passing an interactive control together with
|
|
346
|
+
* `href`: this card wraps itself in an anchor, and it cannot intercept the
|
|
347
|
+
* click for you without becoming a client component.
|
|
348
|
+
*/
|
|
349
|
+
headerActions?: React.ReactNode;
|
|
189
350
|
stats?: EntityCardStat[];
|
|
190
351
|
/**
|
|
191
352
|
* The entity's stable id. Its presence is what turns the preview region on,
|
|
@@ -213,7 +374,19 @@ declare function EntityCard({ title, slug, description, titleLines, descriptionL
|
|
|
213
374
|
* and an anchor inside an anchor is invalid HTML. See the note above.
|
|
214
375
|
*/
|
|
215
376
|
reveal?: boolean;
|
|
216
|
-
/**
|
|
377
|
+
/**
|
|
378
|
+
* The Dashboard action's target: the entity's page in the console, where the
|
|
379
|
+
* analytics and what runs under the hood live. Only read when `reveal` is on.
|
|
380
|
+
*/
|
|
381
|
+
dashboardHref?: string;
|
|
382
|
+
/**
|
|
383
|
+
* @deprecated Renamed to `dashboardHref` in #182 — the action is Dashboard,
|
|
384
|
+
* not Settings, because that is what the page it opens actually is.
|
|
385
|
+
*
|
|
386
|
+
* Kept for this minor and mapped straight through, so no caller breaks on the
|
|
387
|
+
* rename. `dashboardHref` wins if both are given. It will be removed in the
|
|
388
|
+
* next major; the fix is one word at each call site.
|
|
389
|
+
*/
|
|
217
390
|
settingsHref?: string;
|
|
218
391
|
/**
|
|
219
392
|
* Who made it, shown on the reveal panel. `avatar` is a node so a consumer can
|
|
@@ -228,9 +401,13 @@ declare function EntityCard({ title, slug, description, titleLines, descriptionL
|
|
|
228
401
|
href?: string;
|
|
229
402
|
/** Accessible name for the whole-card link. Defaults to `title`. */
|
|
230
403
|
ariaLabel?: string;
|
|
231
|
-
/**
|
|
404
|
+
/**
|
|
405
|
+
* Between the description and the stats. The console puts its residence line
|
|
406
|
+
* here. On a `row` it sits on the creator's line instead, which is the only
|
|
407
|
+
* line a row has left.
|
|
408
|
+
*/
|
|
232
409
|
meta?: React.ReactNode;
|
|
233
|
-
/** Below everything, under no rule of its own. */
|
|
410
|
+
/** Below everything, under no rule of its own. Not rendered on a `row`. */
|
|
234
411
|
footer?: React.ReactNode;
|
|
235
412
|
/** Replaces the whole body. The preview and the card chrome still render. */
|
|
236
413
|
children?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-card.d.ts","sourceRoot":"","sources":["../../src/blocks/entity-card.tsx"],"names":[],"mappings":"AAWA
|
|
1
|
+
{"version":3,"file":"entity-card.d.ts","sourceRoot":"","sources":["../../src/blocks/entity-card.tsx"],"names":[],"mappings":"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"}
|