@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,33 @@
|
|
|
1
|
+
import { o as e, t } from "./color-B9jZdhJX.js";
|
|
2
|
+
import { OKLCHColor as n, sampleColorRamp as r } from "@mkbabb/value.js";
|
|
3
|
+
//#region src/components/custom/border-progress/composables/spectrum-walk.ts
|
|
4
|
+
var i = (e) => new n(e.L, e.C, e.h / 360), a = (e) => ({
|
|
5
|
+
L: Number(e.l),
|
|
6
|
+
C: Number(e.c),
|
|
7
|
+
h: (Number(e.h) * 360 % 360 + 360) % 360
|
|
8
|
+
});
|
|
9
|
+
function o(n, o) {
|
|
10
|
+
let s = n.map((e) => t(e)), c = s.length;
|
|
11
|
+
if (o < 2) return [e(s[0] ?? {
|
|
12
|
+
L: .7,
|
|
13
|
+
C: 0,
|
|
14
|
+
h: 0
|
|
15
|
+
})];
|
|
16
|
+
if (c === 0) return Array.from({ length: o }, () => e({
|
|
17
|
+
L: .7,
|
|
18
|
+
C: 0,
|
|
19
|
+
h: 0
|
|
20
|
+
}));
|
|
21
|
+
if (c === 1) return Array.from({ length: o }, () => e(s[0]));
|
|
22
|
+
let l = (t, n, o) => r(i(t), i(n), o, {
|
|
23
|
+
space: "oklch",
|
|
24
|
+
hueMethod: "shorter"
|
|
25
|
+
}).map((t) => e(a(t))), u = c - 1, d = [];
|
|
26
|
+
for (let e = 0; e < u; e++) {
|
|
27
|
+
let t = Math.round(e * (o - 1) / u), n = Math.round((e + 1) * (o - 1) / u), r = l(s[e], s[e + 1], n - t + 1);
|
|
28
|
+
d.push(...e > 0 ? r.slice(1) : r);
|
|
29
|
+
}
|
|
30
|
+
return d;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { o as walkConcreteSpectrum };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//#region src/composables/motion/springPresets.ts
|
|
2
|
+
var e = [
|
|
3
|
+
{
|
|
4
|
+
name: "smooth",
|
|
5
|
+
response: .58,
|
|
6
|
+
dampingFraction: .8,
|
|
7
|
+
comment: "SETTLE register — the inertial settle (entrances/fades/scale-ins): weighty, a whisper of life (+1.5%), never a dead stop. BD.W-ANIM-IOS27-TUNE"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
name: "snappy",
|
|
11
|
+
response: .48,
|
|
12
|
+
dampingFraction: .74,
|
|
13
|
+
comment: "CONTROL register — the quick-but-WEIGHTY position morph (tab indicator, progress fill, .glass-reveal SPATIAL bloom, page-build); arrives at half-clock (audacious) with a small gooey overshoot (+3.2%). BD.W-ANIM-IOS27-TUNE"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "bouncy",
|
|
17
|
+
response: .6,
|
|
18
|
+
dampingFraction: .6,
|
|
19
|
+
comment: "PLAYFUL register — the emphatic one-shot (dialog/success entrance, VT default, completion-seal): FLOWING not flicking — overshoot softened 12.6%→9.5%, slower for inertia. BD.W-ANIM-IOS27-TUNE"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "gentle",
|
|
23
|
+
response: .82,
|
|
24
|
+
dampingFraction: 1,
|
|
25
|
+
comment: "GENTLE register — the patient critically-damped settle (--ease-convergence alias); slow inertial arrival, ζ=1.0 (NO overshoot by definition — the convergence-reveal depends on it). BD.W-ANIM-IOS27-TUNE"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "dock",
|
|
29
|
+
response: .68,
|
|
30
|
+
dampingFraction: .64,
|
|
31
|
+
comment: "DOCK register — THE WEIGHTY GOOEY MORPH (collapse/expand + V↔H + fission + in-situ shell): slow inertial mass, the settle a graceful +7.3% (un-pointed liquid), the 'MORPH MORE on move' reference. BD.W-ANIM-IOS27-TUNE"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "press",
|
|
35
|
+
response: .2,
|
|
36
|
+
dampingFraction: .8,
|
|
37
|
+
comment: "PRESS register — the iOS interactive tap (useSpringPress + --glass-btn-press-t): a hair of inertial carry (sub-200ms iOS window) + a tiny alive rebound (+1.5%); the interruptible re-seat keeps the gesture continuous. BD.W-ANIM-IOS27-TUNE"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "timeline-head",
|
|
41
|
+
response: .34,
|
|
42
|
+
dampingFraction: .74,
|
|
43
|
+
comment: "TIMELINE-HEAD register — the ScrubberTimeline warm-glass lozenge travel (LEG-2): the head LAGS the pointer a hair then settles with a whisper of fling-overshoot (+3.2%). The fast head clock the fill trails. BD.W-TIMELINE-RAIL-UNIFY"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "timeline-fill",
|
|
47
|
+
response: .46,
|
|
48
|
+
dampingFraction: .82,
|
|
49
|
+
comment: "TIMELINE-FILL register — the ScrubberTimeline lane fill (LEG-2): a slower clock than the head so the fill TRAILS the bead (the lane reads as liquid trailing), settling with a hint of carry (+1.1%). BD.W-TIMELINE-RAIL-UNIFY"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "timeline-press",
|
|
53
|
+
response: .22,
|
|
54
|
+
dampingFraction: .7,
|
|
55
|
+
comment: "TIMELINE-PRESS register — the ScrubberTimeline grab-anticipation (LEG-2): the head's pointerdown squash on the cartoon-punch clock, a crisp short-response press settle (+4.6%) feeding the --scale-press dip. BD.W-TIMELINE-RAIL-UNIFY"
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
function t(t) {
|
|
59
|
+
let n = e.find((e) => e.name === t);
|
|
60
|
+
if (!n) throw Error(`Unknown spring preset: ${t}`);
|
|
61
|
+
return n;
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
export { t as n, e as t };
|
package/dist/stacked-icons.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i,
|
|
1
|
+
import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, defineComponent as s, normalizeClass as c, normalizeStyle as l, openBlock as u, renderList as d, renderSlot as f, resolveDynamicComponent as p, toDisplayString as m, withCtx as h } from "vue";
|
|
2
2
|
//#region src/components/custom/stacked-icons/StackedIconGroup.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
-
var
|
|
3
|
+
var g = {
|
|
4
4
|
key: 1,
|
|
5
5
|
style: { zIndex: 0 }
|
|
6
|
-
},
|
|
6
|
+
}, _ = /* @__PURE__ */ s({
|
|
7
7
|
__name: "StackedIconGroup",
|
|
8
8
|
props: {
|
|
9
9
|
items: {},
|
|
@@ -21,63 +21,78 @@ var h = {
|
|
|
21
21
|
as: { default: "div" },
|
|
22
22
|
keyFn: {}
|
|
23
23
|
},
|
|
24
|
-
setup(
|
|
25
|
-
let
|
|
26
|
-
switch (
|
|
24
|
+
setup(s) {
|
|
25
|
+
let _ = s, v = t(() => {
|
|
26
|
+
switch (_.size) {
|
|
27
27
|
case "sm": return "h-6 w-6";
|
|
28
28
|
case "md": return "h-8 w-8";
|
|
29
29
|
case "lg": return "h-10 w-10";
|
|
30
30
|
}
|
|
31
|
-
}),
|
|
32
|
-
if (
|
|
31
|
+
}), y = t(() => {
|
|
32
|
+
if (_.direction === "vertical") switch (_.size) {
|
|
33
33
|
case "sm": return "-mt-(--stack-overlap-sm)";
|
|
34
34
|
case "md": return "-mt-(--stack-overlap-md)";
|
|
35
35
|
case "lg": return "-mt-(--stack-overlap-lg)";
|
|
36
36
|
}
|
|
37
|
-
switch (
|
|
37
|
+
switch (_.size) {
|
|
38
38
|
case "sm": return "-ml-(--stack-overlap-sm)";
|
|
39
39
|
case "md": return "-ml-(--stack-overlap-md)";
|
|
40
40
|
case "lg": return "-ml-(--stack-overlap-lg)";
|
|
41
41
|
}
|
|
42
|
-
}),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
42
|
+
}), b = t(() => _.items.slice(0, _.maxVisible)), x = t(() => Math.max(0, _.items.length - _.maxVisible)), S = t(() => {
|
|
43
|
+
let e = b.value.length + +(x.value > 0);
|
|
44
|
+
return Math.max(1, e - 1);
|
|
45
|
+
});
|
|
46
|
+
return (t, _) => (u(), n(p(s.as), {
|
|
47
|
+
class: c(["stacked-icon-group group/stack relative isolate flex", [s.direction === "vertical" ? "flex-col" : "items-center", s.reversed ? s.direction === "vertical" ? "flex-col-reverse" : "flex-row-reverse" : ""]]),
|
|
48
|
+
"data-direction": s.direction,
|
|
49
|
+
style: l({ "--n": S.value })
|
|
50
|
+
}, {
|
|
51
|
+
default: h(() => [
|
|
52
|
+
(u(!0), i(e, null, d(b.value, (e, n) => (u(), i("div", {
|
|
53
|
+
key: s.keyFn?.(e, n) ?? n,
|
|
54
|
+
class: c([
|
|
55
|
+
v.value,
|
|
56
|
+
"stacked-icon-puck relative flex items-center justify-center rounded-pill transform-gpu",
|
|
57
|
+
n > 0 ? y.value : "",
|
|
58
|
+
s.expandOnHover && n > 0 ? "stacked-icon-puck--fan" : ""
|
|
57
59
|
]),
|
|
58
|
-
style:
|
|
59
|
-
|
|
60
|
+
style: l({
|
|
61
|
+
zIndex: b.value.length + 1 - n,
|
|
62
|
+
"--i": n
|
|
63
|
+
})
|
|
64
|
+
}, [f(t.$slots, "icon", {
|
|
60
65
|
item: e,
|
|
61
66
|
index: n
|
|
62
67
|
})], 6))), 128)),
|
|
63
|
-
|
|
68
|
+
x.value > 0 ? (u(), i("div", {
|
|
64
69
|
key: 0,
|
|
65
|
-
class:
|
|
66
|
-
_.value,
|
|
67
|
-
"relative flex items-center justify-center rounded-pill",
|
|
68
|
-
"border-2 border-background bg-[color-mix(in_srgb,var(--background)_96%,transparent)] text-xs font-semibold text-muted-foreground/60 shadow-cartoon-sm",
|
|
69
|
-
"transform-gpu transition-[background-color,color,transform,box-shadow] duration-fast ease-spring-snappy",
|
|
70
|
-
"hover:bg-background hover:text-muted-foreground hover:shadow-cartoon-md",
|
|
70
|
+
class: c([
|
|
71
71
|
v.value,
|
|
72
|
-
|
|
72
|
+
"stacked-icon-puck stacked-icon-overflow glass-capsule glass-atom",
|
|
73
|
+
"relative flex items-center justify-center rounded-pill text-xs font-semibold text-muted-foreground",
|
|
74
|
+
"transform-gpu",
|
|
75
|
+
y.value,
|
|
76
|
+
s.expandOnHover ? "stacked-icon-puck--fan" : ""
|
|
73
77
|
]),
|
|
74
|
-
style: {
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
style: l({
|
|
79
|
+
zIndex: 1,
|
|
80
|
+
"--i": b.value.length
|
|
81
|
+
}),
|
|
82
|
+
"data-cast": ""
|
|
83
|
+
}, [_[0] ||= a("span", {
|
|
84
|
+
class: "cartoon-cast",
|
|
85
|
+
"aria-hidden": "true"
|
|
86
|
+
}, null, -1), f(t.$slots, "overflow", { count: x.value }, () => [o(" +" + m(x.value), 1)])], 6)) : r("", !0),
|
|
87
|
+
x.value === 0 && t.$slots.info ? (u(), i("div", g, [f(t.$slots, "info")])) : r("", !0)
|
|
77
88
|
]),
|
|
78
89
|
_: 3
|
|
79
|
-
}, 8, [
|
|
90
|
+
}, 8, [
|
|
91
|
+
"class",
|
|
92
|
+
"data-direction",
|
|
93
|
+
"style"
|
|
94
|
+
]));
|
|
80
95
|
}
|
|
81
96
|
});
|
|
82
97
|
//#endregion
|
|
83
|
-
export {
|
|
98
|
+
export { _ as StackedIconGroup };
|
|
@@ -207,14 +207,24 @@
|
|
|
207
207
|
/* AX.W57 (P6) — the aura breath reads its OWN element-opacity range
|
|
208
208
|
(`--pulse-aura-breath-{min,max}`, 0.28↔0.42), decoupled from the
|
|
209
209
|
shared `--pulse-aura-opacity-*` skeleton-shimmer stops so the halo
|
|
210
|
-
breathes as an ambient wash, never up to the 0.95 shimmer peak.
|
|
210
|
+
breathes as an ambient wash, never up to the 0.95 shimmer peak.
|
|
211
|
+
|
|
212
|
+
BC.W-GLASS-GLOW-FIX (Atlas A-8 root) — the breath SCALE is driven via the
|
|
213
|
+
`--pulse-aura-breath-scale` registered custom property (a `<number>`, typed
|
|
214
|
+
in property-regs.css so it INTERPOLATES per-frame), NOT a `transform: scale()`
|
|
215
|
+
on `.pulse-aura` itself. The `.pulse-aura::before` child reads the scale; the
|
|
216
|
+
`.pulse-aura` element stays UNSCALED at `inset:0` as the `overflow: clip`
|
|
217
|
+
boundary. Scaling the CHILD (clipped by the unscaled parent) is what makes the
|
|
218
|
+
1.15× peak STAY inside the host box — scaling the clip element itself scaled the
|
|
219
|
+
clip rect too, so the radial escaped (the prior incomplete fix). The element-
|
|
220
|
+
opacity breath stays HERE (it does not change geometry). */
|
|
211
221
|
0%,
|
|
212
222
|
100% {
|
|
213
|
-
|
|
223
|
+
--pulse-aura-breath-scale: var(--animate-ambient-pulse-scale-min, 1);
|
|
214
224
|
opacity: var(--pulse-aura-breath-min, 0.28);
|
|
215
225
|
}
|
|
216
226
|
50% {
|
|
217
|
-
|
|
227
|
+
--pulse-aura-breath-scale: var(--animate-ambient-pulse-scale-max, 1.15);
|
|
218
228
|
opacity: var(--pulse-aura-breath-max, 0.42);
|
|
219
229
|
}
|
|
220
230
|
}
|
package/dist/styles/cards.css
CHANGED
|
@@ -6,6 +6,122 @@
|
|
|
6
6
|
* only the 5-rung glass ladder. */
|
|
7
7
|
|
|
8
8
|
@layer components {
|
|
9
|
+
/* ── BD.W-CARD-MATERIAL-FLOOR — the card-surface warm tint-seam enrollment ──
|
|
10
|
+
The §4 leg-(a) material floor, reconciled to the SHIPPED `--glass-tint-*`
|
|
11
|
+
seam (NOT a fork, NOT a global re-tint). The card's glass/cartoon surfaces
|
|
12
|
+
ride the `.glass-${tier}` ladder rung, whose fill is already
|
|
13
|
+
`color-mix(in oklab, --glass-bg-${tier}, --glass-tint-source --glass-tint-
|
|
14
|
+
strength)` (ladder.css) — so the card reaches the warm floor by setting a
|
|
15
|
+
CARD-LOCAL non-zero `--glass-tint-strength` (the global default at
|
|
16
|
+
surface-axis.css:83 stays `0%`, so the 6 other seam-readers — drawer / menu /
|
|
17
|
+
veil / jubilance / .btn-glass / .segmented-indicator — are byte-unchanged:
|
|
18
|
+
the blast-radius bite). `--glass-tint-source` defaults to `var(--card)` (a
|
|
19
|
+
warm cream, glass-fx.css:158), so the floor is warm by construction in BOTH
|
|
20
|
+
modes. The card clears the warm-chroma floor (C ≥ 0.02 warm) in the MATERIAL
|
|
21
|
+
itself — before the field even lands, and on a dead ground (print / reduced-
|
|
22
|
+
transparency), the "far too gray" verdict closes at the material layer.
|
|
23
|
+
|
|
24
|
+
SCOPE — `[data-surface]` is `glass` or `cartoon` (NOT `veil`: veil owns its
|
|
25
|
+
own `--veil-bg` tint seam below; NOT `opaque`: the solid `--card` plate is
|
|
26
|
+
already warm-cream). The strength is set on the host so it inherits into the
|
|
27
|
+
rung's `color-mix`. This is a card-local re-point of the SHIPPED seam — DRY,
|
|
28
|
+
no second compositing axis, the ladder rung does the mix. */
|
|
29
|
+
[data-slot="card"]:where(
|
|
30
|
+
[data-surface="glass"],
|
|
31
|
+
[data-surface="cartoon"]
|
|
32
|
+
) {
|
|
33
|
+
--glass-tint-strength: 8%;
|
|
34
|
+
/* BD.W-CARD-CEL-MOTION (§3.1) — the defined-edge border-ink floor. The
|
|
35
|
+
ladder rung's `--glass-border-resting`/`-quiet` ink is 4% warm
|
|
36
|
+
(glass.css:331-332) — it vanishes cream-on-cream (K3 RED). Floor the
|
|
37
|
+
card's own border-ink UP to ≥8% warm-ink so the cel reads as a defined
|
|
38
|
+
SHAPE (WCAG 1.4.11 non-text). `--glass-border-rung` is the per-rung ink
|
|
39
|
+
the accent-composed `--glass-border-accent` reads (ladder.css /
|
|
40
|
+
surfaces.css); re-pointing it card-locally floors the border WITHOUT
|
|
41
|
+
forking the rim (the keyed two-stop rim from `--glass-material-rim` is
|
|
42
|
+
CONSUMED unchanged — the card does NOT re-mint a rim). Warm (the
|
|
43
|
+
`--foreground` mix is warm-cream in both modes); the `.dark` ink lifts
|
|
44
|
+
off the near-black field through the same `--foreground` flip. */
|
|
45
|
+
--glass-border-rung: color-mix(in srgb, var(--foreground) 9%, transparent);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* BD.W-CARD-CEL-MOTION (§3.2) — the inner catch-light over the field. A faint
|
|
49
|
+
`screen`-blended warm catch sits where the upper-right `--glass-key` sun
|
|
50
|
+
hits, lifting the cel off the field (the §3 layer-4 catch, coherent with the
|
|
51
|
+
rim + cast — ONE key). It rides the host `background-image` stack ALONGSIDE
|
|
52
|
+
the field underlayer (both are static gradients in the same longhand; the
|
|
53
|
+
catch is the FIRST layer so it sits over the warm underlayer), so it adds NO
|
|
54
|
+
pseudo (`::before` = moving specular, `::after` = grain — both occupied).
|
|
55
|
+
`screen` lifts only where there is light, never darkening — and it is below
|
|
56
|
+
content + clipped to the host radius, so it never washes the text column
|
|
57
|
+
(the K-AA carve). Under `prefers-contrast: more` the screen blend is dropped
|
|
58
|
+
(the catch is decoration, the edge is the legibility asset). */
|
|
59
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
60
|
+
background-blend-mode: screen, normal;
|
|
61
|
+
}
|
|
62
|
+
@media (prefers-contrast: more) {
|
|
63
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
64
|
+
background-blend-mode: normal;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* ── BD.W-CARD-FIELD-FLOOR — the orphan-card static warm field underlayer ──
|
|
69
|
+
The §2 leg-(b) structural contract, card-local fallback. The COMMON case is
|
|
70
|
+
ancestor-supplied: the page mounts ONE global `[data-paper-field]` plane
|
|
71
|
+
(AppShell) behind every route, and the card composites over it. The ORPHAN
|
|
72
|
+
case is a card in an OCCLUDING context an ancestor field cannot reach (a
|
|
73
|
+
dialog / drawer / portal that paints its own opaque ground over the page
|
|
74
|
+
field) — there the card mounts its OWN cheap static warm underlayer so it is
|
|
75
|
+
NEVER gray-over-nothing wherever it is dropped.
|
|
76
|
+
|
|
77
|
+
MECHANISM — ONE static `radial-gradient` on the host `background-image`
|
|
78
|
+
longhand (the proven `.paper-grid` coexistence seam: a later
|
|
79
|
+
`background-image` COEXISTS with the glass tier's `background:` shorthand
|
|
80
|
+
fill — paints OVER the translucent color, UNDER content + UNDER both
|
|
81
|
+
pseudos, clipped to the host `border-radius` by construction). Zero JS, one
|
|
82
|
+
compositor-cached paint, PRM-static. The warm 0-alpha stops are explicit
|
|
83
|
+
`oklch(L C H / 0)` (NEVER bare `transparent` — the WebKit black-premultiply
|
|
84
|
+
hole, build-trap-(d)).
|
|
85
|
+
|
|
86
|
+
THE NO-DOUBLE-PAINT GATE (the presence-BEHIND check, NOT `closest()`): the
|
|
87
|
+
fallback paints ONLY when NO `[data-paper-field]` ancestor is present — `:where(
|
|
88
|
+
[data-paper-field]) &` switches it OFF under the global field, so a card over
|
|
89
|
+
the page field reads the page field (no local underlayer), and a 50-card grid
|
|
90
|
+
under ONE ancestor field is ONE field paint, not N. A `cartoon`/`opaque`
|
|
91
|
+
card already carries a defined edge + warm fill, so the orphan field is the
|
|
92
|
+
glass-surface case; `surface="glass"` only (the orphan glass card is the one
|
|
93
|
+
that reads gray-over-nothing). The `.paper-grid` document register is EXCLUDED
|
|
94
|
+
by selector (it sets its own grid `background-image` underlayer — a grid card
|
|
95
|
+
opts out of the warm-field fallback, not a `background-image: none` race). */
|
|
96
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
97
|
+
/* TWO static layers in ONE longhand (blended by the `background-blend-mode`
|
|
98
|
+
above — `screen, normal`): (1) the upper-right KEYED catch-light (warm,
|
|
99
|
+
`screen`-blended so it only LIFTS — the §3 catch), then (2) the warm cel
|
|
100
|
+
UNDERLAYER (one radial, amber-key toward the upper-right `--glass-key`,
|
|
101
|
+
the field fallback). Both fade to a warm 0-alpha — NEVER bare
|
|
102
|
+
`transparent` (the WebKit black-premultiply hole, build-trap-(d)). */
|
|
103
|
+
background-image:
|
|
104
|
+
radial-gradient(
|
|
105
|
+
60% 55% at 80% 16%,
|
|
106
|
+
oklch(0.96 0.04 78 / 0.5),
|
|
107
|
+
oklch(0.96 0.04 78 / 0) 72%
|
|
108
|
+
),
|
|
109
|
+
radial-gradient(
|
|
110
|
+
120% 110% at 78% 22%,
|
|
111
|
+
oklch(0.9 0.075 72 / 0.5),
|
|
112
|
+
oklch(0.9 0.075 72 / 0) 70%
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* The presence-behind gate — under an ancestor field, the card reads the REAL
|
|
117
|
+
field (the page plane transmits through the translucent fill), so the local
|
|
118
|
+
fallback is switched OFF (no double paint). A 50-card grid under ONE ancestor
|
|
119
|
+
field is ONE field paint, not N local underlayers. */
|
|
120
|
+
:where([data-paper-field])
|
|
121
|
+
[data-slot="card"][data-surface="glass"]:not(.paper-grid) {
|
|
122
|
+
background-image: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
9
125
|
/* Paper texture overlay */
|
|
10
126
|
.paper-texture {
|
|
11
127
|
background-image: var(--paper-clean-texture);
|
|
@@ -28,6 +144,18 @@
|
|
|
28
144
|
paper tier, exactly like `.paper-texture` / `cartoon-surface` /
|
|
29
145
|
`veil-surface`.
|
|
30
146
|
|
|
147
|
+
BC.W-GRID-SIMPLE — the card-interior pitch UNIFIES onto the ONE
|
|
148
|
+
`--grid-*` rhythm source: `--paper-grid-texture-size` now reads
|
|
149
|
+
`var(--grid-pitch)` (scale-paper.css), retiring the prior 32px literal so
|
|
150
|
+
the demo page grid + this card interior share ONE pitch (the
|
|
151
|
+
two-parallel-28px/32px-systems fix). This card-interior register keeps its
|
|
152
|
+
OWN quieter ambient strength (`--paper-grid-opacity`), DISTINCT from the
|
|
153
|
+
full-bleed page-bg 3%/11% tier — a card interior reads softer than a page
|
|
154
|
+
wash. It is a host `background-image` only — NO `backdrop-filter`/`filter`
|
|
155
|
+
on this element, so the grid lines are NEVER convolved into the "blurry
|
|
156
|
+
mess" the page grid suffered (the de-blur discipline: the grid is the
|
|
157
|
+
card's own underlay, not a crisp grid read THROUGH a blurred glass plate).
|
|
158
|
+
|
|
31
159
|
THE SEAM (the two-pseudo-budget reveal, recorded — the Triumvirate's
|
|
32
160
|
through-glass-read locate-the-seam, NOT a token-α loop): a glass tier
|
|
33
161
|
already claims BOTH pseudos — `::before` is the moving-specular catch-
|
|
@@ -95,6 +223,63 @@
|
|
|
95
223
|
}
|
|
96
224
|
}
|
|
97
225
|
|
|
226
|
+
/* ── Selection-card decoration (BC.W-SELECTION-CARD — the I5 selection card) ──────
|
|
227
|
+
The ONE new Atlas component, realized as a `<Card variant="selection">`
|
|
228
|
+
DECORATION (NOT a new SFC, NOT a new tier, NOT a new compositing seam). It
|
|
229
|
+
COMPOSES the two BUILT seams — the A-2 `--glass-accent` rim (glass/rim.css +
|
|
230
|
+
glass/material.css) + the A-3 `.metal-*-border` swept rim (utilities/metal.css)
|
|
231
|
+
— and authors ZERO competing rim/background recipe of its own. The rule is a
|
|
232
|
+
TOKEN-SUBSTITUTION on the base tier (the `.glass-opaque`/`.glass-deep` precedent):
|
|
233
|
+
it re-points the EXISTING `--glass-accent-strength` (+ an OPTIONAL sub-perceptual
|
|
234
|
+
floating-tier lift) locally; it does NOT declare a `background`/`border`.
|
|
235
|
+
|
|
236
|
+
THE RIM-NOT-FILL DISCIPLINE (the no-saturated-slab structural bar): selection is
|
|
237
|
+
read by (a) the metal rim (the `.metal-*-border` class Card composes when
|
|
238
|
+
`:selected`), (b) a BOUNDED accent-strength LIFT (unselected → selected, both ≤
|
|
239
|
+
the W-GLASS-ACCENT rim ceiling), and OPTIONALLY (c) a sub-perceptual
|
|
240
|
+
`--glass-bg-floating`-tier lift (the "selected reads as glass" register). The
|
|
241
|
+
plate STAYS warm-cream translucent — the BC.W-GLASS-IDENTITY floor is inviolate.
|
|
242
|
+
This rule NEVER writes `--glass-tint-source`/`--glass-tint-strength` (the A-2
|
|
243
|
+
distinct-axis fence — the accent is rim+glint DECORATION, not whole-plate
|
|
244
|
+
legibility) and NEVER paints a `--foreground`/`--primary`/`--surface-tint` opaque
|
|
245
|
+
plate FILL (the "selected = loud fill" anti-pattern is the disease-root the gate's
|
|
246
|
+
S3 bite reds).
|
|
247
|
+
|
|
248
|
+
THE ACCENT-STRENGTH LADDER (the bounded lift, two tokens a consumer retunes):
|
|
249
|
+
unselected → --selection-accent-strength (~16% — a calm rim glow)
|
|
250
|
+
selected → --selection-accent-strength-selected (~28% — brighter at the rim,
|
|
251
|
+
still ≤ the W-GLASS-ACCENT ceiling; the data hue reads stronger at
|
|
252
|
+
the rim/glint, NOT a flooded plate)
|
|
253
|
+
The host (Card.vue) writes `--glass-accent` (the HUE) per-instance off `data-hue`;
|
|
254
|
+
this rule supplies the STRENGTH so the calm/selected lift is ONE source. An UNSET
|
|
255
|
+
`data-hue` leaves `--glass-accent: transparent` (the @property default), so even
|
|
256
|
+
with the strength engaged the `color-mix(in oklab, X, transparent N%)` === X — the
|
|
257
|
+
A-2 no-op floor: a `variant="selection"` card with no `data-hue` is byte-identical
|
|
258
|
+
to a bare Card. A consumer may override `--glass-accent-strength` per-instance
|
|
259
|
+
(Card.vue's `data-hue-strength`); this rule is the default. */
|
|
260
|
+
[data-variant="selection"] {
|
|
261
|
+
/* The bounded accent-strength ladder — both ≤ the W-GLASS-ACCENT rim ceiling.
|
|
262
|
+
A consumer retunes the calm/selected pair from these two knobs. */
|
|
263
|
+
--selection-accent-strength: 16%;
|
|
264
|
+
--selection-accent-strength-selected: 28%;
|
|
265
|
+
/* Re-point the EXISTING accent-strength seam to the calm rung (the rim glow at
|
|
266
|
+
rest). At an unset `--glass-accent: transparent` this is a provable no-op. */
|
|
267
|
+
--glass-accent-strength: var(--selection-accent-strength);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
[data-variant="selection"][data-selected="true"] {
|
|
271
|
+
/* SELECTED — lift the accent-strength to the brighter (still-bounded) rung. The
|
|
272
|
+
brighter rim + the `.metal-*-border` Card composes are the selection read; the
|
|
273
|
+
plate is UNTOUCHED (no background/fill here — rim-not-fill). */
|
|
274
|
+
--glass-accent-strength: var(--selection-accent-strength-selected);
|
|
275
|
+
/* OPTIONAL sub-perceptual "selected reads as glass" lift — re-point the base
|
|
276
|
+
tier's resting fill toward the floating rung (the W-REGISTER-IOS tier), a
|
|
277
|
+
TOKEN re-point, NOT a `--surface-tint` gray plate, NEVER a `--foreground`
|
|
278
|
+
brand fill. The plate stays warm-cream translucent (the floating rung is the
|
|
279
|
+
SAME warm-cream material at a heavier rung, the BC.W-GLASS-IDENTITY ladder). */
|
|
280
|
+
--glass-bg-resting: var(--glass-bg-floating, var(--glass-bg-resting));
|
|
281
|
+
}
|
|
282
|
+
|
|
98
283
|
/* ── Cartoon surface decoration ───────────────────────────────────
|
|
99
284
|
The Memphis-sticker register. Composes ON TOP of a glass tier — it is
|
|
100
285
|
NOT itself a tier. The former `.glass-cartoon` recipe declared
|
|
@@ -113,13 +298,97 @@
|
|
|
113
298
|
a card surface that often hosts portaled content; `translate: 0` at rest
|
|
114
299
|
mints the stacking context once. Longhand maps `translate(x, y)` 1:1. */
|
|
115
300
|
translate: 0;
|
|
301
|
+
position: relative;
|
|
302
|
+
/* BD.W-CARTOON-CASTER — the LOUD register carries `--motion-weight: 1` in the
|
|
303
|
+
SAME recipe (the loud-register coupling: so the punch is never accidentally
|
|
304
|
+
muted to ~+13.6% by inheriting the rest 0.618 — the BD.W-CARTOON-PUNCH
|
|
305
|
+
loud-register guard's concrete pass-subject). The press ramp ALIASES the
|
|
306
|
+
existing `--card-press-t` (the host's `useLiquidPress` already drives it for
|
|
307
|
+
every `pressable` card) — NO second press var, NO Card press-driver rewrite. */
|
|
308
|
+
--motion-weight: 1;
|
|
309
|
+
--cartoon-press-t: var(--card-press-t, 0);
|
|
116
310
|
transition:
|
|
117
|
-
translate var(--duration-normal) var(--
|
|
311
|
+
translate var(--duration-normal) var(--ease-cartoon-punch),
|
|
312
|
+
scale var(--duration-normal) var(--ease-cartoon-punch),
|
|
118
313
|
box-shadow var(--duration-normal) var(--ease-standard);
|
|
119
314
|
|
|
120
|
-
|
|
315
|
+
/* BD.W-CARTOON-CASTER — the hover RE-POINTS the existing rule onto the punch
|
|
316
|
+
curve (was --spring-smooth) and guards `:not(:active)` so the press squash wins;
|
|
317
|
+
the object lifts a hair UP-RIGHT (toward the upper-right `--glass-key`) and the
|
|
318
|
+
cast deepens to the lg rung (the gap opens). ONE hover rule, no double-declare. */
|
|
319
|
+
&:hover:not(:active):not(:disabled) {
|
|
121
320
|
translate: var(--lift-sm) var(--lift-sm);
|
|
321
|
+
/* BD.W-CARD-CEL-MOTION (§5) — the cel lifts toward the light with a
|
|
322
|
+
sub-perceptual VOL-PRESERVING scale (X·Y ≈ 1: 1.015 × 0.985 ≈ 1.0): the
|
|
323
|
+
cel rising toward its sun reads as PEELING off the field, not a flat
|
|
324
|
+
sticker slide. Composes the existing `scale` transition (declared above)
|
|
325
|
+
on the punch curve. The press squash (`scale: 1.04 0.94`) wins via
|
|
326
|
+
`:not(:active)`. */
|
|
327
|
+
scale: 1.015 0.985;
|
|
122
328
|
box-shadow: var(--shadow-cartoon-lg);
|
|
329
|
+
& .cartoon-cast {
|
|
330
|
+
box-shadow: var(--shadow-cartoon-lg);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/* BD.W-CARTOON-CASTER — the press is a NON-uniform SQUASH (H5): widen X, compress
|
|
335
|
+
Y — real squash & stretch, NOT a uniform shrink. The CSS `:active` is the no-JS
|
|
336
|
+
floor; `useLiquidPress` drives `--card-press-t` 0→1 for the continuous
|
|
337
|
+
interruptible press the inert caster rides. */
|
|
338
|
+
&:active:not(:disabled) {
|
|
339
|
+
scale: 1.04 0.94;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* ── BD.W-CARTOON-CASTER — the inert-child moving cel cast ───────────────────────
|
|
344
|
+
The cast rides an INERT `<span class="cartoon-cast" aria-hidden>` child the Card
|
|
345
|
+
emits when `surface="cartoon"` — NOT a `::before`/`::after` pseudo (both are
|
|
346
|
+
OCCUPIED on the real glass carrier: `::before` is the moving-specular catch-light,
|
|
347
|
+
`::after` is the grain overlay; the H2 hardening). The child is a self-contained
|
|
348
|
+
ink-plate the body floats above: it carries the SAME shipped `--shadow-cartoon-md`
|
|
349
|
+
box-shadow (set ONCE per state-flip — NEVER animated, the §L7 paint-fence) and
|
|
350
|
+
MOVES on the compositor via `translate`/`scale` only.
|
|
351
|
+
|
|
352
|
+
The cast travels DOWN-LEFT (opposite the upper-right `--glass-key`, coherent with
|
|
353
|
+
the shadow.css cel-ink geometry) as the body lifts, and SPREADS as the gap opens.
|
|
354
|
+
ONE scalar drive: `--cartoon-press-t × --motion-weight` (the `:root` PRM carve
|
|
355
|
+
zeroes `--motion-weight` → travel/spread collapse to rest). It LAGS the body
|
|
356
|
+
(~1.15× slower transition) → the ink recoils LATE on release (follow-through /
|
|
357
|
+
overlapping action). The `--cartoon-cast-dx/dy` drag-track deltas are 0 at rest
|
|
358
|
+
(the opt-in `useCartoonCast` DOM bridge is future — labeled honestly). */
|
|
359
|
+
.cartoon-cast {
|
|
360
|
+
position: absolute;
|
|
361
|
+
inset: 0;
|
|
362
|
+
z-index: -1; /* behind the cel face, in front of the page */
|
|
363
|
+
border-radius: inherit;
|
|
364
|
+
pointer-events: none;
|
|
365
|
+
box-shadow: var(--shadow-cartoon-md);
|
|
366
|
+
/* the derived offset + spread — read `--motion-weight × --cartoon-press-t`. The
|
|
367
|
+
sign is DOWN-LEFT (negative X, positive Y) to match the upper-right key. */
|
|
368
|
+
--cast-travel: calc(6px * var(--motion-weight) * var(--cartoon-press-t));
|
|
369
|
+
--cast-spread: calc(1 + 0.18 * var(--motion-weight) * var(--cartoon-press-t));
|
|
370
|
+
translate:
|
|
371
|
+
calc(-1 * var(--cast-travel) + var(--cartoon-cast-dx))
|
|
372
|
+
calc(var(--cast-travel) + var(--cartoon-cast-dy));
|
|
373
|
+
scale: var(--cast-spread);
|
|
374
|
+
/* the caster LAGS the body (~1.15×) → the late ink recoil on release. */
|
|
375
|
+
transition:
|
|
376
|
+
translate calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
|
|
377
|
+
scale calc(var(--duration-normal) * 1.15) var(--ease-cartoon-punch),
|
|
378
|
+
--cartoon-cast-dx var(--duration-normal) var(--ease-cartoon-punch),
|
|
379
|
+
--cartoon-cast-dy var(--duration-normal) var(--ease-cartoon-punch);
|
|
380
|
+
will-change: translate, scale;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/* BD.W-CARTOON-CASTER — PRM/PRT carve. Under reduced-motion `--motion-weight: 0`
|
|
384
|
+
zeroes travel/spread/squash/lag in ONE assignment (every `calc(… * --motion-weight)`
|
|
385
|
+
collapses to rest); the transition is killed. The static bold cel STAMP persists
|
|
386
|
+
(identity/legibility — only the TRAVEL/PUNCH is removed). */
|
|
387
|
+
@media (prefers-reduced-motion: reduce) {
|
|
388
|
+
.cartoon-surface,
|
|
389
|
+
.cartoon-cast {
|
|
390
|
+
--motion-weight: 0;
|
|
391
|
+
transition: none;
|
|
123
392
|
}
|
|
124
393
|
}
|
|
125
394
|
|