@scriptedpixels/liquid-glass-vue 0.0.3 → 0.0.4

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/assets/ts/utils.ts","../src/components/GlassFilter.vue","../src/components/GlassContainer.vue","../src/components/LiquidGlass.vue","../src/App.vue","../src/main.ts"],"sourcesContent":["export const displacementMap =\n \"data:image/jpeg;base64,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cUAUAkEkziomgGgkoxZGgxZFQFQlYnQHRdPfj/10KCSCKESCNiVkViPSLpD0h6I0Q0I0A2IoBWBIJIBKBIJoJIJ2R2J0JWBUJ0JUB0XTv479dFZDYiglYigkhEgjZFQjRFQjRFQjQigFYigHYigmgEgmglYlYnQlQlYlQHQlQnQ9P/kf1yVkNiNCNkNiVENiNiViNEViNkVCVgKCViViViSCViSCVgdCViVCViVCdgVCVCdD1D+U/XBWQ2I0I2Q2JUQ2I0JWQ0I2JUQ2JUI2JUI2J0JWJWJWA2R0BWJ0I2JUJ2BUJUJ0P//EABkQAQEBAQEBAAAAAAAAAAAAAAECABEDEP/aAAgBAQABAgB1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq+OrVq1atWrVq1atWrVq1atWrVq1atWrVq1atXxVppppppdWrVq1atWrVq1NNNNNNNNNNNPVWmmmmms6tWrVq1atWpppppppppppppp6q0000uc51atWrVq1ammmmmmmmmmmmmt1Vpppc5znVq1atWrVqaaaaaaaaaaaaaeqtNLnOc51atWrVq1ammmmmmmmmmmmmnqrS5znOc6tWrVq16222mmmmmmlVppp6tKuc5znOrVq1a9TbbbbTTTTTSq000qtLnOc5zq1atWrW0222200000qqqtKqrnOc5zq1atTbbbbbbbbTTTSqqqqqq5znOc6tTTTbbbbbbbbTTTSqqqqrlVznOctNNNtttttttttNNNNKqqqrqznKqrTTTTbbbbbbbbbTTTSqqqqrqznOc5aaaabbbbbbbbbaaaaVVVVVdWc5znVq1NNttttttttttNNKqqqqudWc5znVq16tbbbbbbbbbbTTSqqqq5XVnOc6tWrVrb1tttttttttNNKqqqqrWrK5VWmmm2230bbbbbbaaaXOc5zlVa1KuVVppptttt9G22222mmlzlVznK6tWVVWmmmm2222222222mlznOc5znLWppVVWmmm22222229bTWrOc5znOcq1qaaVpWmm222222229erVqznOc5znKtatStK0rTbTTbbbberXr1as5znOc5aVpppppWlabaabbbb1ta9WrVnOc5znU0rTTTTTTTTTbTTbbbTWvVq1as5znOdTTStNNNNNNNNNtNNtttN6tWvVq1ZznOrU00rTTTTTTTTTTTTTbTWvVq1atWrOc6tTTTStNNNNNNNNNNtNNtNa9WrVq1Z1Z1NNNNNK1q1NNNNNNNNNNNtNatWrVq1atWrU00000rWrVq1atWrVq1alaaa1atWrVq1NNNammmmla1atWrVq1aterVq16tWrVnVqa1NK1qaaaVX/xAAWEAADAAAAAAAAAAAAAAAAAAAhgJD/2gAIAQEAAz8AaExf/8QAGhEBAQEBAQEBAAAAAAAAAAAAAQISEQADEP/aAAgBAgEBAgDx48ePHjx48ePHjx48ePHjx48ePHjx48ePHj86IiIiIiInjx48ePHjx48IiIiIj0oooooooooRERER73ve60UUUUUUVrWiiiiiihERERER73ve97ooooorRWiiiiihKERERER73ve973RRRRWtFFFFFFCIiIiIiPe973ve60UUVrRRRRRRQiIlCIiI973ve973pRRWiiiiiiiiiiiiiiihEe973ve973RRWtFFFFFFFFFFFFFFFFFFa13ve973WitaKKKKKKKKKKKKKKKKKK1rWtd1rutFa1oooooooooooosssooorWta1rWta1rRRRRRRRRRRZZZZZZZZZWta1rWta1rRRRRRRRRZZZZZZZZZZZZe9a1rWta1rWitaKLLLLLLLLLLLLLLLLL3rWta1rWtFbLLLLLLLLLLLLLLLLLLLL3vWta1rWita1ssssssss+hZZZZZZZZe961rWta0Vre97LLLLLLLLLLLPoWWWWWXrWta1oorWta3ssss+hZZZZ9Cyyyyyyyyiita1orWta1ve9llllllllllllllllFFa0VorWta1ve9llllllllllllllllllFFFaK1rWta1rWiyyyyyyyyyyyyiiiiiiitFFa1rWta1oosoosssssoooosoooorRRRWta1rWta0UUUUUWUUUUUUUUUUUVoooorWta1rWtaKKKKKKmiiiiiiiiiiiiiiitd73ve61oSiiipoqaKKKKKKKKKK0UUUVrve973vREREZoSihEooooorRRRRWtd73ve9EREREREoSiiiiitFllllla73ve9ERERERESiiiiiitH0PoWWWWVrXe96IiIiMoiJRRRRRRWjwlFFllllFFd6IiIiIlCUUUUUUUUUePHjx48ePCIiIiIiIiUUUUUUUUUUUePHjx48ePHjx48ePHjx48IiUUUUUUJRRRX//xAAWEQADAAAAAAAAAAAAAAAAAAABYJD/2gAIAQIBAz8AtEV7/8QAFxEBAQEBAAAAAAAAAAAAAAAAAAECEP/aAAgBAwEBAgCtNNNNNNNNNNNNNNNNNNNNNNNNNNNNNcrTTTTTTTTTTTTTTTTTTTTTTTTTTTTTXKrTTTTTTTU000000000000000000001FVpppppqampqaaaaaaaaaaaaaaaaaaaa5Vaaaaampqampqammmmmmmmmmmlaaaaaaiq0001NTU1NTU1NTTTTTTTTTTSqqtNNNcqtNNSyzU1LNTU1NTTTTTTTTTSqqq001ytNLLLLNTU1NTU1NTbbbTTTTTSqqq001ytNLLLLLNTU1NTU3NttttNNNNNKqq001KrSyyyyyzU1NTU3Nzc02220000qqqqrSqqyyyyyzU1NTU3Nzc3NttttNNNKqqqqqqssssss1NTU3Nzc3NzbbbbTTTSqqqqqqrLLLLLNTU1Nzc3Nzc22220000qqqqqqqqssss1NTU3Nzc3NzbbbbbTTSqqqqqqqqqqzU1NTc3Nzc3Nzbc22000qqqqqqqqqqqtTU3Nzc3Nzc3NtzbTTSqqqqrKqqqqqtNNzc23Nzc3Nzc3NTU1KqqqrKqqqqqtNNNNttzc3Nzc3NzU1NLLLLLKqqqqqqqq0022223Nzc3NzU1NSyyyyyyqqqqqqqrTTbbbbc3Nzc3NTU1LLLLLLKsqqqqqqrTTTTbbbc3Nzc1NTUsssssssqqqqqqrTTTTTbbbTc3NTU1NTUsssssqqqqqqqq0000222023NTU1NTUsssssqqqqqqqq000000003NTU1NTU1LLLLLNKrTSqqqqtNNNNNNtNNTU1NSzUssss00qq0qqqqrTTTTTTTTTU1NTUs1LLLNNNKrTTTSqqq00000000001NTU1LNTU0000qtNNNKqqqtNNNNNNNNTU1NTUs1NNNNNKss1NNNK00qtK0000001NNTU0s000000qq000001NKrStNNNNK1NNNNStNNNNNKqtNNNNNNNK0000000rU0000rTTTTTSq00000rTTTTTTTTTTTTTTTTStNNNNKr/xAAUEQEAAAAAAAAAAAAAAAAAAACg/9oACAEDAQM/AAAf/9k=\"\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { displacementMap } from '../assets/ts/utils';\n\nconst props = defineProps<{\n id: string;\n displacementScale: number;\n aberrationIntensity: number;\n width: number;\n height: number;\n}>();\n\nconst edgeMaskOffset = computed(() => {\n return Math.max(30, 80 - props.aberrationIntensity * 2);\n});\n\nconst redDisplacementScale = computed(() => {\n return props.displacementScale * -1;\n});\n\nconst greenDisplacementScale = computed(() => {\n return props.displacementScale * (-1 - props.aberrationIntensity * 0.05);\n});\n\nconst blueDisplacementScale = computed(() => {\n return props.displacementScale * (-1 - props.aberrationIntensity * 0.1);\n});\n\nconst gaussianBlurStdDeviation = computed(() => {\n return Math.max(0.1, 0.5 - props.aberrationIntensity * 0.1);\n});\n\nconst feFuncATableValues = computed(() => {\n return `0 ${props.aberrationIntensity * 0.05} 1`;\n});\n\n</script>\n\n<template>\n <svg :style=\"{ position: 'absolute', width: props.width + 'px', height: props.height + 'px' }\" aria-hidden=\"true\">\n <defs>\n <radialGradient :id=\"`${props.id}-edge-mask`\" cx=\"50%\" cy=\"50%\" r=\"50%\">\n <stop offset=\"0%\" stop-color=\"black\" stop-opacity=\"0\" />\n <stop :offset=\"`${edgeMaskOffset}%`\" stop-color=\"black\" stop-opacity=\"0\" />\n <stop offset=\"100%\" stop-color=\"white\" stop-opacity=\"1\" />\n </radialGradient>\n <filter :id=\"props.id\" x=\"-35%\" y=\"-35%\" width=\"170%\" height=\"170%\" color-interpolation-filters=\"sRGB\">\n <feImage id=\"feimage\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" result=\"DISPLACEMENT_MAP\" :href=\"displacementMap\" preserveAspectRatio=\"xMidYMid slice\" />\n\n <!-- Create edge mask using the displacement map itself -->\n <feColorMatrix\n in=\"DISPLACEMENT_MAP\"\n type=\"matrix\"\n values=\"0.3 0.3 0.3 0 0\n 0.3 0.3 0.3 0 0\n 0.3 0.3 0.3 0 0\n 0 0 0 1 0\"\n result=\"EDGE_INTENSITY\"\n />\n <feComponentTransfer in=\"EDGE_INTENSITY\" result=\"EDGE_MASK\">\n <feFuncA type=\"discrete\" :tableValues=\"feFuncATableValues\" />\n </feComponentTransfer>\n\n <!-- Original undisplaced image for center -->\n <feOffset in=\"SourceGraphic\" dx=\"0\" dy=\"0\" result=\"CENTER_ORIGINAL\" />\n\n <!-- Red channel displacement with slight offset -->\n <feDisplacementMap in=\"SourceGraphic\" in2=\"DISPLACEMENT_MAP\" :scale=\"redDisplacementScale\" xChannelSelector=\"R\" yChannelSelector=\"B\" result=\"RED_DISPLACED\" />\n <feColorMatrix\n in=\"RED_DISPLACED\"\n type=\"matrix\"\n values=\"1 0 0 0 0\n 0 0 0 0 0\n 0 0 0 0 0\n 0 0 0 1 0\"\n result=\"RED_CHANNEL\"\n />\n\n <!-- Green channel displacement -->\n <feDisplacementMap in=\"SourceGraphic\" in2=\"DISPLACEMENT_MAP\" :scale=\"greenDisplacementScale\" xChannelSelector=\"R\" yChannelSelector=\"B\" result=\"GREEN_DISPLACED\" />\n <feColorMatrix\n in=\"GREEN_DISPLACED\"\n type=\"matrix\"\n values=\"0 0 0 0 0\n 0 1 0 0 0\n 0 0 0 0 0\n 0 0 0 1 0\"\n result=\"GREEN_CHANNEL\"\n />\n\n <!-- Blue channel displacement with slight offset -->\n <feDisplacementMap in=\"SourceGraphic\" in2=\"DISPLACEMENT_MAP\" :scale=\"blueDisplacementScale\" xChannelSelector=\"R\" yChannelSelector=\"B\" result=\"BLUE_DISPLACED\" />\n <feColorMatrix\n in=\"BLUE_DISPLACED\"\n type=\"matrix\"\n values=\"0 0 0 0 0\n 0 0 0 0 0\n 0 0 1 0 0\n 0 0 0 1 0\"\n result=\"BLUE_CHANNEL\"\n />\n\n <!-- Combine all channels with screen blend mode for chromatic aberration -->\n <feBlend in=\"GREEN_CHANNEL\" in2=\"BLUE_CHANNEL\" mode=\"screen\" result=\"GB_COMBINED\" />\n <feBlend in=\"RED_CHANNEL\" in2=\"GB_COMBINED\" mode=\"screen\" result=\"RGB_COMBINED\" />\n\n <!-- Add slight blur to soften the aberration effect -->\n <feGaussianBlur in=\"RGB_COMBINED\" :stdDeviation=\"gaussianBlurStdDeviation\" result=\"ABERRATED_BLURRED\" />\n\n <!-- Apply edge mask to aberration effect -->\n <feComposite in=\"ABERRATED_BLURRED\" in2=\"EDGE_MASK\" operator=\"in\" result=\"EDGE_ABERRATION\" />\n\n <!-- Create inverted mask for center -->\n <feComponentTransfer in=\"EDGE_MASK\" result=\"INVERTED_MASK\">\n <feFuncA type=\"table\" tableValues=\"1 0\" />\n </feComponentTransfer>\n <feComposite in=\"CENTER_ORIGINAL\" in2=\"INVERTED_MASK\" operator=\"in\" result=\"CENTER_CLEAN\" />\n\n <!-- Combine edge aberration with clean center -->\n <feComposite in=\"EDGE_ABERRATION\" in2=\"CENTER_CLEAN\" operator=\"over\" />\n </filter>\n </defs>\n </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport GlassFilter from './GlassFilter.vue';\n\ninterface GlassContainerProps {\n className?: string;\n style?: Record<string, any>;\n displacementScale?: number;\n blurAmount?: number;\n saturation?: number;\n aberrationIntensity?: number;\n mouseOffset?: { x: number; y: number };\n active?: boolean;\n overLight?: boolean;\n cornerRadius?: number;\n padding?: string;\n glassSize?: { width: number; height: number };\n onClick?: () => void;\n}\n\nconst props = withDefaults(defineProps<GlassContainerProps>(), {\n className: '',\n style: () => ({}),\n displacementScale: 25,\n blurAmount: 12,\n saturation: 180,\n aberrationIntensity: 2,\n mouseOffset: () => ({ x: 0, y: 0 }),\n active: false,\n overLight: false,\n cornerRadius: 999,\n padding: '24px 32px',\n glassSize: () => ({ width: 270, height: 69 }),\n});\n\nconst emit = defineEmits<{\n (e: 'mouse-enter'): void;\n (e: 'mouse-leave'): void;\n (e: 'mouse-down'): void;\n (e: 'mouse-up'): void;\n (e: 'click'): void;\n}>();\n\nconst filterId = `glass-filter-${Math.random().toString(36).substr(2, 9)}`;\n\nconst backdropStyle = computed(() => ({\n filter: `url(#${filterId})`,\n backdropFilter: `blur(${(props.overLight ? 20 : 4) + props.blurAmount * 32}px) saturate(${props.saturation}%)`,\n}));\n\n// Expose the ref for parent components to access\nconst glassContainerRef = ref<HTMLDivElement | null>(null);\ndefineExpose({ glassContainerRef });\n</script>\n\n<template>\n <div\n ref=\"glassContainerRef\"\n :class=\"`relative ${props.className} ${props.active ? 'active' : ''} ${Boolean(props.onClick) ? 'cursor-pointer' : ''}`\"\n :style=\"props.style\"\n @click=\"props.onClick && props.onClick()\"\n >\n <GlassFilter\n :id=\"filterId\"\n :displacementScale=\"props.displacementScale\"\n :aberrationIntensity=\"props.aberrationIntensity\"\n :width=\"props.glassSize.width\"\n :height=\"props.glassSize.height\"\n />\n\n <div\n class=\"glass\"\n :style=\"{\n borderRadius: `${props.cornerRadius}px`,\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: '24px',\n padding: props.padding,\n overflow: 'hidden',\n transition: 'all 0.2s ease-in-out',\n boxShadow: props.overLight ? '0px 16px 70px rgba(0, 0, 0, 0.75)' : '0px 12px 40px rgba(0, 0, 0, 0.25)',\n }\"\n @mouseenter=\"emit('mouse-enter')\"\n @mouseleave=\"emit('mouse-leave')\"\n @mousedown=\"emit('mouse-down')\"\n @mouseup=\"emit('mouse-up')\"\n >\n <!-- backdrop layer that gets wiggly -->\n <span\n class=\"glass__warp\"\n :style=\"{\n ...backdropStyle,\n position: 'absolute',\n inset: '0',\n }\"\n />\n\n <!-- user content stays sharp -->\n <div\n class=\"transition-all duration-150 ease-in-out text-white\"\n :style=\"{\n position: 'relative',\n zIndex: 1,\n font: '500 20px/1 system-ui',\n textShadow: props.overLight ? '0px 2px 12px rgba(0, 0, 0, 0)' : '0px 2px 12px rgba(0, 0, 0, 0.4)',\n }\"\n >\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n/* Add any specific styles for this component here if needed */\n</style> ","<script setup lang=\"ts\">\nimport { ref, computed, watch, onMounted, onUnmounted } from 'vue';\nimport GlassContainer from './GlassContainer.vue';\nimport GlassFilter from './GlassFilter.vue';\n\ninterface LiquidGlassProps {\n displacementScale?: number;\n blurAmount?: number;\n saturation?: number;\n aberrationIntensity?: number;\n elasticity?: number;\n cornerRadius?: number;\n globalMousePos?: { x: number; y: number };\n mouseOffset?: { x: number; y: number };\n mouseContainer?: HTMLElement | null;\n className?: string;\n padding?: string;\n style?: Record<string, any>;\n overLight?: boolean;\n onClick?: () => void;\n}\n\nconst props = withDefaults(defineProps<LiquidGlassProps>(), {\n displacementScale: 70,\n blurAmount: 0.0625,\n saturation: 140,\n aberrationIntensity: 2,\n elasticity: 0.15,\n cornerRadius: 999,\n globalMousePos: undefined,\n mouseOffset: undefined,\n mouseContainer: null,\n className: '',\n padding: '24px 32px',\n overLight: false,\n onClick: () => ({}),\n});\n\nconst glassRef = ref<InstanceType<typeof GlassContainer> | null>(null);\nconst isHovered = ref(false);\nconst isActive = ref(false);\nconst glassSize = ref({ width: 400, height: 400 });\nconst internalGlobalMousePos = ref({ x: 0, y: 0 });\nconst internalMouseOffset = ref({ x: 0, y: 0 });\n\nconst globalMousePos = computed(() => props.globalMousePos || internalGlobalMousePos.value);\nconst mouseOffset = computed(() => props.mouseOffset || internalMouseOffset.value);\n\nconst handleMouseMove = (e: MouseEvent) => {\n const container = props.mouseContainer || glassRef.value?.glassContainerRef;\n if (!container) return;\n\n const rect = container.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n internalMouseOffset.value = {\n x: ((e.clientX - centerX) / rect.width) * 100,\n y: ((e.clientY - centerY) / rect.height) * 100,\n };\n\n internalGlobalMousePos.value = {\n x: e.clientX,\n y: e.clientY,\n };\n};\n\nonMounted(() => {\n const updateGlassSize = () => {\n if (glassRef.value?.glassContainerRef) {\n const rect = glassRef.value.glassContainerRef.getBoundingClientRect();\n glassSize.value = { width: rect.width, height: rect.height };\n }\n };\n\n updateGlassSize();\n window.addEventListener('resize', updateGlassSize);\n\n return () => window.removeEventListener('resize', updateGlassSize);\n});\n\nwatch([() => props.globalMousePos, () => props.mouseOffset, glassRef], ([newGlobalMousePos, newMouseOffset]) => {\n if (newGlobalMousePos && newMouseOffset) {\n return;\n }\n\n const container = props.mouseContainer || glassRef.value?.glassContainerRef;\n if (!container) return;\n\n container.addEventListener('mousemove', handleMouseMove);\n\n}, { immediate: true });\n\nonUnmounted(() => {\n // container.removeEventListener('mousemove', handleMouseMove);\n});\n\nconst calculateFadeInFactor = computed(() => {\n if (!globalMousePos.value.x || !globalMousePos.value.y || !glassRef.value?.glassContainerRef) {\n return 0;\n }\n\n const rect = glassRef.value.glassContainerRef.getBoundingClientRect();\n const pillCenterX = rect.left + rect.width / 2;\n const pillCenterY = rect.top + rect.height / 2;\n const pillWidth = glassSize.value.width;\n const pillHeight = glassSize.value.height;\n\n const edgeDistanceX = Math.max(0, Math.abs(globalMousePos.value.x - pillCenterX) - pillWidth / 2);\n const edgeDistanceY = Math.max(0, Math.abs(globalMousePos.value.y - pillCenterY) - pillHeight / 2);\n const edgeDistance = Math.sqrt(edgeDistanceX * edgeDistanceX + edgeDistanceY * edgeDistanceY);\n\n const activationZone = 200;\n return edgeDistance > activationZone ? 0 : 1 - edgeDistance / activationZone;\n});\n\nconst calculateElasticTranslation = computed(() => {\n if (!glassRef.value?.glassContainerRef) {\n return { x: 0, y: 0 };\n }\n\n const fadeInFactor = calculateFadeInFactor.value;\n const rect = glassRef.value.glassContainerRef.getBoundingClientRect();\n const pillCenterX = rect.left + rect.width / 2;\n const pillCenterY = rect.top + rect.height / 2;\n\n return {\n x: (globalMousePos.value.x - pillCenterX) * props.elasticity * 0.1 * fadeInFactor,\n y: (globalMousePos.value.y - pillCenterY) * props.elasticity * 0.1 * fadeInFactor,\n };\n});\n\nconst calculateDirectionalScale = computed(() => {\n if (!globalMousePos.value.x || !globalMousePos.value.y || !glassRef.value?.glassContainerRef) {\n return \"scale(1)\";\n }\n\n const rect = glassRef.value.glassContainerRef.getBoundingClientRect();\n const pillCenterX = rect.left + rect.width / 2;\n const pillCenterY = rect.top + rect.height / 2;\n const pillWidth = glassSize.value.width;\n const pillHeight = glassSize.value.height;\n\n const deltaX = globalMousePos.value.x - pillCenterX;\n const deltaY = globalMousePos.value.y - pillCenterY;\n\n const edgeDistanceX = Math.max(0, Math.abs(deltaX) - pillWidth / 2);\n const edgeDistanceY = Math.max(0, Math.abs(deltaY) - pillHeight / 2);\n const edgeDistance = Math.sqrt(edgeDistanceX * edgeDistanceX + edgeDistanceY * edgeDistanceY);\n\n const activationZone = 200;\n\n if (edgeDistance > activationZone) {\n return \"scale(1)\";\n }\n\n const fadeInFactor = 1 - edgeDistance / activationZone;\n\n const centerDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n if (centerDistance === 0) {\n return \"scale(1)\";\n }\n\n const normalizedX = deltaX / centerDistance;\n const normalizedY = deltaY / centerDistance;\n\n const stretchIntensity = Math.min(centerDistance / 300, 1) * props.elasticity * fadeInFactor;\n\n const scaleX = 1 + Math.abs(normalizedX) * stretchIntensity * 0.3 - Math.abs(normalizedY) * stretchIntensity * 0.15;\n\n const scaleY = 1 + Math.abs(normalizedY) * stretchIntensity * 0.3 - Math.abs(normalizedX) * stretchIntensity * 0.15;\n\n return `scaleX(${Math.max(0.8, scaleX)}) scaleY(${Math.max(0.8, scaleY)})`;\n});\n\nconst transformStyle = computed(() => {\n return `translate(calc(-50% + ${calculateElasticTranslation.value.x}px), calc(-50% + ${calculateElasticTranslation.value.y}px)) ${(isActive.value && Boolean(props.onClick)) ? \"scale(0.96)\" : calculateDirectionalScale.value}`;\n});\n\nconst baseStyle = computed(() => ({\n ...props.style,\n transform: transformStyle.value,\n transition: \"all ease-out 0.2s\",\n}));\n\nconst positionStyles = computed(() => ({\n position: props.style?.position || \"relative\",\n top: props.style?.top || \"50%\",\n left: props.style?.left || \"50%\",\n}));\n</script>\n\n<template>\n <GlassFilter\n :id=\"`liquid-glass-filter-${glassRef?.glassContainerRef?.id || 'default'}`\"\n :displacementScale=\"props.overLight ? props.displacementScale * 0.5 : props.displacementScale\"\n :aberrationIntensity=\"props.aberrationIntensity\"\n :width=\"glassSize.width\"\n :height=\"glassSize.height\"\n /> \n <!-- Over light effect -->\n <div\n :class=\"`bg-black transition-all duration-150 ease-in-out pointer-events-none ${props.overLight ? 'opacity-20' : 'opacity-0'}`\"\n :style=\"{\n ...positionStyles,\n height: glassSize.height + 'px',\n width: glassSize.width + 'px',\n borderRadius: `${props.cornerRadius}px`,\n transform: transformStyle,\n transition: baseStyle.transition,\n }\"\n />\n <div\n :class=\"`bg-black transition-all duration-150 ease-in-out pointer-events-none mix-blend-overlay ${props.overLight ? 'opacity-100' : 'opacity-0'}`\"\n :style=\"{\n ...positionStyles,\n height: glassSize.height + 'px',\n width: glassSize.width + 'px',\n borderRadius: `${props.cornerRadius}px`,\n transform: transformStyle,\n transition: baseStyle.transition,\n }\"\n />\n\n <GlassContainer\n ref=\"glassRef\"\n :class=\"props.className\"\n :style=\"baseStyle\"\n :cornerRadius=\"props.cornerRadius\"\n :displacementScale=\"props.overLight ? props.displacementScale * 0.5 : props.displacementScale\"\n :blurAmount=\"props.blurAmount\"\n :saturation=\"props.saturation\"\n :aberrationIntensity=\"props.aberrationIntensity\"\n :glassSize=\"glassSize\"\n :padding=\"props.padding\"\n :mouseOffset=\"mouseOffset\"\n @mouse-enter=\"isHovered = true\"\n @mouse-leave=\"isHovered = false\"\n @mouse-down=\"isActive = true\"\n @mouse-up=\"isActive = false\"\n :active=\"isActive\"\n :overLight=\"props.overLight\"\n @click=\"props.onClick && props.onClick()\"\n >\n <slot />\n </GlassContainer>\n\n <!-- Border layer 1 - extracted from glass container -->\n <span\n :style=\"{\n ...positionStyles,\n height: glassSize.height + 'px',\n width: glassSize.width + 'px',\n borderRadius: `${props.cornerRadius}px`,\n transform: transformStyle,\n transition: baseStyle.transition,\n pointerEvents: 'none',\n mixBlendMode: 'screen',\n opacity: 0.2,\n padding: '1.5px',\n WebkitMask: 'linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)',\n WebkitMaskComposite: 'xor',\n maskComposite: 'exclude',\n boxShadow: '0 0 0 0.5px rgba(255, 255, 255, 0.5) inset, 0 1px 3px rgba(255, 255, 255, 0.25) inset, 0 1px 4px rgba(0, 0, 0, 0.35)',\n background: `linear-gradient(\n ${135 + mouseOffset.x * 1.2}deg,\n rgba(255, 255, 255, 0.0) 0%,\n rgba(255, 255, 255, ${0.12 + Math.abs(mouseOffset.x) * 0.008}) ${Math.max(10, 33 + mouseOffset.y * 0.3)}%,\n rgba(255, 255, 255, ${0.4 + Math.abs(mouseOffset.x) * 0.012}) ${Math.min(90, 66 + mouseOffset.y * 0.4)}%,\n rgba(255, 255, 255, 0.0) 100%\n )`,\n }\"\n />\n\n <!-- Border layer 2 - duplicate with mix-blend-overlay -->\n <span\n :style=\"{\n ...positionStyles,\n height: glassSize.height + 'px',\n width: glassSize.width + 'px',\n borderRadius: `${props.cornerRadius}px`,\n transform: transformStyle,\n transition: baseStyle.transition,\n pointerEvents: 'none',\n mixBlendMode: 'overlay',\n padding: '1.5px',\n WebkitMask: 'linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0)',\n WebkitMaskComposite: 'xor',\n maskComposite: 'exclude',\n boxShadow: '0 0 0 0.5px rgba(255, 255, 255, 0.5) inset, 0 1px 3px rgba(255, 255, 255, 0.25) inset, 0 1px 4px rgba(0, 0, 0, 0.35)',\n background: `linear-gradient(\n ${135 + mouseOffset.x * 1.2}deg,\n rgba(255, 255, 255, 0.0) 0%,\n rgba(255, 255, 255, ${0.32 + Math.abs(mouseOffset.x) * 0.008}) ${Math.max(10, 33 + mouseOffset.y * 0.3)}%,\n rgba(255, 255, 255, ${0.6 + Math.abs(mouseOffset.x) * 0.012}) ${Math.min(90, 66 + mouseOffset.y * 0.4)}%,\n rgba(255, 255, 255, 0.0) 100%\n )`,\n }\"\n />\n\n <!-- Hover effects -->\n <template v-if=\"Boolean(props.onClick)\">\n <div\n :style=\"{\n ...positionStyles,\n height: glassSize.height + 'px',\n width: glassSize.width + 1 + 'px',\n borderRadius: `${props.cornerRadius}px`,\n transform: transformStyle,\n pointerEvents: 'none',\n transition: 'all 0.2s ease-out',\n opacity: isHovered || isActive ? 0.5 : 0,\n backgroundImage: 'radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 50%)',\n mixBlendMode: 'overlay',\n }\"\n />\n <div\n :style=\"{\n ...positionStyles,\n height: glassSize.height + 'px',\n width: glassSize.width + 1 + 'px',\n borderRadius: `${props.cornerRadius}px`,\n transform: transformStyle,\n pointerEvents: 'none',\n transition: 'all 0.2s ease-out',\n opacity: isActive ? 0.5 : 0,\n backgroundImage: 'radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 80%)',\n mixBlendMode: 'overlay',\n }\"\n />\n <div\n :style=\"{\n ...baseStyle,\n height: glassSize.height + 'px',\n width: glassSize.width + 1 + 'px',\n borderRadius: `${props.cornerRadius}px`,\n position: positionStyles.position,\n top: positionStyles.top,\n left: positionStyles.left,\n pointerEvents: 'none',\n transition: 'all 0.2s ease-out',\n opacity: isHovered ? 0.4 : isActive ? 0.8 : 0,\n backgroundImage: 'radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%)',\n mixBlendMode: 'overlay',\n }\"\n />\n </template>\n</template>","<script setup lang=\"ts\">\nimport LiquidGlass from './components/LiquidGlass.vue';\n</script>\n\n<template>\n <LiquidGlass />\n</template>\n","import { createApp } from 'vue';\nimport App from './App.vue';\n\ncreateApp(App).mount('#app'); "],"names":["computed","_createElementBlock","_createElementVNode","_unref","ref","_normalizeClass","_normalizeStyle","_createVNode","GlassFilter","_renderSlot","onMounted","watch","onUnmounted","_Fragment","_createBlock","LiquidGlass","createApp","App"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
-
2
- /* Add any specific styles for this component here if needed */