@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.
Files changed (71) hide show
  1. package/build/lib/native/components/Spark/RazorSenseGradient/shader.js +10 -3
  2. package/build/lib/native/components/Spark/RazorSenseGradient/shader.js.map +1 -1
  3. package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +5 -4
  4. package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  5. package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js +2 -1
  6. package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  7. package/build/lib/native/components/Spark/RzpGlass/presets.js +2 -2
  8. package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -1
  9. package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js +8 -5
  10. package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  11. package/build/lib/native/components/Spark/RzpGlass/utils.js +7 -2
  12. package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -1
  13. package/build/lib/native/components/index.js +1 -0
  14. package/build/lib/native/components/index.js.map +1 -1
  15. package/build/lib/web/development/_virtual/cloneDeep.js +1 -1
  16. package/build/lib/web/development/_virtual/cloneDeep3.js +1 -1
  17. package/build/lib/web/development/_virtual/flatten.js +1 -1
  18. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  19. package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +1 -1
  20. package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -1
  21. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +41 -110
  22. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  23. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +8 -6
  24. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  25. package/build/lib/web/development/components/Spark/RzpGlass/index.js +4 -0
  26. package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -1
  27. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +85 -79
  28. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -1
  29. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  30. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  31. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +147 -2
  32. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -1
  33. package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js +3 -2
  34. package/build/lib/web/development/components/TopNav/TabNav/TabNavItem.web.js.map +1 -1
  35. package/build/lib/web/development/components/index.js +1 -0
  36. package/build/lib/web/development/components/index.js.map +1 -1
  37. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  38. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  39. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  40. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  41. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  42. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  43. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  44. package/build/lib/web/development/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  45. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  46. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  47. package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js +1 -1
  48. package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -1
  49. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +41 -110
  50. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -1
  51. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +8 -6
  52. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -1
  53. package/build/lib/web/production/components/Spark/RzpGlass/index.js +4 -0
  54. package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -1
  55. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +85 -79
  56. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -1
  57. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +1 -1
  58. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -1
  59. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +147 -2
  60. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -1
  61. package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js +3 -2
  62. package/build/lib/web/production/components/TopNav/TabNav/TabNavItem.web.js.map +1 -1
  63. package/build/lib/web/production/components/index.js +1 -0
  64. package/build/lib/web/production/components/index.js.map +1 -1
  65. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  66. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  67. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  68. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  69. package/build/types/components/index.d.ts +43 -3
  70. package/build/types/components/index.native.d.ts +42 -3
  71. 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 { useCallback, forwardRef, useState, useRef, useEffect } from 'react';
7
+ import { forwardRef, useState, useRef, useEffect } from 'react';
8
8
  import { RzpGlassMount } from './RzpGlassMount.js';
9
- import { PRESETS } from './presets.js';
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", "preset", "cdnPath", "gradientMapSrc", "gradientMap2Src", "gradientMapCanvas", "imageSrc"],
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 DEFAULT_CDN_PATH = 'https://cdn.jsdelivr.net/gh/razorpay/blade@feat/expose-assets-folder/packages/blade/assets/spark';
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, _ref7, _ref8, _presetAssets$centerG, _configProps$edgeFeat;
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
- cdnPathProp = props.cdnPath,
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, _excluded2);
32
+ configProps = _objectWithoutProperties(props, _excluded);
117
33
 
118
- // Get default assets based on cdnPath
119
- var cdnPath = cdnPathProp !== null && cdnPathProp !== void 0 ? cdnPathProp : DEFAULT_CDN_PATH;
120
- var defaultAssets = getDefaultAssets(cdnPath);
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 = (_ref7 = gradientMapSrcProp !== null && gradientMapSrcProp !== void 0 ? gradientMapSrcProp : presetAssets.gradientMapSrc) !== null && _ref7 !== void 0 ? _ref7 : defaultAssets.gradientMapSrc;
127
- var gradientMap2Src = (_ref8 = gradientMap2SrcProp !== null && gradientMap2SrcProp !== void 0 ? gradientMap2SrcProp : presetAssets.gradientMap2Src) !== null && _ref8 !== void 0 ? _ref8 : defaultAssets.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 _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
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
- setIsInitialized(true);
167
- onLoad === null || onLoad === void 0 || onLoad();
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 _ref9.apply(this, arguments);
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
- }, [cdnPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);
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([divRef, forwardedRef]);
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: '2s opacity'
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, RzpGlass as default };
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":"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"}
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();