@sprawlify/primitives 0.0.25 → 0.0.26
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/date-utils.d.cts +5 -5
- package/dist/date-utils.d.mts +1 -1
- package/dist/dom-query.d.cts +1 -1
- package/dist/dom-query.d.mts +1 -1
- package/dist/{index-DYzqCFaj.d.mts → index-BTwu-8ey.d.mts} +5 -5
- package/dist/machines/accordion/index.d.cts +1 -1
- package/dist/machines/accordion/index.d.mts +1 -1
- package/dist/machines/angle-slider/index.d.cts +1 -1
- package/dist/machines/angle-slider/index.d.mts +1 -1
- package/dist/machines/bottom-sheet/index.d.cts +1 -1
- package/dist/machines/bottom-sheet/index.d.mts +1 -1
- package/dist/machines/carousel/index.cjs +6 -2
- package/dist/machines/carousel/index.d.cts +1 -1
- package/dist/machines/carousel/index.d.mts +1 -1
- package/dist/machines/carousel/index.mjs +6 -2
- package/dist/machines/checkbox/index.d.cts +1 -1
- package/dist/machines/checkbox/index.d.mts +1 -1
- package/dist/machines/clipboard/index.d.cts +1 -1
- package/dist/machines/clipboard/index.d.mts +1 -1
- package/dist/machines/collapsible/index.d.cts +1 -1
- package/dist/machines/collapsible/index.d.mts +1 -1
- package/dist/machines/color-picker/index.d.cts +1 -1
- package/dist/machines/color-picker/index.d.mts +1 -1
- package/dist/machines/combobox/index.d.cts +1 -1
- package/dist/machines/combobox/index.d.mts +1 -1
- package/dist/machines/date-picker/index.d.cts +1 -1
- package/dist/machines/date-picker/index.d.mts +2 -2
- package/dist/machines/dialog/index.d.cts +1 -1
- package/dist/machines/dialog/index.d.mts +1 -1
- package/dist/machines/editable/index.d.cts +1 -1
- package/dist/machines/editable/index.d.mts +1 -1
- package/dist/machines/file-upload/index.d.cts +1 -1
- package/dist/machines/file-upload/index.d.mts +1 -1
- package/dist/machines/floating-panel/index.d.cts +1 -1
- package/dist/machines/floating-panel/index.d.mts +1 -1
- package/dist/machines/hover-card/index.d.cts +1 -1
- package/dist/machines/hover-card/index.d.mts +1 -1
- package/dist/machines/listbox/index.d.cts +1 -1
- package/dist/machines/listbox/index.d.mts +1 -1
- package/dist/machines/marquee/index.d.cts +3 -3
- package/dist/machines/marquee/index.d.mts +3 -3
- package/dist/machines/menu/index.d.cts +1 -1
- package/dist/machines/menu/index.d.mts +1 -1
- package/dist/machines/navigation-menu/index.d.cts +1 -1
- package/dist/machines/navigation-menu/index.d.mts +1 -1
- package/dist/machines/number-input/index.d.cts +1 -1
- package/dist/machines/number-input/index.d.mts +1 -1
- package/dist/machines/password-input/index.d.cts +1 -1
- package/dist/machines/password-input/index.d.mts +1 -1
- package/dist/machines/pin-input/index.d.cts +1 -1
- package/dist/machines/pin-input/index.d.mts +1 -1
- package/dist/machines/popover/index.d.cts +1 -1
- package/dist/machines/popover/index.d.mts +1 -1
- package/dist/machines/progress/index.d.cts +1 -1
- package/dist/machines/progress/index.d.mts +1 -1
- package/dist/machines/radio-group/index.d.cts +1 -1
- package/dist/machines/radio-group/index.d.mts +1 -1
- package/dist/machines/scroll-area/index.d.cts +1 -1
- package/dist/machines/scroll-area/index.d.mts +1 -1
- package/dist/machines/select/index.d.cts +1 -1
- package/dist/machines/select/index.d.mts +1 -1
- package/dist/machines/signature-pad/index.d.cts +1 -1
- package/dist/machines/signature-pad/index.d.mts +1 -1
- package/dist/machines/slider/index.d.cts +1 -1
- package/dist/machines/slider/index.d.mts +1 -1
- package/dist/machines/splitter/index.d.cts +1 -1
- package/dist/machines/splitter/index.d.mts +1 -1
- package/dist/machines/steps/index.d.cts +1 -1
- package/dist/machines/steps/index.d.mts +1 -1
- package/dist/machines/tabs/index.d.cts +1 -1
- package/dist/machines/tabs/index.d.mts +1 -1
- package/dist/machines/tags-input/index.d.cts +1 -1
- package/dist/machines/tags-input/index.d.mts +1 -1
- package/dist/machines/timer/index.d.cts +1 -1
- package/dist/machines/timer/index.d.mts +1 -1
- package/dist/machines/toast/index.d.cts +1 -1
- package/dist/machines/toast/index.d.mts +1 -1
- package/dist/machines/tooltip/index.d.cts +1 -1
- package/dist/machines/tooltip/index.d.mts +1 -1
- package/dist/machines/tour/index.d.cts +1 -1
- package/dist/machines/tour/index.d.mts +1 -1
- package/dist/machines/tree-view/index.d.cts +1 -1
- package/dist/machines/tree-view/index.d.mts +1 -1
- package/dist/{scroll-snap-D4hJV_c8.mjs → scroll-snap-B279jSp5.mjs} +49 -9
- package/dist/{scroll-snap-BsPbmOTg.cjs → scroll-snap-BvaE_jFu.cjs} +49 -9
- package/dist/scroll-snap.cjs +1 -1
- package/dist/scroll-snap.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const require_dom_query = require('./dom-query-CWZdWUGp.cjs');
|
|
2
2
|
|
|
3
3
|
//#region src/shared/scroll-snap/index.ts
|
|
4
|
+
const getDirection = (element) => require_dom_query.getComputedStyle(element).direction;
|
|
4
5
|
function getScrollPadding(element) {
|
|
5
6
|
const style = require_dom_query.getComputedStyle(element);
|
|
6
7
|
const rect = element.getBoundingClientRect();
|
|
@@ -41,6 +42,7 @@ function getDescendants(parent) {
|
|
|
41
42
|
}
|
|
42
43
|
function getSnapPositions(parent, subtree = false) {
|
|
43
44
|
const parentRect = parent.getBoundingClientRect();
|
|
45
|
+
const isRtl = getDirection(parent) === "rtl";
|
|
44
46
|
const positions = {
|
|
45
47
|
x: {
|
|
46
48
|
start: [],
|
|
@@ -57,15 +59,30 @@ function getSnapPositions(parent, subtree = false) {
|
|
|
57
59
|
for (const axis of ["x", "y"]) {
|
|
58
60
|
const orthogonalAxis = axis === "x" ? "y" : "x";
|
|
59
61
|
const axisStart = axis === "x" ? "left" : "top";
|
|
62
|
+
const axisEnd = axis === "x" ? "right" : "bottom";
|
|
60
63
|
const axisSize = axis === "x" ? "width" : "height";
|
|
61
64
|
const axisScroll = axis === "x" ? "scrollLeft" : "scrollTop";
|
|
65
|
+
const useRtlCalc = isRtl && axis === "x";
|
|
62
66
|
for (const child of children) {
|
|
63
67
|
const childRect = child.getBoundingClientRect();
|
|
64
68
|
if (!isRectIntersecting(parentRect, childRect, orthogonalAxis)) continue;
|
|
65
69
|
let [childAlignY, childAlignX] = require_dom_query.getComputedStyle(child).getPropertyValue("scroll-snap-align").split(" ");
|
|
66
70
|
if (typeof childAlignX === "undefined") childAlignX = childAlignY;
|
|
67
71
|
const childAlign = axis === "x" ? childAlignX : childAlignY;
|
|
68
|
-
|
|
72
|
+
let childOffsetStart;
|
|
73
|
+
let childOffsetEnd;
|
|
74
|
+
let childOffsetCenter;
|
|
75
|
+
if (useRtlCalc) {
|
|
76
|
+
const scrollOffset = Math.abs(parent[axisScroll]);
|
|
77
|
+
const rightOffset = parentRect[axisEnd] - childRect[axisEnd] + scrollOffset;
|
|
78
|
+
childOffsetStart = rightOffset;
|
|
79
|
+
childOffsetEnd = rightOffset + childRect[axisSize];
|
|
80
|
+
childOffsetCenter = rightOffset + childRect[axisSize] / 2;
|
|
81
|
+
} else {
|
|
82
|
+
childOffsetStart = childRect[axisStart] - parentRect[axisStart] + parent[axisScroll];
|
|
83
|
+
childOffsetEnd = childOffsetStart + childRect[axisSize];
|
|
84
|
+
childOffsetCenter = childOffsetStart + childRect[axisSize] / 2;
|
|
85
|
+
}
|
|
69
86
|
switch (childAlign) {
|
|
70
87
|
case "none": break;
|
|
71
88
|
case "start":
|
|
@@ -77,13 +94,13 @@ function getSnapPositions(parent, subtree = false) {
|
|
|
77
94
|
case "center":
|
|
78
95
|
positions[axis].center.push({
|
|
79
96
|
node: child,
|
|
80
|
-
position:
|
|
97
|
+
position: childOffsetCenter
|
|
81
98
|
});
|
|
82
99
|
break;
|
|
83
100
|
case "end":
|
|
84
101
|
positions[axis].end.push({
|
|
85
102
|
node: child,
|
|
86
|
-
position:
|
|
103
|
+
position: childOffsetEnd
|
|
87
104
|
});
|
|
88
105
|
break;
|
|
89
106
|
}
|
|
@@ -92,6 +109,7 @@ function getSnapPositions(parent, subtree = false) {
|
|
|
92
109
|
return positions;
|
|
93
110
|
}
|
|
94
111
|
function getScrollSnapPositions(element) {
|
|
112
|
+
const dir = getDirection(element);
|
|
95
113
|
const rect = element.getBoundingClientRect();
|
|
96
114
|
const scrollPadding = getScrollPadding(element);
|
|
97
115
|
const snapPositions = getSnapPositions(element);
|
|
@@ -99,12 +117,23 @@ function getScrollSnapPositions(element) {
|
|
|
99
117
|
x: element.scrollWidth - element.offsetWidth,
|
|
100
118
|
y: element.scrollHeight - element.offsetHeight
|
|
101
119
|
};
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
120
|
+
const isRtl = dir === "rtl";
|
|
121
|
+
const usesNegativeScrollLeft = isRtl && element.scrollLeft <= 0;
|
|
122
|
+
let xPositions;
|
|
123
|
+
if (isRtl) {
|
|
124
|
+
xPositions = uniq([
|
|
125
|
+
...snapPositions.x.start.map((v) => v.position - scrollPadding.x.after),
|
|
105
126
|
...snapPositions.x.center.map((v) => v.position - rect.width / 2),
|
|
106
|
-
...snapPositions.x.end.map((v) => v.position - rect.width + scrollPadding.x.
|
|
107
|
-
].map(clamp(0, maxScroll.x)))
|
|
127
|
+
...snapPositions.x.end.map((v) => v.position - rect.width + scrollPadding.x.before)
|
|
128
|
+
].map(clamp(0, maxScroll.x)));
|
|
129
|
+
if (usesNegativeScrollLeft) xPositions = xPositions.map((pos) => -pos);
|
|
130
|
+
} else xPositions = uniq([
|
|
131
|
+
...snapPositions.x.start.map((v) => v.position - scrollPadding.x.before),
|
|
132
|
+
...snapPositions.x.center.map((v) => v.position - rect.width / 2),
|
|
133
|
+
...snapPositions.x.end.map((v) => v.position - rect.width + scrollPadding.x.after)
|
|
134
|
+
].map(clamp(0, maxScroll.x)));
|
|
135
|
+
return {
|
|
136
|
+
x: xPositions,
|
|
108
137
|
y: uniq([
|
|
109
138
|
...snapPositions.y.start.map((v) => v.position - scrollPadding.y.before),
|
|
110
139
|
...snapPositions.y.center.map((v) => v.position - rect.height / 2),
|
|
@@ -113,13 +142,24 @@ function getScrollSnapPositions(element) {
|
|
|
113
142
|
};
|
|
114
143
|
}
|
|
115
144
|
function findSnapPoint(parent, axis, predicate) {
|
|
145
|
+
const dir = getDirection(parent);
|
|
146
|
+
const scrollPadding = getScrollPadding(parent);
|
|
116
147
|
const snapPositions = getSnapPositions(parent);
|
|
117
148
|
const items = [
|
|
118
149
|
...snapPositions[axis].start,
|
|
119
150
|
...snapPositions[axis].center,
|
|
120
151
|
...snapPositions[axis].end
|
|
121
152
|
];
|
|
122
|
-
|
|
153
|
+
const isRtl = dir === "rtl";
|
|
154
|
+
const usesNegativeScrollLeft = isRtl && axis === "x" && parent.scrollLeft <= 0;
|
|
155
|
+
for (const item of items) if (predicate(item.node)) {
|
|
156
|
+
let position;
|
|
157
|
+
if (axis === "x" && isRtl) {
|
|
158
|
+
position = item.position - scrollPadding.x.after;
|
|
159
|
+
if (usesNegativeScrollLeft) position = -position;
|
|
160
|
+
} else position = item.position - (axis === "x" ? scrollPadding.x.before : scrollPadding.y.before);
|
|
161
|
+
return position;
|
|
162
|
+
}
|
|
123
163
|
}
|
|
124
164
|
function getSnapPointTarget(parent, snapPoint) {
|
|
125
165
|
const rect = parent.getBoundingClientRect();
|
package/dist/scroll-snap.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require('./dom-query-CWZdWUGp.cjs');
|
|
2
|
-
const require_scroll_snap = require('./scroll-snap-
|
|
2
|
+
const require_scroll_snap = require('./scroll-snap-BvaE_jFu.cjs');
|
|
3
3
|
|
|
4
4
|
exports.findSnapPoint = require_scroll_snap.findSnapPoint;
|
|
5
5
|
exports.getScrollSnapPositions = require_scroll_snap.getScrollSnapPositions;
|
package/dist/scroll-snap.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import "./dom-query-Bwyyt0Vp.mjs";
|
|
2
|
-
import { i as getSnapPositions, n as getScrollSnapPositions, r as getSnapPointTarget, t as findSnapPoint } from "./scroll-snap-
|
|
2
|
+
import { i as getSnapPositions, n as getScrollSnapPositions, r as getSnapPointTarget, t as findSnapPoint } from "./scroll-snap-B279jSp5.mjs";
|
|
3
3
|
|
|
4
4
|
export { findSnapPoint, getScrollSnapPositions, getSnapPointTarget, getSnapPositions };
|