@waveso/ui 0.14.0 → 0.15.1

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 (84) hide show
  1. package/README.md +12 -10
  2. package/dist/accordion.d.ts +4 -20
  3. package/dist/action-bar.d.ts +1 -10
  4. package/dist/action-bar.js +2 -1
  5. package/dist/alert-dialog.d.ts +12 -52
  6. package/dist/alert.d.ts +5 -21
  7. package/dist/animate.d.ts +5 -48
  8. package/dist/animate.js +6 -4
  9. package/dist/aspect-ratio.d.ts +3 -8
  10. package/dist/autocomplete.d.ts +24 -88
  11. package/dist/autocomplete.js +4 -2
  12. package/dist/avatar.d.ts +6 -27
  13. package/dist/badge.d.ts +3 -11
  14. package/dist/breadcrumb.d.ts +7 -31
  15. package/dist/button-group.d.ts +4 -19
  16. package/dist/button.d.ts +4 -12
  17. package/dist/button.js +6 -6
  18. package/dist/card.d.ts +7 -31
  19. package/dist/checkbox.d.ts +1 -6
  20. package/dist/collapsible.d.ts +3 -12
  21. package/dist/combobox.d.ts +24 -79
  22. package/dist/combobox.js +21 -7
  23. package/dist/context-menu.d.ts +15 -67
  24. package/dist/count.d.ts +1 -15
  25. package/dist/count.js +3 -2
  26. package/dist/dialog.d.ts +10 -41
  27. package/dist/direction.d.ts +0 -1
  28. package/dist/drawer.d.ts +11 -44
  29. package/dist/encrypted-text.d.ts +1 -14
  30. package/dist/encrypted-text.js +2 -1
  31. package/dist/field.d.ts +7 -28
  32. package/dist/film-grain-shader.d.ts +3 -4
  33. package/dist/film-grain-webgl.d.ts +2 -9
  34. package/dist/film-grain-webgl.js +4 -1
  35. package/dist/film-grain.d.ts +1 -11
  36. package/dist/form.d.ts +11 -30
  37. package/dist/gradient-reveal-text.d.ts +1 -14
  38. package/dist/hooks/use-mobile.d.ts +2 -3
  39. package/dist/infinite-scroll.d.ts +1 -16
  40. package/dist/input-group.d.ts +15 -37
  41. package/dist/input-group.js +25 -17
  42. package/dist/input-otp.d.ts +4 -20
  43. package/dist/input.d.ts +3 -11
  44. package/dist/input.js +4 -4
  45. package/dist/item.d.ts +14 -51
  46. package/dist/kbd.d.ts +2 -10
  47. package/dist/label.d.ts +1 -6
  48. package/dist/lib/focus.d.ts +3 -5
  49. package/dist/lib/internal-icons.d.ts +19 -22
  50. package/dist/lib/utils.d.ts +3 -5
  51. package/dist/lib/utils.js +2 -1
  52. package/dist/masonry.d.ts +2 -16
  53. package/dist/masonry.js +1 -1
  54. package/dist/menu.d.ts +15 -64
  55. package/dist/menubar.d.ts +16 -55
  56. package/dist/pagination.d.ts +9 -33
  57. package/dist/popover.d.ts +9 -43
  58. package/dist/preview-card.d.ts +5 -25
  59. package/dist/progress.d.ts +5 -24
  60. package/dist/radio-group.d.ts +2 -9
  61. package/dist/radio.d.ts +2 -10
  62. package/dist/scroll-area.d.ts +2 -12
  63. package/dist/select.d.ts +19 -65
  64. package/dist/select.js +12 -2
  65. package/dist/separator.d.ts +1 -7
  66. package/dist/sidebar.d.ts +30 -127
  67. package/dist/sidebar.js +3 -3
  68. package/dist/skeleton.d.ts +1 -6
  69. package/dist/slider.d.ts +1 -14
  70. package/dist/slider.js +2 -2
  71. package/dist/spinner.d.ts +1 -6
  72. package/dist/styles.css +18 -0
  73. package/dist/switch.d.ts +2 -9
  74. package/dist/table.d.ts +8 -34
  75. package/dist/tabs.d.ts +5 -22
  76. package/dist/textarea.d.ts +7 -10
  77. package/dist/textarea.js +14 -3
  78. package/dist/toast.d.ts +13 -39
  79. package/dist/toggle-group.d.ts +3 -19
  80. package/dist/toggle-group.js +13 -7
  81. package/dist/toggle.d.ts +3 -11
  82. package/dist/tooltip.d.ts +4 -24
  83. package/dist/typewriter.d.ts +1 -14
  84. package/package.json +52 -51
package/dist/drawer.d.ts CHANGED
@@ -1,7 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
2
  import { Drawer as Drawer$1 } from "@base-ui/react/drawer";
4
-
5
3
  //#region src/drawer.d.ts
6
4
  type DrawerProps = React.ComponentProps<typeof Drawer$1.Root>;
7
5
  type DrawerTriggerProps = React.ComponentProps<typeof Drawer$1.Trigger>;
@@ -17,47 +15,16 @@ type DrawerFooterProps = React.ComponentProps<"div">;
17
15
  type DrawerContentProps = DrawerPopupProps & {
18
16
  showCloseButton?: boolean;
19
17
  };
20
- declare function Drawer({
21
- ...props
22
- }: DrawerProps): _$react_jsx_runtime0.JSX.Element;
23
- declare function DrawerTrigger({
24
- ...props
25
- }: DrawerTriggerProps): _$react_jsx_runtime0.JSX.Element;
26
- declare function DrawerPortal({
27
- ...props
28
- }: DrawerPortalProps): _$react_jsx_runtime0.JSX.Element;
29
- declare function DrawerClose({
30
- ...props
31
- }: DrawerCloseProps): _$react_jsx_runtime0.JSX.Element;
32
- declare function DrawerOverlay({
33
- className,
34
- ...props
35
- }: DrawerOverlayProps): _$react_jsx_runtime0.JSX.Element;
36
- declare function DrawerViewport({
37
- className,
38
- ...props
39
- }: DrawerViewportProps): _$react_jsx_runtime0.JSX.Element;
40
- declare function DrawerContent({
41
- className,
42
- children,
43
- showCloseButton,
44
- ...props
45
- }: DrawerContentProps): _$react_jsx_runtime0.JSX.Element;
46
- declare function DrawerHeader({
47
- className,
48
- ...props
49
- }: DrawerHeaderProps): _$react_jsx_runtime0.JSX.Element;
50
- declare function DrawerFooter({
51
- className,
52
- ...props
53
- }: DrawerFooterProps): _$react_jsx_runtime0.JSX.Element;
54
- declare function DrawerTitle({
55
- className,
56
- ...props
57
- }: DrawerTitleProps): _$react_jsx_runtime0.JSX.Element;
58
- declare function DrawerDescription({
59
- className,
60
- ...props
61
- }: DrawerDescriptionProps): _$react_jsx_runtime0.JSX.Element;
18
+ declare function Drawer({ ...props }: DrawerProps): React.JSX.Element;
19
+ declare function DrawerTrigger({ ...props }: DrawerTriggerProps): React.JSX.Element;
20
+ declare function DrawerPortal({ ...props }: DrawerPortalProps): React.JSX.Element;
21
+ declare function DrawerClose({ ...props }: DrawerCloseProps): React.JSX.Element;
22
+ declare function DrawerOverlay({ className, ...props }: DrawerOverlayProps): React.JSX.Element;
23
+ declare function DrawerViewport({ className, ...props }: DrawerViewportProps): React.JSX.Element;
24
+ declare function DrawerContent({ className, children, showCloseButton, ...props }: DrawerContentProps): React.JSX.Element;
25
+ declare function DrawerHeader({ className, ...props }: DrawerHeaderProps): React.JSX.Element;
26
+ declare function DrawerFooter({ className, ...props }: DrawerFooterProps): React.JSX.Element;
27
+ declare function DrawerTitle({ className, ...props }: DrawerTitleProps): React.JSX.Element;
28
+ declare function DrawerDescription({ className, ...props }: DrawerDescriptionProps): React.JSX.Element;
62
29
  //#endregion
63
30
  export { Drawer, DrawerClose, type DrawerCloseProps, DrawerContent, type DrawerContentProps, DrawerDescription, type DrawerDescriptionProps, DrawerFooter, type DrawerFooterProps, DrawerHeader, type DrawerHeaderProps, DrawerOverlay, type DrawerOverlayProps, type DrawerPopupProps, DrawerPortal, type DrawerPortalProps, type DrawerProps, DrawerTitle, type DrawerTitleProps, DrawerTrigger, type DrawerTriggerProps, DrawerViewport, type DrawerViewportProps };
@@ -1,6 +1,4 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
-
4
2
  //#region src/encrypted-text.d.ts
5
3
  type EncryptedTextProps = React.ComponentProps<"span"> & {
6
4
  text: string;
@@ -12,17 +10,6 @@ type EncryptedTextProps = React.ComponentProps<"span"> & {
12
10
  scrambleOnly?: boolean;
13
11
  scrambleOneChar?: boolean;
14
12
  };
15
- declare function EncryptedText({
16
- text,
17
- className,
18
- revealDelayMs,
19
- charset,
20
- flipDelayMs,
21
- encryptedClassName,
22
- revealedClassName,
23
- scrambleOnly,
24
- scrambleOneChar,
25
- ...props
26
- }: EncryptedTextProps): _$react_jsx_runtime0.JSX.Element | null;
13
+ declare function EncryptedText({ text, className, revealDelayMs, charset, flipDelayMs, encryptedClassName, revealedClassName, scrambleOnly, scrambleOneChar, ...props }: EncryptedTextProps): React.JSX.Element | null;
27
14
  //#endregion
28
15
  export { EncryptedText, type EncryptedTextProps };
@@ -40,7 +40,8 @@ function EncryptedText({ text, className, revealDelayMs = 50, charset = DEFAULT_
40
40
  React.useEffect(() => {
41
41
  if (prefersReducedMotion) return;
42
42
  if (!isInView) return;
43
- scrambleCharsRef.current = (text ? scramblePreservingSpaces(text, charset) : "").split("");
43
+ const initial = text ? scramblePreservingSpaces(text, charset) : "";
44
+ scrambleCharsRef.current = initial.split("");
44
45
  startTimeRef.current = performance.now();
45
46
  lastFlipTimeRef.current = startTimeRef.current;
46
47
  setRevealCount(0);
package/dist/field.d.ts CHANGED
@@ -1,8 +1,5 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
2
  import { Field as FieldPrimitive } from "@base-ui/react/field";
4
- import * as _$_base_ui_react0 from "@base-ui/react";
5
-
6
3
  //#region src/field.d.ts
7
4
  type FieldProps = React.ComponentProps<typeof FieldPrimitive.Root>;
8
5
  type FieldLabelProps = React.ComponentProps<typeof FieldPrimitive.Label>;
@@ -11,30 +8,12 @@ type FieldItemProps = React.ComponentProps<typeof FieldPrimitive.Item>;
11
8
  type FieldErrorProps = React.ComponentProps<typeof FieldPrimitive.Error>;
12
9
  type FieldValidityProps = React.ComponentProps<typeof FieldPrimitive.Validity>;
13
10
  type FieldControlProps = React.ComponentProps<typeof FieldPrimitive.Control>;
14
- declare function Field({
15
- className,
16
- ...props
17
- }: FieldProps): _$react_jsx_runtime0.JSX.Element;
18
- declare function FieldLabel({
19
- className,
20
- ...props
21
- }: FieldLabelProps): _$react_jsx_runtime0.JSX.Element;
22
- declare function FieldControl({
23
- className,
24
- ...props
25
- }: FieldControlProps): _$react_jsx_runtime0.JSX.Element;
26
- declare function FieldDescription({
27
- className,
28
- ...props
29
- }: FieldDescriptionProps): _$react_jsx_runtime0.JSX.Element;
30
- declare function FieldItem({
31
- className,
32
- ...props
33
- }: FieldItemProps): _$react_jsx_runtime0.JSX.Element;
34
- declare function FieldError({
35
- className,
36
- ...props
37
- }: FieldErrorProps): _$react_jsx_runtime0.JSX.Element;
38
- declare const FieldValidity: React.FC<_$_base_ui_react0.FieldValidityProps>;
11
+ declare function Field({ className, ...props }: FieldProps): React.JSX.Element;
12
+ declare function FieldLabel({ className, ...props }: FieldLabelProps): React.JSX.Element;
13
+ declare function FieldControl({ className, ...props }: FieldControlProps): React.JSX.Element;
14
+ declare function FieldDescription({ className, ...props }: FieldDescriptionProps): React.JSX.Element;
15
+ declare function FieldItem({ className, ...props }: FieldItemProps): React.JSX.Element;
16
+ declare function FieldError({ className, ...props }: FieldErrorProps): React.JSX.Element;
17
+ declare const FieldValidity: React.FC<import("@base-ui/react").FieldValidityProps>;
39
18
  //#endregion
40
19
  export { Field, FieldControl, type FieldControlProps, FieldDescription, type FieldDescriptionProps, FieldError, type FieldErrorProps, FieldItem, type FieldItemProps, FieldLabel, type FieldLabelProps, FieldPrimitive, type FieldProps, FieldValidity, type FieldValidityProps };
@@ -1,5 +1,4 @@
1
1
  //#region src/film-grain-shader.d.ts
2
- declare const vertexShader = "\nattribute vec2 position;\nvarying vec2 vUv;\n\nvoid main() {\n vUv = position * 0.5 + 0.5;\n gl_Position = vec4(position, 0.0, 1.0);\n}\n";
3
- declare const fragmentShader = "\nprecision highp float;\n\nuniform float uTime;\nuniform vec2 uResolution;\nuniform float uDensity;\nuniform float uOpacity;\nuniform float uFps;\nuniform vec3 uColor;\n\nvarying vec2 vUv;\n\n// Stable hash\nfloat hash(vec2 p, float seed) {\n return fract(sin(dot(p + seed, vec2(127.1, 311.7))) * 43758.5453123);\n}\n\n// Film response curve (soft toe + shoulder rolloff)\nfloat filmCurve(float x) {\n return smoothstep(0.0, 0.2, x) * (1.0 - smoothstep(0.8, 1.0, x));\n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy;\n vec2 p = floor(uv);\n\n // Temporal coherence: blend between current and next frame seed\n float frame = floor(uTime * uFps);\n float t = fract(uTime * uFps);\n float seed = frame * 0.1731;\n\n // Multi-scale grain with inter-frame blending on fine layer\n float fineA = hash(p, seed);\n float fineB = hash(p, seed + 0.1731);\n float fine = mix(fineA, fineB, t);\n\n float medium = hash(floor(uv * 0.5), seed + 3.1);\n float coarse = hash(floor(uv * 0.25), seed + 7.93);\n\n float grain = fine * 0.65 + medium * 0.25 + coarse * 0.10;\n\n // Emulsion clumping (organic structure)\n float cluster = hash(floor(uv * 0.18), seed + 9.2);\n grain *= mix(0.75, 1.35, cluster);\n\n // Density threshold\n grain = smoothstep(1.0 - uDensity, 1.0, grain);\n\n // Film response curve (replaces raw pow gamma)\n grain = filmCurve(grain);\n\n // Micro-blur: sample neighbors for optical diffusion\n float n1 = hash(p + vec2(1.0, 0.0), seed);\n float n2 = hash(p - vec2(1.0, 0.0), seed);\n float n3 = hash(p + vec2(0.0, 1.0), seed);\n float n4 = hash(p - vec2(0.0, 1.0), seed);\n float neighbors = (n1 + n2 + n3 + n4) * 0.25;\n grain = mix(grain, neighbors, 0.15);\n\n // Chromatic aberration (reuse neighbor hashes)\n float rShift = n1 * 0.015;\n float bShift = n2 * 0.015;\n\n vec3 color = uColor * vec3(\n grain + rShift,\n grain,\n grain + bShift\n );\n\n color = clamp(color, 0.0, 1.0);\n\n gl_FragColor = vec4(color, grain * uOpacity);\n}\n";
4
- //#endregion
5
- export { fragmentShader, vertexShader };
2
+ export declare const vertexShader = "\nattribute vec2 position;\nvarying vec2 vUv;\n\nvoid main() {\n vUv = position * 0.5 + 0.5;\n gl_Position = vec4(position, 0.0, 1.0);\n}\n";
3
+ export declare const fragmentShader = "\nprecision highp float;\n\nuniform float uTime;\nuniform vec2 uResolution;\nuniform float uDensity;\nuniform float uOpacity;\nuniform float uFps;\nuniform vec3 uColor;\n\nvarying vec2 vUv;\n\n// Stable hash\nfloat hash(vec2 p, float seed) {\n return fract(sin(dot(p + seed, vec2(127.1, 311.7))) * 43758.5453123);\n}\n\n// Film response curve (soft toe + shoulder rolloff)\nfloat filmCurve(float x) {\n return smoothstep(0.0, 0.2, x) * (1.0 - smoothstep(0.8, 1.0, x));\n}\n\nvoid main() {\n vec2 uv = gl_FragCoord.xy;\n vec2 p = floor(uv);\n\n // Temporal coherence: blend between current and next frame seed\n float frame = floor(uTime * uFps);\n float t = fract(uTime * uFps);\n float seed = frame * 0.1731;\n\n // Multi-scale grain with inter-frame blending on fine layer\n float fineA = hash(p, seed);\n float fineB = hash(p, seed + 0.1731);\n float fine = mix(fineA, fineB, t);\n\n float medium = hash(floor(uv * 0.5), seed + 3.1);\n float coarse = hash(floor(uv * 0.25), seed + 7.93);\n\n float grain = fine * 0.65 + medium * 0.25 + coarse * 0.10;\n\n // Emulsion clumping (organic structure)\n float cluster = hash(floor(uv * 0.18), seed + 9.2);\n grain *= mix(0.75, 1.35, cluster);\n\n // Density threshold\n grain = smoothstep(1.0 - uDensity, 1.0, grain);\n\n // Film response curve (replaces raw pow gamma)\n grain = filmCurve(grain);\n\n // Micro-blur: sample neighbors for optical diffusion\n float n1 = hash(p + vec2(1.0, 0.0), seed);\n float n2 = hash(p - vec2(1.0, 0.0), seed);\n float n3 = hash(p + vec2(0.0, 1.0), seed);\n float n4 = hash(p - vec2(0.0, 1.0), seed);\n float neighbors = (n1 + n2 + n3 + n4) * 0.25;\n grain = mix(grain, neighbors, 0.15);\n\n // Chromatic aberration (reuse neighbor hashes)\n float rShift = n1 * 0.015;\n float bShift = n2 * 0.015;\n\n vec3 color = uColor * vec3(\n grain + rShift,\n grain,\n grain + bShift\n );\n\n color = clamp(color, 0.0, 1.0);\n\n gl_FragColor = vec4(color, grain * uOpacity);\n}\n";
4
+ //#endregion
@@ -1,5 +1,3 @@
1
- import * as _$react from "react";
2
-
3
1
  //#region src/film-grain-webgl.d.ts
4
2
  interface UseFilmGrainOptions {
5
3
  density: number;
@@ -8,10 +6,5 @@ interface UseFilmGrainOptions {
8
6
  /** Hex color for canvas fallback grain. Default '#ffffff' */
9
7
  color?: string;
10
8
  }
11
- declare function useFilmGrain({
12
- density,
13
- fps,
14
- color
15
- }: UseFilmGrainOptions): _$react.RefObject<HTMLCanvasElement | null>;
16
- //#endregion
17
- export { useFilmGrain };
9
+ export declare function useFilmGrain({ density, fps, color }: UseFilmGrainOptions): import("react").RefObject<HTMLCanvasElement | null>;
10
+ //#endregion
@@ -92,7 +92,10 @@ function generateGrainTexture(width, height, density, color) {
92
92
  const [r, g, b, a] = parseHex(color);
93
93
  const imageData = ctx.createImageData(width, height);
94
94
  const pixels = new Uint32Array(imageData.data.buffer);
95
- for (let i = 0; i < pixels.length; i++) if (Math.random() < density) pixels[i] = (Math.round(a * (.4 + Math.random() * .6)) << 24 | b << 16 | g << 8 | r) >>> 0;
95
+ for (let i = 0; i < pixels.length; i++) if (Math.random() < density) {
96
+ const variation = Math.round(a * (.4 + Math.random() * .6));
97
+ pixels[i] = (variation << 24 | b << 16 | g << 8 | r) >>> 0;
98
+ }
96
99
  ctx.putImageData(imageData, 0, 0);
97
100
  return offscreen;
98
101
  }
@@ -1,6 +1,4 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
-
4
2
  //#region src/film-grain.d.ts
5
3
  interface FilmGrainProps {
6
4
  density?: number;
@@ -11,14 +9,6 @@ interface FilmGrainProps {
11
9
  className?: string;
12
10
  style?: React.CSSProperties;
13
11
  }
14
- declare function FilmGrain({
15
- density,
16
- opacity,
17
- blendMode,
18
- fps,
19
- color,
20
- className,
21
- style
22
- }: FilmGrainProps): _$react_jsx_runtime0.JSX.Element;
12
+ declare function FilmGrain({ density, opacity, blendMode, fps, color, className, style }: FilmGrainProps): React.JSX.Element;
23
13
  //#endregion
24
14
  export { FilmGrain, type FilmGrainProps };
package/dist/form.d.ts CHANGED
@@ -1,9 +1,6 @@
1
1
  import { Field } from "./field.js";
2
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
2
  import * as React from "react";
4
- import * as _$react_hook_form0 from "react-hook-form";
5
3
  import { ControllerFieldState, ControllerRenderProps, FieldPath, FieldValues, RegisterOptions, SubmitHandler, UseFormReturn, useForm, useWatch } from "react-hook-form";
6
-
7
4
  //#region src/form.d.ts
8
5
  type FormProps<TFieldValues extends FieldValues> = {
9
6
  form: UseFormReturn<TFieldValues>;
@@ -13,11 +10,7 @@ type FormRootProps = React.ComponentProps<"form">;
13
10
  type FormErrorProps = React.ComponentProps<"p">;
14
11
  type FormActionsProps = React.ComponentProps<"div">;
15
12
  type FormMessageProps = React.ComponentProps<"p">;
16
- declare function Form<TFieldValues extends FieldValues>({
17
- form,
18
- onSubmit,
19
- ...props
20
- }: FormProps<TFieldValues>): _$react_jsx_runtime0.JSX.Element;
13
+ declare function Form<TFieldValues extends FieldValues>({ form, onSubmit, ...props }: FormProps<TFieldValues>): React.JSX.Element;
21
14
  /**
22
15
  * Plain `<form>` element with RHF integration.
23
16
  *
@@ -27,10 +20,7 @@ declare function Form<TFieldValues extends FieldValues>({
27
20
  * provides validation, error handling, and submit management, the Base UI
28
21
  * Form wrapper adds no value at the moment.
29
22
  */
30
- declare function FormRoot({
31
- className,
32
- ...props
33
- }: FormRootProps): _$react_jsx_runtime0.JSX.Element;
23
+ declare function FormRoot({ className, ...props }: FormRootProps): React.JSX.Element;
34
24
  type FormFieldRenderArgs<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = {
35
25
  id: string;
36
26
  field: ControllerRenderProps<TFieldValues, TName>;
@@ -59,19 +49,10 @@ type FormFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TF
59
49
  * It maps RHF Controller state onto Base UI's <Field> state so styling can
60
50
  * rely on `data-[invalid]`, `data-[touched]`, `data-[dirty]`, etc.
61
51
  */
62
- declare function FormField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>(props: FormFieldProps<TFieldValues, TName>): _$react_jsx_runtime0.JSX.Element;
63
- declare function FormError({
64
- className,
65
- ...props
66
- }: FormErrorProps): _$react_jsx_runtime0.JSX.Element | null;
67
- declare function FormActions({
68
- className,
69
- ...props
70
- }: FormActionsProps): _$react_jsx_runtime0.JSX.Element;
71
- declare function FormMessage({
72
- className,
73
- ...props
74
- }: FormMessageProps): _$react_jsx_runtime0.JSX.Element;
52
+ declare function FormField<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>>(props: FormFieldProps<TFieldValues, TName>): React.JSX.Element;
53
+ declare function FormError({ className, ...props }: FormErrorProps): React.JSX.Element | null;
54
+ declare function FormActions({ className, ...props }: FormActionsProps): React.JSX.Element;
55
+ declare function FormMessage({ className, ...props }: FormMessageProps): React.JSX.Element;
75
56
  /**
76
57
  * Convenience helper for mapping RHF field props onto either:
77
58
  * - Base UI controls (use `onValueChange`)
@@ -83,15 +64,15 @@ declare function fieldControlProps<TFieldValues extends FieldValues, TName exten
83
64
  invalid?: boolean;
84
65
  native?: boolean;
85
66
  }): {
86
- "aria-describedby": string | undefined;
87
- "aria-invalid": boolean | undefined;
88
- onValueChange?: ((...event: any[]) => void) | undefined;
89
67
  id: string | undefined;
90
68
  name: TName;
91
- ref: _$react_hook_form0.RefCallBack;
69
+ ref: import("react-hook-form").RefCallBack;
92
70
  value: string;
93
- onBlur: _$react_hook_form0.Noop;
71
+ onBlur: import("react-hook-form").Noop;
94
72
  onChange: (...event: any[]) => void;
73
+ onValueChange?: ((...event: any[]) => void) | undefined;
74
+ "aria-describedby": string | undefined;
75
+ "aria-invalid": boolean | undefined;
95
76
  };
96
77
  //#endregion
97
78
  export { Form, FormActions, type FormActionsProps, FormError, type FormErrorProps, FormField, type FormFieldProps, type FormFieldRenderArgs, FormMessage, type FormMessageProps, type FormProps, FormRoot, type FormRootProps, fieldControlProps, useForm, useWatch };
@@ -1,5 +1,3 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
1
  //#region src/gradient-reveal-text.d.ts
4
2
  interface GradientRevealTextProps {
5
3
  /** The text to display */
@@ -35,17 +33,6 @@ interface GradientRevealTextProps {
35
33
  * <GradientRevealText text="BRAND" colors={["#ff0000", "#00ff00"]} />
36
34
  * ```
37
35
  */
38
- declare function GradientRevealText({
39
- text,
40
- duration,
41
- colors,
42
- baseOpacity,
43
- hoverOpacity,
44
- fontFamily,
45
- spotlightSize,
46
- strokeWidth: strokeWidthPx,
47
- baseColor,
48
- className
49
- }: GradientRevealTextProps): _$react_jsx_runtime0.JSX.Element;
36
+ declare function GradientRevealText({ text, duration, colors, baseOpacity, hoverOpacity, fontFamily, spotlightSize, strokeWidth: strokeWidthPx, baseColor, className }: GradientRevealTextProps): import("react").JSX.Element;
50
37
  //#endregion
51
38
  export { GradientRevealText, type GradientRevealTextProps };
@@ -4,6 +4,5 @@
4
4
  *
5
5
  * @param breakpoint - Width in pixels. Defaults to 768.
6
6
  */
7
- declare function useIsMobile(breakpoint?: number): boolean;
8
- //#endregion
9
- export { useIsMobile };
7
+ export declare function useIsMobile(breakpoint?: number): boolean;
8
+ //#endregion
@@ -1,6 +1,4 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
-
4
2
  //#region src/infinite-scroll.d.ts
5
3
  type InfiniteScrollProps = React.ComponentProps<"div"> & {
6
4
  onLoadMore: () => void;
@@ -13,19 +11,6 @@ type InfiniteScrollProps = React.ComponentProps<"div"> & {
13
11
  loader?: React.ReactNode;
14
12
  endMessage?: React.ReactNode;
15
13
  };
16
- declare function InfiniteScroll({
17
- onLoadMore,
18
- hasMore,
19
- isLoading,
20
- direction,
21
- root,
22
- rootMargin,
23
- threshold,
24
- loader,
25
- endMessage,
26
- className,
27
- children,
28
- ...props
29
- }: InfiniteScrollProps): _$react_jsx_runtime0.JSX.Element;
14
+ declare function InfiniteScroll({ onLoadMore, hasMore, isLoading, direction, root, rootMargin, threshold, loader, endMessage, className, children, ...props }: InfiniteScrollProps): React.JSX.Element;
30
15
  //#endregion
31
16
  export { InfiniteScroll, type InfiniteScrollProps };
@@ -1,12 +1,12 @@
1
1
  import { Button } from "./button.js";
2
2
  import { Input } from "./input.js";
3
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
3
  import * as React from "react";
5
4
  import { VariantProps } from "class-variance-authority";
6
- import * as _$class_variance_authority_types0 from "class-variance-authority/types";
7
-
8
5
  //#region src/input-group.d.ts
9
- type InputGroupProps = React.ComponentProps<"div">;
6
+ declare const inputGroupVariants: (props?: ({
7
+ size?: "default" | "lg" | "sm" | "xs" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ type InputGroupProps = React.ComponentProps<"div"> & VariantProps<typeof inputGroupVariants>;
10
10
  type InputGroupAddonProps = React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>;
11
11
  type InputGroupButtonProps = Omit<React.ComponentProps<typeof Button>, "size" | "type"> & VariantProps<typeof inputGroupButtonVariants> & {
12
12
  type?: "button" | "submit" | "reset";
@@ -14,39 +14,17 @@ type InputGroupButtonProps = Omit<React.ComponentProps<typeof Button>, "size" |
14
14
  type InputGroupTextProps = React.ComponentProps<"span">;
15
15
  type InputGroupInputProps = React.ComponentProps<typeof Input>;
16
16
  type InputGroupTextareaProps = React.ComponentProps<"textarea">;
17
- declare function InputGroup({
18
- className,
19
- ...props
20
- }: InputGroupProps): _$react_jsx_runtime0.JSX.Element;
17
+ declare function InputGroup({ className, size, ...props }: InputGroupProps): React.JSX.Element;
21
18
  declare const inputGroupAddonVariants: (props?: ({
22
- align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
23
- } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
24
- declare function InputGroupAddon({
25
- className,
26
- align,
27
- ...props
28
- }: InputGroupAddonProps): _$react_jsx_runtime0.JSX.Element;
19
+ align?: "block-end" | "block-start" | "inline-end" | "inline-start" | null | undefined;
20
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
21
+ declare function InputGroupAddon({ className, align, ...props }: InputGroupAddonProps): React.JSX.Element;
29
22
  declare const inputGroupButtonVariants: (props?: ({
30
- size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
31
- } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
32
- declare function InputGroupButton({
33
- className,
34
- type,
35
- variant,
36
- size,
37
- ...props
38
- }: InputGroupButtonProps): _$react_jsx_runtime0.JSX.Element;
39
- declare function InputGroupText({
40
- className,
41
- ...props
42
- }: InputGroupTextProps): _$react_jsx_runtime0.JSX.Element;
43
- declare function InputGroupInput({
44
- className,
45
- ...props
46
- }: InputGroupInputProps): _$react_jsx_runtime0.JSX.Element;
47
- declare function InputGroupTextarea({
48
- className,
49
- ...props
50
- }: InputGroupTextareaProps): _$react_jsx_runtime0.JSX.Element;
23
+ size?: "default" | "icon" | null | undefined;
24
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
25
+ declare function InputGroupButton({ className, type, variant, size, ...props }: InputGroupButtonProps): React.JSX.Element;
26
+ declare function InputGroupText({ className, ...props }: InputGroupTextProps): React.JSX.Element;
27
+ declare function InputGroupInput({ className, ...props }: InputGroupInputProps): React.JSX.Element;
28
+ declare function InputGroupTextarea({ className, ...props }: InputGroupTextareaProps): React.JSX.Element;
51
29
  //#endregion
52
- export { InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps, inputGroupAddonVariants, inputGroupButtonVariants };
30
+ export { InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupVariants };
@@ -6,20 +6,30 @@ import { Textarea } from "./textarea.js";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  import { cva } from "class-variance-authority";
8
8
  //#region src/input-group.tsx
9
- function InputGroup({ className, ...props }) {
9
+ const inputGroupVariants = cva("bg-edge hover:border-focus has-[[data-slot=input-group-control]:focus-visible]:border-focus has-[[data-slot=input-group-control]:focus-visible]:ring-focus/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/30 has-[[data-slot][aria-invalid=true]]:border-destructive group/input-group relative flex w-full min-w-0 items-center rounded-md border border-transparent motion-color outline-hidden in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:pointer-events-none has-disabled:opacity-30 not-has-disabled:has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3", {
10
+ variants: { size: {
11
+ xs: "h-6 rounded-sm",
12
+ sm: "h-8",
13
+ default: "h-9",
14
+ lg: "h-11"
15
+ } },
16
+ defaultVariants: { size: "default" }
17
+ });
18
+ function InputGroup({ className, size = "default", ...props }) {
10
19
  return /* @__PURE__ */ jsx("div", {
11
20
  "data-slot": "input-group",
21
+ "data-size": size,
12
22
  role: "group",
13
- className: cn("border-edge dark:bg-edge/30 has-[[data-slot=input-group-control]:focus-visible]:border-focus has-[[data-slot=input-group-control]:focus-visible]:ring-focus/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/30 has-[[data-slot][aria-invalid=true]]:border-destructive has-disabled:bg-edge/50 dark:has-disabled:bg-edge/80 group/input-group relative flex h-8 w-full min-w-0 items-center rounded-md border transition-colors outline-hidden in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 not-has-disabled:has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-3 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className),
23
+ className: cn(inputGroupVariants({ size }), className),
14
24
  ...props
15
25
  });
16
26
  }
17
- const inputGroupAddonVariants = cva("text-muted h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-sm [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none", {
27
+ const inputGroupAddonVariants = cva("text-muted h-auto gap-2 has-[>button]:gap-[3px] py-2 not-has-[>button]:group-data-[size=xs]/input-group:py-1 not-has-[>button]:group-data-[size=sm]/input-group:py-1.5 not-has-[>button]:group-data-[size=lg]/input-group:py-2.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none", {
18
28
  variants: { align: {
19
- "inline-start": "pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem] order-first",
20
- "inline-end": "pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem] order-last",
21
- "block-start": "px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start",
22
- "block-end": "px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start"
29
+ "inline-start": "order-first ps-3 not-has-[>button]:group-data-[size=xs]/input-group:ps-2 not-has-[>button]:group-data-[size=sm]/input-group:ps-3 not-has-[>button]:group-data-[size=lg]/input-group:ps-4 has-[>kbd]:-ms-1 has-[>button]:self-stretch has-[>button]:py-[3px] has-[>button]:ps-[3px] [&>button]:h-full",
30
+ "inline-end": "order-last pe-3 not-has-[>button]:group-data-[size=xs]/input-group:pe-2 not-has-[>button]:group-data-[size=sm]/input-group:pe-3 not-has-[>button]:group-data-[size=lg]/input-group:pe-4 has-[>kbd]:-me-1 has-[>button]:self-stretch has-[>button]:py-[3px] has-[>button]:pe-[3px] [&>button]:h-full",
31
+ "block-start": "order-first w-full justify-start px-3 group-data-[size=xs]/input-group:px-2 group-data-[size=sm]/input-group:px-3 group-data-[size=lg]/input-group:px-4 pt-3 group-has-[>input]/input-group:pt-3.5 [.border-b]:pb-3.5",
32
+ "block-end": "order-last w-full justify-start px-3 group-data-[size=xs]/input-group:px-2 group-data-[size=sm]/input-group:px-3 group-data-[size=lg]/input-group:px-4 pb-3 group-has-[>input]/input-group:pb-3.5 [.border-t]:pt-3.5"
23
33
  } },
24
34
  defaultVariants: { align: "inline-start" }
25
35
  });
@@ -36,16 +46,14 @@ function InputGroupAddon({ className, align = "inline-start", ...props }) {
36
46
  ...props
37
47
  });
38
48
  }
39
- const inputGroupButtonVariants = cva("gap-2 text-sm shadow-none flex items-center", {
49
+ const inputGroupButtonVariants = cva("shadow-none flex items-center gap-1.5 rounded-md text-sm [&>svg:not([class*='size-'])]:size-4 group-data-[size=xs]/input-group:gap-1 group-data-[size=xs]/input-group:rounded-sm group-data-[size=xs]/input-group:text-xs group-data-[size=xs]/input-group:[&>svg:not([class*='size-'])]:size-3.5", {
40
50
  variants: { size: {
41
- xs: "h-6 gap-1 rounded-sm px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
42
- sm: "h-7 gap-1.5 rounded-sm px-2 [&>svg:not([class*='size-'])]:size-4",
43
- "icon-xs": "size-6 rounded-sm p-0",
44
- "icon-sm": "size-8 p-0"
51
+ default: "h-7 px-2 group-data-[size=xs]/input-group:px-1.5 group-data-[size=lg]/input-group:px-2.5",
52
+ icon: "h-6 aspect-square p-0"
45
53
  } },
46
- defaultVariants: { size: "xs" }
54
+ defaultVariants: { size: "default" }
47
55
  });
48
- function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }) {
56
+ function InputGroupButton({ className, type = "button", variant = "default", size = "default", ...props }) {
49
57
  return /* @__PURE__ */ jsx(Button, {
50
58
  type,
51
59
  "data-size": size,
@@ -64,16 +72,16 @@ function InputGroupText({ className, ...props }) {
64
72
  function InputGroupInput({ className, ...props }) {
65
73
  return /* @__PURE__ */ jsx(Input, {
66
74
  "data-slot": "input-group-control",
67
- className: cn("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", className),
75
+ className: cn("h-full flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 group-data-[size=xs]/input-group:px-2 group-data-[size=xs]/input-group:text-xs group-data-[size=sm]/input-group:px-3 group-data-[size=sm]/input-group:text-sm group-data-[size=lg]/input-group:px-4 group-data-[size=lg]/input-group:text-lg", className),
68
76
  ...props
69
77
  });
70
78
  }
71
79
  function InputGroupTextarea({ className, ...props }) {
72
80
  return /* @__PURE__ */ jsx(Textarea, {
73
81
  "data-slot": "input-group-control",
74
- className: cn("flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", className),
82
+ className: cn("flex-1 rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0", className),
75
83
  ...props
76
84
  });
77
85
  }
78
86
  //#endregion
79
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants };
87
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupVariants };
@@ -1,33 +1,17 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
2
  import { OTPInput } from "input-otp";
4
-
5
3
  //#region src/input-otp.d.ts
6
4
  type InputOTPProps = React.ComponentProps<typeof OTPInput> & {
7
5
  containerClassName?: string;
8
6
  };
9
- declare function InputOTP({
10
- className,
11
- containerClassName,
12
- ...props
13
- }: InputOTPProps): _$react_jsx_runtime0.JSX.Element;
7
+ declare function InputOTP({ className, containerClassName, ...props }: InputOTPProps): React.JSX.Element;
14
8
  type InputOTPGroupProps = React.ComponentProps<"div">;
15
- declare function InputOTPGroup({
16
- className,
17
- ...props
18
- }: InputOTPGroupProps): _$react_jsx_runtime0.JSX.Element;
9
+ declare function InputOTPGroup({ className, ...props }: InputOTPGroupProps): React.JSX.Element;
19
10
  type InputOTPSlotProps = React.ComponentProps<"div"> & {
20
11
  index: number;
21
12
  };
22
- declare function InputOTPSlot({
23
- index,
24
- className,
25
- ...props
26
- }: InputOTPSlotProps): _$react_jsx_runtime0.JSX.Element;
13
+ declare function InputOTPSlot({ index, className, ...props }: InputOTPSlotProps): React.JSX.Element;
27
14
  type InputOTPSeparatorProps = React.ComponentProps<"div">;
28
- declare function InputOTPSeparator({
29
- className,
30
- ...props
31
- }: InputOTPSeparatorProps): _$react_jsx_runtime0.JSX.Element;
15
+ declare function InputOTPSeparator({ className, ...props }: InputOTPSeparatorProps): React.JSX.Element;
32
16
  //#endregion
33
17
  export { InputOTP, InputOTPGroup, type InputOTPGroupProps, type InputOTPProps, InputOTPSeparator, type InputOTPSeparatorProps, InputOTPSlot, type InputOTPSlotProps };
package/dist/input.d.ts CHANGED
@@ -1,19 +1,11 @@
1
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
1
  import * as React from "react";
3
2
  import { VariantProps } from "class-variance-authority";
4
3
  import { Input as Input$1 } from "@base-ui/react/input";
5
- import * as _$class_variance_authority_types0 from "class-variance-authority/types";
6
-
7
4
  //#region src/input.d.ts
8
5
  declare const inputVariants: (props?: ({
9
- size?: "default" | "sm" | "lg" | "xs" | null | undefined;
10
- } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
6
+ size?: "default" | "lg" | "sm" | "xs" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
8
  type InputProps = Omit<React.ComponentProps<typeof Input$1>, "size"> & VariantProps<typeof inputVariants>;
12
- declare function Input({
13
- className,
14
- type,
15
- size,
16
- ...props
17
- }: InputProps): _$react_jsx_runtime0.JSX.Element;
9
+ declare function Input({ className, type, size, ...props }: InputProps): React.JSX.Element;
18
10
  //#endregion
19
11
  export { Input, type InputProps, inputVariants };
package/dist/input.js CHANGED
@@ -3,12 +3,12 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { cva } from "class-variance-authority";
4
4
  import { Input as Input$1 } from "@base-ui/react/input";
5
5
  //#region src/input.tsx
6
- const inputVariants = cva("dark:bg-edge/30 hover:bg-edge/50 dark:hover:bg-edge/50 border-edge focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/30 aria-invalid:border-destructive disabled:bg-edge/50 dark:disabled:bg-edge/80 placeholder:text-soft flex w-full min-w-0 items-center overflow-hidden rounded-md border bg-transparent motion-color outline-hidden file:inline-flex file:my-[3px] file:items-center file:me-3 file:cursor-clickable file:rounded-md file:border-0 file:bg-primary file:px-2.5 file:leading-none file:font-medium file:text-white file:motion-color file:hover:bg-primary/80 focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-3", {
6
+ const inputVariants = cva("bg-edge hover:border-focus focus-visible:border-focus focus-visible:ring-focus/50 aria-invalid:ring-destructive/30 aria-invalid:border-destructive placeholder:text-soft flex w-full min-w-0 items-center overflow-hidden rounded-md border border-transparent motion-color outline-hidden file:inline-flex file:my-[3px] file:items-center file:me-3 file:cursor-clickable file:rounded-md file:border-0 file:bg-primary file:px-2.5 file:leading-none file:font-medium file:text-white file:motion-color file:hover:bg-primary/80 focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-30 aria-invalid:ring-3", {
7
7
  variants: { size: {
8
8
  xs: "h-6 rounded-sm px-2 text-xs file:-ms-[5px] file:h-4",
9
- sm: "h-8 px-2.5 text-base file:-ms-[7px] file:h-6 md:text-sm",
10
- default: "h-9 px-3 text-base file:-ms-[9px] file:h-7 md:text-sm",
11
- lg: "h-10 px-3.5 text-base file:-ms-[11px] file:h-8"
9
+ sm: "h-8 px-3 text-sm file:-ms-[9px] file:h-6",
10
+ default: "h-9 px-3 text-base file:-ms-[9px] file:h-7",
11
+ lg: "h-11 px-4 text-lg file:-ms-[13px] file:h-9"
12
12
  } },
13
13
  defaultVariants: { size: "default" }
14
14
  });