@vinyasa/form 1.0.22
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/README.md +188 -0
- package/dist/cjs/autocomplete.cjs +344 -0
- package/dist/cjs/autocomplete.css +308 -0
- package/dist/cjs/checkbox.cjs +299 -0
- package/dist/cjs/checkbox.css +175 -0
- package/dist/cjs/color-picker.cjs +363 -0
- package/dist/cjs/color-picker.css +248 -0
- package/dist/cjs/combobox.cjs +394 -0
- package/dist/cjs/combobox.css +308 -0
- package/dist/cjs/date-picker.cjs +357 -0
- package/dist/cjs/date-picker.css +295 -0
- package/dist/cjs/dropzone.cjs +438 -0
- package/dist/cjs/dropzone.css +293 -0
- package/dist/cjs/file-upload.cjs +428 -0
- package/dist/cjs/file-upload.css +250 -0
- package/dist/cjs/icon-button.cjs +183 -0
- package/dist/cjs/index.cjs +3780 -0
- package/dist/cjs/index.css +1229 -0
- package/dist/cjs/input.cjs +340 -0
- package/dist/cjs/input.css +139 -0
- package/dist/cjs/multi-select.cjs +436 -0
- package/dist/cjs/multi-select.css +308 -0
- package/dist/cjs/number-input.cjs +458 -0
- package/dist/cjs/number-input.css +250 -0
- package/dist/cjs/otp-input.cjs +355 -0
- package/dist/cjs/otp-input.css +194 -0
- package/dist/cjs/password-input.cjs +368 -0
- package/dist/cjs/password-input.css +139 -0
- package/dist/cjs/radio-group.cjs +301 -0
- package/dist/cjs/radio-group.css +181 -0
- package/dist/cjs/range-slider.cjs +276 -0
- package/dist/cjs/range-slider.css +46 -0
- package/dist/cjs/rich-text-editor.cjs +570 -0
- package/dist/cjs/rich-text-editor.css +213 -0
- package/dist/cjs/search-input.cjs +380 -0
- package/dist/cjs/search-input.css +139 -0
- package/dist/cjs/select.cjs +407 -0
- package/dist/cjs/select.css +213 -0
- package/dist/cjs/slider.cjs +188 -0
- package/dist/cjs/slider.css +46 -0
- package/dist/cjs/switch.cjs +294 -0
- package/dist/cjs/switch.css +183 -0
- package/dist/cjs/tags-input.cjs +348 -0
- package/dist/cjs/tags-input.css +328 -0
- package/dist/cjs/textarea.cjs +361 -0
- package/dist/cjs/textarea.css +139 -0
- package/dist/cjs/time-picker.cjs +408 -0
- package/dist/cjs/time-picker.css +308 -0
- package/dist/cjs/toggle-button.cjs +172 -0
- package/dist/esm/27.css +46 -0
- package/dist/esm/27.js +38 -0
- package/dist/esm/2942.css +111 -0
- package/dist/esm/2942.js +13 -0
- package/dist/esm/2995.css +135 -0
- package/dist/esm/2995.js +117 -0
- package/dist/esm/3876.js +27 -0
- package/dist/esm/4557.js +39 -0
- package/dist/esm/6720.css +164 -0
- package/dist/esm/6720.js +19 -0
- package/dist/esm/autocomplete.d.ts +2 -0
- package/dist/esm/autocomplete.js +95 -0
- package/dist/esm/checkbox.css +36 -0
- package/dist/esm/checkbox.d.ts +2 -0
- package/dist/esm/checkbox.js +38 -0
- package/dist/esm/color-picker.css +109 -0
- package/dist/esm/color-picker.d.ts +2 -0
- package/dist/esm/color-picker.js +130 -0
- package/dist/esm/combobox.d.ts +2 -0
- package/dist/esm/combobox.js +126 -0
- package/dist/esm/components/autocomplete/Autocomplete.d.ts +21 -0
- package/dist/esm/components/autocomplete/index.d.ts +3 -0
- package/dist/esm/components/checkbox/Checkbox.css.d.ts +2 -0
- package/dist/esm/components/checkbox/Checkbox.d.ts +7 -0
- package/dist/esm/components/checkbox/index.d.ts +3 -0
- package/dist/esm/components/color-picker/ColorPicker.css.d.ts +11 -0
- package/dist/esm/components/color-picker/ColorPicker.d.ts +28 -0
- package/dist/esm/components/color-picker/index.d.ts +3 -0
- package/dist/esm/components/combobox/Combobox.d.ts +34 -0
- package/dist/esm/components/combobox/index.d.ts +3 -0
- package/dist/esm/components/date-picker/DatePicker.css.d.ts +18 -0
- package/dist/esm/components/date-picker/DatePicker.d.ts +29 -0
- package/dist/esm/components/date-picker/index.d.ts +3 -0
- package/dist/esm/components/dropzone/Dropzone.css.d.ts +4 -0
- package/dist/esm/components/dropzone/Dropzone.d.ts +20 -0
- package/dist/esm/components/dropzone/index.d.ts +3 -0
- package/dist/esm/components/file-upload/FileUpload.css.d.ts +11 -0
- package/dist/esm/components/file-upload/FileUpload.d.ts +20 -0
- package/dist/esm/components/file-upload/index.d.ts +3 -0
- package/dist/esm/components/icon-button/IconButton.d.ts +8 -0
- package/dist/esm/components/icon-button/index.d.ts +3 -0
- package/dist/esm/components/input/Input.d.ts +11 -0
- package/dist/esm/components/input/index.d.ts +3 -0
- package/dist/esm/components/multi-select/MultiSelect.d.ts +35 -0
- package/dist/esm/components/multi-select/index.d.ts +3 -0
- package/dist/esm/components/number-input/NumberInput.css.d.ts +51 -0
- package/dist/esm/components/number-input/NumberInput.d.ts +13 -0
- package/dist/esm/components/number-input/index.d.ts +3 -0
- package/dist/esm/components/otp-input/OtpInput.css.d.ts +6 -0
- package/dist/esm/components/otp-input/OtpInput.d.ts +16 -0
- package/dist/esm/components/otp-input/index.d.ts +3 -0
- package/dist/esm/components/password-input/PasswordInput.d.ts +11 -0
- package/dist/esm/components/password-input/index.d.ts +3 -0
- package/dist/esm/components/radio-group/RadioGroup.css.d.ts +3 -0
- package/dist/esm/components/radio-group/RadioGroup.d.ts +12 -0
- package/dist/esm/components/radio-group/index.d.ts +3 -0
- package/dist/esm/components/range-slider/RangeSlider.d.ts +11 -0
- package/dist/esm/components/range-slider/index.d.ts +3 -0
- package/dist/esm/components/rich-text-editor/RichTextEditor.css.d.ts +5 -0
- package/dist/esm/components/rich-text-editor/RichTextEditor.d.ts +18 -0
- package/dist/esm/components/rich-text-editor/index.d.ts +3 -0
- package/dist/esm/components/search-input/SearchInput.d.ts +13 -0
- package/dist/esm/components/search-input/index.d.ts +3 -0
- package/dist/esm/components/select/Select.css.d.ts +8 -0
- package/dist/esm/components/select/Select.d.ts +29 -0
- package/dist/esm/components/select/index.d.ts +3 -0
- package/dist/esm/components/slider/Slider.css.d.ts +4 -0
- package/dist/esm/components/slider/Slider.d.ts +12 -0
- package/dist/esm/components/slider/index.d.ts +3 -0
- package/dist/esm/components/switch/Switch.css.d.ts +2 -0
- package/dist/esm/components/switch/Switch.d.ts +7 -0
- package/dist/esm/components/switch/index.d.ts +3 -0
- package/dist/esm/components/tags-input/TagsInput.css.d.ts +1 -0
- package/dist/esm/components/tags-input/TagsInput.d.ts +18 -0
- package/dist/esm/components/tags-input/index.d.ts +3 -0
- package/dist/esm/components/textarea/Textarea.d.ts +13 -0
- package/dist/esm/components/textarea/index.d.ts +3 -0
- package/dist/esm/components/time-picker/TimePicker.d.ts +32 -0
- package/dist/esm/components/time-picker/index.d.ts +3 -0
- package/dist/esm/components/toggle-button/ToggleButton.d.ts +12 -0
- package/dist/esm/components/toggle-button/index.d.ts +3 -0
- package/dist/esm/date-picker.css +153 -0
- package/dist/esm/date-picker.d.ts +2 -0
- package/dist/esm/date-picker.js +118 -0
- package/dist/esm/dropzone.css +43 -0
- package/dist/esm/dropzone.d.ts +2 -0
- package/dist/esm/dropzone.js +137 -0
- package/dist/esm/field.css.d.ts +33 -0
- package/dist/esm/field.d.ts +24 -0
- package/dist/esm/file-upload.d.ts +2 -0
- package/dist/esm/file-upload.js +123 -0
- package/dist/esm/icon-button.d.ts +2 -0
- package/dist/esm/icon-button.js +29 -0
- package/dist/esm/index.d.ts +24 -0
- package/dist/esm/index.js +24 -0
- package/dist/esm/input.d.ts +2 -0
- package/dist/esm/input.js +39 -0
- package/dist/esm/multi-select.d.ts +2 -0
- package/dist/esm/multi-select.js +164 -0
- package/dist/esm/number-input.css +107 -0
- package/dist/esm/number-input.d.ts +2 -0
- package/dist/esm/number-input.js +153 -0
- package/dist/esm/otp-input.css +55 -0
- package/dist/esm/otp-input.d.ts +2 -0
- package/dist/esm/otp-input.js +56 -0
- package/dist/esm/password-input.d.ts +2 -0
- package/dist/esm/password-input.js +56 -0
- package/dist/esm/radio-group.css +42 -0
- package/dist/esm/radio-group.d.ts +2 -0
- package/dist/esm/radio-group.js +44 -0
- package/dist/esm/range-slider.d.ts +2 -0
- package/dist/esm/range-slider.js +22 -0
- package/dist/esm/rich-text-editor.css +74 -0
- package/dist/esm/rich-text-editor.d.ts +2 -0
- package/dist/esm/rich-text-editor.js +212 -0
- package/dist/esm/search-input.d.ts +2 -0
- package/dist/esm/search-input.js +62 -0
- package/dist/esm/select.css +73 -0
- package/dist/esm/select.d.ts +2 -0
- package/dist/esm/select.js +87 -0
- package/dist/esm/selectPopover.css.d.ts +17 -0
- package/dist/esm/slider.d.ts +2 -0
- package/dist/esm/slider.js +4 -0
- package/dist/esm/switch.css +44 -0
- package/dist/esm/switch.d.ts +2 -0
- package/dist/esm/switch.js +36 -0
- package/dist/esm/tags-input.css +16 -0
- package/dist/esm/tags-input.d.ts +2 -0
- package/dist/esm/tags-input.js +100 -0
- package/dist/esm/textarea.d.ts +2 -0
- package/dist/esm/textarea.js +58 -0
- package/dist/esm/time-picker.d.ts +2 -0
- package/dist/esm/time-picker.js +137 -0
- package/dist/esm/toggle-button.d.ts +2 -0
- package/dist/esm/toggle-button.js +4 -0
- package/package.json +255 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface MultiSelectOption {
|
|
3
|
+
value: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface MultiSelectProps {
|
|
8
|
+
options: MultiSelectOption[];
|
|
9
|
+
value?: string[];
|
|
10
|
+
defaultValue?: string[];
|
|
11
|
+
onValueChange?: (value: string[]) => void;
|
|
12
|
+
placeholder?: string;
|
|
13
|
+
label?: ReactNode;
|
|
14
|
+
description?: ReactNode;
|
|
15
|
+
error?: ReactNode;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
size?: 'sm' | 'md' | 'lg';
|
|
18
|
+
emptyMessage?: ReactNode;
|
|
19
|
+
/** Caps how many selected-item chips render before collapsing the rest into a "+n" badge. Defaults to 2. */
|
|
20
|
+
maxVisibleChips?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Replaces the built-in chip-row trigger entirely — passed straight
|
|
23
|
+
* through to Popover.Trigger's `asChild`, so it keeps the same open/close
|
|
24
|
+
* click and keyboard wiring. The element is responsible for its own
|
|
25
|
+
* styling, accessibility attributes, and displaying the current
|
|
26
|
+
* selection (the built-in per-chip remove buttons don't come with it).
|
|
27
|
+
*/
|
|
28
|
+
trigger?: ReactNode;
|
|
29
|
+
id?: string;
|
|
30
|
+
}
|
|
31
|
+
declare const MultiSelect: {
|
|
32
|
+
({ options, value, defaultValue, onValueChange, placeholder, label, description, error, required, size, emptyMessage, maxVisibleChips, trigger, id: idProp, }: MultiSelectProps): import("react").JSX.Element;
|
|
33
|
+
displayName: string;
|
|
34
|
+
};
|
|
35
|
+
export default MultiSelect;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare const group: import("@vanilla-extract/recipes").RuntimeFn<{
|
|
2
|
+
size: {
|
|
3
|
+
sm: {
|
|
4
|
+
fontSize: `var(--${string})`;
|
|
5
|
+
};
|
|
6
|
+
md: {
|
|
7
|
+
fontSize: `var(--${string})`;
|
|
8
|
+
};
|
|
9
|
+
lg: {
|
|
10
|
+
fontSize: `var(--${string})`;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
invalid: {
|
|
14
|
+
true: {
|
|
15
|
+
borderColor: `var(--${string})`;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
disabled: {
|
|
19
|
+
true: {
|
|
20
|
+
opacity: `var(--${string})`;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}>;
|
|
24
|
+
export declare const groupButton: import("@vanilla-extract/recipes").RuntimeFn<{
|
|
25
|
+
size: {
|
|
26
|
+
sm: {
|
|
27
|
+
width: "1.75rem";
|
|
28
|
+
};
|
|
29
|
+
md: {
|
|
30
|
+
width: "2rem";
|
|
31
|
+
};
|
|
32
|
+
lg: {
|
|
33
|
+
width: "2.25rem";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}>;
|
|
37
|
+
export declare const groupButtonLeading: string;
|
|
38
|
+
export declare const groupButtonTrailing: string;
|
|
39
|
+
export declare const groupInput: import("@vanilla-extract/recipes").RuntimeFn<{
|
|
40
|
+
size: {
|
|
41
|
+
sm: {
|
|
42
|
+
padding: `var(--${string}) 0`;
|
|
43
|
+
};
|
|
44
|
+
md: {
|
|
45
|
+
padding: `var(--${string}) 0`;
|
|
46
|
+
};
|
|
47
|
+
lg: {
|
|
48
|
+
padding: `var(--${string}) 0`;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export type NumberInputSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface NumberInputProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type'> {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
error?: ReactNode;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
size?: NumberInputSize;
|
|
9
|
+
/** Shows +/- stepper buttons that call the native stepUp/stepDown. Defaults to true. */
|
|
10
|
+
showSteppers?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const NumberInput: import("react").ForwardRefExoticComponent<NumberInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
13
|
+
export default NumberInput;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface OtpInputProps {
|
|
3
|
+
label?: ReactNode;
|
|
4
|
+
description?: ReactNode;
|
|
5
|
+
error?: ReactNode;
|
|
6
|
+
/** Number of digit slots. Defaults to 6. */
|
|
7
|
+
length?: number;
|
|
8
|
+
value?: string;
|
|
9
|
+
defaultValue?: string;
|
|
10
|
+
onChange?: (value: string) => void;
|
|
11
|
+
onComplete?: (value: string) => void;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
id?: string;
|
|
14
|
+
}
|
|
15
|
+
declare const OtpInput: import("react").ForwardRefExoticComponent<OtpInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
16
|
+
export default OtpInput;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export type PasswordInputSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface PasswordInputProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type'> {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
error?: ReactNode;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
size?: PasswordInputSize;
|
|
9
|
+
}
|
|
10
|
+
declare const PasswordInput: import("react").ForwardRefExoticComponent<PasswordInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
11
|
+
export default PasswordInput;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as RadixRadioGroup from '@radix-ui/react-radio-group';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
export interface RadioOption {
|
|
4
|
+
value: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface RadioGroupProps extends Omit<RadixRadioGroup.RadioGroupProps, 'children'> {
|
|
9
|
+
options: RadioOption[];
|
|
10
|
+
}
|
|
11
|
+
declare const RadioGroup: import("react").ForwardRefExoticComponent<RadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
|
+
export default RadioGroup;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type SliderProps } from '../slider/Slider';
|
|
2
|
+
export interface RangeSliderProps extends Omit<SliderProps, 'value' | 'defaultValue' | 'label' | 'minStepsBetweenThumbs'> {
|
|
3
|
+
value?: [number, number];
|
|
4
|
+
defaultValue?: [number, number];
|
|
5
|
+
minLabel?: string;
|
|
6
|
+
maxLabel?: string;
|
|
7
|
+
/** Minimum gap, in steps, enforced between the two thumbs. Defaults to 1. */
|
|
8
|
+
minStepsBetweenThumbs?: number;
|
|
9
|
+
}
|
|
10
|
+
declare const RangeSlider: import("react").ForwardRefExoticComponent<RangeSliderProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
11
|
+
export default RangeSlider;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface RichTextEditorProps {
|
|
3
|
+
/** HTML content. */
|
|
4
|
+
value?: string;
|
|
5
|
+
defaultValue?: string;
|
|
6
|
+
onValueChange?: (html: string) => void;
|
|
7
|
+
label?: ReactNode;
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
error?: ReactNode;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
id?: string;
|
|
13
|
+
}
|
|
14
|
+
declare const RichTextEditor: {
|
|
15
|
+
({ value, defaultValue, onValueChange, label, description, error, required, disabled, id: idProp, }: RichTextEditorProps): import("react").JSX.Element | null;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
export default RichTextEditor;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export type SearchInputSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface SearchInputProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'type'> {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
error?: ReactNode;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
size?: SearchInputSize;
|
|
9
|
+
/** Shows a clear button once there's a value; omit to hide it entirely. */
|
|
10
|
+
onClear?: () => void;
|
|
11
|
+
}
|
|
12
|
+
declare const SearchInput: import("react").ForwardRefExoticComponent<SearchInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
13
|
+
export default SearchInput;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const trigger: string;
|
|
2
|
+
export declare const placeholder: string;
|
|
3
|
+
export declare const triggerText: string;
|
|
4
|
+
export declare const icon: string;
|
|
5
|
+
export declare const content: string;
|
|
6
|
+
export declare const viewport: string;
|
|
7
|
+
export declare const item: string;
|
|
8
|
+
export declare const itemIndicator: string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as RadixSelect from '@radix-ui/react-select';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
export interface SelectOption {
|
|
4
|
+
value: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface SelectProps extends Omit<RadixSelect.SelectProps, 'children'> {
|
|
9
|
+
options: SelectOption[];
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
label?: ReactNode;
|
|
12
|
+
description?: ReactNode;
|
|
13
|
+
error?: ReactNode;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
size?: 'sm' | 'md' | 'lg';
|
|
16
|
+
/**
|
|
17
|
+
* Replaces the built-in trigger button entirely — passed straight through
|
|
18
|
+
* to Select.Trigger's `asChild`, so it keeps the same open/close click
|
|
19
|
+
* and keyboard wiring. A custom trigger loses `RadixSelect.Value`'s
|
|
20
|
+
* automatic selected-item display; import `@radix-ui/react-select`
|
|
21
|
+
* directly to compose `Select.Value`/`Select.Icon` inside it if needed.
|
|
22
|
+
*/
|
|
23
|
+
trigger?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
declare const Select: {
|
|
26
|
+
({ options, placeholder: placeholderText, label, description, error, required, size, trigger, ...rest }: SelectProps): import("react").JSX.Element;
|
|
27
|
+
displayName: string;
|
|
28
|
+
};
|
|
29
|
+
export default Select;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as RadixSlider from '@radix-ui/react-slider';
|
|
2
|
+
export interface SliderProps extends Omit<RadixSlider.SliderProps, 'defaultValue'> {
|
|
3
|
+
/**
|
|
4
|
+
* Accessible name for each thumb. A single string is reused for every
|
|
5
|
+
* thumb; an array assigns one label per thumb by index (used by
|
|
6
|
+
* RangeSlider for distinct "Minimum"/"Maximum" labels).
|
|
7
|
+
*/
|
|
8
|
+
label?: string | string[];
|
|
9
|
+
defaultValue?: number[];
|
|
10
|
+
}
|
|
11
|
+
declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
12
|
+
export default Slider;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as RadixSwitch from '@radix-ui/react-switch';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
export interface SwitchProps extends RadixSwitch.SwitchProps {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export default Switch;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const tagInput: string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface TagsInputProps {
|
|
3
|
+
value?: string[];
|
|
4
|
+
defaultValue?: string[];
|
|
5
|
+
onValueChange?: (value: string[]) => void;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
label?: ReactNode;
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
error?: ReactNode;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
size?: 'sm' | 'md' | 'lg';
|
|
12
|
+
/** Rejects further tags once this many are present. */
|
|
13
|
+
max?: number;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
id?: string;
|
|
16
|
+
}
|
|
17
|
+
declare const TagsInput: import("react").ForwardRefExoticComponent<TagsInputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
18
|
+
export default TagsInput;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
export type TextareaSize = 'sm' | 'md' | 'lg';
|
|
3
|
+
export interface TextareaProps extends Omit<ComponentPropsWithoutRef<'textarea'>, 'size'> {
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
description?: ReactNode;
|
|
6
|
+
error?: ReactNode;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
size?: TextareaSize;
|
|
9
|
+
/** Grows the textarea's height to fit its content instead of scrolling. */
|
|
10
|
+
autoResize?: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
13
|
+
export default Textarea;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface TimePickerProps {
|
|
3
|
+
/** 24-hour "HH:mm", matching a native `<input type="time">`'s own value format. */
|
|
4
|
+
value?: string;
|
|
5
|
+
defaultValue?: string;
|
|
6
|
+
onValueChange?: (time: string) => void;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
/** date-fns format string for the trigger's display text. Defaults to 'h:mm a' (e.g. "2:30 PM"). */
|
|
9
|
+
timeFormat?: string;
|
|
10
|
+
/** Interval, in minutes, between generated time options spanning the day. Defaults to 30. */
|
|
11
|
+
stepMinutes?: number;
|
|
12
|
+
label?: ReactNode;
|
|
13
|
+
description?: ReactNode;
|
|
14
|
+
error?: ReactNode;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
size?: 'sm' | 'md' | 'lg';
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Replaces the built-in trigger button entirely — passed straight through
|
|
20
|
+
* to Popover.Trigger's `asChild`, so it keeps the same open/close click
|
|
21
|
+
* and keyboard wiring. The element is responsible for its own styling and
|
|
22
|
+
* accessibility attributes (id, aria-describedby, disabled) since those
|
|
23
|
+
* aren't applied automatically the way they are to the default button.
|
|
24
|
+
*/
|
|
25
|
+
trigger?: ReactNode;
|
|
26
|
+
id?: string;
|
|
27
|
+
}
|
|
28
|
+
declare const TimePicker: {
|
|
29
|
+
({ value, defaultValue, onValueChange, placeholder, timeFormat, stepMinutes, label, description, error, required, size, disabled, trigger, id: idProp, }: TimePickerProps): import("react").JSX.Element;
|
|
30
|
+
displayName: string;
|
|
31
|
+
};
|
|
32
|
+
export default TimePicker;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ButtonProps, type ButtonVariant } from '@vinyasa/button';
|
|
2
|
+
export interface ToggleButtonProps extends Omit<ButtonProps, 'variant'> {
|
|
3
|
+
pressed?: boolean;
|
|
4
|
+
defaultPressed?: boolean;
|
|
5
|
+
onPressedChange?: (pressed: boolean) => void;
|
|
6
|
+
/** Button variant while pressed. Defaults to 'primary'. */
|
|
7
|
+
pressedVariant?: ButtonVariant;
|
|
8
|
+
/** Button variant while not pressed. Defaults to 'outline'. */
|
|
9
|
+
unpressedVariant?: ButtonVariant;
|
|
10
|
+
}
|
|
11
|
+
declare const ToggleButton: import("react").ForwardRefExoticComponent<ToggleButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
12
|
+
export default ToggleButton;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
._4znv390 {
|
|
2
|
+
z-index: var(--vinyasa-z-index-dropdown);
|
|
3
|
+
padding: var(--vinyasa-space3);
|
|
4
|
+
background-color: var(--vinyasa-surface);
|
|
5
|
+
border: var(--vinyasa-border-width-thin) solid var(--vinyasa-border-color-default);
|
|
6
|
+
border-radius: var(--vinyasa-radius-md);
|
|
7
|
+
box-shadow: var(--vinyasa-elevation-overlay);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
._4znv391 {
|
|
11
|
+
justify-content: space-between;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: var(--vinyasa-space2);
|
|
14
|
+
text-align: left;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
background-color: #0000;
|
|
17
|
+
width: 100%;
|
|
18
|
+
min-width: 10rem;
|
|
19
|
+
max-width: 20rem;
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
._4znv392 {
|
|
24
|
+
color: var(--vinyasa-text-muted);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
._4znv393 {
|
|
28
|
+
text-overflow: ellipsis;
|
|
29
|
+
white-space: nowrap;
|
|
30
|
+
flex: 1;
|
|
31
|
+
min-width: 0;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
._4znv394 {
|
|
36
|
+
color: var(--vinyasa-text-muted);
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
display: flex;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
._4znv395 {
|
|
42
|
+
font-family: var(--vinyasa-font-family-sans);
|
|
43
|
+
font-size: var(--vinyasa-font-size-sm);
|
|
44
|
+
color: var(--vinyasa-on-secondary);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
._4znv396 {
|
|
48
|
+
gap: var(--vinyasa-space4);
|
|
49
|
+
display: flex;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
._4znv397 {
|
|
53
|
+
position: relative;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
._4znv398 {
|
|
57
|
+
height: 2rem;
|
|
58
|
+
font-weight: var(--vinyasa-font-weight-semibold);
|
|
59
|
+
justify-content: center;
|
|
60
|
+
align-items: center;
|
|
61
|
+
display: flex;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
._4znv399 {
|
|
65
|
+
pointer-events: none;
|
|
66
|
+
justify-content: space-between;
|
|
67
|
+
align-items: center;
|
|
68
|
+
height: 2rem;
|
|
69
|
+
display: flex;
|
|
70
|
+
position: absolute;
|
|
71
|
+
inset: 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
._4znv39a {
|
|
75
|
+
border-radius: var(--vinyasa-radius-sm);
|
|
76
|
+
width: 1.75rem;
|
|
77
|
+
height: 1.75rem;
|
|
78
|
+
color: var(--vinyasa-on-secondary);
|
|
79
|
+
cursor: pointer;
|
|
80
|
+
pointer-events: auto;
|
|
81
|
+
background-color: #0000;
|
|
82
|
+
border: none;
|
|
83
|
+
justify-content: center;
|
|
84
|
+
align-items: center;
|
|
85
|
+
display: inline-flex;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
._4znv39a:hover {
|
|
89
|
+
background-color: var(--vinyasa-secondary);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
._4znv39a:focus-visible {
|
|
93
|
+
border-color: var(--vinyasa-focus);
|
|
94
|
+
box-shadow: 0 0 0 1px var(--vinyasa-focus), 0 0 0 4px color-mix(in srgb, var(--vinyasa-focus) 16%, transparent);
|
|
95
|
+
outline: none;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
._4znv39b {
|
|
99
|
+
width: 2rem;
|
|
100
|
+
font-size: var(--vinyasa-font-size-xs);
|
|
101
|
+
font-weight: var(--vinyasa-font-weight-medium);
|
|
102
|
+
color: var(--vinyasa-text-muted);
|
|
103
|
+
text-align: center;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
._4znv39c {
|
|
107
|
+
text-align: center;
|
|
108
|
+
padding: 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
._4znv39d {
|
|
112
|
+
border-radius: var(--vinyasa-radius-sm);
|
|
113
|
+
width: 2rem;
|
|
114
|
+
height: 2rem;
|
|
115
|
+
color: var(--vinyasa-on-secondary);
|
|
116
|
+
cursor: pointer;
|
|
117
|
+
background-color: #0000;
|
|
118
|
+
border: none;
|
|
119
|
+
justify-content: center;
|
|
120
|
+
align-items: center;
|
|
121
|
+
display: inline-flex;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
._4znv39d:hover {
|
|
125
|
+
background-color: var(--vinyasa-secondary);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
._4znv39d:focus-visible {
|
|
129
|
+
border-color: var(--vinyasa-focus);
|
|
130
|
+
box-shadow: 0 0 0 1px var(--vinyasa-focus), 0 0 0 4px color-mix(in srgb, var(--vinyasa-focus) 16%, transparent);
|
|
131
|
+
outline: none;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
._4znv39e {
|
|
135
|
+
box-shadow: inset 0 0 0 1.5px var(--vinyasa-primary);
|
|
136
|
+
font-weight: var(--vinyasa-font-weight-semibold);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
._4znv39f {
|
|
140
|
+
color: var(--vinyasa-text-muted);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
._4znv39g {
|
|
144
|
+
color: var(--vinyasa-text-muted);
|
|
145
|
+
opacity: var(--vinyasa-opacity-disabled);
|
|
146
|
+
cursor: not-allowed;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
._4znv39h, ._4znv39h:hover {
|
|
150
|
+
background-color: var(--vinyasa-primary);
|
|
151
|
+
color: var(--vinyasa-on-primary);
|
|
152
|
+
}
|
|
153
|
+
|