@marcoschwartz/lite-ui 0.18.0 → 0.18.1

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
@@ -3095,15 +3095,22 @@ var Slider = ({
3095
3095
  setInternalValue(newValue);
3096
3096
  onChange?.(newValue);
3097
3097
  };
3098
- const handleRangeMouseDown = (e, handle) => {
3098
+ const handleRangeStart = (clientX, handle) => {
3099
3099
  if (disabled) return;
3100
- e.preventDefault();
3101
3100
  setIsDragging(handle);
3102
3101
  };
3103
- const handleRangeMouseMove = (e) => {
3102
+ const handleRangeMouseDown = (e, handle) => {
3103
+ e.preventDefault();
3104
+ handleRangeStart(e.clientX, handle);
3105
+ };
3106
+ const handleRangeTouchStart = (e, handle) => {
3107
+ e.preventDefault();
3108
+ handleRangeStart(e.touches[0].clientX, handle);
3109
+ };
3110
+ const updateRangeValue = (clientX) => {
3104
3111
  if (!isDragging || !trackRef.current || disabled) return;
3105
3112
  const rect = trackRef.current.getBoundingClientRect();
3106
- const percentage2 = Math.max(0, Math.min(100, (e.clientX - rect.left) / rect.width * 100));
3113
+ const percentage2 = Math.max(0, Math.min(100, (clientX - rect.left) / rect.width * 100));
3107
3114
  const newValue = Math.round(percentage2 / 100 * (max - min) / step) * step + min;
3108
3115
  if (isDragging === "min") {
3109
3116
  const newMin = Math.min(newValue, rangeValue[1] - step);
@@ -3117,16 +3124,28 @@ var Slider = ({
3117
3124
  onRangeChange?.(newRange);
3118
3125
  }
3119
3126
  };
3120
- const handleRangeMouseUp = () => {
3127
+ const handleRangeMouseMove = (e) => {
3128
+ updateRangeValue(e.clientX);
3129
+ };
3130
+ const handleRangeTouchMove = (e) => {
3131
+ if (e.touches.length > 0) {
3132
+ updateRangeValue(e.touches[0].clientX);
3133
+ }
3134
+ };
3135
+ const handleRangeEnd = () => {
3121
3136
  setIsDragging(null);
3122
3137
  };
3123
3138
  import_react18.default.useEffect(() => {
3124
3139
  if (isDragging) {
3125
3140
  document.addEventListener("mousemove", handleRangeMouseMove);
3126
- document.addEventListener("mouseup", handleRangeMouseUp);
3141
+ document.addEventListener("mouseup", handleRangeEnd);
3142
+ document.addEventListener("touchmove", handleRangeTouchMove);
3143
+ document.addEventListener("touchend", handleRangeEnd);
3127
3144
  return () => {
3128
3145
  document.removeEventListener("mousemove", handleRangeMouseMove);
3129
- document.removeEventListener("mouseup", handleRangeMouseUp);
3146
+ document.removeEventListener("mouseup", handleRangeEnd);
3147
+ document.removeEventListener("touchmove", handleRangeTouchMove);
3148
+ document.removeEventListener("touchend", handleRangeEnd);
3130
3149
  };
3131
3150
  }
3132
3151
  }, [isDragging, rangeValue]);
@@ -3163,6 +3182,7 @@ var Slider = ({
3163
3182
  `,
3164
3183
  style: { left: `${minPercentage}%` },
3165
3184
  onMouseDown: (e) => handleRangeMouseDown(e, "min"),
3185
+ onTouchStart: (e) => handleRangeTouchStart(e, "min"),
3166
3186
  role: "slider",
3167
3187
  "aria-label": `${label ? label + " " : ""}minimum value`,
3168
3188
  "aria-valuemin": min,
@@ -3179,6 +3199,7 @@ var Slider = ({
3179
3199
  `,
3180
3200
  style: { left: `${maxPercentage}%` },
3181
3201
  onMouseDown: (e) => handleRangeMouseDown(e, "max"),
3202
+ onTouchStart: (e) => handleRangeTouchStart(e, "max"),
3182
3203
  role: "slider",
3183
3204
  "aria-label": `${label ? label + " " : ""}maximum value`,
3184
3205
  "aria-valuemin": rangeValue[0],