@razorpay/blade 12.92.0 → 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 (112) 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/Dropdown/FilterChipSelectInput.web.js +23 -15
  35. package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  36. package/build/lib/web/development/components/SideNav/SideNav.web.js +21 -21
  37. package/build/lib/web/development/components/SideNav/SideNav.web.js.map +1 -1
  38. package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +4 -4
  39. package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
  40. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
  41. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
  42. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
  43. package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
  44. package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js +2 -0
  45. package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js.map +1 -0
  46. package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +18 -0
  47. package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -0
  48. package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
  49. package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
  50. package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js +455 -0
  51. package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
  52. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +263 -0
  53. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
  54. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
  55. package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
  56. package/build/lib/web/development/components/Spark/RzpGlass/index.js +24 -0
  57. package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -0
  58. package/build/lib/web/development/components/Spark/RzpGlass/presets.js +151 -0
  59. package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -0
  60. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
  61. package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
  62. package/build/lib/web/development/components/Spark/RzpGlass/utils.js +77 -0
  63. package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -0
  64. package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js +200 -0
  65. package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
  66. package/build/lib/web/development/components/Spark/index.js +3 -0
  67. package/build/lib/web/development/components/Spark/index.js.map +1 -0
  68. package/build/lib/web/development/components/index.js +3 -0
  69. package/build/lib/web/development/components/index.js.map +1 -1
  70. package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
  71. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
  72. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
  73. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
  74. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +23 -15
  75. package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
  76. package/build/lib/web/production/components/SideNav/SideNav.web.js +21 -21
  77. package/build/lib/web/production/components/SideNav/SideNav.web.js.map +1 -1
  78. package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +4 -4
  79. package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
  80. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
  81. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
  82. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
  83. package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
  84. package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js +2 -0
  85. package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js.map +1 -0
  86. package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js +18 -0
  87. package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -0
  88. package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
  89. package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
  90. package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js +455 -0
  91. package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
  92. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +263 -0
  93. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
  94. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
  95. package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
  96. package/build/lib/web/production/components/Spark/RzpGlass/index.js +24 -0
  97. package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -0
  98. package/build/lib/web/production/components/Spark/RzpGlass/presets.js +151 -0
  99. package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -0
  100. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
  101. package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
  102. package/build/lib/web/production/components/Spark/RzpGlass/utils.js +77 -0
  103. package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -0
  104. package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js +200 -0
  105. package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
  106. package/build/lib/web/production/components/Spark/index.js +3 -0
  107. package/build/lib/web/production/components/Spark/index.js.map +1 -0
  108. package/build/lib/web/production/components/index.js +3 -0
  109. package/build/lib/web/production/components/index.js.map +1 -1
  110. package/build/types/components/index.d.ts +297 -1
  111. package/build/types/components/index.native.d.ts +297 -1
  112. package/package.json +2 -1
@@ -0,0 +1,77 @@
1
+ /**
2
+ * RzpGlass Utility Functions
3
+ */
4
+
5
+ /**
6
+ * Load an image from URL
7
+ */
8
+ function loadImage(src) {
9
+ return new Promise(function (resolve, reject) {
10
+ var img = new Image();
11
+ img.crossOrigin = 'anonymous';
12
+ img.onload = function () {
13
+ return resolve(img);
14
+ };
15
+ img.onerror = function () {
16
+ return reject(new Error("Failed to load image: ".concat(src)));
17
+ };
18
+ img.src = src;
19
+ });
20
+ }
21
+
22
+ /**
23
+ * Load a video from URL
24
+ */
25
+ function loadVideo(src) {
26
+ return new Promise(function (resolve, reject) {
27
+ var video = document.createElement('video');
28
+ video.src = src;
29
+ video.crossOrigin = 'anonymous';
30
+ video.loop = true;
31
+ video.muted = true;
32
+ video.playsInline = true;
33
+ video.preload = 'auto';
34
+ video.oncanplaythrough = function () {
35
+ return resolve(video);
36
+ };
37
+ video.onerror = function () {
38
+ return reject(new Error("Failed to load video: ".concat(src)));
39
+ };
40
+ video.load();
41
+ });
42
+ }
43
+
44
+ /**
45
+ * Check if browser is Safari
46
+ */
47
+ function isSafari() {
48
+ var ua = navigator.userAgent.toLowerCase();
49
+ return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');
50
+ }
51
+
52
+ /**
53
+ * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)
54
+ */
55
+ function bestGuessBrowserZoom() {
56
+ var _visualViewport$scale, _visualViewport, _visualViewport$width, _visualViewport2;
57
+ var viewportScale = (_visualViewport$scale = (_visualViewport = visualViewport) === null || _visualViewport === void 0 ? void 0 : _visualViewport.scale) !== null && _visualViewport$scale !== void 0 ? _visualViewport$scale : 1;
58
+ var viewportWidth = (_visualViewport$width = (_visualViewport2 = visualViewport) === null || _visualViewport2 === void 0 ? void 0 : _visualViewport2.width) !== null && _visualViewport$width !== void 0 ? _visualViewport$width : window.innerWidth;
59
+ var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
60
+ var innerWidth = viewportScale * viewportWidth + scrollbarWidth;
61
+ var ratio = outerWidth / innerWidth;
62
+ var zoomPercentageRounded = Math.round(100 * ratio);
63
+
64
+ // Common zoom levels divisible by 5%
65
+ if (zoomPercentageRounded % 5 === 0) {
66
+ return zoomPercentageRounded / 100;
67
+ }
68
+
69
+ // Handle special zoom levels
70
+ if (zoomPercentageRounded === 33) return 1 / 3;
71
+ if (zoomPercentageRounded === 67) return 2 / 3;
72
+ if (zoomPercentageRounded === 133) return 4 / 3;
73
+ return ratio;
74
+ }
75
+
76
+ export { bestGuessBrowserZoom, isSafari, loadImage, loadVideo };
77
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\n/**\n * Load an image from URL\n */\nexport function loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nexport function loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nexport function isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nexport function bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n"],"names":["loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","concat","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","width","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round"],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
+ import _createClass from '@babel/runtime/helpers/createClass';
3
+
4
+ /**
5
+ * WebGL utility functions for shader compilation, program creation,
6
+ * geometry setup, and texture handling.
7
+ */
8
+
9
+ // Fullscreen quad vertices (two triangles covering clip space -1 to 1)
10
+ // prettier-ignore
11
+ var FULLSCREEN_QUAD_POSITIONS = new Float32Array([-1, -1,
12
+ // bottom-left
13
+ 1, -1,
14
+ // bottom-right
15
+ -1, 1,
16
+ // top-left
17
+ -1, 1,
18
+ // top-left
19
+ 1, -1,
20
+ // bottom-right
21
+ 1, 1 // top-right
22
+ ]);
23
+
24
+ // Standard UV coordinates for fullscreen quad
25
+ // prettier-ignore
26
+ var FULLSCREEN_QUAD_UVS = new Float32Array([0, 0,
27
+ // bottom-left
28
+ 1, 0,
29
+ // bottom-right
30
+ 0, 1,
31
+ // top-left
32
+ 0, 1,
33
+ // top-left
34
+ 1, 0,
35
+ // bottom-right
36
+ 1, 1 // top-right
37
+ ]);
38
+
39
+ /**
40
+ * Creates and compiles a WebGL shader
41
+ */
42
+ function createShader(gl, type, source) {
43
+ var shader = gl.createShader(type);
44
+ if (!shader) return null;
45
+ gl.shaderSource(shader, source);
46
+ gl.compileShader(shader);
47
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
48
+ console.error('Shader compilation error:', gl.getShaderInfoLog(shader));
49
+ gl.deleteShader(shader);
50
+ return null;
51
+ }
52
+ return shader;
53
+ }
54
+
55
+ /**
56
+ * Creates a WebGL program from vertex and fragment shaders
57
+ */
58
+ function createProgram(gl, vertexSource, fragmentSource) {
59
+ // Check shader precision and upgrade if needed
60
+ var format = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT);
61
+ var precision = format ? format.precision : null;
62
+
63
+ // MEDIUM_FLOAT precision can be 10, 16 or 23 bits depending on device
64
+ // Shaders fail on 10 bit => we force 23-bit by switching to highp
65
+ if (precision && precision < 23) {
66
+ vertexSource = vertexSource.replace(/precision\s+(lowp|mediump)\s+float;/g, 'precision highp float;');
67
+ fragmentSource = fragmentSource.replace(/precision\s+(lowp|mediump)\s+float/g, 'precision highp float').replace(/\b(uniform|varying|attribute)\s+(lowp|mediump)\s+(\w+)/g, '$1 highp $3');
68
+ }
69
+ var vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
70
+ var fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
71
+ if (!vertexShader || !fragmentShader) return null;
72
+ var program = gl.createProgram();
73
+ if (!program) return null;
74
+ gl.attachShader(program, vertexShader);
75
+ gl.attachShader(program, fragmentShader);
76
+ gl.linkProgram(program);
77
+ if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
78
+ console.error('Program linking error:', gl.getProgramInfoLog(program));
79
+ gl.deleteProgram(program);
80
+ gl.deleteShader(vertexShader);
81
+ gl.deleteShader(fragmentShader);
82
+ return null;
83
+ }
84
+
85
+ // Clean up shaders after successful linking
86
+ gl.detachShader(program, vertexShader);
87
+ gl.detachShader(program, fragmentShader);
88
+ gl.deleteShader(vertexShader);
89
+ gl.deleteShader(fragmentShader);
90
+ return program;
91
+ }
92
+ /**
93
+ * Sets up a fullscreen quad with position and UV attributes.
94
+ * This is the standard geometry for post-processing shaders.
95
+ *
96
+ * @param gl - WebGL rendering context
97
+ * @param program - WebGL program to get attribute locations from
98
+ * @param positionAttr - Name of position attribute (default: 'position')
99
+ * @param uvAttr - Name of UV attribute (default: 'uv')
100
+ * @returns The created buffers for cleanup, or null if setup failed
101
+ */
102
+ function setupFullscreenQuad(gl, program) {
103
+ var positionAttr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'position';
104
+ var uvAttr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'uv';
105
+ // Position attribute
106
+ var positionLocation = gl.getAttribLocation(program, positionAttr);
107
+ var positionBuffer = gl.createBuffer();
108
+ if (!positionBuffer) return null;
109
+ gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
110
+ gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_POSITIONS, gl.STATIC_DRAW);
111
+ gl.enableVertexAttribArray(positionLocation);
112
+ gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
113
+
114
+ // UV attribute
115
+ var uvLocation = gl.getAttribLocation(program, uvAttr);
116
+ var uvBuffer = gl.createBuffer();
117
+ if (!uvBuffer) return null;
118
+ gl.bindBuffer(gl.ARRAY_BUFFER, uvBuffer);
119
+ gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_UVS, gl.STATIC_DRAW);
120
+ gl.enableVertexAttribArray(uvLocation);
121
+ gl.vertexAttribPointer(uvLocation, 2, gl.FLOAT, false, 0, 0);
122
+ return {
123
+ positionBuffer: positionBuffer,
124
+ uvBuffer: uvBuffer
125
+ };
126
+ }
127
+
128
+ /**
129
+ * OGL-style Texture class for WebGL texture management.
130
+ * Supports images, videos, and canvas elements as sources.
131
+ *
132
+ * @see https://github.com/oframe/ogl/blob/master/src/core/Texture.js
133
+ */
134
+ var Texture = /*#__PURE__*/function () {
135
+ function Texture(gl) {
136
+ var _params$textureUnit, _params$minFilter, _params$magFilter, _params$wrapS, _params$wrapT, _params$flipY;
137
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
138
+ _classCallCheck(this, Texture);
139
+ this.gl = gl;
140
+ this.textureUnit = (_params$textureUnit = params.textureUnit) !== null && _params$textureUnit !== void 0 ? _params$textureUnit : 0;
141
+ this.minFilter = (_params$minFilter = params.minFilter) !== null && _params$minFilter !== void 0 ? _params$minFilter : gl.NEAREST;
142
+ this.magFilter = (_params$magFilter = params.magFilter) !== null && _params$magFilter !== void 0 ? _params$magFilter : gl.NEAREST;
143
+ this.wrapS = (_params$wrapS = params.wrapS) !== null && _params$wrapS !== void 0 ? _params$wrapS : gl.CLAMP_TO_EDGE;
144
+ this.wrapT = (_params$wrapT = params.wrapT) !== null && _params$wrapT !== void 0 ? _params$wrapT : gl.CLAMP_TO_EDGE;
145
+ this.flipY = (_params$flipY = params.flipY) !== null && _params$flipY !== void 0 ? _params$flipY : true;
146
+ this.texture = gl.createTexture();
147
+ this.bind();
148
+ this.setParameters();
149
+ }
150
+ return _createClass(Texture, [{
151
+ key: "bind",
152
+ value: function bind() {
153
+ var gl = this.gl;
154
+ gl.activeTexture(gl.TEXTURE0 + this.textureUnit);
155
+ gl.bindTexture(gl.TEXTURE_2D, this.texture);
156
+ }
157
+ }, {
158
+ key: "setParameters",
159
+ value: function setParameters() {
160
+ var gl = this.gl;
161
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, this.minFilter);
162
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, this.magFilter);
163
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this.wrapS);
164
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this.wrapT);
165
+ }
166
+
167
+ /**
168
+ * Upload image data to the texture (OGL-style)
169
+ */
170
+ }, {
171
+ key: "image",
172
+ value: function image(source) {
173
+ var gl = this.gl;
174
+ if (!source) return;
175
+ this.bind();
176
+ if (this.flipY) {
177
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
178
+ }
179
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);
180
+ }
181
+
182
+ /**
183
+ * Update texture from video frame (call each frame for video textures)
184
+ */
185
+ }, {
186
+ key: "update",
187
+ value: function update(source) {
188
+ this.image(source);
189
+ }
190
+ }, {
191
+ key: "destroy",
192
+ value: function destroy() {
193
+ this.gl.deleteTexture(this.texture);
194
+ this.texture = null;
195
+ }
196
+ }]);
197
+ }();
198
+
199
+ export { Texture, createProgram, createShader, setupFullscreenQuad };
200
+ //# sourceMappingURL=webgl-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/webgl-utils.ts"],"sourcesContent":["/**\n * WebGL utility functions for shader compilation, program creation,\n * geometry setup, and texture handling.\n */\n\n// Fullscreen quad vertices (two triangles covering clip space -1 to 1)\n// prettier-ignore\nconst FULLSCREEN_QUAD_POSITIONS = new Float32Array([\n -1, -1, // bottom-left\n 1, -1, // bottom-right\n -1, 1, // top-left\n -1, 1, // top-left\n 1, -1, // bottom-right\n 1, 1, // top-right\n]);\n\n// Standard UV coordinates for fullscreen quad\n// prettier-ignore\nconst FULLSCREEN_QUAD_UVS = new Float32Array([\n 0, 0, // bottom-left\n 1, 0, // bottom-right\n 0, 1, // top-left\n 0, 1, // top-left\n 1, 0, // bottom-right\n 1, 1, // top-right\n]);\n\n/**\n * Creates and compiles a WebGL shader\n */\nfunction createShader(gl: WebGLRenderingContext, type: number, source: string): WebGLShader | null {\n const shader = gl.createShader(type);\n if (!shader) return null;\n\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n console.error('Shader compilation error:', gl.getShaderInfoLog(shader));\n gl.deleteShader(shader);\n return null;\n }\n\n return shader;\n}\n\n/**\n * Creates a WebGL program from vertex and fragment shaders\n */\nfunction createProgram(\n gl: WebGLRenderingContext,\n vertexSource: string,\n fragmentSource: string,\n): WebGLProgram | null {\n // Check shader precision and upgrade if needed\n const format = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT);\n const precision = format ? format.precision : null;\n\n // MEDIUM_FLOAT precision can be 10, 16 or 23 bits depending on device\n // Shaders fail on 10 bit => we force 23-bit by switching to highp\n if (precision && precision < 23) {\n vertexSource = vertexSource.replace(\n /precision\\s+(lowp|mediump)\\s+float;/g,\n 'precision highp float;',\n );\n fragmentSource = fragmentSource\n .replace(/precision\\s+(lowp|mediump)\\s+float/g, 'precision highp float')\n .replace(/\\b(uniform|varying|attribute)\\s+(lowp|mediump)\\s+(\\w+)/g, '$1 highp $3');\n }\n\n const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);\n const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);\n\n if (!vertexShader || !fragmentShader) return null;\n\n const program = gl.createProgram();\n if (!program) return null;\n\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.error('Program linking error:', gl.getProgramInfoLog(program));\n gl.deleteProgram(program);\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n return null;\n }\n\n // Clean up shaders after successful linking\n gl.detachShader(program, vertexShader);\n gl.detachShader(program, fragmentShader);\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n\n return program;\n}\n\ntype FullscreenQuadBuffers = {\n positionBuffer: WebGLBuffer;\n uvBuffer: WebGLBuffer;\n};\n\n/**\n * Sets up a fullscreen quad with position and UV attributes.\n * This is the standard geometry for post-processing shaders.\n *\n * @param gl - WebGL rendering context\n * @param program - WebGL program to get attribute locations from\n * @param positionAttr - Name of position attribute (default: 'position')\n * @param uvAttr - Name of UV attribute (default: 'uv')\n * @returns The created buffers for cleanup, or null if setup failed\n */\nfunction setupFullscreenQuad(\n gl: WebGLRenderingContext,\n program: WebGLProgram,\n positionAttr = 'position',\n uvAttr = 'uv',\n): FullscreenQuadBuffers | null {\n // Position attribute\n const positionLocation = gl.getAttribLocation(program, positionAttr);\n const positionBuffer = gl.createBuffer();\n if (!positionBuffer) return null;\n\n gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_POSITIONS, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(positionLocation);\n gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n // UV attribute\n const uvLocation = gl.getAttribLocation(program, uvAttr);\n const uvBuffer = gl.createBuffer();\n if (!uvBuffer) return null;\n\n gl.bindBuffer(gl.ARRAY_BUFFER, uvBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_UVS, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(uvLocation);\n gl.vertexAttribPointer(uvLocation, 2, gl.FLOAT, false, 0, 0);\n\n return { positionBuffer, uvBuffer };\n}\n\ntype TextureOptions = {\n minFilter?: number;\n magFilter?: number;\n wrapS?: number;\n wrapT?: number;\n};\n\n/**\n * OGL-style Texture class for WebGL texture management.\n * Supports images, videos, and canvas elements as sources.\n *\n * @see https://github.com/oframe/ogl/blob/master/src/core/Texture.js\n */\ntype TextureParams = {\n textureUnit?: number;\n minFilter?: number;\n magFilter?: number;\n wrapS?: number;\n wrapT?: number;\n flipY?: boolean;\n};\n\ntype TextureSource = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | null;\n\nclass Texture {\n public gl: WebGLRenderingContext;\n public texture: WebGLTexture | null;\n public textureUnit: number;\n\n private minFilter: number;\n private magFilter: number;\n private wrapS: number;\n private wrapT: number;\n private flipY: boolean;\n\n constructor(gl: WebGLRenderingContext, params: TextureParams = {}) {\n this.gl = gl;\n this.textureUnit = params.textureUnit ?? 0;\n this.minFilter = params.minFilter ?? gl.NEAREST;\n this.magFilter = params.magFilter ?? gl.NEAREST;\n this.wrapS = params.wrapS ?? gl.CLAMP_TO_EDGE;\n this.wrapT = params.wrapT ?? gl.CLAMP_TO_EDGE;\n this.flipY = params.flipY ?? true;\n\n this.texture = gl.createTexture();\n this.bind();\n this.setParameters();\n }\n\n bind(): void {\n const { gl } = this;\n gl.activeTexture(gl.TEXTURE0 + this.textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, this.texture);\n }\n\n private setParameters(): void {\n const { gl } = this;\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, this.minFilter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, this.magFilter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this.wrapS);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this.wrapT);\n }\n\n /**\n * Upload image data to the texture (OGL-style)\n */\n image(source: TextureSource): void {\n const { gl } = this;\n if (!source) return;\n\n this.bind();\n\n if (this.flipY) {\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n }\n\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);\n }\n\n /**\n * Update texture from video frame (call each frame for video textures)\n */\n update(source: TextureSource): void {\n this.image(source);\n }\n\n destroy(): void {\n this.gl.deleteTexture(this.texture);\n this.texture = null;\n }\n}\n\nexport { createShader, createProgram, setupFullscreenQuad, Texture };\n\nexport type { FullscreenQuadBuffers, TextureOptions, TextureParams, TextureSource };\n"],"names":["FULLSCREEN_QUAD_POSITIONS","Float32Array","FULLSCREEN_QUAD_UVS","createShader","gl","type","source","shader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","console","error","getShaderInfoLog","deleteShader","createProgram","vertexSource","fragmentSource","format","getShaderPrecisionFormat","FRAGMENT_SHADER","MEDIUM_FLOAT","precision","replace","vertexShader","VERTEX_SHADER","fragmentShader","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","detachShader","setupFullscreenQuad","positionAttr","arguments","length","undefined","uvAttr","positionLocation","getAttribLocation","positionBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uvLocation","uvBuffer","Texture","_params$textureUnit","_params$minFilter","_params$magFilter","_params$wrapS","_params$wrapT","_params$flipY","params","_classCallCheck","textureUnit","minFilter","NEAREST","magFilter","wrapS","CLAMP_TO_EDGE","wrapT","flipY","texture","createTexture","bind","setParameters","_createClass","key","value","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","image","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","RGBA","UNSIGNED_BYTE","update","destroy","deleteTexture"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import './RzpGlass/index.js';
2
+ import './RazorSenseGradient/index.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -78,6 +78,7 @@ import './LightBox/index.js';
78
78
  import './ListView/index.js';
79
79
  import './Preview/index.js';
80
80
  import './GenUI/index.js';
81
+ import './Spark/index.js';
81
82
  export { Accordion } from './Accordion/Accordion.js';
82
83
  export { AccordionItemHeader } from './Accordion/AccordionItemHeader.js';
83
84
  export { AccordionItemBody } from './Accordion/AccordionItemBody.js';
@@ -683,4 +684,6 @@ export { Preview, PreviewBody, PreviewFooter, PreviewHeader } from './Preview/Pr
683
684
  export { GenUIProvider } from './GenUI/GenUIProvider.web.js';
684
685
  export { useGenUI, useGenUIAction } from './GenUI/GenUIContext.web.js';
685
686
  export { GenUISchemaRenderer } from './GenUI/GenUISchemaRenderer.web.js';
687
+ export { RzpGlass as RazorSense } from './Spark/RzpGlass/RzpGlass.js';
688
+ export { FluidGradient as RazorSenseGradient } from './Spark/RazorSenseGradient/FluidGradient.js';
686
689
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as flatten$1 } from '../../../../_virtual/flatten2.js';
2
+ import { __exports as flatten$1 } from '../../../../_virtual/flatten4.js';
3
3
 
4
4
  (function (exports) {
5
5
  'use strict';
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as flatten$1 } from '../../../../../_virtual/flatten4.js';
2
+ import { __exports as flatten$1 } from '../../../../../_virtual/flatten2.js';
3
3
  import '../../../../../_virtual/isArrayLike.js';
4
4
  import { __exports as isArrayLike } from '../../../../../_virtual/isArrayLike2.js';
5
5
 
@@ -1,10 +1,10 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
2
  import { __exports as sortBy$1 } from '../../../../../_virtual/sortBy2.js';
3
3
  import '../../../../../_virtual/orderBy.js';
4
- import '../../../../../_virtual/flatten.js';
4
+ import '../../../../../_virtual/flatten3.js';
5
5
  import '../../../../../_virtual/isIterateeCall.js';
6
6
  import { __exports as orderBy } from '../../../../../_virtual/orderBy2.js';
7
- import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
7
+ import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
8
8
  import { __exports as isIterateeCall } from '../../../../../_virtual/isIterateeCall2.js';
9
9
 
10
10
  (function (exports) {
@@ -5,14 +5,14 @@ import '../../../../../_virtual/keysIn.js';
5
5
  import '../../../../../_virtual/unset.js';
6
6
  import '../../../../../_virtual/getSymbolsIn.js';
7
7
  import '../../../../../_virtual/isDeepKey.js';
8
- import '../../../../../_virtual/flatten3.js';
8
+ import '../../../../../_virtual/flatten.js';
9
9
  import '../../../../../_virtual/isPlainObject.js';
10
10
  import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
11
11
  import { __exports as keysIn } from '../../../../../_virtual/keysIn2.js';
12
12
  import { __exports as unset } from '../../../../../_virtual/unset2.js';
13
13
  import { __exports as getSymbolsIn } from '../../../../../_virtual/getSymbolsIn2.js';
14
14
  import { __exports as isDeepKey } from '../../../../../_virtual/isDeepKey2.js';
15
- import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
15
+ import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
16
16
  import { __exports as isPlainObject } from '../../../../../_virtual/isPlainObject2.js';
17
17
 
18
18
  (function (exports) {
@@ -80,33 +80,44 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
80
80
  };
81
81
  useEffect(function () {
82
82
  var valueNotEmpty = typeof value === 'string' && value.trim() !== '' || Array.isArray(value) && value.length > 0;
83
- // since we need to sync state only one time so skipping value checking.
84
- var isValueAndSelectedOptoinsSynced = typeof value === 'string' && value && selectedIndices.length === 1 || Array.isArray(value) && value.length === selectedIndices.length;
83
+
84
+ // Compare actual selected values (not just lengths) to detect controlled value changes
85
+ var currentSelectedValues = selectedIndices.map(function (i) {
86
+ var _options$i;
87
+ return (_options$i = options[i]) === null || _options$i === void 0 ? void 0 : _options$i.value;
88
+ });
89
+ var isSingleValueSynced = typeof value === 'string' && currentSelectedValues.length === 1 && currentSelectedValues[0] === value;
90
+ var isMultiValueSynced = Array.isArray(value) && value.length === currentSelectedValues.length && value.every(function (v) {
91
+ return currentSelectedValues.includes(v);
92
+ });
93
+ var isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;
85
94
  if (isUnControlled) {
86
95
  if (listViewSelectedFilters[label]) {
87
- var _value = listViewSelectedFilters[label];
88
- setSelectedIndices(_value);
89
- var inputValue = _value.map(function (selectionIndex) {
96
+ var savedIndices = listViewSelectedFilters[label];
97
+ setSelectedIndices(savedIndices);
98
+ var inputValue = savedIndices.map(function (selectionIndex) {
90
99
  return options[selectionIndex].value;
91
100
  });
92
101
  setUncontrolledInputValue(inputValue);
93
102
  setFilterChipGroupSelectedFilters(function (prev) {
94
103
  return prev.includes(label) ? prev : [].concat(_toConsumableArray(prev), [label]);
95
104
  });
105
+ } else {
106
+ setSelectedIndices([]);
96
107
  }
97
108
  } else if (listViewSelectedFilters[label]) {
98
- var _value2 = listViewSelectedFilters[label];
99
- setSelectedIndices(_value2);
100
- // This would be the case when filterChipSelectInput is controlled and are being opened first time
101
- } else if (valueNotEmpty && !isValueAndSelectedOptoinsSynced && options.length > 0) {
102
- var _selectedIndices = typeof value === 'string' ? [options.findIndex(function (option) {
109
+ var _savedIndices = listViewSelectedFilters[label];
110
+ setSelectedIndices(_savedIndices);
111
+ // Sync selected indices when controlled value changes or on first render with options loaded
112
+ } else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {
113
+ var newSelectedIndices = typeof value === 'string' ? [options.findIndex(function (option) {
103
114
  return option.value === value;
104
115
  })] : options.map(function (option, index) {
105
116
  return value.includes(option.value) ? index : -1;
106
117
  }).filter(function (index) {
107
118
  return index !== -1;
108
119
  });
109
- setSelectedIndices(_selectedIndices);
120
+ setSelectedIndices(newSelectedIndices);
110
121
  }
111
122
  // eslint-disable-next-line react-hooks/exhaustive-deps
112
123
  }, [isUnControlled, options]);
@@ -135,10 +146,6 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
135
146
  name: name !== null && name !== void 0 ? name : idBase,
136
147
  values: []
137
148
  });
138
- if (isUnControlled) {
139
- setUncontrolledInputValue([]);
140
- setSelectedIndices([]);
141
- }
142
149
  setFilterChipGroupSelectedFilters(function (prev) {
143
150
  return prev.filter(function (filter) {
144
151
  return filter !== label;
@@ -149,6 +156,7 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
149
156
  updatedFilters = _objectWithoutProperties(prev, [label].map(_toPropertyKey));
150
157
  return updatedFilters;
151
158
  });
159
+ setUncontrolledInputValue([]);
152
160
  setSelectedIndices([]);
153
161
  };
154
162
  useEffect(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n isDisabled,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n // since we need to sync state only one time so skipping value checking.\n const isValueAndSelectedOptoinsSynced =\n (typeof value === 'string' && value && selectedIndices.length === 1) ||\n (Array.isArray(value) && value.length === selectedIndices.length);\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n const inputValue = value.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n }\n } else if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n // This would be the case when filterChipSelectInput is controlled and are being opened first time\n } else if (valueNotEmpty && !isValueAndSelectedOptoinsSynced && options.length > 0) {\n const selectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(selectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n if (isUnControlled) {\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n }\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n isDisabled={isDisabled}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","isDisabled","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","isValueAndSelectedOptoinsSynced","inputValue","prev","includes","concat","_toConsumableArray","findIndex","index","filter","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
1
+ {"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n isDisabled,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n\n // Compare actual selected values (not just lengths) to detect controlled value changes\n const currentSelectedValues = selectedIndices.map((i) => options[i]?.value);\n const isSingleValueSynced =\n typeof value === 'string' &&\n currentSelectedValues.length === 1 &&\n currentSelectedValues[0] === value;\n\n const isMultiValueSynced =\n Array.isArray(value) &&\n value.length === currentSelectedValues.length &&\n value.every((v) => currentSelectedValues.includes(v));\n\n const isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;\n\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n const inputValue = savedIndices.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n } else {\n setSelectedIndices([]);\n }\n } else if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n // Sync selected indices when controlled value changes or on first render with options loaded\n } else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {\n const newSelectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(newSelectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n isDisabled={isDisabled}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","isDisabled","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","currentSelectedValues","i","_options$i","isSingleValueSynced","isMultiValueSynced","every","v","includes","isValueAndSelectedIndicesSynced","savedIndices","inputValue","prev","concat","_toConsumableArray","newSelectedIndices","findIndex","index","filter","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}