@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.
- package/assets/spark/bottom-frame.jpg +0 -0
- package/assets/spark/colorama-center-gradient-map.jpg +0 -0
- package/assets/spark/colorama-gradient-map-blue.jpg +0 -0
- package/assets/spark/colorama-gradient-map-green.jpg +0 -0
- package/assets/spark/ray-pulse.mp4 +0 -0
- package/assets/spark/spark-base-video.mp4 +0 -0
- package/assets/spark/success-animation-circle.mp4 +0 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js +9 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js +18 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js +69 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js +7 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js +7 -0
- package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +13 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js +28 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/presets.js +4 -0
- package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js +920 -0
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/utils.js +4 -0
- package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js +7 -0
- package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/native/components/index.js +2 -0
- package/build/lib/native/components/index.js.map +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/FluidGradient.js +92 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js +2 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +18 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js +455 -0
- package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +263 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js +24 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js +151 -0
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js +77 -0
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js +200 -0
- package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/web/development/components/Spark/index.js +3 -0
- package/build/lib/web/development/components/Spark/index.js.map +1 -0
- package/build/lib/web/development/components/index.js +3 -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/omit.js +2 -2
- 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/FluidGradient.js +92 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js +2 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js +18 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js +455 -0
- package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +263 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js +24 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js +151 -0
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js +77 -0
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js +200 -0
- package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/web/production/components/Spark/index.js +3 -0
- package/build/lib/web/production/components/Spark/index.js.map +1 -0
- package/build/lib/web/production/components/index.js +3 -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 +297 -1
- package/build/types/components/index.native.d.ts +297 -1
- 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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"}
|