@rafaelaugusto/jolt 0.1.0-rc.13 → 0.1.0-rc.14

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 (86) hide show
  1. package/README.md +2 -2
  2. package/dist/core/drop.d.ts +34 -1
  3. package/dist/core/drop.d.ts.map +1 -1
  4. package/dist/core/drop.js +93 -8
  5. package/dist/core/drop.js.map +1 -1
  6. package/dist/core/loading.d.ts +125 -0
  7. package/dist/core/loading.d.ts.map +1 -0
  8. package/dist/core/loading.js +119 -0
  9. package/dist/core/loading.js.map +1 -0
  10. package/dist/core/preset-recipe.d.ts +2 -2
  11. package/dist/core/preset-recipe.d.ts.map +1 -1
  12. package/dist/core/preset-recipe.js +3 -1
  13. package/dist/core/preset-recipe.js.map +1 -1
  14. package/dist/core/text-pieces.d.ts +18 -0
  15. package/dist/core/text-pieces.d.ts.map +1 -0
  16. package/dist/core/text-pieces.js +43 -0
  17. package/dist/core/text-pieces.js.map +1 -0
  18. package/dist/drag.d.ts +7 -1
  19. package/dist/drag.d.ts.map +1 -1
  20. package/dist/drag.js +72 -37
  21. package/dist/drag.js.map +1 -1
  22. package/dist/drop-zones.d.ts +1 -1
  23. package/dist/drop-zones.d.ts.map +1 -1
  24. package/dist/drop-zones.js +2 -0
  25. package/dist/drop-zones.js.map +1 -1
  26. package/dist/engine.d.ts.map +1 -1
  27. package/dist/engine.js +7 -2
  28. package/dist/engine.js.map +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/loader.d.ts +2 -1
  33. package/dist/loader.d.ts.map +1 -1
  34. package/dist/loader.js +17 -15
  35. package/dist/loader.js.map +1 -1
  36. package/dist/reveal.d.ts.map +1 -1
  37. package/dist/reveal.js +4 -3
  38. package/dist/reveal.js.map +1 -1
  39. package/dist/shimmer.d.ts.map +1 -1
  40. package/dist/shimmer.js +6 -4
  41. package/dist/shimmer.js.map +1 -1
  42. package/dist/web/drag.d.ts +8 -0
  43. package/dist/web/drag.d.ts.map +1 -1
  44. package/dist/web/drag.js +68 -14
  45. package/dist/web/drag.js.map +1 -1
  46. package/dist/web/drop-zones.d.ts +2 -2
  47. package/dist/web/drop-zones.d.ts.map +1 -1
  48. package/dist/web/drop-zones.js +21 -4
  49. package/dist/web/drop-zones.js.map +1 -1
  50. package/dist/web/loading.d.ts +2 -1
  51. package/dist/web/loading.d.ts.map +1 -1
  52. package/dist/web/loading.js +19 -15
  53. package/dist/web/loading.js.map +1 -1
  54. package/dist/web/pointer.d.ts +2 -0
  55. package/dist/web/pointer.d.ts.map +1 -1
  56. package/dist/web/pointer.js +13 -0
  57. package/dist/web/pointer.js.map +1 -1
  58. package/dist/web/public.d.ts +1 -1
  59. package/dist/web/public.d.ts.map +1 -1
  60. package/dist/web/public.js.map +1 -1
  61. package/dist/web/reveal.d.ts.map +1 -1
  62. package/dist/web/reveal.js +4 -3
  63. package/dist/web/reveal.js.map +1 -1
  64. package/dist/web/text-effect.d.ts.map +1 -1
  65. package/dist/web/text-effect.js +10 -16
  66. package/dist/web/text-effect.js.map +1 -1
  67. package/package.json +12 -3
  68. package/platforms/android/java/org/rafaelaugusto/jolt/PointerInput.java +26 -4
  69. package/src/core/drop.ts +123 -5
  70. package/src/core/loading.ts +172 -0
  71. package/src/core/preset-recipe.ts +6 -2
  72. package/src/core/text-pieces.ts +52 -0
  73. package/src/drag.ts +81 -38
  74. package/src/drop-zones.ts +13 -3
  75. package/src/engine.ts +8 -3
  76. package/src/index.ts +3 -0
  77. package/src/loader.ts +23 -20
  78. package/src/reveal.ts +4 -3
  79. package/src/shimmer.ts +6 -4
  80. package/src/web/drag.ts +70 -12
  81. package/src/web/drop-zones.ts +31 -6
  82. package/src/web/loading.ts +38 -17
  83. package/src/web/pointer.ts +14 -0
  84. package/src/web/public.ts +3 -0
  85. package/src/web/reveal.ts +7 -8
  86. package/src/web/text-effect.ts +20 -17
@@ -1 +1 @@
1
- {"version":3,"file":"text-effect.js","sourceRoot":"","sources":["../../src/web/text-effect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-effect.js","sourceRoot":"","sources":["../../src/web/text-effect.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rafaelaugusto/jolt",
3
- "version": "0.1.0-rc.13",
3
+ "version": "0.1.0-rc.14",
4
4
  "description": "Motion for NativeScript and the Web: presets, springs, keyframes and stagger.",
5
5
  "keywords": [
6
6
  "nativescript",
@@ -185,11 +185,14 @@
185
185
  "format": "prettier --write .",
186
186
  "format:check": "prettier --check .",
187
187
  "docs:dev": "vitepress dev docs",
188
- "docs:build": "vitepress build docs",
188
+ "docs:build": "node --max-old-space-size=1280 node_modules/vitepress/bin/vitepress.js build docs",
189
189
  "docs:preview": "vitepress preview docs",
190
190
  "prepack": "npm run build",
191
191
  "docs:check-media": "node scripts/check-docs-media.mjs && node scripts/check-motion-recipes.mjs && npm run docs:check-playground",
192
192
  "docs:test-site": "node scripts/review-motion-site.mjs",
193
+ "media:upload": "node scripts/media.mjs upload",
194
+ "media:pull": "node scripts/media.mjs pull",
195
+ "media:verify": "node scripts/media.mjs verify",
193
196
  "web:typecheck": "tsc -p tsconfig.web.json --noEmit",
194
197
  "web:runtime": "node benchmarks/web-runtime/server.mjs",
195
198
  "web:runtime:typecheck": "tsc -p benchmarks/web-runtime/tsconfig.json",
@@ -252,7 +255,8 @@
252
255
  "web:frameworks:test": "playwright test -c benchmarks/web-frameworks/playwright.config.mjs",
253
256
  "swiftui:generate": "node scripts/generate-swiftui-definitions.mjs",
254
257
  "swiftui:check": "node scripts/generate-swiftui-definitions.mjs --check",
255
- "swiftui:test": "swift test"
258
+ "swiftui:test": "swift test",
259
+ "swift:package": "node scripts/swift-package.mjs"
256
260
  },
257
261
  "peerDependencies": {
258
262
  "@angular/core": "^22.2.4",
@@ -317,5 +321,10 @@
317
321
  "android": "8.9.0",
318
322
  "ios": "8.9.0"
319
323
  }
324
+ },
325
+ "overrides": {
326
+ "vitepress": {
327
+ "vite": "6.4.6"
328
+ }
320
329
  }
321
330
  }
@@ -1,8 +1,10 @@
1
1
  package org.rafaelaugusto.jolt;
2
2
 
3
3
  import android.app.Activity;
4
+ import android.content.Context;
4
5
  import android.graphics.Matrix;
5
6
  import android.graphics.Rect;
7
+ import android.hardware.input.InputManager;
6
8
  import android.view.*;
7
9
  import android.view.accessibility.AccessibilityEvent;
8
10
  import java.lang.ref.WeakReference;
@@ -18,6 +20,7 @@ public final class PointerInput {
18
20
  private Listener listener;
19
21
  private Hub hub;
20
22
  private boolean active;
23
+ private int device = -1;
21
24
  private float lastX, lastY;
22
25
  public PointerInput(Activity activity, View target, Listener listener) {
23
26
  Window window = activity.getWindow();
@@ -27,16 +30,19 @@ public final class PointerInput {
27
30
  }
28
31
  this.target = new WeakReference<>(target); this.listener = listener; this.hub = current;
29
32
  current.inputs.add(this);
33
+ current.watch();
30
34
  }
31
35
  private void reset() {
32
36
  if (active && listener != null) listener.onPoint(0, 0, 0, 0, false);
33
37
  active = false;
38
+ device = -1;
34
39
  }
35
40
  private void observe(MotionEvent event) {
36
41
  if (listener == null) return;
37
42
  int tool = event.getToolType(0), action = event.getActionMasked();
38
43
  if (tool != MotionEvent.TOOL_TYPE_MOUSE && tool != MotionEvent.TOOL_TYPE_STYLUS) { reset(); return; }
39
44
  if (action == MotionEvent.ACTION_HOVER_EXIT || action == MotionEvent.ACTION_CANCEL || (tool == MotionEvent.TOOL_TYPE_STYLUS && action != MotionEvent.ACTION_HOVER_MOVE && action != MotionEvent.ACTION_HOVER_ENTER)) { reset(); return; }
45
+ device = event.getDeviceId();
40
46
  lastX = event.getX(); lastY = event.getY();
41
47
  sample(lastX, lastY);
42
48
  }
@@ -58,7 +64,7 @@ public final class PointerInput {
58
64
  if (!forward.invert(inverse)) { reset(); return; }
59
65
  float[] point = {x, y}; inverse.mapPoints(point);
60
66
  Rect visible = new Rect();
61
- if (view.getWidth() <= 0 || view.getHeight() <= 0 || !view.getLocalVisibleRect(visible) || !visible.contains((int)point[0], (int)point[1]) || point[0] < 0 || point[1] < 0 || point[0] > view.getWidth() || point[1] > view.getHeight()) { reset(); return; }
67
+ if (view.getWidth() <= 0 || view.getHeight() <= 0 || !view.getGlobalVisibleRect(visible) || !visible.contains((int)x, (int)y) || point[0] < 0 || point[1] < 0 || point[0] > view.getWidth() || point[1] > view.getHeight()) { reset(); return; }
62
68
  double density = view.getResources().getDisplayMetrics().density;
63
69
  active = true;
64
70
  listener.onPoint((point[0] - view.getWidth()/2.0)/density, (point[1] - view.getHeight()/2.0)/density, view.getWidth()/density, view.getHeight()/density, true);
@@ -69,6 +75,7 @@ public final class PointerInput {
69
75
  if (previous == null) return;
70
76
  previous.inputs.remove(this);
71
77
  if (previous.inputs.isEmpty()) {
78
+ previous.release();
72
79
  Window window = previous.window.get();
73
80
  if (window != null) {
74
81
  if (window.getCallback() == previous) window.setCallback(previous.delegate);
@@ -76,11 +83,26 @@ public final class PointerInput {
76
83
  }
77
84
  }
78
85
  }
79
- private static final class Hub implements Window.Callback {
86
+ private static final class Hub implements Window.Callback, InputManager.InputDeviceListener {
80
87
  final WeakReference<Window> window;
81
88
  final Window.Callback delegate;
82
89
  final List<PointerInput> inputs = new ArrayList<>();
90
+ private InputManager devices;
83
91
  Hub(Window window) { this.window = new WeakReference<>(window); this.delegate = window.getCallback(); }
92
+ void watch() {
93
+ Window current = window.get();
94
+ if (devices != null || inputs.isEmpty() || current == null) return;
95
+ devices = (InputManager)current.getContext().getSystemService(Context.INPUT_SERVICE);
96
+ if (devices != null) devices.registerInputDeviceListener(this, null);
97
+ }
98
+ void release() {
99
+ if (devices != null) devices.unregisterInputDeviceListener(this);
100
+ devices = null;
101
+ }
102
+ private void lost(int id) { for (PointerInput input : new ArrayList<>(inputs)) if (input.device == id) input.reset(); }
103
+ public void onInputDeviceAdded(int id) {}
104
+ public void onInputDeviceRemoved(int id) { lost(id); }
105
+ public void onInputDeviceChanged(int id) { if (InputDevice.getDevice(id) == null) lost(id); }
84
106
  void observe(MotionEvent event) {
85
107
  for (PointerInput input : new ArrayList<>(inputs)) {
86
108
  try { input.observe(event); }
@@ -101,8 +123,8 @@ public final class PointerInput {
101
123
  public void onWindowAttributesChanged(WindowManager.LayoutParams params) { delegate.onWindowAttributesChanged(params); }
102
124
  public void onContentChanged() { delegate.onContentChanged(); }
103
125
  public void onWindowFocusChanged(boolean focus) { if (!focus) for (PointerInput input : new ArrayList<>(inputs)) input.reset(); delegate.onWindowFocusChanged(focus); }
104
- public void onAttachedToWindow() { delegate.onAttachedToWindow(); }
105
- public void onDetachedFromWindow() { for (PointerInput input : new ArrayList<>(inputs)) input.reset(); delegate.onDetachedFromWindow(); }
126
+ public void onAttachedToWindow() { watch(); delegate.onAttachedToWindow(); }
127
+ public void onDetachedFromWindow() { release(); for (PointerInput input : new ArrayList<>(inputs)) input.reset(); delegate.onDetachedFromWindow(); }
106
128
  public void onPanelClosed(int id, Menu menu) { delegate.onPanelClosed(id, menu); }
107
129
  public boolean onSearchRequested() { return delegate.onSearchRequested(); }
108
130
  public boolean onSearchRequested(SearchEvent event) { return delegate.onSearchRequested(event); }
package/src/core/drop.ts CHANGED
@@ -10,6 +10,20 @@ export interface DropEvent<T> {
10
10
  readonly target: T
11
11
  readonly method: 'drag' | 'request'
12
12
  }
13
+ export interface DropMoveEvent<T> {
14
+ /** The hovered target after this move's hit test. */
15
+ readonly id: string | undefined
16
+ readonly source: T
17
+ /** The source's current visual bounds, in the same coordinates as the targets. */
18
+ readonly bounds: DropRect
19
+ readonly method: 'drag'
20
+ }
21
+ export interface DropPadding {
22
+ readonly top?: number
23
+ readonly right?: number
24
+ readonly bottom?: number
25
+ readonly left?: number
26
+ }
13
27
  export type DropEffect = (() => void) | { dispose(): void } | { stop(): void }
14
28
  export interface DropTarget<T> {
15
29
  readonly id: string
@@ -18,11 +32,15 @@ export interface DropTarget<T> {
18
32
  readonly priority?: number
19
33
  /** Synchronous acceptance, evaluated again at the final release. */
20
34
  readonly accept?: (event: DropEvent<T>) => boolean
35
+ /** Extra hit area outside the visual bounds: one value or per edge, 0–1,000. */
36
+ readonly padding?: number | DropPadding
21
37
  }
22
38
  export interface DropOptions<T> {
23
39
  readonly targets: readonly DropTarget<T>[]
24
40
  /** Axis-aligned visual bounds; overlap requires positive intersection area. */
25
41
  hitTest?: 'center' | 'overlap'
42
+ /** Every drag move, after hit testing; never after cancellation or disposal. */
43
+ onMove?: (event: DropMoveEvent<T>) => void
26
44
  onEnter?: (event: DropEvent<T>) => void
27
45
  onLeave?: (event: DropEvent<T>) => void
28
46
  onDrop?: (event: DropEvent<T>) => DropEffect | void
@@ -48,19 +66,71 @@ export interface DropHost<T> {
48
66
  enabled(): boolean
49
67
  cancelDrag(): void
50
68
  error?(error: unknown): void
69
+ /** The source's current drag translation, to tell layout changes from movement. */
70
+ translation?(): { readonly x: number; readonly y: number }
71
+ /** Offset the drag translation so the source stays under the pointer. */
72
+ shift?(x: number, y: number): void
73
+ }
74
+
75
+ export const MAX_DROP_PADDING = 1000
76
+
77
+ export function dropPadding(padding: number | DropPadding | undefined) {
78
+ const edges =
79
+ padding === undefined || typeof padding === 'number'
80
+ ? {
81
+ top: padding ?? 0,
82
+ right: padding ?? 0,
83
+ bottom: padding ?? 0,
84
+ left: padding ?? 0,
85
+ }
86
+ : padding && typeof padding === 'object' && !Array.isArray(padding)
87
+ ? {
88
+ top: padding.top ?? 0,
89
+ right: padding.right ?? 0,
90
+ bottom: padding.bottom ?? 0,
91
+ left: padding.left ?? 0,
92
+ }
93
+ : undefined
94
+ if (
95
+ !edges ||
96
+ (typeof padding === 'object' &&
97
+ Object.keys(padding).some(
98
+ (key) => !['top', 'right', 'bottom', 'left'].includes(key),
99
+ )) ||
100
+ !Object.values(edges).every(
101
+ (value) =>
102
+ typeof value === 'number' &&
103
+ Number.isFinite(value) &&
104
+ value >= 0 &&
105
+ value <= MAX_DROP_PADDING,
106
+ )
107
+ )
108
+ throw new RangeError(
109
+ `Drop padding must be finite and 0–${MAX_DROP_PADDING} on each top/right/bottom/left edge.`,
110
+ )
111
+ return edges
51
112
  }
52
113
 
114
+ /** Padding extends the target before either policy; an empty target never hits. */
53
115
  export function dropHits(
54
116
  source: DropRect,
55
117
  target: DropRect,
56
118
  policy: 'center' | 'overlap',
119
+ padding?: number | DropPadding,
57
120
  ) {
121
+ const edges = dropPadding(padding)
58
122
  if (
59
123
  ![source, target].every(
60
124
  (r) => Object.values(r).every(Number.isFinite) && r.width > 0 && r.height > 0,
61
125
  )
62
126
  )
63
127
  return false
128
+ target = {
129
+ x: target.x - edges.left,
130
+ y: target.y - edges.top,
131
+ width: target.width + edges.left + edges.right,
132
+ height: target.height + edges.top + edges.bottom,
133
+ }
64
134
  if (policy === 'overlap')
65
135
  return (
66
136
  Math.min(source.x + source.width, target.x + target.width) >
@@ -109,14 +179,16 @@ export function createDropPolicy<T>(
109
179
  throw new TypeError('Drop priority must be finite.')
110
180
  if (target.accept !== undefined && typeof target.accept !== 'function')
111
181
  throw new TypeError('Drop acceptance must be a synchronous function.')
182
+ const padding = dropPadding(target.padding)
112
183
  ids.add(target.id)
113
- return { ...target }
184
+ return { ...target, padding }
114
185
  })
115
186
  .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))
116
187
  const policy = options.hitTest ?? 'center'
117
188
  if (!['center', 'overlap'].includes(policy))
118
189
  throw new TypeError('Unknown drop hit-test policy.')
119
190
  for (const callback of [
191
+ options.onMove,
120
192
  options.onEnter,
121
193
  options.onLeave,
122
194
  options.onDrop,
@@ -130,6 +202,7 @@ export function createDropPolicy<T>(
130
202
  generation = 0
131
203
  let hovered: DropTarget<T> | undefined, accepted: DropTarget<T> | undefined
132
204
  let effect: DropEffect | undefined
205
+ let anchor: { x: number; y: number } | undefined
133
206
  const available = () => !disposed && !paused && host.enabled() && !!host.bounds(source)
134
207
  const event = (
135
208
  target: DropTarget<T>,
@@ -160,12 +233,34 @@ export function createDropPolicy<T>(
160
233
  const rect = host.bounds(source)!
161
234
  return targets.find((target) => {
162
235
  const bounds = host.bounds(target.target)
163
- return !!bounds && dropHits(rect, bounds, policy)
236
+ return !!bounds && dropHits(rect, bounds, policy, target.padding)
164
237
  })
165
238
  }
239
+ // The layout center is the visual center without the drag translation.
240
+ const layout = () => {
241
+ const rect = host.translation && host.bounds(source)
242
+ if (!rect) return undefined
243
+ const offset = host.translation!()
244
+ const point = {
245
+ x: rect.x + rect.width / 2 - offset.x,
246
+ y: rect.y + rect.height / 2 - offset.y,
247
+ }
248
+ return Number.isFinite(point.x) && Number.isFinite(point.y) ? point : undefined
249
+ }
250
+ const reanchor = () => {
251
+ const next = layout(),
252
+ previous = anchor
253
+ if (!next) return
254
+ anchor = next
255
+ if (!previous) return
256
+ const x = next.x - previous.x,
257
+ y = next.y - previous.y
258
+ if (Math.abs(x) > 0.01 || Math.abs(y) > 0.01) host.shift?.(-x, -y)
259
+ }
166
260
  const cancel = () => {
167
261
  generation++
168
262
  active = false
263
+ anchor = undefined
169
264
  try {
170
265
  stopEffect()
171
266
  } finally {
@@ -175,6 +270,7 @@ export function createDropPolicy<T>(
175
270
  const commit = (target: DropTarget<T> | undefined, method: DropEvent<T>['method']) => {
176
271
  const epoch = generation
177
272
  active = false
273
+ anchor = undefined
178
274
  hover(undefined)
179
275
  if (epoch !== generation || !available()) return false
180
276
  if (!target || !host.bounds(target.target)) {
@@ -271,7 +367,11 @@ export function createDropPolicy<T>(
271
367
  refresh() {
272
368
  guard(() => {
273
369
  if (!available() || (accepted && !host.bounds(accepted.target))) cancel()
274
- else if (active) hover(find())
370
+ else if (active) {
371
+ const epoch = generation
372
+ reanchor()
373
+ if (epoch === generation && active) hover(find())
374
+ }
275
375
  })
276
376
  },
277
377
  cancel,
@@ -299,11 +399,29 @@ export function createDropPolicy<T>(
299
399
  begin: () =>
300
400
  guard(() => {
301
401
  cancel()
302
- if (available()) active = true
402
+ if (available()) {
403
+ active = true
404
+ anchor = layout()
405
+ }
303
406
  }),
304
407
  move: () =>
305
408
  guard(() => {
306
- if (active) handle.refresh()
409
+ if (!active) return
410
+ const epoch = generation
411
+ handle.refresh()
412
+ if (!active || epoch !== generation || !available() || !options.onMove) return
413
+ const bounds = host.bounds(source)!
414
+ options.onMove({
415
+ id: hovered?.id,
416
+ source,
417
+ bounds: {
418
+ x: bounds.x,
419
+ y: bounds.y,
420
+ width: bounds.width,
421
+ height: bounds.height,
422
+ },
423
+ method: 'drag',
424
+ })
307
425
  }),
308
426
  release: () => guard(() => (active ? commit(find(), 'drag') : false)),
309
427
  }
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Durations and geometry of the loading effects, shared by the NativeScript, Web and
3
+ * SwiftUI adapters. Lengths are DIPs, CSS px or points; times are milliseconds.
4
+ */
5
+ export type LoaderStyle = 'dots' | 'bars' | 'ring'
6
+
7
+ export interface LoaderKind {
8
+ /** Copies drawn by one source item. */
9
+ readonly count: number
10
+ /** Item width and height as fractions of the loader's side. */
11
+ readonly width: number
12
+ readonly height: number
13
+ /** Each copy starts `duration / stagger` after the previous one. */
14
+ readonly stagger: number
15
+ readonly property: 'scale' | 'scaleY' | 'opacity'
16
+ /** Keyframes of the animated property, linear between `times` (fractions of a cycle). */
17
+ readonly values: readonly number[]
18
+ readonly times: readonly number[]
19
+ /** Item opacity when the property is not animated, including under reduced motion. */
20
+ readonly rest: number
21
+ }
22
+
23
+ export const shimmerDefinition = {
24
+ duration: 1500,
25
+ /** Web and SwiftUI: a white band painted over the content. */
26
+ highlight: {
27
+ /** CSS degrees: 90 runs left to right. */
28
+ angle: 100,
29
+ /** Percent positions of the band's stops. */
30
+ stops: [15, 50, 85],
31
+ /** White opacity at each stop. */
32
+ opacity: [0, 0.55, 0],
33
+ /** Horizontal travel in widths of the view, from the first to the last frame. */
34
+ travel: [-1, 1],
35
+ },
36
+ /** NativeScript iOS: a mask three widths wide dims the content outside the band. */
37
+ mask: { opacity: 0.35, from: [0, 0.125, 0.25], to: [0.75, 0.875, 1] },
38
+ } as const
39
+
40
+ export const loaderDefinition = {
41
+ style: 'dots' as LoaderStyle,
42
+ color: '#71717a',
43
+ /** Maximum side, fitted inside the target. */
44
+ size: 48,
45
+ duration: 1200,
46
+ kinds: {
47
+ dots: {
48
+ count: 3,
49
+ width: 0.2,
50
+ height: 0.2,
51
+ stagger: 5,
52
+ property: 'scale',
53
+ values: [0.35, 1, 0.35, 0.35],
54
+ times: [0, 0.3, 0.6, 1],
55
+ rest: 1,
56
+ },
57
+ bars: {
58
+ count: 5,
59
+ width: 0.12,
60
+ height: 0.75,
61
+ stagger: 5,
62
+ property: 'scaleY',
63
+ values: [0.35, 1, 0.35, 0.35],
64
+ times: [0, 0.3, 0.6, 1],
65
+ rest: 1,
66
+ },
67
+ ring: {
68
+ count: 12,
69
+ width: 0.16,
70
+ height: 0.16,
71
+ stagger: 12,
72
+ property: 'opacity',
73
+ values: [1, 0.2],
74
+ times: [0, 1],
75
+ rest: 0.35,
76
+ },
77
+ } satisfies Record<LoaderStyle, LoaderKind>,
78
+ /** The Web draws CSS boxes instead: percent sizes of the box and an eased pulse. */
79
+ css: {
80
+ dots: { width: 20, height: 20, radius: '50%' },
81
+ bars: { width: 12, height: 65, radius: '3px' },
82
+ ring: { diameter: 75, border: 3 },
83
+ pulse: 0.45,
84
+ stagger: 7,
85
+ ease: 'ease-in-out',
86
+ },
87
+ } as const
88
+
89
+ export const revealDefinition = { duration: 400, ease: 'easeInOut' } as const
90
+
91
+ export interface LoaderItem {
92
+ /** Centre in the loader's square, from its top-left corner. */
93
+ x: number
94
+ y: number
95
+ width: number
96
+ height: number
97
+ /** Degrees clockwise around the square's centre. */
98
+ rotate: number
99
+ scaleX: number
100
+ scaleY: number
101
+ opacity: number
102
+ }
103
+
104
+ function keyframe(kind: LoaderKind, phase: number) {
105
+ const { times, values } = kind
106
+ for (let i = 1; i < times.length; i++)
107
+ if (phase <= times[i]!) {
108
+ const span = times[i]! - times[i - 1]!
109
+ const t = span > 0 ? (phase - times[i - 1]!) / span : 1
110
+ return values[i - 1]! + (values[i]! - values[i - 1]!) * t
111
+ }
112
+ return values[values.length - 1]!
113
+ }
114
+
115
+ /**
116
+ * Every copy of a loader drawn in a `size` square. Without `elapsed`, the static pose
117
+ * shown under reduced motion. Copy `i` runs `i * duration / stagger` behind the first.
118
+ */
119
+ export function loaderItems(
120
+ style: LoaderStyle,
121
+ size: number,
122
+ elapsed?: number,
123
+ duration: number = loaderDefinition.duration,
124
+ ): LoaderItem[] {
125
+ const kind: LoaderKind = loaderDefinition.kinds[style]
126
+ const width = size * kind.width
127
+ const height = size * kind.height
128
+ return Array.from({ length: kind.count }, (_, i) => {
129
+ let value: number | undefined
130
+ if (elapsed !== undefined) {
131
+ const local = (elapsed - (i * duration) / kind.stagger) % duration
132
+ value = keyframe(kind, (local < 0 ? local + duration : local) / duration)
133
+ }
134
+ const scale = kind.property === 'opacity' ? 1 : (value ?? 1)
135
+ const ring = style === 'ring'
136
+ const angle = ring ? (360 / kind.count) * i : 0
137
+ const radians = (angle * Math.PI) / 180
138
+ const orbit = size / 2 - height / 2
139
+ return {
140
+ x: ring
141
+ ? size / 2 + orbit * Math.sin(radians)
142
+ : width / 2 + (i * (size - width)) / (kind.count - 1),
143
+ y: ring ? size / 2 - orbit * Math.cos(radians) : size / 2,
144
+ width,
145
+ height,
146
+ rotate: angle,
147
+ scaleX: kind.property === 'scale' ? scale : 1,
148
+ scaleY: scale,
149
+ opacity: kind.property === 'opacity' ? (value ?? kind.rest) : kind.rest,
150
+ }
151
+ })
152
+ }
153
+
154
+ /** Horizontal offset of the shimmer band, in widths of the view. */
155
+ export function shimmerOffset(
156
+ elapsed: number,
157
+ duration: number = shimmerDefinition.duration,
158
+ ) {
159
+ const [from, to] = shimmerDefinition.highlight.travel
160
+ const local = elapsed % duration
161
+ return from + (to - from) * ((local < 0 ? local + duration : local) / duration)
162
+ }
163
+
164
+ /** The radius that reaches the farthest corner of a box from `x`, `y`. */
165
+ export function revealRadius(width: number, height: number, x: number, y: number) {
166
+ return Math.max(
167
+ Math.hypot(x, y),
168
+ Math.hypot(width - x, y),
169
+ Math.hypot(x, height - y),
170
+ Math.hypot(width - x, height - y),
171
+ )
172
+ }
@@ -10,6 +10,8 @@ export type PortablePresetName =
10
10
  | 'fadeInRight'
11
11
  | 'zoomIn'
12
12
  | 'popIn'
13
+ | 'flipInX'
14
+ | 'flipInY'
13
15
  | 'fadeOut'
14
16
  | 'fadeOutUp'
15
17
  | 'fadeOutDown'
@@ -24,7 +26,7 @@ export interface PresetParameters {
24
26
  /** Override all channels with a finite tween in milliseconds (including zero). */
25
27
  duration?: number
26
28
  }
27
- type Channel = 'x' | 'y' | 'scale' | 'opacity'
29
+ type Channel = 'x' | 'y' | 'scale' | 'rotateX' | 'rotateY' | 'opacity'
28
30
  export interface PresetRecipe {
29
31
  keyframes: Partial<Record<Channel, number | readonly number[]>>
30
32
  transition: Transition & Partial<Record<Channel, Transition>>
@@ -37,6 +39,8 @@ const names = new Set<string>([
37
39
  'fadeInRight',
38
40
  'zoomIn',
39
41
  'popIn',
42
+ 'flipInX',
43
+ 'flipInY',
40
44
  'fadeOut',
41
45
  'fadeOutUp',
42
46
  'fadeOutDown',
@@ -76,7 +80,7 @@ export function createPreset(
76
80
  ]),
77
81
  ) as PresetRecipe['keyframes']
78
82
  const transition = { ...original.transition } as PresetRecipe['transition']
79
- for (const channel of ['x', 'y', 'scale', 'opacity'] as const)
83
+ for (const channel of ['x', 'y', 'scale', 'rotateX', 'rotateY', 'opacity'] as const)
80
84
  if (transition[channel]) transition[channel] = { ...transition[channel] }
81
85
  const entering = !name.includes('Out')
82
86
  const direction = parameters.direction