@cloudgrid-io/ui 0.21.0 → 0.23.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/entity-card.d.ts +225 -72
- package/dist/blocks/entity-card.d.ts.map +1 -1
- package/dist/blocks/entity-card.js +291 -83
- package/dist/blocks/entity-card.js.map +1 -1
- package/dist/blocks/entity-status.d.ts +32 -1
- package/dist/blocks/entity-status.d.ts.map +1 -1
- package/dist/blocks/entity-status.js +35 -1
- package/dist/blocks/entity-status.js.map +1 -1
- package/dist/blocks/icons.d.ts +18 -13
- package/dist/blocks/icons.d.ts.map +1 -1
- package/dist/blocks/icons.js +18 -13
- package/dist/blocks/icons.js.map +1 -1
- package/dist/blocks/phosphor-marks.d.ts +6 -4
- package/dist/blocks/phosphor-marks.d.ts.map +1 -1
- package/dist/blocks/phosphor-marks.js +9 -6
- package/dist/blocks/phosphor-marks.js.map +1 -1
- package/dist/theme.css +16 -0
- package/dist/tokens/base.json +70 -6
- package/dist/tokens.css +62 -6
- package/dist/tokens.json +11 -5
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
2
3
|
import { Card } from "../ui/card.js";
|
|
3
4
|
import { EntityIdentity } from "./entity-identity.js";
|
|
5
|
+
import { EntityStateDot, EntityStatus } from "./entity-status.js";
|
|
4
6
|
import { EntityDashboardIcon, KindAgentIcon, KindAppIcon, KindInspirationIcon, OpenLiveIcon, } from "./icons.js";
|
|
5
7
|
import { cn } from "../lib/cloudgrid-cn.js";
|
|
6
8
|
/**
|
|
@@ -34,6 +36,29 @@ export const ENTITY_KIND_LABEL = {
|
|
|
34
36
|
inspiration: "Inspiration",
|
|
35
37
|
app: "App",
|
|
36
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* THE TINTS. What a kind's badge sits on.
|
|
41
|
+
*
|
|
42
|
+
* A third table beside the marks and the words, added with the founder's
|
|
43
|
+
* 2026-09-09 draft (#196): the badge used to be one neutral disc for all three
|
|
44
|
+
* kinds, so the mark was the only thing telling them apart and it is 16px wide.
|
|
45
|
+
* A tint is legible from across a listing; a glyph is not.
|
|
46
|
+
*
|
|
47
|
+
* Every entry is a utility over a `--cg-kind-*` token, and those three are
|
|
48
|
+
* declared at `:root` ONLY. That is the identity tile's rule applied to a mark:
|
|
49
|
+
* the badge sits on a screenshot, and a picture does not flip. The glyph stays
|
|
50
|
+
* `--cg-text-on-accent`, which is ink at every scope, and it measures 12.74:1,
|
|
51
|
+
* 14.65:1 and 10.24:1 on the three grounds.
|
|
52
|
+
*
|
|
53
|
+
* `agent` is a PROPOSAL. The draft never draws an agent badge; #d1c9ff is its
|
|
54
|
+
* own "Secondary2 30" style, which is the nearest thing in the same set to the
|
|
55
|
+
* two it does draw. Founder may veto, and a veto is one value in tokens.
|
|
56
|
+
*/
|
|
57
|
+
export const ENTITY_KIND_TINT = {
|
|
58
|
+
agent: "bg-kind-agent",
|
|
59
|
+
inspiration: "bg-kind-inspiration",
|
|
60
|
+
app: "bg-kind-app",
|
|
61
|
+
};
|
|
37
62
|
/**
|
|
38
63
|
* The sizes, in the order they get smaller. Read from the console census
|
|
39
64
|
* (2026-09-08) rather than invented: `default` is the 360px track, `compact`
|
|
@@ -58,10 +83,10 @@ export const ENTITY_CARD_SIZE_ORDER = ["default", "compact", "row"];
|
|
|
58
83
|
* whole point of the axis is that the sizes stay comparable. Three ternaries in
|
|
59
84
|
* three places is how one of them silently stops matching the other two.
|
|
60
85
|
*
|
|
61
|
-
* `row` builds its own composition below, so its `stats`, `reveal`
|
|
62
|
-
* `revealTitle` entries are empty: a row has no stat rule
|
|
63
|
-
* They are present rather than omitted so the record
|
|
64
|
-
* size cannot be half-added.
|
|
86
|
+
* `row` builds its own composition below, so its `nameRow`, `stats`, `reveal`
|
|
87
|
+
* and `revealTitle` entries are empty: a row has no stat rule, no reveal panel
|
|
88
|
+
* and no name row of its own. They are present rather than omitted so the record
|
|
89
|
+
* stays total and a fourth size cannot be half-added.
|
|
65
90
|
*/
|
|
66
91
|
const SIZE_STYLE = {
|
|
67
92
|
default: {
|
|
@@ -70,7 +95,8 @@ const SIZE_STYLE = {
|
|
|
70
95
|
title: "text-body-sm",
|
|
71
96
|
description: "text-body-sm",
|
|
72
97
|
stats: "gap-4 pt-3",
|
|
73
|
-
|
|
98
|
+
nameRow: "gap-2 px-[11px] pb-[11px]",
|
|
99
|
+
reveal: "gap-3 px-[15px] pt-[15px] pb-[11px]",
|
|
74
100
|
revealTitle: "text-body-sm",
|
|
75
101
|
},
|
|
76
102
|
compact: {
|
|
@@ -79,7 +105,8 @@ const SIZE_STYLE = {
|
|
|
79
105
|
title: "text-caption",
|
|
80
106
|
description: "text-caption",
|
|
81
107
|
stats: "gap-3 pt-2",
|
|
82
|
-
|
|
108
|
+
nameRow: "gap-1.5 px-2 pb-2",
|
|
109
|
+
reveal: "gap-2 px-3 pt-3 pb-2",
|
|
83
110
|
revealTitle: "text-caption",
|
|
84
111
|
},
|
|
85
112
|
row: {
|
|
@@ -88,6 +115,7 @@ const SIZE_STYLE = {
|
|
|
88
115
|
title: "text-body-sm",
|
|
89
116
|
description: "text-caption",
|
|
90
117
|
stats: "",
|
|
118
|
+
nameRow: "",
|
|
91
119
|
reveal: "",
|
|
92
120
|
revealTitle: "",
|
|
93
121
|
},
|
|
@@ -98,9 +126,9 @@ const SIZE_STYLE = {
|
|
|
98
126
|
* scannable, and what a percentage width would lose the moment the column
|
|
99
127
|
* resized.
|
|
100
128
|
*
|
|
101
|
-
* 128px against the
|
|
102
|
-
*
|
|
103
|
-
* thumbnail, which is why the row uses the
|
|
129
|
+
* 128px against the 159/92 ratio is a 74px picture, so a row is a little under
|
|
130
|
+
* 100px tall with its padding. Even a 20px kind badge would take a sixth of that
|
|
131
|
+
* thumbnail, which is why the row uses the 16px one.
|
|
104
132
|
*/
|
|
105
133
|
const ROW_THUMBNAIL = "w-32";
|
|
106
134
|
/**
|
|
@@ -148,35 +176,77 @@ function cssUrlString(url) {
|
|
|
148
176
|
* The kind badge on its own, exported because a listing header, a detail page or
|
|
149
177
|
* a row may want the same mark without a card around it.
|
|
150
178
|
*
|
|
151
|
-
*
|
|
152
|
-
* `
|
|
153
|
-
*
|
|
179
|
+
* 20 x 20 at a 6px corner with a 16px glyph, tinted per kind, lifted off the
|
|
180
|
+
* picture by `shadow-mark` — the founder's 2026-09-09 draft (#196). It was a
|
|
181
|
+
* 28px neutral disc with a mixed hairline; what changed is that the ground now
|
|
182
|
+
* says which kind it is and the mark is small enough to stop competing with the
|
|
183
|
+
* thumbnail it sits on.
|
|
184
|
+
*
|
|
185
|
+
* `size` is the only variant: `md` is the badge that sits on a preview, `sm` the
|
|
186
|
+
* 16px one that sits beside a title, where a 20px disc leads the line rather
|
|
187
|
+
* than following it.
|
|
188
|
+
*
|
|
189
|
+
* The badge does NOT flip per surface, and that is the identity tile's rule
|
|
190
|
+
* applied to a mark. Its ground is a `--cg-kind-*` tint and its glyph is
|
|
191
|
+
* `--cg-text-on-accent`, all four declared at `:root` only, so a tinted square
|
|
192
|
+
* with an ink glyph is what renders on white, on the purple panel and on ink
|
|
193
|
+
* alike. The alternative — a badge painted with `--cg-surface-card` and
|
|
194
|
+
* `--cg-text-primary` — inverts to white-on-white the moment the card sits
|
|
195
|
+
* inside `data-cg-surface="ink"`, because half of what it reads flips and the
|
|
196
|
+
* picture under it does not.
|
|
197
|
+
*
|
|
198
|
+
* The hairline is gone with the neutral disc: an edge existed to separate a
|
|
199
|
+
* white disc from a light screenshot, and a tint plus a drop shadow does that
|
|
200
|
+
* job without drawing a line the draft does not have.
|
|
201
|
+
*
|
|
202
|
+
* The kind is announced. The glyph is `aria-hidden` and the word rides along in
|
|
203
|
+
* an `sr-only` span, because "agent" is information and a decorative mark is not
|
|
204
|
+
* a way to convey it.
|
|
154
205
|
*/
|
|
155
206
|
function EntityKindBadge({ kind, size = "md", className, ...props }) {
|
|
156
207
|
const Icon = ENTITY_KIND_ICON[kind];
|
|
157
|
-
return (_jsxs("span", { "data-slot": "entity-card-kind", "data-kind": kind, className: cn("inline-flex shrink-0 items-center justify-center rounded-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
208
|
+
return (_jsxs("span", { "data-slot": "entity-card-kind", "data-kind": kind, className: cn("inline-flex shrink-0 items-center justify-center rounded-2xs text-on-accent shadow-mark", ENTITY_KIND_TINT[kind], size === "md" ? "size-5" : "size-4", className), ...props, children: [_jsx(Icon, { className: size === "md" ? "size-4" : "size-3" }), _jsx("span", { className: "sr-only", children: ENTITY_KIND_LABEL[kind] })] }));
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* The state as a dot, when the caller has not supplied one.
|
|
212
|
+
*
|
|
213
|
+
* `status` is a node and stays a node: this card does not know the wire status
|
|
214
|
+
* vocabulary and is not learning it here. What this does is recognise the
|
|
215
|
+
* library's OWN chip and take the state off it, so a caller who already passes
|
|
216
|
+
* `<EntityStatus status="live" />` gets the draft's dot with no edit at all
|
|
217
|
+
* (#196). Anything else — a console chip, a bare string, a fragment — returns
|
|
218
|
+
* null, and the card falls back to rendering the node it was given.
|
|
219
|
+
*
|
|
220
|
+
* Deliberately not a `state="live"` prop. That would be the vocabulary itself,
|
|
221
|
+
* in the props table, on a card whose whole design is that the product's words
|
|
222
|
+
* stay in the product.
|
|
223
|
+
*/
|
|
224
|
+
function statusDotFrom(status) {
|
|
225
|
+
if (!React.isValidElement(status))
|
|
226
|
+
return null;
|
|
227
|
+
if (status.type !== EntityStatus)
|
|
228
|
+
return null;
|
|
229
|
+
const props = status.props;
|
|
230
|
+
if (!props.status)
|
|
231
|
+
return null;
|
|
232
|
+
return _jsx(EntityStateDot, { status: props.status, label: props.label });
|
|
166
233
|
}
|
|
167
|
-
function EntityCard({ title, slug, description, size = "default", titleLines = 2, descriptionLines = 1, status, headerActions, stats, seed, previewUrl, kind, reveal = false, dashboardHref, settingsHref, creator, href, ariaLabel, meta, footer, className, children, ...props }) {
|
|
234
|
+
function EntityCard({ title, slug, description, size = "default", titleLines = 2, descriptionLines = 1, status, statusDot, headerActions, stats, seed, previewUrl, kind, reveal = false, openDisabledReason, dashboardHref, settingsHref, creator, href, ariaLabel, meta, footer, className, children, ...props }) {
|
|
168
235
|
const sized = SIZE_STYLE[size];
|
|
169
|
-
// The reveal owns the preview
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
// clicked. Silently off in both cases rather than half-built.
|
|
236
|
+
// The reveal owns the preview, so `seed` is what it needs and all it needs: a
|
|
237
|
+
// panel over nothing is not a panel. It deliberately does NOT ask for an
|
|
238
|
+
// `href` — see "the reveal never depends on data" above (#193). A card whose
|
|
239
|
+
// entity is not being served still reveals, and Open is disabled inside it.
|
|
174
240
|
//
|
|
175
241
|
// A `row` never reveals, whatever the caller passed. Not a limitation: the row
|
|
176
242
|
// already shows everything the panel carries, so there is nothing to reveal —
|
|
177
243
|
// see the size note at the top. Its two actions are rendered at the end of the
|
|
178
244
|
// row and appear on hover, which is the half of the behaviour that survives.
|
|
179
|
-
const revealed = reveal && Boolean(seed) &&
|
|
245
|
+
const revealed = reveal && Boolean(seed) && size !== "row";
|
|
246
|
+
// Whether the Open action has anywhere to go. One boolean, read in three
|
|
247
|
+
// places — Open's own markup, Dashboard's hit model, and the reason line — so
|
|
248
|
+
// the three can never disagree about which state the card is in.
|
|
249
|
+
const openLive = Boolean(href);
|
|
180
250
|
// One target, two prop names, for one minor. `settingsHref` is the old name
|
|
181
251
|
// (#182 renamed the action to Dashboard, because the console page it opens is
|
|
182
252
|
// a dashboard and not a settings screen), and it is resolved here rather than
|
|
@@ -194,6 +264,19 @@ function EntityCard({ title, slug, description, size = "default", titleLines = 2
|
|
|
194
264
|
// One line on compact and on row, whatever the caller asked for. See the note
|
|
195
265
|
// on the prop: this is a height rule, not a preference.
|
|
196
266
|
const clampDescription = size === "default" && descriptionLines === 2 ? "line-clamp-2" : "truncate";
|
|
267
|
+
// The dot, and the one place it is resolved. Explicit first, derived from the
|
|
268
|
+
// library's own chip second, nothing third — see `statusDotFrom` (#196).
|
|
269
|
+
const dot = statusDot ?? statusDotFrom(status);
|
|
270
|
+
// A card with a panel keeps its rest state to the picture, the name and the
|
|
271
|
+
// dot (#196). Everything else the caller passed — the line, the creator, the
|
|
272
|
+
// state, the stats, the controls — is what the panel is FOR, and rendering it
|
|
273
|
+
// twice is how a listing turns back into a wall of text.
|
|
274
|
+
//
|
|
275
|
+
// Tied to `revealed` rather than to `size`, and that is the whole safety of
|
|
276
|
+
// this change: a card with no panel has nowhere to move that information TO,
|
|
277
|
+
// so it keeps the body it always had. Every existing caller that does not pass
|
|
278
|
+
// `reveal` renders exactly as it did.
|
|
279
|
+
const minimal = revealed;
|
|
197
280
|
/**
|
|
198
281
|
* THE TWO ACTIONS. One pair, written once, used by the reveal panel and by the
|
|
199
282
|
* row alike — because #182's premise is that every entity card offers the same
|
|
@@ -214,45 +297,143 @@ function EntityCard({ title, slug, description, size = "default", titleLines = 2
|
|
|
214
297
|
* a region of the card that went somewhere different from every pixel around
|
|
215
298
|
* it, with nothing to see (#171). `pointer-events-none` until hover or
|
|
216
299
|
* focus-within, and Open's overlay untouched, is the whole fix.
|
|
300
|
+
*
|
|
301
|
+
* **With no `href`, the pair keeps its shape and swaps which half is the
|
|
302
|
+
* stretched one** (#193). Open becomes a disabled control, and the panel's
|
|
303
|
+
* single stretched hit area moves to Dashboard — so the card is still one tap
|
|
304
|
+
* target on a phone, still going to exactly one place, and that place is the
|
|
305
|
+
* only door the entity actually has. The alternative, a panel with nothing
|
|
306
|
+
* stretched, leaves a touch reader no way in at all: Dashboard's
|
|
307
|
+
* `pointer-events-none` needs a hover to lift, and a device with no hover
|
|
308
|
+
* never lifts it.
|
|
309
|
+
*
|
|
310
|
+
* That swap does not reopen #171. What that defect was about is a PILL-sized
|
|
311
|
+
* invisible region behaving differently from every pixel around it. A
|
|
312
|
+
* stretched Dashboard is the whole panel, uniformly, which is Open's own model
|
|
313
|
+
* and has always been correct on touch. The one pixel-region that must NOT
|
|
314
|
+
* follow it is the disabled Open itself, which carries `relative z-10` to stay
|
|
315
|
+
* above the overlay: a control that reads as disabled has to be inert when it
|
|
316
|
+
* is tapped, not a second way to reach Dashboard.
|
|
317
|
+
*/
|
|
318
|
+
const actionPair = (_jsxs(_Fragment, { children: [openLive ? (_jsxs("a", { href: href, "data-slot": "entity-card-open",
|
|
319
|
+
// The word is not drawn. The founder's draft puts one 20px arrow at
|
|
320
|
+
// the top right of the panel and no label, and a pill with "Open" in
|
|
321
|
+
// it would be the widest thing on a 260px card. `sr-only` is what
|
|
322
|
+
// keeps the action named: an icon link with no accessible name is a
|
|
323
|
+
// link a screen reader announces as its own URL.
|
|
324
|
+
className: "inline-flex size-7 shrink-0 items-center justify-center rounded-pill text-ink no-underline after:absolute after:inset-0 after:content-[''] focus-visible:ring-3 focus-visible:ring-ring focus-visible:outline-none", children: [_jsx(OpenLiveIcon, { className: "size-5" }), _jsx("span", { className: "sr-only", children: "Open" })] })) : (_jsxs("a", { "data-slot": "entity-card-open", "data-disabled": "true", role: "link", "aria-disabled": "true",
|
|
325
|
+
// opacity-50 and a not-allowed cursor: this library's own disabled
|
|
326
|
+
// convention, and the one every other block here uses. It takes the
|
|
327
|
+
// mark under the panel's AA floor on purpose — WCAG 1.4.3 exempts an
|
|
328
|
+
// inactive control, and a disabled action that reads at full strength
|
|
329
|
+
// is the failure this state exists to prevent.
|
|
330
|
+
//
|
|
331
|
+
// relative z-10 so a tap on the mark lands on the mark. With Open
|
|
332
|
+
// disabled the panel's stretched layer is Dashboard's, and it covers
|
|
333
|
+
// this pill along with everything else.
|
|
334
|
+
className: "relative z-10 inline-flex size-7 shrink-0 cursor-not-allowed items-center justify-center rounded-pill text-ink no-underline opacity-50", children: [_jsx(OpenLiveIcon, { className: "size-5" }), _jsx("span", { className: "sr-only", children: "Open" }), openDisabledReason ? _jsx("span", { className: "sr-only", children: openDisabledReason }) : null] })), dashboardTarget ? (_jsxs("a", { href: dashboardTarget, "data-slot": "entity-card-dashboard", "data-stretched": openLive ? undefined : "true", className: cn("inline-flex size-7 shrink-0 items-center justify-center rounded-pill text-ink no-underline focus-visible:ring-3 focus-visible:ring-ring focus-visible:outline-none", openLive
|
|
335
|
+
? // Lifted above Open's overlay, and therefore dead until the panel
|
|
336
|
+
// can be seen (#171).
|
|
337
|
+
"pointer-events-none relative group-hover/card:pointer-events-auto group-focus-within/card:pointer-events-auto"
|
|
338
|
+
: // Open is disabled, so this is the card's one door: it takes
|
|
339
|
+
// Open's hit model wholesale — unpositioned, stretched, never
|
|
340
|
+
// gated, which is what makes it work on a phone.
|
|
341
|
+
"after:absolute after:inset-0 after:content-['']"), children: [_jsx(EntityDashboardIcon, { className: "size-5" }), _jsx("span", { className: "sr-only", children: "Dashboard" })] })) : null] }));
|
|
342
|
+
/**
|
|
343
|
+
* THE FULL BODY: the card as it was before the panel existed.
|
|
344
|
+
*
|
|
345
|
+
* Rendered by a card with no reveal panel — a text card, a card whose caller
|
|
346
|
+
* did not ask for one — because there is nowhere else for any of it to go.
|
|
347
|
+
* A card WITH a panel renders `nameRow` below instead (#196).
|
|
217
348
|
*/
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
349
|
+
const fullBody = (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("span", { dir: "auto", "data-slot": "entity-card-title", title: title, className: cn("block font-medium break-words text-ink", sized.title, titleLines === 1 ? "truncate" : "line-clamp-2"), children: [kind && !seed ? (_jsx(EntityKindBadge, { kind: kind, size: "sm", className: "mr-1.5 align-[-0.2em]" })) : null, title] }), slug ? (_jsx("span", { dir: "auto", "data-slot": "entity-card-slug", title: slug, className: "mt-0.5 block truncate font-mono text-caption text-faint", children: slug })) : null] }), status ? _jsx("div", { className: "shrink-0", children: status }) : null, headerActions ? (_jsx("div", { "data-slot": "entity-card-actions",
|
|
350
|
+
// items-center against the title's first line, and -mt-1 to pull an
|
|
351
|
+
// icon button's own padding back so the glyph optically lines up
|
|
352
|
+
// with the title rather than sitting a couple of pixels low.
|
|
353
|
+
className: "-mt-1 flex shrink-0 items-center gap-1", children: headerActions })) : null] }), description ? (_jsx("p", { dir: "auto", "data-slot": "entity-card-description", title: description, className: cn("m-0 text-body", sized.description, clampDescription), children: description })) : null, meta, _jsx("div", { "aria-hidden": "true", className: "grow" }), shownStats && shownStats.length > 0 ? (_jsx("div", { "data-slot": "entity-card-stats", className: cn("flex flex-wrap items-center border-t border-hairline text-caption text-body", sized.stats), children: shownStats.map((stat) => (_jsxs("span", { className: "inline-flex items-center gap-1.5", children: [stat.icon ? (_jsx("span", { "aria-hidden": "true", className: "inline-flex [&>svg]:size-4", children: stat.icon })) : null, stat.value, _jsx("span", { className: "sr-only", children: stat.label })] }, stat.label))) })) : null, footer] }));
|
|
354
|
+
/**
|
|
355
|
+
* THE REST STATE of a card that has a panel: the name, and the dot (#196).
|
|
356
|
+
*
|
|
357
|
+
* The founder's draft is one picture, one name and one 10px dot, and it is not
|
|
358
|
+
* a smaller version of the body above — it is the body above with everything
|
|
359
|
+
* that belongs in the panel taken out of it. A listing of these reads as a
|
|
360
|
+
* wall of PICTURES, which is what a listing of somebody's work should be.
|
|
361
|
+
*
|
|
362
|
+
* The name keeps `data-slot="entity-card-title"`, because it is the title.
|
|
363
|
+
* `truncate`, always: this row is one line by construction, and `titleLines`
|
|
364
|
+
* is the body's rule, not this one's.
|
|
365
|
+
*/
|
|
366
|
+
const nameRow = (_jsxs("div", { className: cn("flex w-full min-w-0 items-center", sized.nameRow), children: [_jsx("span", { dir: "auto", "data-slot": "entity-card-title", title: title, className: cn("min-w-0 flex-1 truncate font-medium text-ink", sized.title), children: title }), dot ? (_jsx("span", { "data-slot": "entity-card-state", className: "flex shrink-0 items-center", children: dot })) : null] }));
|
|
225
367
|
/**
|
|
226
368
|
* The preview region, shared by all three sizes.
|
|
227
369
|
*
|
|
228
|
-
* A function rather than a second copy, because the
|
|
229
|
-
* between the stacked sizes and the row
|
|
230
|
-
*
|
|
231
|
-
* the
|
|
232
|
-
* the
|
|
233
|
-
*
|
|
370
|
+
* A function rather than a second copy, because the only thing that differs
|
|
371
|
+
* between the stacked sizes and the row is its shape. Everything that is easy
|
|
372
|
+
* to get wrong — the capture painting over the identity rather than instead of
|
|
373
|
+
* it, the badge not eating a click meant for the link — is written once and is
|
|
374
|
+
* the same picture in every size.
|
|
375
|
+
*
|
|
376
|
+
* The panel is no longer passed in here (#196). It is anchored to the CARD's
|
|
377
|
+
* bottom edge now, because it covers the name row as well as the lower half of
|
|
378
|
+
* the picture, and a child of the preview cannot reach outside it.
|
|
234
379
|
*/
|
|
235
|
-
const previewRegion = (shape, badgeSize
|
|
380
|
+
const previewRegion = (shape, badgeSize) => seed ? (_jsxs("div", { "data-slot": "entity-card-preview", className: cn("relative shrink-0", shape), children: [_jsx(EntityIdentity, { seed: seed, name: title }), previewUrl ? (_jsx("div", { "data-slot": "entity-card-capture", "aria-hidden": "true", className: "absolute inset-0 bg-cover bg-center",
|
|
236
381
|
// A background image, not an <img>: a URL that 404s paints nothing
|
|
237
382
|
// and the identity tile below shows through, with no state and no
|
|
238
383
|
// client boundary. The URL goes out exactly as the caller wrote it —
|
|
239
384
|
// `cssUrlString` escapes only the quote and backslash that would
|
|
240
385
|
// break out of url("..."), and never re-encodes an already-encoded
|
|
241
386
|
// URL (ui#178).
|
|
242
|
-
style: { backgroundImage: `url("${cssUrlString(previewUrl)}")` } })) : null,
|
|
387
|
+
style: { backgroundImage: `url("${cssUrlString(previewUrl)}")` } })) : null, kind ? (_jsx(EntityKindBadge, { kind: kind, size: badgeSize, className: cn("pointer-events-none absolute", badgeSize === "md" ? "top-[7px] right-[7px]" : "top-1 right-1") })) : null] })) : null;
|
|
243
388
|
/**
|
|
244
|
-
*
|
|
389
|
+
* THE PANEL — which IS the open state (#196).
|
|
390
|
+
*
|
|
391
|
+
* The founder's ruling of 2026-09-09: the panel is not a hover affordance over
|
|
392
|
+
* a card, it is the card open. So it carries what the rest state gave up — the
|
|
393
|
+
* line about the thing, who made it, the controls — and the rest state is
|
|
394
|
+
* lighter for it.
|
|
395
|
+
*
|
|
396
|
+
* Four things changed, and each one had a reason on the old side too:
|
|
397
|
+
*
|
|
398
|
+
* **It is white, not a scrim, and the ink surface is gone.** A dark wash over
|
|
399
|
+
* a screenshot made the picture a texture behind grey text, and every entity's
|
|
400
|
+
* panel looked like every other entity's. On white the panel is a piece of
|
|
401
|
+
* paper laid over the lower half of the picture: the type is the page's own
|
|
402
|
+
* ink at the page's own contrast, and the picture above it stays a picture.
|
|
403
|
+
* The scrim treatment is retired for this card — `--cg-scrim-strong` is still
|
|
404
|
+
* a token, and nothing else here reaches for it.
|
|
405
|
+
*
|
|
406
|
+
* **It is anchored to the card's bottom edge, not to the preview's box.** It
|
|
407
|
+
* covers the name row as well as the lower picture, which is what lets the
|
|
408
|
+
* title stay in the same place when the panel arrives instead of jumping up
|
|
409
|
+
* into the thumbnail.
|
|
410
|
+
*
|
|
411
|
+
* **The state is the same dot the rest row shows**, in the same place at the
|
|
412
|
+
* end of the title. A chip here and a dot there would be two vocabularies for
|
|
413
|
+
* one fact. A caller whose state this card cannot read still gets its node
|
|
414
|
+
* rendered — see `statusDot`.
|
|
245
415
|
*
|
|
246
|
-
*
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
*
|
|
416
|
+
* **`headerActions` moved INTO it** (#196, and it supersedes only the
|
|
417
|
+
* PLACEMENT half of #176). The rule #176 exists for is that a control renders
|
|
418
|
+
* once and never twice; that is unchanged. What changed is which single place:
|
|
419
|
+
* the rest state no longer has a header row to put a save toggle in, and the
|
|
420
|
+
* panel's creator line has a right edge that is empty. They sit there, gated
|
|
421
|
+
* exactly like Dashboard is — invisible at rest means inert at rest (#171).
|
|
250
422
|
*/
|
|
251
|
-
const revealPanel = revealed ? (_jsxs("div", { "data-slot": "entity-card-reveal", "data-
|
|
252
|
-
//
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
//
|
|
423
|
+
const revealPanel = revealed ? (_jsxs("div", { "data-slot": "entity-card-reveal", "data-theme": "default", className: cn(
|
|
424
|
+
// inset-x-px / bottom-px, not inset-x-0: the card carries a 1px pad so
|
|
425
|
+
// its hairline is never painted over, and the panel's radius is the
|
|
426
|
+
// card's less that pixel. Same arithmetic as the preview above it, which
|
|
427
|
+
// is what keeps the two from disagreeing about a corner.
|
|
428
|
+
// bg-(--cg-surface-card), not `bg-card`: the shadcn bridge declares
|
|
429
|
+
// `--card` per surface too, and a bridged name is NOT re-declared by
|
|
430
|
+
// data-theme="default" — so `bg-card` here stays transparent inside a
|
|
431
|
+
// purple panel however the CloudGrid token resolves. Reading the
|
|
432
|
+
// --cg- token directly is what makes the attribute above work.
|
|
433
|
+
"absolute inset-x-px bottom-px flex flex-col justify-end rounded-[calc(var(--cg-radius-md)-1px)] bg-(--cg-surface-card) text-ink",
|
|
434
|
+
// The only thing compact changes about this panel is its measurements.
|
|
435
|
+
// Same ground, same two foregrounds — a panel that got smaller AND
|
|
436
|
+
// paler would be trading contrast for space, which is the one thing the
|
|
256
437
|
// guardrail exists to stop.
|
|
257
438
|
sized.reveal,
|
|
258
439
|
// opacity-0, not hidden: the panel is in the tab order at all
|
|
@@ -261,13 +442,24 @@ function EntityCard({ title, slug, description, size = "default", titleLines = 2
|
|
|
261
442
|
"opacity-0 transition-opacity duration-[var(--cg-duration)] ease-out", "group-hover/card:opacity-100 group-focus-within/card:opacity-100",
|
|
262
443
|
// Reduced motion removes the FADE, not the panel. Someone who
|
|
263
444
|
// has asked for less movement still needs the actions.
|
|
264
|
-
"motion-reduce:transition-none"), children: [_jsx("span", { "data-slot": "entity-card-reveal-title", dir: "auto", className: cn("truncate font-medium", sized.revealTitle), children: title }),
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
// text
|
|
270
|
-
|
|
445
|
+
"motion-reduce:transition-none"), children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { "data-slot": "entity-card-reveal-title", dir: "auto", className: cn("min-w-0 flex-1 truncate font-medium text-ink", sized.revealTitle), children: title }), dot ? (_jsx("span", { "data-slot": "entity-card-reveal-state", className: "flex shrink-0 items-center", children: dot })) : (
|
|
446
|
+
// The fallback, and the only place a caller's own chip still lands on
|
|
447
|
+
// a card that reveals: better a chip in the panel than a state the
|
|
448
|
+
// card silently dropped.
|
|
449
|
+
status ?? null), _jsx("span", { className: "flex shrink-0 items-center gap-1", children: actionPair })] }), description ? (_jsx("p", { "data-slot": "entity-card-reveal-description", dir: "auto",
|
|
450
|
+
// text-body, the page's secondary rung: 7:1 on this white panel. The
|
|
451
|
+
// draft's own #828c98 measures 3.41:1 there, under the 4.5:1 AA floor
|
|
452
|
+
// for normal text, so the value is deliberately NOT adopted — see the
|
|
453
|
+
// note in the PR. The muted rung is 3.69:1 and is out for the same
|
|
454
|
+
// reason.
|
|
455
|
+
className: cn("m-0 text-caption text-body", size === "compact" ? "truncate" : "line-clamp-2"), children: description })) : null, !openLive && openDisabledReason ? (_jsx("p", { "data-slot": "entity-card-reveal-reason", dir: "auto", "aria-hidden": "true", className: "m-0 truncate text-caption text-body", children: openDisabledReason })) : null, creator || headerActions ? (_jsxs("div", { className: "flex min-w-0 items-center justify-between gap-2", children: [creator ? (_jsxs("span", { "data-slot": "entity-card-reveal-creator", className: "flex min-w-0 items-center gap-1 text-caption text-ink", children: [creator.avatar ? (_jsx("span", { "aria-hidden": "true", className: "inline-flex size-6 shrink-0 overflow-hidden rounded-pill [&>*]:size-full", children: creator.avatar })) : null, _jsx("span", { className: "truncate", children: creator.name })] })) : (_jsx("span", {})), headerActions ? (_jsx("div", { "data-slot": "entity-card-actions", className: cn(
|
|
456
|
+
// relative z-10 to sit above Open's stretched layer, so a tap on
|
|
457
|
+
// the save toggle reaches the toggle.
|
|
458
|
+
"relative z-10 flex shrink-0 items-center gap-1",
|
|
459
|
+
// And dead while the panel cannot be seen, which is Dashboard's
|
|
460
|
+
// rule and #171's: an invisible control that behaves differently
|
|
461
|
+
// from the pixels around it is a trap a reader cannot see.
|
|
462
|
+
"pointer-events-none group-hover/card:pointer-events-auto group-focus-within/card:pointer-events-auto"), children: headerActions })) : null] })) : null] })) : null;
|
|
271
463
|
/**
|
|
272
464
|
* THE ROW. The same card, running across instead of down.
|
|
273
465
|
*
|
|
@@ -304,38 +496,54 @@ function EntityCard({ title, slug, description, size = "default", titleLines = 2
|
|
|
304
496
|
* `stats` and `footer` are not rendered here — see the size note at the top.
|
|
305
497
|
*/
|
|
306
498
|
if (size === "row") {
|
|
307
|
-
return (_jsxs(Card, { "data-slot": "entity-card", "data-entity-size": "row", className: cn(
|
|
499
|
+
return (_jsxs(Card, { "data-slot": "entity-card", "data-entity-size": "row", className: cn(
|
|
500
|
+
// The same chrome the media card takes (#196): the hairline, the 12px
|
|
501
|
+
// corner and Elevation 1, in place of Card's own ring. A list and a
|
|
502
|
+
// grid of the same thing must not be two different objects.
|
|
503
|
+
"relative flex-row items-center gap-3 rounded-md border border-hairline p-(--card-spacing) shadow-card ring-0", sized.cardSpacing, className), ...props, children: [previewRegion(
|
|
308
504
|
// A left thumbnail, so it rounds on all four corners rather than
|
|
309
|
-
// sharing the card's top edge
|
|
310
|
-
//
|
|
311
|
-
|
|
505
|
+
// sharing the card's top edge. Its own hairline is gone with the
|
|
506
|
+
// restyle: the card has one now, and two lines 3px apart read as a
|
|
507
|
+
// mistake.
|
|
508
|
+
cn("aspect-[159/92] overflow-hidden rounded-sm", ROW_THUMBNAIL), "sm"), _jsx("div", { className: cn("flex w-0 min-w-0 flex-1 flex-col", sized.body), children: children ?? (_jsxs(_Fragment, { children: [_jsxs("span", { dir: "auto", "data-slot": "entity-card-title", title: title, className: cn("block truncate font-medium text-ink", sized.title), children: [kind && !seed ? (_jsx(EntityKindBadge, { kind: kind, size: "sm", className: "mr-1.5 align-[-0.2em]" })) : null, title] }), slug ? (_jsx("span", { dir: "auto", "data-slot": "entity-card-slug", title: slug, className: "block truncate font-mono text-caption text-faint", children: slug })) : null, description ? (_jsx("p", { dir: "auto", "data-slot": "entity-card-description", title: description, className: cn("m-0 truncate text-body", sized.description), children: description })) : null, creator || meta ? (_jsxs("div", { className: "flex min-w-0 items-center gap-2 text-caption text-body", children: [creator ? (_jsxs("span", { "data-slot": "entity-card-creator", className: "flex min-w-0 items-center gap-1.5", children: [creator.avatar ? (_jsx("span", { "aria-hidden": "true", className: "inline-flex size-4 shrink-0 overflow-hidden rounded-pill [&>*]:size-full", children: creator.avatar })) : null, _jsx("span", { className: "truncate", children: creator.name })] })) : null, meta] })) : null] })) }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [status ? _jsx("span", { className: "shrink-0", children: status }) : null, headerActions ? (_jsx("div", { "data-slot": "entity-card-actions", className: "relative z-10 flex shrink-0 items-center gap-1", children: headerActions })) : null, _jsx("div", { "data-slot": "entity-card-row-actions", className: cn("flex shrink-0 items-center gap-2",
|
|
312
509
|
// The row's whole hover behaviour, and all of it: the
|
|
313
510
|
// information is already on screen, so what arrives is the two
|
|
314
511
|
// actions and nothing else.
|
|
315
512
|
"opacity-0 transition-opacity duration-[var(--cg-duration)] ease-out", "group-hover/card:opacity-100 group-focus-within/card:opacity-100",
|
|
316
513
|
// Reduced motion removes the FADE, not the actions.
|
|
317
|
-
"motion-reduce:transition-none"), children: actionPair })
|
|
514
|
+
"motion-reduce:transition-none"), children: actionPair })] })] }));
|
|
318
515
|
}
|
|
319
|
-
const card = (_jsxs(Card, { "data-slot": "entity-card", "data-entity-size": size,
|
|
320
|
-
//
|
|
321
|
-
//
|
|
322
|
-
// inside
|
|
323
|
-
//
|
|
324
|
-
//
|
|
325
|
-
//
|
|
326
|
-
//
|
|
327
|
-
//
|
|
328
|
-
// at
|
|
516
|
+
const card = (_jsxs(Card, { "data-slot": "entity-card", "data-entity-size": size, className: cn(
|
|
517
|
+
// THE CHROME, to the founder's 2026-09-09 draft (#196): a white card at
|
|
518
|
+
// a 12px corner, a 1px hairline, Elevation 1, and a 1px pad so the
|
|
519
|
+
// picture inside sits at 11px and never paints over the line. `ring-0`
|
|
520
|
+
// because `Card` contains itself with a ring by default and a ring plus
|
|
521
|
+
// a border is two edges.
|
|
522
|
+
//
|
|
523
|
+
// The shadow is the one departure from "containment is a hairline, not
|
|
524
|
+
// elevation", and the page ground is why: on white a card had nothing
|
|
525
|
+
// but its own line, and at 4% over 16px this is a lift you read rather
|
|
526
|
+
// than see. There is still no hover lift, no scale and no colour change
|
|
527
|
+
// on the card itself.
|
|
528
|
+
//
|
|
529
|
+
// p-px and the gap from the size table: `Card` pads itself for a
|
|
530
|
+
// header/content/footer stack, and this card's preview is full bleed.
|
|
531
|
+
// The padding moves inside, onto the body or the name row, and the 12px
|
|
532
|
+
// between the picture and the name is the card's own gap — the draft's.
|
|
533
|
+
//
|
|
534
|
+
// relative, and it is load-bearing now: the panel is anchored to THIS
|
|
535
|
+
// element rather than to the preview (#196), and Open's stretched
|
|
536
|
+
// ::after sizes to the panel inside it.
|
|
537
|
+
"relative rounded-md border border-hairline p-px shadow-card ring-0", sized.body,
|
|
329
538
|
// `h-full` only inside the link wrapper, where the card has to fill the
|
|
330
539
|
// anchor. As a direct grid item it must NOT be h-full: a grid area has a
|
|
331
|
-
// definite height, so height:100% pins the card to the tallest card in
|
|
332
|
-
// row even when the grid was told `items-start`.
|
|
333
|
-
|
|
334
|
-
//
|
|
335
|
-
//
|
|
336
|
-
//
|
|
337
|
-
|
|
338
|
-
"overflow-hidden rounded-t-xl border-b border-hairline", "md", revealPanel), _jsx("div", { className: cn("flex min-h-0 flex-1 flex-col p-(--card-spacing)", sized.body), children: body })] }));
|
|
540
|
+
// definite height, so height:100% pins the card to the tallest card in
|
|
541
|
+
// the row even when the grid was told `items-start`.
|
|
542
|
+
href && !revealed && "h-full", sized.cardSpacing, className), ...props, children: [previewRegion(
|
|
543
|
+
// 159/92, the draft's ratio, and an 11px corner: the card's 12 less the
|
|
544
|
+
// 1px pad around it. Written as the arithmetic rather than as a second
|
|
545
|
+
// radius token, so the two can never drift apart.
|
|
546
|
+
"aspect-[159/92] overflow-hidden rounded-[calc(var(--cg-radius-md)-1px)]", "md"), children ? (_jsx("div", { className: cn("flex min-h-0 flex-1 flex-col p-(--card-spacing)", sized.body), children: children })) : minimal ? (nameRow) : (_jsx("div", { className: cn("flex min-h-0 flex-1 flex-col p-(--card-spacing)", sized.body), children: fullBody })), revealPanel] }));
|
|
339
547
|
// A revealed card is never wrapped: the panel's Open action is already an
|
|
340
548
|
// anchor, and an anchor inside an anchor is invalid HTML that browsers repair
|
|
341
549
|
// by closing the outer one.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-card.js","sourceRoot":"","sources":["../../src/blocks/entity-card.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entity-card.js","sourceRoot":"","sources":["../../src/blocks/entity-card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1E,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AA+UvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAU,CAAA;AAIzE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoE;IAC/F,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,mBAAmB;IAChC,GAAG,EAAE,WAAW;CACjB,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;CACX,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA+B;IAC1D,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,qBAAqB;IAClC,GAAG,EAAE,aAAa;CACnB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAU,CAAA;AAI5E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,GAeZ;IACF,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,cAAc;QAC3B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,qCAAqC;QAC7C,WAAW,EAAE,cAAc;KAC5B;IACD,OAAO,EAAE;QACP,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,cAAc;QAC3B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,mBAAmB;QAC5B,MAAM,EAAE,sBAAsB;QAC9B,WAAW,EAAE,cAAc;KAC5B;IACD,GAAG,EAAE;QACH,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,cAAc;QAC3B,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;KAChB;CACF,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,aAAa,GAAG,MAAM,CAAA;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,MAAM,CAAA;QAC7B,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QAC3B,yEAAyE;QACzE,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAS,eAAe,CAAC,EACvB,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,SAAS,EACT,GAAG,KAAK,EAIT;IACC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEnC,OAAO,CACL,6BACY,kBAAkB,eACjB,IAAI,EACf,SAAS,EAAE,EAAE,CACX,yFAAyF,EACzF,gBAAgB,CAAC,IAAI,CAAC,EACtB,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EACnC,SAAS,CACV,KACG,KAAK,aAKT,KAAC,IAAI,IAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAI,EAKxD,eAAM,SAAS,EAAC,SAAS,YAAE,iBAAiB,CAAC,IAAI,CAAC,GAAQ,IACrD,CACR,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CAAC,MAAuB;IAC5C,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAA+D,CAAA;IACpF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,KAAC,cAAc,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CAAA;AACrE,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,IAAI,EACJ,WAAW,EACX,IAAI,GAAG,SAAS,EAChB,UAAU,GAAG,CAAC,EACd,gBAAgB,GAAG,CAAC,EACpB,MAAM,EACN,SAAS,EACT,aAAa,EACb,KAAK,EACL,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,MAAM,GAAG,KAAK,EACd,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EA4IT;IACC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAE9B,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,EAAE;IACF,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,CAAA;IAE1D,yEAAyE;IACzE,8EAA8E;IAC9E,iEAAiE;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9B,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,sCAAsC;IACtC,MAAM,eAAe,GAAG,aAAa,IAAI,YAAY,CAAA;IAErD,4EAA4E;IAC5E,+EAA+E;IAC/E,wEAAwE;IACxE,6EAA6E;IAC7E,sDAAsD;IACtD,MAAM,UAAU,GAAG,KAAK,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAE1E,8EAA8E;IAC9E,wDAAwD;IACxD,MAAM,gBAAgB,GACpB,IAAI,KAAK,SAAS,IAAI,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAA;IAE5E,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,GAAG,GAAG,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAE9C,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,yDAAyD;IACzD,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,+EAA+E;IAC/E,sCAAsC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAA;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,UAAU,GAAG,CACjB,8BACG,QAAQ,CAAC,CAAC,CAAC,CACV,aACE,IAAI,EAAE,IAAI,eACA,kBAAkB;gBAC5B,oEAAoE;gBACpE,qEAAqE;gBACrE,kEAAkE;gBAClE,oEAAoE;gBACpE,iDAAiD;gBACjD,SAAS,EAAC,oNAAoN,aAE9N,KAAC,YAAY,IAAC,SAAS,EAAC,QAAQ,GAAG,EACnC,eAAM,SAAS,EAAC,SAAS,qBAAY,IACnC,CACL,CAAC,CAAC,CAAC,CACF,0BAUY,kBAAkB,mBACd,MAAM,EACpB,IAAI,EAAC,MAAM,mBACG,MAAM;gBACpB,mEAAmE;gBACnE,oEAAoE;gBACpE,qEAAqE;gBACrE,sEAAsE;gBACtE,+CAA+C;gBAC/C,EAAE;gBACF,kEAAkE;gBAClE,qEAAqE;gBACrE,wCAAwC;gBACxC,SAAS,EAAC,wIAAwI,aAElJ,KAAC,YAAY,IAAC,SAAS,EAAC,QAAQ,GAAG,EACnC,eAAM,SAAS,EAAC,SAAS,qBAAY,EAMpC,kBAAkB,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,SAAS,YAAE,kBAAkB,GAAQ,CAAC,CAAC,CAAC,IAAI,IAChF,CACL,EACA,eAAe,CAAC,CAAC,CAAC,CACjB,aACE,IAAI,EAAE,eAAe,eACX,uBAAuB,oBAIjB,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAC7C,SAAS,EAAE,EAAE,CACX,oKAAoK,EACpK,QAAQ;oBACN,CAAC,CAAC,kEAAkE;wBAClE,sBAAsB;wBACtB,+GAA+G;oBACjH,CAAC,CAAC,6DAA6D;wBAC7D,8DAA8D;wBAC9D,iDAAiD;wBACjD,iDAAiD,CACtD,aAKD,KAAC,mBAAmB,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC1C,eAAM,SAAS,EAAC,SAAS,0BAAiB,IACxC,CACL,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAA;IAED;;;;;;OAMG;IACH,MAAM,QAAQ,GAAG,CACb,8BACE,eAAK,SAAS,EAAC,wCAAwC,aACrD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,gBACE,GAAG,EAAC,MAAM,eACA,mBAAmB,EAC7B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,KAAK,CAAC,KAAK,EACX,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAC/C,aAMA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACf,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,uBAAuB,GAAG,CAC5E,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,IACD,EACN,IAAI,CAAC,CAAC,CAAC,CACN,eACE,GAAG,EAAC,MAAM,eACA,kBAAkB,EAC5B,KAAK,EAAE,IAAI,EACX,SAAS,EAAC,yDAAyD,YAElE,IAAI,GACA,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,MAAM,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,UAAU,YAAE,MAAM,GAAO,CAAC,CAAC,CAAC,IAAI,EAKxD,aAAa,CAAC,CAAC,CAAC,CACf,2BACY,qBAAqB;wBAC/B,oEAAoE;wBACpE,iEAAiE;wBACjE,6DAA6D;wBAC7D,SAAS,EAAC,wCAAwC,YAEjD,aAAa,GACV,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EAEL,WAAW,CAAC,CAAC,CAAC,CACb,YACE,GAAG,EAAC,MAAM,eACA,yBAAyB,EACnC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC,YAElE,WAAW,GACV,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,IAAI,EAKL,6BAAiB,MAAM,EAAC,SAAS,EAAC,MAAM,GAAG,EAE1C,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACrC,2BACY,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,KAAK,CAAC,KAAK,CACZ,YAEA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,gBAAuB,SAAS,EAAC,kCAAkC,aAChE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,8BAAkB,MAAM,EAAC,SAAS,EAAC,4BAA4B,YAC5D,IAAI,CAAC,IAAI,GACL,CACR,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,KAAK,EAKX,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,CAAC,KAAK,GAAQ,KAXpC,IAAI,CAAC,KAAK,CAYd,CACR,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,MAAM,IACN,CACJ,CAAA;IAEH;;;;;;;;;;;OAWG;IACH,MAAM,OAAO,GAAG,CACd,eAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,KAAK,CAAC,OAAO,CAAC,aACnE,eACE,GAAG,EAAC,MAAM,eACA,mBAAmB,EAC7B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,KAAK,CAAC,KAAK,CAAC,YAEzE,KAAK,GACD,EAKN,GAAG,CAAC,CAAC,CAAC,CACL,4BAAgB,mBAAmB,EAAC,SAAS,EAAC,4BAA4B,YACvE,GAAG,GACC,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,SAAsB,EAAE,EAAE,CAC9D,IAAI,CAAC,CAAC,CAAC,CACL,4BAAe,qBAAqB,EAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,aAC5E,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAI,EAC1C,UAAU,CAAC,CAAC,CAAC,CACZ,2BACY,qBAAqB,iBACnB,MAAM,EAClB,SAAS,EAAC,qCAAqC;gBAC/C,mEAAmE;gBACnE,kEAAkE;gBAClE,qEAAqE;gBACrE,iEAAiE;gBACjE,mEAAmE;gBACnE,gBAAgB;gBAChB,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,GAChE,CACH,CAAC,CAAC,CAAC,IAAI,EASP,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,EAAE,CACX,8BAA8B,EAC9B,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAC/D,GACD,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;IAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAC7B,4BACY,oBAAoB,gBAanB,SAAS,EACpB,SAAS,EAAE,EAAE;QACX,uEAAuE;QACvE,oEAAoE;QACpE,yEAAyE;QACzE,yDAAyD;QACzD,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,iEAAiE;QACjE,+DAA+D;QAC/D,iIAAiI;QACjI,uEAAuE;QACvE,mEAAmE;QACnE,wEAAwE;QACxE,4BAA4B;QAC5B,KAAK,CAAC,MAAM;QACZ,8DAA8D;QAC9D,8DAA8D;QAC9D,kDAAkD;QAClD,qEAAqE,EACrE,kEAAkE;QAClE,8DAA8D;QAC9D,uDAAuD;QACvD,+BAA+B,CAChC,aAKD,eAAK,SAAS,EAAC,iCAAiC,aAC9C,4BACY,0BAA0B,EACpC,GAAG,EAAC,MAAM,EACV,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,KAAK,CAAC,WAAW,CAAC,YAE/E,KAAK,GACD,EACN,GAAG,CAAC,CAAC,CAAC,CACL,4BAAgB,0BAA0B,EAAC,SAAS,EAAC,4BAA4B,YAC9E,GAAG,GACC,CACR,CAAC,CAAC,CAAC;oBACF,sEAAsE;oBACtE,mEAAmE;oBACnE,yBAAyB;oBACzB,MAAM,IAAI,IAAI,CACf,EACD,eAAM,SAAS,EAAC,kCAAkC,YAAE,UAAU,GAAQ,IAClE,EAEL,WAAW,CAAC,CAAC,CAAC,CACb,yBACY,gCAAgC,EAC1C,GAAG,EAAC,MAAM;gBACV,qEAAqE;gBACrE,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE;gBACnE,UAAU;gBACV,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,YAE5F,WAAW,GACV,CACL,CAAC,CAAC,CAAC,IAAI,EAWP,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC,CAAC,CACjC,yBACY,2BAA2B,EACrC,GAAG,EAAC,MAAM,iBACE,MAAM,EAClB,SAAS,EAAC,qCAAqC,YAE9C,kBAAkB,GACjB,CACL,CAAC,CAAC,CAAC,IAAI,EAGP,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAC1B,eAAK,SAAS,EAAC,iDAAiD,aAC7D,OAAO,CAAC,CAAC,CAAC,CACT,6BACY,4BAA4B,EACtC,SAAS,EAAC,uDAAuD,aAEhE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAChB,8BACc,MAAM,EAClB,SAAS,EAAC,0EAA0E,YAEnF,OAAO,CAAC,MAAM,GACV,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAC,UAAU,YAAE,OAAO,CAAC,IAAI,GAAQ,IAC3C,CACR,CAAC,CAAC,CAAC,CACF,gBAAQ,CACT,EACA,aAAa,CAAC,CAAC,CAAC,CACf,2BACY,qBAAqB,EAC/B,SAAS,EAAE,EAAE;wBACX,iEAAiE;wBACjE,sCAAsC;wBACtC,gDAAgD;wBAChD,gEAAgE;wBAChE,iEAAiE;wBACjE,2DAA2D;wBAC3D,sGAAsG,CACvG,YAEA,aAAa,GACV,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;IAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CACL,MAAC,IAAI,iBACO,aAAa,sBACN,KAAK,EACtB,SAAS,EAAE,EAAE;YACX,sEAAsE;YACtE,oEAAoE;YACpE,4DAA4D;YAC5D,8GAA8G,EAC9G,KAAK,CAAC,WAAW,EACjB,SAAS,CACV,KACG,KAAK,aAER,aAAa;gBACZ,iEAAiE;gBACjE,iEAAiE;gBACjE,mEAAmE;gBACnE,WAAW;gBACX,EAAE,CAAC,4CAA4C,EAAE,aAAa,CAAC,EAC/D,IAAI,CACL,EAwBD,cAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,KAAK,CAAC,IAAI,CAAC,YAC/D,QAAQ,IAAI,CACX,8BACE,gBACE,GAAG,EAAC,MAAM,eACA,mBAAmB,EAC7B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,KAAK,CAAC,KAAK,CAAC,aAIhE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACf,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,uBAAuB,GAAG,CAC5E,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,IACD,EAEN,IAAI,CAAC,CAAC,CAAC,CACN,eACE,GAAG,EAAC,MAAM,eACA,kBAAkB,EAC5B,KAAK,EAAE,IAAI,EACX,SAAS,EAAC,kDAAkD,YAE3D,IAAI,GACA,CACR,CAAC,CAAC,CAAC,IAAI,EAEP,WAAW,CAAC,CAAC,CAAC,CACb,YACE,GAAG,EAAC,MAAM,eACA,yBAAyB,EACnC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,KAAK,CAAC,WAAW,CAAC,YAEzD,WAAW,GACV,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CACjB,eAAK,SAAS,EAAC,wDAAwD,aACpE,OAAO,CAAC,CAAC,CAAC,CACT,6BACY,qBAAqB,EAC/B,SAAS,EAAC,mCAAmC,aAE5C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAChB,8BACc,MAAM,EAClB,SAAS,EAAC,0EAA0E,YAEnF,OAAO,CAAC,MAAM,GACV,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAC,UAAU,YAAE,OAAO,CAAC,IAAI,GAAQ,IAC3C,CACR,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,IACD,CACP,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,GACG,EAEN,eAAK,SAAS,EAAC,kCAAkC,aAC9C,MAAM,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,UAAU,YAAE,MAAM,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC1D,aAAa,CAAC,CAAC,CAAC,CACf,2BACY,qBAAqB,EAC/B,SAAS,EAAC,gDAAgD,YAEzD,aAAa,GACV,CACP,CAAC,CAAC,CAAC,IAAI,EAQR,2BACY,yBAAyB,EACnC,SAAS,EAAE,EAAE,CACX,kCAAkC;4BAClC,sDAAsD;4BACtD,+DAA+D;4BAC/D,4BAA4B;4BAC5B,qEAAqE,EACrE,kEAAkE;4BAClE,oDAAoD;4BACpD,+BAA+B,CAChC,YAEA,UAAU,GACP,IACF,IACD,CACR,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,CACX,MAAC,IAAI,iBACO,aAAa,sBAOL,IAAI,EACtB,SAAS,EAAE,EAAE;QACX,wEAAwE;QACxE,mEAAmE;QACnE,uEAAuE;QACvE,wEAAwE;QACxE,yBAAyB;QACzB,EAAE;QACF,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,wEAAwE;QACxE,sBAAsB;QACtB,EAAE;QACF,iEAAiE;QACjE,sEAAsE;QACtE,wEAAwE;QACxE,wEAAwE;QACxE,EAAE;QACF,sEAAsE;QACtE,kEAAkE;QAClE,wCAAwC;QACxC,oEAAoE,EACpE,KAAK,CAAC,IAAI;QACV,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,qDAAqD;QACrD,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAC7B,KAAK,CAAC,WAAW,EACjB,SAAS,CACV,KACG,KAAK,aAER,aAAa;YACZ,wEAAwE;YACxE,uEAAuE;YACvE,kDAAkD;YAClD,yEAAyE,EACzE,IAAI,CACL,EAIA,QAAQ,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,KAAK,CAAC,IAAI,CAAC,YAC9E,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,OAAO,CACR,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,KAAK,CAAC,IAAI,CAAC,YAC9E,QAAQ,GACL,CACP,EAEA,WAAW,IACP,CACR,CAAA;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,4BAA4B;IAC5B,IAAI,CAAC,IAAI,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAA;IAElC,OAAO,CACL,YACE,IAAI,EAAE,IAAI,gBACE,SAAS,IAAI,KAAK;QAC9B,wEAAwE;QACxE,yEAAyE;QACzE,gEAAgE;QAChE,SAAS,EAAC,6GAA6G,YAEtH,IAAI,GACH,CACL,CAAA;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAA"}
|