@artsy/palette 37.4.0-canary.1351.29887.0 → 38.0.0-canary.1357.29988.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 +8 -1
- package/dist/Theme.js +10 -2
- package/dist/Theme.js.map +1 -1
- package/dist/elements/AutocompleteInput/AutocompleteInput.js +2 -2
- package/dist/elements/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/dist/elements/BaseTabs/BaseTab.d.ts +4 -4
- package/dist/elements/BorderedRadio/BorderedRadio.d.ts +1 -1
- package/dist/elements/Button/Button.js +2 -2
- package/dist/elements/Button/Button.js.map +1 -1
- package/dist/elements/Button/tokens.js +4 -8
- package/dist/elements/Button/tokens.js.map +1 -1
- package/dist/elements/Cards/Card.js +6 -3
- package/dist/elements/Cards/Card.js.map +1 -1
- package/dist/elements/Checkbox/Checkbox.js +1 -1
- package/dist/elements/Checkbox/Checkbox.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.js +2 -2
- package/dist/elements/Dropdown/Dropdown.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.story.d.ts +0 -1
- package/dist/elements/Dropdown/Dropdown.story.js +1 -41
- package/dist/elements/Dropdown/Dropdown.story.js.map +1 -1
- package/dist/elements/HorizontalOverflow/HorizontalOverflow.js +8 -5
- package/dist/elements/HorizontalOverflow/HorizontalOverflow.js.map +1 -1
- package/dist/elements/Input/tokens.js +1 -1
- package/dist/elements/Input/tokens.js.map +1 -1
- package/dist/elements/ModalDialog/ModalDialogContent.js +6 -4
- package/dist/elements/ModalDialog/ModalDialogContent.js.map +1 -1
- package/dist/elements/MultiSelect/MultiSelect.js +1 -1
- package/dist/elements/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/elements/PhoneInput/PhoneInput.js +1 -2
- package/dist/elements/PhoneInput/PhoneInput.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 +2 -2
- package/dist/elements/Popover/Popover.js.map +1 -1
- package/dist/elements/Popover/Popover.story.d.ts +0 -10
- package/dist/elements/Popover/Popover.story.js +10 -59
- package/dist/elements/Popover/Popover.story.js.map +1 -1
- package/dist/elements/Range/Range.js +1 -2
- package/dist/elements/Range/Range.js.map +1 -1
- package/dist/elements/Shelf/ShelfNavigation.js +1 -2
- package/dist/elements/Shelf/ShelfNavigation.js.map +1 -1
- package/dist/elements/Sup/Sup.d.ts +4 -4
- package/dist/elements/Text/Text.d.ts +4 -4
- package/dist/elements/TextArea/TextArea.js +1 -1
- package/dist/elements/TextArea/TextArea.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.js +2 -1
- package/dist/elements/Tooltip/Tooltip.js.map +1 -1
- package/dist/elements/Tooltip/Tooltip.story.d.ts +1 -0
- package/dist/elements/Tooltip/Tooltip.story.js +20 -1
- package/dist/elements/Tooltip/Tooltip.story.js.map +1 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.js +0 -11
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/injectGlobalStyles.js +1 -1
- package/dist/helpers/injectGlobalStyles.js.map +1 -1
- package/dist/styles.css +48 -0
- package/dist/tokens.json +7 -1
- package/dist/utils/usePortal.js +2 -4
- package/dist/utils/usePortal.js.map +1 -1
- package/dist/utils/usePosition.d.ts +3 -14
- package/dist/utils/usePosition.js +72 -134
- package/dist/utils/usePosition.js.map +1 -1
- package/package.json +3 -3
- package/dist/helpers/shadow.d.ts +0 -5
- package/dist/helpers/shadow.js +0 -16
- package/dist/helpers/shadow.js.map +0 -1
|
@@ -3,12 +3,11 @@
|
|
|
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.
|
|
6
|
+
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.POSITION = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _useMutationObserver = require("./useMutationObserver");
|
|
9
9
|
var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");
|
|
10
10
|
var _useResizeObserver = require("./useResizeObserver");
|
|
11
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
12
11
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
12
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
13
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -57,18 +56,16 @@ var usePosition = function usePosition(_ref) {
|
|
|
57
56
|
var tooltipRef = (0, _react.useRef)(null);
|
|
58
57
|
var anchorRef = (0, _react.useRef)(null);
|
|
59
58
|
var update = function update() {
|
|
60
|
-
if (!tooltipRef.current || !anchorRef.current) return;
|
|
59
|
+
if (!active || !tooltipRef.current || !anchorRef.current) return;
|
|
61
60
|
var tooltip = tooltipRef.current;
|
|
62
61
|
var anchor = anchorRef.current;
|
|
63
|
-
var scrollableParents = getScrollableParents(anchor);
|
|
64
62
|
setState(placeTooltip({
|
|
65
63
|
anchor: anchor,
|
|
66
64
|
tooltip: tooltip,
|
|
67
65
|
position: position,
|
|
68
66
|
offset: offset,
|
|
69
67
|
flip: flip,
|
|
70
|
-
clamp: clamp
|
|
71
|
-
scrollableParents: scrollableParents
|
|
68
|
+
clamp: clamp
|
|
72
69
|
}));
|
|
73
70
|
};
|
|
74
71
|
|
|
@@ -95,54 +92,43 @@ var usePosition = function usePosition(_ref) {
|
|
|
95
92
|
tooltip.style.position = "fixed";
|
|
96
93
|
tooltip.style.top = "0";
|
|
97
94
|
tooltip.style.left = "0";
|
|
98
|
-
var
|
|
95
|
+
var handleScroll = function handleScroll() {
|
|
99
96
|
setState(placeTooltip({
|
|
100
97
|
anchor: anchor,
|
|
101
98
|
tooltip: tooltip,
|
|
102
99
|
position: position,
|
|
103
100
|
offset: offset,
|
|
104
101
|
flip: flip,
|
|
105
|
-
clamp: clamp
|
|
106
|
-
scrollableParents: scrollableParents
|
|
102
|
+
clamp: clamp
|
|
107
103
|
}));
|
|
108
104
|
};
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return {
|
|
112
|
-
scrollableParent: scrollableParent,
|
|
113
|
-
handlerScroll: function handlerScroll() {
|
|
114
|
-
setState(placeTooltip({
|
|
115
|
-
anchor: anchor,
|
|
116
|
-
tooltip: tooltip,
|
|
117
|
-
position: position,
|
|
118
|
-
offset: offset,
|
|
119
|
-
flip: flip,
|
|
120
|
-
clamp: clamp,
|
|
121
|
-
scrollableParents: scrollableParents
|
|
122
|
-
}));
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
});
|
|
126
|
-
handlers.forEach(function (_ref2) {
|
|
127
|
-
var scrollableParent = _ref2.scrollableParent,
|
|
128
|
-
handlerScroll = _ref2.handlerScroll;
|
|
129
|
-
scrollableParent.addEventListener("scroll", handlerScroll, {
|
|
130
|
-
passive: true
|
|
131
|
-
});
|
|
105
|
+
document.addEventListener("scroll", handleScroll, {
|
|
106
|
+
passive: true
|
|
132
107
|
});
|
|
133
|
-
|
|
108
|
+
var handleResize = function handleResize() {
|
|
109
|
+
setState(placeTooltip({
|
|
110
|
+
anchor: anchor,
|
|
111
|
+
tooltip: tooltip,
|
|
112
|
+
position: position,
|
|
113
|
+
offset: offset,
|
|
114
|
+
flip: flip,
|
|
115
|
+
clamp: clamp
|
|
116
|
+
}));
|
|
117
|
+
};
|
|
118
|
+
window.addEventListener("resize", handleResize, {
|
|
134
119
|
passive: true
|
|
135
120
|
});
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
121
|
+
setState(placeTooltip({
|
|
122
|
+
anchor: anchor,
|
|
123
|
+
tooltip: tooltip,
|
|
124
|
+
position: position,
|
|
125
|
+
offset: offset,
|
|
126
|
+
flip: flip,
|
|
127
|
+
clamp: clamp
|
|
128
|
+
}));
|
|
139
129
|
return function () {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
var scrollableParent = _ref3.scrollableParent,
|
|
143
|
-
handlerScroll = _ref3.handlerScroll;
|
|
144
|
-
scrollableParent.removeEventListener("scroll", handlerScroll);
|
|
145
|
-
});
|
|
130
|
+
document.removeEventListener("scroll", handleScroll);
|
|
131
|
+
window.removeEventListener("resize", handleResize);
|
|
146
132
|
};
|
|
147
133
|
}, [active, tooltipRef, anchorRef, position]);
|
|
148
134
|
return {
|
|
@@ -154,29 +140,28 @@ var usePosition = function usePosition(_ref) {
|
|
|
154
140
|
};
|
|
155
141
|
};
|
|
156
142
|
exports.usePosition = usePosition;
|
|
157
|
-
var placeTooltip = function placeTooltip(
|
|
158
|
-
var anchor =
|
|
159
|
-
tooltip =
|
|
160
|
-
position =
|
|
161
|
-
|
|
162
|
-
offset =
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
143
|
+
var placeTooltip = function placeTooltip(_ref2) {
|
|
144
|
+
var anchor = _ref2.anchor,
|
|
145
|
+
tooltip = _ref2.tooltip,
|
|
146
|
+
position = _ref2.position,
|
|
147
|
+
_ref2$offset = _ref2.offset,
|
|
148
|
+
offset = _ref2$offset === void 0 ? 0 : _ref2$offset,
|
|
149
|
+
_ref2$boundaryRect = _ref2.boundaryRect,
|
|
150
|
+
boundaryRect = _ref2$boundaryRect === void 0 ? getDocumentBoundingRect() : _ref2$boundaryRect,
|
|
151
|
+
_ref2$flip = _ref2.flip,
|
|
152
|
+
flip = _ref2$flip === void 0 ? true : _ref2$flip,
|
|
153
|
+
_ref2$clamp = _ref2.clamp,
|
|
154
|
+
clamp = _ref2$clamp === void 0 ? true : _ref2$clamp;
|
|
168
155
|
var elementRect = anchor.getBoundingClientRect();
|
|
169
156
|
var tooltipRect = tooltip.getBoundingClientRect();
|
|
170
157
|
var targetPosition = getPosition(elementRect, tooltipRect, position);
|
|
171
158
|
|
|
172
159
|
// Flip to avoid edges
|
|
173
|
-
var isFlipped = flip &&
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
tooltipRect: tooltipRect
|
|
179
|
-
});
|
|
160
|
+
var isFlipped = flip && shouldFlip({
|
|
161
|
+
targetPosition: targetPosition,
|
|
162
|
+
position: position,
|
|
163
|
+
boundaryRect: boundaryRect,
|
|
164
|
+
tooltipRect: tooltipRect
|
|
180
165
|
});
|
|
181
166
|
if (isFlipped) {
|
|
182
167
|
position = getOppositePosition(position);
|
|
@@ -185,33 +170,14 @@ var placeTooltip = function placeTooltip(_ref4) {
|
|
|
185
170
|
|
|
186
171
|
// Clamp position within boundary
|
|
187
172
|
if (clamp) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
|
|
193
|
-
targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
|
|
194
|
-
});
|
|
173
|
+
targetPosition.x = Math.max(boundaryRect.left, targetPosition.x);
|
|
174
|
+
targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
|
|
175
|
+
targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
|
|
176
|
+
targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
|
|
195
177
|
}
|
|
196
178
|
|
|
197
179
|
// Should hide entirely if it scrolls out of view
|
|
198
|
-
var shouldHide =
|
|
199
|
-
var _iterator = _createForOfIteratorHelper(scrollableParents),
|
|
200
|
-
_step;
|
|
201
|
-
try {
|
|
202
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
203
|
-
var scrollableParent = _step.value;
|
|
204
|
-
var boundaryRect = getBoundingRect(scrollableParent);
|
|
205
|
-
if (!isWithin(elementRect, boundaryRect)) {
|
|
206
|
-
shouldHide = true;
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
} catch (err) {
|
|
211
|
-
_iterator.e(err);
|
|
212
|
-
} finally {
|
|
213
|
-
_iterator.f();
|
|
214
|
-
}
|
|
180
|
+
var shouldHide = !isWithin(elementRect, boundaryRect);
|
|
215
181
|
tooltip.style.display = shouldHide ? "none" : "block";
|
|
216
182
|
tooltip.style.transform = translateWithOffset(targetPosition, position, offset);
|
|
217
183
|
return {
|
|
@@ -283,7 +249,7 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
|
|
|
283
249
|
};
|
|
284
250
|
exports.getPosition = getPosition;
|
|
285
251
|
var translateWithOffset = function translateWithOffset(targetPosition, position, offset) {
|
|
286
|
-
var
|
|
252
|
+
var _ref3 = function () {
|
|
287
253
|
switch (position) {
|
|
288
254
|
case "top-start":
|
|
289
255
|
return [targetPosition.x, targetPosition.y - offset];
|
|
@@ -311,9 +277,9 @@ var translateWithOffset = function translateWithOffset(targetPosition, position,
|
|
|
311
277
|
return [targetPosition.x + offset, targetPosition.y];
|
|
312
278
|
}
|
|
313
279
|
}(),
|
|
314
|
-
|
|
315
|
-
x =
|
|
316
|
-
y =
|
|
280
|
+
_ref4 = _slicedToArray(_ref3, 2),
|
|
281
|
+
x = _ref4[0],
|
|
282
|
+
y = _ref4[1];
|
|
317
283
|
return "translate(".concat(x, "px, ").concat(y, "px)");
|
|
318
284
|
};
|
|
319
285
|
exports.translateWithOffset = translateWithOffset;
|
|
@@ -345,11 +311,24 @@ var getOppositePosition = function getOppositePosition(position) {
|
|
|
345
311
|
return "left-end";
|
|
346
312
|
}
|
|
347
313
|
};
|
|
348
|
-
var
|
|
349
|
-
var
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
314
|
+
var getDocumentBoundingRect = function getDocumentBoundingRect() {
|
|
315
|
+
var width = document.body.clientWidth;
|
|
316
|
+
var height = document.body.clientHeight;
|
|
317
|
+
return {
|
|
318
|
+
top: 0,
|
|
319
|
+
left: 0,
|
|
320
|
+
right: width,
|
|
321
|
+
bottom: height,
|
|
322
|
+
width: width,
|
|
323
|
+
height: height
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
exports.getDocumentBoundingRect = getDocumentBoundingRect;
|
|
327
|
+
var shouldFlip = function shouldFlip(_ref5) {
|
|
328
|
+
var targetPosition = _ref5.targetPosition,
|
|
329
|
+
position = _ref5.position,
|
|
330
|
+
boundaryRect = _ref5.boundaryRect,
|
|
331
|
+
tooltipRect = _ref5.tooltipRect;
|
|
353
332
|
switch (position) {
|
|
354
333
|
case "top-start":
|
|
355
334
|
case "top":
|
|
@@ -373,45 +352,4 @@ exports.shouldFlip = shouldFlip;
|
|
|
373
352
|
var isWithin = function isWithin(elementRect, boundaryRect) {
|
|
374
353
|
return boundaryRect.top < elementRect.bottom && boundaryRect.left < elementRect.right && boundaryRect.bottom > elementRect.top && boundaryRect.right > elementRect.left;
|
|
375
354
|
};
|
|
376
|
-
var getScrollableParents = function getScrollableParents(element) {
|
|
377
|
-
var parent = element.parentElement;
|
|
378
|
-
var scrollableParents = [];
|
|
379
|
-
while (parent) {
|
|
380
|
-
var computedStyle = getComputedStyle(parent);
|
|
381
|
-
if (isOverflowSet(computedStyle.overflow) || isOverflowSet(computedStyle.overflowY) || isOverflowSet(computedStyle.overflowX)) {
|
|
382
|
-
scrollableParents.push(parent);
|
|
383
|
-
}
|
|
384
|
-
parent = parent.parentElement;
|
|
385
|
-
}
|
|
386
|
-
scrollableParents.push(document);
|
|
387
|
-
return scrollableParents;
|
|
388
|
-
};
|
|
389
|
-
var isOverflowSet = function isOverflowSet(overflowValue) {
|
|
390
|
-
return overflowValue === "auto" || overflowValue === "hidden" || overflowValue === "scroll" || overflowValue === "overlay";
|
|
391
|
-
};
|
|
392
|
-
var isDocument = function isDocument(element) {
|
|
393
|
-
return element.ownerDocument === null;
|
|
394
|
-
};
|
|
395
|
-
var getDocumentBoundingRect = function getDocumentBoundingRect() {
|
|
396
|
-
var width = document.body.clientWidth;
|
|
397
|
-
var height = document.body.clientHeight;
|
|
398
|
-
return {
|
|
399
|
-
top: 0,
|
|
400
|
-
left: 0,
|
|
401
|
-
right: width,
|
|
402
|
-
bottom: height,
|
|
403
|
-
width: width,
|
|
404
|
-
height: height,
|
|
405
|
-
x: 0,
|
|
406
|
-
y: 0,
|
|
407
|
-
toJSON: function toJSON() {
|
|
408
|
-
return null;
|
|
409
|
-
}
|
|
410
|
-
};
|
|
411
|
-
};
|
|
412
|
-
exports.getDocumentBoundingRect = getDocumentBoundingRect;
|
|
413
|
-
var getBoundingRect = function getBoundingRect(element) {
|
|
414
|
-
return isDocument(element) ? getDocumentBoundingRect() : element.getBoundingClientRect();
|
|
415
|
-
};
|
|
416
|
-
exports.getBoundingRect = getBoundingRect;
|
|
417
355
|
//# sourceMappingURL=usePosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e2","f","TypeError","normalCompletion","didErr","err","call","step","next","_e3","return","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","push","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","scrollableParents","getScrollableParents","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handle","handlers","map","scrollableParent","handlerScroll","forEach","_ref2","addEventListener","passive","window","removeEventListener","_ref3","_ref4","_ref4$offset","_ref4$flip","_ref4$clamp","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","some","shouldFlip","boundaryRect","getBoundingRect","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","_iterator","_step","isWithin","display","transform","translateWithOffset","_ref5","_ref6","concat","_ref7","element","parent","parentElement","computedStyle","getComputedStyle","isOverflowSet","overflow","overflowY","overflowX","document","overflowValue","isDocument","ownerDocument","getDocumentBoundingRect","body","clientWidth","clientHeight","toJSON"],"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 (!tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n const scrollableParents = getScrollableParents(anchor)\n\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\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 handle = () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n }\n\n const scrollableParents = getScrollableParents(anchor)\n const handlers = scrollableParents.map((scrollableParent) => {\n return {\n scrollableParent,\n handlerScroll: () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n },\n }\n })\n\n handlers.forEach(({ scrollableParent, handlerScroll }) => {\n scrollableParent.addEventListener(\"scroll\", handlerScroll, {\n passive: true,\n })\n })\n\n window.addEventListener(\"resize\", handle, { passive: true })\n\n // Initialize\n handle()\n\n return () => {\n window.removeEventListener(\"resize\", handle)\n handlers.forEach(({ scrollableParent, handlerScroll }) => {\n scrollableParent.removeEventListener(\"scroll\", handlerScroll)\n })\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 flip?: boolean\n clamp?: boolean\n scrollableParents: Array<HTMLElement | Document>\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n flip = true,\n clamp = true,\n scrollableParents,\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 scrollableParents.some((scrollableParent) => {\n return shouldFlip({\n targetPosition,\n position,\n boundaryRect: getBoundingRect(scrollableParent),\n tooltipRect,\n })\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 scrollableParents.forEach((scrollableParent) => {\n const boundaryRect = getBoundingRect(scrollableParent)\n\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\n // Should hide entirely if it scrolls out of view\n let shouldHide = false\n for (const scrollableParent of scrollableParents) {\n const boundaryRect = getBoundingRect(scrollableParent)\n if (!isWithin(elementRect, boundaryRect)) {\n shouldHide = true\n break\n }\n }\n\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\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\nconst getScrollableParents = (element: HTMLElement) => {\n let parent = element.parentElement\n const scrollableParents: Array<HTMLElement | Document> = []\n\n while (parent) {\n const computedStyle = getComputedStyle(parent)\n if (\n isOverflowSet(computedStyle.overflow) ||\n isOverflowSet(computedStyle.overflowY) ||\n isOverflowSet(computedStyle.overflowX)\n ) {\n scrollableParents.push(parent)\n }\n parent = parent.parentElement\n }\n\n scrollableParents.push(document)\n\n return scrollableParents\n}\n\nconst isOverflowSet = (overflowValue: string) => {\n return (\n overflowValue === \"auto\" ||\n overflowValue === \"hidden\" ||\n overflowValue === \"scroll\" ||\n overflowValue === \"overlay\"\n )\n}\n\nconst isDocument = (element: HTMLElement | Document): element is Document => {\n return element.ownerDocument === null\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 x: 0,\n y: 0,\n toJSON: () => null,\n }\n}\n\nexport const getBoundingRect = (element: HTMLElement | Document): DOMRect => {\n return isDocument(element)\n ? getDocumentBoundingRect()\n : element.getBoundingClientRect()\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","_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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "38.0.0-canary.1357.29988.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
},
|
|
119
119
|
"dependencies": {
|
|
120
120
|
"@artsy/icons": "^3.2.2",
|
|
121
|
-
"@artsy/palette-tokens": "
|
|
121
|
+
"@artsy/palette-tokens": "6.0.0-canary.1357.29988.0",
|
|
122
122
|
"@seznam/compose-react-refs": "^1.0.6",
|
|
123
123
|
"@styled-system/theme-get": "^5.1.2",
|
|
124
124
|
"lodash": "^4.17.21",
|
|
@@ -182,5 +182,5 @@
|
|
|
182
182
|
"url": "http://localhost"
|
|
183
183
|
}
|
|
184
184
|
},
|
|
185
|
-
"gitHead": "
|
|
185
|
+
"gitHead": "8da3adb0296bfaa14d8c2c494c5215e5c30daaf8"
|
|
186
186
|
}
|
package/dist/helpers/shadow.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const DROP_SHADOW = "0 2px 10px 0 rgba(0, 0, 0, 0.1)";
|
|
2
|
-
export declare const INNER_SHADOW = "1px 1px 2px 0 rgba(0, 0, 0, 0.1) inset";
|
|
3
|
-
export declare const FLAT_SHADOW = "0 1px 1px 0 rgba(0, 0, 0, 0.05)";
|
|
4
|
-
/** Shadow to drop under text to improve legibility when over images */
|
|
5
|
-
export declare const TEXT_SHADOW = "0 0 15px rgba(0, 0, 0, 0.25)";
|
package/dist/helpers/shadow.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.TEXT_SHADOW = exports.INNER_SHADOW = exports.FLAT_SHADOW = exports.DROP_SHADOW = void 0;
|
|
7
|
-
var DROP_SHADOW = "0 2px 10px 0 rgba(0, 0, 0, 0.1)";
|
|
8
|
-
exports.DROP_SHADOW = DROP_SHADOW;
|
|
9
|
-
var INNER_SHADOW = "1px 1px 2px 0 rgba(0, 0, 0, 0.1) inset";
|
|
10
|
-
exports.INNER_SHADOW = INNER_SHADOW;
|
|
11
|
-
var FLAT_SHADOW = "0 1px 1px 0 rgba(0, 0, 0, 0.05)";
|
|
12
|
-
/** Shadow to drop under text to improve legibility when over images */
|
|
13
|
-
exports.FLAT_SHADOW = FLAT_SHADOW;
|
|
14
|
-
var TEXT_SHADOW = "0 0 15px rgba(0, 0, 0, 0.25)";
|
|
15
|
-
exports.TEXT_SHADOW = TEXT_SHADOW;
|
|
16
|
-
//# sourceMappingURL=shadow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shadow.js","names":["DROP_SHADOW","exports","INNER_SHADOW","FLAT_SHADOW","TEXT_SHADOW"],"sources":["../../src/helpers/shadow.ts"],"sourcesContent":["export const DROP_SHADOW = \"0 2px 10px 0 rgba(0, 0, 0, 0.1)\"\nexport const INNER_SHADOW = \"1px 1px 2px 0 rgba(0, 0, 0, 0.1) inset\"\nexport const FLAT_SHADOW = \"0 1px 1px 0 rgba(0, 0, 0, 0.05)\"\n/** Shadow to drop under text to improve legibility when over images */\nexport const TEXT_SHADOW = \"0 0 15px rgba(0, 0, 0, 0.25)\"\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG,iCAAiC;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AACrD,IAAME,YAAY,GAAG,wCAAwC;AAAAD,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAC7D,IAAMC,WAAW,GAAG,iCAAiC;AAC5D;AAAAF,OAAA,CAAAE,WAAA,GAAAA,WAAA;AACO,IAAMC,WAAW,GAAG,8BAA8B;AAAAH,OAAA,CAAAG,WAAA,GAAAA,WAAA"}
|