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.es.js +56 -15
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +56 -15
- package/dist/index.js.map +1 -1
- package/dist/utils/gradient/gradientConverter.d.ts +1 -1
- package/package.json +1 -1
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 =
|
6442
|
-
|
6443
|
-
|
6444
|
-
|
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
|
-
|
7467
|
-
|
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
|
-
|
7724
|
-
|
7725
|
-
|
7726
|
-
|
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 &&
|
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 &&
|
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
|
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
|
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([
|
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 () {
|