@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.
Files changed (185) hide show
  1. package/README.md +188 -0
  2. package/dist/cjs/autocomplete.cjs +344 -0
  3. package/dist/cjs/autocomplete.css +308 -0
  4. package/dist/cjs/checkbox.cjs +299 -0
  5. package/dist/cjs/checkbox.css +175 -0
  6. package/dist/cjs/color-picker.cjs +363 -0
  7. package/dist/cjs/color-picker.css +248 -0
  8. package/dist/cjs/combobox.cjs +394 -0
  9. package/dist/cjs/combobox.css +308 -0
  10. package/dist/cjs/date-picker.cjs +357 -0
  11. package/dist/cjs/date-picker.css +295 -0
  12. package/dist/cjs/dropzone.cjs +438 -0
  13. package/dist/cjs/dropzone.css +293 -0
  14. package/dist/cjs/file-upload.cjs +428 -0
  15. package/dist/cjs/file-upload.css +250 -0
  16. package/dist/cjs/icon-button.cjs +183 -0
  17. package/dist/cjs/index.cjs +3780 -0
  18. package/dist/cjs/index.css +1229 -0
  19. package/dist/cjs/input.cjs +340 -0
  20. package/dist/cjs/input.css +139 -0
  21. package/dist/cjs/multi-select.cjs +436 -0
  22. package/dist/cjs/multi-select.css +308 -0
  23. package/dist/cjs/number-input.cjs +458 -0
  24. package/dist/cjs/number-input.css +250 -0
  25. package/dist/cjs/otp-input.cjs +355 -0
  26. package/dist/cjs/otp-input.css +194 -0
  27. package/dist/cjs/password-input.cjs +368 -0
  28. package/dist/cjs/password-input.css +139 -0
  29. package/dist/cjs/radio-group.cjs +301 -0
  30. package/dist/cjs/radio-group.css +181 -0
  31. package/dist/cjs/range-slider.cjs +276 -0
  32. package/dist/cjs/range-slider.css +46 -0
  33. package/dist/cjs/rich-text-editor.cjs +570 -0
  34. package/dist/cjs/rich-text-editor.css +213 -0
  35. package/dist/cjs/search-input.cjs +380 -0
  36. package/dist/cjs/search-input.css +139 -0
  37. package/dist/cjs/select.cjs +407 -0
  38. package/dist/cjs/select.css +213 -0
  39. package/dist/cjs/slider.cjs +188 -0
  40. package/dist/cjs/slider.css +46 -0
  41. package/dist/cjs/switch.cjs +294 -0
  42. package/dist/cjs/switch.css +183 -0
  43. package/dist/cjs/tags-input.cjs +348 -0
  44. package/dist/cjs/tags-input.css +328 -0
  45. package/dist/cjs/textarea.cjs +361 -0
  46. package/dist/cjs/textarea.css +139 -0
  47. package/dist/cjs/time-picker.cjs +408 -0
  48. package/dist/cjs/time-picker.css +308 -0
  49. package/dist/cjs/toggle-button.cjs +172 -0
  50. package/dist/esm/27.css +46 -0
  51. package/dist/esm/27.js +38 -0
  52. package/dist/esm/2942.css +111 -0
  53. package/dist/esm/2942.js +13 -0
  54. package/dist/esm/2995.css +135 -0
  55. package/dist/esm/2995.js +117 -0
  56. package/dist/esm/3876.js +27 -0
  57. package/dist/esm/4557.js +39 -0
  58. package/dist/esm/6720.css +164 -0
  59. package/dist/esm/6720.js +19 -0
  60. package/dist/esm/autocomplete.d.ts +2 -0
  61. package/dist/esm/autocomplete.js +95 -0
  62. package/dist/esm/checkbox.css +36 -0
  63. package/dist/esm/checkbox.d.ts +2 -0
  64. package/dist/esm/checkbox.js +38 -0
  65. package/dist/esm/color-picker.css +109 -0
  66. package/dist/esm/color-picker.d.ts +2 -0
  67. package/dist/esm/color-picker.js +130 -0
  68. package/dist/esm/combobox.d.ts +2 -0
  69. package/dist/esm/combobox.js +126 -0
  70. package/dist/esm/components/autocomplete/Autocomplete.d.ts +21 -0
  71. package/dist/esm/components/autocomplete/index.d.ts +3 -0
  72. package/dist/esm/components/checkbox/Checkbox.css.d.ts +2 -0
  73. package/dist/esm/components/checkbox/Checkbox.d.ts +7 -0
  74. package/dist/esm/components/checkbox/index.d.ts +3 -0
  75. package/dist/esm/components/color-picker/ColorPicker.css.d.ts +11 -0
  76. package/dist/esm/components/color-picker/ColorPicker.d.ts +28 -0
  77. package/dist/esm/components/color-picker/index.d.ts +3 -0
  78. package/dist/esm/components/combobox/Combobox.d.ts +34 -0
  79. package/dist/esm/components/combobox/index.d.ts +3 -0
  80. package/dist/esm/components/date-picker/DatePicker.css.d.ts +18 -0
  81. package/dist/esm/components/date-picker/DatePicker.d.ts +29 -0
  82. package/dist/esm/components/date-picker/index.d.ts +3 -0
  83. package/dist/esm/components/dropzone/Dropzone.css.d.ts +4 -0
  84. package/dist/esm/components/dropzone/Dropzone.d.ts +20 -0
  85. package/dist/esm/components/dropzone/index.d.ts +3 -0
  86. package/dist/esm/components/file-upload/FileUpload.css.d.ts +11 -0
  87. package/dist/esm/components/file-upload/FileUpload.d.ts +20 -0
  88. package/dist/esm/components/file-upload/index.d.ts +3 -0
  89. package/dist/esm/components/icon-button/IconButton.d.ts +8 -0
  90. package/dist/esm/components/icon-button/index.d.ts +3 -0
  91. package/dist/esm/components/input/Input.d.ts +11 -0
  92. package/dist/esm/components/input/index.d.ts +3 -0
  93. package/dist/esm/components/multi-select/MultiSelect.d.ts +35 -0
  94. package/dist/esm/components/multi-select/index.d.ts +3 -0
  95. package/dist/esm/components/number-input/NumberInput.css.d.ts +51 -0
  96. package/dist/esm/components/number-input/NumberInput.d.ts +13 -0
  97. package/dist/esm/components/number-input/index.d.ts +3 -0
  98. package/dist/esm/components/otp-input/OtpInput.css.d.ts +6 -0
  99. package/dist/esm/components/otp-input/OtpInput.d.ts +16 -0
  100. package/dist/esm/components/otp-input/index.d.ts +3 -0
  101. package/dist/esm/components/password-input/PasswordInput.d.ts +11 -0
  102. package/dist/esm/components/password-input/index.d.ts +3 -0
  103. package/dist/esm/components/radio-group/RadioGroup.css.d.ts +3 -0
  104. package/dist/esm/components/radio-group/RadioGroup.d.ts +12 -0
  105. package/dist/esm/components/radio-group/index.d.ts +3 -0
  106. package/dist/esm/components/range-slider/RangeSlider.d.ts +11 -0
  107. package/dist/esm/components/range-slider/index.d.ts +3 -0
  108. package/dist/esm/components/rich-text-editor/RichTextEditor.css.d.ts +5 -0
  109. package/dist/esm/components/rich-text-editor/RichTextEditor.d.ts +18 -0
  110. package/dist/esm/components/rich-text-editor/index.d.ts +3 -0
  111. package/dist/esm/components/search-input/SearchInput.d.ts +13 -0
  112. package/dist/esm/components/search-input/index.d.ts +3 -0
  113. package/dist/esm/components/select/Select.css.d.ts +8 -0
  114. package/dist/esm/components/select/Select.d.ts +29 -0
  115. package/dist/esm/components/select/index.d.ts +3 -0
  116. package/dist/esm/components/slider/Slider.css.d.ts +4 -0
  117. package/dist/esm/components/slider/Slider.d.ts +12 -0
  118. package/dist/esm/components/slider/index.d.ts +3 -0
  119. package/dist/esm/components/switch/Switch.css.d.ts +2 -0
  120. package/dist/esm/components/switch/Switch.d.ts +7 -0
  121. package/dist/esm/components/switch/index.d.ts +3 -0
  122. package/dist/esm/components/tags-input/TagsInput.css.d.ts +1 -0
  123. package/dist/esm/components/tags-input/TagsInput.d.ts +18 -0
  124. package/dist/esm/components/tags-input/index.d.ts +3 -0
  125. package/dist/esm/components/textarea/Textarea.d.ts +13 -0
  126. package/dist/esm/components/textarea/index.d.ts +3 -0
  127. package/dist/esm/components/time-picker/TimePicker.d.ts +32 -0
  128. package/dist/esm/components/time-picker/index.d.ts +3 -0
  129. package/dist/esm/components/toggle-button/ToggleButton.d.ts +12 -0
  130. package/dist/esm/components/toggle-button/index.d.ts +3 -0
  131. package/dist/esm/date-picker.css +153 -0
  132. package/dist/esm/date-picker.d.ts +2 -0
  133. package/dist/esm/date-picker.js +118 -0
  134. package/dist/esm/dropzone.css +43 -0
  135. package/dist/esm/dropzone.d.ts +2 -0
  136. package/dist/esm/dropzone.js +137 -0
  137. package/dist/esm/field.css.d.ts +33 -0
  138. package/dist/esm/field.d.ts +24 -0
  139. package/dist/esm/file-upload.d.ts +2 -0
  140. package/dist/esm/file-upload.js +123 -0
  141. package/dist/esm/icon-button.d.ts +2 -0
  142. package/dist/esm/icon-button.js +29 -0
  143. package/dist/esm/index.d.ts +24 -0
  144. package/dist/esm/index.js +24 -0
  145. package/dist/esm/input.d.ts +2 -0
  146. package/dist/esm/input.js +39 -0
  147. package/dist/esm/multi-select.d.ts +2 -0
  148. package/dist/esm/multi-select.js +164 -0
  149. package/dist/esm/number-input.css +107 -0
  150. package/dist/esm/number-input.d.ts +2 -0
  151. package/dist/esm/number-input.js +153 -0
  152. package/dist/esm/otp-input.css +55 -0
  153. package/dist/esm/otp-input.d.ts +2 -0
  154. package/dist/esm/otp-input.js +56 -0
  155. package/dist/esm/password-input.d.ts +2 -0
  156. package/dist/esm/password-input.js +56 -0
  157. package/dist/esm/radio-group.css +42 -0
  158. package/dist/esm/radio-group.d.ts +2 -0
  159. package/dist/esm/radio-group.js +44 -0
  160. package/dist/esm/range-slider.d.ts +2 -0
  161. package/dist/esm/range-slider.js +22 -0
  162. package/dist/esm/rich-text-editor.css +74 -0
  163. package/dist/esm/rich-text-editor.d.ts +2 -0
  164. package/dist/esm/rich-text-editor.js +212 -0
  165. package/dist/esm/search-input.d.ts +2 -0
  166. package/dist/esm/search-input.js +62 -0
  167. package/dist/esm/select.css +73 -0
  168. package/dist/esm/select.d.ts +2 -0
  169. package/dist/esm/select.js +87 -0
  170. package/dist/esm/selectPopover.css.d.ts +17 -0
  171. package/dist/esm/slider.d.ts +2 -0
  172. package/dist/esm/slider.js +4 -0
  173. package/dist/esm/switch.css +44 -0
  174. package/dist/esm/switch.d.ts +2 -0
  175. package/dist/esm/switch.js +36 -0
  176. package/dist/esm/tags-input.css +16 -0
  177. package/dist/esm/tags-input.d.ts +2 -0
  178. package/dist/esm/tags-input.js +100 -0
  179. package/dist/esm/textarea.d.ts +2 -0
  180. package/dist/esm/textarea.js +58 -0
  181. package/dist/esm/time-picker.d.ts +2 -0
  182. package/dist/esm/time-picker.js +137 -0
  183. package/dist/esm/toggle-button.d.ts +2 -0
  184. package/dist/esm/toggle-button.js +4 -0
  185. 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,3 @@
1
+ import MultiSelect from './MultiSelect';
2
+ export default MultiSelect;
3
+ export type { MultiSelectOption, MultiSelectProps } from './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,3 @@
1
+ import NumberInput from './NumberInput';
2
+ export default NumberInput;
3
+ export type { NumberInputProps, NumberInputSize } from './NumberInput';
@@ -0,0 +1,6 @@
1
+ export declare const group: string;
2
+ export declare const groupDisabled: string;
3
+ export declare const slot: string;
4
+ export declare const slotActive: string;
5
+ export declare const slotInvalid: string;
6
+ export declare const fakeCaret: string;
@@ -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,3 @@
1
+ import OtpInput from './OtpInput';
2
+ export default OtpInput;
3
+ export type { OtpInputProps } from './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,3 @@
1
+ import PasswordInput from './PasswordInput';
2
+ export default PasswordInput;
3
+ export type { PasswordInputProps, PasswordInputSize } from './PasswordInput';
@@ -0,0 +1,3 @@
1
+ export declare const root: string;
2
+ export declare const item: string;
3
+ export declare const indicator: string;
@@ -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,3 @@
1
+ import RadioGroup from './RadioGroup';
2
+ export default RadioGroup;
3
+ export type { RadioGroupProps, RadioOption } from './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,3 @@
1
+ import RangeSlider from './RangeSlider';
2
+ export default RangeSlider;
3
+ export type { RangeSliderProps } from './RangeSlider';
@@ -0,0 +1,5 @@
1
+ export declare const wrapper: string;
2
+ export declare const wrapperInvalid: string;
3
+ export declare const toolbar: string;
4
+ export declare const divider: string;
5
+ export declare const content: string;
@@ -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,3 @@
1
+ import RichTextEditor from './RichTextEditor';
2
+ export default RichTextEditor;
3
+ export type { RichTextEditorProps } from './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,3 @@
1
+ import SearchInput from './SearchInput';
2
+ export default SearchInput;
3
+ export type { SearchInputProps, SearchInputSize } from './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,3 @@
1
+ import Select from './Select';
2
+ export default Select;
3
+ export type { SelectOption, SelectProps } from './Select';
@@ -0,0 +1,4 @@
1
+ export declare const root: string;
2
+ export declare const track: string;
3
+ export declare const range: string;
4
+ export declare const thumb: string;
@@ -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,3 @@
1
+ import Slider from './Slider';
2
+ export default Slider;
3
+ export type { SliderProps } from './Slider';
@@ -0,0 +1,2 @@
1
+ export declare const root: string;
2
+ export declare const thumb: string;
@@ -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,3 @@
1
+ import Switch from './Switch';
2
+ export default Switch;
3
+ export type { SwitchProps } from './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,3 @@
1
+ import TagsInput from './TagsInput';
2
+ export default TagsInput;
3
+ export type { TagsInputProps } from './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,3 @@
1
+ import Textarea from './Textarea';
2
+ export default Textarea;
3
+ export type { TextareaProps, TextareaSize } from './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,3 @@
1
+ import TimePicker from './TimePicker';
2
+ export default TimePicker;
3
+ export type { TimePickerProps } from './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,3 @@
1
+ import ToggleButton from './ToggleButton';
2
+ export default ToggleButton;
3
+ export type { ToggleButtonProps } from './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
+
@@ -0,0 +1,2 @@
1
+ export * from './components/date-picker/index';
2
+ export { default } from './components/date-picker/index';