@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,109 @@
1
+ ._1o9um0f0 {
2
+ align-items: center;
3
+ gap: var(--vinyasa-space2);
4
+ text-align: left;
5
+ cursor: pointer;
6
+ background-color: #0000;
7
+ width: 100%;
8
+ min-width: 10rem;
9
+ max-width: 20rem;
10
+ display: inline-flex;
11
+ }
12
+
13
+ ._1o9um0f1 {
14
+ text-overflow: ellipsis;
15
+ white-space: nowrap;
16
+ flex: 1;
17
+ min-width: 0;
18
+ overflow: hidden;
19
+ }
20
+
21
+ ._1o9um0f2 {
22
+ border-radius: var(--vinyasa-radius-sm);
23
+ border: var(--vinyasa-border-width-thin) solid var(--vinyasa-border-color-default);
24
+ flex-shrink: 0;
25
+ width: 1.25rem;
26
+ height: 1.25rem;
27
+ }
28
+
29
+ ._1o9um0f3 {
30
+ z-index: var(--vinyasa-z-index-dropdown);
31
+ gap: var(--vinyasa-space3);
32
+ padding: var(--vinyasa-space3);
33
+ background-color: var(--vinyasa-surface);
34
+ border: var(--vinyasa-border-width-thin) solid var(--vinyasa-border-color-default);
35
+ border-radius: var(--vinyasa-radius-md);
36
+ box-shadow: var(--vinyasa-elevation-overlay);
37
+ flex-direction: column;
38
+ display: flex;
39
+ }
40
+
41
+ ._1o9um0f4 {
42
+ border: var(--vinyasa-border-width-thin) solid var(--vinyasa-border-color-default);
43
+ border-radius: var(--vinyasa-radius-sm);
44
+ overflow: hidden;
45
+ }
46
+
47
+ ._1o9um0f5 {
48
+ width: 13.75rem;
49
+ }
50
+
51
+ ._1o9um0f5 .react-colorful {
52
+ width: 100%;
53
+ height: 11rem;
54
+ }
55
+
56
+ ._1o9um0f6 {
57
+ padding: var(--vinyasa-space1) var(--vinyasa-space2);
58
+ border-top: var(--vinyasa-border-width-thin) solid var(--vinyasa-border-color-default);
59
+ background-color: var(--vinyasa-surface);
60
+ align-items: center;
61
+ display: flex;
62
+ }
63
+
64
+ ._1o9um0f7 {
65
+ min-width: 0;
66
+ font-family: var(--vinyasa-font-family-mono);
67
+ font-size: var(--vinyasa-font-size-sm);
68
+ color: var(--vinyasa-on-secondary);
69
+ text-transform: uppercase;
70
+ background: none;
71
+ border: none;
72
+ outline: none;
73
+ flex: 1;
74
+ padding: 0;
75
+ }
76
+
77
+ ._1o9um0f8 {
78
+ font-size: var(--vinyasa-font-size-xs);
79
+ color: var(--vinyasa-text-muted);
80
+ margin-bottom: var(--vinyasa-space1);
81
+ }
82
+
83
+ ._1o9um0f9 {
84
+ gap: var(--vinyasa-space1);
85
+ flex-wrap: wrap;
86
+ display: flex;
87
+ }
88
+
89
+ ._1o9um0fa {
90
+ border-radius: var(--vinyasa-radius-sm);
91
+ border: var(--vinyasa-border-width-thin) solid var(--vinyasa-border-color-default);
92
+ cursor: pointer;
93
+ width: 1.5rem;
94
+ height: 1.5rem;
95
+ transition: transform var(--vinyasa-motion-duration-fast) var(--vinyasa-motion-easing-standard);
96
+ flex-shrink: 0;
97
+ padding: 0;
98
+ }
99
+
100
+ ._1o9um0fa:hover {
101
+ transform: scale(1.1);
102
+ }
103
+
104
+ ._1o9um0fa:focus-visible {
105
+ border-color: var(--vinyasa-focus);
106
+ box-shadow: 0 0 0 1px var(--vinyasa-focus), 0 0 0 4px color-mix(in srgb, var(--vinyasa-focus) 16%, transparent);
107
+ outline: none;
108
+ }
109
+
@@ -0,0 +1,2 @@
1
+ export * from './components/color-picker/index';
2
+ export { default } from './components/color-picker/index';
@@ -0,0 +1,130 @@
1
+ import "./color-picker.css";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useId, useState } from "react";
4
+ import { HexColorInput, HexColorPicker } from "react-colorful";
5
+ import { field, describedByIds } from "./4557.js";
6
+ import { fieldControl } from "./2995.js";
7
+ import * as __rspack_external__radix_ui_react_popover_e2827c9f from "@radix-ui/react-popover";
8
+ var content = '_1o9um0f3';
9
+ var hexInput = '_1o9um0f7';
10
+ var hexRow = '_1o9um0f6';
11
+ var pickerCard = '_1o9um0f4';
12
+ var pickerWrapper = '_1o9um0f5';
13
+ var presetSwatch = '_1o9um0fa';
14
+ var presetsLabel = '_1o9um0f8';
15
+ var presetsRow = '_1o9um0f9';
16
+ var swatch = '_1o9um0f2';
17
+ var ColorPicker_css_trigger = '_1o9um0f0';
18
+ var triggerText = '_1o9um0f1';
19
+ const ColorPicker = ({ value, defaultValue = '#4f46e5', onValueChange, label, description, error, required, size, disabled, presets, trigger, id: idProp })=>{
20
+ const [internalValue, setInternalValue] = useState(defaultValue);
21
+ const isControlled = void 0 !== value;
22
+ const currentValue = isControlled ? value : internalValue;
23
+ const [open, setOpen] = useState(false);
24
+ const generatedId = useId();
25
+ const id = idProp ?? generatedId;
26
+ const setValue = (next)=>{
27
+ if (!isControlled) setInternalValue(next);
28
+ onValueChange?.(next);
29
+ };
30
+ return /*#__PURE__*/ jsx(field, {
31
+ id: id,
32
+ label: label,
33
+ description: description,
34
+ error: error,
35
+ required: required,
36
+ children: /*#__PURE__*/ jsxs(__rspack_external__radix_ui_react_popover_e2827c9f.Root, {
37
+ open: open,
38
+ onOpenChange: setOpen,
39
+ children: [
40
+ /*#__PURE__*/ jsx(__rspack_external__radix_ui_react_popover_e2827c9f.Trigger, {
41
+ asChild: true,
42
+ children: trigger ?? /*#__PURE__*/ jsxs("button", {
43
+ type: "button",
44
+ id: id,
45
+ disabled: disabled,
46
+ className: `${fieldControl({
47
+ size,
48
+ invalid: Boolean(error)
49
+ })} ${ColorPicker_css_trigger}`,
50
+ "aria-describedby": describedByIds(id, {
51
+ description,
52
+ error
53
+ }),
54
+ children: [
55
+ /*#__PURE__*/ jsx("span", {
56
+ className: swatch,
57
+ style: {
58
+ backgroundColor: currentValue
59
+ },
60
+ "aria-hidden": "true"
61
+ }),
62
+ /*#__PURE__*/ jsx("span", {
63
+ className: triggerText,
64
+ children: currentValue.toUpperCase()
65
+ })
66
+ ]
67
+ })
68
+ }),
69
+ /*#__PURE__*/ jsxs(__rspack_external__radix_ui_react_popover_e2827c9f.Content, {
70
+ className: content,
71
+ align: "start",
72
+ sideOffset: 4,
73
+ onOpenAutoFocus: (event)=>{
74
+ event.preventDefault();
75
+ },
76
+ children: [
77
+ /*#__PURE__*/ jsxs("div", {
78
+ className: pickerCard,
79
+ children: [
80
+ /*#__PURE__*/ jsx("div", {
81
+ className: pickerWrapper,
82
+ children: /*#__PURE__*/ jsx(HexColorPicker, {
83
+ color: currentValue,
84
+ onChange: setValue
85
+ })
86
+ }),
87
+ /*#__PURE__*/ jsx("div", {
88
+ className: hexRow,
89
+ children: /*#__PURE__*/ jsx(HexColorInput, {
90
+ color: currentValue,
91
+ onChange: setValue,
92
+ prefixed: true,
93
+ className: hexInput
94
+ })
95
+ })
96
+ ]
97
+ }),
98
+ presets && presets.length > 0 ? /*#__PURE__*/ jsxs("div", {
99
+ children: [
100
+ /*#__PURE__*/ jsx("p", {
101
+ className: presetsLabel,
102
+ children: "Presets"
103
+ }),
104
+ /*#__PURE__*/ jsx("div", {
105
+ className: presetsRow,
106
+ children: presets.map((preset)=>/*#__PURE__*/ jsx("button", {
107
+ type: "button",
108
+ className: presetSwatch,
109
+ style: {
110
+ backgroundColor: preset
111
+ },
112
+ "aria-label": preset,
113
+ onClick: ()=>{
114
+ setValue(preset);
115
+ }
116
+ }, preset))
117
+ })
118
+ ]
119
+ }) : null
120
+ ]
121
+ })
122
+ ]
123
+ })
124
+ });
125
+ };
126
+ ColorPicker.displayName = 'ColorPicker';
127
+ const color_picker_ColorPicker = ColorPicker;
128
+ const color_picker = color_picker_ColorPicker;
129
+ export default color_picker;
130
+ export { color_picker as ColorPicker };
@@ -0,0 +1,2 @@
1
+ export * from './components/combobox/index';
2
+ export { default } from './components/combobox/index';
@@ -0,0 +1,126 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { CheckIcon, ChevronDownIcon, SearchIcon } from "@vinyasa/icons";
3
+ import { Command } from "cmdk";
4
+ import { useId, useState } from "react";
5
+ import { field, describedByIds } from "./4557.js";
6
+ import { fieldControl } from "./2995.js";
7
+ import { triggerText, empty, triggerIcon, searchIcon, placeholder as selectPopover_css_placeholder, content, searchInput, item, itemIndicator, searchWrapper, trigger as selectPopover_css_trigger, list } from "./6720.js";
8
+ import * as __rspack_external__radix_ui_react_popover_e2827c9f from "@radix-ui/react-popover";
9
+ const optionText = (option)=>'string' == typeof option.label ? option.label : option.value;
10
+ const Combobox = ({ options, value, defaultValue, onValueChange, placeholder = 'Select an option', label, description, error, required, size, disabled, emptyMessage = 'No results found.', trigger, id: idProp })=>{
11
+ const [internalValue, setInternalValue] = useState(defaultValue);
12
+ const isControlled = void 0 !== value;
13
+ const currentValue = isControlled ? value : internalValue;
14
+ const selectedOption = options.find((option)=>option.value === currentValue);
15
+ const [open, setOpen] = useState(false);
16
+ const [search, setSearch] = useState('');
17
+ const generatedId = useId();
18
+ const id = idProp ?? generatedId;
19
+ const handleSelect = (optionValue)=>{
20
+ if (!isControlled) setInternalValue(optionValue);
21
+ onValueChange?.(optionValue);
22
+ setOpen(false);
23
+ };
24
+ return /*#__PURE__*/ jsx(field, {
25
+ id: id,
26
+ label: label,
27
+ description: description,
28
+ error: error,
29
+ required: required,
30
+ children: /*#__PURE__*/ jsxs(__rspack_external__radix_ui_react_popover_e2827c9f.Root, {
31
+ open: open,
32
+ onOpenChange: (next)=>{
33
+ setOpen(next);
34
+ if (!next) setSearch('');
35
+ },
36
+ children: [
37
+ /*#__PURE__*/ jsx(__rspack_external__radix_ui_react_popover_e2827c9f.Trigger, {
38
+ asChild: true,
39
+ children: trigger ?? /*#__PURE__*/ jsxs("button", {
40
+ type: "button",
41
+ id: id,
42
+ disabled: disabled,
43
+ className: `${fieldControl({
44
+ size,
45
+ invalid: Boolean(error)
46
+ })} ${selectPopover_css_trigger}`,
47
+ "aria-describedby": describedByIds(id, {
48
+ description,
49
+ error
50
+ }),
51
+ children: [
52
+ /*#__PURE__*/ jsx("span", {
53
+ className: selectedOption ? triggerText : `${triggerText} ${selectPopover_css_placeholder}`,
54
+ children: selectedOption ? selectedOption.label : placeholder
55
+ }),
56
+ /*#__PURE__*/ jsx("span", {
57
+ className: triggerIcon,
58
+ "aria-hidden": "true",
59
+ children: /*#__PURE__*/ jsx(ChevronDownIcon, {})
60
+ })
61
+ ]
62
+ })
63
+ }),
64
+ /*#__PURE__*/ jsx(__rspack_external__radix_ui_react_popover_e2827c9f.Content, {
65
+ className: content,
66
+ align: "start",
67
+ sideOffset: 4,
68
+ children: /*#__PURE__*/ jsxs(Command, {
69
+ loop: true,
70
+ label: 'string' == typeof label ? label : 'Search options',
71
+ children: [
72
+ /*#__PURE__*/ jsxs("div", {
73
+ className: searchWrapper,
74
+ children: [
75
+ /*#__PURE__*/ jsx("span", {
76
+ className: searchIcon,
77
+ "aria-hidden": "true",
78
+ children: /*#__PURE__*/ jsx(SearchIcon, {})
79
+ }),
80
+ /*#__PURE__*/ jsx(Command.Input, {
81
+ autoFocus: true,
82
+ value: search,
83
+ onValueChange: setSearch,
84
+ placeholder: "Search…",
85
+ className: searchInput
86
+ })
87
+ ]
88
+ }),
89
+ /*#__PURE__*/ jsxs(Command.List, {
90
+ className: list,
91
+ children: [
92
+ /*#__PURE__*/ jsx(Command.Empty, {
93
+ className: empty,
94
+ children: emptyMessage
95
+ }),
96
+ options.map((option)=>/*#__PURE__*/ jsxs(Command.Item, {
97
+ value: optionText(option),
98
+ disabled: option.disabled,
99
+ onSelect: ()=>{
100
+ handleSelect(option.value);
101
+ },
102
+ className: item,
103
+ "data-selected": option.value === currentValue,
104
+ "data-disabled": option.disabled,
105
+ children: [
106
+ option.label,
107
+ option.value === currentValue ? /*#__PURE__*/ jsx("span", {
108
+ className: itemIndicator,
109
+ children: /*#__PURE__*/ jsx(CheckIcon, {})
110
+ }) : null
111
+ ]
112
+ }, option.value))
113
+ ]
114
+ })
115
+ ]
116
+ })
117
+ })
118
+ ]
119
+ })
120
+ });
121
+ };
122
+ Combobox.displayName = 'Combobox';
123
+ const combobox_Combobox = Combobox;
124
+ const combobox = combobox_Combobox;
125
+ export default combobox;
126
+ export { combobox as Combobox };
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface AutocompleteProps {
3
+ /** Suggestions shown while typing — picking one fills the field with it. */
4
+ suggestions: string[];
5
+ value?: string;
6
+ defaultValue?: string;
7
+ onValueChange?: (value: string) => void;
8
+ placeholder?: string;
9
+ label?: ReactNode;
10
+ description?: ReactNode;
11
+ error?: ReactNode;
12
+ required?: boolean;
13
+ size?: 'sm' | 'md' | 'lg';
14
+ emptyMessage?: ReactNode;
15
+ id?: string;
16
+ }
17
+ declare const Autocomplete: {
18
+ ({ suggestions, value, defaultValue, onValueChange, placeholder, label, description, error, required, size, emptyMessage, id: idProp, }: AutocompleteProps): import("react").JSX.Element;
19
+ displayName: string;
20
+ };
21
+ export default Autocomplete;
@@ -0,0 +1,3 @@
1
+ import Autocomplete from './Autocomplete';
2
+ export default Autocomplete;
3
+ export type { AutocompleteProps } from './Autocomplete';
@@ -0,0 +1,2 @@
1
+ export declare const root: string;
2
+ export declare const indicator: string;
@@ -0,0 +1,7 @@
1
+ import * as RadixCheckbox from '@radix-ui/react-checkbox';
2
+ import { type ReactNode } from 'react';
3
+ export interface CheckboxProps extends RadixCheckbox.CheckboxProps {
4
+ label?: ReactNode;
5
+ }
6
+ declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLButtonElement>>;
7
+ export default Checkbox;
@@ -0,0 +1,3 @@
1
+ import Checkbox from './Checkbox';
2
+ export default Checkbox;
3
+ export type { CheckboxProps } from './Checkbox';
@@ -0,0 +1,11 @@
1
+ export declare const trigger: string;
2
+ export declare const triggerText: string;
3
+ export declare const swatch: string;
4
+ export declare const content: string;
5
+ export declare const pickerCard: string;
6
+ export declare const pickerWrapper: string;
7
+ export declare const hexRow: string;
8
+ export declare const hexInput: string;
9
+ export declare const presetsLabel: string;
10
+ export declare const presetsRow: string;
11
+ export declare const presetSwatch: string;
@@ -0,0 +1,28 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ColorPickerProps {
3
+ value?: string;
4
+ defaultValue?: string;
5
+ onValueChange?: (color: string) => void;
6
+ label?: ReactNode;
7
+ description?: ReactNode;
8
+ error?: ReactNode;
9
+ required?: boolean;
10
+ size?: 'sm' | 'md' | 'lg';
11
+ disabled?: boolean;
12
+ /** A row of preset swatches shown above the hex field — click applies the color without closing the popover. */
13
+ presets?: string[];
14
+ /**
15
+ * Replaces the built-in trigger button entirely — passed straight through
16
+ * to Popover.Trigger's `asChild`, so it keeps the same open/close click
17
+ * and keyboard wiring. The element is responsible for its own styling and
18
+ * accessibility attributes (id, aria-describedby, disabled) since those
19
+ * aren't applied automatically the way they are to the default button.
20
+ */
21
+ trigger?: ReactNode;
22
+ id?: string;
23
+ }
24
+ declare const ColorPicker: {
25
+ ({ value, defaultValue, onValueChange, label, description, error, required, size, disabled, presets, trigger, id: idProp, }: ColorPickerProps): import("react").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ export default ColorPicker;
@@ -0,0 +1,3 @@
1
+ import ColorPicker from './ColorPicker';
2
+ export default ColorPicker;
3
+ export type { ColorPickerProps } from './ColorPicker';
@@ -0,0 +1,34 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ComboboxOption {
3
+ value: string;
4
+ label: ReactNode;
5
+ disabled?: boolean;
6
+ }
7
+ export interface ComboboxProps {
8
+ options: ComboboxOption[];
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
+ disabled?: boolean;
19
+ emptyMessage?: ReactNode;
20
+ /**
21
+ * Replaces the built-in trigger button entirely — passed straight through
22
+ * to Popover.Trigger's `asChild`, so it keeps the same open/close click
23
+ * and keyboard wiring. The element is responsible for its own styling and
24
+ * accessibility attributes (id, aria-describedby, disabled) since those
25
+ * aren't applied automatically the way they are to the default button.
26
+ */
27
+ trigger?: ReactNode;
28
+ id?: string;
29
+ }
30
+ declare const Combobox: {
31
+ ({ options, value, defaultValue, onValueChange, placeholder, label, description, error, required, size, disabled, emptyMessage, trigger, id: idProp, }: ComboboxProps): import("react").JSX.Element;
32
+ displayName: string;
33
+ };
34
+ export default Combobox;
@@ -0,0 +1,3 @@
1
+ import Combobox from './Combobox';
2
+ export default Combobox;
3
+ export type { ComboboxOption, ComboboxProps } from './Combobox';
@@ -0,0 +1,18 @@
1
+ export declare const content: string;
2
+ export declare const trigger: string;
3
+ export declare const triggerPlaceholder: string;
4
+ export declare const triggerText: string;
5
+ export declare const triggerIcon: string;
6
+ export declare const root: string;
7
+ export declare const months: string;
8
+ export declare const month: string;
9
+ export declare const monthCaption: string;
10
+ export declare const nav: string;
11
+ export declare const navButton: string;
12
+ export declare const weekday: string;
13
+ export declare const day: string;
14
+ export declare const dayButton: string;
15
+ export declare const today: string;
16
+ export declare const outside: string;
17
+ export declare const disabled: string;
18
+ export declare const selected: string;
@@ -0,0 +1,29 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface DatePickerProps {
3
+ value?: Date;
4
+ defaultValue?: Date;
5
+ onValueChange?: (date: Date | undefined) => void;
6
+ placeholder?: string;
7
+ /** date-fns format string for the trigger's display text. Defaults to 'PPP' (e.g. "April 29th, 2026"). */
8
+ dateFormat?: string;
9
+ label?: ReactNode;
10
+ description?: ReactNode;
11
+ error?: ReactNode;
12
+ required?: boolean;
13
+ size?: 'sm' | 'md' | 'lg';
14
+ disabled?: boolean;
15
+ /**
16
+ * Replaces the built-in trigger button entirely — passed straight through
17
+ * to Popover.Trigger's `asChild`, so it keeps the same open/close click
18
+ * and keyboard wiring. The element is responsible for its own styling and
19
+ * accessibility attributes (id, aria-describedby, disabled) since those
20
+ * aren't applied automatically the way they are to the default button.
21
+ */
22
+ trigger?: ReactNode;
23
+ id?: string;
24
+ }
25
+ declare const DatePicker: {
26
+ ({ value, defaultValue, onValueChange, placeholder, dateFormat, label, description, error, required, size, disabled, trigger, id: idProp, }: DatePickerProps): import("react").JSX.Element;
27
+ displayName: string;
28
+ };
29
+ export default DatePicker;
@@ -0,0 +1,3 @@
1
+ import DatePicker from './DatePicker';
2
+ export default DatePicker;
3
+ export type { DatePickerProps } from './DatePicker';
@@ -0,0 +1,4 @@
1
+ export declare const area: string;
2
+ export declare const areaActive: string;
3
+ export declare const icon: string;
4
+ export declare const hint: string;
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type Accept } from 'react-dropzone';
3
+ export interface DropzoneProps {
4
+ value?: File[];
5
+ onValueChange?: (files: File[]) => void;
6
+ accept?: Accept;
7
+ maxFiles?: number;
8
+ maxSize?: number;
9
+ label?: ReactNode;
10
+ description?: ReactNode;
11
+ error?: ReactNode;
12
+ required?: boolean;
13
+ disabled?: boolean;
14
+ id?: string;
15
+ }
16
+ declare const Dropzone: {
17
+ ({ value, onValueChange, accept, maxFiles, maxSize, label, description, error, required, disabled, id: idProp, }: DropzoneProps): import("react").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ export default Dropzone;
@@ -0,0 +1,3 @@
1
+ import Dropzone from './Dropzone';
2
+ export default Dropzone;
3
+ export type { DropzoneProps } from './Dropzone';
@@ -0,0 +1,11 @@
1
+ export declare const trigger: string;
2
+ export declare const fileListWrapper: string;
3
+ export declare const fileList: string;
4
+ export declare const fileRow: string;
5
+ export declare const fileName: string;
6
+ export declare const fileNameIcon: string;
7
+ export declare const fileNameText: string;
8
+ export declare const fileMeta: string;
9
+ export declare const fileSize: string;
10
+ export declare const fileRemove: string;
11
+ export declare const rejectionText: string;
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type Accept } from 'react-dropzone';
3
+ export interface FileUploadProps {
4
+ value?: File[];
5
+ onValueChange?: (files: File[]) => void;
6
+ accept?: Accept;
7
+ maxFiles?: number;
8
+ maxSize?: number;
9
+ label?: ReactNode;
10
+ description?: ReactNode;
11
+ error?: ReactNode;
12
+ required?: boolean;
13
+ disabled?: boolean;
14
+ id?: string;
15
+ }
16
+ declare const FileUpload: {
17
+ ({ value, onValueChange, accept, maxFiles, maxSize, label, description, error, required, disabled, id: idProp, }: FileUploadProps): import("react").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ export default FileUpload;
@@ -0,0 +1,3 @@
1
+ import FileUpload from './FileUpload';
2
+ export default FileUpload;
3
+ export type { FileUploadProps } from './FileUpload';
@@ -0,0 +1,8 @@
1
+ import { type ButtonProps } from '@vinyasa/button';
2
+ import { type ReactNode } from 'react';
3
+ export interface IconButtonProps extends Omit<ButtonProps, 'children' | 'leadingIcon' | 'trailingIcon'> {
4
+ icon: ReactNode;
5
+ 'aria-label': string;
6
+ }
7
+ declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
8
+ export default IconButton;
@@ -0,0 +1,3 @@
1
+ import IconButton from './IconButton';
2
+ export default IconButton;
3
+ export type { IconButtonProps } from './IconButton';
@@ -0,0 +1,11 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ export type InputSize = 'sm' | 'md' | 'lg';
3
+ export interface InputProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size'> {
4
+ label?: ReactNode;
5
+ description?: ReactNode;
6
+ error?: ReactNode;
7
+ required?: boolean;
8
+ size?: InputSize;
9
+ }
10
+ declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
11
+ export default Input;
@@ -0,0 +1,3 @@
1
+ import Input from './Input';
2
+ export default Input;
3
+ export type { InputProps, InputSize } from './Input';