@razorpay/blade 12.92.1 → 12.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/assets/spark/bottom-frame.jpg +0 -0
  2. package/assets/spark/colorama-center-gradient-map.jpg +0 -0
  3. package/assets/spark/colorama-gradient-map-blue.jpg +0 -0
  4. package/assets/spark/colorama-gradient-map-green.jpg +0 -0
  5. package/assets/spark/ray-pulse.mp4 +0 -0
  6. package/assets/spark/spark-base-video.mp4 +0 -0
  7. package/assets/spark/success-animation-circle.mp4 +0 -0
  8. package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js +9 -0
  9. package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
  10. package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js +18 -0
  11. package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
  12. package/build/lib/native/components/Spark/RazorSenseGradient/shader.js +69 -0
  13. package/build/lib/native/components/Spark/RazorSenseGradient/shader.js.map +1 -0
  14. package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js +7 -0
  15. package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
  16. package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js +7 -0
  17. package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
  18. package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +13 -0
  19. package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
  20. package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js +28 -0
  21. package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
  22. package/build/lib/native/components/Spark/RzpGlass/presets.js +4 -0
  23. package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -0
  24. package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js +920 -0
  25. package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
  26. package/build/lib/native/components/Spark/RzpGlass/utils.js +4 -0
  27. package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -0
  28. package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js +7 -0
  29. package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
  30. package/build/lib/native/components/index.js +2 -0
  31. package/build/lib/native/components/index.js.map +1 -1
  32. package/build/lib/web/development/_virtual/flatten.js +1 -1
  33. package/build/lib/web/development/_virtual/flatten3.js +1 -1
  34. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
  35. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
  36. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
  37. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
  38. package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js +2 -0
  39. package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js.map +1 -0
  40. package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +18 -0
  41. package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -0
  42. package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
  43. package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
  44. package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js +455 -0
  45. package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
  46. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +263 -0
  47. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
  48. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
  49. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
  50. package/build/lib/web/development/components/Spark/RzpGlass/index.js +24 -0
  51. package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -0
  52. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +151 -0
  53. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -0
  54. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
  55. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
  56. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +77 -0
  57. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -0
  58. package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js +200 -0
  59. package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
  60. package/build/lib/web/development/components/Spark/index.js +3 -0
  61. package/build/lib/web/development/components/Spark/index.js.map +1 -0
  62. package/build/lib/web/development/components/index.js +3 -0
  63. package/build/lib/web/development/components/index.js.map +1 -1
  64. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  65. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  66. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  67. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  68. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  69. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  70. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
  71. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
  72. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
  73. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
  74. package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js +2 -0
  75. package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js.map +1 -0
  76. package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js +18 -0
  77. package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -0
  78. package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
  79. package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
  80. package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js +455 -0
  81. package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
  82. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +263 -0
  83. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
  84. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
  85. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
  86. package/build/lib/web/production/components/Spark/RzpGlass/index.js +24 -0
  87. package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -0
  88. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +151 -0
  89. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -0
  90. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
  91. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
  92. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +77 -0
  93. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -0
  94. package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js +200 -0
  95. package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
  96. package/build/lib/web/production/components/Spark/index.js +3 -0
  97. package/build/lib/web/production/components/Spark/index.js.map +1 -0
  98. package/build/lib/web/production/components/index.js +3 -0
  99. package/build/lib/web/production/components/index.js.map +1 -1
  100. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  101. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  102. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  103. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  104. package/build/types/components/index.d.ts +297 -1
  105. package/build/types/components/index.native.d.ts +297 -1
  106. package/package.json +2 -1
@@ -0,0 +1,263 @@
1
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
7
+ import { useCallback, forwardRef, useState, useRef, useEffect } from 'react';
8
+ import { RzpGlassMount } from './RzpGlassMount.js';
9
+ import { PRESETS } from './presets.js';
10
+ import { jsx } from 'react/jsx-runtime';
11
+
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"];
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
+ 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
+ }
101
+ var RzpGlass = /*#__PURE__*/forwardRef(function RzpGlass(props, forwardedRef) {
102
+ var _presetAssets$videoSr, _ref7, _ref8, _presetAssets$centerG, _configProps$edgeFeat;
103
+ var _props$width = props.width,
104
+ width = _props$width === void 0 ? '100%' : _props$width,
105
+ _props$height = props.height,
106
+ height = _props$height === void 0 ? '100%' : _props$height,
107
+ className = props.className,
108
+ style = props.style,
109
+ onLoad = props.onLoad,
110
+ onError = props.onError,
111
+ cdnPathProp = props.cdnPath,
112
+ gradientMapCanvas = props.gradientMapCanvas,
113
+ gradientMapSrcProp = props.gradientMapSrc,
114
+ gradientMap2SrcProp = props.gradientMap2Src,
115
+ imageSrcProp = props.imageSrc,
116
+ configProps = _objectWithoutProperties(props, _excluded2);
117
+
118
+ // Get default assets based on cdnPath
119
+ var cdnPath = cdnPathProp !== null && cdnPathProp !== void 0 ? cdnPathProp : DEFAULT_CDN_PATH;
120
+ var defaultAssets = getDefaultAssets(cdnPath);
121
+
122
+ // Resolve assets: prop overrides preset, preset overrides default
123
+ var presetAssets = getPresetAssets(props.preset);
124
+ var imageSrc = imageSrcProp !== null && imageSrcProp !== void 0 ? imageSrcProp : presetAssets.imageSrc;
125
+ 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;
128
+ var centerGradientMapSrc = (_presetAssets$centerG = presetAssets.centerGradientMapSrc) !== null && _presetAssets$centerG !== void 0 ? _presetAssets$centerG : defaultAssets.centerGradientMapSrc;
129
+ var _useState = useState(false),
130
+ _useState2 = _slicedToArray(_useState, 2),
131
+ isInitialized = _useState2[0],
132
+ setIsInitialized = _useState2[1];
133
+ var _useState3 = useState(null),
134
+ _useState4 = _slicedToArray(_useState3, 2),
135
+ error = _useState4[0],
136
+ setError = _useState4[1];
137
+ var divRef = useRef(null);
138
+ var mountRef = useRef(null);
139
+
140
+ // Initialize on mount
141
+ useEffect(function () {
142
+ var init = /*#__PURE__*/function () {
143
+ var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
144
+ var config, _error, _t;
145
+ return _regeneratorRuntime.wrap(function (_context) {
146
+ while (1) switch (_context.prev = _context.next) {
147
+ case 0:
148
+ if (!(!divRef.current || mountRef.current)) {
149
+ _context.next = 1;
150
+ break;
151
+ }
152
+ return _context.abrupt("return");
153
+ case 1:
154
+ _context.prev = 1;
155
+ config = resolveConfig(props);
156
+ mountRef.current = new RzpGlassMount(divRef.current, {
157
+ videoSrc: videoSrc,
158
+ imageSrc: imageSrc,
159
+ gradientMapSrc: gradientMapSrc,
160
+ gradientMap2Src: gradientMap2Src,
161
+ centerGradientMapSrc: centerGradientMapSrc
162
+ }, config);
163
+ _context.next = 2;
164
+ return mountRef.current.loadAssets();
165
+ case 2:
166
+ setIsInitialized(true);
167
+ onLoad === null || onLoad === void 0 || onLoad();
168
+ _context.next = 4;
169
+ break;
170
+ case 3:
171
+ _context.prev = 3;
172
+ _t = _context["catch"](1);
173
+ _error = _t instanceof Error ? _t : new Error(String(_t));
174
+ setError(_error);
175
+ onError === null || onError === void 0 || onError(_error);
176
+ case 4:
177
+ case "end":
178
+ return _context.stop();
179
+ }
180
+ }, _callee, null, [[1, 3]]);
181
+ }));
182
+ return function init() {
183
+ return _ref9.apply(this, arguments);
184
+ };
185
+ }();
186
+ void init();
187
+ return function () {
188
+ var _mountRef$current;
189
+ (_mountRef$current = mountRef.current) === null || _mountRef$current === void 0 || _mountRef$current.dispose();
190
+ mountRef.current = null;
191
+ setIsInitialized(false);
192
+ };
193
+ }, [cdnPath, videoSrc, imageSrc, gradientMapSrc, gradientMap2Src, centerGradientMapSrc, configProps.preset]);
194
+
195
+ // Update uniforms when config props change
196
+ useEffect(function () {
197
+ if (isInitialized && mountRef.current) {
198
+ var config = resolveConfig(props);
199
+ mountRef.current.setUniforms(config);
200
+ }
201
+ }, [isInitialized, configProps.preset,
202
+ // Colorama
203
+ configProps.inputMin, configProps.inputMax, configProps.modifyGamma, configProps.posterizeLevels, configProps.cycleRepetitions, configProps.phaseShift, configProps.cycleSpeed, configProps.wrapMode, configProps.reverse, configProps.blendWithOriginal,
204
+ // Displacement
205
+ configProps.numSegments, configProps.slitAngle, configProps.displacementX, configProps.displacementY,
206
+ // Center element
207
+ configProps.enableCenterElement, configProps.centerAnimDuration,
208
+ // Color correction
209
+ configProps.ccBlackPoint, configProps.ccWhitePoint, configProps.ccMidtoneGamma, configProps.ccGamma, configProps.ccContrast,
210
+ // Zoom & Pan
211
+ configProps.zoom, configProps.panX, configProps.panY].concat(_toConsumableArray((_configProps$edgeFeat = configProps.edgeFeather) !== null && _configProps$edgeFeat !== void 0 ? _configProps$edgeFeat : [0, 0, 0, 0]), [
212
+ // Effect toggles
213
+ configProps.enableDisplacement, configProps.enableColorama, configProps.enableBloom, configProps.enableLightSweep,
214
+ // Light
215
+ configProps.lightIntensity, configProps.lightStartFrame,
216
+ // Playback
217
+ configProps.paused, configProps.startTime, configProps.endTime, configProps.animateLightIndependently,
218
+ // Cycle animation
219
+ configProps.animateCycleReps, configProps.cycleRepetitionsStart, configProps.cycleRepetitionsEnd, configProps.cycleRepetitionsStartFrame, configProps.cycleRepetitionsDuration,
220
+ // Gradient map blend
221
+ configProps.gradientMapBlend, configProps.gradientMapBlendDuration]));
222
+
223
+ // Update gradient map texture when a canvas is provided
224
+ useEffect(function () {
225
+ if (isInitialized && mountRef.current && gradientMapCanvas) {
226
+ mountRef.current.updateGradientMapTexture(gradientMapCanvas);
227
+ }
228
+ }, [isInitialized, gradientMapCanvas]);
229
+ var mergedRef = useMergeRefs([divRef, forwardedRef]);
230
+
231
+ // Convert width/height to string if number
232
+ var widthStyle = typeof width === 'number' ? "".concat(width, "px") : width;
233
+ var heightStyle = typeof height === 'number' ? "".concat(height, "px") : height;
234
+ if (error) {
235
+ return /*#__PURE__*/jsx("div", {
236
+ ref: mergedRef,
237
+ className: className,
238
+ style: _objectSpread({
239
+ width: widthStyle,
240
+ height: heightStyle
241
+ }, style)
242
+ });
243
+ }
244
+ return /*#__PURE__*/jsx("div", {
245
+ ref: mergedRef,
246
+ className: className,
247
+ style: _objectSpread(_objectSpread({
248
+ width: widthStyle,
249
+ height: heightStyle,
250
+ position: 'relative',
251
+ overflow: 'hidden',
252
+ backgroundColor: 'transparent',
253
+ transition: '2s opacity'
254
+ }, isInitialized ? {
255
+ opacity: 1
256
+ } : {
257
+ opacity: 0
258
+ }), style)
259
+ });
260
+ });
261
+
262
+ export { RzpGlass, RzpGlass as default };
263
+ //# sourceMappingURL=RzpGlass.js.map
@@ -0,0 +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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"}