@mkbabb/glass-ui 0.2.0 → 2.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 +170 -70
- package/dist/CardFooter-Yi0xtLLd.js +129 -0
- package/dist/CollapsibleContent-DHRuXE3P.js +52 -0
- package/dist/CommandShortcut-_INFUMu6.js +285 -0
- package/dist/ContextMenuContent-CvXfU5qz.js +85 -0
- package/dist/ContextMenuSubContent-DCkweFW9.js +250 -0
- package/dist/DataTable-Ce00dbHD.js +460 -0
- package/dist/DialogContent-CmCijgX9.js +93 -0
- package/dist/DialogFooter-DRdaCok0.js +165 -0
- package/dist/DiscoGlyph-wRA02zAJ.js +132 -0
- package/dist/GlyphFace-BnPMUZ16.js +51 -0
- package/dist/HoverCardContent-4nN5-5bz.js +83 -0
- package/dist/HoverPopover-Btv4RQfv.js +80 -0
- package/dist/IconTooltip-ge_mBSWR.js +25 -0
- package/dist/Input-CbakTe3B.js +32 -0
- package/dist/InstrumentChassis-DOaVYyWq.js +65 -0
- package/dist/InstrumentRail-jHDqXj70.js +44 -0
- package/dist/Label-C8QMJSsf.js +32 -0
- package/dist/MetricBadge-DRBB18Xq.js +78 -0
- package/dist/ModalOverlay-DKLVY-cj.js +53 -0
- package/dist/Notification-DrI1DT2v.js +99 -0
- package/dist/PaperBackdrop-Bc2drCqJ.js +31 -0
- package/dist/PopoverContent-BCH4eYs8.js +121 -0
- package/dist/Progress-CCH-2UBR.js +126 -0
- package/dist/ScrollingText-7P8skg5W.js +40 -0
- package/dist/SelectGroup-O69GTQ77.js +31 -0
- package/dist/SelectScrollDownButton-yu8EYUnu.js +235 -0
- package/dist/SelectSeparator-GTHxKO0a.js +49 -0
- package/dist/Separator-_NCypg_C.js +37 -0
- package/dist/Switch-CL0uxu8F.js +41 -0
- package/dist/Toaster-DY8_jtHv.js +255 -0
- package/dist/ToggleGroupItem-BYG_8M9M.js +152 -0
- package/dist/TooltipProvider-C5QLSPto.js +104 -0
- package/dist/UnderlineTabs-BtrUcXn-.js +64 -0
- package/dist/_plugin-vue_export-helper-n-_DRHWS.js +8 -0
- package/dist/animated-digit.d.ts +1 -0
- package/dist/animated-digit.js +44 -0
- package/dist/api/index.d.ts +30 -0
- package/dist/api.js +2 -0
- package/dist/aurora.d.ts +1 -0
- package/dist/aurora.js +541 -0
- package/dist/badge-BbxVKZfw.js +49 -0
- package/dist/badge.d.ts +1 -0
- package/dist/badge.js +2 -0
- package/dist/button-BlOW34DT.js +70 -0
- package/dist/button.d.ts +1 -0
- package/dist/button.js +2 -0
- package/dist/card.d.ts +1 -0
- package/dist/card.js +2 -0
- package/dist/carousel.d.ts +2 -0
- package/dist/carousel.js +394 -0
- package/dist/check-dwgetki8.js +7 -0
- package/dist/chevron-down-DILQA1t6.js +7 -0
- package/dist/chevron-right-fS7fal2t.js +7 -0
- package/dist/chevron-up-BtYjYQOS.js +7 -0
- package/dist/cn-DJXf4yaB.js +97 -0
- package/dist/collapsible.d.ts +1 -0
- package/dist/collapsible.js +2 -0
- package/dist/command.d.ts +1 -0
- package/dist/command.js +2 -0
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +48 -0
- package/dist/components/custom/animated-digit/index.d.ts +2 -0
- package/dist/components/custom/aurora/Aurora.vue.d.ts +95 -0
- package/dist/components/custom/aurora/composables/color.d.ts +39 -0
- package/dist/components/custom/aurora/composables/configSource.d.ts +10 -0
- package/dist/components/custom/aurora/composables/runtime.d.ts +54 -0
- package/dist/components/custom/aurora/composables/useAurora.d.ts +67 -0
- package/dist/components/custom/aurora/composables/useCursorInteraction.d.ts +25 -0
- package/dist/components/custom/aurora/index.d.ts +9 -0
- package/dist/components/custom/aurora/presets.d.ts +121 -0
- package/dist/components/custom/aurora/renderMode.d.ts +30 -0
- package/dist/components/custom/aurora/shaders/aurora.frag.d.ts +1 -0
- package/dist/components/custom/aurora/shaders/aurora.vert.d.ts +1 -0
- package/dist/components/custom/configurator/Configurator.vue.d.ts +102 -0
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +68 -0
- package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +63 -0
- package/dist/components/custom/configurator/density.d.ts +30 -0
- package/dist/components/custom/configurator/index.d.ts +6 -0
- package/dist/components/custom/configurator/useConfiguratorState.d.ts +45 -0
- package/dist/components/custom/confirm-dialog/ConfirmDialog.vue.d.ts +32 -0
- package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +23 -0
- package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +58 -0
- package/dist/components/custom/disco-glyph/index.d.ts +1 -0
- package/dist/components/custom/dock/DockDropdownTrigger.vue.d.ts +29 -0
- package/dist/components/custom/dock/DockIconButton.vue.d.ts +30 -0
- package/dist/components/custom/dock/DockLayer.vue.d.ts +34 -0
- package/dist/components/custom/dock/DockLayerGroup.vue.d.ts +43 -0
- package/dist/components/custom/dock/DockSelectTrigger.vue.d.ts +29 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +39 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +96 -0
- package/dist/components/custom/dock/composables/dockContext.d.ts +40 -0
- package/dist/components/custom/dock/composables/dockLayerContext.d.ts +29 -0
- package/dist/components/custom/dock/composables/index.d.ts +7 -0
- package/dist/components/custom/dock/composables/isTeleportedTarget.d.ts +9 -0
- package/dist/components/custom/dock/composables/useDockState.d.ts +70 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +34 -0
- package/dist/components/custom/dock/index.d.ts +9 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +40 -0
- package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +36 -0
- package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +28 -0
- package/dist/components/custom/glass-carousel/index.d.ts +4 -0
- package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +30 -0
- package/dist/components/custom/glass-panel/GlassPanel.vue.d.ts +41 -0
- package/dist/components/custom/glass-panel/index.d.ts +2 -0
- package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +64 -0
- package/dist/components/custom/glyph-face/index.d.ts +2 -0
- package/dist/components/custom/glyph-face/keys.d.ts +35 -0
- package/dist/components/custom/header-ribbon/HeaderRibbon.vue.d.ts +31 -0
- package/dist/components/custom/header-ribbon/index.d.ts +2 -0
- package/dist/components/custom/header-ribbon/types.d.ts +7 -0
- package/dist/components/custom/hover-popover/HoverPopover.vue.d.ts +71 -0
- package/dist/components/custom/hover-popover/index.d.ts +1 -0
- package/dist/components/custom/icon-tooltip/IconTooltip.vue.d.ts +16 -0
- package/dist/components/custom/infinite-scroll/InfiniteScroll.vue.d.ts +33 -0
- package/dist/components/custom/infinite-scroll/composables/types.d.ts +21 -0
- package/dist/components/custom/infinite-scroll/composables/useInfiniteScroll.d.ts +9 -0
- package/dist/components/custom/instrument-chassis/ChassisDivider.vue.d.ts +30 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +82 -0
- package/dist/components/custom/instrument-chassis/index.d.ts +3 -0
- package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +91 -0
- package/dist/components/custom/instrument-rail/index.d.ts +2 -0
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +36 -0
- package/dist/components/custom/labeled-field/LabeledInput.vue.d.ts +15 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +18 -0
- package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +16 -0
- package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +13 -0
- package/dist/components/custom/labeled-field/index.d.ts +5 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +39 -0
- package/dist/components/custom/metric-badge/index.d.ts +1 -0
- package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +97 -0
- package/dist/components/custom/metric-cell/index.d.ts +2 -0
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +103 -0
- package/dist/components/custom/metric-stack/MetricStack.vue.d.ts +92 -0
- package/dist/components/custom/metric-stack/index.d.ts +4 -0
- package/dist/components/custom/paper-backdrop/PaperBackdrop.vue.d.ts +21 -0
- package/dist/components/custom/paper-backdrop/index.d.ts +2 -0
- package/dist/components/custom/pulse/Pulse.vue.d.ts +53 -0
- package/dist/components/custom/pulse/index.d.ts +1 -0
- package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +67 -0
- package/dist/components/custom/responsive-tabs/index.d.ts +2 -0
- package/dist/components/custom/scrolling-text/ScrollingText.vue.d.ts +20 -0
- package/dist/components/custom/scrolling-text/index.d.ts +1 -0
- package/dist/components/custom/search/FuzzySearch.vue.d.ts +16 -0
- package/dist/components/custom/search/SearchBar.vue.d.ts +30 -0
- package/dist/components/custom/search/composables/fuzzySearchIndex.d.ts +42 -0
- package/dist/components/custom/search/composables/types.d.ts +31 -0
- package/dist/components/custom/search/composables/useFuzzySearch.d.ts +12 -0
- package/dist/components/custom/sortable-list/SortableHandle.vue.d.ts +32 -0
- package/dist/components/custom/sortable-list/SortableItem.vue.d.ts +38 -0
- package/dist/components/custom/sortable-list/SortableList.vue.d.ts +76 -0
- package/dist/components/custom/sortable-list/context.d.ts +26 -0
- package/dist/components/custom/sortable-list/index.d.ts +4 -0
- package/dist/components/custom/stacked-icons/StackedIconGroup.vue.d.ts +30 -0
- package/dist/components/custom/stacked-icons/index.d.ts +2 -0
- package/dist/components/custom/stacked-icons/types.d.ts +18 -0
- package/dist/components/custom/status-dot/StatusDot.vue.d.ts +18 -0
- package/dist/components/custom/status-dot/index.d.ts +1 -0
- package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +24 -0
- package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +56 -0
- package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +17 -0
- package/dist/components/custom/timeline/ContinuousTimeline.vue.d.ts +118 -0
- package/dist/components/custom/timeline/GlassTimeline.vue.d.ts +114 -0
- package/dist/components/custom/timeline/ScrubberTimeline.vue.d.ts +29 -0
- package/dist/components/custom/timeline/SegmentedTimeline.vue.d.ts +46 -0
- package/dist/components/custom/timeline/geometry.d.ts +100 -0
- package/dist/components/custom/timeline/index.d.ts +2 -0
- package/dist/components/custom/timeline/types.d.ts +57 -0
- package/dist/components/custom/toggle-chip/ToggleChip.vue.d.ts +39 -0
- package/dist/components/custom/toggle-chip/index.d.ts +17 -0
- package/dist/components/custom/typewriter/TypewriterText.vue.d.ts +85 -0
- package/dist/components/custom/typewriter/composables/useTypewriter.d.ts +22 -0
- package/dist/components/custom/typewriter/types.d.ts +137 -0
- package/dist/components/custom/typewriter/utils/keyboard.d.ts +15 -0
- package/dist/components/custom/typewriter/utils/pausePatterns.d.ts +28 -0
- package/dist/components/custom/typewriter/utils/timing.d.ts +17 -0
- package/dist/components/custom/typewriter/utils/typoStateMachine.d.ts +24 -0
- package/dist/components/ui/_shared/ModalOverlay.vue.d.ts +90 -0
- package/dist/components/ui/_shared/index.d.ts +2 -0
- package/dist/components/ui/_shared/menuItemVariants.d.ts +32 -0
- package/dist/components/ui/_shared/useStalePropWarning.d.ts +27 -0
- package/dist/components/ui/accordion/Accordion.vue.d.ts +19 -0
- package/dist/components/ui/accordion/AccordionContent.vue.d.ts +18 -0
- package/dist/components/ui/accordion/AccordionItem.vue.d.ts +18 -0
- package/dist/components/ui/accordion/AccordionTrigger.vue.d.ts +20 -0
- package/dist/components/ui/accordion/index.d.ts +4 -0
- package/dist/components/ui/alert/Alert.vue.d.ts +19 -0
- package/dist/components/ui/alert/AlertDescription.vue.d.ts +17 -0
- package/dist/components/ui/alert/AlertTitle.vue.d.ts +17 -0
- package/dist/components/ui/alert/index.d.ts +8 -0
- package/dist/components/ui/avatar/Avatar.vue.d.ts +23 -0
- package/dist/components/ui/avatar/AvatarFallback.vue.d.ts +14 -0
- package/dist/components/ui/avatar/AvatarImage.vue.d.ts +4 -0
- package/dist/components/ui/avatar/index.d.ts +9 -0
- package/dist/components/ui/badge/Badge.vue.d.ts +20 -0
- package/dist/components/ui/badge/index.d.ts +7 -0
- package/dist/components/ui/button/Button.vue.d.ts +23 -0
- package/dist/components/ui/button/index.d.ts +7 -0
- package/dist/components/ui/card/Card.vue.d.ts +56 -0
- package/dist/components/ui/card/CardContent.vue.d.ts +17 -0
- package/dist/components/ui/card/CardDescription.vue.d.ts +17 -0
- package/dist/components/ui/card/CardFooter.vue.d.ts +17 -0
- package/dist/components/ui/card/CardHeader.vue.d.ts +55 -0
- package/dist/components/ui/card/CardTitle.vue.d.ts +17 -0
- package/dist/components/ui/card/index.d.ts +6 -0
- package/dist/components/ui/carousel/Carousel.vue.d.ts +37 -0
- package/dist/components/ui/carousel/CarouselContent.vue.d.ts +16 -0
- package/dist/components/ui/carousel/CarouselDots.vue.d.ts +4 -0
- package/dist/components/ui/carousel/CarouselItem.vue.d.ts +14 -0
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +22 -0
- package/dist/components/ui/carousel/CarouselPager.vue.d.ts +10 -0
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +22 -0
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +51 -0
- package/dist/components/ui/carousel/index.d.ts +10 -0
- package/dist/components/ui/carousel/interface.d.ts +20 -0
- package/dist/components/ui/carousel/useCarousel.d.ts +20 -0
- package/dist/components/ui/checkbox/Checkbox.vue.d.ts +22 -0
- package/dist/components/ui/checkbox/index.d.ts +1 -0
- package/dist/components/ui/collapsible/Collapsible.vue.d.ts +20 -0
- package/dist/components/ui/collapsible/CollapsibleContent.vue.d.ts +14 -0
- package/dist/components/ui/collapsible/CollapsibleTrigger.vue.d.ts +14 -0
- package/dist/components/ui/collapsible/index.d.ts +3 -0
- package/dist/components/ui/combobox/Combobox.vue.d.ts +29 -0
- package/dist/components/ui/combobox/ComboboxAnchor.vue.d.ts +18 -0
- package/dist/components/ui/combobox/ComboboxEmpty.vue.d.ts +18 -0
- package/dist/components/ui/combobox/ComboboxGroup.vue.d.ts +19 -0
- package/dist/components/ui/combobox/ComboboxInput.vue.d.ts +22 -0
- package/dist/components/ui/combobox/ComboboxItem.vue.d.ts +22 -0
- package/dist/components/ui/combobox/ComboboxItemIndicator.vue.d.ts +18 -0
- package/dist/components/ui/combobox/ComboboxList.vue.d.ts +32 -0
- package/dist/components/ui/combobox/ComboboxSeparator.vue.d.ts +18 -0
- package/dist/components/ui/combobox/ComboboxViewport.vue.d.ts +18 -0
- package/dist/components/ui/combobox/index.d.ts +11 -0
- package/dist/components/ui/command/Command.vue.d.ts +35 -0
- package/dist/components/ui/command/CommandDialog.vue.d.ts +18 -0
- package/dist/components/ui/command/CommandEmpty.vue.d.ts +18 -0
- package/dist/components/ui/command/CommandGroup.vue.d.ts +19 -0
- package/dist/components/ui/command/CommandInput.vue.d.ts +8 -0
- package/dist/components/ui/command/CommandItem.vue.d.ts +22 -0
- package/dist/components/ui/command/CommandList.vue.d.ts +30 -0
- package/dist/components/ui/command/CommandSeparator.vue.d.ts +18 -0
- package/dist/components/ui/command/CommandShortcut.vue.d.ts +17 -0
- package/dist/components/ui/command/index.d.ts +9 -0
- package/dist/components/ui/context-menu/ContextMenu.vue.d.ts +18 -0
- package/dist/components/ui/context-menu/ContextMenuCheckboxItem.vue.d.ts +24 -0
- package/dist/components/ui/context-menu/ContextMenuContent.vue.d.ts +30 -0
- package/dist/components/ui/context-menu/ContextMenuItem.vue.d.ts +23 -0
- package/dist/components/ui/context-menu/ContextMenuLabel.vue.d.ts +19 -0
- package/dist/components/ui/context-menu/ContextMenuRadioGroup.vue.d.ts +18 -0
- package/dist/components/ui/context-menu/ContextMenuRadioItem.vue.d.ts +22 -0
- package/dist/components/ui/context-menu/ContextMenuSeparator.vue.d.ts +8 -0
- package/dist/components/ui/context-menu/ContextMenuShortcut.vue.d.ts +17 -0
- package/dist/components/ui/context-menu/ContextMenuSubContent.vue.d.ts +34 -0
- package/dist/components/ui/context-menu/ContextMenuSubTrigger.vue.d.ts +19 -0
- package/dist/components/ui/context-menu/ContextMenuTrigger.vue.d.ts +14 -0
- package/dist/components/ui/context-menu/index.d.ts +12 -0
- package/dist/components/ui/data-table/DataTable.vue.d.ts +81 -0
- package/dist/components/ui/data-table/DataTablePagination.vue.d.ts +13 -0
- package/dist/components/ui/data-table/types.d.ts +56 -0
- package/dist/components/ui/dialog/Dialog.vue.d.ts +18 -0
- package/dist/components/ui/dialog/DialogClose.vue.d.ts +14 -0
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +71 -0
- package/dist/components/ui/dialog/DialogDescription.vue.d.ts +18 -0
- package/dist/components/ui/dialog/DialogFooter.vue.d.ts +17 -0
- package/dist/components/ui/dialog/DialogHeader.vue.d.ts +17 -0
- package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +33 -0
- package/dist/components/ui/dialog/DialogTitle.vue.d.ts +18 -0
- package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +14 -0
- package/dist/components/ui/dialog/index.d.ts +9 -0
- package/dist/components/ui/drawer/Drawer.vue.d.ts +30 -0
- package/dist/components/ui/drawer/DrawerContent.vue.d.ts +32 -0
- package/dist/components/ui/drawer/DrawerDescription.vue.d.ts +18 -0
- package/dist/components/ui/drawer/DrawerFooter.vue.d.ts +17 -0
- package/dist/components/ui/drawer/DrawerHeader.vue.d.ts +17 -0
- package/dist/components/ui/drawer/DrawerOverlay.vue.d.ts +8 -0
- package/dist/components/ui/drawer/DrawerTitle.vue.d.ts +18 -0
- package/dist/components/ui/drawer/index.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/DropdownMenu.vue.d.ts +18 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +24 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuContent.vue.d.ts +32 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuGroup.vue.d.ts +14 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuItem.vue.d.ts +19 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuLabel.vue.d.ts +19 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +18 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +22 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSeparator.vue.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuShortcut.vue.d.ts +17 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSub.vue.d.ts +18 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +34 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +18 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuTrigger.vue.d.ts +14 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +15 -0
- package/dist/components/ui/hover-card/HoverCard.vue.d.ts +18 -0
- package/dist/components/ui/hover-card/HoverCardContent.vue.d.ts +20 -0
- package/dist/components/ui/hover-card/HoverCardTrigger.vue.d.ts +14 -0
- package/dist/components/ui/hover-card/index.d.ts +3 -0
- package/dist/components/ui/index.d.ts +41 -0
- package/dist/components/ui/input/Input.vue.d.ts +13 -0
- package/dist/components/ui/input/index.d.ts +1 -0
- package/dist/components/ui/label/Label.vue.d.ts +18 -0
- package/dist/components/ui/label/index.d.ts +1 -0
- package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +43 -0
- package/dist/components/ui/metric-pill/index.d.ts +1 -0
- package/dist/components/ui/multi-select/MultiSelect.vue.d.ts +24 -0
- package/dist/components/ui/multi-select/index.d.ts +7 -0
- package/dist/components/ui/notification/Notification.vue.d.ts +16 -0
- package/dist/components/ui/notification/index.d.ts +1 -0
- package/dist/components/ui/number-field/NumberField.vue.d.ts +22 -0
- package/dist/components/ui/number-field/NumberFieldContent.vue.d.ts +17 -0
- package/dist/components/ui/number-field/NumberFieldDecrement.vue.d.ts +18 -0
- package/dist/components/ui/number-field/NumberFieldIncrement.vue.d.ts +18 -0
- package/dist/components/ui/number-field/NumberFieldInput.vue.d.ts +3 -0
- package/dist/components/ui/number-field/index.d.ts +5 -0
- package/dist/components/ui/popover/Popover.vue.d.ts +18 -0
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +39 -0
- package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +14 -0
- package/dist/components/ui/popover/index.d.ts +3 -0
- package/dist/components/ui/progress/Progress.vue.d.ts +111 -0
- package/dist/components/ui/progress/index.d.ts +2 -0
- package/dist/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
- package/dist/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
- package/dist/components/ui/radio-group/index.d.ts +2 -0
- package/dist/components/ui/section/Section.vue.d.ts +73 -0
- package/dist/components/ui/section/index.d.ts +1 -0
- package/dist/components/ui/select/Select.vue.d.ts +21 -0
- package/dist/components/ui/select/SelectContent.vue.d.ts +30 -0
- package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectItem.vue.d.ts +21 -0
- package/dist/components/ui/select/SelectLabel.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectSeparator.vue.d.ts +8 -0
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +22 -0
- package/dist/components/ui/select/SelectValue.vue.d.ts +14 -0
- package/dist/components/ui/select/index.d.ts +10 -0
- package/dist/components/ui/separator/Separator.vue.d.ts +9 -0
- package/dist/components/ui/separator/index.d.ts +1 -0
- package/dist/components/ui/sheet/Sheet.vue.d.ts +18 -0
- package/dist/components/ui/sheet/SheetClose.vue.d.ts +14 -0
- package/dist/components/ui/sheet/SheetContent.vue.d.ts +53 -0
- package/dist/components/ui/sheet/SheetDescription.vue.d.ts +18 -0
- package/dist/components/ui/sheet/SheetFooter.vue.d.ts +17 -0
- package/dist/components/ui/sheet/SheetHeader.vue.d.ts +17 -0
- package/dist/components/ui/sheet/SheetTitle.vue.d.ts +18 -0
- package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +14 -0
- package/dist/components/ui/sheet/index.d.ts +13 -0
- package/dist/components/ui/skeleton/Skeleton.vue.d.ts +32 -0
- package/dist/components/ui/skeleton/index.d.ts +1 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +26 -0
- package/dist/components/ui/slider/index.d.ts +31 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +12 -0
- package/dist/components/ui/switch/index.d.ts +1 -0
- package/dist/components/ui/table/Table.vue.d.ts +17 -0
- package/dist/components/ui/table/TableBody.vue.d.ts +17 -0
- package/dist/components/ui/table/TableCaption.vue.d.ts +17 -0
- package/dist/components/ui/table/TableCell.vue.d.ts +17 -0
- package/dist/components/ui/table/TableEmpty.vue.d.ts +20 -0
- package/dist/components/ui/table/TableHead.vue.d.ts +17 -0
- package/dist/components/ui/table/TableHeader.vue.d.ts +17 -0
- package/dist/components/ui/table/TableRow.vue.d.ts +17 -0
- package/dist/components/ui/table/index.d.ts +8 -0
- package/dist/components/ui/tabs/Tabs.vue.d.ts +19 -0
- package/dist/components/ui/tabs/TabsContent.vue.d.ts +18 -0
- package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +8 -0
- package/dist/components/ui/tabs/TabsList.vue.d.ts +18 -0
- package/dist/components/ui/tabs/TabsTrigger.vue.d.ts +18 -0
- package/dist/components/ui/tabs/index.d.ts +5 -0
- package/dist/components/ui/tags-input/TagsInput.vue.d.ts +28 -0
- package/dist/components/ui/tags-input/TagsInputInput.vue.d.ts +8 -0
- package/dist/components/ui/tags-input/TagsInputItem.vue.d.ts +18 -0
- package/dist/components/ui/tags-input/TagsInputItemDelete.vue.d.ts +18 -0
- package/dist/components/ui/tags-input/TagsInputItemText.vue.d.ts +8 -0
- package/dist/components/ui/tags-input/index.d.ts +5 -0
- package/dist/components/ui/textarea/Textarea.vue.d.ts +13 -0
- package/dist/components/ui/textarea/index.d.ts +1 -0
- package/dist/components/ui/toast/Toast.vue.d.ts +104 -0
- package/dist/components/ui/toast/ToastAction.vue.d.ts +18 -0
- package/dist/components/ui/toast/ToastClose.vue.d.ts +8 -0
- package/dist/components/ui/toast/ToastDescription.vue.d.ts +18 -0
- package/dist/components/ui/toast/ToastTitle.vue.d.ts +18 -0
- package/dist/components/ui/toast/Toaster.vue.d.ts +3 -0
- package/dist/components/ui/toast/index.d.ts +8 -0
- package/dist/components/ui/toast/use-toast.d.ts +155 -0
- package/dist/components/ui/toggle/Toggle.vue.d.ts +29 -0
- package/dist/components/ui/toggle/index.d.ts +26 -0
- package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +25 -0
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +21 -0
- package/dist/components/ui/toggle-group/index.d.ts +2 -0
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +21 -0
- package/dist/components/ui/tooltip/Tooltip.vue.d.ts +18 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +26 -0
- package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +14 -0
- package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +14 -0
- package/dist/components/ui/tooltip/index.d.ts +4 -0
- package/dist/composables/dark/index.d.ts +1 -0
- package/dist/composables/dark/useGlobalDark.d.ts +7 -0
- package/dist/composables/dom/index.d.ts +6 -0
- package/dist/composables/dom/useBreakpoint.d.ts +38 -0
- package/dist/composables/dom/useClipboard.d.ts +45 -0
- package/dist/composables/dom/useResizeObserver.d.ts +50 -0
- package/dist/composables/dom/useTokenColor.d.ts +27 -0
- package/dist/composables/dom/useTouchGate.d.ts +18 -0
- package/dist/composables/dom/useViewportReady.d.ts +87 -0
- package/dist/composables/glass/index.d.ts +1 -0
- package/dist/composables/glass/useGlassRenderer.d.ts +37 -0
- package/dist/composables/glass/webgl/frostShader.d.ts +27 -0
- package/dist/composables/index.d.ts +9 -0
- package/dist/composables/keyboard/index.d.ts +1 -0
- package/dist/composables/keyboard/useKeyboardShortcuts.d.ts +33 -0
- package/dist/composables/motion/constants.d.ts +19 -0
- package/dist/composables/motion/index.d.ts +14 -0
- package/dist/composables/motion/installDarkModeSync.d.ts +1 -0
- package/dist/composables/motion/useAnimatedNumber.d.ts +40 -0
- package/dist/composables/motion/useAnimatedNumberMap.d.ts +29 -0
- package/dist/composables/motion/useIntersectionPause.d.ts +33 -0
- package/dist/composables/motion/useNumericTransition.d.ts +32 -0
- package/dist/composables/motion/useRAFLoop.d.ts +43 -0
- package/dist/composables/motion/useScrollProgress.d.ts +23 -0
- package/dist/composables/motion/useSpring.d.ts +66 -0
- package/dist/composables/motion/useSpringMount.d.ts +52 -0
- package/dist/composables/motion/useSpringOrchestrator.d.ts +15 -0
- package/dist/composables/motion/useSpringPress.d.ts +46 -0
- package/dist/composables/motion/useStagger.d.ts +50 -0
- package/dist/composables/motion/useStaggerReveal.d.ts +22 -0
- package/dist/composables/reactive/index.d.ts +2 -0
- package/dist/composables/reactive/useInterval.d.ts +24 -0
- package/dist/composables/reactive/useTimer.d.ts +24 -0
- package/dist/composables/sidebar/index.d.ts +7 -0
- package/dist/composables/sidebar/types.d.ts +44 -0
- package/dist/composables/sidebar/useScrollTracker.d.ts +12 -0
- package/dist/composables/sidebar/useSidebarFollow.d.ts +16 -0
- package/dist/composables/sidebar/useSidebarState.d.ts +39 -0
- package/dist/composables/sidebar/useTreeIndex.d.ts +37 -0
- package/dist/composables/sortable/index.d.ts +1 -0
- package/dist/composables/sortable/useSortable.d.ts +149 -0
- package/dist/configurator.d.ts +1 -0
- package/dist/configurator.js +2 -0
- package/dist/confirm-dialog.d.ts +1 -0
- package/dist/confirm-dialog.js +69 -0
- package/dist/context-menu.d.ts +1 -0
- package/dist/context-menu.js +3 -0
- package/dist/controls.d.ts +1 -0
- package/dist/controls.js +51 -0
- package/dist/createLucideIcon-Bn9a1b70.js +43 -0
- package/dist/dark.d.ts +1 -0
- package/dist/dark.js +2 -0
- package/dist/data-table.d.ts +1 -0
- package/dist/data-table.js +2 -0
- package/dist/dialog.d.ts +1 -0
- package/dist/dialog.js +3 -0
- package/dist/disco-glyph.d.ts +1 -0
- package/dist/disco-glyph.js +2 -0
- package/dist/dock.d.ts +1 -0
- package/dist/dock.js +548 -0
- package/dist/dockContext-BDGSrwsV.js +16 -0
- package/dist/dom.d.ts +1 -0
- package/dist/dom.js +4 -0
- package/dist/dropdown-menu-2K-SGkZU.js +363 -0
- package/dist/dropdown-menu.d.ts +1 -0
- package/dist/dropdown-menu.js +2 -0
- package/dist/expandable-container.d.ts +1 -0
- package/dist/expandable-container.js +64 -0
- package/dist/fonts/README.md +95 -0
- package/dist/fonts/fira-code/OFL.txt +93 -0
- package/dist/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
- package/dist/fonts/fira-code/fira-code-latin.woff2 +0 -0
- package/dist/fonts/plus-jakarta-sans/OFL.txt +93 -0
- package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
- package/dist/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
- package/dist/forms.d.ts +3 -0
- package/dist/forms.js +311 -0
- package/dist/glass-carousel.d.ts +1 -0
- package/dist/glass-carousel.js +207 -0
- package/dist/glass-panel.d.ts +1 -0
- package/dist/glass-panel.js +44 -0
- package/dist/glass-ui.css +2 -1
- package/dist/glass-ui.js +1150 -10018
- package/dist/glyph-face.d.ts +1 -0
- package/dist/glyph-face.js +3 -0
- package/dist/header-ribbon.d.ts +1 -0
- package/dist/header-ribbon.js +63 -0
- package/dist/hover-card.d.ts +1 -0
- package/dist/hover-card.js +2 -0
- package/dist/hover-popover.d.ts +1 -0
- package/dist/hover-popover.js +2 -0
- package/dist/icon-tooltip.d.ts +1 -0
- package/dist/icon-tooltip.js +2 -0
- package/dist/index.d.ts +49 -6619
- package/dist/infinite-scroll.d.ts +2 -0
- package/dist/infinite-scroll.js +73 -0
- package/dist/instrument-chassis.d.ts +1 -0
- package/dist/instrument-chassis.js +2 -0
- package/dist/instrument-rail.d.ts +1 -0
- package/dist/instrument-rail.js +2 -0
- package/dist/keyboard.d.ts +1 -0
- package/dist/keyboard.js +2 -0
- package/dist/keys-DVkcUktU.js +11 -0
- package/dist/label.d.ts +1 -0
- package/dist/label.js +2 -0
- package/dist/labeled-field.d.ts +1 -0
- package/dist/labeled-field.js +194 -0
- package/dist/menuItemVariants-B2nDL7zH.js +30 -0
- package/dist/metric-badge.d.ts +1 -0
- package/dist/metric-badge.js +2 -0
- package/dist/metric-cell.d.ts +1 -0
- package/dist/metric-cell.js +54 -0
- package/dist/metric-stack.d.ts +1 -0
- package/dist/metric-stack.js +107 -0
- package/dist/minimize-2-LsCJ_eNt.js +38 -0
- package/dist/motion.d.ts +1 -0
- package/dist/motion.js +286 -0
- package/dist/notification.d.ts +1 -0
- package/dist/notification.js +2 -0
- package/dist/paper-backdrop.d.ts +1 -0
- package/dist/paper-backdrop.js +2 -0
- package/dist/popover.d.ts +1 -0
- package/dist/popover.js +2 -0
- package/dist/presets-BMzCDrmR.js +71 -0
- package/dist/progress.d.ts +1 -0
- package/dist/progress.js +2 -0
- package/dist/pulse.d.ts +1 -0
- package/dist/pulse.js +54 -0
- package/dist/reactive.d.ts +1 -0
- package/dist/reactive.js +3 -0
- package/dist/responsive-tabs.d.ts +1 -0
- package/dist/responsive-tabs.js +89 -0
- package/dist/scrolling-text.d.ts +1 -0
- package/dist/scrolling-text.js +2 -0
- package/dist/search-ocd8tmL9.js +12 -0
- package/dist/search.d.ts +1 -0
- package/dist/search.js +425 -0
- package/dist/select.d.ts +1 -0
- package/dist/select.js +4 -0
- package/dist/separator.d.ts +1 -0
- package/dist/separator.js +2 -0
- package/dist/sheet-CLVkb3AO.js +214 -0
- package/dist/sheet.d.ts +1 -0
- package/dist/sheet.js +2 -0
- package/dist/sidebar.d.ts +1 -0
- package/dist/sidebar.js +304 -0
- package/dist/slider-BQaLYFLh.js +133 -0
- package/dist/slider.d.ts +1 -0
- package/dist/slider.js +2 -0
- package/dist/sortable-list.d.ts +1 -0
- package/dist/sortable-list.js +82 -0
- package/dist/stacked-icons.d.ts +1 -0
- package/dist/stacked-icons.js +83 -0
- package/dist/status-dot.d.ts +1 -0
- package/dist/status-dot.js +55 -0
- package/dist/styles/animations.css +298 -0
- package/dist/styles/cards.css +44 -0
- package/dist/styles/disco-glyph.css +26 -0
- package/dist/styles/dock.css +1085 -0
- package/dist/styles/floating-panel.css +34 -0
- package/dist/styles/fonts.css +143 -0
- package/dist/styles/glass.css +277 -0
- package/dist/styles/glyph-face.css +92 -0
- package/dist/styles/hover-popover.css +44 -0
- package/dist/styles/index.css +96 -0
- package/dist/styles/instrument-chassis.css +313 -0
- package/dist/styles/instrument-rail.css +128 -0
- package/dist/styles/paper.css +68 -0
- package/dist/styles/theme.css +358 -0
- package/dist/styles/tokens.css +1495 -0
- package/dist/styles/transitions.css +245 -0
- package/dist/styles/typography.css +553 -0
- package/dist/styles/utilities.css +893 -0
- package/dist/tabs.d.ts +1 -0
- package/dist/tabs.js +206 -0
- package/dist/timeline.d.ts +1 -0
- package/dist/timeline.js +466 -0
- package/dist/toast.d.ts +1 -0
- package/dist/toast.js +2 -0
- package/dist/toggle-chip.d.ts +1 -0
- package/dist/toggle-chip.js +71 -0
- package/dist/toggle-group.d.ts +1 -0
- package/dist/toggle-group.js +2 -0
- package/dist/tokens.d.ts +53 -0
- package/dist/tokens.js +16 -0
- package/dist/tooltip.d.ts +1 -0
- package/dist/tooltip.js +2 -0
- package/dist/typewriter.d.ts +1 -0
- package/dist/typewriter.js +860 -0
- package/dist/useAnimatedNumber-DcvTR9B4.js +51 -0
- package/dist/useBreakpoint-BHlX-MhR.js +134 -0
- package/dist/useConfiguratorState-BlaevW0S.js +266 -0
- package/dist/useGlassRenderer-DMDdMH55.js +69 -0
- package/dist/useGlobalDark-PMiP5Jku.js +24 -0
- package/dist/useIntersectionPause-CXYfYg_C.js +39 -0
- package/dist/useInterval-COlTCeVa.js +18 -0
- package/dist/useKeyboardShortcuts-B1ev1YEC.js +99 -0
- package/dist/useResizeObserver-F4aRR4Cj.js +44 -0
- package/dist/useSortable-Ck0rBJ4g.js +175 -0
- package/dist/useSpringMount-BTRBNzXP.js +113 -0
- package/dist/useTimer-lp5NlH4w.js +20 -0
- package/dist/useTouchGate-BhhEMlwJ.js +84 -0
- package/dist/utils/cn.d.ts +27 -0
- package/dist/x-cdWAmO-q.js +10 -0
- package/package.json +514 -26
- package/src/fonts/README.md +95 -0
- package/src/fonts/fira-code/OFL.txt +93 -0
- package/src/fonts/fira-code/fira-code-latin-ext.woff2 +0 -0
- package/src/fonts/fira-code/fira-code-latin.woff2 +0 -0
- package/src/fonts/plus-jakarta-sans/OFL.txt +93 -0
- package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.woff2 +0 -0
- package/src/fonts/plus-jakarta-sans/plus-jakarta-sans-latin.woff2 +0 -0
- package/src/styles/animations.css +172 -107
- package/src/styles/cards.css +30 -52
- package/src/styles/disco-glyph.css +26 -0
- package/src/styles/dock.css +991 -127
- package/src/styles/floating-panel.css +22 -37
- package/src/styles/fonts.css +143 -0
- package/src/styles/glass.css +131 -120
- package/src/styles/glyph-face.css +92 -0
- package/src/styles/hover-popover.css +44 -0
- package/src/styles/index.css +73 -3
- package/src/styles/instrument-chassis.css +313 -0
- package/src/styles/instrument-rail.css +128 -0
- package/src/styles/paper.css +68 -0
- package/src/styles/theme.css +292 -72
- package/src/styles/tokens.css +1345 -183
- package/src/styles/transitions.css +227 -208
- package/src/styles/typography.css +498 -222
- package/src/styles/utilities.css +629 -433
- package/src/components/custom/aurora/Aurora.vue +0 -34
- package/src/components/custom/aurora/composables/color.ts +0 -122
- package/src/components/custom/aurora/composables/useAurora.ts +0 -355
- package/src/components/custom/aurora/index.ts +0 -8
- package/src/components/custom/confirm-dialog/ConfirmDialog.vue +0 -88
- package/src/components/custom/controls/DarkModeToggle.vue +0 -96
- package/src/components/custom/dock/DockLayerGroup.vue +0 -21
- package/src/components/custom/dock/DockPopover.vue +0 -263
- package/src/components/custom/dock/GlassDock.vue +0 -276
- package/src/components/custom/dock/composables/index.ts +0 -16
- package/src/components/custom/dock/composables/isTeleportedTarget.ts +0 -19
- package/src/components/custom/dock/composables/useDockActionBar.ts +0 -33
- package/src/components/custom/dock/composables/useDockState.ts +0 -301
- package/src/components/custom/dock/composables/useDockTransition.ts +0 -146
- package/src/components/custom/dock/composables/useLayerTransition.ts +0 -135
- package/src/components/custom/dock/composables/usePopupMutex.ts +0 -83
- package/src/components/custom/dock/index.ts +0 -9
- package/src/components/custom/expandable-container/ExpandableContainer.vue +0 -64
- package/src/components/custom/glass-panel/GlassPanel.vue +0 -98
- package/src/components/custom/glass-panel/index.ts +0 -2
- package/src/components/custom/icon-tooltip/IconTooltip.vue +0 -20
- package/src/components/custom/index.ts +0 -15
- package/src/components/custom/infinite-scroll/InfiniteScroll.vue +0 -55
- package/src/components/custom/infinite-scroll/composables/types.ts +0 -23
- package/src/components/custom/infinite-scroll/composables/useInfiniteScroll.ts +0 -73
- package/src/components/custom/labeled-field/LabeledInput.vue +0 -29
- package/src/components/custom/labeled-field/LabeledSelect.vue +0 -59
- package/src/components/custom/labeled-field/LabeledSlider.vue +0 -32
- package/src/components/custom/labeled-field/LabeledSwitch.vue +0 -27
- package/src/components/custom/labeled-field/index.ts +0 -4
- package/src/components/custom/metaballs/MetaballCanvas.vue +0 -23
- package/src/components/custom/metaballs/index.ts +0 -4
- package/src/components/custom/metaballs/shaders.ts +0 -63
- package/src/components/custom/metaballs/types.ts +0 -29
- package/src/components/custom/metaballs/useMetaballs.ts +0 -252
- package/src/components/custom/search/FuzzySearch.vue +0 -589
- package/src/components/custom/search/SearchBar.vue +0 -44
- package/src/components/custom/search/composables/fuzzySearchIndex.ts +0 -224
- package/src/components/custom/search/composables/types.ts +0 -34
- package/src/components/custom/search/composables/useFuzzySearch.ts +0 -115
- package/src/components/custom/sidebar/ProgressiveSidebar.vue +0 -256
- package/src/components/custom/sidebar/composables/index.ts +0 -6
- package/src/components/custom/sidebar/composables/useScrollTracker.ts +0 -242
- package/src/components/custom/sidebar/composables/useSidebarFollow.ts +0 -247
- package/src/components/custom/sidebar/composables/useSidebarState.ts +0 -72
- package/src/components/custom/sidebar/composables/useTreeIndex.ts +0 -152
- package/src/components/custom/sidebar/index.ts +0 -15
- package/src/components/custom/sidebar/types.ts +0 -50
- package/src/components/custom/tabs/BouncyTabs.vue +0 -39
- package/src/components/custom/tabs/BouncyToggle.vue +0 -352
- package/src/components/custom/tabs/UnderlineTabs.vue +0 -115
- package/src/components/custom/timeline/GlassTimeline.vue +0 -174
- package/src/components/custom/timeline/index.ts +0 -1
- package/src/components/custom/typewriter/TypewriterText.vue +0 -239
- package/src/components/custom/typewriter/composables/useTypewriter.ts +0 -413
- package/src/components/custom/typewriter/types.ts +0 -159
- package/src/components/custom/typewriter/utils/keyboard.ts +0 -213
- package/src/components/custom/typewriter/utils/pausePatterns.ts +0 -55
- package/src/components/custom/typewriter/utils/timing.ts +0 -104
- package/src/components/custom/typewriter/utils/typoStateMachine.ts +0 -197
- package/src/components/index.ts +0 -2
- package/src/components/ui/accordion/Accordion.vue +0 -19
- package/src/components/ui/accordion/AccordionContent.vue +0 -24
- package/src/components/ui/accordion/AccordionItem.vue +0 -24
- package/src/components/ui/accordion/AccordionTrigger.vue +0 -39
- package/src/components/ui/accordion/index.ts +0 -4
- package/src/components/ui/alert/Alert.vue +0 -20
- package/src/components/ui/alert/AlertDescription.vue +0 -17
- package/src/components/ui/alert/AlertTitle.vue +0 -17
- package/src/components/ui/alert/index.ts +0 -23
- package/src/components/ui/avatar/Avatar.vue +0 -21
- package/src/components/ui/avatar/AvatarFallback.vue +0 -11
- package/src/components/ui/avatar/AvatarImage.vue +0 -9
- package/src/components/ui/avatar/index.ts +0 -24
- package/src/components/ui/badge/Badge.vue +0 -16
- package/src/components/ui/badge/index.ts +0 -25
- package/src/components/ui/button/Button.vue +0 -26
- package/src/components/ui/button/index.ts +0 -43
- package/src/components/ui/card/Card.vue +0 -28
- package/src/components/ui/card/CardContent.vue +0 -14
- package/src/components/ui/card/CardDescription.vue +0 -14
- package/src/components/ui/card/CardFooter.vue +0 -14
- package/src/components/ui/card/CardHeader.vue +0 -14
- package/src/components/ui/card/CardTitle.vue +0 -21
- package/src/components/ui/card/index.ts +0 -6
- package/src/components/ui/carousel/Carousel.vue +0 -53
- package/src/components/ui/carousel/CarouselContent.vue +0 -35
- package/src/components/ui/carousel/CarouselItem.vue +0 -24
- package/src/components/ui/carousel/CarouselNext.vue +0 -40
- package/src/components/ui/carousel/CarouselPrevious.vue +0 -40
- package/src/components/ui/carousel/index.ts +0 -10
- package/src/components/ui/carousel/interface.ts +0 -26
- package/src/components/ui/carousel/useCarousel.ts +0 -56
- package/src/components/ui/checkbox/Checkbox.vue +0 -33
- package/src/components/ui/checkbox/index.ts +0 -1
- package/src/components/ui/collapsible/Collapsible.vue +0 -15
- package/src/components/ui/collapsible/CollapsibleContent.vue +0 -11
- package/src/components/ui/collapsible/CollapsibleTrigger.vue +0 -11
- package/src/components/ui/collapsible/index.ts +0 -3
- package/src/components/ui/combobox/Combobox.vue +0 -17
- package/src/components/ui/combobox/ComboboxAnchor.vue +0 -23
- package/src/components/ui/combobox/ComboboxEmpty.vue +0 -21
- package/src/components/ui/combobox/ComboboxGroup.vue +0 -27
- package/src/components/ui/combobox/ComboboxInput.vue +0 -41
- package/src/components/ui/combobox/ComboboxItem.vue +0 -24
- package/src/components/ui/combobox/ComboboxItemIndicator.vue +0 -23
- package/src/components/ui/combobox/ComboboxList.vue +0 -29
- package/src/components/ui/combobox/ComboboxSeparator.vue +0 -21
- package/src/components/ui/combobox/ComboboxViewport.vue +0 -23
- package/src/components/ui/combobox/index.ts +0 -12
- package/src/components/ui/command/Command.vue +0 -30
- package/src/components/ui/command/CommandDialog.vue +0 -21
- package/src/components/ui/command/CommandEmpty.vue +0 -20
- package/src/components/ui/command/CommandGroup.vue +0 -29
- package/src/components/ui/command/CommandInput.vue +0 -33
- package/src/components/ui/command/CommandItem.vue +0 -26
- package/src/components/ui/command/CommandList.vue +0 -27
- package/src/components/ui/command/CommandSeparator.vue +0 -23
- package/src/components/ui/command/CommandShortcut.vue +0 -14
- package/src/components/ui/command/index.ts +0 -9
- package/src/components/ui/context-menu/ContextMenu.vue +0 -15
- package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -40
- package/src/components/ui/context-menu/ContextMenuContent.vue +0 -36
- package/src/components/ui/context-menu/ContextMenuGroup.vue +0 -11
- package/src/components/ui/context-menu/ContextMenuItem.vue +0 -34
- package/src/components/ui/context-menu/ContextMenuLabel.vue +0 -25
- package/src/components/ui/context-menu/ContextMenuPortal.vue +0 -11
- package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -19
- package/src/components/ui/context-menu/ContextMenuRadioItem.vue +0 -40
- package/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -20
- package/src/components/ui/context-menu/ContextMenuShortcut.vue +0 -14
- package/src/components/ui/context-menu/ContextMenuSub.vue +0 -19
- package/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -35
- package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -34
- package/src/components/ui/context-menu/ContextMenuTrigger.vue +0 -13
- package/src/components/ui/context-menu/index.ts +0 -14
- package/src/components/ui/data-table/DataTable.vue +0 -167
- package/src/components/ui/data-table/DataTablePagination.vue +0 -112
- package/src/components/ui/data-table/types.ts +0 -48
- package/src/components/ui/dialog/Dialog.vue +0 -14
- package/src/components/ui/dialog/DialogClose.vue +0 -11
- package/src/components/ui/dialog/DialogContent.vue +0 -61
- package/src/components/ui/dialog/DialogDescription.vue +0 -24
- package/src/components/ui/dialog/DialogFooter.vue +0 -19
- package/src/components/ui/dialog/DialogHeader.vue +0 -16
- package/src/components/ui/dialog/DialogScrollContent.vue +0 -65
- package/src/components/ui/dialog/DialogTitle.vue +0 -29
- package/src/components/ui/dialog/DialogTrigger.vue +0 -11
- package/src/components/ui/dialog/index.ts +0 -9
- package/src/components/ui/drawer/Drawer.vue +0 -19
- package/src/components/ui/drawer/DrawerContent.vue +0 -28
- package/src/components/ui/drawer/DrawerDescription.vue +0 -20
- package/src/components/ui/drawer/DrawerFooter.vue +0 -14
- package/src/components/ui/drawer/DrawerHeader.vue +0 -14
- package/src/components/ui/drawer/DrawerOverlay.vue +0 -18
- package/src/components/ui/drawer/DrawerTitle.vue +0 -20
- package/src/components/ui/drawer/index.ts +0 -8
- package/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -14
- package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -40
- package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -44
- package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
- package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -28
- package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -24
- package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -19
- package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -40
- package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -22
- package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -14
- package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -19
- package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -36
- package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -33
- package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -13
- package/src/components/ui/dropdown-menu/index.ts +0 -16
- package/src/components/ui/hover-card/HoverCard.vue +0 -14
- package/src/components/ui/hover-card/HoverCardContent.vue +0 -41
- package/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
- package/src/components/ui/hover-card/index.ts +0 -3
- package/src/components/ui/index.ts +0 -41
- package/src/components/ui/input/Input.vue +0 -24
- package/src/components/ui/input/index.ts +0 -1
- package/src/components/ui/label/Label.vue +0 -27
- package/src/components/ui/label/index.ts +0 -1
- package/src/components/ui/multi-select/MultiSelect.vue +0 -141
- package/src/components/ui/multi-select/index.ts +0 -7
- package/src/components/ui/notification/Notification.vue +0 -85
- package/src/components/ui/notification/index.ts +0 -1
- package/src/components/ui/number-field/NumberField.vue +0 -23
- package/src/components/ui/number-field/NumberFieldContent.vue +0 -14
- package/src/components/ui/number-field/NumberFieldDecrement.vue +0 -25
- package/src/components/ui/number-field/NumberFieldIncrement.vue +0 -25
- package/src/components/ui/number-field/NumberFieldInput.vue +0 -8
- package/src/components/ui/number-field/index.ts +0 -5
- package/src/components/ui/popover/Popover.vue +0 -15
- package/src/components/ui/popover/PopoverContent.vue +0 -61
- package/src/components/ui/popover/PopoverTrigger.vue +0 -11
- package/src/components/ui/popover/index.ts +0 -3
- package/src/components/ui/progress/Progress.vue +0 -39
- package/src/components/ui/progress/index.ts +0 -1
- package/src/components/ui/radio-group/RadioGroup.vue +0 -25
- package/src/components/ui/radio-group/RadioGroupItem.vue +0 -39
- package/src/components/ui/radio-group/index.ts +0 -2
- package/src/components/ui/scroll-area/ScrollArea.vue +0 -29
- package/src/components/ui/scroll-area/ScrollBar.vue +0 -30
- package/src/components/ui/scroll-area/index.ts +0 -2
- package/src/components/ui/scroll-pane/ScrollPane.vue +0 -25
- package/src/components/ui/scroll-pane/ScrollPaneHeader.vue +0 -75
- package/src/components/ui/scroll-pane/index.ts +0 -2
- package/src/components/ui/select/Select.vue +0 -15
- package/src/components/ui/select/SelectContent.vue +0 -57
- package/src/components/ui/select/SelectGroup.vue +0 -19
- package/src/components/ui/select/SelectItem.vue +0 -47
- package/src/components/ui/select/SelectItemText.vue +0 -11
- package/src/components/ui/select/SelectLabel.vue +0 -13
- package/src/components/ui/select/SelectScrollDownButton.vue +0 -24
- package/src/components/ui/select/SelectScrollUpButton.vue +0 -24
- package/src/components/ui/select/SelectSeparator.vue +0 -17
- package/src/components/ui/select/SelectTrigger.vue +0 -45
- package/src/components/ui/select/SelectValue.vue +0 -11
- package/src/components/ui/select/index.ts +0 -11
- package/src/components/ui/separator/Separator.vue +0 -35
- package/src/components/ui/separator/index.ts +0 -1
- package/src/components/ui/sheet/Sheet.vue +0 -14
- package/src/components/ui/sheet/SheetClose.vue +0 -11
- package/src/components/ui/sheet/SheetContent.vue +0 -56
- package/src/components/ui/sheet/SheetDescription.vue +0 -22
- package/src/components/ui/sheet/SheetFooter.vue +0 -19
- package/src/components/ui/sheet/SheetHeader.vue +0 -16
- package/src/components/ui/sheet/SheetTitle.vue +0 -22
- package/src/components/ui/sheet/SheetTrigger.vue +0 -11
- package/src/components/ui/sheet/index.ts +0 -31
- package/src/components/ui/skeleton/Skeleton.vue +0 -14
- package/src/components/ui/skeleton/index.ts +0 -1
- package/src/components/ui/slider/Slider.vue +0 -66
- package/src/components/ui/slider/index.ts +0 -1
- package/src/components/ui/switch/Switch.vue +0 -37
- package/src/components/ui/switch/index.ts +0 -1
- package/src/components/ui/table/Table.vue +0 -16
- package/src/components/ui/table/TableBody.vue +0 -14
- package/src/components/ui/table/TableCaption.vue +0 -14
- package/src/components/ui/table/TableCell.vue +0 -14
- package/src/components/ui/table/TableEmpty.vue +0 -39
- package/src/components/ui/table/TableFooter.vue +0 -16
- package/src/components/ui/table/TableHead.vue +0 -21
- package/src/components/ui/table/TableHeader.vue +0 -14
- package/src/components/ui/table/TableRow.vue +0 -21
- package/src/components/ui/table/index.ts +0 -9
- package/src/components/ui/tabs/Tabs.vue +0 -15
- package/src/components/ui/tabs/TabsContent.vue +0 -22
- package/src/components/ui/tabs/TabsIndicator.vue +0 -22
- package/src/components/ui/tabs/TabsList.vue +0 -25
- package/src/components/ui/tabs/TabsTrigger.vue +0 -29
- package/src/components/ui/tabs/index.ts +0 -5
- package/src/components/ui/tags-input/TagsInput.vue +0 -22
- package/src/components/ui/tags-input/TagsInputInput.vue +0 -19
- package/src/components/ui/tags-input/TagsInputItem.vue +0 -22
- package/src/components/ui/tags-input/TagsInputItemDelete.vue +0 -24
- package/src/components/ui/tags-input/TagsInputItemText.vue +0 -19
- package/src/components/ui/tags-input/index.ts +0 -5
- package/src/components/ui/textarea/Textarea.vue +0 -24
- package/src/components/ui/textarea/index.ts +0 -1
- package/src/components/ui/toast/Toast.vue +0 -57
- package/src/components/ui/toast/ToastAction.vue +0 -30
- package/src/components/ui/toast/ToastClose.vue +0 -31
- package/src/components/ui/toast/ToastDescription.vue +0 -25
- package/src/components/ui/toast/ToastTitle.vue +0 -25
- package/src/components/ui/toast/Toaster.vue +0 -31
- package/src/components/ui/toast/index.ts +0 -8
- package/src/components/ui/toast/use-toast.ts +0 -136
- package/src/components/ui/toggle/Toggle.vue +0 -35
- package/src/components/ui/toggle/index.ts +0 -27
- package/src/components/ui/toggle-group/ToggleGroup.vue +0 -34
- package/src/components/ui/toggle-group/ToggleGroupItem.vue +0 -35
- package/src/components/ui/toggle-group/index.ts +0 -2
- package/src/components/ui/tooltip/Tooltip.vue +0 -14
- package/src/components/ui/tooltip/TooltipContent.vue +0 -31
- package/src/components/ui/tooltip/TooltipProvider.vue +0 -11
- package/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
- package/src/components/ui/tooltip/index.ts +0 -4
- package/src/composables/glass/index.ts +0 -8
- package/src/composables/glass/useGlassRenderer.ts +0 -252
- package/src/composables/glass/webgl/frostShader.ts +0 -221
- package/src/composables/glass/webgpu/glassShader.wgsl +0 -173
- package/src/composables/index.ts +0 -32
- package/src/composables/infinite-scroll/index.ts +0 -2
- package/src/composables/infinite-scroll/types.ts +0 -25
- package/src/composables/infinite-scroll/useInfiniteScroll.ts +0 -101
- package/src/composables/interaction/index.ts +0 -5
- package/src/composables/interaction/useHeightTransition.ts +0 -82
- package/src/composables/interaction/useHoverPopover.ts +0 -64
- package/src/composables/interaction/useHoverToggle.ts +0 -103
- package/src/composables/interaction/useLeaveTimer.ts +0 -17
- package/src/composables/interaction/useTouchGate.ts +0 -207
- package/src/composables/pagination/index.ts +0 -2
- package/src/composables/pagination/useOffsetPagination.ts +0 -70
- package/src/composables/prng.ts +0 -32
- package/src/composables/useCharSplit.ts +0 -31
- package/src/composables/useClipboard.ts +0 -46
- package/src/composables/useGlobalDark.ts +0 -61
- package/src/composables/useKeyboardShortcuts.ts +0 -205
- package/src/composables/useWatercolorBlob.ts +0 -136
- package/src/composables/virtual/index.ts +0 -22
- package/src/composables/virtual/useVirtualSectionWindow.ts +0 -338
- package/src/composables/virtual/useWindowedStore.ts +0 -86
- package/src/composables/virtual/virtualSectionLayout.ts +0 -212
- package/src/index.ts +0 -9
- package/src/styles/scroll-pane.css +0 -10
- package/src/utils/cn.ts +0 -6
- /package/{src/components/custom/confirm-dialog/index.ts → dist/components/custom/confirm-dialog/index.d.ts} +0 -0
- /package/{src/components/custom/controls/index.ts → dist/components/custom/controls/index.d.ts} +0 -0
- /package/{src/components/custom/expandable-container/index.ts → dist/components/custom/expandable-container/index.d.ts} +0 -0
- /package/{src/components/custom/icon-tooltip/index.ts → dist/components/custom/icon-tooltip/index.d.ts} +0 -0
- /package/{src/components/custom/infinite-scroll/composables/index.ts → dist/components/custom/infinite-scroll/composables/index.d.ts} +0 -0
- /package/{src/components/custom/infinite-scroll/index.ts → dist/components/custom/infinite-scroll/index.d.ts} +0 -0
- /package/{src/components/custom/search/composables/index.ts → dist/components/custom/search/composables/index.d.ts} +0 -0
- /package/{src/components/custom/search/index.ts → dist/components/custom/search/index.d.ts} +0 -0
- /package/{src/components/custom/tabs/index.ts → dist/components/custom/tabs/index.d.ts} +0 -0
- /package/{src/components/custom/typewriter/composables/index.ts → dist/components/custom/typewriter/composables/index.d.ts} +0 -0
- /package/{src/components/custom/typewriter/index.ts → dist/components/custom/typewriter/index.d.ts} +0 -0
- /package/{src/components/ui/data-table/index.ts → dist/components/ui/data-table/index.d.ts} +0 -0
- /package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -0
package/src/styles/utilities.css
CHANGED
|
@@ -1,13 +1,67 @@
|
|
|
1
1
|
/* Shared utility classes */
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
/* ── Popover/dropdown shared animation ──
|
|
4
|
+
`@utility` form (V.W3.T8 / A5 §5.9 standardisation): data-state animation
|
|
5
|
+
pair for popover-class containers (Popover, DropdownMenu, ContextMenu,
|
|
6
|
+
Tooltip, HoverCard, Select). Composed alongside `.slide-in-from-side`
|
|
7
|
+
for direction-keyed entries. */
|
|
8
|
+
@utility popover-animate {
|
|
9
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out
|
|
10
|
+
data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0
|
|
11
|
+
data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* ── Slide-in entry by side data-attr ──
|
|
15
|
+
`@utility` form (V.W3.T8). Side-keyed slide entry that pairs with
|
|
16
|
+
reka-ui's `data-side` (`top|right|bottom|left`). The animation
|
|
17
|
+
direction inverts each side so panels enter from outside the
|
|
18
|
+
anchor's edge. */
|
|
19
|
+
@utility slide-in-from-side {
|
|
20
|
+
@apply data-[side=bottom]:slide-in-from-top-2
|
|
21
|
+
data-[side=left]:slide-in-from-right-2
|
|
22
|
+
data-[side=right]:slide-in-from-left-2
|
|
23
|
+
data-[side=top]:slide-in-from-bottom-2;
|
|
24
|
+
}
|
|
8
25
|
|
|
9
|
-
|
|
10
|
-
|
|
26
|
+
@layer components {
|
|
27
|
+
/* ── Section description (V.W3.T7) ──────────────────────────────
|
|
28
|
+
Canonical recipe for the `<Section>` primitive's description
|
|
29
|
+
paragraph. Composes the body type + muted-foreground color in
|
|
30
|
+
one declaration so consumers don't fight twMerge's
|
|
31
|
+
typography-class collapse. */
|
|
32
|
+
.section-description {
|
|
33
|
+
font-size: var(--type-body);
|
|
34
|
+
color: var(--muted-foreground);
|
|
35
|
+
line-height: 1.5;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* ── Labeled-field label (V.W3.T5 / A5 §5.5) ────────────────────
|
|
39
|
+
Canonical recipe for `<LabeledField>`'s tooltip-wrapped label
|
|
40
|
+
layer. Four sibling wrappers (LabeledInput, LabeledSelect,
|
|
41
|
+
LabeledSlider, LabeledSwitch) used to repeat this literal across
|
|
42
|
+
their templates; promoting it to a utility lets the parent SFC
|
|
43
|
+
own one canonical declaration. */
|
|
44
|
+
.labeled-field-label {
|
|
45
|
+
font-family: var(--font-display);
|
|
46
|
+
font-size: var(--type-body);
|
|
47
|
+
color: var(--muted-foreground);
|
|
48
|
+
cursor: help;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* ── Popover-content recipe (V.W3.T3 / A5 §3.2) ─────────────────
|
|
52
|
+
Canonical recipe for floating-tier portal containers
|
|
53
|
+
(PopoverContent, DropdownMenuContent, SelectContent, etc.).
|
|
54
|
+
Covers radius + outline + popover-foreground; consumers compose
|
|
55
|
+
this with `.glass-floating` (bg + blur + border + shadow), with
|
|
56
|
+
`.popover-animate` (data-state animation), and with the per-host
|
|
57
|
+
z-rung. The floating-tier shadow comes from
|
|
58
|
+
`--glass-shadow-floating` via `.glass-floating`, replacing the
|
|
59
|
+
`shadow-md`/`shadow-lg` literals that bypassed the canonical
|
|
60
|
+
cascade. */
|
|
61
|
+
.popover-content {
|
|
62
|
+
border-radius: var(--radius-panel);
|
|
63
|
+
color: var(--popover-foreground);
|
|
64
|
+
outline: none;
|
|
11
65
|
}
|
|
12
66
|
|
|
13
67
|
/* ── Scrollbar ── */
|
|
@@ -30,34 +84,13 @@
|
|
|
30
84
|
box-shadow: var(--focus-ring-shadow);
|
|
31
85
|
}
|
|
32
86
|
|
|
33
|
-
/* ──
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
.btn-press:disabled {
|
|
41
|
-
opacity: 0.5;
|
|
42
|
-
pointer-events: none;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.btn-interactive {
|
|
46
|
-
transition: all var(--duration-fast) var(--ease-standard);
|
|
47
|
-
}
|
|
48
|
-
.btn-interactive:hover {
|
|
49
|
-
transform: scale(var(--scale-hover));
|
|
50
|
-
}
|
|
51
|
-
.btn-interactive:active {
|
|
52
|
-
transform: scale(var(--scale-press));
|
|
53
|
-
}
|
|
54
|
-
.btn-interactive:disabled {
|
|
55
|
-
opacity: 0.5;
|
|
56
|
-
pointer-events: none;
|
|
57
|
-
}
|
|
58
|
-
.btn-interactive:focus-visible {
|
|
59
|
-
box-shadow: var(--focus-ring-shadow);
|
|
60
|
-
outline: none;
|
|
87
|
+
/* ── Hairline-accent — 0.5px catch-light + under-shadow pair ──
|
|
88
|
+
Composes the canonical `--border-hairline` token (tokens.css §
|
|
89
|
+
Glass-decorative). Adopt at any surface that wants the canonical
|
|
90
|
+
2-stop hairline (dock surfaces, instrument-chassis). Auto-mirrors
|
|
91
|
+
in dark via the .dark token override. */
|
|
92
|
+
.hairline-accent {
|
|
93
|
+
box-shadow: var(--border-hairline);
|
|
61
94
|
}
|
|
62
95
|
|
|
63
96
|
/* ── Interactive item (hover bg + focus ring + active scale) ── */
|
|
@@ -81,9 +114,38 @@
|
|
|
81
114
|
.interactive-item:active {
|
|
82
115
|
transform: scale(0.98);
|
|
83
116
|
}
|
|
84
|
-
.interactive-item:disabled
|
|
117
|
+
.interactive-item:disabled,
|
|
118
|
+
.interactive-item[data-disabled] {
|
|
85
119
|
pointer-events: none;
|
|
86
|
-
opacity:
|
|
120
|
+
opacity: var(--opacity-disabled);
|
|
121
|
+
cursor: not-allowed;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* ── Tap-squish — universal press-state choreography ──
|
|
125
|
+
AL-W10 SLIM (X6 §M-1 + Y7 §3 + DESIGN.md §L3). I compose this
|
|
126
|
+
class onto every interactive surface that wants the iOS tap-
|
|
127
|
+
squish idiom; the press scales to `--scale-press` (0.96, the
|
|
128
|
+
canonical iOS `.regular` control rung) and the spring carries
|
|
129
|
+
the return via `--spring-snappy` (the §L3 release-spring
|
|
130
|
+
contract). I keep this as a single canonical rung — NOT a
|
|
131
|
+
3-rung ladder. The outliers I leave alone are button `0.97` and
|
|
132
|
+
dock control `0.92`, which consume their own scale tokens
|
|
133
|
+
directly.
|
|
134
|
+
|
|
135
|
+
Under PRM I retire the press transform entirely and lean on the
|
|
136
|
+
consumer's own hover/active bg-tint cascade to acknowledge the
|
|
137
|
+
press. */
|
|
138
|
+
.tap-squish {
|
|
139
|
+
transition: transform var(--duration-fast) var(--spring-snappy);
|
|
140
|
+
transform-origin: center center;
|
|
141
|
+
}
|
|
142
|
+
.tap-squish:active {
|
|
143
|
+
transform: scale(var(--scale-press));
|
|
144
|
+
}
|
|
145
|
+
@media (prefers-reduced-motion: reduce) {
|
|
146
|
+
.tap-squish:active {
|
|
147
|
+
transform: none;
|
|
148
|
+
}
|
|
87
149
|
}
|
|
88
150
|
|
|
89
151
|
/* ── Status dot indicator ── */
|
|
@@ -98,64 +160,6 @@
|
|
|
98
160
|
background var(--duration-fast) var(--ease-standard),
|
|
99
161
|
box-shadow var(--duration-fast) var(--ease-standard);
|
|
100
162
|
}
|
|
101
|
-
.status-dot--active {
|
|
102
|
-
background: var(--color-status-active, hsl(142 71% 45%));
|
|
103
|
-
}
|
|
104
|
-
.status-dot--paused {
|
|
105
|
-
background: var(--color-status-paused, hsl(48 96% 53%));
|
|
106
|
-
}
|
|
107
|
-
.status-dot--idle {
|
|
108
|
-
background: var(--color-status-idle, var(--muted-foreground));
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/* ── Paper texture backgrounds ── */
|
|
112
|
-
.bg-paper-clean {
|
|
113
|
-
background-image: var(--paper-clean-texture);
|
|
114
|
-
background-repeat: repeat;
|
|
115
|
-
background-size: var(--paper-texture-size);
|
|
116
|
-
background-blend-mode: multiply;
|
|
117
|
-
}
|
|
118
|
-
.bg-paper-aged {
|
|
119
|
-
background-image: var(--paper-aged-texture);
|
|
120
|
-
background-repeat: repeat;
|
|
121
|
-
background-size: var(--paper-texture-size);
|
|
122
|
-
background-blend-mode: multiply;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/* ── Rainbow text ── */
|
|
126
|
-
.rainbow-text {
|
|
127
|
-
background: linear-gradient(
|
|
128
|
-
90deg,
|
|
129
|
-
hsl(0 85% 70%),
|
|
130
|
-
hsl(30 85% 65%),
|
|
131
|
-
hsl(60 85% 60%),
|
|
132
|
-
hsl(120 65% 55%),
|
|
133
|
-
hsl(200 85% 60%),
|
|
134
|
-
hsl(260 75% 65%),
|
|
135
|
-
hsl(320 80% 65%)
|
|
136
|
-
);
|
|
137
|
-
background-clip: text;
|
|
138
|
-
-webkit-text-fill-color: transparent;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/* ── Rainbow border ── */
|
|
142
|
-
.rainbow-border {
|
|
143
|
-
background:
|
|
144
|
-
linear-gradient(var(--background), var(--background)) padding-box,
|
|
145
|
-
linear-gradient(
|
|
146
|
-
135deg,
|
|
147
|
-
hsl(0 85% 70%),
|
|
148
|
-
hsl(60 85% 60%),
|
|
149
|
-
hsl(120 65% 55%),
|
|
150
|
-
hsl(200 85% 60%),
|
|
151
|
-
hsl(260 75% 65%),
|
|
152
|
-
hsl(320 80% 65%),
|
|
153
|
-
hsl(0 85% 70%)
|
|
154
|
-
)
|
|
155
|
-
border-box;
|
|
156
|
-
border: 2px solid transparent;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
163
|
/* ── Depth text (layered shadow with customizable colors) ── */
|
|
160
164
|
.depth-text {
|
|
161
165
|
--depth-color-primary: var(--primary);
|
|
@@ -168,20 +172,10 @@
|
|
|
168
172
|
3px 3px 0 var(--depth-color-shadow),
|
|
169
173
|
4px 4px 0 var(--depth-color-shadow),
|
|
170
174
|
5px 5px 0 var(--depth-color-shadow),
|
|
171
|
-
5px 5px 1px
|
|
172
|
-
2px 2px 2px
|
|
173
|
-
4px 4px 5px
|
|
174
|
-
6px 6px 10px
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/* ── Touch gate (iOS Safari) ── */
|
|
178
|
-
.touch-gate-target {
|
|
179
|
-
outline: 2px solid transparent;
|
|
180
|
-
outline-offset: -2px;
|
|
181
|
-
transition: outline-color var(--duration-fast) var(--ease-standard);
|
|
182
|
-
}
|
|
183
|
-
.touch-gate-active {
|
|
184
|
-
outline-color: color-mix(in srgb, var(--ring) 25%, transparent);
|
|
175
|
+
5px 5px 1px color-mix(in srgb, var(--shadow-color) 10%, transparent),
|
|
176
|
+
2px 2px 2px color-mix(in srgb, var(--shadow-color) 20%, transparent),
|
|
177
|
+
4px 4px 5px color-mix(in srgb, var(--shadow-color) 25%, transparent),
|
|
178
|
+
6px 6px 10px color-mix(in srgb, var(--shadow-color) 15%, transparent);
|
|
185
179
|
}
|
|
186
180
|
|
|
187
181
|
/* ── 3D preserve ── */
|
|
@@ -197,38 +191,63 @@
|
|
|
197
191
|
font-size: max(1rem, 1em);
|
|
198
192
|
}
|
|
199
193
|
|
|
200
|
-
/* ── Scroll fade
|
|
194
|
+
/* ── Scroll fade masks ── */
|
|
201
195
|
.scroll-fade-mask {
|
|
202
196
|
mask-image: linear-gradient(to right, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
203
197
|
-webkit-mask-image: linear-gradient(to right, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
204
198
|
}
|
|
205
199
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
background-size: 250% 100%;
|
|
210
|
-
background-clip: text;
|
|
211
|
-
-webkit-background-clip: text;
|
|
212
|
-
color: transparent;
|
|
213
|
-
animation: shimmer 5s linear infinite;
|
|
200
|
+
.scroll-fade-top {
|
|
201
|
+
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width));
|
|
202
|
+
-webkit-mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width));
|
|
214
203
|
}
|
|
215
204
|
|
|
216
|
-
.
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
205
|
+
.scroll-fade-bottom {
|
|
206
|
+
mask-image: linear-gradient(to bottom, black calc(100% - var(--mask-fade-width)), transparent);
|
|
207
|
+
-webkit-mask-image: linear-gradient(to bottom, black calc(100% - var(--mask-fade-width)), transparent);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.scroll-fade-y {
|
|
211
|
+
mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
212
|
+
-webkit-mask-image: linear-gradient(to bottom, transparent, black var(--mask-fade-width), black calc(100% - var(--mask-fade-width)), transparent);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* ── Card scroll-timeline host (AI.W1-α) ───────────────────────────────
|
|
216
|
+
Canonical scroll-overflow host that emits the `--card-scroll` named
|
|
217
|
+
scroll-timeline consumed by `<CardHeader shrink>`. Apply to the
|
|
218
|
+
scroll-overflow ancestor (typically the `<Card>` itself OR a wrapper
|
|
219
|
+
inside it that carries `overflow-y: auto`).
|
|
220
|
+
|
|
221
|
+
`contain: layout style paint` isolates the named timeline so child
|
|
222
|
+
animations respond to THIS host's scroll only — not to portal-
|
|
223
|
+
triggered layout shifts in ancestor containers (the load-bearing
|
|
224
|
+
isolation guarantee the value.js `PaneHeader.vue:18-29` comment
|
|
225
|
+
called out and the AI.W1 spec §1.2 ratified as canon).
|
|
226
|
+
|
|
227
|
+
Disambiguated from `.scroll-fade-*` (mask-image fade gradient at
|
|
228
|
+
the container's leading/trailing edge) — `.card-scroll-host` does
|
|
229
|
+
NOT paint any visual; it only emits the timeline. */
|
|
230
|
+
.card-scroll-host {
|
|
231
|
+
contain: layout style paint;
|
|
232
|
+
scroll-timeline: --card-scroll block;
|
|
223
233
|
}
|
|
224
234
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
235
|
+
/* ── Shimmer text effects ──
|
|
236
|
+
The text-fill + background-clip composition is load-bearing visual
|
|
237
|
+
(the gold gradient itself); only the `animation:` line is wrapped in
|
|
238
|
+
the PRM no-preference bracket so PRM users see the static gradient
|
|
239
|
+
without the slide animation. */
|
|
240
|
+
.gold-shimmer {
|
|
241
|
+
background: linear-gradient(90deg, var(--color-gold-dark), var(--color-gold-light), var(--color-gold), var(--color-gold-light), var(--color-gold-dark));
|
|
242
|
+
background-size: 250% 100%;
|
|
228
243
|
background-clip: text;
|
|
229
244
|
-webkit-background-clip: text;
|
|
230
245
|
color: transparent;
|
|
231
|
-
|
|
246
|
+
}
|
|
247
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
248
|
+
.gold-shimmer {
|
|
249
|
+
animation: gold-shimmer-slide var(--duration-shimmer) linear infinite;
|
|
250
|
+
}
|
|
232
251
|
}
|
|
233
252
|
|
|
234
253
|
/* ── Keyboard key ── */
|
|
@@ -248,24 +267,172 @@
|
|
|
248
267
|
line-height: 1;
|
|
249
268
|
}
|
|
250
269
|
|
|
251
|
-
/* ──
|
|
252
|
-
.
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
270
|
+
/* ── Metric badge pill — compact glass label for numeric telemetry ── */
|
|
271
|
+
.metric-badge {
|
|
272
|
+
display: inline-flex;
|
|
273
|
+
align-items: center;
|
|
274
|
+
justify-content: center;
|
|
275
|
+
text-align: center;
|
|
276
|
+
gap: var(--metric-badge-gap, 0.125rem);
|
|
277
|
+
max-width: var(--metric-badge-max-width, 8rem);
|
|
278
|
+
min-height: var(--metric-badge-min-height, 1.5rem);
|
|
279
|
+
padding:
|
|
280
|
+
var(--metric-badge-padding-block, 0.125rem)
|
|
281
|
+
var(--metric-badge-padding-inline, 0.5rem);
|
|
282
|
+
overflow: hidden;
|
|
283
|
+
flex-shrink: 0;
|
|
284
|
+
line-height: 1;
|
|
285
|
+
/* Canonical 5-tier glass surface: the `quiet` rung paints the badge
|
|
286
|
+
plate at the `--glass-bg-quiet` α (0.50) with `--glass-blur-quiet`.
|
|
287
|
+
Reduced-transparency / no-backdrop-filter fallbacks propagate
|
|
288
|
+
through the lazy custom-property resolution that `glass.css`
|
|
289
|
+
sets up — the badge no longer bypasses the canon.
|
|
290
|
+
(Per audit U.W0.C-c §7.2.) */
|
|
291
|
+
border: 1px solid var(--metric-badge-border, var(--glass-border-quiet));
|
|
292
|
+
border-radius: var(--metric-badge-radius, var(--radius-badge, var(--radius-pill)));
|
|
293
|
+
background: var(--metric-badge-bg, var(--glass-bg-quiet));
|
|
294
|
+
backdrop-filter: var(--metric-badge-blur, var(--glass-blur-quiet));
|
|
295
|
+
box-shadow: var(--metric-badge-shadow, 0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent), var(--glass-highlight));
|
|
296
|
+
transition:
|
|
297
|
+
background var(--duration-fast) var(--ease-standard),
|
|
298
|
+
border-color var(--duration-fast) var(--ease-standard),
|
|
299
|
+
box-shadow var(--duration-fast) var(--ease-standard),
|
|
300
|
+
transform var(--duration-fast) var(--ease-standard);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.metric-badge > span {
|
|
304
|
+
line-height: 1;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.metric-badge:hover {
|
|
308
|
+
/* Hover lifts to the `resting` rung — one step up the canonical
|
|
309
|
+
ladder (audit U.W0.C-c §7.2). */
|
|
310
|
+
border-color: var(--metric-badge-hover-border, var(--glass-border-resting));
|
|
311
|
+
background: var(--metric-badge-hover-bg, var(--glass-bg-resting));
|
|
312
|
+
box-shadow: var(--metric-badge-hover-shadow, 0 2px 10px color-mix(in srgb, var(--shadow-color) 12%, transparent), var(--glass-highlight));
|
|
313
|
+
transform: scale(var(--metric-badge-hover-scale, 1.02));
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.metric-badge:active {
|
|
317
|
+
transform: scale(var(--metric-badge-press-scale, 0.96));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.metric-badge:focus-visible {
|
|
321
|
+
outline: none;
|
|
322
|
+
box-shadow: var(--focus-ring-shadow);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/* Phase-finish catch-light — the quieter cousin of --glass-specular.
|
|
326
|
+
Speedtest toggles `data-just-resolved="true"` on a metric pill once
|
|
327
|
+
its phase completes; the badge briefly carries a 1px catch-light
|
|
328
|
+
streak at the top edge. Reads as the pill catching club lighting at
|
|
329
|
+
the moment its result resolves. */
|
|
330
|
+
.metric-badge[data-just-resolved="true"] {
|
|
331
|
+
box-shadow:
|
|
332
|
+
inset 0 1px 0 0 rgb(255 255 255 / 0.18),
|
|
333
|
+
var(--metric-badge-shadow,
|
|
334
|
+
0 1px 6px color-mix(in srgb, var(--shadow-color) 8%, transparent),
|
|
335
|
+
var(--glass-highlight));
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/* ── Label-bearing variants ───────────────────────────────────────────
|
|
339
|
+
When the badge carries a `labelPosition`, the prose-style annotation
|
|
340
|
+
slot precedes the amount. Inline keeps the row baseline-aligned;
|
|
341
|
+
stacked breaks to a column with items flush-left. The label slot
|
|
342
|
+
carries its own tracked uppercase rules; the badge's max-width
|
|
343
|
+
relaxes so the wider register fits. */
|
|
344
|
+
.metric-badge--label-inline {
|
|
345
|
+
flex-direction: row;
|
|
346
|
+
align-items: baseline;
|
|
347
|
+
justify-content: flex-start;
|
|
348
|
+
gap: var(--metric-badge-label-gap, 0.375rem);
|
|
349
|
+
max-width: var(--metric-badge-label-max-width, none);
|
|
350
|
+
text-align: left;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.metric-badge--label-stacked {
|
|
354
|
+
flex-direction: column;
|
|
355
|
+
align-items: flex-start;
|
|
356
|
+
justify-content: center;
|
|
357
|
+
gap: var(--metric-badge-label-gap-stacked, 0.0625rem);
|
|
358
|
+
max-width: var(--metric-badge-label-max-width, none);
|
|
359
|
+
text-align: left;
|
|
360
|
+
min-height: var(--metric-badge-min-height-stacked, 2.625rem);
|
|
361
|
+
padding-block: var(--metric-badge-padding-block-stacked, 0.375rem);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/* T.W2.T2 — stacked variant pairs amount + unit on a single row (row 2)
|
|
365
|
+
below the label (row 1). The `.metric-badge__row` wrapper baseline-
|
|
366
|
+
aligns the value and unit so the quantity reads as one phrase, not as
|
|
367
|
+
three siblings split across three rows (the pre-T behaviour the
|
|
368
|
+
audit B-spec §2.1 flagged). */
|
|
369
|
+
.metric-badge--label-stacked .metric-badge__row {
|
|
370
|
+
display: inline-flex;
|
|
371
|
+
align-items: baseline;
|
|
372
|
+
gap: var(--metric-badge-row-gap-stacked, 0.25rem);
|
|
258
373
|
}
|
|
259
374
|
|
|
260
|
-
/*
|
|
375
|
+
/* T.W2.T3 — MetricPill density modifiers. The pill is a thin composition
|
|
376
|
+
over MetricBadge with `labelPosition="stacked"` defaults; the density
|
|
377
|
+
knob adjusts block padding + horizontal padding so the pill reads at
|
|
378
|
+
the right register for its dock host. `spacious` is the default
|
|
379
|
+
(chassis-strip rhythm), `comfortable` keeps the tighter compact
|
|
380
|
+
register for densely-packed dock clusters. The selectors compose with
|
|
381
|
+
`.metric-badge--label-stacked` so the inline ladder remains untouched
|
|
382
|
+
— these are stacked-only refinements. */
|
|
383
|
+
.metric-pill[data-density="spacious"].metric-badge--label-stacked {
|
|
384
|
+
--metric-badge-padding-block-stacked: 0.5rem;
|
|
385
|
+
--metric-badge-padding-inline: 0.75rem;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
.metric-pill[data-density="comfortable"].metric-badge--label-stacked {
|
|
389
|
+
--metric-badge-padding-block-stacked: 0.25rem;
|
|
390
|
+
--metric-badge-padding-inline: 0.5rem;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.metric-badge__label {
|
|
394
|
+
letter-spacing: 0.18em;
|
|
395
|
+
line-height: 1;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/* Dual-slot default visibility (R2-spec):
|
|
399
|
+
The library renders both `--full` and `--abbr` siblings whenever both
|
|
400
|
+
props are passed. Default identity is the full label; the abbreviation
|
|
401
|
+
sits hidden until consumer container-query CSS flips it. The adjacent-
|
|
402
|
+
sibling selector preserves single-slot back-compat: when a consumer
|
|
403
|
+
passes only `abbreviation` (no `--full` sibling rendered), the abbr
|
|
404
|
+
reads at default visibility. */
|
|
405
|
+
.metric-badge__label--full + .metric-badge__label--abbr {
|
|
406
|
+
display: none;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/* sm-tier label tracking — tighter than the md/lg/xl 0.18em rung so the
|
|
410
|
+
compact register reads as a tighter annotation against the smaller
|
|
411
|
+
glyph rise. R2-spec D-Rec-2 (audit-D). */
|
|
412
|
+
.metric-badge[data-size="sm"] .metric-badge__label {
|
|
413
|
+
letter-spacing: 0.1em;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/* Q.W3 Lane A — the `.glass-dock[data-density="…"]` density rungs that
|
|
417
|
+
set `--dock-tab-h` + `--dock-label-size` were consolidated into
|
|
418
|
+
`dock.css` (their canonical dock-styles home). They formerly lived
|
|
419
|
+
here and resolved only by the index.css import order (utilities.css
|
|
420
|
+
after dock.css); the cascade-order dependency is now gone. */
|
|
421
|
+
|
|
422
|
+
/* ── Input bar — glassmorphic inline input container ──
|
|
423
|
+
Composes the canonical `floating` glass rung (--glass-bg-floating
|
|
424
|
+
≈ 80% α, --glass-blur-floating ≈ 24px) — same surface read as the
|
|
425
|
+
prior raw composition but routed through the canonical 5-tier
|
|
426
|
+
ladder so PRT / no-backdrop-filter fallbacks propagate cleanly.
|
|
427
|
+
(Per audit U.W0.C-c §7.2.) */
|
|
261
428
|
.input-bar {
|
|
262
429
|
display: flex;
|
|
263
430
|
align-items: center;
|
|
264
431
|
gap: 0.5rem;
|
|
265
432
|
border-radius: var(--radius-2xl);
|
|
266
|
-
border: 1px solid
|
|
267
|
-
background:
|
|
268
|
-
backdrop-filter: blur
|
|
433
|
+
border: 1px solid var(--glass-border-floating);
|
|
434
|
+
background: var(--glass-bg-floating);
|
|
435
|
+
backdrop-filter: var(--glass-blur-floating);
|
|
269
436
|
|
|
270
437
|
padding: 0 0.75rem;
|
|
271
438
|
height: 2.25rem;
|
|
@@ -276,7 +443,7 @@
|
|
|
276
443
|
border-color var(--duration-fast) var(--ease-standard);
|
|
277
444
|
}
|
|
278
445
|
.input-bar:focus-within {
|
|
279
|
-
box-shadow:
|
|
446
|
+
box-shadow: var(--focus-ring-shadow);
|
|
280
447
|
border-color: var(--border);
|
|
281
448
|
}
|
|
282
449
|
|
|
@@ -293,24 +460,13 @@
|
|
|
293
460
|
color: color-mix(in srgb, var(--muted-foreground) 50%, transparent);
|
|
294
461
|
}
|
|
295
462
|
|
|
296
|
-
/* ── Dashed well — muted container for adding/selecting items ── */
|
|
297
|
-
.dashed-well {
|
|
298
|
-
max-width: var(--max-width-input);
|
|
299
|
-
border-radius: var(--radius-2xl);
|
|
300
|
-
border: 2px dashed color-mix(in srgb, var(--primary) 30%, transparent);
|
|
301
|
-
background: color-mix(in srgb, var(--primary) 5%, transparent);
|
|
302
|
-
padding: 0.75rem;
|
|
303
|
-
display: grid;
|
|
304
|
-
gap: 0.5rem;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
463
|
/* ── Hover lift — translate-y + shadow on hover (3 levels) ── */
|
|
308
464
|
.hover-lift {
|
|
309
465
|
transition-property: transform, box-shadow;
|
|
310
466
|
transition-duration: var(--duration-normal);
|
|
311
|
-
transition-timing-function: ease;
|
|
467
|
+
transition-timing-function: var(--ease-standard);
|
|
312
468
|
}
|
|
313
|
-
.hover-lift:hover {
|
|
469
|
+
.hover-lift:hover:not(:disabled):not([aria-disabled='true']) {
|
|
314
470
|
transform: translateY(var(--lift-sm));
|
|
315
471
|
box-shadow: var(--shadow-md);
|
|
316
472
|
}
|
|
@@ -318,9 +474,9 @@
|
|
|
318
474
|
.hover-lift-md {
|
|
319
475
|
transition-property: transform, box-shadow;
|
|
320
476
|
transition-duration: var(--duration-normal);
|
|
321
|
-
transition-timing-function: ease;
|
|
477
|
+
transition-timing-function: var(--ease-standard);
|
|
322
478
|
}
|
|
323
|
-
.hover-lift-md:hover {
|
|
479
|
+
.hover-lift-md:hover:not(:disabled):not([aria-disabled='true']) {
|
|
324
480
|
transform: translateY(var(--lift-md));
|
|
325
481
|
box-shadow: var(--shadow-md);
|
|
326
482
|
}
|
|
@@ -328,125 +484,41 @@
|
|
|
328
484
|
.hover-lift-lg {
|
|
329
485
|
transition-property: transform, box-shadow;
|
|
330
486
|
transition-duration: var(--duration-normal);
|
|
331
|
-
transition-timing-function: ease;
|
|
487
|
+
transition-timing-function: var(--ease-standard);
|
|
332
488
|
}
|
|
333
|
-
.hover-lift-lg:hover {
|
|
489
|
+
.hover-lift-lg:hover:not(:disabled):not([aria-disabled='true']) {
|
|
334
490
|
transform: translateY(var(--lift-lg));
|
|
335
491
|
box-shadow: var(--shadow-lg);
|
|
336
492
|
}
|
|
337
493
|
|
|
338
|
-
/* ──
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
/* ── Glass overlay — dark backdrop ── */
|
|
349
|
-
.glass-overlay {
|
|
350
|
-
background: rgb(0 0 0 / 0.6);
|
|
351
|
-
backdrop-filter: blur(4px);
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/* ── Cartoon shadows — multi-layer offset shadow + border + translateY ── */
|
|
494
|
+
/* ── Cartoon shadows — token-driven box-shadow + bezel border + lift ──
|
|
495
|
+
The box-shadow stack reads from the canonical
|
|
496
|
+
`--shadow-cartoon-{sm,md,lg}` rungs declared at tokens.css:304-312.
|
|
497
|
+
Those rungs use `color-mix(in srgb, var(--shadow-color) N%, transparent)`
|
|
498
|
+
so dark-mode flips the cast through `--shadow-color` automatically.
|
|
499
|
+
The 2px bezel border + translateY are the cartoon-stamp geometry
|
|
500
|
+
atop the canonical depth — kept here so a single class delivers
|
|
501
|
+
the whole cartoon read.
|
|
502
|
+
(Per audit U.W0.C-c §1.3 / Union 1 — collapses the dual-system
|
|
503
|
+
drift onto the token-driven shadow.) */
|
|
356
504
|
.shadow-cartoon-sm {
|
|
357
|
-
box-shadow:
|
|
358
|
-
-3px 2px 1px var(--shadow-cartoon-color),
|
|
359
|
-
0 3px 1px var(--shadow-cartoon-color),
|
|
360
|
-
-3px 3px 1px var(--shadow-cartoon-color-soft);
|
|
505
|
+
box-shadow: var(--shadow-cartoon-sm);
|
|
361
506
|
border: 2px solid var(--border);
|
|
362
507
|
transform: translateY(-1px);
|
|
363
508
|
}
|
|
364
509
|
|
|
365
510
|
.shadow-cartoon-md {
|
|
366
|
-
box-shadow:
|
|
367
|
-
-4px 3px 1px var(--shadow-cartoon-color),
|
|
368
|
-
0 4px 1px var(--shadow-cartoon-color),
|
|
369
|
-
-4px 4px 2px var(--shadow-cartoon-color-soft);
|
|
511
|
+
box-shadow: var(--shadow-cartoon-md);
|
|
370
512
|
border: 2px solid var(--border);
|
|
371
513
|
transform: translateY(-1px);
|
|
372
514
|
}
|
|
373
515
|
|
|
374
516
|
.shadow-cartoon-lg {
|
|
375
|
-
box-shadow:
|
|
376
|
-
-6px 4px 1px var(--shadow-cartoon-color),
|
|
377
|
-
0 6px 1px var(--shadow-cartoon-color),
|
|
378
|
-
-6px 6px 2px var(--shadow-cartoon-color-soft);
|
|
517
|
+
box-shadow: var(--shadow-cartoon-lg);
|
|
379
518
|
border: 2px solid var(--border);
|
|
380
519
|
transform: translateY(-2px);
|
|
381
520
|
}
|
|
382
521
|
|
|
383
|
-
.shadow-cartoon-sm-hover {
|
|
384
|
-
box-shadow:
|
|
385
|
-
-4px 3px 1px var(--shadow-cartoon-color-hover),
|
|
386
|
-
0 4px 1px var(--shadow-cartoon-color-hover),
|
|
387
|
-
-4px 4px 2px var(--shadow-cartoon-color-hover-soft);
|
|
388
|
-
border: 2px solid var(--border);
|
|
389
|
-
transform: translateY(-2px);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/* ── Shimmer text — background gradient sweep over text ── */
|
|
393
|
-
.shimmer-text {
|
|
394
|
-
background: linear-gradient(
|
|
395
|
-
90deg,
|
|
396
|
-
currentColor 0%,
|
|
397
|
-
currentColor 40%,
|
|
398
|
-
rgba(255, 255, 255, 0.8) 50%,
|
|
399
|
-
currentColor 60%,
|
|
400
|
-
currentColor 100%
|
|
401
|
-
);
|
|
402
|
-
background-size: 200% 100%;
|
|
403
|
-
background-clip: text;
|
|
404
|
-
-webkit-background-clip: text;
|
|
405
|
-
animation: shimmer-sweep var(--shimmer-duration, 2000ms) ease-in-out infinite;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
.dark .shimmer-text {
|
|
409
|
-
background: linear-gradient(
|
|
410
|
-
90deg,
|
|
411
|
-
currentColor 0%,
|
|
412
|
-
currentColor 40%,
|
|
413
|
-
rgba(255, 255, 255, 0.9) 50%,
|
|
414
|
-
currentColor 60%,
|
|
415
|
-
currentColor 100%
|
|
416
|
-
);
|
|
417
|
-
background-size: 200% 100%;
|
|
418
|
-
background-clip: text;
|
|
419
|
-
-webkit-background-clip: text;
|
|
420
|
-
animation: shimmer-sweep var(--shimmer-duration, 2000ms) ease-in-out infinite;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
/* ── Rainbow gradients ── */
|
|
424
|
-
.rainbow-pastel {
|
|
425
|
-
background: linear-gradient(to right, var(--rainbow-pastel-red), var(--rainbow-pastel-orange), var(--rainbow-pastel-yellow), var(--rainbow-pastel-green), var(--rainbow-pastel-blue), var(--rainbow-pastel-indigo), var(--rainbow-pastel-violet));
|
|
426
|
-
}
|
|
427
|
-
.rainbow-vivid {
|
|
428
|
-
background: linear-gradient(to right, var(--rainbow-red), var(--rainbow-orange), var(--rainbow-yellow), var(--rainbow-green), var(--rainbow-blue), var(--rainbow-indigo), var(--rainbow-violet));
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
/* ── Progress gradient (rainbow) ── */
|
|
432
|
-
.progress-gradient {
|
|
433
|
-
background: linear-gradient(90deg, #ef4444, #f97316, #eab308, #22c55e, #06b6d0, #3b82f6, #9333ea);
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
/* ── Glassmorphic checkbox ── */
|
|
437
|
-
.checkbox-glass {
|
|
438
|
-
height: 1.25rem;
|
|
439
|
-
width: 1.25rem;
|
|
440
|
-
border-radius: var(--radius-lg);
|
|
441
|
-
border: 2px solid color-mix(in srgb, var(--border) 60%, transparent);
|
|
442
|
-
backdrop-filter: blur(4px);
|
|
443
|
-
|
|
444
|
-
box-shadow: var(--shadow-sm);
|
|
445
|
-
transition-property: background-color, border-color, transform, box-shadow;
|
|
446
|
-
transition-duration: var(--duration-normal);
|
|
447
|
-
transition-timing-function: var(--spring-snappy);
|
|
448
|
-
}
|
|
449
|
-
|
|
450
522
|
/* ── Divider utilities ── */
|
|
451
523
|
.divider-h {
|
|
452
524
|
height: 2px;
|
|
@@ -470,208 +542,332 @@
|
|
|
470
542
|
);
|
|
471
543
|
}
|
|
472
544
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
/* ── Hover scale (O.W6 Lane C) ──
|
|
548
|
+
Canonical hover-transform utility consuming the `--scale-hover` token
|
|
549
|
+
(tokens.css §11). Promoted from consumer-side `hover:scale-105`
|
|
550
|
+
recipe — 13 sites in keyframes.js demo + 9 sites in words/frontend
|
|
551
|
+
per O11/d L3 + O11/a I4. Single-token recipe (no ladder); the dual
|
|
552
|
+
`--scale-press-{xs..lg}` ladder discussion is the press-axis cohort
|
|
553
|
+
(O-N-7), not hover. Consumers reach the utility via
|
|
554
|
+
`class="scale-on-hover"`; transition + easing bind to the canonical
|
|
555
|
+
`--duration-fast` + `--ease-standard` tokens. */
|
|
556
|
+
@utility scale-on-hover {
|
|
557
|
+
@apply transition-transform duration-fast ease-standard;
|
|
558
|
+
|
|
559
|
+
&:hover {
|
|
560
|
+
transform: scale(var(--scale-hover));
|
|
482
561
|
}
|
|
562
|
+
}
|
|
483
563
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
564
|
+
/* ── Sheet/drawer slide-out animation grammar ──
|
|
565
|
+
Mirror of `.popover-animate` for sheet/drawer panels. Pairs with
|
|
566
|
+
`slide-in-from-{top,right,bottom,left}-N` to compose side-keyed entries.
|
|
567
|
+
The open path uses --duration-panel (slow, deliberate); the close path
|
|
568
|
+
uses --duration-fast so dismiss feels snappy. R5 vocab.γ gap row 6;
|
|
569
|
+
consumed by W2.A sheet/drawer migration. */
|
|
570
|
+
@utility sheet-animate {
|
|
571
|
+
@apply data-[state=open]:animate-in data-[state=closed]:animate-out
|
|
572
|
+
data-[state=open]:fade-in data-[state=closed]:fade-out
|
|
573
|
+
data-[state=open]:duration-[var(--duration-panel)]
|
|
574
|
+
data-[state=closed]:duration-[var(--duration-fast)];
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/* ── Audacious primary CTA recipe (K.W6 HEADLINE) ────────────────────
|
|
578
|
+
Lifted from `dock.css` `.dock-tab-button[data-tier="primary"]` per
|
|
579
|
+
K.W6 spec §3 (Option B — drop phase-tinting from the canonical
|
|
580
|
+
variant; phase-tint stays as a dock-local extension). Composes three
|
|
581
|
+
at-rest marks (top-highlight via --glass-highlight, bottom under-shadow
|
|
582
|
+
via --border-hairline, baseline glass via --card surface) with three
|
|
583
|
+
disco accents on hover (specular swap via --glass-specular, sparkle
|
|
584
|
+
sweep via the ::after star, disco-grain via --paper-clean-texture
|
|
585
|
+
blended with a --primary radial). Reservation: disco fires on hover
|
|
586
|
+
only — at rest the button reads as a Vignelli-restrained composed
|
|
587
|
+
glass surface.
|
|
588
|
+
|
|
589
|
+
Pair with `bg-primary text-primary-foreground` for the canonical
|
|
590
|
+
Button variant; the utility owns the texture/highlight/sparkle
|
|
591
|
+
composition only. */
|
|
592
|
+
@utility btn-audacious {
|
|
593
|
+
position: relative;
|
|
594
|
+
isolation: isolate;
|
|
595
|
+
overflow: hidden;
|
|
596
|
+
border: 1px solid var(--glass-border-quiet);
|
|
597
|
+
box-shadow:
|
|
598
|
+
var(--border-hairline),
|
|
599
|
+
var(--glass-highlight);
|
|
600
|
+
transition:
|
|
601
|
+
background var(--duration-fast) var(--ease-standard),
|
|
602
|
+
color var(--duration-fast) var(--ease-standard),
|
|
603
|
+
transform var(--duration-fast) var(--ease-standard),
|
|
604
|
+
box-shadow var(--duration-fast) var(--ease-standard),
|
|
605
|
+
--ripple-radius var(--motion-duration-ripple, 340ms) var(--ease-out-expo);
|
|
606
|
+
|
|
607
|
+
/* Hover composition: paper-grain texture overlaid on a soft
|
|
608
|
+
--primary radial, with the specular catch-light replacing the
|
|
609
|
+
resting hairline highlight. The radial uses --primary at 18%
|
|
610
|
+
— same alpha rung the dock primary tier consumes for phase
|
|
611
|
+
tinting, just bound to the canonical CTA color instead. */
|
|
612
|
+
&:hover:not(:disabled) {
|
|
613
|
+
background-image:
|
|
614
|
+
var(--paper-clean-texture),
|
|
615
|
+
radial-gradient(
|
|
616
|
+
ellipse at 30% 30%,
|
|
617
|
+
color-mix(in srgb, var(--primary) 18%, transparent),
|
|
618
|
+
transparent 70%
|
|
619
|
+
);
|
|
620
|
+
background-blend-mode: overlay, normal;
|
|
621
|
+
background-size: var(--paper-texture-size), auto;
|
|
622
|
+
box-shadow:
|
|
623
|
+
var(--glass-specular),
|
|
624
|
+
0 0.5px 0 0 rgb(0 0 0 / 0.06);
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
/* AI.W4-M.2 (Q5 — G-AI-D27 ratified) — press-ripple via a typed
|
|
628
|
+
`--ripple-radius` length custom property. The `::before`
|
|
629
|
+
element paints a radial gradient whose stop radius equals the
|
|
630
|
+
typed length; the `:active` rule sets the length to the cap
|
|
631
|
+
(`--ripple-radius-max`, 12rem), and the host's transition
|
|
632
|
+
(above) interpolates the radius via the @property registration
|
|
633
|
+
(tokens.css §18). Release returns the length to its 0px initial
|
|
634
|
+
value and the ripple retires. The ripple paints at z-index 0
|
|
635
|
+
(above the host's background, below the slot content which sits
|
|
636
|
+
in the default 0 stacking context but with text inheriting the
|
|
637
|
+
slot's foreground colour). */
|
|
638
|
+
&::before {
|
|
639
|
+
content: "";
|
|
640
|
+
position: absolute;
|
|
641
|
+
inset: 0;
|
|
642
|
+
pointer-events: none;
|
|
643
|
+
z-index: 0;
|
|
644
|
+
border-radius: inherit;
|
|
645
|
+
background: radial-gradient(
|
|
646
|
+
circle at center,
|
|
647
|
+
color-mix(in srgb, var(--primary-foreground, hsl(0 0% 100%)) 35%, transparent) 0,
|
|
648
|
+
color-mix(in srgb, var(--primary-foreground, hsl(0 0% 100%)) 18%, transparent)
|
|
649
|
+
calc(var(--ripple-radius, 0px) * 0.55),
|
|
650
|
+
transparent var(--ripple-radius, 0px)
|
|
651
|
+
);
|
|
652
|
+
transition: inherit;
|
|
653
|
+
will-change: background;
|
|
487
654
|
}
|
|
488
655
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
outline: none;
|
|
492
|
-
transition-property: box-shadow;
|
|
493
|
-
transition-duration: var(--duration-normal);
|
|
494
|
-
transition-timing-function: var(--spring-smooth);
|
|
656
|
+
&:active:not(:disabled) {
|
|
657
|
+
--ripple-radius: var(--ripple-radius-max, 12rem);
|
|
495
658
|
}
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
659
|
+
|
|
660
|
+
/* Sparkle glyph — hidden at rest, animated on hover. The star
|
|
661
|
+
sweeps diagonally from top-left to bottom-right per the canonical
|
|
662
|
+
sparkle-sweep keyframe (animations.css). */
|
|
663
|
+
&::after {
|
|
664
|
+
content: "✦";
|
|
665
|
+
position: absolute;
|
|
666
|
+
top: 0.25rem;
|
|
667
|
+
left: 0.5rem;
|
|
668
|
+
color: hsl(0 0% 100% / 0.7);
|
|
669
|
+
font-size: 0.75rem;
|
|
670
|
+
line-height: 1;
|
|
671
|
+
pointer-events: none;
|
|
672
|
+
opacity: 0;
|
|
673
|
+
will-change: transform, opacity;
|
|
674
|
+
z-index: 1;
|
|
499
675
|
}
|
|
500
676
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
transition-property: transform;
|
|
505
|
-
transition-duration: var(--duration-fast);
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
/* ── Stagger children — cascading entrance for list/grid items ── */
|
|
509
|
-
.stagger-children > * {
|
|
510
|
-
animation: fade-in var(--duration-normal) var(--spring-smooth, ease) backwards;
|
|
511
|
-
animation-delay: calc(var(--stagger-index, 0) * 50ms);
|
|
512
|
-
}
|
|
513
|
-
.stagger-children > *:nth-child(1) { --stagger-index: 0; }
|
|
514
|
-
.stagger-children > *:nth-child(2) { --stagger-index: 1; }
|
|
515
|
-
.stagger-children > *:nth-child(3) { --stagger-index: 2; }
|
|
516
|
-
.stagger-children > *:nth-child(4) { --stagger-index: 3; }
|
|
517
|
-
.stagger-children > *:nth-child(5) { --stagger-index: 4; }
|
|
518
|
-
.stagger-children > *:nth-child(6) { --stagger-index: 5; }
|
|
519
|
-
.stagger-children > *:nth-child(7) { --stagger-index: 6; }
|
|
520
|
-
.stagger-children > *:nth-child(8) { --stagger-index: 7; }
|
|
521
|
-
.stagger-children > *:nth-child(9) { --stagger-index: 8; }
|
|
522
|
-
.stagger-children > *:nth-child(10) { --stagger-index: 9; }
|
|
523
|
-
.stagger-children > *:nth-child(11) { --stagger-index: 10; }
|
|
524
|
-
.stagger-children > *:nth-child(12) { --stagger-index: 11; }
|
|
525
|
-
|
|
526
|
-
/* ── Scroll reveal — animate on viewport entry (zero JS) ── */
|
|
527
|
-
@supports (animation-timeline: view()) {
|
|
528
|
-
/* One-shot: fades in during entry, stays visible */
|
|
529
|
-
.scroll-reveal {
|
|
530
|
-
animation: fade-in linear both;
|
|
531
|
-
animation-timeline: view();
|
|
532
|
-
animation-range: entry 0% entry 100%;
|
|
677
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
678
|
+
&:hover::after {
|
|
679
|
+
animation: sparkle-sweep var(--duration-sparkle) var(--ease-out-expo);
|
|
533
680
|
}
|
|
681
|
+
}
|
|
534
682
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
683
|
+
/* PRM bracket — the press-ripple retires; the press still reads
|
|
684
|
+
via the audacious recipe's transform/scale beat (the ripple is
|
|
685
|
+
affirmation atop affirmation). */
|
|
686
|
+
@media (prefers-reduced-motion: reduce) {
|
|
687
|
+
transition:
|
|
688
|
+
background var(--duration-fast) var(--ease-standard),
|
|
689
|
+
color var(--duration-fast) var(--ease-standard),
|
|
690
|
+
transform var(--duration-fast) var(--ease-standard),
|
|
691
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
692
|
+
|
|
693
|
+
&:active:not(:disabled) {
|
|
694
|
+
--ripple-radius: 0px;
|
|
540
695
|
}
|
|
541
696
|
}
|
|
697
|
+
}
|
|
542
698
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
699
|
+
/* ── Gold CTA shimmer modifier — AN.R0 D9 ───────────────────────────────
|
|
700
|
+
`btn-audacious-gold` extends `btn-audacious` with a gold sweep shimmer
|
|
701
|
+
on hover. Pair as `btn-audacious btn-audacious-gold` (or use the Button
|
|
702
|
+
`variant="gold-audacious"` which composes both). The hover shimmer is a
|
|
703
|
+
translucent linear-gradient sweep (low alpha — tasteful, not garish)
|
|
704
|
+
that slides left-to-right via the existing `gold-shimmer-slide` keyframe
|
|
705
|
+
(animations.css). The gold gradient uses the canonical `--color-gold-*`
|
|
706
|
+
token triad (tokens.css §13).
|
|
707
|
+
|
|
708
|
+
Design register:
|
|
709
|
+
• PRM no-preference: shimmer sweeps continuously at `--duration-shimmer`
|
|
710
|
+
rate; the sparkle-sweep (from btn-audacious) coexists on hover.
|
|
711
|
+
• PRM reduce: static gold tint shows on hover; no animation.
|
|
712
|
+
• The gold shimmer is a background-image layer ABOVE the existing
|
|
713
|
+
btn-audacious paper-grain + primary-radial layers, blended with
|
|
714
|
+
`overlay` so the glass substrate reads through at partial opacity.
|
|
715
|
+
• The `::before` ripple and `::after` sparkle from btn-audacious are
|
|
716
|
+
unchanged; this modifier only retunes the hover background layers.
|
|
717
|
+
• Consumer applies: `<Button variant="gold-audacious">Next →</Button>` */
|
|
718
|
+
@utility btn-audacious-gold {
|
|
719
|
+
/* At rest: a faint warm gold tint over the glass surface reads as "warm
|
|
720
|
+
glass" without announcing the hover state prematurely. */
|
|
721
|
+
background-image:
|
|
722
|
+
linear-gradient(
|
|
723
|
+
135deg,
|
|
724
|
+
color-mix(in srgb, var(--color-gold) 8%, transparent),
|
|
725
|
+
color-mix(in srgb, var(--color-gold-light) 5%, transparent) 50%,
|
|
726
|
+
color-mix(in srgb, var(--color-gold) 8%, transparent)
|
|
727
|
+
);
|
|
551
728
|
|
|
552
|
-
/*
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
729
|
+
/* Hover: replace the audacious primary-radial with a gold sweep shimmer.
|
|
730
|
+
The shimmer gradient rides above the paper-grain texture; the `overlay`
|
|
731
|
+
blend-mode concentrates the gold on bright grain facets and recedes on
|
|
732
|
+
dark ones — the same lens metaphor as the btn-audacious primary radial. */
|
|
733
|
+
&:hover:not(:disabled) {
|
|
734
|
+
background-image:
|
|
735
|
+
var(--paper-clean-texture),
|
|
736
|
+
linear-gradient(
|
|
737
|
+
90deg,
|
|
738
|
+
transparent 0%,
|
|
739
|
+
color-mix(in srgb, var(--color-gold-dark) 22%, transparent) 25%,
|
|
740
|
+
color-mix(in srgb, var(--color-gold-light) 30%, transparent) 50%,
|
|
741
|
+
color-mix(in srgb, var(--color-gold-dark) 22%, transparent) 75%,
|
|
742
|
+
transparent 100%
|
|
743
|
+
);
|
|
744
|
+
background-blend-mode: overlay, normal;
|
|
745
|
+
background-size: var(--paper-texture-size), 250% 100%;
|
|
746
|
+
background-position: 0 0, 100% 0;
|
|
747
|
+
box-shadow:
|
|
748
|
+
var(--glass-specular),
|
|
749
|
+
0 0 0 1px color-mix(in srgb, var(--color-gold) 30%, transparent),
|
|
750
|
+
0 0.5px 0 0 rgb(0 0 0 / 0.06);
|
|
557
751
|
}
|
|
558
752
|
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
transition-timing-function: ease;
|
|
564
|
-
}
|
|
565
|
-
.card-hover:hover {
|
|
566
|
-
border-color: color-mix(in srgb, var(--border) 50%, transparent);
|
|
567
|
-
background-color: color-mix(in srgb, var(--muted) 30%, transparent);
|
|
753
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
754
|
+
&:hover:not(:disabled) {
|
|
755
|
+
animation: btn-gold-bg-sweep var(--duration-shimmer) linear infinite;
|
|
756
|
+
}
|
|
568
757
|
}
|
|
758
|
+
}
|
|
569
759
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
}
|
|
760
|
+
/* Background-position sweep for the gold CTA hover shimmer.
|
|
761
|
+
Distinct from `gold-shimmer-slide` (which animates background-position for
|
|
762
|
+
a text-clip gradient). This variant sweeps the `background-position` of the
|
|
763
|
+
250% wide gradient across the button's bounding box. */
|
|
764
|
+
@keyframes btn-gold-bg-sweep {
|
|
765
|
+
0% { background-position: 0 0, 100% 0; }
|
|
766
|
+
100% { background-position: 0 0, -100% 0; }
|
|
767
|
+
}
|
|
579
768
|
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
769
|
+
/* ── Table density utilities — AN.R0 ─────────────────────────────────────
|
|
770
|
+
`table-cell` and `table-head` replace the former Tailwind `p-4` / `h-12`
|
|
771
|
+
literals in TableCell.vue / TableHead.vue. Both read `--table-density`
|
|
772
|
+
(tokens.css §19) so a single CSS-var assignment on a wrapping element
|
|
773
|
+
scales all row padding + header height simultaneously. Default density=1
|
|
774
|
+
resolves to the identical geometry as the previous Tailwind literals. */
|
|
775
|
+
@utility table-cell {
|
|
776
|
+
padding-inline: var(--table-cell-px, 1rem);
|
|
777
|
+
padding-block: var(--table-cell-py, 1rem);
|
|
778
|
+
}
|
|
586
779
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
}
|
|
592
|
-
.heatmap-2 {
|
|
593
|
-
background-color: rgb(254 202 202);
|
|
594
|
-
color: rgb(127 29 29);
|
|
595
|
-
}
|
|
596
|
-
.heatmap-3 {
|
|
597
|
-
background-color: rgb(252 165 165);
|
|
598
|
-
color: rgb(127 29 29);
|
|
599
|
-
}
|
|
600
|
-
.heatmap-4 {
|
|
601
|
-
background-color: rgb(248 113 113);
|
|
602
|
-
color: rgb(127 29 29);
|
|
603
|
-
}
|
|
604
|
-
.heatmap-5 {
|
|
605
|
-
background-color: rgb(239 68 68);
|
|
606
|
-
color: rgb(220 38 38);
|
|
607
|
-
}
|
|
608
|
-
.heatmap-6 {
|
|
609
|
-
background-color: rgb(220 38 38);
|
|
610
|
-
color: rgb(254 226 226);
|
|
611
|
-
}
|
|
612
|
-
.heatmap-7 {
|
|
613
|
-
background-color: rgb(185 28 28);
|
|
614
|
-
color: rgb(254 226 226);
|
|
615
|
-
}
|
|
616
|
-
.heatmap-8 {
|
|
617
|
-
background-color: rgb(153 27 27);
|
|
618
|
-
color: rgb(254 226 226);
|
|
619
|
-
}
|
|
620
|
-
.heatmap-9 {
|
|
621
|
-
background-color: rgb(127 29 29);
|
|
622
|
-
color: rgb(254 226 226);
|
|
623
|
-
}
|
|
624
|
-
.heatmap-10 {
|
|
625
|
-
background-color: rgb(69 10 10);
|
|
626
|
-
color: rgb(254 226 226);
|
|
627
|
-
}
|
|
780
|
+
@utility table-head {
|
|
781
|
+
height: var(--table-head-h, 3rem);
|
|
782
|
+
padding-inline: var(--table-head-px, 1rem);
|
|
783
|
+
}
|
|
628
784
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
785
|
+
/* ── Rainbow gradient backgrounds (Q.W3 Lane E re-promote) ──────────────
|
|
786
|
+
`.rainbow-vivid` + `.rainbow-pastel` paint a left-to-right 7-stop spectrum
|
|
787
|
+
from the canonical `--rainbow-*` / `--rainbow-pastel-*` token families
|
|
788
|
+
(tokens.css §14). They were retired at `b0debec` (D.W2.D, 2026-04-30)
|
|
789
|
+
under a zero-consumer audit that did not include keyframes.js in its
|
|
790
|
+
sweep corpus — keyframes.js's `AnimationMenuBar.vue` round play button
|
|
791
|
+
composes `rainbow-vivid` (playing) / `rainbow-pastel` (idle) and silently
|
|
792
|
+
lost its gradient when the recipes left the library. The `--rainbow-*`
|
|
793
|
+
color tokens survived the retiral; only the class recipes were dropped.
|
|
794
|
+
|
|
795
|
+
Re-promoted as `@utility` recipes — the token half is canonical, so the
|
|
796
|
+
class form that paints it belongs alongside it. Not a backwards-compat
|
|
797
|
+
alias: it is a substrate REVERT, the revert IS the consumer rediscovery
|
|
798
|
+
(≥ 1 consumer exists post-revert, satisfying L invariant 8). Faithful
|
|
799
|
+
to the pre-`b0debec` recipe bodies. */
|
|
800
|
+
@utility rainbow-vivid {
|
|
801
|
+
background: linear-gradient(
|
|
802
|
+
to right,
|
|
803
|
+
var(--rainbow-red),
|
|
804
|
+
var(--rainbow-orange),
|
|
805
|
+
var(--rainbow-yellow),
|
|
806
|
+
var(--rainbow-green),
|
|
807
|
+
var(--rainbow-blue),
|
|
808
|
+
var(--rainbow-indigo),
|
|
809
|
+
var(--rainbow-violet)
|
|
810
|
+
);
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
@utility rainbow-pastel {
|
|
814
|
+
background: linear-gradient(
|
|
815
|
+
to right,
|
|
816
|
+
var(--rainbow-pastel-red),
|
|
817
|
+
var(--rainbow-pastel-orange),
|
|
818
|
+
var(--rainbow-pastel-yellow),
|
|
819
|
+
var(--rainbow-pastel-green),
|
|
820
|
+
var(--rainbow-pastel-blue),
|
|
821
|
+
var(--rainbow-pastel-indigo),
|
|
822
|
+
var(--rainbow-pastel-violet)
|
|
823
|
+
);
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
/* ── Interactive-button four-state recipe (Q.W3 Lane E re-promote) ───────
|
|
827
|
+
`.btn-interactive` carries the canonical "Button-with-spring-hover"
|
|
828
|
+
four-state contract — transition + hover-scale (`--scale-hover`) +
|
|
829
|
+
active-press (`--scale-press`) + disabled-opacity (`--opacity-disabled`)
|
|
830
|
+
+ focus-ring fade-in. Same shape as `.btn-audacious` (a composition-only
|
|
831
|
+
recipe a Button variant opts into). Retired at `b0debec` (D.W2.D)
|
|
832
|
+
alongside the rainbow recipes under the same incomplete audit corpus;
|
|
833
|
+
keyframes.js consumes it at 7 sites (CubeScene, EasingScene, demo/cube,
|
|
834
|
+
AnimationControlsGroup RIBBON_BUTTON_CLASS, PlaybackRibbon Reverse).
|
|
835
|
+
|
|
836
|
+
The Button primitive's own variants emit the four states except
|
|
837
|
+
`hover:scale-*` — `.btn-interactive` is the canonical opt-in that adds
|
|
838
|
+
the spring-hover lift. Faithful to the pre-`b0debec` recipe body. */
|
|
839
|
+
@utility btn-interactive {
|
|
840
|
+
transition:
|
|
841
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
842
|
+
color var(--duration-fast) var(--ease-standard),
|
|
843
|
+
transform var(--duration-fast) var(--ease-standard),
|
|
844
|
+
opacity var(--duration-fast) var(--ease-standard);
|
|
845
|
+
|
|
846
|
+
&:hover {
|
|
847
|
+
transform: scale(var(--scale-hover));
|
|
661
848
|
}
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
849
|
+
|
|
850
|
+
&:active {
|
|
851
|
+
transform: scale(var(--scale-press));
|
|
665
852
|
}
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
853
|
+
|
|
854
|
+
&:disabled {
|
|
855
|
+
opacity: var(--opacity-disabled);
|
|
856
|
+
pointer-events: none;
|
|
669
857
|
}
|
|
670
|
-
}
|
|
671
858
|
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
859
|
+
&:focus-visible {
|
|
860
|
+
box-shadow: var(--focus-ring-shadow);
|
|
861
|
+
outline: none;
|
|
862
|
+
/* Fade in; base state has no box-shadow transition → instant
|
|
863
|
+
removal */
|
|
864
|
+
transition:
|
|
865
|
+
background-color var(--duration-fast) var(--ease-standard),
|
|
866
|
+
color var(--duration-fast) var(--ease-standard),
|
|
867
|
+
transform var(--duration-fast) var(--ease-standard),
|
|
868
|
+
opacity var(--duration-fast) var(--ease-standard),
|
|
869
|
+
box-shadow var(--duration-fast) var(--ease-standard);
|
|
870
|
+
}
|
|
675
871
|
}
|
|
676
872
|
|
|
677
873
|
/* ── Reduced motion: nuanced — preserve opacity, remove spatial motion ── */
|