@artsy/palette 41.0.0-canary.1423.31655.0 → 41.0.0-canary.1433.31866.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.
- package/dist/Theme.d.ts +7 -7
- package/dist/elements/AutocompleteInput/AutocompleteInput.js +2 -2
- package/dist/elements/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/dist/elements/AutocompleteInput/AutocompleteInput.story.js +8 -8
- package/dist/elements/AutocompleteInput/AutocompleteInput.story.js.map +1 -1
- package/dist/elements/AutocompleteInput/AutocompleteInputOption.js +2 -2
- package/dist/elements/AutocompleteInput/AutocompleteInputOption.js.map +1 -1
- package/dist/elements/Avatar/Avatar.js +2 -2
- package/dist/elements/Avatar/Avatar.js.map +1 -1
- package/dist/elements/Banner/Banner.js +7 -7
- package/dist/elements/Banner/Banner.js.map +1 -1
- package/dist/elements/BaseTabs/BaseTab.d.ts +2 -2
- package/dist/elements/BaseTabs/BaseTabs.js +1 -1
- package/dist/elements/BaseTabs/BaseTabs.js.map +1 -1
- package/dist/elements/BaseTabs/BaseTabs.story.js +2 -2
- package/dist/elements/BaseTabs/BaseTabs.story.js.map +1 -1
- package/dist/elements/BaseTabs/tokens.js +3 -3
- package/dist/elements/BaseTabs/tokens.js.map +1 -1
- package/dist/elements/BorderBox/BorderBox.d.ts +1 -1
- package/dist/elements/BorderBox/BorderBox.js +2 -2
- package/dist/elements/BorderBox/BorderBox.js.map +1 -1
- package/dist/elements/BorderBox/BorderBoxBase.js +1 -1
- package/dist/elements/BorderBox/BorderBoxBase.js.map +1 -1
- package/dist/elements/BorderedRadio/BorderedRadio.js +1 -1
- package/dist/elements/BorderedRadio/BorderedRadio.js.map +1 -1
- package/dist/elements/Box/Box.d.ts +5 -2
- package/dist/elements/Box/Box.js +9 -2
- package/dist/elements/Box/Box.js.map +1 -1
- package/dist/elements/Breadcrumbs/Breadcrumbs.js +2 -2
- package/dist/elements/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/elements/Button/Button.story.js +5 -5
- package/dist/elements/Button/Button.story.js.map +1 -1
- package/dist/elements/Button/tokens.js +45 -45
- package/dist/elements/Button/tokens.js.map +1 -1
- package/dist/elements/Cards/Card.js +3 -3
- package/dist/elements/Cards/Card.js.map +1 -1
- package/dist/elements/Cards/TriptychCard.js +13 -13
- package/dist/elements/Cards/TriptychCard.js.map +1 -1
- package/dist/elements/Carousel/Carousel.story.js +16 -16
- package/dist/elements/Carousel/Carousel.story.js.map +1 -1
- package/dist/elements/Carousel/CarouselNavigation.js +2 -2
- package/dist/elements/Carousel/CarouselNavigation.js.map +1 -1
- package/dist/elements/CarouselBar/CarouselBar.js +1 -1
- package/dist/elements/CarouselBar/CarouselBar.js.map +1 -1
- package/dist/elements/Checkbox/tokens.js +14 -14
- package/dist/elements/Checkbox/tokens.js.map +1 -1
- package/dist/elements/Clickable/Clickable.story.js +1 -1
- package/dist/elements/Clickable/Clickable.story.js.map +1 -1
- package/dist/elements/Drawer/Drawer.js +1 -1
- package/dist/elements/Drawer/Drawer.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.d.ts +3 -1
- package/dist/elements/Dropdown/Dropdown.js +41 -7
- package/dist/elements/Dropdown/Dropdown.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.story.js +35 -5
- package/dist/elements/Dropdown/Dropdown.story.js.map +1 -1
- package/dist/elements/EntityHeader/EntityHeader.js +1 -1
- package/dist/elements/EntityHeader/EntityHeader.js.map +1 -1
- package/dist/elements/Expandable/Expandable.js +1 -1
- package/dist/elements/Expandable/Expandable.js.map +1 -1
- package/dist/elements/Expandable/Expandable.story.js +3 -3
- package/dist/elements/Expandable/Expandable.story.js.map +1 -1
- package/dist/elements/FilterSelect/FilterSelect.js +1 -1
- package/dist/elements/FilterSelect/FilterSelect.js.map +1 -1
- package/dist/elements/FullBleed/FullBleed.story.js +1 -1
- package/dist/elements/FullBleed/FullBleed.story.js.map +1 -1
- package/dist/elements/GridColumns/GridColumns.story.js +25 -25
- package/dist/elements/GridColumns/GridColumns.story.js.map +1 -1
- package/dist/elements/HTML/HTML.js +1 -1
- package/dist/elements/HTML/HTML.js.map +1 -1
- package/dist/elements/HorizontalOverflow/HorizontalOverflow.story.js +3 -3
- package/dist/elements/HorizontalOverflow/HorizontalOverflow.story.js.map +1 -1
- package/dist/elements/Image/Image.js +1 -1
- package/dist/elements/Image/Image.js.map +1 -1
- package/dist/elements/Input/Input.js +3 -3
- package/dist/elements/Input/Input.js.map +1 -1
- package/dist/elements/Input/tokens.js +6 -6
- package/dist/elements/Input/tokens.js.map +1 -1
- package/dist/elements/Label/Label.js +5 -5
- package/dist/elements/Label/Label.js.map +1 -1
- package/dist/elements/LabeledInput/LabeledInput.js +1 -1
- package/dist/elements/LabeledInput/LabeledInput.js.map +1 -1
- package/dist/elements/LabeledInput/LabeledInput.story.js +1 -1
- package/dist/elements/LabeledInput/LabeledInput.story.js.map +1 -1
- package/dist/elements/Marquee/Marquee.js +6 -6
- package/dist/elements/Marquee/Marquee.js.map +1 -1
- package/dist/elements/Message/Message.js +3 -3
- package/dist/elements/Message/Message.js.map +1 -1
- package/dist/elements/Modal/ModalBase.story.js +1 -1
- package/dist/elements/Modal/ModalBase.story.js.map +1 -1
- package/dist/elements/ModalDialog/ModalDialog.story.js +10 -10
- package/dist/elements/ModalDialog/ModalDialog.story.js.map +1 -1
- package/dist/elements/ModalDialog/ModalDialogContent.js +2 -2
- package/dist/elements/ModalDialog/ModalDialogContent.js.map +1 -1
- package/dist/elements/ModalDialog/ModalDialogContent.story.js +1 -1
- package/dist/elements/ModalDialog/ModalDialogContent.story.js.map +1 -1
- package/dist/elements/MultiSelect/MultiSelect.js +4 -4
- package/dist/elements/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/elements/MultiSelect/tokens.js +6 -6
- package/dist/elements/MultiSelect/tokens.js.map +1 -1
- package/dist/elements/Pagination/Pagination.js +5 -5
- package/dist/elements/Pagination/Pagination.js.map +1 -1
- package/dist/elements/PhoneInput/PhoneInput.js +7 -7
- package/dist/elements/PhoneInput/PhoneInput.js.map +1 -1
- package/dist/elements/PhoneInput/tokens.js +6 -6
- package/dist/elements/PhoneInput/tokens.js.map +1 -1
- package/dist/elements/Pill/Pill.js +2 -2
- package/dist/elements/Pill/Pill.js.map +1 -1
- package/dist/elements/Pill/Pill.story.js +4 -4
- package/dist/elements/Pill/Pill.story.js.map +1 -1
- package/dist/elements/Pill/tokens.js +23 -23
- package/dist/elements/Pill/tokens.js.map +1 -1
- package/dist/elements/Pointer/Pointer.js +2 -2
- package/dist/elements/Pointer/Pointer.js.map +1 -1
- package/dist/elements/Popover/Popover.js +4 -4
- package/dist/elements/Popover/Popover.js.map +1 -1
- package/dist/elements/Popover/Popover.story.d.ts +1 -0
- package/dist/elements/Popover/Popover.story.js +48 -2
- package/dist/elements/Popover/Popover.story.js.map +1 -1
- package/dist/elements/ProgressBar/ProgressBar.js +1 -1
- package/dist/elements/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/elements/ProgressDots/ProgressDots.js +1 -1
- package/dist/elements/ProgressDots/ProgressDots.js.map +1 -1
- package/dist/elements/Radio/Radio.js +1 -1
- package/dist/elements/Radio/Radio.js.map +1 -1
- package/dist/elements/Radio/Radio.story.js +1 -1
- package/dist/elements/Radio/Radio.story.js.map +1 -1
- package/dist/elements/Radio/tokens.js +14 -14
- package/dist/elements/Radio/tokens.js.map +1 -1
- package/dist/elements/RadioGroup/RadioGroup.js +1 -1
- package/dist/elements/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/elements/Range/Range.js +3 -3
- package/dist/elements/Range/Range.js.map +1 -1
- package/dist/elements/Range/Range.story.js +2 -2
- package/dist/elements/Range/Range.story.js.map +1 -1
- package/dist/elements/ResponsiveBox/ResponsiveBox.story.js +2 -2
- package/dist/elements/ResponsiveBox/ResponsiveBox.story.js.map +1 -1
- package/dist/elements/Select/Select.js +4 -4
- package/dist/elements/Select/Select.js.map +1 -1
- package/dist/elements/Select/tokens.js +6 -6
- package/dist/elements/Select/tokens.js.map +1 -1
- package/dist/elements/Separator/Separator.js +1 -1
- package/dist/elements/Separator/Separator.js.map +1 -1
- package/dist/elements/Separator/Separator.story.js +1 -1
- package/dist/elements/Separator/Separator.story.js.map +1 -1
- package/dist/elements/Shelf/Shelf.story.js +2 -2
- package/dist/elements/Shelf/Shelf.story.js.map +1 -1
- package/dist/elements/Shelf/ShelfNavigation.js +3 -3
- package/dist/elements/Shelf/ShelfNavigation.js.map +1 -1
- package/dist/elements/Shelf/ShelfScrollBar.js +3 -3
- package/dist/elements/Shelf/ShelfScrollBar.js.map +1 -1
- package/dist/elements/Skeleton/Skeleton.d.ts +1 -1
- package/dist/elements/Skeleton/Skeleton.js +3 -3
- package/dist/elements/Skeleton/Skeleton.js.map +1 -1
- package/dist/elements/Skip/Skip.js +1 -1
- package/dist/elements/Skip/Skip.js.map +1 -1
- package/dist/elements/Spacer/Spacer.story.js +4 -4
- package/dist/elements/Spacer/Spacer.story.js.map +1 -1
- package/dist/elements/Spinner/Spinner.js +1 -1
- package/dist/elements/Spinner/Spinner.js.map +1 -1
- package/dist/elements/Stepper/Stepper.js +3 -4
- package/dist/elements/Stepper/Stepper.js.map +1 -1
- package/dist/elements/Sup/Sup.d.ts +2 -2
- package/dist/elements/Swiper/Swiper.story.js +13 -13
- package/dist/elements/Swiper/Swiper.story.js.map +1 -1
- package/dist/elements/Tabs/Tabs.d.ts +0 -4
- package/dist/elements/Tabs/Tabs.js +2 -11
- package/dist/elements/Tabs/Tabs.js.map +1 -1
- package/dist/elements/Tabs/Tabs.story.d.ts +1 -0
- package/dist/elements/Tabs/Tabs.story.js +35 -3
- package/dist/elements/Tabs/Tabs.story.js.map +1 -1
- package/dist/elements/Text/Text.story.js +4 -4
- package/dist/elements/Text/Text.story.js.map +1 -1
- package/dist/elements/TextArea/TextArea.js +5 -5
- package/dist/elements/TextArea/TextArea.js.map +1 -1
- package/dist/elements/TextArea/tokens.js +6 -6
- package/dist/elements/TextArea/tokens.js.map +1 -1
- package/dist/elements/Toasts/Toast.js +7 -7
- package/dist/elements/Toasts/Toast.js.map +1 -1
- package/dist/elements/Toggle/tokens.js +2 -2
- package/dist/elements/Toggle/tokens.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.js +4 -4
- package/dist/elements/Tooltip/Tooltip.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.story.js +7 -7
- package/dist/elements/Tooltip/Tooltip.story.js.map +1 -1
- package/dist/helpers/injectGlobalStyles.js +1 -1
- package/dist/helpers/injectGlobalStyles.js.map +1 -1
- package/dist/shared/RequiredField.js +1 -1
- package/dist/shared/RequiredField.js.map +1 -1
- package/dist/styles.css +21 -21
- package/dist/themes/Themes.story.js +42 -42
- package/dist/themes/Themes.story.js.map +1 -1
- package/dist/tokens.json +7 -7
- package/dist/utils/usePosition.d.ts +18 -3
- package/dist/utils/usePosition.js +123 -40
- package/dist/utils/usePosition.js.map +1 -1
- package/package.json +3 -4
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.POSITION = void 0;
|
|
6
|
+
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.calculateMaxHeight = exports.POSITION = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _useMutationObserver = require("./useMutationObserver");
|
|
9
9
|
var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");
|
|
@@ -46,7 +46,9 @@ var usePosition = function usePosition(_ref) {
|
|
|
46
46
|
_ref$flip = _ref.flip,
|
|
47
47
|
flip = _ref$flip === void 0 ? true : _ref$flip,
|
|
48
48
|
_ref$clamp = _ref.clamp,
|
|
49
|
-
clamp = _ref$clamp === void 0 ? true : _ref$clamp
|
|
49
|
+
clamp = _ref$clamp === void 0 ? true : _ref$clamp,
|
|
50
|
+
_ref$padding = _ref.padding,
|
|
51
|
+
padding = _ref$padding === void 0 ? 0 : _ref$padding;
|
|
50
52
|
var _useState = (0, _react.useState)({
|
|
51
53
|
isFlipped: false
|
|
52
54
|
}),
|
|
@@ -59,14 +61,17 @@ var usePosition = function usePosition(_ref) {
|
|
|
59
61
|
if (!active || !tooltipRef.current || !anchorRef.current) return;
|
|
60
62
|
var tooltip = tooltipRef.current;
|
|
61
63
|
var anchor = anchorRef.current;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
requestAnimationFrame(function () {
|
|
65
|
+
setState(placeTooltip({
|
|
66
|
+
anchor: anchor,
|
|
67
|
+
tooltip: tooltip,
|
|
68
|
+
position: position,
|
|
69
|
+
offset: offset,
|
|
70
|
+
flip: flip,
|
|
71
|
+
clamp: clamp,
|
|
72
|
+
padding: padding
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
70
75
|
};
|
|
71
76
|
|
|
72
77
|
// Re-position when there's any change to the tooltip
|
|
@@ -93,27 +98,33 @@ var usePosition = function usePosition(_ref) {
|
|
|
93
98
|
tooltip.style.top = "0";
|
|
94
99
|
tooltip.style.left = "0";
|
|
95
100
|
var handleScroll = function handleScroll() {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
requestAnimationFrame(function () {
|
|
102
|
+
setState(placeTooltip({
|
|
103
|
+
anchor: anchor,
|
|
104
|
+
tooltip: tooltip,
|
|
105
|
+
position: position,
|
|
106
|
+
offset: offset,
|
|
107
|
+
flip: flip,
|
|
108
|
+
clamp: clamp,
|
|
109
|
+
padding: padding
|
|
110
|
+
}));
|
|
111
|
+
});
|
|
104
112
|
};
|
|
105
113
|
document.addEventListener("scroll", handleScroll, {
|
|
106
114
|
passive: true
|
|
107
115
|
});
|
|
108
116
|
var handleResize = function handleResize() {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
requestAnimationFrame(function () {
|
|
118
|
+
setState(placeTooltip({
|
|
119
|
+
anchor: anchor,
|
|
120
|
+
tooltip: tooltip,
|
|
121
|
+
position: position,
|
|
122
|
+
offset: offset,
|
|
123
|
+
flip: flip,
|
|
124
|
+
clamp: clamp,
|
|
125
|
+
padding: padding
|
|
126
|
+
}));
|
|
127
|
+
});
|
|
117
128
|
};
|
|
118
129
|
window.addEventListener("resize", handleResize, {
|
|
119
130
|
passive: true
|
|
@@ -124,7 +135,8 @@ var usePosition = function usePosition(_ref) {
|
|
|
124
135
|
position: position,
|
|
125
136
|
offset: offset,
|
|
126
137
|
flip: flip,
|
|
127
|
-
clamp: clamp
|
|
138
|
+
clamp: clamp,
|
|
139
|
+
padding: padding
|
|
128
140
|
}));
|
|
129
141
|
return function () {
|
|
130
142
|
document.removeEventListener("scroll", handleScroll);
|
|
@@ -151,10 +163,16 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
151
163
|
_ref2$flip = _ref2.flip,
|
|
152
164
|
flip = _ref2$flip === void 0 ? true : _ref2$flip,
|
|
153
165
|
_ref2$clamp = _ref2.clamp,
|
|
154
|
-
clamp = _ref2$clamp === void 0 ? true : _ref2$clamp
|
|
166
|
+
clamp = _ref2$clamp === void 0 ? true : _ref2$clamp,
|
|
167
|
+
_ref2$padding = _ref2.padding,
|
|
168
|
+
padding = _ref2$padding === void 0 ? 0 : _ref2$padding;
|
|
155
169
|
var elementRect = anchor.getBoundingClientRect();
|
|
156
170
|
var tooltipRect = tooltip.getBoundingClientRect();
|
|
157
|
-
var targetPosition = getPosition(
|
|
171
|
+
var targetPosition = getPosition({
|
|
172
|
+
elementRect: elementRect,
|
|
173
|
+
tooltipRect: tooltipRect,
|
|
174
|
+
position: position
|
|
175
|
+
});
|
|
158
176
|
|
|
159
177
|
// Flip to avoid edges
|
|
160
178
|
var isFlipped = flip && shouldFlip({
|
|
@@ -165,7 +183,11 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
165
183
|
});
|
|
166
184
|
if (isFlipped) {
|
|
167
185
|
position = getOppositePosition(position);
|
|
168
|
-
targetPosition = getPosition(
|
|
186
|
+
targetPosition = getPosition({
|
|
187
|
+
elementRect: elementRect,
|
|
188
|
+
tooltipRect: tooltipRect,
|
|
189
|
+
position: position
|
|
190
|
+
});
|
|
169
191
|
}
|
|
170
192
|
|
|
171
193
|
// Clamp position within boundary
|
|
@@ -174,6 +196,26 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
174
196
|
targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
|
|
175
197
|
targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
|
|
176
198
|
targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
|
|
199
|
+
|
|
200
|
+
// Apply padding to boundary
|
|
201
|
+
switch (position) {
|
|
202
|
+
case "top-start":
|
|
203
|
+
case "top":
|
|
204
|
+
case "top-end":
|
|
205
|
+
case "bottom-start":
|
|
206
|
+
case "bottom":
|
|
207
|
+
case "bottom-end":
|
|
208
|
+
targetPosition.x = targetPosition.x - padding;
|
|
209
|
+
break;
|
|
210
|
+
case "left-start":
|
|
211
|
+
case "left":
|
|
212
|
+
case "left-end":
|
|
213
|
+
case "right-start":
|
|
214
|
+
case "right":
|
|
215
|
+
case "right-end":
|
|
216
|
+
targetPosition.y = targetPosition.y + padding;
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
177
219
|
}
|
|
178
220
|
|
|
179
221
|
// Should hide entirely if it scrolls out of view
|
|
@@ -185,9 +227,14 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
185
227
|
};
|
|
186
228
|
};
|
|
187
229
|
exports.placeTooltip = placeTooltip;
|
|
188
|
-
var getPosition = function getPosition(
|
|
230
|
+
var getPosition = function getPosition(_ref3) {
|
|
231
|
+
var elementRect = _ref3.elementRect,
|
|
232
|
+
tooltipRect = _ref3.tooltipRect,
|
|
233
|
+
position = _ref3.position;
|
|
189
234
|
var x;
|
|
190
235
|
var y;
|
|
236
|
+
|
|
237
|
+
// X position
|
|
191
238
|
switch (position) {
|
|
192
239
|
case "top-start":
|
|
193
240
|
case "bottom-start":
|
|
@@ -214,6 +261,8 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
|
|
|
214
261
|
x = elementRect.right;
|
|
215
262
|
break;
|
|
216
263
|
}
|
|
264
|
+
|
|
265
|
+
// Y position
|
|
217
266
|
switch (position) {
|
|
218
267
|
case "left-start":
|
|
219
268
|
case "right-start":
|
|
@@ -249,7 +298,7 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
|
|
|
249
298
|
};
|
|
250
299
|
exports.getPosition = getPosition;
|
|
251
300
|
var translateWithOffset = function translateWithOffset(targetPosition, position, offset) {
|
|
252
|
-
var
|
|
301
|
+
var _ref4 = function () {
|
|
253
302
|
switch (position) {
|
|
254
303
|
case "top-start":
|
|
255
304
|
return [targetPosition.x, targetPosition.y - offset];
|
|
@@ -277,9 +326,9 @@ var translateWithOffset = function translateWithOffset(targetPosition, position,
|
|
|
277
326
|
return [targetPosition.x + offset, targetPosition.y];
|
|
278
327
|
}
|
|
279
328
|
}(),
|
|
280
|
-
|
|
281
|
-
x =
|
|
282
|
-
y =
|
|
329
|
+
_ref5 = _slicedToArray(_ref4, 2),
|
|
330
|
+
x = _ref5[0],
|
|
331
|
+
y = _ref5[1];
|
|
283
332
|
return "translate(".concat(x, "px, ").concat(y, "px)");
|
|
284
333
|
};
|
|
285
334
|
exports.translateWithOffset = translateWithOffset;
|
|
@@ -324,11 +373,11 @@ var getDocumentBoundingRect = function getDocumentBoundingRect() {
|
|
|
324
373
|
};
|
|
325
374
|
};
|
|
326
375
|
exports.getDocumentBoundingRect = getDocumentBoundingRect;
|
|
327
|
-
var shouldFlip = function shouldFlip(
|
|
328
|
-
var targetPosition =
|
|
329
|
-
position =
|
|
330
|
-
boundaryRect =
|
|
331
|
-
tooltipRect =
|
|
376
|
+
var shouldFlip = function shouldFlip(_ref6) {
|
|
377
|
+
var targetPosition = _ref6.targetPosition,
|
|
378
|
+
position = _ref6.position,
|
|
379
|
+
boundaryRect = _ref6.boundaryRect,
|
|
380
|
+
tooltipRect = _ref6.tooltipRect;
|
|
332
381
|
switch (position) {
|
|
333
382
|
case "top-start":
|
|
334
383
|
case "top":
|
|
@@ -352,4 +401,38 @@ exports.shouldFlip = shouldFlip;
|
|
|
352
401
|
var isWithin = function isWithin(elementRect, boundaryRect) {
|
|
353
402
|
return boundaryRect.top < elementRect.bottom && boundaryRect.left < elementRect.right && boundaryRect.bottom > elementRect.top && boundaryRect.right > elementRect.left;
|
|
354
403
|
};
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Calculate the maximum height available for a tooltip based on its placement and viewport constraints.
|
|
407
|
+
*/
|
|
408
|
+
var calculateMaxHeight = function calculateMaxHeight(_ref7) {
|
|
409
|
+
var anchorRect = _ref7.anchorRect,
|
|
410
|
+
position = _ref7.position,
|
|
411
|
+
_ref7$offset = _ref7.offset,
|
|
412
|
+
offset = _ref7$offset === void 0 ? 0 : _ref7$offset;
|
|
413
|
+
var viewportHeight = window.innerHeight;
|
|
414
|
+
switch (position) {
|
|
415
|
+
case "top-start":
|
|
416
|
+
case "top":
|
|
417
|
+
case "top-end":
|
|
418
|
+
// Space from top of anchor to top of viewport
|
|
419
|
+
return anchorRect.top - offset * 2;
|
|
420
|
+
case "bottom-start":
|
|
421
|
+
case "bottom":
|
|
422
|
+
case "bottom-end":
|
|
423
|
+
// Space from bottom of anchor to bottom of viewport
|
|
424
|
+
return viewportHeight - anchorRect.bottom - offset * 2;
|
|
425
|
+
case "left-start":
|
|
426
|
+
case "left":
|
|
427
|
+
case "left-end":
|
|
428
|
+
case "right-start":
|
|
429
|
+
case "right":
|
|
430
|
+
case "right-end":
|
|
431
|
+
// For side placements, use the entire viewport height
|
|
432
|
+
return viewportHeight - offset * 2;
|
|
433
|
+
default:
|
|
434
|
+
return viewportHeight;
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
exports.calculateMaxHeight = calculateMaxHeight;
|
|
355
438
|
//# sourceMappingURL=usePosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handleScroll","document","addEventListener","passive","handleResize","window","removeEventListener","_ref2","_ref2$offset","_ref2$boundaryRect","boundaryRect","getDocumentBoundingRect","_ref2$flip","_ref2$clamp","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","shouldFlip","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","isWithin","display","transform","translateWithOffset","_ref3","_ref4","concat","body","clientWidth","clientHeight","_ref5"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handleScroll = () => {\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n document.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n\n const handleResize = () => {\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n window.addEventListener(\"resize\", handleResize, { passive: true })\n\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n\n return () => {\n document.removeEventListener(\"scroll\", handleScroll)\n window.removeEventListener(\"resize\", handleResize)\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n boundaryRect?: DOMRect\n flip?: boolean\n clamp?: boolean\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n boundaryRect = getDocumentBoundingRect(),\n flip = true,\n clamp = true,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition(elementRect, tooltipRect, position)\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n shouldFlip({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition(elementRect, tooltipRect, position)\n }\n\n // Clamp position within boundary\n if (clamp) {\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n }\n\n // Should hide entirely if it scrolls out of view\n const shouldHide = !isWithin(elementRect, boundaryRect)\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = (\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >,\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">,\n position: Position\n): TargetPosition => {\n let x: number\n let y: number\n\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n } as DOMRect\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_ref$padding","padding","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","requestAnimationFrame","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handleScroll","document","addEventListener","passive","handleResize","window","removeEventListener","_ref2","_ref2$offset","_ref2$boundaryRect","boundaryRect","getDocumentBoundingRect","_ref2$flip","_ref2$clamp","_ref2$padding","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","shouldFlip","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","isWithin","display","transform","translateWithOffset","_ref3","_ref4","_ref5","concat","body","clientWidth","clientHeight","_ref6","calculateMaxHeight","_ref7","anchorRect","_ref7$offset","viewportHeight","innerHeight"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n padding = 0,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n /** Add boundary padding (default: `0`) used when clamping */\n padding?: number\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n requestAnimationFrame(() => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n padding,\n })\n )\n })\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handleScroll = () => {\n requestAnimationFrame(() => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n padding,\n })\n )\n })\n }\n\n document.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n\n const handleResize = () => {\n requestAnimationFrame(() => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n padding,\n })\n )\n })\n }\n\n window.addEventListener(\"resize\", handleResize, { passive: true })\n\n setState(\n placeTooltip({ anchor, tooltip, position, offset, flip, clamp, padding })\n )\n\n return () => {\n document.removeEventListener(\"scroll\", handleScroll)\n window.removeEventListener(\"resize\", handleResize)\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n boundaryRect?: DOMRect\n flip?: boolean\n clamp?: boolean\n padding?: number\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n boundaryRect = getDocumentBoundingRect(),\n flip = true,\n clamp = true,\n padding = 0,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition({\n elementRect,\n tooltipRect,\n position,\n })\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n shouldFlip({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition({ elementRect, tooltipRect, position })\n }\n\n // Clamp position within boundary\n if (clamp) {\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n\n // Apply padding to boundary\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n targetPosition.x = targetPosition.x - padding\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n targetPosition.y = targetPosition.y + padding\n break\n }\n }\n\n // Should hide entirely if it scrolls out of view\n const shouldHide = !isWithin(elementRect, boundaryRect)\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = ({\n elementRect,\n tooltipRect,\n position,\n}: {\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n position: Position\n}): TargetPosition => {\n let x: number\n let y: number\n\n // X position\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n // Y position\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n } as DOMRect\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n\n/**\n * Calculate the maximum height available for a tooltip based on its placement and viewport constraints.\n */\nexport const calculateMaxHeight = ({\n anchorRect,\n position,\n offset = 0,\n}: {\n anchorRect: DOMRect\n position: Position\n offset?: number\n}): number => {\n const viewportHeight = window.innerHeight\n\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // Space from top of anchor to top of viewport\n return anchorRect.top - offset * 2\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // Space from bottom of anchor to bottom of viewport\n return viewportHeight - anchorRect.bottom - offset * 2\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // For side placements, use the entire viewport height\n return viewportHeight - offset * 2\n default:\n return viewportHeight\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "41.0.0-canary.
|
|
3
|
+
"version": "41.0.0-canary.1433.31866.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -118,13 +118,12 @@
|
|
|
118
118
|
},
|
|
119
119
|
"dependencies": {
|
|
120
120
|
"@artsy/icons": "^3.2.2",
|
|
121
|
-
"@artsy/palette-tokens": "
|
|
121
|
+
"@artsy/palette-tokens": "7.0.0-canary.1433.31866.0",
|
|
122
122
|
"@seznam/compose-react-refs": "^1.0.6",
|
|
123
123
|
"@styled-system/theme-get": "^5.1.2",
|
|
124
124
|
"es-toolkit": "^1.16.0",
|
|
125
125
|
"proportional-scale": "^4.0.0",
|
|
126
126
|
"react-focus-on": "^3.7.0",
|
|
127
|
-
"react-lazy-load-image-component": "1.6.2",
|
|
128
127
|
"styled-system": "^5.1.5",
|
|
129
128
|
"trunc-html": "^1.1.2",
|
|
130
129
|
"use-cursor": "^1.2.3",
|
|
@@ -188,5 +187,5 @@
|
|
|
188
187
|
"url": "http://localhost"
|
|
189
188
|
}
|
|
190
189
|
},
|
|
191
|
-
"gitHead": "
|
|
190
|
+
"gitHead": "c29485a09db4d0fd9d85935826cd3c57aec92c68"
|
|
192
191
|
}
|