@hirobius/design-system 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/AGENTS.md +13 -1
- package/CHANGELOG.md +1043 -0
- package/CONSUMING.md +25 -11
- package/DESIGN.md +24 -24
- package/MIGRATIONS.md +603 -0
- package/NOTICE.md +1 -1
- package/README.md +22 -12
- package/UPGRADING.md +243 -0
- package/codemods/hds-prefix.mjs +28 -13
- package/codemods/jsx-fold.mjs +28 -13
- package/codemods/lib/atomic-write.mjs +28 -0
- package/codemods/lib/installed-version.mjs +354 -0
- package/codemods/lib/project.mjs +395 -0
- package/codemods/lib/record.mjs +110 -0
- package/codemods/lib/scan.mjs +323 -0
- package/codemods/lib/semver.mjs +57 -0
- package/codemods/not-found-pattern.mjs +3 -3
- package/codemods/patterns-subpath.mjs +28 -12
- package/codemods/registry.mjs +67 -0
- package/codemods/tile-grid.mjs +3 -3
- package/codemods/upgrade.mjs +909 -0
- package/dist/chunks/{empty-state-DNoThgfV.js → empty-state-ChC_xZfg.js} +109 -92
- package/dist/chunks/{form-By82qZcC.js → form-zCZ_B83I.js} +16 -16
- package/dist/css-contract.json +1 -0
- package/dist/fonts/ibm-plex-mono-400.woff2 +0 -0
- package/dist/fonts.css +5 -5
- package/dist/form.js +1 -1
- package/dist/hirobius-ui.js +1254 -1181
- package/dist/manifest.js +6 -5
- package/dist/patterns.js +164 -162
- package/dist/styles.css +1 -1
- package/dist/tokens.css +1 -1
- package/dist/tokens.js +14 -1
- package/dist/types/src/app/components/alert-dialog.d.ts +1 -1
- package/dist/types/src/app/components/alert.d.ts +1 -1
- package/dist/types/src/app/components/asset-img.d.ts +2 -1
- package/dist/types/src/app/components/avatar-group.d.ts +1 -1
- package/dist/types/src/app/components/avatar.d.ts +1 -1
- package/dist/types/src/app/components/badge.d.ts +1 -1
- package/dist/types/src/app/components/blockquote.d.ts +1 -1
- package/dist/types/src/app/components/breadcrumb.d.ts +1 -1
- package/dist/types/src/app/components/button.d.ts +2 -2
- package/dist/types/src/app/components/callout.d.ts +3 -2
- package/dist/types/src/app/components/card.d.ts +6 -4
- package/dist/types/src/app/components/checkbox.d.ts +1 -1
- package/dist/types/src/app/components/code-block.d.ts +2 -1
- package/dist/types/src/app/components/combobox.d.ts +2 -2
- package/dist/types/src/app/components/data-table-section.d.ts +2 -1
- package/dist/types/src/app/components/destructive-section.d.ts +2 -1
- package/dist/types/src/app/components/dialog.d.ts +1 -1
- package/dist/types/src/app/components/disclosure.d.ts +1 -1
- package/dist/types/src/app/components/divider.d.ts +2 -2
- package/dist/types/src/app/components/empty-state.d.ts +1 -1
- package/dist/types/src/app/components/field.d.ts +1 -1
- package/dist/types/src/app/components/form-actions.d.ts +2 -1
- package/dist/types/src/app/components/form.d.ts +2 -1
- package/dist/types/src/app/components/grid.d.ts +1 -1
- package/dist/types/src/app/components/hds-tooltip.d.ts +1 -1
- package/dist/types/src/app/components/icon.d.ts +2 -2
- package/dist/types/src/app/components/inline-link.d.ts +1 -1
- package/dist/types/src/app/components/input.d.ts +1 -1
- package/dist/types/src/app/components/kbd.d.ts +1 -1
- package/dist/types/src/app/components/menu.d.ts +1 -1
- package/dist/types/src/app/components/metadata-list.d.ts +1 -1
- package/dist/types/src/app/components/metric-tiles.d.ts +3 -1
- package/dist/types/src/app/components/page-header.d.ts +1 -0
- package/dist/types/src/app/components/page.d.ts +1 -0
- package/dist/types/src/app/components/pagination.d.ts +1 -1
- package/dist/types/src/app/components/popover.d.ts +1 -1
- package/dist/types/src/app/components/progress.d.ts +1 -1
- package/dist/types/src/app/components/radio.d.ts +1 -1
- package/dist/types/src/app/components/reveal.d.ts +1 -0
- package/dist/types/src/app/components/select.d.ts +1 -1
- package/dist/types/src/app/components/skeleton.d.ts +1 -1
- package/dist/types/src/app/components/slider.d.ts +1 -1
- package/dist/types/src/app/components/spinner.d.ts +1 -1
- package/dist/types/src/app/components/stack.d.ts +1 -1
- package/dist/types/src/app/components/stat.d.ts +1 -1
- package/dist/types/src/app/components/status-list-item.d.ts +1 -1
- package/dist/types/src/app/components/status-tile.d.ts +1 -1
- package/dist/types/src/app/components/table.d.ts +1 -1
- package/dist/types/src/app/components/tabs.d.ts +4 -2
- package/dist/types/src/app/components/tag.d.ts +1 -1
- package/dist/types/src/app/components/text.d.ts +1 -1
- package/dist/types/src/app/components/textarea.d.ts +1 -1
- package/dist/types/src/app/components/timestamp.d.ts +1 -1
- package/dist/types/src/app/components/toast.d.ts +1 -1
- package/dist/types/src/app/components/toggle.d.ts +1 -1
- package/dist/types/src/app/context/hds-theme.d.ts +1 -1
- package/dist/types/src/app/design-system/generated-token-refs.d.ts +13 -0
- package/dist/types/src/app/design-system/generated-token-values.d.ts +14 -1
- package/dist/types/src/app/hooks/useInteractionState.d.ts +7 -1
- package/dist/types/src/index.d.ts +126 -32
- package/dist/variables.css +33 -22
- package/docs/CONSUMING.md +2 -2
- package/hirobius.tokens.json +173 -79
- package/llms.txt +29 -7
- package/mcp/catalog.mjs +10 -7
- package/mcp/core-set.mjs +66 -0
- package/mcp/guide.mjs +9 -52
- package/package.json +28 -11
- package/public/hds-manifest.json +365 -207
- package/public/llms/components.txt +1 -1
- package/public/llms-full.txt +54 -32
- package/public/llms.txt +29 -7
- package/src/app/data/component-api.json +104 -71
- package/upgrade/index.json +215 -0
- package/upgrade/releases/0.17.0.json +962 -0
- package/upgrade/releases/0.18.0.json +8 -0
- package/upgrade/releases/0.19.0.json +233 -0
- package/upgrade/releases/0.19.1.json +8 -0
- package/upgrade/releases/0.20.0.json +5108 -0
- package/upgrade/releases/0.21.0.json +538 -0
- package/upgrade/releases/0.22.0.json +94 -0
- package/upgrade/releases/0.23.0.json +259 -0
- package/upgrade/schema.json +1102 -0
- package/dist/fonts/geist-mono-400.woff2 +0 -0
package/dist/tokens.js
CHANGED
|
@@ -42,6 +42,19 @@ const a = {
|
|
|
42
42
|
700: "#047857",
|
|
43
43
|
950: "#022c22"
|
|
44
44
|
},
|
|
45
|
+
apple: {
|
|
46
|
+
50: "#f2faeb",
|
|
47
|
+
100: "#e2f3cf",
|
|
48
|
+
200: "#c7e7a4",
|
|
49
|
+
300: "#a6d873",
|
|
50
|
+
400: "#85c84c",
|
|
51
|
+
500: "#66b239",
|
|
52
|
+
600: "#54922d",
|
|
53
|
+
700: "#416f20",
|
|
54
|
+
800: "#34571b",
|
|
55
|
+
900: "#2b4518",
|
|
56
|
+
950: "#16250c"
|
|
57
|
+
},
|
|
45
58
|
violet: {
|
|
46
59
|
50: "#f5f3ff",
|
|
47
60
|
400: "#a78bfa",
|
|
@@ -122,7 +135,7 @@ const a = {
|
|
|
122
135
|
family: {
|
|
123
136
|
primary: ["Satoshi", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "sans-serif"],
|
|
124
137
|
display: ["Satoshi", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "sans-serif"],
|
|
125
|
-
mono: ["
|
|
138
|
+
mono: ["IBM Plex Mono", "Courier New", "monospace"]
|
|
126
139
|
},
|
|
127
140
|
size: {
|
|
128
141
|
xs: "12px",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* AlertDialog — modal confirmation dialog on Radix AlertDialog.
|
|
3
3
|
* @category Overlays
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2035-24
|
|
6
6
|
* @doc-exempt: no Overlays doc page yet — add demo when the overlays page is created
|
|
7
7
|
*
|
|
8
8
|
* Radix AlertDialog (@radix-ui/react-alert-dialog) themed with the overlay role
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A brief confirmation that should disappear on its own, or a status label.
|
|
7
7
|
* @useInstead ToastProvider a brief confirmation that fades away
|
|
8
8
|
* @useInstead Badge a short status label
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=33-34
|
|
10
10
|
*/
|
|
11
11
|
import React from 'react';
|
|
12
12
|
type AlertTone = 'success' | 'danger' | 'warning' | 'info';
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* AssetImg - responsive asset frame with fallback placeholder handling.
|
|
3
3
|
* Contexts: default, lightbox, and detail.
|
|
4
4
|
* @category Display
|
|
5
|
+
* @usage Show an image that scales to its frame, with a placeholder if it fails to load.
|
|
5
6
|
* @tier primitive
|
|
6
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
7
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2041-67
|
|
7
8
|
*/
|
|
8
9
|
import { CSSProperties } from 'react';
|
|
9
10
|
import type React from 'react';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* AvatarGroup — an overlapping cluster of Avatars with an overflow count.
|
|
3
3
|
* @category Display
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2030-63
|
|
6
6
|
*/
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A generic pictogram, or a status marker.
|
|
7
7
|
* @useInstead Icon a generic pictogram
|
|
8
8
|
* @useInstead Badge a status marker
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=34-18
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A chip people can toggle, or a message that needs a sentence.
|
|
7
7
|
* @useInstead Tag an interactive filter or category chip
|
|
8
8
|
* @useInstead Alert a message that needs a sentence
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=31-15
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Blockquote — quoted passage with an optional attribution.
|
|
3
3
|
* @category Typography
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2024-18
|
|
6
6
|
*/
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot Switching between sibling views, or stepping through pages of results.
|
|
7
7
|
* @useInstead Tabs switching between sibling views
|
|
8
8
|
* @useInstead Pagination stepping through pages of results
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=86-159
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
/** @public */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @category Actions
|
|
3
3
|
* @tier primitive
|
|
4
|
-
* @figma https://www.figma.com/design/
|
|
4
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=28-138
|
|
5
5
|
* @figma Variant=Button/Variant
|
|
6
6
|
* @figma Size=Button/Size
|
|
7
7
|
*/
|
|
@@ -65,7 +65,7 @@ export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonE
|
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* Triggers an action when activated.
|
|
68
|
-
* @usage
|
|
68
|
+
* @usage Run an action, such as submit, save or open a dialog. For an icon-only control pass iconOnly, iconLeft and label; for an on/off toggle pass pressed.
|
|
69
69
|
* @whenNot Navigating to another page, where a link is the correct element.
|
|
70
70
|
* @useInstead InlineLink navigation to another page
|
|
71
71
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @category Feedback
|
|
3
3
|
* @tier primitive
|
|
4
|
-
* @figma https://www.figma.com/design/
|
|
4
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-85
|
|
5
5
|
*/
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -18,7 +18,8 @@ export interface CalloutProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
18
18
|
italic?: boolean;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* Tone-driven
|
|
21
|
+
* Tone-driven tinted callout for notes, quotes, hypotheses — the same feedback
|
|
22
|
+
* fill language as Alert, without Alert's icon or status role.
|
|
22
23
|
*/
|
|
23
24
|
export declare const Callout: React.ForwardRefExoticComponent<CalloutProps & React.RefAttributes<HTMLDivElement>>;
|
|
24
25
|
export default Callout;
|
|
@@ -39,9 +39,11 @@
|
|
|
39
39
|
* Existing callers that pass raw children continue to work; new callers
|
|
40
40
|
* should prefer compound parts + `padding="none"`.
|
|
41
41
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* The default variant is BORDERLESS at rest (12d-3 outline rule) — depth comes
|
|
43
|
+
* from whitespace/dividers, not an edge. A resting 1px border is opt-in via
|
|
44
|
+
* `bordered` (border.default), a feedback `tone`, or `accent` (border.accent).
|
|
45
|
+
* Elevation tokens are not bound by default — pass `className="shadow-..."` for
|
|
46
|
+
* a hover/floating treatment on interactive cards.
|
|
45
47
|
*/
|
|
46
48
|
import * as React from 'react';
|
|
47
49
|
import hds from '../design-system/tokens.js';
|
|
@@ -139,7 +141,7 @@ declare const CardMetric: React.ForwardRefExoticComponent<CardMetricProps & Reac
|
|
|
139
141
|
/**
|
|
140
142
|
* Tagged per-export, not on the file block: this module exports eight
|
|
141
143
|
* components and a file-level @figma would hand all eight this one node.
|
|
142
|
-
* @figma https://www.figma.com/design/
|
|
144
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=39-11
|
|
143
145
|
* @usage Group related content on a raised surface with header, body, footer and metric slots, or as one selectable option.
|
|
144
146
|
* @whenNot A bare padded background with no slot anatomy, or a single headline figure.
|
|
145
147
|
* @useInstead Surface a padded background without slot anatomy
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot An immediate on/off setting, or a choice of exactly one option from a set.
|
|
7
7
|
* @useInstead Toggle a setting that applies as soon as it flips
|
|
8
8
|
* @useInstead Radio exactly one choice from a set
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=35-29
|
|
10
10
|
*/
|
|
11
11
|
import type { InputHTMLAttributes } from 'react';
|
|
12
12
|
/** Checkbox — custom-drawn checkbox with check / indeterminate glyph. */
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CodeBlock - code display with copy button and optional collapsible toggle.
|
|
3
3
|
* @category Display
|
|
4
|
+
* @usage Show a code sample with a copy button, optionally collapsed.
|
|
4
5
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/
|
|
6
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=89-154
|
|
6
7
|
*/
|
|
7
8
|
declare const blockContainerVariants: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
8
9
|
declare const inlineWrapperVariants: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
* @useInstead Select a short list without search
|
|
8
8
|
* @useInstead Menu firing actions from a trigger
|
|
9
9
|
* @keyboard Enter/Space Opens the list from the trigger and moves focus to the search field.
|
|
10
|
-
* @keyboard ArrowDown/ArrowUp Moves the active option and wraps at the ends.
|
|
10
|
+
* @keyboard ArrowDown/ArrowUp Moves the active option, skipping disabled ones, and wraps at the ends.
|
|
11
11
|
* @keyboard Character Filters the options to those matching the typed text.
|
|
12
12
|
* @keyboard Enter Commits the active option and closes the list; with `multiple`, toggles it and keeps the list open.
|
|
13
13
|
* @keyboard Escape Closes the list.
|
|
14
14
|
* @keyboard Tab Stays inside the open list.
|
|
15
|
-
* @figma https://www.figma.com/design/
|
|
15
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=82-237
|
|
16
16
|
* @doc-exempt: no Inputs-overlay doc page yet — add demo when created
|
|
17
17
|
*
|
|
18
18
|
* A select-with-search built on the HDS Popover. The trigger shows the current
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DataTableSection - a titled table with a toolbar, row actions and an empty state.
|
|
3
3
|
* @category Display
|
|
4
|
+
* @usage Put a heading and toolbar above a Table.
|
|
4
5
|
* @tier pattern
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
6
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2075-268
|
|
6
7
|
*/
|
|
7
8
|
import * as React from 'react';
|
|
8
9
|
import { type TableColumn } from './table.js';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DestructiveSection - the one place a screen puts an irreversible action.
|
|
3
3
|
* @category Actions
|
|
4
|
+
* @usage Put a dangerous action, such as delete, in its own section with a warning and a confirm step.
|
|
4
5
|
* @tier pattern
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
6
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2076-3
|
|
6
7
|
*/
|
|
7
8
|
import * as React from 'react';
|
|
8
9
|
/** @public */
|
|
@@ -97,7 +97,7 @@ interface DialogComponent extends React.FC<DialogProps> {
|
|
|
97
97
|
* @keyboard Escape Closes the dialog and returns focus to the trigger.
|
|
98
98
|
* @keyboard Tab Cycles focus inside the open dialog.
|
|
99
99
|
* @keyboard Shift+Tab Cycles focus backwards inside the open dialog.
|
|
100
|
-
* @figma https://www.figma.com/design/
|
|
100
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=93-27
|
|
101
101
|
*/
|
|
102
102
|
export declare const Dialog: DialogComponent;
|
|
103
103
|
export { DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, };
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @usage Hide optional explanatory content behind a heading that people can expand.
|
|
6
6
|
* @whenNot Content people must see, or switching between panels.
|
|
7
7
|
* @useInstead Tabs switching between panels of content
|
|
8
|
-
* @figma https://www.figma.com/design/
|
|
8
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-453
|
|
9
9
|
*/
|
|
10
10
|
import React, { type CSSProperties, type ReactNode } from 'react';
|
|
11
11
|
type DisclosureVariant = 'panel' | 'nav' | 'card';
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Divider — semantic separator between content regions.
|
|
3
3
|
* @category Layout
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @usage Separate two
|
|
5
|
+
* @usage Separate two blocks of content with a thin line.
|
|
6
6
|
* @whenNot Spacing alone would do, or the separation needs a container.
|
|
7
7
|
* @useInstead Stack gap-based spacing between siblings
|
|
8
8
|
* @useInstead Surface a bounded region with its own background
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=89-26
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot Content that is still loading, or a full-page error.
|
|
7
7
|
* @useInstead Skeleton content that is still loading
|
|
8
8
|
* @useInstead Alert a message about something that went wrong
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-352
|
|
10
10
|
* @ai-intent Inline empty-state placeholder so any list, grid, or section can
|
|
11
11
|
* communicate "no data yet" with consistent muted typography instead of agents
|
|
12
12
|
* inventing one-off `<p>No items.</p>` lines.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @whenNot Editable input, or a single headline figure.
|
|
6
6
|
* @useInstead Input an editable single-line value
|
|
7
7
|
* @useInstead Card.Metric a headline figure inside a Card
|
|
8
|
-
* @figma https://www.figma.com/design/
|
|
8
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=85-81
|
|
9
9
|
*/
|
|
10
10
|
import * as React from 'react';
|
|
11
11
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* FormActions - the footer row of a form: primary right-most, secondary to its left.
|
|
3
3
|
* @category Actions
|
|
4
|
+
* @usage Lay out a form's buttons in a fixed order: danger on the left, then secondary, then primary on the right.
|
|
4
5
|
* @tier pattern
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
6
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2075-87
|
|
6
7
|
*/
|
|
7
8
|
import * as React from 'react';
|
|
8
9
|
/** @public */
|
|
@@ -34,10 +34,11 @@ import * as React from 'react';
|
|
|
34
34
|
export type FormProps = React.FormHTMLAttributes<HTMLFormElement>;
|
|
35
35
|
/**
|
|
36
36
|
* Styled `<form>` with consistent vertical field rhythm.
|
|
37
|
+
* @usage Wrap form fields so they stack with even spacing.
|
|
37
38
|
*
|
|
38
39
|
* Tagged per-export: FormField and FormFieldShell share this module and have no
|
|
39
40
|
* Figma node, so a file-level @figma would claim this one for all three.
|
|
40
|
-
* @figma https://www.figma.com/design/
|
|
41
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=85-94
|
|
41
42
|
*/
|
|
42
43
|
export declare const Form: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<HTMLFormElement>>;
|
|
43
44
|
/** @public */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Grid — responsive grid composition primitive.
|
|
3
3
|
* @category Layout
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @usage Lay out content in
|
|
5
|
+
* @usage Lay out content in columns that adapt to the screen width, or line up nested content with subgrid.
|
|
6
6
|
* @whenNot A single row or column, or styling a surface.
|
|
7
7
|
* @useInstead Stack a single row or column
|
|
8
8
|
* @useInstead Box one-off layout that no named primitive covers
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tooltip — accessible hover/focus tooltip on Radix (Overlays).
|
|
3
3
|
* @category Overlays
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=93-15
|
|
6
6
|
* @doc-exempt: no Overlays doc page yet — add demo when the overlays page is created
|
|
7
7
|
*
|
|
8
8
|
* Radix Tooltip (@radix-ui/react-tooltip) themed with role tokens. Provides
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Icon — semantic icon wrapper for Lucide icons.
|
|
3
3
|
* @category Display
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
6
|
-
* @usage
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=27-2
|
|
6
|
+
* @usage Show a Lucide icon at a set size and color.
|
|
7
7
|
* @whenNot A control someone can activate, or a picture that carries content.
|
|
8
8
|
* @useInstead Button a clickable control, with iconOnly for an icon-only one
|
|
9
9
|
* @useInstead Avatar a picture of a person or entity
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot An action that changes something, or a control that needs button styling.
|
|
7
7
|
* @useInstead Button an action or a link that needs button styling
|
|
8
8
|
* @useInstead Text unlinked body copy
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=89-161
|
|
10
10
|
*/
|
|
11
11
|
import React from 'react';
|
|
12
12
|
export interface InlineLinkProps {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @useInstead Textarea multi-line text
|
|
8
8
|
* @useInstead Select a short fixed list
|
|
9
9
|
* @useInstead Combobox a long fixed list that needs search
|
|
10
|
-
* @figma https://www.figma.com/design/
|
|
10
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=38-20
|
|
11
11
|
*/
|
|
12
12
|
import * as React from 'react';
|
|
13
13
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Kbd — inline keyboard key / shortcut hint rendered as a native <kbd>.
|
|
3
3
|
* @category Display
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2026-9
|
|
6
6
|
* @usage Show a keyboard key or shortcut hint inline, as a native kbd element.
|
|
7
7
|
* @whenNot Code samples, or a control that runs the shortcut.
|
|
8
8
|
* @useInstead Text inline code and other typography
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Menu — dropdown menu (shadcn baseline, compound parts).
|
|
3
3
|
* @category Overlays
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=93-59
|
|
6
6
|
* @doc-exempt: no Overlays doc page yet — add demo when the overlays page is created
|
|
7
7
|
*
|
|
8
8
|
* Radix DropdownMenu (@radix-ui/react-dropdown-menu) themed with the overlay
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Owner, Updated…). The idiomatic replacement for badge-stickers-on-prose.
|
|
4
4
|
* @category Display
|
|
5
5
|
* @tier pattern
|
|
6
|
-
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components
|
|
6
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2041-47
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
9
|
import * as React from 'react';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MetricTiles - the default row of headline numbers on a screen.
|
|
3
3
|
* @category Display
|
|
4
|
+
* @usage Show a row of key numbers, one tile each.
|
|
4
5
|
* @tier pattern
|
|
5
6
|
*/
|
|
6
7
|
import * as React from 'react';
|
|
@@ -22,7 +23,8 @@ export interface MetricTileProps extends Omit<React.HTMLAttributes<HTMLDivElemen
|
|
|
22
23
|
* surface at one fixed min-height. Wraps `Card.Metric` (the sibling with the
|
|
23
24
|
* eyebrow / h2 / caption scale) and adds the surface and the fixed height, so a
|
|
24
25
|
* tile needs no enclosing `Card`.
|
|
25
|
-
* @
|
|
26
|
+
* @usage Show one key number with its label, inside a MetricTiles row.
|
|
27
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=2075-114
|
|
26
28
|
*/
|
|
27
29
|
export declare const MetricTile: React.ForwardRefExoticComponent<MetricTileProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
30
|
/** @public */
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @usage Move between pages of a long result set, with truncated page numbers.
|
|
6
6
|
* @whenNot A hierarchy trail, or a short list that fits on one page.
|
|
7
7
|
* @useInstead Breadcrumb a hierarchy trail
|
|
8
|
-
* @figma https://www.figma.com/design/
|
|
8
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=86-194
|
|
9
9
|
*/
|
|
10
10
|
import * as React from 'react';
|
|
11
11
|
type PageToken = number | 'ellipsis';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Popover — floating surface anchored to a trigger (shadcn baseline, compound parts).
|
|
3
3
|
* @category Overlays
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @figma https://www.figma.com/design/
|
|
5
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=93-32
|
|
6
6
|
* @doc-exempt: no Overlays doc page yet — add demo when the overlays page is created
|
|
7
7
|
*
|
|
8
8
|
* Radix Popover (@radix-ui/react-popover) themed with role tokens. Provides
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A wait of unknown length with no bar, or content that is still loading.
|
|
7
7
|
* @useInstead Spinner a wait of unknown length
|
|
8
8
|
* @useInstead Skeleton placeholder shapes for loading content
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-91
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @useInstead Checkbox independent options that can be ticked together
|
|
8
8
|
* @useInstead Select a long list that can collapse into a dropdown
|
|
9
9
|
* @useInstead SegmentedControl a compact switch between two to five views or modes
|
|
10
|
-
* @figma https://www.figma.com/design/
|
|
10
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=36-17
|
|
11
11
|
*/
|
|
12
12
|
import type { InputHTMLAttributes } from 'react';
|
|
13
13
|
/** Radio — radio button with animated selection indicator. */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reveal — reveal-on-scroll primitive via CSS scroll-driven animation.
|
|
3
3
|
* @category Motion
|
|
4
|
+
* @usage Fade content in as it scrolls into view.
|
|
4
5
|
* @tier primitive
|
|
5
6
|
* @ai-intent Fades/slides/scales content in as it enters the viewport, driven
|
|
6
7
|
* purely by scroll position (`animation-timeline: view()`) — no JS, no deps, no
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @keyboard Enter Commits the highlighted option and returns focus to the trigger.
|
|
14
14
|
* @keyboard Escape Closes the listbox and returns focus to the trigger.
|
|
15
15
|
* @keyboard Tab Does not leave the open listbox.
|
|
16
|
-
* @figma https://www.figma.com/design/
|
|
16
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=82-49
|
|
17
17
|
*/
|
|
18
18
|
/**
|
|
19
19
|
* Select — dropdown selector built on Radix Select (ADR-001 Radix convention).
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A task with measurable progress, or a wait with no layout to reserve.
|
|
7
7
|
* @useInstead Progress a task with measurable progress
|
|
8
8
|
* @useInstead Spinner a short wait with no layout to reserve
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-95
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @usage Pick a number within a known range by dragging, when the exact value matters less than the position.
|
|
6
6
|
* @whenNot A precise number the person must type or read exactly.
|
|
7
7
|
* @useInstead Input a precise typed value (type="number")
|
|
8
|
-
* @figma https://www.figma.com/design/
|
|
8
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=82-265
|
|
9
9
|
*/
|
|
10
10
|
/** Slider — range slider with label and value display. */
|
|
11
11
|
export interface SliderProps {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A task with measurable progress, or a region whose layout is known.
|
|
7
7
|
* @useInstead Progress a task with measurable progress
|
|
8
8
|
* @useInstead Skeleton a region whose layout is known
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-106
|
|
10
10
|
*/
|
|
11
11
|
import * as React from 'react';
|
|
12
12
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Stack — one-dimensional layout primitive.
|
|
3
3
|
* @category Layout
|
|
4
4
|
* @tier primitive
|
|
5
|
-
* @usage Space a row or column
|
|
5
|
+
* @usage Space items in a row or column with even gaps.
|
|
6
6
|
* @whenNot Multi-column layout, or giving content a background or padding.
|
|
7
7
|
* @useInstead Grid multi-column layout
|
|
8
8
|
* @useInstead Surface content that needs a background or padding
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @category Display
|
|
3
3
|
* @tier primitive
|
|
4
|
-
* @figma https://www.figma.com/design/
|
|
4
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-247
|
|
5
5
|
*/
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @category Display
|
|
3
3
|
* @tier pattern
|
|
4
|
-
* @figma https://www.figma.com/design/
|
|
4
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-350
|
|
5
5
|
*/
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { type VariantProps } from 'class-variance-authority';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @category Display
|
|
3
3
|
* @tier pattern
|
|
4
|
-
* @figma https://www.figma.com/design/
|
|
4
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=88-292
|
|
5
5
|
*/
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
export type StatusTileTone = 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @whenNot A single record, a short list of links, or content that reflows as cards.
|
|
7
7
|
* @useInstead Field one record as label and value pairs
|
|
8
8
|
* @useInstead Stack a short list of items
|
|
9
|
-
* @figma https://www.figma.com/design/
|
|
9
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=89-300
|
|
10
10
|
*/
|
|
11
11
|
import { type ReactNode } from 'react';
|
|
12
12
|
/** @public */
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
* Overflow:
|
|
16
16
|
* TabsList is horizontally scrollable (`overflow-x-auto whitespace-nowrap`)
|
|
17
17
|
* for cases like /ops/atlas with 8 tabs at narrow viewports. Scrollbar
|
|
18
|
-
* chrome is hidden cross-browser (-webkit / firefox / IE).
|
|
18
|
+
* chrome is hidden cross-browser (-webkit / firefox / IE). The trigger's
|
|
19
|
+
* focus ring is `ring-inset` because `overflow-x-auto` clips anything drawn
|
|
20
|
+
* outside the list box (an outer ring was cut on the first/last tab).
|
|
19
21
|
*
|
|
20
22
|
* @category Navigation
|
|
21
23
|
* @tier primitive
|
|
@@ -29,7 +31,7 @@ import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
|
29
31
|
* @whenNot A compact mode switch with no panels, or content that must all be visible.
|
|
30
32
|
* @useInstead SegmentedControl a compact switch with no panels
|
|
31
33
|
* @useInstead Disclosure optional content that expands in place
|
|
32
|
-
* @figma https://www.figma.com/design/
|
|
34
|
+
* @figma https://www.figma.com/design/2VgBbVpKiDnu0aftJEVyBQ/HDS-Tokens-Components?node-id=86-89
|
|
33
35
|
*/
|
|
34
36
|
export declare const Tabs: import("react").ForwardRefExoticComponent<TabsPrimitive.TabsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
35
37
|
export declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
|