cyberui-2045 2.3.0 → 2.4.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/AGENT.md +25 -23
- package/README.md +31 -28
- package/bin/init.js +11 -5
- package/bin/markers.js +18 -0
- package/bin/usage-content.js +136 -210
- package/dist/component-manifest.json +1454 -0
- package/dist/components/Badge.js +49 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Button.js +62 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Card.js +31 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/Carousel.js +585 -0
- package/dist/components/Carousel.js.map +1 -0
- package/dist/components/Checkbox.js +92 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/CircularProgress.js +87 -0
- package/dist/components/CircularProgress.js.map +1 -0
- package/dist/components/Divider.js +24 -0
- package/dist/components/Divider.js.map +1 -0
- package/dist/components/GradientText.js +27 -0
- package/dist/components/GradientText.js.map +1 -0
- package/dist/components/Image.js +369 -0
- package/dist/components/Image.js.map +1 -0
- package/dist/components/Input.js +70 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/LinearProgress.js +39 -0
- package/dist/components/LinearProgress.js.map +1 -0
- package/dist/components/Modal.d.ts +19 -0
- package/dist/components/Modal.js +211 -0
- package/dist/components/Modal.js.map +1 -0
- package/dist/components/Notification.js +88 -0
- package/dist/components/Notification.js.map +1 -0
- package/dist/components/SectionTitle.js +33 -0
- package/dist/components/SectionTitle.js.map +1 -0
- package/dist/components/SegmentedProgress.js +82 -0
- package/dist/components/SegmentedProgress.js.map +1 -0
- package/dist/components/Select.js +93 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Skeleton.js +106 -0
- package/dist/components/Skeleton.js.map +1 -0
- package/dist/components/Steps.js +88 -0
- package/dist/components/Steps.js.map +1 -0
- package/dist/components/TabNavigation.js +153 -0
- package/dist/components/TabNavigation.js.map +1 -0
- package/dist/components/Timeline.js +99 -0
- package/dist/components/Timeline.js.map +1 -0
- package/dist/components/Toggle.js +73 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/contexts/NotificationContext.js +100 -0
- package/dist/contexts/NotificationContext.js.map +1 -0
- package/dist/contexts/NotificationContextBase.js +6 -0
- package/dist/contexts/NotificationContextBase.js.map +1 -0
- package/dist/hooks/useAnimatedProgress.js +17 -0
- package/dist/hooks/useAnimatedProgress.js.map +1 -0
- package/dist/hooks/useCyberNotifications.js +14 -0
- package/dist/hooks/useCyberNotifications.js.map +1 -0
- package/dist/hooks/useCyberScrollbar.js +254 -0
- package/dist/hooks/useCyberScrollbar.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.es.js +63 -5954
- package/dist/index.js +13 -13
- package/dist/utils/cn.js +9 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/devWarn.d.ts +5 -0
- package/dist/utils/devWarn.js +8 -0
- package/dist/utils/devWarn.js.map +1 -0
- package/dist/utils/responsive.js +120 -0
- package/dist/utils/responsive.js.map +1 -0
- package/package.json +158 -125
|
@@ -0,0 +1,1454 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"packageVersion": "2.3.1",
|
|
4
|
+
"generatedAt": "2026-07-10T05:23:33.463Z",
|
|
5
|
+
"categoryOrder": [
|
|
6
|
+
"Forms",
|
|
7
|
+
"Layout",
|
|
8
|
+
"Feedback",
|
|
9
|
+
"Progress",
|
|
10
|
+
"Navigation",
|
|
11
|
+
"Typography",
|
|
12
|
+
"Display",
|
|
13
|
+
"Media"
|
|
14
|
+
],
|
|
15
|
+
"components": [
|
|
16
|
+
{
|
|
17
|
+
"name": "Button",
|
|
18
|
+
"category": "Forms",
|
|
19
|
+
"sourceFile": "src/components/Button.tsx",
|
|
20
|
+
"displayName": "CyberUI.Button",
|
|
21
|
+
"description": "A highly customizable Cyberpunk-themed button with neon effects and animations.",
|
|
22
|
+
"docSummary": "Neon-styled button. Variants: `primary`, `secondary`, `danger`, `ghost`.",
|
|
23
|
+
"storybookPath": "components-button--docs",
|
|
24
|
+
"manifestOverride": false,
|
|
25
|
+
"props": [
|
|
26
|
+
{
|
|
27
|
+
"name": "variant",
|
|
28
|
+
"type": "\"primary\" | \"secondary\" | \"danger\" | \"ghost\" | undefined",
|
|
29
|
+
"required": false,
|
|
30
|
+
"default": "primary",
|
|
31
|
+
"description": "Visual style of the button.\n- `primary`: Main action, neon glow.\n- `secondary`: Alternative action, bordered.\n- `danger`: Destructive action, red glow.\n- `ghost`: Subtle action, transparent background."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "size",
|
|
35
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
36
|
+
"required": false,
|
|
37
|
+
"default": "md",
|
|
38
|
+
"description": "Size of the button. Can be a static value or a responsive object."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "children",
|
|
42
|
+
"type": "ReactNode",
|
|
43
|
+
"required": true,
|
|
44
|
+
"default": null,
|
|
45
|
+
"description": "The content to be rendered inside the button"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "Input",
|
|
51
|
+
"category": "Forms",
|
|
52
|
+
"sourceFile": "src/components/Input.tsx",
|
|
53
|
+
"displayName": "CyberUI.Input",
|
|
54
|
+
"description": "A highly customizable Cyberpunk input field with support for icons, labels, and error states.",
|
|
55
|
+
"docSummary": "Cyberpunk text input with focus glows.",
|
|
56
|
+
"storybookPath": "components-input--docs",
|
|
57
|
+
"manifestOverride": false,
|
|
58
|
+
"props": [
|
|
59
|
+
{
|
|
60
|
+
"name": "variant",
|
|
61
|
+
"type": "\"primary\" | \"secondary\" | \"danger\" | \"ghost\" | undefined",
|
|
62
|
+
"required": false,
|
|
63
|
+
"default": "primary",
|
|
64
|
+
"description": "Visual style of the input."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "size",
|
|
68
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
69
|
+
"required": false,
|
|
70
|
+
"default": "md",
|
|
71
|
+
"description": "Size of the input (height and padding)."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "label",
|
|
75
|
+
"type": "string | undefined",
|
|
76
|
+
"required": false,
|
|
77
|
+
"default": null,
|
|
78
|
+
"description": "Label for the input"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "helperText",
|
|
82
|
+
"type": "string | undefined",
|
|
83
|
+
"required": false,
|
|
84
|
+
"default": null,
|
|
85
|
+
"description": "Optional helper text shown below the input"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "error",
|
|
89
|
+
"type": "string | undefined",
|
|
90
|
+
"required": false,
|
|
91
|
+
"default": null,
|
|
92
|
+
"description": "Error message that overrides helper text and highlights the input"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "leftIcon",
|
|
96
|
+
"type": "ReactNode",
|
|
97
|
+
"required": false,
|
|
98
|
+
"default": null,
|
|
99
|
+
"description": "Icon to render on the left side of the input"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "rightIcon",
|
|
103
|
+
"type": "ReactNode",
|
|
104
|
+
"required": false,
|
|
105
|
+
"default": null,
|
|
106
|
+
"description": "Icon to render on the right side of the input"
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "Toggle",
|
|
112
|
+
"category": "Forms",
|
|
113
|
+
"sourceFile": "src/components/Toggle.tsx",
|
|
114
|
+
"displayName": "CyberUI.Toggle",
|
|
115
|
+
"description": "A futuristic cyberpunk-themed toggle switch with neon glow and smooth transitions.",
|
|
116
|
+
"docSummary": "Cyberpunk switch.",
|
|
117
|
+
"storybookPath": "components-toggle--docs",
|
|
118
|
+
"manifestOverride": false,
|
|
119
|
+
"props": [
|
|
120
|
+
{
|
|
121
|
+
"name": "label",
|
|
122
|
+
"type": "string | undefined",
|
|
123
|
+
"required": false,
|
|
124
|
+
"default": null,
|
|
125
|
+
"description": "Optional label text to display next to the toggle"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "size",
|
|
129
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
130
|
+
"required": false,
|
|
131
|
+
"default": "md",
|
|
132
|
+
"description": "Size of the toggle."
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "variant",
|
|
136
|
+
"type": "\"primary\" | \"secondary\" | \"accent\" | undefined",
|
|
137
|
+
"required": false,
|
|
138
|
+
"default": "primary",
|
|
139
|
+
"description": "Visual style variant."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "className",
|
|
143
|
+
"type": "string | undefined",
|
|
144
|
+
"required": false,
|
|
145
|
+
"default": "",
|
|
146
|
+
"description": "Optional custom class name"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "checked",
|
|
150
|
+
"type": "boolean | undefined",
|
|
151
|
+
"required": false,
|
|
152
|
+
"default": false,
|
|
153
|
+
"description": "Whether the toggle is currently checked"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "onChange",
|
|
157
|
+
"type": "((checked: boolean) => void) | undefined",
|
|
158
|
+
"required": false,
|
|
159
|
+
"default": null,
|
|
160
|
+
"description": "Callback fired when the toggle state changes"
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "Select",
|
|
166
|
+
"category": "Forms",
|
|
167
|
+
"sourceFile": "src/components/Select.tsx",
|
|
168
|
+
"displayName": "CyberUI.Select",
|
|
169
|
+
"description": "A futuristic Cyberpunk-themed dropdown select component with support for labels and error states.",
|
|
170
|
+
"docSummary": "Styled dropdown.",
|
|
171
|
+
"storybookPath": "components-select--docs",
|
|
172
|
+
"manifestOverride": false,
|
|
173
|
+
"props": [
|
|
174
|
+
{
|
|
175
|
+
"name": "label",
|
|
176
|
+
"type": "string | undefined",
|
|
177
|
+
"required": false,
|
|
178
|
+
"default": null,
|
|
179
|
+
"description": "Label for the select field"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"name": "size",
|
|
183
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
184
|
+
"required": false,
|
|
185
|
+
"default": "md",
|
|
186
|
+
"description": "Size of the select input."
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "variant",
|
|
190
|
+
"type": "\"primary\" | \"secondary\" | \"danger\" | \"ghost\" | undefined",
|
|
191
|
+
"required": false,
|
|
192
|
+
"default": "primary",
|
|
193
|
+
"description": "Visual style variant."
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "options",
|
|
197
|
+
"type": "SelectOption[]",
|
|
198
|
+
"required": true,
|
|
199
|
+
"default": null,
|
|
200
|
+
"description": "List of options to choose from"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"name": "placeholder",
|
|
204
|
+
"type": "string | undefined",
|
|
205
|
+
"required": false,
|
|
206
|
+
"default": null,
|
|
207
|
+
"description": "Placeholder text shown when no option is selected"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "helperText",
|
|
211
|
+
"type": "string | undefined",
|
|
212
|
+
"required": false,
|
|
213
|
+
"default": null,
|
|
214
|
+
"description": "Optional helper text shown below the select"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "error",
|
|
218
|
+
"type": "string | undefined",
|
|
219
|
+
"required": false,
|
|
220
|
+
"default": null,
|
|
221
|
+
"description": "Error message that highlights the select and overrides helper text"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "className",
|
|
225
|
+
"type": "string | undefined",
|
|
226
|
+
"required": false,
|
|
227
|
+
"default": "",
|
|
228
|
+
"description": "Optional custom class name"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"name": "onValueChange",
|
|
232
|
+
"type": "((value: string) => void) | undefined",
|
|
233
|
+
"required": false,
|
|
234
|
+
"default": null,
|
|
235
|
+
"description": "Convenience callback that receives the selected string value directly.\nUse instead of onChange when you only need the value (not the raw event)."
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "Checkbox",
|
|
241
|
+
"category": "Forms",
|
|
242
|
+
"sourceFile": "src/components/Checkbox.tsx",
|
|
243
|
+
"displayName": "CyberUI.Checkbox",
|
|
244
|
+
"description": "",
|
|
245
|
+
"docSummary": "Neon-styled checkbox with SVG icons.",
|
|
246
|
+
"storybookPath": "components-checkbox--docs",
|
|
247
|
+
"manifestOverride": false,
|
|
248
|
+
"props": [
|
|
249
|
+
{
|
|
250
|
+
"name": "label",
|
|
251
|
+
"type": "string | undefined",
|
|
252
|
+
"required": false,
|
|
253
|
+
"default": null,
|
|
254
|
+
"description": "Label text displayed next to the checkbox."
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"name": "error",
|
|
258
|
+
"type": "string | undefined",
|
|
259
|
+
"required": false,
|
|
260
|
+
"default": null,
|
|
261
|
+
"description": "Error message to display below the checkbox."
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"name": "size",
|
|
265
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
266
|
+
"required": false,
|
|
267
|
+
"default": "md",
|
|
268
|
+
"description": "Size of the checkbox. Supports responsive values."
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"name": "className",
|
|
272
|
+
"type": "string | undefined",
|
|
273
|
+
"required": false,
|
|
274
|
+
"default": "",
|
|
275
|
+
"description": "Additional CSS classes."
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"name": "onCheckedChange",
|
|
279
|
+
"type": "((checked: boolean) => void) | undefined",
|
|
280
|
+
"required": false,
|
|
281
|
+
"default": null,
|
|
282
|
+
"description": "Convenience callback that receives the boolean checked value directly.\nMirrors Toggle's onChange API — use this instead of onChange when you only need the value."
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"name": "Card",
|
|
288
|
+
"category": "Layout",
|
|
289
|
+
"sourceFile": "src/components/Card.tsx",
|
|
290
|
+
"displayName": "CyberUI.Card",
|
|
291
|
+
"description": "A cyberpunk-themed container with glassmorphism, neon borders, and responsive spacing.",
|
|
292
|
+
"docSummary": "Glassmorphism container with borders.",
|
|
293
|
+
"storybookPath": "components-card--docs",
|
|
294
|
+
"manifestOverride": false,
|
|
295
|
+
"props": [
|
|
296
|
+
{
|
|
297
|
+
"name": "variant",
|
|
298
|
+
"type": "\"default\" | \"accent\" | \"small\" | undefined",
|
|
299
|
+
"required": false,
|
|
300
|
+
"default": "default",
|
|
301
|
+
"description": "Visual style of the card.\n- `default`: Standard glassmorphism.\n- `accent`: Glowing border and hover effects.\n- `small`: Compact padding for tight spaces."
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "size",
|
|
305
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
306
|
+
"required": false,
|
|
307
|
+
"default": "md",
|
|
308
|
+
"description": "Padding size of the card content."
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"name": "title",
|
|
312
|
+
"type": "string | undefined",
|
|
313
|
+
"required": false,
|
|
314
|
+
"default": null,
|
|
315
|
+
"description": "Optional title for the card"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"name": "titleBorder",
|
|
319
|
+
"type": "boolean | undefined",
|
|
320
|
+
"required": false,
|
|
321
|
+
"default": true,
|
|
322
|
+
"description": "Whether to show a border under the title."
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"name": "children",
|
|
326
|
+
"type": "ReactNode",
|
|
327
|
+
"required": true,
|
|
328
|
+
"default": null,
|
|
329
|
+
"description": "The content to be rendered inside the card"
|
|
330
|
+
}
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"name": "Modal",
|
|
335
|
+
"category": "Layout",
|
|
336
|
+
"sourceFile": "src/components/Modal.tsx",
|
|
337
|
+
"displayName": "Modal",
|
|
338
|
+
"description": "A cinematic Cyberpunk modal with CRT boot-up effects, RGB glow, and immersive animations.",
|
|
339
|
+
"docSummary": "CRT-style modal dialog.",
|
|
340
|
+
"storybookPath": "components-modal--docs",
|
|
341
|
+
"manifestOverride": false,
|
|
342
|
+
"props": [
|
|
343
|
+
{
|
|
344
|
+
"name": "isOpen",
|
|
345
|
+
"type": "boolean",
|
|
346
|
+
"required": true,
|
|
347
|
+
"default": null,
|
|
348
|
+
"description": "Whether the modal is visible."
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"name": "onClose",
|
|
352
|
+
"type": "() => void",
|
|
353
|
+
"required": true,
|
|
354
|
+
"default": null,
|
|
355
|
+
"description": "Callback when the modal requests to close."
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"name": "title",
|
|
359
|
+
"type": "string | undefined",
|
|
360
|
+
"required": false,
|
|
361
|
+
"default": null,
|
|
362
|
+
"description": "Title text shown in the modal header."
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"name": "children",
|
|
366
|
+
"type": "ReactNode",
|
|
367
|
+
"required": true,
|
|
368
|
+
"default": null,
|
|
369
|
+
"description": "The content to be rendered inside the modal body."
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"name": "footer",
|
|
373
|
+
"type": "ReactNode",
|
|
374
|
+
"required": false,
|
|
375
|
+
"default": null,
|
|
376
|
+
"description": "Custom footer content. Overrides the default Cancel/Confirm action buttons\n(`onCancel`/`onConfirm` and related props are ignored when `footer` is set)."
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"name": "onCancel",
|
|
380
|
+
"type": "(() => void) | undefined",
|
|
381
|
+
"required": false,
|
|
382
|
+
"default": null,
|
|
383
|
+
"description": "Fired when the Cancel button is clicked. Only rendered if provided."
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"name": "onConfirm",
|
|
387
|
+
"type": "(() => void) | undefined",
|
|
388
|
+
"required": false,
|
|
389
|
+
"default": null,
|
|
390
|
+
"description": "Fired when the Confirm button is clicked. Only rendered if provided."
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"name": "cancelText",
|
|
394
|
+
"type": "string | undefined",
|
|
395
|
+
"required": false,
|
|
396
|
+
"default": "'Cancel'",
|
|
397
|
+
"description": "Label for the Cancel button."
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"name": "confirmText",
|
|
401
|
+
"type": "string | undefined",
|
|
402
|
+
"required": false,
|
|
403
|
+
"default": "'Confirm'",
|
|
404
|
+
"description": "Label for the Confirm button."
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"name": "confirmLoading",
|
|
408
|
+
"type": "boolean | undefined",
|
|
409
|
+
"required": false,
|
|
410
|
+
"default": "false",
|
|
411
|
+
"description": "Shows a loading state and disables the Confirm button."
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"name": "showCancel",
|
|
415
|
+
"type": "boolean | undefined",
|
|
416
|
+
"required": false,
|
|
417
|
+
"default": "true",
|
|
418
|
+
"description": "Whether to render the Cancel button (requires `onCancel`)."
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"name": "showConfirm",
|
|
422
|
+
"type": "boolean | undefined",
|
|
423
|
+
"required": false,
|
|
424
|
+
"default": "true",
|
|
425
|
+
"description": "Whether to render the Confirm button (requires `onConfirm`)."
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"name": "size",
|
|
429
|
+
"type": "\"sm\" | \"md\" | \"lg\" | \"xl\" | \"fullscreen\" | undefined",
|
|
430
|
+
"required": false,
|
|
431
|
+
"default": "'lg'",
|
|
432
|
+
"description": "Width of the modal.\n- sm: 448px, md: 512px, lg: 672px, xl: 896px\nUse `lg` or `xl` for content-heavy modals (forms, tables, multi-step flows)."
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"name": "variant",
|
|
436
|
+
"type": "\"default\" | \"danger\" | undefined",
|
|
437
|
+
"required": false,
|
|
438
|
+
"default": "'default'",
|
|
439
|
+
"description": "Visual variant of the modal.\n- `default`: Standard RGB glow border.\n- `danger`: Red error glow — use for destructive confirmations."
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"name": "closeOnOverlayClick",
|
|
443
|
+
"type": "boolean | undefined",
|
|
444
|
+
"required": false,
|
|
445
|
+
"default": "true",
|
|
446
|
+
"description": "Whether clicking the overlay backdrop closes the modal."
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"name": "closeOnEscape",
|
|
450
|
+
"type": "boolean | undefined",
|
|
451
|
+
"required": false,
|
|
452
|
+
"default": "true",
|
|
453
|
+
"description": "Whether pressing Escape closes the modal."
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"name": "animation",
|
|
457
|
+
"type": "ModalAnimationConfig | undefined",
|
|
458
|
+
"required": false,
|
|
459
|
+
"default": null,
|
|
460
|
+
"description": "CRT open/close animation timing and effects."
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"name": "className",
|
|
464
|
+
"type": "string | undefined",
|
|
465
|
+
"required": false,
|
|
466
|
+
"default": null,
|
|
467
|
+
"description": "Additional CSS classes for the modal panel."
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"name": "overlayClassName",
|
|
471
|
+
"type": "string | undefined",
|
|
472
|
+
"required": false,
|
|
473
|
+
"default": null,
|
|
474
|
+
"description": "Additional CSS classes for the overlay backdrop."
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"name": "showCloseButton",
|
|
478
|
+
"type": "boolean | undefined",
|
|
479
|
+
"required": false,
|
|
480
|
+
"default": "true",
|
|
481
|
+
"description": "Whether to render the header close (×) button."
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"name": "onOpen",
|
|
485
|
+
"type": "(() => void) | undefined",
|
|
486
|
+
"required": false,
|
|
487
|
+
"default": null,
|
|
488
|
+
"description": "Fired when the modal begins opening (before animation completes)."
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"name": "onCRTBootComplete",
|
|
492
|
+
"type": "(() => void) | undefined",
|
|
493
|
+
"required": false,
|
|
494
|
+
"default": null,
|
|
495
|
+
"description": "Fired when the CRT boot animation finishes and the modal is fully visible."
|
|
496
|
+
}
|
|
497
|
+
]
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"name": "Divider",
|
|
501
|
+
"category": "Layout",
|
|
502
|
+
"sourceFile": "src/components/Divider.tsx",
|
|
503
|
+
"displayName": "CyberUI.Divider",
|
|
504
|
+
"description": "",
|
|
505
|
+
"docSummary": "Gradient/solid/dashed content separator.",
|
|
506
|
+
"storybookPath": "components-divider--docs",
|
|
507
|
+
"manifestOverride": false,
|
|
508
|
+
"props": [
|
|
509
|
+
{
|
|
510
|
+
"name": "variant",
|
|
511
|
+
"type": "\"gradient\" | \"solid\" | \"dashed\" | undefined",
|
|
512
|
+
"required": false,
|
|
513
|
+
"default": "gradient",
|
|
514
|
+
"description": "Visual style of the divider.\n- `gradient`: Gradient fade from center (default).\n- `solid`: Solid semi-transparent line.\n- `dashed`: Dashed border style."
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"name": "orientation",
|
|
518
|
+
"type": "\"horizontal\" | \"vertical\" | undefined",
|
|
519
|
+
"required": false,
|
|
520
|
+
"default": "horizontal",
|
|
521
|
+
"description": "Orientation of the divider."
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"name": "className",
|
|
525
|
+
"type": "string | undefined",
|
|
526
|
+
"required": false,
|
|
527
|
+
"default": "",
|
|
528
|
+
"description": "Additional CSS classes."
|
|
529
|
+
}
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"name": "Notification",
|
|
534
|
+
"category": "Feedback",
|
|
535
|
+
"sourceFile": "src/components/Notification.tsx",
|
|
536
|
+
"displayName": "CyberUI.Notification",
|
|
537
|
+
"description": "A cyberpunk-themed toast or inline notification for system alerts and status updates.",
|
|
538
|
+
"docSummary": "Toast notifications. Use `useCyberNotifications` hook.",
|
|
539
|
+
"storybookPath": "components-notification--docs",
|
|
540
|
+
"manifestOverride": false,
|
|
541
|
+
"props": [
|
|
542
|
+
{
|
|
543
|
+
"name": "type",
|
|
544
|
+
"type": "\"success\" | \"warning\" | \"error\"",
|
|
545
|
+
"required": true,
|
|
546
|
+
"default": null,
|
|
547
|
+
"description": "Semantic type of the notification."
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"name": "title",
|
|
551
|
+
"type": "string",
|
|
552
|
+
"required": true,
|
|
553
|
+
"default": null,
|
|
554
|
+
"description": "Bold title for the notification"
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
"name": "message",
|
|
558
|
+
"type": "string",
|
|
559
|
+
"required": true,
|
|
560
|
+
"default": null,
|
|
561
|
+
"description": "Detailed message content"
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"name": "size",
|
|
565
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
566
|
+
"required": false,
|
|
567
|
+
"default": "md",
|
|
568
|
+
"description": "Size of the notification."
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"name": "onClose",
|
|
572
|
+
"type": "(() => void) | undefined",
|
|
573
|
+
"required": false,
|
|
574
|
+
"default": null,
|
|
575
|
+
"description": "Optional callback for when the close button is clicked"
|
|
576
|
+
}
|
|
577
|
+
]
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"name": "Badge",
|
|
581
|
+
"category": "Feedback",
|
|
582
|
+
"sourceFile": "src/components/Badge.tsx",
|
|
583
|
+
"displayName": "CyberUI.Badge",
|
|
584
|
+
"description": "A compact Cyberpunk-style tag or indicator used for status, categories, or metrics.",
|
|
585
|
+
"docSummary": "Status indicator. Variants: `primary`, `secondary`, `accent`, `success`, `error`, `warning`.",
|
|
586
|
+
"storybookPath": "components-badge--docs",
|
|
587
|
+
"manifestOverride": false,
|
|
588
|
+
"props": [
|
|
589
|
+
{
|
|
590
|
+
"name": "variant",
|
|
591
|
+
"type": "\"primary\" | \"secondary\" | \"accent\" | \"success\" | \"error\" | \"warning\" | undefined",
|
|
592
|
+
"required": false,
|
|
593
|
+
"default": "primary",
|
|
594
|
+
"description": "Semantic style of the badge."
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"name": "size",
|
|
598
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
599
|
+
"required": false,
|
|
600
|
+
"default": "md",
|
|
601
|
+
"description": "Size of the badge."
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"name": "children",
|
|
605
|
+
"type": "ReactNode",
|
|
606
|
+
"required": true,
|
|
607
|
+
"default": null,
|
|
608
|
+
"description": "The label or content of the badge"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"name": "className",
|
|
612
|
+
"type": "string | undefined",
|
|
613
|
+
"required": false,
|
|
614
|
+
"default": "",
|
|
615
|
+
"description": "Optional custom class name"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"name": "leftIcon",
|
|
619
|
+
"type": "ReactNode",
|
|
620
|
+
"required": false,
|
|
621
|
+
"default": null,
|
|
622
|
+
"description": "Icon to render on the left side of the label"
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"name": "rightIcon",
|
|
626
|
+
"type": "ReactNode",
|
|
627
|
+
"required": false,
|
|
628
|
+
"default": null,
|
|
629
|
+
"description": "Icon to render on the right side of the label"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"name": "clickable",
|
|
633
|
+
"type": "boolean | undefined",
|
|
634
|
+
"required": false,
|
|
635
|
+
"default": false,
|
|
636
|
+
"description": "Whether the badge should show hover effects and a pointer cursor"
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
"name": "onClick",
|
|
640
|
+
"type": "(() => void) | undefined",
|
|
641
|
+
"required": false,
|
|
642
|
+
"default": null,
|
|
643
|
+
"description": "Optional click handler"
|
|
644
|
+
}
|
|
645
|
+
]
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"name": "Skeleton",
|
|
649
|
+
"category": "Feedback",
|
|
650
|
+
"sourceFile": "src/components/Skeleton.tsx",
|
|
651
|
+
"displayName": "CyberUI.Skeleton",
|
|
652
|
+
"description": "A versatile skeleton loading indicator with multiple layout variants and pulse animation.",
|
|
653
|
+
"docSummary": "Loading placeholder.",
|
|
654
|
+
"storybookPath": "components-skeleton--docs",
|
|
655
|
+
"manifestOverride": false,
|
|
656
|
+
"props": [
|
|
657
|
+
{
|
|
658
|
+
"name": "variant",
|
|
659
|
+
"type": "\"text\" | \"circular\" | \"rectangular\" | \"card\" | \"avatar-text\" | \"button-group\" | undefined",
|
|
660
|
+
"required": false,
|
|
661
|
+
"default": "text",
|
|
662
|
+
"description": "Shape variant of the skeleton."
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"name": "size",
|
|
666
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
667
|
+
"required": false,
|
|
668
|
+
"default": "md",
|
|
669
|
+
"description": "Size of the skeleton element."
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"name": "width",
|
|
673
|
+
"type": "string | number | undefined",
|
|
674
|
+
"required": false,
|
|
675
|
+
"default": null,
|
|
676
|
+
"description": "Custom width for the skeleton"
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"name": "height",
|
|
680
|
+
"type": "string | number | undefined",
|
|
681
|
+
"required": false,
|
|
682
|
+
"default": null,
|
|
683
|
+
"description": "Custom height for the skeleton"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"name": "className",
|
|
687
|
+
"type": "string | undefined",
|
|
688
|
+
"required": false,
|
|
689
|
+
"default": "",
|
|
690
|
+
"description": "Optional custom class name"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"name": "lines",
|
|
694
|
+
"type": "number | undefined",
|
|
695
|
+
"required": false,
|
|
696
|
+
"default": 3,
|
|
697
|
+
"description": "Number of lines for text variant."
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
"name": "animate",
|
|
701
|
+
"type": "boolean | undefined",
|
|
702
|
+
"required": false,
|
|
703
|
+
"default": true,
|
|
704
|
+
"description": "Whether to show the pulse animation."
|
|
705
|
+
}
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"name": "CircularProgress",
|
|
710
|
+
"category": "Progress",
|
|
711
|
+
"sourceFile": "src/components/CircularProgress.tsx",
|
|
712
|
+
"displayName": "CircularProgress",
|
|
713
|
+
"description": "A beautiful circular progress indicator with neon glow and dual-tone stroke.",
|
|
714
|
+
"docSummary": "Dual-ring circular progress indicator.",
|
|
715
|
+
"storybookPath": "components-circularprogress--docs",
|
|
716
|
+
"manifestOverride": false,
|
|
717
|
+
"props": [
|
|
718
|
+
{
|
|
719
|
+
"name": "progress",
|
|
720
|
+
"type": "number",
|
|
721
|
+
"required": true,
|
|
722
|
+
"default": null,
|
|
723
|
+
"description": "Progress value (0-100)."
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"name": "size",
|
|
727
|
+
"type": "\"sm\" | \"md\" | \"lg\" | \"xl\" | undefined",
|
|
728
|
+
"required": false,
|
|
729
|
+
"default": "md",
|
|
730
|
+
"description": "Preset container size. Sets width and height of the component automatically.\n- sm: 64px, md: 96px, lg: 128px, xl: 160px"
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"name": "radius",
|
|
734
|
+
"type": "number | undefined",
|
|
735
|
+
"required": false,
|
|
736
|
+
"default": 20,
|
|
737
|
+
"description": "Radius of the SVG circle in SVG units (viewBox is 50×50, center at 25,25).\nDefault 20 fits cleanly within the viewBox. Only override for custom layouts."
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"name": "className",
|
|
741
|
+
"type": "string | undefined",
|
|
742
|
+
"required": false,
|
|
743
|
+
"default": "",
|
|
744
|
+
"description": "Optional custom class name"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"name": "children",
|
|
748
|
+
"type": "ReactNode",
|
|
749
|
+
"required": false,
|
|
750
|
+
"default": null,
|
|
751
|
+
"description": "Optional content to render in the center of the circle"
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"name": "ariaLabel",
|
|
755
|
+
"type": "string | undefined",
|
|
756
|
+
"required": false,
|
|
757
|
+
"default": null,
|
|
758
|
+
"description": "Accessible label for screen readers"
|
|
759
|
+
}
|
|
760
|
+
]
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"name": "SegmentedProgress",
|
|
764
|
+
"category": "Progress",
|
|
765
|
+
"sourceFile": "src/components/SegmentedProgress.tsx",
|
|
766
|
+
"displayName": "CyberUI.SegmentedProgress",
|
|
767
|
+
"description": "A segmented progress indicator with two display modes.",
|
|
768
|
+
"docSummary": "Segmented progress: `variant=\"radial\"` (circular arc gauge, default) or `variant=\"block\"` (discrete filled blocks ▮▮▮▯▯).",
|
|
769
|
+
"storybookPath": "components-segmentedprogress--docs",
|
|
770
|
+
"manifestOverride": true,
|
|
771
|
+
"variants": [
|
|
772
|
+
{
|
|
773
|
+
"variant": "radial",
|
|
774
|
+
"isDefault": true,
|
|
775
|
+
"description": "Circular gauge — discrete arc segments arranged in a ring. Original behaviour, and the default.",
|
|
776
|
+
"props": [
|
|
777
|
+
{
|
|
778
|
+
"name": "variant",
|
|
779
|
+
"type": "\"radial\"",
|
|
780
|
+
"required": false,
|
|
781
|
+
"default": "radial",
|
|
782
|
+
"description": "Discriminant — omit or set to 'radial' for the circular gauge."
|
|
783
|
+
},
|
|
784
|
+
{
|
|
785
|
+
"name": "size",
|
|
786
|
+
"type": "\"sm\" | \"md\" | \"lg\" | \"xl\"",
|
|
787
|
+
"required": false,
|
|
788
|
+
"default": "md",
|
|
789
|
+
"description": "sm: 64px, md: 96px, lg: 128px, xl: 160px."
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
"name": "children",
|
|
793
|
+
"type": "ReactNode",
|
|
794
|
+
"required": false,
|
|
795
|
+
"default": null,
|
|
796
|
+
"description": "Optional content rendered in the center of the gauge."
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"name": "progress",
|
|
800
|
+
"type": "number",
|
|
801
|
+
"required": true,
|
|
802
|
+
"default": null,
|
|
803
|
+
"description": "Progress value (0–100)."
|
|
804
|
+
},
|
|
805
|
+
{
|
|
806
|
+
"name": "className",
|
|
807
|
+
"type": "string",
|
|
808
|
+
"required": false,
|
|
809
|
+
"default": null,
|
|
810
|
+
"description": "Optional custom class name."
|
|
811
|
+
}
|
|
812
|
+
]
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
"variant": "block",
|
|
816
|
+
"isDefault": false,
|
|
817
|
+
"description": "Linear discrete-block bar (▮▮▮▮▯▯) — health bars, step-based loading.",
|
|
818
|
+
"props": [
|
|
819
|
+
{
|
|
820
|
+
"name": "variant",
|
|
821
|
+
"type": "\"block\"",
|
|
822
|
+
"required": true,
|
|
823
|
+
"default": null,
|
|
824
|
+
"description": "Discriminant — must be 'block'."
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"name": "segments",
|
|
828
|
+
"type": "number",
|
|
829
|
+
"required": false,
|
|
830
|
+
"default": 10,
|
|
831
|
+
"description": "Number of discrete blocks."
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"name": "size",
|
|
835
|
+
"type": "\"sm\" | \"md\" | \"lg\" | \"xl\"",
|
|
836
|
+
"required": false,
|
|
837
|
+
"default": "md",
|
|
838
|
+
"description": "Controls block height: sm h-3, md h-5, lg h-7, xl h-9."
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
"name": "progress",
|
|
842
|
+
"type": "number",
|
|
843
|
+
"required": true,
|
|
844
|
+
"default": null,
|
|
845
|
+
"description": "Progress value (0–100)."
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
"name": "className",
|
|
849
|
+
"type": "string",
|
|
850
|
+
"required": false,
|
|
851
|
+
"default": null,
|
|
852
|
+
"description": "Optional custom class name."
|
|
853
|
+
},
|
|
854
|
+
{
|
|
855
|
+
"name": "children",
|
|
856
|
+
"type": "never",
|
|
857
|
+
"required": false,
|
|
858
|
+
"default": null,
|
|
859
|
+
"description": "Not valid in block mode."
|
|
860
|
+
}
|
|
861
|
+
]
|
|
862
|
+
}
|
|
863
|
+
]
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
"name": "LinearProgress",
|
|
867
|
+
"category": "Progress",
|
|
868
|
+
"sourceFile": "src/components/LinearProgress.tsx",
|
|
869
|
+
"displayName": "CyberUI.LinearProgress",
|
|
870
|
+
"description": "A sleek, animated linear progress bar with cyberpunk aesthetic.\n\nThe bar is `w-full` by default — it fills its container width.\nWrap it in a constrained element to control its width.",
|
|
871
|
+
"docSummary": "Smooth horizontal progress bar.",
|
|
872
|
+
"storybookPath": "components-linearprogress--docs",
|
|
873
|
+
"manifestOverride": false,
|
|
874
|
+
"props": [
|
|
875
|
+
{
|
|
876
|
+
"name": "progress",
|
|
877
|
+
"type": "number",
|
|
878
|
+
"required": true,
|
|
879
|
+
"default": null,
|
|
880
|
+
"description": "Progress value (0-100)."
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"name": "size",
|
|
884
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
885
|
+
"required": false,
|
|
886
|
+
"default": "md",
|
|
887
|
+
"description": "Height of the progress bar."
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"name": "className",
|
|
891
|
+
"type": "string | undefined",
|
|
892
|
+
"required": false,
|
|
893
|
+
"default": "",
|
|
894
|
+
"description": "Optional custom class name to override default styles"
|
|
895
|
+
}
|
|
896
|
+
]
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
"name": "TabNavigation",
|
|
900
|
+
"category": "Navigation",
|
|
901
|
+
"sourceFile": "src/components/TabNavigation.tsx",
|
|
902
|
+
"displayName": "TabNavigation",
|
|
903
|
+
"description": "A highly adaptive tabbed navigation system with cyberpunk animations and multiple layout modes.",
|
|
904
|
+
"docSummary": "Animated tab bar.",
|
|
905
|
+
"storybookPath": "components-tabnavigation--docs",
|
|
906
|
+
"manifestOverride": false,
|
|
907
|
+
"props": [
|
|
908
|
+
{
|
|
909
|
+
"name": "tabs",
|
|
910
|
+
"type": "readonly string[]",
|
|
911
|
+
"required": true,
|
|
912
|
+
"default": null,
|
|
913
|
+
"description": "List of tab labels."
|
|
914
|
+
},
|
|
915
|
+
{
|
|
916
|
+
"name": "activeTab",
|
|
917
|
+
"type": "string",
|
|
918
|
+
"required": true,
|
|
919
|
+
"default": null,
|
|
920
|
+
"description": "Currently active tab label."
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"name": "onTabChange",
|
|
924
|
+
"type": "(tab: string) => void",
|
|
925
|
+
"required": true,
|
|
926
|
+
"default": null,
|
|
927
|
+
"description": "Callback when a tab is selected."
|
|
928
|
+
},
|
|
929
|
+
{
|
|
930
|
+
"name": "size",
|
|
931
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
932
|
+
"required": false,
|
|
933
|
+
"default": "md",
|
|
934
|
+
"description": "Size of the tabs."
|
|
935
|
+
},
|
|
936
|
+
{
|
|
937
|
+
"name": "mode",
|
|
938
|
+
"type": "ResponsiveValue<TabNavigationMode> | undefined",
|
|
939
|
+
"required": false,
|
|
940
|
+
"default": "scroll",
|
|
941
|
+
"description": "Responsive display mode.\n- `scroll`: Horizontal scrolling container.\n- `wrap`: Wraps to new lines.\n- `dropdown`: Collapses into a dropdown menu."
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"name": "containerClassName",
|
|
945
|
+
"type": "string | undefined",
|
|
946
|
+
"required": false,
|
|
947
|
+
"default": "",
|
|
948
|
+
"description": "Optional custom class for the outer container"
|
|
949
|
+
},
|
|
950
|
+
{
|
|
951
|
+
"name": "tabsClassName",
|
|
952
|
+
"type": "string | undefined",
|
|
953
|
+
"required": false,
|
|
954
|
+
"default": "",
|
|
955
|
+
"description": "Optional custom class for the tab buttons"
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
"name": "dropdownLabel",
|
|
959
|
+
"type": "ReactNode",
|
|
960
|
+
"required": false,
|
|
961
|
+
"default": null,
|
|
962
|
+
"description": "Label for the dropdown anchor (mode=\"dropdown\" only)"
|
|
963
|
+
},
|
|
964
|
+
{
|
|
965
|
+
"name": "anchorIcon",
|
|
966
|
+
"type": "ReactNode",
|
|
967
|
+
"required": false,
|
|
968
|
+
"default": null,
|
|
969
|
+
"description": "Custom icon for the dropdown anchor (mode=\"dropdown\" only)"
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"name": "showAnchorLabel",
|
|
973
|
+
"type": "boolean | undefined",
|
|
974
|
+
"required": false,
|
|
975
|
+
"default": true,
|
|
976
|
+
"description": "Whether to show the label text next to the anchor icon"
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"name": "anchorAriaLabel",
|
|
980
|
+
"type": "string | undefined",
|
|
981
|
+
"required": false,
|
|
982
|
+
"default": null,
|
|
983
|
+
"description": "ARIA label for the dropdown anchor"
|
|
984
|
+
},
|
|
985
|
+
{
|
|
986
|
+
"name": "closeOnSelect",
|
|
987
|
+
"type": "boolean | undefined",
|
|
988
|
+
"required": false,
|
|
989
|
+
"default": true,
|
|
990
|
+
"description": "Whether to close the dropdown after choosing a tab"
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"name": "anchorClassName",
|
|
994
|
+
"type": "string | undefined",
|
|
995
|
+
"required": false,
|
|
996
|
+
"default": "",
|
|
997
|
+
"description": "Optional class for the dropdown anchor button"
|
|
998
|
+
},
|
|
999
|
+
{
|
|
1000
|
+
"name": "menuClassName",
|
|
1001
|
+
"type": "string | undefined",
|
|
1002
|
+
"required": false,
|
|
1003
|
+
"default": "",
|
|
1004
|
+
"description": "Optional class for the dropdown menu container"
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"name": "menuItemClassName",
|
|
1008
|
+
"type": "string | undefined",
|
|
1009
|
+
"required": false,
|
|
1010
|
+
"default": "",
|
|
1011
|
+
"description": "Optional class for items in the dropdown menu"
|
|
1012
|
+
}
|
|
1013
|
+
]
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
"name": "Carousel",
|
|
1017
|
+
"category": "Navigation",
|
|
1018
|
+
"sourceFile": "src/components/Carousel.tsx",
|
|
1019
|
+
"displayName": "CyberUI.Carousel",
|
|
1020
|
+
"description": "",
|
|
1021
|
+
"docSummary": "Image carousel.",
|
|
1022
|
+
"storybookPath": "components-carousel--docs",
|
|
1023
|
+
"manifestOverride": false,
|
|
1024
|
+
"props": [
|
|
1025
|
+
{
|
|
1026
|
+
"name": "images",
|
|
1027
|
+
"type": "CarouselImageData[]",
|
|
1028
|
+
"required": true,
|
|
1029
|
+
"default": null,
|
|
1030
|
+
"description": "Array of images to display"
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
"name": "currentIndex",
|
|
1034
|
+
"type": "number",
|
|
1035
|
+
"required": true,
|
|
1036
|
+
"default": null,
|
|
1037
|
+
"description": "Current slide index (controlled)"
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
"name": "onChange",
|
|
1041
|
+
"type": "(index: number) => void",
|
|
1042
|
+
"required": true,
|
|
1043
|
+
"default": null,
|
|
1044
|
+
"description": "Callback when slide changes"
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"name": "size",
|
|
1048
|
+
"type": "ResponsiveValue<CarouselSize> | undefined",
|
|
1049
|
+
"required": false,
|
|
1050
|
+
"default": "md",
|
|
1051
|
+
"description": "Size variant with responsive support"
|
|
1052
|
+
},
|
|
1053
|
+
{
|
|
1054
|
+
"name": "autoPlay",
|
|
1055
|
+
"type": "boolean | undefined",
|
|
1056
|
+
"required": false,
|
|
1057
|
+
"default": true,
|
|
1058
|
+
"description": "Enable auto-play functionality"
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
"name": "interval",
|
|
1062
|
+
"type": "number | undefined",
|
|
1063
|
+
"required": false,
|
|
1064
|
+
"default": 3000,
|
|
1065
|
+
"description": "Auto-play interval in milliseconds"
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
"name": "infinite",
|
|
1069
|
+
"type": "boolean | undefined",
|
|
1070
|
+
"required": false,
|
|
1071
|
+
"default": true,
|
|
1072
|
+
"description": "Enable infinite loop"
|
|
1073
|
+
},
|
|
1074
|
+
{
|
|
1075
|
+
"name": "transition",
|
|
1076
|
+
"type": "CarouselTransition | undefined",
|
|
1077
|
+
"required": false,
|
|
1078
|
+
"default": "slide",
|
|
1079
|
+
"description": "Transition effect"
|
|
1080
|
+
},
|
|
1081
|
+
{
|
|
1082
|
+
"name": "objectFit",
|
|
1083
|
+
"type": "CarouselObjectFit | undefined",
|
|
1084
|
+
"required": false,
|
|
1085
|
+
"default": "cover",
|
|
1086
|
+
"description": "Image object fit behavior"
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"name": "showArrows",
|
|
1090
|
+
"type": "boolean | undefined",
|
|
1091
|
+
"required": false,
|
|
1092
|
+
"default": true,
|
|
1093
|
+
"description": "Show navigation arrows"
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
"name": "showIndicators",
|
|
1097
|
+
"type": "boolean | undefined",
|
|
1098
|
+
"required": false,
|
|
1099
|
+
"default": true,
|
|
1100
|
+
"description": "Show slide indicators"
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
"name": "className",
|
|
1104
|
+
"type": "string | undefined",
|
|
1105
|
+
"required": false,
|
|
1106
|
+
"default": "",
|
|
1107
|
+
"description": "Additional CSS classes"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"name": "disableImagePreview",
|
|
1111
|
+
"type": "boolean | undefined",
|
|
1112
|
+
"required": false,
|
|
1113
|
+
"default": false,
|
|
1114
|
+
"description": "Disable click-to-expand on images"
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
"name": "glitchRate",
|
|
1118
|
+
"type": "number | boolean | undefined",
|
|
1119
|
+
"required": false,
|
|
1120
|
+
"default": 1,
|
|
1121
|
+
"description": "Control signal-glitch effect frequency. Float (0.0-1.0) for probability, boolean for on/off"
|
|
1122
|
+
},
|
|
1123
|
+
{
|
|
1124
|
+
"name": "onBeforeChange",
|
|
1125
|
+
"type": "((fromIndex: number, toIndex: number) => void) | undefined",
|
|
1126
|
+
"required": false,
|
|
1127
|
+
"default": null,
|
|
1128
|
+
"description": "Fired before slide change (fromIndex, toIndex)"
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
"name": "onAfterChange",
|
|
1132
|
+
"type": "((index: number) => void) | undefined",
|
|
1133
|
+
"required": false,
|
|
1134
|
+
"default": null,
|
|
1135
|
+
"description": "Fired after slide change"
|
|
1136
|
+
}
|
|
1137
|
+
]
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"name": "Steps",
|
|
1141
|
+
"category": "Navigation",
|
|
1142
|
+
"sourceFile": "src/components/Steps.tsx",
|
|
1143
|
+
"displayName": "CyberUI.Steps",
|
|
1144
|
+
"description": "",
|
|
1145
|
+
"docSummary": "Multi-step progress indicator.",
|
|
1146
|
+
"storybookPath": "components-steps--docs",
|
|
1147
|
+
"manifestOverride": false,
|
|
1148
|
+
"props": [
|
|
1149
|
+
{
|
|
1150
|
+
"name": "items",
|
|
1151
|
+
"type": "StepItem[]",
|
|
1152
|
+
"required": true,
|
|
1153
|
+
"default": null,
|
|
1154
|
+
"description": "Array of step items to display."
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
"name": "current",
|
|
1158
|
+
"type": "number | undefined",
|
|
1159
|
+
"required": false,
|
|
1160
|
+
"default": 0,
|
|
1161
|
+
"description": "Current active step index. **0-based** — first step is `current={0}`, second is `current={1}`.\nA common mistake is passing a 1-based value which skips the first step."
|
|
1162
|
+
},
|
|
1163
|
+
{
|
|
1164
|
+
"name": "orientation",
|
|
1165
|
+
"type": "ResponsiveValue<\"horizontal\" | \"vertical\"> | undefined",
|
|
1166
|
+
"required": false,
|
|
1167
|
+
"default": "{ base: 'vertical', md: 'horizontal' }",
|
|
1168
|
+
"description": "Layout orientation. Supports responsive values."
|
|
1169
|
+
},
|
|
1170
|
+
{
|
|
1171
|
+
"name": "className",
|
|
1172
|
+
"type": "string | undefined",
|
|
1173
|
+
"required": false,
|
|
1174
|
+
"default": "",
|
|
1175
|
+
"description": "Additional CSS classes."
|
|
1176
|
+
}
|
|
1177
|
+
]
|
|
1178
|
+
},
|
|
1179
|
+
{
|
|
1180
|
+
"name": "GradientText",
|
|
1181
|
+
"category": "Typography",
|
|
1182
|
+
"sourceFile": "src/components/GradientText.tsx",
|
|
1183
|
+
"displayName": "CyberUI.GradientText",
|
|
1184
|
+
"description": "",
|
|
1185
|
+
"docSummary": "Text with cyberpunk gradient effects.",
|
|
1186
|
+
"storybookPath": "components-gradienttext--docs",
|
|
1187
|
+
"manifestOverride": false,
|
|
1188
|
+
"props": [
|
|
1189
|
+
{
|
|
1190
|
+
"name": "children",
|
|
1191
|
+
"type": "ReactNode",
|
|
1192
|
+
"required": true,
|
|
1193
|
+
"default": null,
|
|
1194
|
+
"description": "The text content to render."
|
|
1195
|
+
},
|
|
1196
|
+
{
|
|
1197
|
+
"name": "variant",
|
|
1198
|
+
"type": "\"primary\" | \"secondary\" | \"accent\" | undefined",
|
|
1199
|
+
"required": false,
|
|
1200
|
+
"default": "primary",
|
|
1201
|
+
"description": "Visual style of the gradient.\n- `primary`: Cyan to pink gradient (secondary → primary).\n- `secondary`: Pink to yellow gradient (primary → accent).\n- `accent`: Yellow to cyan gradient (accent → secondary)."
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"name": "as",
|
|
1205
|
+
"type": "\"span\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"div\" | undefined",
|
|
1206
|
+
"required": false,
|
|
1207
|
+
"default": "span",
|
|
1208
|
+
"description": "The HTML element to render as."
|
|
1209
|
+
},
|
|
1210
|
+
{
|
|
1211
|
+
"name": "className",
|
|
1212
|
+
"type": "string | undefined",
|
|
1213
|
+
"required": false,
|
|
1214
|
+
"default": "",
|
|
1215
|
+
"description": "Additional CSS classes."
|
|
1216
|
+
}
|
|
1217
|
+
]
|
|
1218
|
+
},
|
|
1219
|
+
{
|
|
1220
|
+
"name": "SectionTitle",
|
|
1221
|
+
"category": "Typography",
|
|
1222
|
+
"sourceFile": "src/components/SectionTitle.tsx",
|
|
1223
|
+
"displayName": "CyberUI.SectionTitle",
|
|
1224
|
+
"description": "",
|
|
1225
|
+
"docSummary": "Title with decorative gradient line.",
|
|
1226
|
+
"storybookPath": "components-sectiontitle--docs",
|
|
1227
|
+
"manifestOverride": false,
|
|
1228
|
+
"props": [
|
|
1229
|
+
{
|
|
1230
|
+
"name": "children",
|
|
1231
|
+
"type": "ReactNode",
|
|
1232
|
+
"required": true,
|
|
1233
|
+
"default": null,
|
|
1234
|
+
"description": "The title text content."
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
"name": "showLine",
|
|
1238
|
+
"type": "boolean | undefined",
|
|
1239
|
+
"required": false,
|
|
1240
|
+
"default": true,
|
|
1241
|
+
"description": "Whether to show a decorative gradient line after the title."
|
|
1242
|
+
},
|
|
1243
|
+
{
|
|
1244
|
+
"name": "size",
|
|
1245
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
1246
|
+
"required": false,
|
|
1247
|
+
"default": "md",
|
|
1248
|
+
"description": "Size of the section title. Supports responsive values."
|
|
1249
|
+
},
|
|
1250
|
+
{
|
|
1251
|
+
"name": "className",
|
|
1252
|
+
"type": "string | undefined",
|
|
1253
|
+
"required": false,
|
|
1254
|
+
"default": "",
|
|
1255
|
+
"description": "Additional CSS classes."
|
|
1256
|
+
}
|
|
1257
|
+
]
|
|
1258
|
+
},
|
|
1259
|
+
{
|
|
1260
|
+
"name": "Timeline",
|
|
1261
|
+
"category": "Display",
|
|
1262
|
+
"sourceFile": "src/components/Timeline.tsx",
|
|
1263
|
+
"displayName": "CyberUI.Timeline",
|
|
1264
|
+
"description": "",
|
|
1265
|
+
"docSummary": "Vertical event history display.",
|
|
1266
|
+
"storybookPath": "components-timeline--docs",
|
|
1267
|
+
"manifestOverride": false,
|
|
1268
|
+
"props": [
|
|
1269
|
+
{
|
|
1270
|
+
"name": "events",
|
|
1271
|
+
"type": "TimelineEvent[]",
|
|
1272
|
+
"required": true,
|
|
1273
|
+
"default": null,
|
|
1274
|
+
"description": "Array of timeline events to display."
|
|
1275
|
+
},
|
|
1276
|
+
{
|
|
1277
|
+
"name": "size",
|
|
1278
|
+
"type": "ResponsiveValue<\"sm\" | \"md\" | \"lg\"> | undefined",
|
|
1279
|
+
"required": false,
|
|
1280
|
+
"default": "md",
|
|
1281
|
+
"description": "Size of the timeline. Supports responsive values."
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
"name": "className",
|
|
1285
|
+
"type": "string | undefined",
|
|
1286
|
+
"required": false,
|
|
1287
|
+
"default": "",
|
|
1288
|
+
"description": "Additional CSS classes."
|
|
1289
|
+
}
|
|
1290
|
+
]
|
|
1291
|
+
},
|
|
1292
|
+
{
|
|
1293
|
+
"name": "Image",
|
|
1294
|
+
"category": "Media",
|
|
1295
|
+
"sourceFile": "src/components/Image.tsx",
|
|
1296
|
+
"displayName": "Image",
|
|
1297
|
+
"description": "CyberUI Image Component\n\nA cyberpunk-themed image component with click-to-expand preview functionality,\nloading states, error handling, and smooth animations.",
|
|
1298
|
+
"docSummary": "Image with cyberpunk frame/effects.",
|
|
1299
|
+
"storybookPath": "components-image--docs",
|
|
1300
|
+
"manifestOverride": false,
|
|
1301
|
+
"props": [
|
|
1302
|
+
{
|
|
1303
|
+
"name": "src",
|
|
1304
|
+
"type": "string",
|
|
1305
|
+
"required": true,
|
|
1306
|
+
"default": null,
|
|
1307
|
+
"description": "Image source URL (required)"
|
|
1308
|
+
},
|
|
1309
|
+
{
|
|
1310
|
+
"name": "alt",
|
|
1311
|
+
"type": "string",
|
|
1312
|
+
"required": true,
|
|
1313
|
+
"default": null,
|
|
1314
|
+
"description": "Alternative text for accessibility (required)"
|
|
1315
|
+
},
|
|
1316
|
+
{
|
|
1317
|
+
"name": "size",
|
|
1318
|
+
"type": "ResponsiveValue<ImageSize> | undefined",
|
|
1319
|
+
"required": false,
|
|
1320
|
+
"default": null,
|
|
1321
|
+
"description": "Size of the image container"
|
|
1322
|
+
},
|
|
1323
|
+
{
|
|
1324
|
+
"name": "preview",
|
|
1325
|
+
"type": "boolean | undefined",
|
|
1326
|
+
"required": false,
|
|
1327
|
+
"default": "false",
|
|
1328
|
+
"description": "Enable click-to-expand fullscreen preview on click.\nMust be explicitly set to `true` — disabled by default."
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
"name": "fallback",
|
|
1332
|
+
"type": "string | undefined",
|
|
1333
|
+
"required": false,
|
|
1334
|
+
"default": null,
|
|
1335
|
+
"description": "Fallback image URL when main image fails to load"
|
|
1336
|
+
},
|
|
1337
|
+
{
|
|
1338
|
+
"name": "placeholder",
|
|
1339
|
+
"type": "ReactNode",
|
|
1340
|
+
"required": false,
|
|
1341
|
+
"default": null,
|
|
1342
|
+
"description": "Custom loading placeholder component"
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
"name": "className",
|
|
1346
|
+
"type": "string | undefined",
|
|
1347
|
+
"required": false,
|
|
1348
|
+
"default": null,
|
|
1349
|
+
"description": "Additional CSS classes"
|
|
1350
|
+
},
|
|
1351
|
+
{
|
|
1352
|
+
"name": "animation",
|
|
1353
|
+
"type": "ImageAnimationConfig | undefined",
|
|
1354
|
+
"required": false,
|
|
1355
|
+
"default": null,
|
|
1356
|
+
"description": "Animation configuration"
|
|
1357
|
+
},
|
|
1358
|
+
{
|
|
1359
|
+
"name": "eager",
|
|
1360
|
+
"type": "boolean | undefined",
|
|
1361
|
+
"required": false,
|
|
1362
|
+
"default": null,
|
|
1363
|
+
"description": "Disable lazy loading (images load immediately)"
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
"name": "previewClassName",
|
|
1367
|
+
"type": "string | undefined",
|
|
1368
|
+
"required": false,
|
|
1369
|
+
"default": null,
|
|
1370
|
+
"description": "Custom preview container styles"
|
|
1371
|
+
},
|
|
1372
|
+
{
|
|
1373
|
+
"name": "onPreviewOpen",
|
|
1374
|
+
"type": "(() => void) | undefined",
|
|
1375
|
+
"required": false,
|
|
1376
|
+
"default": null,
|
|
1377
|
+
"description": "Fired when preview opens"
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
"name": "onPreviewClose",
|
|
1381
|
+
"type": "(() => void) | undefined",
|
|
1382
|
+
"required": false,
|
|
1383
|
+
"default": null,
|
|
1384
|
+
"description": "Fired when preview closes"
|
|
1385
|
+
},
|
|
1386
|
+
{
|
|
1387
|
+
"name": "onLoad",
|
|
1388
|
+
"type": "((event: SyntheticEvent<HTMLImageElement, Event>) => void) | undefined",
|
|
1389
|
+
"required": false,
|
|
1390
|
+
"default": null,
|
|
1391
|
+
"description": "Fired when image loads successfully"
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
"name": "onError",
|
|
1395
|
+
"type": "((event: SyntheticEvent<HTMLImageElement, Event>) => void) | undefined",
|
|
1396
|
+
"required": false,
|
|
1397
|
+
"default": null,
|
|
1398
|
+
"description": "Fired when image fails to load"
|
|
1399
|
+
}
|
|
1400
|
+
]
|
|
1401
|
+
}
|
|
1402
|
+
],
|
|
1403
|
+
"hooks": [
|
|
1404
|
+
{
|
|
1405
|
+
"name": "useCyberScrollbar",
|
|
1406
|
+
"kind": "hook",
|
|
1407
|
+
"description": "Custom hook that creates a cyberpunk-themed scrollbar with animated arrows that respond to scroll velocity and direction.",
|
|
1408
|
+
"docSummary": "applies cyberpunk scrollbar styling to a scrollable ref.",
|
|
1409
|
+
"signature": "useCyberScrollbar<T extends HTMLElement>(options?: UseCyberScrollbarOptions): React.RefObject<T>",
|
|
1410
|
+
"requiresProvider": null
|
|
1411
|
+
},
|
|
1412
|
+
{
|
|
1413
|
+
"name": "useCyberNotifications",
|
|
1414
|
+
"kind": "hook",
|
|
1415
|
+
"description": "Access the notification context to show toast notifications. Must be used within a CyberNotificationProvider.",
|
|
1416
|
+
"docSummary": "`showNotification(type, title, message, options?)` toast trigger; requires `CyberNotificationProvider`.",
|
|
1417
|
+
"signature": "useCyberNotifications(): { showNotification: (type: 'success' | 'warning' | 'error', title: string, message: string, options?: NotificationOptions) => string }",
|
|
1418
|
+
"requiresProvider": "CyberNotificationProvider"
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
"name": "useAnimatedProgress",
|
|
1422
|
+
"kind": "hook",
|
|
1423
|
+
"description": "A hook that oscillates a value between a min and max range. Useful for creating \"breathing\" or \"pulse\" animations.",
|
|
1424
|
+
"docSummary": "oscillating value generator for pulse/loading animations.",
|
|
1425
|
+
"signature": "useAnimatedProgress(options?: { min?: number; max?: number; speed?: number }): number",
|
|
1426
|
+
"requiresProvider": null
|
|
1427
|
+
}
|
|
1428
|
+
],
|
|
1429
|
+
"context": [
|
|
1430
|
+
{
|
|
1431
|
+
"name": "CyberNotificationProvider",
|
|
1432
|
+
"kind": "context-provider",
|
|
1433
|
+
"sourceFile": "src/contexts/NotificationContext.tsx",
|
|
1434
|
+
"description": "Context provider for the Cyberpunk notification system.\nWrap your application root with this provider to enable toasts.",
|
|
1435
|
+
"docSummary": "wraps the app once to enable `useCyberNotifications`.",
|
|
1436
|
+
"props": [
|
|
1437
|
+
{
|
|
1438
|
+
"name": "position",
|
|
1439
|
+
"type": "\"top-right\" | \"top-left\" | \"bottom-right\" | \"bottom-left\" | undefined",
|
|
1440
|
+
"required": false,
|
|
1441
|
+
"default": "top-right",
|
|
1442
|
+
"description": ""
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
"name": "defaultDuration",
|
|
1446
|
+
"type": "number | undefined",
|
|
1447
|
+
"required": false,
|
|
1448
|
+
"default": 2500,
|
|
1449
|
+
"description": ""
|
|
1450
|
+
}
|
|
1451
|
+
]
|
|
1452
|
+
}
|
|
1453
|
+
]
|
|
1454
|
+
}
|