@mkbabb/glass-ui 4.0.0 → 4.1.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/README.md +3 -1
- package/dist/CardAction-8whJrLWt.js +268 -0
- package/dist/{CommandShortcut-DdtWXxOK.js → CommandShortcut-D3yxgHNn.js} +25 -14
- package/dist/ConfiguratorRow-CaP7U3ZA.js +143 -0
- package/dist/ContextMenuContent-B3ZsheLV.js +90 -0
- package/dist/{ContextMenuSubContent-B0Vs6atR.js → ContextMenuSubContent-DDRID3qC.js} +28 -33
- package/dist/{DataTable-C464Zbqd.js → DataTable-Bc9kUtu_.js} +4 -4
- package/dist/{DialogContent-DDE6pQBU.js → DialogContent-6JtTB5x2.js} +11 -8
- package/dist/DialogFooter-9phqcRIS.js +80 -0
- package/dist/DialogScrollContent-TTuovQst.js +93 -0
- package/dist/{FadingScroll-DwNnvKMs.js → FadingScroll-DLRbH5Xr.js} +1 -1
- package/dist/HoverCardContent-Bel1gdLZ.js +88 -0
- package/dist/{HoverPopover-Dpzwvc4t.js → HoverPopover-BcIxvyqZ.js} +2 -2
- package/dist/{IconChip-BDw1j5mu.js → IconChip-DhbdGdFQ.js} +2 -1
- package/dist/{IconTooltip-DSjasZIt.js → IconTooltip-B0zimd2H.js} +1 -1
- package/dist/Input-Cg9DF62r.js +57 -0
- package/dist/{MetricBadge-BpC0R_Ec.js → MetricBadge-RHdBP72w.js} +1 -1
- package/dist/Notification-CphK7AAm.js +43 -0
- package/dist/NumberFieldContent-D8cXeyO4.js +140 -0
- package/dist/PagerDots-Cjx96la-.js +98 -0
- package/dist/{PopoverContent-BTorlp--.js → PopoverContent-DL7E6vJP.js} +4 -4
- package/dist/{Progress-hAT4gqGH.js → Progress-CnqB7gLm.js} +4 -4
- package/dist/{ScrollingText-CUVFTWk2.js → ScrollingText-CTZbA_cG.js} +2 -2
- package/dist/{SelectScrollDownButton-C1jb3b3K.js → SelectScrollDownButton-DAKCBEdW.js} +65 -61
- package/dist/{SelectSeparator-DK2y1Bun.js → SelectSeparator-C2UGOkXF.js} +1 -1
- package/dist/Separator-DQcwC2TR.js +44 -0
- package/dist/Switch-B8RscmRu.js +49 -0
- package/dist/Toaster-D9qIHjBI.js +274 -0
- package/dist/ToggleGroupItem-BLtr3TJq.js +170 -0
- package/dist/TooltipProvider-BJ_Y5EGX.js +109 -0
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +21 -33
- package/dist/api/types-extra.d.ts +37 -0
- package/dist/api.js +1 -1
- package/dist/aurora.js +1231 -260
- package/dist/badge.js +1 -1
- package/dist/border-progress.d.ts +1 -0
- package/dist/border-progress.js +98 -0
- package/dist/button-5dY1Dvhd.js +125 -0
- package/dist/button.js +1 -1
- package/dist/canvas.js +2 -3
- package/dist/card.js +2 -2
- package/dist/carousel.js +93 -110
- package/dist/collapsible.js +1 -1
- package/dist/color-Cs0-oxYL.js +116 -0
- package/dist/color.js +2 -2
- package/dist/command.js +1 -1
- package/dist/compile-nZ1xVYTp.js +19 -0
- 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/atoms-fields.d.ts +39 -0
- package/dist/components/custom/aurora/composables/auroraFallbackGround.d.ts +108 -0
- 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/runtime.d.ts +31 -0
- package/dist/components/custom/aurora/composables/uniformBridge.d.ts +5 -1
- package/dist/components/custom/aurora/composables/uniformBridgeWGPU.d.ts +60 -0
- package/dist/components/custom/aurora/composables/wgpuSetup.d.ts +37 -0
- package/dist/components/custom/aurora/constants/budget.d.ts +21 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +20 -2
- package/dist/components/custom/aurora/constants/renderMode.d.ts +77 -18
- 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 -0
- package/dist/components/custom/aurora/constants/shaders/oil-modes.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/constants/shaders/procedural-color.wgsl.d.ts +4 -0
- package/dist/components/custom/aurora/index.d.ts +2 -1
- package/dist/components/custom/border-progress/BorderProgress.vue.d.ts +46 -0
- package/dist/components/custom/border-progress/composables/spectrum-walk.d.ts +25 -0
- package/dist/components/custom/border-progress/composables/useBorderSpectrum.d.ts +18 -0
- package/dist/components/custom/border-progress/constants.d.ts +59 -0
- package/dist/components/custom/border-progress/index.d.ts +4 -0
- 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 +39 -0
- package/dist/components/custom/concentric/composables/concentricGLSetup.d.ts +18 -0
- package/dist/components/custom/concentric/composables/concentricWGPUSetup.d.ts +22 -0
- package/dist/components/custom/concentric/composables/ringField.d.ts +85 -0
- package/dist/components/custom/concentric/composables/uniformBridgeWGPU.d.ts +14 -0
- package/dist/components/custom/concentric/composables/useConcentric.d.ts +35 -0
- package/dist/components/custom/concentric/constants.d.ts +67 -0
- package/dist/components/custom/concentric/index.d.ts +5 -0
- package/dist/components/custom/concentric/shaders/concentric.glsl.d.ts +4 -0
- package/dist/components/custom/concentric/shaders/concentric.wgsl.d.ts +1 -0
- 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/DockIconButton.vue.d.ts +25 -4
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +10 -2
- package/dist/components/custom/dock/DockStack.vue.d.ts +65 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +4 -2
- package/dist/components/custom/dock/composables/dockMorphMeasure.d.ts +155 -0
- package/dist/components/custom/dock/composables/index.d.ts +2 -0
- package/dist/components/custom/dock/composables/useDockSearch.d.ts +85 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +11 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +13 -0
- package/dist/components/custom/dock/constants.d.ts +18 -14
- package/dist/components/custom/dock/index.d.ts +5 -2
- package/dist/components/custom/dot-flow-field/DotFlowField.vue.d.ts +42 -0
- package/dist/components/custom/dot-flow-field/composables/flowField.d.ts +83 -0
- package/dist/components/custom/dot-flow-field/composables/uniformBridgeWGPU.d.ts +39 -0
- package/dist/components/custom/dot-flow-field/composables/useDotFlowField.d.ts +35 -0
- package/dist/components/custom/dot-flow-field/composables/useFlowParticles.d.ts +31 -0
- package/dist/components/custom/dot-flow-field/constants.d.ts +69 -0
- package/dist/components/custom/dot-flow-field/index.d.ts +5 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.compute.wgsl.d.ts +1 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.glsl.d.ts +4 -0
- package/dist/components/custom/dot-flow-field/shaders/flow-field.render.wgsl.d.ts +1 -0
- 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 +52 -0
- package/dist/components/custom/dot-matrix/composables/useDotMatrix.d.ts +34 -0
- package/dist/components/custom/dot-matrix/composables/useDotSphere.d.ts +27 -0
- package/dist/components/custom/dot-matrix/constants.d.ts +58 -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/EasingConfigurator.vue.d.ts +33 -0
- package/dist/components/custom/easing/EasingPicker.vue.d.ts +49 -0
- package/dist/components/custom/easing/composables/useEasingPicker.d.ts +80 -0
- package/dist/components/custom/easing/constants.d.ts +28 -0
- package/dist/components/custom/easing/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +11 -0
- package/dist/components/custom/fourier-field/FourierField.vue.d.ts +43 -40
- package/dist/components/custom/fourier-field/composables/fourierFieldGLSetup.d.ts +15 -0
- package/dist/components/custom/fourier-field/composables/fourierFieldWGPUSetup.d.ts +20 -0
- package/dist/components/custom/fourier-field/composables/uniformBridgeWGPU.d.ts +41 -0
- package/dist/components/custom/fourier-field/composables/useFourierField.d.ts +42 -0
- package/dist/components/custom/fourier-field/constants.d.ts +64 -0
- 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/glass-panel/GlassPanel.vue.d.ts +1 -1
- package/dist/components/custom/goo-blob/GooBlob.vue.d.ts +13 -3
- package/dist/components/custom/goo-blob/composables/uniformBridgeWGPU.d.ts +24 -0
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +18 -11
- package/dist/components/custom/goo-blob/composables/wgpuSetup.d.ts +23 -0
- package/dist/components/custom/goo-blob/constants.d.ts +1 -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 -0
- package/dist/components/custom/goo-blob/types.d.ts +36 -0
- 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 +50 -0
- package/dist/components/custom/goo-dot-matrix/composables/uniformBridgeWGPU.d.ts +35 -0
- package/dist/components/custom/goo-dot-matrix/composables/useGooDotMatrix.d.ts +31 -0
- package/dist/components/custom/goo-dot-matrix/constants.d.ts +76 -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 +11 -0
- package/dist/components/custom/goo-dot-matrix/shaders/goo-dot.wgsl.d.ts +3 -0
- package/dist/components/custom/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/custom/icon-chip/types.d.ts +11 -1
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +3 -1
- 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/metric-stack/MetricStack.vue.d.ts +1 -1
- 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-grid/PaperGrid.vue.d.ts +42 -0
- package/dist/components/custom/paper-grid/composables/paperGrid.d.ts +90 -0
- package/dist/components/custom/paper-grid/composables/paperGridGLSetup.d.ts +16 -0
- package/dist/components/custom/paper-grid/composables/paperGridWGPUSetup.d.ts +19 -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 +57 -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/index.d.ts +2 -0
- package/dist/components/custom/selectable-chip/selectableChipVariants.d.ts +23 -0
- package/dist/components/custom/spa-view/SpaView.vue.d.ts +50 -0
- package/dist/components/custom/spa-view/index.d.ts +2 -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 +12 -0
- package/dist/components/custom/tabs/composables/useTabDragMorph.d.ts +42 -0
- package/dist/components/custom/tabs/constants.d.ts +20 -2
- package/dist/components/custom/watercolor-dot/WatercolorDot.vue.d.ts +30 -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/menuItemVariants.d.ts +1 -1
- package/dist/components/ui/_shared/useControlSize.d.ts +46 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/button/Button.vue.d.ts +5 -2
- package/dist/components/ui/button/index.d.ts +2 -2
- package/dist/components/ui/card/Card.vue.d.ts +79 -4
- package/dist/components/ui/card/CardHeader.vue.d.ts +42 -16
- package/dist/components/ui/card/ScrollCard.vue.d.ts +33 -0
- package/dist/components/ui/card/ScrollCardHeader.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +3 -1
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +2 -2
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +2 -2
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +2 -2
- package/dist/components/ui/command/Command.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/drawer/Drawer.vue.d.ts +46 -33
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +7 -8
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +2 -2
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +1 -1
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +2 -2
- package/dist/components/ui/drawer/composables/drawerSnapContext.d.ts +26 -0
- package/dist/components/ui/drawer/composables/useDrawerSnap.d.ts +17 -0
- package/dist/components/ui/drawer/constants.d.ts +45 -0
- package/dist/components/ui/drawer/index.d.ts +23 -15
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +4 -0
- package/dist/components/ui/focus-scope/FocusScope.vue.d.ts +20 -0
- package/dist/components/ui/focus-scope/index.d.ts +2 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +3 -0
- package/dist/components/ui/index.d.ts +1 -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/progress/ProgressDefault.vue.d.ts +3 -2
- package/dist/components/ui/select/SelectContent.vue.d.ts +4 -1
- package/dist/components/ui/sheet/index.d.ts +1 -1
- package/dist/components/ui/switch/Switch.vue.d.ts +2 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/ui/textarea/Textarea.vue.d.ts +3 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +5 -2
- package/dist/components/ui/toast/use-toast.d.ts +14 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- 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/glass/canvas2d/useCanvas2D.d.ts +13 -6
- package/dist/composables/glass/index.d.ts +5 -2
- package/dist/composables/glass/useSpecularPointer.d.ts +33 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +20 -0
- package/dist/composables/glass/useVizChoreography.d.ts +123 -0
- package/dist/composables/glass/vSpecular.d.ts +2 -0
- package/dist/composables/glass/webgl/createCanvasLifecycle.d.ts +10 -0
- package/dist/composables/glass/webgl/shaders/flow.glsl.d.ts +1 -0
- package/dist/composables/glass/webgl/shaders/flow.wgsl.d.ts +1 -0
- package/dist/composables/glass/webgl/useWebGLCanvas.d.ts +16 -0
- package/dist/composables/glass/webgpu/index.d.ts +2 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +75 -0
- package/dist/composables/glass/webgpu/useWebGPUCanvas.d.ts +85 -0
- package/dist/composables/glass/webgpu/webgpuDevice.d.ts +42 -0
- package/dist/composables/motion/core/index.d.ts +4 -0
- package/dist/composables/motion/index.d.ts +4 -0
- package/dist/composables/motion/scrollReader.d.ts +25 -0
- package/dist/composables/motion/springPresets.d.ts +20 -1
- package/dist/composables/motion/useCharStagger.d.ts +44 -0
- package/dist/composables/motion/useDockCtaReceive.d.ts +84 -0
- package/dist/composables/motion/useDragMorph.d.ts +77 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +11 -0
- package/dist/composables/motion/useLiquidPress.d.ts +71 -0
- package/dist/composables/motion/useLiquidReveal.d.ts +51 -0
- package/dist/composables/motion/useNumericTransition.d.ts +3 -3
- package/dist/composables/motion/usePointerVelocityField.d.ts +98 -0
- package/dist/composables/motion/useScrollChrome.d.ts +58 -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.d.ts +1 -0
- package/dist/concentric.js +836 -0
- package/dist/configurator.js +3 -2
- package/dist/confirm-dialog.js +62 -49
- package/dist/constellation.js +635 -235
- package/dist/context-menu.js +3 -3
- package/dist/controls.js +2 -2
- package/dist/createCanvasLifecycle-Gh45Ce-p.js +93 -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 +819 -568
- package/dist/{dockContext-Bu1Avy-a.js → dockContext-BNfyPLe9.js} +1 -1
- package/dist/dom.js +5 -5
- package/dist/dot-flow-field.d.ts +1 -0
- package/dist/dot-flow-field.js +894 -0
- package/dist/dot-matrix.d.ts +1 -0
- package/dist/dot-matrix.js +630 -0
- package/dist/dotMatrixField-D_x9_1qq.js +48 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +380 -0
- package/dist/{dropdown-menu-BJ7E9js_.js → dropdown-menu-aJmV5SqE.js} +82 -79
- package/dist/dropdown-menu.js +1 -1
- package/dist/easing.d.ts +1 -0
- package/dist/easing.js +475 -0
- package/dist/expandable-container.js +46 -21
- package/dist/fading-scroll.js +1 -1
- package/dist/flow.glsl-B2P7e0MT.js +4 -0
- package/dist/focus-scope.d.ts +1 -0
- package/dist/focus-scope.js +23 -0
- package/dist/forms.js +65 -63
- package/dist/fourier-field.js +831 -172
- 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 +187 -338
- package/dist/goo-blob.js +241 -692
- package/dist/goo-dot-matrix.d.ts +1 -0
- package/dist/goo-dot-matrix.js +591 -0
- package/dist/handmark.js +2 -2
- 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 +3 -1
- 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 +14 -9
- package/dist/motion-core.js +58 -36
- package/dist/motion-curves.js +11 -1
- package/dist/motion.js +90 -53
- 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 +788 -0
- package/dist/popover.js +1 -1
- package/dist/{presets-BW2b-fr1.js → presets-CvOUqtdY.js} +3 -3
- package/dist/{compile-EXXzEr1q.js → procedural-color.wgsl-m7Zgv35j.js} +2 -156
- package/dist/progress.js +1 -1
- package/dist/pulse.js +2 -2
- package/dist/reactive.js +1 -1
- package/dist/resolveCanvasColor-yPyIpJt9.js +93 -0
- package/dist/scrollReader-DI1NWxUw.js +42 -0
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +162 -308
- package/dist/select.js +3 -3
- package/dist/selectable-chip.d.ts +1 -0
- package/dist/selectable-chip.js +65 -0
- package/dist/separator.js +1 -1
- package/dist/{sheet-CquRYOAw.js → sheet-B2flBfLH.js} +5 -5
- package/dist/sheet.js +1 -1
- package/dist/sidebar.js +216 -114
- package/dist/{slider-DQ95MET2.js → slider-2A0rPn79.js} +3 -3
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/spa-view.d.ts +1 -0
- package/dist/spa-view.js +46 -0
- package/dist/spectrum-walk-BVzA7Biz.js +33 -0
- package/dist/{springPresets-WXaLbu8u.js → springPresets-Ce7OYCm9.js} +12 -6
- package/dist/styles/animations.css +46 -12
- package/dist/styles/border-progress.css +109 -0
- package/dist/styles/cards.css +145 -0
- package/dist/styles/completion-seal.css +131 -0
- package/dist/styles/components.css +2 -3
- package/dist/styles/configurator.css +55 -0
- package/dist/styles/critical-partition.mjs +162 -0
- package/dist/styles/critical.css +12 -0
- package/dist/styles/deferred.css +33 -0
- package/dist/styles/dock/cta-seat.css +87 -0
- package/dist/styles/dock/density.css +198 -0
- package/dist/styles/dock/layers.css +101 -29
- package/dist/styles/dock/morph-bridge.css +54 -18
- package/dist/styles/dock/morph.css +132 -7
- package/dist/styles/dock/overflow.css +28 -2
- package/dist/styles/dock/search.css +68 -0
- package/dist/styles/dock/shape.css +124 -0
- package/dist/styles/dock/shell.css +77 -21
- package/dist/styles/dock/stack-rail.css +264 -0
- package/dist/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/dist/styles/dock-controls/icon-button.css +14 -0
- package/dist/styles/dock.css +43 -1
- package/dist/styles/drawer.css +81 -35
- package/dist/styles/glass/accent-tone.css +66 -0
- package/dist/styles/glass/control-surfaces.css +167 -0
- package/dist/styles/glass/deep.css +44 -0
- package/dist/styles/glass/ladder.css +147 -41
- package/dist/styles/glass/material.css +78 -15
- package/dist/styles/glass/reveal.css +136 -0
- package/dist/styles/glass/rim.css +110 -0
- package/dist/styles/glass/surfaces.css +148 -129
- package/dist/styles/glass-refract.css +96 -44
- package/dist/styles/glass-specular-track.css +7 -0
- package/dist/styles/glass.css +13 -0
- package/dist/styles/hover-popover.css +7 -6
- package/dist/styles/icon-chip.css +77 -15
- package/dist/styles/index.css +36 -9
- package/dist/styles/instrument-chassis.css +66 -3
- package/dist/styles/scroll-choreography.css +300 -0
- package/dist/styles/scroll-chrome.css +123 -0
- package/dist/styles/scroll-driven.css +38 -0
- package/dist/styles/segmented-tabs.css +81 -14
- package/dist/styles/theme/bridges.css +33 -0
- package/dist/styles/theme/literals.css +11 -2
- package/dist/styles/theme/radius.css +24 -2
- package/dist/styles/tokens/color-radius.css +13 -3
- package/dist/styles/tokens/dark-arm.css +137 -32
- package/dist/styles/tokens/glass-deep.css +100 -0
- package/dist/styles/tokens/glass-fx.css +376 -0
- package/dist/styles/tokens/glass.css +131 -351
- package/dist/styles/tokens/light-dark.css +16 -3
- package/dist/styles/tokens/offsets.css +143 -0
- package/dist/styles/tokens/on-glass-fg.css +39 -0
- package/dist/styles/tokens/property-regs.css +260 -0
- package/dist/styles/tokens/scale-paper.css +168 -96
- package/dist/styles/tokens/scheme-motion.css +114 -38
- package/dist/styles/tokens/scroll-tokens.css +123 -0
- package/dist/styles/tokens/sizing-config.css +110 -0
- package/{src/styles/tokens/offsets-sizing.css → dist/styles/tokens/sizing.css} +92 -204
- package/dist/styles/tokens.css +14 -3
- package/dist/styles/typography/semantic.css +26 -13
- package/dist/styles/typography/utilities.css +22 -7
- package/dist/styles/utilities/a11y-overrides.css +20 -5
- package/dist/styles/utilities/animate.css +27 -24
- package/dist/styles/utilities/base-misc.css +307 -0
- package/dist/styles/utilities/base.css +47 -261
- package/dist/styles/utilities/btn.css +17 -4
- package/dist/styles/utilities/components.css +31 -6
- package/dist/styles/utilities/metal.css +215 -0
- package/dist/styles/utilities.css +14 -7
- package/dist/switch.js +1 -1
- package/dist/tabs.js +220 -107
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/toggle-chip.js +10 -10
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +2 -2
- package/dist/uniformBridgeWGPU-CtAKl45L.js +1204 -0
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-CLrxicG9.js} +1 -1
- package/dist/useConfiguratorState-4xblKfwd.js +162 -0
- package/dist/useControlSize-SH1UmJCi.js +9 -0
- package/dist/useDockCtaReceive-DfFkmgL1.js +82 -0
- package/dist/useDragMorph-BUgAC-zK.js +102 -0
- package/dist/useFuzzySearch-DIhcYtcw.js +177 -0
- package/dist/useGpuSubstrate-4pTcp6mX.js +294 -0
- package/dist/useLiquidPress-BooG97RY.js +39 -0
- package/dist/usePointerVelocityField-QLsy3_kv.js +91 -0
- package/dist/useScrollChrome-D66AVP7C.js +258 -0
- package/dist/useSpring-C0jyvEJB.js +40 -0
- package/dist/useSpringMount-BWDnKIwh.js +71 -0
- package/dist/useSpringPress-B1-Czp-V.js +36 -0
- package/dist/{useTouchGate-28Tk2-t2.js → useTouchGate-CBZTD4SD.js} +1 -1
- package/dist/useViewTransition-CUI1nAgn.js +95 -0
- package/dist/vSpecular-EX7loENl.js +68 -0
- package/dist/vendor-B2qOlYY3.js +239 -0
- package/dist/virtual.d.ts +1 -0
- package/dist/virtual.js +225 -0
- package/dist/watercolor-dot.js +117 -74
- package/package.json +252 -28
- package/src/styles/animations.css +46 -12
- package/src/styles/border-progress.css +109 -0
- package/src/styles/cards.css +145 -0
- package/src/styles/completion-seal.css +131 -0
- package/src/styles/configurator.css +55 -0
- package/src/styles/critical-partition.mjs +162 -0
- package/src/styles/dock/cta-seat.css +87 -0
- package/src/styles/dock/density.css +198 -0
- package/src/styles/dock/layers.css +101 -29
- package/src/styles/dock/morph-bridge.css +54 -18
- package/src/styles/dock/morph.css +132 -7
- package/src/styles/dock/overflow.css +28 -2
- package/src/styles/dock/search.css +68 -0
- package/src/styles/dock/shape.css +124 -0
- package/src/styles/dock/shell.css +77 -21
- package/src/styles/dock/stack-rail.css +264 -0
- package/src/styles/dock-controls/dark-mode-toggle.css +17 -4
- package/src/styles/dock-controls/icon-button.css +14 -0
- package/src/styles/dock.css +43 -1
- package/src/styles/drawer.css +81 -35
- package/src/styles/glass/accent-tone.css +66 -0
- package/src/styles/glass/control-surfaces.css +167 -0
- package/src/styles/glass/deep.css +44 -0
- package/src/styles/glass/ladder.css +147 -41
- package/src/styles/glass/material.css +78 -15
- package/src/styles/glass/reveal.css +136 -0
- package/src/styles/glass/rim.css +110 -0
- package/src/styles/glass/surfaces.css +148 -129
- package/src/styles/glass-refract.css +96 -44
- package/src/styles/glass-specular-track.css +7 -0
- package/src/styles/glass.css +13 -0
- package/src/styles/hover-popover.css +7 -6
- package/src/styles/icon-chip.css +77 -15
- package/src/styles/index.css +27 -0
- package/src/styles/instrument-chassis.css +66 -3
- package/src/styles/scroll-choreography.css +300 -0
- package/src/styles/scroll-chrome.css +123 -0
- package/src/styles/scroll-driven.css +38 -0
- package/src/styles/segmented-tabs.css +81 -14
- package/src/styles/theme/bridges.css +33 -0
- package/src/styles/theme/literals.css +11 -2
- package/src/styles/theme/radius.css +24 -2
- package/src/styles/tokens/color-radius.css +13 -3
- package/src/styles/tokens/dark-arm.css +137 -32
- package/src/styles/tokens/glass-deep.css +100 -0
- package/src/styles/tokens/glass-fx.css +376 -0
- package/src/styles/tokens/glass.css +131 -351
- package/src/styles/tokens/light-dark.css +16 -3
- package/src/styles/tokens/offsets.css +143 -0
- package/src/styles/tokens/on-glass-fg.css +39 -0
- package/src/styles/tokens/property-regs.css +260 -0
- package/src/styles/tokens/scale-paper.css +168 -96
- package/src/styles/tokens/scheme-motion.css +114 -38
- package/src/styles/tokens/scroll-tokens.css +123 -0
- package/src/styles/tokens/sizing-config.css +110 -0
- package/{dist/styles/tokens/offsets-sizing.css → src/styles/tokens/sizing.css} +92 -204
- package/src/styles/tokens.css +14 -3
- package/src/styles/typography/semantic.css +26 -13
- package/src/styles/typography/utilities.css +22 -7
- package/src/styles/utilities/a11y-overrides.css +20 -5
- package/src/styles/utilities/animate.css +27 -24
- package/src/styles/utilities/base-misc.css +307 -0
- package/src/styles/utilities/base.css +47 -261
- package/src/styles/utilities/btn.css +17 -4
- package/src/styles/utilities/components.css +31 -6
- package/src/styles/utilities/metal.css +215 -0
- package/src/styles/utilities.css +14 -7
- package/dist/CardAction-XH4YBVEK.js +0 -158
- package/dist/ContextMenuContent-ON3x7cuk.js +0 -85
- package/dist/DialogFooter-8eZbdmPc.js +0 -165
- package/dist/HoverCardContent-DkMaQzH5.js +0 -83
- package/dist/Input-DVG_J0ne.js +0 -55
- package/dist/Notification-DKjKsQq8.js +0 -100
- package/dist/NumberFieldContent-1VtwDSgf.js +0 -145
- package/dist/Separator-BArl4OaB.js +0 -37
- package/dist/Switch-Dr--uLGH.js +0 -47
- package/dist/Toaster-Bm_HQSpc.js +0 -263
- package/dist/ToggleGroupItem-Dzk9hWsF.js +0 -157
- package/dist/TooltipProvider-B3MkB_8P.js +0 -104
- package/dist/button-BNDWhAZb.js +0 -81
- package/dist/check-njhk-vfu.js +0 -7
- package/dist/chevron-down-DKkxb4VV.js +0 -7
- package/dist/chevron-right-CPXbqQQz.js +0 -7
- package/dist/chevron-up-n_24SqI-.js +0 -7
- package/dist/color-DweYl7pE.js +0 -86
- 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/createLucideIcon-DydS2qgk.js +0 -43
- package/dist/minimize-2-BV31Ob_h.js +0 -38
- package/dist/resolveCanvasColor-BBiYfp8g.js +0 -11
- package/dist/search-BSGrf2Sk.js +0 -12
- package/dist/styles/dock/rail-extend.css +0 -397
- package/dist/useCanvas2D-ClrQuZtp.js +0 -96
- package/dist/useConfiguratorState-kiIlun8I.js +0 -303
- package/dist/useRAFLoop-CdwJ7284.js +0 -109
- package/dist/useSpecularTracking-Bo5su68i.js +0 -32
- package/dist/useSpringMount-CvopqiFr.js +0 -108
- package/dist/useViewTransition-COsPjQVZ.js +0 -47
- package/dist/x-BUwTKe50.js +0 -10
- package/src/styles/dock/rail-extend.css +0 -397
- /package/dist/{CollapsibleContent-C_s6fG7r.js → CollapsibleContent-68dEXIAl.js} +0 -0
- /package/dist/{InstrumentChassis-UUJX0-mW.js → InstrumentChassis-CxsHSyMj.js} +0 -0
- /package/dist/{Label-Ck9SWEKM.js → Label-C2ejNWeC.js} +0 -0
- /package/dist/{ModalOverlay-CkPRRgl_.js → ModalOverlay-D1VrWyoi.js} +0 -0
- /package/dist/{PaperBackdrop-nBKe0vkB.js → PaperBackdrop-CqwjnfLv.js} +0 -0
- /package/dist/{SelectGroup-Dcczq44n.js → SelectGroup-BFiod7X2.js} +0 -0
- /package/dist/{_plugin-vue_export-helper-CBt_VvXa.js → _plugin-vue_export-helper-C1je1s0u.js} +0 -0
- /package/dist/{badge-UILT_3pZ.js → badge-D9XWW4GT.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants--C2DkLW8.js} +0 -0
- /package/dist/{createContext-B2RaZ-b8.js → createContext-CpBNTRMI.js} +0 -0
- /package/dist/{math-DeuJwLFx.js → math-Eb0w3LqU.js} +0 -0
- /package/dist/{menuItemVariants-DWRQXBxJ.js → menuItemVariants-D8VNHq22.js} +0 -0
- /package/dist/{prng-Cg22zv8g.js → prng-B-d9eYX8.js} +0 -0
- /package/dist/{useGlobalDark-C28t0VWJ.js → useGlobalDark-CmjB9E32.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Dbozzjgm.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-BPRp33Im.js} +0 -0
- /package/dist/{useLiquidFlex-C12hXwOZ.js → useLiquidFlex-UmA6LMZu.js} +0 -0
- /package/dist/{useResizeObserver-V6nq5gJb.js → useResizeObserver-Bpoi7tRE.js} +0 -0
- /package/dist/{useResolveTokenColor-NUG2zYAW.js → useResolveTokenColor-vAylyR0x.js} +0 -0
- /package/dist/{useScrollProgress-D7bYU2RK.js → useScrollProgress-c3yxmH6a.js} +0 -0
- /package/dist/{useSurfaceAxis-CMnF2zHb.js → useSurfaceAxis-g0NloYEF.js} +0 -0
- /package/dist/{useTimer-B_PAasDL.js → useTimer-BHJOKr35.js} +0 -0
- /package/dist/{useUserInvalidAria-CDfJuakL.js → useUserInvalidAria-y5namzeE.js} +0 -0
- /package/dist/{useViewportReady-CvBcCYDf.js → useViewportReady-anbac3m6.js} +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/* BB.W-BORDER-PROGRESS — progress IS the element's border.
|
|
2
|
+
*
|
|
3
|
+
* The masked-conic ring consumption (the registration lives in
|
|
4
|
+
* tokens/property-regs.css §18, mirroring the specular split: the @property reg
|
|
5
|
+
* there, the consumption here). The ring paints a `conic-gradient` MASK-COMPOSITED
|
|
6
|
+
* into the border band so ONLY the band paints AND it FOLLOWS the host
|
|
7
|
+
* `border-radius` — a `border-image` SQUARES the corners (measured inferior,
|
|
8
|
+
* forbidden), a floating-bar child re-introduces allocation (forbidden). The host
|
|
9
|
+
* INTERIOR is untouched: a glass card still transmits the backdrop THROUGH its
|
|
10
|
+
* content box (the AX.W54 glass-first identity — the ring is a border-band cut-out,
|
|
11
|
+
* not an opaque overlay).
|
|
12
|
+
*
|
|
13
|
+
* Compositor-only: the sweep rides the registered `--border-progress-fill`
|
|
14
|
+
* <percentage>; no layout property animates (`proof:no-layout-animation`). The
|
|
15
|
+
* unregistered fallback is safe (the `initial-value` paints the resting ring; the
|
|
16
|
+
* cross-fade collapses to it on a non-supporting engine — Chromium 85+/Safari
|
|
17
|
+
* 16.4+, within the deployment floor). */
|
|
18
|
+
|
|
19
|
+
.border-progress {
|
|
20
|
+
position: relative;
|
|
21
|
+
display: block;
|
|
22
|
+
border-radius: var(--border-progress-radius, 16px);
|
|
23
|
+
/* The host reserves the border band the ring paints into (allocation-free —
|
|
24
|
+
the content box is untouched, no reflow). */
|
|
25
|
+
padding: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* The ring layer — inset over the host, the border band the conic paints into.
|
|
29
|
+
The `border` width IS the band thickness; the conic is mask-composited so the
|
|
30
|
+
padding-box (interior) is EXCLUDED from the border-box (the radius-following
|
|
31
|
+
cut-out). */
|
|
32
|
+
.border-progress__ring {
|
|
33
|
+
position: absolute;
|
|
34
|
+
inset: 0;
|
|
35
|
+
border-radius: inherit;
|
|
36
|
+
border: var(--border-progress-width, 12px) solid transparent;
|
|
37
|
+
pointer-events: none;
|
|
38
|
+
/* The spectrum conic, swept to --border-progress-fill. The colored arc runs
|
|
39
|
+
from the top (12 o'clock) clockwise to the fill fraction; past it is
|
|
40
|
+
transparent so the resting band shows ONLY the filled spectrum. */
|
|
41
|
+
background:
|
|
42
|
+
conic-gradient(
|
|
43
|
+
from 0deg,
|
|
44
|
+
var(--border-progress-spectrum, var(--section-color-7)),
|
|
45
|
+
transparent var(--border-progress-fill, 0%),
|
|
46
|
+
transparent 100%
|
|
47
|
+
);
|
|
48
|
+
/* THE RADIUS-FOLLOWING CUT-OUT — the house border-ring idiom: paint a
|
|
49
|
+
border-box fill, EXCLUDE a padding-box fill, leaving only the border band,
|
|
50
|
+
which follows `border-radius` exactly (a border-image cannot). */
|
|
51
|
+
-webkit-mask:
|
|
52
|
+
linear-gradient(#fff 0 0) padding-box,
|
|
53
|
+
linear-gradient(#fff 0 0) border-box;
|
|
54
|
+
-webkit-mask-composite: xor;
|
|
55
|
+
mask:
|
|
56
|
+
linear-gradient(#fff 0 0) padding-box,
|
|
57
|
+
linear-gradient(#fff 0 0) border-box;
|
|
58
|
+
mask-composite: exclude;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* THE COVERAGE AXIS — ONE conic-mask mechanism, two coverage masks (NOT a second
|
|
62
|
+
recipe). `bottom-edge` adds a SECOND mask layer scoping the painted band to the
|
|
63
|
+
bottom edge only; it composes WITH the border-band cut-out above (the mask
|
|
64
|
+
stack intersects), so the bottom register reuses the exact conic + radius
|
|
65
|
+
cut-out — the dock-orientation `dim`-idiom discipline (no parallel fork). */
|
|
66
|
+
.border-progress[data-coverage="bottom-edge"] .border-progress__ring {
|
|
67
|
+
-webkit-mask:
|
|
68
|
+
linear-gradient(#fff 0 0) padding-box,
|
|
69
|
+
linear-gradient(#fff 0 0) border-box,
|
|
70
|
+
linear-gradient(to top, #fff 0, #fff var(--border-progress-width, 12px), transparent var(--border-progress-width, 12px));
|
|
71
|
+
-webkit-mask-composite: xor, source-in;
|
|
72
|
+
mask:
|
|
73
|
+
linear-gradient(#fff 0 0) padding-box,
|
|
74
|
+
linear-gradient(#fff 0 0) border-box,
|
|
75
|
+
linear-gradient(to top, #fff 0, #fff var(--border-progress-width, 12px), transparent var(--border-progress-width, 12px));
|
|
76
|
+
mask-composite: exclude, intersect;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* The content box — the host's own surface (a glass card, a chassis). It is
|
|
80
|
+
untouched by the ring (backdrop-intact); the ring sits over the border band
|
|
81
|
+
only. */
|
|
82
|
+
.border-progress__content {
|
|
83
|
+
position: relative;
|
|
84
|
+
z-index: 1;
|
|
85
|
+
border-radius: inherit;
|
|
86
|
+
height: 100%;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* THE MILESTONE PULSE — a brief brightness bloom on a crossed phase edge. The
|
|
90
|
+
pulse is PRM-gated (no edge-pulse under reduced motion — the ring snaps to the
|
|
91
|
+
new value). Compositor-only (filter brightness, never a layout property). */
|
|
92
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
93
|
+
.border-progress[data-milestone] .border-progress__ring {
|
|
94
|
+
animation: border-progress-milestone-pulse
|
|
95
|
+
var(--spring-snappy-duration, 0.34s) var(--ease-out, ease-out);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@keyframes border-progress-milestone-pulse {
|
|
100
|
+
0% {
|
|
101
|
+
filter: brightness(1);
|
|
102
|
+
}
|
|
103
|
+
40% {
|
|
104
|
+
filter: brightness(1.35);
|
|
105
|
+
}
|
|
106
|
+
100% {
|
|
107
|
+
filter: brightness(1);
|
|
108
|
+
}
|
|
109
|
+
}
|
package/src/styles/cards.css
CHANGED
|
@@ -17,6 +17,151 @@
|
|
|
17
17
|
:where(.dark) .paper-texture {
|
|
18
18
|
background-blend-mode: screen;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
/* BB.W-PAPER-GRID-TEXTURE — the GEOMETRIC sibling of `.paper-texture`.
|
|
22
|
+
Paints the two-frequency `--paper-grid-texture` engineering-grid as a
|
|
23
|
+
card's INTERIOR ground, clipped to the plate's own `border-radius`
|
|
24
|
+
automatically (a host `background-image`), so the math/grid brand pillar
|
|
25
|
+
reads THROUGH a document-register card at the ambient `--paper-grid-
|
|
26
|
+
opacity` — not only in the page margin an opaque plate occludes. A
|
|
27
|
+
decoration-only register (NOT a tier): it composes ON TOP of any glass/
|
|
28
|
+
paper tier, exactly like `.paper-texture` / `cartoon-surface` /
|
|
29
|
+
`veil-surface`.
|
|
30
|
+
|
|
31
|
+
BC.W-GRID-SIMPLE — the card-interior pitch UNIFIES onto the ONE
|
|
32
|
+
`--grid-*` rhythm source: `--paper-grid-texture-size` now reads
|
|
33
|
+
`var(--grid-pitch)` (scale-paper.css), retiring the prior 32px literal so
|
|
34
|
+
the demo page grid + this card interior share ONE pitch (the
|
|
35
|
+
two-parallel-28px/32px-systems fix). This card-interior register keeps its
|
|
36
|
+
OWN quieter ambient strength (`--paper-grid-opacity`), DISTINCT from the
|
|
37
|
+
full-bleed page-bg 3%/11% tier — a card interior reads softer than a page
|
|
38
|
+
wash. It is a host `background-image` only — NO `backdrop-filter`/`filter`
|
|
39
|
+
on this element, so the grid lines are NEVER convolved into the "blurry
|
|
40
|
+
mess" the page grid suffered (the de-blur discipline: the grid is the
|
|
41
|
+
card's own underlay, not a crisp grid read THROUGH a blurred glass plate).
|
|
42
|
+
|
|
43
|
+
THE SEAM (the two-pseudo-budget reveal, recorded — the Triumvirate's
|
|
44
|
+
through-glass-read locate-the-seam, NOT a token-α loop): a glass tier
|
|
45
|
+
already claims BOTH pseudos — `::before` is the moving-specular catch-
|
|
46
|
+
light (glass/material.css) and `::after` is the grain overlay
|
|
47
|
+
(glass/ladder.css). A `.paper-grid::after` would CLOBBER the grain's
|
|
48
|
+
`background-image` on the SAME single pseudo — so the grid + grain could
|
|
49
|
+
not compose (the orthogonality the spec requires). The grid therefore
|
|
50
|
+
rides the HOST element's `background-image` longhand: the glass tier's
|
|
51
|
+
`background:` SHORTHAND sets the translucent fill `background-color`, and
|
|
52
|
+
a later `background-image` longhand COEXISTS with that color (the image
|
|
53
|
+
paints OVER the color, UNDER the content + UNDER both pseudos), so the
|
|
54
|
+
grid is the card's own underlay felt THROUGH the glass tint with ZERO
|
|
55
|
+
pseudo contention — grain (`::after`) + specular (`::before`) + grid
|
|
56
|
+
(host bg-image) all paint at once. The host bg-image is clipped by the
|
|
57
|
+
host `border-radius` by construction (no `border-radius: inherit` pseudo
|
|
58
|
+
needed). A STATIC raster — gradient-stack `background-image`, one
|
|
59
|
+
compositor-cached paint, no per-frame repaint (the W6 paint-path
|
|
60
|
+
discipline). The ambient strength lives in the line-ink alpha (the
|
|
61
|
+
`--paper-grid-opacity`-scaled `--foreground` mix, scale-paper.css) since
|
|
62
|
+
a host bg-image has no independent layer-opacity — so ONE knob
|
|
63
|
+
(`--paper-grid-opacity`) still tunes the through-card strength. */
|
|
64
|
+
.paper-grid {
|
|
65
|
+
background-image: var(--paper-grid-texture);
|
|
66
|
+
background-repeat: repeat;
|
|
67
|
+
background-size:
|
|
68
|
+
calc(var(--paper-grid-texture-size) * 4)
|
|
69
|
+
calc(var(--paper-grid-texture-size) * 4),
|
|
70
|
+
calc(var(--paper-grid-texture-size) * 4)
|
|
71
|
+
calc(var(--paper-grid-texture-size) * 4),
|
|
72
|
+
var(--paper-grid-texture-size) var(--paper-grid-texture-size),
|
|
73
|
+
var(--paper-grid-texture-size) var(--paper-grid-texture-size);
|
|
74
|
+
background-blend-mode: multiply;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* The scheme-aware dark arm — PLAIN-ancestor `.dark` (NOT a scoped
|
|
78
|
+
`:global()`; the recurring scoped-global-drop trap, recorded; this is a
|
|
79
|
+
library CSS partial, but the discipline holds). The line ink is
|
|
80
|
+
`--foreground`-derived, so the warm-cream foreground flips dark→light in
|
|
81
|
+
the `.dark` block and the grid ink auto-lifts off the near-black `--card`
|
|
82
|
+
interior with NO parallel `--paper-grid-*-dark` family — only the BLEND
|
|
83
|
+
flips (light `multiply` → dark `screen`, the legible-on-dark equivalent
|
|
84
|
+
the `.paper-texture` dark arm uses). */
|
|
85
|
+
:where(.dark) .paper-grid,
|
|
86
|
+
.dark .paper-grid {
|
|
87
|
+
background-blend-mode: screen;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ═══════════════════════════════════════════════
|
|
92
|
+
A11y — the geometric grid honors the SAME transparency idiom the organic
|
|
93
|
+
paper register establishes (paper.css). A reduced-transparency user gets a
|
|
94
|
+
clean card interior, no texture; the static grid needs no motion gate (the
|
|
95
|
+
PRM block guards a future drift only). One a11y idiom, not a grid-local fork.
|
|
96
|
+
═══════════════════════════════════════════════ */
|
|
97
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
98
|
+
.paper-grid {
|
|
99
|
+
background-image: none;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@media (prefers-reduced-motion: reduce) {
|
|
104
|
+
.paper-grid {
|
|
105
|
+
/* Static raster at rest; guard a future `@property` transform drift. */
|
|
106
|
+
animation: none !important;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* ── Selection-card decoration (BC.W-SELECTION-CARD — the I5 selection card) ──────
|
|
111
|
+
The ONE new Atlas component, realized as a `<Card variant="selection">`
|
|
112
|
+
DECORATION (NOT a new SFC, NOT a new tier, NOT a new compositing seam). It
|
|
113
|
+
COMPOSES the two BUILT seams — the A-2 `--glass-accent` rim (glass/rim.css +
|
|
114
|
+
glass/material.css) + the A-3 `.metal-*-border` swept rim (utilities/metal.css)
|
|
115
|
+
— and authors ZERO competing rim/background recipe of its own. The rule is a
|
|
116
|
+
TOKEN-SUBSTITUTION on the base tier (the `.glass-opaque`/`.glass-deep` precedent):
|
|
117
|
+
it re-points the EXISTING `--glass-accent-strength` (+ an OPTIONAL sub-perceptual
|
|
118
|
+
floating-tier lift) locally; it does NOT declare a `background`/`border`.
|
|
119
|
+
|
|
120
|
+
THE RIM-NOT-FILL DISCIPLINE (the no-saturated-slab structural bar): selection is
|
|
121
|
+
read by (a) the metal rim (the `.metal-*-border` class Card composes when
|
|
122
|
+
`:selected`), (b) a BOUNDED accent-strength LIFT (unselected → selected, both ≤
|
|
123
|
+
the W-GLASS-ACCENT rim ceiling), and OPTIONALLY (c) a sub-perceptual
|
|
124
|
+
`--glass-bg-floating`-tier lift (the "selected reads as glass" register). The
|
|
125
|
+
plate STAYS warm-cream translucent — the BC.W-GLASS-IDENTITY floor is inviolate.
|
|
126
|
+
This rule NEVER writes `--glass-tint-source`/`--glass-tint-strength` (the A-2
|
|
127
|
+
distinct-axis fence — the accent is rim+glint DECORATION, not whole-plate
|
|
128
|
+
legibility) and NEVER paints a `--foreground`/`--primary`/`--surface-tint` opaque
|
|
129
|
+
plate FILL (the "selected = loud fill" anti-pattern is the disease-root the gate's
|
|
130
|
+
S3 bite reds).
|
|
131
|
+
|
|
132
|
+
THE ACCENT-STRENGTH LADDER (the bounded lift, two tokens a consumer retunes):
|
|
133
|
+
unselected → --selection-accent-strength (~16% — a calm rim glow)
|
|
134
|
+
selected → --selection-accent-strength-selected (~28% — brighter at the rim,
|
|
135
|
+
still ≤ the W-GLASS-ACCENT ceiling; the data hue reads stronger at
|
|
136
|
+
the rim/glint, NOT a flooded plate)
|
|
137
|
+
The host (Card.vue) writes `--glass-accent` (the HUE) per-instance off `data-hue`;
|
|
138
|
+
this rule supplies the STRENGTH so the calm/selected lift is ONE source. An UNSET
|
|
139
|
+
`data-hue` leaves `--glass-accent: transparent` (the @property default), so even
|
|
140
|
+
with the strength engaged the `color-mix(in oklab, X, transparent N%)` === X — the
|
|
141
|
+
A-2 no-op floor: a `variant="selection"` card with no `data-hue` is byte-identical
|
|
142
|
+
to a bare Card. A consumer may override `--glass-accent-strength` per-instance
|
|
143
|
+
(Card.vue's `data-hue-strength`); this rule is the default. */
|
|
144
|
+
[data-variant="selection"] {
|
|
145
|
+
/* The bounded accent-strength ladder — both ≤ the W-GLASS-ACCENT rim ceiling.
|
|
146
|
+
A consumer retunes the calm/selected pair from these two knobs. */
|
|
147
|
+
--selection-accent-strength: 16%;
|
|
148
|
+
--selection-accent-strength-selected: 28%;
|
|
149
|
+
/* Re-point the EXISTING accent-strength seam to the calm rung (the rim glow at
|
|
150
|
+
rest). At an unset `--glass-accent: transparent` this is a provable no-op. */
|
|
151
|
+
--glass-accent-strength: var(--selection-accent-strength);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
[data-variant="selection"][data-selected="true"] {
|
|
155
|
+
/* SELECTED — lift the accent-strength to the brighter (still-bounded) rung. The
|
|
156
|
+
brighter rim + the `.metal-*-border` Card composes are the selection read; the
|
|
157
|
+
plate is UNTOUCHED (no background/fill here — rim-not-fill). */
|
|
158
|
+
--glass-accent-strength: var(--selection-accent-strength-selected);
|
|
159
|
+
/* OPTIONAL sub-perceptual "selected reads as glass" lift — re-point the base
|
|
160
|
+
tier's resting fill toward the floating rung (the W-REGISTER-IOS tier), a
|
|
161
|
+
TOKEN re-point, NOT a `--surface-tint` gray plate, NEVER a `--foreground`
|
|
162
|
+
brand fill. The plate stays warm-cream translucent (the floating rung is the
|
|
163
|
+
SAME warm-cream material at a heavier rung, the BC.W-GLASS-IDENTITY ladder). */
|
|
164
|
+
--glass-bg-resting: var(--glass-bg-floating, var(--glass-bg-resting));
|
|
20
165
|
}
|
|
21
166
|
|
|
22
167
|
/* ── Cartoon surface decoration ───────────────────────────────────
|
|
@@ -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
|
+
}
|
|
@@ -75,3 +75,58 @@
|
|
|
75
75
|
.configurator-footer {
|
|
76
76
|
border-color: var(--configurator-divider);
|
|
77
77
|
}
|
|
78
|
+
|
|
79
|
+
/* 4. The DESKTOP TWO-COLUMN LAYOUT — controls on the RIGHT (BC.W-CONFIG-RIGHT).
|
|
80
|
+
*
|
|
81
|
+
* The configurator's own desktop grid was the next victim of the BA.W-EMISSION
|
|
82
|
+
* self-emission class (CLAUDE.md): the SFC carried the structural layout as a
|
|
83
|
+
* `lg:grid-cols-[minmax(0,1fr)_minmax(var(--configurator-aside-min,280px),var(--configurator-aside-max,360px))]`
|
|
84
|
+
* arbitrary utility — a `lg:` arbitrary bracket with NESTED `var()` + commas +
|
|
85
|
+
* `minmax()` that dies in a consumer's content-scan (the same failure that killed
|
|
86
|
+
* the Select collision-bound). So every studio rendered SINGLE-column (controls
|
|
87
|
+
* stacked BELOW the stage) on desktop: `getComputedStyle(cfg).gridTemplateColumns`
|
|
88
|
+
* read ONE `1131px` track at 1280px width, the aside below the stage, never right.
|
|
89
|
+
*
|
|
90
|
+
* The fix is the BA.W-EMISSION discipline: the structural layout lives in SHIPPED
|
|
91
|
+
* CSS as a precompiled rule scoped to `[data-slot="configurator"]`, NEVER
|
|
92
|
+
* load-bearing on a content-scan reach (the SAME mechanism the Select bound got in
|
|
93
|
+
* select.css). Below `lg` the base `grid grid-cols-1` + the mobile row template
|
|
94
|
+
* (emitted fine — a plain utility) keeps the single-column stack: stage above,
|
|
95
|
+
* controls below (a narrow viewport has no room for side-by-side). At `lg`+ this
|
|
96
|
+
* rule sets the two-column geometry off the SAME `--configurator-aside-{min,max}`
|
|
97
|
+
* token band (default 280px/360px, retunable via the `asideWidth` prop) the dead
|
|
98
|
+
* utility read — the token contract is byte-identical, only the MECHANISM moves
|
|
99
|
+
* onto shipped CSS. The explicit mobile rows reset to `none` so one auto row
|
|
100
|
+
* stretches to the taller column. */
|
|
101
|
+
@media (min-width: 1024px) {
|
|
102
|
+
[data-slot="configurator"] {
|
|
103
|
+
grid-template-columns: minmax(0, 1fr)
|
|
104
|
+
minmax(
|
|
105
|
+
var(--configurator-aside-min, 280px),
|
|
106
|
+
var(--configurator-aside-max, 360px)
|
|
107
|
+
);
|
|
108
|
+
grid-template-rows: none;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* 5. The SIDE FLIP — a data-attr, default RIGHT (BC.W-CONFIG-RIGHT).
|
|
113
|
+
*
|
|
114
|
+
* The aside side moves off the dead `lg:col-start-*` arbitrary utility (gated
|
|
115
|
+
* behind the same silent-JIT-failure class) onto a `data-aside-side` attr the SFC
|
|
116
|
+
* binds. `right` (the default) is the NATURAL source order — stage in column 1,
|
|
117
|
+
* aside in column 2 — so it needs NO override (the bare desktop rule above already
|
|
118
|
+
* places them left→right). `left` is the reversible taste-level flip: it swaps the
|
|
119
|
+
* grid-COLUMN targets so the aside paints on the LEFT, while the DOM/tab order
|
|
120
|
+
* stays stage→aside (the side is grid-cell PLACEMENT + border-side only, never an
|
|
121
|
+
* `order:`/`row-reverse` that would desync the visual order from the DOM reading
|
|
122
|
+
* order — WCAG 1.3.2/2.4.3 inviolate, the AM.W0 contract). Below `lg` (single
|
|
123
|
+
* column) neither side has meaning. */
|
|
124
|
+
@media (min-width: 1024px) {
|
|
125
|
+
[data-slot="configurator"][data-aside-side="left"] .configurator-stage {
|
|
126
|
+
grid-column-start: 2;
|
|
127
|
+
}
|
|
128
|
+
[data-slot="configurator"][data-aside-side="left"] .configurator-aside {
|
|
129
|
+
grid-column-start: 1;
|
|
130
|
+
grid-row-start: 1;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* critical-partition.mjs — the CRITICAL_PARTITION boundary manifest
|
|
3
|
+
* (BB.W-CSS-CRITICAL — the render-blocking `/styles` split).
|
|
4
|
+
*
|
|
5
|
+
* The SINGLE source of the critical/deferred partition of the resolved
|
|
6
|
+
* `@mkbabb/glass-ui/styles` draw. The build (vite.style-assets.ts
|
|
7
|
+
* publishStyleAssets) reads it to emit `dist/styles/critical.css` +
|
|
8
|
+
* `dist/styles/deferred.css`; the gate (scripts/proof-css-critical.mjs) reads
|
|
9
|
+
* it to assert the partition is byte-complete + manifest-driven. There is NO
|
|
10
|
+
* second hand-extracted critical block (W4 — the manifest is the sole source).
|
|
11
|
+
*
|
|
12
|
+
* The partition is drawn at the EXISTING thin-root-over-partials cascade
|
|
13
|
+
* boundary (AY.W-CSS1) — whole `src/styles/index.css` @import partials are
|
|
14
|
+
* bucketed, never a partial-content re-author (the partial CONTENTS are
|
|
15
|
+
* untouched; a cross-partial rule move is a triumvirate trigger, see the wave
|
|
16
|
+
* spec §Triumvirate). The two emitted files each @import their bucket's
|
|
17
|
+
* partials in the SAME cascade order the monolith index.css declares (load
|
|
18
|
+
* order is load-bearing), and CRITICAL loads BEFORE DEFERRED in the consumer
|
|
19
|
+
* so the deferred component recipes still cascade-correctly over the critical
|
|
20
|
+
* glass ladder.
|
|
21
|
+
*
|
|
22
|
+
* CRITICAL (./styles/critical) — the above-the-fold paint surface a consumer's
|
|
23
|
+
* FIRST PAINT requires: the whole token cascade (every visual axis is a custom
|
|
24
|
+
* property the chrome reads), the √φ typography scale + semantic type classes,
|
|
25
|
+
* the @theme aliases + the `.dark` variant selector, and the 5-rung glass
|
|
26
|
+
* ladder + specular/refract. Small (the token + ladder + type surface, not the
|
|
27
|
+
* component recipes) — under the recorded gzip ceiling (W3).
|
|
28
|
+
*
|
|
29
|
+
* DEFERRED (./styles/deferred) — the below-the-fold + late-mount tail: every
|
|
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.
|
|
42
|
+
*
|
|
43
|
+
* The `paper.css` partial is bucketed DEFERRED — the paper underpaint/grain
|
|
44
|
+
* utilities pair with glass for paper-on-glass compositions that mount with the
|
|
45
|
+
* content surfaces (below-the-fold), not the chrome's first paint.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The two non-fold buckets — each entry is a `src/styles/*.css` partial that the
|
|
50
|
+
* monolith `src/styles/index.css` @imports at the top level (lines 149-182).
|
|
51
|
+
* The order within each list mirrors the monolith's declared cascade order.
|
|
52
|
+
*/
|
|
53
|
+
export const CRITICAL_PARTIALS = Object.freeze([
|
|
54
|
+
"tokens.css",
|
|
55
|
+
"typography.css",
|
|
56
|
+
"theme.css",
|
|
57
|
+
"glass.css",
|
|
58
|
+
"glass-specular-track.css",
|
|
59
|
+
"glass-refract.css",
|
|
60
|
+
]);
|
|
61
|
+
|
|
62
|
+
export const DEFERRED_PARTIALS = Object.freeze([
|
|
63
|
+
"paper.css",
|
|
64
|
+
"dock.css",
|
|
65
|
+
"dock-controls.css",
|
|
66
|
+
"cards.css",
|
|
67
|
+
"feedback-tone.css",
|
|
68
|
+
"floating-panel.css",
|
|
69
|
+
"transitions.css",
|
|
70
|
+
"animations.css",
|
|
71
|
+
"scroll-driven.css",
|
|
72
|
+
"scroll-choreography.css",
|
|
73
|
+
"scroll-chrome.css",
|
|
74
|
+
"view-transition.css",
|
|
75
|
+
"utilities.css",
|
|
76
|
+
"menu.css",
|
|
77
|
+
"configurator.css",
|
|
78
|
+
"instrument-chassis.css",
|
|
79
|
+
"hover-popover.css",
|
|
80
|
+
"drawer.css",
|
|
81
|
+
"segmented-tabs.css",
|
|
82
|
+
"select.css",
|
|
83
|
+
"icon-chip.css",
|
|
84
|
+
"border-progress.css",
|
|
85
|
+
"completion-seal.css",
|
|
86
|
+
]);
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The build-time folds that land in DEFERRED (NOT a `src/styles/*.css` partial;
|
|
90
|
+
* the publishStyleAssets folds appended to the dist copy of index.css). The SFC
|
|
91
|
+
* scoped payload (`../glass-ui.css`) + the Tailwind component-utility surface
|
|
92
|
+
* (`./components.css`) are below-the-fold component decoration — they MUST NOT
|
|
93
|
+
* leak into critical (the W2 byte-complete-in-one-bucket + W3 ceiling bite).
|
|
94
|
+
* Relative to `dist/styles/` (where critical.css/deferred.css are emitted).
|
|
95
|
+
*/
|
|
96
|
+
export const DEFERRED_FOLDS = Object.freeze([
|
|
97
|
+
"../glass-ui.css",
|
|
98
|
+
"./components.css",
|
|
99
|
+
]);
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The `@source` build-scan backstop directive (the consumer-JIT content-scan
|
|
103
|
+
* reach for glass-ui's own component utilities — a backstop for the
|
|
104
|
+
* components.css self-emit). It backstops the DEFERRED component utilities, so
|
|
105
|
+
* it rides DEFERRED. The value is the exact directive the monolith index.css
|
|
106
|
+
* carries (re-grounded at HEAD: `@source "../*.js";`).
|
|
107
|
+
*/
|
|
108
|
+
export const DEFERRED_SOURCE_DIRECTIVE = '@source "../*.js";';
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* The recorded critical-subset gzip ceiling (bytes), measured on the FULLY
|
|
112
|
+
* RESOLVED consumer draw (the critical partials' @import roots resolved
|
|
113
|
+
* RECURSIVELY through their nested tokens/* + glass/* sub-partials — the real
|
|
114
|
+
* first-paint byte a consumer's bundler emits, NOT the one-level approximation
|
|
115
|
+
* profile-bundle uses for the monolith budget). The committed, reviewed
|
|
116
|
+
* baseline (the profile-bundle read-baseline discipline): a regression that
|
|
117
|
+
* folds a component recipe back into critical climbs the emitted critical.css
|
|
118
|
+
* resolved gzip over this → RED (W3). Re-base via the gate's `--rebaseline`
|
|
119
|
+
* flag with a recorded rationale, never silently.
|
|
120
|
+
*
|
|
121
|
+
* Measured at this authoring (HEAD bdbcd479, post-build): the critical subset
|
|
122
|
+
* resolved to raw 347266 / gzip 105460 — the token cascade (tokens.css gzip
|
|
123
|
+
* ~62KiB) + the 5-rung glass ladder (glass.css gzip ~27KiB) + typography +
|
|
124
|
+
* theme + specular/refract. It is roughly half the monolith's fully-resolved
|
|
125
|
+
* gzip (~230KiB), so the deferred tail (component recipes + SFC scoped payload
|
|
126
|
+
* + components.css utility surface, ~125KiB gzip) loads NON-blocking after
|
|
127
|
+
* first paint — the render-block win. The ceiling carries ~4% headroom over
|
|
128
|
+
* the measured baseline (the profile-bundle re-base convention). If the
|
|
129
|
+
* re-measured render-block under W-LIGHTHOUSE shows this critical subset is
|
|
130
|
+
* STILL over the mobile-ms floor, the inline-critical-head-block path routes to
|
|
131
|
+
* the named BB.W-CSS-CRITICAL-INLINE successor (a triumvirate trigger, NOT a
|
|
132
|
+
* token-value edit here).
|
|
133
|
+
*
|
|
134
|
+
* RE-BASE (BB liquid-glass band): the critical subset grew to raw 427015 / gzip
|
|
135
|
+
* 131469 — NOT a component-recipe leak (the critical bucket is still the 6
|
|
136
|
+
* documented token+glass+type partials; w2 partials-disjoint + w4 hold), but the
|
|
137
|
+
* legitimate GROWTH of the critical token cascade + glass ladder by the BB
|
|
138
|
+
* liquid-glass band: the deep-glass token family (tokens/glass-deep.css), the
|
|
139
|
+
* --glass-accent rim axis, the W-LENSING refract evolution, the W-DARK-MATERIAL
|
|
140
|
+
* dark-arm + the on-glass-fg / surface-axis registers — all of which live in the
|
|
141
|
+
* critical tokens/* + glass/* sub-partials by construction. Ceiling lifted
|
|
142
|
+
* 110000 → 137000 (~4.2% headroom over the measured 131469, the profile-bundle
|
|
143
|
+
* re-base convention) to carry the BB glass-band critical surface.
|
|
144
|
+
*
|
|
145
|
+
* RE-BASE (BC.W-CSS-CRITICAL — re-measured over the SETTLED BC cascade): the
|
|
146
|
+
* critical subset grew to raw 482228 / gzip 149748 — AGAIN not a component-recipe
|
|
147
|
+
* leak (the critical bucket is STILL the 6 documented token+glass+type partials;
|
|
148
|
+
* the BC visual bands 1-7 + 9 re-authored the critical tokens/* + glass/* sub-
|
|
149
|
+
* partials — the warm-cream page chassis tokens, the on-glass-fg/surface-axis
|
|
150
|
+
* registers, the calm/deep glass ladder, the scroll/motion token additions in
|
|
151
|
+
* scale-paper.css — all of which live in the critical token cascade by
|
|
152
|
+
* construction; the two BC-added PARTIALS scroll-chrome.css + completion-seal.css
|
|
153
|
+
* are bucketed DEFERRED, NOT critical). The critical subset is 47.3% of the
|
|
154
|
+
* settled monolith's resolved gzip (316614) — the spec's ~46% small-above-the-
|
|
155
|
+
* fold-subset bar HELD over the settled cascade. Ceiling re-pinned 137000 →
|
|
156
|
+
* 156000 (~4.2% headroom over the measured 149748, the profile-bundle re-base
|
|
157
|
+
* convention — the reviewed write, NEVER a silent component-recipe swallow to
|
|
158
|
+
* stay under the old number). The render-block FLOOR stays W-LIGHTHOUSE's
|
|
159
|
+
* W3-arm-1 mobile-ms gate (the binding perf truth); this ceiling guards against a
|
|
160
|
+
* recipe revert-toward-monolith.
|
|
161
|
+
*/
|
|
162
|
+
export const CRITICAL_GZIP_CEILING = 156000;
|