@hirobius/design-system 0.14.0 → 0.16.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/README.md +4 -4
- package/dist/chunks/TokenDisplayContext-B3gxyQN7.js +1 -0
- package/dist/chunks/form-DnGRy27o.js +1 -0
- package/dist/contexts.js +1 -0
- package/dist/form.js +1 -0
- package/dist/hirobius-ui.js +5884 -4425
- package/dist/manifest.js +8 -8
- package/dist/scroll.js +1 -0
- package/dist/styles.css +1 -1
- package/dist/tokens.css +1 -1
- package/dist/tokens.js +40 -22
- package/dist/types/src/app/components/alert.d.ts +1 -1
- package/dist/types/src/app/components/asset-img.d.ts +1 -1
- package/dist/types/src/app/components/bleed.d.ts +1 -1
- package/dist/types/src/app/components/card.d.ts +3 -3
- package/dist/types/src/app/components/center.d.ts +1 -1
- package/dist/types/src/app/components/checkbox.d.ts +1 -2
- package/dist/types/src/app/components/cinematic-link.d.ts +8 -3
- package/dist/types/src/app/components/cluster.d.ts +1 -1
- package/dist/types/src/app/components/code-block.d.ts +1 -1
- package/dist/types/src/app/components/component-instance-matrix.d.ts +7 -1
- package/dist/types/src/app/components/container.d.ts +1 -1
- package/dist/types/src/app/components/cover.d.ts +1 -1
- package/dist/types/src/app/components/disclosure.d.ts +1 -1
- package/dist/types/src/app/components/doc-link-card.d.ts +1 -1
- package/dist/types/src/app/components/error-boundary.d.ts +1 -1
- package/dist/types/src/app/components/error-pattern.d.ts +1 -2
- package/dist/types/src/app/components/foundation-swatch.d.ts +6 -0
- package/dist/types/src/app/components/frame.d.ts +1 -1
- package/dist/types/src/app/components/grid.d.ts +2 -2
- package/dist/types/src/app/components/heading-stack.d.ts +1 -1
- package/dist/types/src/app/components/icon-button.d.ts +1 -2
- package/dist/types/src/app/components/image-lightbox.d.ts +1 -2
- package/dist/types/src/app/components/inline-code.d.ts +1 -1
- package/dist/types/src/app/components/inline-link.d.ts +1 -2
- package/dist/types/src/app/components/nav-group.d.ts +1 -1
- package/dist/types/src/app/components/nav-item.d.ts +1 -1
- package/dist/types/src/app/components/page.d.ts +1 -1
- package/dist/types/src/app/components/pin.d.ts +1 -2
- package/dist/types/src/app/components/radio.d.ts +1 -2
- package/dist/types/src/app/components/reveal.d.ts +1 -2
- package/dist/types/src/app/components/segmented-control.d.ts +1 -1
- package/dist/types/src/app/components/select.d.ts +29 -0
- package/dist/types/src/app/components/sidebar.d.ts +1 -1
- package/dist/types/src/app/components/sketch.d.ts +6 -0
- package/dist/types/src/app/components/slider.d.ts +1 -2
- package/dist/types/src/app/components/stack.d.ts +1 -1
- package/dist/types/src/app/components/stepper-field.d.ts +1 -2
- package/dist/types/src/app/components/surface.d.ts +1 -1
- package/dist/types/src/app/components/switcher.d.ts +1 -1
- package/dist/types/src/app/components/toggle.d.ts +1 -2
- package/dist/types/src/app/components/token.d.ts +8 -2
- package/dist/types/src/app/design-system/generated-token-refs.d.ts +3 -6
- package/dist/types/src/app/design-system/generated-token-values.d.ts +2 -6
- package/dist/types/src/app/design-system/tokens.d.ts +0 -5
- package/dist/types/src/app/layouts/CaseStudyLayout.d.ts +2 -3
- package/dist/types/src/app/layouts/DocLayout.d.ts +0 -2
- package/dist/types/src/app/layouts/HdsDocsShell.d.ts +72 -0
- package/dist/types/src/app/layouts/HdsSystemDocLayout.d.ts +8 -1
- package/dist/types/src/index.d.ts +23 -31
- package/dist/variables.css +58 -6
- package/hirobius.tokens.json +21 -31
- package/package.json +34 -22
- package/public/hds-manifest.json +1466 -179
- /package/dist/types/src/app/components/{lab/tokenUtils.d.ts → tokenUtils.d.ts} +0 -0
package/dist/tokens.js
CHANGED
|
@@ -125,7 +125,6 @@ const a = {
|
|
|
125
125
|
mono: ["Geist Mono", "Courier New", "monospace"]
|
|
126
126
|
},
|
|
127
127
|
size: {
|
|
128
|
-
"2xs": "10px",
|
|
129
128
|
xs: "13px",
|
|
130
129
|
sm: "15px",
|
|
131
130
|
base: "17px",
|
|
@@ -138,10 +137,8 @@ const a = {
|
|
|
138
137
|
"6xl": "80px"
|
|
139
138
|
},
|
|
140
139
|
weight: {
|
|
141
|
-
light: "300",
|
|
142
140
|
regular: "400",
|
|
143
141
|
medium: "500",
|
|
144
|
-
semibold: "600",
|
|
145
142
|
bold: "700"
|
|
146
143
|
},
|
|
147
144
|
lineHeight: {
|
|
@@ -153,11 +150,8 @@ const a = {
|
|
|
153
150
|
relaxed: "1.625"
|
|
154
151
|
},
|
|
155
152
|
letterSpacing: {
|
|
156
|
-
tighter: "-0.02em",
|
|
157
153
|
tight: "-0.01em",
|
|
158
154
|
normal: "0em",
|
|
159
|
-
wide: "0.01em",
|
|
160
|
-
wider: "0.02em",
|
|
161
155
|
caps: "0.06em"
|
|
162
156
|
}
|
|
163
157
|
},
|
|
@@ -197,10 +191,12 @@ const a = {
|
|
|
197
191
|
80: "80px",
|
|
198
192
|
96: "96px",
|
|
199
193
|
interactive: {
|
|
200
|
-
min: "44px"
|
|
194
|
+
min: "44px",
|
|
195
|
+
minCompact: "24px"
|
|
201
196
|
},
|
|
202
197
|
width: {
|
|
203
198
|
96: "96px",
|
|
199
|
+
280: "280px",
|
|
204
200
|
760: "760px",
|
|
205
201
|
1200: "1200px",
|
|
206
202
|
"50ch": "50ch"
|
|
@@ -399,8 +395,14 @@ const o = "var(--primitive-typography-family-primary)", n = "var(--primitive-typ
|
|
|
399
395
|
brandRGB: "30,46,253",
|
|
400
396
|
white: "var(--primitive-color-neutral-white)",
|
|
401
397
|
surface: {
|
|
402
|
-
page: {
|
|
403
|
-
|
|
398
|
+
page: {
|
|
399
|
+
dark: "var(--semantic-color-surface-page)",
|
|
400
|
+
light: "var(--semantic-color-surface-page)"
|
|
401
|
+
},
|
|
402
|
+
raised: {
|
|
403
|
+
dark: "var(--semantic-color-surface-raised)",
|
|
404
|
+
light: "var(--semantic-color-surface-raised)"
|
|
405
|
+
}
|
|
404
406
|
},
|
|
405
407
|
blue: {
|
|
406
408
|
50: "var(--primitive-color-blue-50)",
|
|
@@ -416,17 +418,28 @@ const o = "var(--primitive-typography-family-primary)", n = "var(--primitive-typ
|
|
|
416
418
|
900: "var(--primitive-color-blue-900)"
|
|
417
419
|
},
|
|
418
420
|
feedback: {
|
|
419
|
-
success: {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
421
|
+
success: {
|
|
422
|
+
dark: a.primitive.color.green[400],
|
|
423
|
+
light: a.primitive.color.green[700]
|
|
424
|
+
},
|
|
425
|
+
warning: {
|
|
426
|
+
dark: a.primitive.color.amber[400],
|
|
427
|
+
light: a.primitive.color.amber[800]
|
|
428
|
+
},
|
|
429
|
+
error: {
|
|
430
|
+
dark: a.primitive.color.red[400],
|
|
431
|
+
light: a.primitive.color.red[700]
|
|
432
|
+
},
|
|
433
|
+
info: {
|
|
434
|
+
dark: a.primitive.color.blue[300],
|
|
435
|
+
light: a.primitive.color.blue[500]
|
|
436
|
+
}
|
|
423
437
|
}
|
|
424
438
|
},
|
|
425
439
|
// ── Typography ───────────────────────────────────────────────────────────────
|
|
426
440
|
fontFamily: o,
|
|
427
441
|
monoFamily: n,
|
|
428
442
|
fontSize: {
|
|
429
|
-
"2xs": "var(--primitive-typography-size-2xs)",
|
|
430
443
|
xs: "var(--primitive-typography-size-xs)",
|
|
431
444
|
sm: "var(--primitive-typography-size-sm)",
|
|
432
445
|
base: "var(--primitive-typography-size-base)",
|
|
@@ -440,7 +453,6 @@ const o = "var(--primitive-typography-family-primary)", n = "var(--primitive-typ
|
|
|
440
453
|
fontWeight: {
|
|
441
454
|
regular: "var(--primitive-typography-weight-regular)",
|
|
442
455
|
medium: "var(--primitive-typography-weight-medium)",
|
|
443
|
-
semibold: "var(--primitive-typography-weight-semibold)",
|
|
444
456
|
bold: "var(--primitive-typography-weight-bold)"
|
|
445
457
|
},
|
|
446
458
|
lineHeight: {
|
|
@@ -452,11 +464,8 @@ const o = "var(--primitive-typography-family-primary)", n = "var(--primitive-typ
|
|
|
452
464
|
relaxed: "var(--primitive-typography-lineHeight-relaxed)"
|
|
453
465
|
},
|
|
454
466
|
letterSpacing: {
|
|
455
|
-
tighter: "var(--primitive-typography-letterSpacing-tighter)",
|
|
456
467
|
tight: "var(--primitive-typography-letterSpacing-tight)",
|
|
457
|
-
normal: "var(--primitive-typography-letterSpacing-normal)"
|
|
458
|
-
wide: "var(--primitive-typography-letterSpacing-wide)",
|
|
459
|
-
wider: "var(--primitive-typography-letterSpacing-wider)"
|
|
468
|
+
normal: "var(--primitive-typography-letterSpacing-normal)"
|
|
460
469
|
},
|
|
461
470
|
semantic: {
|
|
462
471
|
color: {
|
|
@@ -547,12 +556,21 @@ const o = "var(--primitive-typography-family-primary)", n = "var(--primitive-typ
|
|
|
547
556
|
labelTechnical: i.semantic.typography.mono
|
|
548
557
|
},
|
|
549
558
|
// ── Icons ────────────────────────────────────────────────────────────────────
|
|
559
|
+
// Sized off primitive.size, NOT the type ramp. An icon is geometry: it sits
|
|
560
|
+
// beside text, it does not scale with it. These were pointed at
|
|
561
|
+
// typography.size.base/lg/xl, which happened to read 16/20/24 — so the
|
|
562
|
+
// coupling was invisible until the ramp moved. Rescaling the ramp (hds#283)
|
|
563
|
+
// would have silently shrunk every medium icon 20→18 and every large 24→20,
|
|
564
|
+
// for no typographic reason, and no gate would have said a word.
|
|
565
|
+
//
|
|
566
|
+
// component.button.size.*.iconSize already referenced primitive.size; this
|
|
567
|
+
// brings the global bridge in line with what the component tokens do.
|
|
550
568
|
iconSize: {
|
|
551
|
-
small: "var(--primitive-
|
|
569
|
+
small: "var(--primitive-size-16)",
|
|
552
570
|
// 16px — default icon size
|
|
553
|
-
medium: "var(--primitive-
|
|
571
|
+
medium: "var(--primitive-size-20)",
|
|
554
572
|
// 20px — prominent icons
|
|
555
|
-
large: "var(--primitive-
|
|
573
|
+
large: "var(--primitive-size-24)"
|
|
556
574
|
// 24px — hero / large empty states
|
|
557
575
|
},
|
|
558
576
|
// ── Density-aware spacing ────────────────────────────────────────────────────
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
type AlertTone = 'success' | 'danger' | 'warning' | 'info';
|
|
9
|
-
interface AlertProps {
|
|
9
|
+
export interface AlertProps {
|
|
10
10
|
/** Feedback tone that controls icon, border, and surface treatment. */
|
|
11
11
|
tone?: AlertTone;
|
|
12
12
|
/** Optional heading shown above the body copy. */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { CSSProperties } from 'react';
|
|
8
8
|
import type React from 'react';
|
|
9
9
|
type AssetImgContext = 'default' | 'lightbox' | 'detail';
|
|
10
|
-
interface AssetImgProps {
|
|
10
|
+
export interface AssetImgProps {
|
|
11
11
|
/** Image source path. */
|
|
12
12
|
src: string;
|
|
13
13
|
/** Accessible alt text. */
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import React from 'react';
|
|
21
21
|
type LayoutGap = 'tight' | 'normal' | 'inset' | 'spacious';
|
|
22
22
|
type BleedAxis = 'x' | 'y' | 'both';
|
|
23
|
-
interface BleedProps {
|
|
23
|
+
export interface BleedProps {
|
|
24
24
|
/** Bleed content. */
|
|
25
25
|
children: React.ReactNode;
|
|
26
26
|
/** Semantic space step to negate. Defaults to 'normal'. */
|
|
@@ -89,7 +89,7 @@ interface CardComponent extends React.ForwardRefExoticComponent<CardProps & Reac
|
|
|
89
89
|
Progress: typeof CardProgress;
|
|
90
90
|
Metric: typeof CardMetric;
|
|
91
91
|
}
|
|
92
|
-
interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
92
|
+
export interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
93
93
|
/** Top-of-card metadata zone — status badges, tags, eyebrow labels.
|
|
94
94
|
* Accepts <Badge>, <Tag>, or compound nodes. NEVER pass raw spans
|
|
95
95
|
* with status colors here; use the proper primitive so tone, padding,
|
|
@@ -104,7 +104,7 @@ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HT
|
|
|
104
104
|
declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
105
105
|
declare const CardBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
106
106
|
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
107
|
-
interface CardProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'aria-valuemin' | 'aria-valuemax' | 'aria-valuenow'> {
|
|
107
|
+
export interface CardProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'aria-valuemin' | 'aria-valuemax' | 'aria-valuenow'> {
|
|
108
108
|
/** Current value (0..max). */
|
|
109
109
|
value: number;
|
|
110
110
|
/** Maximum value. Defaults to 100. */
|
|
@@ -118,7 +118,7 @@ interface CardProgressProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
|
|
|
118
118
|
tone?: CardTone;
|
|
119
119
|
}
|
|
120
120
|
declare const CardProgress: React.ForwardRefExoticComponent<CardProgressProps & React.RefAttributes<HTMLDivElement>>;
|
|
121
|
-
interface CardMetricProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
121
|
+
export interface CardMetricProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
122
122
|
/** Uppercase eyebrow label (e.g. "Retainer", "Open tasks"). */
|
|
123
123
|
label: React.ReactNode;
|
|
124
124
|
/** Big value (e.g. "$3,500", "12", "67%"). Rendered at h2 weight. */
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import React from 'react';
|
|
18
18
|
type CenterMaxWidth = 'content' | 'max';
|
|
19
19
|
type LayoutGap = 'tight' | 'normal' | 'inset' | 'spacious';
|
|
20
|
-
interface CenterProps {
|
|
20
|
+
export interface CenterProps {
|
|
21
21
|
/** Center content. */
|
|
22
22
|
children: React.ReactNode;
|
|
23
23
|
/** Max width: 'content' (760px prose) | 'max' (1200px full layouts). Defaults to 'content'. */
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { InputHTMLAttributes } from 'react';
|
|
8
8
|
/** HdsCheckbox — custom-drawn checkbox with check / indeterminate glyph. */
|
|
9
9
|
export type HdsCheckboxDemoState = 'rest' | 'hover' | 'focused' | 'pressed' | 'disabled';
|
|
10
|
-
interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'onChange'> {
|
|
10
|
+
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'onChange'> {
|
|
11
11
|
/** Checkbox label displayed next to the control. */
|
|
12
12
|
label: string;
|
|
13
13
|
/** Current checked state. */
|
|
@@ -18,4 +18,3 @@ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'typ
|
|
|
18
18
|
indeterminate?: boolean;
|
|
19
19
|
}
|
|
20
20
|
export declare const HdsCheckbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
21
|
-
export {};
|
|
@@ -4,10 +4,15 @@
|
|
|
4
4
|
* @tier primitive
|
|
5
5
|
*/
|
|
6
6
|
import React from 'react';
|
|
7
|
-
interface CinematicLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {
|
|
7
|
+
export interface CinematicLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> {
|
|
8
8
|
href: string;
|
|
9
9
|
children: string;
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* CinematicLink - cinematic editorial link treatment for portfolio surfaces.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
* @deprecated CinematicLink is an HDS docs/lab internal (editorial link treatment for portfolio/case-study specimen surfaces), not a consumer-facing HDS surface. It will be retiered to `utility` (dropped from the published barrel) at the named major.
|
|
16
|
+
* @removeIn 1.0.0
|
|
17
|
+
*/
|
|
12
18
|
export declare function CinematicLink({ href, children, style, className, ...rest }: CinematicLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export {};
|
|
@@ -18,7 +18,7 @@ import React from 'react';
|
|
|
18
18
|
type LayoutGap = 'tight' | 'normal' | 'inset' | 'spacious';
|
|
19
19
|
type ClusterAlign = 'start' | 'center' | 'end' | 'stretch';
|
|
20
20
|
type ClusterJustify = 'start' | 'center' | 'end' | 'space-between';
|
|
21
|
-
interface ClusterProps {
|
|
21
|
+
export interface ClusterProps {
|
|
22
22
|
/** Cluster content — items that wrap as a unit. */
|
|
23
23
|
children: React.ReactNode;
|
|
24
24
|
/** Gap token applied to both axes (row and column). Defaults to 'tight'. */
|
|
@@ -21,7 +21,7 @@ declare const blockCodeTextVariants: (props?: import("class-variance-authority/d
|
|
|
21
21
|
declare const prePanelVariants: (props?: {
|
|
22
22
|
panelBackground?: boolean;
|
|
23
23
|
} & import("class-variance-authority/dist/types").ClassProp) => string;
|
|
24
|
-
interface CodeBlockProps {
|
|
24
|
+
export interface CodeBlockProps {
|
|
25
25
|
/** Code string displayed in the block. */
|
|
26
26
|
code: string;
|
|
27
27
|
/** Visual presentation mode for block snippets vs inline single-line code. */
|
|
@@ -6,7 +6,13 @@
|
|
|
6
6
|
* @doc-exempt: specimen matrix helper used by docs pages, not a consumer-facing HDS surface.
|
|
7
7
|
*/
|
|
8
8
|
import React from 'react';
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* ComponentInstanceMatrix — responsive specimen matrix for variant and state parity.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
* @deprecated ComponentInstanceMatrix is an HDS docs/lab internal (specimen matrix helper for the component doc pages), not a consumer-facing HDS surface. It will be retiered to `utility` (dropped from the published barrel) at the named major.
|
|
14
|
+
* @removeIn 1.0.0
|
|
15
|
+
*/
|
|
10
16
|
export declare function ComponentInstanceMatrix({ componentName, dimensionX, dimensionY, title, isMobile: _isMobile, rowLabelWidth: _rowLabelWidth, rowLabelTone, freezeRowState, renderInstance, }: {
|
|
11
17
|
componentName: string;
|
|
12
18
|
dimensionX: string;
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import type { ReactNode, CSSProperties } from 'react';
|
|
26
26
|
type MaxWidthOption = 'content' | 'max';
|
|
27
|
-
interface ContainerProps {
|
|
27
|
+
export interface ContainerProps {
|
|
28
28
|
/** Container content. */
|
|
29
29
|
children: ReactNode;
|
|
30
30
|
/** Max width: 'content' (760px for prose) | 'max' (1200px for full layouts). Defaults to 'max'. */
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import React from 'react';
|
|
20
20
|
type LayoutGap = 'tight' | 'normal' | 'inset' | 'spacious';
|
|
21
|
-
interface CoverProps {
|
|
21
|
+
export interface CoverProps {
|
|
22
22
|
/** The centered main region — takes the remaining space via auto margins. Also available as `centerSlot`. */
|
|
23
23
|
children?: React.ReactNode;
|
|
24
24
|
/** Alias for `children` — the centered main region. If both are set, `centerSlot` wins. */
|
|
@@ -9,7 +9,7 @@ type DisclosureVariant = 'panel' | 'nav' | 'card';
|
|
|
9
9
|
declare const disclosureTriggerVariants: (props?: {
|
|
10
10
|
variant?: "nav" | "panel" | "card";
|
|
11
11
|
} & import("class-variance-authority/dist/types").ClassProp) => string;
|
|
12
|
-
type DisclosureProps = {
|
|
12
|
+
export type DisclosureProps = {
|
|
13
13
|
/** Summary label rendered in the disclosure trigger. Accepts a string or ReactNode for icon+label combos. */
|
|
14
14
|
label: ReactNode;
|
|
15
15
|
/** Whether the disclosure starts in the open state. */
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @doc-exempt: runtime safety infra, not an LLM-facing layout primitive
|
|
7
7
|
*/
|
|
8
8
|
import { Component, type ErrorInfo, type ReactNode } from 'react';
|
|
9
|
-
interface ErrorBoundaryProps {
|
|
9
|
+
export interface ErrorBoundaryProps {
|
|
10
10
|
children: ReactNode;
|
|
11
11
|
slotLabel?: string;
|
|
12
12
|
minHeight?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type ErrorPatternProps = {
|
|
1
|
+
export type ErrorPatternProps = {
|
|
2
2
|
/** Large recovery headline rendered through the animated cascade treatment. */
|
|
3
3
|
displayText?: string;
|
|
4
4
|
/** Supporting message explaining the recovery state to the user. */
|
|
@@ -6,4 +6,3 @@ type ErrorPatternProps = {
|
|
|
6
6
|
};
|
|
7
7
|
/** @public */
|
|
8
8
|
export declare function ErrorPattern({ displayText, message, }: ErrorPatternProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
@@ -35,5 +35,11 @@ export type FoundationSwatchProps = {
|
|
|
35
35
|
/** Explicit color value (hex or CSS var name) to pin the token chip's swatch square, overriding auto-resolution from tokenPath. */
|
|
36
36
|
swatchVar?: string;
|
|
37
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* FoundationSwatch - governed foundation specimen for color and semantic role previews.
|
|
40
|
+
*
|
|
41
|
+
* @deprecated FoundationSwatch is an HDS docs/lab internal (foundation specimen preview for the token/foundation doc pages), not a consumer-facing HDS surface. It will be retiered to `utility` (dropped from the published barrel) at the named major.
|
|
42
|
+
* @removeIn 1.0.0
|
|
43
|
+
*/
|
|
38
44
|
export declare function FoundationSwatch({ label, hidePreviewLabel, tokenPath, tokenDisplayPreset, previewPosition, background, value, details, foreground, specimen, note, bordered, swatchVar, }: FoundationSwatchProps): import("react/jsx-runtime").JSX.Element;
|
|
39
45
|
export {};
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import React from 'react';
|
|
21
21
|
type FrameRadius = 'none' | 'sm' | 'md' | 'full';
|
|
22
|
-
interface FrameProps {
|
|
22
|
+
export interface FrameProps {
|
|
23
23
|
/** Media rendered inside the locked-ratio, clipped frame. */
|
|
24
24
|
children: React.ReactNode;
|
|
25
25
|
/** Desired width-to-height ratio, e.g. `16 / 9`. Defaults to `16 / 9`. */
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
import React, { type ReactNode, type CSSProperties } from 'react';
|
|
28
28
|
type SemanticGap = 'tight' | 'normal' | 'inset' | 'spacious';
|
|
29
29
|
type GridLayout = 'fixed' | 'auto-fit';
|
|
30
|
-
interface GridProps {
|
|
30
|
+
export interface GridProps {
|
|
31
31
|
/** Grid content. */
|
|
32
32
|
children: ReactNode;
|
|
33
33
|
/** Grid layout mode: 'fixed' (responsive) or 'auto-fit' (card wrapping). Defaults to 'fixed'. */
|
|
@@ -45,7 +45,7 @@ interface GridProps {
|
|
|
45
45
|
/** Element rendered as the outer wrapper. Defaults to 'div'. */
|
|
46
46
|
as?: React.ElementType;
|
|
47
47
|
}
|
|
48
|
-
interface GridItemProps {
|
|
48
|
+
export interface GridItemProps {
|
|
49
49
|
children: ReactNode;
|
|
50
50
|
/** Number of columns this item spans (out of the grid's column count). */
|
|
51
51
|
colSpan?: number;
|
|
@@ -30,7 +30,7 @@ type HdsHeadingLevel = NonNullable<HeadingStackLevelVariantProps['level']>;
|
|
|
30
30
|
type HdsHeadingGap = NonNullable<HeadingStackGapVariantProps['gap']>;
|
|
31
31
|
type HdsHeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
32
32
|
type HdsSupportingTag = 'p' | 'div' | 'span';
|
|
33
|
-
interface HeadingStackProps {
|
|
33
|
+
export interface HeadingStackProps {
|
|
34
34
|
/** The heading content (string). */
|
|
35
35
|
heading: string;
|
|
36
36
|
/** The supporting copy rendered beneath the heading. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LucideIcon } from 'lucide-react';
|
|
2
2
|
import { ButtonProps } from './button.js';
|
|
3
3
|
import { IconSize } from './icon.js';
|
|
4
|
-
interface IconButtonProps extends Omit<ButtonProps, 'iconOnly' | 'children' | 'size'> {
|
|
4
|
+
export interface IconButtonProps extends Omit<ButtonProps, 'iconOnly' | 'children' | 'size'> {
|
|
5
5
|
/** Lucide icon rendered inside the button. */
|
|
6
6
|
icon: LucideIcon;
|
|
7
7
|
/** Size token for the button itself. */
|
|
@@ -20,4 +20,3 @@ interface IconButtonProps extends Omit<ButtonProps, 'iconOnly' | 'children' | 's
|
|
|
20
20
|
*/
|
|
21
21
|
/** @public */
|
|
22
22
|
export declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
23
|
-
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface LightboxProps {
|
|
1
|
+
export interface LightboxProps {
|
|
2
2
|
open: boolean;
|
|
3
3
|
onClose: () => void;
|
|
4
4
|
src: string;
|
|
@@ -10,4 +10,3 @@ interface LightboxProps {
|
|
|
10
10
|
captionLabel?: string;
|
|
11
11
|
}
|
|
12
12
|
export declare function Lightbox({ open, onClose, src, alt, naturalWidth, naturalHeight, caption, captionHref, captionLabel, }: LightboxProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export {};
|
|
@@ -4,7 +4,7 @@ declare const inlineCodeVariants: (props?: {
|
|
|
4
4
|
density?: "compact" | "comfortable";
|
|
5
5
|
} & import("class-variance-authority/dist/types").ClassProp) => string;
|
|
6
6
|
type InlineCodeVariantProps = VariantProps<typeof inlineCodeVariants>;
|
|
7
|
-
type InlineCodeProps = {
|
|
7
|
+
export type InlineCodeProps = {
|
|
8
8
|
children: ReactNode;
|
|
9
9
|
style?: CSSProperties;
|
|
10
10
|
/** Layout density. `compact` tightens vertical rhythm for dense body copy and table prose. Defaults to `comfortable`. */
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @figma https://www.figma.com/design/c8MaVgwxOlxm4wr8wnH0Z4/HDS-Tokens-Components?node-id=89-161
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
-
interface InlineLinkProps {
|
|
8
|
+
export interface InlineLinkProps {
|
|
9
9
|
/** Destination route or URL. */
|
|
10
10
|
href: string;
|
|
11
11
|
/** Inline label or content to render inside the link. */
|
|
@@ -15,4 +15,3 @@ interface InlineLinkProps {
|
|
|
15
15
|
}
|
|
16
16
|
/** @public */
|
|
17
17
|
export declare function InlineLink({ href, children, externalIcon }: InlineLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
export {};
|
|
@@ -10,7 +10,7 @@ type NavGroupVariant = 'side' | 'toc';
|
|
|
10
10
|
declare const navGroupLabelVariants: (props?: {
|
|
11
11
|
variant?: "side" | "toc";
|
|
12
12
|
} & import("class-variance-authority/dist/types").ClassProp) => string;
|
|
13
|
-
type NavGroupProps = {
|
|
13
|
+
export type NavGroupProps = {
|
|
14
14
|
label?: string;
|
|
15
15
|
variant?: NavGroupVariant;
|
|
16
16
|
level?: NavLevel;
|
|
@@ -11,7 +11,7 @@ declare const navIndicatorVariants: (props?: {
|
|
|
11
11
|
type NavItemVariantProps = VariantProps<typeof navItemVariants>;
|
|
12
12
|
type NavVariant = NonNullable<NavItemVariantProps['variant']>;
|
|
13
13
|
type NavNativeProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'onClick'>;
|
|
14
|
-
interface NavProps extends NavNativeProps {
|
|
14
|
+
export interface NavProps extends NavNativeProps {
|
|
15
15
|
/** Visual layout variant for side nav or table of contents usage. */
|
|
16
16
|
variant?: NavVariant;
|
|
17
17
|
/** Text label displayed inside the navigation row. */
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
import type { ReactNode, CSSProperties } from 'react';
|
|
29
29
|
type MaxWidth = 'content' | 'max';
|
|
30
30
|
type PaddingY = 'default' | 'compact' | 'none';
|
|
31
|
-
interface PageProps {
|
|
31
|
+
export interface PageProps {
|
|
32
32
|
children: ReactNode;
|
|
33
33
|
/** Max width: 'content' (760px for prose) | 'max' (1200px). Defaults to 'max'. */
|
|
34
34
|
maxWidth?: MaxWidth;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* `@hirobius/design-system/scroll`. See ADR-021.
|
|
14
14
|
*/
|
|
15
15
|
import React from 'react';
|
|
16
|
-
interface PinProps {
|
|
16
|
+
export interface PinProps {
|
|
17
17
|
/** Content pinned within the scroll region. */
|
|
18
18
|
children: React.ReactNode;
|
|
19
19
|
/** Sticky offset from the top of the scroll region (CSS length). Defaults to '0'. */
|
|
@@ -27,4 +27,3 @@ interface PinProps {
|
|
|
27
27
|
}
|
|
28
28
|
/** @public */
|
|
29
29
|
export declare const Pin: React.ForwardRefExoticComponent<PinProps & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
-
export {};
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { InputHTMLAttributes } from 'react';
|
|
8
8
|
/** HdsRadio — radio button with animated selection indicator. */
|
|
9
9
|
export type HdsRadioDemoState = 'rest' | 'hover' | 'focused' | 'pressed' | 'disabled';
|
|
10
|
-
interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'onChange'> {
|
|
10
|
+
export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'onChange'> {
|
|
11
11
|
/** Radio label displayed next to the control. */
|
|
12
12
|
label: string;
|
|
13
13
|
/** Current checked state. */
|
|
@@ -16,4 +16,3 @@ interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'
|
|
|
16
16
|
onChange: (v: boolean) => void;
|
|
17
17
|
}
|
|
18
18
|
export declare const HdsRadio: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
19
|
-
export {};
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import React from 'react';
|
|
16
16
|
export type RevealAnimation = 'fade' | 'fade-up' | 'fade-down' | 'scale';
|
|
17
|
-
interface RevealProps {
|
|
17
|
+
export interface RevealProps {
|
|
18
18
|
/** Content revealed as it scrolls into view. */
|
|
19
19
|
children: React.ReactNode;
|
|
20
20
|
/** Entrance animation. Defaults to 'fade-up'. */
|
|
@@ -28,4 +28,3 @@ interface RevealProps {
|
|
|
28
28
|
}
|
|
29
29
|
/** @public */
|
|
30
30
|
export declare const Reveal: React.ForwardRefExoticComponent<RevealProps & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
-
export {};
|
|
@@ -39,7 +39,7 @@ interface HdsSegmentedOption {
|
|
|
39
39
|
/** Optional supporting description shown below the label. */
|
|
40
40
|
description?: string;
|
|
41
41
|
}
|
|
42
|
-
interface SegmentedControlProps {
|
|
42
|
+
export interface SegmentedControlProps {
|
|
43
43
|
/** Accessible label for the control. */
|
|
44
44
|
label?: string;
|
|
45
45
|
/** Accessible label when no visible label should be rendered. */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HdsSelect — dropdown selector built on Radix Select.
|
|
3
|
+
* @category Inputs
|
|
4
|
+
* @tier primitive
|
|
5
|
+
* @figma https://www.figma.com/design/c8MaVgwxOlxm4wr8wnH0Z4/HDS-Tokens-Components?node-id=82-49
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* HdsSelect — dropdown selector built on Radix Select (ADR-001 Radix convention).
|
|
9
|
+
* Radix owns the listbox a11y contract: managed focus + active-descendant, typeahead,
|
|
10
|
+
* full keyboard (Home/End/PageUp-Down/wrap), Popper collision/flip positioning, and
|
|
11
|
+
* dismissal. The HDS surface is styled with the token-backed Tailwind idiom used by
|
|
12
|
+
* tabs.tsx / command-palette.tsx; `ref` targets the trigger button.
|
|
13
|
+
*/
|
|
14
|
+
export interface SelectProps {
|
|
15
|
+
/** Select label rendered above the control. */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Controls whether the label is rendered. */
|
|
18
|
+
showLabel?: boolean;
|
|
19
|
+
/** Select options displayed in the dropdown. */
|
|
20
|
+
options: {
|
|
21
|
+
value: string;
|
|
22
|
+
label: string;
|
|
23
|
+
}[];
|
|
24
|
+
/** Currently selected value. */
|
|
25
|
+
value: string;
|
|
26
|
+
/** Called when the user picks a different option. */
|
|
27
|
+
onChange: (v: string) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const HdsSelect: import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
import React from 'react';
|
|
23
23
|
type SidebarSide = 'start' | 'end';
|
|
24
24
|
type LayoutGap = 'tight' | 'normal' | 'inset' | 'spacious';
|
|
25
|
-
interface SidebarProps {
|
|
25
|
+
export interface SidebarProps {
|
|
26
26
|
/** Exactly two children: the rail first, the fluid content second (DOM order — `side` only changes visual order). */
|
|
27
27
|
children: [React.ReactNode, React.ReactNode];
|
|
28
28
|
/** Which visual edge the rail renders on. Defaults to 'start'. */
|
|
@@ -10,4 +10,10 @@ export interface SketchProps {
|
|
|
10
10
|
children: ReactNode;
|
|
11
11
|
controls?: ReactNode;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Sketch — shared shell for generative canvases and WebGL sketches.
|
|
15
|
+
*
|
|
16
|
+
* @deprecated Sketch is an HDS docs/lab internal (shell for generative canvas/WebGL specimen pages), not a consumer-facing HDS surface. It will be retiered to `utility` (dropped from the published barrel) at the named major.
|
|
17
|
+
* @removeIn 1.0.0
|
|
18
|
+
*/
|
|
13
19
|
export declare function Sketch({ title, children, controls }: SketchProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @figma https://www.figma.com/design/c8MaVgwxOlxm4wr8wnH0Z4/HDS-Tokens-Components?node-id=82-265
|
|
6
6
|
*/
|
|
7
7
|
/** HdsSlider — range slider with label and value display. */
|
|
8
|
-
interface SliderProps {
|
|
8
|
+
export interface SliderProps {
|
|
9
9
|
/** Slider label. */
|
|
10
10
|
label: string;
|
|
11
11
|
/** Minimum value in the range. */
|
|
@@ -20,4 +20,3 @@ interface SliderProps {
|
|
|
20
20
|
onChange: (v: number) => void;
|
|
21
21
|
}
|
|
22
22
|
export declare const HdsSlider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
23
|
-
export {};
|
|
@@ -14,7 +14,7 @@ type SectionGap = 'stack';
|
|
|
14
14
|
type GapOption = SemanticGap | ComponentGap | SubgridGap | SectionGap | keyof typeof hds.space;
|
|
15
15
|
type FlexAlign = 'start' | 'center' | 'end' | 'stretch';
|
|
16
16
|
type FlexJustify = 'start' | 'center' | 'end' | 'space-between';
|
|
17
|
-
interface StackProps {
|
|
17
|
+
export interface StackProps {
|
|
18
18
|
/** Stack content rendered inside the flex wrapper. */
|
|
19
19
|
children: React.ReactNode;
|
|
20
20
|
/** Flex direction for the stack. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface StepperFieldProps {
|
|
1
|
+
export interface StepperFieldProps {
|
|
2
2
|
label: string;
|
|
3
3
|
value: number;
|
|
4
4
|
min: number;
|
|
@@ -10,4 +10,3 @@ interface StepperFieldProps {
|
|
|
10
10
|
}
|
|
11
11
|
/** @public */
|
|
12
12
|
export declare function StepperField({ label, value, min, max, step, onChange, inputStep, precision, }: StepperFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export {};
|
|
@@ -6,7 +6,7 @@ declare const surfaceVariants: (props?: {
|
|
|
6
6
|
shadow?: boolean;
|
|
7
7
|
} & import("class-variance-authority/dist/types").ClassProp) => string;
|
|
8
8
|
type SurfaceVariantProps = VariantProps<typeof surfaceVariants>;
|
|
9
|
-
interface SurfaceProps extends Omit<HTMLAttributes<HTMLDivElement>, 'style' | 'className'>, Omit<SurfaceVariantProps, 'shadow'> {
|
|
9
|
+
export interface SurfaceProps extends Omit<HTMLAttributes<HTMLDivElement>, 'style' | 'className'>, Omit<SurfaceVariantProps, 'shadow'> {
|
|
10
10
|
/** Surface content. */
|
|
11
11
|
children?: ReactNode;
|
|
12
12
|
/** Padding: 'component' (24px, default) | 'item' (16px) | primitive px values | 'none' (0px). */
|