@hraness/design-kit 0.34.0 → 0.35.1
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/AGENT_SETUP.md +4 -0
- package/ARTICLE_COPY.md +12 -6
- package/README.md +20 -2
- package/dist/{chunk-nwpcjm48.js → chunk-6bfr0g23.js} +1115 -441
- package/dist/{chunk-h4k7yv6x.js → chunk-6ts4955n.js} +36 -36
- package/dist/chunk-gmea6p0d.js +13 -0
- package/dist/{chunk-mr1vdcjq.js → chunk-tzd7177a.js} +142 -82
- package/dist/index.js +5 -1
- package/dist/mockups/client.js +50 -15
- package/dist/portfolio.js +586 -85
- package/dist/react/index.js +169 -105
- package/dist/react/platform-install.js +3 -2
- package/dist/react/server.js +17 -3
- package/dist/stylex-manifest.json +1 -1
- package/dist/stylex.css +376 -58
- package/package.json +16 -3
- package/portfolio-inventory.json +1 -1
- package/src/diagrams.ts +11 -0
- package/src/index.ts +2 -0
- package/src/marketing-comparison.css +162 -0
- package/src/marketing-diagram.css +24 -0
- package/src/mockups/client.tsx +25 -17
- package/src/mockups.css +19 -0
- package/src/plain-publication.css +9 -6
- package/src/portfolio.generated.json +578 -86
- package/src/portfolio.generated.ts +578 -86
- package/src/portfolio.ts +73 -0
- package/src/product-marketing-foundation.css +29 -0
- package/src/product-marketing.css +133 -38
- package/src/react/agent-setup-prompt.stylex.ts +5 -25
- package/src/react/agent-setup-prompt.tsx +9 -18
- package/src/react/article.tsx +2 -2
- package/src/react/design-gallery.tsx +34 -6
- package/src/react/index.ts +3 -0
- package/src/react/marketing-account.stylex.ts +74 -0
- package/src/react/marketing-account.tsx +69 -0
- package/src/react/marketing-comparison.stylex.ts +24 -0
- package/src/react/marketing-comparison.tsx +73 -0
- package/src/react/marketing-diagram.stylex.ts +8 -0
- package/src/react/marketing-diagram.tsx +33 -0
- package/src/react/platform-install.stylex.ts +9 -37
- package/src/react/platform-install.tsx +17 -24
- package/src/react/product-marketing.stylex.ts +138 -109
- package/src/react/product-marketing.tsx +69 -43
- package/src/react/server.ts +3 -0
- package/src/react/setup-copy-button.stylex.ts +39 -0
- package/src/react/setup-copy-button.tsx +20 -0
- package/src/styles.css +2 -0
- package/src/typography.css +32 -0
- /package/dist/{chunk-4d79eskk.js → chunk-c80g58j1.js} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { setupCopyButtonClassName as cx } from "./setup-copy-button.stylex.js";
|
|
2
|
+
|
|
3
|
+
/** Presentation only: each setup composition retains its clipboard and recovery behavior. */
|
|
4
|
+
export function SetupCopyButton({ className, iconClassName, onCopy, state, subject, failedLabel = "Copy failed" }: Readonly<{
|
|
5
|
+
className?: string;
|
|
6
|
+
iconClassName?: string;
|
|
7
|
+
onCopy: () => void;
|
|
8
|
+
state: "idle" | "copying" | "copied" | "failed";
|
|
9
|
+
subject: string;
|
|
10
|
+
failedLabel?: string;
|
|
11
|
+
}>) {
|
|
12
|
+
return (
|
|
13
|
+
<button aria-busy={state === "copying" || undefined} aria-label={`${state === "copied" ? "Copied" : "Copy"} ${subject}`} className={cx("button", className)} data-copy-state={state} disabled={state === "copying"} onClick={onCopy} type="button">
|
|
14
|
+
<svg aria-hidden="true" className={cx("icon", iconClassName)} fill="none" focusable="false" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} viewBox="0 0 24 24">
|
|
15
|
+
{state === "copied" ? <path d="M5 12.5l4.5 4.5L19 7.5" /> : <><rect height="12" rx="2" width="12" x="8" y="8" /><path d="M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2" /></>}
|
|
16
|
+
</svg>
|
|
17
|
+
<span>{state === "copied" ? "Copied" : state === "copying" ? "Copying" : state === "failed" ? failedLabel : "Copy"}</span>
|
|
18
|
+
</button>
|
|
19
|
+
);
|
|
20
|
+
}
|
package/src/styles.css
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
@import "./charts.css";
|
|
13
13
|
@import "./plain-site.css";
|
|
14
14
|
@import "./plain-publication.css";
|
|
15
|
+
@import "./marketing-comparison.css";
|
|
16
|
+
@import "./marketing-diagram.css";
|
|
15
17
|
@import "./reading.css";
|
|
16
18
|
@import "./status-page.css";
|
|
17
19
|
@import "./product-marketing.css";
|
package/src/typography.css
CHANGED
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
* face. */
|
|
12
12
|
@layer base {
|
|
13
13
|
:root {
|
|
14
|
+
/* Shared studio category accents. Text names retain the foreground role. */
|
|
15
|
+
--hraness-studio-rose: light-dark(#b03a5b, #f39cb5);
|
|
16
|
+
--hraness-studio-indigo: light-dark(#4a4fbf, #a9adff);
|
|
17
|
+
--hraness-studio-amber: light-dark(#9a5a00, #f0b659);
|
|
18
|
+
--hraness-studio-emerald: light-dark(#1d7a55, #71d2a6);
|
|
19
|
+
|
|
14
20
|
--hraness-type-reading-size: clamp(1rem, .95rem + .25vw, 1.0625rem);
|
|
15
21
|
--hraness-type-reading-leading: 1.7;
|
|
16
22
|
--hraness-type-reading-measure: 70ch;
|
|
@@ -84,3 +90,29 @@
|
|
|
84
90
|
-webkit-text-fill-color: currentColor;
|
|
85
91
|
}
|
|
86
92
|
}
|
|
93
|
+
|
|
94
|
+
/* Prose and secondary text actions share a quiet, persistent link affordance. */
|
|
95
|
+
.hraness-text-link,
|
|
96
|
+
.hraness-prose :where(a:not([role="button"], [data-emphasis], [data-foil])),
|
|
97
|
+
.plain-publication__article-body :where(a:not([role="button"], [data-emphasis], [data-foil])),
|
|
98
|
+
.plain-page :where(p, li, dd, dt, figcaption) a:not([role="button"], [data-emphasis], [data-foil]) {
|
|
99
|
+
text-decoration-line: underline;
|
|
100
|
+
text-decoration-style: dotted;
|
|
101
|
+
text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
|
|
102
|
+
text-decoration-thickness: 1px;
|
|
103
|
+
text-underline-offset: 0.2em;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.hraness-text-link:is(:hover, :focus-visible),
|
|
107
|
+
.hraness-prose :where(a:not([role="button"], [data-emphasis], [data-foil])):is(:hover, :focus-visible),
|
|
108
|
+
.plain-page :where(p, li, dd, dt, figcaption) a:not([role="button"], [data-emphasis], [data-foil]):is(:hover, :focus-visible) {
|
|
109
|
+
text-decoration-color: currentColor;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@media (forced-colors: active) {
|
|
113
|
+
.hraness-text-link,
|
|
114
|
+
.hraness-prose :where(a),
|
|
115
|
+
.plain-page :where(p, li, dd, dt, figcaption) a {
|
|
116
|
+
text-decoration-color: LinkText;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
File without changes
|