astryx-dracula 0.5.0 → 0.6.2
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/BRAND.md +3 -3
- package/README.md +7 -4
- package/USAGE.md +49 -49
- package/astryx-dracula.d.ts +2 -2
- package/astryx-dracula.js +25 -9
- package/astryx-dracula.variants.d.ts +2 -2
- package/astryx.integration.mjs +1 -1
- package/icons.mjs +21 -17
- package/icons.tsx +69 -62
- package/package.json +125 -120
- package/shared/auth-chrome-config.ts +6 -6
- package/shared/auth-chrome.tsx +143 -144
- package/shared/auth-copy.ts +14 -14
- package/shared/chaptered-doc-config.ts +48 -51
- package/shared/chaptered-doc.tsx +267 -289
- package/shared/chart-hues.ts +25 -10
- package/shared/chart-labels.tsx +31 -30
- package/shared/chart-legend.tsx +55 -56
- package/shared/chart-panel-style.ts +3 -3
- package/shared/data-bar.tsx +97 -102
- package/shared/format-money.ts +1 -1
- package/shared/gallery-image.ts +6 -6
- package/shared/login-demo.ts +1 -1
- package/shared/metric-card.tsx +101 -105
- package/shared/metric-delta.tsx +28 -27
- package/shared/order-desk.tsx +205 -216
- package/shared/revenue-chart.tsx +145 -165
- package/shared/scene-castle.tsx +206 -291
- package/shared/scene-frame.tsx +33 -32
- package/shared/scene-hues.ts +17 -17
- package/shared/scene-tile.tsx +88 -92
- package/shared/settings-data.ts +119 -125
- package/shared/settings-rows.tsx +122 -159
- package/shared/sparkline.tsx +75 -88
- package/shared/sso-icons.tsx +10 -22
- package/shared/stars.tsx +16 -25
- package/templates/ai-chat-landing.template.mjs +5 -4
- package/templates/ai-chat-landing.tsx +473 -460
- package/templates/ai-chat.template.mjs +5 -4
- package/templates/ai-chat.tsx +543 -612
- package/templates/blank.template.mjs +5 -4
- package/templates/blank.tsx +18 -14
- package/templates/centered-hero.template.mjs +5 -4
- package/templates/centered-hero.tsx +55 -68
- package/templates/classic-gallery.template.mjs +5 -4
- package/templates/classic-gallery.tsx +97 -104
- package/templates/contact-form.template.mjs +5 -4
- package/templates/contact-form.tsx +247 -282
- package/templates/dashboard-portfolio.template.mjs +5 -4
- package/templates/dashboard-portfolio.tsx +717 -548
- package/templates/dashboard.template.mjs +5 -4
- package/templates/dashboard.tsx +596 -567
- package/templates/detail-page.template.mjs +5 -4
- package/templates/detail-page.tsx +546 -603
- package/templates/documentation-design.template.mjs +5 -4
- package/templates/documentation-design.tsx +231 -243
- package/templates/documentation-technical.template.mjs +5 -4
- package/templates/documentation-technical.tsx +236 -239
- package/templates/documentation.template.mjs +5 -4
- package/templates/documentation.tsx +267 -279
- package/templates/editor.template.mjs +5 -4
- package/templates/editor.tsx +844 -877
- package/templates/file-explorer.template.mjs +5 -4
- package/templates/file-explorer.tsx +566 -590
- package/templates/form-two-column.template.mjs +5 -4
- package/templates/form-two-column.tsx +195 -210
- package/templates/gallery-hero.template.mjs +5 -4
- package/templates/gallery-hero.tsx +93 -114
- package/templates/ide.template.mjs +5 -4
- package/templates/ide.tsx +407 -453
- package/templates/incident-console.template.mjs +5 -4
- package/templates/incident-console.tsx +593 -575
- package/templates/kanban-board.template.mjs +5 -4
- package/templates/kanban-board.tsx +665 -683
- package/templates/library.template.mjs +5 -4
- package/templates/library.tsx +409 -430
- package/templates/login-card.template.mjs +5 -4
- package/templates/login-card.tsx +63 -72
- package/templates/login-split.template.mjs +5 -4
- package/templates/login-split.tsx +192 -193
- package/templates/login-sso.template.mjs +5 -4
- package/templates/login-sso.tsx +257 -258
- package/templates/login.template.mjs +5 -4
- package/templates/login.tsx +53 -49
- package/templates/messaging-shell.template.mjs +5 -4
- package/templates/messaging-shell.tsx +556 -574
- package/templates/mixed-gallery.template.mjs +5 -4
- package/templates/mixed-gallery.tsx +60 -58
- package/templates/payment-form.template.mjs +5 -4
- package/templates/payment-form.tsx +882 -991
- package/templates/product-detail.template.mjs +5 -4
- package/templates/product-detail.tsx +261 -272
- package/templates/product-gallery.template.mjs +5 -4
- package/templates/product-gallery.tsx +126 -137
- package/templates/product-tour.template.mjs +5 -4
- package/templates/product-tour.tsx +741 -773
- package/templates/settings-dialog.template.mjs +5 -4
- package/templates/settings-dialog.tsx +688 -717
- package/templates/settings-sidebar.template.mjs +5 -4
- package/templates/settings-sidebar.tsx +762 -807
- package/templates/settings.template.mjs +5 -4
- package/templates/settings.tsx +289 -304
- package/templates/shell-nav.template.mjs +5 -4
- package/templates/shell-nav.tsx +212 -219
- package/templates/shell-side-nav.template.mjs +5 -4
- package/templates/shell-side-nav.tsx +135 -157
- package/templates/shell-top-nav.template.mjs +5 -4
- package/templates/shell-top-nav.tsx +182 -203
- package/templates/side-gallery.template.mjs +5 -4
- package/templates/side-gallery.tsx +85 -90
- package/templates/table-grouped.template.mjs +5 -4
- package/templates/table-grouped.tsx +1000 -1053
- package/templates/table-page-chart.template.mjs +5 -4
- package/templates/table-page-chart.tsx +400 -398
- package/templates/table-page-heatmap-status.template.mjs +5 -4
- package/templates/table-page-heatmap-status.tsx +483 -512
- package/templates/table-page-shoe-store-heatmap.template.mjs +5 -4
- package/templates/table-page-shoe-store-heatmap.tsx +748 -746
- package/templates/table-page.template.mjs +5 -4
- package/templates/table-page.tsx +396 -405
- package/templates/table.template.mjs +5 -4
- package/templates/table.tsx +92 -93
- package/templates/tech-report.template.mjs +5 -4
- package/templates/tech-report.tsx +1316 -1304
- package/templates/theme-showcase.template.mjs +5 -4
- package/templates/theme-showcase.tsx +871 -951
- package/theme.css +35 -77
- package/theme.css.d.ts +9 -0
- package/tokens.css +373 -380
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
// XLE (canonical structure
|
|
3
|
-
//
|
|
2
|
+
// XLE (canonical structure of the tree below; the CLI had no XLE validator
|
|
3
|
+
// after `astryx layout` was removed in 0.7.0, so this is a reading aid and a
|
|
4
|
+
// human drift check — update it with the file, never alone):
|
|
5
|
+
// L[h=auto mw=960] > (LC[p=8 !scroll] > V[g=8] > (V[g=2] > Hd"Getting started with Astryx Dracula"[level=1] + Tx"Last updated March 30, 2026"[t=supporting] + SE{Selector}"On this page") + (C > V[g=3] > (H[g=2 a=center] > (SI[fill] > (H[g=2 a=center] > Ic + Tx"AI Assistance"[t=body])) + B.ghost"Copy prompt") + Tx"Help me get set up"[t=body]) + (V[g=4] > Hd"Prerequisites"[level=2] + (UL[density=compact] > LI"Node.js 18+" + LI"React 18 or 19" + LI"A package manager")) + D + (V[g=4] > Hd"Install the package"[level=2] + Tx"Description"[t=body] + (V[g=2] > Tx"Step 1"[t=body] + Cd) + (V[g=2] > Tx"Step 2"[t=body] + Tx"Astryx ships precompiled CSS"[t=body] + Cd) + (V[g=2] > Tx"Step 3"[t=body] + Cd)) + D + (V[g=4] > Hd"Configure theming"[level=2] + Tx"Description"[t=body] + Cd + Tx"Note"[t=body]) + D + (V[g=4] > Hd"Next steps"[level=2] + (UL[density=compact] > LI"Fundamental concepts" + LI"Component API reference" + LI"Accessibility" + LI"CLI tools" + LI"Design tokens"))) + (LP[!scroll] > Outline)
|
|
4
6
|
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
7
|
+
import { Button } from "@astryxdesign/core/Button";
|
|
8
|
+
import { Card } from "@astryxdesign/core/Card";
|
|
9
|
+
import { CodeBlock } from "@astryxdesign/core/CodeBlock";
|
|
10
|
+
import { Divider } from "@astryxdesign/core/Divider";
|
|
11
|
+
import { useMediaQuery } from "@astryxdesign/core/hooks";
|
|
12
|
+
import { Icon } from "@astryxdesign/core/Icon";
|
|
13
|
+
import { Layout, LayoutContent, LayoutPanel } from "@astryxdesign/core/Layout";
|
|
14
|
+
import { List, ListItem } from "@astryxdesign/core/List";
|
|
15
|
+
import { Outline, type OutlineItem } from "@astryxdesign/core/Outline";
|
|
16
|
+
import { Selector } from "@astryxdesign/core/Selector";
|
|
17
|
+
import { HStack, StackItem, VStack } from "@astryxdesign/core/Stack";
|
|
18
|
+
import { Heading, Text } from "@astryxdesign/core/Text";
|
|
19
|
+
import { outlinePanel } from "astryx-dracula/shared/chaptered-doc-config";
|
|
20
|
+
import { ClipboardCopy, Sparkles } from "lucide-react";
|
|
21
|
+
import { useCallback, useState } from "react";
|
|
20
22
|
|
|
21
23
|
// ---------------------------------------------------------------------------
|
|
22
24
|
// Main component
|
|
@@ -29,187 +31,182 @@ import {outlinePanel} from 'astryx-dracula/shared/chaptered-doc-config';
|
|
|
29
31
|
// Same prompt in the copy action and the visible body: one string, so the
|
|
30
32
|
// two can never drift.
|
|
31
33
|
const SETUP_PROMPT =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
"Help me get set up with Astryx Dracula. Based on my project, do the following: 1. Install @astryxdesign/core and the StyleX compiler. 2. Wrap my app in the Theme component. 3. Replace one existing component with an Astryx equivalent. After setup, suggest relevant next steps based on my project.";
|
|
34
35
|
|
|
35
36
|
const OUTLINE_ITEMS: OutlineItem[] = [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
{ id: "prerequisites", label: "Prerequisites", level: 2 },
|
|
38
|
+
{ id: "install-package", label: "Install the package", level: 2 },
|
|
39
|
+
{ id: "configure-theming", label: "Configure theming", level: 2 },
|
|
40
|
+
{ id: "next-steps", label: "Next steps", level: 2 },
|
|
40
41
|
];
|
|
41
42
|
|
|
42
|
-
const OUTLINE_OPTIONS = OUTLINE_ITEMS.map(item => ({
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
const OUTLINE_OPTIONS = OUTLINE_ITEMS.map((item) => ({
|
|
44
|
+
value: item.id,
|
|
45
|
+
label: item.label,
|
|
45
46
|
}));
|
|
46
47
|
|
|
47
48
|
export default function DocumentationTechnical() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
);
|
|
51
|
-
const isMobile = useMediaQuery('(max-width: 768px)');
|
|
49
|
+
const [activeId, setActiveId] = useState<string | undefined>(OUTLINE_ITEMS[0]?.id);
|
|
50
|
+
const isMobile = useMediaQuery("(max-width: 768px)");
|
|
52
51
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
const scrollToId = useCallback((id: string) => {
|
|
53
|
+
setActiveId(id);
|
|
54
|
+
const target = document.getElementById(id);
|
|
55
|
+
if (target != null) {
|
|
56
|
+
target.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
57
|
+
window.history.pushState(null, "", `#${id}`);
|
|
58
|
+
}
|
|
59
|
+
}, []);
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
61
|
+
return (
|
|
62
|
+
<Layout
|
|
63
|
+
height="auto"
|
|
64
|
+
contentWidth={960}
|
|
65
|
+
end={
|
|
66
|
+
isMobile ? undefined : (
|
|
67
|
+
<LayoutPanel
|
|
68
|
+
isScrollable={false}
|
|
69
|
+
label="On this page"
|
|
70
|
+
role="complementary"
|
|
71
|
+
style={outlinePanel}
|
|
72
|
+
>
|
|
73
|
+
<Outline items={OUTLINE_ITEMS} onActiveIdChange={setActiveId} />
|
|
74
|
+
</LayoutPanel>
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
content={
|
|
78
|
+
<LayoutContent isScrollable={false} padding={8}>
|
|
79
|
+
<VStack gap={8}>
|
|
80
|
+
<VStack gap={2}>
|
|
81
|
+
<Heading level={1}>Getting started with Astryx Dracula</Heading>
|
|
82
|
+
<Text type="supporting" color="secondary" hasTabularNumbers>
|
|
83
|
+
Last updated March 30, 2026
|
|
84
|
+
</Text>
|
|
85
|
+
{isMobile && (
|
|
86
|
+
<Selector
|
|
87
|
+
label="On this page"
|
|
88
|
+
isLabelHidden
|
|
89
|
+
options={OUTLINE_OPTIONS}
|
|
90
|
+
value={activeId}
|
|
91
|
+
onChange={scrollToId}
|
|
92
|
+
width="100%"
|
|
93
|
+
/>
|
|
94
|
+
)}
|
|
95
|
+
</VStack>
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
</Card>
|
|
97
|
+
<Card>
|
|
98
|
+
<VStack gap={3}>
|
|
99
|
+
<HStack gap={2} vAlign="center">
|
|
100
|
+
<StackItem size="fill">
|
|
101
|
+
<HStack gap={2} vAlign="center">
|
|
102
|
+
<Icon icon={Sparkles} size="sm" color="secondary" />
|
|
103
|
+
<Text type="body" weight="semibold">
|
|
104
|
+
AI Assistance
|
|
105
|
+
</Text>
|
|
106
|
+
</HStack>
|
|
107
|
+
</StackItem>
|
|
108
|
+
<Button
|
|
109
|
+
label="Copy prompt"
|
|
110
|
+
variant="ghost"
|
|
111
|
+
size="sm"
|
|
112
|
+
icon={<Icon icon={ClipboardCopy} />}
|
|
113
|
+
onClick={() => {
|
|
114
|
+
void navigator.clipboard.writeText(SETUP_PROMPT);
|
|
115
|
+
}}
|
|
116
|
+
/>
|
|
117
|
+
</HStack>
|
|
118
|
+
<Text type="body" color="secondary">
|
|
119
|
+
Help me get set up with Astryx Dracula. Based on my project, do the following: 1.
|
|
120
|
+
Install @astryxdesign/core and the StyleX compiler. 2. Wrap my app in the Theme
|
|
121
|
+
component. 3. Replace one existing component with an Astryx equivalent.
|
|
122
|
+
</Text>
|
|
123
|
+
</VStack>
|
|
124
|
+
</Card>
|
|
126
125
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
126
|
+
<VStack gap={4}>
|
|
127
|
+
<Heading id="prerequisites" level={2}>
|
|
128
|
+
Prerequisites
|
|
129
|
+
</Heading>
|
|
130
|
+
<List density="compact" listStyle="disc">
|
|
131
|
+
<ListItem label="Node.js 18+" />
|
|
132
|
+
<ListItem label="React 18 or 19" />
|
|
133
|
+
<ListItem
|
|
134
|
+
label="A package manager"
|
|
135
|
+
description={
|
|
136
|
+
<Text type="body" color="secondary" textWrap="wrap">
|
|
137
|
+
npm, yarn, or pnpm
|
|
138
|
+
</Text>
|
|
139
|
+
}
|
|
140
|
+
/>
|
|
141
|
+
</List>
|
|
142
|
+
</VStack>
|
|
144
143
|
|
|
145
|
-
|
|
144
|
+
<Divider />
|
|
146
145
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
code={`import '@astryxdesign/core/reset.css';
|
|
146
|
+
<VStack gap={4}>
|
|
147
|
+
<Heading id="install-package" level={2}>
|
|
148
|
+
Install the package
|
|
149
|
+
</Heading>
|
|
150
|
+
<Text type="body">
|
|
151
|
+
Every project starts with installing the core package. This gives you access to all
|
|
152
|
+
components, tokens, and utilities.
|
|
153
|
+
</Text>
|
|
154
|
+
<VStack gap={2}>
|
|
155
|
+
<Text type="body" weight="semibold">
|
|
156
|
+
Step 1: Install the core package
|
|
157
|
+
</Text>
|
|
158
|
+
<CodeBlock
|
|
159
|
+
code="npm install @astryxdesign/core"
|
|
160
|
+
language="bash"
|
|
161
|
+
width="100%"
|
|
162
|
+
hasCopyButton
|
|
163
|
+
/>
|
|
164
|
+
</VStack>
|
|
165
|
+
<VStack gap={2}>
|
|
166
|
+
<Text type="body" weight="semibold">
|
|
167
|
+
Step 2: Import the precompiled styles
|
|
168
|
+
</Text>
|
|
169
|
+
<Text type="body" color="secondary">
|
|
170
|
+
Astryx ships precompiled CSS, so there is no build plugin to configure. Import the
|
|
171
|
+
reset and component stylesheets once at your app entry point.
|
|
172
|
+
</Text>
|
|
173
|
+
<CodeBlock
|
|
174
|
+
code={`import '@astryxdesign/core/reset.css';
|
|
177
175
|
import '@astryxdesign/core/astryx.css';`}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
176
|
+
language="tsx"
|
|
177
|
+
width="100%"
|
|
178
|
+
hasCopyButton
|
|
179
|
+
/>
|
|
180
|
+
</VStack>
|
|
181
|
+
<VStack gap={2}>
|
|
182
|
+
<Text type="body" weight="semibold">
|
|
183
|
+
Step 3: Import your first component
|
|
184
|
+
</Text>
|
|
185
|
+
<CodeBlock
|
|
186
|
+
code={`import { Button } from '@astryxdesign/core/Button';
|
|
189
187
|
|
|
190
188
|
export default function App() {
|
|
191
189
|
return <Button label="Hello Astryx" variant="primary" />;
|
|
192
190
|
}`}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
191
|
+
language="tsx"
|
|
192
|
+
width="100%"
|
|
193
|
+
hasCopyButton
|
|
194
|
+
/>
|
|
195
|
+
</VStack>
|
|
196
|
+
</VStack>
|
|
199
197
|
|
|
200
|
-
|
|
198
|
+
<Divider />
|
|
201
199
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
code={`import { type ReactNode } from 'react';
|
|
200
|
+
<VStack gap={4}>
|
|
201
|
+
<Heading id="configure-theming" level={2}>
|
|
202
|
+
Configure theming
|
|
203
|
+
</Heading>
|
|
204
|
+
<Text type="body">
|
|
205
|
+
Astryx ships with a default theme that works out of the box. To customize colors,
|
|
206
|
+
typography, and spacing, wrap your app in the Theme component.
|
|
207
|
+
</Text>
|
|
208
|
+
<CodeBlock
|
|
209
|
+
code={`import { type ReactNode } from 'react';
|
|
213
210
|
import { Theme } from '@astryxdesign/core/theme';
|
|
214
211
|
import { astryxDraculaTheme } from 'astryx-dracula';
|
|
215
212
|
|
|
@@ -220,67 +217,67 @@ export default function App({ children }: { children: ReactNode }) {
|
|
|
220
217
|
</Theme>
|
|
221
218
|
);
|
|
222
219
|
}`}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
220
|
+
language="tsx"
|
|
221
|
+
width="100%"
|
|
222
|
+
hasCopyButton
|
|
223
|
+
/>
|
|
224
|
+
<Text type="body" color="secondary">
|
|
225
|
+
See the theming guide for the full list of customizable tokens.
|
|
226
|
+
</Text>
|
|
227
|
+
</VStack>
|
|
231
228
|
|
|
232
|
-
|
|
229
|
+
<Divider />
|
|
233
230
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
231
|
+
<VStack gap={4}>
|
|
232
|
+
<Heading id="next-steps" level={2}>
|
|
233
|
+
Next steps
|
|
234
|
+
</Heading>
|
|
235
|
+
<List density="compact" listStyle="disc">
|
|
236
|
+
<ListItem
|
|
237
|
+
label="Fundamental concepts"
|
|
238
|
+
description={
|
|
239
|
+
<Text type="body" color="secondary" textWrap="wrap">
|
|
240
|
+
How theming, layout, and composition work
|
|
241
|
+
</Text>
|
|
242
|
+
}
|
|
243
|
+
/>
|
|
244
|
+
<ListItem
|
|
245
|
+
label="Component API reference"
|
|
246
|
+
description={
|
|
247
|
+
<Text type="body" color="secondary" textWrap="wrap">
|
|
248
|
+
Props, variants, and examples for every component
|
|
249
|
+
</Text>
|
|
250
|
+
}
|
|
251
|
+
/>
|
|
252
|
+
<ListItem
|
|
253
|
+
label="Accessibility"
|
|
254
|
+
description={
|
|
255
|
+
<Text type="body" color="secondary" textWrap="wrap">
|
|
256
|
+
Built-in a11y features and ARIA patterns
|
|
257
|
+
</Text>
|
|
258
|
+
}
|
|
259
|
+
/>
|
|
260
|
+
<ListItem
|
|
261
|
+
label="CLI tools"
|
|
262
|
+
description={
|
|
263
|
+
<Text type="body" color="secondary" textWrap="wrap">
|
|
264
|
+
Scaffold projects and manage templates
|
|
265
|
+
</Text>
|
|
266
|
+
}
|
|
267
|
+
/>
|
|
268
|
+
<ListItem
|
|
269
|
+
label="Design tokens"
|
|
270
|
+
description={
|
|
271
|
+
<Text type="body" color="secondary" textWrap="wrap">
|
|
272
|
+
Colors, spacing, typography, and sizing
|
|
273
|
+
</Text>
|
|
274
|
+
}
|
|
275
|
+
/>
|
|
276
|
+
</List>
|
|
277
|
+
</VStack>
|
|
278
|
+
</VStack>
|
|
279
|
+
</LayoutContent>
|
|
280
|
+
}
|
|
281
|
+
/>
|
|
282
|
+
);
|
|
286
283
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
type: "page",
|
|
3
|
+
name: "Component Catalog",
|
|
4
|
+
description: "Hero plus categorized component grid",
|
|
5
|
+
keywords: ["documentation", "docs", "guide", "manual", "reference", "handbook"],
|
|
6
|
+
category: "docs",
|
|
6
7
|
};
|