@flux-ui/visuals 3.13.0 → 4.0.0-beta.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@flux-ui/visuals",
3
3
  "description": "Visual effect components for the Flux UI library.",
4
- "version": "3.13.0",
4
+ "version": "4.0.0-beta.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/basmilius",
@@ -23,7 +23,7 @@
23
23
  "visuals"
24
24
  ],
25
25
  "scripts": {
26
- "build": "vue-tsc && vite build",
26
+ "build": "vue-tsc --build && vite build",
27
27
  "dev": "vite build --watch --mode development"
28
28
  },
29
29
  "engines": {
@@ -50,22 +50,22 @@
50
50
  "dependencies": {
51
51
  "@basmilius/common": "^3.55.0",
52
52
  "@basmilius/utils": "^3.55.0",
53
- "@flux-ui/internals": "3.13.0",
54
- "@flux-ui/types": "3.13.0",
53
+ "@flux-ui/internals": "4.0.0-beta.0",
54
+ "@flux-ui/types": "4.0.0-beta.0",
55
55
  "clsx": "^2.1.1",
56
56
  "rough-notation": "^0.5.1"
57
57
  },
58
58
  "peerDependencies": {
59
- "vue": "^3.6.0-rc.1"
59
+ "vue": "^3.6.0-rc.2"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@basmilius/vite-preset": "^3.55.0",
63
- "@types/node": "^26.1.1",
63
+ "@types/node": "^26.1.2",
64
64
  "@vitejs/plugin-vue": "^6.0.8",
65
65
  "@vue/tsconfig": "^0.9.1",
66
66
  "sass-embedded": "^1.100.0",
67
67
  "typescript": "6.0.3",
68
68
  "vite": "^8.1.5",
69
- "vue-tsc": "^3.3.7"
69
+ "vue-tsc": "^3.3.8"
70
70
  }
71
71
  }
@@ -57,7 +57,7 @@
57
57
  const inView = group ? shallowRef(true) : useInView(targetRef, {initial: !whenInView});
58
58
 
59
59
  const effectiveVariant = computed(() => variant ?? group?.defaults.variant ?? 'highlight');
60
- const effectiveColor = computed(() => color ?? group?.defaults.color ?? 'var(--warning-200)');
60
+ const effectiveColor = computed(() => color ?? group?.defaults.color ?? 'var(--warning-border)');
61
61
  const effectiveStrokeWidth = computed(() => strokeWidth ?? group?.defaults.strokeWidth ?? 1.5);
62
62
  const effectiveAnimationDuration = computed(() => animationDuration ?? group?.defaults.animationDuration ?? 500);
63
63
  const effectiveIterations = computed(() => iterations ?? group?.defaults.iterations ?? 2);
@@ -48,7 +48,7 @@
48
48
 
49
49
  const CUBIC_BEZIER_PATTERN = /^cubic-bezier\(\s*([-\d.]+)\s*,\s*([-\d.]+)\s*,\s*([-\d.]+)\s*,\s*([-\d.]+)\s*\)$/;
50
50
 
51
- // Fallback for an unrecognised easing value, matching the --swift-out default.
51
+ // Fallback for an unrecognized easing value, matching the --swift-out default.
52
52
  const swiftOutEasing = cubicBezier(0.55, 0, 0.1, 1);
53
53
 
54
54
  const labelRef = useTemplateRef('label');
@@ -3,7 +3,7 @@
3
3
  aria-hidden="true"
4
4
  :class="$style.ping"
5
5
  :style="{
6
- '--ping-color': `var(--${color}-500)`,
6
+ '--ping-color': `var(--${color}-solid)`,
7
7
  '--ping-size': `${size}px`,
8
8
  '--ping-duration': duration
9
9
  }"/>
@@ -276,7 +276,7 @@
276
276
 
277
277
  // Resize the cell to the new glyph — but ease the width instead of
278
278
  // snapping it, so a wide outgoing glyph is never cropped by a
279
- // suddenly-narrow cell and neighbours glide rather than jump.
279
+ // suddenly-narrow cell and neighbors glide rather than jump.
280
280
  const oldW = slot.getBoundingClientRect().width;
281
281
  sizer.textContent = glyph(toChar);
282
282
  const newW = sizer.getBoundingClientRect().width;
@@ -288,7 +288,7 @@
288
288
 
289
289
  // A cell growing from or collapsing to empty changes width
290
290
  // drastically — clip it horizontally while it resizes so its glyph
291
- // wipes in/out with the cell instead of stacking onto the neighbours.
291
+ // wipes in/out with the cell instead of stacking onto the neighbors.
292
292
  if (fromChar === '' || toChar === '') {
293
293
  slot.classList.add($style.isResizing);
294
294
  }
@@ -366,7 +366,7 @@
366
366
 
367
367
  const done = (event: TransitionEvent): void => {
368
368
  if (event.propertyName !== 'transform') {
369
- return; // ignore the colour fade
369
+ return; // ignore the color fade
370
370
  }
371
371
 
372
372
  newFace.removeEventListener('transitionend', done);
@@ -8,8 +8,8 @@
8
8
  // Raw feTurbulence emits four independent noise channels, so the alpha is
9
9
  // also noise and the grain is a faint, half-transparent colored static that
10
10
  // washes out to nothing under a low opacity. The filter runs in sRGB (so the
11
- // grain stays centered on mid-grey instead of being gamma-lifted toward
12
- // white), collapses to a single opaque grey channel and boosts its contrast,
11
+ // grain stays centered on mid-gray instead of being gamma-lifted toward
12
+ // white), collapses to a single opaque gray channel and boosts its contrast,
13
13
  // giving a neutral film grain that reads clearly even at a few percent.
14
14
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='1.8' intercept='-0.4'/%3E%3CfeFuncG type='linear' slope='1.8' intercept='-0.4'/%3E%3CfeFuncB type='linear' slope='1.8' intercept='-0.4'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
15
15
  background-repeat: repeat;
@@ -11,9 +11,9 @@
11
11
  }
12
12
 
13
13
  .glowDot {
14
- fill: var(--primary-500);
14
+ fill: var(--primary-solid);
15
15
  }
16
16
 
17
17
  .glowLine {
18
- stroke: var(--primary-500);
18
+ stroke: var(--primary-solid);
19
19
  }
@@ -22,7 +22,7 @@
22
22
 
23
23
  // Cells appearing from or collapsing to empty change width drastically, so clip
24
24
  // them horizontally too while they resize — their glyph wipes in/out with the
25
- // cell instead of spilling over the neighbours.
25
+ // cell instead of spilling over the neighbors.
26
26
  .charSlot.isResizing {
27
27
  overflow-x: clip;
28
28
  }
@@ -4,9 +4,9 @@
4
4
  color: transparent;
5
5
  background-image: linear-gradient(
6
6
  90deg,
7
- var(--shimmer-base, var(--gray-400)) calc(50% - var(--shimmer-spread, 15) * 1%),
8
- var(--shimmer-color, var(--gray-950)) 50%,
9
- var(--shimmer-base, var(--gray-400)) calc(50% + var(--shimmer-spread, 15) * 1%)
7
+ var(--shimmer-base, var(--foreground-subtle)) calc(50% - var(--shimmer-spread, 15) * 1%),
8
+ var(--shimmer-color, var(--foreground-prominent)) 50%,
9
+ var(--shimmer-base, var(--foreground-subtle)) calc(50% + var(--shimmer-spread, 15) * 1%)
10
10
  );
11
11
  // Both edges of the gradient are the base color, so tiling it seamlessly
12
12
  // keeps the text fully painted at every step: outside the moving highlight
@@ -21,20 +21,11 @@
21
21
  -webkit-background-clip: text;
22
22
  -webkit-text-fill-color: transparent;
23
23
 
24
- [dark] & {
25
- background-image: linear-gradient(
26
- 90deg,
27
- var(--shimmer-base, var(--gray-500)) calc(50% - var(--shimmer-spread, 15) * 1%),
28
- var(--shimmer-color, var(--gray-50)) 50%,
29
- var(--shimmer-base, var(--gray-500)) calc(50% + var(--shimmer-spread, 15) * 1%)
30
- );
31
- }
32
-
33
24
  // No sweep when reduced motion is requested: fall back to a plain, solid
34
25
  // text color so the label stays legible without animating.
35
26
  @media (prefers-reduced-motion: reduce) {
36
27
  animation: none;
37
- color: var(--shimmer-base, var(--gray-500));
28
+ color: var(--shimmer-base, var(--foreground-subtle));
38
29
  background: none;
39
30
  -webkit-text-fill-color: currentColor;
40
31
  }
@@ -20,7 +20,7 @@
20
20
  .dotPattern {
21
21
  composes: fillVisual;
22
22
 
23
- fill: var(--gray-300);
23
+ fill: var(--surface-stroke-hover);
24
24
  pointer-events: none;
25
25
  }
26
26
 
@@ -33,8 +33,8 @@
33
33
  .gridPattern {
34
34
  composes: fillVisual;
35
35
 
36
- fill: var(--gray-100);
37
- stroke: var(--gray-300);
36
+ fill: var(--surface-stroke-muted);
37
+ stroke: var(--surface-stroke-hover);
38
38
  pointer-events: none;
39
39
  }
40
40