@proyecto-viviana/solidaria-components 0.0.2 → 0.0.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 +532 -19
- package/dist/index.js +46 -46
- package/dist/index.jsx +1201 -0
- package/package.json +7 -5
- package/dist/Button.d.ts +0 -49
- package/dist/Button.d.ts.map +0 -1
- package/dist/Checkbox.d.ts +0 -97
- package/dist/Checkbox.d.ts.map +0 -1
- package/dist/Link.d.ts +0 -52
- package/dist/Link.d.ts.map +0 -1
- package/dist/ProgressBar.d.ts +0 -45
- package/dist/ProgressBar.d.ts.map +0 -1
- package/dist/RadioGroup.d.ts +0 -99
- package/dist/RadioGroup.d.ts.map +0 -1
- package/dist/Separator.d.ts +0 -37
- package/dist/Separator.d.ts.map +0 -1
- package/dist/Switch.d.ts +0 -63
- package/dist/Switch.d.ts.map +0 -1
- package/dist/TextField.d.ts +0 -85
- package/dist/TextField.d.ts.map +0 -1
- package/dist/VisuallyHidden.d.ts +0 -18
- package/dist/VisuallyHidden.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/utils.d.ts +0 -76
- package/dist/utils.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,533 @@
|
|
|
1
|
+
import * as solid_js from 'solid-js';
|
|
2
|
+
import { JSX, Accessor, ParentProps } from 'solid-js';
|
|
3
|
+
import { AriaButtonProps, AriaSwitchProps, AriaCheckboxProps, AriaCheckboxGroupProps, AriaRadioProps, AriaRadioGroupProps, AriaTextFieldProps, AriaLinkProps, HoverEvents, AriaProgressBarProps, AriaSeparatorProps, Orientation as Orientation$1 } from '@proyecto-viviana/solidaria';
|
|
4
|
+
import { ToggleState, CheckboxGroupState, RadioGroupProps as RadioGroupProps$1, RadioGroupState } from '@proyecto-viviana/solid-stately';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
* Render props pattern - children can be a function that receives state
|
|
8
|
+
*/
|
|
9
|
+
type RenderChildren<T> = JSX.Element | ((renderProps: T) => JSX.Element);
|
|
10
|
+
/**
|
|
11
|
+
* Class name can be a string or a function that computes based on state
|
|
12
|
+
*/
|
|
13
|
+
type ClassNameOrFunction<T> = string | ((renderProps: T) => string);
|
|
14
|
+
/**
|
|
15
|
+
* Style can be an object or a function that computes based on state
|
|
16
|
+
*/
|
|
17
|
+
type StyleOrFunction<T> = JSX.CSSProperties | ((renderProps: T) => JSX.CSSProperties);
|
|
18
|
+
/**
|
|
19
|
+
* Common render props interface
|
|
20
|
+
*/
|
|
21
|
+
interface RenderPropsBase<T> {
|
|
22
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
23
|
+
children?: RenderChildren<T>;
|
|
24
|
+
/** The CSS className for the element. A function may be provided to compute the class based on state. */
|
|
25
|
+
class?: ClassNameOrFunction<T>;
|
|
26
|
+
/** The inline style for the element. A function may be provided to compute the style based on state. */
|
|
27
|
+
style?: StyleOrFunction<T>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Slot props for named slots
|
|
31
|
+
*/
|
|
32
|
+
interface SlotProps {
|
|
33
|
+
/** A slot name for the component. */
|
|
34
|
+
slot?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolves render props (children, class, style) based on component state
|
|
38
|
+
*/
|
|
39
|
+
declare function useRenderProps<T extends object>(props: RenderPropsBase<T> & {
|
|
40
|
+
defaultClassName?: string;
|
|
41
|
+
}, values: Accessor<T>): Accessor<{
|
|
42
|
+
children: JSX.Element;
|
|
43
|
+
class: string;
|
|
44
|
+
style: JSX.CSSProperties | undefined;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Converts boolean state values to data attributes
|
|
48
|
+
*/
|
|
49
|
+
declare function dataAttr(value: boolean | undefined): '' | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Creates data attributes from render props
|
|
52
|
+
*/
|
|
53
|
+
declare function createDataAttributes<T extends Record<string, boolean | string | undefined>>(values: T): Record<string, string | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Remove data attributes from props (for internal use)
|
|
56
|
+
*/
|
|
57
|
+
declare function removeDataAttributes<T extends Record<string, unknown>>(props: T): T;
|
|
58
|
+
/**
|
|
59
|
+
* Filter DOM props - keep only valid DOM attributes
|
|
60
|
+
*/
|
|
61
|
+
declare function filterDOMProps<T extends Record<string, unknown>>(props: T, options?: {
|
|
62
|
+
global?: boolean;
|
|
63
|
+
}): Record<string, unknown>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* VisuallyHidden component for solidaria-components
|
|
67
|
+
*
|
|
68
|
+
* Hides content visually but keeps it accessible to screen readers.
|
|
69
|
+
* Port of react-aria's VisuallyHidden.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
interface VisuallyHiddenProps extends ParentProps {
|
|
73
|
+
/** The element type to render. @default 'span' */
|
|
74
|
+
elementType?: keyof JSX.IntrinsicElements;
|
|
75
|
+
/** Whether the element should be focusable when focused. */
|
|
76
|
+
isFocusable?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* VisuallyHidden hides its children visually, while keeping content visible to screen readers.
|
|
80
|
+
*/
|
|
81
|
+
declare function VisuallyHidden(props: VisuallyHiddenProps): JSX.Element;
|
|
82
|
+
|
|
83
|
+
interface ButtonRenderProps {
|
|
84
|
+
/** Whether the button is currently hovered with a mouse. */
|
|
85
|
+
isHovered: boolean;
|
|
86
|
+
/** Whether the button is currently in a pressed state. */
|
|
87
|
+
isPressed: boolean;
|
|
88
|
+
/** Whether the button is focused, either via a mouse or keyboard. */
|
|
89
|
+
isFocused: boolean;
|
|
90
|
+
/** Whether the button is keyboard focused. */
|
|
91
|
+
isFocusVisible: boolean;
|
|
92
|
+
/** Whether the button is disabled. */
|
|
93
|
+
isDisabled: boolean;
|
|
94
|
+
}
|
|
95
|
+
interface ButtonProps extends Omit<AriaButtonProps, 'children'>, SlotProps {
|
|
96
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
97
|
+
children?: RenderChildren<ButtonRenderProps>;
|
|
98
|
+
/** The CSS className for the element. */
|
|
99
|
+
class?: ClassNameOrFunction<ButtonRenderProps>;
|
|
100
|
+
/** The inline style for the element. */
|
|
101
|
+
style?: StyleOrFunction<ButtonRenderProps>;
|
|
102
|
+
}
|
|
103
|
+
declare const ButtonContext: solid_js.Context<ButtonProps | null>;
|
|
104
|
+
/**
|
|
105
|
+
* A button allows a user to perform an action.
|
|
106
|
+
*
|
|
107
|
+
* This is a headless component that provides accessibility and state management.
|
|
108
|
+
* Style it using the render props pattern or data attributes.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* <Button onPress={() => alert('Pressed!')}>
|
|
113
|
+
* {({ isPressed, isHovered }) => (
|
|
114
|
+
* <span class={isPressed ? 'bg-blue-700' : isHovered ? 'bg-blue-600' : 'bg-blue-500'}>
|
|
115
|
+
* Click me
|
|
116
|
+
* </span>
|
|
117
|
+
* )}
|
|
118
|
+
* </Button>
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
declare function Button(props: ButtonProps): JSX.Element;
|
|
122
|
+
|
|
123
|
+
interface ToggleSwitchRenderProps {
|
|
124
|
+
/** Whether the switch is selected. */
|
|
125
|
+
isSelected: boolean;
|
|
126
|
+
/** Whether the switch is currently hovered with a mouse. */
|
|
127
|
+
isHovered: boolean;
|
|
128
|
+
/** Whether the switch is currently in a pressed state. */
|
|
129
|
+
isPressed: boolean;
|
|
130
|
+
/** Whether the switch is focused, either via a mouse or keyboard. */
|
|
131
|
+
isFocused: boolean;
|
|
132
|
+
/** Whether the switch is keyboard focused. */
|
|
133
|
+
isFocusVisible: boolean;
|
|
134
|
+
/** Whether the switch is disabled. */
|
|
135
|
+
isDisabled: boolean;
|
|
136
|
+
/** Whether the switch is read only. */
|
|
137
|
+
isReadOnly: boolean;
|
|
138
|
+
/** State of the switch. */
|
|
139
|
+
state: ToggleState;
|
|
140
|
+
}
|
|
141
|
+
interface ToggleSwitchProps extends Omit<AriaSwitchProps, 'children'>, SlotProps {
|
|
142
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
143
|
+
children?: RenderChildren<ToggleSwitchRenderProps>;
|
|
144
|
+
/** The CSS className for the element. */
|
|
145
|
+
class?: ClassNameOrFunction<ToggleSwitchRenderProps>;
|
|
146
|
+
/** The inline style for the element. */
|
|
147
|
+
style?: StyleOrFunction<ToggleSwitchRenderProps>;
|
|
148
|
+
}
|
|
149
|
+
declare const ToggleSwitchContext: solid_js.Context<ToggleSwitchProps | null>;
|
|
150
|
+
/**
|
|
151
|
+
* A switch allows a user to turn a setting on or off.
|
|
152
|
+
*
|
|
153
|
+
* This is a headless component that provides accessibility and state management.
|
|
154
|
+
* Style it using the render props pattern or data attributes.
|
|
155
|
+
*
|
|
156
|
+
* Named "ToggleSwitch" to avoid conflict with SolidJS's built-in Switch component.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```tsx
|
|
160
|
+
* <ToggleSwitch>
|
|
161
|
+
* {({ isSelected }) => (
|
|
162
|
+
* <>
|
|
163
|
+
* <span class={`switch-track ${isSelected ? 'bg-blue-500' : 'bg-gray-300'}`}>
|
|
164
|
+
* <span class={`switch-thumb ${isSelected ? 'translate-x-5' : 'translate-x-0'}`} />
|
|
165
|
+
* </span>
|
|
166
|
+
* <span>Enable notifications</span>
|
|
167
|
+
* </>
|
|
168
|
+
* )}
|
|
169
|
+
* </ToggleSwitch>
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
declare function ToggleSwitch(props: ToggleSwitchProps): JSX.Element;
|
|
173
|
+
|
|
174
|
+
interface CheckboxGroupRenderProps {
|
|
175
|
+
/** Whether the checkbox group is disabled. */
|
|
176
|
+
isDisabled: boolean;
|
|
177
|
+
/** Whether the checkbox group is read only. */
|
|
178
|
+
isReadOnly: boolean;
|
|
179
|
+
/** Whether the checkbox group is required. */
|
|
180
|
+
isRequired: boolean;
|
|
181
|
+
/** Whether the checkbox group is invalid. */
|
|
182
|
+
isInvalid: boolean;
|
|
183
|
+
/** State of the checkbox group. */
|
|
184
|
+
state: CheckboxGroupState;
|
|
185
|
+
}
|
|
186
|
+
interface CheckboxRenderProps {
|
|
187
|
+
/** Whether the checkbox is selected. */
|
|
188
|
+
isSelected: boolean;
|
|
189
|
+
/** Whether the checkbox is indeterminate. */
|
|
190
|
+
isIndeterminate: boolean;
|
|
191
|
+
/** Whether the checkbox is currently hovered with a mouse. */
|
|
192
|
+
isHovered: boolean;
|
|
193
|
+
/** Whether the checkbox is currently in a pressed state. */
|
|
194
|
+
isPressed: boolean;
|
|
195
|
+
/** Whether the checkbox is focused, either via a mouse or keyboard. */
|
|
196
|
+
isFocused: boolean;
|
|
197
|
+
/** Whether the checkbox is keyboard focused. */
|
|
198
|
+
isFocusVisible: boolean;
|
|
199
|
+
/** Whether the checkbox is disabled. */
|
|
200
|
+
isDisabled: boolean;
|
|
201
|
+
/** Whether the checkbox is read only. */
|
|
202
|
+
isReadOnly: boolean;
|
|
203
|
+
/** Whether the checkbox is invalid. */
|
|
204
|
+
isInvalid: boolean;
|
|
205
|
+
/** Whether the checkbox is required. */
|
|
206
|
+
isRequired: boolean;
|
|
207
|
+
}
|
|
208
|
+
interface CheckboxGroupProps extends Omit<AriaCheckboxGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>, SlotProps {
|
|
209
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
210
|
+
children?: RenderChildren<CheckboxGroupRenderProps>;
|
|
211
|
+
/** The CSS className for the element. */
|
|
212
|
+
class?: ClassNameOrFunction<CheckboxGroupRenderProps>;
|
|
213
|
+
/** The inline style for the element. */
|
|
214
|
+
style?: StyleOrFunction<CheckboxGroupRenderProps>;
|
|
215
|
+
}
|
|
216
|
+
interface CheckboxProps extends Omit<AriaCheckboxProps, 'children'>, SlotProps {
|
|
217
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
218
|
+
children?: RenderChildren<CheckboxRenderProps>;
|
|
219
|
+
/** The CSS className for the element. */
|
|
220
|
+
class?: ClassNameOrFunction<CheckboxRenderProps>;
|
|
221
|
+
/** The inline style for the element. */
|
|
222
|
+
style?: StyleOrFunction<CheckboxRenderProps>;
|
|
223
|
+
/** Whether the checkbox is indeterminate. */
|
|
224
|
+
isIndeterminate?: boolean;
|
|
225
|
+
}
|
|
226
|
+
declare const CheckboxGroupContext: solid_js.Context<CheckboxGroupProps | null>;
|
|
227
|
+
declare const CheckboxGroupStateContext: solid_js.Context<CheckboxGroupState | null>;
|
|
228
|
+
declare const CheckboxContext: solid_js.Context<CheckboxProps | null>;
|
|
229
|
+
/**
|
|
230
|
+
* A checkbox group allows a user to select multiple items from a list of options.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```tsx
|
|
234
|
+
* <CheckboxGroup>
|
|
235
|
+
* <Checkbox value="one">Option 1</Checkbox>
|
|
236
|
+
* <Checkbox value="two">Option 2</Checkbox>
|
|
237
|
+
* </CheckboxGroup>
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
declare function CheckboxGroup(props: ParentProps<CheckboxGroupProps>): JSX.Element;
|
|
241
|
+
/**
|
|
242
|
+
* A checkbox allows a user to select multiple items from a list of individual items,
|
|
243
|
+
* or to mark one individual item as selected.
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```tsx
|
|
247
|
+
* <Checkbox>
|
|
248
|
+
* {({ isSelected }) => (
|
|
249
|
+
* <>
|
|
250
|
+
* <span class={`checkbox ${isSelected ? 'checked' : ''}`}>
|
|
251
|
+
* {isSelected && '✓'}
|
|
252
|
+
* </span>
|
|
253
|
+
* <span>Accept terms</span>
|
|
254
|
+
* </>
|
|
255
|
+
* )}
|
|
256
|
+
* </Checkbox>
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
declare function Checkbox(props: CheckboxProps): JSX.Element;
|
|
260
|
+
|
|
261
|
+
type Orientation = 'horizontal' | 'vertical';
|
|
262
|
+
interface RadioGroupRenderProps {
|
|
263
|
+
/** The orientation of the radio group. */
|
|
264
|
+
orientation: Orientation;
|
|
265
|
+
/** Whether the radio group is disabled. */
|
|
266
|
+
isDisabled: boolean;
|
|
267
|
+
/** Whether the radio group is read only. */
|
|
268
|
+
isReadOnly: boolean;
|
|
269
|
+
/** Whether the radio group is required. */
|
|
270
|
+
isRequired: boolean;
|
|
271
|
+
/** Whether the radio group is invalid. */
|
|
272
|
+
isInvalid: boolean;
|
|
273
|
+
/** State of the radio group. */
|
|
274
|
+
state: RadioGroupState;
|
|
275
|
+
}
|
|
276
|
+
interface RadioRenderProps {
|
|
277
|
+
/** Whether the radio is selected. */
|
|
278
|
+
isSelected: boolean;
|
|
279
|
+
/** Whether the radio is currently hovered with a mouse. */
|
|
280
|
+
isHovered: boolean;
|
|
281
|
+
/** Whether the radio is currently in a pressed state. */
|
|
282
|
+
isPressed: boolean;
|
|
283
|
+
/** Whether the radio is focused, either via a mouse or keyboard. */
|
|
284
|
+
isFocused: boolean;
|
|
285
|
+
/** Whether the radio is keyboard focused. */
|
|
286
|
+
isFocusVisible: boolean;
|
|
287
|
+
/** Whether the radio is disabled. */
|
|
288
|
+
isDisabled: boolean;
|
|
289
|
+
/** Whether the radio is read only. */
|
|
290
|
+
isReadOnly: boolean;
|
|
291
|
+
/** Whether the radio is invalid. */
|
|
292
|
+
isInvalid: boolean;
|
|
293
|
+
/** Whether the radio is required. */
|
|
294
|
+
isRequired: boolean;
|
|
295
|
+
}
|
|
296
|
+
interface RadioGroupProps extends Omit<AriaRadioGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>, Pick<RadioGroupProps$1, 'value' | 'defaultValue' | 'onChange'>, SlotProps {
|
|
297
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
298
|
+
children?: RenderChildren<RadioGroupRenderProps>;
|
|
299
|
+
/** The CSS className for the element. */
|
|
300
|
+
class?: ClassNameOrFunction<RadioGroupRenderProps>;
|
|
301
|
+
/** The inline style for the element. */
|
|
302
|
+
style?: StyleOrFunction<RadioGroupRenderProps>;
|
|
303
|
+
}
|
|
304
|
+
interface RadioProps extends Omit<AriaRadioProps, 'children'>, SlotProps {
|
|
305
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
306
|
+
children?: RenderChildren<RadioRenderProps>;
|
|
307
|
+
/** The CSS className for the element. */
|
|
308
|
+
class?: ClassNameOrFunction<RadioRenderProps>;
|
|
309
|
+
/** The inline style for the element. */
|
|
310
|
+
style?: StyleOrFunction<RadioRenderProps>;
|
|
311
|
+
}
|
|
312
|
+
declare const RadioGroupContext: solid_js.Context<RadioGroupProps | null>;
|
|
313
|
+
declare const RadioGroupStateContext: solid_js.Context<RadioGroupState | null>;
|
|
314
|
+
declare const RadioContext: solid_js.Context<RadioProps | null>;
|
|
315
|
+
/**
|
|
316
|
+
* A radio group allows a user to select a single item from a list of mutually exclusive options.
|
|
317
|
+
*
|
|
318
|
+
* @example
|
|
319
|
+
* ```tsx
|
|
320
|
+
* <RadioGroup>
|
|
321
|
+
* <Radio value="one">Option 1</Radio>
|
|
322
|
+
* <Radio value="two">Option 2</Radio>
|
|
323
|
+
* </RadioGroup>
|
|
324
|
+
* ```
|
|
325
|
+
*/
|
|
326
|
+
declare function RadioGroup(props: ParentProps<RadioGroupProps>): JSX.Element;
|
|
327
|
+
/**
|
|
328
|
+
* A radio represents an individual option within a radio group.
|
|
329
|
+
*
|
|
330
|
+
* This component uses a deferred rendering pattern to work around SolidJS's
|
|
331
|
+
* JSX evaluation order. The actual implementation is rendered inside a function
|
|
332
|
+
* that checks for context availability at render time, not component creation time.
|
|
333
|
+
*
|
|
334
|
+
* @example
|
|
335
|
+
* ```tsx
|
|
336
|
+
* <Radio value="option1">
|
|
337
|
+
* {({ isSelected }) => (
|
|
338
|
+
* <>
|
|
339
|
+
* <span class={`radio ${isSelected ? 'selected' : ''}`}>
|
|
340
|
+
* {isSelected && '●'}
|
|
341
|
+
* </span>
|
|
342
|
+
* <span>Option 1</span>
|
|
343
|
+
* </>
|
|
344
|
+
* )}
|
|
345
|
+
* </Radio>
|
|
346
|
+
* ```
|
|
347
|
+
*/
|
|
348
|
+
declare function Radio(props: RadioProps): JSX.Element;
|
|
349
|
+
|
|
350
|
+
interface TextFieldRenderProps {
|
|
351
|
+
/** Whether the text field is disabled. */
|
|
352
|
+
isDisabled: boolean;
|
|
353
|
+
/** Whether the value is invalid. */
|
|
354
|
+
isInvalid: boolean;
|
|
355
|
+
/** Whether the text field is read only. */
|
|
356
|
+
isReadOnly: boolean;
|
|
357
|
+
/** Whether the text field is required. */
|
|
358
|
+
isRequired: boolean;
|
|
359
|
+
/** Whether the text field is currently hovered with a mouse. */
|
|
360
|
+
isHovered: boolean;
|
|
361
|
+
/** Whether the text field is focused, either via a mouse or keyboard. */
|
|
362
|
+
isFocused: boolean;
|
|
363
|
+
/** Whether the text field is keyboard focused. */
|
|
364
|
+
isFocusVisible: boolean;
|
|
365
|
+
}
|
|
366
|
+
interface TextFieldProps extends Omit<AriaTextFieldProps, 'children'>, SlotProps {
|
|
367
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
368
|
+
children?: RenderChildren<TextFieldRenderProps>;
|
|
369
|
+
/** The CSS className for the element. */
|
|
370
|
+
class?: ClassNameOrFunction<TextFieldRenderProps>;
|
|
371
|
+
/** The inline style for the element. */
|
|
372
|
+
style?: StyleOrFunction<TextFieldRenderProps>;
|
|
373
|
+
}
|
|
374
|
+
interface TextFieldContextValue {
|
|
375
|
+
labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;
|
|
376
|
+
inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
377
|
+
descriptionProps: JSX.HTMLAttributes<HTMLElement>;
|
|
378
|
+
errorMessageProps: JSX.HTMLAttributes<HTMLElement>;
|
|
379
|
+
isInvalid: boolean;
|
|
380
|
+
}
|
|
381
|
+
declare const TextFieldContext: solid_js.Context<TextFieldContextValue | null>;
|
|
382
|
+
interface LabelProps extends JSX.LabelHTMLAttributes<HTMLLabelElement> {
|
|
383
|
+
children?: JSX.Element;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* A label element that automatically wires up to the parent TextField context.
|
|
387
|
+
* This enables the proper htmlFor/id relationship between label and input.
|
|
388
|
+
*/
|
|
389
|
+
declare function Label(props: LabelProps): JSX.Element;
|
|
390
|
+
interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, 'children'> {
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* An input element that automatically wires up to the parent TextField context.
|
|
394
|
+
* This enables focus tracking, validation, and accessibility props to flow from
|
|
395
|
+
* the TextField to the actual input element.
|
|
396
|
+
*/
|
|
397
|
+
declare function Input(props: InputProps): JSX.Element;
|
|
398
|
+
interface TextAreaProps extends Omit<JSX.TextareaHTMLAttributes<HTMLTextAreaElement>, 'children'> {
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* A textarea element that automatically wires up to the parent TextField context.
|
|
402
|
+
* This enables focus tracking, validation, and accessibility props to flow from
|
|
403
|
+
* the TextField to the actual textarea element.
|
|
404
|
+
*/
|
|
405
|
+
declare function TextArea(props: TextAreaProps): JSX.Element;
|
|
406
|
+
/**
|
|
407
|
+
* A text field allows a user to enter a plain text value with a keyboard.
|
|
408
|
+
*
|
|
409
|
+
* This is a headless component that provides accessibility and state management.
|
|
410
|
+
* Style it using the render props pattern or data attributes.
|
|
411
|
+
*
|
|
412
|
+
* @example
|
|
413
|
+
* ```tsx
|
|
414
|
+
* <TextField>
|
|
415
|
+
* {({ isInvalid }) => (
|
|
416
|
+
* <>
|
|
417
|
+
* <Label>Email</Label>
|
|
418
|
+
* <Input class={isInvalid ? 'border-red-500' : 'border-gray-300'} />
|
|
419
|
+
* </>
|
|
420
|
+
* )}
|
|
421
|
+
* </TextField>
|
|
422
|
+
* ```
|
|
423
|
+
*/
|
|
424
|
+
declare function TextField(props: TextFieldProps): JSX.Element;
|
|
425
|
+
|
|
426
|
+
interface LinkRenderProps {
|
|
427
|
+
/** Whether the link is the current item within a list. */
|
|
428
|
+
isCurrent: boolean;
|
|
429
|
+
/** Whether the link is currently hovered with a mouse. */
|
|
430
|
+
isHovered: boolean;
|
|
431
|
+
/** Whether the link is currently in a pressed state. */
|
|
432
|
+
isPressed: boolean;
|
|
433
|
+
/** Whether the link is focused, either via a mouse or keyboard. */
|
|
434
|
+
isFocused: boolean;
|
|
435
|
+
/** Whether the link is keyboard focused. */
|
|
436
|
+
isFocusVisible: boolean;
|
|
437
|
+
/** Whether the link is disabled. */
|
|
438
|
+
isDisabled: boolean;
|
|
439
|
+
}
|
|
440
|
+
interface LinkProps extends Omit<AriaLinkProps, 'elementType'>, HoverEvents, SlotProps {
|
|
441
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
442
|
+
children?: RenderChildren<LinkRenderProps>;
|
|
443
|
+
/** The CSS className for the element. */
|
|
444
|
+
class?: ClassNameOrFunction<LinkRenderProps>;
|
|
445
|
+
/** The inline style for the element. */
|
|
446
|
+
style?: StyleOrFunction<LinkRenderProps>;
|
|
447
|
+
}
|
|
448
|
+
declare const LinkContext: solid_js.Context<LinkProps | null>;
|
|
449
|
+
/**
|
|
450
|
+
* A link allows a user to navigate to another page or resource within a web page
|
|
451
|
+
* or application.
|
|
452
|
+
*
|
|
453
|
+
* @example
|
|
454
|
+
* ```tsx
|
|
455
|
+
* <Link href="https://example.com">Visit Example</Link>
|
|
456
|
+
*
|
|
457
|
+
* // With render props
|
|
458
|
+
* <Link href="/about">
|
|
459
|
+
* {({ isHovered, isFocusVisible }) => (
|
|
460
|
+
* <span class={isHovered ? 'underline' : ''}>
|
|
461
|
+
* About Us
|
|
462
|
+
* </span>
|
|
463
|
+
* )}
|
|
464
|
+
* </Link>
|
|
465
|
+
* ```
|
|
466
|
+
*/
|
|
467
|
+
declare function Link(props: ParentProps<LinkProps>): JSX.Element;
|
|
468
|
+
|
|
469
|
+
interface ProgressBarRenderProps {
|
|
470
|
+
/** The value as a percentage between the minimum and maximum (0-100). */
|
|
471
|
+
percentage: number | undefined;
|
|
472
|
+
/** A formatted version of the value. */
|
|
473
|
+
valueText: string | undefined;
|
|
474
|
+
/** Whether the progress bar is indeterminate. */
|
|
475
|
+
isIndeterminate: boolean;
|
|
476
|
+
}
|
|
477
|
+
interface ProgressBarProps extends AriaProgressBarProps, SlotProps {
|
|
478
|
+
/** The children of the component. A function may be provided to receive render props. */
|
|
479
|
+
children?: RenderChildren<ProgressBarRenderProps>;
|
|
480
|
+
/** The CSS className for the element. */
|
|
481
|
+
class?: ClassNameOrFunction<ProgressBarRenderProps>;
|
|
482
|
+
/** The inline style for the element. */
|
|
483
|
+
style?: StyleOrFunction<ProgressBarRenderProps>;
|
|
484
|
+
}
|
|
485
|
+
declare const ProgressBarContext: solid_js.Context<ProgressBarProps | null>;
|
|
486
|
+
/**
|
|
487
|
+
* Progress bars show either determinate or indeterminate progress of an operation
|
|
488
|
+
* over time.
|
|
489
|
+
*
|
|
490
|
+
* @example
|
|
491
|
+
* ```tsx
|
|
492
|
+
* <ProgressBar value={50}>
|
|
493
|
+
* {({ percentage, valueText }) => (
|
|
494
|
+
* <>
|
|
495
|
+
* <Label>Loading...</Label>
|
|
496
|
+
* <span>{valueText}</span>
|
|
497
|
+
* <div class="bar" style={{ width: `${percentage}%` }} />
|
|
498
|
+
* </>
|
|
499
|
+
* )}
|
|
500
|
+
* </ProgressBar>
|
|
501
|
+
* ```
|
|
502
|
+
*/
|
|
503
|
+
declare function ProgressBar(props: ParentProps<ProgressBarProps>): JSX.Element;
|
|
504
|
+
|
|
505
|
+
interface SeparatorRenderProps {
|
|
506
|
+
/** The orientation of the separator. */
|
|
507
|
+
orientation: Orientation$1;
|
|
508
|
+
}
|
|
509
|
+
interface SeparatorProps extends AriaSeparatorProps, SlotProps {
|
|
510
|
+
/** The CSS className for the element. A function may be provided to receive render props. */
|
|
511
|
+
class?: string | ((renderProps: SeparatorRenderProps) => string);
|
|
512
|
+
/** The inline style for the element. A function may be provided to receive render props. */
|
|
513
|
+
style?: JSX.CSSProperties | ((renderProps: SeparatorRenderProps) => JSX.CSSProperties);
|
|
514
|
+
}
|
|
515
|
+
declare const SeparatorContext: solid_js.Context<SeparatorProps | null>;
|
|
516
|
+
/**
|
|
517
|
+
* A separator is a visual divider between two groups of content,
|
|
518
|
+
* e.g. groups of menu items or sections of a page.
|
|
519
|
+
*
|
|
520
|
+
* @example
|
|
521
|
+
* ```tsx
|
|
522
|
+
* <Separator />
|
|
523
|
+
*
|
|
524
|
+
* // Vertical separator
|
|
525
|
+
* <Separator orientation="vertical" />
|
|
526
|
+
*
|
|
527
|
+
* // Custom element type
|
|
528
|
+
* <Separator elementType="div" />
|
|
529
|
+
* ```
|
|
530
|
+
*/
|
|
531
|
+
declare function Separator(props: SeparatorProps): JSX.Element;
|
|
532
|
+
|
|
533
|
+
export { Button, ButtonContext, type ButtonProps, type ButtonRenderProps, Checkbox, CheckboxContext, CheckboxGroup, CheckboxGroupContext, type CheckboxGroupProps, type CheckboxGroupRenderProps, CheckboxGroupStateContext, type CheckboxProps, type CheckboxRenderProps, type ClassNameOrFunction, Input, type InputProps, Label, type LabelProps, Link, LinkContext, type LinkProps, type LinkRenderProps, type Orientation, ProgressBar, ProgressBarContext, type ProgressBarProps, type ProgressBarRenderProps, Radio, RadioContext, RadioGroup, RadioGroupContext, type RadioGroupProps, type RadioGroupRenderProps, RadioGroupStateContext, type RadioProps, type RadioRenderProps, type RenderChildren, type RenderPropsBase, Separator, SeparatorContext, type SeparatorProps, type SeparatorRenderProps, type SlotProps, type StyleOrFunction, TextArea, type TextAreaProps, TextField, TextFieldContext, type TextFieldContextValue, type TextFieldProps, type TextFieldRenderProps, ToggleSwitch, ToggleSwitchContext, type ToggleSwitchProps, type ToggleSwitchRenderProps, VisuallyHidden, type VisuallyHiddenProps, createDataAttributes, dataAttr, filterDOMProps, removeDataAttributes, useRenderProps };
|