use-scroll-animate 9.4.0 → 9.6.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.
@@ -1,3 +1,4 @@
1
+ type MotionSensitivity = 'full' | 'gentle' | 'minimal' | 'static';
1
2
  /**
2
3
  * Members shared by every `<usa-*>` element. Attribute helpers, a cleanup
3
4
  * bag that is emptied on disconnect, and motion helpers that degrade to the
@@ -1831,6 +1832,122 @@ interface UsaHeroVideoElement extends UsaElement {
1831
1832
  }
1832
1833
  declare function defineHeroVideo(tag?: string): CustomElementConstructor | undefined;
1833
1834
 
1835
+ /**
1836
+ * 9.5 — Accessible motion 2.0 (`motionary/fx/safe`, also `motionary/components/fx-safe`):
1837
+ *
1838
+ * - `vestibularSafe(keyframes)` — strips movement (translate / scale /
1839
+ * rotate / skew / perspective, clip and blur) from keyframes, keeping
1840
+ * opacity and colour, so any animation can get a vestibular-safe twin.
1841
+ * - `flashCount(keyframes, duration)` / `isFlashSafe(...)` — counts large
1842
+ * opacity / brightness swings and checks WCAG 2.3.1's three-flashes-per-
1843
+ * second limit.
1844
+ * - `applyMotionPreferences(prefs)` / `loadMotionPreferences()` — the
1845
+ * settings behind `<usa-motion-prefs>`: sensitivity level, speed (shared
1846
+ * clock rate), pause autoplay, no parallax; persisted in localStorage and
1847
+ * exposed as `data-usa-*` attributes on `<html>` for your CSS.
1848
+ *
1849
+ * Effects that never move anything: `safe-fade` (enter), `focus-glow`
1850
+ * (attention), `color-pulse` (attention), `underline-sweep` (hover).
1851
+ */
1852
+
1853
+ interface MotionPreferences {
1854
+ sensitivity: MotionSensitivity;
1855
+ speed: number;
1856
+ pauseAutoplay: boolean;
1857
+ noParallax: boolean;
1858
+ }
1859
+
1860
+ /**
1861
+ * `<usa-motion-prefs>` (9.5) — a motion preference panel for your users:
1862
+ * motion level (Full · Gentle · Minimal · None — Motionary's sensitivity
1863
+ * levels), animation speed (the shared clock rate, 0.25–2×), "pause
1864
+ * autoplaying video" and "no parallax". Changes apply instantly to every
1865
+ * Motionary component on the page, persist in localStorage and are shown
1866
+ * as `data-usa-*` attributes on `<html>`; a live sample shows the result.
1867
+ * `prefs`, `reset()`; `usa:change` { prefs }. A labelled `form` of real
1868
+ * radio buttons, slider and checkboxes.
1869
+ */
1870
+ interface UsaMotionPrefsElement extends UsaElement {
1871
+ readonly prefs: MotionPreferences;
1872
+ reset(): void;
1873
+ }
1874
+ declare function defineMotionPrefs(tag?: string): CustomElementConstructor | undefined;
1875
+
1876
+ /**
1877
+ * `<usa-pause-all>` (9.5) — one button that pauses all motion on the page
1878
+ * (WCAG 2.2.2 "Pause, Stop, Hide"): it pauses Motionary's shared clock
1879
+ * (every component, effect and frame loop), every other CSS / WAAPI
1880
+ * animation in the document and autoplaying media; pressing again resumes
1881
+ * them. Stays in sync with `motionClock`. `scope` (a selector) limits it to
1882
+ * one subtree's animations and media and leaves the shared clock alone.
1883
+ * `paused`, `toggle()`;
1884
+ * `usa:pause-all` { paused }. A real `button` with `aria-pressed`.
1885
+ */
1886
+ interface UsaPauseAllElement extends UsaElement {
1887
+ readonly paused: boolean;
1888
+ toggle(): void;
1889
+ }
1890
+ declare function definePauseAll(tag?: string): CustomElementConstructor | undefined;
1891
+
1892
+ /**
1893
+ * `<usa-perf-monitor>` (9.6) — a live performance overlay for motion work:
1894
+ * FPS with a sparkline, active Motionary animations, frame-loop callbacks,
1895
+ * long tasks (PerformanceObserver) and the shared clock state. `corner`
1896
+ * (top-right default · top-left · bottom-right · bottom-left · `inline`),
1897
+ * `collapsed`; click the header to collapse. `stats` property;
1898
+ * `usa:jank` { fps } when FPS drops under `warn` (45). A labelled `status`
1899
+ * region updated about twice a second.
1900
+ */
1901
+ interface PerfStats {
1902
+ fps: number;
1903
+ animations: number;
1904
+ loops: number;
1905
+ longTasks: number;
1906
+ clock: string;
1907
+ }
1908
+ interface UsaPerfMonitorElement extends UsaElement {
1909
+ readonly stats: PerfStats;
1910
+ }
1911
+ declare function definePerfMonitor(tag?: string): CustomElementConstructor | undefined;
1912
+
1913
+ /**
1914
+ * 9.6 — Performance 3.0 (`motionary/fx/perf`, also `motionary/components/fx-perf`):
1915
+ *
1916
+ * - `runInWorker(fn, ...args)` — run a pure function in a throw-away Web
1917
+ * Worker (built from its source) and get a promise of its result; runs
1918
+ * inline when Workers are unavailable.
1919
+ * - `offscreenRender(canvas, program, options)` — move a canvas animation
1920
+ * off the main thread: `program` is the source of
1921
+ * `function (ctx, t, w, h, state) {…}`; with OffscreenCanvas + Worker it
1922
+ * runs in a worker (`backend: 'worker'`), otherwise on the main thread via
1923
+ * the shared frame loop (`'main'`). Returns { backend, stop, resize }.
1924
+ * - `fpsMeter()` — a rolling frames-per-second meter on the shared loop.
1925
+ *
1926
+ * Effects: `idle-reveal` (enter) waits for an idle moment before fading in
1927
+ * (keeps first paint / input snappy); `gpu-lift` (hover) a compositor-only
1928
+ * lift (transform + opacity only). Reduced motion: idle-reveal just shows,
1929
+ * gpu-lift does nothing.
1930
+ */
1931
+
1932
+ type DrawProgram = string | ((ctx: CanvasRenderingContext2D, t: number, w: number, h: number, state: Record<string, unknown>) => void);
1933
+
1934
+ /**
1935
+ * `<usa-worker-canvas scene="particles">` (9.6) — a canvas animation that
1936
+ * renders in a Web Worker on an OffscreenCanvas (main thread stays free;
1937
+ * falls back to the shared frame loop): built-in `scene` = `particles` ·
1938
+ * `orbits` · `starfield`, or your own `program` (the source of
1939
+ * `(ctx, t, w, h, state) => {…}`). Only runs while on screen.
1940
+ * `data-usa-backend` shows `worker` or `main`; `backend` property;
1941
+ * `usa:backend` { backend }. An `img` with `label`; reduced motion: one
1942
+ * still frame.
1943
+ */
1944
+ interface UsaWorkerCanvasElement extends UsaElement {
1945
+ program: DrawProgram | null;
1946
+ readonly backend: string;
1947
+ }
1948
+ declare const WORKER_SCENES: Record<string, string>;
1949
+ declare function defineWorkerCanvas(tag?: string): CustomElementConstructor | undefined;
1950
+
1834
1951
  /**
1835
1952
  * motionary/components/widgets — the 6.x animated UI widgets, in their own
1836
1953
  * entry so `motionary/components` and `components/lite` keep their size
@@ -1944,8 +2061,12 @@ declare global {
1944
2061
  'usa-bg-generator': UsaBgGeneratorElement;
1945
2062
  'usa-video-card': UsaVideoCardElement;
1946
2063
  'usa-hero-video': UsaHeroVideoElement;
2064
+ 'usa-motion-prefs': UsaMotionPrefsElement;
2065
+ 'usa-pause-all': UsaPauseAllElement;
2066
+ 'usa-perf-monitor': UsaPerfMonitorElement;
2067
+ 'usa-worker-canvas': UsaWorkerCanvasElement;
1947
2068
  }
1948
2069
  }
1949
2070
 
1950
- export { CAROUSEL_EFFECTS, EQ_PRESETS, FESTIVAL_THEMES, LOTTIE_ICONS, MENU_EFFECTS, MODAL_EFFECTS, NAV_INDICATORS, PRESENCE_STATES, PROGRESS_VARIANTS, RETRO_VARIANTS, SEGMENTED_VARIANTS, SHEET_SIDES, SKELETON_VARIANTS, SPARK_VARIANTS, SWITCH_VARIANTS, TAB_INDICATORS, TIP_PLACEMENTS, TOAST_POSITIONS, TOGGLE_VARIANTS, WEATHER_CONDITIONS, WIDGETS, WIDGET_TAGS, backgroundCss, badgeProgress, cartTotal, defineAddToCart, defineBadgeWall, defineBarChart, defineBgGenerator, defineCarousel, defineCartDrawer, defineChapterNav, defineChatComposer, defineClockControl, defineCodeExport, defineColorPicker, defineCommandPalette, defineCompare, defineCountdown, defineCubeGallery, defineDatePicker, defineDisclosure, defineDock, defineEqualizer, defineFestivalBanner, defineField, defineFileDrop, defineGauge, defineGenArt, defineGestureSticker, defineGlobe, defineGyroCard, defineHeroVideo, defineHudPanel, defineHydrate, defineKanban, defineKeyframeEditor, defineKpi, defineLeaderboard, defineLiquidNav, defineLocationCard, defineLottie, defineLottieIcon, defineLyrics, defineMasonryFlow, defineMenu, defineMenuToggle, defineMessageList, defineMilestones, defineModal, defineMotion, defineMusicPlayer, defineNavMorph, defineNotificationBell, defineOdometer, defineOrganicCard, defineOtp, definePagination, definePanorama, definePluginStore, definePresence, definePrizeWheel, defineProductGallery, defineProgressRing, definePropPanel, definePullCord, defineRadar, defineReactions, defineRedEnvelope, defineRetroButton, defineScene, defineSegmented, defineSheet, defineShortcut, defineSkeletonReveal, defineSketchChart, defineSparkline, defineSpatialCard, defineStarRating, defineStepper, defineStickyWall, defineStories, defineSuggestionChips, defineSwipeDeck, defineSwitch, defineTabBar, defineTerminal, defineThemeSurface, defineThemeSwitcher, defineTip, defineToastStack, defineUploadProgress, defineVideoCard, defineVoiceButton, defineVolumeKnob, defineWeatherCard, defineWidgets, defineXpBar, describeComponent, exportComponent, formatBytes, formatDistance, fuzzyMatch, haversine, hexToHsv, hsvToHex, initials, keyLabels, levelFor, matchesKeys, monthGrid, pageWindow, parseChips, parseISODate, parseLRC, parseMarkers, parseProps, parseReactions, parseTargets, passwordStrength, project, rankRows, sanitizeCode, sparkPoints, splitTime, stackToast, waveBars, wheelAngle, wrapIndex };
1951
- export type { BellNotice, CartItem, ChatMessage, ExportFormat, ExportedNode, GlobeMarker, LeaderRow, PaletteCommand, PresenceState, PropSpec, RadarTarget, StackToastOptions, StickerState, UsaAddToCartElement, UsaBadgeWallElement, UsaBarChartElement, UsaBgGeneratorElement, UsaCarouselElement, UsaCartDrawerElement, UsaChapterNavElement, UsaChatComposerElement, UsaClockControlElement, UsaCodeExportElement, UsaColorPickerElement, UsaCommandPaletteElement, UsaCompareElement, UsaCountdownElement, UsaCubeGalleryElement, UsaDatePickerElement, UsaDisclosureElement, UsaDockElement, UsaEqualizerElement, UsaFestivalBannerElement, UsaFieldElement, UsaFileDropElement, UsaGaugeElement, UsaGenArtElement, UsaGestureStickerElement, UsaGlobeElement, UsaGyroCardElement, UsaHeroVideoElement, UsaHudPanelElement, UsaHydrateElement, UsaKanbanElement, UsaKeyframeEditorElement, UsaKpiElement, UsaLeaderboardElement, UsaLiquidNavElement, UsaLocationCardElement, UsaLottieElement, UsaLottieIconElement, UsaLyricsElement, UsaMasonryFlowElement, UsaMenuElement, UsaMenuToggleElement, UsaMessageListElement, UsaMilestonesElement, UsaModalElement, UsaMotionElement, UsaMusicPlayerElement, UsaNavMorphElement, UsaNotificationBellElement, UsaOdometerElement, UsaOrganicCardElement, UsaOtpElement, UsaPaginationElement, UsaPanoramaElement, UsaPluginStoreElement, UsaPresenceElement, UsaPrizeWheelElement, UsaProductGalleryElement, UsaProgressRingElement, UsaPropPanelElement, UsaPullCordElement, UsaRadarElement, UsaReactionsElement, UsaRedEnvelopeElement, UsaRetroButtonElement, UsaSceneElement, UsaSegmentedElement, UsaSheetElement, UsaShortcutElement, UsaSkeletonRevealElement, UsaSketchChartElement, UsaSparklineElement, UsaSpatialCardElement, UsaStarRatingElement, UsaStepperElement, UsaStickyWallElement, UsaStoriesElement, UsaSuggestionChipsElement, UsaSwipeDeckElement, UsaSwitchElement, UsaTabBarElement, UsaTerminalElement, UsaThemeSurfaceElement, UsaThemeSwitcherElement, UsaTipElement, UsaToastStackElement, UsaUploadProgressElement, UsaVideoCardElement, UsaVoiceButtonElement, UsaVolumeKnobElement, UsaWeatherCardElement, UsaXpBarElement, WallBadge };
2071
+ export { CAROUSEL_EFFECTS, EQ_PRESETS, FESTIVAL_THEMES, LOTTIE_ICONS, MENU_EFFECTS, MODAL_EFFECTS, NAV_INDICATORS, PRESENCE_STATES, PROGRESS_VARIANTS, RETRO_VARIANTS, SEGMENTED_VARIANTS, SHEET_SIDES, SKELETON_VARIANTS, SPARK_VARIANTS, SWITCH_VARIANTS, TAB_INDICATORS, TIP_PLACEMENTS, TOAST_POSITIONS, TOGGLE_VARIANTS, WEATHER_CONDITIONS, WIDGETS, WIDGET_TAGS, WORKER_SCENES, backgroundCss, badgeProgress, cartTotal, defineAddToCart, defineBadgeWall, defineBarChart, defineBgGenerator, defineCarousel, defineCartDrawer, defineChapterNav, defineChatComposer, defineClockControl, defineCodeExport, defineColorPicker, defineCommandPalette, defineCompare, defineCountdown, defineCubeGallery, defineDatePicker, defineDisclosure, defineDock, defineEqualizer, defineFestivalBanner, defineField, defineFileDrop, defineGauge, defineGenArt, defineGestureSticker, defineGlobe, defineGyroCard, defineHeroVideo, defineHudPanel, defineHydrate, defineKanban, defineKeyframeEditor, defineKpi, defineLeaderboard, defineLiquidNav, defineLocationCard, defineLottie, defineLottieIcon, defineLyrics, defineMasonryFlow, defineMenu, defineMenuToggle, defineMessageList, defineMilestones, defineModal, defineMotion, defineMotionPrefs, defineMusicPlayer, defineNavMorph, defineNotificationBell, defineOdometer, defineOrganicCard, defineOtp, definePagination, definePanorama, definePauseAll, definePerfMonitor, definePluginStore, definePresence, definePrizeWheel, defineProductGallery, defineProgressRing, definePropPanel, definePullCord, defineRadar, defineReactions, defineRedEnvelope, defineRetroButton, defineScene, defineSegmented, defineSheet, defineShortcut, defineSkeletonReveal, defineSketchChart, defineSparkline, defineSpatialCard, defineStarRating, defineStepper, defineStickyWall, defineStories, defineSuggestionChips, defineSwipeDeck, defineSwitch, defineTabBar, defineTerminal, defineThemeSurface, defineThemeSwitcher, defineTip, defineToastStack, defineUploadProgress, defineVideoCard, defineVoiceButton, defineVolumeKnob, defineWeatherCard, defineWidgets, defineWorkerCanvas, defineXpBar, describeComponent, exportComponent, formatBytes, formatDistance, fuzzyMatch, haversine, hexToHsv, hsvToHex, initials, keyLabels, levelFor, matchesKeys, monthGrid, pageWindow, parseChips, parseISODate, parseLRC, parseMarkers, parseProps, parseReactions, parseTargets, passwordStrength, project, rankRows, sanitizeCode, sparkPoints, splitTime, stackToast, waveBars, wheelAngle, wrapIndex };
2072
+ export type { BellNotice, CartItem, ChatMessage, ExportFormat, ExportedNode, GlobeMarker, LeaderRow, PaletteCommand, PerfStats, PresenceState, PropSpec, RadarTarget, StackToastOptions, StickerState, UsaAddToCartElement, UsaBadgeWallElement, UsaBarChartElement, UsaBgGeneratorElement, UsaCarouselElement, UsaCartDrawerElement, UsaChapterNavElement, UsaChatComposerElement, UsaClockControlElement, UsaCodeExportElement, UsaColorPickerElement, UsaCommandPaletteElement, UsaCompareElement, UsaCountdownElement, UsaCubeGalleryElement, UsaDatePickerElement, UsaDisclosureElement, UsaDockElement, UsaEqualizerElement, UsaFestivalBannerElement, UsaFieldElement, UsaFileDropElement, UsaGaugeElement, UsaGenArtElement, UsaGestureStickerElement, UsaGlobeElement, UsaGyroCardElement, UsaHeroVideoElement, UsaHudPanelElement, UsaHydrateElement, UsaKanbanElement, UsaKeyframeEditorElement, UsaKpiElement, UsaLeaderboardElement, UsaLiquidNavElement, UsaLocationCardElement, UsaLottieElement, UsaLottieIconElement, UsaLyricsElement, UsaMasonryFlowElement, UsaMenuElement, UsaMenuToggleElement, UsaMessageListElement, UsaMilestonesElement, UsaModalElement, UsaMotionElement, UsaMotionPrefsElement, UsaMusicPlayerElement, UsaNavMorphElement, UsaNotificationBellElement, UsaOdometerElement, UsaOrganicCardElement, UsaOtpElement, UsaPaginationElement, UsaPanoramaElement, UsaPauseAllElement, UsaPerfMonitorElement, UsaPluginStoreElement, UsaPresenceElement, UsaPrizeWheelElement, UsaProductGalleryElement, UsaProgressRingElement, UsaPropPanelElement, UsaPullCordElement, UsaRadarElement, UsaReactionsElement, UsaRedEnvelopeElement, UsaRetroButtonElement, UsaSceneElement, UsaSegmentedElement, UsaSheetElement, UsaShortcutElement, UsaSkeletonRevealElement, UsaSketchChartElement, UsaSparklineElement, UsaSpatialCardElement, UsaStarRatingElement, UsaStepperElement, UsaStickyWallElement, UsaStoriesElement, UsaSuggestionChipsElement, UsaSwipeDeckElement, UsaSwitchElement, UsaTabBarElement, UsaTerminalElement, UsaThemeSurfaceElement, UsaThemeSwitcherElement, UsaTipElement, UsaToastStackElement, UsaUploadProgressElement, UsaVideoCardElement, UsaVoiceButtonElement, UsaVolumeKnobElement, UsaWeatherCardElement, UsaWorkerCanvasElement, UsaXpBarElement, WallBadge };
@@ -1,3 +1,4 @@
1
+ type MotionSensitivity = 'full' | 'gentle' | 'minimal' | 'static';
1
2
  /**
2
3
  * Members shared by every `<usa-*>` element. Attribute helpers, a cleanup
3
4
  * bag that is emptied on disconnect, and motion helpers that degrade to the
@@ -1831,6 +1832,122 @@ interface UsaHeroVideoElement extends UsaElement {
1831
1832
  }
1832
1833
  declare function defineHeroVideo(tag?: string): CustomElementConstructor | undefined;
1833
1834
 
1835
+ /**
1836
+ * 9.5 — Accessible motion 2.0 (`motionary/fx/safe`, also `motionary/components/fx-safe`):
1837
+ *
1838
+ * - `vestibularSafe(keyframes)` — strips movement (translate / scale /
1839
+ * rotate / skew / perspective, clip and blur) from keyframes, keeping
1840
+ * opacity and colour, so any animation can get a vestibular-safe twin.
1841
+ * - `flashCount(keyframes, duration)` / `isFlashSafe(...)` — counts large
1842
+ * opacity / brightness swings and checks WCAG 2.3.1's three-flashes-per-
1843
+ * second limit.
1844
+ * - `applyMotionPreferences(prefs)` / `loadMotionPreferences()` — the
1845
+ * settings behind `<usa-motion-prefs>`: sensitivity level, speed (shared
1846
+ * clock rate), pause autoplay, no parallax; persisted in localStorage and
1847
+ * exposed as `data-usa-*` attributes on `<html>` for your CSS.
1848
+ *
1849
+ * Effects that never move anything: `safe-fade` (enter), `focus-glow`
1850
+ * (attention), `color-pulse` (attention), `underline-sweep` (hover).
1851
+ */
1852
+
1853
+ interface MotionPreferences {
1854
+ sensitivity: MotionSensitivity;
1855
+ speed: number;
1856
+ pauseAutoplay: boolean;
1857
+ noParallax: boolean;
1858
+ }
1859
+
1860
+ /**
1861
+ * `<usa-motion-prefs>` (9.5) — a motion preference panel for your users:
1862
+ * motion level (Full · Gentle · Minimal · None — Motionary's sensitivity
1863
+ * levels), animation speed (the shared clock rate, 0.25–2×), "pause
1864
+ * autoplaying video" and "no parallax". Changes apply instantly to every
1865
+ * Motionary component on the page, persist in localStorage and are shown
1866
+ * as `data-usa-*` attributes on `<html>`; a live sample shows the result.
1867
+ * `prefs`, `reset()`; `usa:change` { prefs }. A labelled `form` of real
1868
+ * radio buttons, slider and checkboxes.
1869
+ */
1870
+ interface UsaMotionPrefsElement extends UsaElement {
1871
+ readonly prefs: MotionPreferences;
1872
+ reset(): void;
1873
+ }
1874
+ declare function defineMotionPrefs(tag?: string): CustomElementConstructor | undefined;
1875
+
1876
+ /**
1877
+ * `<usa-pause-all>` (9.5) — one button that pauses all motion on the page
1878
+ * (WCAG 2.2.2 "Pause, Stop, Hide"): it pauses Motionary's shared clock
1879
+ * (every component, effect and frame loop), every other CSS / WAAPI
1880
+ * animation in the document and autoplaying media; pressing again resumes
1881
+ * them. Stays in sync with `motionClock`. `scope` (a selector) limits it to
1882
+ * one subtree's animations and media and leaves the shared clock alone.
1883
+ * `paused`, `toggle()`;
1884
+ * `usa:pause-all` { paused }. A real `button` with `aria-pressed`.
1885
+ */
1886
+ interface UsaPauseAllElement extends UsaElement {
1887
+ readonly paused: boolean;
1888
+ toggle(): void;
1889
+ }
1890
+ declare function definePauseAll(tag?: string): CustomElementConstructor | undefined;
1891
+
1892
+ /**
1893
+ * `<usa-perf-monitor>` (9.6) — a live performance overlay for motion work:
1894
+ * FPS with a sparkline, active Motionary animations, frame-loop callbacks,
1895
+ * long tasks (PerformanceObserver) and the shared clock state. `corner`
1896
+ * (top-right default · top-left · bottom-right · bottom-left · `inline`),
1897
+ * `collapsed`; click the header to collapse. `stats` property;
1898
+ * `usa:jank` { fps } when FPS drops under `warn` (45). A labelled `status`
1899
+ * region updated about twice a second.
1900
+ */
1901
+ interface PerfStats {
1902
+ fps: number;
1903
+ animations: number;
1904
+ loops: number;
1905
+ longTasks: number;
1906
+ clock: string;
1907
+ }
1908
+ interface UsaPerfMonitorElement extends UsaElement {
1909
+ readonly stats: PerfStats;
1910
+ }
1911
+ declare function definePerfMonitor(tag?: string): CustomElementConstructor | undefined;
1912
+
1913
+ /**
1914
+ * 9.6 — Performance 3.0 (`motionary/fx/perf`, also `motionary/components/fx-perf`):
1915
+ *
1916
+ * - `runInWorker(fn, ...args)` — run a pure function in a throw-away Web
1917
+ * Worker (built from its source) and get a promise of its result; runs
1918
+ * inline when Workers are unavailable.
1919
+ * - `offscreenRender(canvas, program, options)` — move a canvas animation
1920
+ * off the main thread: `program` is the source of
1921
+ * `function (ctx, t, w, h, state) {…}`; with OffscreenCanvas + Worker it
1922
+ * runs in a worker (`backend: 'worker'`), otherwise on the main thread via
1923
+ * the shared frame loop (`'main'`). Returns { backend, stop, resize }.
1924
+ * - `fpsMeter()` — a rolling frames-per-second meter on the shared loop.
1925
+ *
1926
+ * Effects: `idle-reveal` (enter) waits for an idle moment before fading in
1927
+ * (keeps first paint / input snappy); `gpu-lift` (hover) a compositor-only
1928
+ * lift (transform + opacity only). Reduced motion: idle-reveal just shows,
1929
+ * gpu-lift does nothing.
1930
+ */
1931
+
1932
+ type DrawProgram = string | ((ctx: CanvasRenderingContext2D, t: number, w: number, h: number, state: Record<string, unknown>) => void);
1933
+
1934
+ /**
1935
+ * `<usa-worker-canvas scene="particles">` (9.6) — a canvas animation that
1936
+ * renders in a Web Worker on an OffscreenCanvas (main thread stays free;
1937
+ * falls back to the shared frame loop): built-in `scene` = `particles` ·
1938
+ * `orbits` · `starfield`, or your own `program` (the source of
1939
+ * `(ctx, t, w, h, state) => {…}`). Only runs while on screen.
1940
+ * `data-usa-backend` shows `worker` or `main`; `backend` property;
1941
+ * `usa:backend` { backend }. An `img` with `label`; reduced motion: one
1942
+ * still frame.
1943
+ */
1944
+ interface UsaWorkerCanvasElement extends UsaElement {
1945
+ program: DrawProgram | null;
1946
+ readonly backend: string;
1947
+ }
1948
+ declare const WORKER_SCENES: Record<string, string>;
1949
+ declare function defineWorkerCanvas(tag?: string): CustomElementConstructor | undefined;
1950
+
1834
1951
  /**
1835
1952
  * motionary/components/widgets — the 6.x animated UI widgets, in their own
1836
1953
  * entry so `motionary/components` and `components/lite` keep their size
@@ -1944,8 +2061,12 @@ declare global {
1944
2061
  'usa-bg-generator': UsaBgGeneratorElement;
1945
2062
  'usa-video-card': UsaVideoCardElement;
1946
2063
  'usa-hero-video': UsaHeroVideoElement;
2064
+ 'usa-motion-prefs': UsaMotionPrefsElement;
2065
+ 'usa-pause-all': UsaPauseAllElement;
2066
+ 'usa-perf-monitor': UsaPerfMonitorElement;
2067
+ 'usa-worker-canvas': UsaWorkerCanvasElement;
1947
2068
  }
1948
2069
  }
1949
2070
 
1950
- export { CAROUSEL_EFFECTS, EQ_PRESETS, FESTIVAL_THEMES, LOTTIE_ICONS, MENU_EFFECTS, MODAL_EFFECTS, NAV_INDICATORS, PRESENCE_STATES, PROGRESS_VARIANTS, RETRO_VARIANTS, SEGMENTED_VARIANTS, SHEET_SIDES, SKELETON_VARIANTS, SPARK_VARIANTS, SWITCH_VARIANTS, TAB_INDICATORS, TIP_PLACEMENTS, TOAST_POSITIONS, TOGGLE_VARIANTS, WEATHER_CONDITIONS, WIDGETS, WIDGET_TAGS, backgroundCss, badgeProgress, cartTotal, defineAddToCart, defineBadgeWall, defineBarChart, defineBgGenerator, defineCarousel, defineCartDrawer, defineChapterNav, defineChatComposer, defineClockControl, defineCodeExport, defineColorPicker, defineCommandPalette, defineCompare, defineCountdown, defineCubeGallery, defineDatePicker, defineDisclosure, defineDock, defineEqualizer, defineFestivalBanner, defineField, defineFileDrop, defineGauge, defineGenArt, defineGestureSticker, defineGlobe, defineGyroCard, defineHeroVideo, defineHudPanel, defineHydrate, defineKanban, defineKeyframeEditor, defineKpi, defineLeaderboard, defineLiquidNav, defineLocationCard, defineLottie, defineLottieIcon, defineLyrics, defineMasonryFlow, defineMenu, defineMenuToggle, defineMessageList, defineMilestones, defineModal, defineMotion, defineMusicPlayer, defineNavMorph, defineNotificationBell, defineOdometer, defineOrganicCard, defineOtp, definePagination, definePanorama, definePluginStore, definePresence, definePrizeWheel, defineProductGallery, defineProgressRing, definePropPanel, definePullCord, defineRadar, defineReactions, defineRedEnvelope, defineRetroButton, defineScene, defineSegmented, defineSheet, defineShortcut, defineSkeletonReveal, defineSketchChart, defineSparkline, defineSpatialCard, defineStarRating, defineStepper, defineStickyWall, defineStories, defineSuggestionChips, defineSwipeDeck, defineSwitch, defineTabBar, defineTerminal, defineThemeSurface, defineThemeSwitcher, defineTip, defineToastStack, defineUploadProgress, defineVideoCard, defineVoiceButton, defineVolumeKnob, defineWeatherCard, defineWidgets, defineXpBar, describeComponent, exportComponent, formatBytes, formatDistance, fuzzyMatch, haversine, hexToHsv, hsvToHex, initials, keyLabels, levelFor, matchesKeys, monthGrid, pageWindow, parseChips, parseISODate, parseLRC, parseMarkers, parseProps, parseReactions, parseTargets, passwordStrength, project, rankRows, sanitizeCode, sparkPoints, splitTime, stackToast, waveBars, wheelAngle, wrapIndex };
1951
- export type { BellNotice, CartItem, ChatMessage, ExportFormat, ExportedNode, GlobeMarker, LeaderRow, PaletteCommand, PresenceState, PropSpec, RadarTarget, StackToastOptions, StickerState, UsaAddToCartElement, UsaBadgeWallElement, UsaBarChartElement, UsaBgGeneratorElement, UsaCarouselElement, UsaCartDrawerElement, UsaChapterNavElement, UsaChatComposerElement, UsaClockControlElement, UsaCodeExportElement, UsaColorPickerElement, UsaCommandPaletteElement, UsaCompareElement, UsaCountdownElement, UsaCubeGalleryElement, UsaDatePickerElement, UsaDisclosureElement, UsaDockElement, UsaEqualizerElement, UsaFestivalBannerElement, UsaFieldElement, UsaFileDropElement, UsaGaugeElement, UsaGenArtElement, UsaGestureStickerElement, UsaGlobeElement, UsaGyroCardElement, UsaHeroVideoElement, UsaHudPanelElement, UsaHydrateElement, UsaKanbanElement, UsaKeyframeEditorElement, UsaKpiElement, UsaLeaderboardElement, UsaLiquidNavElement, UsaLocationCardElement, UsaLottieElement, UsaLottieIconElement, UsaLyricsElement, UsaMasonryFlowElement, UsaMenuElement, UsaMenuToggleElement, UsaMessageListElement, UsaMilestonesElement, UsaModalElement, UsaMotionElement, UsaMusicPlayerElement, UsaNavMorphElement, UsaNotificationBellElement, UsaOdometerElement, UsaOrganicCardElement, UsaOtpElement, UsaPaginationElement, UsaPanoramaElement, UsaPluginStoreElement, UsaPresenceElement, UsaPrizeWheelElement, UsaProductGalleryElement, UsaProgressRingElement, UsaPropPanelElement, UsaPullCordElement, UsaRadarElement, UsaReactionsElement, UsaRedEnvelopeElement, UsaRetroButtonElement, UsaSceneElement, UsaSegmentedElement, UsaSheetElement, UsaShortcutElement, UsaSkeletonRevealElement, UsaSketchChartElement, UsaSparklineElement, UsaSpatialCardElement, UsaStarRatingElement, UsaStepperElement, UsaStickyWallElement, UsaStoriesElement, UsaSuggestionChipsElement, UsaSwipeDeckElement, UsaSwitchElement, UsaTabBarElement, UsaTerminalElement, UsaThemeSurfaceElement, UsaThemeSwitcherElement, UsaTipElement, UsaToastStackElement, UsaUploadProgressElement, UsaVideoCardElement, UsaVoiceButtonElement, UsaVolumeKnobElement, UsaWeatherCardElement, UsaXpBarElement, WallBadge };
2071
+ export { CAROUSEL_EFFECTS, EQ_PRESETS, FESTIVAL_THEMES, LOTTIE_ICONS, MENU_EFFECTS, MODAL_EFFECTS, NAV_INDICATORS, PRESENCE_STATES, PROGRESS_VARIANTS, RETRO_VARIANTS, SEGMENTED_VARIANTS, SHEET_SIDES, SKELETON_VARIANTS, SPARK_VARIANTS, SWITCH_VARIANTS, TAB_INDICATORS, TIP_PLACEMENTS, TOAST_POSITIONS, TOGGLE_VARIANTS, WEATHER_CONDITIONS, WIDGETS, WIDGET_TAGS, WORKER_SCENES, backgroundCss, badgeProgress, cartTotal, defineAddToCart, defineBadgeWall, defineBarChart, defineBgGenerator, defineCarousel, defineCartDrawer, defineChapterNav, defineChatComposer, defineClockControl, defineCodeExport, defineColorPicker, defineCommandPalette, defineCompare, defineCountdown, defineCubeGallery, defineDatePicker, defineDisclosure, defineDock, defineEqualizer, defineFestivalBanner, defineField, defineFileDrop, defineGauge, defineGenArt, defineGestureSticker, defineGlobe, defineGyroCard, defineHeroVideo, defineHudPanel, defineHydrate, defineKanban, defineKeyframeEditor, defineKpi, defineLeaderboard, defineLiquidNav, defineLocationCard, defineLottie, defineLottieIcon, defineLyrics, defineMasonryFlow, defineMenu, defineMenuToggle, defineMessageList, defineMilestones, defineModal, defineMotion, defineMotionPrefs, defineMusicPlayer, defineNavMorph, defineNotificationBell, defineOdometer, defineOrganicCard, defineOtp, definePagination, definePanorama, definePauseAll, definePerfMonitor, definePluginStore, definePresence, definePrizeWheel, defineProductGallery, defineProgressRing, definePropPanel, definePullCord, defineRadar, defineReactions, defineRedEnvelope, defineRetroButton, defineScene, defineSegmented, defineSheet, defineShortcut, defineSkeletonReveal, defineSketchChart, defineSparkline, defineSpatialCard, defineStarRating, defineStepper, defineStickyWall, defineStories, defineSuggestionChips, defineSwipeDeck, defineSwitch, defineTabBar, defineTerminal, defineThemeSurface, defineThemeSwitcher, defineTip, defineToastStack, defineUploadProgress, defineVideoCard, defineVoiceButton, defineVolumeKnob, defineWeatherCard, defineWidgets, defineWorkerCanvas, defineXpBar, describeComponent, exportComponent, formatBytes, formatDistance, fuzzyMatch, haversine, hexToHsv, hsvToHex, initials, keyLabels, levelFor, matchesKeys, monthGrid, pageWindow, parseChips, parseISODate, parseLRC, parseMarkers, parseProps, parseReactions, parseTargets, passwordStrength, project, rankRows, sanitizeCode, sparkPoints, splitTime, stackToast, waveBars, wheelAngle, wrapIndex };
2072
+ export type { BellNotice, CartItem, ChatMessage, ExportFormat, ExportedNode, GlobeMarker, LeaderRow, PaletteCommand, PerfStats, PresenceState, PropSpec, RadarTarget, StackToastOptions, StickerState, UsaAddToCartElement, UsaBadgeWallElement, UsaBarChartElement, UsaBgGeneratorElement, UsaCarouselElement, UsaCartDrawerElement, UsaChapterNavElement, UsaChatComposerElement, UsaClockControlElement, UsaCodeExportElement, UsaColorPickerElement, UsaCommandPaletteElement, UsaCompareElement, UsaCountdownElement, UsaCubeGalleryElement, UsaDatePickerElement, UsaDisclosureElement, UsaDockElement, UsaEqualizerElement, UsaFestivalBannerElement, UsaFieldElement, UsaFileDropElement, UsaGaugeElement, UsaGenArtElement, UsaGestureStickerElement, UsaGlobeElement, UsaGyroCardElement, UsaHeroVideoElement, UsaHudPanelElement, UsaHydrateElement, UsaKanbanElement, UsaKeyframeEditorElement, UsaKpiElement, UsaLeaderboardElement, UsaLiquidNavElement, UsaLocationCardElement, UsaLottieElement, UsaLottieIconElement, UsaLyricsElement, UsaMasonryFlowElement, UsaMenuElement, UsaMenuToggleElement, UsaMessageListElement, UsaMilestonesElement, UsaModalElement, UsaMotionElement, UsaMotionPrefsElement, UsaMusicPlayerElement, UsaNavMorphElement, UsaNotificationBellElement, UsaOdometerElement, UsaOrganicCardElement, UsaOtpElement, UsaPaginationElement, UsaPanoramaElement, UsaPauseAllElement, UsaPerfMonitorElement, UsaPluginStoreElement, UsaPresenceElement, UsaPrizeWheelElement, UsaProductGalleryElement, UsaProgressRingElement, UsaPropPanelElement, UsaPullCordElement, UsaRadarElement, UsaReactionsElement, UsaRedEnvelopeElement, UsaRetroButtonElement, UsaSceneElement, UsaSegmentedElement, UsaSheetElement, UsaShortcutElement, UsaSkeletonRevealElement, UsaSketchChartElement, UsaSparklineElement, UsaSpatialCardElement, UsaStarRatingElement, UsaStepperElement, UsaStickyWallElement, UsaStoriesElement, UsaSuggestionChipsElement, UsaSwipeDeckElement, UsaSwitchElement, UsaTabBarElement, UsaTerminalElement, UsaThemeSurfaceElement, UsaThemeSwitcherElement, UsaTipElement, UsaToastStackElement, UsaUploadProgressElement, UsaVideoCardElement, UsaVoiceButtonElement, UsaVolumeKnobElement, UsaWeatherCardElement, UsaWorkerCanvasElement, UsaXpBarElement, WallBadge };