@materialwebunofficial/antigravity-themes 0.0.0-stage → 1.0.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.
@@ -0,0 +1,686 @@
1
+ MD3 Expressive for Web (md3e-web-unofficial) [Unofficial Web Adaptation]
2
+ Copyright 2025-2026 Material Web Unofficial Contributors
3
+
4
+ This product is an independent, unofficial community web adaptation and includes
5
+ software and design specifications developed by or derived from the following third-party works:
6
+
7
+ ===============================================================================
8
+ 1. Material Design 3 & Material 3 Expressive Design System
9
+ ===============================================================================
10
+ Copyright Google LLC.
11
+ Website: https://m3.material.io/
12
+ Licensed under the Apache License, Version 2.0 (the "License").
13
+ You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
14
+
15
+ This library implements design tokens, color roles, elevation, typography,
16
+ shapes, and motion schemes specified by the Material Design 3 and
17
+ Material 3 Expressive guidelines.
18
+
19
+ ===============================================================================
20
+ 2. Android Open Source Project (AOSP) - AndroidX Jetpack Compose Material 3
21
+ ===============================================================================
22
+ Copyright (C) The Android Open Source Project
23
+ Repository: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/compose/material3/
24
+ Mirror: https://github.com/androidx/androidx
25
+ Licensed under the Apache License, Version 2.0 (the "License").
26
+
27
+ Component architectures, token definitions (e.g. SheetBottomTokens,
28
+ AppBarTokens, ToolbarTokens, MotionScheme, SpringPhysics), interaction states,
29
+ and API surfaces in this library are adapted from the official AndroidX
30
+ Compose Material 3 Kotlin implementation.
31
+
32
+ Loading indicator cubic geometry and morph pairs are generated from AndroidX
33
+ graphics-shapes (RoundedPolygon, Morph and their helpers), MaterialShapes.kt,
34
+ and LoadingIndicator.kt at revision a095da93f8e98dea8748ceed79ea8427aade245f.
35
+ Spring completion timing is generated from animation-core/SpringEstimation.kt.
36
+ The generator substitutes minimal Compose geometry adapters for standalone JVM
37
+ execution; the browser interpolates exported cubic pairs and renders them on Canvas.
38
+ See tools/androidx-shapes for the reproducible generator and source hash manifest.
39
+ The canonical SVG shape catalog in src/tokens/shapes.js is generated from the
40
+ same normalized MaterialShapes polygons. Legacy hexagon remains a web extension.
41
+
42
+ ===============================================================================
43
+ 3. Material Components for Android (MDC-Android)
44
+ ===============================================================================
45
+ Copyright (C) Google LLC.
46
+ Repository: https://github.com/material-components/material-components-android
47
+ Licensed under the Apache License, Version 2.0 (the "License").
48
+
49
+ DockedToolbar, FloatingToolbar, and bottom sheet surface mechanics reference
50
+ MDC-Android specifications.
51
+
52
+ The shared browser modal window adapter follows MDC Material3 Dialog's
53
+ fade-enter/fade-exit XML resources, motion values and scrim token at revision
54
+ 60ff09436d5d477a4b9d02940f31eb01e1250620. Unchanged reference sources and original
55
+ license headers are retained in test/fixtures/androidx/dialog.
56
+
57
+ ===============================================================================
58
+ 4. Material Color Utilities / HCT Color System
59
+ ===============================================================================
60
+ Copyright (C) Google LLC.
61
+ Repository: https://github.com/material-foundation/material-color-utilities
62
+ Licensed under the Apache License, Version 2.0 (the "License").
63
+
64
+ The HCT (Hue-Chroma-Tone) dynamic tonal palettes and color derivation algorithms
65
+ used in the theme system are based on Google's Material Color Utilities.
66
+
67
+ ===============================================================================
68
+ 5. Material Symbols & Google Fonts
69
+ ===============================================================================
70
+ Copyright Google LLC.
71
+ Website: https://fonts.google.com/icons
72
+ Licensed under the Apache License, Version 2.0.
73
+ The local Roboto text font is covered separately by the SIL Open Font License below.
74
+
75
+ Material Color Utilities runtime
76
+ Copyright 2021-2026 Google LLC. Licensed under Apache-2.0.
77
+ The generated src/theme/material-color-utilities.js bundles unmodified algorithms
78
+ from @material/material-color-utilities version 0.4.0. Its upstream license is
79
+ included in tools/material-color-utilities/LICENSE; notices remain in the module.
80
+ Reproducible download, integrity verification and bundling: tools/material-color-utilities.
81
+
82
+ Roboto text font
83
+ Copyright 2011 The Roboto Project Authors (https://github.com/googlefonts/roboto-classic).
84
+ Licensed under the SIL Open Font License, Version 1.1; see src/fonts/Roboto-OFL.txt
85
+ (also distributed as dist/fonts/Roboto-OFL.txt). Vendored from google/fonts at
86
+ 1c627bfa375fc51cf86fabeca4f6e08a95f0aa5c and losslessly compressed as WOFF2.
87
+ No font subsetting or outline modification is applied.
88
+
89
+ Typography token catalog
90
+ Copyright 2021 The Android Open Source Project. Apache-2.0.
91
+ TypeScaleTokens.kt and TypefaceTokens.kt at the AndroidX revision listed above
92
+ are included in test/fixtures/androidx. Generated catalog/CSS: tools/androidx-typography.
93
+
94
+ Selection motion duration estimator
95
+ Copyright 2020 The Android Open Source Project. Apache-2.0.
96
+ src/motion/spring-duration.js ports SpringEstimation.kt from AndroidX revision
97
+ a095da93f8e98dea8748ceed79ea8427aade245f. Original sources and independently
98
+ generated Kotlin fixtures are in test/fixtures/androidx/motion;
99
+ see tools/androidx-motion for reproduction and bridge details.
100
+
101
+ Navigation rail measurement
102
+ Copyright 2024 The Android Open Source Project. Apache-2.0.
103
+ src/components/navigation-rail-layout.js adapts AnimatedMeasurePolicy and
104
+ placeAnimatedLabelAndIcon from NavigationItem.kt at the AndroidX revision above.
105
+ Original sources: test/fixtures/androidx/navigation; extracted Kotlin policy
106
+ oracle and platform measurement adapters: tools/androidx-navigation.
107
+
108
+ Navigation label color motion
109
+ Copyright 2019 The Android Open Source Project. Apache-2.0.
110
+ src/motion/color-motion.js adapts the ColorVectorConverter channel order,
111
+ drawing constraints and VectorizedFloatAnimationSpec shared spring duration.
112
+ Original source references/hashes: test/fixtures/androidx/color and motion.
113
+ The browser performs CSS color conversion; it is not a port of AndroidX packed
114
+ color storage. Independent Kotlin vector trajectory fixtures: tools/androidx-motion.
115
+
116
+ Navigation drawer geometry and motion
117
+ Copyright 2020-2024 The Android Open Source Project. Apache-2.0.
118
+ src/components/md-navigation-drawer.js adapts NavigationDrawer.kt's sheet/item
119
+ geometry, horizontalScaleUp/horizontalScaleDown and offset scrim fraction at the
120
+ AndroidX revision above. Original sources/hashes: test/fixtures/androidx/navigation-drawer.
121
+ src/motion/drawer-motion.js adapts its gesture target thresholds, captured256ms
122
+ FloatTweenSpec, FastOutSlowIn cubic/fastCbrt and default exponential decay.
123
+ src/motion/velocity-tracker.js adapts VelocityTracker1D/polyFitLeastSquares and
124
+ Lsq2VelocityTracker's event history/UP stop rule (Copyright2019-2025 AOSP).
125
+ src/motion/touch-slop.js adapts horizontal TouchSlopDetector and
126
+ ViewConfiguration.pointerSlop (Copyright2020 AOSP). Original source references,
127
+ flags and independently compiled threshold/offset cases: tools/androidx-drawer.
128
+ Independent Kotlin samples: tools/androidx-drawer. Native dialog modal behavior
129
+ and pointer input delivery are web adaptations; platform view configuration,
130
+ closed-container routing, multi-drawer ownership and predictive back remain under audit.
131
+
132
+ Tab measurement, indicator placement and scroll consumption
133
+ Copyright 2019-2022 The Android Open Source Project. Apache-2.0.
134
+ src/components/tab-layout.js adapts Tab.kt, TabRow.kt and Scroll.kt at the
135
+ AndroidX revision above. MdTabs applies their public geometry, defaults and motion
136
+ roles using native web fonts/input/panels. Original licensed sources and SHA
137
+ references: test/fixtures/androidx/tabs. Independent unchanged-body Kotlin
138
+ projection and host adapter details: tools/androidx-tabs; spring trajectories:
139
+ tools/androidx-motion. Generic Compose content/modifier APIs and exact platform
140
+ font/ripple/focus/hit routing are outside the currently verified tab core.
141
+
142
+ Floating toolbar measurement, balanced padding and visibility placement
143
+ Copyright 2020-2024 The Android Open Source Project. Apache-2.0.
144
+ src/components/toolbar-layout.js and md-toolbar.js adapt FloatingToolbar.kt and
145
+ EnterExitTransition.kt at the AndroidX revision above. Docked colors adapt MDC
146
+ DockedToolbarLayout resources at 60ff09436d5d477a4b9d02940f31eb01e1250620.
147
+ Original licensed files, URLs and SHA references: test/fixtures/androidx/toolbars
148
+ and test/fixtures/mdc/toolbars. Unchanged-body Kotlin projections and explicit
149
+ host measurement/animation adapters: tools/androidx-toolbars. Native focus/input,
150
+ slot metrics and CSS shadows are web adaptations, not Android renderer ports.
151
+
152
+ Floating toolbar scrolling and Android spline decay
153
+ Copyright 2020-2024 The Android Open Source Project. Apache-2.0.
154
+ src/components/toolbar-scroll.js and src/motion/android-fling.js adapt
155
+ FloatingToolbar.kt, SplineBasedDecay.kt, FlingCalculator.kt and
156
+ SplineBasedFloatDecayAnimationSpec.kt at the pinned AndroidX revision above.
157
+ Original source/URL/SHA fixtures, including Android16 ViewConfiguration friction:
158
+ test/fixtures/androidx/toolbar-scroll. Whole-body projections, shared original
159
+ spring implementation and host clock/modifier adapters: tools/androidx-toolbar-scroll.
160
+ Browser scroll delivery, CSS parent coordinates, pointer capture and native
161
+ focus/accessibility management are explicit web adaptations.
162
+
163
+ Floating toolbar parent constraints and padded scroll measurement
164
+ Copyright 2019-2024 The Android Open Source Project. Apache-2.0.
165
+ src/components/toolbar-layout.js and md-toolbar.js adapt FloatingToolbar.kt,
166
+ Constraints.kt, Size.kt, Padding.kt, Scroll.kt and Placeable.kt at the pinned
167
+ AndroidX revision above. Licensed originals with URLs/SHA references:
168
+ test/fixtures/androidx/toolbar-constraints. Original-body Kotlin measurement
169
+ and placement projection with explicit content/intrinsic/tree adapters:
170
+ tools/androidx-toolbar-constraints. CSS allocation is a browser adaptation;
171
+ Compose Row/Column/composition and platform rendering are not executed.
172
+
173
+ Floating toolbar Row/Column and minimum interactive measurement
174
+ Copyright 2019-2024 The Android Open Source Project. Apache-2.0.
175
+ src/components/row-column-layout.js, toolbar-layout.js and md-toolbar.js adapt
176
+ Row.kt, Column.kt, RowColumnMeasurePolicy.kt, RowColumnImpl.kt, Arrangement.kt,
177
+ Alignment.kt and InteractiveComponentSize.kt at the pinned AndroidX revision.
178
+ Licensed originals, URLs and SHA references: test/fixtures/androidx/toolbar-row.
179
+ Original-body Kotlin policies, intrinsic helpers, modifiers and placement
180
+ execute through tools/androidx-toolbar-row. Slotted leaf/font measurement,
181
+ explicit group alignment lines, sampled animation values and CSS allocation
182
+ are host adapters; the complete Compose UI and rendering pipeline is not run.
183
+
184
+ Floating toolbar inherited alignment lines
185
+ Copyright 2021-2024 The Android Open Source Project. Apache-2.0.
186
+ src/components/row-column-layout.js and toolbar-layout.js adapt
187
+ LayoutNodeAlignmentLines.kt, AlignmentLine.kt and the source coordinator get/
188
+ parent mapping at the pinned AndroidX revision. Licensed originals, URLs and
189
+ SHA references: test/fixtures/androidx/toolbar-alignment. Unchanged-body Kotlin
190
+ projection with explicit coordinator/owner/identity-layer/deferred-placement
191
+ adapters: tools/androidx-toolbar-alignment. Full Compose scheduling, arbitrary
192
+ custom providers/layers and platform rendering remain separate audit boundaries.
193
+
194
+ Floating toolbar omitted inner Row/Column alignment
195
+ -------------------------------------------------------------------------------
196
+ src/components/row-column-layout.js, toolbar-layout.js and md-toolbar.js adapt
197
+ the omitted inner Row Top/Column logical Start defaults while retaining explicit
198
+ Scope.align overrides and centered outer groups from FloatingToolbar.kt at
199
+ AndroidX revision a095da93f8e98dea8748ceed79ea8427aade245f. Licensed originals,
200
+ URLs and SHA references: test/fixtures/androidx/toolbar-inner-alignment. Original
201
+ default-policy factories and shared modifier/coordinator projections execute
202
+ through tools/androidx-toolbar-inner-alignment. Remember/leaf measurement,
203
+ visibility sampling and owner scheduling are explicit host boundaries; full
204
+ Compose runtime/input/rendering is not executed.
205
+
206
+ Floating toolbar two-dimensional size motion and visibility composition
207
+ Copyright 2019-2025 The Android Open Source Project. Apache-2.0.
208
+ src/motion/size-motion.js, toolbar-layout.js and md-toolbar.js adapt vectorized
209
+ IntSize springs, converted-value/Float-velocity retargeting and ordinary
210
+ AnimatedVisibility composition/disposal at the pinned AndroidX revision.
211
+ Twelve licensed originals, URLs and SHA references:
212
+ test/fixtures/androidx/toolbar-size-motion. Original-body vector/spring/converter/
213
+ TargetBasedAnimation/Transition/gate and shared native modifier projections:
214
+ tools/androidx-toolbar-size-motion. Clock/derived-state/scheduling and CSS/DOM
215
+ are explicit host adapters; full Compose runtime and platform rendering are not run.
216
+
217
+ Floating toolbar configurable content padding and modifier intrinsic fallback
218
+ Copyright 2019-2024 The Android Open Source Project. Apache-2.0.
219
+ src/components/toolbar-padding.js, toolbar-layout.js and md-toolbar.js adapt
220
+ logical/absolute PaddingValues, per-edge Float Dp rounding, and configurable
221
+ padding from FloatingToolbar.kt and Padding.kt at AndroidX revision
222
+ a095da93f8e98dea8748ceed79ea8427aade245f. Four unchanged licensed originals,
223
+ including Density.kt and LayoutModifierNode.kt, with exact URLs/SHA references:
224
+ test/fixtures/androidx/toolbar-padding. Complete original padding-value bodies,
225
+ Dp.roundToPx and ordinary default modifier intrinsic bodies execute through
226
+ tools/androidx-toolbar-padding, reusing independently verified original toolbar,
227
+ Row/Column, coordinator, scroll and Placeable projections. Density-1 scopes,
228
+ opaque with-FAB content, finite intrinsic inputs and browser allocation are
229
+ explicit hosts; full Compose runtime, native child cross layout, unbounded
230
+ intrinsic approximation and platform renderer equivalence are not claimed.
231
+
232
+ Floating toolbar native with-FAB Row/Column content
233
+ Copyright 2019-2024 The Android Open Source Project. Apache-2.0.
234
+ src/components/toolbar-layout.js and md-toolbar.js adapt the centered with-FAB
235
+ Row/Column content tree, child parent data, native minimum-interactive/SizeNode
236
+ body constraints, weighted intrinsic reservation and scroll extent from the
237
+ pinned AndroidX sources. Seven unchanged originals with exact URLs/SHA references:
238
+ test/fixtures/androidx/toolbar-fab-content, including Layout.kt's LargeDimension
239
+ for unbounded default modifier intrinsic queries. Original factories, policies,
240
+ intrinsic methods and shared modifier/coordinator/padding/scroll/placement bodies
241
+ execute through tools/androidx-toolbar-fab-content. Generic leaf metrics/lines,
242
+ density-1 scopes, empty intrinsic storage and owner/scheduling are explicit hosts;
243
+ full Compose runtime, text shaping, custom layers and platform rendering/input
244
+ are separate boundaries. Private CSS placement, overflow extent and zero-width
245
+ RTL scroll handling are browser adapters. An inert transparent extent element
246
+ retains source main-axis scrolling when generic content has zero cross size;
247
+ it does not alter measured group/child bounds and is hidden in other modes.
248
+
249
+ Compose toolbar corner shapes
250
+ Copyright 2019-2025 The Android Open Source Project. Apache-2.0.
251
+ src/shapes/corner-shape.js adapts CornerBasedShape, CornerSize, RoundedCornerShape,
252
+ CutCornerShape and absolute variants, CircleShape/RectangleShape defaults, and
253
+ RoundRect point containment at AndroidX revision
254
+ a095da93f8e98dea8748ceed79ea8427aade245f. Twenty-two unchanged licensed originals,
255
+ URLs and SHA references: test/fixtures/androidx/corner-shapes. The public web
256
+ descriptor/parser, CSS rounded/polygon clipping and src/shapes/outline-shadow.js
257
+ SVG shadow are browser adapters. Native Android Path/Skia rasterization, arbitrary
258
+ Compose Shape implementations and graphics-layer shadow/input rendering are not
259
+ executed by this port or its JVM geometry projection.
260
+
261
+ Progress indicator geometry and shapes
262
+ Copyright 2021-2024 The Android Open Source Project. Apache-2.0.
263
+ src/components/progress-indicator-layout.js, progress-indicator-path.js and
264
+ md-progress-indicator.js adapt ProgressIndicator.kt, WavyProgressIndicator.kt,
265
+ LinearWavyProgressModifiers.kt, CircularWavyProgressModifiers.kt and ShapeUtil.kt
266
+ at AndroidX revision a095da93f8e98dea8748ceed79ea8427aade245f. Nine unchanged
267
+ licensed source/token files with URLs and SHA references are under
268
+ test/fixtures/androidx/progress-indicators. tools/androidx-progress executes
269
+ source standard drawing bodies through a density-1 draw recorder and the shared
270
+ pinned graphics-shapes runtime; src/tokens/progress-morphs.js contains its native
271
+ circle/star/Morph coefficients. Rotational wedge reconstruction, quadratic/cubic
272
+ path measurement, CSS color resolution, Canvas drawing/ARIA and lifecycle are
273
+ browser adapters. Native Skia rasterization, complete Compose animation/runtime
274
+ scheduling and polygon construction beyond generated counts remain boundaries.
275
+
276
+ Slider track/tick/stop geometry and snapping in src/components/slider-layout.js
277
+ are adapted from AndroidX Material3 Slider.kt / SliderTokens.kt at revision
278
+ a095da93f8e98dea8748ceed79ea8427aade245f (Copyright 2022 The Android Open
279
+ Source Project, Apache License 2.0). Original sources, URLs and hashes are in
280
+ test/fixtures/androidx/sliders; tools/androidx-sliders executes unchanged
281
+ source bodies for reference drawing fixtures.
282
+
283
+ Slider pointer dispatch, slop and canceled-drag completion
284
+ Copyright 2019-2022 The Android Open Source Project. Apache-2.0.
285
+ src/components/slider-layout.js and md-slider.js also adapt SliderState's scalar
286
+ pixel-to-user dispatch, onPress, RangeSliderState.onDrag/updateMinMaxPx and
287
+ sliderTapModifier/rangeSliderPressDragModifier from
288
+ the same Slider.kt, plus gesture threshold and cancellation behavior from
289
+ Foundation Draggable.kt / DragGestureDetector.kt at the revision above. All four
290
+ unchanged licensed originals are pinned in test/fixtures/androidx/sliders.
291
+ tools/androidx-sliders executes unchanged scalar dispatch bodies through a
292
+ density-1 field host; browser pointer events, labels, forms and focus delegation
293
+ are web adapters. The full Compose gesture/coroutine runtime is not executed.
294
+
295
+ Material3 common ripple
296
+ Copyright 2019-2026 The Android Open Source Project. Apache-2.0.
297
+ src/motion/ripple-state.js and ripple.js adapt current material3-ripple
298
+ CommonRippleNode/RippleAnimation geometry, channel durations, release behavior
299
+ and concurrent exit handling at AndroidX revision
300
+ a095da93f8e98dea8748ceed79ea8427aade245f. Unchanged originals, raw URLs, hashes
301
+ and licenses are in test/fixtures/androidx/ripple. The scalar recorder also uses
302
+ the pinned FloatTweenSpec, Easing, Bezier and math bodies already attributed
303
+ above. Foundation Clickable.kt at the same revision supplies disable-time
304
+ PressInteraction.Cancel behavior while retaining the indication node.
305
+ DOM clipping, CSS relative color, event/AbortSignal lifetime and reduced
306
+ motion are web adapters. Native Android RippleDrawable, full coroutine/frame
307
+ scheduling, color packing and Skia rasterization are separate platform boundaries.
308
+
309
+ src/motion/interaction-tween.js and fab-interactions.js adapt the unchanged
310
+ internal Elevation.animateElevation/spec selectors, FAB interaction ordering
311
+ and target calculation, and current Material3 Ripple state-layer ordering and
312
+ spec selectors at the same revision. Normal/lowered defaults follow the pinned
313
+ FabPrimaryContainerTokens and ElevationTokens. Native FloatTweenSpec and easing
314
+ execute independently in tools/androidx-ripple/interaction-snapshot.mjs.
315
+ src/motion/shadow-tween.js maps the scalar elevation to live CSS shadow tokens;
316
+ it does not implement Android shadow rasterization. Browser focus-visible,
317
+ event/frame delivery and reduced motion remain platform adapters.
318
+
319
+ src/motion/fab-expansion.js and md-fab.js adapt the pinned AndroidX
320
+ ExtendedFloatingActionButton sized Float and baseline AnimatedVisibility paths,
321
+ including separate width/alpha springs, integer layout, current-value conversion,
322
+ retargeted velocity and retained exiting content. FAB dimensions and recommended
323
+ icon sizes follow the original tokens and FloatingActionButtonDefaults/samples.
324
+ Unchanged originals, raw URLs, SHA-256 and licenses are under
325
+ test/fixtures/androidx/fab and the existing ripple/motion/toolbar directories.
326
+ tools/androidx-fab/snapshot.mjs executes the original finite spring, converter,
327
+ Transition and baseline enter/exit policy bodies. Intrinsic text measurement,
328
+ DOM clipping, event delivery, focus, reconnect and reduced motion are web
329
+ adapters; full native constraints/placement, Compose scheduling and platform
330
+ rasterization remain separate boundaries.
331
+
332
+ src/theme/surface-color.js and md-fab.js adapt the pinned ColorScheme
333
+ contentColorFor, surfaceColorAtElevation, Surface tonal-elevation policy and
334
+ minimum-interactive measurement. Licensed originals and URL/SHA manifests are
335
+ in test/fixtures/androidx/fab-surface. tools/androidx-fab/surface-snapshot.mjs
336
+ executes unchanged sRGB Color constructor/compositor and ColorScheme bodies
337
+ through explicit color-space/Dp/composition-local hosts. Native non-sRGB color
338
+ conversion/packing, Compose constraint propagation and platform hit testing
339
+ remain separate boundaries; CSS lengths, color resolution and context variables
340
+ are web adapters.
341
+
342
+ Loading indicator color defaults follow unchanged LoadingIndicator.kt and
343
+ LoadingIndicatorTokens.kt at the same pinned AndroidX revision, cached with
344
+ URL/SHA/license manifest under test/fixtures/androidx/loading-colors by
345
+ tools/androidx-shapes/loading-color-sources.mjs. CSS color/expression resolution,
346
+ contained-background attributes and live theme delivery are web adapters.
347
+
348
+ md-bottom-app-bar.js adapts BottomAppBar/FlexibleBottomAppBar public defaults,
349
+ Surface color/tonal policy, content padding and caller-content slots from the
350
+ same pinned AndroidX AppBar.kt and BottomAppBar/DockedToolbar/AppBar tokens.
351
+ Seventeen unchanged originals with URL/SHA/license manifest are cached under
352
+ test/fixtures/androidx/app-bars by tools/androidx-app-bars/fetch-sources.mjs.
353
+ MdFab's bottom-app-bar elevation preset follows FloatingActionButtonDefaults.
354
+ bottomAppBarFabElevation (all states 0dp), retained in the existing ripple
355
+ FloatingActionButton source fixture. bottom-app-bar-layout.js now composes the
356
+ shared source Row/Placeable/minimum-interactive port with the original
357
+ Fill/Size/Padding and Box measurement order. tools/androidx-app-bars/
358
+ generate-bottom-layout.py executes those unchanged native bodies for 6720
359
+ standard/flexible trees; BottomTree.kt supplies leaf sizes, bounds, parent data,
360
+ safe-area values and the public composables' modifier tree. Complete Compose
361
+ composition, intrinsic/custom modifiers and native system-insets runtime remain
362
+ platform/API boundaries; DOM dimensions,
363
+ CSS constraint probing/safe-area values, grouping and action events are web
364
+ adapters. MdFab accepts the measured width/height constraints through private
365
+ inherited variables while retaining its separate minimum-interactive layout.
366
+ bottom-app-bar-scroll.js implements BottomAppBarStateImpl and ExitAlways from
367
+ the same AppBar.kt. Its outer layout uses the complete native measurement order,
368
+ including Placeable coercion of the reduced parent height. The original bottom
369
+ and top settling bodies are identical after state/type naming is normalized;
370
+ their shared web frame engine uses separate FastSpatial/DefaultEffects defaults.
371
+ generate-bottom-scroll.py executes complete unchanged bottom state, scroll,
372
+ settling and outer-layout bodies with original Android spline/FloatSpringSpec
373
+ and hash-verified Expressive/Standard FastSpatial tokens. BottomScroll.kt and
374
+ the adapter supply state storage, default trees, bounds/insets and explicit
375
+ frame/measurement ordering; full Compose runtime scheduling is not executed.
376
+ DOM consumed-scroll delivery, source pointer/slop/velocity adapters, reduced
377
+ motion, touch-exploration host state and callback/event lifecycle are web bridges.
378
+ IconButton's inherited disabled content replaces alpha using the source
379
+ IconButtonDefaults/StandardIconButtonTokens policy. CSS relative colors are
380
+ the web adapter; this does not establish native Color packing/raster equality.
381
+ The same source manifest includes filled/tonal/outlined icon tokens for disabled
382
+ color targets, the 0.1 container opacity and checked outline removal. Unused
383
+ tokens are not substituted for the public factory's actual returned colors.
384
+
385
+ md-top-app-bar.js and top-app-bar-layout.js adapt SingleRowTopAppBar,
386
+ TwoRowsTopAppBar, TopAppBarMeasurePolicy and the default padded Box/Row/Column
387
+ composition, using the AppBar small/medium/large/flexible tokens. The original
388
+ BoxMeasurePolicy/placeInBox bodies are included with their original license.
389
+ tools/androidx-app-bars/generate-top-layout.py executes these unchanged measure
390
+ bodies, the shared original Row/Column/Padding/Size/minimum-interactive/Placeable
391
+ policies, and original CubicBezierEasing/Bezier math. The harness supplies slots,
392
+ parent constraints, body dimensions and baseline inputs. Tree fixtures leave
393
+ the baseline host unspecified; explicit baseline placement is covered by the
394
+ independent TopAppBarMeasurePolicy fixture. Visibility/sample/frame scheduling,
395
+ DOM text/slot measurements, CSS color-space conversion/serialization, safe-area
396
+ insets, focus/semantics and state inputs remain web adapters. Coupled native
397
+ scroll composition/remeasurement, font shaping, Color packing/pixels, custom modifier
398
+ semantics and other browser/platform implementations are not established by
399
+ these fixtures. Source curve adapters are in src/motion/top-app-bar-motion.js;
400
+ the single-row color spring reuses the shared native ColorMotion implementation.
401
+
402
+ top-app-bar-scroll.js also adapts original TopAppBarState,
403
+ PinnedScrollBehavior, EnterAlwaysScrollBehavior, LegacyEnterAlwaysScrollBehavior,
404
+ ExitUntilCollapsedScrollBehavior and settleAppBar from the same AppBar.kt.
405
+ generate-top-scroll.py executes those unchanged bodies with explicit host state
406
+ storage, vectors and frames, using original Android spline and FloatSpringSpec.
407
+ Nullable specs, Float state/overlap, source consumed/remaining deltas and settling
408
+ are covered. DOM wheel/touch/scrollend ordering, native fling velocity and coupled
409
+ native measure/settle scheduling remain platform-host boundaries.
410
+
411
+ The unchanged Snackbar.kt, SnackbarHost.kt, SnackbarTokens.kt,
412
+ ComposeMaterial3Flags.kt and foundation-layout AlignmentLine.kt reference files
413
+ in test/fixtures/androidx/snackbar are Copyright 2019-2025 The Android Open Source
414
+ Project, licensed under Apache-2.0.
415
+ Original copyright/license headers are retained. Their exact pinned URLs and
416
+ SHA-256 hashes are recorded in that directory's sources.json. They are cached
417
+ reference inputs for the snackbar audit. md-snackbar.js and snackbar-host-state.js
418
+ adapt their action-sensitive duration, optional dismiss, default color/type/shape,
419
+ FastSpatial/FastEffects host channels and FIFO/results/cancellation rules.
420
+ The motion harness checks source literals and executes unchanged shared spring
421
+ math and original motion tokens for close-during-entry frames. Promise/AbortSignal,
422
+ visibility/frame clocks, timeout recommendations and queue delivery are web host
423
+ adapters; the full Compose Mutex/coroutine host is not executed.
424
+ snackbar-layout.js adapts the complete legacy one-row measure lambda and the
425
+ horizontal alignment-line padding body, and composes the default separate-line
426
+ modifier/Row/Column tree. The independent JVM layout harness executes those
427
+ unchanged bodies with original packed Constraints, Placeable coercion/relative
428
+ placement, Size/Fill/Padding/Row/Column and modifier coordinator queries. Measured
429
+ Text/action/dismiss boxes and platform baselines are explicit leaves; arbitrary
430
+ Box content/descendant merging, intrinsic queries, full Compose scheduling and
431
+ native font/pixel rendering remain open.
432
+
433
+ The default SnackbarData presenter now also uses the source padding(12.dp)
434
+ outside the visual Surface. actionColor is the TextButton binding, distinct from
435
+ the generic action wrapper's actionContentColor. Optional dismiss uses the
436
+ shared plain tooltip and source English/Turkish resources. Shared rounded/cut
437
+ corner adapters provide configurable shapes with clipped contents and an
438
+ outline shadow mask independent of container alpha.
439
+
440
+ The unchanged Tooltip.kt, BasicTooltip.kt, PlainTooltipTokens.kt,
441
+ RichTooltipTokens.kt, MutatorMutex.kt, Transition.kt, AndroidPopup.android.kt,
442
+ AccessibilityServiceStateProvider.android.kt, Surface.kt, Box.kt and English/Turkish strings.xml files in
443
+ test/fixtures/androidx/tooltip are Copyright 2019-2025 The Android Open Source
444
+ Project, licensed under Apache-2.0. Original license headers, pinned URLs and
445
+ SHA-256 hashes are retained. md-tooltip.js, tooltip-state.js and
446
+ tooltip-position.js adapt their presentation, state and placement rules.
447
+ tools/androidx-tooltip/generate.py executes unchanged TooltipPositionProviderImpl,
448
+ caretX and TooltipStateImpl bodies with the original complete MutatorMutex file.
449
+ Integer geometry/transition storage/AtomicReference/annotation/exception shims
450
+ are explicit hosts. State cases run real kotlinx-coroutines-core/test 1.8.1,
451
+ compatible with this test compiler, not the complete pinned AndroidX dependency
452
+ graph. Native spring/token math is reused for scalar motion comparisons.
453
+ SVG union-fill/outline-shadow, HTML popover, Promises/AbortSignal, pointer and
454
+ focus handling are browser adapters. Generic Compose layout/content/intrinsics,
455
+ complete transition/composition scheduling, Android accessibility manager,
456
+ native path boolean/raster operations, fonts, custom specs/carets, other locales
457
+ and other engines are not established by these fixtures.
458
+ The original Transition.updateTarget/onTransitionEnd/onDisposed bodies are also
459
+ executed unchanged around explicit generic field/list/storage hosts. Eight
460
+ bookkeeping histories check the renderer's current/target/visible state, including
461
+ retarget before entry completion and retained state on disposal. This limited
462
+ body extraction does not execute the whole Transition class or frame/composition
463
+ host; scalar channel frames are checked separately. tooltip-focus.js implements
464
+ the DOM focus-window adapter: rendered open-shadow/slot traversal, focus ownership
465
+ and restoration, outside gesture consumption and popup Escape tracking. A host
466
+ flag supplies accessibility service state; no browser service detection is
467
+ claimed. Visible-anchor polling follows CSS/WAAPI transforms and skips unchanged
468
+ layout work. These browser checks do not execute Android WindowManager, IME,
469
+ accessibility services, closed shadow roots or native focus rasterization.
470
+ tooltip-layout.js and tooltip-dom-layout.js implement the default plain/rich
471
+ measurement trees with explicit DOM font/control leaves. The additional
472
+ generate-layout.py harness executes original public PlainTooltip/RichTooltip,
473
+ textVerticalPadding and foundation Box/Column/Size/Padding/baseline/alignment
474
+ coordinator bodies. Composition emission, density1 and drawing-only values are
475
+ explicit hosts; the Modifier type name is relocated. 26,640 JVM trees and 96
476
+ Chromium geometry references check requested/coerced dimensions, native child
477
+ constraints, baseline merging, multiple/empty children and RTL. Dependencies
478
+ and licenses for original foundation bodies are retained in the existing
479
+ toolbar-row, toolbar-alignment and snackbar manifests. This does not run the
480
+ Compose compiler, arbitrary modifiers/intrinsics, font shaping or Android UI.
481
+
482
+ The twenty unchanged Button, AnimatedShape, size/variant/color/shape-token,
483
+ CornerSize/CornerBasedShape/RoundedCornerShape, Interpolatable and MathHelpers
484
+ references in test/fixtures/androidx/button are Copyright 2019-2025 The Android
485
+ Open Source Project, licensed under Apache-2.0. Original license headers, pinned
486
+ URLs and SHA-256 hashes are retained in sources.json. md-button.js and
487
+ button-shape.js adapt their default geometry, theme roles and rounded shape
488
+ progress bookkeeping. tools/androidx-button extracts original public default
489
+ functions/getters, full ButtonColors/ButtonShapes, shapeByInteraction and remembered
490
+ shape helpers, Row/defaultMinSize and full AnimatedShapeState/interpolation bodies,
491
+ with original token, SpringSpec equality/hash and shared native spring/layout bodies. Composition
492
+ emission/group/slot/effect draining, measured leaves, density1, precision-pointer flag, uniform shape/outline,
493
+ Animatable/frame/coroutine, Color identity/alpha/cache and unused token values
494
+ are explicit hosts. The fixtures do not run full Compose Surface, Animatable,
495
+ composition/input/accessibility scheduling, arbitrary modifiers/intrinsics,
496
+ Android font/Color/raster behavior. Shared
497
+ foundation and spring dependencies retain their existing source manifests and
498
+ licenses; see tools/androidx-button/README.md for exact verification boundaries.
499
+
500
+ The five unchanged ToggleButton, TonalButtonTokens, SingleValueAnimation,
501
+ foundation Border and Spacer references under test/fixtures/androidx/toggle-button are
502
+ Copyright 2019-2025 The Android Open
503
+ Source Project, licensed under Apache-2.0. Their original license headers,
504
+ pinned raw URLs and SHA-256 hashes are retained in sources.json. md-button.js
505
+ and button-shape.js adapt native ToggleButton defaults, three-shape composition,
506
+ FastSpatial motion, color targets, border transitions and Checkbox semantics.
507
+ button-border.js adapts native pixel-ceiled/capped stroke width. The shared
508
+ color-motion.js uses converted-value/raw-velocity color retargeting.
509
+ tools/androidx-toggle-button executes original shape/color/default/border
510
+ bodies with the separately manifested Button and motion dependencies. Group/
511
+ slot/effect, scalar Animatable/frame, density, uniform final outline/raster,
512
+ Color role/alpha/cache/conversion and theme hosts are explicit. The original
513
+ animateBorderStrokeAsState, animate*AsState/AnimateAsState and scalar border
514
+ paint bodies execute with native TargetBasedAnimation/vectorized springs and
515
+ explicit remember/SideEffect/coroutine/Job/Animatable hosts. The full original
516
+ CornerBasedShape outline scaling/precondition body runs in the scalar fixture;
517
+ negative corners rejected by it use valid zero-radius CSS in the web renderer.
518
+ Full original ButtonElevation/ToggleButtonElevation, public factories and
519
+ internal animateElevation/FloatTweenSpec/Easing bodies execute through explicit
520
+ composition/effect/interaction-flow/Animatable clock hosts. button-elevation.js
521
+ adapts their target-key retention, ordered interactions and scalar tween motion.
522
+ Source dependency licenses/manifests remain under button, toggle-button, ripple,
523
+ motion and navigation-drawer. CSS token shadow interpolation hosts drawing.
524
+ button-layout.js adapts the original Toggle Row, icon Box, Spacer, SizeNode,
525
+ UnspecifiedConstraintsNode and padding measurement. toggle-button-dom-layout.js
526
+ hosts browser font/element leaves and CSS parent constraints with retained DOM.
527
+ The layout harness executes those original source bodies through separately
528
+ manifested generated Button/Tooltip/Row runtimes and explicit composition,
529
+ density-1 and leaf hosts. Emission-wrapper intrinsics are not implemented.
530
+ Complete native Surface, composition scheduling, border/shadow raster,
531
+ custom content/modifiers/intrinsics and Android font/Color/raster/input behavior
532
+ remain outside this proof. See tools/androidx-toggle-button/README.md.
533
+
534
+ button-surface.js adapts the clickable/toggle Surface content-clip and
535
+ parent tonal-elevation channels through retained web content wrappers and the
536
+ shared surface-color.js sRGB resolver. The unchanged licensed Surface.kt and
537
+ ColorScheme.kt references are already manifested under fab-surface.
538
+ tools/androidx-button/generate-surface.py executes full original clickable/
539
+ toggle Surface overloads, modifier surface chain, tonal wrapper and native
540
+ ColorScheme/global content-color helpers against the original sRGB color
541
+ runtime. Composition locals, remember, modifier/Box emission, density, shape
542
+ names, ripple configuration, interactions and semantics are recording hosts.
543
+ These do not execute complete native pointer/semantics/composition scheduling
544
+ or rasterization. See tools/androidx-button/README.md for scope and boundaries.
545
+
546
+ The five unchanged Foundation PointerEvent/TapGestureDetector and UI
547
+ NodeCoordinator/ShapeContainingUtil/HitTestResult references under
548
+ test/fixtures/androidx/pointer are Copyright 2019-2025 The Android Open Source
549
+ Project, licensed under Apache-2.0. Source headers, pinned raw URLs and SHA-256
550
+ hashes are retained in sources.json. pointer-geometry.js adapts fitted rounded
551
+ outline membership, Touch minimum-target candidates and captured bounds.
552
+ Button Surface supplies CSS geometry to bindPress and hover/elevation bindings.
553
+ tools/androidx-button/generate-pointer.py executes the full original
554
+ FoundationClickable.ClickableNode (already manifested under ripple), pointer
555
+ helpers, ShapeContainingUtil/HitTestResult and six NodeCoordinator methods.
556
+ The event/base-interaction/density/type and normal-leaf coordinator/collection
557
+ hosts are explicit. Generic/non-fitting Path operations throw. No complete
558
+ native modifier/ancestor/sibling arbitration, input tree, asynchronous base
559
+ interaction emission, keyboard or indirect-pointer pipeline is supplied.
560
+ state-layer.js adapts the existing independently source-executed Material3
561
+ opacity specs and interaction order. Browser RAF, focus/event mapping and CSS
562
+ draw/color serialization are platform adapters. These source manifests retain
563
+ their licenses under ripple; see tools/androidx-ripple/README.md and
564
+ tools/androidx-button/README.md for the verification boundaries.
565
+
566
+ clickable-keys.js adapts the original Foundation ClickableNode and
567
+ AbstractClickableNode key filters, per-key interaction references, release
568
+ activation and focus/disable cancellation. The unchanged FoundationClickable.kt
569
+ reference is already manifested under ripple. generate-keyboard.py executes
570
+ the full ClickableNode and original key, focus, dispose and updateCommon bodies;
571
+ normalized Key values, map, indication initialization, delegation and synchronous
572
+ interaction emission are explicit hosts. The browser shared bindPress keeps
573
+ independent keyboard/pointer ink ownership and suppresses HTML ancestor default
574
+ activation for nested editable controls. Native Android input routing, collection
575
+ iteration and coroutine/delegation scheduling are not executed by these hosts.
576
+ Button and FAB retain separate press references in their native-derived elevation
577
+ collection adapters. Full original Button/Toggle elevation histories and original
578
+ FAB collector branches verify matching removal, cancellation and arrival order.
579
+ Unchanged Apache-licensed Foundation Toggleable.kt and Selectable.kt at the same
580
+ revision are manifested under test/fixtures/androidx/selection-input. Their
581
+ ToggleableNode, TriStateToggleableNode and SelectableNode inherit ClickableNode's
582
+ key flow. Selection components use the shared binding's synchronous enabled
583
+ update adapter; source inheritance and the independently executed base model are
584
+ documented in tools/androidx-selection-input/README.md. These additional selection
585
+ classes, complete composition and native focus/input trees are not recompiled by
586
+ that source check.
587
+ The original Material3 common ripple draw/tween bodies also produce a separate
588
+ explicit-radius selection artifact via tools/androidx-ripple/snapshot.mjs
589
+ --selection. Supplied draw-size/clip hosts do not establish complete native
590
+ layout, scheduling or raster identity. Production selection indications reuse
591
+ the shared native-derived opacity controller and ripple renderer.
592
+ Supplemental official Google Material Web Checkbox SCSS references retain their
593
+ Apache-2.0 headers under test/fixtures/material-web/checkbox, with URL/SHA manifest
594
+ at47adb655bd7a88c4d62e8faac2873084eed555dc. They are older Web M3 v0.192 context,
595
+ not an oracle for the newer AndroidX Expressive state-color decisions.
596
+ selection-motion.js additionally adapts the updated MD3 drawCheck Float points
597
+ and drawBox fill/inset/outline geometry. The source-verified native Checkbox
598
+ artifact executes original CheckboxColors/default getters and drawing bodies;
599
+ role descriptors, normalized PathMeasure length and draw recording are supplied
600
+ hosts, not native packed Color, full composables or Skia raster execution.
601
+ selection-color.js binds these semantic roles to the existing shared native-
602
+ derived ColorVectorConverter spring and conditional enabled/disabled behavior.
603
+ Checkbox indication colors follow the current official Material Checkbox Specs
604
+ table, recorded on2026-10-08 in current-spec-decisions.json and corroborated by
605
+ the licensed pinned Web role mappings. This intentional normative decision
606
+ supersedes the AndroidX public unchecked Transparent ripple input; the native
607
+ geometry and animation reference is retained. No literal palette colors are
608
+ introduced by that component state adapter.
609
+ color-alpha.js and surface-color.js share the native-derived sRGB Color.copy
610
+ and compositeOver kernel used by disabled selection roles and tonal Surface.
611
+ Existing licensed native Color/Surface fixtures independently check packing and
612
+ Float composition. RadioButton reuses the ColorVector spring in its enabled
613
+ branch; Switch retains direct color updates. The wide-gamut CSS fallback does
614
+ not establish native Float16 packing or complete color-conversion/raster parity.
615
+
616
+ selection-layout.js adapts the original selection modifier measurement chains
617
+ and the native minimum-interactive, wrap-content, padding and required-size
618
+ policies. The unchanged licensed Checkbox.kt, RadioButton.kt and Switch.kt
619
+ references are already manifested under selection; Size.kt, Padding.kt and
620
+ InteractiveComponentSize.kt are manifested under toolbar-row at the same pinned
621
+ AndroidX revision. SelectionDOMLayout applies those measured inner input/draw
622
+ bounds separately from the outer web reservation, and binds the previously
623
+ native-verified direct/Touch-expanded/captured pointer bounds.
624
+ tools/androidx-selection/layout-snapshot.mjs executes the original policy classes
625
+ and source modifier expressions against the existing native layout runtime.
626
+ Composition emission, input-node attachment, density1 and leaf content are
627
+ explicit hosts. This does not execute complete composables, native pointer
628
+ routing/closest-target arbitration, focus trees or rasterization. See
629
+ tools/androidx-selection/README.md for scope and reproduction instructions.
630
+
631
+ dom-pointer-geometry.js adapts live CSS coordinates and fitted rounded FAB bounds
632
+ to the existing native-derived pointer-geometry.js kernel. FAB uses the shared
633
+ bindPress capture/key/enabled flow; its separate elevation/opacity collector
634
+ filters hover through direct shape membership. Existing unchanged licensed FAB,
635
+ Surface, FoundationClickable and normal-leaf coordinator/hit-result references
636
+ remain manifested under ripple, fab-surface and pointer. Browser pointer/focus
637
+ mapping and axis-aligned scaling are web adapters. Complete native consumed
638
+ passes, ancestor/sibling/closest-target routing, arbitrary transformed/custom
639
+ shapes and raster remain outside those checks.
640
+
641
+ picker-clock-state.js ports TimePickerStateImpl, AnalogTimePickerState, native
642
+ Float angle conversion, tap/moveSelector/selector geometry, CircularLayout
643
+ integer placement and TouchSlopDetector from the pinned AndroidX revision above.
644
+ Copyright2019,2023 The Android Open Source Project, Apache-2.0. Licensed unchanged
645
+ originals and SHA/URL manifests are under test/fixtures/androidx/picker and
646
+ test/fixtures/androidx/sliders. picker-clock.js binds those scalar policies to
647
+ web pointer capture, keyboard, one shared spring owner, label layers and abort
648
+ lifecycle. The independently compiled reference includes original FloatSpringSpec,
649
+ SpringSimulation and SpringEstimation from the manifested motion originals.
650
+ Explicit JVM/DOM platform and scheduling boundaries are documented in
651
+ tools/androidx-picker/README.md; these are not complete native composition,
652
+ coroutine/frame/gesture dispatch, font or raster claims.
653
+
654
+ animatable-float.js and picker-clock-animation.js adapt the finite Float
655
+ Animatable/frame and Foundation MutatorMutex/clock job paths from the same
656
+ pinned AndroidX revision. Copyright2019-2021,2023 The Android Open Source Project,
657
+ Apache-2.0. Unchanged licensed Foundation MutatorMutex.kt and its SHA/URL manifest
658
+ are under test/fixtures/androidx/picker; unchanged animation-core/runtime originals
659
+ are manifested under progress-runtime and motion. The separately compiled clock
660
+ runtime executes those native finite animation bodies with real Kotlin coroutine
661
+ Jobs/Mutex/Delay and explicit deterministic JVM dispatcher/frame/scalar hosts.
662
+ RAF/timers and DOM lifetime are web bindings, not complete Compose/Android input,
663
+ node update, font or raster equivalence. See tools/androidx-picker/README.md.
664
+
665
+ picker-input-state.js ports TimeInputTransformation and TextFieldBuffer's plain
666
+ edit-range adjustment from the same pinned AndroidX revision. picker-input.js
667
+ binds the native TimeInput selection/edit/focus policies to HTML inputs and the
668
+ shared Surface/interaction/theme owners. Copyright2019,2023,2024 The Android Open
669
+ Source Project, Apache-2.0. Licensed originals for TextFieldBuffer, TextRange,
670
+ GapBuffer/PartialGapBuffer, ChangeTracker, TextFieldCharSequence, foundation flags,
671
+ TimeInputTokens and English strings are preserved with SHA/URL provenance in
672
+ test/fixtures/androidx/picker/input-sources.json. The independent reference runs
673
+ native plain-text buffer and transformation bodies with explicit JVM scalar,
674
+ collection/packing/character-copy, digit and unused style/mapping hosts. Native
675
+ TextFieldState transactions/recomposition, styled annotations, IME/input dispatch,
676
+ locale and raster are separate. See tools/androidx-picker/README.md.
677
+
678
+ text-field-container.js adapts OutlinedTextFieldDefaults.Container and
679
+ animateBorderStrokeAsState from the same pinned revision. Copyright2016 The
680
+ Android Open Source Project, Apache-2.0. TimeInput palette and field overrides
681
+ in picker-colors.js are derived from TimeInputDefaults. Unchanged licensed
682
+ originals are SHA manifested under test/fixtures/androidx/text-field and picker.
683
+ The independent input-colors reference executes the complete original color
684
+ classes/factories and container with explicit symbolic color/theme/focus and
685
+ animation descriptor hosts; complete native scheduling, conversion and raster
686
+ remain separate. See tools/androidx-picker/README.md.