@mkbabb/glass-ui 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -27
- package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
- package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
- package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
- package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
- package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
- package/dist/animated-digit.js +1 -1
- package/dist/aurora.js +324 -314
- package/dist/blob-config.d.ts +0 -4
- package/dist/blob-config.js +1 -1
- package/dist/blob.js +280 -261
- package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
- package/dist/button.js +1 -1
- package/dist/canvas.js +1 -1
- package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -2
- package/dist/carousel.js +26 -95
- package/dist/chip.d.ts +0 -9
- package/dist/chip.js +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.js +1 -0
- package/dist/color.js +87 -3
- package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
- package/dist/command.js +1 -1
- package/dist/completion-seal.js +64 -55
- package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
- package/dist/components/_shared/field-surfaces.css +1 -0
- package/dist/components/_shared/menuItemVariants.d.ts +2 -2
- package/dist/components/_shared/useMotionAxis.d.ts +2 -2
- package/dist/components/_shared/valueDomain.d.ts +6 -0
- package/dist/components/alert/index.d.ts +1 -1
- package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
- package/dist/components/aurora/Aurora.vue.d.ts +7 -1
- package/dist/components/aurora/composables/runtime.d.ts +5 -3
- package/dist/components/aurora/composables/useAurora.d.ts +4 -2
- package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
- package/dist/components/badge/index.d.ts +2 -2
- package/dist/components/blob/Blob.vue.d.ts +11 -0
- package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
- package/dist/components/button/Button.vue.d.ts +4 -2
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/card/Card.vue.d.ts +4 -4
- package/dist/components/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/card/styles.css +1 -0
- package/dist/components/carousel/Carousel.vue.d.ts +2 -2
- package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/carousel/index.d.ts +0 -1
- package/dist/components/carousel/useCarousel.d.ts +2 -2
- package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
- package/dist/components/combobox/index.d.ts +1 -3
- package/dist/components/command/Command.vue.d.ts +1 -1
- package/dist/components/command/CommandDialog.vue.d.ts +9 -6
- package/dist/components/completion-seal/styles.css +1 -0
- package/dist/components/constellation/Constellation.vue.d.ts +6 -1
- package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
- package/dist/components/constellation/constants.d.ts +6 -16
- package/dist/components/constellation/constellationField.d.ts +3 -5
- package/dist/components/constellation/constellationInteraction.d.ts +1 -1
- package/dist/components/constellation/constellationRender.d.ts +11 -21
- package/dist/components/constellation/constellationTypes.d.ts +12 -9
- package/dist/components/constellation/index.d.ts +1 -1
- package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
- package/dist/components/data-table/DataTable.vue.d.ts +14 -2
- package/dist/components/data-table/index.d.ts +1 -2
- package/dist/components/data-table/types.d.ts +26 -1
- package/dist/components/deck/constants.d.ts +0 -10
- package/dist/components/deck/index.d.ts +0 -1
- package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
- package/dist/components/dialog/index.d.ts +0 -1
- package/dist/components/dock/DockControl.vue.d.ts +4 -4
- package/dist/components/dock/DockStack.vue.d.ts +2 -2
- package/dist/components/dock/GlassDock.vue.d.ts +1 -0
- package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
- package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
- package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
- package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
- package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
- package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
- package/dist/components/dock/composables/useDockState.d.ts +2 -2
- package/dist/components/dock/constants.d.ts +0 -12
- package/dist/components/dock/index.d.ts +1 -0
- package/dist/components/dock/styles/adaptive-legibility.css +1 -0
- package/dist/components/dock/styles/controls/icon-button.css +1 -0
- package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
- package/dist/components/dock/styles/controls.css +1 -0
- package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
- package/dist/components/dock/styles/dock.css +1 -0
- package/dist/components/dock/styles/index.css +1 -0
- package/dist/components/dock/styles/layer-group.css +1 -0
- package/dist/components/dock/styles/layers.css +1 -0
- package/dist/components/dock/styles/overflow.css +1 -0
- package/dist/components/dock/styles/popover.css +1 -0
- package/dist/components/dock/styles/shape.css +1 -0
- package/dist/components/dock/styles/shell.css +1 -0
- package/dist/components/drawer/Drawer.vue.d.ts +3 -3
- package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
- package/dist/components/drawer/constants.d.ts +6 -6
- package/dist/components/drawer/index.d.ts +4 -6
- package/dist/components/drawer/styles.css +1 -0
- package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
- package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
- package/dist/components/dropdown-menu/index.d.ts +0 -1
- package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
- package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
- package/dist/components/easing/constants.d.ts +2 -0
- package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
- package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
- package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
- package/dist/components/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/handmark/geometry.d.ts +1 -1
- package/dist/components/handmark/index.d.ts +4 -6
- package/dist/components/icon-chip/styles.css +1 -0
- package/dist/components/index.d.ts +0 -1
- package/dist/components/infinite-scroll/index.d.ts +1 -0
- package/dist/components/instrument-chassis/styles.css +1 -0
- package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
- package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
- package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
- package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
- package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
- package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
- package/dist/components/progress/Progress.vue.d.ts +5 -40
- package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
- package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
- package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
- package/dist/components/progress/index.d.ts +0 -5
- package/dist/components/progress/valueMarks.css +1 -0
- package/dist/components/pulse/Pulse.vue.d.ts +2 -2
- package/dist/components/scroll-progress-rim/styles.css +1 -0
- package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
- package/dist/components/search/SearchBar.vue.d.ts +2 -2
- package/dist/components/search/searchVariants.d.ts +1 -1
- package/dist/components/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/select/index.d.ts +0 -2
- package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
- package/dist/components/slider/Slider.vue.d.ts +2 -0
- package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
- package/dist/components/surface/Surface.vue.d.ts +1 -1
- package/dist/components/table/Table.vue.d.ts +4 -0
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/styles/drag.css +1 -0
- package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
- package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
- package/dist/components/toast/Toast.vue.d.ts +3 -3
- package/dist/components/toast/use-toast.d.ts +4 -4
- package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
- package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
- package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
- package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
- package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
- package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
- package/dist/composables/motion/springProjection.d.ts +16 -0
- package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
- package/dist/composables/motion/useCountup.d.ts +1 -6
- package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
- package/dist/composables/motion/useElementMorph.d.ts +8 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -4
- package/dist/composables/motion/useNumericTransition.d.ts +2 -0
- package/dist/composables/motion/useTextHighlight.d.ts +2 -1
- package/dist/configurator-CSENXXSy.js +311 -0
- package/dist/configurator.js +2 -3
- package/dist/constellation.js +235 -571
- package/dist/controls.js +55 -63
- package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
- package/dist/dark-DIH-blY1.js +70 -0
- package/dist/dark.d.ts +1 -2
- package/dist/dark.js +2 -20
- package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
- package/dist/data-table.js +2 -2
- package/dist/deck.js +10 -21
- package/dist/dialog-BzQxKrUr.js +281 -0
- package/dist/dialog.js +2 -3
- package/dist/dock.js +561 -428
- package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
- package/dist/dom.js +196 -7
- package/dist/drawer.js +111 -66
- package/dist/dropdown-menu-DORIA52F.js +378 -0
- package/dist/dropdown-menu.js +3 -2
- package/dist/easing.d.ts +0 -9
- package/dist/easing.js +334 -187
- package/dist/expandable-container.js +12 -4
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-scope.js +1 -1
- package/dist/forms.js +37 -78
- package/dist/fourier-field.js +273 -263
- package/dist/fourier-math.d.ts +0 -6
- package/dist/fourier-math.js +112 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +131 -195
- package/dist/handmark.d.ts +0 -2
- package/dist/handmark.js +82 -82
- package/dist/header-ribbon.js +41 -30
- package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/infinite-scroll.d.ts +0 -1
- package/dist/infinite-scroll.js +17 -15
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +104 -2
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +95 -69
- package/dist/liquid-grid.js +173 -162
- package/dist/metric-badge.js +3 -3
- package/dist/metric-cell.js +2 -2
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +15 -16
- package/dist/motion-curves.d.ts +0 -20
- package/dist/motion.js +59 -58
- package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
- package/dist/notification.js +1 -1
- package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +31 -2
- package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
- package/dist/popover.js +1 -1
- package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
- package/dist/progress-C-HHuFZy.js +192 -0
- package/dist/progress.js +2 -2
- package/dist/pulse.js +3 -1
- package/dist/reactive.js +19 -3
- package/dist/rendererStatus-C2-zC2Q-.js +40 -0
- package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
- package/dist/scroll-progress-rim.js +1 -1
- package/dist/search.js +187 -146
- package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
- package/dist/select.js +2 -4
- package/dist/separator-CBU94kTM.js +62 -0
- package/dist/separator.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider-Cc_qw6GA.js +166 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +43 -43
- package/dist/styles/accessibility.css +1 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/glass/control-surfaces.css +1 -1
- package/dist/styles/glass/glass-capsule.css +1 -1
- package/dist/styles/glass/ladder.css +1 -1
- package/dist/styles/glass/liquid-fill.css +1 -1
- package/dist/styles/glass/material-roles.css +1 -0
- package/dist/styles/glass/material.css +1 -1
- package/dist/styles/glass/surface-axis.css +1 -1
- package/dist/styles/glass/surfaces-pager.css +1 -1
- package/dist/styles/glass/surfaces.css +1 -1
- package/dist/styles/glass.css +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/theme/bridges.css +1 -1
- package/dist/styles/tokens/glass-fx.css +1 -1
- package/dist/styles/tokens/glass.css +1 -1
- package/dist/styles/tokens/offsets.css +1 -1
- package/dist/styles/tokens/scale-paper.css +1 -1
- package/dist/styles/tokens/scheme-spring.css +1 -1
- package/dist/styles/tokens/shadow.css +1 -1
- package/dist/styles/tokens.d.ts +53 -0
- package/dist/styles/tokens.ts +58 -0
- package/dist/styles/typography/scale.css +1 -1
- package/dist/styles/typography/semantic.css +1 -1
- package/dist/styles/typography/utilities.css +1 -1
- package/dist/styles/utilities/base.css +1 -1
- package/dist/styles/utilities/btn.css +1 -1
- package/dist/styles/utilities/components.css +1 -1
- package/dist/styles/utilities.css +1 -1
- package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +51 -45
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -53
- package/dist/tokens.js +1 -1
- package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +151 -166
- package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
- package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
- package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
- package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
- package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
- package/dist/useLiquidPress-BYcwwGQV.js +68 -0
- package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
- package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
- package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
- package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
- package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
- package/dist/valueDomain-B8L04u3U.js +13 -0
- package/dist/watercolor-dot.js +5 -3
- package/package.json +5 -12
- package/src/styles/accessibility.css +48 -0
- package/src/styles/glass/glass-capsule.css +2 -2
- package/src/styles/glass/ladder.css +1 -1
- package/src/styles/glass/material-roles.css +18 -0
- package/src/styles/glass/material.css +18 -12
- package/src/styles/glass.css +5 -5
- package/src/styles/index.css +38 -30
- package/src/styles/theme/bridges.css +0 -6
- package/src/styles/tokens/glass-fx.css +1 -5
- package/src/styles/tokens/glass.css +1 -2
- package/src/styles/tokens/offsets.css +0 -1
- package/src/styles/tokens/property-regs.css +11 -10
- package/src/styles/tokens/scale-paper.css +0 -1
- package/src/styles/tokens/scheme-motion.css +3 -0
- package/src/styles/tokens/scheme-spring.css +0 -10
- package/src/styles/tokens/shadow.css +3 -29
- package/src/styles/tokens.ts +58 -0
- package/src/styles/typography/scale.css +5 -2
- package/src/styles/typography/semantic.css +5 -5
- package/src/styles/typography/utilities.css +5 -5
- package/src/styles/utilities/base.css +5 -5
- package/src/styles/utilities/btn.css +6 -27
- package/src/styles/utilities.css +4 -6
- package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
- package/dist/DialogContent-Bl4v10AC.js +0 -192
- package/dist/DialogFooter-C0v4Hz2F.js +0 -168
- package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
- package/dist/Progress-uWLyXE7J.js +0 -308
- package/dist/SelectGroup-BuEptUsa.js +0 -31
- package/dist/SelectSeparator-4QGephvr.js +0 -49
- package/dist/Separator-DqJ6PfOd.js +0 -44
- package/dist/color-Bp5jmv4Z.js +0 -86
- package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
- package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
- package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
- package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
- package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
- package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
- package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
- package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
- package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
- package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
- package/dist/components/progress/useProgressGeometry.d.ts +0 -60
- package/dist/components/section/Section.vue.d.ts +0 -73
- package/dist/components/section/index.d.ts +0 -1
- package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
- package/dist/components/stacked-icons/index.d.ts +0 -2
- package/dist/components/stacked-icons/types.d.ts +0 -19
- package/dist/dropdown-menu-DaGlVdp9.js +0 -421
- package/dist/math-CIEcwsYi.js +0 -112
- package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
- package/dist/slider-Cxuj_W_H.js +0 -151
- package/dist/stacked-icons.d.ts +0 -1
- package/dist/stacked-icons.js +0 -98
- package/dist/styles/cards.css +0 -1
- package/dist/styles/completion-seal.css +0 -1
- package/dist/styles/dock/adaptive-legibility.css +0 -1
- package/dist/styles/dock/dock.css +0 -1
- package/dist/styles/dock/layer-group.css +0 -1
- package/dist/styles/dock/layers.css +0 -1
- package/dist/styles/dock/overflow.css +0 -1
- package/dist/styles/dock/popover.css +0 -1
- package/dist/styles/dock/shape.css +0 -1
- package/dist/styles/dock/shell.css +0 -1
- package/dist/styles/dock-controls/icon-button.css +0 -1
- package/dist/styles/dock-controls.css +0 -1
- package/dist/styles/dock.css +0 -1
- package/dist/styles/drawer.css +0 -1
- package/dist/styles/icon-chip.css +0 -1
- package/dist/styles/instrument-chassis.css +0 -1
- package/dist/styles/scroll-progress-rim.css +0 -1
- package/dist/styles/select.css +0 -1
- package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
- package/dist/styles/utilities/animate.css +0 -0
- package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
- package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
- package/dist/useGlobalDark-DjKMEQE2.js +0 -53
- package/dist/useGpuSubstrate-DcY584kE.js +0 -347
- package/dist/useInterval-ZATRi-1T.js +0 -18
- package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
- package/dist/useLiquidPress-BXNHydZh.js +0 -40
- package/dist/useTextHighlight-C46Le9u_.js +0 -72
- package/dist/useViewportReady-c0isoKL8.js +0 -191
- package/src/styles/card-scroll.css +0 -189
- package/src/styles/cards.css +0 -485
- package/src/styles/completion-seal.css +0 -205
- package/src/styles/configurator.css +0 -359
- package/src/styles/dialog-placement.css +0 -68
- package/src/styles/dock/adaptive-legibility.css +0 -119
- package/src/styles/dock/crossfade.css +0 -139
- package/src/styles/dock/cta-seat.css +0 -87
- package/src/styles/dock/density.css +0 -458
- package/src/styles/dock/dock.css +0 -199
- package/src/styles/dock/fisheye.css +0 -81
- package/src/styles/dock/layer-group.css +0 -329
- package/src/styles/dock/layers.css +0 -438
- package/src/styles/dock/morph.css +0 -455
- package/src/styles/dock/overflow.css +0 -332
- package/src/styles/dock/popover.css +0 -249
- package/src/styles/dock/search.css +0 -68
- package/src/styles/dock/section.css +0 -59
- package/src/styles/dock/shape.css +0 -188
- package/src/styles/dock/shell-regions.css +0 -73
- package/src/styles/dock/shell.css +0 -500
- package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
- package/src/styles/dock-controls/icon-button.css +0 -221
- package/src/styles/dock-controls/tab-button.css +0 -143
- package/src/styles/dock-controls/touch-floor.css +0 -119
- package/src/styles/dock-controls/triggers.css +0 -157
- package/src/styles/dock-controls.css +0 -92
- package/src/styles/dock.css +0 -219
- package/src/styles/drawer.css +0 -434
- package/src/styles/feedback-tone.css +0 -104
- package/src/styles/icon-chip.css +0 -256
- package/src/styles/instrument-chassis.css +0 -449
- package/src/styles/menu.css +0 -187
- package/src/styles/scroll-progress-rim.css +0 -87
- package/src/styles/segmented-tabs.css +0 -424
- package/src/styles/select.css +0 -201
- package/src/styles/tabs/segmented-tabs-drag.css +0 -200
- package/src/styles/utilities/animate.css +0 -29
- /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
- /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
- /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
- /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
- /package/dist/{styles → components/_shared}/menu.css +0 -0
- /package/dist/{styles → components/card}/card-scroll.css +0 -0
- /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
- /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
- /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
- /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
- /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
- /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
- /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
- /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
- /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
- /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
- /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
- /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
- /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
- /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
- /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
- /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
- /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
- /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
- /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
- /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
- /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
- /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
- /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
- /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
- /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
- /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
- /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
- /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
- /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
- /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
- /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
- /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
- /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
/* dock/overflow.css — the OVER-cap overflow strategies (AX.W06 carve).
|
|
2
|
-
*
|
|
3
|
-
* Carved from the dock.css god-module (slice 25). This partial owns the
|
|
4
|
-
* `overflow=` axis: the HORIZONTAL inline scroll port (`.dock-scroll-x`, hidden
|
|
5
|
-
* scrollbar, momentum-trapped), the W04 CONTENT-DRIVEN `overflow="wrap"`
|
|
6
|
-
* intrinsic-flex recipe (the `.dock-overflow-wrap` pill↔card radius + floating-
|
|
7
|
-
* tier elevation morph on the ONE `--dock-expand-t` scalar — RELOCATED verbatim,
|
|
8
|
-
* never re-authored), and the W45 D15 single coarse-pointer `--dock-scale`
|
|
9
|
-
* multiplier.
|
|
10
|
-
*
|
|
11
|
-
* BI.W-DOCK-OVERFLOW — the GREENFIELD native scroll track (PASS-1 §2.5). A capped
|
|
12
|
-
* axis is INTRINSICALLY a scroll axis: `.dock-scroll-x` is emitted on EVERY
|
|
13
|
-
* horizontal dock (scrollClass in useDockShellProps), and the VERTICAL block-axis
|
|
14
|
-
* scroll folds into the unconditional cap-derived rule in shell.css. The clip-era
|
|
15
|
-
* band-aids RETIRE (clean break): the cross-axis `overflow-clip-margin` fudge + the
|
|
16
|
-
* NO-OP `overflow-y: clip` pin + the `.dock-layers` re-clip are GONE — post-SPINE the
|
|
17
|
-
* L0 `.dock-plate` `clip-path` owns the silhouette, the L1 controls run is
|
|
18
|
-
* `overflow: visible`, and the scroll port clips ONLY its own over-cap inline content.
|
|
19
|
-
* Two EXCLUSIVE modes (PASS-4B ruling 1, never composed): FITS (`:not([data-dock-
|
|
20
|
-
* overflow])`) is `overflow-x: visible` + `mask-image: none` (the fisheye's branch);
|
|
21
|
-
* OVERFLOW (`[data-dock-overflow]`, set by `useDockOverflowFit`'s RO) is
|
|
22
|
-
* `overflow-x: auto` + the `<FadingScroll>` edge mask, fisheye OFF. The cross axis is
|
|
23
|
-
* honestly `visible` (the ring-room reserved via the `--dock-scroll-safe-inset`
|
|
24
|
-
* padding/negative-margin no-clip idiom — T-52 b), and `scroll-padding-inline` gutters
|
|
25
|
-
* the `scrollIntoView` recenter.
|
|
26
|
-
*
|
|
27
|
-
* @import-ed by dock.css in cascade order, in the SAME `@layer components`. */
|
|
28
|
-
|
|
29
|
-
@layer components {
|
|
30
|
-
/* ── The native inline scroll TRACK (BI.W-DOCK-OVERFLOW, PASS-1 §2.5) ──
|
|
31
|
-
The GREENFIELD overflow facility: a DISTINCT inner scroll track. The
|
|
32
|
-
clip-era band-aids are GONE (the `overflow-clip-margin` cross-axis fudge +
|
|
33
|
-
the NO-OP `overflow-y: clip` pin + the `.dock-layers` re-clip that fought
|
|
34
|
-
the SPINE L1 `overflow: visible` run) — the plate's `clip-path` (dock.css)
|
|
35
|
-
owns the dock silhouette, the L1 controls run is `overflow: visible`, and
|
|
36
|
-
the scroll port clips ONLY its own over-cap content on the inline axis.
|
|
37
|
-
Two EXCLUSIVE modes, NEVER composed (PASS-4B ruling 1):
|
|
38
|
-
|
|
39
|
-
• FITS (default — `:not([data-dock-overflow])`): the row fits the cap, so
|
|
40
|
-
the port is `overflow-x: visible` (no scroll) and its `mask-image` is
|
|
41
|
-
`none` (T-52 a — no fade, no 0px-fade transparent-stop shave). The
|
|
42
|
-
fits-branch fisheye (fisheye.css) is FREE to scale its hump over the
|
|
43
|
-
`overflow: visible` L1 run.
|
|
44
|
-
• OVERFLOW (`[data-dock-overflow]`, set by `useDockOverflowFit`'s RO — ZERO
|
|
45
|
-
scroll listener, G9/O5): the row exceeds the cap, so the port is
|
|
46
|
-
`overflow-x: auto` (native inline scroll) with the `<FadingScroll>` edge
|
|
47
|
-
mask; fisheye is OFF (the `:not([data-dock-overflow])` gate). */
|
|
48
|
-
|
|
49
|
-
/* min-width:0 releases the flex `min-content` floor so the active full layer
|
|
50
|
-
can shrink under the `--dock-max-inline-size`-clamped `.dock-layers` track
|
|
51
|
-
and become the scroll port on the overflow branch. */
|
|
52
|
-
.glass-dock.dock-scroll-x:not(.dock-overflow-wrap) .dock-layer--full {
|
|
53
|
-
min-width: 0;
|
|
54
|
-
/* FITS default: no scroll, no mask — the cross axis is honestly `visible`
|
|
55
|
-
(SPINE: nothing clips the L1 run). T-52(a): `mask-image: none` at rest so
|
|
56
|
-
the 0px-fade transparent stop can never antialias-shave a flush item's
|
|
57
|
-
focus-ring arc. */
|
|
58
|
-
overflow-x: visible;
|
|
59
|
-
overflow-y: visible;
|
|
60
|
-
mask-image: none;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/* OVERFLOW branch — the native scroll track + the FadingScroll edge mask. */
|
|
64
|
-
.glass-dock.dock-scroll-x[data-dock-overflow]:not(.dock-overflow-wrap)
|
|
65
|
-
.dock-layer--full {
|
|
66
|
-
overflow-x: auto;
|
|
67
|
-
/* The cross (block) axis is honestly `visible` in SOURCE. `overflow-x: auto`
|
|
68
|
-
spec-forces the computed cross axis to a clip, so the RING-ROOM is reserved
|
|
69
|
-
the canonical no-clip scroll-strip way (T-52 b): a `--dock-scroll-safe-inset`
|
|
70
|
-
PADDING on all sides (the flush item's focus ring paints INSIDE the padded
|
|
71
|
-
clip box — all four arcs whole) pulled back by an EQUAL negative MARGIN so
|
|
72
|
-
the dock's own layout is byte-unchanged. The inline pad ALSO reserves the
|
|
73
|
-
first/last item's inline ring arc + anchors the mask AA seam in the gutter,
|
|
74
|
-
so even at a scroll extreme (fade 0) a flush item is never shaved. */
|
|
75
|
-
overflow-y: visible;
|
|
76
|
-
padding: var(--dock-scroll-safe-inset);
|
|
77
|
-
margin: calc(-1 * var(--dock-scroll-safe-inset));
|
|
78
|
-
/* The recenter gutter — `scrollIntoView({inline:'nearest'})` (useSelectionGroup,
|
|
79
|
-
on every select) lands a selected member with ≥1px port slack (O1). */
|
|
80
|
-
scroll-padding-inline: var(--dock-scroll-gutter);
|
|
81
|
-
scrollbar-width: none;
|
|
82
|
-
/* Trap the inline-scroll momentum at the dock's own boundary so a wheel /
|
|
83
|
-
trackpad gesture that bottoms out the pill does NOT chain into scrolling the
|
|
84
|
-
page behind it (the dock is a self-contained scroll port). */
|
|
85
|
-
overscroll-behavior-x: contain;
|
|
86
|
-
/* The `<FadingScroll>` edge mask, reached BY NAME (the SAME `gl-fade-start-in`/
|
|
87
|
-
`gl-fade-end-out` keyframes the component drives off `scroll(self inline)` —
|
|
88
|
-
ZERO new recipe). Painted ONLY on this overflow branch, so at rest (fits) the
|
|
89
|
-
mask is `none` (T-52 a). On the overflow branch there is ALWAYS trailing OR
|
|
90
|
-
leading overflow, so at least one fade is active by construction. Not
|
|
91
|
-
PRM-gated (a legibility cue — it stops interpolating under reduce, the
|
|
92
|
-
discrete edge-presence stays correct). */
|
|
93
|
-
mask-image: linear-gradient(
|
|
94
|
-
to right,
|
|
95
|
-
transparent 0,
|
|
96
|
-
black var(--fade-start, 0px),
|
|
97
|
-
black calc(100% - var(--fade-end, 0px)),
|
|
98
|
-
transparent 100%
|
|
99
|
-
);
|
|
100
|
-
animation:
|
|
101
|
-
gl-fade-start-in linear both,
|
|
102
|
-
gl-fade-end-out linear both;
|
|
103
|
-
animation-timeline: scroll(self inline), scroll(self inline);
|
|
104
|
-
animation-range:
|
|
105
|
-
0 var(--fade-scroll-width),
|
|
106
|
-
calc(100% - var(--fade-scroll-width)) 100%;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.glass-dock.dock-scroll-x[data-dock-overflow]:not(.dock-overflow-wrap)
|
|
110
|
-
.dock-layer--full::-webkit-scrollbar {
|
|
111
|
-
display: none;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* The VERTICAL block-axis scroll port lives in shell.css (the unconditional
|
|
115
|
-
cap-derived `.glass-dock.vertical…:not([data-morphing])` rule) — the
|
|
116
|
-
`.dock-scroll-y` opt-in class is RETIRED here (BG.W-DOCK-CAP-SCROLL-FADE,
|
|
117
|
-
clean break: a capped vertical axis is intrinsically a scroll axis, ONE
|
|
118
|
-
home, no second opt-in port). */
|
|
119
|
-
|
|
120
|
-
/* ── `overflow="wrap"` recipe — CONTENT-DRIVEN intrinsic flex reflow ──
|
|
121
|
-
(AX.W04 F0). Parallel to the `.dock-scroll-{x,y}` hooks the
|
|
122
|
-
`overflow="scroll"` member emits, `overflow="wrap"` emits this class.
|
|
123
|
-
(HORIZONTAL-ONLY — GlassDock.vue guards the emit on
|
|
124
|
-
`orientation !== 'vertical'`; a vertical rail grows-to-fit + clamps via
|
|
125
|
-
`--dock-max-block-size`, its own overflow story.)
|
|
126
|
-
|
|
127
|
-
The reflow is INTRINSIC: `flex-wrap: wrap` is ALWAYS-ON (no viewport MQ),
|
|
128
|
-
and the dock shrink-wraps to content with `max-inline-size` capping it at
|
|
129
|
-
the canonical `--dock-max-inline-size` token (the SAME cap every
|
|
130
|
-
overflow strategy reads — `min(80vw, 64rem)` default, consumer-overridable
|
|
131
|
-
per-instance). So the layer wraps to N rows EXACTLY when its intrinsic row
|
|
132
|
-
exceeds the cap — at ANY viewport width — and collapses to one row when it
|
|
133
|
-
fits. The magic-640 `@media` snap-back + the `--dock-overflow-bp` token are
|
|
134
|
-
DELETED (the inherited mobile-responsive debt, origin 078dd79). */
|
|
135
|
-
.glass-dock.dock-overflow-wrap {
|
|
136
|
-
white-space: normal;
|
|
137
|
-
/* The content-driven cap. The dock ALREADY shrink-wraps to its content's
|
|
138
|
-
intrinsic width (the base `.glass-dock` rule), so `max-inline-size` caps
|
|
139
|
-
that intrinsic width at `--dock-max-inline-size`: under the cap the
|
|
140
|
-
shrink-wrap wins → one row; over the cap the dock holds at the cap and the
|
|
141
|
-
inner `flex-wrap: wrap` row reflows to N rows. ONE token, no breakpoint.
|
|
142
|
-
(The `min(max-content, …)` form is INVALID CSS — the math functions reject
|
|
143
|
-
the `max-content` intrinsic keyword, computing the property to its initial
|
|
144
|
-
`none` and silently dropping the cap; intrinsic-shrink + this plain cap IS
|
|
145
|
-
the valid `min(max-content, cap)`.) */
|
|
146
|
-
max-inline-size: var(--dock-max-inline-size);
|
|
147
|
-
padding: var(--dock-wrap-padding-block, var(--dock-padding-block, 0.375rem))
|
|
148
|
-
var(--dock-wrap-padding-inline, 0.625rem);
|
|
149
|
-
|
|
150
|
-
/* F4 — the pill↔card radius morph. A wrap dock is a FINITE multi-row CARD
|
|
151
|
-
surface when expanded and a stadium PILL when collapsed — the SAME
|
|
152
|
-
pill↔card morph the big-dock `shape-card` path rides. The corner glides
|
|
153
|
-
on the `--dock-expand-t` W01 single-scalar: `--radius-pill` at expand-t 0
|
|
154
|
-
(collapsed), `--dock-card-radius` at expand-t 1 (expanded — UNIFIED on
|
|
155
|
-
the SAME finite-radius token the big-dock card uses; the bare 16px
|
|
156
|
-
`--radius-2xl` literal is DELETED). ONE register, no discrete snap. */
|
|
157
|
-
border-radius: calc(
|
|
158
|
-
var(--radius-pill) +
|
|
159
|
-
(var(--dock-card-radius) - var(--radius-pill)) *
|
|
160
|
-
var(--dock-expand-t)
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
/* F1 — the card-tier elevation morph ("material thickens as glass flexes
|
|
164
|
-
larger", WWDC25 §219). The wrap dock lifts from the flat thin-pill
|
|
165
|
-
`--shadow-dock` glow onto the FLOATING-tier stack (the `--shadow-dock-wrap`
|
|
166
|
-
token names the canonical composite on `:root`; a consumer retints the
|
|
167
|
-
whole card shadow by overriding THAT one token per the cartoon-shadow
|
|
168
|
-
contract). The three floating layers — drop / material-rim / under-cast —
|
|
169
|
-
fade in driven by the SAME `--dock-expand-t` scalar the radius glides on:
|
|
170
|
-
`--dock-wrap-elev` is the scalar as a 0→1 percent, so each layer's alpha
|
|
171
|
-
tracks the corner morph in LOCKSTEP (ONE clock, ONE register). At
|
|
172
|
-
expand-t 0 (collapsed/pill) the floating layers are 0%-alpha (invisible)
|
|
173
|
-
→ only the base `--shadow-dock` glow shows; at expand-t 1 (expanded/card)
|
|
174
|
-
the full floating stack grounds the multi-row silhouette. The per-layer
|
|
175
|
-
recipe mirrors `--shadow-dock-wrap` (= `--shadow-xl` + `--glass-material-rim`
|
|
176
|
-
+ `--glass-under-shadow-vivid`) so the token stays the source-of-record. */
|
|
177
|
-
--dock-wrap-elev: calc(var(--dock-expand-t) * 100%);
|
|
178
|
-
box-shadow:
|
|
179
|
-
var(--glass-edge-light),
|
|
180
|
-
var(--shadow-dock-override, var(--shadow-dock)),
|
|
181
|
-
0 8px 24px color-mix(in srgb, var(--shadow-color) calc(0.14 * var(--dock-wrap-elev)), transparent),
|
|
182
|
-
0 0 0 0.5px color-mix(in srgb, var(--shadow-color) calc(0.05 * var(--dock-wrap-elev)), transparent),
|
|
183
|
-
calc(8px * var(--glass-key-direction)) 8px 32px -4px color-mix(in srgb, oklch(0 0 0 / 0.12) var(--dock-wrap-elev), transparent);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.glass-dock.dock-overflow-wrap .dock-layer--full {
|
|
187
|
-
flex-wrap: wrap;
|
|
188
|
-
justify-content: center;
|
|
189
|
-
height: auto;
|
|
190
|
-
min-height: var(--dock-wrap-layer-min-height, var(--dock-layer-height, 2rem));
|
|
191
|
-
gap: var(--dock-wrap-row-gap, 0.25rem)
|
|
192
|
-
var(--dock-wrap-column-gap, var(--dock-layer-gap, 0.375rem));
|
|
193
|
-
/* AX.W04 — NO `transition: min-height` JS-morph (the AW.W3b spring-keyed
|
|
194
|
-
min-height detector is RETIRED — the false `proof:dock-layering-polish`
|
|
195
|
-
wrap-reflow claim is STRUCK). The reflow is intrinsic flex: rows
|
|
196
|
-
appear/vanish on the cap crossing with no second clock. The radius +
|
|
197
|
-
shadow lift ride the `--dock-expand-t` scalar (the W01 single clock),
|
|
198
|
-
NOT a CSS transition on the retired `--dock-motion-resize` list. */
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.glass-dock.dock-overflow-wrap .dock-layer--summary {
|
|
202
|
-
height: auto;
|
|
203
|
-
min-height: var(--dock-wrap-layer-min-height, var(--dock-layer-height, 2rem));
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
.glass-dock.dock-overflow-wrap .dock-separator {
|
|
207
|
-
display: none;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/* Collapsed, a wrap dock is the single-row summary PILL. `white-space: nowrap`
|
|
211
|
-
keeps the summary on one line; the inline cap stays `max-inline-size:
|
|
212
|
-
var(--dock-max-inline-size)` (inherited from the `.dock-overflow-wrap` rule
|
|
213
|
-
above) so the collapsed box still shrink-wraps to the small summary's
|
|
214
|
-
max-content (NOT the full cap). The
|
|
215
|
-
radius morph resolves to `--radius-pill` at collapsed (--dock-expand-t 0) and
|
|
216
|
-
the box-shadow to the flat `--shadow-dock` glow (--dock-wrap-elev 0%). */
|
|
217
|
-
.glass-dock.dock-overflow-wrap.collapsed {
|
|
218
|
-
white-space: nowrap;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/* AX.W45 D15 / AX.W51 D18 RECONCILE — the coarse-pointer dock growth now rides
|
|
222
|
-
the GLOBAL `--ui-scale` comfort axis, NOT a parallel dock-only 1.5×. The
|
|
223
|
-
library-wide `@media (pointer: coarse) { :root { --ui-scale:
|
|
224
|
-
var(--ui-coarse-scale, 1.5) } }` block (tokens.css) lifts the master scalar,
|
|
225
|
-
and `--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale, 1))` (its
|
|
226
|
-
re-homed definition) inherits it FOR FREE — so the dock grows ~1.5× on touch
|
|
227
|
-
WITH the buttons/inputs/badges (ONE consistent touch scale; at HEAD the dock
|
|
228
|
-
grew but the rest of the library did not — the three-scale split this resolves).
|
|
229
|
-
The whole density cascade (box + padding + gap + tab + tile-min + glyph) scales
|
|
230
|
-
in LOCKSTEP through its existing `calc(<base> * --dock-scale)` chain, zero edit.
|
|
231
|
-
|
|
232
|
-
This block keeps ONLY the dock-LOCAL extras the global axis cannot supply:
|
|
233
|
-
• `--dock-local-scale: var(--dock-mobile-scale, 1)` — the dock-local EXTRA
|
|
234
|
-
multiplier (default 1 → no extra; the dock matches the global comfort by
|
|
235
|
-
default). A consumer who wants the dock LARGER than the library on touch
|
|
236
|
-
sets `--dock-mobile-scale` and it STACKS on top of the global coarse default
|
|
237
|
-
(NOT a parallel hardcoded 1.5 — the no-double-scale reconcile).
|
|
238
|
-
• the 44px touch floor: `--dock-control-floor` + `--size-icon-btn` lift to
|
|
239
|
-
`--dock-touch-target` so the `max(…, floor)` clamp in the scaled control-size
|
|
240
|
-
guarantees ≥ 44px regardless of the scalar (a sub-1 scale cannot drop the
|
|
241
|
-
target). `--size-icon-btn` keeps its floor for STANDALONE icon-button
|
|
242
|
-
surfaces (a routed gear, no dock ancestor) that read it directly.
|
|
243
|
-
Fine pointer byte-identical (`--ui-scale` stays 1).
|
|
244
|
-
|
|
245
|
-
AP.W3 R0G-6 — selector is `.glass-dock[data-size]`, not bare `.glass-dock`:
|
|
246
|
-
the always-present density setter (0,2,0) would shadow a bare (0,1,0) rule. The
|
|
247
|
-
presence-selector (0,2,0) wins by source order, lifting `--dock-local-scale` +
|
|
248
|
-
the floor so the cascade re-resolves at touch scale. */
|
|
249
|
-
@media (pointer: coarse) {
|
|
250
|
-
.glass-dock[data-size] {
|
|
251
|
-
/* R5-2 — the coarse-register DEFAULT lives in the FALLBACK, NOT a
|
|
252
|
-
hard-pin. The coarse dock painted ~22% too big (the global
|
|
253
|
-
--ui-coarse-scale 1.5 → an ~80px collapsed pill). The dock-layer
|
|
254
|
-
comfort floors at a TIGHTER coarse register than the global --ui-scale
|
|
255
|
-
(the dock is a dense chrome strip, not a body control): --dock-local-scale
|
|
256
|
-
falls back to --dock-coarse-scale (≈0.78; × the 1.5 global = ~1.17
|
|
257
|
-
effective → a ~60px collapsed pill). The consumer knob --dock-mobile-scale
|
|
258
|
-
WINS the fallback when set on ANY ancestor (inherited in, no specificity
|
|
259
|
-
war against this block — the dead-knob trap a hard `--dock-mobile-scale:
|
|
260
|
-
0.78` here would re-create), so a consumer who wants the dock to MATCH
|
|
261
|
-
the global comfort sets --dock-mobile-scale: 1; one who wants it larger
|
|
262
|
-
sets >1. The touch floor stays held by the `max(…, --dock-control-floor)`
|
|
263
|
-
clamp in every scaled control-size (the lift just below). */
|
|
264
|
-
--dock-local-scale: var(--dock-mobile-scale, var(--dock-coarse-scale, 0.78));
|
|
265
|
-
/* R5-1 — RE-DECLARE --dock-scale HERE so the consumer knob reaches the
|
|
266
|
-
geometry cascade. The :root definition (offsets-sizing.css) computes
|
|
267
|
-
`calc(var(--ui-scale) * var(--dock-local-scale, 1))` AT :root, where
|
|
268
|
-
--dock-local-scale is the frozen identity 1 — custom-property
|
|
269
|
-
SUBSTITUTION resolves --dock-scale once at its declaring element, so
|
|
270
|
-
the descendant --dock-local-scale lift on THIS block never re-flowed
|
|
271
|
-
into it (the AX.W55 substitution-vs-inheritance trap, 3rd recurrence).
|
|
272
|
-
Re-declaring --dock-scale on the SAME element that lifts
|
|
273
|
-
--dock-local-scale makes the var() resolve against the lifted value, so
|
|
274
|
-
the --dock-mobile-scale / --dock-coarse-scale knobs reach every
|
|
275
|
-
`calc(<base> * --dock-scale)` geometry leg. Identical to the :root
|
|
276
|
-
formula by construction. */
|
|
277
|
-
--dock-scale: calc(var(--ui-scale) * var(--dock-local-scale, 1));
|
|
278
|
-
--dock-control-floor: var(--dock-touch-target, 2.75rem);
|
|
279
|
-
--size-icon-btn: var(--dock-touch-target, 2.75rem);
|
|
280
|
-
/* R5-1 SWEEP — the OTHER :root tokens that derive from --dock-scale freeze
|
|
281
|
-
it at the :root value (where --dock-local-scale is the identity 1), so the
|
|
282
|
-
R5-2 dock-local 0.78 register never reaches them: the SAME
|
|
283
|
-
substitution-vs-inheritance trap, one level out. With --dock-scale now
|
|
284
|
-
re-declared ABOVE, RE-RESOLVE each derived token on THIS element so it
|
|
285
|
-
reads the dock-local --dock-scale (else --dock-icon-glyph /
|
|
286
|
-
--dock-collapsed-padding / --dock-layer-tab-size paint at the global 1.5×
|
|
287
|
-
while the density box paints at 1.17× — a desync the R5-2 register would
|
|
288
|
-
introduce). The formulas are IDENTICAL to their :root definitions; only
|
|
289
|
-
the resolution element moves so the lifted --dock-scale flows in.
|
|
290
|
-
BB.W-PERF-PRODUCER A′-6 — --dock-icon-glyph is now a RATIO of the
|
|
291
|
-
density-painted --dock-layer-height (offsets-sizing.css + the density.css
|
|
292
|
-
[data-size] re-resolve). This coarse block @imports AFTER density.css
|
|
293
|
-
in the SAME @layer at the SAME specificity, so its --dock-icon-glyph
|
|
294
|
-
source-order-WINS on coarse pointers — it MUST carry the density-aware
|
|
295
|
-
formula too (the flat `1.25rem * --dock-scale` here would re-freeze the
|
|
296
|
-
glyph at the flat rem on touch, re-introducing the D5-1 defect the wave
|
|
297
|
-
fixes). --dock-layer-height re-resolves transitively at the lifted
|
|
298
|
-
--dock-scale (re-declared above), so the glyph tracks both the density
|
|
299
|
-
box AND the coarse register. Formula identical to the :root + density
|
|
300
|
-
re-resolve; only the resolution element moves. */
|
|
301
|
-
--dock-icon-glyph: max(
|
|
302
|
-
calc(var(--dock-layer-height, calc(2.5rem * var(--dock-scale))) * var(--dock-icon-glyph-ratio)),
|
|
303
|
-
var(--dock-icon-glyph-floor)
|
|
304
|
-
);
|
|
305
|
-
/* BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — RE-DECLARE the in-dock
|
|
306
|
-
toggle glyph knob on coarse beside `--dock-icon-glyph`. Its `:root`
|
|
307
|
-
default tracks `--dock-icon-glyph`, but a `:root`-only default would
|
|
308
|
-
freeze at the `:root` `--dock-scale` (the identity 1) while the coarse
|
|
309
|
-
`--dock-icon-glyph` above lifts — the AZ.R5-TOKENS substitution-vs-
|
|
310
|
-
inheritance dead-knob (the SAME trap the dock-scale re-declare closed,
|
|
311
|
-
mirrored for the toggle glyph). Re-declaring it HERE, against the
|
|
312
|
-
coarse-re-resolved `--dock-icon-glyph`, keeps the in-dock dark-toggle
|
|
313
|
-
glyph optically uniform with the nav glyphs on coarse AND fine pointer.
|
|
314
|
-
The `--dark-mode-toggle-padding` clamp (dark-mode-toggle.css) subtracts
|
|
315
|
-
THIS knob, so the box pad re-resolves in lockstep too. */
|
|
316
|
-
--dock-control-glyph-size: var(--dock-icon-glyph);
|
|
317
|
-
--dock-collapsed-padding: calc(0.25rem * var(--dock-scale));
|
|
318
|
-
--dock-layer-tab-size: calc(1.75rem * var(--dock-scale));
|
|
319
|
-
/* --dock-collapsed-summary-min-size derives from --dock-layer-height (the
|
|
320
|
-
density-resolved control height on .glass-dock[data-size]) — but its
|
|
321
|
-
:root definition reads --dock-layer-height at :root, where density.css
|
|
322
|
-
never sets it, so it froze at the inline 2.5rem fallback × 0.85 = 34px
|
|
323
|
-
(the pre-existing freeze, independent of R5-2). Re-resolving it HERE reads
|
|
324
|
-
the density-painted --dock-layer-height so the collapsed circle FLOOR
|
|
325
|
-
tracks the dock scale (the "perfect circle" the user named scales on touch
|
|
326
|
-
with the box, not a frozen 34px floor). */
|
|
327
|
-
--dock-collapsed-summary-min-size: calc(
|
|
328
|
-
var(--dock-layer-height, 2.5rem) * 0.85
|
|
329
|
-
);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/* dock/popover.css — BI.W-DOCK-ESCAPE — the top-layer dock popover fan.
|
|
2
|
-
*
|
|
3
|
-
* The dock's satellite fan / facet strip renders as a native `popover` surface promoted to
|
|
4
|
-
* the TOP LAYER on show (`useDockPopover` — the JS one-shot placement). The top layer is
|
|
5
|
-
* exempt from ancestor `overflow`/`clip`/`contain`/`transform`/`filter` BY SPEC, so the fan
|
|
6
|
-
* paints OVER the dock body past every former clip line — the retired `.glass-dock-frame`
|
|
7
|
-
* `display:contents` escape + the `railProjection.ts` φ²-crossing ring math are gone (there
|
|
8
|
-
* is nothing to escape from once the surface is in the top layer). The dock box is
|
|
9
|
-
* INVIOLATE: the fan is a fixed-positioned top-layer element that feeds NO size into it.
|
|
10
|
-
*
|
|
11
|
-
* PLACEMENT is the JS one-shot ONLY (`position: fixed; top/left` written by useDockPopover
|
|
12
|
-
* off `getBoundingClientRect`). This file owns the SURFACE + layout + the enter/exit bloom —
|
|
13
|
-
* NEVER `anchor-name`/`position-anchor`/`@position-try` (the banked native arm is absent;
|
|
14
|
-
* the SAF-1 Safari-transform-chain fence holds by construction).
|
|
15
|
-
*
|
|
16
|
-
* @import-ed by dock.css into the SAME `@layer components` as the other partials. */
|
|
17
|
-
@layer components {
|
|
18
|
-
:root {
|
|
19
|
-
/* The macOS-stack tuning tokens (re-expressed via @theme — Tailwind-first). */
|
|
20
|
-
--dock-stack-stagger: 26ms; /* the per-member fan delay (× var(--i)) */
|
|
21
|
-
--dock-stack-gap: calc(0.375rem * var(--dock-scale, 1));
|
|
22
|
-
--dock-stack-member-size: calc(2rem * var(--dock-scale, 1));
|
|
23
|
-
/* The per-facet accent strength (facets mode) — the BB.W-GLASS-ACCENT ≤55% rim
|
|
24
|
-
ceiling whisper; the warm-cream core + AA legibility survive. A consumer retunes
|
|
25
|
-
the carousel's accent intensity from one `:root`/scope override. */
|
|
26
|
-
--dock-facet-accent-strength: 48%;
|
|
27
|
-
/* KEPT for density.css's `--dock-content-safe-inset` content-gutter key: the fan's
|
|
28
|
-
outward reach the demo `<main>` scroll-padding clears from the content side. The
|
|
29
|
-
fan is top-layer (never inflates the dock), but a bottom/side dock still overhangs
|
|
30
|
-
its gutter, so the content reserve remains ~3 member cells. */
|
|
31
|
-
--dock-rail-extend-length: calc(
|
|
32
|
-
3 * var(--dock-stack-member-size) + 2 * var(--dock-stack-gap)
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/* ── The in-flow anchor cluster ─────────────────────────────────────────────────
|
|
37
|
-
The `.dock-stack` root holds the CORE anchor (a normal dock control) in flow — ZERO
|
|
38
|
-
gutter presence, ZERO box growth. The fan is the top-layer popover below. */
|
|
39
|
-
.dock-stack {
|
|
40
|
-
display: inline-flex;
|
|
41
|
-
align-items: center;
|
|
42
|
-
}
|
|
43
|
-
.dock-stack-core {
|
|
44
|
-
flex: 0 0 auto;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/* ── THE FAN — the top-layer popover surface ────────────────────────────────────
|
|
48
|
-
Reset the UA popover box (centered `inset:0; margin:auto`) so the JS one-shot
|
|
49
|
-
`top`/`left` win, and paint the floating glass strip. NO anchor CSS. */
|
|
50
|
-
.dock-stack-fan[popover] {
|
|
51
|
-
margin: 0;
|
|
52
|
-
inset: auto;
|
|
53
|
-
border: 0;
|
|
54
|
-
padding: calc(0.25rem * var(--dock-scale, 1));
|
|
55
|
-
background: transparent;
|
|
56
|
-
overflow: visible;
|
|
57
|
-
display: flex;
|
|
58
|
-
gap: var(--dock-stack-gap);
|
|
59
|
-
/* The enter/exit BLOOM — compositor-only (scale/opacity), on the --spring-dock
|
|
60
|
-
clock, from the anchor edge. `@starting-style` + `allow-discrete` carry the
|
|
61
|
-
native popover display:none↔flex transition (the modern top-layer entrance —
|
|
62
|
-
NO class-toggle race). */
|
|
63
|
-
opacity: 0;
|
|
64
|
-
scale: 0.92;
|
|
65
|
-
transition:
|
|
66
|
-
opacity var(--duration-fast) var(--ease-out),
|
|
67
|
-
scale var(--spring-dock-duration) var(--spring-dock),
|
|
68
|
-
overlay var(--spring-dock-duration) allow-discrete,
|
|
69
|
-
display var(--spring-dock-duration) allow-discrete;
|
|
70
|
-
}
|
|
71
|
-
.dock-stack-fan[popover]:popover-open {
|
|
72
|
-
opacity: 1;
|
|
73
|
-
scale: 1;
|
|
74
|
-
}
|
|
75
|
-
@starting-style {
|
|
76
|
-
.dock-stack-fan[popover]:popover-open {
|
|
77
|
-
opacity: 0;
|
|
78
|
-
scale: 0.92;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/* Fan from the anchor edge — vertical dock fans a ROW to the inline-end, a horizontal
|
|
82
|
-
(bottom) dock fans a COLUMN upward. The transform-origin biases the bloom toward the
|
|
83
|
-
anchor. */
|
|
84
|
-
.dock-stack-fan.vertical {
|
|
85
|
-
flex-direction: row;
|
|
86
|
-
align-items: center;
|
|
87
|
-
transform-origin: left center;
|
|
88
|
-
}
|
|
89
|
-
.dock-stack-fan:not(.vertical) {
|
|
90
|
-
flex-direction: column;
|
|
91
|
-
align-items: center;
|
|
92
|
-
transform-origin: center bottom;
|
|
93
|
-
}
|
|
94
|
-
.dock-stack-fan-scroll {
|
|
95
|
-
display: flex;
|
|
96
|
-
gap: var(--dock-stack-gap);
|
|
97
|
-
}
|
|
98
|
-
.dock-stack-fan.vertical .dock-stack-fan-scroll {
|
|
99
|
-
flex-direction: row;
|
|
100
|
-
}
|
|
101
|
-
.dock-stack-fan:not(.vertical) .dock-stack-fan-scroll {
|
|
102
|
-
flex-direction: column;
|
|
103
|
-
}
|
|
104
|
-
.dock-stack-fan[data-wrap] .dock-stack-fan-scroll {
|
|
105
|
-
flex-wrap: wrap;
|
|
106
|
-
max-inline-size: calc(
|
|
107
|
-
var(--dock-stack-member-size) * 3 + var(--dock-stack-gap) * 2 +
|
|
108
|
-
calc(0.5rem * var(--dock-scale, 1))
|
|
109
|
-
);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/* ── The members — FULLY-VISIBLE glass icons (never shadowed half-tucked chips) ──
|
|
113
|
-
Each member is a `--glass-bg-floating` tier icon with the catch-light rim. They
|
|
114
|
-
stagger IN on the fan bloom (per-member `--i` delay). */
|
|
115
|
-
.dock-stack-fan .dock-stack-member {
|
|
116
|
-
flex: 0 0 auto;
|
|
117
|
-
inline-size: var(--dock-stack-member-size);
|
|
118
|
-
block-size: var(--dock-stack-member-size);
|
|
119
|
-
background: var(--glass-bg-floating);
|
|
120
|
-
backdrop-filter: var(--glass-blur-floating);
|
|
121
|
-
-webkit-backdrop-filter: var(--glass-blur-floating);
|
|
122
|
-
box-shadow:
|
|
123
|
-
var(--glass-edge-light),
|
|
124
|
-
var(--glass-specular),
|
|
125
|
-
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 22%, transparent);
|
|
126
|
-
border-radius: var(--radius-pill);
|
|
127
|
-
color: color-mix(in srgb, var(--dock-fg-on-aurora, var(--foreground)) 88%, transparent);
|
|
128
|
-
/* the per-member stagger IN — compositor-only opacity/scale, delayed by reading
|
|
129
|
-
order (the fan bloom carries the group; this adds the cascade). */
|
|
130
|
-
opacity: 0;
|
|
131
|
-
scale: 0.7;
|
|
132
|
-
transition:
|
|
133
|
-
opacity var(--duration-fast) var(--ease-out)
|
|
134
|
-
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
135
|
-
scale var(--spring-dock-duration) var(--spring-dock)
|
|
136
|
-
calc(var(--dock-stack-stagger) * var(--i, 0)),
|
|
137
|
-
background-color var(--duration-fast) var(--ease-standard),
|
|
138
|
-
box-shadow var(--duration-fast) var(--ease-standard);
|
|
139
|
-
}
|
|
140
|
-
.dock-stack-fan:popover-open .dock-stack-member {
|
|
141
|
-
opacity: 1;
|
|
142
|
-
scale: 1;
|
|
143
|
-
}
|
|
144
|
-
@starting-style {
|
|
145
|
-
.dock-stack-fan:popover-open .dock-stack-member {
|
|
146
|
-
opacity: 0;
|
|
147
|
-
scale: 0.7;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
.dark .dock-stack-fan .dock-stack-member {
|
|
151
|
-
box-shadow:
|
|
152
|
-
var(--glass-edge-light-dark),
|
|
153
|
-
var(--glass-specular-dark),
|
|
154
|
-
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 30%, transparent);
|
|
155
|
-
}
|
|
156
|
-
/* The hover/active register — the plate firms, the glyph wakes (the selected-reads-as-
|
|
157
|
-
glass tier, W-REGISTER-IOS; NEVER a saturated brand hue). */
|
|
158
|
-
.dock-stack-fan .dock-stack-member:hover {
|
|
159
|
-
background: var(--dock-control-hover-bg, var(--glass-bg-resting));
|
|
160
|
-
color: var(--dock-fg-on-aurora, var(--foreground));
|
|
161
|
-
}
|
|
162
|
-
.dock-stack-fan .dock-stack-member.is-active {
|
|
163
|
-
background: var(--dock-control-active-bg, var(--glass-bg-floating));
|
|
164
|
-
color: var(--dock-fg-on-aurora, var(--foreground));
|
|
165
|
-
box-shadow:
|
|
166
|
-
var(--glass-edge-light),
|
|
167
|
-
var(--glass-specular),
|
|
168
|
-
0 0 0 1px color-mix(in srgb, var(--foreground) 12%, transparent),
|
|
169
|
-
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 28%, transparent);
|
|
170
|
-
}
|
|
171
|
-
.dark .dock-stack-fan .dock-stack-member.is-active {
|
|
172
|
-
box-shadow:
|
|
173
|
-
var(--glass-edge-light-dark),
|
|
174
|
-
var(--glass-specular-dark),
|
|
175
|
-
0 0 0 1px color-mix(in srgb, var(--foreground) 18%, transparent),
|
|
176
|
-
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 36%, transparent);
|
|
177
|
-
}
|
|
178
|
-
.dock-stack-fan .dock-stack-member svg {
|
|
179
|
-
inline-size: 0.875rem;
|
|
180
|
-
block-size: 0.875rem;
|
|
181
|
-
flex-shrink: 0;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/* ── The FACET-carousel mode (BB.W-GLASS-ACCENT) ─────────────────────────────────
|
|
185
|
-
Each chip carries its OWN `--glass-accent` hue (written per-chip by DockStack in
|
|
186
|
-
facets mode), so the strip reads as a row of distinct accent-tinted contexts — the
|
|
187
|
-
accent mixes into the rim + a soft chromatic glint (the SAME `color-mix(in oklab, …)`
|
|
188
|
-
seam `glass/rim.css` composes; NOT a plate fill). At the resting transparent/0%
|
|
189
|
-
no-op this is byte-identical to the stack member (presets-in-consumers — the facet
|
|
190
|
-
hue is the consumer's context color, never a library token). */
|
|
191
|
-
.dock-stack-fan .dock-facet-chip {
|
|
192
|
-
--dock-facet-rim-ink: color-mix(
|
|
193
|
-
in oklab,
|
|
194
|
-
var(--glass-rim-ink, hsl(0 0% 100% / 0.3)),
|
|
195
|
-
var(--glass-accent) var(--glass-accent-strength, 0%)
|
|
196
|
-
);
|
|
197
|
-
box-shadow:
|
|
198
|
-
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
199
|
-
var(--glass-specular),
|
|
200
|
-
0 0 0 1px color-mix(in oklab, transparent, var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
201
|
-
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 22%, transparent);
|
|
202
|
-
}
|
|
203
|
-
.dark .dock-stack-fan .dock-facet-chip {
|
|
204
|
-
--dock-facet-rim-ink: color-mix(
|
|
205
|
-
in oklab,
|
|
206
|
-
var(--glass-rim-ink, hsl(0 0% 100% / 0.4)),
|
|
207
|
-
var(--glass-accent) var(--glass-accent-strength, 0%)
|
|
208
|
-
);
|
|
209
|
-
box-shadow:
|
|
210
|
-
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
211
|
-
var(--glass-specular-dark),
|
|
212
|
-
0 0 0 1px color-mix(in oklab, transparent, var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
213
|
-
0 2px 6px -2px color-mix(in srgb, var(--shadow-color) 30%, transparent);
|
|
214
|
-
}
|
|
215
|
-
.dock-stack-fan .dock-facet-chip.is-active {
|
|
216
|
-
background: var(--dock-control-active-bg, var(--glass-bg-floating));
|
|
217
|
-
box-shadow:
|
|
218
|
-
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
219
|
-
var(--glass-specular),
|
|
220
|
-
0 0 0 1px color-mix(in oklab, color-mix(in srgb, var(--foreground) 12%, transparent), var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
221
|
-
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 28%, transparent);
|
|
222
|
-
}
|
|
223
|
-
.dark .dock-stack-fan .dock-facet-chip.is-active {
|
|
224
|
-
box-shadow:
|
|
225
|
-
inset 0 1px 0 var(--dock-facet-rim-ink),
|
|
226
|
-
var(--glass-specular-dark),
|
|
227
|
-
0 0 0 1px color-mix(in oklab, color-mix(in srgb, var(--foreground) 18%, transparent), var(--glass-accent) var(--glass-accent-strength, 0%)),
|
|
228
|
-
0 3px 8px -2px color-mix(in srgb, var(--shadow-color) 36%, transparent);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/* PRM — the fan SNAPS to terminal (the fade survives, the transform + stagger drop —
|
|
232
|
-
P6 / proof:no-layout-animation PRM carve). */
|
|
233
|
-
@media (prefers-reduced-motion: reduce) {
|
|
234
|
-
.dock-stack-fan[popover] {
|
|
235
|
-
scale: 1;
|
|
236
|
-
transition:
|
|
237
|
-
opacity var(--duration-fast) linear,
|
|
238
|
-
overlay var(--duration-fast) allow-discrete,
|
|
239
|
-
display var(--duration-fast) allow-discrete;
|
|
240
|
-
}
|
|
241
|
-
.dock-stack-fan .dock-stack-member {
|
|
242
|
-
scale: 1;
|
|
243
|
-
transition:
|
|
244
|
-
opacity var(--duration-fast) linear,
|
|
245
|
-
background-color var(--duration-fast) var(--ease-standard),
|
|
246
|
-
box-shadow var(--duration-fast) var(--ease-standard);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/* dock/search.css — the dock-as-native-dynamic-search-bar field surface (BC.W-DOCK-SEARCH).
|
|
2
|
-
*
|
|
3
|
-
* The active dock-search field + its placeholder + the result rows read CLEARLY forward
|
|
4
|
-
* over whatever backdrop the dock floats on (≥4.5:1, the W55 darken seam) — never the
|
|
5
|
-
* pale-ghost-fading-into-content trap (the NN/g defect, WWDC §219 "buttons remain
|
|
6
|
-
* legible"). The field surface composes the W55 `--glass-tint-strength-aa` bright-bucket
|
|
7
|
-
* darken at the ELEMENT level (the `color-mix(in oklab, <rung>, var(--glass-tint-source)
|
|
8
|
-
* var(--glass-tint-strength))` seam glass/ladder.css + morph.css already compose) — NOT
|
|
9
|
-
* the RAW pre-substituted `--glass-bg-dock` token (the substitution-vs-inheritance trap
|
|
10
|
-
* the dock surfaces already hit: a surface reading the pre-baked `--glass-bg-dock` baked
|
|
11
|
-
* at `:root` 0% strength does NOT darken — the pale-fade). At the 0%/floor default the
|
|
12
|
-
* inner oklab mix is a no-op (byte-identical to the un-tinted rung); under the bright
|
|
13
|
-
* bucket it darkens-over-light (and lifts-over-dark per W-DARK-MATERIAL).
|
|
14
|
-
*
|
|
15
|
-
* The result rows ride `.glass-menu-row` (the glass-quiet hover-lift, BA.W-MENU-GLASS —
|
|
16
|
-
* CONSUMED here, the glassify is BC.W-SEARCH-CUSTOM's). The customization-surface axes
|
|
17
|
-
* (size/surface/variant) are BC.W-SEARCH-CUSTOM's — this partial only seats the field +
|
|
18
|
-
* the legibility seam. The morph itself is the dock's OWN `--dock-morph-t` + the
|
|
19
|
-
* byte-untouched `morph-bridge.css` metaball (READ-ONLY — bound, never edited). */
|
|
20
|
-
|
|
21
|
-
@layer components {
|
|
22
|
-
/* The search-field region inside the morph aperture. The consumer slots its
|
|
23
|
-
<SearchBar>/<FuzzySearch> here; this rule owns the legibility seam + the layout
|
|
24
|
-
inside the aperture (a column: the field over its dropdown). It is present ONLY on
|
|
25
|
-
a `[data-search]` dock (additive — a non-search dock never carries it). */
|
|
26
|
-
.glass-dock[data-search] .dock-search-field {
|
|
27
|
-
display: flex;
|
|
28
|
-
flex-direction: column;
|
|
29
|
-
inline-size: 100%;
|
|
30
|
-
min-inline-size: 0;
|
|
31
|
-
gap: var(--dock-search-field-gap, 0.375rem);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* The ACTIVE field surface — the W55 element-level oklab tint (NOT the raw
|
|
35
|
-
`--glass-bg-dock`). The field reads the floating rung darkened toward the warm-ink
|
|
36
|
-
at the bright-bucket strength, so it reads ≥4.5:1 over a busy backdrop. The
|
|
37
|
-
`--glass-tint-source`/`--glass-tint-strength` are the SAME element-level customs
|
|
38
|
-
the dock plate self-engages (morph.css's `:where(.glass-dock)` rule re-points them
|
|
39
|
-
under the bright bucket); this field rides that lockstep, never a field-local
|
|
40
|
-
recipe. The field TEXT is `--foreground` (the full warm ink); the
|
|
41
|
-
placeholder/muted caption is `--on-glass-muted` (5.76:1 vs the plate). */
|
|
42
|
-
.glass-dock[data-search] .dock-search-field .input-bar {
|
|
43
|
-
background: color-mix(
|
|
44
|
-
in oklab,
|
|
45
|
-
var(--glass-bg-floating),
|
|
46
|
-
var(--glass-tint-source) var(--glass-tint-strength)
|
|
47
|
-
);
|
|
48
|
-
color: var(--foreground);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/* The placeholder + the autocomplete ghost-text + any muted caption inside the field
|
|
52
|
-
read the on-glass muted rung (NOT `--muted-foreground`, which is calibrated against
|
|
53
|
-
the opaque page and collapses on a translucent darkened plate). */
|
|
54
|
-
.glass-dock[data-search] .dock-search-field .input-bar-field::placeholder,
|
|
55
|
-
.glass-dock[data-search] .dock-search-field .dock-search-ghost,
|
|
56
|
-
.glass-dock[data-search] .dock-search-field .dock-search-result-meta {
|
|
57
|
-
color: var(--on-glass-muted);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* The dropdown result rows ride the shared `.glass-menu-row` glass-quiet hover-lift
|
|
61
|
-
(BA.W-MENU-GLASS — CONSUMED, not re-authored). The dock-search list applies
|
|
62
|
-
`.glass-menu-row` per row; this rule reaches the selected/highlighted row through
|
|
63
|
-
the SAME register the menu families use (no flat `bg-accent`/`bg-muted` fork). The
|
|
64
|
-
active result reads the data-highlighted state the menu recipe already paints. */
|
|
65
|
-
.glass-dock[data-search] .dock-search-field .dock-search-result {
|
|
66
|
-
color: var(--foreground);
|
|
67
|
-
}
|
|
68
|
-
}
|