@mkbabb/glass-ui 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardAction-CW7a0m8M.js → CardAction-DlVP2evz.js} +72 -53
- package/dist/{CommandShortcut-DvZNQ_HF.js → CommandShortcut-By-VQcLO.js} +25 -14
- package/dist/{ConfiguratorRow-BR4l-ixA.js → ConfiguratorRow-YMXdINHx.js} +14 -14
- package/dist/ContextMenuContent-CMWn6huB.js +90 -0
- package/dist/{ContextMenuSubContent-xol4sD2q.js → ContextMenuSubContent-DvwWCUc0.js} +16 -16
- package/dist/{DataTable-CuKwF7wr.js → DataTable-C4tG3eIJ.js} +4 -4
- package/dist/DialogContent-D8U9ZfWS.js +121 -0
- package/dist/DialogFooter-DoLy0ewI.js +80 -0
- package/dist/DialogScrollContent-BMekN7gq.js +93 -0
- package/dist/{FadingScroll-DI6hQhT9.js → FadingScroll-P8B30rAD.js} +1 -1
- package/dist/HoverCardContent-DAmGYglo.js +88 -0
- package/dist/{HoverPopover-CbqbNwgU.js → HoverPopover-DYpBOzzF.js} +1 -1
- package/dist/{IconChip-BTD-nay5.js → IconChip-CQa7XZYc.js} +7 -5
- package/dist/{IconTooltip-Bl8gFZ8d.js → IconTooltip-_df8M3xm.js} +1 -1
- package/dist/Input-CyU4_hIC.js +57 -0
- package/dist/{MetricBadge-RHdBP72w.js → MetricBadge-DQt_dGah.js} +1 -1
- package/dist/{Notification-VUwexFUf.js → Notification-BlSPJhtZ.js} +4 -4
- package/dist/NumberFieldContent-Z3VxGu_6.js +140 -0
- package/dist/PagerDots-CYlqVFd4.js +196 -0
- package/dist/PaperBackdrop-DYWgrnh8.js +42 -0
- package/dist/{PopoverContent-DL7E6vJP.js → PopoverContent-BuKyHZSz.js} +2 -2
- package/dist/{Progress-DctG61iZ.js → Progress-C9SsdwIZ.js} +1 -1
- package/dist/{ScrollingText-yOpBzFYq.js → ScrollingText-DY3W1Jfh.js} +2 -2
- package/dist/SelectScrollDownButton-3mFHX_R-.js +260 -0
- package/dist/{SelectSeparator-DXswVdRz.js → SelectSeparator-CNRGG7Ew.js} +1 -1
- package/dist/Separator-Cf9-JFgi.js +44 -0
- package/dist/Switch-uf-UKPA2.js +49 -0
- package/dist/{Toaster-Bw4xR8xV.js → Toaster-ozrsR4mP.js} +2 -2
- package/dist/{ToggleGroupItem-pEM9vIhs.js → ToggleGroupItem-BpzaVzNm.js} +6 -6
- package/dist/TooltipProvider-QQVM_80r.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +16 -32
- package/dist/api/types-extra.d.ts +33 -0
- package/dist/api.js +2 -2
- package/dist/aurora.js +629 -269
- package/dist/badge-Bt14yURi.js +72 -0
- package/dist/badge.js +1 -1
- package/dist/border-progress.js +49 -57
- package/dist/button-D1W9PrzI.js +130 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +1 -1
- package/dist/carousel.js +235 -106
- package/dist/chipVariants-BJQ0I2kB.js +18 -0
- package/dist/collapsible.js +1 -1
- package/dist/color-B9jZdhJX.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/completion-seal.d.ts +1 -0
- package/dist/completion-seal.js +89 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +10 -5
- package/dist/components/custom/aurora/composables/color.d.ts +13 -0
- package/dist/components/custom/aurora/composables/frameLoop.d.ts +9 -0
- package/dist/components/custom/aurora/composables/glSetup.d.ts +1 -1
- package/dist/components/custom/aurora/composables/runtime.d.ts +12 -0
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +12 -3
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +47 -0
- package/dist/components/custom/aurora/constants/renderMode.d.ts +16 -8
- package/dist/components/custom/aurora/constants/shaders/aurora-mediums.wgsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/aurora.wgsl.d.ts +1 -1
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +14 -18
- package/dist/components/custom/border-progress/index.d.ts +1 -1
- package/dist/components/custom/completion-seal/CompletionSeal.vue.d.ts +21 -0
- package/dist/components/custom/completion-seal/composables/useCompletionSeal.d.ts +37 -0
- package/dist/components/custom/completion-seal/constants.d.ts +46 -0
- package/dist/components/custom/completion-seal/index.d.ts +4 -0
- package/dist/components/custom/concentric/Concentric.vue.d.ts +15 -12
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +12 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +13 -0
- package/dist/components/custom/concentric/composables/levelField.d.ts +50 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +7 -3
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +3 -3
- package/dist/components/custom/concentric/constants.d.ts +69 -24
- package/dist/components/custom/concentric/index.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +2 -2
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -1
- package/dist/components/custom/configurator/Configurator.vue.d.ts +23 -2
- package/dist/components/custom/configurator/index.d.ts +1 -1
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +3 -3
- package/dist/components/custom/constellation/Constellation.vue.d.ts +5 -4
- package/dist/components/custom/constellation/composables/constellationGLSetup.d.ts +10 -0
- package/dist/components/custom/constellation/composables/constellationWGPUSetup.d.ts +19 -0
- package/dist/components/custom/constellation/composables/uniformBridgeWGPU.d.ts +66 -0
- package/dist/components/custom/constellation/composables/useConstellation.d.ts +3 -10
- package/dist/components/custom/constellation/constants.d.ts +33 -0
- package/dist/components/custom/constellation/constellationField.d.ts +31 -1
- package/dist/components/custom/constellation/constellationInteraction.d.ts +23 -14
- package/dist/components/custom/constellation/constellationRender.d.ts +25 -0
- package/dist/components/custom/constellation/constellationTypes.d.ts +38 -0
- package/dist/components/custom/constellation/constellationWell.d.ts +15 -0
- package/dist/components/custom/constellation/index.d.ts +5 -5
- package/dist/components/custom/constellation/shaders/constellation-lines.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-lines.wgsl.d.ts +1 -0
- package/dist/components/custom/constellation/shaders/constellation-points.glsl.d.ts +2 -0
- package/dist/components/custom/constellation/shaders/constellation-points.wgsl.d.ts +1 -0
- package/dist/components/custom/deck/DeckPager.vue.d.ts +29 -0
- package/dist/components/custom/deck/composables/useDeck.d.ts +27 -0
- package/dist/components/custom/deck/composables/useDeckKeyboard.d.ts +25 -0
- package/dist/components/custom/deck/composables/useDeckSpring.d.ts +22 -0
- package/dist/components/custom/deck/constants.d.ts +14 -0
- package/dist/components/custom/deck/index.d.ts +8 -0
- package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +4 -3
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +22 -0
- package/dist/components/custom/dock/DockPopoverTrigger.vue.d.ts +19 -0
- package/dist/components/custom/dock/DockStack.vue.d.ts +78 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +21 -3
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +18 -32
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +78 -67
- package/dist/components/custom/dock/composables/index.d.ts +3 -0
- package/dist/components/custom/dock/composables/railProjection.d.ts +45 -0
- package/dist/components/custom/dock/composables/useDockContextSilhouette.d.ts +192 -0
- package/dist/components/custom/dock/composables/useDockFission.d.ts +158 -0
- package/dist/components/custom/dock/composables/useDockItemDrag.d.ts +18 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +49 -0
- package/dist/components/custom/dock/constants.d.ts +32 -17
- package/dist/components/custom/dock/index.d.ts +8 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +15 -11
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +69 -6
- package/dist/components/custom/dot-flow-field/composables/flowGLProgram.d.ts +8 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupGL.d.ts +9 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupGLFlow.d.ts +12 -0
- package/dist/components/custom/dot-flow-field/composables/flowSetupWGPU.d.ts +7 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +50 -9
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +6 -5
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +23 -9
- package/dist/components/custom/dot-flow-field/constants.d.ts +92 -20
- package/dist/components/custom/dot-flow-field/index.d.ts +2 -2
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -1
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +31 -18
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +2 -1
- package/dist/components/custom/dot-matrix/DotMatrix.vue.d.ts +43 -0
- package/dist/components/custom/dot-matrix/composables/dotMatrixField.d.ts +89 -0
- package/dist/components/custom/dot-matrix/composables/uniformBridgeWGPU.d.ts +61 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +34 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +72 -0
- package/dist/components/custom/dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.glsl.d.ts +4 -0
- package/dist/components/custom/dot-matrix/shaders/dot-matrix.wgsl.d.ts +1 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +5 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +44 -47
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +24 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +31 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +56 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +61 -37
- package/dist/components/custom/fourier-field/constants.d.ts +114 -4
- package/dist/components/custom/fourier-field/index.d.ts +23 -18
- package/dist/components/custom/fourier-field/shaders/fourier-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.glsl.d.ts +4 -0
- package/dist/components/custom/fourier-field/shaders/fourier-field.render.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +9 -1
- package/dist/components/custom/goo-blob/composables/easing.d.ts +1 -0
- package/dist/components/custom/goo-blob/composables/useBlobSatellites.d.ts +1 -0
- package/dist/components/custom/goo-blob/constants.d.ts +26 -1
- package/dist/components/custom/goo-blob/index.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball-noise.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-palette.wgsl.d.ts +1 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/shaders/metaball.wgsl.d.ts +1 -1
- package/dist/components/custom/goo-blob/types.d.ts +86 -1
- package/dist/components/custom/goo-dot-matrix/GooDotMatrix.vue.d.ts +49 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotLattice.d.ts +24 -0
- package/dist/components/custom/goo-dot-matrix/composables/gooDotSetup.d.ts +79 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +45 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +115 -0
- package/dist/components/custom/goo-dot-matrix/index.d.ts +5 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.frag.d.ts +13 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +4 -0
- package/dist/components/custom/goo-filter/GooFilter.vue.d.ts +22 -0
- package/dist/components/custom/goo-filter/index.d.ts +1 -0
- package/dist/components/custom/handmark/brush.d.ts +17 -17
- package/dist/components/custom/handmark/constants.d.ts +28 -8
- package/dist/components/custom/handmark/geometry.d.ts +34 -1
- package/dist/components/custom/handmark/index.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +10 -0
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +21 -2
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +15 -0
- package/dist/components/custom/pager-dots/PagerDots.vue.d.ts +9 -0
- package/dist/components/custom/pager-dots/index.d.ts +2 -0
- package/dist/components/custom/pager-dots/pagerWindow.d.ts +9 -0
- package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +18 -0
- package/dist/components/custom/paper-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +105 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +18 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +21 -0
- package/dist/components/custom/paper-grid/composables/uniformBridgeWGPU.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/usePaperGrid.d.ts +31 -0
- package/dist/components/custom/paper-grid/constants.d.ts +95 -0
- package/dist/components/custom/paper-grid/index.d.ts +5 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.glsl.d.ts +4 -0
- package/dist/components/custom/paper-grid/shaders/paper-grid.wgsl.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +8 -2
- package/dist/components/custom/search/SearchBar.vue.d.ts +8 -0
- package/dist/components/custom/search/index.d.ts +2 -0
- package/dist/components/custom/search/searchVariants.d.ts +19 -0
- package/dist/components/custom/selectable-chip/SelectableChip.vue.d.ts +50 -0
- package/dist/components/custom/selectable-chip/chipVariants.d.ts +39 -0
- package/dist/components/custom/selectable-chip/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +15 -0
- package/dist/components/custom/split-chars/SplitChars.vue.d.ts +39 -0
- package/dist/components/custom/split-chars/index.d.ts +1 -0
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +8 -6
- package/dist/components/custom/tabs/constants.d.ts +28 -2
- package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +16 -0
- package/dist/components/custom/timeline/geometry.d.ts +0 -8
- package/dist/components/custom/toggle-chip/index.d.ts +15 -4
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +32 -17
- package/dist/components/custom/watercolor-dot/useWatercolorBlob.d.ts +10 -5
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/_shared/useSurfaceAxis.d.ts +17 -3
- package/dist/components/ui/badge/Badge.vue.d.ts +14 -0
- package/dist/components/ui/badge/index.d.ts +1 -0
- package/dist/components/ui/button/Button.vue.d.ts +1 -0
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +46 -1
- package/dist/components/ui/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/ui/card/index.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +2 -4
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/ui/command/CommandDialog.vue.d.ts +9 -3
- package/dist/components/ui/command/CommandList.vue.d.ts +3 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +5 -1
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +9 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +33 -14
- package/dist/components/ui/drawer/constants.d.ts +8 -6
- package/dist/components/ui/drawer/index.d.ts +12 -2
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/input/Input.vue.d.ts +3 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +6 -1
- package/dist/components/ui/select/SelectContent.vue.d.ts +12 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +9 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +3 -0
- package/dist/composables/color/index.d.ts +2 -0
- package/dist/composables/color/useAccentTone.d.ts +34 -0
- package/dist/composables/dom/index.d.ts +1 -0
- package/dist/composables/dom/useDragVelocity.d.ts +46 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/wave/index.d.ts +4 -0
- package/dist/composables/glass/wave/waveField.d.ts +115 -0
- package/dist/composables/glass/wave/waveField.glsl.d.ts +1 -0
- package/dist/composables/glass/wave/waveField.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +105 -2
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +40 -2
- package/dist/composables/glass/webgpu/index.d.ts +2 -1
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +65 -7
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +50 -2
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +7 -0
- package/dist/composables/motion/core/useHaptic.d.ts +48 -0
- package/dist/composables/motion/core/writeVelocityWeight.d.ts +31 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +19 -1
- package/dist/composables/motion/suite.d.ts +2 -2
- package/dist/composables/motion/useBloomUp.d.ts +97 -0
- package/dist/composables/motion/useCelebrationBurst.d.ts +50 -0
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +29 -22
- package/dist/composables/motion/useGooMorph.d.ts +72 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +18 -0
- package/dist/composables/motion/useLiquidMorph.d.ts +108 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +7 -4
- package/dist/composables/motion/useMorphField.d.ts +157 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -0
- package/dist/composables/motion/useScrollPin.d.ts +49 -0
- package/dist/composables/motion/useScrollScene.d.ts +67 -0
- package/dist/composables/motion/useScrollTrigger.d.ts +67 -0
- package/dist/composables/motion/useSpringPress.d.ts +5 -5
- package/dist/composables/motion/useStaggerReveal.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +4 -1
- package/dist/composables/sidebar/types.d.ts +68 -3
- package/dist/composables/sidebar/useClickDelegate.d.ts +4 -0
- package/dist/composables/sidebar/useLazyLoader.d.ts +5 -0
- package/dist/composables/sidebar/useScrollTo.d.ts +5 -0
- package/dist/composables/virtual/index.d.ts +4 -0
- package/dist/composables/virtual/useVirtualSectionWindow.d.ts +72 -0
- package/dist/composables/virtual/useWindowedStore.d.ts +43 -0
- package/dist/composables/virtual/virtualSectionLayout.d.ts +103 -0
- package/dist/concentric.js +552 -309
- package/dist/configurator.js +2 -2
- package/dist/confirm-dialog.js +62 -47
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-CuCrGRfq.js +173 -0
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck.d.ts +1 -0
- package/dist/deck.js +105 -0
- package/dist/dialog.js +4 -3
- package/dist/dock.js +1320 -631
- package/dist/dockContext-gFVS2gMg.js +18 -0
- package/dist/dom.js +7 -6
- package/dist/dot-flow-field.js +1268 -387
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +774 -0
- package/dist/dotMatrixField-CRO0ZFk4.js +48 -0
- package/dist/drawer.js +106 -96
- package/dist/{dropdown-menu-CofSZuk8.js → dropdown-menu-CCfcCQ68.js} +83 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.js +188 -176
- package/dist/expandable-container.js +43 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-DqEGRpl4.js +4 -0
- package/dist/forms.js +64 -62
- package/dist/fourier-field.js +1069 -178
- package/dist/fourier-math.js +1 -1
- package/dist/glass-panel.js +2 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +164 -119
- package/dist/goo-blob.js +175 -1230
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +811 -0
- package/dist/handmark.js +137 -94
- package/dist/header-ribbon.js +1 -1
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +70 -60
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +1 -1
- package/dist/metric-stack.js +12 -3
- package/dist/motion-core.js +59 -34
- package/dist/motion-curves.js +30 -14
- package/dist/motion.js +231 -96
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +2 -91
- package/dist/paper-backdrop.js +1 -1
- package/dist/paper-grid.d.ts +1 -0
- package/dist/paper-grid.js +761 -0
- package/dist/paperGrid-CXCSMbZ1.js +191 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-QvYgnFIZ.js} +14 -13
- package/dist/{procedural-color.glsl-CIFsJhwI.js → procedural-color.wgsl-C1Y5PkM6.js} +2 -2
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +2 -2
- package/dist/{useCanvas2D-B8w_E3Rr.js → resolveCanvasColor-DsSJk06I.js} +16 -6
- package/dist/scrollReader-rc3Ns_NM.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -306
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +48 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-tZMg0E0w.js → sheet-DUCIoOe0.js} +4 -4
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/slider-CcICPe3u.js +149 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +3 -3
- package/dist/spectrum-walk-cBNSx_zm.js +33 -0
- package/dist/springPresets-DfoQ6XRY.js +64 -0
- package/dist/stacked-icons.js +54 -39
- package/dist/styles/animations.css +13 -3
- package/dist/styles/cards.css +271 -2
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +1 -4
- package/dist/styles/configurator.css +221 -1
- package/dist/styles/critical-partition.mjs +66 -11
- package/dist/styles/deferred.css +4 -0
- package/dist/styles/dock/adaptive-legibility.css +119 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +167 -6
- package/dist/styles/dock/fission-bridge.css +552 -0
- package/dist/styles/dock/layers.css +90 -78
- package/dist/styles/dock/morph-bridge.css +67 -18
- package/dist/styles/dock/morph.css +57 -118
- package/dist/styles/dock/overflow.css +12 -0
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +250 -0
- package/dist/styles/dock/shell.css +24 -8
- package/dist/styles/dock/stack-rail.css +352 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +46 -0
- package/dist/styles/dock-controls/triggers.css +23 -1
- package/dist/styles/dock-controls.css +18 -0
- package/dist/styles/dock.css +27 -2
- package/dist/styles/drawer.css +166 -0
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/glass-atom.css +244 -0
- package/dist/styles/glass/glass-capsule.css +143 -0
- package/dist/styles/glass/glass-chip.css +215 -0
- package/dist/styles/glass/ladder.css +67 -17
- package/dist/styles/glass/liquid-enter.css +252 -0
- package/dist/styles/glass/liquid-morph.css +850 -0
- package/dist/styles/glass/material.css +70 -1
- package/dist/styles/glass/reveal.css +22 -2
- package/dist/styles/glass/rim.css +31 -9
- package/dist/styles/glass/surfaces.css +81 -150
- package/dist/styles/glass.css +21 -0
- package/dist/styles/icon-chip.css +45 -0
- package/dist/styles/index.css +26 -0
- package/dist/styles/jubilance.css +65 -0
- package/dist/styles/motion/morph-field.css +229 -0
- package/dist/styles/paper.css +230 -14
- package/dist/styles/scroll-choreography.css +135 -78
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +110 -40
- package/dist/styles/select.css +151 -0
- package/dist/styles/theme/bridges.css +22 -0
- package/dist/styles/theme/radius.css +18 -1
- package/dist/styles/tokens/color-radius.css +14 -4
- package/dist/styles/tokens/dark-arm.css +94 -12
- package/dist/styles/tokens/glass-deep.css +33 -4
- package/dist/styles/tokens/glass-fx.css +122 -1
- package/dist/styles/tokens/glass.css +226 -34
- package/dist/styles/tokens/light-dark.css +3 -3
- package/dist/styles/tokens/offsets.css +27 -0
- package/dist/styles/tokens/property-regs.css +277 -0
- package/dist/styles/tokens/scale-paper.css +86 -30
- package/dist/styles/tokens/scheme-motion.css +106 -133
- package/dist/styles/tokens/scheme-spring.css +239 -0
- package/dist/styles/tokens/scroll-tokens.css +15 -15
- package/dist/styles/tokens/shadow.css +73 -13
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/dist/styles/tokens/sizing.css +55 -104
- package/dist/styles/tokens.css +14 -2
- package/dist/styles/typography/semantic.css +18 -5
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/base-misc.css +52 -0
- package/dist/styles/utilities/btn.css +84 -3
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +26 -0
- package/dist/switch.js +1 -1
- package/dist/tabs.js +199 -182
- package/dist/timeline.js +241 -206
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +14 -41
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-BCse1SHU.js +1268 -0
- package/dist/{useAnimatedNumber-BfUq2bUM.js → useAnimatedNumber-BntskVdQ.js} +1 -1
- package/dist/{useConfiguratorState-DNlOh6c8.js → useConfiguratorState-22BcULzF.js} +41 -38
- package/dist/useControlSize-DAZ062x7.js +9 -0
- package/dist/useDockCtaReceive-DX7RDb6_.js +88 -0
- package/dist/{useDragMorph-DgxnsVJz.js → useDragMorph-DGLSewwB.js} +4 -4
- package/dist/useDragVelocity-CjcfX3dA.js +57 -0
- package/dist/useFuzzySearch-0fTYOhS4.js +177 -0
- package/dist/useGooMorph-Cs13NgYL.js +104 -0
- package/dist/useGpuSubstrate-Ceet70xq.js +347 -0
- package/dist/useHaptic-CPz5BT9I.js +134 -0
- package/dist/{useLiquidFlex-mZPMiNXh.js → useLiquidFlex-Cc6PjVJD.js} +8 -3
- package/dist/useLiquidPress-CtOQ8Z0_.js +43 -0
- package/dist/useMorphField-ogBM7ubT.js +141 -0
- package/dist/usePointerVelocityField-BrkqZFhj.js +91 -0
- package/dist/useScrollChrome-JuImi1DM.js +258 -0
- package/dist/{useSpringMount-q1amq1SJ.js → useSpringMount-DFxtzmkR.js} +1 -1
- package/dist/useSpringPress-VM9RgVq3.js +36 -0
- package/dist/{useSurfaceAxis-g0NloYEF.js → useSurfaceAxis-Ci7Dnaw2.js} +1 -1
- package/dist/{useTouchGate-CBZTD4SD.js → useTouchGate-B1Lf9XqN.js} +1 -1
- package/dist/{vendor-CKmzio-i.js → vendor-B2qOlYY3.js} +24 -11
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +107 -74
- package/dist/writeVelocityWeight-Bh83xZfs.js +19 -0
- package/package.json +140 -9
- package/src/styles/animations.css +13 -3
- package/src/styles/cards.css +271 -2
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +221 -1
- package/src/styles/critical-partition.mjs +66 -11
- package/src/styles/dock/adaptive-legibility.css +119 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +167 -6
- package/src/styles/dock/fission-bridge.css +552 -0
- package/src/styles/dock/layers.css +90 -78
- package/src/styles/dock/morph-bridge.css +67 -18
- package/src/styles/dock/morph.css +57 -118
- package/src/styles/dock/overflow.css +12 -0
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +250 -0
- package/src/styles/dock/shell.css +24 -8
- package/src/styles/dock/stack-rail.css +352 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +46 -0
- package/src/styles/dock-controls/triggers.css +23 -1
- package/src/styles/dock-controls.css +18 -0
- package/src/styles/dock.css +27 -2
- package/src/styles/drawer.css +164 -0
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/glass-atom.css +244 -0
- package/src/styles/glass/glass-capsule.css +143 -0
- package/src/styles/glass/glass-chip.css +215 -0
- package/src/styles/glass/ladder.css +67 -17
- package/src/styles/glass/liquid-enter.css +252 -0
- package/src/styles/glass/liquid-morph.css +850 -0
- package/src/styles/glass/material.css +70 -1
- package/src/styles/glass/reveal.css +22 -2
- package/src/styles/glass/rim.css +31 -9
- package/src/styles/glass/surfaces.css +81 -150
- package/src/styles/glass.css +21 -0
- package/src/styles/icon-chip.css +45 -0
- package/src/styles/index.css +26 -0
- package/src/styles/jubilance.css +65 -0
- package/src/styles/motion/morph-field.css +229 -0
- package/src/styles/paper.css +230 -14
- package/src/styles/scroll-choreography.css +135 -78
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +110 -36
- package/src/styles/select.css +151 -0
- package/src/styles/theme/bridges.css +22 -0
- package/src/styles/theme/radius.css +18 -1
- package/src/styles/tokens/color-radius.css +14 -4
- package/src/styles/tokens/dark-arm.css +94 -12
- package/src/styles/tokens/glass-deep.css +33 -4
- package/src/styles/tokens/glass-fx.css +122 -1
- package/src/styles/tokens/glass.css +226 -34
- package/src/styles/tokens/light-dark.css +3 -3
- package/src/styles/tokens/offsets.css +27 -0
- package/src/styles/tokens/property-regs.css +277 -0
- package/src/styles/tokens/scale-paper.css +86 -30
- package/src/styles/tokens/scheme-motion.css +106 -133
- package/src/styles/tokens/scheme-spring.css +239 -0
- package/src/styles/tokens/scroll-tokens.css +15 -15
- package/src/styles/tokens/shadow.css +73 -13
- package/src/styles/tokens/sizing-config.css +110 -0
- package/src/styles/tokens/sizing.css +55 -104
- package/src/styles/tokens.css +14 -2
- package/src/styles/typography/semantic.css +18 -5
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/base-misc.css +52 -0
- package/src/styles/utilities/btn.css +84 -3
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +26 -0
- package/dist/ContextMenuContent-uWnVxDab.js +0 -85
- package/dist/DialogContent-DcKK8k9i.js +0 -103
- package/dist/DialogFooter-BZNX5aVr.js +0 -165
- package/dist/HoverCardContent-b2uaAMRR.js +0 -83
- package/dist/Input-h9v5LeXf.js +0 -55
- package/dist/NumberFieldContent-Cq7EzX-U.js +0 -138
- package/dist/PaperBackdrop-Vf3tlpvd.js +0 -31
- package/dist/SelectScrollDownButton-CrA8F0iV.js +0 -252
- package/dist/Separator-pKF0oA4M.js +0 -37
- package/dist/Switch-CwYNf8bo.js +0 -47
- package/dist/TooltipProvider-rzvnXz60.js +0 -104
- package/dist/badge-D9XWW4GT.js +0 -53
- package/dist/button-DYCUa-tH.js +0 -126
- package/dist/color-DweYl7pE.js +0 -86
- package/dist/components/custom/concentric/composables/ringField.d.ts +0 -44
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +0 -35
- package/dist/components/custom/constellation/constellationDraw.d.ts +0 -30
- package/dist/components/custom/dock/DockRail.vue.d.ts +0 -89
- package/dist/createCanvasLifecycle-CHD5XrDW.js +0 -82
- package/dist/dockContext-BNfyPLe9.js +0 -17
- package/dist/procedural-color.wgsl-CToRHugY.js +0 -224
- package/dist/resolveCanvasColor-CUyHr5Uu.js +0 -11
- package/dist/slider-DVb4HXU-.js +0 -142
- package/dist/springPresets-CFQGQfdl.js +0 -40
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useLiquidPress-kfb4KX79.js +0 -39
- package/dist/usePointerVelocityField-JbRd5CrM.js +0 -137
- package/dist/useRAFLoop-UYa4zoiN.js +0 -109
- package/dist/useSpringPress-BsqPr7FJ.js +0 -34
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-68dEXIAl.js → CollapsibleContent-D7UNsXQr.js} +0 -0
- /package/dist/{InstrumentChassis-Bx0F_q5g.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-C2ejNWeC.js → Label-B_HPqi_q.js} +0 -0
- /package/dist/{ModalOverlay-D1VrWyoi.js → ModalOverlay-DfAf7o15.js} +0 -0
- /package/dist/{SelectGroup-DwwjicPY.js → SelectGroup-Dcczq44n.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-C1je1s0u.js → _plugin-vue_export-helper-gLzyemvl.js} +0 -0
- /package/dist/{compile-CQEFRTmx.js → compile-INR_tPk_.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants-BWj7DkMn.js} +0 -0
- /package/dist/{createContext-CpBNTRMI.js → createContext-Cd23P9j0.js} +0 -0
- /package/dist/{math-BINYmg5z.js → math-5RcIgCB4.js} +0 -0
- /package/dist/{menuItemVariants-D8VNHq22.js → menuItemVariants-DAXquKja.js} +0 -0
- /package/dist/{prng-Za0Rmgag.js → prng-B5tIXTtj.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-B4HO9LXG.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-DO8Vl4gs.js} +0 -0
- /package/dist/{useInterval-CvK1mL92.js → useInterval-BVUI-sez.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BEut54Tk.js} +0 -0
- /package/dist/{useResizeObserver-Bpoi7tRE.js → useResizeObserver-DdEn3v2f.js} +0 -0
- /package/dist/{useResolveTokenColor-vAylyR0x.js → useResolveTokenColor-ChOnCckA.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-A0M6qRl7.js} +0 -0
- /package/dist/{useSortable-DHjtZSEd.js → useSortable-DQV_UNDw.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-Bma3UlKA.js} +0 -0
- /package/dist/{useTimer-BHJOKr35.js → useTimer-BBLGPXR8.js} +0 -0
- /package/dist/{useUserInvalidAria-y5namzeE.js → useUserInvalidAria-EmmwWPOl.js} +0 -0
- /package/dist/{useViewportReady-anbac3m6.js → useViewportReady-C9pYnn7K.js} +0 -0
- /package/dist/{vReveal-Czsb7zQC.js → vReveal-CT1KtwZA.js} +0 -0
- /package/dist/{vSpecular-CQFmLNzA.js → vSpecular-EX7loENl.js} +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/* BC.W-AX-COMPLETION-SEAL — the hero-scale earned-GOLD completion seal.
|
|
2
|
+
*
|
|
3
|
+
* A determinate process completes and a HERO-SCALE gold mark DRAWS itself onto the
|
|
4
|
+
* surface: the stroke INKS (a `stroke-dashoffset` wipe on the registered `--seal-draw`
|
|
5
|
+
* <percentage>), settles with a small spring overshoot (the `--seal-scale` SPATIAL leg
|
|
6
|
+
* on the seal's own `--spring-snappy`/`--spring-bouncy` clock), and glints ONCE on
|
|
7
|
+
* settle (the `--seal-glint` + the W-AX-METAL-GLOW gold catch-light). It is GOLD because
|
|
8
|
+
* completion is EARNED — the ink reads the W-PHASE-PALETTE completion register
|
|
9
|
+
* (`--phase-complete-color`/`--color-gold`), so a consumer re-inking completion re-inks
|
|
10
|
+
* the seal in lockstep. The seal mints NO new gold token + does NOT re-author the metal
|
|
11
|
+
* glow — it COMPOSES both (the earned-gold register has ONE home).
|
|
12
|
+
*
|
|
13
|
+
* ONE-SHOT: the draw fires ONCE on `play` (the `.completion-seal[data-play]` arm), then
|
|
14
|
+
* holds the static fully-drawn seal — no looping shimmer (the §6 calm register; the disco
|
|
15
|
+
* family stays gone). PRM-gated: under `prefers-reduced-motion: reduce` the seal appears
|
|
16
|
+
* instantly fully-drawn (`--seal-draw: 100%` snap), no stroke animation, no glint sweep
|
|
17
|
+
* (the seal is correct, the motion off — the vestibular floor).
|
|
18
|
+
*
|
|
19
|
+
* COMPOSITOR-ONLY: the draw rides `stroke-dashoffset` (a paint prop) + `transform` (the
|
|
20
|
+
* scale) + `filter`/`opacity` (the glint) — NO layout property animates
|
|
21
|
+
* (`proof:no-layout-animation` holds). The registrations live in
|
|
22
|
+
* tokens/property-regs.css §18 (the specular/border-progress split: the @property reg
|
|
23
|
+
* there, the consumption here). */
|
|
24
|
+
|
|
25
|
+
.completion-seal {
|
|
26
|
+
/* The seal stroke ink — the EARNED-gold completion register (Q2). The runtime
|
|
27
|
+
cascade default is the token form: a consumer (or any ancestor) re-inking
|
|
28
|
+
`--phase-complete-color` re-inks the seal. The @property `initial-value` literal
|
|
29
|
+
light-gold is only the non-supporting-engine fallback. */
|
|
30
|
+
--seal-ink: var(--phase-complete-color, var(--color-gold));
|
|
31
|
+
|
|
32
|
+
display: inline-flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
/* The settle scale rides the SPATIAL leg — a small overshoot on the seal's own
|
|
36
|
+
spring clock (NOT a generic --duration-*). Compositor-only (transform). */
|
|
37
|
+
transform: scale(var(--seal-scale, 1));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* The hero-scale gold-draw glyph — an SVG <path>/<circle> stroked in `--seal-ink`. The
|
|
41
|
+
stroke INKS itself via the `--seal-draw` wipe (a stroke-dashoffset paint, never a
|
|
42
|
+
fade). The glint reads the W-AX-METAL-GLOW catch-light (composed, not re-authored). */
|
|
43
|
+
.completion-seal__mark {
|
|
44
|
+
fill: none;
|
|
45
|
+
stroke: var(--seal-ink);
|
|
46
|
+
stroke-width: var(--seal-stroke-width, 6);
|
|
47
|
+
stroke-linecap: round;
|
|
48
|
+
stroke-linejoin: round;
|
|
49
|
+
/* The stroke-reveal: the dash array is the full path length, the offset rides the
|
|
50
|
+
`--seal-draw` extent (100% = drawn → offset 0; 0% = undrawn → offset = full
|
|
51
|
+
length). pathLength="100" normalizes the glyph so the wipe is path-agnostic. */
|
|
52
|
+
stroke-dasharray: 100;
|
|
53
|
+
stroke-dashoffset: calc(100 - var(--seal-draw, 100%) / 1%);
|
|
54
|
+
/* The one-pass gold glint on settle — the W-AX-METAL-GLOW catch-light, scaled by
|
|
55
|
+
`--seal-glint` (0 at rest → 1 on settle-pass). A drop-shadow halo of the seal's
|
|
56
|
+
OWN gold ink at the metal-glow radius/strength — composed, never re-authored.
|
|
57
|
+
The seal is NOT a `.metal-*` element, so the bare `--metal-glow-blur`/`-opacity`
|
|
58
|
+
(declared scoped inside `.metal-{gold,silver,bronze}`) do not cascade here; the
|
|
59
|
+
seal CONSUMES THE REGISTER by chaining to the `:root` `-default` retune seam
|
|
60
|
+
(glass-fx.css), NOT a hardcoded magic-number copy — a consumer who retunes
|
|
61
|
+
`--metal-glow-blur-default` re-tunes the seal halo in lockstep. */
|
|
62
|
+
--metal-glow-blur: var(--metal-glow-blur-default, 0.5em);
|
|
63
|
+
--metal-glow-opacity: var(--metal-glow-opacity-default, 0.35);
|
|
64
|
+
filter: drop-shadow(
|
|
65
|
+
0 0
|
|
66
|
+
calc(var(--metal-glow-blur) * var(--seal-glint, 0))
|
|
67
|
+
color-mix(
|
|
68
|
+
in oklab,
|
|
69
|
+
var(--seal-ink),
|
|
70
|
+
transparent
|
|
71
|
+
calc(100% - var(--metal-glow-opacity) * var(--seal-glint, 0) * 100%)
|
|
72
|
+
)
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* THE ONE-SHOT DRAW — fires ONCE on `play`, then holds static. PRM-gated: the whole
|
|
77
|
+
motion sits inside the no-preference gate (under reduce the seal is the static
|
|
78
|
+
fully-drawn mark, the @property initial-values). The draw is NOT a loop — a single
|
|
79
|
+
pass each on the stroke-reveal + the settle + the glint. */
|
|
80
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
81
|
+
.completion-seal[data-play] {
|
|
82
|
+
animation: completion-seal-settle var(--spring-bouncy-duration, 0.57s)
|
|
83
|
+
var(--spring-bouncy) both;
|
|
84
|
+
}
|
|
85
|
+
.completion-seal[data-play] .completion-seal__mark {
|
|
86
|
+
animation:
|
|
87
|
+
completion-seal-draw var(--spring-snappy-duration, 0.34s)
|
|
88
|
+
var(--ease-out, ease-out) both,
|
|
89
|
+
completion-seal-glint var(--spring-snappy-duration, 0.34s)
|
|
90
|
+
var(--ease-out, ease-out)
|
|
91
|
+
var(--spring-snappy-duration, 0.34s) both;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* The stroke-reveal: the gold INKS itself 0→full (a stroke-dashoffset paint wipe — the
|
|
96
|
+
editorial draw-on). The registered `--seal-draw` interpolates; the offset reads it. */
|
|
97
|
+
@keyframes completion-seal-draw {
|
|
98
|
+
from {
|
|
99
|
+
--seal-draw: 0%;
|
|
100
|
+
}
|
|
101
|
+
to {
|
|
102
|
+
--seal-draw: 100%;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* The settle: the seal lands with a small overshoot (the SPATIAL enter-bounce). The
|
|
107
|
+
transform scale rides the `--seal-scale` spring; the keyframe nudges the scale once
|
|
108
|
+
(the §6 calm overshoot — an ENTER may overshoot on arrival). Compositor-only. */
|
|
109
|
+
@keyframes completion-seal-settle {
|
|
110
|
+
from {
|
|
111
|
+
--seal-scale: 0.92;
|
|
112
|
+
}
|
|
113
|
+
to {
|
|
114
|
+
--seal-scale: 1;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* The glint: a ONE-PASS gold catch-light sweep on settle (0 → peak → 0). NOT a loop —
|
|
119
|
+
a single pass, then the seal holds static at glint 0 (the metal-glow whisper is the
|
|
120
|
+
resting register; the disco family stays gone). */
|
|
121
|
+
@keyframes completion-seal-glint {
|
|
122
|
+
0% {
|
|
123
|
+
--seal-glint: 0;
|
|
124
|
+
}
|
|
125
|
+
45% {
|
|
126
|
+
--seal-glint: 1;
|
|
127
|
+
}
|
|
128
|
+
100% {
|
|
129
|
+
--seal-glint: 0;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -37,7 +37,12 @@
|
|
|
37
37
|
.configurator-presets {
|
|
38
38
|
padding-block: var(--configurator-preset-row-weight);
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
/* The gallery track gap — the toggle-button group (BD.W-CONFIG-GALLERY-DOCK
|
|
41
|
+
* retired the `role="tablist"`/`role="tab"` ARIA-contradiction for the
|
|
42
|
+
* toggle-button `role="group"` + `aria-pressed` pattern). The token drives the
|
|
43
|
+
* inter-tile rhythm. */
|
|
44
|
+
.configurator-presets .configurator-gallery-track,
|
|
45
|
+
.configurator-presets [role="group"] {
|
|
41
46
|
gap: var(--configurator-preset-row-gap);
|
|
42
47
|
}
|
|
43
48
|
|
|
@@ -75,3 +80,218 @@
|
|
|
75
80
|
.configurator-footer {
|
|
76
81
|
border-color: var(--configurator-divider);
|
|
77
82
|
}
|
|
83
|
+
|
|
84
|
+
/* 4. The DESKTOP TWO-COLUMN LAYOUT — controls on the RIGHT (BC.W-CONFIG-RIGHT).
|
|
85
|
+
*
|
|
86
|
+
* The configurator's own desktop grid was the next victim of the BA.W-EMISSION
|
|
87
|
+
* self-emission class (CLAUDE.md): the SFC carried the structural layout as a
|
|
88
|
+
* `lg:grid-cols-[minmax(0,1fr)_minmax(var(--configurator-aside-min,280px),var(--configurator-aside-max,360px))]`
|
|
89
|
+
* arbitrary utility — a `lg:` arbitrary bracket with NESTED `var()` + commas +
|
|
90
|
+
* `minmax()` that dies in a consumer's content-scan (the same failure that killed
|
|
91
|
+
* the Select collision-bound). So every studio rendered SINGLE-column (controls
|
|
92
|
+
* stacked BELOW the stage) on desktop: `getComputedStyle(cfg).gridTemplateColumns`
|
|
93
|
+
* read ONE `1131px` track at 1280px width, the aside below the stage, never right.
|
|
94
|
+
*
|
|
95
|
+
* The fix is the BA.W-EMISSION discipline: the structural layout lives in SHIPPED
|
|
96
|
+
* CSS as a precompiled rule scoped to `[data-slot="configurator"]`, NEVER
|
|
97
|
+
* load-bearing on a content-scan reach (the SAME mechanism the Select bound got in
|
|
98
|
+
* select.css). Below `lg` the base `grid grid-cols-1` + the mobile row template
|
|
99
|
+
* (emitted fine — a plain utility) keeps the single-column stack: stage above,
|
|
100
|
+
* controls below (a narrow viewport has no room for side-by-side). At `lg`+ this
|
|
101
|
+
* rule sets the two-column geometry off the SAME `--configurator-aside-{min,max}`
|
|
102
|
+
* token band (default 280px/360px, retunable via the `asideWidth` prop) the dead
|
|
103
|
+
* utility read — the token contract is byte-identical, only the MECHANISM moves
|
|
104
|
+
* onto shipped CSS. The explicit mobile rows reset to `none` so one auto row
|
|
105
|
+
* stretches to the taller column. */
|
|
106
|
+
/* The MOBILE / base placement of the three section-level children (the gallery
|
|
107
|
+
* moved OUT of the aside to a grid sibling — BD.W-CONFIG-GALLERY-DOCK). Single
|
|
108
|
+
* column, three rows: gallery → stage → aside. The base `grid-template-rows`
|
|
109
|
+
* (`auto minmax(stage-min,auto) 1fr`) ships from the SFC; these rules pin each
|
|
110
|
+
* child to its row so the source order (gallery, stage, aside) reads correctly.
|
|
111
|
+
* When no gallery renders the `auto` row collapses to 0 (an empty track). */
|
|
112
|
+
[data-slot="configurator"] > [data-gallery-dock] {
|
|
113
|
+
grid-row: 1;
|
|
114
|
+
grid-column: 1;
|
|
115
|
+
}
|
|
116
|
+
[data-slot="configurator"] > .configurator-stage {
|
|
117
|
+
grid-row: 2;
|
|
118
|
+
grid-column: 1;
|
|
119
|
+
}
|
|
120
|
+
[data-slot="configurator"] > .configurator-aside {
|
|
121
|
+
grid-row: 3;
|
|
122
|
+
grid-column: 1;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@media (min-width: 1024px) {
|
|
126
|
+
/* The DESKTOP TWO-COLUMN geometry. Two columns (stage 1fr | aside band) and
|
|
127
|
+
* two rows: the gallery row (auto) over the body row (1fr). The placement of
|
|
128
|
+
* the gallery dock is the ONLY thing the `data-gallery` axis swaps. */
|
|
129
|
+
[data-slot="configurator"] {
|
|
130
|
+
grid-template-columns: minmax(0, 1fr)
|
|
131
|
+
minmax(
|
|
132
|
+
var(--configurator-aside-min, 280px),
|
|
133
|
+
var(--configurator-aside-max, 360px)
|
|
134
|
+
);
|
|
135
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* data-gallery="aside" (the default, inspector idiom) — the gallery sits in
|
|
139
|
+
* the ASIDE column, row 1, above the controls; the stage spans BOTH rows on
|
|
140
|
+
* the left. Byte-equivalent to the legacy "preset row inside the aside top". */
|
|
141
|
+
[data-slot="configurator"][data-gallery="aside"] > [data-gallery-dock] {
|
|
142
|
+
grid-row: 1;
|
|
143
|
+
grid-column: 2;
|
|
144
|
+
}
|
|
145
|
+
[data-slot="configurator"][data-gallery="aside"] > .configurator-stage {
|
|
146
|
+
grid-row: 1 / span 2;
|
|
147
|
+
grid-column: 1;
|
|
148
|
+
}
|
|
149
|
+
[data-slot="configurator"][data-gallery="aside"] > .configurator-aside {
|
|
150
|
+
grid-row: 2;
|
|
151
|
+
grid-column: 2;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/* data-gallery="top" (the §2.1 reflow) — the gallery is a LARGE full-width
|
|
155
|
+
* dock spanning BOTH columns up-top; the stage (col 1) + controls (col 2)
|
|
156
|
+
* reclaim the full height in row 2. The gallery is now ~studio-width, not the
|
|
157
|
+
* 360px gutter — ~5 φ-tall tiles visible, horizontally scrollable. */
|
|
158
|
+
[data-slot="configurator"][data-gallery="top"] > [data-gallery-dock] {
|
|
159
|
+
grid-row: 1;
|
|
160
|
+
grid-column: 1 / span 2;
|
|
161
|
+
}
|
|
162
|
+
[data-slot="configurator"][data-gallery="top"] > .configurator-stage {
|
|
163
|
+
grid-row: 2;
|
|
164
|
+
grid-column: 1;
|
|
165
|
+
}
|
|
166
|
+
[data-slot="configurator"][data-gallery="top"] > .configurator-aside {
|
|
167
|
+
grid-row: 2;
|
|
168
|
+
grid-column: 2;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/* The gallery-dock chrome divider — the hairline under the up-top dock / the
|
|
173
|
+
* left edge of the aside-placed dock. A dark-adaptive border off the same token
|
|
174
|
+
* the rest of the instrument reads, so it survives both glass plates. */
|
|
175
|
+
[data-slot="configurator"] > [data-gallery-dock] {
|
|
176
|
+
border-color: var(--configurator-divider);
|
|
177
|
+
}
|
|
178
|
+
[data-slot="configurator"][data-gallery="aside"] > [data-gallery-dock] {
|
|
179
|
+
border-bottom-width: 1px;
|
|
180
|
+
}
|
|
181
|
+
@media (min-width: 1024px) {
|
|
182
|
+
/* The up-top dock carries a bottom hairline; the aside-placed dock carries it
|
|
183
|
+
* too (above the controls). */
|
|
184
|
+
[data-slot="configurator"][data-gallery="top"] > [data-gallery-dock] {
|
|
185
|
+
border-bottom-width: 1px;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/* ── The WARM-GLASS gallery tiles + the device-free field-well ────────────────
|
|
190
|
+
* BD.W-CONFIG-GALLERY-DOCK §5/§B1. The tile is a `.glass-capsule` warm-glass cel
|
|
191
|
+
* (composed in the SFC class list) — the §3 colourful field reads THROUGH, never
|
|
192
|
+
* a flat opaque bg-card scrim. These rules add the GEOMETRY the capsule register
|
|
193
|
+
* doesn't carry: the φ-tall card shape, the rounded field-well, the active ring,
|
|
194
|
+
* the loading shimmer. No new material is minted — the transmissive composite is
|
|
195
|
+
* the shared `.glass-capsule`; the cartoon cast is the shared `.cartoon-cast`. */
|
|
196
|
+
|
|
197
|
+
/* The big field-well tile (the PresetPickerRow / baked-thumbnail form). A φ-tall
|
|
198
|
+
* card: a 16:10 field-well crowned by a label band. The capsule register paints
|
|
199
|
+
* the warm-glass body; this rule sets the card radius + the column flex so the
|
|
200
|
+
* well meets the rounded crown with zero bg leak. */
|
|
201
|
+
.configurator-preset-tile {
|
|
202
|
+
inline-size: clamp(160px, 22vw, 232px);
|
|
203
|
+
border-radius: var(--radius-card);
|
|
204
|
+
/* The capsule fill is a warm-glass PILL by default (--radius-pill); a TILE is
|
|
205
|
+
* a card, so re-point the geometry to the card radius here. The transmissive
|
|
206
|
+
* fill + rim + cast all carry from .glass-capsule. */
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* The §3 field-well — the device-free `auroraFallbackGround` background-image is
|
|
210
|
+
* set inline per tile; this rule sets the cover sizing + the rounded inner crown.
|
|
211
|
+
* The well is the COLOURFUL field; the warm-glass capsule frames it. */
|
|
212
|
+
.configurator-preset-well {
|
|
213
|
+
background-size: cover;
|
|
214
|
+
background-position: center;
|
|
215
|
+
/* a smooth bilinear upscale of the tiny raster (the per-quadrant mean
|
|
216
|
+
* luminance is preserved — the certify band reads true). */
|
|
217
|
+
image-rendering: auto;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* The loading state — a warm shimmer until the field build lands (the field
|
|
221
|
+
* build is synchronous + cheap, so this is a sub-frame flicker at most). */
|
|
222
|
+
.configurator-preset-well.is-loading {
|
|
223
|
+
background-image: linear-gradient(
|
|
224
|
+
100deg,
|
|
225
|
+
color-mix(in oklab, var(--card) 84%, transparent) 30%,
|
|
226
|
+
color-mix(in oklab, var(--foreground) 8%, var(--card)) 50%,
|
|
227
|
+
color-mix(in oklab, var(--card) 84%, transparent) 70%
|
|
228
|
+
);
|
|
229
|
+
background-size: 200% 100%;
|
|
230
|
+
animation: configurator-preset-shimmer 1.2s ease-in-out infinite;
|
|
231
|
+
}
|
|
232
|
+
@media (prefers-reduced-motion: reduce) {
|
|
233
|
+
.configurator-preset-well.is-loading {
|
|
234
|
+
animation: none;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
@keyframes configurator-preset-shimmer {
|
|
238
|
+
from {
|
|
239
|
+
background-position: 200% 0;
|
|
240
|
+
}
|
|
241
|
+
to {
|
|
242
|
+
background-position: -200% 0;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* The active tile ring — a 2px foreground-keyed inset crown over the warm-glass
|
|
247
|
+
* cel (an inset ring never clips on the scroll axis, the PresetPickerRow note).
|
|
248
|
+
* Composes with the capsule's own rim; the cast deepens to `-lg` in the SFC. */
|
|
249
|
+
.configurator-preset-tile.is-active {
|
|
250
|
+
box-shadow:
|
|
251
|
+
inset 0 0 0 2px var(--ring),
|
|
252
|
+
var(--shadow-cartoon-lg);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/* The compact CHIP form (the default fallback gallery — text-only preset pills).
|
|
256
|
+
* The capsule register paints the warm-glass body; this rule restores the pill
|
|
257
|
+
* radius the capsule already ships, and the active chip reads a selected fill via
|
|
258
|
+
* the `--glass-capsule-fill` override hook (no fork). */
|
|
259
|
+
.configurator-preset-chip {
|
|
260
|
+
border-radius: var(--radius-pill);
|
|
261
|
+
}
|
|
262
|
+
.configurator-preset-chip.is-active {
|
|
263
|
+
/* the selected rung — re-point the capsule fill toward the quiet glass-tint
|
|
264
|
+
* selected register via the documented override hook (NO new composite). */
|
|
265
|
+
--glass-capsule-fill: var(--glass-bg-quiet);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/* 5. The SIDE FLIP — a data-attr, default RIGHT (BC.W-CONFIG-RIGHT).
|
|
269
|
+
*
|
|
270
|
+
* The aside side moves off the dead `lg:col-start-*` arbitrary utility (gated
|
|
271
|
+
* behind the same silent-JIT-failure class) onto a `data-aside-side` attr the SFC
|
|
272
|
+
* binds. `right` (the default) is the NATURAL source order — stage in column 1,
|
|
273
|
+
* aside in column 2 — so it needs NO override (the bare desktop rule above already
|
|
274
|
+
* places them left→right). `left` is the reversible taste-level flip: it swaps the
|
|
275
|
+
* grid-COLUMN targets so the aside paints on the LEFT, while the DOM/tab order
|
|
276
|
+
* stays stage→aside (the side is grid-cell PLACEMENT + border-side only, never an
|
|
277
|
+
* `order:`/`row-reverse` that would desync the visual order from the DOM reading
|
|
278
|
+
* order — WCAG 1.3.2/2.4.3 inviolate, the AM.W0 contract). Below `lg` (single
|
|
279
|
+
* column) neither side has meaning. */
|
|
280
|
+
@media (min-width: 1024px) {
|
|
281
|
+
/* The flip swaps the two BODY columns (stage ↔ aside) while DOM/tab order stays
|
|
282
|
+
* gallery→stage→aside. The selectors carry `>`-child specificity to match the
|
|
283
|
+
* `data-gallery` placement rules above (which also use `>`); a bare descendant
|
|
284
|
+
* selector would lose the cascade to those and the flip would no-op. The aside
|
|
285
|
+
* keeps its body row (row 2); only the column target moves. The aside-placed
|
|
286
|
+
* gallery dock follows the aside to column 1. */
|
|
287
|
+
[data-slot="configurator"][data-aside-side="left"] > .configurator-stage {
|
|
288
|
+
grid-column: 2;
|
|
289
|
+
}
|
|
290
|
+
[data-slot="configurator"][data-aside-side="left"] > .configurator-aside {
|
|
291
|
+
grid-column: 1;
|
|
292
|
+
}
|
|
293
|
+
[data-slot="configurator"][data-aside-side="left"][data-gallery="aside"]
|
|
294
|
+
> [data-gallery-dock] {
|
|
295
|
+
grid-column: 1;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
@@ -27,13 +27,22 @@
|
|
|
27
27
|
* component recipes) — under the recorded gzip ceiling (W3).
|
|
28
28
|
*
|
|
29
29
|
* DEFERRED (./styles/deferred) — the below-the-fold + late-mount tail: every
|
|
30
|
-
* component recipe + the transitions/animations/scroll-driven/
|
|
31
|
-
* grammar + utilities + the menu/configurator/instrument-chassis/
|
|
32
|
-
* drawer/segmented-tabs/select/icon-chip
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* mount after first paint or
|
|
36
|
-
* above-the-fold pixel (the
|
|
30
|
+
* component recipe + the transitions/animations/scroll-driven/scroll-chrome/
|
|
31
|
+
* view-transition grammar + utilities + the menu/configurator/instrument-chassis/
|
|
32
|
+
* hover-popover/drawer/segmented-tabs/select/icon-chip/border-progress/
|
|
33
|
+
* completion-seal component partials, PLUS the folded SFC `<style scoped>`
|
|
34
|
+
* payload (`../glass-ui.css`) and the emitted Tailwind component-utility surface
|
|
35
|
+
* (`components.css`). These decorate components that mount after first paint or
|
|
36
|
+
* sit below the fold; their late arrival shifts no above-the-fold pixel (the
|
|
37
|
+
* FOUC-safe floor, W5). The BC-added `scroll-chrome.css` (the scroll-driven
|
|
38
|
+
* floating-CHROME collapse recipe — a late-mount surface decoration) and
|
|
39
|
+
* `completion-seal.css` (the one-shot earned-gold feedback seal — a focal opt-in
|
|
40
|
+
* surface that mounts on a completion event) are BOTH deferred: neither paints
|
|
41
|
+
* an above-the-fold first-paint chrome pixel. The BD-added `motion/morph-field.css`
|
|
42
|
+
* (the ONE `useMorphField` goo recipe — the body/neck/waist silhouette + the
|
|
43
|
+
* dedicated squish channel) is likewise DEFERRED: it is gated to `[data-morphing]`
|
|
44
|
+
* and paints only while a morph drive is live (a late-mount compositor decoration),
|
|
45
|
+
* never a steady-state first-paint chrome pixel.
|
|
37
46
|
*
|
|
38
47
|
* The `paper.css` partial is bucketed DEFERRED — the paper underpaint/grain
|
|
39
48
|
* utilities pair with glass for paper-on-glass compositions that mount with the
|
|
@@ -63,8 +72,11 @@ export const DEFERRED_PARTIALS = Object.freeze([
|
|
|
63
72
|
"floating-panel.css",
|
|
64
73
|
"transitions.css",
|
|
65
74
|
"animations.css",
|
|
75
|
+
"motion/morph-field.css",
|
|
76
|
+
"jubilance.css",
|
|
66
77
|
"scroll-driven.css",
|
|
67
78
|
"scroll-choreography.css",
|
|
79
|
+
"scroll-chrome.css",
|
|
68
80
|
"view-transition.css",
|
|
69
81
|
"utilities.css",
|
|
70
82
|
"menu.css",
|
|
@@ -76,6 +88,7 @@ export const DEFERRED_PARTIALS = Object.freeze([
|
|
|
76
88
|
"select.css",
|
|
77
89
|
"icon-chip.css",
|
|
78
90
|
"border-progress.css",
|
|
91
|
+
"completion-seal.css",
|
|
79
92
|
]);
|
|
80
93
|
|
|
81
94
|
/**
|
|
@@ -133,8 +146,50 @@ export const DEFERRED_SOURCE_DIRECTIVE = '@source "../*.js";';
|
|
|
133
146
|
* dark-arm + the on-glass-fg / surface-axis registers — all of which live in the
|
|
134
147
|
* critical tokens/* + glass/* sub-partials by construction. Ceiling lifted
|
|
135
148
|
* 110000 → 137000 (~4.2% headroom over the measured 131469, the profile-bundle
|
|
136
|
-
* re-base convention) to carry the BB glass-band critical surface.
|
|
137
|
-
*
|
|
138
|
-
*
|
|
149
|
+
* re-base convention) to carry the BB glass-band critical surface.
|
|
150
|
+
*
|
|
151
|
+
* RE-BASE (BC.W-CSS-CRITICAL — re-measured over the SETTLED BC cascade): the
|
|
152
|
+
* critical subset grew to raw 482228 / gzip 149748 — AGAIN not a component-recipe
|
|
153
|
+
* leak (the critical bucket is STILL the 6 documented token+glass+type partials;
|
|
154
|
+
* the BC visual bands 1-7 + 9 re-authored the critical tokens/* + glass/* sub-
|
|
155
|
+
* partials — the warm-cream page chassis tokens, the on-glass-fg/surface-axis
|
|
156
|
+
* registers, the calm/deep glass ladder, the scroll/motion token additions in
|
|
157
|
+
* scale-paper.css — all of which live in the critical token cascade by
|
|
158
|
+
* construction; the two BC-added PARTIALS scroll-chrome.css + completion-seal.css
|
|
159
|
+
* are bucketed DEFERRED, NOT critical). The critical subset is 47.3% of the
|
|
160
|
+
* settled monolith's resolved gzip (316614) — the spec's ~46% small-above-the-
|
|
161
|
+
* fold-subset bar HELD over the settled cascade. Ceiling re-pinned 137000 →
|
|
162
|
+
* 156000 (~4.2% headroom over the measured 149748, the profile-bundle re-base
|
|
163
|
+
* convention — the reviewed write, NEVER a silent component-recipe swallow to
|
|
164
|
+
* stay under the old number). The render-block FLOOR stays W-LIGHTHOUSE's
|
|
165
|
+
* W3-arm-1 mobile-ms gate (the binding perf truth); this ceiling guards against a
|
|
166
|
+
* recipe revert-toward-monolith.
|
|
167
|
+
*
|
|
168
|
+
* RE-BASE (BD greenfield band — re-measured over the SETTLED BD cascade): the
|
|
169
|
+
* critical subset grew to raw 561233 / gzip 174231 — AGAIN not a component-recipe
|
|
170
|
+
* leak into the critical BUCKET (the critical bucket is STILL the SAME 6 documented
|
|
171
|
+
* token+glass+type partials; w2 partials-disjoint + w4 hold, and the two recipe-shaped
|
|
172
|
+
* BD additions that COULD have leaked do NOT: `motion/morph-field.css` is bucketed
|
|
173
|
+
* DEFERRED, `glass-atom.css`/`glass-chip.css` are @import-ed by the DEFERRED
|
|
174
|
+
* `icon-chip.css` (not by `glass.css`), and `liquid-morph.css` is demo-only — it is
|
|
175
|
+
* @import-ed by NO src partial). The growth is the legitimate BD GREENFIELD enrichment
|
|
176
|
+
* of the critical TOKEN CASCADE + glass ladder, which lives in the critical tokens/* +
|
|
177
|
+
* glass/* sub-partials by construction: the NEW `tokens/property-regs.css` (the
|
|
178
|
+
* @property registrations a bare var() interpolates over), the `tokens/scheme-motion.css`
|
|
179
|
+
* --motion-weight × --ease-cartoon-punch motion grammar, the `tokens/shadow.css` cartoon
|
|
180
|
+
* cast rungs, the `tokens/dark-arm.css` dark-mode arms, the `tokens/glass.css` squish/tint
|
|
181
|
+
* axes, and the `tokens/glass-fx.css` / `tokens/scale-paper.css` page-chassis registers —
|
|
182
|
+
* all custom-property registers the chrome reads at first paint. The ONE borderline
|
|
183
|
+
* residual is `glass/liquid-enter.css` (a late-mount entrance @keyframes recipe, ~3.7KiB
|
|
184
|
+
* gzip) which rides `glass.css` over its `reveal.css` `--lq-enter-*` substrate; carving it
|
|
185
|
+
* to a deferred top-level partial is a structural cascade-order change reserved for the
|
|
186
|
+
* named BB.W-CSS-CRITICAL-INLINE successor (a triumvirate trigger, NOT a token-edit here),
|
|
187
|
+
* and it recovers only ~3.7KiB — the bucket would still sit ~170KiB, well over the old
|
|
188
|
+
* 156000. The critical subset is 49.5% of the settled monolith's resolved gzip — the
|
|
189
|
+
* spec's ~46% small-above-the-fold-subset bar HELD over the settled cascade. Ceiling
|
|
190
|
+
* re-pinned 156000 → 182000 (~4.5% headroom over the measured 174231, the profile-bundle
|
|
191
|
+
* re-base convention — the reviewed write, NEVER a silent component-recipe swallow). The
|
|
192
|
+
* render-block FLOOR stays W-LIGHTHOUSE's W3-arm-1 mobile-ms gate (the binding perf truth);
|
|
193
|
+
* this ceiling guards against a recipe revert-toward-monolith.
|
|
139
194
|
*/
|
|
140
|
-
export const CRITICAL_GZIP_CEILING =
|
|
195
|
+
export const CRITICAL_GZIP_CEILING = 182000;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/* dock/adaptive-legibility.css — the dock's ADAPTIVE-LEGIBILITY self-engage (carved
|
|
2
|
+
* from dock/morph.css to hold both partials under the 500-line no-god-module bound).
|
|
3
|
+
*
|
|
4
|
+
* This partial owns the darken-over-light legibility concern, distinct from the morph
|
|
5
|
+
* chrome: the unconditional `:where(.glass-dock)` self-engage (AZ.W-ADAPTIVE-AUTO), the
|
|
6
|
+
* continuous backdrop-luma tint clamp (BC.W-ADAPTIVE-RECONCILE), the BD.W-DOCK-CORE D2
|
|
7
|
+
* warm-chromatic dock ink, the ancestor `@container style(--glass-backdrop: light)`
|
|
8
|
+
* descendant bucket, the AX.W55 contrast-color() progressive refinement, and the
|
|
9
|
+
* BB.W-LIQUID-REVEAL / BC.W-DOCK-SHRINK-BLUR PRM reveal-blur carve.
|
|
10
|
+
*
|
|
11
|
+
* @import-ed by dock.css in cascade order, in the SAME `@layer components` as morph.css
|
|
12
|
+
* (the carve is isomorphic — same layer, source order preserved → ZERO visual delta). */
|
|
13
|
+
|
|
14
|
+
@layer components {
|
|
15
|
+
/* ── Adaptive legibility: SELF-ENGAGE the dock over a light backdrop by default
|
|
16
|
+
(AZ.W-ADAPTIVE-AUTO Arm 1 — the literal G2 surface; "Glass dock over VERY
|
|
17
|
+
LIGHT materials is unreadable, darken DYNAMICALLY like iOS 27") ─────────────
|
|
18
|
+
The dock floats over WHATEVER the consumer painted — frequently a light/near-
|
|
19
|
+
white app surface (the canonical G2 case the user reported). AY.W-A11Y-PERF
|
|
20
|
+
O-1 set `--glass-backdrop: light` on the dock's OWN root (shell.css) intending
|
|
21
|
+
a self-darken, but CSS style queries NEVER self-match (the `@container
|
|
22
|
+
style()` block below reads an ANCESTOR — verified on Chrome 148), so the
|
|
23
|
+
self-declaration was a NO-OP. This `:where(.glass-dock)` rule is the genuine
|
|
24
|
+
UNCONDITIONAL self-engage — mirroring the overlay band's `ladder.css:169` —
|
|
25
|
+
re-pointing the INHERITING tint tokens DIRECTLY on the dock root so the
|
|
26
|
+
shell (`--glass-bg-dock`), chassis-strip, and held/open tiers (which compose
|
|
27
|
+
the oklab tint AT THE ELEMENT — the substitution-vs-inheritance-safe targets)
|
|
28
|
+
darken toward warm-ink in lockstep. `--dock-fg-on-aurora` re-points to the
|
|
29
|
+
warm-ink here too — ONE reconciled path, the foreground twin folded in (it
|
|
30
|
+
reaches the dock CONTROLS' glyph/label color). Over a DARK page the darken is
|
|
31
|
+
sub-perceptual; a dark-substrate consumer opts out via `--glass-tint-strength:
|
|
32
|
+
0%` on the dock root. The morph-root interp (`.glass-dock:not(.vertical)`
|
|
33
|
+
above) stays `color-mix(in srgb …)` for the transition — the adaptive darken
|
|
34
|
+
rides its RESTING endpoint (`--glass-bg-dock`), the in-flight morph frames are
|
|
35
|
+
sub-perceptual (the ratified resting-endpoint-only default). The muted body
|
|
36
|
+
register lifts to the full warm-ink under the engaged plate (the muted L40
|
|
37
|
+
tier cannot clear 4.5:1 on a translucent darkened plate — darkening moves the
|
|
38
|
+
plate TOWARD muted's own luminance; the low-contrast muted register is
|
|
39
|
+
inappropriate over a busy glass plate, so it resolves to the legible dark
|
|
40
|
+
ink, which clears ~10:1). */
|
|
41
|
+
:where(.glass-dock) {
|
|
42
|
+
/* BD.W-DOCK-CORE (D2) — the dock self-engage reads the warm-CHROMATIC dock ink
|
|
43
|
+
(glass-fx.css), NOT the frozen global `--glass-tint-ink` (W-DARK-MATERIAL's
|
|
44
|
+
whole-system register). So the darken-over-light RAISES chroma toward a warm
|
|
45
|
+
material (H ≈ 62°, C ≈ 0.016 at AA) rather than dropping L with chroma flat (the
|
|
46
|
+
gray dock). ONE dock tint source, ONE global ink — file-line-disjoint. */
|
|
47
|
+
--glass-tint-source: var(--glass-tint-ink-dock);
|
|
48
|
+
/* BC.W-ADAPTIVE-RECONCILE — the dock JOINS the continuous observer driver (the
|
|
49
|
+
literal G2 surface: "darken DYNAMICALLY like iOS 27"). The dock's own
|
|
50
|
+
`useGlassBackdropLuminance` observer samples the threaded `:background-canvas`
|
|
51
|
+
(aurora/blob) and WRITES `--glass-backdrop-luma`; this clamp READS it and lerps
|
|
52
|
+
the plate from the warm-cream floor toward the ≤24% AA ceiling as the field
|
|
53
|
+
brightens past the knee — deepening over a bright bleed, lifting translucent over
|
|
54
|
+
a dark trough (the SAME clamp the content/overlay tiers get — ONE axis/driver/
|
|
55
|
+
signal; the discrete `@container` bucket RETIRED). Calm (luma ≤ knee) → floor. */
|
|
56
|
+
--glass-tint-strength: clamp(
|
|
57
|
+
var(--glass-tint-strength-floor),
|
|
58
|
+
calc(
|
|
59
|
+
var(--glass-tint-strength-floor) +
|
|
60
|
+
(var(--glass-tint-strength-aa) - var(--glass-tint-strength-floor)) *
|
|
61
|
+
max(0, (var(--glass-backdrop-luma, 0) - var(--glass-backdrop-luma-knee, 0.6)) / (1 - var(--glass-backdrop-luma-knee, 0.6)))
|
|
62
|
+
),
|
|
63
|
+
var(--glass-tint-strength-aa)
|
|
64
|
+
);
|
|
65
|
+
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
66
|
+
--muted-foreground: var(--foreground);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* The ancestor-querying `@container` block KEPT — it reaches the DESCENDANT
|
|
70
|
+
nested-glass surfaces inside a dock when a consumer marks `--glass-backdrop:
|
|
71
|
+
light` on the dock's ancestor (the self-engage above re-points only the dock
|
|
72
|
+
root's own inheriting tokens; a consumer's explicit ancestor bucket still
|
|
73
|
+
cascades to nested glass through this block). */
|
|
74
|
+
@container style(--glass-backdrop: light) {
|
|
75
|
+
.glass-dock {
|
|
76
|
+
--glass-tint-source: var(--glass-tint-ink);
|
|
77
|
+
--glass-tint-strength: var(--glass-tint-strength-aa);
|
|
78
|
+
--dock-fg-on-aurora: var(--glass-tint-ink);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* AX.W55 — the `contrast-color()` flip for the dock control foreground (Chrome
|
|
83
|
+
147+/Safari 26+; progressive enhancement, NEVER the load-bearing floor). The
|
|
84
|
+
declarative bucket above already carries AA on all engines (it darkens the dock
|
|
85
|
+
plate so the warm-dark `--dock-fg-on-aurora` clears ~17:1 over white at the 18%
|
|
86
|
+
floor). On a supporting engine `contrast-color()` REFINES the control ink,
|
|
87
|
+
anchored on the LIGHT BACKDROP signal (`--card`, the warm-white surface base the
|
|
88
|
+
bright bucket implies) — `contrast-color(var(--card))` resolves to the legible
|
|
89
|
+
DARK ink. Anchoring on the dark ink instead inverts to white (illegible on the
|
|
90
|
+
still-light dock plate), so the anchor is the light surface, matching the rung
|
|
91
|
+
refinement in glass.css. The bucket is the floor; this is the native pick. */
|
|
92
|
+
@supports (color: contrast-color(white)) {
|
|
93
|
+
/* The SELF-ENGAGED dock refinement (the unconditional self-engage above);
|
|
94
|
+
progressive enhancement only — the declarative darken is the AA floor. */
|
|
95
|
+
:where(.glass-dock) {
|
|
96
|
+
--dock-fg-on-aurora: contrast-color(var(--card));
|
|
97
|
+
--muted-foreground: contrast-color(var(--card));
|
|
98
|
+
}
|
|
99
|
+
@container style(--glass-backdrop: light) {
|
|
100
|
+
.glass-dock {
|
|
101
|
+
--dock-fg-on-aurora: contrast-color(var(--card));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* BB.W-LIQUID-REVEAL — the dock-expand bloom beat's blur-settle is OFF under
|
|
108
|
+
`prefers-reduced-motion: reduce` (the vestibular floor): a reduced-motion dock reads
|
|
109
|
+
crisp at every state, no in-between blur frames.
|
|
110
|
+
BC.W-DOCK-SHRINK-BLUR — the self-blur is now gated to `[data-morphing]`, so the PRM
|
|
111
|
+
carve zeroes it on the ARMED scope too (specificity 0,2,0) — a PRM dock that briefly
|
|
112
|
+
arms `[data-morphing]` carries no 3px bloom; the resting `.glass-dock` is already
|
|
113
|
+
crisp by the re-gate. */
|
|
114
|
+
@media (prefers-reduced-motion: reduce) {
|
|
115
|
+
.glass-dock,
|
|
116
|
+
.glass-dock[data-morphing] {
|
|
117
|
+
--dock-reveal-blur: 0px;
|
|
118
|
+
}
|
|
119
|
+
}
|