@cloudgrid-io/ui 0.10.0 → 0.12.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/onboarding-question.d.ts +6 -0
- package/dist/blocks/onboarding-question.d.ts.map +1 -1
- package/dist/blocks/onboarding-question.js +5 -5
- package/dist/blocks/onboarding-question.js.map +1 -1
- package/dist/blocks/option-card.d.ts +11 -1
- package/dist/blocks/option-card.d.ts.map +1 -1
- package/dist/blocks/option-card.js +2 -2
- package/dist/blocks/option-card.js.map +1 -1
- package/dist/blocks/sign-in-options.d.ts +140 -0
- package/dist/blocks/sign-in-options.d.ts.map +1 -0
- package/dist/blocks/sign-in-options.js +57 -0
- package/dist/blocks/sign-in-options.js.map +1 -0
- package/dist/blocks/tool-setup.d.ts.map +1 -1
- package/dist/blocks/tool-setup.js +10 -1
- package/dist/blocks/tool-setup.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -109,6 +109,12 @@ type OnboardingQuestionBaseProps = Omit<React.ComponentProps<"section">, "ref" |
|
|
|
109
109
|
* `columns` is ignored for chips, which size to their text and wrap.
|
|
110
110
|
*/
|
|
111
111
|
variant?: "card" | "chip";
|
|
112
|
+
/**
|
|
113
|
+
* Forwarded to `OptionCard`. `ink` for a question whose options are VENDOR
|
|
114
|
+
* MARKS — eight logos in brand purple read as eight instances of CloudGrid
|
|
115
|
+
* rather than eight different products.
|
|
116
|
+
*/
|
|
117
|
+
glyphTone?: "accent" | "ink";
|
|
112
118
|
/**
|
|
113
119
|
* `stacked` puts the question above its options. `side` puts it in a column
|
|
114
120
|
* beside them, which is what lets two questions share one screen without two
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding-question.d.ts","sourceRoot":"","sources":["../../src/blocks/onboarding-question.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,OAAO;;;;;CAKH,CAAA;
|
|
1
|
+
{"version":3,"file":"onboarding-question.d.ts","sourceRoot":"","sources":["../../src/blocks/onboarding-question.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,OAAO;;;;;CAKH,CAAA;AAmJV,8EAA8E;AAC9E,KAAK,2BAA2B,GAAG,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAC/B,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAC9C,GAAG;IACF,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,OAAO,OAAO,CAAA;IAC9B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACb,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9D;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,uBAAuB,GAAG,2BAA2B,GACxD,CACI;IACE,uEAAuE;IACvE,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC/C,GACD;IACE,0EAA0E;IAC1E,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC1C,CACJ,CAAA;AAEH,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAgLzD;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -69,7 +69,7 @@ const OPTION_CLASS = cn("group relative cursor-pointer pe-11 text-start transiti
|
|
|
69
69
|
const CHIP_CLASS = cn("group relative inline-flex cursor-pointer items-center rounded-pill px-4 py-2 text-start", "border border-hairline bg-card text-body-sm text-ink transition-colors select-none", "hover:border-line", "focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring focus-visible:outline-none", "data-checked:border-transparent data-checked:bg-primary data-checked:text-on-primary", "data-disabled:pointer-events-none data-disabled:opacity-50");
|
|
70
70
|
/** The indicator's frame. Round for one-of, square for many-of: shape says which. */
|
|
71
71
|
const INDICATOR_CLASS = cn("pointer-events-none absolute end-4 top-4 flex size-4 shrink-0 items-center justify-center", "border border-line text-ink transition-colors group-data-checked:border-line-strong");
|
|
72
|
-
function OnboardingQuestionOption({ option, mode, variant, name, }) {
|
|
72
|
+
function OnboardingQuestionOption({ option, mode, variant, glyphTone, name, }) {
|
|
73
73
|
// A chip is the render element itself, not an OptionCard: there is no title,
|
|
74
74
|
// body or glyph to place, and routing a bare word through a card component
|
|
75
75
|
// would mean overriding away every part of it.
|
|
@@ -79,7 +79,7 @@ function OnboardingQuestionOption({ option, mode, variant, name, }) {
|
|
|
79
79
|
// literally an OptionCard with radio or checkbox semantics rather than a
|
|
80
80
|
// lookalike. className is concatenated, and OptionCard runs the result through
|
|
81
81
|
// cn() last, so these utilities win the conflicts they are meant to win.
|
|
82
|
-
const element = chip ? (_jsx("span", { children: option.label })) : (_jsx(OptionCard, { title: option.label, body: option.description, glyph: option.icon }));
|
|
82
|
+
const element = chip ? (_jsx("span", { children: option.label })) : (_jsx(OptionCard, { title: option.label, body: option.description, glyph: option.icon, glyphTone: glyphTone }));
|
|
83
83
|
const optionClass = chip ? CHIP_CLASS : OPTION_CLASS;
|
|
84
84
|
if (mode === "multi") {
|
|
85
85
|
return (_jsx(Checkbox.Root, { value: option.value, name: name, disabled: option.disabled, "data-slot": "onboarding-question-option", "data-variant": variant, className: optionClass, render: element, children: chip ? null : (_jsx("span", { "aria-hidden": "true", "data-slot": "onboarding-question-indicator", className: cn(INDICATOR_CLASS, "rounded-[4px]"), children: _jsx(Checkbox.Indicator, { className: "flex [&>svg]:size-3", children: _jsx(CheckIcon, { strokeWidth: 3 }) }) })) }));
|
|
@@ -93,7 +93,7 @@ function OnboardingQuestion(props) {
|
|
|
93
93
|
// first would collapse both into one union and hand the console a value it has
|
|
94
94
|
// to unpick at every call site.
|
|
95
95
|
const isMulti = props.mode === "multi";
|
|
96
|
-
const { title, sub, eyebrow, options, variant = "card", layout = "stacked", columns = 2, level = 1, headingSize = "md", continueLabel = "Continue", onContinue, canContinue, footer, name, className,
|
|
96
|
+
const { title, sub, eyebrow, options, variant = "card", glyphTone = "accent", layout = "stacked", columns = 2, level = 1, headingSize = "md", continueLabel = "Continue", onContinue, canContinue, footer, name, className,
|
|
97
97
|
// Held back so they cannot reach the DOM as attributes.
|
|
98
98
|
mode: _mode, value: _value, defaultValue: _defaultValue, onValueChange: _onValueChange, ...rest } = props;
|
|
99
99
|
// A mirror, kept for ONE reason: to know whether the button should be live.
|
|
@@ -134,11 +134,11 @@ function OnboardingQuestion(props) {
|
|
|
134
134
|
return (_jsxs("section", { "data-slot": "onboarding-question", "data-layout": layout, className: cn("flex flex-col gap-8", className), ...rest, children: [_jsxs("div", { "data-slot": "onboarding-question-band", className: band, children: [layout === "side" ? (_jsxs("div", { id: headingId, "data-slot": "onboarding-question-label", children: [React.createElement(level === 1 ? "h1" : "h2", { className: "m-0 text-body-sm font-medium text-ink" }, title), sub ? _jsx("p", { className: "mt-1 text-caption text-faint", children: sub }) : null] })) : (_jsx(PageHeading, { id: headingId, eyebrow: eyebrow, title: title, sub: sub, size: headingSize, level: level })), isMulti ? (_jsx(CheckboxGroup, { "aria-labelledby": headingId, "data-slot": "onboarding-question-options", className: grid, defaultValue: props.defaultValue ?? undefined, value: props.value, onValueChange: (next) => {
|
|
135
135
|
setPicked(next);
|
|
136
136
|
props.onValueChange?.(next);
|
|
137
|
-
}, children: options.map((option) => (_jsx(OnboardingQuestionOption, { option: option, mode: "multi", variant: variant, name: name }, option.value))) })) : (_jsx(RadioGroup, { "aria-labelledby": headingId, "data-slot": "onboarding-question-options", className: grid, name: name, defaultValue: props.defaultValue ?? undefined, value: props.value === null ? "" : props.value, onValueChange: (next) => {
|
|
137
|
+
}, children: options.map((option) => (_jsx(OnboardingQuestionOption, { option: option, mode: "multi", variant: variant, glyphTone: glyphTone, name: name }, option.value))) })) : (_jsx(RadioGroup, { "aria-labelledby": headingId, "data-slot": "onboarding-question-options", className: grid, name: name, defaultValue: props.defaultValue ?? undefined, value: props.value === null ? "" : props.value, onValueChange: (next) => {
|
|
138
138
|
const answer = typeof next === "string" && next !== "" ? next : null;
|
|
139
139
|
setPicked(answer == null ? [] : [answer]);
|
|
140
140
|
props.onValueChange?.(answer);
|
|
141
|
-
}, children: options.map((option) => (_jsx(OnboardingQuestionOption, { option: option, mode: "single", variant: variant }, option.value))) }))] }), continueLabel !== null || footer ? (_jsxs("div", { "data-slot": "onboarding-question-actions", className: "flex flex-col items-start gap-4", children: [continueLabel !== null ? (_jsx(Button, { type: "button", size: "lg", "data-slot": "onboarding-question-continue", onClick: onContinue, disabled: !(canContinue ?? answered), children: continueLabel })) : null, footer] })) : null] }));
|
|
141
|
+
}, children: options.map((option) => (_jsx(OnboardingQuestionOption, { option: option, mode: "single", variant: variant, glyphTone: glyphTone }, option.value))) }))] }), continueLabel !== null || footer ? (_jsxs("div", { "data-slot": "onboarding-question-actions", className: "flex flex-col items-start gap-4", children: [continueLabel !== null ? (_jsx(Button, { type: "button", size: "lg", "data-slot": "onboarding-question-continue", onClick: onContinue, disabled: !(canContinue ?? answered), children: continueLabel })) : null, footer] })) : null] }));
|
|
142
142
|
}
|
|
143
143
|
export { OnboardingQuestion };
|
|
144
144
|
//# sourceMappingURL=onboarding-question.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding-question.js","sourceRoot":"","sources":["../../src/blocks/onboarding-question.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAoFvC;;;;;;;;;GASG;AACH,MAAM,OAAO,GAAG;IACd,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,4BAA4B;IAC/B,CAAC,EAAE,2CAA2C;IAC9C,CAAC,EAAE,2CAA2C;CACtC,CAAA;AAEV;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,EAAE,CACrB,8EAA8E,EAC9E,mBAAmB,EACnB,mGAAmG,EACnG,4FAA4F,EAC5F,4DAA4D,CAC7D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,GAAG,EAAE,CACnB,0FAA0F,EAC1F,oFAAoF,EACpF,mBAAmB,EACnB,mGAAmG,EACnG,sFAAsF,EACtF,4DAA4D,CAC7D,CAAA;AAED,qFAAqF;AACrF,MAAM,eAAe,GAAG,EAAE,CACxB,2FAA2F,EAC3F,qFAAqF,CACtF,CAAA;AAED,SAAS,wBAAwB,CAAC,EAChC,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,
|
|
1
|
+
{"version":3,"file":"onboarding-question.js","sourceRoot":"","sources":["../../src/blocks/onboarding-question.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* is unusable by keyboard, and the ring here is the same token every other control
|
|
19
19
|
* uses so it flips per surface.
|
|
20
20
|
*/
|
|
21
|
-
declare function OptionCard({ title, body, href, note, glyph, className, children, ...props }: Omit<React.ComponentProps<"div">, "ref" | "href"> & {
|
|
21
|
+
declare function OptionCard({ title, body, href, note, glyph, glyphTone, className, children, ...props }: Omit<React.ComponentProps<"div">, "ref" | "href"> & {
|
|
22
22
|
title: string;
|
|
23
23
|
body?: string;
|
|
24
24
|
href?: string;
|
|
@@ -26,6 +26,16 @@ declare function OptionCard({ title, body, href, note, glyph, className, childre
|
|
|
26
26
|
note?: string;
|
|
27
27
|
/** An outline SVG at 26 to 30px. */
|
|
28
28
|
glyph?: React.ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* `accent` is the card's own brand purple, which is right when the glyph is a
|
|
31
|
+
* decorative lead-in. `ink` follows the text, which is what a card carrying a
|
|
32
|
+
* VENDOR MARK needs: the onboarding frames draw all eight referral logos in
|
|
33
|
+
* one ink weight, and a row of them in brand purple reads as eight instances
|
|
34
|
+
* of CloudGrid rather than eight different products.
|
|
35
|
+
*
|
|
36
|
+
* Defaults to `accent`, so every existing caller renders exactly as before.
|
|
37
|
+
*/
|
|
38
|
+
glyphTone?: "accent" | "ink";
|
|
29
39
|
}): import("react").JSX.Element;
|
|
30
40
|
export { OptionCard };
|
|
31
41
|
//# sourceMappingURL=option-card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-card.d.ts","sourceRoot":"","sources":["../../src/blocks/option-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"option-card.d.ts","sourceRoot":"","sources":["../../src/blocks/option-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,SAAoB,EACpB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,GAAG;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CAC7B,+BAmCA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -20,13 +20,13 @@ import { cn } from "../lib/cloudgrid-cn.js";
|
|
|
20
20
|
* is unusable by keyboard, and the ring here is the same token every other control
|
|
21
21
|
* uses so it flips per surface.
|
|
22
22
|
*/
|
|
23
|
-
function OptionCard({ title, body, href, note, glyph, className, children, ...props }) {
|
|
23
|
+
function OptionCard({ title, body, href, note, glyph, glyphTone = "accent", className, children, ...props }) {
|
|
24
24
|
// Cast because the element type varies: div props are not assignable to anchor
|
|
25
25
|
// props and vice versa. The props this component accepts are already pinned by
|
|
26
26
|
// its own signature above, so the cast widens the tag, not the API.
|
|
27
27
|
const Tag = (href ? "a" : "div");
|
|
28
28
|
return (_jsxs(Tag, { "data-slot": "option-card", href: href, className: cn("flex flex-col gap-2 rounded-xl border border-hairline bg-card p-5 text-ink", href &&
|
|
29
|
-
"no-underline transition-colors hover:border-line-accent focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring focus-visible:outline-none", className), ...props, children: [glyph ? (_jsx("span", { "aria-hidden": "true", className: "[&>svg]:size-7 text-(--cg-text-accent)", children: glyph })) : null, _jsx("span", { className: "text-heading-sm font-medium", children: title }), body ? _jsx("span", { className: "text-body-sm text-body", children: body }) : null, children, note ? _jsx("span", { className: "text-caption text-faint", children: note }) : null] }));
|
|
29
|
+
"no-underline transition-colors hover:border-line-accent focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring focus-visible:outline-none", className), ...props, children: [glyph ? (_jsx("span", { "aria-hidden": "true", className: cn("[&>svg]:size-7", glyphTone === "ink" ? "text-ink" : "text-(--cg-text-accent)"), children: glyph })) : null, _jsx("span", { className: "text-heading-sm font-medium", children: title }), body ? _jsx("span", { className: "text-body-sm text-body", children: body }) : null, children, note ? _jsx("span", { className: "text-caption text-faint", children: note }) : null] }));
|
|
30
30
|
}
|
|
31
31
|
export { OptionCard };
|
|
32
32
|
//# sourceMappingURL=option-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-card.js","sourceRoot":"","sources":["../../src/blocks/option-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"option-card.js","sourceRoot":"","sources":["../../src/blocks/option-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,UAAU,CAAC,EAClB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,SAAS,GAAG,QAAQ,EACpB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EAmBT;IACC,+EAA+E;IAC/E,+EAA+E;IAC/E,oEAAoE;IACpE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAsB,CAAA;IAErD,OAAO,CACL,MAAC,GAAG,iBACQ,aAAa,EACvB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,4EAA4E,EAC5E,IAAI;YACF,2JAA2J,EAC7J,SAAS,CACV,KACG,KAAK,aAER,KAAK,CAAC,CAAC,CAAC,CACP,8BACc,MAAM,EAClB,SAAS,EAAE,EAAE,CACX,gBAAgB,EAChB,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAC7D,YAEA,KAAK,GACD,CACR,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,SAAS,EAAC,6BAA6B,YAAE,KAAK,GAAQ,EAC3D,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,wBAAwB,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EACpE,QAAQ,EACR,IAAI,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,yBAAyB,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,IAClE,CACP,CAAA;AACH,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Button } from "../ui/button.js";
|
|
3
|
+
/**
|
|
4
|
+
* The sign-in methods, in one place.
|
|
5
|
+
*
|
|
6
|
+
* ## Why this exists (#129)
|
|
7
|
+
*
|
|
8
|
+
* The console rendered its sign-in options in four separate places and they
|
|
9
|
+
* diverged: the invitation-accept screen offered ONLY Google, so an invitee
|
|
10
|
+
* without a Google account could not accept an invitation at all — no error, no
|
|
11
|
+
* fallback, on the one screen whose whole purpose is to let an invited person
|
|
12
|
+
* in. A fifth hand-written list would be the same mistake with a larger blast
|
|
13
|
+
* radius. So the list renders through one component, and adding a provider is
|
|
14
|
+
* one edit at the call site that owns the list rather than four that can
|
|
15
|
+
* silently disagree.
|
|
16
|
+
*
|
|
17
|
+
* ## Presentation only
|
|
18
|
+
*
|
|
19
|
+
* The same line #117 / #119 / #121 / #126 drew. This block holds no auth logic,
|
|
20
|
+
* no provider SDK, no redirect and no token; it renders the methods it is
|
|
21
|
+
* handed and never implies a provider that does not exist. Starting Google
|
|
22
|
+
* OAuth needs a session code the page mints — so that is a callback the page
|
|
23
|
+
* owns. The email option is a LINK, deliberately: middle-click and "open in new
|
|
24
|
+
* tab" work, and the target is visible in the status bar.
|
|
25
|
+
*
|
|
26
|
+
* ## The one thing it does own: `carry`
|
|
27
|
+
*
|
|
28
|
+
* Sign-in must not lose state that rides the URL — where to land afterwards
|
|
29
|
+
* (`return_to`), the onboarding path a NEW user should walk (`arrival`), and
|
|
30
|
+
* for the device flow the code being authorized (`code`) and the client that
|
|
31
|
+
* started it (`source`). Forgetting one is not a visual bug and shows up
|
|
32
|
+
* nowhere: sign-in succeeds and the person silently lands somewhere generic or
|
|
33
|
+
* walks the wrong flow. That has happened three times (`ai_tool`, `invite`,
|
|
34
|
+
* `watermark`).
|
|
35
|
+
*
|
|
36
|
+
* So the page declares what must survive ONCE, in `carry`, and the block
|
|
37
|
+
* applies it to every method uniformly: appended to each link method's `href`,
|
|
38
|
+
* handed to each action method's `onSelect`. The block never knows what the
|
|
39
|
+
* keys mean — the page wires, the block carries.
|
|
40
|
+
*
|
|
41
|
+
* One obligation stays with the caller, loudly: **validate `return_to` before
|
|
42
|
+
* handing it in.** The console keeps its `isSafePostAuthReturn` allowlist and
|
|
43
|
+
* this package cannot import it; an unvalidated `return_to` is an open
|
|
44
|
+
* redirect. Pass the value already validated with the same allowlist the
|
|
45
|
+
* post-auth resolver uses, so there is one thing to audit rather than two.
|
|
46
|
+
*
|
|
47
|
+
* ## Methods are groups
|
|
48
|
+
*
|
|
49
|
+
* `methods` is an array of GROUPS: buttons within a group stack tight, and the
|
|
50
|
+
* divider — "OR" unless `divider` says otherwise — renders between groups.
|
|
51
|
+
* `[[google], [email]]` is the console's current screen; a second OAuth
|
|
52
|
+
* provider joins the first group with no API change. The grouping is what lets
|
|
53
|
+
* the divider sit "between the providers and email" without the block knowing
|
|
54
|
+
* which method is which.
|
|
55
|
+
*
|
|
56
|
+
* ## Icons are handed in
|
|
57
|
+
*
|
|
58
|
+
* Every mark in this package is flattened to `currentColor` and the literal
|
|
59
|
+
* gate keeps it that way, so the four-colour Google G cannot live here without
|
|
60
|
+
* a brand decision. Consumers pass their own marks (`icon`), which the block
|
|
61
|
+
* hides from assistive tech: the accessible name is exactly `label`.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```tsx
|
|
65
|
+
* <SignInOptions
|
|
66
|
+
* methods={[
|
|
67
|
+
* [{ id: "google", label: "Continue with Google", icon: <GoogleIcon />, onSelect: startGoogle }],
|
|
68
|
+
* [{ id: "email", label: "Continue with Email", icon: <Mail />, href: "/auth/email" }],
|
|
69
|
+
* ]}
|
|
70
|
+
* carry={{ return_to: safeReturn, arrival, code, source }}
|
|
71
|
+
* renderLink={(p) => <Link {...p} />}
|
|
72
|
+
* />
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
interface SignInMethodBase {
|
|
76
|
+
/** Stable, never shown. Lands on the button as `data-method`. */
|
|
77
|
+
id: string;
|
|
78
|
+
/** The words on the button, and its exact accessible name. */
|
|
79
|
+
label: string;
|
|
80
|
+
/**
|
|
81
|
+
* The method's mark, ~20px inside a fixed 5-unit slot at the inline start.
|
|
82
|
+
* Hidden from assistive tech here, so any mark keeps the name = `label`.
|
|
83
|
+
*/
|
|
84
|
+
icon?: React.ReactNode;
|
|
85
|
+
disabled?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Exactly one of `href` (a link method: a real anchor, `carry` appended) or
|
|
89
|
+
* `onSelect` (an action method: the page owns what selecting it starts, and
|
|
90
|
+
* receives the carried entries). The union is enforced in the types because a
|
|
91
|
+
* method with both would hide which one wins, and a method with neither is a
|
|
92
|
+
* button that cannot sign anyone in — worse than an absent one.
|
|
93
|
+
*/
|
|
94
|
+
export type SignInMethod = (SignInMethodBase & {
|
|
95
|
+
href: string;
|
|
96
|
+
onSelect?: never;
|
|
97
|
+
}) | (SignInMethodBase & {
|
|
98
|
+
href?: never;
|
|
99
|
+
onSelect: (carried: Readonly<Record<string, string>>) => void;
|
|
100
|
+
});
|
|
101
|
+
export interface SignInOptionsProps {
|
|
102
|
+
/** Groups of methods. The divider renders between groups, never inside one. */
|
|
103
|
+
methods: ReadonlyArray<readonly SignInMethod[]>;
|
|
104
|
+
/**
|
|
105
|
+
* What every method must carry through sign-in — `return_to`, `arrival`,
|
|
106
|
+
* device `code`, `source`, whatever the page cannot afford to lose. Entries
|
|
107
|
+
* that are `null`, `undefined` or empty are dropped, so query params can be
|
|
108
|
+
* passed straight through. Appended to link methods' `href`; handed to
|
|
109
|
+
* action methods' `onSelect`.
|
|
110
|
+
*/
|
|
111
|
+
carry?: Readonly<Record<string, string | null | undefined>>;
|
|
112
|
+
/** Replaces the "OR" between groups. The rule itself stays. */
|
|
113
|
+
divider?: React.ReactNode;
|
|
114
|
+
/**
|
|
115
|
+
* Renders the anchor for link methods, for consumers with a framework link —
|
|
116
|
+
* `(p) => <Link {...p} />`. Defaults to a plain `<a>`, which works
|
|
117
|
+
* everywhere; the framework link is an optimisation, not a requirement.
|
|
118
|
+
*/
|
|
119
|
+
renderLink?: (props: {
|
|
120
|
+
href: string;
|
|
121
|
+
}) => React.ReactElement;
|
|
122
|
+
className?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* One full-width method row: the library `Button` (`variant="outline"` — white
|
|
126
|
+
* fill, hairline border, ink label) sized up to the ~52px onboarding rhythm.
|
|
127
|
+
* The icon sits at the inline start, positioned absolute so the label stays
|
|
128
|
+
* centered rather than being pushed off-center.
|
|
129
|
+
*
|
|
130
|
+
* Exported so a surface composing its own screen (the console's styleguide
|
|
131
|
+
* pilot) renders the same row `SignInOptions` does, instead of keeping a
|
|
132
|
+
* private twin. Every remaining prop passes through to `Button`.
|
|
133
|
+
*/
|
|
134
|
+
export declare function SignInMethodButton({ icon, label, className, ...props }: Omit<React.ComponentProps<typeof Button>, "children"> & {
|
|
135
|
+
icon?: React.ReactNode;
|
|
136
|
+
label: string;
|
|
137
|
+
}): React.JSX.Element;
|
|
138
|
+
export declare function SignInOptions({ methods, carry, divider, renderLink, className, }: SignInOptionsProps): React.JSX.Element;
|
|
139
|
+
export {};
|
|
140
|
+
//# sourceMappingURL=sign-in-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign-in-options.d.ts","sourceRoot":"","sources":["../../src/blocks/sign-in-options.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAI7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AAEH,UAAU,gBAAgB;IACxB,iEAAiE;IACjE,EAAE,EAAE,MAAM,CAAA;IACV,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GACpB,CAAC,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,GACvD,CAAC,gBAAgB,GAAG;IAClB,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,CAAA;CAC9D,CAAC,CAAA;AAEN,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,OAAO,EAAE,aAAa,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IAC/C;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAA;IAC3D,+DAA+D;IAC/D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAA;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAuBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACzD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACd,qBAsBA;AAmBD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,SAAS,GACV,EAAE,kBAAkB,qBAoDpB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Button } from "../ui/button.js";
|
|
5
|
+
import { Separator } from "../ui/separator.js";
|
|
6
|
+
import { cn } from "../lib/cloudgrid-cn.js";
|
|
7
|
+
/** `carry` with the empty entries dropped, in declaration order. */
|
|
8
|
+
function carriedEntries(carry) {
|
|
9
|
+
if (!carry)
|
|
10
|
+
return [];
|
|
11
|
+
return Object.entries(carry).filter((entry) => typeof entry[1] === "string" && entry[1] !== "");
|
|
12
|
+
}
|
|
13
|
+
/** `href` with the carried entries appended, hash kept at the end. */
|
|
14
|
+
function withCarried(href, entries) {
|
|
15
|
+
if (entries.length === 0)
|
|
16
|
+
return href;
|
|
17
|
+
const hashAt = href.indexOf("#");
|
|
18
|
+
const base = hashAt === -1 ? href : href.slice(0, hashAt);
|
|
19
|
+
const hash = hashAt === -1 ? "" : href.slice(hashAt);
|
|
20
|
+
const joined = new URLSearchParams(entries).toString();
|
|
21
|
+
return `${base}${base.includes("?") ? "&" : "?"}${joined}${hash}`;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* One full-width method row: the library `Button` (`variant="outline"` — white
|
|
25
|
+
* fill, hairline border, ink label) sized up to the ~52px onboarding rhythm.
|
|
26
|
+
* The icon sits at the inline start, positioned absolute so the label stays
|
|
27
|
+
* centered rather than being pushed off-center.
|
|
28
|
+
*
|
|
29
|
+
* Exported so a surface composing its own screen (the console's styleguide
|
|
30
|
+
* pilot) renders the same row `SignInOptions` does, instead of keeping a
|
|
31
|
+
* private twin. Every remaining prop passes through to `Button`.
|
|
32
|
+
*/
|
|
33
|
+
export function SignInMethodButton({ icon, label, className, ...props }) {
|
|
34
|
+
return (_jsxs(Button, { variant: "outline", "data-slot": "sign-in-method", className: cn("relative h-[52px] w-full justify-center rounded-xl text-body-md font-medium", className), ...props, children: [icon == null ? null : (_jsx("span", { "aria-hidden": "true", className: "absolute left-4 flex size-5 items-center justify-center [&_svg]:size-5", children: icon })), label] }));
|
|
35
|
+
}
|
|
36
|
+
/** The "OR" rule between method groups. Decorative, and hidden as such. */
|
|
37
|
+
function SignInOptionsDivider({ children }) {
|
|
38
|
+
return (_jsxs("div", { "data-slot": "sign-in-options-divider", "aria-hidden": "true", className: "my-5 flex items-center gap-3", children: [_jsx(Separator, { className: "flex-1" }), _jsx("span", { className: "text-caption font-medium text-faint", children: children ?? "OR" }), _jsx(Separator, { className: "flex-1" })] }));
|
|
39
|
+
}
|
|
40
|
+
export function SignInOptions({ methods, carry, divider, renderLink, className, }) {
|
|
41
|
+
const entries = carriedEntries(carry);
|
|
42
|
+
const carried = Object.fromEntries(entries);
|
|
43
|
+
const groups = methods.filter((group) => group.length > 0);
|
|
44
|
+
return (_jsx("div", { "data-slot": "sign-in-options", className: className, children: groups.map((group, index) => (
|
|
45
|
+
// Groups have no identity of their own — position is what they mean.
|
|
46
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
47
|
+
_jsxs(React.Fragment, { children: [index > 0 && _jsx(SignInOptionsDivider, { children: divider }), _jsx("div", { className: "grid gap-3", children: group.map((method) => method.href !== undefined ? (
|
|
48
|
+
/*
|
|
49
|
+
A real anchor rather than an onClick. Base UI's Button warns
|
|
50
|
+
when the rendered element is not a <button>, hence
|
|
51
|
+
`nativeButton={false}`, and it stamps `role="button"` on a
|
|
52
|
+
non-native target — put back to `link`, because this one
|
|
53
|
+
really does navigate.
|
|
54
|
+
*/
|
|
55
|
+
_jsx(SignInMethodButton, { "data-method": method.id, render: renderLink?.({ href: withCarried(method.href, entries) }) ?? (_jsx("a", { href: withCarried(method.href, entries) })), nativeButton: false, role: "link", icon: method.icon, label: method.label, disabled: method.disabled }, method.id)) : (_jsx(SignInMethodButton, { "data-method": method.id, icon: method.icon, label: method.label, disabled: method.disabled, onClick: () => method.onSelect(carried) }, method.id))) })] }, index))) }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=sign-in-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign-in-options.js","sourceRoot":"","sources":["../../src/blocks/sign-in-options.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-setup.d.ts","sourceRoot":"","sources":["../../src/blocks/tool-setup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAIxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;
|
|
1
|
+
{"version":3,"file":"tool-setup.d.ts","sourceRoot":"","sources":["../../src/blocks/tool-setup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAIxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AA8BD,iBAAS,SAAS,CAAC,EACjB,KAAK,EACL,KAAK,EACL,YAAY,EACZ,aAAa,EACb,KAAK,EACL,GAAG,EACH,OAAO,EACP,KAAS,EACT,WAAkB,EAClB,aAA0B,EAC1B,UAAU,EACV,WAAkB,EAClB,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IACxF,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACb,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9D;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,sEAAsE;IACtE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB,qBA4HA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -15,7 +15,16 @@ import { cn } from "../lib/cloudgrid-cn.js";
|
|
|
15
15
|
* a fixed height with nowrap is a horizontal scrollbar on a laptop, so height
|
|
16
16
|
* goes auto and the list wraps to a second row instead.
|
|
17
17
|
*/
|
|
18
|
-
const TRIGGER_CLASS = cn(
|
|
18
|
+
const TRIGGER_CLASS = cn(
|
|
19
|
+
// No `grow`. It stretched every tab to consume the row, so a strip that
|
|
20
|
+
// wrapped put its last two tabs at opposite ends of an empty line — measured
|
|
21
|
+
// live: "Gemini CLI" and "Antigravity" spread across the full width with a
|
|
22
|
+
// void between them, where the design draws an even, tight strip.
|
|
23
|
+
//
|
|
24
|
+
// `basis-auto` rather than a fixed basis for the same reason: a tab is as wide
|
|
25
|
+
// as its label, and forcing "Cursor" to the width of "ChatGPT Desktop" is the
|
|
26
|
+
// same mistake one level down.
|
|
27
|
+
"h-auto min-h-[3.75rem] flex-none basis-auto flex-col gap-0.5 whitespace-normal", "rounded-lg px-3 py-2 text-center text-body-sm leading-tight",
|
|
19
28
|
// The dark selected pill is `bg-code`/`text-on-code` — the library's OWN
|
|
20
29
|
// ink-surface pair, the one AgentPrompt and CodeBlock already paint with. A
|
|
21
30
|
// first pass invented `bg-ink-strong`/`text-on-ink`, which are not tokens:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-setup.js","sourceRoot":"","sources":["../../src/blocks/tool-setup.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAiEvC;;;;;;;;GAQG;AACH,MAAM,aAAa,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-setup.js","sourceRoot":"","sources":["../../src/blocks/tool-setup.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export * from "./blocks/pricing-tier-cards.js";
|
|
|
42
42
|
export * from "./blocks/pricing-tiers.js";
|
|
43
43
|
export * from "./blocks/quote.js";
|
|
44
44
|
export * from "./blocks/rich-text.js";
|
|
45
|
+
export * from "./blocks/sign-in-options.js";
|
|
45
46
|
export * from "./blocks/stage-panel.js";
|
|
46
47
|
export * from "./blocks/step-item.js";
|
|
47
48
|
export * from "./blocks/tool-logo.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAG/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -59,6 +59,7 @@ export * from "./blocks/pricing-tier-cards.js";
|
|
|
59
59
|
export * from "./blocks/pricing-tiers.js";
|
|
60
60
|
export * from "./blocks/quote.js";
|
|
61
61
|
export * from "./blocks/rich-text.js";
|
|
62
|
+
export * from "./blocks/sign-in-options.js";
|
|
62
63
|
export * from "./blocks/stage-panel.js";
|
|
63
64
|
export * from "./blocks/step-item.js";
|
|
64
65
|
export * from "./blocks/tool-logo.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,EAAE;AACF,kEAAkE;AAClE,8EAA8E;AAC9E,uEAAuE;AAEvE,cAAc;AACd,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAE/B,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAEtC,0EAA0E;AAC1E,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,oEAAoE;AACpE,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,EAAE;AACF,kEAAkE;AAClE,8EAA8E;AAC9E,uEAAuE;AAEvE,cAAc;AACd,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAE/B,mBAAmB;AACnB,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AAEtC,0EAA0E;AAC1E,cAAc,uBAAuB,CAAA"}
|
package/package.json
CHANGED