@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 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
- * solidaria-components
3
- *
4
- * Pre-wired headless components for SolidJS.
5
- * Port of react-aria-components.
6
- *
7
- * These components combine state management + accessibility hooks into
8
- * ready-to-style components using the render props pattern and data attributes.
9
- */
10
- export { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type RenderPropsBase, type SlotProps, useRenderProps, filterDOMProps, removeDataAttributes, createDataAttributes, dataAttr, } from './utils';
11
- export { VisuallyHidden, type VisuallyHiddenProps, } from './VisuallyHidden';
12
- export { Button, ButtonContext, type ButtonProps, type ButtonRenderProps, } from './Button';
13
- export { ToggleSwitch, ToggleSwitchContext, type ToggleSwitchProps, type ToggleSwitchRenderProps, } from './Switch';
14
- export { Checkbox, CheckboxGroup, CheckboxContext, CheckboxGroupContext, CheckboxGroupStateContext, type CheckboxProps, type CheckboxRenderProps, type CheckboxGroupProps, type CheckboxGroupRenderProps, } from './Checkbox';
15
- export { Radio, RadioGroup, RadioContext, RadioGroupContext, RadioGroupStateContext, type RadioProps, type RadioRenderProps, type RadioGroupProps, type RadioGroupRenderProps, type Orientation, } from './RadioGroup';
16
- export { TextField, TextFieldContext, Label, Input, TextArea, type TextFieldProps, type TextFieldRenderProps, type TextFieldContextValue, type LabelProps, type InputProps, type TextAreaProps, } from './TextField';
17
- export { Link, LinkContext, type LinkProps, type LinkRenderProps, } from './Link';
18
- export { ProgressBar, ProgressBarContext, type ProgressBarProps, type ProgressBarRenderProps, } from './ProgressBar';
19
- export { Separator, SeparatorContext, type SeparatorProps, type SeparatorRenderProps, } from './Separator';
20
- //# sourceMappingURL=index.d.ts.map
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 };