@xyd-js/storybook 0.0.0-build
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/.storybook/main.ts +40 -0
- package/.storybook/manager-head.html +6 -0
- package/.storybook/manager.ts +18 -0
- package/.storybook/preview.ts +40 -0
- package/.storybook/styles.css +5 -0
- package/.storybook/theme.ts +34 -0
- package/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +50 -0
- package/eslint.config.js +28 -0
- package/package.json +61 -0
- package/public/logo.svg +10 -0
- package/src/__fixtures__/Icons.tsx +83 -0
- package/src/__fixtures__/atlas-index/package-index.mdx +194 -0
- package/src/__fixtures__/atlas-index/wip1.mdx +131 -0
- package/src/__fixtures__/atlas-index.mdx +53 -0
- package/src/__fixtures__/code-sample.mdx +15 -0
- package/src/__fixtures__/example-source-uniform.ts +41 -0
- package/src/__fixtures__/hello-world.mdx +116 -0
- package/src/components/DemoDocs.tsx +235 -0
- package/src/components/logo.tsx +37 -0
- package/src/decorators/DocsTemplate.tsx +101 -0
- package/src/docs/atlas/Atlas.stories.tsx +51 -0
- package/src/docs/atlas/todo-app.uniform.json +625 -0
- package/src/docs/atlas/uniform-to-references.ts +101 -0
- package/src/docs/components/coder/CodeSample.stories.tsx +29 -0
- package/src/docs/components/pages/PageBlogHome.stories.tsx +52 -0
- package/src/docs/components/pages/PageFirstSlide.stories.tsx +124 -0
- package/src/docs/components/pages/PageHome.stories.tsx +127 -0
- package/src/docs/components/system/Baseline.stories.tsx +126 -0
- package/src/docs/components/writer/Badge.stories.tsx +132 -0
- package/src/docs/components/writer/Banner.stories.tsx +394 -0
- package/src/docs/components/writer/Blockquote.stories.tsx +415 -0
- package/src/docs/components/writer/Breadcrumbs.stories.tsx +282 -0
- package/src/docs/components/writer/Button.stories.tsx +405 -0
- package/src/docs/components/writer/Callout.stories.tsx +183 -0
- package/src/docs/components/writer/Card.stories.tsx +457 -0
- package/src/docs/components/writer/ColorSchemeButton.stories.tsx +322 -0
- package/src/docs/components/writer/Details.stories.tsx +333 -0
- package/src/docs/components/writer/GuideCard.stories.tsx +384 -0
- package/src/docs/components/writer/Heading.stories.tsx +379 -0
- package/src/docs/components/writer/Hr.stories.tsx +325 -0
- package/src/docs/components/writer/IconSocial.stories.tsx +591 -0
- package/src/docs/components/writer/Image.stories.tsx +430 -0
- package/src/docs/components/writer/List.stories.tsx +479 -0
- package/src/docs/components/writer/NavLinks.stories.tsx +380 -0
- package/src/docs/components/writer/Pre.stories.tsx +23 -0
- package/src/docs/components/writer/Steps.stories.tsx +914 -0
- package/src/docs/components/writer/Table.stories.tsx +608 -0
- package/src/docs/components/writer/Tabs.stories.tsx +760 -0
- package/src/docs/components/writer/TocCard.stories.tsx +407 -0
- package/src/docs/components/writer/Update.stories.tsx +457 -0
- package/src/docs/components/writer/VideoGuide.stories.tsx +17 -0
- package/src/docs/templates/CodeSample.stories.tsx +15 -0
- package/src/docs/themes/TODO.md +1 -0
- package/src/docs/themes/logo.tsx +37 -0
- package/src/docs/themes/themes.stories.tsx +269 -0
- package/src/docs/ui/Nav.stories.tsx +58 -0
- package/src/docs/ui/Sidebar.stories.tsx +167 -0
- package/src/docs/ui/SubNav.stories.tsx +29 -0
- package/src/utils/mdx.ts +31 -0
- package/tsconfig.json +39 -0
- package/vite.config.ts +8 -0
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
+
|
|
4
|
+
import { Table } from '@xyd-js/components/writer';
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Table> = {
|
|
7
|
+
title: 'Components/Writer/Table',
|
|
8
|
+
component: Table,
|
|
9
|
+
parameters: {
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: 'Table component provides structured data display with support for headers, body content, and various cell types including numeric and muted variants.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
argTypes: {
|
|
17
|
+
children: {
|
|
18
|
+
description: 'The table content including Head and Body components',
|
|
19
|
+
control: false,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default meta;
|
|
25
|
+
type Story = StoryObj<typeof Table>;
|
|
26
|
+
|
|
27
|
+
// Basic table
|
|
28
|
+
export const Default: Story = {
|
|
29
|
+
render: () => (
|
|
30
|
+
<div style={{ padding: '20px' }}>
|
|
31
|
+
<Table>
|
|
32
|
+
<Table.Head>
|
|
33
|
+
<Table.Tr>
|
|
34
|
+
<Table.Th>Model</Table.Th>
|
|
35
|
+
<Table.Th numeric>Training</Table.Th>
|
|
36
|
+
<Table.Th numeric>Input</Table.Th>
|
|
37
|
+
<Table.Th numeric>Cached input</Table.Th>
|
|
38
|
+
<Table.Th numeric>Output</Table.Th>
|
|
39
|
+
</Table.Tr>
|
|
40
|
+
</Table.Head>
|
|
41
|
+
<Table.Body>
|
|
42
|
+
<Table.Tr>
|
|
43
|
+
<Table.Td>
|
|
44
|
+
<Table.Cell>gpt-4o-2024-08-06</Table.Cell>
|
|
45
|
+
</Table.Td>
|
|
46
|
+
<Table.Td numeric>
|
|
47
|
+
<Table.Cell>$25.00</Table.Cell>
|
|
48
|
+
</Table.Td>
|
|
49
|
+
<Table.Td numeric>
|
|
50
|
+
<Table.Cell>$3.75</Table.Cell>
|
|
51
|
+
</Table.Td>
|
|
52
|
+
<Table.Td numeric muted>
|
|
53
|
+
<Table.Cell>$1.875</Table.Cell>
|
|
54
|
+
</Table.Td>
|
|
55
|
+
<Table.Td numeric>
|
|
56
|
+
<Table.Cell>$15.00</Table.Cell>
|
|
57
|
+
</Table.Td>
|
|
58
|
+
</Table.Tr>
|
|
59
|
+
</Table.Body>
|
|
60
|
+
</Table>
|
|
61
|
+
</div>
|
|
62
|
+
),
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Multiple rows
|
|
66
|
+
export const MultipleRows: Story = {
|
|
67
|
+
render: () => (
|
|
68
|
+
<div style={{ padding: '20px' }}>
|
|
69
|
+
<Table>
|
|
70
|
+
<Table.Head>
|
|
71
|
+
<Table.Tr>
|
|
72
|
+
<Table.Th>Model</Table.Th>
|
|
73
|
+
<Table.Th numeric>Training</Table.Th>
|
|
74
|
+
<Table.Th numeric>Input</Table.Th>
|
|
75
|
+
<Table.Th numeric>Cached input</Table.Th>
|
|
76
|
+
<Table.Th numeric>Output</Table.Th>
|
|
77
|
+
</Table.Tr>
|
|
78
|
+
</Table.Head>
|
|
79
|
+
<Table.Body>
|
|
80
|
+
<Table.Tr>
|
|
81
|
+
<Table.Td>
|
|
82
|
+
<Table.Cell>gpt-4o-2024-08-06</Table.Cell>
|
|
83
|
+
</Table.Td>
|
|
84
|
+
<Table.Td numeric>
|
|
85
|
+
<Table.Cell>$25.00</Table.Cell>
|
|
86
|
+
</Table.Td>
|
|
87
|
+
<Table.Td numeric>
|
|
88
|
+
<Table.Cell>$3.75</Table.Cell>
|
|
89
|
+
</Table.Td>
|
|
90
|
+
<Table.Td numeric muted>
|
|
91
|
+
<Table.Cell>$1.875</Table.Cell>
|
|
92
|
+
</Table.Td>
|
|
93
|
+
<Table.Td numeric>
|
|
94
|
+
<Table.Cell>$15.00</Table.Cell>
|
|
95
|
+
</Table.Td>
|
|
96
|
+
</Table.Tr>
|
|
97
|
+
<Table.Tr>
|
|
98
|
+
<Table.Td>
|
|
99
|
+
<Table.Cell>gpt-4o-mini</Table.Cell>
|
|
100
|
+
</Table.Td>
|
|
101
|
+
<Table.Td numeric>
|
|
102
|
+
<Table.Cell>$15.00</Table.Cell>
|
|
103
|
+
</Table.Td>
|
|
104
|
+
<Table.Td numeric>
|
|
105
|
+
<Table.Cell>$0.15</Table.Cell>
|
|
106
|
+
</Table.Td>
|
|
107
|
+
<Table.Td numeric muted>
|
|
108
|
+
<Table.Cell>$0.075</Table.Cell>
|
|
109
|
+
</Table.Td>
|
|
110
|
+
<Table.Td numeric>
|
|
111
|
+
<Table.Cell>$0.60</Table.Cell>
|
|
112
|
+
</Table.Td>
|
|
113
|
+
</Table.Tr>
|
|
114
|
+
<Table.Tr>
|
|
115
|
+
<Table.Td>
|
|
116
|
+
<Table.Cell>gpt-3.5-turbo</Table.Cell>
|
|
117
|
+
</Table.Td>
|
|
118
|
+
<Table.Td numeric>
|
|
119
|
+
<Table.Cell>$3.00</Table.Cell>
|
|
120
|
+
</Table.Td>
|
|
121
|
+
<Table.Td numeric>
|
|
122
|
+
<Table.Cell>$0.0015</Table.Cell>
|
|
123
|
+
</Table.Td>
|
|
124
|
+
<Table.Td numeric muted>
|
|
125
|
+
<Table.Cell>$0.002</Table.Cell>
|
|
126
|
+
</Table.Td>
|
|
127
|
+
<Table.Td numeric>
|
|
128
|
+
<Table.Cell>$0.002</Table.Cell>
|
|
129
|
+
</Table.Td>
|
|
130
|
+
</Table.Tr>
|
|
131
|
+
</Table.Body>
|
|
132
|
+
</Table>
|
|
133
|
+
</div>
|
|
134
|
+
),
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// Different data types
|
|
138
|
+
export const DifferentDataTypes: Story = {
|
|
139
|
+
render: () => (
|
|
140
|
+
<div style={{ padding: '20px' }}>
|
|
141
|
+
<Table>
|
|
142
|
+
<Table.Head>
|
|
143
|
+
<Table.Tr>
|
|
144
|
+
<Table.Th>Feature</Table.Th>
|
|
145
|
+
<Table.Th>Status</Table.Th>
|
|
146
|
+
<Table.Th numeric>Usage</Table.Th>
|
|
147
|
+
<Table.Th>Last Updated</Table.Th>
|
|
148
|
+
<Table.Th numeric>Performance</Table.Th>
|
|
149
|
+
</Table.Tr>
|
|
150
|
+
</Table.Head>
|
|
151
|
+
<Table.Body>
|
|
152
|
+
<Table.Tr>
|
|
153
|
+
<Table.Td>
|
|
154
|
+
<Table.Cell>API Authentication</Table.Cell>
|
|
155
|
+
</Table.Td>
|
|
156
|
+
<Table.Td>
|
|
157
|
+
<Table.Cell>✅ Active</Table.Cell>
|
|
158
|
+
</Table.Td>
|
|
159
|
+
<Table.Td numeric>
|
|
160
|
+
<Table.Cell>1,234</Table.Cell>
|
|
161
|
+
</Table.Td>
|
|
162
|
+
<Table.Td>
|
|
163
|
+
<Table.Cell>2024-01-15</Table.Cell>
|
|
164
|
+
</Table.Td>
|
|
165
|
+
<Table.Td numeric>
|
|
166
|
+
<Table.Cell>99.9%</Table.Cell>
|
|
167
|
+
</Table.Td>
|
|
168
|
+
</Table.Tr>
|
|
169
|
+
<Table.Tr>
|
|
170
|
+
<Table.Td>
|
|
171
|
+
<Table.Cell>Data Processing</Table.Cell>
|
|
172
|
+
</Table.Td>
|
|
173
|
+
<Table.Td>
|
|
174
|
+
<Table.Cell>⚠️ Limited</Table.Cell>
|
|
175
|
+
</Table.Td>
|
|
176
|
+
<Table.Td numeric>
|
|
177
|
+
<Table.Cell>567</Table.Cell>
|
|
178
|
+
</Table.Td>
|
|
179
|
+
<Table.Td>
|
|
180
|
+
<Table.Cell>2024-01-10</Table.Cell>
|
|
181
|
+
</Table.Td>
|
|
182
|
+
<Table.Td numeric>
|
|
183
|
+
<Table.Cell>95.2%</Table.Cell>
|
|
184
|
+
</Table.Td>
|
|
185
|
+
</Table.Tr>
|
|
186
|
+
<Table.Tr>
|
|
187
|
+
<Table.Td>
|
|
188
|
+
<Table.Cell>Analytics Dashboard</Table.Cell>
|
|
189
|
+
</Table.Td>
|
|
190
|
+
<Table.Td>
|
|
191
|
+
<Table.Cell>❌ Disabled</Table.Cell>
|
|
192
|
+
</Table.Td>
|
|
193
|
+
<Table.Td numeric>
|
|
194
|
+
<Table.Cell>0</Table.Cell>
|
|
195
|
+
</Table.Td>
|
|
196
|
+
<Table.Td>
|
|
197
|
+
<Table.Cell>2024-01-05</Table.Cell>
|
|
198
|
+
</Table.Td>
|
|
199
|
+
<Table.Td numeric muted>
|
|
200
|
+
<Table.Cell>N/A</Table.Cell>
|
|
201
|
+
</Table.Td>
|
|
202
|
+
</Table.Tr>
|
|
203
|
+
</Table.Body>
|
|
204
|
+
</Table>
|
|
205
|
+
</div>
|
|
206
|
+
),
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
// Long content
|
|
210
|
+
export const LongContent: Story = {
|
|
211
|
+
render: () => (
|
|
212
|
+
<div style={{ padding: '20px' }}>
|
|
213
|
+
<Table>
|
|
214
|
+
<Table.Head>
|
|
215
|
+
<Table.Tr>
|
|
216
|
+
<Table.Th>Description</Table.Th>
|
|
217
|
+
<Table.Th>Category</Table.Th>
|
|
218
|
+
<Table.Th numeric>Priority</Table.Th>
|
|
219
|
+
<Table.Th>Notes</Table.Th>
|
|
220
|
+
</Table.Tr>
|
|
221
|
+
</Table.Head>
|
|
222
|
+
<Table.Body>
|
|
223
|
+
<Table.Tr>
|
|
224
|
+
<Table.Td>
|
|
225
|
+
<Table.Cell>
|
|
226
|
+
Implement comprehensive user authentication system with support for
|
|
227
|
+
multiple authentication providers including OAuth, SAML, and custom
|
|
228
|
+
token-based authentication.
|
|
229
|
+
</Table.Cell>
|
|
230
|
+
</Table.Td>
|
|
231
|
+
<Table.Td>
|
|
232
|
+
<Table.Cell>Security</Table.Cell>
|
|
233
|
+
</Table.Td>
|
|
234
|
+
<Table.Td numeric>
|
|
235
|
+
<Table.Cell>High</Table.Cell>
|
|
236
|
+
</Table.Td>
|
|
237
|
+
<Table.Td>
|
|
238
|
+
<Table.Cell>
|
|
239
|
+
This feature is critical for enterprise customers and requires
|
|
240
|
+
thorough testing across different environments.
|
|
241
|
+
</Table.Cell>
|
|
242
|
+
</Table.Td>
|
|
243
|
+
</Table.Tr>
|
|
244
|
+
<Table.Tr>
|
|
245
|
+
<Table.Td>
|
|
246
|
+
<Table.Cell>
|
|
247
|
+
Create advanced analytics dashboard with real-time data visualization,
|
|
248
|
+
customizable charts, and export functionality for business intelligence.
|
|
249
|
+
</Table.Cell>
|
|
250
|
+
</Table.Td>
|
|
251
|
+
<Table.Td>
|
|
252
|
+
<Table.Cell>Analytics</Table.Cell>
|
|
253
|
+
</Table.Td>
|
|
254
|
+
<Table.Td numeric>
|
|
255
|
+
<Table.Cell>Medium</Table.Cell>
|
|
256
|
+
</Table.Td>
|
|
257
|
+
<Table.Td>
|
|
258
|
+
<Table.Cell>
|
|
259
|
+
Should integrate with existing data pipeline and support multiple
|
|
260
|
+
chart types including line, bar, and pie charts.
|
|
261
|
+
</Table.Cell>
|
|
262
|
+
</Table.Td>
|
|
263
|
+
</Table.Tr>
|
|
264
|
+
</Table.Body>
|
|
265
|
+
</Table>
|
|
266
|
+
</div>
|
|
267
|
+
),
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
// Real-world examples
|
|
271
|
+
export const RealWorldExamples: Story = {
|
|
272
|
+
render: () => (
|
|
273
|
+
<div style={{ padding: '20px', maxWidth: '1000px' }}>
|
|
274
|
+
<div style={{ marginBottom: '40px' }}>
|
|
275
|
+
<h2>API Pricing Table</h2>
|
|
276
|
+
<p>Tables are commonly used to display pricing information and feature comparisons.</p>
|
|
277
|
+
<div style={{
|
|
278
|
+
background: 'var(--xyd-bgcolor)',
|
|
279
|
+
border: '1px solid var(--xyd-border-color)',
|
|
280
|
+
borderRadius: '8px',
|
|
281
|
+
padding: '20px'
|
|
282
|
+
}}>
|
|
283
|
+
<Table>
|
|
284
|
+
<Table.Head>
|
|
285
|
+
<Table.Tr>
|
|
286
|
+
<Table.Th>Plan</Table.Th>
|
|
287
|
+
<Table.Th numeric>Price</Table.Th>
|
|
288
|
+
<Table.Th numeric>API Calls</Table.Th>
|
|
289
|
+
<Table.Th numeric>Storage</Table.Th>
|
|
290
|
+
<Table.Th>Support</Table.Th>
|
|
291
|
+
</Table.Tr>
|
|
292
|
+
</Table.Head>
|
|
293
|
+
<Table.Body>
|
|
294
|
+
<Table.Tr>
|
|
295
|
+
<Table.Td>
|
|
296
|
+
<Table.Cell>Starter</Table.Cell>
|
|
297
|
+
</Table.Td>
|
|
298
|
+
<Table.Td numeric>
|
|
299
|
+
<Table.Cell>$29/month</Table.Cell>
|
|
300
|
+
</Table.Td>
|
|
301
|
+
<Table.Td numeric>
|
|
302
|
+
<Table.Cell>10,000</Table.Cell>
|
|
303
|
+
</Table.Td>
|
|
304
|
+
<Table.Td numeric>
|
|
305
|
+
<Table.Cell>5GB</Table.Cell>
|
|
306
|
+
</Table.Td>
|
|
307
|
+
<Table.Td>
|
|
308
|
+
<Table.Cell>Email</Table.Cell>
|
|
309
|
+
</Table.Td>
|
|
310
|
+
</Table.Tr>
|
|
311
|
+
<Table.Tr>
|
|
312
|
+
<Table.Td>
|
|
313
|
+
<Table.Cell>Professional</Table.Cell>
|
|
314
|
+
</Table.Td>
|
|
315
|
+
<Table.Td numeric>
|
|
316
|
+
<Table.Cell>$99/month</Table.Cell>
|
|
317
|
+
</Table.Td>
|
|
318
|
+
<Table.Td numeric>
|
|
319
|
+
<Table.Cell>100,000</Table.Cell>
|
|
320
|
+
</Table.Td>
|
|
321
|
+
<Table.Td numeric>
|
|
322
|
+
<Table.Cell>50GB</Table.Cell>
|
|
323
|
+
</Table.Td>
|
|
324
|
+
<Table.Td>
|
|
325
|
+
<Table.Cell>Priority</Table.Cell>
|
|
326
|
+
</Table.Td>
|
|
327
|
+
</Table.Tr>
|
|
328
|
+
<Table.Tr>
|
|
329
|
+
<Table.Td>
|
|
330
|
+
<Table.Cell>Enterprise</Table.Cell>
|
|
331
|
+
</Table.Td>
|
|
332
|
+
<Table.Td numeric>
|
|
333
|
+
<Table.Cell>Custom</Table.Cell>
|
|
334
|
+
</Table.Td>
|
|
335
|
+
<Table.Td numeric>
|
|
336
|
+
<Table.Cell>Unlimited</Table.Cell>
|
|
337
|
+
</Table.Td>
|
|
338
|
+
<Table.Td numeric>
|
|
339
|
+
<Table.Cell>Unlimited</Table.Cell>
|
|
340
|
+
</Table.Td>
|
|
341
|
+
<Table.Td>
|
|
342
|
+
<Table.Cell>24/7 Phone</Table.Cell>
|
|
343
|
+
</Table.Td>
|
|
344
|
+
</Table.Tr>
|
|
345
|
+
</Table.Body>
|
|
346
|
+
</Table>
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
|
|
350
|
+
<div style={{ marginBottom: '40px' }}>
|
|
351
|
+
<h2>System Status</h2>
|
|
352
|
+
<p>Tables can display system status and monitoring information.</p>
|
|
353
|
+
<div style={{
|
|
354
|
+
background: 'var(--xyd-bgcolor)',
|
|
355
|
+
border: '1px solid var(--xyd-border-color)',
|
|
356
|
+
borderRadius: '8px',
|
|
357
|
+
padding: '20px'
|
|
358
|
+
}}>
|
|
359
|
+
<Table>
|
|
360
|
+
<Table.Head>
|
|
361
|
+
<Table.Tr>
|
|
362
|
+
<Table.Th>Service</Table.Th>
|
|
363
|
+
<Table.Th>Status</Table.Th>
|
|
364
|
+
<Table.Th numeric>Uptime</Table.Th>
|
|
365
|
+
<Table.Th numeric>Response Time</Table.Th>
|
|
366
|
+
<Table.Th>Last Incident</Table.Th>
|
|
367
|
+
</Table.Tr>
|
|
368
|
+
</Table.Head>
|
|
369
|
+
<Table.Body>
|
|
370
|
+
<Table.Tr>
|
|
371
|
+
<Table.Td>
|
|
372
|
+
<Table.Cell>API Gateway</Table.Cell>
|
|
373
|
+
</Table.Td>
|
|
374
|
+
<Table.Td>
|
|
375
|
+
<Table.Cell>🟢 Operational</Table.Cell>
|
|
376
|
+
</Table.Td>
|
|
377
|
+
<Table.Td numeric>
|
|
378
|
+
<Table.Cell>99.99%</Table.Cell>
|
|
379
|
+
</Table.Td>
|
|
380
|
+
<Table.Td numeric>
|
|
381
|
+
<Table.Cell>45ms</Table.Cell>
|
|
382
|
+
</Table.Td>
|
|
383
|
+
<Table.Td>
|
|
384
|
+
<Table.Cell>2024-01-10</Table.Cell>
|
|
385
|
+
</Table.Td>
|
|
386
|
+
</Table.Tr>
|
|
387
|
+
<Table.Tr>
|
|
388
|
+
<Table.Td>
|
|
389
|
+
<Table.Cell>Database</Table.Cell>
|
|
390
|
+
</Table.Td>
|
|
391
|
+
<Table.Td>
|
|
392
|
+
<Table.Cell>🟡 Degraded</Table.Cell>
|
|
393
|
+
</Table.Td>
|
|
394
|
+
<Table.Td numeric>
|
|
395
|
+
<Table.Cell>99.85%</Table.Cell>
|
|
396
|
+
</Table.Td>
|
|
397
|
+
<Table.Td numeric>
|
|
398
|
+
<Table.Cell>120ms</Table.Cell>
|
|
399
|
+
</Table.Td>
|
|
400
|
+
<Table.Td>
|
|
401
|
+
<Table.Cell>2024-01-15</Table.Cell>
|
|
402
|
+
</Table.Td>
|
|
403
|
+
</Table.Tr>
|
|
404
|
+
<Table.Tr>
|
|
405
|
+
<Table.Td>
|
|
406
|
+
<Table.Cell>CDN</Table.Cell>
|
|
407
|
+
</Table.Td>
|
|
408
|
+
<Table.Td>
|
|
409
|
+
<Table.Cell>🟢 Operational</Table.Cell>
|
|
410
|
+
</Table.Td>
|
|
411
|
+
<Table.Td numeric>
|
|
412
|
+
<Table.Cell>99.98%</Table.Cell>
|
|
413
|
+
</Table.Td>
|
|
414
|
+
<Table.Td numeric>
|
|
415
|
+
<Table.Cell>25ms</Table.Cell>
|
|
416
|
+
</Table.Td>
|
|
417
|
+
<Table.Td>
|
|
418
|
+
<Table.Cell>2024-01-08</Table.Cell>
|
|
419
|
+
</Table.Td>
|
|
420
|
+
</Table.Tr>
|
|
421
|
+
</Table.Body>
|
|
422
|
+
</Table>
|
|
423
|
+
</div>
|
|
424
|
+
</div>
|
|
425
|
+
|
|
426
|
+
<div style={{ marginBottom: '40px' }}>
|
|
427
|
+
<h2>User Management</h2>
|
|
428
|
+
<p>Tables are perfect for displaying user lists and management interfaces.</p>
|
|
429
|
+
<div style={{
|
|
430
|
+
background: 'var(--xyd-bgcolor)',
|
|
431
|
+
border: '1px solid var(--xyd-border-color)',
|
|
432
|
+
borderRadius: '8px',
|
|
433
|
+
padding: '20px'
|
|
434
|
+
}}>
|
|
435
|
+
<Table>
|
|
436
|
+
<Table.Head>
|
|
437
|
+
<Table.Tr>
|
|
438
|
+
<Table.Th>User</Table.Th>
|
|
439
|
+
<Table.Th>Role</Table.Th>
|
|
440
|
+
<Table.Th>Status</Table.Th>
|
|
441
|
+
<Table.Th numeric>Last Login</Table.Th>
|
|
442
|
+
<Table.Th numeric>Actions</Table.Th>
|
|
443
|
+
</Table.Tr>
|
|
444
|
+
</Table.Head>
|
|
445
|
+
<Table.Body>
|
|
446
|
+
<Table.Tr>
|
|
447
|
+
<Table.Td>
|
|
448
|
+
<Table.Cell>john.doe@company.com</Table.Cell>
|
|
449
|
+
</Table.Td>
|
|
450
|
+
<Table.Td>
|
|
451
|
+
<Table.Cell>Admin</Table.Cell>
|
|
452
|
+
</Table.Td>
|
|
453
|
+
<Table.Td>
|
|
454
|
+
<Table.Cell>🟢 Active</Table.Cell>
|
|
455
|
+
</Table.Td>
|
|
456
|
+
<Table.Td numeric>
|
|
457
|
+
<Table.Cell>2 hours ago</Table.Cell>
|
|
458
|
+
</Table.Td>
|
|
459
|
+
<Table.Td numeric>
|
|
460
|
+
<Table.Cell>Edit | Delete</Table.Cell>
|
|
461
|
+
</Table.Td>
|
|
462
|
+
</Table.Tr>
|
|
463
|
+
<Table.Tr>
|
|
464
|
+
<Table.Td>
|
|
465
|
+
<Table.Cell>jane.smith@company.com</Table.Cell>
|
|
466
|
+
</Table.Td>
|
|
467
|
+
<Table.Td>
|
|
468
|
+
<Table.Cell>User</Table.Cell>
|
|
469
|
+
</Table.Td>
|
|
470
|
+
<Table.Td>
|
|
471
|
+
<Table.Cell>🟡 Pending</Table.Cell>
|
|
472
|
+
</Table.Td>
|
|
473
|
+
<Table.Td numeric>
|
|
474
|
+
<Table.Cell>Never</Table.Cell>
|
|
475
|
+
</Table.Td>
|
|
476
|
+
<Table.Td numeric>
|
|
477
|
+
<Table.Cell>Edit | Delete</Table.Cell>
|
|
478
|
+
</Table.Td>
|
|
479
|
+
</Table.Tr>
|
|
480
|
+
<Table.Tr>
|
|
481
|
+
<Table.Td>
|
|
482
|
+
<Table.Cell>bob.wilson@company.com</Table.Cell>
|
|
483
|
+
</Table.Td>
|
|
484
|
+
<Table.Td>
|
|
485
|
+
<Table.Cell>Manager</Table.Cell>
|
|
486
|
+
</Table.Td>
|
|
487
|
+
<Table.Td>
|
|
488
|
+
<Table.Cell>🟢 Active</Table.Cell>
|
|
489
|
+
</Table.Td>
|
|
490
|
+
<Table.Td numeric>
|
|
491
|
+
<Table.Cell>1 day ago</Table.Cell>
|
|
492
|
+
</Table.Td>
|
|
493
|
+
<Table.Td numeric>
|
|
494
|
+
<Table.Cell>Edit | Delete</Table.Cell>
|
|
495
|
+
</Table.Td>
|
|
496
|
+
</Table.Tr>
|
|
497
|
+
</Table.Body>
|
|
498
|
+
</Table>
|
|
499
|
+
</div>
|
|
500
|
+
</div>
|
|
501
|
+
</div>
|
|
502
|
+
),
|
|
503
|
+
parameters: {
|
|
504
|
+
docs: {
|
|
505
|
+
description: {
|
|
506
|
+
story: 'This example shows how tables are typically used in real applications for data display.',
|
|
507
|
+
},
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
// Interactive example
|
|
513
|
+
export const Interactive: Story = {
|
|
514
|
+
render: () => (
|
|
515
|
+
<div style={{ padding: '20px' }}>
|
|
516
|
+
<div style={{
|
|
517
|
+
background: 'var(--xyd-bgcolor)',
|
|
518
|
+
border: '1px solid var(--xyd-border-color)',
|
|
519
|
+
borderRadius: '8px',
|
|
520
|
+
padding: '20px',
|
|
521
|
+
marginBottom: '20px'
|
|
522
|
+
}}>
|
|
523
|
+
<h3 style={{ marginBottom: '16px' }}>Table Component Demo</h3>
|
|
524
|
+
<p style={{ marginBottom: '16px', color: 'var(--xyd-text-color)' }}>
|
|
525
|
+
This example demonstrates the Table component with various cell types and data formats.
|
|
526
|
+
</p>
|
|
527
|
+
<Table>
|
|
528
|
+
<Table.Head>
|
|
529
|
+
<Table.Tr>
|
|
530
|
+
<Table.Th>Component</Table.Th>
|
|
531
|
+
<Table.Th>Type</Table.Th>
|
|
532
|
+
<Table.Th numeric>Complexity</Table.Th>
|
|
533
|
+
<Table.Th>Status</Table.Th>
|
|
534
|
+
</Table.Tr>
|
|
535
|
+
</Table.Head>
|
|
536
|
+
<Table.Body>
|
|
537
|
+
<Table.Tr>
|
|
538
|
+
<Table.Td>
|
|
539
|
+
<Table.Cell>Button</Table.Cell>
|
|
540
|
+
</Table.Td>
|
|
541
|
+
<Table.Td>
|
|
542
|
+
<Table.Cell>Interactive</Table.Cell>
|
|
543
|
+
</Table.Td>
|
|
544
|
+
<Table.Td numeric>
|
|
545
|
+
<Table.Cell>Low</Table.Cell>
|
|
546
|
+
</Table.Td>
|
|
547
|
+
<Table.Td>
|
|
548
|
+
<Table.Cell>✅ Complete</Table.Cell>
|
|
549
|
+
</Table.Td>
|
|
550
|
+
</Table.Tr>
|
|
551
|
+
<Table.Tr>
|
|
552
|
+
<Table.Td>
|
|
553
|
+
<Table.Cell>Table</Table.Cell>
|
|
554
|
+
</Table.Td>
|
|
555
|
+
<Table.Td>
|
|
556
|
+
<Table.Cell>Data Display</Table.Cell>
|
|
557
|
+
</Table.Td>
|
|
558
|
+
<Table.Td numeric>
|
|
559
|
+
<Table.Cell>Medium</Table.Cell>
|
|
560
|
+
</Table.Td>
|
|
561
|
+
<Table.Td>
|
|
562
|
+
<Table.Cell>🔄 In Progress</Table.Cell>
|
|
563
|
+
</Table.Td>
|
|
564
|
+
</Table.Tr>
|
|
565
|
+
<Table.Tr>
|
|
566
|
+
<Table.Td>
|
|
567
|
+
<Table.Cell>Steps</Table.Cell>
|
|
568
|
+
</Table.Td>
|
|
569
|
+
<Table.Td>
|
|
570
|
+
<Table.Cell>Navigation</Table.Cell>
|
|
571
|
+
</Table.Td>
|
|
572
|
+
<Table.Td numeric>
|
|
573
|
+
<Table.Cell>Low</Table.Cell>
|
|
574
|
+
</Table.Td>
|
|
575
|
+
<Table.Td>
|
|
576
|
+
<Table.Cell>✅ Complete</Table.Cell>
|
|
577
|
+
</Table.Td>
|
|
578
|
+
</Table.Tr>
|
|
579
|
+
</Table.Body>
|
|
580
|
+
</Table>
|
|
581
|
+
</div>
|
|
582
|
+
|
|
583
|
+
<div style={{
|
|
584
|
+
background: 'var(--xyd-bgcolor)',
|
|
585
|
+
border: '1px solid var(--xyd-border-color)',
|
|
586
|
+
borderRadius: '8px',
|
|
587
|
+
padding: '20px'
|
|
588
|
+
}}>
|
|
589
|
+
<h4 style={{ marginBottom: '12px' }}>Features</h4>
|
|
590
|
+
<ul style={{ color: 'var(--xyd-text-color)' }}>
|
|
591
|
+
<li>Structured data display</li>
|
|
592
|
+
<li>Numeric cell alignment</li>
|
|
593
|
+
<li>Muted cell styling</li>
|
|
594
|
+
<li>Responsive design</li>
|
|
595
|
+
<li>Accessible markup</li>
|
|
596
|
+
</ul>
|
|
597
|
+
</div>
|
|
598
|
+
</div>
|
|
599
|
+
),
|
|
600
|
+
parameters: {
|
|
601
|
+
docs: {
|
|
602
|
+
description: {
|
|
603
|
+
story: 'This interactive example demonstrates the Table component functionality and styling.',
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
},
|
|
607
|
+
};
|
|
608
|
+
|