@voriel_salut/ds 0.1.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/LICENSE +24 -0
- package/README.md +141 -0
- package/THIRD_PARTY_NOTICES.md +54 -0
- package/dist/AGENTS.md +58 -0
- package/dist/index.d.ts +229 -0
- package/dist/index.js +1066 -0
- package/dist/manifest.json +1008 -0
- package/dist/styles.css +9 -0
- package/dist/theme.css +855 -0
- package/package.json +99 -0
|
@@ -0,0 +1,1008 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 0,
|
|
3
|
+
"components": {
|
|
4
|
+
"ui-air-style": {
|
|
5
|
+
"id": "ui-air-style",
|
|
6
|
+
"name": "AirStyle",
|
|
7
|
+
"path": "./src/components/air-style/air-style.stories.tsx",
|
|
8
|
+
"jsDocTags": {},
|
|
9
|
+
"reactDocgen": {
|
|
10
|
+
"description": "",
|
|
11
|
+
"methods": [],
|
|
12
|
+
"displayName": "AirStyle",
|
|
13
|
+
"definedInFile": "src/components/air-style/air-style.tsx",
|
|
14
|
+
"actualName": "AirStyle",
|
|
15
|
+
"exportName": "AirStyle",
|
|
16
|
+
"props": {
|
|
17
|
+
"label": {
|
|
18
|
+
"required": true,
|
|
19
|
+
"tsType": {
|
|
20
|
+
"name": "ReactReactNode",
|
|
21
|
+
"raw": "React.ReactNode"
|
|
22
|
+
},
|
|
23
|
+
"description": "Text under the image. Clamped to two lines."
|
|
24
|
+
},
|
|
25
|
+
"src": {
|
|
26
|
+
"required": true,
|
|
27
|
+
"tsType": {
|
|
28
|
+
"name": "string"
|
|
29
|
+
},
|
|
30
|
+
"description": "Image URL for the tile. Shown square and cropped to fill."
|
|
31
|
+
},
|
|
32
|
+
"sources": {
|
|
33
|
+
"required": false,
|
|
34
|
+
"tsType": {
|
|
35
|
+
"name": "Array",
|
|
36
|
+
"elements": [
|
|
37
|
+
{
|
|
38
|
+
"name": "signature",
|
|
39
|
+
"type": "object",
|
|
40
|
+
"raw": "{\n srcSet: string\n media?: string\n sizes?: string\n}",
|
|
41
|
+
"signature": {
|
|
42
|
+
"properties": [
|
|
43
|
+
{
|
|
44
|
+
"key": "srcSet",
|
|
45
|
+
"value": {
|
|
46
|
+
"name": "string",
|
|
47
|
+
"required": true
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"key": "media",
|
|
52
|
+
"value": {
|
|
53
|
+
"name": "string",
|
|
54
|
+
"required": false
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"key": "sizes",
|
|
59
|
+
"value": {
|
|
60
|
+
"name": "string",
|
|
61
|
+
"required": false
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"raw": "AirStyleSource[]"
|
|
69
|
+
},
|
|
70
|
+
"description": "Optional responsive sources, rendered as <source> elements inside <picture>.",
|
|
71
|
+
"defaultValue": {
|
|
72
|
+
"value": "[]",
|
|
73
|
+
"computed": false
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"stories": [
|
|
79
|
+
{
|
|
80
|
+
"id": "ui-air-style--default",
|
|
81
|
+
"name": "Default",
|
|
82
|
+
"snippet": "const Default = () => <AirStyle label=\"Training\" src={training} />;"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "ui-air-style--long-label",
|
|
86
|
+
"name": "Long label",
|
|
87
|
+
"snippet": "const LongLabel = () => <AirStyle\n label=\"Outdoor strength training and conditioning in the park\"\n src={training} />;"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "ui-air-style--grid",
|
|
91
|
+
"name": "Grid",
|
|
92
|
+
"snippet": "const Grid = () => (\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-3 md:grid-cols-4\">\n <AirStyle label=\"Training\" src={training} />\n <AirStyle label=\"Cooking\" src={cooking} />\n <AirStyle label=\"Photography\" src={photography} />\n <AirStyle label=\"Art\" src={art} />\n </div>\n);"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"import": "import { AirStyle } from '@voriel_salut/ds';"
|
|
96
|
+
},
|
|
97
|
+
"ui-hero": {
|
|
98
|
+
"id": "ui-hero",
|
|
99
|
+
"name": "Hero",
|
|
100
|
+
"path": "./src/components/hero/hero.stories.tsx",
|
|
101
|
+
"jsDocTags": {},
|
|
102
|
+
"reactDocgen": {
|
|
103
|
+
"description": "",
|
|
104
|
+
"methods": [],
|
|
105
|
+
"displayName": "Hero",
|
|
106
|
+
"definedInFile": "src/components/hero/hero.tsx",
|
|
107
|
+
"actualName": "Hero",
|
|
108
|
+
"exportName": "Hero",
|
|
109
|
+
"props": {
|
|
110
|
+
"title": {
|
|
111
|
+
"required": true,
|
|
112
|
+
"tsType": {
|
|
113
|
+
"name": "ReactReactNode",
|
|
114
|
+
"raw": "React.ReactNode"
|
|
115
|
+
},
|
|
116
|
+
"description": "Main heading, rendered as an h1."
|
|
117
|
+
},
|
|
118
|
+
"description": {
|
|
119
|
+
"required": false,
|
|
120
|
+
"tsType": {
|
|
121
|
+
"name": "ReactReactNode",
|
|
122
|
+
"raw": "React.ReactNode"
|
|
123
|
+
},
|
|
124
|
+
"description": "Supporting text under the heading."
|
|
125
|
+
},
|
|
126
|
+
"eyebrow": {
|
|
127
|
+
"required": false,
|
|
128
|
+
"tsType": {
|
|
129
|
+
"name": "ReactReactNode",
|
|
130
|
+
"raw": "React.ReactNode"
|
|
131
|
+
},
|
|
132
|
+
"description": "Small label above the heading, e.g. a Badge."
|
|
133
|
+
},
|
|
134
|
+
"background": {
|
|
135
|
+
"required": false,
|
|
136
|
+
"tsType": {
|
|
137
|
+
"name": "union",
|
|
138
|
+
"raw": "\"mesh\" | \"nebula\"",
|
|
139
|
+
"elements": [
|
|
140
|
+
{
|
|
141
|
+
"name": "literal",
|
|
142
|
+
"value": "\"mesh\""
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "literal",
|
|
146
|
+
"value": "\"nebula\""
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"description": "\"mesh\" is the calm animated gradient. \"nebula\" is the interactive halftone sky: the pointer\nlights the gas and a click hangs a new star.",
|
|
151
|
+
"defaultValue": {
|
|
152
|
+
"value": "\"mesh\"",
|
|
153
|
+
"computed": false
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"children": {
|
|
157
|
+
"required": false,
|
|
158
|
+
"tsType": {
|
|
159
|
+
"name": "ReactReactNode",
|
|
160
|
+
"raw": "React.ReactNode"
|
|
161
|
+
},
|
|
162
|
+
"description": "Calls to action, usually Buttons."
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"stories": [
|
|
167
|
+
{
|
|
168
|
+
"id": "ui-hero--default",
|
|
169
|
+
"name": "Default",
|
|
170
|
+
"snippet": "const Default = () => <Hero\n title=\"Build bold interfaces, fast\"\n description=\"lets-vibe-ds gives you brutalist components and tokens that work together out of the box.\"\n eyebrow={<Badge variant=\"accent\">New</Badge>}>(<>\n <Button size=\"lg\">Get started</Button>\n <Button size=\"lg\" variant=\"outline\">\n View components\n </Button>\n </>)</Hero>;"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "ui-hero--interactive",
|
|
174
|
+
"name": "Interactive",
|
|
175
|
+
"snippet": "const Interactive = () => <Hero\n title=\"Lost in the green static\"\n description=\"A nebula printed one dot at a time. Move to light the gas, click to hang a star.\"\n eyebrow={<Badge variant=\"accent\">Interactive</Badge>}\n background=\"nebula\">(<>\n <Button size=\"lg\">Get started</Button>\n <Button size=\"lg\" variant=\"outline\">\n View components\n </Button>\n </>)</Hero>;"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "ui-hero--title-only",
|
|
179
|
+
"name": "Title only",
|
|
180
|
+
"snippet": "const TitleOnly = () => <Hero title=\"Build bold interfaces, fast\" description={undefined} />;"
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"import": "import { Badge, Button, Hero } from '@voriel_salut/ds';"
|
|
184
|
+
},
|
|
185
|
+
"ui-badge": {
|
|
186
|
+
"id": "ui-badge",
|
|
187
|
+
"name": "Badge",
|
|
188
|
+
"path": "./src/components/ui/badge.stories.tsx",
|
|
189
|
+
"jsDocTags": {},
|
|
190
|
+
"reactDocgen": {
|
|
191
|
+
"description": "",
|
|
192
|
+
"methods": [],
|
|
193
|
+
"displayName": "Badge",
|
|
194
|
+
"definedInFile": "src/components/ui/badge.tsx",
|
|
195
|
+
"actualName": "Badge",
|
|
196
|
+
"exportName": "Badge",
|
|
197
|
+
"props": {
|
|
198
|
+
"asChild": {
|
|
199
|
+
"required": false,
|
|
200
|
+
"tsType": {
|
|
201
|
+
"name": "boolean"
|
|
202
|
+
},
|
|
203
|
+
"description": "",
|
|
204
|
+
"defaultValue": {
|
|
205
|
+
"value": "false",
|
|
206
|
+
"computed": false
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"variant": {
|
|
210
|
+
"defaultValue": {
|
|
211
|
+
"value": "\"default\"",
|
|
212
|
+
"computed": false
|
|
213
|
+
},
|
|
214
|
+
"required": false
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"stories": [
|
|
219
|
+
{
|
|
220
|
+
"id": "ui-badge--default",
|
|
221
|
+
"name": "Default",
|
|
222
|
+
"snippet": "const Default = () => <Badge variant=\"default\">Badge</Badge>;"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"id": "ui-badge--secondary",
|
|
226
|
+
"name": "Secondary",
|
|
227
|
+
"snippet": "const Secondary = () => <Badge variant=\"secondary\">Badge</Badge>;"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"id": "ui-badge--accent",
|
|
231
|
+
"name": "Accent",
|
|
232
|
+
"snippet": "const Accent = () => <Badge variant=\"accent\">Badge</Badge>;"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"id": "ui-badge--outline",
|
|
236
|
+
"name": "Outline",
|
|
237
|
+
"snippet": "const Outline = () => <Badge variant=\"outline\">Badge</Badge>;"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"id": "ui-badge--destructive",
|
|
241
|
+
"name": "Destructive",
|
|
242
|
+
"snippet": "const Destructive = () => <Badge variant=\"destructive\">Badge</Badge>;"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"id": "ui-badge--all-variants",
|
|
246
|
+
"name": "All variants",
|
|
247
|
+
"snippet": "const AllVariants = () => (\n <div className=\"flex flex-wrap gap-2\">\n <Badge>Default</Badge>\n <Badge variant=\"secondary\">Secondary</Badge>\n <Badge variant=\"accent\">Accent</Badge>\n <Badge variant=\"outline\">Outline</Badge>\n <Badge variant=\"ghost\">Ghost</Badge>\n <Badge variant=\"destructive\">Destructive</Badge>\n <Badge variant=\"link\">Link</Badge>\n </div>\n);"
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"import": "import { Badge } from '@voriel_salut/ds';"
|
|
251
|
+
},
|
|
252
|
+
"ui-button": {
|
|
253
|
+
"id": "ui-button",
|
|
254
|
+
"name": "Button",
|
|
255
|
+
"path": "./src/components/ui/button.stories.tsx",
|
|
256
|
+
"jsDocTags": {},
|
|
257
|
+
"reactDocgen": {
|
|
258
|
+
"description": "",
|
|
259
|
+
"methods": [],
|
|
260
|
+
"displayName": "Button",
|
|
261
|
+
"definedInFile": "src/components/ui/button.tsx",
|
|
262
|
+
"actualName": "Button",
|
|
263
|
+
"exportName": "Button",
|
|
264
|
+
"props": {
|
|
265
|
+
"asChild": {
|
|
266
|
+
"required": false,
|
|
267
|
+
"tsType": {
|
|
268
|
+
"name": "boolean"
|
|
269
|
+
},
|
|
270
|
+
"description": "",
|
|
271
|
+
"defaultValue": {
|
|
272
|
+
"value": "false",
|
|
273
|
+
"computed": false
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"variant": {
|
|
277
|
+
"defaultValue": {
|
|
278
|
+
"value": "\"default\"",
|
|
279
|
+
"computed": false
|
|
280
|
+
},
|
|
281
|
+
"required": false
|
|
282
|
+
},
|
|
283
|
+
"size": {
|
|
284
|
+
"defaultValue": {
|
|
285
|
+
"value": "\"default\"",
|
|
286
|
+
"computed": false
|
|
287
|
+
},
|
|
288
|
+
"required": false
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
"stories": [
|
|
293
|
+
{
|
|
294
|
+
"id": "ui-button--default",
|
|
295
|
+
"name": "Default",
|
|
296
|
+
"snippet": "const Default = () => <Button variant=\"default\" size=\"default\" disabled={false}>Button</Button>;"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"id": "ui-button--outline",
|
|
300
|
+
"name": "Outline",
|
|
301
|
+
"snippet": "const Outline = () => <Button variant=\"outline\" size=\"default\" disabled={false}>Button</Button>;"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"id": "ui-button--secondary",
|
|
305
|
+
"name": "Secondary",
|
|
306
|
+
"snippet": "const Secondary = () => <Button variant=\"secondary\" size=\"default\" disabled={false}>Button</Button>;"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"id": "ui-button--accent",
|
|
310
|
+
"name": "Accent",
|
|
311
|
+
"snippet": "const Accent = () => <Button variant=\"accent\" size=\"default\" disabled={false}>Button</Button>;"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"id": "ui-button--ghost",
|
|
315
|
+
"name": "Ghost",
|
|
316
|
+
"snippet": "const Ghost = () => <Button variant=\"ghost\" size=\"default\" disabled={false}>Button</Button>;"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"id": "ui-button--destructive",
|
|
320
|
+
"name": "Destructive",
|
|
321
|
+
"snippet": "const Destructive = () => <Button variant=\"destructive\" size=\"default\" disabled={false}>Button</Button>;"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"id": "ui-button--link",
|
|
325
|
+
"name": "Link",
|
|
326
|
+
"snippet": "const Link = () => <Button variant=\"link\" size=\"default\" disabled={false}>Button</Button>;"
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"import": "import { Button } from '@voriel_salut/ds';"
|
|
330
|
+
},
|
|
331
|
+
"ui-card": {
|
|
332
|
+
"id": "ui-card",
|
|
333
|
+
"name": "Card",
|
|
334
|
+
"path": "./src/components/ui/card.stories.tsx",
|
|
335
|
+
"jsDocTags": {},
|
|
336
|
+
"reactDocgen": {
|
|
337
|
+
"description": "",
|
|
338
|
+
"methods": [],
|
|
339
|
+
"displayName": "Card",
|
|
340
|
+
"definedInFile": "src/components/ui/card.tsx",
|
|
341
|
+
"actualName": "Card",
|
|
342
|
+
"exportName": "Card",
|
|
343
|
+
"props": {
|
|
344
|
+
"size": {
|
|
345
|
+
"required": false,
|
|
346
|
+
"tsType": {
|
|
347
|
+
"name": "union",
|
|
348
|
+
"raw": "\"default\" | \"sm\"",
|
|
349
|
+
"elements": [
|
|
350
|
+
{
|
|
351
|
+
"name": "literal",
|
|
352
|
+
"value": "\"default\""
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"name": "literal",
|
|
356
|
+
"value": "\"sm\""
|
|
357
|
+
}
|
|
358
|
+
]
|
|
359
|
+
},
|
|
360
|
+
"description": "",
|
|
361
|
+
"defaultValue": {
|
|
362
|
+
"value": "\"default\"",
|
|
363
|
+
"computed": false
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"stories": [
|
|
369
|
+
{
|
|
370
|
+
"id": "ui-card--default",
|
|
371
|
+
"name": "Default",
|
|
372
|
+
"snippet": "const Default = () => <Card size=\"default\" className=\"w-80\">\n <CardHeader>\n <CardTitle>Sign up</CardTitle>\n <CardDescription>Get updates on the design system.</CardDescription>\n </CardHeader>\n <CardContent className=\"flex flex-col gap-2\">\n <Label htmlFor=\"card-email\">Email</Label>\n <Input id=\"card-email\" type=\"email\" placeholder=\"you@example.com\" />\n </CardContent>\n <CardFooter>\n <Button className=\"w-full\">Subscribe</Button>\n </CardFooter>\n</Card>;"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"id": "ui-card--with-action",
|
|
376
|
+
"name": "With action",
|
|
377
|
+
"snippet": "const WithAction = () => <Card size=\"default\" className=\"w-80\">\n <CardHeader>\n <CardTitle>Monthly plan</CardTitle>\n <CardDescription>Billed every month.</CardDescription>\n <CardAction>\n <Badge variant=\"accent\">Popular</Badge>\n </CardAction>\n </CardHeader>\n <CardContent>\n <p className=\"text-3xl font-bold\">€12</p>\n </CardContent>\n</Card>;"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"id": "ui-card--small",
|
|
381
|
+
"name": "Small",
|
|
382
|
+
"snippet": "const Small = () => <Card size=\"sm\" className=\"w-64\">\n <CardHeader>\n <CardTitle>Small card</CardTitle>\n <CardDescription>Tighter spacing for dense layouts.</CardDescription>\n </CardHeader>\n</Card>;"
|
|
383
|
+
}
|
|
384
|
+
],
|
|
385
|
+
"import": "import {\n Badge,\n Button,\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n Input,\n Label,\n} from '@voriel_salut/ds';"
|
|
386
|
+
},
|
|
387
|
+
"ui-dialog": {
|
|
388
|
+
"id": "ui-dialog",
|
|
389
|
+
"name": "Dialog",
|
|
390
|
+
"path": "./src/components/ui/dialog.stories.tsx",
|
|
391
|
+
"jsDocTags": {},
|
|
392
|
+
"reactDocgen": {
|
|
393
|
+
"description": "",
|
|
394
|
+
"methods": [],
|
|
395
|
+
"displayName": "Dialog",
|
|
396
|
+
"definedInFile": "src/components/ui/dialog.tsx",
|
|
397
|
+
"actualName": "Dialog",
|
|
398
|
+
"exportName": "Dialog"
|
|
399
|
+
},
|
|
400
|
+
"stories": [
|
|
401
|
+
{
|
|
402
|
+
"id": "ui-dialog--default",
|
|
403
|
+
"name": "Default",
|
|
404
|
+
"snippet": "const Default = () => <Dialog>\n <DialogTrigger asChild>\n <Button variant=\"outline\">Edit profile</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Edit profile</DialogTitle>\n <DialogDescription>Change your details, then save.</DialogDescription>\n </DialogHeader>\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"dialog-name\">Name</Label>\n <Input id=\"dialog-name\" defaultValue=\"Oliver\" />\n </div>\n <DialogFooter>\n <DialogClose asChild>\n <Button variant=\"outline\">Cancel</Button>\n </DialogClose>\n <Button>Save</Button>\n </DialogFooter>\n </DialogContent>\n</Dialog>;"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"id": "ui-dialog--destructive",
|
|
408
|
+
"name": "Destructive",
|
|
409
|
+
"snippet": "const Destructive = () => <Dialog>\n <DialogTrigger asChild>\n <Button variant=\"destructive\">Delete project</Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Delete this project?</DialogTitle>\n <DialogDescription>This can't be undone.</DialogDescription>\n </DialogHeader>\n <DialogFooter showCloseButton>\n <Button variant=\"destructive\">Delete</Button>\n </DialogFooter>\n </DialogContent>\n</Dialog>;"
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"id": "ui-dialog--open",
|
|
413
|
+
"name": "Open",
|
|
414
|
+
"error": {
|
|
415
|
+
"name": "SyntaxError",
|
|
416
|
+
"message": "Expected render to be an arrow function or function expression\n 70 | export const Open: Story = {\n 71 | args: { defaultOpen: true },\n> 72 | render: Default.render,\n | ^^^^^^^^^^^^^^\n 73 | }\n 74 |"
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
],
|
|
420
|
+
"import": "import {\n Button,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n Input,\n Label,\n} from '@voriel_salut/ds';"
|
|
421
|
+
},
|
|
422
|
+
"ui-halftone-nebula": {
|
|
423
|
+
"id": "ui-halftone-nebula",
|
|
424
|
+
"name": "HalftoneNebula",
|
|
425
|
+
"path": "./src/components/ui/halftone-nebula.stories.tsx",
|
|
426
|
+
"jsDocTags": {},
|
|
427
|
+
"reactDocgen": {
|
|
428
|
+
"description": "",
|
|
429
|
+
"methods": [],
|
|
430
|
+
"displayName": "HalftoneNebula",
|
|
431
|
+
"definedInFile": "src/components/ui/halftone-nebula.tsx",
|
|
432
|
+
"actualName": "HalftoneNebula",
|
|
433
|
+
"exportName": "HalftoneNebula",
|
|
434
|
+
"props": {
|
|
435
|
+
"height": {
|
|
436
|
+
"required": false,
|
|
437
|
+
"tsType": {
|
|
438
|
+
"name": "string"
|
|
439
|
+
},
|
|
440
|
+
"description": "Explicit height, e.g. \"100svh\". The canvas fills the box, so without it the\nsection needs its height from its content or classes."
|
|
441
|
+
},
|
|
442
|
+
"preset": {
|
|
443
|
+
"required": false,
|
|
444
|
+
"tsType": {
|
|
445
|
+
"name": "union",
|
|
446
|
+
"raw": "keyof typeof NEBULA_PRESETS",
|
|
447
|
+
"elements": [
|
|
448
|
+
{
|
|
449
|
+
"name": "literal",
|
|
450
|
+
"value": "brand"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"name": "literal",
|
|
454
|
+
"value": "crimson"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"name": "literal",
|
|
458
|
+
"value": "ultraviolet"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"name": "literal",
|
|
462
|
+
"value": "abyssal"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"name": "literal",
|
|
466
|
+
"value": "solar"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"name": "literal",
|
|
470
|
+
"value": "phosphor"
|
|
471
|
+
}
|
|
472
|
+
]
|
|
473
|
+
},
|
|
474
|
+
"description": "A named palette + layout, layered over the defaults.",
|
|
475
|
+
"defaultValue": {
|
|
476
|
+
"value": "\"brand\"",
|
|
477
|
+
"computed": false
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"params": {
|
|
481
|
+
"required": false,
|
|
482
|
+
"tsType": {
|
|
483
|
+
"name": "Partial",
|
|
484
|
+
"elements": [
|
|
485
|
+
{
|
|
486
|
+
"name": "signature",
|
|
487
|
+
"type": "object",
|
|
488
|
+
"raw": "{\n // the grid\n /** CSS px per pixel cell. Everything snaps to this. */\n pixel: number\n /** Dot radius, in cells, where the gas is empty / densest. >0.5 merges dots. */\n dotMin: number\n dotMax: number\n /** Quantisation steps before dithering. Fewer reads more like pixel art. */\n levels: number\n // the gas\n scale: number\n warp: number\n drift: number\n density: number\n threshold: number\n softness: number\n /** The luminous river of gas that sweeps across the frame. */\n band: number\n bandAngle: number\n bandOffset: number\n bandWidth: number\n haze: number\n // stars\n stars: number\n twinkle: number\n starDrift: number\n sparkles: number\n seed: number\n spikeWidth: number\n // planet\n planet: boolean\n planetX: number\n planetY: number\n planetRadius: number\n // the pointer\n parallax: number\n lens: number\n lensRadius: number\n lensPush: number\n rippleSpeed: number\n // post\n speed: number\n vignette: number\n grain: number\n // palette, dark to bright. Any CSS colour, including var(--token) and color-mix().\n voidColor: string\n hazeColor: string\n duskColor: string\n wineColor: string\n crimsonColor: string\n hotColor: string\n starColor: string\n}",
|
|
489
|
+
"signature": {
|
|
490
|
+
"properties": [
|
|
491
|
+
{
|
|
492
|
+
"key": "pixel",
|
|
493
|
+
"value": {
|
|
494
|
+
"name": "number",
|
|
495
|
+
"required": true
|
|
496
|
+
},
|
|
497
|
+
"description": "CSS px per pixel cell. Everything snaps to this."
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"key": "dotMin",
|
|
501
|
+
"value": {
|
|
502
|
+
"name": "number",
|
|
503
|
+
"required": true
|
|
504
|
+
},
|
|
505
|
+
"description": "Dot radius, in cells, where the gas is empty / densest. >0.5 merges dots."
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
"key": "dotMax",
|
|
509
|
+
"value": {
|
|
510
|
+
"name": "number",
|
|
511
|
+
"required": true
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"key": "levels",
|
|
516
|
+
"value": {
|
|
517
|
+
"name": "number",
|
|
518
|
+
"required": true
|
|
519
|
+
},
|
|
520
|
+
"description": "Quantisation steps before dithering. Fewer reads more like pixel art."
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"key": "scale",
|
|
524
|
+
"value": {
|
|
525
|
+
"name": "number",
|
|
526
|
+
"required": true
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"key": "warp",
|
|
531
|
+
"value": {
|
|
532
|
+
"name": "number",
|
|
533
|
+
"required": true
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"key": "drift",
|
|
538
|
+
"value": {
|
|
539
|
+
"name": "number",
|
|
540
|
+
"required": true
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"key": "density",
|
|
545
|
+
"value": {
|
|
546
|
+
"name": "number",
|
|
547
|
+
"required": true
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"key": "threshold",
|
|
552
|
+
"value": {
|
|
553
|
+
"name": "number",
|
|
554
|
+
"required": true
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"key": "softness",
|
|
559
|
+
"value": {
|
|
560
|
+
"name": "number",
|
|
561
|
+
"required": true
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"key": "band",
|
|
566
|
+
"value": {
|
|
567
|
+
"name": "number",
|
|
568
|
+
"required": true
|
|
569
|
+
},
|
|
570
|
+
"description": "The luminous river of gas that sweeps across the frame."
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"key": "bandAngle",
|
|
574
|
+
"value": {
|
|
575
|
+
"name": "number",
|
|
576
|
+
"required": true
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"key": "bandOffset",
|
|
581
|
+
"value": {
|
|
582
|
+
"name": "number",
|
|
583
|
+
"required": true
|
|
584
|
+
}
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"key": "bandWidth",
|
|
588
|
+
"value": {
|
|
589
|
+
"name": "number",
|
|
590
|
+
"required": true
|
|
591
|
+
}
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"key": "haze",
|
|
595
|
+
"value": {
|
|
596
|
+
"name": "number",
|
|
597
|
+
"required": true
|
|
598
|
+
}
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"key": "stars",
|
|
602
|
+
"value": {
|
|
603
|
+
"name": "number",
|
|
604
|
+
"required": true
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"key": "twinkle",
|
|
609
|
+
"value": {
|
|
610
|
+
"name": "number",
|
|
611
|
+
"required": true
|
|
612
|
+
}
|
|
613
|
+
},
|
|
614
|
+
{
|
|
615
|
+
"key": "starDrift",
|
|
616
|
+
"value": {
|
|
617
|
+
"name": "number",
|
|
618
|
+
"required": true
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"key": "sparkles",
|
|
623
|
+
"value": {
|
|
624
|
+
"name": "number",
|
|
625
|
+
"required": true
|
|
626
|
+
}
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"key": "seed",
|
|
630
|
+
"value": {
|
|
631
|
+
"name": "number",
|
|
632
|
+
"required": true
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
"key": "spikeWidth",
|
|
637
|
+
"value": {
|
|
638
|
+
"name": "number",
|
|
639
|
+
"required": true
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"key": "planet",
|
|
644
|
+
"value": {
|
|
645
|
+
"name": "boolean",
|
|
646
|
+
"required": true
|
|
647
|
+
}
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"key": "planetX",
|
|
651
|
+
"value": {
|
|
652
|
+
"name": "number",
|
|
653
|
+
"required": true
|
|
654
|
+
}
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"key": "planetY",
|
|
658
|
+
"value": {
|
|
659
|
+
"name": "number",
|
|
660
|
+
"required": true
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"key": "planetRadius",
|
|
665
|
+
"value": {
|
|
666
|
+
"name": "number",
|
|
667
|
+
"required": true
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"key": "parallax",
|
|
672
|
+
"value": {
|
|
673
|
+
"name": "number",
|
|
674
|
+
"required": true
|
|
675
|
+
}
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"key": "lens",
|
|
679
|
+
"value": {
|
|
680
|
+
"name": "number",
|
|
681
|
+
"required": true
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"key": "lensRadius",
|
|
686
|
+
"value": {
|
|
687
|
+
"name": "number",
|
|
688
|
+
"required": true
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"key": "lensPush",
|
|
693
|
+
"value": {
|
|
694
|
+
"name": "number",
|
|
695
|
+
"required": true
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
"key": "rippleSpeed",
|
|
700
|
+
"value": {
|
|
701
|
+
"name": "number",
|
|
702
|
+
"required": true
|
|
703
|
+
}
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"key": "speed",
|
|
707
|
+
"value": {
|
|
708
|
+
"name": "number",
|
|
709
|
+
"required": true
|
|
710
|
+
}
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"key": "vignette",
|
|
714
|
+
"value": {
|
|
715
|
+
"name": "number",
|
|
716
|
+
"required": true
|
|
717
|
+
}
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"key": "grain",
|
|
721
|
+
"value": {
|
|
722
|
+
"name": "number",
|
|
723
|
+
"required": true
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"key": "voidColor",
|
|
728
|
+
"value": {
|
|
729
|
+
"name": "string",
|
|
730
|
+
"required": true
|
|
731
|
+
}
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
"key": "hazeColor",
|
|
735
|
+
"value": {
|
|
736
|
+
"name": "string",
|
|
737
|
+
"required": true
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"key": "duskColor",
|
|
742
|
+
"value": {
|
|
743
|
+
"name": "string",
|
|
744
|
+
"required": true
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"key": "wineColor",
|
|
749
|
+
"value": {
|
|
750
|
+
"name": "string",
|
|
751
|
+
"required": true
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"key": "crimsonColor",
|
|
756
|
+
"value": {
|
|
757
|
+
"name": "string",
|
|
758
|
+
"required": true
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"key": "hotColor",
|
|
763
|
+
"value": {
|
|
764
|
+
"name": "string",
|
|
765
|
+
"required": true
|
|
766
|
+
}
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"key": "starColor",
|
|
770
|
+
"value": {
|
|
771
|
+
"name": "string",
|
|
772
|
+
"required": true
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
]
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
],
|
|
779
|
+
"raw": "Partial<NebulaParams>"
|
|
780
|
+
},
|
|
781
|
+
"description": "Overrides layered over the preset."
|
|
782
|
+
},
|
|
783
|
+
"interactive": {
|
|
784
|
+
"required": false,
|
|
785
|
+
"tsType": {
|
|
786
|
+
"name": "boolean"
|
|
787
|
+
},
|
|
788
|
+
"description": "Pointer lights the gas and parallaxes the sky; click drops a sparkle.",
|
|
789
|
+
"defaultValue": {
|
|
790
|
+
"value": "true",
|
|
791
|
+
"computed": false
|
|
792
|
+
}
|
|
793
|
+
},
|
|
794
|
+
"touch": {
|
|
795
|
+
"required": false,
|
|
796
|
+
"tsType": {
|
|
797
|
+
"name": "union",
|
|
798
|
+
"raw": "\"scroll\" | \"draw\"",
|
|
799
|
+
"elements": [
|
|
800
|
+
{
|
|
801
|
+
"name": "literal",
|
|
802
|
+
"value": "\"scroll\""
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
"name": "literal",
|
|
806
|
+
"value": "\"draw\""
|
|
807
|
+
}
|
|
808
|
+
]
|
|
809
|
+
},
|
|
810
|
+
"description": "\"scroll\" keeps page scrolling on touch; \"draw\" takes the gesture.",
|
|
811
|
+
"defaultValue": {
|
|
812
|
+
"value": "\"scroll\"",
|
|
813
|
+
"computed": false
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
"maxDpr": {
|
|
817
|
+
"required": false,
|
|
818
|
+
"tsType": {
|
|
819
|
+
"name": "number"
|
|
820
|
+
},
|
|
821
|
+
"description": "Device-pixel-ratio cap. The shader is per-pixel, so 2 is plenty.",
|
|
822
|
+
"defaultValue": {
|
|
823
|
+
"value": "2",
|
|
824
|
+
"computed": false
|
|
825
|
+
}
|
|
826
|
+
},
|
|
827
|
+
"children": {
|
|
828
|
+
"required": false,
|
|
829
|
+
"tsType": {
|
|
830
|
+
"name": "ReactReactNode",
|
|
831
|
+
"raw": "React.ReactNode"
|
|
832
|
+
},
|
|
833
|
+
"description": "Content laid over the sky. Pointer events pass through unless opted in."
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
},
|
|
837
|
+
"stories": [
|
|
838
|
+
{
|
|
839
|
+
"id": "ui-halftone-nebula--default",
|
|
840
|
+
"name": "Default",
|
|
841
|
+
"snippet": "const Default = () => <HalftoneNebula height=\"32rem\" preset=\"brand\" interactive />;"
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"id": "ui-halftone-nebula--crimson",
|
|
845
|
+
"name": "Crimson",
|
|
846
|
+
"snippet": "const Crimson = () => <HalftoneNebula height=\"32rem\" preset=\"crimson\" interactive />;"
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
"id": "ui-halftone-nebula--static",
|
|
850
|
+
"name": "Static",
|
|
851
|
+
"snippet": "const Static = () => <HalftoneNebula height=\"32rem\" preset=\"brand\" interactive={false} />;"
|
|
852
|
+
}
|
|
853
|
+
],
|
|
854
|
+
"import": "import { HalftoneNebula } from '@voriel_salut/ds';"
|
|
855
|
+
},
|
|
856
|
+
"ui-input": {
|
|
857
|
+
"id": "ui-input",
|
|
858
|
+
"name": "Input",
|
|
859
|
+
"path": "./src/components/ui/input.stories.tsx",
|
|
860
|
+
"jsDocTags": {},
|
|
861
|
+
"reactDocgen": {
|
|
862
|
+
"description": "",
|
|
863
|
+
"methods": [],
|
|
864
|
+
"displayName": "Input",
|
|
865
|
+
"definedInFile": "src/components/ui/input.tsx",
|
|
866
|
+
"actualName": "Input",
|
|
867
|
+
"exportName": "Input"
|
|
868
|
+
},
|
|
869
|
+
"stories": [
|
|
870
|
+
{
|
|
871
|
+
"id": "ui-input--default",
|
|
872
|
+
"name": "Default",
|
|
873
|
+
"snippet": "const Default = () => <Input placeholder=\"you@example.com\" type=\"email\" disabled={false} />;"
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"id": "ui-input--with-label",
|
|
877
|
+
"name": "With label",
|
|
878
|
+
"snippet": "const WithLabel = () => <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"input-email\">Email</Label>\n <Input\n id=\"input-email\"\n placeholder=\"you@example.com\"\n type=\"email\"\n disabled={false} />\n</div>;"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"id": "ui-input--disabled",
|
|
882
|
+
"name": "Disabled",
|
|
883
|
+
"snippet": "const Disabled = () => <Input placeholder=\"you@example.com\" type=\"email\" disabled />;"
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"id": "ui-input--invalid",
|
|
887
|
+
"name": "Invalid",
|
|
888
|
+
"snippet": "const Invalid = () => <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"input-invalid\">Email</Label>\n <Input\n id=\"input-invalid\"\n aria-invalid\n defaultValue=\"not-an-email\"\n placeholder=\"you@example.com\"\n type=\"email\"\n disabled={false} />\n <p className=\"text-xs text-destructive\">Enter a valid email address.</p>\n</div>;"
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
"id": "ui-input--file",
|
|
892
|
+
"name": "File",
|
|
893
|
+
"snippet": "const File = () => <Input placeholder={undefined} type=\"file\" disabled={false} />;"
|
|
894
|
+
}
|
|
895
|
+
],
|
|
896
|
+
"import": "import { Input, Label } from '@voriel_salut/ds';"
|
|
897
|
+
},
|
|
898
|
+
"ui-label": {
|
|
899
|
+
"id": "ui-label",
|
|
900
|
+
"name": "Label",
|
|
901
|
+
"path": "./src/components/ui/label.stories.tsx",
|
|
902
|
+
"jsDocTags": {},
|
|
903
|
+
"reactDocgen": {
|
|
904
|
+
"description": "",
|
|
905
|
+
"methods": [],
|
|
906
|
+
"displayName": "Label",
|
|
907
|
+
"definedInFile": "src/components/ui/label.tsx",
|
|
908
|
+
"actualName": "Label",
|
|
909
|
+
"exportName": "Label"
|
|
910
|
+
},
|
|
911
|
+
"stories": [
|
|
912
|
+
{
|
|
913
|
+
"id": "ui-label--default",
|
|
914
|
+
"name": "Default",
|
|
915
|
+
"snippet": "const Default = () => <Label>Email</Label>;"
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
"id": "ui-label--with-input",
|
|
919
|
+
"name": "With input",
|
|
920
|
+
"snippet": "const WithInput = () => <div className=\"flex w-72 flex-col gap-2\">\n <Label htmlFor=\"label-email\">Email</Label>\n <Input id=\"label-email\" type=\"email\" placeholder=\"you@example.com\" />\n</div>;"
|
|
921
|
+
}
|
|
922
|
+
],
|
|
923
|
+
"import": "import { Input, Label } from '@voriel_salut/ds';"
|
|
924
|
+
},
|
|
925
|
+
"ui-tabs": {
|
|
926
|
+
"id": "ui-tabs",
|
|
927
|
+
"name": "Tabs",
|
|
928
|
+
"path": "./src/components/ui/tabs.stories.tsx",
|
|
929
|
+
"jsDocTags": {},
|
|
930
|
+
"reactDocgen": {
|
|
931
|
+
"description": "",
|
|
932
|
+
"methods": [],
|
|
933
|
+
"displayName": "Tabs",
|
|
934
|
+
"definedInFile": "src/components/ui/tabs.tsx",
|
|
935
|
+
"actualName": "Tabs",
|
|
936
|
+
"exportName": "Tabs",
|
|
937
|
+
"props": {
|
|
938
|
+
"orientation": {
|
|
939
|
+
"defaultValue": {
|
|
940
|
+
"value": "\"horizontal\"",
|
|
941
|
+
"computed": false
|
|
942
|
+
},
|
|
943
|
+
"required": false
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
},
|
|
947
|
+
"stories": [
|
|
948
|
+
{
|
|
949
|
+
"id": "ui-tabs--default",
|
|
950
|
+
"name": "Default",
|
|
951
|
+
"snippet": "const Default = () => <Tabs defaultValue=\"overview\" className=\"w-96\">\n <Example />\n</Tabs>;"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"id": "ui-tabs--line",
|
|
955
|
+
"name": "Line",
|
|
956
|
+
"snippet": "const Line = () => <Tabs defaultValue=\"overview\" className=\"w-96\">\n <Example variant=\"line\" />\n</Tabs>;"
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"id": "ui-tabs--vertical",
|
|
960
|
+
"name": "Vertical",
|
|
961
|
+
"snippet": "const Vertical = () => <Tabs defaultValue=\"overview\" orientation=\"vertical\" className=\"w-96\">\n <Example />\n</Tabs>;"
|
|
962
|
+
}
|
|
963
|
+
],
|
|
964
|
+
"import": "import { Tabs, TabsContent, TabsList, TabsTrigger } from '@voriel_salut/ds';"
|
|
965
|
+
},
|
|
966
|
+
"ui-tooltip": {
|
|
967
|
+
"id": "ui-tooltip",
|
|
968
|
+
"name": "Tooltip",
|
|
969
|
+
"path": "./src/components/ui/tooltip.stories.tsx",
|
|
970
|
+
"jsDocTags": {},
|
|
971
|
+
"reactDocgen": {
|
|
972
|
+
"description": "",
|
|
973
|
+
"methods": [],
|
|
974
|
+
"displayName": "Tooltip",
|
|
975
|
+
"definedInFile": "src/components/ui/tooltip.tsx",
|
|
976
|
+
"actualName": "Tooltip",
|
|
977
|
+
"exportName": "Tooltip"
|
|
978
|
+
},
|
|
979
|
+
"stories": [
|
|
980
|
+
{
|
|
981
|
+
"id": "ui-tooltip--default",
|
|
982
|
+
"name": "Default",
|
|
983
|
+
"snippet": "const Default = () => <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\">Hover me</Button>\n </TooltipTrigger>\n <TooltipContent>A tooltip</TooltipContent>\n</Tooltip>;"
|
|
984
|
+
},
|
|
985
|
+
{
|
|
986
|
+
"id": "ui-tooltip--sides",
|
|
987
|
+
"name": "Sides",
|
|
988
|
+
"snippet": "const Sides = () => (\n <div className=\"grid grid-cols-2 gap-4\">\n {([\"top\", \"right\", \"bottom\", \"left\"] as const).map((side) => (\n <Tooltip key={side}>\n <TooltipTrigger asChild>\n <Button variant=\"outline\">{side}</Button>\n </TooltipTrigger>\n <TooltipContent side={side}>Shown on the {side}</TooltipContent>\n </Tooltip>\n ))}\n </div>\n);"
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"id": "ui-tooltip--open",
|
|
992
|
+
"name": "Open",
|
|
993
|
+
"error": {
|
|
994
|
+
"name": "SyntaxError",
|
|
995
|
+
"message": "Expected render to be an arrow function or function expression\n 41 | export const Open: Story = {\n 42 | args: { defaultOpen: true },\n> 43 | render: Default.render,\n | ^^^^^^^^^^^^^^\n 44 | }\n 45 |"
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
],
|
|
999
|
+
"import": "import { Button, Tooltip, TooltipContent, TooltipTrigger } from '@voriel_salut/ds';"
|
|
1000
|
+
}
|
|
1001
|
+
},
|
|
1002
|
+
"meta": {
|
|
1003
|
+
"docgen": "react-docgen",
|
|
1004
|
+
"durationMs": 140
|
|
1005
|
+
},
|
|
1006
|
+
"package": "@voriel_salut/ds",
|
|
1007
|
+
"version": "0.1.0"
|
|
1008
|
+
}
|