react-iro-gradient-picker 1.2.4 → 1.2.5

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/dist/index.js CHANGED
@@ -6438,10 +6438,20 @@ var validGradient = (function (input) {
6438
6438
  var colorStops = [];
6439
6439
  // Determine if first part is direction/angle or color stop
6440
6440
  var firstPart = parts[0];
6441
- var isDirection = /^\d+deg$/i.test(firstPart) ||
6442
- /^to\s+/.test(firstPart) ||
6443
- /^(?:circle|ellipse)/.test(firstPart) ||
6444
- /at\s+/.test(firstPart);
6441
+ var isDirection = false;
6442
+ if (type === 'linear') {
6443
+ isDirection =
6444
+ /^\d+deg$/i.test(firstPart) ||
6445
+ /^to\s+/.test(firstPart);
6446
+ }
6447
+ else if (type === 'radial') {
6448
+ // For radial gradients, check for size, shape, or position keywords
6449
+ isDirection =
6450
+ /^(?:circle|ellipse)/.test(firstPart) ||
6451
+ /at\s+/.test(firstPart) ||
6452
+ /^(?:closest-side|closest-corner|farthest-side|farthest-corner)$/i.test(firstPart) ||
6453
+ /^\d+(?:%|px|em|rem)?$/i.test(firstPart); // Size values like "70", "70%", "70px"
6454
+ }
6445
6455
  if (isDirection) {
6446
6456
  if (type === 'linear') {
6447
6457
  if (/^\d+deg$/i.test(firstPart)) {
@@ -7463,9 +7473,18 @@ var Markers = function (_a) {
7463
7473
  };
7464
7474
  var onDrag = function (e) {
7465
7475
  var _a;
7466
- var x = e.clientX;
7467
- var y = e.clientY;
7476
+ // Defensive check for event object
7477
+ if (!e) {
7478
+ console.warn('onDrag called with undefined event object');
7479
+ return;
7480
+ }
7481
+ var x = e.clientX || 0;
7482
+ var y = e.clientY || 0;
7468
7483
  var rect = (_a = node === null || node === void 0 ? void 0 : node.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
7484
+ if (!rect) {
7485
+ console.warn('Unable to get bounding rect for drag operation');
7486
+ return;
7487
+ }
7469
7488
  var rootDistance = y - rect.y;
7470
7489
  // Now we know user is actually dragging
7471
7490
  setIsDragging(true);
@@ -7720,10 +7739,15 @@ var GradientPanel = function (_a) {
7720
7739
  }
7721
7740
  };
7722
7741
  var onDrag = function (e) {
7723
- var x = e.clientX;
7724
- var y = e.clientY;
7725
- var shiftKey = e.shiftKey;
7726
- var ctrlKey = e.ctrlKey * 2;
7742
+ // Defensive check for event object
7743
+ if (!e) {
7744
+ console.warn('onDrag called with undefined event object');
7745
+ return;
7746
+ }
7747
+ var x = e.clientX || 0;
7748
+ var y = e.clientY || 0;
7749
+ var shiftKey = e.shiftKey || false;
7750
+ var ctrlKey = (e.ctrlKey || false) * 2;
7727
7751
  pointMoveTo({
7728
7752
  x: x,
7729
7753
  y: y,
@@ -7862,7 +7886,10 @@ var IroGradient = function (_a) {
7862
7886
  console.warn('Gradient parsing failed, using fallback:', parsed);
7863
7887
  var fallback = parseGradient('linear-gradient(90deg, #ffffff 0%, #000000 100%)');
7864
7888
  // Ensure fallback has valid structure
7865
- if (fallback && typeof fallback === 'object' && Array.isArray(fallback.stops) && fallback.stops.length > 0) {
7889
+ if (fallback &&
7890
+ typeof fallback === 'object' &&
7891
+ Array.isArray(fallback.stops) &&
7892
+ fallback.stops.length > 0) {
7866
7893
  return fallback;
7867
7894
  }
7868
7895
  // Ultimate fallback with guaranteed structure
@@ -7877,7 +7904,10 @@ var IroGradient = function (_a) {
7877
7904
  };
7878
7905
  }
7879
7906
  // Validate parsed result has required structure
7880
- if (parsed && typeof parsed === 'object' && Array.isArray(parsed.stops) && parsed.stops.length > 0) {
7907
+ if (parsed &&
7908
+ typeof parsed === 'object' &&
7909
+ Array.isArray(parsed.stops) &&
7910
+ parsed.stops.length > 0) {
7881
7911
  return parsed;
7882
7912
  }
7883
7913
  // If parsed result is invalid, use ultimate fallback
@@ -7912,11 +7942,22 @@ var IroGradient = function (_a) {
7912
7942
  var isUpdatingFromGradientStop = React.useRef(false);
7913
7943
  var _t = __read(React.useState(200), 2), pickerWidth = _t[0], setPickerWidth = _t[1];
7914
7944
  // Safe extraction of stop data with fallbacks
7915
- var safeStops = Array.isArray(stops) && stops.length > 0 ? stops : [['rgba(255, 255, 255, 1)', 0, 0], ['rgba(0, 0, 0, 1)', 1, 1]];
7945
+ var safeStops = Array.isArray(stops) && stops.length > 0
7946
+ ? stops
7947
+ : [
7948
+ ['rgba(255, 255, 255, 1)', 0, 0],
7949
+ ['rgba(0, 0, 0, 1)', 1, 1]
7950
+ ];
7916
7951
  var safeLastStop = rgbaToArray(safeStops[safeStops.length - 1][0]);
7917
- var safeParsedLastStop = Array.isArray(safeLastStop) && safeLastStop.length >= 4 ? safeLastStop : [255, 255, 255, 1];
7952
+ var safeParsedLastStop = Array.isArray(safeLastStop) && safeLastStop.length >= 4
7953
+ ? safeLastStop
7954
+ : [255, 255, 255, 1];
7918
7955
  var activeStopIndex = safeStops.length - 1;
7919
- var activeStop = rgbaToHex([safeParsedLastStop[0], safeParsedLastStop[1], safeParsedLastStop[2]]);
7956
+ var activeStop = rgbaToHex([
7957
+ safeParsedLastStop[0],
7958
+ safeParsedLastStop[1],
7959
+ safeParsedLastStop[2]
7960
+ ]);
7920
7961
  var activeAlpha = Math.round(safeParsedLastStop[3] * 100);
7921
7962
  // Responsive width for IroColorPicker - match solid picker logic
7922
7963
  React.useEffect(function () {