@waveso/ui 0.7.6 → 0.8.0

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 (256) hide show
  1. package/README.md +2 -3
  2. package/dist/accordion.d.ts +1 -2
  3. package/dist/accordion.js +0 -2
  4. package/dist/action-bar.d.ts +1 -2
  5. package/dist/action-bar.js +23 -10
  6. package/dist/alert-dialog.d.ts +1 -2
  7. package/dist/alert-dialog.js +1 -3
  8. package/dist/alert.d.ts +1 -2
  9. package/dist/alert.js +2 -4
  10. package/dist/animate.d.ts +1 -2
  11. package/dist/animate.js +34 -8
  12. package/dist/aspect-ratio.d.ts +1 -2
  13. package/dist/aspect-ratio.js +0 -2
  14. package/dist/autocomplete.d.ts +1 -2
  15. package/dist/autocomplete.js +0 -2
  16. package/dist/avatar.d.ts +1 -2
  17. package/dist/avatar.js +1 -3
  18. package/dist/badge.d.ts +1 -2
  19. package/dist/badge.js +0 -2
  20. package/dist/breadcrumb.d.ts +1 -2
  21. package/dist/breadcrumb.js +0 -2
  22. package/dist/button-group.d.ts +1 -2
  23. package/dist/button-group.js +0 -2
  24. package/dist/button.d.ts +2 -3
  25. package/dist/button.js +0 -2
  26. package/dist/card.d.ts +1 -2
  27. package/dist/card.js +0 -2
  28. package/dist/checkbox.d.ts +1 -2
  29. package/dist/checkbox.js +6 -8
  30. package/dist/collapsible.d.ts +1 -2
  31. package/dist/collapsible.js +0 -2
  32. package/dist/combobox.d.ts +1 -2
  33. package/dist/combobox.js +0 -2
  34. package/dist/context-menu.d.ts +1 -2
  35. package/dist/context-menu.js +1 -3
  36. package/dist/count.d.ts +1 -2
  37. package/dist/count.js +10 -7
  38. package/dist/dialog.d.ts +1 -2
  39. package/dist/dialog.js +1 -3
  40. package/dist/direction.js +0 -1
  41. package/dist/drawer.d.ts +1 -2
  42. package/dist/drawer.js +1 -3
  43. package/dist/encrypted-text.d.ts +1 -2
  44. package/dist/encrypted-text.js +4 -5
  45. package/dist/field.d.ts +1 -2
  46. package/dist/field.js +2 -4
  47. package/dist/film-grain-shader.d.ts +1 -2
  48. package/dist/film-grain-shader.js +0 -2
  49. package/dist/film-grain-webgl.d.ts +1 -4
  50. package/dist/film-grain-webgl.js +7 -6
  51. package/dist/film-grain.d.ts +1 -2
  52. package/dist/film-grain.js +0 -3
  53. package/dist/form.d.ts +1 -2
  54. package/dist/form.js +0 -2
  55. package/dist/gradient-reveal-text.d.ts +1 -2
  56. package/dist/gradient-reveal-text.js +29 -7
  57. package/dist/hooks/use-mobile.d.ts +1 -2
  58. package/dist/hooks/use-mobile.js +0 -2
  59. package/dist/infinite-scroll.d.ts +1 -2
  60. package/dist/infinite-scroll.js +10 -5
  61. package/dist/input-group.d.ts +2 -3
  62. package/dist/input-group.js +1 -3
  63. package/dist/input-otp.d.ts +1 -2
  64. package/dist/input-otp.js +3 -5
  65. package/dist/input.d.ts +1 -2
  66. package/dist/input.js +0 -2
  67. package/dist/item.d.ts +1 -2
  68. package/dist/item.js +3 -5
  69. package/dist/kbd.d.ts +1 -2
  70. package/dist/kbd.js +0 -2
  71. package/dist/label.d.ts +1 -2
  72. package/dist/label.js +0 -3
  73. package/dist/lib/focus.d.ts +1 -2
  74. package/dist/lib/focus.js +0 -2
  75. package/dist/lib/internal-icons.d.ts +1 -2
  76. package/dist/lib/internal-icons.js +0 -2
  77. package/dist/lib/utils.d.ts +1 -2
  78. package/dist/lib/utils.js +25 -3
  79. package/dist/masonry.d.ts +1 -2
  80. package/dist/masonry.js +0 -2
  81. package/dist/menu.d.ts +1 -2
  82. package/dist/menu.js +1 -3
  83. package/dist/menubar.d.ts +1 -2
  84. package/dist/menubar.js +1 -3
  85. package/dist/pagination.d.ts +1 -2
  86. package/dist/pagination.js +0 -2
  87. package/dist/popover.d.ts +1 -2
  88. package/dist/popover.js +0 -2
  89. package/dist/preview-card.d.ts +1 -2
  90. package/dist/preview-card.js +0 -2
  91. package/dist/progress.d.ts +1 -2
  92. package/dist/progress.js +0 -2
  93. package/dist/radio-group.d.ts +1 -2
  94. package/dist/radio-group.js +0 -2
  95. package/dist/radio.d.ts +1 -2
  96. package/dist/radio.js +1 -3
  97. package/dist/scroll-area.d.ts +1 -2
  98. package/dist/scroll-area.js +0 -2
  99. package/dist/select.d.ts +1 -2
  100. package/dist/select.js +1 -4
  101. package/dist/separator.d.ts +1 -2
  102. package/dist/separator.js +0 -2
  103. package/dist/sidebar.d.ts +1 -2
  104. package/dist/sidebar.js +0 -2
  105. package/dist/skeleton.d.ts +1 -2
  106. package/dist/skeleton.js +0 -2
  107. package/dist/slider.d.ts +1 -2
  108. package/dist/slider.js +0 -2
  109. package/dist/spinner.d.ts +1 -2
  110. package/dist/spinner.js +0 -2
  111. package/dist/styles.css +7 -3
  112. package/dist/switch.d.ts +7 -5
  113. package/dist/switch.js +18 -6
  114. package/dist/table.d.ts +1 -2
  115. package/dist/table.js +0 -3
  116. package/dist/tabs.d.ts +1 -2
  117. package/dist/tabs.js +0 -2
  118. package/dist/textarea.d.ts +1 -2
  119. package/dist/textarea.js +0 -2
  120. package/dist/toast.d.ts +1 -2
  121. package/dist/toast.js +1 -3
  122. package/dist/toggle-group.d.ts +2 -2
  123. package/dist/toggle-group.js +5 -4
  124. package/dist/toggle.d.ts +1 -2
  125. package/dist/toggle.js +2 -5
  126. package/dist/tooltip.d.ts +1 -2
  127. package/dist/tooltip.js +0 -2
  128. package/dist/typewriter.d.ts +1 -2
  129. package/dist/typewriter.js +6 -2
  130. package/package.json +24 -8
  131. package/dist/accordion.d.ts.map +0 -1
  132. package/dist/accordion.js.map +0 -1
  133. package/dist/action-bar.d.ts.map +0 -1
  134. package/dist/action-bar.js.map +0 -1
  135. package/dist/alert-dialog.d.ts.map +0 -1
  136. package/dist/alert-dialog.js.map +0 -1
  137. package/dist/alert.d.ts.map +0 -1
  138. package/dist/alert.js.map +0 -1
  139. package/dist/animate.d.ts.map +0 -1
  140. package/dist/animate.js.map +0 -1
  141. package/dist/aspect-ratio.d.ts.map +0 -1
  142. package/dist/aspect-ratio.js.map +0 -1
  143. package/dist/autocomplete.d.ts.map +0 -1
  144. package/dist/autocomplete.js.map +0 -1
  145. package/dist/avatar.d.ts.map +0 -1
  146. package/dist/avatar.js.map +0 -1
  147. package/dist/badge.d.ts.map +0 -1
  148. package/dist/badge.js.map +0 -1
  149. package/dist/breadcrumb.d.ts.map +0 -1
  150. package/dist/breadcrumb.js.map +0 -1
  151. package/dist/button-group.d.ts.map +0 -1
  152. package/dist/button-group.js.map +0 -1
  153. package/dist/button.d.ts.map +0 -1
  154. package/dist/button.js.map +0 -1
  155. package/dist/card.d.ts.map +0 -1
  156. package/dist/card.js.map +0 -1
  157. package/dist/checkbox.d.ts.map +0 -1
  158. package/dist/checkbox.js.map +0 -1
  159. package/dist/collapsible.d.ts.map +0 -1
  160. package/dist/collapsible.js.map +0 -1
  161. package/dist/combobox.d.ts.map +0 -1
  162. package/dist/combobox.js.map +0 -1
  163. package/dist/context-menu.d.ts.map +0 -1
  164. package/dist/context-menu.js.map +0 -1
  165. package/dist/count.d.ts.map +0 -1
  166. package/dist/count.js.map +0 -1
  167. package/dist/dialog.d.ts.map +0 -1
  168. package/dist/dialog.js.map +0 -1
  169. package/dist/drawer.d.ts.map +0 -1
  170. package/dist/drawer.js.map +0 -1
  171. package/dist/encrypted-text.d.ts.map +0 -1
  172. package/dist/encrypted-text.js.map +0 -1
  173. package/dist/field.d.ts.map +0 -1
  174. package/dist/field.js.map +0 -1
  175. package/dist/film-grain-shader.d.ts.map +0 -1
  176. package/dist/film-grain-shader.js.map +0 -1
  177. package/dist/film-grain-webgl.d.ts.map +0 -1
  178. package/dist/film-grain-webgl.js.map +0 -1
  179. package/dist/film-grain.d.ts.map +0 -1
  180. package/dist/film-grain.js.map +0 -1
  181. package/dist/form.d.ts.map +0 -1
  182. package/dist/form.js.map +0 -1
  183. package/dist/gradient-reveal-text.d.ts.map +0 -1
  184. package/dist/gradient-reveal-text.js.map +0 -1
  185. package/dist/hooks/use-mobile.d.ts.map +0 -1
  186. package/dist/hooks/use-mobile.js.map +0 -1
  187. package/dist/infinite-scroll.d.ts.map +0 -1
  188. package/dist/infinite-scroll.js.map +0 -1
  189. package/dist/input-group.d.ts.map +0 -1
  190. package/dist/input-group.js.map +0 -1
  191. package/dist/input-otp.d.ts.map +0 -1
  192. package/dist/input-otp.js.map +0 -1
  193. package/dist/input.d.ts.map +0 -1
  194. package/dist/input.js.map +0 -1
  195. package/dist/item.d.ts.map +0 -1
  196. package/dist/item.js.map +0 -1
  197. package/dist/kbd.d.ts.map +0 -1
  198. package/dist/kbd.js.map +0 -1
  199. package/dist/label.d.ts.map +0 -1
  200. package/dist/label.js.map +0 -1
  201. package/dist/lib/focus.d.ts.map +0 -1
  202. package/dist/lib/focus.js.map +0 -1
  203. package/dist/lib/internal-icons.d.ts.map +0 -1
  204. package/dist/lib/internal-icons.js.map +0 -1
  205. package/dist/lib/utils.d.ts.map +0 -1
  206. package/dist/lib/utils.js.map +0 -1
  207. package/dist/masonry.d.ts.map +0 -1
  208. package/dist/masonry.js.map +0 -1
  209. package/dist/menu.d.ts.map +0 -1
  210. package/dist/menu.js.map +0 -1
  211. package/dist/menubar.d.ts.map +0 -1
  212. package/dist/menubar.js.map +0 -1
  213. package/dist/pagination.d.ts.map +0 -1
  214. package/dist/pagination.js.map +0 -1
  215. package/dist/popover.d.ts.map +0 -1
  216. package/dist/popover.js.map +0 -1
  217. package/dist/preview-card.d.ts.map +0 -1
  218. package/dist/preview-card.js.map +0 -1
  219. package/dist/progress.d.ts.map +0 -1
  220. package/dist/progress.js.map +0 -1
  221. package/dist/radio-group.d.ts.map +0 -1
  222. package/dist/radio-group.js.map +0 -1
  223. package/dist/radio.d.ts.map +0 -1
  224. package/dist/radio.js.map +0 -1
  225. package/dist/scroll-area.d.ts.map +0 -1
  226. package/dist/scroll-area.js.map +0 -1
  227. package/dist/select.d.ts.map +0 -1
  228. package/dist/select.js.map +0 -1
  229. package/dist/separator.d.ts.map +0 -1
  230. package/dist/separator.js.map +0 -1
  231. package/dist/sidebar.d.ts.map +0 -1
  232. package/dist/sidebar.js.map +0 -1
  233. package/dist/skeleton.d.ts.map +0 -1
  234. package/dist/skeleton.js.map +0 -1
  235. package/dist/slider.d.ts.map +0 -1
  236. package/dist/slider.js.map +0 -1
  237. package/dist/spinner.d.ts.map +0 -1
  238. package/dist/spinner.js.map +0 -1
  239. package/dist/switch.d.ts.map +0 -1
  240. package/dist/switch.js.map +0 -1
  241. package/dist/table.d.ts.map +0 -1
  242. package/dist/table.js.map +0 -1
  243. package/dist/tabs.d.ts.map +0 -1
  244. package/dist/tabs.js.map +0 -1
  245. package/dist/textarea.d.ts.map +0 -1
  246. package/dist/textarea.js.map +0 -1
  247. package/dist/toast.d.ts.map +0 -1
  248. package/dist/toast.js.map +0 -1
  249. package/dist/toggle-group.d.ts.map +0 -1
  250. package/dist/toggle-group.js.map +0 -1
  251. package/dist/toggle.d.ts.map +0 -1
  252. package/dist/toggle.js.map +0 -1
  253. package/dist/tooltip.d.ts.map +0 -1
  254. package/dist/tooltip.js.map +0 -1
  255. package/dist/typewriter.d.ts.map +0 -1
  256. package/dist/typewriter.js.map +0 -1
package/dist/drawer.js CHANGED
@@ -33,7 +33,7 @@ function DrawerClose({ ...props }) {
33
33
  function DrawerOverlay({ className, ...props }) {
34
34
  return /* @__PURE__ */ jsx(Drawer$1.Backdrop, {
35
35
  "data-slot": "drawer-overlay",
36
- className: cn("motion-scrim fixed inset-0 z-50 bg-black/10 supports-backdrop-filter:backdrop-blur-xs", className),
36
+ className: cn("motion-scrim fixed inset-0 z-50 bg-scrim supports-backdrop-filter:backdrop-blur-xs", className),
37
37
  ...props
38
38
  });
39
39
  }
@@ -97,5 +97,3 @@ function DrawerDescription({ className, ...props }) {
97
97
  }
98
98
  //#endregion
99
99
  export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
100
-
101
- //# sourceMappingURL=drawer.js.map
@@ -25,5 +25,4 @@ declare function EncryptedText({
25
25
  ...props
26
26
  }: EncryptedTextProps): _$react_jsx_runtime0.JSX.Element | null;
27
27
  //#endregion
28
- export { EncryptedText };
29
- //# sourceMappingURL=encrypted-text.d.ts.map
28
+ export { EncryptedText };
@@ -23,7 +23,7 @@ function EncryptedText({ text, className, revealDelayMs = 50, charset = DEFAULT_
23
23
  const animationFrameRef = React.useRef(null);
24
24
  const startTimeRef = React.useRef(0);
25
25
  const lastFlipTimeRef = React.useRef(0);
26
- const scrambleCharsRef = React.useRef(text ? scramblePreservingSpaces(text, charset).split("") : []);
26
+ const scrambleCharsRef = React.useRef([]);
27
27
  React.useEffect(() => {
28
28
  if (prefersReducedMotion) return;
29
29
  const el = ref.current;
@@ -71,6 +71,7 @@ function EncryptedText({ text, className, revealDelayMs = 50, charset = DEFAULT_
71
71
  if (now - lastFlipTimeRef.current >= Math.max(0, flipDelayMs)) {
72
72
  for (let index = currentRevealCount; index < totalLength; index += 1) scrambleCharsRef.current[index] = text[index] === " " ? " " : randomChar(charset);
73
73
  lastFlipTimeRef.current = now;
74
+ setFlipTick((t) => t + 1 & 65535);
74
75
  }
75
76
  animationFrameRef.current = requestAnimationFrame(update);
76
77
  };
@@ -99,8 +100,8 @@ function EncryptedText({ text, className, revealDelayMs = 50, charset = DEFAULT_
99
100
  className: "sr-only",
100
101
  children: text
101
102
  }), text.split("").map((char, index) => {
102
- const isRevealed = prefersReducedMotion || !scrambleOnly && index < revealCount;
103
- const displayChar = isRevealed ? char : char === " " ? " " : scrambleCharsRef.current[index] ?? randomChar(charset);
103
+ const isRevealed = prefersReducedMotion || !isInView || !scrambleOnly && index < revealCount;
104
+ const displayChar = isRevealed ? char : char === " " ? " " : scrambleCharsRef.current[index] ?? char;
104
105
  return /* @__PURE__ */ jsx("span", {
105
106
  "aria-hidden": "true",
106
107
  "data-slot": "encrypted-text-char",
@@ -113,5 +114,3 @@ function EncryptedText({ text, className, revealDelayMs = 50, charset = DEFAULT_
113
114
  }
114
115
  //#endregion
115
116
  export { EncryptedText };
116
-
117
- //# sourceMappingURL=encrypted-text.js.map
package/dist/field.d.ts CHANGED
@@ -37,5 +37,4 @@ declare function FieldError({
37
37
  }: FieldErrorProps): _$react_jsx_runtime0.JSX.Element;
38
38
  declare const FieldValidity: React.FC<_$_base_ui_react0.FieldValidityProps>;
39
39
  //#endregion
40
- export { Field, FieldControl, FieldControlProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorProps, FieldItem, FieldItemProps, FieldLabel, FieldLabelProps, FieldPrimitive, FieldProps, FieldValidity, FieldValidityProps };
41
- //# sourceMappingURL=field.d.ts.map
40
+ export { Field, FieldControl, FieldControlProps, FieldDescription, FieldDescriptionProps, FieldError, FieldErrorProps, FieldItem, FieldItemProps, FieldLabel, FieldLabelProps, FieldPrimitive, FieldProps, FieldValidity, FieldValidityProps };
package/dist/field.js CHANGED
@@ -21,14 +21,14 @@ function FieldLabel({ className, ...props }) {
21
21
  function FieldControl({ className, ...props }) {
22
22
  return /* @__PURE__ */ jsx(FieldPrimitive.Control, {
23
23
  "data-slot": "field-control",
24
- className: cn("rounded-md outline-none focus-visible:ring-3 focus-visible:ring-focus/50 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50", className),
24
+ className: cn("data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50", className),
25
25
  ...props
26
26
  });
27
27
  }
28
28
  function FieldDescription({ className, ...props }) {
29
29
  return /* @__PURE__ */ jsx(FieldPrimitive.Description, {
30
30
  "data-slot": "field-description",
31
- className: cn("text-muted text-left text-sm leading-normal font-normal group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5", "last:mt-0 nth-last-2:-mt-1", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", className),
31
+ className: cn("text-muted text-left text-sm leading-normal font-normal", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", className),
32
32
  ...props
33
33
  });
34
34
  }
@@ -49,5 +49,3 @@ function FieldError({ className, ...props }) {
49
49
  const FieldValidity = FieldPrimitive.Validity;
50
50
  //#endregion
51
51
  export { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldPrimitive, FieldValidity };
52
-
53
- //# sourceMappingURL=field.js.map
@@ -2,5 +2,4 @@
2
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
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
4
  //#endregion
5
- export { fragmentShader, vertexShader };
6
- //# sourceMappingURL=film-grain-shader.d.ts.map
5
+ export { fragmentShader, vertexShader };
@@ -84,5 +84,3 @@ void main() {
84
84
  `;
85
85
  //#endregion
86
86
  export { fragmentShader, vertexShader };
87
-
88
- //# sourceMappingURL=film-grain-shader.js.map
@@ -3,7 +3,6 @@ import * as _$react from "react";
3
3
  //#region src/film-grain-webgl.d.ts
4
4
  interface UseFilmGrainOptions {
5
5
  density: number;
6
- opacity: number;
7
6
  /** Target FPS for both WebGL and canvas fallback. Default 18 */
8
7
  fps?: number;
9
8
  /** Hex color for canvas fallback grain. Default '#ffffff' */
@@ -11,10 +10,8 @@ interface UseFilmGrainOptions {
11
10
  }
12
11
  declare function useFilmGrain({
13
12
  density,
14
- opacity,
15
13
  fps,
16
14
  color
17
15
  }: UseFilmGrainOptions): _$react.RefObject<HTMLCanvasElement | null>;
18
16
  //#endregion
19
- export { useFilmGrain };
20
- //# sourceMappingURL=film-grain-webgl.d.ts.map
17
+ export { useFilmGrain };
@@ -96,7 +96,7 @@ function generateGrainTexture(width, height, density, color) {
96
96
  ctx.putImageData(imageData, 0, 0);
97
97
  return offscreen;
98
98
  }
99
- function useFilmGrain({ density, opacity, fps = 18, color = "#ffffff" }) {
99
+ function useFilmGrain({ density, fps = 18, color = "#ffffff" }) {
100
100
  const canvasRef = useRef(null);
101
101
  const rafRef = useRef(0);
102
102
  const visibleRef = useRef(true);
@@ -122,14 +122,18 @@ function useFilmGrain({ density, opacity, fps = 18, color = "#ffffff" }) {
122
122
  dpr
123
123
  };
124
124
  };
125
- const gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
125
+ const canGetWebGL = (c) => (c.getContext("webgl") || c.getContext("experimental-webgl")) ?? null;
126
+ const probeGl = canGetWebGL(document.createElement("canvas"));
127
+ const webglSupported = probeGl ? initWebGL(probeGl) !== null : false;
128
+ probeGl?.getExtension("WEBGL_lose_context")?.loseContext();
129
+ const gl = webglSupported ? canGetWebGL(canvas) : null;
126
130
  const uniforms = gl ? initWebGL(gl) : null;
127
131
  if (gl && uniforms) {
128
132
  let contextLost = false;
129
133
  const [cr, cg, cb] = parseHex(color);
130
134
  const setUniforms = () => {
131
135
  setUniform1f(gl, uniforms.uDensity, density);
132
- setUniform1f(gl, uniforms.uOpacity, opacity);
136
+ setUniform1f(gl, uniforms.uOpacity, 1);
133
137
  setUniform1f(gl, uniforms.uFps, fps);
134
138
  setUniform3f(gl, uniforms.uColor, cr / 255, cg / 255, cb / 255);
135
139
  };
@@ -293,7 +297,6 @@ function useFilmGrain({ density, opacity, fps = 18, color = "#ffffff" }) {
293
297
  };
294
298
  }, [
295
299
  density,
296
- opacity,
297
300
  fps,
298
301
  interval,
299
302
  color
@@ -302,5 +305,3 @@ function useFilmGrain({ density, opacity, fps = 18, color = "#ffffff" }) {
302
305
  }
303
306
  //#endregion
304
307
  export { useFilmGrain };
305
-
306
- //# sourceMappingURL=film-grain-webgl.js.map
@@ -21,5 +21,4 @@ declare function FilmGrain({
21
21
  style
22
22
  }: FilmGrainProps): _$react_jsx_runtime0.JSX.Element;
23
23
  //#endregion
24
- export { FilmGrain, type FilmGrainProps };
25
- //# sourceMappingURL=film-grain.d.ts.map
24
+ export { FilmGrain, type FilmGrainProps };
@@ -7,7 +7,6 @@ import { jsx } from "react/jsx-runtime";
7
7
  function FilmGrain({ density = .6, opacity = .08, blendMode = "overlay", fps = 18, color = "#ffffff", className, style }) {
8
8
  const canvasRef = useFilmGrain({
9
9
  density,
10
- opacity,
11
10
  fps,
12
11
  color
13
12
  });
@@ -29,5 +28,3 @@ function FilmGrain({ density = .6, opacity = .08, blendMode = "overlay", fps = 1
29
28
  }
30
29
  //#endregion
31
30
  export { FilmGrain };
32
-
33
- //# sourceMappingURL=film-grain.js.map
package/dist/form.d.ts CHANGED
@@ -94,5 +94,4 @@ declare function fieldControlProps<TFieldValues extends FieldValues, TName exten
94
94
  onChange: (...event: any[]) => void;
95
95
  };
96
96
  //#endregion
97
- export { Form, FormActions, FormError, FormField, type FormFieldProps, type FormFieldRenderArgs, FormMessage, FormRoot, fieldControlProps, useForm, useWatch };
98
- //# sourceMappingURL=form.d.ts.map
97
+ export { Form, FormActions, FormError, FormField, type FormFieldProps, type FormFieldRenderArgs, FormMessage, FormRoot, fieldControlProps, useForm, useWatch };
package/dist/form.js CHANGED
@@ -125,5 +125,3 @@ function fieldControlProps(field, opts) {
125
125
  }
126
126
  //#endregion
127
127
  export { Form, FormActions, FormError, FormField, FormMessage, FormRoot, fieldControlProps, useForm, useWatch };
128
-
129
- //# sourceMappingURL=form.js.map
@@ -48,5 +48,4 @@ declare function GradientRevealText({
48
48
  className
49
49
  }: GradientRevealTextProps): _$react_jsx_runtime0.JSX.Element;
50
50
  //#endregion
51
- export { GradientRevealText, type GradientRevealTextProps };
52
- //# sourceMappingURL=gradient-reveal-text.d.ts.map
51
+ export { GradientRevealText, type GradientRevealTextProps };
@@ -45,6 +45,7 @@ function GradientRevealText({ text, duration = 0, colors = DEFAULT_COLORS, baseO
45
45
  cy: .5
46
46
  });
47
47
  const rafId = useRef(0);
48
+ const requestFollow = useRef(() => {});
48
49
  const measure = useCallback(() => {
49
50
  const el = textRef.current;
50
51
  if (!el) return;
@@ -61,7 +62,11 @@ function GradientRevealText({ text, duration = 0, colors = DEFAULT_COLORS, baseO
61
62
  useEffect(() => {
62
63
  measure();
63
64
  document.fonts?.ready?.then(measure);
64
- }, [text, measure]);
65
+ }, [
66
+ text,
67
+ fontFamily,
68
+ measure
69
+ ]);
65
70
  const applyGradientPos = useCallback((cx, cy) => {
66
71
  const el = gradientRef.current;
67
72
  if (!el) return;
@@ -71,18 +76,37 @@ function GradientRevealText({ text, duration = 0, colors = DEFAULT_COLORS, baseO
71
76
  el.setAttribute("cy", String(svgCy));
72
77
  }, [vb]);
73
78
  useEffect(() => {
74
- if (duration <= 0) return;
79
+ if (duration <= 0) {
80
+ requestFollow.current = () => {};
81
+ return;
82
+ }
75
83
  const speed = 1 - Math.pow(.001, 1 / (duration * 60));
84
+ const EPSILON = 5e-4;
76
85
  const tick = () => {
77
86
  const cur = currentPos.current;
78
87
  const tgt = targetPos.current;
79
88
  cur.cx += (tgt.cx - cur.cx) * speed;
80
89
  cur.cy += (tgt.cy - cur.cy) * speed;
81
90
  applyGradientPos(cur.cx, cur.cy);
91
+ if (Math.abs(tgt.cx - cur.cx) < EPSILON && Math.abs(tgt.cy - cur.cy) < EPSILON) {
92
+ cur.cx = tgt.cx;
93
+ cur.cy = tgt.cy;
94
+ applyGradientPos(cur.cx, cur.cy);
95
+ rafId.current = 0;
96
+ return;
97
+ }
82
98
  rafId.current = requestAnimationFrame(tick);
83
99
  };
84
- rafId.current = requestAnimationFrame(tick);
85
- return () => cancelAnimationFrame(rafId.current);
100
+ requestFollow.current = () => {
101
+ if (rafId.current === 0) rafId.current = requestAnimationFrame(tick);
102
+ };
103
+ return () => {
104
+ requestFollow.current = () => {};
105
+ if (rafId.current !== 0) {
106
+ cancelAnimationFrame(rafId.current);
107
+ rafId.current = 0;
108
+ }
109
+ };
86
110
  }, [duration, applyGradientPos]);
87
111
  const updatePos = (e) => {
88
112
  const svg = svgRef.current;
@@ -100,7 +124,7 @@ function GradientRevealText({ text, duration = 0, colors = DEFAULT_COLORS, baseO
100
124
  cy
101
125
  };
102
126
  applyGradientPos(cx, cy);
103
- }
127
+ } else requestFollow.current();
104
128
  };
105
129
  const handleMouseEnter = (e) => {
106
130
  const svg = svgRef.current;
@@ -239,5 +263,3 @@ function GradientRevealText({ text, duration = 0, colors = DEFAULT_COLORS, baseO
239
263
  }
240
264
  //#endregion
241
265
  export { GradientRevealText };
242
-
243
- //# sourceMappingURL=gradient-reveal-text.js.map
@@ -6,5 +6,4 @@
6
6
  */
7
7
  declare function useIsMobile(breakpoint?: number): boolean;
8
8
  //#endregion
9
- export { useIsMobile };
10
- //# sourceMappingURL=use-mobile.d.ts.map
9
+ export { useIsMobile };
@@ -25,5 +25,3 @@ function useIsMobile(breakpoint = DEFAULT_MOBILE_BREAKPOINT) {
25
25
  }
26
26
  //#endregion
27
27
  export { useIsMobile };
28
-
29
- //# sourceMappingURL=use-mobile.js.map
@@ -29,5 +29,4 @@ declare function InfiniteScroll({
29
29
  children
30
30
  }: InfiniteScrollProps): _$react_jsx_runtime0.JSX.Element;
31
31
  //#endregion
32
- export { InfiniteScroll, type InfiniteScrollProps };
33
- //# sourceMappingURL=infinite-scroll.d.ts.map
32
+ export { InfiniteScroll, type InfiniteScrollProps };
@@ -53,14 +53,19 @@ function InfiniteScroll({ onLoadMore, hasMore, isLoading = false, direction = "d
53
53
  "aria-busy": isLoading,
54
54
  className: cn("flex flex-col", className),
55
55
  children: [
56
- direction === "up" && /* @__PURE__ */ jsxs(Fragment, { children: [sentinel, loaderContent] }),
56
+ direction === "up" && /* @__PURE__ */ jsxs(Fragment, { children: [
57
+ sentinel,
58
+ loaderContent,
59
+ endContent
60
+ ] }),
57
61
  children,
58
- direction === "down" && /* @__PURE__ */ jsxs(Fragment, { children: [sentinel, loaderContent] }),
59
- endContent
62
+ direction === "down" && /* @__PURE__ */ jsxs(Fragment, { children: [
63
+ sentinel,
64
+ loaderContent,
65
+ endContent
66
+ ] })
60
67
  ]
61
68
  });
62
69
  }
63
70
  //#endregion
64
71
  export { InfiniteScroll };
65
-
66
- //# sourceMappingURL=infinite-scroll.js.map
@@ -18,7 +18,7 @@ declare function InputGroup({
18
18
  ...props
19
19
  }: InputGroupProps): _$react_jsx_runtime0.JSX.Element;
20
20
  declare const inputGroupAddonVariants: (props?: ({
21
- align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
21
+ align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
22
22
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
23
23
  declare function InputGroupAddon({
24
24
  className,
@@ -48,5 +48,4 @@ declare function InputGroupTextarea({
48
48
  ...props
49
49
  }: InputGroupTextareaProps): _$react_jsx_runtime0.JSX.Element;
50
50
  //#endregion
51
- export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
52
- //# sourceMappingURL=input-group.d.ts.map
51
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
@@ -32,7 +32,7 @@ function InputGroupAddon({ className, align = "inline-start", ...props }) {
32
32
  className: cn(inputGroupAddonVariants({ align }), className),
33
33
  onClick: (e) => {
34
34
  if (e.target.closest("button")) return;
35
- e.currentTarget.parentElement?.querySelector("input")?.focus();
35
+ e.currentTarget.parentElement?.querySelector("input, textarea")?.focus();
36
36
  },
37
37
  ...props
38
38
  });
@@ -78,5 +78,3 @@ function InputGroupTextarea({ className, ...props }) {
78
78
  }
79
79
  //#endregion
80
80
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
81
-
82
- //# sourceMappingURL=input-group.js.map
@@ -30,5 +30,4 @@ declare function InputOTPSeparator({
30
30
  ...props
31
31
  }: InputOTPSeparatorProps): _$react_jsx_runtime0.JSX.Element;
32
32
  //#endregion
33
- export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
34
- //# sourceMappingURL=input-otp.d.ts.map
33
+ export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
package/dist/input-otp.js CHANGED
@@ -8,7 +8,7 @@ import { OTPInput, OTPInputContext } from "input-otp";
8
8
  function InputOTP({ className, containerClassName, ...props }) {
9
9
  return /* @__PURE__ */ jsx(OTPInput, {
10
10
  "data-slot": "input-otp",
11
- containerClassName: cn("flex items-center has-disabled:opacity-50", containerClassName),
11
+ containerClassName: cn("group/input-otp flex items-center has-disabled:opacity-50", containerClassName),
12
12
  spellCheck: false,
13
13
  className: cn("disabled:cursor-not-allowed", className),
14
14
  ...props
@@ -17,7 +17,7 @@ function InputOTP({ className, containerClassName, ...props }) {
17
17
  function InputOTPGroup({ className, ...props }) {
18
18
  return /* @__PURE__ */ jsx("div", {
19
19
  "data-slot": "input-otp-group",
20
- className: cn("flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40", className),
20
+ className: cn("flex items-center rounded-md", className),
21
21
  ...props
22
22
  });
23
23
  }
@@ -26,7 +26,7 @@ function InputOTPSlot({ index, className, ...props }) {
26
26
  return /* @__PURE__ */ jsxs("div", {
27
27
  "data-slot": "input-otp-slot",
28
28
  "data-active": isActive || void 0,
29
- className: cn("border-edge dark:bg-edge/30 relative flex size-9 items-center justify-center border-y border-r text-sm motion-color outline-none first:rounded-l-md first:border-l last:rounded-r-md", "data-active:border-focus data-active:ring-3 data-active:ring-focus/50 data-active:z-10", "aria-invalid:border-destructive data-active:aria-invalid:border-destructive data-active:aria-invalid:ring-destructive/20 dark:data-active:aria-invalid:ring-destructive/40", className),
29
+ className: cn("border-edge dark:bg-edge/30 relative flex size-9 items-center justify-center border-y border-r text-sm motion-color outline-none first:rounded-l-md first:border-l last:rounded-r-md", "data-active:border-focus data-active:ring-3 data-active:ring-focus/50 data-active:z-10", "group-has-aria-invalid/input-otp:border-destructive group-has-aria-invalid/input-otp:data-active:ring-3 group-has-aria-invalid/input-otp:data-active:ring-destructive/20 dark:group-has-aria-invalid/input-otp:data-active:ring-destructive/40", className),
30
30
  ...props,
31
31
  children: [char, hasFakeCaret && /* @__PURE__ */ jsx("div", {
32
32
  className: "pointer-events-none absolute inset-0 flex items-center justify-center",
@@ -45,5 +45,3 @@ function InputOTPSeparator({ className, ...props }) {
45
45
  }
46
46
  //#endregion
47
47
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
48
-
49
- //# sourceMappingURL=input-otp.js.map
package/dist/input.d.ts CHANGED
@@ -9,5 +9,4 @@ declare function Input({
9
9
  ...props
10
10
  }: InputProps): _$react_jsx_runtime0.JSX.Element;
11
11
  //#endregion
12
- export { Input };
13
- //# sourceMappingURL=input.d.ts.map
12
+ export { Input };
package/dist/input.js CHANGED
@@ -13,5 +13,3 @@ function Input({ className, type, ...props }) {
13
13
  }
14
14
  //#endregion
15
15
  export { Input };
16
-
17
- //# sourceMappingURL=input.js.map
package/dist/item.d.ts CHANGED
@@ -68,5 +68,4 @@ declare function ItemFooter({
68
68
  ...props
69
69
  }: ItemFooterProps): _$react_jsx_runtime0.JSX.Element;
70
70
  //#endregion
71
- export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
72
- //# sourceMappingURL=item.d.ts.map
71
+ export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
package/dist/item.js CHANGED
@@ -7,7 +7,7 @@ import { cva } from "class-variance-authority";
7
7
  import { mergeProps } from "@base-ui/react/merge-props";
8
8
  import { useRender } from "@base-ui/react/use-render";
9
9
  //#region src/item.tsx
10
- const itemVariants = cva("[a]:hover:bg-secondary rounded-md border text-sm w-full group/item focus-visible:border-focus focus-visible:ring-focus/50 flex items-center flex-wrap outline-none transition-colors duration-200 focus-visible:ring-3 [a]:transition-colors", {
10
+ const itemVariants = cva("[a]:hover:bg-secondary rounded-md border text-sm w-full group/item focus-visible:border-focus focus-visible:ring-focus/50 flex items-center flex-wrap outline-none motion-color focus-visible:ring-3", {
11
11
  variants: {
12
12
  variant: {
13
13
  default: "border-transparent",
@@ -16,8 +16,8 @@ const itemVariants = cva("[a]:hover:bg-secondary rounded-md border text-sm w-ful
16
16
  },
17
17
  size: {
18
18
  default: "gap-2.5 px-3 py-2.5",
19
- sm: "gap-2.5 px-3 py-2.5",
20
- xs: "gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0"
19
+ sm: "gap-2 px-3 py-2",
20
+ xs: "gap-2 px-2.5 py-2 in-data-[slot=menu-content]:p-0"
21
21
  }
22
22
  },
23
23
  defaultVariants: {
@@ -119,5 +119,3 @@ function ItemFooter({ className, ...props }) {
119
119
  }
120
120
  //#endregion
121
121
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
122
-
123
- //# sourceMappingURL=item.js.map
package/dist/kbd.d.ts CHANGED
@@ -12,5 +12,4 @@ declare function KbdGroup({
12
12
  ...props
13
13
  }: KbdGroupProps): _$react_jsx_runtime0.JSX.Element;
14
14
  //#endregion
15
- export { Kbd, KbdGroup, type KbdGroupProps, type KbdProps };
16
- //# sourceMappingURL=kbd.d.ts.map
15
+ export { Kbd, KbdGroup, type KbdGroupProps, type KbdProps };
package/dist/kbd.js CHANGED
@@ -17,5 +17,3 @@ function KbdGroup({ className, ...props }) {
17
17
  }
18
18
  //#endregion
19
19
  export { Kbd, KbdGroup };
20
-
21
- //# sourceMappingURL=kbd.js.map
package/dist/label.d.ts CHANGED
@@ -8,5 +8,4 @@ declare function Label({
8
8
  ...props
9
9
  }: LabelProps): _$react_jsx_runtime0.JSX.Element;
10
10
  //#endregion
11
- export { Label };
12
- //# sourceMappingURL=label.d.ts.map
11
+ export { Label };
package/dist/label.js CHANGED
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { cn } from "./lib/utils.js";
3
2
  import "react";
4
3
  import { jsx } from "react/jsx-runtime";
@@ -12,5 +11,3 @@ function Label({ className, ...props }) {
12
11
  }
13
12
  //#endregion
14
13
  export { Label };
15
-
16
- //# sourceMappingURL=label.js.map
@@ -38,5 +38,4 @@ type RestoreFocusOnClose = "always" | "keyboard" | "never";
38
38
  */
39
39
  declare function resolveFinalFocus(restoreFocusOnClose: RestoreFocusOnClose | undefined, finalFocus: FinalFocus | undefined): FinalFocus | undefined;
40
40
  //#endregion
41
- export { RestoreFocusOnClose, resolveFinalFocus };
42
- //# sourceMappingURL=focus.d.ts.map
41
+ export { RestoreFocusOnClose, resolveFinalFocus };
package/dist/lib/focus.js CHANGED
@@ -17,5 +17,3 @@ function resolveFinalFocus(restoreFocusOnClose, finalFocus) {
17
17
  }
18
18
  //#endregion
19
19
  export { resolveFinalFocus };
20
-
21
- //# sourceMappingURL=focus.js.map
@@ -28,5 +28,4 @@ declare function ErrorCircleIcon(props: IconProps): _$react_jsx_runtime0.JSX.Ele
28
28
  declare function TrashIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
29
29
  declare function StarIcon(props: IconProps): _$react_jsx_runtime0.JSX.Element;
30
30
  //#endregion
31
- export { AlertTriangleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CloseIcon, EllipsisIcon, EllipsisVerticalIcon, ErrorCircleIcon, InfoCircleIcon, LoaderIcon, MinusIcon, SidebarPanelIcon, StarIcon, SuccessCircleIcon, TrashIcon };
32
- //# sourceMappingURL=internal-icons.d.ts.map
31
+ export { AlertTriangleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CloseIcon, EllipsisIcon, EllipsisVerticalIcon, ErrorCircleIcon, InfoCircleIcon, LoaderIcon, MinusIcon, SidebarPanelIcon, StarIcon, SuccessCircleIcon, TrashIcon };
@@ -220,5 +220,3 @@ function StarIcon(props) {
220
220
  }
221
221
  //#endregion
222
222
  export { AlertTriangleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CloseIcon, EllipsisIcon, EllipsisVerticalIcon, ErrorCircleIcon, InfoCircleIcon, LoaderIcon, MinusIcon, SidebarPanelIcon, StarIcon, SuccessCircleIcon, TrashIcon };
223
-
224
- //# sourceMappingURL=internal-icons.js.map
@@ -38,5 +38,4 @@ type CnValue<State> = ClassValue | ((state: State) => ClassValue);
38
38
  declare function cn(...inputs: ClassValue[]): string;
39
39
  declare function cn<State>(...inputs: CnValue<State>[]): (state: State) => string;
40
40
  //#endregion
41
- export { cn };
42
- //# sourceMappingURL=utils.d.ts.map
41
+ export { cn };
package/dist/lib/utils.js CHANGED
@@ -1,6 +1,30 @@
1
1
  import { clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
2
+ import { extendTailwindMerge } from "tailwind-merge";
3
3
  //#region src/lib/utils.ts
4
+ /**
5
+ * tailwind-merge, taught about the library's custom utilities so they
6
+ * conflict-resolve like built-ins:
7
+ * - the enter/exit motion recipes (`motion-scale/slide/fade/pop-*`) are mutually
8
+ * exclusive — the last one applied wins (e.g. a consumer overriding a
9
+ * component's default animation). `motion-color` / `motion-scrim` are left out
10
+ * on purpose: they compose with an enter recipe on the same element.
11
+ * - `cursor-clickable` joins the built-in `cursor` group.
12
+ */
13
+ const twMerge = extendTailwindMerge({ extend: { classGroups: {
14
+ "motion-enter": [
15
+ "motion-scale-sm",
16
+ "motion-scale-md",
17
+ "motion-scale-lg",
18
+ "motion-slide-sm",
19
+ "motion-slide-md",
20
+ "motion-slide-lg",
21
+ "motion-fade-sm",
22
+ "motion-fade-md",
23
+ "motion-fade-lg",
24
+ "motion-pop-md"
25
+ ],
26
+ cursor: ["cursor-clickable"]
27
+ } } });
4
28
  function cn(...inputs) {
5
29
  if (!inputs.some((v) => typeof v === "function")) return twMerge(clsx(inputs));
6
30
  return (state) => {
@@ -9,5 +33,3 @@ function cn(...inputs) {
9
33
  }
10
34
  //#endregion
11
35
  export { cn };
12
-
13
- //# sourceMappingURL=utils.js.map
package/dist/masonry.d.ts CHANGED
@@ -27,5 +27,4 @@ declare function MasonryItem({
27
27
  ...props
28
28
  }: MasonryItemProps): _$react_jsx_runtime0.JSX.Element;
29
29
  //#endregion
30
- export { Masonry, MasonryItem };
31
- //# sourceMappingURL=masonry.d.ts.map
30
+ export { Masonry, MasonryItem };
package/dist/masonry.js CHANGED
@@ -196,5 +196,3 @@ function MasonryItem({ className, span, children, ...props }) {
196
196
  }
197
197
  //#endregion
198
198
  export { Masonry, MasonryItem };
199
-
200
- //# sourceMappingURL=masonry.js.map
package/dist/menu.d.ts CHANGED
@@ -101,5 +101,4 @@ declare function MenuShortcut({
101
101
  ...props
102
102
  }: MenuShortcutProps): _$react_jsx_runtime0.JSX.Element;
103
103
  //#endregion
104
- export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger };
105
- //# sourceMappingURL=menu.d.ts.map
104
+ export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger };
package/dist/menu.js CHANGED
@@ -73,7 +73,7 @@ function MenuSubTrigger({ className, inset, children, ...props }) {
73
73
  return /* @__PURE__ */ jsxs(Menu$1.SubmenuTrigger, {
74
74
  "data-slot": "menu-sub-trigger",
75
75
  "data-inset": inset,
76
- className: cn("focus:bg-primary focus:text-white data-open:bg-primary data-open:text-white not-data-[variant=destructive]:focus:**:text-white data-popup-open:bg-primary data-popup-open:text-white flex cursor-clickable items-center gap-1.5 rounded-sm px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
76
+ className: cn("focus:bg-primary focus:text-white focus:**:text-white data-popup-open:bg-primary data-popup-open:text-white flex cursor-clickable items-center gap-1.5 rounded-sm px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
77
77
  ...props,
78
78
  children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto" })]
79
79
  });
@@ -138,5 +138,3 @@ function MenuShortcut({ className, ...props }) {
138
138
  }
139
139
  //#endregion
140
140
  export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger };
141
-
142
- //# sourceMappingURL=menu.js.map
package/dist/menubar.d.ts CHANGED
@@ -74,5 +74,4 @@ declare function MenubarSubContent({
74
74
  ...props
75
75
  }: MenubarSubContentProps): _$react_jsx_runtime0.JSX.Element;
76
76
  //#endregion
77
- export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
78
- //# sourceMappingURL=menubar.d.ts.map
77
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };