@mkbabb/glass-ui 3.12.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CardAction-DuArVky-.js → CardAction-Cj2eycQ2.js} +2 -2
- package/dist/{CommandShortcut-CefCj5mt.js → CommandShortcut-RowNEO6i.js} +4 -4
- package/dist/{ContextMenuSubContent-Bhg4f5jX.js → ContextMenuSubContent-BQmxTAdw.js} +4 -4
- package/dist/{DataTable-CUHMukiQ.js → DataTable-BCddn3T3.js} +3 -3
- package/dist/{DialogContent-BRkT1cjP.js → DialogContent-Dl9WkAoS.js} +3 -3
- package/dist/{DialogFooter-Gprw8H_A.js → DialogFooter-Blu4t7tJ.js} +2 -2
- package/dist/{HoverPopover-2LOIW34a.js → HoverPopover-CISOJQuZ.js} +1 -1
- package/dist/{IconTooltip-Cus0fvK0.js → IconTooltip-DPzE09X9.js} +1 -1
- package/dist/MetricBadge-C9QMz1KT.js +79 -0
- package/dist/{Notification-DLMhblXR.js → Notification-DdwNxIrI.js} +2 -2
- package/dist/{NumberFieldContent-BbLOh8RU.js → NumberFieldContent-CqaN-SvN.js} +3 -3
- package/dist/{PopoverContent-BId6ggf_.js → PopoverContent-BYwt2-4x.js} +1 -1
- package/dist/{ScrollingText-BPP84wKo.js → ScrollingText-DfFrwSph.js} +1 -1
- package/dist/{SelectScrollDownButton-T32cVFeM.js → SelectScrollDownButton-CiDUxfEj.js} +6 -6
- package/dist/{Switch-Ch-k3Rv-.js → Switch-CsIuYP_e.js} +1 -1
- package/dist/{TabsList-B8CVOQPC.js → TabsList-Dttss653.js} +9 -5
- package/dist/{Toaster-1rYWrmAm.js → Toaster-D6q4HtXu.js} +50 -47
- package/dist/{ToggleGroupItem-COu_4IW4.js → ToggleGroupItem-D_AHlRw9.js} +18 -22
- package/dist/animated-digit.js +2 -2
- package/dist/api/index.d.ts +5 -2
- package/dist/api.js +2 -2
- package/dist/aurora.js +69 -69
- package/dist/{badge-CaoFJzRb.js → badge-UILT_3pZ.js} +1 -1
- package/dist/badge.js +1 -1
- package/dist/{button-DN39cGqL.js → button-ChXMfsud.js} +12 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +8 -8
- package/dist/{check-BBKKKSTf.js → check-njhk-vfu.js} +1 -1
- package/dist/{chevron-down-BSkTP2aL.js → chevron-down-DKkxb4VV.js} +1 -1
- package/dist/{chevron-right-sDM0Yvrf.js → chevron-right-CPXbqQQz.js} +1 -1
- package/dist/{chevron-up-CCOD_FTz.js → chevron-up-n_24SqI-.js} +1 -1
- package/dist/coalesceMetric-5qIeZnTx.js +13 -0
- package/dist/{color-C5ls_QF7.js → color-CUYeFbgd.js} +9 -7
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/components/custom/animated-digit/AnimatedDigit.vue.d.ts +8 -0
- package/dist/components/custom/aurora/constants/presets.d.ts +5 -62
- package/dist/components/custom/aurora/constants/shaders/mediums.glsl.d.ts +1 -1
- package/dist/components/custom/aurora/constants/shaders/vangogh-medium.glsl.d.ts +1 -0
- package/dist/components/custom/aurora/index.d.ts +1 -1
- package/dist/components/custom/configurator/ConfiguratorRow.vue.d.ts +16 -0
- package/dist/components/custom/constellation/Constellation.vue.d.ts +74 -6
- package/dist/components/custom/constellation/composables/createConstellationField.d.ts +41 -0
- package/dist/components/custom/constellation/composables/useConstellationPointer.d.ts +35 -0
- package/dist/components/custom/constellation/constants.d.ts +61 -0
- package/dist/components/custom/constellation/constellationDraw.d.ts +30 -0
- package/dist/components/custom/constellation/constellationField.d.ts +116 -149
- package/dist/components/custom/constellation/constellationInteraction.d.ts +132 -0
- package/dist/components/custom/constellation/index.d.ts +5 -2
- package/dist/components/custom/controls/DarkModeToggle.vue.d.ts +11 -0
- package/dist/components/custom/dock/DockRail.vue.d.ts +88 -0
- package/dist/components/custom/dock/DockTabButton.vue.d.ts +3 -4
- package/dist/components/custom/dock/GlassDock.vue.d.ts +5 -118
- package/dist/components/custom/dock/composables/dockMorphContext.d.ts +36 -0
- package/dist/components/custom/dock/composables/index.d.ts +1 -0
- package/dist/components/custom/dock/composables/useDockClickIntegrity.d.ts +23 -0
- package/dist/components/custom/dock/composables/useDockMorphWindow.d.ts +15 -0
- package/dist/components/custom/dock/composables/useDockOrientationMorph.d.ts +44 -0
- package/dist/components/custom/dock/composables/useDockShellProps.d.ts +165 -0
- package/dist/components/custom/dock/composables/useLayerTransition.d.ts +44 -0
- package/dist/components/custom/dock/constants.d.ts +48 -0
- package/dist/components/custom/dock/index.d.ts +3 -0
- package/dist/components/custom/expandable-container/ExpandableContainer.vue.d.ts +5 -37
- package/dist/components/custom/fourier-field/index.d.ts +1 -1
- package/dist/components/custom/fourier-field/math.d.ts +17 -0
- package/dist/components/custom/fourier-field/presets.d.ts +54 -0
- package/dist/components/custom/goo-blob/composables/buildMetaballProgram.d.ts +18 -0
- package/dist/components/custom/goo-blob/composables/uploadBlobUniforms.d.ts +41 -0
- package/dist/components/custom/goo-blob/composables/useBlobPointer.d.ts +4 -3
- package/dist/components/custom/goo-blob/composables/useMetaballRenderer.d.ts +11 -8
- package/dist/components/custom/goo-blob/constants.d.ts +52 -0
- package/dist/components/custom/goo-blob/shaders/metaball-uniforms.glsl.d.ts +1 -0
- package/dist/components/custom/instrument-chassis/InstrumentChassis.vue.d.ts +2 -2
- package/dist/components/custom/labeled-field/LabeledField.vue.d.ts +37 -0
- package/dist/components/custom/labeled-field/LabeledSelect.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSlider.vue.d.ts +6 -0
- package/dist/components/custom/labeled-field/LabeledSwitch.vue.d.ts +6 -0
- package/dist/components/custom/metric-badge/MetricBadge.vue.d.ts +11 -18
- package/dist/components/custom/metric-badge/index.d.ts +1 -0
- package/dist/components/custom/metric-cell/MetricCell.vue.d.ts +15 -4
- package/dist/components/custom/metric-stack/MetricRow.vue.d.ts +6 -4
- package/dist/components/custom/tabs/constants.d.ts +12 -0
- package/dist/components/custom/underline/GlassUnderline.vue.d.ts +84 -0
- package/dist/components/custom/underline/index.d.ts +2 -0
- package/dist/components/custom/underline/types.d.ts +56 -0
- package/dist/components/ui/card/Card.vue.d.ts +15 -3
- package/dist/components/ui/drawer/Drawer.vue.d.ts +1 -0
- package/dist/components/ui/dropdown-menu/DropdownMenuSubContent.vue.d.ts +2 -2
- package/dist/components/ui/metric-pill/MetricPill.vue.d.ts +6 -3
- package/dist/components/ui/slider/index.d.ts +22 -19
- package/dist/components/ui/tabs/TabsIndicator.vue.d.ts +4 -1
- package/dist/components/ui/toast/use-toast.d.ts +2 -2
- package/dist/components/ui/toggle/Toggle.vue.d.ts +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle-group/ToggleGroup.vue.d.ts +1 -7
- package/dist/components/ui/toggle-group/ToggleGroupItem.vue.d.ts +1 -3
- package/dist/components/ui/toggle-group/toggleGroupContext.d.ts +0 -13
- package/dist/composables/color/index.d.ts +12 -0
- package/dist/composables/dark/index.d.ts +1 -1
- package/dist/composables/dark/useGlobalDark.d.ts +1 -21
- package/dist/composables/glass/index.d.ts +0 -1
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +59 -0
- package/dist/composables/glass/useSpecularTracking.d.ts +12 -3
- package/dist/composables/motion/core/index.d.ts +1 -1
- package/dist/composables/motion/curves.d.ts +48 -0
- package/dist/composables/motion/index.d.ts +2 -0
- package/dist/composables/motion/springPresets.d.ts +33 -0
- package/dist/composables/motion/suite.d.ts +2 -0
- package/dist/composables/motion/useLiquidFlex.d.ts +85 -0
- package/dist/composables/motion/useSpringMount.d.ts +1 -1
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +2 -2
- package/dist/constellation.js +336 -222
- package/dist/context-menu.js +2 -2
- package/dist/controls.js +48 -20
- package/dist/dark.d.ts +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dock.js +705 -365
- package/dist/dockContext-BegmJVmx.js +17 -0
- package/dist/dom.js +5 -5
- package/dist/{dropdown-menu-D77jX6Df.js → dropdown-menu-DzkkyBwX.js} +11 -8
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +39 -80
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +134 -99
- package/dist/fourier-math.js +2 -2
- package/dist/glass-panel.js +86 -20
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +222 -212
- package/dist/goo-blob.js +243 -212
- package/dist/hover-card.js +1 -1
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +1 -1
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +28 -18
- package/dist/{math-DTpRVC0e.js → math-U6-RrLmV.js} +18 -2
- package/dist/metric-badge.js +1 -1
- package/dist/metric-cell.js +25 -21
- package/dist/metric-stack.js +35 -34
- package/dist/{minimize-2-lcXOuc6V.js → minimize-2-BV31Ob_h.js} +1 -1
- package/dist/motion-core.js +32 -137
- package/dist/motion-curves.d.ts +1 -0
- package/dist/motion-curves.js +130 -0
- package/dist/motion.js +38 -37
- package/dist/notification.js +1 -1
- package/dist/number-field.js +1 -1
- package/dist/paper-backdrop.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/{presets-BP_ALM0m.js → presets-BKVyQfbt.js} +1 -14
- package/dist/progress.js +1 -1
- package/dist/reactive.js +2 -2
- package/dist/scrolling-text.js +1 -1
- package/dist/{search-nbkvr2dC.js → search-BSGrf2Sk.js} +1 -1
- package/dist/search.js +9 -9
- package/dist/select.js +3 -3
- package/dist/separator.js +1 -1
- package/dist/{sheet-VZEtNFvO.js → sheet-1fChZjtw.js} +3 -3
- package/dist/sheet.js +1 -1
- package/dist/{slider-ClgpP7EB.js → slider-B-JP2JlI.js} +4 -4
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +2 -2
- package/dist/springPresets--YdWTHtm.js +40 -0
- package/dist/stacked-icons.js +6 -6
- package/dist/styles/animations.css +29 -114
- package/dist/styles/cards.css +55 -0
- package/dist/styles/components.css +4 -1
- package/dist/styles/configurator.css +42 -0
- package/dist/styles/dock/layer-group.css +83 -25
- package/dist/styles/dock/layers.css +23 -1
- package/dist/styles/dock/morph-bridge.css +123 -0
- package/dist/styles/dock/morph.css +175 -45
- package/dist/styles/dock/overflow.css +51 -1
- package/dist/styles/dock/rail-extend.css +300 -0
- package/dist/styles/dock/shell.css +63 -105
- package/dist/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/dist/styles/dock-controls/icon-button.css +133 -0
- package/dist/styles/dock-controls/tab-button.css +202 -0
- package/dist/styles/dock-controls/touch-floor.css +94 -0
- package/dist/styles/dock-controls/triggers.css +128 -0
- package/dist/styles/dock-controls.css +30 -595
- package/dist/styles/dock.css +2 -0
- package/dist/styles/drawer.css +2 -0
- package/dist/styles/floating-panel.css +17 -0
- package/dist/styles/glass/a11y-fallback.css +245 -0
- package/dist/styles/glass/ladder.css +337 -0
- package/dist/styles/glass/material.css +238 -0
- package/dist/styles/glass/progress-rail.css +78 -0
- package/dist/styles/glass/squircle.css +66 -0
- package/dist/styles/glass/surfaces.css +306 -0
- package/dist/styles/glass-refract.css +2 -0
- package/dist/styles/glass.css +31 -1188
- package/dist/styles/hover-popover.css +2 -0
- package/dist/styles/index.css +28 -14
- package/dist/styles/instrument-chassis.css +4 -0
- package/dist/styles/paper.css +2 -68
- package/dist/styles/segmented-tabs.css +275 -0
- package/dist/styles/theme/bridges.css +337 -0
- package/dist/styles/theme/dark.css +7 -0
- package/dist/styles/theme/literals.css +94 -0
- package/dist/styles/theme/radius.css +95 -0
- package/dist/styles/theme.css +26 -529
- package/dist/styles/tokens/color-radius.css +260 -0
- package/dist/styles/tokens/dark-arm.css +200 -0
- package/dist/styles/tokens/glass.css +440 -0
- package/dist/styles/tokens/light-dark.css +158 -0
- package/dist/styles/tokens/offsets-sizing.css +500 -0
- package/dist/styles/tokens/property-regs.css +169 -0
- package/dist/styles/tokens/scale-paper.css +366 -0
- package/dist/styles/tokens/scheme-motion.css +334 -0
- package/dist/styles/tokens/shadow.css +166 -0
- package/dist/styles/tokens.css +22 -2360
- package/dist/styles/typography.css +75 -21
- package/dist/styles/utilities/a11y-overrides.css +140 -0
- package/dist/styles/utilities/animate.css +26 -0
- package/dist/styles/utilities/base.css +365 -0
- package/dist/styles/utilities/btn.css +401 -0
- package/dist/styles/utilities/components.css +317 -0
- package/dist/styles/utilities.css +19 -1318
- package/dist/styles/view-transition.css +0 -51
- package/dist/switch.js +1 -1
- package/dist/tabs.js +91 -82
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/underline.d.ts +1 -0
- package/dist/underline.js +85 -0
- package/dist/{useAnimatedNumber-Bcpy5Etf.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
- package/dist/{useConfiguratorState-DxAqksK6.js → useConfiguratorState-DAoeHVue.js} +8 -8
- package/dist/{useGlobalDark-CAhOXNLO.js → useGlobalDark-yhL4Wp-s.js} +3 -22
- package/dist/useLiquidFlex-BL0lLLN2.js +30 -0
- package/dist/useRAFLoop-Bxv0o6L5.js +109 -0
- package/dist/{useScrollProgress-CffFGLa5.js → useScrollProgress-Dlvx-L3v.js} +1 -1
- package/dist/useSpecularTracking-Bo5su68i.js +32 -0
- package/dist/useSpringMount-CI2jOstM.js +108 -0
- package/dist/{useTouchGate-WFyJYsth.js → useTouchGate-Dg7MQI1G.js} +1 -1
- package/dist/utils/coalesceMetric.d.ts +29 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/vReveal-CqaCz_mC.js +44 -0
- package/dist/watercolor-dot.js +11 -9
- package/dist/{x-Dfsegz9Y.js → x-BUwTKe50.js} +1 -1
- package/package.json +78 -58
- package/src/styles/animations.css +29 -114
- package/src/styles/cards.css +53 -0
- package/src/styles/configurator.css +42 -0
- package/src/styles/dock/layer-group.css +83 -25
- package/src/styles/dock/layers.css +23 -1
- package/src/styles/dock/morph-bridge.css +123 -0
- package/src/styles/dock/morph.css +175 -45
- package/src/styles/dock/overflow.css +51 -1
- package/src/styles/dock/rail-extend.css +300 -0
- package/src/styles/dock/shell.css +63 -105
- package/src/styles/dock-controls/dark-mode-toggle.css +109 -0
- package/src/styles/dock-controls/icon-button.css +133 -0
- package/src/styles/dock-controls/tab-button.css +202 -0
- package/src/styles/dock-controls/touch-floor.css +94 -0
- package/src/styles/dock-controls/triggers.css +128 -0
- package/src/styles/dock-controls.css +30 -595
- package/src/styles/dock.css +2 -0
- package/src/styles/floating-panel.css +15 -0
- package/src/styles/glass/a11y-fallback.css +245 -0
- package/src/styles/glass/ladder.css +337 -0
- package/src/styles/glass/material.css +238 -0
- package/src/styles/glass/progress-rail.css +78 -0
- package/src/styles/glass/squircle.css +66 -0
- package/src/styles/glass/surfaces.css +306 -0
- package/src/styles/glass.css +31 -1188
- package/src/styles/index.css +28 -14
- package/src/styles/paper.css +2 -68
- package/src/styles/segmented-tabs.css +271 -0
- package/src/styles/theme/bridges.css +337 -0
- package/src/styles/theme/dark.css +7 -0
- package/src/styles/theme/literals.css +94 -0
- package/src/styles/theme/radius.css +95 -0
- package/src/styles/theme.css +26 -529
- package/src/styles/tokens/color-radius.css +260 -0
- package/src/styles/tokens/dark-arm.css +200 -0
- package/src/styles/tokens/glass.css +440 -0
- package/src/styles/tokens/light-dark.css +158 -0
- package/src/styles/tokens/offsets-sizing.css +500 -0
- package/src/styles/tokens/property-regs.css +169 -0
- package/src/styles/tokens/scale-paper.css +366 -0
- package/src/styles/tokens/scheme-motion.css +334 -0
- package/src/styles/tokens/shadow.css +166 -0
- package/src/styles/tokens.css +22 -2360
- package/src/styles/typography.css +75 -21
- package/src/styles/utilities/a11y-overrides.css +140 -0
- package/src/styles/utilities/animate.css +26 -0
- package/src/styles/utilities/base.css +365 -0
- package/src/styles/utilities/btn.css +401 -0
- package/src/styles/utilities/components.css +317 -0
- package/src/styles/utilities.css +19 -1318
- package/src/styles/view-transition.css +0 -51
- package/dist/DeckProgress-Dmk4_AKN.js +0 -23
- package/dist/InstrumentRail-CUJ05YVG.js +0 -44
- package/dist/MetricBadge-BZVWIxNy.js +0 -80
- package/dist/components/custom/deck-progress/DeckProgress.vue.d.ts +0 -27
- package/dist/components/custom/deck-progress/index.d.ts +0 -2
- package/dist/components/custom/dialog-native/GlassDialogNative.vue.d.ts +0 -57
- package/dist/components/custom/dialog-native/index.d.ts +0 -1
- package/dist/components/custom/handmark/HandMark.vue.d.ts +0 -29
- package/dist/components/custom/handmark/brush.d.ts +0 -242
- package/dist/components/custom/handmark/freehand.d.ts +0 -69
- package/dist/components/custom/handmark/geometry.d.ts +0 -50
- package/dist/components/custom/handmark/index.d.ts +0 -21
- package/dist/components/custom/handmark/ink.d.ts +0 -11
- package/dist/components/custom/handmark/texture.d.ts +0 -39
- package/dist/components/custom/handmark/types.d.ts +0 -53
- package/dist/components/custom/handmark/useHandMark.d.ts +0 -87
- package/dist/components/custom/instrument-rail/InstrumentRail.vue.d.ts +0 -91
- package/dist/components/custom/instrument-rail/index.d.ts +0 -2
- package/dist/composables/motion/useRouteTransition.d.ts +0 -42
- package/dist/deck-progress.d.ts +0 -1
- package/dist/deck-progress.js +0 -2
- package/dist/dockContext-BKeIMmNk.js +0 -9
- package/dist/handmark.d.ts +0 -1
- package/dist/handmark.js +0 -663
- package/dist/instrument-rail.d.ts +0 -1
- package/dist/instrument-rail.js +0 -2
- package/dist/styles/instrument-rail.css +0 -127
- package/dist/useGlassRenderer-D7YGOYiM.js +0 -69
- package/dist/useSpecularTracking-BVRZsRHA.js +0 -26
- package/dist/useSpringMount-BJSHcLl3.js +0 -113
- package/dist/useViewTransition-DaN5Zrox.js +0 -21
- package/dist/vReveal-zUIQk-rJ.js +0 -53
- package/src/styles/instrument-rail.css +0 -127
- /package/dist/{ContextMenuContent-DDa0v27s.js → ContextMenuContent-CT3AS1WX.js} +0 -0
- /package/dist/{HoverCardContent-B6CcQ8He.js → HoverCardContent-Csywg3YF.js} +0 -0
- /package/dist/{Input-xuDwALQR.js → Input-DWQQIOC4.js} +0 -0
- /package/dist/{InstrumentChassis-C2f6cBaQ.js → InstrumentChassis-UUJX0-mW.js} +0 -0
- /package/dist/{Label-zRfbQdCn.js → Label-r3WzWrsj.js} +0 -0
- /package/dist/{ModalOverlay-B1GkAjNb.js → ModalOverlay-DVLI2VRr.js} +0 -0
- /package/dist/{PaperBackdrop-CqwjnfLv.js → PaperBackdrop-DIXTtVq6.js} +0 -0
- /package/dist/{Progress-iEuD9pxG.js → Progress-DwlUKGbr.js} +0 -0
- /package/dist/{SelectGroup-BFiod7X2.js → SelectGroup-aumMgWLs.js} +0 -0
- /package/dist/{SelectSeparator-C4Ql0gzV.js → SelectSeparator-BQ_1Fcbp.js} +0 -0
- /package/dist/{Separator-D7sD7RKj.js → Separator-0JE6LtNu.js} +0 -0
- /package/dist/{TooltipProvider-CmZzCuaG.js → TooltipProvider-B3MkB_8P.js} +0 -0
- /package/dist/{compile-BOXjLUxu.js → compile-B7NGOBcP.js} +0 -0
- /package/dist/{constants-yKeKnE84.js → constants-CS75AWHG.js} +0 -0
- /package/dist/{createContext-B44Sah_H.js → createContext-BM46COQ-.js} +0 -0
- /package/dist/{createLucideIcon-B6uNAU9G.js → createLucideIcon-DydS2qgk.js} +0 -0
- /package/dist/{menuItemVariants-CCoBNkU5.js → menuItemVariants-DPiEarb0.js} +0 -0
- /package/dist/{supportsCssTimeline-C5oe0lnD.js → supportsCssTimeline-BWenxvHU.js} +0 -0
- /package/dist/{useIntersectionPause-Cck5Uxk8.js → useIntersectionPause-Cc-H9ees.js} +0 -0
- /package/dist/{useInterval-Dsmqwi03.js → useInterval-iHludrxk.js} +0 -0
- /package/dist/{useKeyboardShortcuts-CyIYrndH.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
- /package/dist/{useResizeObserver-CWCbk5Px.js → useResizeObserver-BhgdhOIj.js} +0 -0
- /package/dist/{useResolveTokenColor-r9pnNjqK.js → useResolveTokenColor-Dvn2RZJW.js} +0 -0
- /package/dist/{useSortable-C8ReQ50P.js → useSortable-muI29agz.js} +0 -0
- /package/dist/{useTextHighlight-CWEi25hf.js → useTextHighlight-DmRYkOBx.js} +0 -0
- /package/dist/{useTimer-3xqf_54b.js → useTimer-Dzarvzuk.js} +0 -0
- /package/dist/{useUserInvalidAria-DoJKMZ3s.js → useUserInvalidAria-B2h6jAM_.js} +0 -0
- /package/dist/{useViewportReady-RIr5Wgkh.js → useViewportReady-B40FK4Pa.js} +0 -0
|
@@ -60,56 +60,5 @@
|
|
|
60
60
|
@keyframes gl-vt-slide-in { from { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
|
|
61
61
|
@keyframes gl-vt-slide-out { to { opacity: 0; translate: 0 var(--vt-rise, 8px); } }
|
|
62
62
|
|
|
63
|
-
/* ── gl-shared-element — the named-pair MORPH group (D6.c M6) ──────────────────
|
|
64
|
-
* Distinct from `.gl-list-item` (a cross-fade of MANY members in a re-rank): a
|
|
65
|
-
* shared-element morph is ONE element that exists in BOTH the old and new states
|
|
66
|
-
* under the SAME `view-transition-name`, so the browser MORPHS it in place — the
|
|
67
|
-
* group interpolates its size+position (transform) while old/new cross-fade. The
|
|
68
|
-
* editorial case: the gallery card's title IS the dashboard masthead's title, so
|
|
69
|
-
* the name you clicked GROWS into the name you read (the card → masthead route
|
|
70
|
-
* morph). The consumer adds `view-transition-class: gl-shared-element` plus a
|
|
71
|
-
* MATCHED `view-transition-name: <id>` on BOTH the source and destination element
|
|
72
|
-
* (the MANDATORY runtime rule — ≤1 element per name per state, else the morph is
|
|
73
|
-
* skipped silently), and wraps the navigation in `useRouteTransition` /
|
|
74
|
-
* `startViewTransition`.
|
|
75
|
-
*
|
|
76
|
-
* The morph rides the SMOOTH register (the 700ms-class spring, C-ANIM-VIZ-MAP T1
|
|
77
|
-
* §7) — a longer, gentler curve than the list-item cross-fade, because a morph
|
|
78
|
-
* that travels across the viewport wants room to read. The old/new cross-fade is
|
|
79
|
-
* softened so the morphing GROUP is the figure and the rest recedes. */
|
|
80
|
-
::view-transition-group(.gl-shared-element) {
|
|
81
|
-
animation-duration: var(--vt-morph-duration, var(--duration-slow, 500ms));
|
|
82
|
-
animation-timing-function: var(--vt-morph-ease, var(--spring-smooth, ease-in-out));
|
|
83
|
-
}
|
|
84
|
-
::view-transition-old(.gl-shared-element),
|
|
85
|
-
::view-transition-new(.gl-shared-element) {
|
|
86
|
-
/* The image pair cross-fades UNDER the group's size/position morph — softer
|
|
87
|
-
than the group curve so the morph (the size/position travel) is the figure
|
|
88
|
-
and the pixel cross-fade is the recessive fill. */
|
|
89
|
-
animation-duration: var(--vt-morph-duration, var(--duration-slow, 500ms));
|
|
90
|
-
animation-timing-function: var(--vt-ease, var(--spring-smooth, ease-in-out));
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/* ── gl-expand — the plate → fullscreen MORPH recipe (D6.c M7) ─────────────────
|
|
94
|
-
* The expand verb (a plate growing to fullscreen) is a SHARED-ELEMENT morph, not
|
|
95
|
-
* an opacity jump-cut: the plate IS the fullscreen surface, growing. It is a
|
|
96
|
-
* specialization of `gl-shared-element` — the SAME named-pair morph, with the
|
|
97
|
-
* expand register (a touch snappier than a route morph, because the surface stays
|
|
98
|
-
* in place and only the rect grows, so it wants less travel-room). `ExpandableContainer`
|
|
99
|
-
* wires the `view-transition-name` plumbing on its plate↔fullscreen surfaces (an
|
|
100
|
-
* opt-in `viewTransitionName` prop), so a consumer opts in and the open/close
|
|
101
|
-
* mutation — wrapped in `startViewTransition` — morphs the plate's rect to the
|
|
102
|
-
* fullscreen rect and back. The named pair is the SAME element across states
|
|
103
|
-
* (the slot content), so the browser captures one group and grows it. */
|
|
104
|
-
::view-transition-group(.gl-expand) {
|
|
105
|
-
animation-duration: var(--vt-expand-duration, var(--duration-normal, 240ms));
|
|
106
|
-
animation-timing-function: var(--vt-expand-ease, var(--spring-bouncy, ease-out));
|
|
107
|
-
}
|
|
108
|
-
::view-transition-old(.gl-expand),
|
|
109
|
-
::view-transition-new(.gl-expand) {
|
|
110
|
-
animation-duration: var(--vt-expand-duration, var(--duration-normal, 240ms));
|
|
111
|
-
animation-timing-function: var(--vt-ease, var(--spring-bouncy, ease-out));
|
|
112
|
-
}
|
|
113
|
-
|
|
114
63
|
/* Keep the non-transitioned UI interactive while the snapshot animates. */
|
|
115
64
|
::view-transition { pointer-events: none; }
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./Progress-iEuD9pxG.js";
|
|
3
|
-
import { createBlock as n, defineComponent as r, normalizeClass as i, openBlock as a, unref as o } from "vue";
|
|
4
|
-
//#endregion
|
|
5
|
-
//#region src/components/custom/deck-progress/DeckProgress.vue
|
|
6
|
-
var s = /* @__PURE__ */ r({
|
|
7
|
-
__name: "DeckProgress",
|
|
8
|
-
props: {
|
|
9
|
-
value: {},
|
|
10
|
-
class: {}
|
|
11
|
-
},
|
|
12
|
-
setup(r) {
|
|
13
|
-
let s = r;
|
|
14
|
-
return (r, c) => (a(), n(o(t), {
|
|
15
|
-
variant: "default",
|
|
16
|
-
"model-value": s.value,
|
|
17
|
-
class: i(o(e)("glass-progress-rail", s.class)),
|
|
18
|
-
"aria-label": "Deck position"
|
|
19
|
-
}, null, 8, ["model-value", "class"]));
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
//#endregion
|
|
23
|
-
export { s as t };
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { computed as t, createCommentVNode as n, createElementBlock as r, defineComponent as i, normalizeClass as a, normalizeStyle as o, openBlock as s, renderSlot as c } from "vue";
|
|
3
|
-
//#region src/components/custom/instrument-rail/InstrumentRail.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var l = [
|
|
5
|
-
"data-variant",
|
|
6
|
-
"data-bezel-hairlines",
|
|
7
|
-
"data-divider-rule"
|
|
8
|
-
], u = {
|
|
9
|
-
key: 0,
|
|
10
|
-
class: "instrument-rail-status"
|
|
11
|
-
}, d = /* @__PURE__ */ i({
|
|
12
|
-
__name: "InstrumentRail",
|
|
13
|
-
props: {
|
|
14
|
-
variant: { default: "vertical" },
|
|
15
|
-
ratio: { default: .382 },
|
|
16
|
-
bezelHairlines: {
|
|
17
|
-
type: Boolean,
|
|
18
|
-
default: !0
|
|
19
|
-
},
|
|
20
|
-
dividerRule: {
|
|
21
|
-
type: Boolean,
|
|
22
|
-
default: !0
|
|
23
|
-
},
|
|
24
|
-
class: { type: [
|
|
25
|
-
Boolean,
|
|
26
|
-
null,
|
|
27
|
-
String,
|
|
28
|
-
Object,
|
|
29
|
-
Array
|
|
30
|
-
] }
|
|
31
|
-
},
|
|
32
|
-
setup(i) {
|
|
33
|
-
let d = i, f = t(() => e("instrument-rail", d.class)), p = t(() => ({ "--instrument-rail-ratio": String(d.ratio) }));
|
|
34
|
-
return (e, t) => (s(), r("aside", {
|
|
35
|
-
class: a(f.value),
|
|
36
|
-
"data-variant": i.variant,
|
|
37
|
-
"data-bezel-hairlines": i.bezelHairlines ? "" : null,
|
|
38
|
-
"data-divider-rule": i.dividerRule ? "" : null,
|
|
39
|
-
style: o(p.value)
|
|
40
|
-
}, [e.$slots.status ? (s(), r("header", u, [c(e.$slots, "status")])) : n("", !0), c(e.$slots, "default")], 14, l));
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
//#endregion
|
|
44
|
-
export { d as t };
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./cn-DJXf4yaB.js";
|
|
2
|
-
import { t } from "./_plugin-vue_export-helper-ok8pgSl5.js";
|
|
3
|
-
import { Fragment as n, computed as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, defineComponent as s, normalizeClass as c, normalizeStyle as l, openBlock as u, toDisplayString as d, unref as f } from "vue";
|
|
4
|
-
//#region src/components/custom/metric-badge/MetricBadge.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var p = ["data-size", "data-variant"], m = {
|
|
6
|
-
key: 1,
|
|
7
|
-
class: "metric-badge__row"
|
|
8
|
-
}, h = /* @__PURE__ */ t(/* @__PURE__ */ s({
|
|
9
|
-
__name: "MetricBadge",
|
|
10
|
-
props: {
|
|
11
|
-
amount: {},
|
|
12
|
-
unit: {},
|
|
13
|
-
label: {},
|
|
14
|
-
abbreviation: {},
|
|
15
|
-
labelPosition: {},
|
|
16
|
-
color: {},
|
|
17
|
-
placeholder: { default: "—" },
|
|
18
|
-
size: { default: "md" },
|
|
19
|
-
variant: { default: "default" },
|
|
20
|
-
class: { type: [
|
|
21
|
-
Boolean,
|
|
22
|
-
null,
|
|
23
|
-
String,
|
|
24
|
-
Object,
|
|
25
|
-
Array
|
|
26
|
-
] }
|
|
27
|
-
},
|
|
28
|
-
setup(t) {
|
|
29
|
-
let s = t, h = r(() => {
|
|
30
|
-
switch (s.size) {
|
|
31
|
-
case "sm": return "text-mono-micro";
|
|
32
|
-
case "md": return "text-mono-caption";
|
|
33
|
-
case "lg": return "text-mono-small";
|
|
34
|
-
case "xl": return "text-mono-prose";
|
|
35
|
-
default: return "text-mono-caption";
|
|
36
|
-
}
|
|
37
|
-
}), g = r(() => {
|
|
38
|
-
switch (s.size) {
|
|
39
|
-
case "sm": return "text-micro";
|
|
40
|
-
case "md": return "text-caption";
|
|
41
|
-
case "lg": return "text-small";
|
|
42
|
-
case "xl": return "text-prose";
|
|
43
|
-
default: return "text-caption";
|
|
44
|
-
}
|
|
45
|
-
}), _ = r(() => {
|
|
46
|
-
switch (s.size) {
|
|
47
|
-
case "sm": return "text-mono-micro";
|
|
48
|
-
case "md": return "text-mono-micro";
|
|
49
|
-
case "lg": return "text-mono-caption";
|
|
50
|
-
case "xl": return "text-mono-small";
|
|
51
|
-
default: return "text-mono-micro";
|
|
52
|
-
}
|
|
53
|
-
}), v = r(() => !!(s.labelPosition && (s.abbreviation || s.label)));
|
|
54
|
-
return (r, s) => (u(), a("div", {
|
|
55
|
-
class: c(f(e)("metric-badge cursor-pointer", "focus-visible:outline-2 focus-visible:outline-ring focus-visible:outline-offset-2", t.labelPosition && `metric-badge--label-${t.labelPosition}`, t.variant === "record" && "metric-badge--record", r.$props.class)),
|
|
56
|
-
"data-size": t.size,
|
|
57
|
-
"data-variant": t.variant
|
|
58
|
-
}, [v.value ? (u(), a(n, { key: 0 }, [t.label ? (u(), a("span", {
|
|
59
|
-
key: 0,
|
|
60
|
-
class: c(["metric-badge__label metric-badge__label--full font-mono uppercase text-muted-foreground/80 shrink-0", _.value])
|
|
61
|
-
}, d(t.label), 3)) : i("", !0), t.abbreviation ? (u(), a("span", {
|
|
62
|
-
key: 1,
|
|
63
|
-
class: c(["metric-badge__label metric-badge__label--abbr font-mono uppercase text-muted-foreground/80 shrink-0", _.value])
|
|
64
|
-
}, d(t.abbreviation), 3)) : i("", !0)], 64)) : i("", !0), t.labelPosition === "stacked" ? (u(), a("span", m, [o("span", {
|
|
65
|
-
class: c(["metric-badge__amount font-semibold tabular-nums tracking-snug truncate transition-colors", [h.value, { "text-muted-foreground/40": !t.amount }]]),
|
|
66
|
-
style: l(t.amount ? { color: t.color } : void 0)
|
|
67
|
-
}, d(t.amount || t.placeholder), 7), t.unit ? (u(), a("span", {
|
|
68
|
-
key: 0,
|
|
69
|
-
class: c(["metric-badge__unit font-mono text-muted-foreground shrink-0", g.value])
|
|
70
|
-
}, d(t.unit), 3)) : i("", !0)])) : (u(), a(n, { key: 2 }, [o("span", {
|
|
71
|
-
class: c(["metric-badge__amount font-semibold tabular-nums tracking-snug truncate transition-colors", [h.value, { "text-muted-foreground/40": !t.amount }]]),
|
|
72
|
-
style: l(t.amount ? { color: t.color } : void 0)
|
|
73
|
-
}, d(t.amount || t.placeholder), 7), t.unit ? (u(), a("span", {
|
|
74
|
-
key: 0,
|
|
75
|
-
class: c(["metric-badge__unit font-mono text-muted-foreground shrink-0", g.value])
|
|
76
|
-
}, d(t.unit), 3)) : i("", !0)], 64))], 10, p));
|
|
77
|
-
}
|
|
78
|
-
}), [["__scopeId", "data-v-5ac15b4e"]]);
|
|
79
|
-
//#endregion
|
|
80
|
-
export { h as t };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DeckProgress — a thin `:value`-only wrapper that renders the shipped
|
|
3
|
-
* `<Progress variant="default">` styled as the `.glass-progress-rail`
|
|
4
|
-
* deck-position rail (AW.W16).
|
|
5
|
-
*
|
|
6
|
-
* It owns the rail LOOK and NOTHING ELSE. The CONSUMER owns:
|
|
7
|
-
* - the position math — `value` is a pre-computed 0..100 percentage
|
|
8
|
-
* (`100·(k+1)/N` is a one-liner every consumer already keeps);
|
|
9
|
-
* - the viewport-pinned chrome — `position: fixed`,
|
|
10
|
-
* `bottom: env(safe-area-inset-bottom)`, the z-index — supplied via the
|
|
11
|
-
* forwarded `class` (a consumer pins it; this wrapper declares no
|
|
12
|
-
* positioning).
|
|
13
|
-
*
|
|
14
|
-
* NO `:index`/`:total` convenience path, NO `deckProgress()` math import, NO
|
|
15
|
-
* `/deck` subpath (the `/deck` name is reserved for the slides deck-engine
|
|
16
|
-
* lift). The wrapper ships on the root barrel like the other cherry-picked
|
|
17
|
-
* custom composites.
|
|
18
|
-
*/
|
|
19
|
-
export interface DeckProgressProps {
|
|
20
|
-
/** Pre-computed deck-position percentage (0..100) the consumer supplies. */
|
|
21
|
-
value: number;
|
|
22
|
-
/** Forwarded class — the consumer pins the rail's viewport chrome here. */
|
|
23
|
-
class?: string;
|
|
24
|
-
}
|
|
25
|
-
declare const __VLS_export: import("vue").DefineComponent<DeckProgressProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DeckProgressProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
-
declare const _default: typeof __VLS_export;
|
|
27
|
-
export default _default;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* <GlassDialogNative> — the native-`<dialog>` glass pilot (AQ.W6 §Design 5).
|
|
3
|
-
*
|
|
4
|
-
* A real `<dialog class="glass-top-layer">` top-layer surface. Entry/exit is
|
|
5
|
-
* PURE CSS from the `.glass-top-layer` grammar (`@starting-style` + `overlay` +
|
|
6
|
-
* `allow-discrete` + a glass `::backdrop`; animations.css §TOP-LAYER) — no
|
|
7
|
-
* per-frame JS, no `useSpringMount`. Light-dismiss is the native `closedby="any"`
|
|
8
|
-
* with a ≤ 12-LOC backdrop-click shim as the feature-detected fallback for
|
|
9
|
-
* engines without `HTMLDialogElement.closedBy`.
|
|
10
|
-
*
|
|
11
|
-
* DISPOSITION (W8 overfitting audit): this is the simple-confirm/settings PILOT
|
|
12
|
-
* only — one heading, optional short form, a close action. reka-ui `Dialog` is
|
|
13
|
-
* UNCHANGED and stays the default for every compound focus-trap case (nested
|
|
14
|
-
* focus zones, async content, the drag-dismiss `spring` opt-in). The pilot ships
|
|
15
|
-
* gated to a demo story (its consumer) pending the muster J.W6 ≥2-consumer
|
|
16
|
-
* adoption; it is NOT on the public barrel or a flat subpath yet (no overfit
|
|
17
|
-
* surface). `commandfor`/`command` (Baseline LIMITED) is the PREFERRED trigger
|
|
18
|
-
* wiring where supported; the JS `showModal()`/`close()` path (exposed below)
|
|
19
|
-
* is the kept default for non-supporting targets.
|
|
20
|
-
*
|
|
21
|
-
* Baseline: `<dialog>` + `showModal` = Widely; `dialog-closedby` = Newly
|
|
22
|
-
* (≤ 20-LOC shim fallback); `invoker-commands` (`commandfor`) = LIMITED
|
|
23
|
-
* (progressive — the JS open path stays default).
|
|
24
|
-
*/
|
|
25
|
-
type __VLS_Props = {
|
|
26
|
-
/** Light-dismiss on backdrop/Esc — `closedby="any"`. Default true. */
|
|
27
|
-
lightDismiss?: boolean;
|
|
28
|
-
/** id so a sibling `<button commandfor=… command="show-modal">` can
|
|
29
|
-
* target this dialog (the declarative-open path). */
|
|
30
|
-
id?: string;
|
|
31
|
-
/** `aria-labelledby` target — the id of the consumer's heading. */
|
|
32
|
-
labelledby?: string;
|
|
33
|
-
/** Class merged onto the `<dialog>` surface. */
|
|
34
|
-
class?: string;
|
|
35
|
-
};
|
|
36
|
-
declare function showModal(): void;
|
|
37
|
-
declare function close(returnValue?: string): void;
|
|
38
|
-
declare var __VLS_1: {
|
|
39
|
-
close: typeof close;
|
|
40
|
-
};
|
|
41
|
-
type __VLS_Slots = {} & {
|
|
42
|
-
default?: (props: typeof __VLS_1) => any;
|
|
43
|
-
};
|
|
44
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
|
|
45
|
-
showModal: typeof showModal;
|
|
46
|
-
close: typeof close;
|
|
47
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
48
|
-
lightDismiss: boolean;
|
|
49
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
50
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
51
|
-
declare const _default: typeof __VLS_export;
|
|
52
|
-
export default _default;
|
|
53
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
54
|
-
new (): {
|
|
55
|
-
$slots: S;
|
|
56
|
-
};
|
|
57
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as GlassDialogNative } from "./GlassDialogNative.vue";
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { HandMarkProps } from "./types";
|
|
2
|
-
declare function play(): void;
|
|
3
|
-
declare var __VLS_1: {};
|
|
4
|
-
type __VLS_Slots = {} & {
|
|
5
|
-
default?: (props: typeof __VLS_1) => any;
|
|
6
|
-
};
|
|
7
|
-
declare const __VLS_base: import("vue").DefineComponent<HandMarkProps, {
|
|
8
|
-
play: typeof play;
|
|
9
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<HandMarkProps> & Readonly<{}>, {
|
|
10
|
-
color: string;
|
|
11
|
-
seed: number;
|
|
12
|
-
shape: import("./types").HandShape;
|
|
13
|
-
animation: import("./types").HandAnimation;
|
|
14
|
-
appear: "mount" | "visible" | "manual";
|
|
15
|
-
jagged: boolean;
|
|
16
|
-
brush: import("./brush").BrushName | Partial<import("./brush").Brush>;
|
|
17
|
-
drawMs: number;
|
|
18
|
-
drawDelayMs: number;
|
|
19
|
-
boilFps: number;
|
|
20
|
-
boilFrames: number;
|
|
21
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
23
|
-
declare const _default: typeof __VLS_export;
|
|
24
|
-
export default _default;
|
|
25
|
-
type __VLS_WithSlots<T, S> = T & {
|
|
26
|
-
new (): {
|
|
27
|
-
$slots: S;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* brush.ts — the flat Brush DATA model (the keystone; SPEC §2). Pure data, 0 deps.
|
|
3
|
-
* ─────────────────────────────────────────────────────────────────────────────
|
|
4
|
-
* A `Brush` is a plain JSON-serialisable record — twelve scalars, four enums, and
|
|
5
|
-
* one optional `stamp` function. Every built-in medium is a frozen literal: a
|
|
6
|
-
* POINT in one continuous parameter space, NOT a class in a taxonomy. The renderer
|
|
7
|
-
* (`ink.ts`) reads fields — it NEVER branches on instrument name (SPEC §12 acc-1).
|
|
8
|
-
* Adding a medium = adding one row here; an in-between medium = a spread/lerp.
|
|
9
|
-
*
|
|
10
|
-
* Field-count discipline (SPEC §2): resist a 13th scalar per new instrument —
|
|
11
|
-
* `blend` earned its place only because highlighter genuinely needed `multiply`.
|
|
12
|
-
*
|
|
13
|
-
* The shipped register: PEN is the default (clean ink, grain:0 ⇒ no filter); the
|
|
14
|
-
* CRAYON ships as the proven STROKE-crayon (constant-width offset passes + the
|
|
15
|
-
* seeded static feTurbulence grain — `ds-crayon-handmark` verdict), i.e.
|
|
16
|
-
* `ribbon:'stroke'` (the `ribbon:'hull'` perfect-freehand width-variance upgrade
|
|
17
|
-
* is wired but unconsumed — a later field-delta, never a code branch).
|
|
18
|
-
*/
|
|
19
|
-
export type BlendMode = "source-over" | "multiply" | "darken" | "screen";
|
|
20
|
-
export interface TaperSpec {
|
|
21
|
-
/** px the width ramps 0→full at the start (lift-on). */
|
|
22
|
-
start: number;
|
|
23
|
-
/** px the width ramps full→0 at the end (lift-off / dry run-out). */
|
|
24
|
-
end: number;
|
|
25
|
-
/** out-cubic = the lazy pencil run-out. */
|
|
26
|
-
ease: "linear" | "out-cubic";
|
|
27
|
-
}
|
|
28
|
-
export interface Brush {
|
|
29
|
-
/** base stroke diameter, in viewBox units. */
|
|
30
|
-
weight: number;
|
|
31
|
-
/** 0..1.4 seeded ±width variance along arc-length. */
|
|
32
|
-
weightJitter: number;
|
|
33
|
-
/** -1..1 pressure→width gain (pf `thinning`). */
|
|
34
|
-
thinning: number;
|
|
35
|
-
/** lift-on / lift-off ramp. */
|
|
36
|
-
taper: TaperSpec;
|
|
37
|
-
/** L2 body strategy: plain stroked <path> | pf filled hull. DEFAULT 'stroke'. */
|
|
38
|
-
ribbon: "stroke" | "hull";
|
|
39
|
-
/** 0..1 base alpha. */
|
|
40
|
-
opacity: number;
|
|
41
|
-
/** 'source-over' ink | 'multiply' highlighter-behind-text. */
|
|
42
|
-
blend: BlendMode;
|
|
43
|
-
/** overdraw count (pen 1 · crayon 2-3). */
|
|
44
|
-
passes: number;
|
|
45
|
-
/** 0..1 per-pass alpha falloff (heavy core, light fringe). */
|
|
46
|
-
passOpacity: number;
|
|
47
|
-
/** 0..1 paper-through depth — THE master pen↔crayon knob. 0 ⇒ NO filter. */
|
|
48
|
-
grain: number;
|
|
49
|
-
/** feTurbulence baseFrequency (high=pencil tooth · low=crayon wax). */
|
|
50
|
-
grainFreq: number;
|
|
51
|
-
/** feDisplacementMap edge-fray scale, px. */
|
|
52
|
-
grainScale: number;
|
|
53
|
-
/** feTurbulence numOctaves (grain richness). */
|
|
54
|
-
octaves: number;
|
|
55
|
-
/** macro tremor → wobbleLinePoints({ roughness }). */
|
|
56
|
-
roughness: number;
|
|
57
|
-
/** micro displacement scale (boil amplitude + warp filter). */
|
|
58
|
-
wobble: number;
|
|
59
|
-
/** wobble centerline resolution. */
|
|
60
|
-
segments: number;
|
|
61
|
-
cap: "round" | "square" | "butt";
|
|
62
|
-
/** when present, OVERRIDES the built-in ink stage only. */
|
|
63
|
-
stamp?: StampFn;
|
|
64
|
-
}
|
|
65
|
-
/** SPEC §5 — the arbitrary-brush escape hatch (one optional field, not a framework). */
|
|
66
|
-
export type StampFn = (ctx: {
|
|
67
|
-
centerline: [number, number][];
|
|
68
|
-
brush: Brush;
|
|
69
|
-
rng: () => number;
|
|
70
|
-
seed: number;
|
|
71
|
-
length: number;
|
|
72
|
-
color: string;
|
|
73
|
-
}) => {
|
|
74
|
-
paths: InkPath[];
|
|
75
|
-
filterId?: string | null;
|
|
76
|
-
defs?: string[];
|
|
77
|
-
};
|
|
78
|
-
/** One ink path the renderer emits (shared with ink.ts; declared here to avoid a cycle). */
|
|
79
|
-
export interface InkPath {
|
|
80
|
-
d: string;
|
|
81
|
-
fill?: string;
|
|
82
|
-
stroke?: string;
|
|
83
|
-
opacity: number;
|
|
84
|
-
blend: BlendMode;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* The named points in the continuum. `pen` is the DEFAULT (clean ink, grain:0).
|
|
88
|
-
* `crayon` is the SHIPPED stroke-crayon (ribbon:'stroke', the static grain filter);
|
|
89
|
-
* `pencil`/`marker`/`highlighter` round out the spanning set.
|
|
90
|
-
*/
|
|
91
|
-
export declare const BRUSHES: {
|
|
92
|
-
readonly pen: {
|
|
93
|
-
readonly weight: 6;
|
|
94
|
-
readonly weightJitter: 0.1;
|
|
95
|
-
readonly thinning: 0.15;
|
|
96
|
-
readonly taper: {
|
|
97
|
-
readonly start: 14;
|
|
98
|
-
readonly end: 14;
|
|
99
|
-
readonly ease: "out-cubic";
|
|
100
|
-
};
|
|
101
|
-
readonly ribbon: "stroke";
|
|
102
|
-
readonly opacity: 1;
|
|
103
|
-
readonly blend: "source-over";
|
|
104
|
-
readonly passes: 1;
|
|
105
|
-
readonly passOpacity: 0;
|
|
106
|
-
readonly grain: 0;
|
|
107
|
-
readonly grainFreq: 0.1;
|
|
108
|
-
readonly grainScale: 0;
|
|
109
|
-
readonly octaves: 2;
|
|
110
|
-
readonly roughness: 0.7;
|
|
111
|
-
readonly wobble: 1.2;
|
|
112
|
-
readonly segments: 9;
|
|
113
|
-
readonly cap: "round";
|
|
114
|
-
};
|
|
115
|
-
readonly pencil: {
|
|
116
|
-
readonly weight: 3;
|
|
117
|
-
readonly weightJitter: 0.3;
|
|
118
|
-
readonly thinning: 0.4;
|
|
119
|
-
readonly taper: {
|
|
120
|
-
readonly start: 8;
|
|
121
|
-
readonly end: 18;
|
|
122
|
-
readonly ease: "out-cubic";
|
|
123
|
-
};
|
|
124
|
-
readonly ribbon: "stroke";
|
|
125
|
-
readonly opacity: 0.6;
|
|
126
|
-
readonly blend: "source-over";
|
|
127
|
-
readonly passes: 1;
|
|
128
|
-
readonly passOpacity: 0;
|
|
129
|
-
readonly grain: 0.5;
|
|
130
|
-
readonly grainFreq: 0.42;
|
|
131
|
-
readonly grainScale: 1.5;
|
|
132
|
-
readonly octaves: 3;
|
|
133
|
-
readonly roughness: 1;
|
|
134
|
-
readonly wobble: 1.6;
|
|
135
|
-
readonly segments: 11;
|
|
136
|
-
readonly cap: "round";
|
|
137
|
-
};
|
|
138
|
-
readonly crayon: {
|
|
139
|
-
readonly weight: 16;
|
|
140
|
-
readonly weightJitter: 1;
|
|
141
|
-
readonly thinning: 0.25;
|
|
142
|
-
readonly taper: {
|
|
143
|
-
readonly start: 6;
|
|
144
|
-
readonly end: 6;
|
|
145
|
-
readonly ease: "linear";
|
|
146
|
-
};
|
|
147
|
-
readonly ribbon: "stroke";
|
|
148
|
-
readonly opacity: 0.8;
|
|
149
|
-
readonly blend: "source-over";
|
|
150
|
-
readonly passes: 2;
|
|
151
|
-
readonly passOpacity: 0.18;
|
|
152
|
-
readonly grain: 0.85;
|
|
153
|
-
readonly grainFreq: 0.16;
|
|
154
|
-
readonly grainScale: 2.6;
|
|
155
|
-
readonly octaves: 4;
|
|
156
|
-
readonly roughness: 1.5;
|
|
157
|
-
readonly wobble: 3;
|
|
158
|
-
readonly segments: 13;
|
|
159
|
-
readonly cap: "round";
|
|
160
|
-
};
|
|
161
|
-
readonly ring: {
|
|
162
|
-
readonly weight: 5;
|
|
163
|
-
readonly weightJitter: 0.6;
|
|
164
|
-
readonly thinning: 0.3;
|
|
165
|
-
readonly taper: {
|
|
166
|
-
readonly start: 8;
|
|
167
|
-
readonly end: 12;
|
|
168
|
-
readonly ease: "out-cubic";
|
|
169
|
-
};
|
|
170
|
-
readonly ribbon: "stroke";
|
|
171
|
-
readonly opacity: 0.55;
|
|
172
|
-
readonly blend: "source-over";
|
|
173
|
-
readonly passes: 1;
|
|
174
|
-
readonly passOpacity: 0;
|
|
175
|
-
readonly grain: 0.7;
|
|
176
|
-
readonly grainFreq: 0.18;
|
|
177
|
-
readonly grainScale: 1.8;
|
|
178
|
-
readonly octaves: 4;
|
|
179
|
-
readonly roughness: 1.4;
|
|
180
|
-
readonly wobble: 2.6;
|
|
181
|
-
readonly segments: 13;
|
|
182
|
-
readonly cap: "round";
|
|
183
|
-
};
|
|
184
|
-
readonly marker: {
|
|
185
|
-
readonly weight: 12;
|
|
186
|
-
readonly weightJitter: 0.2;
|
|
187
|
-
readonly thinning: 0.1;
|
|
188
|
-
readonly taper: {
|
|
189
|
-
readonly start: 4;
|
|
190
|
-
readonly end: 10;
|
|
191
|
-
readonly ease: "out-cubic";
|
|
192
|
-
};
|
|
193
|
-
readonly ribbon: "stroke";
|
|
194
|
-
readonly opacity: 0.92;
|
|
195
|
-
readonly blend: "source-over";
|
|
196
|
-
readonly passes: 1;
|
|
197
|
-
readonly passOpacity: 0;
|
|
198
|
-
readonly grain: 0.22;
|
|
199
|
-
readonly grainFreq: 0.09;
|
|
200
|
-
readonly grainScale: 1;
|
|
201
|
-
readonly octaves: 3;
|
|
202
|
-
readonly roughness: 1;
|
|
203
|
-
readonly wobble: 2.2;
|
|
204
|
-
readonly segments: 9;
|
|
205
|
-
readonly cap: "square";
|
|
206
|
-
};
|
|
207
|
-
readonly highlighter: {
|
|
208
|
-
readonly weight: 26;
|
|
209
|
-
readonly weightJitter: 0.05;
|
|
210
|
-
readonly thinning: 0;
|
|
211
|
-
readonly taper: {
|
|
212
|
-
readonly start: 0;
|
|
213
|
-
readonly end: 0;
|
|
214
|
-
readonly ease: "linear";
|
|
215
|
-
};
|
|
216
|
-
readonly ribbon: "stroke";
|
|
217
|
-
readonly opacity: 0.38;
|
|
218
|
-
readonly blend: "multiply";
|
|
219
|
-
readonly passes: 1;
|
|
220
|
-
readonly passOpacity: 0;
|
|
221
|
-
readonly grain: 0.12;
|
|
222
|
-
readonly grainFreq: 0.2;
|
|
223
|
-
readonly grainScale: 1.5;
|
|
224
|
-
readonly octaves: 2;
|
|
225
|
-
readonly roughness: 0.5;
|
|
226
|
-
readonly wobble: 1.4;
|
|
227
|
-
readonly segments: 9;
|
|
228
|
-
readonly cap: "square";
|
|
229
|
-
};
|
|
230
|
-
};
|
|
231
|
-
export type BrushName = keyof typeof BRUSHES;
|
|
232
|
-
/**
|
|
233
|
-
* Resolution order (KISS, deterministic): preset → object overrides → extra `o`.
|
|
234
|
-
* A string selects a preset; an object spreads over `pen`. Later wins.
|
|
235
|
-
*/
|
|
236
|
-
export declare const resolveBrush: (b: BrushName | Partial<Brush>, o?: Partial<Brush>) => Brush;
|
|
237
|
-
/**
|
|
238
|
-
* lerpBrush — the continuum proof (SPEC §12 acc-2). Linearly interpolate the
|
|
239
|
-
* scalar fields of two brushes; enums/taper/ribbon snap from `a` below 0.5, `b`
|
|
240
|
-
* at/above. Yields a sensible in-between ("inky crayon"), no NaN.
|
|
241
|
-
*/
|
|
242
|
-
export declare const lerpBrush: (a: Brush, b: Brush, t: number) => Brush;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* freehand.ts — the VENDORED perfect-freehand geometry core (MIT, tldraw).
|
|
3
|
-
* ─────────────────────────────────────────────────────────────────────────────
|
|
4
|
-
* SPEC §1.1 / §11: glass-ui ships ZERO hard deps. `perfect-freehand` is an
|
|
5
|
-
* OPTIONAL peer; its `getStroke` is the only one of the four engines that
|
|
6
|
-
* produces TRUE variable width (the swelling/tapering crayon nib). We vendor only
|
|
7
|
-
* its *geometry* core (a few hundred LOC, MIT) behind this L2 seam so:
|
|
8
|
-
*
|
|
9
|
-
* - the default pen/crayon presets (`ribbon: 'stroke'`) NEVER import it — the
|
|
10
|
-
* bundle treeshakes it away (the shipped stroke-crayon, `ds-crayon-handmark`),
|
|
11
|
-
* - the `ribbon: 'hull'` opt-in (the future width-variance upgrade) has a
|
|
12
|
-
* dependency-free, deterministic body engine already in place,
|
|
13
|
-
* - the pointer-capture half of the library (dead weight to us) never ships.
|
|
14
|
-
*
|
|
15
|
-
* This is the `getStroke` + `getStrokeOutlinePoints` + `getStrokePoints` core
|
|
16
|
-
* from perfect-freehand@1.2.3 (Steve Ruiz, MIT), transcribed to TypeScript with
|
|
17
|
-
* the `getSvgPathFromStroke` median-quad serialiser the references use. The
|
|
18
|
-
* algorithm is verbatim; only the module shape (named exports, vendored vec math)
|
|
19
|
-
* is glass-ui-local.
|
|
20
|
-
*
|
|
21
|
-
* @license MIT — perfect-freehand © Stephen Ruiz Ltd. https://github.com/steveruizok/perfect-freehand
|
|
22
|
-
*/
|
|
23
|
-
/** A point: [x, y] or [x, y, pressure]. */
|
|
24
|
-
export type InputPoint = [number, number] | [number, number, number];
|
|
25
|
-
export interface StrokeOptions {
|
|
26
|
-
size?: number;
|
|
27
|
-
thinning?: number;
|
|
28
|
-
smoothing?: number;
|
|
29
|
-
streamline?: number;
|
|
30
|
-
easing?: (t: number) => number;
|
|
31
|
-
simulatePressure?: boolean;
|
|
32
|
-
start?: {
|
|
33
|
-
cap?: boolean;
|
|
34
|
-
taper?: number | boolean;
|
|
35
|
-
easing?: (t: number) => number;
|
|
36
|
-
};
|
|
37
|
-
end?: {
|
|
38
|
-
cap?: boolean;
|
|
39
|
-
taper?: number | boolean;
|
|
40
|
-
easing?: (t: number) => number;
|
|
41
|
-
};
|
|
42
|
-
last?: boolean;
|
|
43
|
-
}
|
|
44
|
-
interface StrokePoint {
|
|
45
|
-
point: number[];
|
|
46
|
-
pressure: number;
|
|
47
|
-
distance: number;
|
|
48
|
-
vector: number[];
|
|
49
|
-
runningLength: number;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* getStrokePoints — resample the raw input into smoothed StrokePoints with
|
|
53
|
-
* running length + per-segment unit vectors (the streamline low-pass).
|
|
54
|
-
*/
|
|
55
|
-
export declare function getStrokePoints(points: InputPoint[], options?: StrokeOptions): StrokePoint[];
|
|
56
|
-
/**
|
|
57
|
-
* getStrokeOutlinePoints — walk the StrokePoints, emit left/right offset points
|
|
58
|
-
* (the variable-width hull), with tapered caps.
|
|
59
|
-
*/
|
|
60
|
-
export declare function getStrokeOutlinePoints(points: StrokePoint[], options?: StrokeOptions): number[][];
|
|
61
|
-
/** getStroke — the public entry: raw input → variable-width hull outline points. */
|
|
62
|
-
export declare function getStroke(points: InputPoint[], options?: StrokeOptions): number[][];
|
|
63
|
-
/**
|
|
64
|
-
* getSvgPathFromStroke — the canonical median-quad serialiser the references use:
|
|
65
|
-
* each segment's control point is the midpoint of two consecutive outline points,
|
|
66
|
-
* yielding a smooth closed fill `d`-string.
|
|
67
|
-
*/
|
|
68
|
-
export declare function getSvgPathFromStroke(stroke: number[][], closed?: boolean): string;
|
|
69
|
-
export {};
|