@once-ui-system/core 1.4.32 → 1.5.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 (189) hide show
  1. package/.eslintrc.json +3 -3
  2. package/{LICENSE → LICENSE.md} +1 -1
  3. package/dist/components/Animation.d.ts +34 -0
  4. package/dist/components/Animation.d.ts.map +1 -0
  5. package/dist/components/Animation.js +230 -0
  6. package/dist/components/Animation.js.map +1 -0
  7. package/dist/components/ArrowNavigationContext.d.ts.map +1 -1
  8. package/dist/components/ArrowNavigationContext.js +2 -1
  9. package/dist/components/ArrowNavigationContext.js.map +1 -1
  10. package/dist/components/AutoScroll.module.scss +8 -8
  11. package/dist/components/Background.d.ts.map +1 -1
  12. package/dist/components/Background.js +23 -15
  13. package/dist/components/Background.js.map +1 -1
  14. package/dist/components/Button.d.ts +1 -0
  15. package/dist/components/Button.d.ts.map +1 -1
  16. package/dist/components/Button.js +2 -2
  17. package/dist/components/Button.js.map +1 -1
  18. package/dist/components/Card.d.ts.map +1 -1
  19. package/dist/components/Card.js +2 -4
  20. package/dist/components/Card.js.map +1 -1
  21. package/dist/components/Card.module.scss +4 -2
  22. package/dist/components/Carousel.module.scss +31 -31
  23. package/dist/components/ClientFlex.d.ts.map +1 -1
  24. package/dist/components/ClientFlex.js +8 -58
  25. package/dist/components/ClientFlex.js.map +1 -1
  26. package/dist/components/ClientGrid.d.ts.map +1 -1
  27. package/dist/components/ClientGrid.js +8 -58
  28. package/dist/components/ClientGrid.js.map +1 -1
  29. package/dist/components/ColorInput.d.ts.map +1 -1
  30. package/dist/components/ColorInput.js +5 -19
  31. package/dist/components/ColorInput.js.map +1 -1
  32. package/dist/components/CompareImage.d.ts.map +1 -1
  33. package/dist/components/CompareImage.js +1 -1
  34. package/dist/components/CompareImage.js.map +1 -1
  35. package/dist/components/Dialog.module.scss +32 -32
  36. package/dist/components/DropdownWrapper.d.ts.map +1 -1
  37. package/dist/components/DropdownWrapper.js +144 -30
  38. package/dist/components/DropdownWrapper.js.map +1 -1
  39. package/dist/components/EmojiPicker.d.ts.map +1 -1
  40. package/dist/components/EmojiPicker.js +14 -12
  41. package/dist/components/EmojiPicker.js.map +1 -1
  42. package/dist/components/EmojiPicker.module.scss +14 -0
  43. package/dist/components/EmojiPickerDropdown.d.ts.map +1 -1
  44. package/dist/components/EmojiPickerDropdown.js +1 -1
  45. package/dist/components/EmojiPickerDropdown.js.map +1 -1
  46. package/dist/components/Flex.d.ts.map +1 -1
  47. package/dist/components/Flex.js +1 -80
  48. package/dist/components/Flex.js.map +1 -1
  49. package/dist/components/Grid.d.ts.map +1 -1
  50. package/dist/components/Grid.js +1 -80
  51. package/dist/components/Grid.js.map +1 -1
  52. package/dist/components/Hover.d.ts +14 -0
  53. package/dist/components/Hover.d.ts.map +1 -0
  54. package/dist/components/Hover.js +99 -0
  55. package/dist/components/Hover.js.map +1 -0
  56. package/dist/components/Hover.module.scss +12 -0
  57. package/dist/components/HoverCard.d.ts +5 -0
  58. package/dist/components/HoverCard.d.ts.map +1 -0
  59. package/dist/components/HoverCard.js +10 -0
  60. package/dist/components/HoverCard.js.map +1 -0
  61. package/dist/components/HoverCard.module.scss +12 -0
  62. package/dist/components/Icon.d.ts.map +1 -1
  63. package/dist/components/Icon.js +8 -19
  64. package/dist/components/Icon.js.map +1 -1
  65. package/dist/components/IconButton.d.ts.map +1 -1
  66. package/dist/components/IconButton.js +9 -20
  67. package/dist/components/IconButton.js.map +1 -1
  68. package/dist/components/IconButton.module.scss +0 -24
  69. package/dist/components/Input.d.ts +1 -0
  70. package/dist/components/Input.d.ts.map +1 -1
  71. package/dist/components/Input.js +6 -2
  72. package/dist/components/Input.js.map +1 -1
  73. package/dist/components/MatrixFx.d.ts +15 -0
  74. package/dist/components/MatrixFx.d.ts.map +1 -0
  75. package/dist/components/MatrixFx.js +307 -0
  76. package/dist/components/MatrixFx.js.map +1 -0
  77. package/dist/components/Option.d.ts.map +1 -1
  78. package/dist/components/Option.js +38 -7
  79. package/dist/components/Option.js.map +1 -1
  80. package/dist/components/Option.module.scss +13 -10
  81. package/dist/components/Particle.d.ts +2 -1
  82. package/dist/components/Particle.d.ts.map +1 -1
  83. package/dist/components/Particle.js +27 -6
  84. package/dist/components/Particle.js.map +1 -1
  85. package/dist/components/Select.d.ts.map +1 -1
  86. package/dist/components/Select.js +41 -31
  87. package/dist/components/Select.js.map +1 -1
  88. package/dist/components/ServerFlex.d.ts +1 -0
  89. package/dist/components/ServerFlex.d.ts.map +1 -1
  90. package/dist/components/ServerFlex.js +37 -22
  91. package/dist/components/ServerFlex.js.map +1 -1
  92. package/dist/components/ServerGrid.d.ts +1 -0
  93. package/dist/components/ServerGrid.d.ts.map +1 -1
  94. package/dist/components/ServerGrid.js +7 -2
  95. package/dist/components/ServerGrid.js.map +1 -1
  96. package/dist/components/SharedInteractiveStyles.module.scss +1 -1
  97. package/dist/components/ShineFx.d.ts +11 -0
  98. package/dist/components/ShineFx.d.ts.map +1 -0
  99. package/dist/components/ShineFx.js +15 -0
  100. package/dist/components/ShineFx.js.map +1 -0
  101. package/dist/components/ShineFx.module.scss +33 -0
  102. package/dist/components/Swiper.d.ts +17 -0
  103. package/dist/components/Swiper.d.ts.map +1 -0
  104. package/dist/components/Swiper.js +170 -0
  105. package/dist/components/Swiper.js.map +1 -0
  106. package/dist/components/Swiper.module.scss +31 -0
  107. package/dist/components/Switch.module.scss +1 -1
  108. package/dist/components/Textarea.d.ts +1 -0
  109. package/dist/components/Textarea.d.ts.map +1 -1
  110. package/dist/components/Textarea.js +6 -2
  111. package/dist/components/Textarea.js.map +1 -1
  112. package/dist/components/TiltFx.d.ts +1 -0
  113. package/dist/components/TiltFx.d.ts.map +1 -1
  114. package/dist/components/TiltFx.js +5 -4
  115. package/dist/components/TiltFx.js.map +1 -1
  116. package/dist/components/Timeline.d.ts +18 -0
  117. package/dist/components/Timeline.d.ts.map +1 -0
  118. package/dist/components/Timeline.js +28 -0
  119. package/dist/components/Timeline.js.map +1 -0
  120. package/dist/components/Tooltip.d.ts +2 -2
  121. package/dist/components/Tooltip.d.ts.map +1 -1
  122. package/dist/components/Tooltip.js +4 -3
  123. package/dist/components/Tooltip.js.map +1 -1
  124. package/dist/components/Tooltip.module.scss +14 -0
  125. package/dist/components/TypeFx.d.ts +15 -0
  126. package/dist/components/TypeFx.d.ts.map +1 -0
  127. package/dist/components/TypeFx.js +105 -0
  128. package/dist/components/TypeFx.js.map +1 -0
  129. package/dist/components/UserMenu.d.ts.map +1 -1
  130. package/dist/components/UserMenu.js +3 -3
  131. package/dist/components/UserMenu.js.map +1 -1
  132. package/dist/components/index.d.ts +8 -0
  133. package/dist/components/index.d.ts.map +1 -1
  134. package/dist/components/index.js +8 -0
  135. package/dist/components/index.js.map +1 -1
  136. package/dist/contexts/LayoutProvider.d.ts +1 -0
  137. package/dist/contexts/LayoutProvider.d.ts.map +1 -1
  138. package/dist/contexts/LayoutProvider.js +30 -4
  139. package/dist/contexts/LayoutProvider.js.map +1 -1
  140. package/dist/css/styles.css +1 -1
  141. package/dist/css/styles.css.map +1 -1
  142. package/dist/css/tokens.css +1 -1
  143. package/dist/css/tokens.css.map +1 -1
  144. package/dist/data/emoji-data.json +0 -8
  145. package/dist/hooks/useResponsiveClasses.d.ts +9 -0
  146. package/dist/hooks/useResponsiveClasses.d.ts.map +1 -0
  147. package/dist/hooks/useResponsiveClasses.js +250 -0
  148. package/dist/hooks/useResponsiveClasses.js.map +1 -0
  149. package/dist/icons.d.ts.map +1 -1
  150. package/dist/icons.js +3 -1
  151. package/dist/icons.js.map +1 -1
  152. package/dist/interfaces.d.ts +1 -0
  153. package/dist/interfaces.d.ts.map +1 -1
  154. package/dist/modules/code/CodeBlock.d.ts.map +1 -1
  155. package/dist/modules/code/CodeBlock.js +17 -7
  156. package/dist/modules/code/CodeBlock.js.map +1 -1
  157. package/dist/modules/code/LineNumber.css +34 -34
  158. package/dist/modules/navigation/HeadingLink.d.ts +2 -2
  159. package/dist/modules/navigation/HeadingLink.d.ts.map +1 -1
  160. package/dist/modules/navigation/HeadingLink.js +3 -3
  161. package/dist/modules/navigation/HeadingLink.js.map +1 -1
  162. package/dist/modules/navigation/HeadingLink.module.scss +5 -14
  163. package/dist/modules/navigation/HeadingNav.d.ts +1 -0
  164. package/dist/modules/navigation/HeadingNav.d.ts.map +1 -1
  165. package/dist/modules/navigation/HeadingNav.js +32 -30
  166. package/dist/modules/navigation/HeadingNav.js.map +1 -1
  167. package/dist/modules/navigation/Kbar.d.ts.map +1 -1
  168. package/dist/modules/navigation/Kbar.js +40 -99
  169. package/dist/modules/navigation/Kbar.js.map +1 -1
  170. package/dist/modules/navigation/MegaMenu.d.ts +1 -0
  171. package/dist/modules/navigation/MegaMenu.d.ts.map +1 -1
  172. package/dist/modules/navigation/MegaMenu.js +121 -44
  173. package/dist/modules/navigation/MegaMenu.js.map +1 -1
  174. package/dist/package.json +10 -1
  175. package/dist/styles/border.scss +36 -0
  176. package/dist/styles/breakpoints.scss +7 -0
  177. package/dist/styles/display.scss +64 -0
  178. package/dist/styles/flex.scss +87 -0
  179. package/dist/styles/global.scss +3 -24
  180. package/dist/styles/grid.scss +58 -0
  181. package/dist/styles/position.scss +310 -0
  182. package/dist/styles/typography.scss +36 -10
  183. package/dist/tokens/border.scss +28 -4
  184. package/dist/tokens/theme.scss +2 -0
  185. package/dist/tokens/typography.scss +5 -1
  186. package/package.json +10 -1
  187. package/README.md +0 -159
  188. package/USAGE.md +0 -55
  189. package/dist/README.md +0 -159
@@ -0,0 +1,307 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { useEffect, useRef } from "react";
4
+ import { Flex } from ".";
5
+ const MatrixFx = React.forwardRef(({ speed = 1, colors = ["brand-solid-medium"], size = 3, spacing = 3, revealFrom = "center", trigger = "instant", flicker = false, children, ...rest }, forwardedRef) => {
6
+ const containerRef = useRef(null);
7
+ const canvasRef = useRef(null);
8
+ const animationRef = useRef(undefined);
9
+ const revealStartTimeRef = useRef(Date.now());
10
+ const hideStartTimeRef = useRef(Date.now());
11
+ const maxRevealProgressRef = useRef(0);
12
+ const hideStartProgressRef = useRef(0);
13
+ const isHoveredRef = useRef(false);
14
+ const mountAnimationCompleteRef = useRef(false);
15
+ useEffect(() => {
16
+ if (forwardedRef) {
17
+ if ("current" in forwardedRef) {
18
+ forwardedRef.current = containerRef.current;
19
+ }
20
+ else if (typeof forwardedRef === "function") {
21
+ forwardedRef(containerRef.current);
22
+ }
23
+ }
24
+ }, [forwardedRef]);
25
+ useEffect(() => {
26
+ const canvas = canvasRef.current;
27
+ const container = containerRef.current;
28
+ if (!canvas || !container)
29
+ return;
30
+ const ctx = canvas.getContext("2d");
31
+ if (!ctx)
32
+ return;
33
+ // Set canvas size
34
+ let canvasWidth = 0;
35
+ let canvasHeight = 0;
36
+ const updateSize = () => {
37
+ const rect = container.getBoundingClientRect();
38
+ canvasWidth = rect.width;
39
+ canvasHeight = rect.height;
40
+ canvas.width = rect.width * 2; // 2x for retina
41
+ canvas.height = rect.height * 2;
42
+ canvas.style.width = `${rect.width}px`;
43
+ canvas.style.height = `${rect.height}px`;
44
+ ctx.scale(2, 2); // Scale for retina
45
+ };
46
+ updateSize();
47
+ window.addEventListener("resize", updateSize);
48
+ // Parse colors - convert token names to CSS variables
49
+ const parsedColors = colors.map((color) => {
50
+ // Get computed value from CSS variable
51
+ const computedColor = getComputedStyle(container).getPropertyValue(`--${color}`);
52
+ return computedColor || color;
53
+ });
54
+ // Create dot grid
55
+ const totalSize = size + spacing;
56
+ const cols = Math.ceil(canvasWidth / totalSize);
57
+ const rows = Math.ceil(canvasHeight / totalSize);
58
+ const dots = [];
59
+ for (let row = 0; row < rows; row++) {
60
+ for (let col = 0; col < cols; col++) {
61
+ const x = col * totalSize + size / 2;
62
+ const y = row * totalSize + size / 2;
63
+ // Calculate distance from reveal origin
64
+ let distanceFromOrigin = 0;
65
+ const centerX = canvasWidth / 2;
66
+ const centerY = canvasHeight / 2;
67
+ switch (revealFrom) {
68
+ case "center":
69
+ const dx = x - centerX;
70
+ const dy = y - centerY;
71
+ distanceFromOrigin = Math.sqrt(dx * dx + dy * dy);
72
+ break;
73
+ case "top":
74
+ distanceFromOrigin = y;
75
+ break;
76
+ case "bottom":
77
+ distanceFromOrigin = canvasHeight - y;
78
+ break;
79
+ case "left":
80
+ distanceFromOrigin = x;
81
+ break;
82
+ case "right":
83
+ distanceFromOrigin = canvasWidth - x;
84
+ break;
85
+ }
86
+ dots.push({
87
+ x,
88
+ y,
89
+ gridX: col,
90
+ gridY: row,
91
+ color: parsedColors[Math.floor(Math.random() * parsedColors.length)],
92
+ baseOpacity: 0.3 + Math.random() * 0.7,
93
+ distanceFromOrigin,
94
+ randomOffset: Math.random() * 0.3,
95
+ flickerPhase: Math.random() * Math.PI * 2, // Random starting point
96
+ flickerSpeed: 0.8 + Math.random() * 0.4, // Random speed between 0.8 and 1.2
97
+ });
98
+ }
99
+ }
100
+ // Find max distance for normalization
101
+ const maxDistance = Math.max(...dots.map((d) => d.distanceFromOrigin));
102
+ // Animation loop
103
+ const startTime = Date.now();
104
+ const animate = () => {
105
+ ctx.clearRect(0, 0, canvasWidth, canvasHeight);
106
+ const time = (Date.now() - startTime) / 1000; // Time in seconds
107
+ // For instant trigger, show all dots immediately at full opacity
108
+ if (trigger === "instant") {
109
+ dots.forEach((dot) => {
110
+ ctx.fillStyle = dot.color;
111
+ let opacity = dot.baseOpacity;
112
+ // Apply flicker effect if enabled
113
+ if (flicker) {
114
+ const flickerValue = Math.sin(time * dot.flickerSpeed * 3 + dot.flickerPhase);
115
+ const flickerMultiplier = 0.6 + (flickerValue * 0.4); // Oscillate between 0.6 and 1.0
116
+ opacity *= flickerMultiplier;
117
+ }
118
+ ctx.globalAlpha = opacity;
119
+ ctx.fillRect(dot.x, dot.y, size, size);
120
+ });
121
+ ctx.globalAlpha = 1;
122
+ animationRef.current = requestAnimationFrame(animate);
123
+ return;
124
+ }
125
+ // For mount trigger - progressive reveal on load, then static
126
+ if (trigger === "mount") {
127
+ if (!mountAnimationCompleteRef.current) {
128
+ // Revealing animation with explosive easing
129
+ const now = Date.now();
130
+ const elapsed = (now - revealStartTimeRef.current) / 1000;
131
+ // Cubic easing: starts very slow, then explodes
132
+ const revealProgress = Math.pow(elapsed, 3) * speed * 3;
133
+ // Check if animation is complete (max offset is ~1.3)
134
+ if (revealProgress >= 2.0) {
135
+ mountAnimationCompleteRef.current = true;
136
+ }
137
+ dots.forEach((dot) => {
138
+ const normalizedDistance = dot.distanceFromOrigin / maxDistance;
139
+ const introOffset = normalizedDistance * 0.8 + dot.randomOffset * 0.5;
140
+ let opacity = 0;
141
+ if (revealProgress > introOffset) {
142
+ const fadeIn = (revealProgress - introOffset) * 8;
143
+ opacity = Math.min(1, fadeIn * fadeIn) * dot.baseOpacity;
144
+ // Apply flicker effect if enabled
145
+ if (flicker) {
146
+ const flickerValue = Math.sin(time * dot.flickerSpeed * 3 + dot.flickerPhase);
147
+ const flickerMultiplier = 0.6 + (flickerValue * 0.4);
148
+ opacity *= flickerMultiplier;
149
+ }
150
+ }
151
+ if (opacity > 0) {
152
+ ctx.fillStyle = dot.color;
153
+ ctx.globalAlpha = opacity;
154
+ ctx.fillRect(dot.x, dot.y, size, size);
155
+ }
156
+ });
157
+ }
158
+ else {
159
+ // Animation complete - show all dots with optional flicker
160
+ dots.forEach((dot) => {
161
+ ctx.fillStyle = dot.color;
162
+ let opacity = dot.baseOpacity;
163
+ if (flicker) {
164
+ const flickerValue = Math.sin(time * dot.flickerSpeed * 3 + dot.flickerPhase);
165
+ const flickerMultiplier = 0.6 + (flickerValue * 0.4);
166
+ opacity *= flickerMultiplier;
167
+ }
168
+ ctx.globalAlpha = opacity;
169
+ ctx.fillRect(dot.x, dot.y, size, size);
170
+ });
171
+ }
172
+ ctx.globalAlpha = 1;
173
+ animationRef.current = requestAnimationFrame(animate);
174
+ return;
175
+ }
176
+ // For hover trigger with animation
177
+ if (isHoveredRef.current) {
178
+ // Revealing animation with explosive easing
179
+ const now = Date.now();
180
+ const elapsed = (now - revealStartTimeRef.current) / 1000;
181
+ // Cubic easing: starts very slow, then explodes
182
+ const revealProgress = Math.pow(elapsed, 3) * speed * 3;
183
+ // Cap progress to prevent infinite growth (max offset is ~1.3)
184
+ const cappedProgress = Math.min(revealProgress, 2.0);
185
+ // Track maximum progress for reverse animation
186
+ maxRevealProgressRef.current = cappedProgress;
187
+ dots.forEach((dot) => {
188
+ const normalizedDistance = dot.distanceFromOrigin / maxDistance;
189
+ const introOffset = normalizedDistance * 0.8 + dot.randomOffset * 0.5; // Much lower threshold
190
+ let opacity = 0;
191
+ if (cappedProgress > introOffset) {
192
+ // Explosive opacity increase
193
+ const fadeIn = (cappedProgress - introOffset) * 8; // Faster fade-in
194
+ opacity = Math.min(1, fadeIn * fadeIn) * dot.baseOpacity;
195
+ // Apply flicker effect if enabled
196
+ if (flicker) {
197
+ const flickerValue = Math.sin(time * dot.flickerSpeed * 3 + dot.flickerPhase);
198
+ const flickerMultiplier = 0.6 + (flickerValue * 0.4); // Oscillate between 0.6 and 1.0
199
+ opacity *= flickerMultiplier;
200
+ }
201
+ }
202
+ if (opacity > 0) {
203
+ ctx.fillStyle = dot.color;
204
+ ctx.globalAlpha = opacity;
205
+ ctx.fillRect(dot.x, dot.y, size, size);
206
+ }
207
+ });
208
+ }
209
+ else {
210
+ // Reverse animation when hover ends - only run if there's something to hide
211
+ if (hideStartProgressRef.current > 0) {
212
+ const elapsed = (Date.now() - hideStartTimeRef.current) / 1000;
213
+ // Use quadratic easing for faster hide (power of 2)
214
+ const hideSpeed = speed * 6; // Faster to handle max progress of 2.0
215
+ const hideProgress = Math.pow(elapsed, 2) * hideSpeed;
216
+ // Reverse from the progress we had when hide started
217
+ const reverseProgress = Math.max(0, hideStartProgressRef.current - hideProgress);
218
+ if (reverseProgress > 0.01) { // Small threshold to ensure completion
219
+ // Still have dots to hide
220
+ dots.forEach((dot) => {
221
+ const normalizedDistance = dot.distanceFromOrigin / maxDistance;
222
+ const introOffset = normalizedDistance * 0.8 + dot.randomOffset * 0.5;
223
+ let opacity = 0;
224
+ if (reverseProgress > introOffset) {
225
+ const fadeIn = (reverseProgress - introOffset) * 8;
226
+ opacity = Math.min(1, fadeIn * fadeIn) * dot.baseOpacity;
227
+ // Apply flicker effect if enabled
228
+ if (flicker) {
229
+ const flickerValue = Math.sin(time * dot.flickerSpeed * 3 + dot.flickerPhase);
230
+ const flickerMultiplier = 0.6 + (flickerValue * 0.4);
231
+ opacity *= flickerMultiplier;
232
+ }
233
+ }
234
+ if (opacity > 0) {
235
+ ctx.fillStyle = dot.color;
236
+ ctx.globalAlpha = opacity;
237
+ ctx.fillRect(dot.x, dot.y, size, size);
238
+ }
239
+ });
240
+ }
241
+ else {
242
+ // Hide animation complete, reset progress and clear canvas
243
+ hideStartProgressRef.current = 0;
244
+ }
245
+ }
246
+ }
247
+ ctx.globalAlpha = 1;
248
+ animationRef.current = requestAnimationFrame(animate);
249
+ };
250
+ animate();
251
+ return () => {
252
+ window.removeEventListener("resize", updateSize);
253
+ if (animationRef.current) {
254
+ cancelAnimationFrame(animationRef.current);
255
+ }
256
+ };
257
+ }, [colors, size, spacing, speed, revealFrom, trigger, flicker]);
258
+ const handleMouseEnter = () => {
259
+ if (trigger === "hover" && !isHoveredRef.current) {
260
+ const now = Date.now();
261
+ // If we're currently hiding, resume from where we left off
262
+ if (hideStartProgressRef.current > 0) {
263
+ // Calculate current position during hide
264
+ const hideElapsed = (now - hideStartTimeRef.current) / 1000;
265
+ const hideSpeed = speed * 6;
266
+ const hideProgress = Math.pow(hideElapsed, 2) * hideSpeed;
267
+ const currentProgress = Math.max(0, hideStartProgressRef.current - hideProgress);
268
+ // Reverse the cubic easing formula: progress = elapsed^3 * speed * 3
269
+ // So: elapsed = (progress / (speed * 3)) ^ (1/3)
270
+ const effectiveElapsed = Math.pow(currentProgress / (speed * 3), 1 / 3);
271
+ const simulatedStartTime = now - effectiveElapsed * 1000;
272
+ revealStartTimeRef.current = simulatedStartTime;
273
+ }
274
+ else {
275
+ // Fresh start
276
+ revealStartTimeRef.current = now;
277
+ }
278
+ isHoveredRef.current = true;
279
+ hideStartProgressRef.current = 0; // Clear hide state
280
+ }
281
+ };
282
+ const handleMouseMove = () => {
283
+ // Recovery mechanism: if cursor is moving over the element but we're not in hover state, trigger it
284
+ if (trigger === "hover" && !isHoveredRef.current) {
285
+ handleMouseEnter();
286
+ }
287
+ };
288
+ const handleMouseLeave = () => {
289
+ if (trigger === "hover" && isHoveredRef.current) {
290
+ const currentProgress = maxRevealProgressRef.current;
291
+ hideStartTimeRef.current = Date.now();
292
+ hideStartProgressRef.current = currentProgress; // Capture current progress
293
+ isHoveredRef.current = false;
294
+ }
295
+ };
296
+ return (_jsxs(Flex, { ref: containerRef, fill: true, overflow: "hidden", onMouseEnter: handleMouseEnter, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, ...rest, children: [_jsx("canvas", { ref: canvasRef, style: {
297
+ position: "absolute",
298
+ top: 0,
299
+ left: 0,
300
+ width: "100%",
301
+ height: "100%",
302
+ pointerEvents: "none", // Let mouse events pass through to parent
303
+ } }), children] }));
304
+ });
305
+ MatrixFx.displayName = "MatrixFx";
306
+ export { MatrixFx };
307
+ //# sourceMappingURL=MatrixFx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatrixFx.js","sourceRoot":"","sources":["../../src/components/MatrixFx.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../src/components/Option.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6B,GAAG,EAAE,MAAM,GAAG,CAAC;AAEnD,OAAO,KAAiE,MAAM,OAAO,CAAC;AAEtF,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,CAAC;IACpF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,MAAM,iGAsIX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../src/components/Option.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6B,GAAG,EAAE,MAAM,GAAG,CAAC;AAEnD,OAAO,KAAiE,MAAM,OAAO,CAAC;AAEtF,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,CAAC;IACpF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,MAAM,iGAmKX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -19,8 +19,17 @@ const Option = forwardRef(({ label, value, href, hasPrefix, hasSuffix, descripti
19
19
  (mutation.attributeName === "class" || mutation.attributeName === "data-highlighted")) {
20
20
  if (mutation.target instanceof HTMLElement) {
21
21
  const element = mutation.target;
22
- setIsHighlightedByClass(element.classList.contains("highlighted") ||
23
- element.getAttribute("data-highlighted") === "true");
22
+ const hasHighlighted = element.classList.contains("highlighted") ||
23
+ element.getAttribute("data-highlighted") === "true";
24
+ // If highlighted class was just added but element is being hovered, remove it immediately
25
+ if (hasHighlighted && element.matches(':hover')) {
26
+ element.classList.remove('highlighted');
27
+ element.removeAttribute('data-highlighted');
28
+ setIsHighlightedByClass(false);
29
+ }
30
+ else {
31
+ setIsHighlightedByClass(hasHighlighted);
32
+ }
24
33
  }
25
34
  }
26
35
  });
@@ -30,10 +39,32 @@ const Option = forwardRef(({ label, value, href, hasPrefix, hasSuffix, descripti
30
39
  attributeFilter: ["class", "data-highlighted"],
31
40
  });
32
41
  // Initial check
33
- setIsHighlightedByClass(elementRef.current.classList.contains("highlighted") ||
34
- elementRef.current.getAttribute("data-highlighted") === "true");
42
+ const hasHighlighted = elementRef.current.classList.contains("highlighted") ||
43
+ elementRef.current.getAttribute("data-highlighted") === "true";
44
+ // Check if element is being hovered on initial check too
45
+ if (hasHighlighted && elementRef.current.matches(':hover')) {
46
+ elementRef.current.classList.remove('highlighted');
47
+ elementRef.current.removeAttribute('data-highlighted');
48
+ setIsHighlightedByClass(false);
49
+ }
50
+ else {
51
+ setIsHighlightedByClass(hasHighlighted);
52
+ }
35
53
  return () => observer.disconnect();
36
54
  }, []);
55
+ // Sync hover state with keyboard navigation by removing highlight from ALL options including self
56
+ const handleMouseEnter = () => {
57
+ if (!disabled) {
58
+ // Remove highlighted class from ALL options (including self) to let CSS :hover take over
59
+ if (elementRef.current?.parentElement) {
60
+ const allOptions = elementRef.current.parentElement.querySelectorAll('[role="option"]');
61
+ allOptions.forEach((option) => {
62
+ option.classList.remove('highlighted');
63
+ option.removeAttribute('data-highlighted');
64
+ });
65
+ }
66
+ }
67
+ };
37
68
  return (_jsx(ElementType, { tabIndex: tabIndex, ref: (el) => {
38
69
  // Forward the ref
39
70
  if (typeof ref === "function") {
@@ -44,7 +75,7 @@ const Option = forwardRef(({ label, value, href, hasPrefix, hasSuffix, descripti
44
75
  }
45
76
  // Store our own ref
46
77
  elementRef.current = el;
47
- }, href: href, disabled: disabled, className: "reset-button-styles fill-width", onLinkClick: onLinkClick, onClick: () => onClick?.(value), "data-value": value, role: "option", "aria-selected": selected, "aria-disabled": disabled, onKeyDown: (e) => {
78
+ }, href: href, disabled: disabled, className: "reset-button-styles fill-width", onLinkClick: onLinkClick, onClick: () => onClick?.(value), onMouseEnter: handleMouseEnter, "data-value": value, role: "option", "aria-selected": selected, "aria-disabled": disabled, onKeyDown: (e) => {
48
79
  if ((e.key === "Enter" || e.key === " ") && !disabled) {
49
80
  e.preventDefault();
50
81
  e.stopPropagation();
@@ -55,9 +86,9 @@ const Option = forwardRef(({ label, value, href, hasPrefix, hasSuffix, descripti
55
86
  [styles.selected]: selected,
56
87
  [styles.highlighted]: highlighted || isHighlightedByClass,
57
88
  [styles.disabled]: disabled,
58
- }), ...flex, children: [hasPrefix && _jsx(Row, { className: styles.prefix, children: hasPrefix }), children, _jsxs(Column, { horizontal: "start", style: {
89
+ }), ...flex, children: [hasPrefix && _jsx(Row, { className: styles.prefix, children: hasPrefix }), _jsxs(Column, { horizontal: "start", style: {
59
90
  whiteSpace: "nowrap",
60
- }, fillWidth: true, children: [_jsx(Text, { onBackground: "neutral-strong", variant: "label-default-s", children: label }), description && (_jsx(Text, { variant: "body-default-xs", onBackground: "neutral-weak", children: description }))] }), hasSuffix && _jsx(Row, { className: styles.suffix, children: hasSuffix })] }) }));
91
+ }, fillWidth: true, children: [_jsx(Text, { onBackground: "neutral-strong", variant: "label-default-s", children: label || children }), description && (_jsx(Text, { variant: "body-default-xs", onBackground: "neutral-weak", children: description }))] }), hasSuffix && _jsx(Row, { className: styles.suffix, children: hasSuffix })] }) }));
61
92
  });
62
93
  Option.displayName = "Option";
63
94
  export { Option };
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","sourceRoot":"","sources":["../../src/components/Option.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Option.js","sourceRoot":"","sources":["../../src/components/Option.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
1
  .option {
2
2
  border-color: var(--static-transparent);
3
3
 
4
+ // Keyboard navigation highlight (lowest priority)
5
+ &.highlighted:not(:hover):not(:focus) {
6
+ background: var(--static-transparent);
7
+ border-color: var(--neutral-alpha-medium);
8
+ }
9
+
10
+ // Selected state (medium priority)
11
+ &.selected:not(:hover):not(:focus) {
12
+ background: var(--neutral-alpha-medium);
13
+ border-color: var(--neutral-alpha-medium);
14
+ }
15
+
16
+ // Hover/Focus state (highest priority - always overrides highlighted and selected)
4
17
  &:hover, &:focus {
5
18
  background: var(--neutral-alpha-weak);
6
19
  border-color: var(--neutral-alpha-medium);
@@ -11,16 +24,6 @@
11
24
  color: var(--neutral-on-background-weak);
12
25
  }
13
26
  }
14
-
15
- &.selected {
16
- background: var(--neutral-alpha-medium);
17
- border-color: var(--neutral-alpha-medium);
18
- }
19
-
20
- &.highlighted {
21
- background: var(--static-transparent);
22
- border-color: var(--neutral-alpha-medium);
23
- }
24
27
 
25
28
  &.danger {
26
29
  color: var(--danger-on-background-medium);
@@ -8,7 +8,8 @@ interface ParticleProps extends React.ComponentProps<typeof Flex> {
8
8
  size?: SpacingToken;
9
9
  speed?: number;
10
10
  interactive?: boolean;
11
- interactionRadius?: number;
11
+ mode?: "repel" | "attract";
12
+ intensity?: number;
12
13
  opacity?: DisplayProps["opacity"];
13
14
  className?: string;
14
15
  style?: React.CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"Particle.d.ts","sourceRoot":"","sources":["../../src/components/Particle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAEzB,UAAU,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,QAAQ,mGAyJb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"Particle.d.ts","sourceRoot":"","sources":["../../src/components/Particle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AAEzB,UAAU,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,QAAQ,mGA8Kb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import React, { useEffect, useRef } from "react";
4
4
  import { Flex } from ".";
5
- const Particle = React.forwardRef(({ density = 100, color = "brand-on-background-weak", size = "2", speed = 0.3, interactive = false, interactionRadius = 20, opacity = 100, children, className, style, ...rest }, forwardedRef) => {
5
+ const Particle = React.forwardRef(({ density = 100, color = "brand-on-background-weak", size = "2", speed = 0.3, interactive = false, mode = "repel", intensity = 20, opacity = 100, children, className, style, ...rest }, forwardedRef) => {
6
6
  const containerRef = useRef(null);
7
7
  useEffect(() => {
8
8
  if (forwardedRef && "current" in forwardedRef) {
@@ -65,15 +65,36 @@ const Particle = React.forwardRef(({ density = 100, color = "brand-on-background
65
65
  const baseNoiseY = Math.cos(time + index * 1.2) * 0.5;
66
66
  let targetX = initial.x + baseNoiseX;
67
67
  let targetY = initial.y + baseNoiseY;
68
+ let isCloseToMouse = false;
68
69
  if (interactive) {
69
70
  const dx = mousePosition.x - currentX;
70
71
  const dy = mousePosition.y - currentY;
71
72
  const distance = Math.sqrt(dx * dx + dy * dy);
72
- if (distance < interactionRadius) {
73
- const force = (interactionRadius - distance) * repulsionStrength;
73
+ if (distance < intensity) {
74
74
  const angle = Math.atan2(dy, dx);
75
- targetX -= Math.cos(angle) * force;
76
- targetY -= Math.sin(angle) * force;
75
+ if (mode === "attract") {
76
+ // Attract: move towards cursor
77
+ const minDistance = 8;
78
+ if (distance <= minDistance) {
79
+ // Particle is close - freeze it at cursor position (no noise, no movement)
80
+ targetX = mousePosition.x;
81
+ targetY = mousePosition.y;
82
+ isCloseToMouse = true;
83
+ }
84
+ else {
85
+ // Force is proportional to distance (strong when far, weak when close)
86
+ const normalizedDistance = Math.min(distance / intensity, 1);
87
+ const force = distance * repulsionStrength * normalizedDistance * 0.3;
88
+ targetX = currentX + Math.cos(angle) * force;
89
+ targetY = currentY + Math.sin(angle) * force;
90
+ }
91
+ }
92
+ else {
93
+ // Repel: move away from cursor (original behavior)
94
+ const force = (intensity - distance) * repulsionStrength;
95
+ targetX -= Math.cos(angle) * force;
96
+ targetY -= Math.sin(angle) * force;
97
+ }
77
98
  }
78
99
  }
79
100
  targetX = Math.max(5, Math.min(95, targetX));
@@ -103,7 +124,7 @@ const Particle = React.forwardRef(({ density = 100, color = "brand-on-background
103
124
  initialPositions.delete(particleEl);
104
125
  });
105
126
  };
106
- }, [color, size, speed, interactive, interactionRadius, opacity, density, containerRef]);
127
+ }, [color, size, speed, interactive, intensity, opacity, density, containerRef]);
107
128
  return (_jsx(Flex, { ref: containerRef, fill: true, pointerEvents: "none", className: className, style: style, ...rest, children: children }));
108
129
  });
109
130
  Particle.displayName = "Particle";
@@ -1 +1 @@
1
- {"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/components/Particle.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Particle.js","sourceRoot":"","sources":["../../src/components/Particle.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/components/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAA2C,SAAS,EAAS,MAAM,OAAO,CAAC;AAEzF,OAAO,EAML,UAAU,EAEV,WAAW,EACX,oBAAoB,EAGrB,MAAM,GAAG,CAAC;AAEX,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,KAAK,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAEtD,UAAU,WACR,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,EAC5C,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;IACnE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,MAAM,oFA0RX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/components/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAA2C,SAAS,EAAS,MAAM,OAAO,CAAC;AAEzF,OAAO,EAML,UAAU,EAEV,WAAW,EACX,oBAAoB,EAIrB,MAAM,GAAG,CAAC;AAEX,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,KAAK,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAEtD,UAAU,WACR,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,EAC5C,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;IACnE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoFD,QAAA,MAAM,MAAM,oFAgPX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,CAAC"}