@proyecto-viviana/ui 0.1.1 → 0.1.3
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/dist/index.d.ts +649 -51
- package/dist/index.js +232 -185
- package/dist/index.jsx +1533 -0
- package/package.json +9 -7
- package/dist/alert/index.d.ts +0 -12
- package/dist/alert/index.d.ts.map +0 -1
- package/dist/avatar/index.d.ts +0 -17
- package/dist/avatar/index.d.ts.map +0 -1
- package/dist/badge/index.d.ts +0 -12
- package/dist/badge/index.d.ts.map +0 -1
- package/dist/button/Button.d.ts +0 -19
- package/dist/button/Button.d.ts.map +0 -1
- package/dist/button/index.d.ts +0 -3
- package/dist/button/index.d.ts.map +0 -1
- package/dist/button/types.d.ts +0 -23
- package/dist/button/types.d.ts.map +0 -1
- package/dist/checkbox/index.d.ts +0 -43
- package/dist/checkbox/index.d.ts.map +0 -1
- package/dist/custom/calendar-card/index.d.ts +0 -12
- package/dist/custom/calendar-card/index.d.ts.map +0 -1
- package/dist/custom/chip/index.d.ts +0 -11
- package/dist/custom/chip/index.d.ts.map +0 -1
- package/dist/custom/conversation/index.d.ts +0 -32
- package/dist/custom/conversation/index.d.ts.map +0 -1
- package/dist/custom/event-card/index.d.ts +0 -26
- package/dist/custom/event-card/index.d.ts.map +0 -1
- package/dist/custom/lateral-nav/index.d.ts +0 -32
- package/dist/custom/lateral-nav/index.d.ts.map +0 -1
- package/dist/custom/logo/index.d.ts +0 -26
- package/dist/custom/logo/index.d.ts.map +0 -1
- package/dist/custom/nav-header/index.d.ts +0 -12
- package/dist/custom/nav-header/index.d.ts.map +0 -1
- package/dist/custom/page-layout/index.d.ts +0 -11
- package/dist/custom/page-layout/index.d.ts.map +0 -1
- package/dist/custom/profile-card/index.d.ts +0 -12
- package/dist/custom/profile-card/index.d.ts.map +0 -1
- package/dist/custom/project-card/index.d.ts +0 -24
- package/dist/custom/project-card/index.d.ts.map +0 -1
- package/dist/custom/timeline-item/index.d.ts +0 -18
- package/dist/custom/timeline-item/index.d.ts.map +0 -1
- package/dist/dialog/index.d.ts +0 -18
- package/dist/dialog/index.d.ts.map +0 -1
- package/dist/icon/icons/GitHubIcon.d.ts +0 -7
- package/dist/icon/icons/GitHubIcon.d.ts.map +0 -1
- package/dist/icon/index.d.ts +0 -28
- package/dist/icon/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/link/index.d.ts +0 -39
- package/dist/link/index.d.ts.map +0 -1
- package/dist/progress-bar/index.d.ts +0 -49
- package/dist/progress-bar/index.d.ts.map +0 -1
- package/dist/radio/index.d.ts +0 -43
- package/dist/radio/index.d.ts.map +0 -1
- package/dist/separator/index.d.ts +0 -42
- package/dist/separator/index.d.ts.map +0 -1
- package/dist/switch/ToggleSwitch.d.ts +0 -28
- package/dist/switch/ToggleSwitch.d.ts.map +0 -1
- package/dist/switch/index.d.ts +0 -26
- package/dist/switch/index.d.ts.map +0 -1
- package/dist/test-utils/index.d.ts +0 -44
- package/dist/test-utils/index.d.ts.map +0 -1
- package/dist/textfield/index.d.ts +0 -31
- package/dist/textfield/index.d.ts.map +0 -1
- package/dist/tooltip/index.d.ts +0 -17
- package/dist/tooltip/index.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,51 +1,649 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
1
|
+
import * as solid_js from 'solid-js';
|
|
2
|
+
import { JSX, Component } from 'solid-js';
|
|
3
|
+
import { ButtonProps as ButtonProps$1, ToggleSwitchProps as ToggleSwitchProps$1, CheckboxProps as CheckboxProps$1, CheckboxGroupProps as CheckboxGroupProps$1, RadioGroupProps as RadioGroupProps$1, RadioProps as RadioProps$1, LinkProps as LinkProps$1 } from '@proyecto-viviana/solidaria-components';
|
|
4
|
+
import { AriaTextFieldProps, Orientation } from '@proyecto-viviana/solidaria';
|
|
5
|
+
|
|
6
|
+
type ButtonVariant = 'primary' | 'secondary' | 'accent' | 'positive' | 'negative' | 'ghost' | 'link';
|
|
7
|
+
type ButtonStyle = 'fill' | 'outline';
|
|
8
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
9
|
+
type StaticColor = 'white' | 'black';
|
|
10
|
+
interface ButtonProps extends Omit<ButtonProps$1, 'class' | 'children' | 'style'> {
|
|
11
|
+
/** The content to display in the button. */
|
|
12
|
+
children?: JSX.Element;
|
|
13
|
+
/** The visual style of the button. */
|
|
14
|
+
variant?: ButtonVariant;
|
|
15
|
+
/** The background style of the button. */
|
|
16
|
+
buttonStyle?: ButtonStyle;
|
|
17
|
+
/** The size of the button. */
|
|
18
|
+
size?: ButtonSize;
|
|
19
|
+
/** Whether the button should take up the full width of its container. */
|
|
20
|
+
fullWidth?: boolean;
|
|
21
|
+
/** The static color style to apply. Useful when the button appears over a color background. */
|
|
22
|
+
staticColor?: StaticColor;
|
|
23
|
+
/** Additional CSS class name. */
|
|
24
|
+
class?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Button component for proyecto-viviana-ui
|
|
29
|
+
*
|
|
30
|
+
* A styled button component built on top of solidaria-components.
|
|
31
|
+
* This component only handles styling - all behavior and accessibility
|
|
32
|
+
* is provided by the headless Button from solidaria-components.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Buttons allow users to perform an action or to navigate to another page.
|
|
37
|
+
* They have multiple styles for various needs, and are ideal for calling attention to
|
|
38
|
+
* where a user needs to do something in order to move forward in a flow.
|
|
39
|
+
*
|
|
40
|
+
* Built on solidaria-components Button for full accessibility support.
|
|
41
|
+
* Styles are defined in components.css using the vui-button class system.
|
|
42
|
+
*/
|
|
43
|
+
declare function Button(props: ButtonProps): JSX.Element;
|
|
44
|
+
|
|
45
|
+
type BadgeVariant = 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'danger';
|
|
46
|
+
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
47
|
+
interface BadgeProps {
|
|
48
|
+
children?: JSX.Element;
|
|
49
|
+
count?: number;
|
|
50
|
+
variant?: BadgeVariant;
|
|
51
|
+
size?: BadgeSize;
|
|
52
|
+
class?: string;
|
|
53
|
+
}
|
|
54
|
+
declare function Badge(props: BadgeProps): JSX.Element;
|
|
55
|
+
|
|
56
|
+
type AlertVariant = 'info' | 'success' | 'warning' | 'error';
|
|
57
|
+
interface AlertProps {
|
|
58
|
+
children: JSX.Element;
|
|
59
|
+
variant?: AlertVariant;
|
|
60
|
+
title?: string;
|
|
61
|
+
dismissible?: boolean;
|
|
62
|
+
onDismiss?: () => void;
|
|
63
|
+
class?: string;
|
|
64
|
+
}
|
|
65
|
+
declare function Alert(props: AlertProps): JSX.Element;
|
|
66
|
+
|
|
67
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
68
|
+
interface AvatarProps {
|
|
69
|
+
src?: string;
|
|
70
|
+
alt?: string;
|
|
71
|
+
size?: AvatarSize;
|
|
72
|
+
fallback?: string;
|
|
73
|
+
online?: boolean;
|
|
74
|
+
class?: string;
|
|
75
|
+
}
|
|
76
|
+
declare function Avatar(props: AvatarProps): solid_js.JSX.Element;
|
|
77
|
+
interface AvatarGroupProps {
|
|
78
|
+
children: any;
|
|
79
|
+
max?: number;
|
|
80
|
+
size?: AvatarSize;
|
|
81
|
+
}
|
|
82
|
+
declare function AvatarGroup(props: AvatarGroupProps): solid_js.JSX.Element;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* ToggleSwitch component for proyecto-viviana-ui
|
|
86
|
+
*
|
|
87
|
+
* A styled switch component built on top of solidaria-components.
|
|
88
|
+
* This component only handles styling - all behavior and accessibility
|
|
89
|
+
* is provided by the headless Switch from solidaria-components.
|
|
90
|
+
*
|
|
91
|
+
* Named "ToggleSwitch" to avoid conflict with SolidJS's built-in Switch component.
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
type SwitchSize = 'sm' | 'md' | 'lg';
|
|
95
|
+
interface ToggleSwitchProps extends Omit<ToggleSwitchProps$1, 'class' | 'children'> {
|
|
96
|
+
/** The size of the switch. */
|
|
97
|
+
size?: SwitchSize;
|
|
98
|
+
/** Additional CSS class name. */
|
|
99
|
+
class?: string;
|
|
100
|
+
/** Label text for the switch. */
|
|
101
|
+
children?: JSX.Element;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* A switch allows users to toggle between two mutually exclusive states.
|
|
105
|
+
*
|
|
106
|
+
* Built on solidaria-components Switch for full accessibility support.
|
|
107
|
+
* Named "ToggleSwitch" to avoid conflict with SolidJS's built-in Switch component.
|
|
108
|
+
*/
|
|
109
|
+
declare function ToggleSwitch(props: ToggleSwitchProps): JSX.Element;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Switch components for proyecto-viviana-ui
|
|
113
|
+
*
|
|
114
|
+
* This file exports:
|
|
115
|
+
* - ToggleSwitch: The primary switch component built on solidaria-components
|
|
116
|
+
* (named to avoid conflict with SolidJS's built-in Switch)
|
|
117
|
+
* - TabSwitch: A custom two-option tab selector
|
|
118
|
+
*/
|
|
119
|
+
|
|
120
|
+
interface SwitchOption {
|
|
121
|
+
label: string;
|
|
122
|
+
value: string;
|
|
123
|
+
}
|
|
124
|
+
interface TabSwitchProps {
|
|
125
|
+
options: SwitchOption[];
|
|
126
|
+
value?: string;
|
|
127
|
+
onChange?: (value: string) => void;
|
|
128
|
+
class?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* A tab-style switch that allows users to select between two options.
|
|
132
|
+
* This is a custom component, not based on solidaria/react-aria.
|
|
133
|
+
*/
|
|
134
|
+
declare function TabSwitch(props: TabSwitchProps): JSX.Element;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Checkbox component for proyecto-viviana-ui
|
|
138
|
+
*
|
|
139
|
+
* A styled checkbox component built on top of solidaria-components.
|
|
140
|
+
* This component only handles styling - all behavior and accessibility
|
|
141
|
+
* is provided by the headless Checkbox from solidaria-components.
|
|
142
|
+
*/
|
|
143
|
+
|
|
144
|
+
type CheckboxSize = 'sm' | 'md' | 'lg';
|
|
145
|
+
interface CheckboxProps extends Omit<CheckboxProps$1, 'class' | 'children' | 'style'> {
|
|
146
|
+
/** The size of the checkbox. */
|
|
147
|
+
size?: CheckboxSize;
|
|
148
|
+
/** Additional CSS class name. */
|
|
149
|
+
class?: string;
|
|
150
|
+
/** Label text for the checkbox. */
|
|
151
|
+
children?: JSX.Element;
|
|
152
|
+
}
|
|
153
|
+
interface CheckboxGroupProps extends Omit<CheckboxGroupProps$1, 'class' | 'children' | 'style'> {
|
|
154
|
+
/** Additional CSS class name. */
|
|
155
|
+
class?: string;
|
|
156
|
+
/** Children checkboxes. */
|
|
157
|
+
children?: JSX.Element;
|
|
158
|
+
/** Label for the group. */
|
|
159
|
+
label?: string;
|
|
160
|
+
/** Description for the group. */
|
|
161
|
+
description?: string;
|
|
162
|
+
/** Error message when invalid. */
|
|
163
|
+
errorMessage?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* A checkbox allows users to select one or more items from a set.
|
|
167
|
+
*
|
|
168
|
+
* Built on solidaria-components Checkbox for full accessibility support.
|
|
169
|
+
*/
|
|
170
|
+
declare function Checkbox(props: CheckboxProps): JSX.Element;
|
|
171
|
+
/**
|
|
172
|
+
* A checkbox group allows users to select multiple items from a list.
|
|
173
|
+
*
|
|
174
|
+
* Built on solidaria-components CheckboxGroup for full accessibility support.
|
|
175
|
+
*/
|
|
176
|
+
declare function CheckboxGroup(props: CheckboxGroupProps): JSX.Element;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* RadioGroup and Radio components for proyecto-viviana-ui
|
|
180
|
+
*
|
|
181
|
+
* Styled radio components built on top of solidaria-components.
|
|
182
|
+
*
|
|
183
|
+
* IMPORTANT: Due to SolidJS's JSX evaluation order, we cannot wrap the headless
|
|
184
|
+
* components in a traditional way. Instead, we re-export them and provide
|
|
185
|
+
* styling through the class prop functions.
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
type RadioGroupOrientation = 'horizontal' | 'vertical';
|
|
189
|
+
type RadioGroupSize = 'sm' | 'md' | 'lg';
|
|
190
|
+
interface RadioGroupProps extends Omit<RadioGroupProps$1, 'class' | 'style'> {
|
|
191
|
+
/** The size of the radio buttons. */
|
|
192
|
+
size?: RadioGroupSize;
|
|
193
|
+
/** Additional CSS class name. */
|
|
194
|
+
class?: string;
|
|
195
|
+
/** Label for the group. */
|
|
196
|
+
label?: string;
|
|
197
|
+
/** Description for the group. */
|
|
198
|
+
description?: string;
|
|
199
|
+
/** Error message when invalid. */
|
|
200
|
+
errorMessage?: string;
|
|
201
|
+
}
|
|
202
|
+
interface RadioProps extends Omit<RadioProps$1, 'class' | 'style'> {
|
|
203
|
+
/** Additional CSS class name. */
|
|
204
|
+
class?: string;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* A radio group allows users to select a single option from a list of mutually exclusive options.
|
|
208
|
+
*
|
|
209
|
+
* Built on solidaria-components RadioGroup for full accessibility support.
|
|
210
|
+
*/
|
|
211
|
+
declare function RadioGroup(props: RadioGroupProps): JSX.Element;
|
|
212
|
+
/**
|
|
213
|
+
* A radio button allows users to select a single option from a list.
|
|
214
|
+
* Must be used within a RadioGroup.
|
|
215
|
+
*
|
|
216
|
+
* Built on solidaria-components Radio for full accessibility support.
|
|
217
|
+
*/
|
|
218
|
+
declare function Radio(props: RadioProps): JSX.Element;
|
|
219
|
+
|
|
220
|
+
interface DialogProps {
|
|
221
|
+
title: string;
|
|
222
|
+
subtitle?: string;
|
|
223
|
+
children: JSX.Element;
|
|
224
|
+
tags?: string[];
|
|
225
|
+
primaryAction?: {
|
|
226
|
+
label: string;
|
|
227
|
+
onClick: () => void;
|
|
228
|
+
};
|
|
229
|
+
secondaryAction?: {
|
|
230
|
+
label: string;
|
|
231
|
+
onClick: () => void;
|
|
232
|
+
};
|
|
233
|
+
class?: string;
|
|
234
|
+
}
|
|
235
|
+
declare function Dialog(props: DialogProps): JSX.Element;
|
|
236
|
+
|
|
237
|
+
interface GitHubIconProps {
|
|
238
|
+
size?: number;
|
|
239
|
+
color?: string;
|
|
240
|
+
}
|
|
241
|
+
declare function GitHubIcon(props: GitHubIconProps): JSX.Element;
|
|
242
|
+
|
|
243
|
+
interface IconProps {
|
|
244
|
+
/** The icon component to render (should accept size and color props) */
|
|
245
|
+
icon: Component<{
|
|
246
|
+
size?: string | number;
|
|
247
|
+
color?: string;
|
|
248
|
+
}>;
|
|
249
|
+
/** Size of the icon (e.g., '24px' or 24) */
|
|
250
|
+
size?: string | number;
|
|
251
|
+
/** Color of the icon */
|
|
252
|
+
color?: string;
|
|
253
|
+
/** Whether to show the accent shadow effect (4px offset to bottom) */
|
|
254
|
+
withShadow?: boolean;
|
|
255
|
+
/** Additional CSS class */
|
|
256
|
+
class?: string;
|
|
257
|
+
/** Click handler */
|
|
258
|
+
onClick?: () => void;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Icon wrapper component with optional accent shadow effect.
|
|
262
|
+
*
|
|
263
|
+
* The shadow effect creates a 4px offset accent-colored duplicate
|
|
264
|
+
* of the icon behind it for a stylized look.
|
|
265
|
+
*/
|
|
266
|
+
declare function Icon(props: IconProps): JSX.Element;
|
|
267
|
+
|
|
268
|
+
interface TooltipProps {
|
|
269
|
+
/** The content to show in the tooltip */
|
|
270
|
+
label: string;
|
|
271
|
+
/** The trigger element */
|
|
272
|
+
children: JSX.Element;
|
|
273
|
+
/** Position of the tooltip */
|
|
274
|
+
position?: 'top' | 'bottom';
|
|
275
|
+
/** Additional CSS class */
|
|
276
|
+
class?: string;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Tooltip component that shows a label on hover.
|
|
280
|
+
* Uses CSS-only hover effect for performance.
|
|
281
|
+
*/
|
|
282
|
+
declare function Tooltip(props: TooltipProps): JSX.Element;
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* TextField component for proyecto-viviana-ui
|
|
286
|
+
*
|
|
287
|
+
* A styled text field component built on solidaria hooks directly.
|
|
288
|
+
* This bypasses solidaria-components for now due to context timing issues.
|
|
289
|
+
*/
|
|
290
|
+
|
|
291
|
+
type TextFieldSize = 'sm' | 'md' | 'lg';
|
|
292
|
+
type TextFieldVariant = 'outline' | 'filled';
|
|
293
|
+
interface TextFieldProps extends Omit<AriaTextFieldProps, 'children'> {
|
|
294
|
+
/** The size of the text field. */
|
|
295
|
+
size?: TextFieldSize;
|
|
296
|
+
/** The visual variant of the text field. */
|
|
297
|
+
variant?: TextFieldVariant;
|
|
298
|
+
/** Additional CSS class name. */
|
|
299
|
+
class?: string;
|
|
300
|
+
/** Label text for the input. */
|
|
301
|
+
label?: string;
|
|
302
|
+
/** Description text shown below the input. */
|
|
303
|
+
description?: string;
|
|
304
|
+
/** Error message shown when invalid. */
|
|
305
|
+
errorMessage?: string;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* A text field allows users to enter a plain text value with a keyboard.
|
|
309
|
+
*
|
|
310
|
+
* Built directly on solidaria hooks for full accessibility support.
|
|
311
|
+
*/
|
|
312
|
+
declare function TextField(props: TextFieldProps): JSX.Element;
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Link component for proyecto-viviana-ui
|
|
316
|
+
*
|
|
317
|
+
* Styled link component built on top of solidaria-components.
|
|
318
|
+
*/
|
|
319
|
+
|
|
320
|
+
type LinkVariant = 'primary' | 'secondary' | 'subtle';
|
|
321
|
+
interface LinkProps extends Omit<LinkProps$1, 'class' | 'style' | 'children'> {
|
|
322
|
+
/** The visual style of the link. @default 'primary' */
|
|
323
|
+
variant?: LinkVariant;
|
|
324
|
+
/** Whether the link is on its own vs inside a longer string of text. */
|
|
325
|
+
isStandalone?: boolean;
|
|
326
|
+
/** Whether the link should be displayed with a quiet style (no underline by default). */
|
|
327
|
+
isQuiet?: boolean;
|
|
328
|
+
/** Additional CSS class name. */
|
|
329
|
+
class?: string;
|
|
330
|
+
/** The content of the link. */
|
|
331
|
+
children?: JSX.Element;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Links allow users to navigate to a different location.
|
|
335
|
+
* They can be presented inline inside a paragraph or as standalone text.
|
|
336
|
+
*
|
|
337
|
+
* Built on solidaria-components Link for full accessibility support.
|
|
338
|
+
*
|
|
339
|
+
* @example
|
|
340
|
+
* ```tsx
|
|
341
|
+
* <Link href="/about">About Us</Link>
|
|
342
|
+
*
|
|
343
|
+
* // Secondary variant
|
|
344
|
+
* <Link href="/help" variant="secondary">Help</Link>
|
|
345
|
+
*
|
|
346
|
+
* // Standalone (bold, no underline until hover)
|
|
347
|
+
* <Link href="/home" isStandalone isQuiet>Home</Link>
|
|
348
|
+
* ```
|
|
349
|
+
*/
|
|
350
|
+
declare function Link(props: LinkProps): JSX.Element;
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* ProgressBar component for proyecto-viviana-ui
|
|
354
|
+
*
|
|
355
|
+
* Styled progress bar component built on top of the solidaria hook directly.
|
|
356
|
+
*/
|
|
357
|
+
|
|
358
|
+
type ProgressBarSize = 'sm' | 'md' | 'lg';
|
|
359
|
+
type ProgressBarVariant = 'primary' | 'accent' | 'success' | 'warning' | 'danger';
|
|
360
|
+
interface ProgressBarProps {
|
|
361
|
+
/** The current value (controlled). @default 0 */
|
|
362
|
+
value?: number;
|
|
363
|
+
/** The smallest value allowed. @default 0 */
|
|
364
|
+
minValue?: number;
|
|
365
|
+
/** The largest value allowed. @default 100 */
|
|
366
|
+
maxValue?: number;
|
|
367
|
+
/** The content to display as the value's label (e.g. "1 of 4"). */
|
|
368
|
+
valueLabel?: string;
|
|
369
|
+
/** Whether presentation is indeterminate when progress isn't known. */
|
|
370
|
+
isIndeterminate?: boolean;
|
|
371
|
+
/** The size of the progress bar. @default 'md' */
|
|
372
|
+
size?: ProgressBarSize;
|
|
373
|
+
/** The visual style variant. @default 'primary' */
|
|
374
|
+
variant?: ProgressBarVariant;
|
|
375
|
+
/** The label to display above the progress bar. */
|
|
376
|
+
label?: string;
|
|
377
|
+
/** Whether to show the value text. @default true for determinate progress */
|
|
378
|
+
showValueLabel?: boolean;
|
|
379
|
+
/** Additional CSS class name. */
|
|
380
|
+
class?: string;
|
|
381
|
+
/** An accessibility label. */
|
|
382
|
+
'aria-label'?: string;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
386
|
+
* over time.
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* ```tsx
|
|
390
|
+
* <ProgressBar value={50} label="Loading..." />
|
|
391
|
+
*
|
|
392
|
+
* // Indeterminate
|
|
393
|
+
* <ProgressBar isIndeterminate label="Processing..." />
|
|
394
|
+
*
|
|
395
|
+
* // Different variants
|
|
396
|
+
* <ProgressBar value={75} variant="success" />
|
|
397
|
+
* ```
|
|
398
|
+
*/
|
|
399
|
+
declare function ProgressBar(props: ProgressBarProps): JSX.Element;
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Separator component for proyecto-viviana-ui
|
|
403
|
+
*
|
|
404
|
+
* Styled separator component built on top of solidaria hook directly.
|
|
405
|
+
*/
|
|
406
|
+
|
|
407
|
+
type SeparatorVariant = 'default' | 'subtle' | 'strong';
|
|
408
|
+
type SeparatorSize = 'sm' | 'md' | 'lg';
|
|
409
|
+
interface SeparatorProps {
|
|
410
|
+
/** The orientation of the separator. @default 'horizontal' */
|
|
411
|
+
orientation?: Orientation;
|
|
412
|
+
/** The visual style variant. @default 'default' */
|
|
413
|
+
variant?: SeparatorVariant;
|
|
414
|
+
/** The size/thickness of the separator. @default 'md' */
|
|
415
|
+
size?: SeparatorSize;
|
|
416
|
+
/** Additional CSS class name. */
|
|
417
|
+
class?: string;
|
|
418
|
+
/** An accessibility label for the separator. */
|
|
419
|
+
'aria-label'?: string;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* A separator is a visual divider between two groups of content,
|
|
423
|
+
* e.g. groups of menu items or sections of a page.
|
|
424
|
+
*
|
|
425
|
+
* @example
|
|
426
|
+
* ```tsx
|
|
427
|
+
* <Separator />
|
|
428
|
+
*
|
|
429
|
+
* // Vertical separator
|
|
430
|
+
* <div class="flex items-center gap-4">
|
|
431
|
+
* <span>Item 1</span>
|
|
432
|
+
* <Separator orientation="vertical" />
|
|
433
|
+
* <span>Item 2</span>
|
|
434
|
+
* </div>
|
|
435
|
+
*
|
|
436
|
+
* // Different variants
|
|
437
|
+
* <Separator variant="strong" />
|
|
438
|
+
* ```
|
|
439
|
+
*/
|
|
440
|
+
declare function Separator(props: SeparatorProps): JSX.Element;
|
|
441
|
+
|
|
442
|
+
type ChipVariant = 'primary' | 'secondary' | 'accent' | 'outline';
|
|
443
|
+
interface ChipProps {
|
|
444
|
+
text: string;
|
|
445
|
+
variant?: ChipVariant;
|
|
446
|
+
onClick?: () => void;
|
|
447
|
+
icon?: JSX.Element;
|
|
448
|
+
class?: string;
|
|
449
|
+
}
|
|
450
|
+
declare function Chip(props: ChipProps): JSX.Element;
|
|
451
|
+
|
|
452
|
+
interface NavHeaderProps {
|
|
453
|
+
logo?: string;
|
|
454
|
+
logoAlt?: string;
|
|
455
|
+
logoText?: string;
|
|
456
|
+
children?: JSX.Element;
|
|
457
|
+
menuIcon?: JSX.Element;
|
|
458
|
+
onMenuClick?: () => void;
|
|
459
|
+
class?: string;
|
|
460
|
+
}
|
|
461
|
+
declare function NavHeader(props: NavHeaderProps): JSX.Element;
|
|
462
|
+
|
|
463
|
+
interface NavItemProps {
|
|
464
|
+
title: string;
|
|
465
|
+
children?: JSX.Element;
|
|
466
|
+
class?: string;
|
|
467
|
+
}
|
|
468
|
+
declare function NavItem(props: NavItemProps): JSX.Element;
|
|
469
|
+
interface NavLinkProps {
|
|
470
|
+
href: string;
|
|
471
|
+
children: JSX.Element;
|
|
472
|
+
active?: boolean;
|
|
473
|
+
class?: string;
|
|
474
|
+
}
|
|
475
|
+
declare function NavLink(props: NavLinkProps): JSX.Element;
|
|
476
|
+
interface NavSectionProps {
|
|
477
|
+
title: string;
|
|
478
|
+
links?: {
|
|
479
|
+
href: string;
|
|
480
|
+
label: string;
|
|
481
|
+
active?: boolean;
|
|
482
|
+
}[];
|
|
483
|
+
children?: JSX.Element;
|
|
484
|
+
class?: string;
|
|
485
|
+
}
|
|
486
|
+
declare function NavSection(props: NavSectionProps): JSX.Element;
|
|
487
|
+
interface LateralNavProps {
|
|
488
|
+
transparent?: boolean;
|
|
489
|
+
children?: JSX.Element;
|
|
490
|
+
class?: string;
|
|
491
|
+
}
|
|
492
|
+
declare function LateralNav(props: LateralNavProps): JSX.Element;
|
|
493
|
+
|
|
494
|
+
type TimelineEventType = 'follow' | 'like' | 'comment' | 'event' | 'custom';
|
|
495
|
+
interface TimelineItemProps {
|
|
496
|
+
type?: TimelineEventType;
|
|
497
|
+
icon?: JSX.Element;
|
|
498
|
+
leftUser?: {
|
|
499
|
+
name: string;
|
|
500
|
+
avatar?: string;
|
|
501
|
+
};
|
|
502
|
+
rightUser?: {
|
|
503
|
+
name: string;
|
|
504
|
+
avatar?: string;
|
|
505
|
+
};
|
|
506
|
+
message?: JSX.Element;
|
|
507
|
+
class?: string;
|
|
508
|
+
}
|
|
509
|
+
declare function TimelineItem(props: TimelineItemProps): JSX.Element;
|
|
510
|
+
|
|
511
|
+
interface Message {
|
|
512
|
+
id: string;
|
|
513
|
+
content: string;
|
|
514
|
+
sender: 'user' | 'other';
|
|
515
|
+
timestamp?: string;
|
|
516
|
+
}
|
|
517
|
+
interface ConversationPreviewProps {
|
|
518
|
+
user: {
|
|
519
|
+
name: string;
|
|
520
|
+
avatar?: string;
|
|
521
|
+
online?: boolean;
|
|
522
|
+
};
|
|
523
|
+
lastMessage?: string;
|
|
524
|
+
unreadCount?: number;
|
|
525
|
+
timestamp?: string;
|
|
526
|
+
onClick?: () => void;
|
|
527
|
+
class?: string;
|
|
528
|
+
}
|
|
529
|
+
declare function ConversationPreview(props: ConversationPreviewProps): solid_js.JSX.Element;
|
|
530
|
+
interface ConversationBubbleProps {
|
|
531
|
+
content: string;
|
|
532
|
+
sender: 'user' | 'other';
|
|
533
|
+
timestamp?: string;
|
|
534
|
+
class?: string;
|
|
535
|
+
}
|
|
536
|
+
declare function ConversationBubble(props: ConversationBubbleProps): solid_js.JSX.Element;
|
|
537
|
+
interface ConversationProps {
|
|
538
|
+
messages: Message[];
|
|
539
|
+
class?: string;
|
|
540
|
+
}
|
|
541
|
+
declare function Conversation(props: ConversationProps): solid_js.JSX.Element;
|
|
542
|
+
|
|
543
|
+
interface ProfileCardProps {
|
|
544
|
+
username: string;
|
|
545
|
+
avatar?: string;
|
|
546
|
+
bio?: string;
|
|
547
|
+
followers?: number;
|
|
548
|
+
following?: number;
|
|
549
|
+
actions?: JSX.Element;
|
|
550
|
+
class?: string;
|
|
551
|
+
}
|
|
552
|
+
declare function ProfileCard(props: ProfileCardProps): JSX.Element;
|
|
553
|
+
|
|
554
|
+
interface EventCardProps {
|
|
555
|
+
title: string;
|
|
556
|
+
image?: string;
|
|
557
|
+
date?: string;
|
|
558
|
+
author?: string;
|
|
559
|
+
authorAvatar?: string;
|
|
560
|
+
attendees?: {
|
|
561
|
+
avatar?: string;
|
|
562
|
+
name: string;
|
|
563
|
+
}[];
|
|
564
|
+
attendeeCount?: number;
|
|
565
|
+
decorationImage?: string;
|
|
566
|
+
actions?: JSX.Element;
|
|
567
|
+
class?: string;
|
|
568
|
+
}
|
|
569
|
+
declare function EventCard(props: EventCardProps): JSX.Element;
|
|
570
|
+
interface EventListItemProps {
|
|
571
|
+
title: string;
|
|
572
|
+
image?: string;
|
|
573
|
+
subtitle?: string;
|
|
574
|
+
onClick?: () => void;
|
|
575
|
+
class?: string;
|
|
576
|
+
}
|
|
577
|
+
declare function EventListItem(props: EventListItemProps): JSX.Element;
|
|
578
|
+
|
|
579
|
+
interface CalendarCardProps {
|
|
580
|
+
title: string;
|
|
581
|
+
image?: string;
|
|
582
|
+
tags?: string[];
|
|
583
|
+
followers?: {
|
|
584
|
+
name: string;
|
|
585
|
+
}[];
|
|
586
|
+
followerCount?: number;
|
|
587
|
+
class?: string;
|
|
588
|
+
}
|
|
589
|
+
declare function CalendarCard(props: CalendarCardProps): solid_js.JSX.Element;
|
|
590
|
+
|
|
591
|
+
type LogoSize = "sm" | "md" | "lg" | "xl";
|
|
592
|
+
interface LogoProps {
|
|
593
|
+
/** First word (light weight, muted color) */
|
|
594
|
+
firstWord?: string;
|
|
595
|
+
/** Second word (bold, with 3D effect) */
|
|
596
|
+
secondWord?: string;
|
|
597
|
+
/** Size variant of the logo */
|
|
598
|
+
size?: LogoSize;
|
|
599
|
+
/** Additional CSS classes */
|
|
600
|
+
class?: string;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* Two-word logo with retro synthwave 3D effect.
|
|
604
|
+
* First word is light/muted, second word has bold styling with pink 3D shadow.
|
|
605
|
+
*
|
|
606
|
+
* @example
|
|
607
|
+
* // Default usage
|
|
608
|
+
* <Logo />
|
|
609
|
+
*
|
|
610
|
+
* @example
|
|
611
|
+
* // Custom text
|
|
612
|
+
* <Logo firstWord="My" secondWord="Brand" size="lg" />
|
|
613
|
+
*/
|
|
614
|
+
declare function Logo(props: LogoProps): JSX.Element;
|
|
615
|
+
|
|
616
|
+
type ProjectCardSize = 'sm' | 'md' | 'lg';
|
|
617
|
+
interface ProjectCardProps {
|
|
618
|
+
/** Project name shown in tooltip on hover */
|
|
619
|
+
name: string;
|
|
620
|
+
/** Image source for the project logo */
|
|
621
|
+
imageSrc: string;
|
|
622
|
+
/** Alt text for the image */
|
|
623
|
+
imageAlt?: string;
|
|
624
|
+
/** Optional link to the project */
|
|
625
|
+
href?: string;
|
|
626
|
+
/** Size of the card */
|
|
627
|
+
size?: ProjectCardSize;
|
|
628
|
+
/** Whether the project is inactive/greyed out */
|
|
629
|
+
inactive?: boolean;
|
|
630
|
+
/** Additional CSS class */
|
|
631
|
+
class?: string;
|
|
632
|
+
}
|
|
633
|
+
/**
|
|
634
|
+
* Project card with logo and hover tooltip.
|
|
635
|
+
* Used for showcasing ecosystem projects.
|
|
636
|
+
*/
|
|
637
|
+
declare function ProjectCard(props: ProjectCardProps): JSX.Element;
|
|
638
|
+
|
|
639
|
+
interface PageLayoutProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
640
|
+
/** Content of the page */
|
|
641
|
+
children: JSX.Element;
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* PageLayout provides consistent page structure with proper background and font styling.
|
|
645
|
+
* Use this as the root wrapper for all pages.
|
|
646
|
+
*/
|
|
647
|
+
declare function PageLayout(props: PageLayoutProps): JSX.Element;
|
|
648
|
+
|
|
649
|
+
export { Alert, type AlertProps, type AlertVariant, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonStyle, type ButtonVariant, CalendarCard, type CalendarCardProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxSize, Chip, type ChipProps, type ChipVariant, Conversation, ConversationBubble, type ConversationBubbleProps, ConversationPreview, type ConversationPreviewProps, type ConversationProps, Dialog, type DialogProps, EventCard, type EventCardProps, EventListItem, type EventListItemProps, GitHubIcon, type GitHubIconProps, Icon, type IconProps, LateralNav, type LateralNavProps, Link, type LinkProps, type LinkVariant, Logo, type LogoProps, type LogoSize, type Message, NavHeader, type NavHeaderProps, NavItem, type NavItemProps, NavLink, type NavLinkProps, NavSection, type NavSectionProps, PageLayout, type PageLayoutProps, ProfileCard, type ProfileCardProps, ProgressBar, type ProgressBarProps, type ProgressBarSize, type ProgressBarVariant, ProjectCard, type ProjectCardProps, type ProjectCardSize, Radio, RadioGroup, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupSize, type RadioProps, Separator, type SeparatorProps, type SeparatorSize, type SeparatorVariant, type StaticColor, type SwitchSize, TabSwitch, type TabSwitchProps, TextField, type TextFieldProps, type TextFieldSize, type TextFieldVariant, type TimelineEventType, TimelineItem, type TimelineItemProps, ToggleSwitch, type ToggleSwitchProps, Tooltip, type TooltipProps };
|