@razorpay/blade 12.94.0 → 12.95.1
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/RazorSenseGradient/shader.js +10 -3
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js.map +1 -1
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +5 -4
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js +2 -1
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.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/rzpGlassShader.js +8 -5
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
- package/build/lib/native/components/Spark/RzpGlass/utils.js +7 -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/_virtual/flatten.js +1 -1
- package/build/lib/web/development/_virtual/flatten3.js +1 -1
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +1 -1
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +41 -110
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +8 -6
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.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/rzpGlassShader.js +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js +147 -2
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js +3 -2
- package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.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/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- 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/object/omit.js +2 -2
- 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/RazorSenseGradient/shader.js +1 -1
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +41 -110
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +8 -6
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.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/rzpGlassShader.js +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js +147 -2
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
- package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js +3 -2
- package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.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 +43 -3
- package/build/types/components/index.native.d.ts +42 -3
- package/package.json +1 -1
|
@@ -1,105 +1,21 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
1
2
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
2
3
|
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
3
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
4
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
5
5
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
6
6
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
7
|
-
import {
|
|
7
|
+
import { forwardRef, useState, useRef, useEffect } from 'react';
|
|
8
8
|
import { RzpGlassMount } from './RzpGlassMount.js';
|
|
9
|
-
import {
|
|
9
|
+
import { DEFAULT_CDN_PATH, getDefaultAssets, getPresetAssets, resolveConfig } from './utils.js';
|
|
10
|
+
import { useMergeRefs } from '../../../utils/useMergeRefs.js';
|
|
10
11
|
import { jsx } from 'react/jsx-runtime';
|
|
11
12
|
|
|
12
|
-
var _excluded = ["width", "height", "className", "style", "onLoad", "onError", "
|
|
13
|
-
_excluded2 = ["width", "height", "className", "style", "onLoad", "onError", "cdnPath", "gradientMapCanvas", "gradientMapSrc", "gradientMap2Src", "imageSrc"];
|
|
13
|
+
var _excluded = ["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
|
-
var
|
|
17
|
-
var getDefaultAssets = function getDefaultAssets(cdnPath) {
|
|
18
|
-
return {
|
|
19
|
-
videoSrc: "".concat(cdnPath, "/spark-base-video.mp4"),
|
|
20
|
-
imageSrc: "".concat(cdnPath, "/bottom-frame.jpg"),
|
|
21
|
-
gradientMapSrc: "".concat(cdnPath, "/colorama-gradient-map-green.jpg"),
|
|
22
|
-
gradientMap2Src: "".concat(cdnPath, "/colorama-gradient-map-blue.jpg"),
|
|
23
|
-
centerGradientMapSrc: "".concat(cdnPath, "/colorama-center-gradient-map.jpg")
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Hook to merge multiple refs into one
|
|
29
|
-
*/
|
|
30
|
-
function useMergeRefs(refs) {
|
|
31
|
-
return useCallback(function (value) {
|
|
32
|
-
refs.forEach(function (ref) {
|
|
33
|
-
if (typeof ref === 'function') {
|
|
34
|
-
ref(value);
|
|
35
|
-
} else if (ref != null) {
|
|
36
|
-
ref.current = value;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}, [refs]);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Extract config from props (exclude non-config props).
|
|
44
|
-
* Strips undefined values so they don't clobber preset defaults.
|
|
45
|
-
*/
|
|
46
|
-
function extractConfig(props) {
|
|
47
|
-
var _width = props.width,
|
|
48
|
-
_height = props.height,
|
|
49
|
-
_className = props.className,
|
|
50
|
-
_style = props.style,
|
|
51
|
-
_onLoad = props.onLoad,
|
|
52
|
-
_onError = props.onError,
|
|
53
|
-
_preset = props.preset,
|
|
54
|
-
_cdnPath = props.cdnPath,
|
|
55
|
-
_gradientMapSrc = props.gradientMapSrc,
|
|
56
|
-
_gradientMap2Src = props.gradientMap2Src,
|
|
57
|
-
_gradientMapCanvas = props.gradientMapCanvas,
|
|
58
|
-
_imageSrc = props.imageSrc,
|
|
59
|
-
config = _objectWithoutProperties(props, _excluded);
|
|
60
|
-
|
|
61
|
-
// Drop keys with undefined values so preset config isn't overridden by unset props
|
|
62
|
-
return Object.fromEntries(
|
|
63
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
64
|
-
Object.entries(config).filter(function (_ref) {
|
|
65
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
66
|
-
v = _ref2[1];
|
|
67
|
-
return v !== undefined;
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
var ASSET_KEYS = new Set(['videoSrc', 'imageSrc', 'gradientMapSrc', 'gradientMap2Src', 'centerGradientMapSrc']);
|
|
71
|
-
|
|
72
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return */
|
|
73
|
-
function getPresetDefinition(preset) {
|
|
74
|
-
if (preset && preset in PRESETS) return _objectSpread({}, PRESETS[preset]);
|
|
75
|
-
return {};
|
|
76
|
-
}
|
|
77
|
-
function getPresetConfig(preset) {
|
|
78
|
-
var def = getPresetDefinition(preset);
|
|
79
|
-
return Object.fromEntries(Object.entries(def).filter(function (_ref3) {
|
|
80
|
-
var _ref4 = _slicedToArray(_ref3, 1),
|
|
81
|
-
k = _ref4[0];
|
|
82
|
-
return !ASSET_KEYS.has(k);
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
function getPresetAssets(preset) {
|
|
86
|
-
var def = getPresetDefinition(preset);
|
|
87
|
-
return Object.fromEntries(Object.entries(def).filter(function (_ref5) {
|
|
88
|
-
var _ref6 = _slicedToArray(_ref5, 1),
|
|
89
|
-
k = _ref6[0];
|
|
90
|
-
return ASSET_KEYS.has(k);
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Merge preset config with user-provided config.
|
|
96
|
-
* Preset values are used as base; any explicit prop overrides them.
|
|
97
|
-
*/
|
|
98
|
-
function resolveConfig(props) {
|
|
99
|
-
return _objectSpread(_objectSpread({}, getPresetConfig(props.preset)), extractConfig(props));
|
|
100
|
-
}
|
|
16
|
+
var FADE_IN_MS = 200;
|
|
101
17
|
var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
102
|
-
var _presetAssets$videoSr,
|
|
18
|
+
var _presetAssets$videoSr, _ref, _ref2, _presetAssets$centerG, _configProps$edgeFeat;
|
|
103
19
|
var _props$width = props.width,
|
|
104
20
|
width = _props$width === void 0 ? '100%' : _props$width,
|
|
105
21
|
_props$height = props.height,
|
|
@@ -108,23 +24,23 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
108
24
|
style = props.style,
|
|
109
25
|
onLoad = props.onLoad,
|
|
110
26
|
onError = props.onError,
|
|
111
|
-
|
|
27
|
+
assetsPathProp = props.assetsPath,
|
|
112
28
|
gradientMapCanvas = props.gradientMapCanvas,
|
|
113
29
|
gradientMapSrcProp = props.gradientMapSrc,
|
|
114
30
|
gradientMap2SrcProp = props.gradientMap2Src,
|
|
115
31
|
imageSrcProp = props.imageSrc,
|
|
116
|
-
configProps = _objectWithoutProperties(props,
|
|
32
|
+
configProps = _objectWithoutProperties(props, _excluded);
|
|
117
33
|
|
|
118
|
-
// Get default assets based on
|
|
119
|
-
var
|
|
120
|
-
var defaultAssets = getDefaultAssets(
|
|
34
|
+
// Get default assets based on assetsPath
|
|
35
|
+
var assetsPath = assetsPathProp !== null && assetsPathProp !== void 0 ? assetsPathProp : DEFAULT_CDN_PATH;
|
|
36
|
+
var defaultAssets = getDefaultAssets(assetsPath);
|
|
121
37
|
|
|
122
38
|
// Resolve assets: prop overrides preset, preset overrides default
|
|
123
|
-
var presetAssets = getPresetAssets(props.preset);
|
|
39
|
+
var presetAssets = getPresetAssets(props.preset, assetsPath);
|
|
124
40
|
var imageSrc = imageSrcProp !== null && imageSrcProp !== void 0 ? imageSrcProp : presetAssets.imageSrc;
|
|
125
41
|
var videoSrc = imageSrc ? undefined : (_presetAssets$videoSr = presetAssets.videoSrc) !== null && _presetAssets$videoSr !== void 0 ? _presetAssets$videoSr : defaultAssets.videoSrc;
|
|
126
|
-
var gradientMapSrc = (
|
|
127
|
-
var gradientMap2Src = (
|
|
42
|
+
var gradientMapSrc = (_ref = gradientMapSrcProp !== null && gradientMapSrcProp !== void 0 ? gradientMapSrcProp : presetAssets.gradientMapSrc) !== null && _ref !== void 0 ? _ref : defaultAssets.gradientMapSrc;
|
|
43
|
+
var gradientMap2Src = (_ref2 = gradientMap2SrcProp !== null && gradientMap2SrcProp !== void 0 ? gradientMap2SrcProp : presetAssets.gradientMap2Src) !== null && _ref2 !== void 0 ? _ref2 : defaultAssets.gradientMap2Src;
|
|
128
44
|
var centerGradientMapSrc = (_presetAssets$centerG = presetAssets.centerGradientMapSrc) !== null && _presetAssets$centerG !== void 0 ? _presetAssets$centerG : defaultAssets.centerGradientMapSrc;
|
|
129
45
|
var _useState = useState(false),
|
|
130
46
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -140,8 +56,8 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
140
56
|
// Initialize on mount
|
|
141
57
|
useEffect(function () {
|
|
142
58
|
var init = /*#__PURE__*/function () {
|
|
143
|
-
var
|
|
144
|
-
var config, _error, _t;
|
|
59
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
60
|
+
var _config$paused, config, userWantsPaused, _error, _t;
|
|
145
61
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
146
62
|
while (1) switch (_context.prev = _context.next) {
|
|
147
63
|
case 0:
|
|
@@ -152,7 +68,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
152
68
|
return _context.abrupt("return");
|
|
153
69
|
case 1:
|
|
154
70
|
_context.prev = 1;
|
|
155
|
-
config = resolveConfig(props);
|
|
71
|
+
config = resolveConfig(props, assetsPath);
|
|
156
72
|
mountRef.current = new RzpGlassMount(divRef.current, {
|
|
157
73
|
videoSrc: videoSrc,
|
|
158
74
|
imageSrc: imageSrc,
|
|
@@ -163,8 +79,23 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
163
79
|
_context.next = 2;
|
|
164
80
|
return mountRef.current.loadAssets();
|
|
165
81
|
case 2:
|
|
166
|
-
|
|
167
|
-
|
|
82
|
+
// Pause the video during the CSS fade-in so one-shot animations
|
|
83
|
+
// don't burn frames while the component is still transparent.
|
|
84
|
+
// Only do this when the consumer hasn't explicitly set paused: true.
|
|
85
|
+
userWantsPaused = (_config$paused = config.paused) !== null && _config$paused !== void 0 ? _config$paused : false;
|
|
86
|
+
if (!userWantsPaused) {
|
|
87
|
+
mountRef.current.pause();
|
|
88
|
+
}
|
|
89
|
+
setIsInitialized(true); // kicks off the CSS opacity 0 → 1 transition
|
|
90
|
+
|
|
91
|
+
// After the fade-in completes, resume video and notify the consumer.
|
|
92
|
+
setTimeout(function () {
|
|
93
|
+
if (!mountRef.current) return;
|
|
94
|
+
if (!userWantsPaused) {
|
|
95
|
+
mountRef.current.play();
|
|
96
|
+
}
|
|
97
|
+
onLoad === null || onLoad === void 0 || onLoad();
|
|
98
|
+
}, FADE_IN_MS);
|
|
168
99
|
_context.next = 4;
|
|
169
100
|
break;
|
|
170
101
|
case 3:
|
|
@@ -180,7 +111,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
180
111
|
}, _callee, null, [[1, 3]]);
|
|
181
112
|
}));
|
|
182
113
|
return function init() {
|
|
183
|
-
return
|
|
114
|
+
return _ref3.apply(this, arguments);
|
|
184
115
|
};
|
|
185
116
|
}();
|
|
186
117
|
void init();
|
|
@@ -190,12 +121,12 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
190
121
|
mountRef.current = null;
|
|
191
122
|
setIsInitialized(false);
|
|
192
123
|
};
|
|
193
|
-
}, [
|
|
124
|
+
}, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);
|
|
194
125
|
|
|
195
126
|
// Update uniforms when config props change
|
|
196
127
|
useEffect(function () {
|
|
197
128
|
if (isInitialized && mountRef.current) {
|
|
198
|
-
var config = resolveConfig(props);
|
|
129
|
+
var config = resolveConfig(props, assetsPath);
|
|
199
130
|
mountRef.current.setUniforms(config);
|
|
200
131
|
}
|
|
201
132
|
}, [isInitialized, configProps.preset,
|
|
@@ -226,7 +157,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
226
157
|
mountRef.current.updateGradientMapTexture(gradientMapCanvas);
|
|
227
158
|
}
|
|
228
159
|
}, [isInitialized, gradientMapCanvas]);
|
|
229
|
-
var mergedRef = useMergeRefs(
|
|
160
|
+
var mergedRef = useMergeRefs(forwardedRef, divRef);
|
|
230
161
|
|
|
231
162
|
// Convert width/height to string if number
|
|
232
163
|
var widthStyle = typeof width === 'number' ? "".concat(width, "px") : width;
|
|
@@ -250,7 +181,7 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
250
181
|
position: 'relative',
|
|
251
182
|
overflow: 'hidden',
|
|
252
183
|
backgroundColor: 'transparent',
|
|
253
|
-
transition:
|
|
184
|
+
transition: "".concat(FADE_IN_MS, "ms opacity")
|
|
254
185
|
}, isInitialized ? {
|
|
255
186
|
opacity: 1
|
|
256
187
|
} : {
|
|
@@ -259,5 +190,5 @@ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
|
|
|
259
190
|
});
|
|
260
191
|
});
|
|
261
192
|
|
|
262
|
-
export { RzpGlass
|
|
193
|
+
export { RzpGlass };
|
|
263
194
|
//# 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","concat","imageSrc","gradientMapSrc","gradientMap2Src","centerGradientMapSrc","useMergeRefs","refs","useCallback","value","forEach","ref","current","extractConfig","props","_width","width","_height","height","_className","className","_style","style","_onLoad","onLoad","_onError","onError","_preset","preset","_cdnPath","_gradientMapSrc","_gradientMap2Src","_gradientMapCanvas","gradientMapCanvas","_imageSrc","config","_objectWithoutProperties","_excluded","Object","fromEntries","entries","filter","_ref","_ref2","_slicedToArray","v","undefined","ASSET_KEYS","Set","getPresetDefinition","PRESETS","_objectSpread","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","_regeneratorRuntime","mark","_callee","_error","_t","wrap","_context","prev","next","abrupt","RzpGlassMount","loadAssets","Error","String","stop","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","_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":";;;;;;;;;;;;;;;AAsCA,IAAMA,gBAAgB,GACpB,kGAAkG,CAAA;AAEpG,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAAe,EAAA;EAAA,OAAgC;AACvEC,IAAAA,QAAQ,EAAAC,EAAAA,CAAAA,MAAA,CAAKF,OAAO,EAAuB,uBAAA,CAAA;AAC3CG,IAAAA,QAAQ,EAAAD,EAAAA,CAAAA,MAAA,CAAKF,OAAO,EAAmB,mBAAA,CAAA;AACvCI,IAAAA,cAAc,EAAAF,EAAAA,CAAAA,MAAA,CAAKF,OAAO,EAAkC,kCAAA,CAAA;AAC5DK,IAAAA,eAAe,EAAAH,EAAAA,CAAAA,MAAA,CAAKF,OAAO,EAAiC,iCAAA,CAAA;IAC5DM,oBAAoB,EAAA,EAAA,CAAAJ,MAAA,CAAKF,OAAO,EAAA,mCAAA,CAAA;GACjC,CAAA;AAAA,CAAC,CAAA;;AAEF;AACA;AACA;AACA,SAASO,YAAYA,CAAIC,IAAkC,EAAwB;AACjF,EAAA,OAAOC,WAAW,CAChB,UAACC,KAAQ,EAAK;AACZF,IAAAA,IAAI,CAACG,OAAO,CAAC,UAACC,GAAG,EAAK;AACpB,MAAA,IAAI,OAAOA,GAAG,KAAK,UAAU,EAAE;QAC7BA,GAAG,CAACF,KAAK,CAAC,CAAA;AACZ,OAAC,MAAM,IAAIE,GAAG,IAAI,IAAI,EAAE;QACrBA,GAAG,CAAsCC,OAAO,GAAGH,KAAK,CAAA;AAC3D,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAACF,IAAI,CACP,CAAC,CAAA;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA,SAASM,aAAaA,CAACC,KAAoB,EAA2B;AACpE,EAAA,IACSC,MAAM,GAaXD,KAAK,CAbPE,KAAK;IACGC,OAAO,GAYbH,KAAK,CAZPI,MAAM;IACKC,UAAU,GAWnBL,KAAK,CAXPM,SAAS;IACFC,MAAM,GAUXP,KAAK,CAVPQ,KAAK;IACGC,OAAO,GASbT,KAAK,CATPU,MAAM;IACGC,QAAQ,GAQfX,KAAK,CARPY,OAAO;IACCC,OAAO,GAObb,KAAK,CAPPc,MAAM;IACGC,QAAQ,GAMff,KAAK,CANPf,OAAO;IACS+B,eAAe,GAK7BhB,KAAK,CALPX,cAAc;IACG4B,gBAAgB,GAI/BjB,KAAK,CAJPV,eAAe;IACI4B,kBAAkB,GAGnClB,KAAK,CAHPmB,iBAAiB;IACPC,SAAS,GAEjBpB,KAAK,CAFPZ,QAAQ;AACLiC,IAAAA,MAAM,GAAAC,wBAAA,CACPtB,KAAK,EAAAuB,SAAA,CAAA,CAAA;;AAET;EACA,OAAOC,MAAM,CAACC,WAAW;AACvB;EACAD,MAAM,CAACE,OAAO,CAACL,MAAM,CAAC,CAACM,MAAM,CAAC,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAIG,MAAAA,CAAC,GAAAF,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAME,CAAC,KAAKC,SAAS,CAAA;AAAA,GAAA,CAC1D,CAAC,CAAA;AACH,CAAA;AAEA,IAAMC,UAAU,GAAG,IAAIC,GAAG,CAAS,CACjC,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,CACvB,CAAC,CAAA;;AAEF;AACA,SAASC,mBAAmBA,CAACrB,MAAkC,EAA4B;AACzF,EAAA,IAAIA,MAAM,IAAIA,MAAM,IAAIsB,OAAO,EAAE,OAAAC,aAAA,CAAYD,EAAAA,EAAAA,OAAO,CAACtB,MAAM,CAAC,CAAA,CAAA;AAC5D,EAAA,OAAO,EAAE,CAAA;AACX,CAAA;AAEA,SAASwB,eAAeA,CAACxB,MAAkC,EAA2B;AACpF,EAAA,IAAMyB,GAAG,GAAGJ,mBAAmB,CAACrB,MAAM,CAA4B,CAAA;AAClE,EAAA,OAAOU,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACa,GAAG,CAAC,CAACZ,MAAM,CAAC,UAAAa,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAAX,cAAA,CAAAU,KAAA,EAAA,CAAA,CAAA;AAAEE,MAAAA,CAAC,GAAAD,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAM,CAACR,UAAU,CAACU,GAAG,CAACD,CAAC,CAAC,CAAA;AAAA,GAAA,CACxD,CAAC,CAAA;AACH,CAAA;AAEA,SAASE,eAAeA,CAAC9B,MAAkC,EAA2B;AACpF,EAAA,IAAMyB,GAAG,GAAGJ,mBAAmB,CAACrB,MAAM,CAA4B,CAAA;AAClE,EAAA,OAAOU,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACa,GAAG,CAAC,CAACZ,MAAM,CAAC,UAAAkB,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAAhB,cAAA,CAAAe,KAAA,EAAA,CAAA,CAAA;AAAEH,MAAAA,CAAC,GAAAI,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAMb,UAAU,CAACU,GAAG,CAACD,CAAC,CAAC,CAAA;AAAA,GAAA,CACvD,CAAC,CAAA;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA,SAASK,aAAaA,CAAC/C,KAAoB,EAA2B;AACpE,EAAA,OAAAqC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACKC,eAAe,CAACtC,KAAK,CAACc,MAAM,CAAC,CAAA,EAC7Bf,aAAa,CAACC,KAAK,CAAC,CAAA,CAAA;AAE3B,CAAA;AAEO,IAAMgD,QAAQ,gBAAGC,UAAU,CAAgC,SAASD,QAAQA,CACjFhD,KAAK,EACLkD,YAAY,EACZ;EAAA,IAAAC,qBAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,qBAAA,CAAA;AACA,EAAA,IAAAC,YAAA,GAaIxD,KAAK,CAZPE,KAAK;AAALA,IAAAA,KAAK,GAAAsD,YAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,YAAA;IAAAC,aAAA,GAYZzD,KAAK,CAXPI,MAAM;AAANA,IAAAA,MAAM,GAAAqD,aAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,aAAA;IACfnD,SAAS,GAUPN,KAAK,CAVPM,SAAS;IACTE,KAAK,GASHR,KAAK,CATPQ,KAAK;IACLE,MAAM,GAQJV,KAAK,CARPU,MAAM;IACNE,OAAO,GAOLZ,KAAK,CAPPY,OAAO;IACE8C,WAAW,GAMlB1D,KAAK,CANPf,OAAO;IACPkC,iBAAiB,GAKfnB,KAAK,CALPmB,iBAAiB;IACDwC,kBAAkB,GAIhC3D,KAAK,CAJPX,cAAc;IACGuE,mBAAmB,GAGlC5D,KAAK,CAHPV,eAAe;IACLuE,YAAY,GAEpB7D,KAAK,CAFPZ,QAAQ;AACL0E,IAAAA,WAAW,GAAAxC,wBAAA,CACZtB,KAAK,EAAA+D,UAAA,CAAA,CAAA;;AAET;EACA,IAAM9E,OAAe,GAAGyE,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,WAAW,GAAI3E,gBAAgB,CAAA;AACvD,EAAA,IAAMiF,aAAa,GAAGhF,gBAAgB,CAACC,OAAO,CAAC,CAAA;;AAE/C;AACA,EAAA,IAAMgF,YAAY,GAAGrB,eAAe,CAAC5C,KAAK,CAACc,MAAM,CAAC,CAAA;EAClD,IAAM1B,QAAQ,GAAGyE,YAAY,KAAZA,IAAAA,IAAAA,YAAY,cAAZA,YAAY,GAAII,YAAY,CAAC7E,QAAQ,CAAA;AACtD,EAAA,IAAMF,QAAQ,GAAGE,QAAQ,GAAG4C,SAAS,GAAA,CAAAmB,qBAAA,GAAGc,YAAY,CAAC/E,QAAQ,cAAAiE,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAIa,aAAa,CAAC9E,QAAQ,CAAA;EACvF,IAAMG,cAAc,IAAA+D,KAAA,GAClBO,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,cAAlBA,kBAAkB,GAAIM,YAAY,CAAC5E,cAAc,cAAA+D,KAAA,KAAA,KAAA,CAAA,GAAAA,KAAA,GAAIY,aAAa,CAAC3E,cAAc,CAAA;EACnF,IAAMC,eAAe,IAAA+D,KAAA,GACnBO,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,cAAnBA,mBAAmB,GAAIK,YAAY,CAAC3E,eAAe,cAAA+D,KAAA,KAAA,KAAA,CAAA,GAAAA,KAAA,GAAIW,aAAa,CAAC1E,eAAe,CAAA;AACtF,EAAA,IAAMC,oBAAoB,GAAA,CAAA+D,qBAAA,GACxBW,YAAY,CAAC1E,oBAAoB,MAAA+D,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAIU,aAAa,CAACzE,oBAAoB,CAAA;AAEzE,EAAA,IAAA2E,SAAA,GAA0CC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAtC,cAAA,CAAAoC,SAAA,EAAA,CAAA,CAAA;AAAlDG,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAAG,UAAA,GAA0BJ,QAAQ,CAAe,IAAI,CAAC;IAAAK,UAAA,GAAA1C,cAAA,CAAAyC,UAAA,EAAA,CAAA,CAAA;AAA/CE,IAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACtB,EAAA,IAAMG,MAAM,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;AAC3C,EAAA,IAAMC,QAAQ,GAAGD,MAAM,CAAuB,IAAI,CAAC,CAAA;;AAEnD;AACAE,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAMC,IAAI,gBAAA,YAAA;MAAA,IAAAC,KAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAA,GAAA;AAAA,QAAA,IAAA/D,MAAA,EAAAgE,MAAA,EAAAC,EAAA,CAAA;AAAA,QAAA,OAAAJ,mBAAA,CAAAK,IAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EACP,CAACf,MAAM,CAAC7E,OAAO,IAAI+E,QAAQ,CAAC/E,OAAO,CAAA,EAAA;AAAA0F,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cAAA,OAAAF,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAH,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAG/BpE,cAAAA,MAAM,GAAG0B,aAAa,CAAC/C,KAAK,CAAC,CAAA;cAEnC6E,QAAQ,CAAC/E,OAAO,GAAG,IAAI8F,aAAa,CAClCjB,MAAM,CAAC7E,OAAO,EACd;AACEZ,gBAAAA,QAAQ,EAARA,QAAQ;AACRE,gBAAAA,QAAQ,EAARA,QAAQ;AACRC,gBAAAA,cAAc,EAAdA,cAAc;AACdC,gBAAAA,eAAe,EAAfA,eAAe;AACfC,gBAAAA,oBAAoB,EAApBA,oBAAAA;eACD,EACD8B,MACF,CAAC,CAAA;AAACmE,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAEIb,QAAQ,CAAC/E,OAAO,CAAC+F,UAAU,EAAE,CAAA;AAAA,YAAA,KAAA,CAAA;cACnCvB,gBAAgB,CAAC,IAAI,CAAC,CAAA;AACtB5D,cAAAA,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,EAAI,CAAA;AAAC8E,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,CAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAH,cAAAA,EAAA,GAAAE,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAELf,cAAAA,MAAK,GAAGa,EAAA,YAAeQ,KAAK,GAAAR,EAAA,GAAS,IAAIQ,KAAK,CAACC,MAAM,CAAAT,EAAI,CAAC,CAAC,CAAA;cACjEZ,QAAQ,CAACD,MAAK,CAAC,CAAA;AACf7D,cAAAA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAG6D,MAAK,CAAC,CAAA;AAAC,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAe,QAAA,CAAAQ,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAZ,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAEpB,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,SA1BKL,IAAIA,GAAA;AAAA,QAAA,OAAAC,KAAA,CAAAiB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;KA0BT,EAAA,CAAA;IAED,KAAKnB,IAAI,EAAE,CAAA;AAEX,IAAA,OAAO,YAAM;AAAA,MAAA,IAAAoB,iBAAA,CAAA;AACX,MAAA,CAAAA,iBAAA,GAAAtB,QAAQ,CAAC/E,OAAO,MAAA,IAAA,IAAAqG,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAkBC,OAAO,EAAE,CAAA;MAC3BvB,QAAQ,CAAC/E,OAAO,GAAG,IAAI,CAAA;MACvBwE,gBAAgB,CAAC,KAAK,CAAC,CAAA;KACxB,CAAA;AACH,GAAC,EAAE,CACDrF,OAAO,EACPC,QAAQ,EACRE,QAAQ,EACRC,cAAc,EACdC,eAAe,EACfC,oBAAoB,EACpBuE,WAAW,CAAChD,MAAM,CACnB,CAAC,CAAA;;AAEF;AACAgE,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIT,aAAa,IAAIQ,QAAQ,CAAC/E,OAAO,EAAE;AACrC,MAAA,IAAMuB,MAAM,GAAG0B,aAAa,CAAC/C,KAAK,CAAC,CAAA;AACnC6E,MAAAA,QAAQ,CAAC/E,OAAO,CAACuG,WAAW,CAAChF,MAAM,CAAC,CAAA;AACtC,KAAA;AACF,GAAC,EACCgD,CAAAA,aAAa,EACbP,WAAW,CAAChD,MAAM;AAClB;AACAgD,EAAAA,WAAW,CAACwC,QAAQ,EACpBxC,WAAW,CAACyC,QAAQ,EACpBzC,WAAW,CAAC0C,WAAW,EACvB1C,WAAW,CAAC2C,eAAe,EAC3B3C,WAAW,CAAC4C,gBAAgB,EAC5B5C,WAAW,CAAC6C,UAAU,EACtB7C,WAAW,CAAC8C,UAAU,EACtB9C,WAAW,CAAC+C,QAAQ,EACpB/C,WAAW,CAACgD,OAAO,EACnBhD,WAAW,CAACiD,iBAAiB;AAC7B;AACAjD,EAAAA,WAAW,CAACkD,WAAW,EACvBlD,WAAW,CAACmD,SAAS,EACrBnD,WAAW,CAACoD,aAAa,EACzBpD,WAAW,CAACqD,aAAa;AACzB;AACArD,EAAAA,WAAW,CAACsD,mBAAmB,EAC/BtD,WAAW,CAACuD,kBAAkB;AAC9B;AACAvD,EAAAA,WAAW,CAACwD,YAAY,EACxBxD,WAAW,CAACyD,YAAY,EACxBzD,WAAW,CAAC0D,cAAc,EAC1B1D,WAAW,CAAC2D,OAAO,EACnB3D,WAAW,CAAC4D,UAAU;AACtB;AACA5D,EAAAA,WAAW,CAAC6D,IAAI,EAChB7D,WAAW,CAAC8D,IAAI,EAChB9D,WAAW,CAAC+D,IAAI,CAAA,CAAA1I,MAAA,CAAA2I,kBAAA,CAAAvE,CAAAA,qBAAA,GAEZO,WAAW,CAACiE,WAAW,MAAAxE,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA;AAC3C;AACAO,EAAAA,WAAW,CAACkE,kBAAkB,EAC9BlE,WAAW,CAACmE,cAAc,EAC1BnE,WAAW,CAACoE,WAAW,EACvBpE,WAAW,CAACqE,gBAAgB;AAC5B;AACArE,EAAAA,WAAW,CAACsE,cAAc,EAC1BtE,WAAW,CAACuE,eAAe;AAC3B;AACAvE,EAAAA,WAAW,CAACwE,MAAM,EAClBxE,WAAW,CAACyE,SAAS,EACrBzE,WAAW,CAAC0E,OAAO,EACnB1E,WAAW,CAAC2E,yBAAyB;AACrC;AACA3E,EAAAA,WAAW,CAAC4E,gBAAgB,EAC5B5E,WAAW,CAAC6E,qBAAqB,EACjC7E,WAAW,CAAC8E,mBAAmB,EAC/B9E,WAAW,CAAC+E,0BAA0B,EACtC/E,WAAW,CAACgF,wBAAwB;AACpC;AACAhF,EAAAA,WAAW,CAACiF,gBAAgB,EAC5BjF,WAAW,CAACkF,wBAAwB,EACrC,CAAC,CAAA;;AAEF;AACAlE,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIT,aAAa,IAAIQ,QAAQ,CAAC/E,OAAO,IAAIqB,iBAAiB,EAAE;AAC1D0D,MAAAA,QAAQ,CAAC/E,OAAO,CAACmJ,wBAAwB,CAAC9H,iBAAiB,CAAC,CAAA;AAC9D,KAAA;AACF,GAAC,EAAE,CAACkD,aAAa,EAAElD,iBAAiB,CAAC,CAAC,CAAA;EAEtC,IAAM+H,SAAS,GAAG1J,YAAY,CAAC,CAACmF,MAAM,EAAEzB,YAAY,CAAC,CAAC,CAAA;;AAEtD;EACA,IAAMiG,UAAU,GAAG,OAAOjJ,KAAK,KAAK,QAAQ,GAAA,EAAA,CAAAf,MAAA,CAAMe,KAAK,EAAA,IAAA,CAAA,GAAOA,KAAK,CAAA;EACnE,IAAMkJ,WAAW,GAAG,OAAOhJ,MAAM,KAAK,QAAQ,GAAA,EAAA,CAAAjB,MAAA,CAAMiB,MAAM,EAAA,IAAA,CAAA,GAAOA,MAAM,CAAA;AAEvE,EAAA,IAAIqE,KAAK,EAAE;AACT,IAAA,oBACE4E,GAAA,CAAA,KAAA,EAAA;AACExJ,MAAAA,GAAG,EAAEqJ,SAAU;AACf5I,MAAAA,SAAS,EAAEA,SAAU;AACrBE,MAAAA,KAAK,EAAA6B,aAAA,CAAA;AACHnC,QAAAA,KAAK,EAAEiJ,UAAU;AACjB/I,QAAAA,MAAM,EAAEgJ,WAAAA;AAAW,OAAA,EAChB5I,KAAK,CAAA;AACR,KACH,CAAC,CAAA;AAEN,GAAA;AAEA,EAAA,oBACE6I,GAAA,CAAA,KAAA,EAAA;AACExJ,IAAAA,GAAG,EAAEqJ,SAAU;AACf5I,IAAAA,SAAS,EAAEA,SAAU;IACrBE,KAAK,EAAA6B,aAAA,CAAAA,aAAA,CAAA;AACHnC,MAAAA,KAAK,EAAEiJ,UAAU;AACjB/I,MAAAA,MAAM,EAAEgJ,WAAW;AACnBE,MAAAA,QAAQ,EAAE,UAAU;AACpBC,MAAAA,QAAQ,EAAE,QAAQ;AAClBC,MAAAA,eAAe,EAAE,aAAa;AAC9BC,MAAAA,UAAU,EAAE,YAAA;AAAY,KAAA,EACpBpF,aAAa,GAAG;AAAEqF,MAAAA,OAAO,EAAE,CAAA;AAAE,KAAC,GAAG;AAAEA,MAAAA,OAAO,EAAE,CAAA;AAAE,KAAC,GAChDlJ,KAAK,CAAA;AACR,GACH,CAAC,CAAA;AAEN,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 */\nimport { forwardRef, useEffect, useRef, useState } from 'react';\nimport { RzpGlassMount } from './RzpGlassMount';\nimport type { RzpGlassProps } from './types';\nimport { DEFAULT_CDN_PATH, getDefaultAssets, getPresetAssets, resolveConfig } from './utils';\nimport { useMergeRefs } from '~utils/useMergeRefs';\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 RzpGlass = forwardRef<HTMLDivElement, RzpGlassProps>(function RzpGlass(props, forwardedRef) {\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 }, [assetsPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);\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(forwardedRef, divRef);\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: `${FADE_IN_MS}ms opacity`,\n ...(isInitialized ? { opacity: 1 } : { opacity: 0 }),\n ...style,\n }}\n />\n );\n});\n\nexport { RzpGlass };\n"],"names":["FADE_IN_MS","RzpGlass","forwardRef","props","forwardedRef","_presetAssets$videoSr","_ref","_ref2","_presetAssets$centerG","_configProps$edgeFeat","_props$width","width","_props$height","height","className","style","onLoad","onError","assetsPathProp","assetsPath","gradientMapCanvas","gradientMapSrcProp","gradientMapSrc","gradientMap2SrcProp","gradientMap2Src","imageSrcProp","imageSrc","configProps","_objectWithoutProperties","_excluded","DEFAULT_CDN_PATH","defaultAssets","getDefaultAssets","presetAssets","getPresetAssets","preset","videoSrc","undefined","centerGradientMapSrc","_useState","useState","_useState2","_slicedToArray","isInitialized","setIsInitialized","_useState3","_useState4","error","setError","divRef","useRef","mountRef","useEffect","init","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_config$paused","config","userWantsPaused","_error","_t","wrap","_context","prev","next","current","abrupt","resolveConfig","RzpGlassMount","loadAssets","paused","pause","setTimeout","play","Error","String","stop","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","useMergeRefs","widthStyle","heightStyle","_jsx","ref","_objectSpread","position","overflow","backgroundColor","transition","opacity"],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ var REF_RESOLUTION = {
|
|
|
22
22
|
var DEFAULT_MAX_PIXEL_COUNT = 1920 * 1080 * 4;
|
|
23
23
|
|
|
24
24
|
// Default styles for the shader container
|
|
25
|
-
var defaultStyle = "@layer rzp-glass {\n :where([data-rzp-glass]) {\n isolation: isolate;\n position: relative;\n overflow: hidden;\n\n & canvas {\n contain: strict;\n display: block;\n position: absolute;\n z-index: -1;\n border-radius: inherit;\n }\n }\n}";
|
|
25
|
+
var defaultStyle = "@layer rzp-glass {\n :where([data-rzp-glass]) {\n isolation: isolate;\n position: relative;\n overflow: hidden;\n\n & canvas {\n contain: strict;\n display: block;\n position: absolute;\n z-index: -1;\n border-radius: inherit;\n pointer-events: none;\n }\n }\n}";
|
|
26
26
|
|
|
27
27
|
/** Map of config keys to uniform names */
|
|
28
28
|
var CONFIG_TO_UNIFORM = {
|
|
@@ -376,11 +376,6 @@ var RzpGlassMount = /*#__PURE__*/function () {
|
|
|
376
376
|
powerPreference: 'high-performance'
|
|
377
377
|
});
|
|
378
378
|
this.gl = _gl;
|
|
379
|
-
this.performanceController = new WebGLPerformanceController({
|
|
380
|
-
gl: this.gl,
|
|
381
|
-
onLevelChange: this.handlePerformanceLevelChange
|
|
382
|
-
});
|
|
383
|
-
this.stopIfPotato();
|
|
384
379
|
|
|
385
380
|
// Flip Y axis when uploading textures (video/images have Y=0 at top, WebGL has Y=0 at bottom)
|
|
386
381
|
_gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, true);
|
|
@@ -394,6 +389,13 @@ var RzpGlassMount = /*#__PURE__*/function () {
|
|
|
394
389
|
|
|
395
390
|
// Initialize program
|
|
396
391
|
this.initProgram();
|
|
392
|
+
|
|
393
|
+
// Initialize performance controller after the initProgram so we don't get a crash when the program is not initialized yet.
|
|
394
|
+
this.performanceController = new WebGLPerformanceController({
|
|
395
|
+
gl: this.gl,
|
|
396
|
+
onLevelChange: this.handlePerformanceLevelChange
|
|
397
|
+
});
|
|
398
|
+
this.stopIfPotato();
|
|
397
399
|
this.setupPositionAttribute();
|
|
398
400
|
this.setupUniformLocations();
|
|
399
401
|
this.setupResizeObserver();
|