@razorpay/blade 12.94.0 → 12.95.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/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +2 -2
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/native/components/Spark/RzpGlass/presets.js +2 -2
- package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -1
- package/build/lib/native/components/Spark/RzpGlass/utils.js +5 -2
- package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/native/components/index.js +1 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/web/development/_virtual/cloneDeep.js +1 -1
- package/build/lib/web/development/_virtual/cloneDeep3.js +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +50 -30
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/index.js +4 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js +85 -79
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js +82 -4
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/web/development/components/index.js +1 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
- package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
- package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +50 -30
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/index.js +4 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js +85 -79
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js +82 -4
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/web/production/components/index.js +1 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
- package/build/types/components/index.d.ts +27 -3
- package/build/types/components/index.native.d.ts +27 -3
- package/package.json +1 -1
|
@@ -4,10 +4,10 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
4
4
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
5
|
import { forwardRef, useState, useRef, useEffect, useCallback } from 'react';
|
|
6
6
|
import { RzpGlassMount } from './RzpGlassMount.js';
|
|
7
|
-
import {
|
|
7
|
+
import { getPresets } from './presets.js';
|
|
8
8
|
import { jsx } from 'react/jsx-runtime';
|
|
9
9
|
|
|
10
|
-
var _excluded=["width","height","className","style","onLoad","onError","preset","
|
|
10
|
+
var _excluded=["width","height","className","style","onLoad","onError","preset","assetsPath","gradientMapSrc","gradientMap2Src","gradientMapCanvas","imageSrc"],_excluded2=["width","height","className","style","onLoad","onError","assetsPath","gradientMapCanvas","gradientMapSrc","gradientMap2Src","imageSrc"];var FADE_IN_MS=200;var DEFAULT_CDN_PATH='https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';var getDefaultAssets=function getDefaultAssets(assetsPath){return {videoSrc:`${assetsPath}/spark-base-video.mp4`,imageSrc:`${assetsPath}/bottom-frame.jpg`,gradientMapSrc:`${assetsPath}/colorama-gradient-map-green.jpg`,gradientMap2Src:`${assetsPath}/colorama-gradient-map-blue.jpg`,centerGradientMapSrc:`${assetsPath}/colorama-center-gradient-map.jpg`};};function useMergeRefs(refs){return useCallback(function(value){refs.forEach(function(ref){if(typeof ref==='function'){ref(value);}else if(ref!=null){ref.current=value;}});},[refs]);}function extractConfig(props){props.width;props.height;props.className;props.style;props.onLoad;props.onError;props.preset;props.assetsPath;props.gradientMapSrc;props.gradientMap2Src;props.gradientMapCanvas;props.imageSrc;var config=_objectWithoutProperties(props,_excluded);return Object.fromEntries(Object.entries(config).filter(function(_ref){var _ref2=_slicedToArray(_ref,2),v=_ref2[1];return v!==undefined;}));}var ASSET_KEYS=new Set(['videoSrc','imageSrc','gradientMapSrc','gradientMap2Src','centerGradientMapSrc']);function getPresetDefinition(preset,assetsPath){var presets=getPresets(assetsPath);if(preset&&preset in presets)return Object.assign({},presets[preset]);return {};}function getPresetConfig(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref3){var _ref4=_slicedToArray(_ref3,1),k=_ref4[0];return !ASSET_KEYS.has(k);}));}function getPresetAssets(preset,assetsPath){var def=getPresetDefinition(preset,assetsPath);return Object.fromEntries(Object.entries(def).filter(function(_ref5){var _ref6=_slicedToArray(_ref5,1),k=_ref6[0];return ASSET_KEYS.has(k);}));}function resolveConfig(props,assetsPath){return Object.assign({},getPresetConfig(props.preset,assetsPath),extractConfig(props));}var RzpGlass=forwardRef(function RzpGlass(props,forwardedRef){var _presetAssets$videoSr,_ref7,_ref8,_presetAssets$centerG,_configProps$edgeFeat;var _props$width=props.width,width=_props$width===void 0?'100%':_props$width,_props$height=props.height,height=_props$height===void 0?'100%':_props$height,className=props.className,style=props.style,onLoad=props.onLoad,onError=props.onError,assetsPathProp=props.assetsPath,gradientMapCanvas=props.gradientMapCanvas,gradientMapSrcProp=props.gradientMapSrc,gradientMap2SrcProp=props.gradientMap2Src,imageSrcProp=props.imageSrc,configProps=_objectWithoutProperties(props,_excluded2);var assetsPath=assetsPathProp!=null?assetsPathProp:DEFAULT_CDN_PATH;var defaultAssets=getDefaultAssets(assetsPath);var presetAssets=getPresetAssets(props.preset,assetsPath);var imageSrc=imageSrcProp!=null?imageSrcProp:presetAssets.imageSrc;var videoSrc=imageSrc?undefined:(_presetAssets$videoSr=presetAssets.videoSrc)!=null?_presetAssets$videoSr:defaultAssets.videoSrc;var gradientMapSrc=(_ref7=gradientMapSrcProp!=null?gradientMapSrcProp:presetAssets.gradientMapSrc)!=null?_ref7:defaultAssets.gradientMapSrc;var gradientMap2Src=(_ref8=gradientMap2SrcProp!=null?gradientMap2SrcProp:presetAssets.gradientMap2Src)!=null?_ref8:defaultAssets.gradientMap2Src;var centerGradientMapSrc=(_presetAssets$centerG=presetAssets.centerGradientMapSrc)!=null?_presetAssets$centerG:defaultAssets.centerGradientMapSrc;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isInitialized=_useState2[0],setIsInitialized=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),error=_useState4[0],setError=_useState4[1];var divRef=useRef(null);var mountRef=useRef(null);useEffect(function(){var init=function(){var _ref9=_asyncToGenerator(function*(){if(!divRef.current||mountRef.current)return;try{var _config$paused;var config=resolveConfig(props,assetsPath);mountRef.current=new RzpGlassMount(divRef.current,{videoSrc:videoSrc,imageSrc:imageSrc,gradientMapSrc:gradientMapSrc,gradientMap2Src:gradientMap2Src,centerGradientMapSrc:centerGradientMapSrc},config);yield mountRef.current.loadAssets();var userWantsPaused=(_config$paused=config.paused)!=null?_config$paused:false;if(!userWantsPaused){mountRef.current.pause();}setIsInitialized(true);setTimeout(function(){if(!mountRef.current)return;if(!userWantsPaused){mountRef.current.play();}onLoad==null?void 0:onLoad();},FADE_IN_MS);}catch(err){var _error=err instanceof Error?err:new Error(String(err));setError(_error);onError==null?void 0:onError(_error);}});return function init(){return _ref9.apply(this,arguments);};}();void init();return function(){var _mountRef$current;(_mountRef$current=mountRef.current)==null?void 0:_mountRef$current.dispose();mountRef.current=null;setIsInitialized(false);};},[assetsPath,videoSrc,imageSrc,gradientMapSrc,gradientMap2Src,centerGradientMapSrc,configProps.preset]);useEffect(function(){if(isInitialized&&mountRef.current){var config=resolveConfig(props,assetsPath);mountRef.current.setUniforms(config);}},[isInitialized,configProps.preset,configProps.inputMin,configProps.inputMax,configProps.modifyGamma,configProps.posterizeLevels,configProps.cycleRepetitions,configProps.phaseShift,configProps.cycleSpeed,configProps.wrapMode,configProps.reverse,configProps.blendWithOriginal,configProps.numSegments,configProps.slitAngle,configProps.displacementX,configProps.displacementY,configProps.enableCenterElement,configProps.centerAnimDuration,configProps.ccBlackPoint,configProps.ccWhitePoint,configProps.ccMidtoneGamma,configProps.ccGamma,configProps.ccContrast,configProps.zoom,configProps.panX,configProps.panY].concat(_toConsumableArray((_configProps$edgeFeat=configProps.edgeFeather)!=null?_configProps$edgeFeat:[0,0,0,0]),[configProps.enableDisplacement,configProps.enableColorama,configProps.enableBloom,configProps.enableLightSweep,configProps.lightIntensity,configProps.lightStartFrame,configProps.paused,configProps.startTime,configProps.endTime,configProps.animateLightIndependently,configProps.animateCycleReps,configProps.cycleRepetitionsStart,configProps.cycleRepetitionsEnd,configProps.cycleRepetitionsStartFrame,configProps.cycleRepetitionsDuration,configProps.gradientMapBlend,configProps.gradientMapBlendDuration]));useEffect(function(){if(isInitialized&&mountRef.current&&gradientMapCanvas){mountRef.current.updateGradientMapTexture(gradientMapCanvas);}},[isInitialized,gradientMapCanvas]);var mergedRef=useMergeRefs([divRef,forwardedRef]);var widthStyle=typeof width==='number'?`${width}px`:width;var heightStyle=typeof height==='number'?`${height}px`:height;if(error){return jsx("div",{ref:mergedRef,className:className,style:Object.assign({width:widthStyle,height:heightStyle},style)});}return jsx("div",{ref:mergedRef,className:className,style:Object.assign({width:widthStyle,height:heightStyle,position:'relative',overflow:'hidden',backgroundColor:'transparent',transition:'2s opacity'},isInitialized?{opacity:1}:{opacity:0},style)});});
|
|
11
11
|
|
|
12
12
|
export { RzpGlass, RzpGlass as default };
|
|
13
13
|
//# sourceMappingURL=RzpGlass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RzpGlass.js","sources":["../../../../../../src/components/Spark/RzpGlass/RzpGlass.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-implicit-any-catch */\n/* eslint-disable @typescript-eslint/no-shadow */\n/**\n * RzpGlass React Component\n *\n * A React wrapper for the RzpGlassMount WebGL shader effect.\n * Manages the component lifecycle with useEffect hooks.\n *\n * @example\n * ```tsx\n * // Uses default assets and config\n * <RzpGlass width=\"400px\" height=\"300px\" />\n *\n * // With custom assets\n * <RzpGlass\n * videoSrc=\"/custom_video.mp4\"\n * gradientMapSrc=\"/custom-gradient.jpg\"\n * enableBloom={true}\n * />\n * ```\n */\n\nimport { forwardRef, useEffect, useRef, useState, useCallback } from 'react';\nimport { RzpGlassMount } from './RzpGlassMount';\nimport type {\n RzpGlassProps,\n RzpGlassConfig,\n RzpGlassAssets,\n RzpGlassPresetDefinition,\n} from './types';\nimport { PRESETS } from './presets';\nimport type { RzpGlassPreset } from './presets';\n\nconst DEFAULT_CDN_PATH =\n 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark';\n\nconst getDefaultAssets = (cdnPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${cdnPath}/spark-base-video.mp4`,\n imageSrc: `${cdnPath}/bottom-frame.jpg`,\n gradientMapSrc: `${cdnPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${cdnPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${cdnPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Hook to merge multiple refs into one\n */\nfunction useMergeRefs<T>(refs: (React.Ref<T> | undefined)[]): React.RefCallback<T> {\n return useCallback(\n (value: T) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n });\n },\n [refs],\n );\n}\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n cdnPath: _cdnPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(preset: RzpGlassPreset | undefined): RzpGlassPresetDefinition {\n if (preset && preset in PRESETS) return { ...PRESETS[preset] };\n return {};\n}\n\nfunction getPresetConfig(preset: RzpGlassPreset | undefined): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(preset: RzpGlassPreset | undefined): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset),\n ...extractConfig(props),\n };\n}\n\nexport const RzpGlass = forwardRef<HTMLDivElement, RzpGlassProps>(function RzpGlass(\n props,\n forwardedRef,\n) {\n const {\n width = '100%',\n height = '100%',\n className,\n style,\n onLoad,\n onError,\n cdnPath: cdnPathProp,\n gradientMapCanvas,\n gradientMapSrc: gradientMapSrcProp,\n gradientMap2Src: gradientMap2SrcProp,\n imageSrc: imageSrcProp,\n ...configProps\n } = props;\n\n // Get default assets based on cdnPath\n const cdnPath: string = cdnPathProp ?? DEFAULT_CDN_PATH;\n const defaultAssets = getDefaultAssets(cdnPath);\n\n // Resolve assets: prop overrides preset, preset overrides default\n const presetAssets = getPresetAssets(props.preset);\n const imageSrc = imageSrcProp ?? presetAssets.imageSrc;\n const videoSrc = imageSrc ? undefined : presetAssets.videoSrc ?? defaultAssets.videoSrc;\n const gradientMapSrc =\n gradientMapSrcProp ?? presetAssets.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src =\n gradientMap2SrcProp ?? presetAssets.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc =\n presetAssets.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const [isInitialized, setIsInitialized] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const divRef = useRef<HTMLDivElement>(null);\n const mountRef = useRef<RzpGlassMount | null>(null);\n\n // Initialize on mount\n useEffect(() => {\n const init = async () => {\n if (!divRef.current || mountRef.current) return;\n\n try {\n const config = resolveConfig(props);\n\n mountRef.current = new RzpGlassMount(\n divRef.current,\n {\n videoSrc,\n imageSrc,\n gradientMapSrc,\n gradientMap2Src,\n centerGradientMapSrc,\n },\n config,\n );\n\n await mountRef.current.loadAssets();\n setIsInitialized(true);\n onLoad?.();\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n setError(error);\n onError?.(error);\n }\n };\n\n void init();\n\n return () => {\n mountRef.current?.dispose();\n mountRef.current = null;\n setIsInitialized(false);\n };\n }, [\n cdnPath,\n videoSrc,\n imageSrc,\n gradientMapSrc,\n gradientMap2Src,\n centerGradientMapSrc,\n configProps.preset,\n ]);\n\n // Update uniforms when config props change\n useEffect(() => {\n if (isInitialized && mountRef.current) {\n const config = resolveConfig(props);\n mountRef.current.setUniforms(config);\n }\n }, [\n isInitialized,\n configProps.preset,\n // Colorama\n configProps.inputMin,\n configProps.inputMax,\n configProps.modifyGamma,\n configProps.posterizeLevels,\n configProps.cycleRepetitions,\n configProps.phaseShift,\n configProps.cycleSpeed,\n configProps.wrapMode,\n configProps.reverse,\n configProps.blendWithOriginal,\n // Displacement\n configProps.numSegments,\n configProps.slitAngle,\n configProps.displacementX,\n configProps.displacementY,\n // Center element\n configProps.enableCenterElement,\n configProps.centerAnimDuration,\n // Color correction\n configProps.ccBlackPoint,\n configProps.ccWhitePoint,\n configProps.ccMidtoneGamma,\n configProps.ccGamma,\n configProps.ccContrast,\n // Zoom & Pan\n configProps.zoom,\n configProps.panX,\n configProps.panY,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...(configProps.edgeFeather ?? [0, 0, 0, 0]),\n // Effect toggles\n configProps.enableDisplacement,\n configProps.enableColorama,\n configProps.enableBloom,\n configProps.enableLightSweep,\n // Light\n configProps.lightIntensity,\n configProps.lightStartFrame,\n // Playback\n configProps.paused,\n configProps.startTime,\n configProps.endTime,\n configProps.animateLightIndependently,\n // Cycle animation\n configProps.animateCycleReps,\n configProps.cycleRepetitionsStart,\n configProps.cycleRepetitionsEnd,\n configProps.cycleRepetitionsStartFrame,\n configProps.cycleRepetitionsDuration,\n // Gradient map blend\n configProps.gradientMapBlend,\n configProps.gradientMapBlendDuration,\n ]);\n\n // Update gradient map texture when a canvas is provided\n useEffect(() => {\n if (isInitialized && mountRef.current && gradientMapCanvas) {\n mountRef.current.updateGradientMapTexture(gradientMapCanvas);\n }\n }, [isInitialized, gradientMapCanvas]);\n\n const mergedRef = useMergeRefs([divRef, forwardedRef]);\n\n // Convert width/height to string if number\n const widthStyle = typeof width === 'number' ? `${width}px` : width;\n const heightStyle = typeof height === 'number' ? `${height}px` : height;\n\n if (error) {\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n ...style,\n }}\n />\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n position: 'relative',\n overflow: 'hidden',\n backgroundColor: 'transparent',\n transition: '2s opacity',\n ...(isInitialized ? { opacity: 1 } : { opacity: 0 }),\n ...style,\n }}\n />\n );\n});\n\nexport default RzpGlass;\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","cdnPath","videoSrc","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","useMergeRefs","refs","useCallback","value","forEach","ref","current","extractConfig","props","width","height","className","style","onLoad","onError","preset","gradientMapCanvas","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","PRESETS","assign","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","RzpGlass","forwardRef","forwardedRef","_presetAssets$videoSr","_ref7","_ref8","_presetAssets$centerG","_configProps$edgeFeat","_props$width","_props$height","cdnPathProp","gradientMapSrcProp","gradientMap2SrcProp","imageSrcProp","configProps","_excluded2","defaultAssets","presetAssets","_useState","useState","_useState2","isInitialized","setIsInitialized","_useState3","_useState4","error","setError","divRef","useRef","mountRef","useEffect","init","_ref9","_asyncToGenerator","RzpGlassMount","loadAssets","err","Error","String","apply","arguments","_mountRef$current","dispose","setUniforms","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","numSegments","slitAngle","displacementX","displacementY","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","zoom","panX","panY","concat","_toConsumableArray","edgeFeather","enableDisplacement","enableColorama","enableBloom","enableLightSweep","lightIntensity","lightStartFrame","paused","startTime","endTime","animateLightIndependently","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","gradientMapBlend","gradientMapBlendDuration","updateGradientMapTexture","mergedRef","widthStyle","heightStyle","_jsx","position","overflow","backgroundColor","transition","opacity"],"mappings":";;;;;;;;;AA2BA,IAAA,SAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,WAAA,CAAA,OAAA,CAAA,QAAA,CAAA,SAAA,CAAA,QAAA,CAAA,SAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,CAAA,UAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,WAAA,CAAA,OAAA,CAAA,QAAA,CAAA,SAAA,CAAA,SAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,CAWA,IAAMA,gBAAgB,CACpB,kGAAkG,CAEpG,IAAMC,gBAAgB,CAAG,SAAnBA,gBAAgBA,CAAIC,OAAe,CAAgC,CAAA,OAAA,CACvEC,QAAQ,CAAE,GAAGD,OAAO,CAAA,qBAAA,CAAuB,CAC3CE,QAAQ,CAAE,CAAGF,EAAAA,OAAO,CAAmB,iBAAA,CAAA,CACvCG,cAAc,CAAE,CAAA,EAAGH,OAAO,CAAkC,gCAAA,CAAA,CAC5DI,eAAe,CAAE,CAAA,EAAGJ,OAAO,CAAA,+BAAA,CAAiC,CAC5DK,oBAAoB,CAAE,CAAGL,EAAAA,OAAO,mCAClC,CAAC,CAAA,CAAC,CAKF,SAASM,YAAYA,CAAIC,IAAkC,CAAwB,CACjF,OAAOC,WAAW,CAChB,SAACC,KAAQ,CAAK,CACZF,IAAI,CAACG,OAAO,CAAC,SAACC,GAAG,CAAK,CACpB,GAAI,OAAOA,GAAG,GAAK,UAAU,CAAE,CAC7BA,GAAG,CAACF,KAAK,CAAC,CACZ,CAAC,QAAUE,GAAG,EAAI,IAAI,CAAE,CACrBA,GAAG,CAAsCC,OAAO,CAAGH,KAAK,CAC3D,CACF,CAAC,CAAC,CACJ,CAAC,CACD,CAACF,IAAI,CACP,CAAC,CACH,CAMA,SAASM,aAAaA,CAACC,KAAoB,CAA2B,CAehEA,KAAK,CAbPC,KAAK,CAaHD,KAAK,CAZPE,MAAM,CAYJF,KAAK,CAXPG,SAAS,CAWPH,KAAK,CAVPI,KAAK,CAUHJ,KAAK,CATPK,MAAM,CASJL,KAAK,CARPM,OAAO,CAQLN,KAAK,CAPPO,MAAM,CAOJP,KAAK,CANPd,OAAO,CAMLc,KAAK,CALPX,cAAc,CAKZW,KAAK,CAJPV,eAAe,CAIbU,KAAK,CAHPQ,iBAAiB,CAGfR,KAAK,CAFPZ,QAAQ,KACLqB,MAAM,CAAAC,wBAAA,CACPV,KAAK,CAAAW,SAAA,EAGT,OAAOC,MAAM,CAACC,WAAW,CAEvBD,MAAM,CAACE,OAAO,CAACL,MAAM,CAAC,CAACM,MAAM,CAAC,SAAAC,IAAA,CAAA,CAAA,IAAAC,KAAA,CAAAC,cAAA,CAAAF,IAAA,IAAIG,CAAC,CAAAF,KAAA,CAAM,CAAA,CAAA,CAAA,OAAAE,CAAC,GAAKC,SAAS,CAC1D,CAAA,CAAA,CAAC,CACH,CAEA,IAAMC,UAAU,CAAG,IAAIC,GAAG,CAAS,CACjC,UAAU,CACV,UAAU,CACV,gBAAgB,CAChB,iBAAiB,CACjB,sBAAsB,CACvB,CAAC,CAGF,SAASC,mBAAmBA,CAAChB,MAAkC,CAA4B,CACzF,GAAIA,MAAM,EAAIA,MAAM,IAAIiB,OAAO,CAAE,OAAAZ,MAAA,CAAAa,MAAA,CAAYD,EAAAA,CAAAA,OAAO,CAACjB,MAAM,CAAC,CAC5D,CAAA,OAAO,EAAE,CACX,CAEA,SAASmB,eAAeA,CAACnB,MAAkC,CAA2B,CACpF,IAAMoB,GAAG,CAAGJ,mBAAmB,CAAChB,MAAM,CAA4B,CAClE,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACa,GAAG,CAAC,CAACZ,MAAM,CAAC,SAAAa,KAAA,CAAA,CAAA,IAAAC,KAAA,CAAAX,cAAA,CAAAU,KAAA,IAAEE,CAAC,CAAAD,KAAA,CAAM,CAAA,CAAA,CAAA,OAAA,CAACR,UAAU,CAACU,GAAG,CAACD,CAAC,CAAC,CACxD,CAAA,CAAA,CAAC,CACH,CAEA,SAASE,eAAeA,CAACzB,MAAkC,CAA2B,CACpF,IAAMoB,GAAG,CAAGJ,mBAAmB,CAAChB,MAAM,CAA4B,CAClE,OAAOK,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACa,GAAG,CAAC,CAACZ,MAAM,CAAC,SAAAkB,KAAA,CAAAC,CAAAA,IAAAA,KAAA,CAAAhB,cAAA,CAAAe,KAAA,CAAA,CAAA,CAAA,CAAEH,CAAC,CAAAI,KAAA,CAAM,CAAA,CAAA,CAAA,OAAAb,UAAU,CAACU,GAAG,CAACD,CAAC,CAAC,CACvD,CAAA,CAAA,CAAC,CACH,CAMA,SAASK,aAAaA,CAACnC,KAAoB,CAA2B,CACpE,OAAAY,MAAA,CAAAa,MAAA,CACKC,EAAAA,CAAAA,eAAe,CAAC1B,KAAK,CAACO,MAAM,CAAC,CAC7BR,aAAa,CAACC,KAAK,CAAC,CAAA,CAE3B,CAEa,IAAAoC,QAAQ,CAAGC,UAAU,CAAgC,SAASD,QAAQA,CACjFpC,KAAK,CACLsC,YAAY,CACZ,KAAAC,qBAAA,CAAAC,KAAA,CAAAC,KAAA,CAAAC,qBAAA,CAAAC,qBAAA,CACA,IAAAC,YAAA,CAaI5C,KAAK,CAZPC,KAAK,CAALA,KAAK,CAAA2C,YAAA,UAAG,MAAM,CAAAA,YAAA,CAAAC,aAAA,CAYZ7C,KAAK,CAXPE,MAAM,CAANA,MAAM,CAAA2C,aAAA,GAAG,KAAA,CAAA,CAAA,MAAM,CAAAA,aAAA,CACf1C,SAAS,CAUPH,KAAK,CAVPG,SAAS,CACTC,KAAK,CASHJ,KAAK,CATPI,KAAK,CACLC,MAAM,CAQJL,KAAK,CARPK,MAAM,CACNC,OAAO,CAOLN,KAAK,CAPPM,OAAO,CACEwC,WAAW,CAMlB9C,KAAK,CANPd,OAAO,CACPsB,iBAAiB,CAKfR,KAAK,CALPQ,iBAAiB,CACDuC,kBAAkB,CAIhC/C,KAAK,CAJPX,cAAc,CACG2D,mBAAmB,CAGlChD,KAAK,CAHPV,eAAe,CACL2D,YAAY,CAEpBjD,KAAK,CAFPZ,QAAQ,CACL8D,WAAW,CAAAxC,wBAAA,CACZV,KAAK,CAAAmD,UAAA,CAGT,CAAA,IAAMjE,OAAe,CAAG4D,WAAW,EAAXA,IAAAA,CAAAA,WAAW,CAAI9D,gBAAgB,CACvD,IAAMoE,aAAa,CAAGnE,gBAAgB,CAACC,OAAO,CAAC,CAG/C,IAAMmE,YAAY,CAAGrB,eAAe,CAAChC,KAAK,CAACO,MAAM,CAAC,CAClD,IAAMnB,QAAQ,CAAG6D,YAAY,EAAA,IAAA,CAAZA,YAAY,CAAII,YAAY,CAACjE,QAAQ,CACtD,IAAMD,QAAQ,CAAGC,QAAQ,CAAGgC,SAAS,CAAA,CAAAmB,qBAAA,CAAGc,YAAY,CAAClE,QAAQ,GAAAoD,IAAAA,CAAAA,qBAAA,CAAIa,aAAa,CAACjE,QAAQ,CACvF,IAAME,cAAc,EAAAmD,KAAA,CAClBO,kBAAkB,EAAlBA,IAAAA,CAAAA,kBAAkB,CAAIM,YAAY,CAAChE,cAAc,GAAA,IAAA,CAAAmD,KAAA,CAAIY,aAAa,CAAC/D,cAAc,CACnF,IAAMC,eAAe,CAAA,CAAAmD,KAAA,CACnBO,mBAAmB,OAAnBA,mBAAmB,CAAIK,YAAY,CAAC/D,eAAe,GAAAmD,IAAAA,CAAAA,KAAA,CAAIW,aAAa,CAAC9D,eAAe,CACtF,IAAMC,oBAAoB,EAAAmD,qBAAA,CACxBW,YAAY,CAAC9D,oBAAoB,QAAAmD,qBAAA,CAAIU,aAAa,CAAC7D,oBAAoB,CAEzE,IAAA+D,SAAA,CAA0CC,QAAQ,CAAC,KAAK,CAAC,CAAAC,UAAA,CAAAtC,cAAA,CAAAoC,SAAA,CAAA,CAAA,CAAA,CAAlDG,aAAa,CAAAD,UAAA,CAAEE,CAAAA,CAAAA,CAAAA,gBAAgB,CAAAF,UAAA,CAAA,CAAA,CAAA,CACtC,IAAAG,UAAA,CAA0BJ,QAAQ,CAAe,IAAI,CAAC,CAAAK,UAAA,CAAA1C,cAAA,CAAAyC,UAAA,IAA/CE,KAAK,CAAAD,UAAA,CAAA,CAAA,CAAA,CAAEE,QAAQ,CAAAF,UAAA,CACtB,CAAA,CAAA,CAAA,IAAMG,MAAM,CAAGC,MAAM,CAAiB,IAAI,CAAC,CAC3C,IAAMC,QAAQ,CAAGD,MAAM,CAAuB,IAAI,CAAC,CAGnDE,SAAS,CAAC,UAAM,CACd,IAAMC,IAAI,CAAAC,UAAAA,CAAAA,IAAAA,KAAA,CAAAC,iBAAA,CAAG,WAAY,CACvB,GAAI,CAACN,MAAM,CAACjE,OAAO,EAAImE,QAAQ,CAACnE,OAAO,CAAE,OAEzC,GAAI,CACF,IAAMW,MAAM,CAAG0B,aAAa,CAACnC,KAAK,CAAC,CAEnCiE,QAAQ,CAACnE,OAAO,CAAG,IAAIwE,aAAa,CAClCP,MAAM,CAACjE,OAAO,CACd,CACEX,QAAQ,CAARA,QAAQ,CACRC,QAAQ,CAARA,QAAQ,CACRC,cAAc,CAAdA,cAAc,CACdC,eAAe,CAAfA,eAAe,CACfC,oBAAoB,CAApBA,oBACF,CAAC,CACDkB,MACF,CAAC,CAED,MAAMwD,QAAQ,CAACnE,OAAO,CAACyE,UAAU,EAAE,CACnCb,gBAAgB,CAAC,IAAI,CAAC,CACtBrD,MAAM,cAANA,MAAM,EAAI,CACZ,CAAE,MAAOmE,GAAG,CAAE,CACZ,IAAMX,MAAK,CAAGW,GAAG,YAAYC,KAAK,CAAGD,GAAG,CAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC,CACjEV,QAAQ,CAACD,MAAK,CAAC,CACfvD,OAAO,cAAPA,OAAO,CAAGuD,MAAK,CAAC,CAClB,CACF,CAAC,CA1BK,CAAA,OAAA,SAAAM,IAAIA,EAAA,CAAA,OAAAC,KAAA,CAAAO,KAAA,MAAAC,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EA0BT,CAED,KAAKT,IAAI,EAAE,CAEX,OAAa,UAAA,CAAA,IAAAU,iBAAA,CACX,CAAAA,iBAAA,CAAAZ,QAAQ,CAACnE,OAAO,eAAhB+E,iBAAA,CAAkBC,OAAO,EAAE,CAC3Bb,QAAQ,CAACnE,OAAO,CAAG,IAAI,CACvB4D,gBAAgB,CAAC,KAAK,CAAC,CACzB,CAAC,CACH,CAAC,CAAE,CACDxE,OAAO,CACPC,QAAQ,CACRC,QAAQ,CACRC,cAAc,CACdC,eAAe,CACfC,oBAAoB,CACpB2D,WAAW,CAAC3C,MAAM,CACnB,CAAC,CAGF2D,SAAS,CAAC,UAAM,CACd,GAAIT,aAAa,EAAIQ,QAAQ,CAACnE,OAAO,CAAE,CACrC,IAAMW,MAAM,CAAG0B,aAAa,CAACnC,KAAK,CAAC,CACnCiE,QAAQ,CAACnE,OAAO,CAACiF,WAAW,CAACtE,MAAM,CAAC,CACtC,CACF,CAAC,CAAA,CACCgD,aAAa,CACbP,WAAW,CAAC3C,MAAM,CAElB2C,WAAW,CAAC8B,QAAQ,CACpB9B,WAAW,CAAC+B,QAAQ,CACpB/B,WAAW,CAACgC,WAAW,CACvBhC,WAAW,CAACiC,eAAe,CAC3BjC,WAAW,CAACkC,gBAAgB,CAC5BlC,WAAW,CAACmC,UAAU,CACtBnC,WAAW,CAACoC,UAAU,CACtBpC,WAAW,CAACqC,QAAQ,CACpBrC,WAAW,CAACsC,OAAO,CACnBtC,WAAW,CAACuC,iBAAiB,CAE7BvC,WAAW,CAACwC,WAAW,CACvBxC,WAAW,CAACyC,SAAS,CACrBzC,WAAW,CAAC0C,aAAa,CACzB1C,WAAW,CAAC2C,aAAa,CAEzB3C,WAAW,CAAC4C,mBAAmB,CAC/B5C,WAAW,CAAC6C,kBAAkB,CAE9B7C,WAAW,CAAC8C,YAAY,CACxB9C,WAAW,CAAC+C,YAAY,CACxB/C,WAAW,CAACgD,cAAc,CAC1BhD,WAAW,CAACiD,OAAO,CACnBjD,WAAW,CAACkD,UAAU,CAEtBlD,WAAW,CAACmD,IAAI,CAChBnD,WAAW,CAACoD,IAAI,CAChBpD,WAAW,CAACqD,IAAI,EAAAC,MAAA,CAAAC,kBAAA,CAAA9D,CAAAA,qBAAA,CAEZO,WAAW,CAACwD,WAAW,GAAA,IAAA,CAAA/D,qBAAA,CAAI,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,GAE3CO,WAAW,CAACyD,kBAAkB,CAC9BzD,WAAW,CAAC0D,cAAc,CAC1B1D,WAAW,CAAC2D,WAAW,CACvB3D,WAAW,CAAC4D,gBAAgB,CAE5B5D,WAAW,CAAC6D,cAAc,CAC1B7D,WAAW,CAAC8D,eAAe,CAE3B9D,WAAW,CAAC+D,MAAM,CAClB/D,WAAW,CAACgE,SAAS,CACrBhE,WAAW,CAACiE,OAAO,CACnBjE,WAAW,CAACkE,yBAAyB,CAErClE,WAAW,CAACmE,gBAAgB,CAC5BnE,WAAW,CAACoE,qBAAqB,CACjCpE,WAAW,CAACqE,mBAAmB,CAC/BrE,WAAW,CAACsE,0BAA0B,CACtCtE,WAAW,CAACuE,wBAAwB,CAEpCvE,WAAW,CAACwE,gBAAgB,CAC5BxE,WAAW,CAACyE,wBAAwB,CAAA,CACrC,CAAC,CAGFzD,SAAS,CAAC,UAAM,CACd,GAAIT,aAAa,EAAIQ,QAAQ,CAACnE,OAAO,EAAIU,iBAAiB,CAAE,CAC1DyD,QAAQ,CAACnE,OAAO,CAAC8H,wBAAwB,CAACpH,iBAAiB,CAAC,CAC9D,CACF,CAAC,CAAE,CAACiD,aAAa,CAAEjD,iBAAiB,CAAC,CAAC,CAEtC,IAAMqH,SAAS,CAAGrI,YAAY,CAAC,CAACuE,MAAM,CAAEzB,YAAY,CAAC,CAAC,CAGtD,IAAMwF,UAAU,CAAG,OAAO7H,KAAK,GAAK,QAAQ,CAAG,GAAGA,KAAK,CAAA,EAAA,CAAI,CAAGA,KAAK,CACnE,IAAM8H,WAAW,CAAG,OAAO7H,MAAM,GAAK,QAAQ,CAAG,GAAGA,MAAM,CAAA,EAAA,CAAI,CAAGA,MAAM,CAEvE,GAAI2D,KAAK,CAAE,CACT,OACEmE,GAAA,CAAA,KAAA,CAAA,CACEnI,GAAG,CAAEgI,SAAU,CACf1H,SAAS,CAAEA,SAAU,CACrBC,KAAK,CAAAQ,MAAA,CAAAa,MAAA,EACHxB,KAAK,CAAE6H,UAAU,CACjB5H,MAAM,CAAE6H,WAAW,CAChB3H,CAAAA,KAAK,CACR,CACH,CAAC,CAEN,CAEA,OACE4H,GAAA,CAAA,KAAA,CAAA,CACEnI,GAAG,CAAEgI,SAAU,CACf1H,SAAS,CAAEA,SAAU,CACrBC,KAAK,CAAAQ,MAAA,CAAAa,MAAA,CACHxB,CAAAA,KAAK,CAAE6H,UAAU,CACjB5H,MAAM,CAAE6H,WAAW,CACnBE,QAAQ,CAAE,UAAU,CACpBC,QAAQ,CAAE,QAAQ,CAClBC,eAAe,CAAE,aAAa,CAC9BC,UAAU,CAAE,YAAY,CACpB3E,CAAAA,aAAa,CAAG,CAAE4E,OAAO,CAAE,CAAE,CAAC,CAAG,CAAEA,OAAO,CAAE,CAAE,CAAC,CAChDjI,KAAK,CACR,CACH,CAAC,CAEN,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"RzpGlass.js","sources":["../../../../../../src/components/Spark/RzpGlass/RzpGlass.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable react/react-in-jsx-scope */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable @typescript-eslint/no-implicit-any-catch */\n/* eslint-disable @typescript-eslint/no-shadow */\n/**\n * RzpGlass React Component\n *\n * A React wrapper for the RzpGlassMount WebGL shader effect.\n * Manages the component lifecycle with useEffect hooks.\n *\n * @example\n * ```tsx\n * // Uses default assets and config\n * <RzpGlass width=\"400px\" height=\"300px\" />\n *\n * // With custom assets\n * <RzpGlass\n * videoSrc=\"/custom_video.mp4\"\n * gradientMapSrc=\"/custom-gradient.jpg\"\n * enableBloom={true}\n * />\n * ```\n */\n\nimport { forwardRef, useEffect, useRef, useState, useCallback } from 'react';\nimport { RzpGlassMount } from './RzpGlassMount';\nimport type {\n RzpGlassProps,\n RzpGlassConfig,\n RzpGlassAssets,\n RzpGlassPresetDefinition,\n} from './types';\nimport { getPresets } from './presets';\nimport type { RzpGlassPreset } from './presets';\n\n// Duration of the component's built-in fade-in transition.\n// The video is kept paused during this window so one-shot animations\n// (e.g. circleSlideUp) don't \"waste\" frames while the canvas is invisible.\nconst FADE_IN_MS = 200;\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Required<RzpGlassAssets> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Hook to merge multiple refs into one\n */\nfunction useMergeRefs<T>(refs: (React.Ref<T> | undefined)[]): React.RefCallback<T> {\n return useCallback(\n (value: T) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n });\n },\n [refs],\n );\n}\n\n/**\n * Extract config from props (exclude non-config props).\n * Strips undefined values so they don't clobber preset defaults.\n */\nfunction extractConfig(props: RzpGlassProps): Partial<RzpGlassConfig> {\n const {\n width: _width,\n height: _height,\n className: _className,\n style: _style,\n onLoad: _onLoad,\n onError: _onError,\n preset: _preset,\n assetsPath: _assetsPath,\n gradientMapSrc: _gradientMapSrc,\n gradientMap2Src: _gradientMap2Src,\n gradientMapCanvas: _gradientMapCanvas,\n imageSrc: _imageSrc,\n ...config\n } = props;\n\n // Drop keys with undefined values so preset config isn't overridden by unset props\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Object.entries(config).filter(([, v]) => v !== undefined),\n ) as Partial<RzpGlassConfig>;\n}\n\nconst ASSET_KEYS = new Set<string>([\n 'videoSrc',\n 'imageSrc',\n 'gradientMapSrc',\n 'gradientMap2Src',\n 'centerGradientMapSrc',\n]);\n\n/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */\nfunction getPresetDefinition(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): RzpGlassPresetDefinition {\n const presets = getPresets(assetsPath);\n if (preset && preset in presets) return { ...presets[preset] };\n return {};\n}\n\nfunction getPresetConfig(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassConfig> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => !ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassConfig>;\n}\n\nfunction getPresetAssets(\n preset: RzpGlassPreset | undefined,\n assetsPath: string,\n): Partial<RzpGlassAssets> {\n const def = getPresetDefinition(preset, assetsPath) as Record<string, unknown>;\n return Object.fromEntries(\n Object.entries(def).filter(([k]) => ASSET_KEYS.has(k)),\n ) as Partial<RzpGlassAssets>;\n}\n\n/**\n * Merge preset config with user-provided config.\n * Preset values are used as base; any explicit prop overrides them.\n */\nfunction resolveConfig(props: RzpGlassProps, assetsPath: string): Partial<RzpGlassConfig> {\n return {\n ...getPresetConfig(props.preset, assetsPath),\n ...extractConfig(props),\n };\n}\n\nexport const RzpGlass = forwardRef<HTMLDivElement, RzpGlassProps>(function RzpGlass(\n props,\n forwardedRef,\n) {\n const {\n width = '100%',\n height = '100%',\n className,\n style,\n onLoad,\n onError,\n assetsPath: assetsPathProp,\n gradientMapCanvas,\n gradientMapSrc: gradientMapSrcProp,\n gradientMap2Src: gradientMap2SrcProp,\n imageSrc: imageSrcProp,\n ...configProps\n } = props;\n\n // Get default assets based on assetsPath\n const assetsPath: string = assetsPathProp ?? DEFAULT_CDN_PATH;\n const defaultAssets = getDefaultAssets(assetsPath);\n\n // Resolve assets: prop overrides preset, preset overrides default\n const presetAssets = getPresetAssets(props.preset, assetsPath);\n const imageSrc = imageSrcProp ?? presetAssets.imageSrc;\n const videoSrc = imageSrc ? undefined : presetAssets.videoSrc ?? defaultAssets.videoSrc;\n const gradientMapSrc =\n gradientMapSrcProp ?? presetAssets.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src =\n gradientMap2SrcProp ?? presetAssets.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc =\n presetAssets.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const [isInitialized, setIsInitialized] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const divRef = useRef<HTMLDivElement>(null);\n const mountRef = useRef<RzpGlassMount | null>(null);\n\n // Initialize on mount\n useEffect(() => {\n const init = async () => {\n if (!divRef.current || mountRef.current) return;\n\n try {\n const config = resolveConfig(props, assetsPath);\n\n mountRef.current = new RzpGlassMount(\n divRef.current,\n {\n videoSrc,\n imageSrc,\n gradientMapSrc,\n gradientMap2Src,\n centerGradientMapSrc,\n },\n config,\n );\n\n await mountRef.current.loadAssets();\n\n // Pause the video during the CSS fade-in so one-shot animations\n // don't burn frames while the component is still transparent.\n // Only do this when the consumer hasn't explicitly set paused: true.\n const userWantsPaused = config.paused ?? false;\n if (!userWantsPaused) {\n mountRef.current.pause();\n }\n\n setIsInitialized(true); // kicks off the CSS opacity 0 → 1 transition\n\n // After the fade-in completes, resume video and notify the consumer.\n setTimeout(() => {\n if (!mountRef.current) return;\n if (!userWantsPaused) {\n mountRef.current.play();\n }\n onLoad?.();\n }, FADE_IN_MS);\n } catch (err) {\n const error = err instanceof Error ? err : new Error(String(err));\n setError(error);\n onError?.(error);\n }\n };\n\n void init();\n\n return () => {\n mountRef.current?.dispose();\n mountRef.current = null;\n setIsInitialized(false);\n };\n }, [\n assetsPath,\n videoSrc,\n imageSrc,\n gradientMapSrc,\n gradientMap2Src,\n centerGradientMapSrc,\n configProps.preset,\n ]);\n\n // Update uniforms when config props change\n useEffect(() => {\n if (isInitialized && mountRef.current) {\n const config = resolveConfig(props, assetsPath);\n mountRef.current.setUniforms(config);\n }\n }, [\n isInitialized,\n configProps.preset,\n // Colorama\n configProps.inputMin,\n configProps.inputMax,\n configProps.modifyGamma,\n configProps.posterizeLevels,\n configProps.cycleRepetitions,\n configProps.phaseShift,\n configProps.cycleSpeed,\n configProps.wrapMode,\n configProps.reverse,\n configProps.blendWithOriginal,\n // Displacement\n configProps.numSegments,\n configProps.slitAngle,\n configProps.displacementX,\n configProps.displacementY,\n // Center element\n configProps.enableCenterElement,\n configProps.centerAnimDuration,\n // Color correction\n configProps.ccBlackPoint,\n configProps.ccWhitePoint,\n configProps.ccMidtoneGamma,\n configProps.ccGamma,\n configProps.ccContrast,\n // Zoom & Pan\n configProps.zoom,\n configProps.panX,\n configProps.panY,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n ...(configProps.edgeFeather ?? [0, 0, 0, 0]),\n // Effect toggles\n configProps.enableDisplacement,\n configProps.enableColorama,\n configProps.enableBloom,\n configProps.enableLightSweep,\n // Light\n configProps.lightIntensity,\n configProps.lightStartFrame,\n // Playback\n configProps.paused,\n configProps.startTime,\n configProps.endTime,\n configProps.animateLightIndependently,\n // Cycle animation\n configProps.animateCycleReps,\n configProps.cycleRepetitionsStart,\n configProps.cycleRepetitionsEnd,\n configProps.cycleRepetitionsStartFrame,\n configProps.cycleRepetitionsDuration,\n // Gradient map blend\n configProps.gradientMapBlend,\n configProps.gradientMapBlendDuration,\n ]);\n\n // Update gradient map texture when a canvas is provided\n useEffect(() => {\n if (isInitialized && mountRef.current && gradientMapCanvas) {\n mountRef.current.updateGradientMapTexture(gradientMapCanvas);\n }\n }, [isInitialized, gradientMapCanvas]);\n\n const mergedRef = useMergeRefs([divRef, forwardedRef]);\n\n // Convert width/height to string if number\n const widthStyle = typeof width === 'number' ? `${width}px` : width;\n const heightStyle = typeof height === 'number' ? `${height}px` : height;\n\n if (error) {\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n ...style,\n }}\n />\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width: widthStyle,\n height: heightStyle,\n position: 'relative',\n overflow: 'hidden',\n backgroundColor: 'transparent',\n transition: '2s opacity',\n ...(isInitialized ? { opacity: 1 } : { opacity: 0 }),\n ...style,\n }}\n />\n );\n});\n\nexport default RzpGlass;\n"],"names":["FADE_IN_MS","DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","useMergeRefs","refs","useCallback","value","forEach","ref","current","extractConfig","props","width","height","className","style","onLoad","onError","preset","gradientMapCanvas","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","presets","getPresets","assign","getPresetConfig","def","_ref3","_ref4","k","has","getPresetAssets","_ref5","_ref6","resolveConfig","RzpGlass","forwardRef","forwardedRef","_presetAssets$videoSr","_ref7","_ref8","_presetAssets$centerG","_configProps$edgeFeat","_props$width","_props$height","assetsPathProp","gradientMapSrcProp","gradientMap2SrcProp","imageSrcProp","configProps","_excluded2","defaultAssets","presetAssets","_useState","useState","_useState2","isInitialized","setIsInitialized","_useState3","_useState4","error","setError","divRef","useRef","mountRef","useEffect","init","_ref9","_asyncToGenerator","_config$paused","RzpGlassMount","loadAssets","userWantsPaused","paused","pause","setTimeout","play","err","Error","String","apply","arguments","_mountRef$current","dispose","setUniforms","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","numSegments","slitAngle","displacementX","displacementY","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","zoom","panX","panY","concat","_toConsumableArray","edgeFeather","enableDisplacement","enableColorama","enableBloom","enableLightSweep","lightIntensity","lightStartFrame","startTime","endTime","animateLightIndependently","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","gradientMapBlend","gradientMapBlendDuration","updateGradientMapTexture","mergedRef","widthStyle","heightStyle","_jsx","position","overflow","backgroundColor","transition","opacity"],"mappings":";;;;;;;;;AA2BA,IAAA,SAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,WAAA,CAAA,OAAA,CAAA,QAAA,CAAA,SAAA,CAAA,QAAA,CAAA,YAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,mBAAA,CAAA,UAAA,CAAA,CAAA,UAAA,CAAA,CAAA,OAAA,CAAA,QAAA,CAAA,WAAA,CAAA,OAAA,CAAA,QAAA,CAAA,SAAA,CAAA,YAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,CAcA,IAAMA,UAAU,CAAG,GAAG,CAEtB,IAAMC,gBAAgB,CAAG,2DAA2D,CAEpF,IAAMC,gBAAgB,CAAG,SAAnBA,gBAAgBA,CAAIC,UAAkB,CAAA,CAAA,OAAgC,CAC1EC,QAAQ,CAAE,GAAGD,UAAU,CAAA,qBAAA,CAAuB,CAC9CE,QAAQ,CAAE,CAAGF,EAAAA,UAAU,mBAAmB,CAC1CG,cAAc,CAAE,CAAGH,EAAAA,UAAU,kCAAkC,CAC/DI,eAAe,CAAE,CAAA,EAAGJ,UAAU,CAAiC,+BAAA,CAAA,CAC/DK,oBAAoB,CAAE,CAAA,EAAGL,UAAU,CACrC,iCAAA,CAAA,CAAC,EAAC,CAKF,SAASM,YAAYA,CAAIC,IAAkC,CAAwB,CACjF,OAAOC,WAAW,CAChB,SAACC,KAAQ,CAAK,CACZF,IAAI,CAACG,OAAO,CAAC,SAACC,GAAG,CAAK,CACpB,GAAI,OAAOA,GAAG,GAAK,UAAU,CAAE,CAC7BA,GAAG,CAACF,KAAK,CAAC,CACZ,CAAC,KAAUE,GAAAA,GAAG,EAAI,IAAI,CAAE,CACrBA,GAAG,CAAsCC,OAAO,CAAGH,KAAK,CAC3D,CACF,CAAC,CAAC,CACJ,CAAC,CACD,CAACF,IAAI,CACP,CAAC,CACH,CAMA,SAASM,aAAaA,CAACC,KAAoB,CAA2B,CAehEA,KAAK,CAbPC,KAAK,CAaHD,KAAK,CAZPE,MAAM,CAYJF,KAAK,CAXPG,SAAS,CAWPH,KAAK,CAVPI,KAAK,CAUHJ,KAAK,CATPK,MAAM,CASJL,KAAK,CARPM,OAAO,CAQLN,KAAK,CAPPO,MAAM,CAOJP,KAAK,CANPd,UAAU,CAMRc,KAAK,CALPX,cAAc,CAKZW,KAAK,CAJPV,eAAe,CAIbU,KAAK,CAHPQ,iBAAiB,CAGfR,KAAK,CAFPZ,QAAQ,KACLqB,MAAM,CAAAC,wBAAA,CACPV,KAAK,CAAAW,SAAA,EAGT,OAAOC,MAAM,CAACC,WAAW,CAEvBD,MAAM,CAACE,OAAO,CAACL,MAAM,CAAC,CAACM,MAAM,CAAC,SAAAC,IAAA,CAAA,CAAA,IAAAC,KAAA,CAAAC,cAAA,CAAAF,IAAA,IAAIG,CAAC,CAAAF,KAAA,CAAM,CAAA,CAAA,CAAA,OAAAE,CAAC,GAAKC,SAAS,GAC1D,CAAC,CACH,CAEA,IAAMC,UAAU,CAAG,IAAIC,GAAG,CAAS,CACjC,UAAU,CACV,UAAU,CACV,gBAAgB,CAChB,iBAAiB,CACjB,sBAAsB,CACvB,CAAC,CAGF,SAASC,mBAAmBA,CAC1BhB,MAAkC,CAClCrB,UAAkB,CACQ,CAC1B,IAAMsC,OAAO,CAAGC,UAAU,CAACvC,UAAU,CAAC,CACtC,GAAIqB,MAAM,EAAIA,MAAM,IAAIiB,OAAO,CAAE,OAAAZ,MAAA,CAAAc,MAAA,CAAA,EAAA,CAAYF,OAAO,CAACjB,MAAM,CAAC,CAC5D,CAAA,OAAO,EAAE,CACX,CAEA,SAASoB,eAAeA,CACtBpB,MAAkC,CAClCrB,UAAkB,CACO,CACzB,IAAM0C,GAAG,CAAGL,mBAAmB,CAAChB,MAAM,CAAErB,UAAU,CAA4B,CAC9E,OAAO0B,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACc,GAAG,CAAC,CAACb,MAAM,CAAC,SAAAc,KAAA,CAAAC,CAAAA,IAAAA,KAAA,CAAAZ,cAAA,CAAAW,KAAA,CAAEE,CAAAA,CAAAA,CAAAA,CAAC,CAAAD,KAAA,WAAM,CAACT,UAAU,CAACW,GAAG,CAACD,CAAC,CAAC,CAAA,CAAA,CACxD,CAAC,CACH,CAEA,SAASE,eAAeA,CACtB1B,MAAkC,CAClCrB,UAAkB,CACO,CACzB,IAAM0C,GAAG,CAAGL,mBAAmB,CAAChB,MAAM,CAAErB,UAAU,CAA4B,CAC9E,OAAO0B,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACc,GAAG,CAAC,CAACb,MAAM,CAAC,SAAAmB,KAAA,CAAAC,CAAAA,IAAAA,KAAA,CAAAjB,cAAA,CAAAgB,KAAA,CAAA,CAAA,CAAA,CAAEH,CAAC,CAAAI,KAAA,WAAMd,UAAU,CAACW,GAAG,CAACD,CAAC,CAAC,CAAA,CAAA,CACvD,CAAC,CACH,CAMA,SAASK,aAAaA,CAACpC,KAAoB,CAAEd,UAAkB,CAA2B,CACxF,OAAA0B,MAAA,CAAAc,MAAA,CAAA,EAAA,CACKC,eAAe,CAAC3B,KAAK,CAACO,MAAM,CAAErB,UAAU,CAAC,CACzCa,aAAa,CAACC,KAAK,CAAC,CAAA,CAE3B,CAEa,IAAAqC,QAAQ,CAAGC,UAAU,CAAgC,SAASD,QAAQA,CACjFrC,KAAK,CACLuC,YAAY,CACZ,CAAA,IAAAC,qBAAA,CAAAC,KAAA,CAAAC,KAAA,CAAAC,qBAAA,CAAAC,qBAAA,CACA,IAAAC,YAAA,CAaI7C,KAAK,CAZPC,KAAK,CAALA,KAAK,CAAA4C,YAAA,UAAG,MAAM,CAAAA,YAAA,CAAAC,aAAA,CAYZ9C,KAAK,CAXPE,MAAM,CAANA,MAAM,CAAA4C,aAAA,UAAG,MAAM,CAAAA,aAAA,CACf3C,SAAS,CAUPH,KAAK,CAVPG,SAAS,CACTC,KAAK,CASHJ,KAAK,CATPI,KAAK,CACLC,MAAM,CAQJL,KAAK,CARPK,MAAM,CACNC,OAAO,CAOLN,KAAK,CAPPM,OAAO,CACKyC,cAAc,CAMxB/C,KAAK,CANPd,UAAU,CACVsB,iBAAiB,CAKfR,KAAK,CALPQ,iBAAiB,CACDwC,kBAAkB,CAIhChD,KAAK,CAJPX,cAAc,CACG4D,mBAAmB,CAGlCjD,KAAK,CAHPV,eAAe,CACL4D,YAAY,CAEpBlD,KAAK,CAFPZ,QAAQ,CACL+D,WAAW,CAAAzC,wBAAA,CACZV,KAAK,CAAAoD,UAAA,CAGT,CAAA,IAAMlE,UAAkB,CAAG6D,cAAc,EAAdA,IAAAA,CAAAA,cAAc,CAAI/D,gBAAgB,CAC7D,IAAMqE,aAAa,CAAGpE,gBAAgB,CAACC,UAAU,CAAC,CAGlD,IAAMoE,YAAY,CAAGrB,eAAe,CAACjC,KAAK,CAACO,MAAM,CAAErB,UAAU,CAAC,CAC9D,IAAME,QAAQ,CAAG8D,YAAY,EAAZA,IAAAA,CAAAA,YAAY,CAAII,YAAY,CAAClE,QAAQ,CACtD,IAAMD,QAAQ,CAAGC,QAAQ,CAAGgC,SAAS,CAAAoB,CAAAA,qBAAA,CAAGc,YAAY,CAACnE,QAAQ,GAAA,IAAA,CAAAqD,qBAAA,CAAIa,aAAa,CAAClE,QAAQ,CACvF,IAAME,cAAc,CAAAoD,CAAAA,KAAA,CAClBO,kBAAkB,EAAA,IAAA,CAAlBA,kBAAkB,CAAIM,YAAY,CAACjE,cAAc,GAAA,IAAA,CAAAoD,KAAA,CAAIY,aAAa,CAAChE,cAAc,CACnF,IAAMC,eAAe,CAAAoD,CAAAA,KAAA,CACnBO,mBAAmB,EAAA,IAAA,CAAnBA,mBAAmB,CAAIK,YAAY,CAAChE,eAAe,GAAA,IAAA,CAAAoD,KAAA,CAAIW,aAAa,CAAC/D,eAAe,CACtF,IAAMC,oBAAoB,EAAAoD,qBAAA,CACxBW,YAAY,CAAC/D,oBAAoB,GAAAoD,IAAAA,CAAAA,qBAAA,CAAIU,aAAa,CAAC9D,oBAAoB,CAEzE,IAAAgE,SAAA,CAA0CC,QAAQ,CAAC,KAAK,CAAC,CAAAC,UAAA,CAAAvC,cAAA,CAAAqC,SAAA,CAAlDG,CAAAA,CAAAA,CAAAA,aAAa,CAAAD,UAAA,CAAA,CAAA,CAAA,CAAEE,gBAAgB,CAAAF,UAAA,IACtC,IAAAG,UAAA,CAA0BJ,QAAQ,CAAe,IAAI,CAAC,CAAAK,UAAA,CAAA3C,cAAA,CAAA0C,UAAA,CAA/CE,CAAAA,CAAAA,CAAAA,KAAK,CAAAD,UAAA,CAAA,CAAA,CAAA,CAAEE,QAAQ,CAAAF,UAAA,IACtB,IAAMG,MAAM,CAAGC,MAAM,CAAiB,IAAI,CAAC,CAC3C,IAAMC,QAAQ,CAAGD,MAAM,CAAuB,IAAI,CAAC,CAGnDE,SAAS,CAAC,UAAM,CACd,IAAMC,IAAI,CAAAC,UAAAA,CAAAA,IAAAA,KAAA,CAAAC,iBAAA,CAAG,WAAY,CACvB,GAAI,CAACN,MAAM,CAAClE,OAAO,EAAIoE,QAAQ,CAACpE,OAAO,CAAE,OAEzC,GAAI,KAAAyE,cAAA,CACF,IAAM9D,MAAM,CAAG2B,aAAa,CAACpC,KAAK,CAAEd,UAAU,CAAC,CAE/CgF,QAAQ,CAACpE,OAAO,CAAG,IAAI0E,aAAa,CAClCR,MAAM,CAAClE,OAAO,CACd,CACEX,QAAQ,CAARA,QAAQ,CACRC,QAAQ,CAARA,QAAQ,CACRC,cAAc,CAAdA,cAAc,CACdC,eAAe,CAAfA,eAAe,CACfC,oBAAoB,CAApBA,oBACF,CAAC,CACDkB,MACF,CAAC,CAED,MAAMyD,QAAQ,CAACpE,OAAO,CAAC2E,UAAU,EAAE,CAKnC,IAAMC,eAAe,CAAA,CAAAH,cAAA,CAAG9D,MAAM,CAACkE,MAAM,GAAA,IAAA,CAAAJ,cAAA,CAAI,KAAK,CAC9C,GAAI,CAACG,eAAe,CAAE,CACpBR,QAAQ,CAACpE,OAAO,CAAC8E,KAAK,EAAE,CAC1B,CAEAjB,gBAAgB,CAAC,IAAI,CAAC,CAGtBkB,UAAU,CAAC,UAAM,CACf,GAAI,CAACX,QAAQ,CAACpE,OAAO,CAAE,OACvB,GAAI,CAAC4E,eAAe,CAAE,CACpBR,QAAQ,CAACpE,OAAO,CAACgF,IAAI,EAAE,CACzB,CACAzE,MAAM,EAANA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,MAAM,EAAI,CACZ,CAAC,CAAEtB,UAAU,CAAC,CAChB,CAAE,MAAOgG,GAAG,CAAE,CACZ,IAAMjB,MAAK,CAAGiB,GAAG,YAAYC,KAAK,CAAGD,GAAG,CAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC,CACjEhB,QAAQ,CAACD,MAAK,CAAC,CACfxD,OAAO,cAAPA,OAAO,CAAGwD,MAAK,CAAC,CAClB,CACF,CAAC,CAAA,CAAA,OAAA,SA3CKM,IAAIA,EAAAC,CAAAA,OAAAA,KAAA,CAAAa,KAAA,CAAA,IAAA,CAAAC,SAAA,CA2CT,CAAA,CAAA,CAAA,CAAA,EAAA,CAED,KAAKf,IAAI,EAAE,CAEX,OAAa,UAAA,CAAA,IAAAgB,iBAAA,CACX,CAAAA,iBAAA,CAAAlB,QAAQ,CAACpE,OAAO,eAAhBsF,iBAAA,CAAkBC,OAAO,EAAE,CAC3BnB,QAAQ,CAACpE,OAAO,CAAG,IAAI,CACvB6D,gBAAgB,CAAC,KAAK,CAAC,CACzB,CAAC,CACH,CAAC,CAAE,CACDzE,UAAU,CACVC,QAAQ,CACRC,QAAQ,CACRC,cAAc,CACdC,eAAe,CACfC,oBAAoB,CACpB4D,WAAW,CAAC5C,MAAM,CACnB,CAAC,CAGF4D,SAAS,CAAC,UAAM,CACd,GAAIT,aAAa,EAAIQ,QAAQ,CAACpE,OAAO,CAAE,CACrC,IAAMW,MAAM,CAAG2B,aAAa,CAACpC,KAAK,CAAEd,UAAU,CAAC,CAC/CgF,QAAQ,CAACpE,OAAO,CAACwF,WAAW,CAAC7E,MAAM,CAAC,CACtC,CACF,CAAC,CACCiD,CAAAA,aAAa,CACbP,WAAW,CAAC5C,MAAM,CAElB4C,WAAW,CAACoC,QAAQ,CACpBpC,WAAW,CAACqC,QAAQ,CACpBrC,WAAW,CAACsC,WAAW,CACvBtC,WAAW,CAACuC,eAAe,CAC3BvC,WAAW,CAACwC,gBAAgB,CAC5BxC,WAAW,CAACyC,UAAU,CACtBzC,WAAW,CAAC0C,UAAU,CACtB1C,WAAW,CAAC2C,QAAQ,CACpB3C,WAAW,CAAC4C,OAAO,CACnB5C,WAAW,CAAC6C,iBAAiB,CAE7B7C,WAAW,CAAC8C,WAAW,CACvB9C,WAAW,CAAC+C,SAAS,CACrB/C,WAAW,CAACgD,aAAa,CACzBhD,WAAW,CAACiD,aAAa,CAEzBjD,WAAW,CAACkD,mBAAmB,CAC/BlD,WAAW,CAACmD,kBAAkB,CAE9BnD,WAAW,CAACoD,YAAY,CACxBpD,WAAW,CAACqD,YAAY,CACxBrD,WAAW,CAACsD,cAAc,CAC1BtD,WAAW,CAACuD,OAAO,CACnBvD,WAAW,CAACwD,UAAU,CAEtBxD,WAAW,CAACyD,IAAI,CAChBzD,WAAW,CAAC0D,IAAI,CAChB1D,WAAW,CAAC2D,IAAI,CAAAC,CAAAA,MAAA,CAAAC,kBAAA,EAAApE,qBAAA,CAEZO,WAAW,CAAC8D,WAAW,QAAArE,qBAAA,CAAI,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,CAE3CO,CAAAA,CAAAA,WAAW,CAAC+D,kBAAkB,CAC9B/D,WAAW,CAACgE,cAAc,CAC1BhE,WAAW,CAACiE,WAAW,CACvBjE,WAAW,CAACkE,gBAAgB,CAE5BlE,WAAW,CAACmE,cAAc,CAC1BnE,WAAW,CAACoE,eAAe,CAE3BpE,WAAW,CAACwB,MAAM,CAClBxB,WAAW,CAACqE,SAAS,CACrBrE,WAAW,CAACsE,OAAO,CACnBtE,WAAW,CAACuE,yBAAyB,CAErCvE,WAAW,CAACwE,gBAAgB,CAC5BxE,WAAW,CAACyE,qBAAqB,CACjCzE,WAAW,CAAC0E,mBAAmB,CAC/B1E,WAAW,CAAC2E,0BAA0B,CACtC3E,WAAW,CAAC4E,wBAAwB,CAEpC5E,WAAW,CAAC6E,gBAAgB,CAC5B7E,WAAW,CAAC8E,wBAAwB,EACrC,CAAC,CAGF9D,SAAS,CAAC,UAAM,CACd,GAAIT,aAAa,EAAIQ,QAAQ,CAACpE,OAAO,EAAIU,iBAAiB,CAAE,CAC1D0D,QAAQ,CAACpE,OAAO,CAACoI,wBAAwB,CAAC1H,iBAAiB,CAAC,CAC9D,CACF,CAAC,CAAE,CAACkD,aAAa,CAAElD,iBAAiB,CAAC,CAAC,CAEtC,IAAM2H,SAAS,CAAG3I,YAAY,CAAC,CAACwE,MAAM,CAAEzB,YAAY,CAAC,CAAC,CAGtD,IAAM6F,UAAU,CAAG,OAAOnI,KAAK,GAAK,QAAQ,CAAG,GAAGA,KAAK,CAAA,EAAA,CAAI,CAAGA,KAAK,CACnE,IAAMoI,WAAW,CAAG,OAAOnI,MAAM,GAAK,QAAQ,CAAG,CAAA,EAAGA,MAAM,CAAI,EAAA,CAAA,CAAGA,MAAM,CAEvE,GAAI4D,KAAK,CAAE,CACT,OACEwE,GAAA,QACEzI,GAAG,CAAEsI,SAAU,CACfhI,SAAS,CAAEA,SAAU,CACrBC,KAAK,CAAAQ,MAAA,CAAAc,MAAA,EACHzB,KAAK,CAAEmI,UAAU,CACjBlI,MAAM,CAAEmI,WAAW,EAChBjI,KAAK,CACR,CACH,CAAC,CAEN,CAEA,OACEkI,GAAA,CAAA,KAAA,CAAA,CACEzI,GAAG,CAAEsI,SAAU,CACfhI,SAAS,CAAEA,SAAU,CACrBC,KAAK,CAAAQ,MAAA,CAAAc,MAAA,CACHzB,CAAAA,KAAK,CAAEmI,UAAU,CACjBlI,MAAM,CAAEmI,WAAW,CACnBE,QAAQ,CAAE,UAAU,CACpBC,QAAQ,CAAE,QAAQ,CAClBC,eAAe,CAAE,aAAa,CAC9BC,UAAU,CAAE,YAAY,CAAA,CACpBhF,aAAa,CAAG,CAAEiF,OAAO,CAAE,CAAE,CAAC,CAAG,CAAEA,OAAO,CAAE,CAAE,CAAC,CAChDvI,KAAK,CACR,CACH,CAAC,CAEN,CAAC;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var DEFAULT_CONFIG={inputMin:0.0,inputMax:1.0,modifyGamma:1.05,posterizeLevels:0.0,cycleRepetitions:1.0,phaseShift:0.0,cycleSpeed:0.0,wrapMode:false,reverse:true,blendWithOriginal:0.0,gradientMapBlend:0.0,gradientMapBlendDuration:0.6,enableCenterElement:true,centerAnimDuration:6.0,ccBlackPoint:0.0,ccWhitePoint:0.9,ccMidtoneGamma:1.2,ccGamma:1.2,ccContrast:0.0,numSegments:45.0,slitAngle:0.15,displacementX:-12.0,displacementY:-20.0,paused:false,startTime:0,endTime:14,animateLightIndependently:false,playbackRate:1.0,lightIntensity:0.2,lightStartFrame:140,enableDisplacement:true,enableColorama:true,enableBloom:true,enableLightSweep:true,aspectRatio:3/2,zoom:1,panX:0,panY:0,edgeFeather:[0,0,0,0],backgroundColor:[-1,-1,-1],animateCycleReps:true,cycleRepetitionsStart:1.0,cycleRepetitionsEnd:1.15,cycleRepetitionsStartFrame:0,cycleRepetitionsDuration:140};var
|
|
1
|
+
var DEFAULT_CONFIG={inputMin:0.0,inputMax:1.0,modifyGamma:1.05,posterizeLevels:0.0,cycleRepetitions:1.0,phaseShift:0.0,cycleSpeed:0.0,wrapMode:false,reverse:true,blendWithOriginal:0.0,gradientMapBlend:0.0,gradientMapBlendDuration:0.6,enableCenterElement:true,centerAnimDuration:6.0,ccBlackPoint:0.0,ccWhitePoint:0.9,ccMidtoneGamma:1.2,ccGamma:1.2,ccContrast:0.0,numSegments:45.0,slitAngle:0.15,displacementX:-12.0,displacementY:-20.0,paused:false,startTime:0,endTime:14,animateLightIndependently:false,playbackRate:1.0,lightIntensity:0.2,lightStartFrame:140,enableDisplacement:true,enableColorama:true,enableBloom:true,enableLightSweep:true,aspectRatio:3/2,zoom:1,panX:0,panY:0,edgeFeather:[0,0,0,0],backgroundColor:[-1,-1,-1],animateCycleReps:true,cycleRepetitionsStart:1.0,cycleRepetitionsEnd:1.15,cycleRepetitionsStartFrame:0,cycleRepetitionsDuration:140};var getPresets=function getPresets(assetsPath){return {default:{},zoomed:{lightIntensity:0.2,lightStartFrame:0,ccBlackPoint:0.0,ccWhitePoint:0.9,ccMidtoneGamma:1.2,ccGamma:1.62,ccContrast:0.0,numSegments:20.0,slitAngle:15*Math.PI/180,displacementX:-12.0,displacementY:-20.0,paused:true,startTime:10,endTime:14,animateLightIndependently:true,zoom:5,panX:-0.01,panY:0.1,edgeFeather:[3,5,3,3],animateCycleReps:true,cycleRepetitionsStart:1.0,cycleRepetitionsEnd:1.15,cycleRepetitionsStartFrame:0,cycleRepetitionsDuration:140},bottomWave:{imageSrc:`${assetsPath}/bottom-frame.jpg`,gradientMapSrc:`${assetsPath}/colorama-gradient-map-green.jpg`,gradientMap2Src:`${assetsPath}/colorama-gradient-map-blue.jpg`,gradientMapBlend:0,edgeFeather:[0.3,0,3,0],panY:-0.04,numSegments:30,enableBloom:false,slitAngle:15*Math.PI/180},rippleWave:{videoSrc:`${assetsPath}/ray-pulse.mp4`,aspectRatio:1.61,playbackRate:0.7,slitAngle:15*Math.PI/180,numSegments:35,ccGamma:2.0,displacementX:-2.0,displacementY:-11.0,enableDisplacement:true,enableCenterElement:false,enableLightSweep:false,enableBloom:false,animateCycleReps:false,zoom:2},circleSlideUp:{videoSrc:`${assetsPath}/success-animation-circle.mp4`,aspectRatio:1.61,playbackRate:0.85,slitAngle:15*Math.PI/180,numSegments:25,enableDisplacement:true,enableCenterElement:false,enableLightSweep:false,enableBloom:false,animateCycleReps:false,zoom:1}};};
|
|
2
2
|
|
|
3
|
-
export { DEFAULT_CONFIG,
|
|
3
|
+
export { DEFAULT_CONFIG, getPresets };
|
|
4
4
|
//# sourceMappingURL=presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sources":["../../../../../../src/components/Spark/RzpGlass/presets.ts"],"sourcesContent":["import type { RzpGlassConfig, RzpGlassPresetDefinition } from './types';\n\n// ============================================\n// DEFAULT CONFIG VALUES\n// ============================================\nconst DEFAULT_CONFIG: Required<RzpGlassConfig> = {\n // Input Phase\n inputMin: 0.0,\n inputMax: 1.0,\n // Modify Phase\n modifyGamma: 1.05,\n posterizeLevels: 0.0,\n cycleRepetitions: 1.0,\n phaseShift: 0.0,\n cycleSpeed: 0.0,\n // Output Cycle\n wrapMode: false,\n reverse: true,\n // Composite\n blendWithOriginal: 0.0,\n gradientMapBlend: 0.0,\n gradientMapBlendDuration: 0.6,\n\n // Center Element\n enableCenterElement: true,\n centerAnimDuration: 6.0,\n\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.2,\n ccContrast: 0.0,\n\n // Displacement\n numSegments: 45.0,\n slitAngle: 0.15,\n displacementX: -12.0,\n displacementY: -20.0,\n\n // Playback\n paused: false,\n startTime: 0,\n endTime: 14,\n animateLightIndependently: false,\n playbackRate: 1.0,\n\n // Light Effect\n lightIntensity: 0.2,\n lightStartFrame: 140,\n\n // Effect Toggles\n enableDisplacement: true,\n enableColorama: true,\n enableBloom: true,\n enableLightSweep: true,\n\n // Canvas\n aspectRatio: 3 / 2,\n\n // Zoom & Pan\n zoom: 1,\n panX: 0,\n panY: 0,\n edgeFeather: [0, 0, 0, 0],\n\n // Background Color\n backgroundColor: [-1, -1, -1],\n\n // Cycle Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n};\n\n// ============================================\n// PRESETS\n// ============================================\nexport type RzpGlassPreset = 'default' | 'zoomed' | 'bottomWave' | 'rippleWave' | 'circleSlideUp';\n\nconst
|
|
1
|
+
{"version":3,"file":"presets.js","sources":["../../../../../../src/components/Spark/RzpGlass/presets.ts"],"sourcesContent":["import type { RzpGlassConfig, RzpGlassPresetDefinition } from './types';\n\n// ============================================\n// DEFAULT CONFIG VALUES\n// ============================================\nconst DEFAULT_CONFIG: Required<RzpGlassConfig> = {\n // Input Phase\n inputMin: 0.0,\n inputMax: 1.0,\n // Modify Phase\n modifyGamma: 1.05,\n posterizeLevels: 0.0,\n cycleRepetitions: 1.0,\n phaseShift: 0.0,\n cycleSpeed: 0.0,\n // Output Cycle\n wrapMode: false,\n reverse: true,\n // Composite\n blendWithOriginal: 0.0,\n gradientMapBlend: 0.0,\n gradientMapBlendDuration: 0.6,\n\n // Center Element\n enableCenterElement: true,\n centerAnimDuration: 6.0,\n\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.2,\n ccContrast: 0.0,\n\n // Displacement\n numSegments: 45.0,\n slitAngle: 0.15,\n displacementX: -12.0,\n displacementY: -20.0,\n\n // Playback\n paused: false,\n startTime: 0,\n endTime: 14,\n animateLightIndependently: false,\n playbackRate: 1.0,\n\n // Light Effect\n lightIntensity: 0.2,\n lightStartFrame: 140,\n\n // Effect Toggles\n enableDisplacement: true,\n enableColorama: true,\n enableBloom: true,\n enableLightSweep: true,\n\n // Canvas\n aspectRatio: 3 / 2,\n\n // Zoom & Pan\n zoom: 1,\n panX: 0,\n panY: 0,\n edgeFeather: [0, 0, 0, 0],\n\n // Background Color\n backgroundColor: [-1, -1, -1],\n\n // Cycle Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n};\n\n// ============================================\n// PRESETS\n// ============================================\nexport type RzpGlassPreset = 'default' | 'zoomed' | 'bottomWave' | 'rippleWave' | 'circleSlideUp';\n\n/**\n * Get preset definitions with dynamic CDN path support.\n * Asset URLs in presets will use the provided assetsPath.\n */\nconst getPresets = (assetsPath: string): Record<RzpGlassPreset, RzpGlassPresetDefinition> => ({\n /** Baseline — identical to DEFAULT_CONFIG, no overrides */\n default: {},\n\n /**\n * Zoomed-in closeup: high zoom, fine segments, edge feathering.\n * Good for a tight card/badge usage.\n */\n zoomed: {\n lightIntensity: 0.2,\n lightStartFrame: 0,\n // Color Correction\n ccBlackPoint: 0.0,\n ccWhitePoint: 0.9,\n ccMidtoneGamma: 1.2,\n ccGamma: 1.62,\n ccContrast: 0.0,\n // Displacement\n numSegments: 20.0,\n slitAngle: (15 * Math.PI) / 180,\n displacementX: -12.0,\n displacementY: -20.0,\n // Playback\n paused: true,\n startTime: 10,\n endTime: 14,\n animateLightIndependently: true,\n // Zoom & Pan\n zoom: 5,\n panX: -0.01,\n panY: 0.1,\n edgeFeather: [3, 5, 3, 3],\n // Animation\n animateCycleReps: true,\n cycleRepetitionsStart: 1.0,\n cycleRepetitionsEnd: 1.15,\n cycleRepetitionsStartFrame: 0,\n cycleRepetitionsDuration: 140,\n },\n bottomWave: {\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n gradientMapBlend: 0,\n edgeFeather: [0.3, 0, 3, 0],\n panY: -0.04,\n numSegments: 30,\n enableBloom: false,\n slitAngle: (15 * Math.PI) / 180,\n },\n rippleWave: {\n videoSrc: `${assetsPath}/ray-pulse.mp4`,\n aspectRatio: 1.61,\n playbackRate: 0.7,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 35,\n ccGamma: 2.0,\n displacementX: -2.0,\n displacementY: -11.0,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 2,\n },\n circleSlideUp: {\n videoSrc: `${assetsPath}/success-animation-circle.mp4`,\n aspectRatio: 1.61,\n playbackRate: 0.85,\n slitAngle: (15 * Math.PI) / 180,\n numSegments: 25,\n enableDisplacement: true,\n enableCenterElement: false,\n enableLightSweep: false,\n enableBloom: false,\n animateCycleReps: false,\n zoom: 1,\n },\n});\n\nexport { DEFAULT_CONFIG, getPresets };\n"],"names":["DEFAULT_CONFIG","inputMin","inputMax","modifyGamma","posterizeLevels","cycleRepetitions","phaseShift","cycleSpeed","wrapMode","reverse","blendWithOriginal","gradientMapBlend","gradientMapBlendDuration","enableCenterElement","centerAnimDuration","ccBlackPoint","ccWhitePoint","ccMidtoneGamma","ccGamma","ccContrast","numSegments","slitAngle","displacementX","displacementY","paused","startTime","endTime","animateLightIndependently","playbackRate","lightIntensity","lightStartFrame","enableDisplacement","enableColorama","enableBloom","enableLightSweep","aspectRatio","zoom","panX","panY","edgeFeather","backgroundColor","animateCycleReps","cycleRepetitionsStart","cycleRepetitionsEnd","cycleRepetitionsStartFrame","cycleRepetitionsDuration","getPresets","assetsPath","default","zoomed","Math","PI","bottomWave","imageSrc","gradientMapSrc","gradientMap2Src","rippleWave","videoSrc","circleSlideUp"],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
2
|
+
import { getPresets } from './presets.js';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
var DEFAULT_CDN_PATH='https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';var getDefaultAssets=function getDefaultAssets(assetsPath){return {videoSrc:`${assetsPath}/spark-base-video.mp4`,imageSrc:`${assetsPath}/bottom-frame.jpg`,gradientMapSrc:`${assetsPath}/colorama-gradient-map-green.jpg`,gradientMap2Src:`${assetsPath}/colorama-gradient-map-blue.jpg`,centerGradientMapSrc:`${assetsPath}/colorama-center-gradient-map.jpg`};};function loadImage(src){return new Promise(function(resolve,reject){var img=new Image();img.crossOrigin='anonymous';img.onload=function(){return resolve(img);};img.onerror=function(){return reject(new Error(`Failed to load image: ${src}`));};img.src=src;});}function loadVideo(src){return new Promise(function(resolve,reject){var video=document.createElement('video');video.src=src;video.crossOrigin='anonymous';video.loop=true;video.muted=true;video.playsInline=true;video.preload='auto';video.oncanplaythrough=function(){return resolve(video);};video.onerror=function(){return reject(new Error(`Failed to load video: ${src}`));};video.load();});}function isSafari(){var ua=navigator.userAgent.toLowerCase();return ua.includes('safari')&&!ua.includes('chrome')&&!ua.includes('android');}function bestGuessBrowserZoom(){var _visualViewport$scale,_visualViewport,_visualViewport$width,_visualViewport2;var viewportScale=(_visualViewport$scale=(_visualViewport=visualViewport)==null?void 0:_visualViewport.scale)!=null?_visualViewport$scale:1;var viewportWidth=(_visualViewport$width=(_visualViewport2=visualViewport)==null?void 0:_visualViewport2.width)!=null?_visualViewport$width:window.innerWidth;var scrollbarWidth=window.innerWidth-document.documentElement.clientWidth;var innerWidth=viewportScale*viewportWidth+scrollbarWidth;var ratio=outerWidth/innerWidth;var zoomPercentageRounded=Math.round(100*ratio);if(zoomPercentageRounded%5===0){return zoomPercentageRounded/100;}if(zoomPercentageRounded===33)return 1/3;if(zoomPercentageRounded===67)return 2/3;if(zoomPercentageRounded===133)return 4/3;return ratio;}function preloadRazorSenseAssets(){return _preloadRazorSenseAssets.apply(this,arguments);}function _preloadRazorSenseAssets(){_preloadRazorSenseAssets=_asyncToGenerator(function*(){var _presetDef$videoSrc,_presetDef$gradientMa,_presetDef$gradientMa2,_presetDef$centerGrad;var preset=arguments.length>0&&arguments[0]!==undefined?arguments[0]:'default';var assetsPath=arguments.length>1&&arguments[1]!==undefined?arguments[1]:DEFAULT_CDN_PATH;var presets=getPresets(assetsPath);var presetDef=presets[preset]||{};var defaultAssets=getDefaultAssets(assetsPath);var videoSrc=(_presetDef$videoSrc=presetDef.videoSrc)!=null?_presetDef$videoSrc:defaultAssets.videoSrc;var imageSrc=presetDef.imageSrc;var gradientMapSrc=(_presetDef$gradientMa=presetDef.gradientMapSrc)!=null?_presetDef$gradientMa:defaultAssets.gradientMapSrc;var gradientMap2Src=(_presetDef$gradientMa2=presetDef.gradientMap2Src)!=null?_presetDef$gradientMa2:defaultAssets.gradientMap2Src;var centerGradientMapSrc=(_presetDef$centerGrad=presetDef.centerGradientMapSrc)!=null?_presetDef$centerGrad:defaultAssets.centerGradientMapSrc;var loadPromises=[];if(imageSrc){loadPromises.push(loadImage(imageSrc));}else if(videoSrc){loadPromises.push(loadVideo(videoSrc));}loadPromises.push(loadImage(gradientMapSrc),loadImage(gradientMap2Src),loadImage(centerGradientMapSrc));yield Promise.all(loadPromises);});return _preloadRazorSenseAssets.apply(this,arguments);}
|
|
5
|
+
|
|
6
|
+
export { bestGuessBrowserZoom, isSafari, loadImage, loadVideo, preloadRazorSenseAssets };
|
|
4
7
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\n/**\n * Load an image from URL\n */\nexport function loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nexport function loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nexport function isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nexport function bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n"],"names":["loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","width","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\nimport type { RzpGlassPreset } from './presets';\nimport { getPresets } from './presets';\n\nconst DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';\n\nconst getDefaultAssets = (assetsPath: string): Record<string, string> => ({\n videoSrc: `${assetsPath}/spark-base-video.mp4`,\n imageSrc: `${assetsPath}/bottom-frame.jpg`,\n gradientMapSrc: `${assetsPath}/colorama-gradient-map-green.jpg`,\n gradientMap2Src: `${assetsPath}/colorama-gradient-map-blue.jpg`,\n centerGradientMapSrc: `${assetsPath}/colorama-center-gradient-map.jpg`,\n});\n\n/**\n * Load an image from URL\n */\nexport function loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nexport function loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nexport function isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nexport function bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n\n/**\n * Preload all assets for a given RazorSense preset.\n * This ensures videos and images are fully loaded before the component mounts,\n * preventing frame skipping in one-shot animations.\n *\n * @param preset - The preset name to preload assets for\n * @param assetsPath - Optional CDN path for assets (defaults to Blade CDN)\n * @returns Promise that resolves when all assets are loaded\n *\n * @example\n * ```tsx\n * // Preload before showing the animation\n * await preloadRazorSenseAssets('circleSlideUp');\n *\n * // Now mount the component - assets are already cached\n * <RazorSense preset=\"circleSlideUp\" />\n * ```\n */\nexport async function preloadRazorSenseAssets(\n preset: RzpGlassPreset = 'default',\n assetsPath: string = DEFAULT_CDN_PATH,\n): Promise<void> {\n const presets = getPresets(assetsPath);\n const presetDef = presets[preset] || {};\n const defaultAssets = getDefaultAssets(assetsPath);\n\n const videoSrc = presetDef.videoSrc ?? defaultAssets.videoSrc;\n const imageSrc = presetDef.imageSrc;\n const gradientMapSrc = presetDef.gradientMapSrc ?? defaultAssets.gradientMapSrc;\n const gradientMap2Src = presetDef.gradientMap2Src ?? defaultAssets.gradientMap2Src;\n const centerGradientMapSrc = presetDef.centerGradientMapSrc ?? defaultAssets.centerGradientMapSrc;\n\n const loadPromises: Promise<unknown>[] = [];\n\n if (imageSrc) {\n loadPromises.push(loadImage(imageSrc));\n } else if (videoSrc) {\n loadPromises.push(loadVideo(videoSrc));\n }\n\n loadPromises.push(\n loadImage(gradientMapSrc),\n loadImage(gradientMap2Src),\n loadImage(centerGradientMapSrc),\n );\n\n await Promise.all(loadPromises);\n}\n"],"names":["DEFAULT_CDN_PATH","getDefaultAssets","assetsPath","videoSrc","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","width","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round","preloadRazorSenseAssets","_preloadRazorSenseAssets","apply","arguments","_asyncToGenerator","_presetDef$videoSrc","_presetDef$gradientMa","_presetDef$gradientMa2","_presetDef$centerGrad","preset","length","undefined","presets","getPresets","presetDef","defaultAssets","loadPromises","push","all"],"mappings":"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"}
|
|
@@ -598,6 +598,7 @@ export { GenUIProvider } from './GenUI/GenUIProvider.native.js';
|
|
|
598
598
|
export { useGenUI, useGenUIAction } from './GenUI/GenUIContext.native.js';
|
|
599
599
|
export { GenUISchemaRenderer } from './GenUI/GenUISchemaRenderer.native.js';
|
|
600
600
|
export { RzpGlass as RazorSense } from './Spark/RzpGlass/RzpGlass.js';
|
|
601
|
+
export { preloadRazorSenseAssets } from './Spark/RzpGlass/utils.js';
|
|
601
602
|
export { FluidGradient as RazorSenseGradient } from './Spark/RazorSenseGradient/FluidGradient.js';
|
|
602
603
|
export { BottomSheetBody } from './BottomSheet/BottomSheetBody.native.js';
|
|
603
604
|
export { BottomSheetFooter } from './BottomSheet/BottomSheetFooter.native.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
|
|
1
|
+
import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
|
|
2
2
|
//# sourceMappingURL=cloneDeep.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import '../node_modules/es-toolkit/dist/
|
|
1
|
+
import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
|
|
2
2
|
//# sourceMappingURL=cloneDeep3.js.map
|
|
@@ -6,21 +6,25 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
|
|
|
6
6
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
7
7
|
import { useCallback, forwardRef, useState, useRef, useEffect } from 'react';
|
|
8
8
|
import { RzpGlassMount } from './RzpGlassMount.js';
|
|
9
|
-
import {
|
|
9
|
+
import { getPresets } from './presets.js';
|
|
10
10
|
import { jsx } from 'react/jsx-runtime';
|
|
11
11
|
|
|
12
|
-
var _excluded = ["width", "height", "className", "style", "onLoad", "onError", "preset", "
|
|
13
|
-
_excluded2 = ["width", "height", "className", "style", "onLoad", "onError", "
|
|
12
|
+
var _excluded = ["width", "height", "className", "style", "onLoad", "onError", "preset", "assetsPath", "gradientMapSrc", "gradientMap2Src", "gradientMapCanvas", "imageSrc"],
|
|
13
|
+
_excluded2 = ["width", "height", "className", "style", "onLoad", "onError", "assetsPath", "gradientMapCanvas", "gradientMapSrc", "gradientMap2Src", "imageSrc"];
|
|
14
14
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
15
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
// Duration of the component's built-in fade-in transition.
|
|
17
|
+
// The video is kept paused during this window so one-shot animations
|
|
18
|
+
// (e.g. circleSlideUp) don't "waste" frames while the canvas is invisible.
|
|
19
|
+
var FADE_IN_MS = 200;
|
|
20
|
+
var DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/npm/@razorpay/blade/assets/spark';
|
|
21
|
+
var getDefaultAssets = function getDefaultAssets(assetsPath) {
|
|
18
22
|
return {
|
|
19
|
-
videoSrc: "".concat(
|
|
20
|
-
imageSrc: "".concat(
|
|
21
|
-
gradientMapSrc: "".concat(
|
|
22
|
-
gradientMap2Src: "".concat(
|
|
23
|
-
centerGradientMapSrc: "".concat(
|
|
23
|
+
videoSrc: "".concat(assetsPath, "/spark-base-video.mp4"),
|
|
24
|
+
imageSrc: "".concat(assetsPath, "/bottom-frame.jpg"),
|
|
25
|
+
gradientMapSrc: "".concat(assetsPath, "/colorama-gradient-map-green.jpg"),
|
|
26
|
+
gradientMap2Src: "".concat(assetsPath, "/colorama-gradient-map-blue.jpg"),
|
|
27
|
+
centerGradientMapSrc: "".concat(assetsPath, "/colorama-center-gradient-map.jpg")
|
|
24
28
|
};
|
|
25
29
|
};
|
|
26
30
|
|
|
@@ -51,7 +55,7 @@ function extractConfig(props) {
|
|
|
51
55
|
_onLoad = props.onLoad,
|
|
52
56
|
_onError = props.onError,
|
|
53
57
|
_preset = props.preset,
|
|
54
|
-
|
|
58
|
+
_assetsPath = props.assetsPath,
|
|
55
59
|
_gradientMapSrc = props.gradientMapSrc,
|
|
56
60
|
_gradientMap2Src = props.gradientMap2Src,
|
|
57
61
|
_gradientMapCanvas = props.gradientMapCanvas,
|
|
@@ -70,20 +74,21 @@ function extractConfig(props) {
|
|
|
70
74
|
var ASSET_KEYS = new Set(['videoSrc', 'imageSrc', 'gradientMapSrc', 'gradientMap2Src', 'centerGradientMapSrc']);
|
|
71
75
|
|
|
72
76
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */
|
|
73
|
-
function getPresetDefinition(preset) {
|
|
74
|
-
|
|
77
|
+
function getPresetDefinition(preset, assetsPath) {
|
|
78
|
+
var presets = getPresets(assetsPath);
|
|
79
|
+
if (preset && preset in presets) return _objectSpread({}, presets[preset]);
|
|
75
80
|
return {};
|
|
76
81
|
}
|
|
77
|
-
function getPresetConfig(preset) {
|
|
78
|
-
var def = getPresetDefinition(preset);
|
|
82
|
+
function getPresetConfig(preset, assetsPath) {
|
|
83
|
+
var def = getPresetDefinition(preset, assetsPath);
|
|
79
84
|
return Object.fromEntries(Object.entries(def).filter(function (_ref3) {
|
|
80
85
|
var _ref4 = _slicedToArray(_ref3, 1),
|
|
81
86
|
k = _ref4[0];
|
|
82
87
|
return !ASSET_KEYS.has(k);
|
|
83
88
|
}));
|
|
84
89
|
}
|
|
85
|
-
function getPresetAssets(preset) {
|
|
86
|
-
var def = getPresetDefinition(preset);
|
|
90
|
+
function getPresetAssets(preset, assetsPath) {
|
|
91
|
+
var def = getPresetDefinition(preset, assetsPath);
|
|
87
92
|
return Object.fromEntries(Object.entries(def).filter(function (_ref5) {
|
|
88
93
|
var _ref6 = _slicedToArray(_ref5, 1),
|
|
89
94
|
k = _ref6[0];
|
|
@@ -95,8 +100,8 @@ function getPresetAssets(preset) {
|
|
|
95
100
|
* Merge preset config with user-provided config.
|
|
96
101
|
* Preset values are used as base; any explicit prop overrides them.
|
|
97
102
|
*/
|
|
98
|
-
function resolveConfig(props) {
|
|
99
|
-
return _objectSpread(_objectSpread({}, getPresetConfig(props.preset)), extractConfig(props));
|
|
103
|
+
function resolveConfig(props, assetsPath) {
|
|
104
|
+
return _objectSpread(_objectSpread({}, getPresetConfig(props.preset, assetsPath)), extractConfig(props));
|
|
100
105
|
}
|
|
101
106
|
var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
102
107
|
var _presetAssets$videoSr, _ref7, _ref8, _presetAssets$centerG, _configProps$edgeFeat;
|
|
@@ -108,19 +113,19 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
108
113
|
style = props.style,
|
|
109
114
|
onLoad = props.onLoad,
|
|
110
115
|
onError = props.onError,
|
|
111
|
-
|
|
116
|
+
assetsPathProp = props.assetsPath,
|
|
112
117
|
gradientMapCanvas = props.gradientMapCanvas,
|
|
113
118
|
gradientMapSrcProp = props.gradientMapSrc,
|
|
114
119
|
gradientMap2SrcProp = props.gradientMap2Src,
|
|
115
120
|
imageSrcProp = props.imageSrc,
|
|
116
121
|
configProps = _objectWithoutProperties(props, _excluded2);
|
|
117
122
|
|
|
118
|
-
// Get default assets based on
|
|
119
|
-
var
|
|
120
|
-
var defaultAssets = getDefaultAssets(
|
|
123
|
+
// Get default assets based on assetsPath
|
|
124
|
+
var assetsPath = assetsPathProp !== null && assetsPathProp !== void 0 ? assetsPathProp : DEFAULT_CDN_PATH;
|
|
125
|
+
var defaultAssets = getDefaultAssets(assetsPath);
|
|
121
126
|
|
|
122
127
|
// Resolve assets: prop overrides preset, preset overrides default
|
|
123
|
-
var presetAssets = getPresetAssets(props.preset);
|
|
128
|
+
var presetAssets = getPresetAssets(props.preset, assetsPath);
|
|
124
129
|
var imageSrc = imageSrcProp !== null && imageSrcProp !== void 0 ? imageSrcProp : presetAssets.imageSrc;
|
|
125
130
|
var videoSrc = imageSrc ? undefined : (_presetAssets$videoSr = presetAssets.videoSrc) !== null && _presetAssets$videoSr !== void 0 ? _presetAssets$videoSr : defaultAssets.videoSrc;
|
|
126
131
|
var gradientMapSrc = (_ref7 = gradientMapSrcProp !== null && gradientMapSrcProp !== void 0 ? gradientMapSrcProp : presetAssets.gradientMapSrc) !== null && _ref7 !== void 0 ? _ref7 : defaultAssets.gradientMapSrc;
|
|
@@ -141,7 +146,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
141
146
|
useEffect(function () {
|
|
142
147
|
var init = /*#__PURE__*/function () {
|
|
143
148
|
var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
144
|
-
var config, _error, _t;
|
|
149
|
+
var _config$paused, config, userWantsPaused, _error, _t;
|
|
145
150
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
146
151
|
while (1) switch (_context.prev = _context.next) {
|
|
147
152
|
case 0:
|
|
@@ -152,7 +157,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
152
157
|
return _context.abrupt("return");
|
|
153
158
|
case 1:
|
|
154
159
|
_context.prev = 1;
|
|
155
|
-
config = resolveConfig(props);
|
|
160
|
+
config = resolveConfig(props, assetsPath);
|
|
156
161
|
mountRef.current = new RzpGlassMount(divRef.current, {
|
|
157
162
|
videoSrc: videoSrc,
|
|
158
163
|
imageSrc: imageSrc,
|
|
@@ -163,8 +168,23 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
163
168
|
_context.next = 2;
|
|
164
169
|
return mountRef.current.loadAssets();
|
|
165
170
|
case 2:
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
// Pause the video during the CSS fade-in so one-shot animations
|
|
172
|
+
// don't burn frames while the component is still transparent.
|
|
173
|
+
// Only do this when the consumer hasn't explicitly set paused: true.
|
|
174
|
+
userWantsPaused = (_config$paused = config.paused) !== null && _config$paused !== void 0 ? _config$paused : false;
|
|
175
|
+
if (!userWantsPaused) {
|
|
176
|
+
mountRef.current.pause();
|
|
177
|
+
}
|
|
178
|
+
setIsInitialized(true); // kicks off the CSS opacity 0 → 1 transition
|
|
179
|
+
|
|
180
|
+
// After the fade-in completes, resume video and notify the consumer.
|
|
181
|
+
setTimeout(function () {
|
|
182
|
+
if (!mountRef.current) return;
|
|
183
|
+
if (!userWantsPaused) {
|
|
184
|
+
mountRef.current.play();
|
|
185
|
+
}
|
|
186
|
+
onLoad === null || onLoad === void 0 || onLoad();
|
|
187
|
+
}, FADE_IN_MS);
|
|
168
188
|
_context.next = 4;
|
|
169
189
|
break;
|
|
170
190
|
case 3:
|
|
@@ -190,12 +210,12 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
190
210
|
mountRef.current = null;
|
|
191
211
|
setIsInitialized(false);
|
|
192
212
|
};
|
|
193
|
-
}, [
|
|
213
|
+
}, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);
|
|
194
214
|
|
|
195
215
|
// Update uniforms when config props change
|
|
196
216
|
useEffect(function () {
|
|
197
217
|
if (isInitialized && mountRef.current) {
|
|
198
|
-
var config = resolveConfig(props);
|
|
218
|
+
var config = resolveConfig(props, assetsPath);
|
|
199
219
|
mountRef.current.setUniforms(config);
|
|
200
220
|
}
|
|
201
221
|
}, [isInitialized, configProps.preset,
|