@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.
Files changed (66) hide show
  1. package/dist/Theme.d.ts +8 -1
  2. package/dist/Theme.js +10 -2
  3. package/dist/Theme.js.map +1 -1
  4. package/dist/elements/AutocompleteInput/AutocompleteInput.js +2 -2
  5. package/dist/elements/AutocompleteInput/AutocompleteInput.js.map +1 -1
  6. package/dist/elements/BaseTabs/BaseTab.d.ts +4 -4
  7. package/dist/elements/BorderedRadio/BorderedRadio.d.ts +1 -1
  8. package/dist/elements/Button/Button.js +2 -2
  9. package/dist/elements/Button/Button.js.map +1 -1
  10. package/dist/elements/Button/tokens.js +4 -8
  11. package/dist/elements/Button/tokens.js.map +1 -1
  12. package/dist/elements/Cards/Card.js +6 -3
  13. package/dist/elements/Cards/Card.js.map +1 -1
  14. package/dist/elements/Checkbox/Checkbox.js +1 -1
  15. package/dist/elements/Checkbox/Checkbox.js.map +1 -1
  16. package/dist/elements/Dropdown/Dropdown.js +2 -2
  17. package/dist/elements/Dropdown/Dropdown.js.map +1 -1
  18. package/dist/elements/Dropdown/Dropdown.story.d.ts +0 -1
  19. package/dist/elements/Dropdown/Dropdown.story.js +1 -41
  20. package/dist/elements/Dropdown/Dropdown.story.js.map +1 -1
  21. package/dist/elements/HorizontalOverflow/HorizontalOverflow.js +8 -5
  22. package/dist/elements/HorizontalOverflow/HorizontalOverflow.js.map +1 -1
  23. package/dist/elements/Input/tokens.js +1 -1
  24. package/dist/elements/Input/tokens.js.map +1 -1
  25. package/dist/elements/ModalDialog/ModalDialogContent.js +6 -4
  26. package/dist/elements/ModalDialog/ModalDialogContent.js.map +1 -1
  27. package/dist/elements/MultiSelect/MultiSelect.js +1 -1
  28. package/dist/elements/MultiSelect/MultiSelect.js.map +1 -1
  29. package/dist/elements/PhoneInput/PhoneInput.js +1 -2
  30. package/dist/elements/PhoneInput/PhoneInput.js.map +1 -1
  31. package/dist/elements/Pointer/Pointer.js +2 -2
  32. package/dist/elements/Pointer/Pointer.js.map +1 -1
  33. package/dist/elements/Popover/Popover.js +2 -2
  34. package/dist/elements/Popover/Popover.js.map +1 -1
  35. package/dist/elements/Popover/Popover.story.d.ts +0 -10
  36. package/dist/elements/Popover/Popover.story.js +10 -59
  37. package/dist/elements/Popover/Popover.story.js.map +1 -1
  38. package/dist/elements/Range/Range.js +1 -2
  39. package/dist/elements/Range/Range.js.map +1 -1
  40. package/dist/elements/Shelf/ShelfNavigation.js +1 -2
  41. package/dist/elements/Shelf/ShelfNavigation.js.map +1 -1
  42. package/dist/elements/Sup/Sup.d.ts +4 -4
  43. package/dist/elements/Text/Text.d.ts +4 -4
  44. package/dist/elements/TextArea/TextArea.js +1 -1
  45. package/dist/elements/TextArea/TextArea.js.map +1 -1
  46. package/dist/elements/Tooltip/Tooltip.js +2 -1
  47. package/dist/elements/Tooltip/Tooltip.js.map +1 -1
  48. package/dist/elements/Tooltip/Tooltip.story.d.ts +1 -0
  49. package/dist/elements/Tooltip/Tooltip.story.js +20 -1
  50. package/dist/elements/Tooltip/Tooltip.story.js.map +1 -1
  51. package/dist/helpers/index.d.ts +0 -1
  52. package/dist/helpers/index.js +0 -11
  53. package/dist/helpers/index.js.map +1 -1
  54. package/dist/helpers/injectGlobalStyles.js +1 -1
  55. package/dist/helpers/injectGlobalStyles.js.map +1 -1
  56. package/dist/styles.css +48 -0
  57. package/dist/tokens.json +7 -1
  58. package/dist/utils/usePortal.js +2 -4
  59. package/dist/utils/usePortal.js.map +1 -1
  60. package/dist/utils/usePosition.d.ts +3 -14
  61. package/dist/utils/usePosition.js +72 -134
  62. package/dist/utils/usePosition.js.map +1 -1
  63. package/package.json +3 -3
  64. package/dist/helpers/shadow.d.ts +0 -5
  65. package/dist/helpers/shadow.js +0 -16
  66. 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.getBoundingRect = exports.POSITION = void 0;
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 handle = function handle() {
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
- var scrollableParents = getScrollableParents(anchor);
110
- var handlers = scrollableParents.map(function (scrollableParent) {
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
- window.addEventListener("resize", handle, {
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
- // Initialize
138
- handle();
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
- window.removeEventListener("resize", handle);
141
- handlers.forEach(function (_ref3) {
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(_ref4) {
158
- var anchor = _ref4.anchor,
159
- tooltip = _ref4.tooltip,
160
- position = _ref4.position,
161
- _ref4$offset = _ref4.offset,
162
- offset = _ref4$offset === void 0 ? 0 : _ref4$offset,
163
- _ref4$flip = _ref4.flip,
164
- flip = _ref4$flip === void 0 ? true : _ref4$flip,
165
- _ref4$clamp = _ref4.clamp,
166
- clamp = _ref4$clamp === void 0 ? true : _ref4$clamp,
167
- scrollableParents = _ref4.scrollableParents;
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 && scrollableParents.some(function (scrollableParent) {
174
- return shouldFlip({
175
- targetPosition: targetPosition,
176
- position: position,
177
- boundaryRect: getBoundingRect(scrollableParent),
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
- scrollableParents.forEach(function (scrollableParent) {
189
- var boundaryRect = getBoundingRect(scrollableParent);
190
- targetPosition.x = Math.max(boundaryRect.left, targetPosition.x);
191
- targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
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 = false;
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 _ref5 = function () {
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
- _ref6 = _slicedToArray(_ref5, 2),
315
- x = _ref6[0],
316
- y = _ref6[1];
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 shouldFlip = function shouldFlip(_ref7) {
349
- var targetPosition = _ref7.targetPosition,
350
- position = _ref7.position,
351
- boundaryRect = _ref7.boundaryRect,
352
- tooltipRect = _ref7.tooltipRect;
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":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAAuD,SAAAI,eAAAC,GAAA,EAAAC,CAAA,WAAAC,eAAA,CAAAF,GAAA,KAAAG,qBAAA,CAAAH,GAAA,EAAAC,CAAA,KAAAG,2BAAA,CAAAJ,GAAA,EAAAC,CAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAP,CAAA,EAAAQ,KAAA,aAAAL,CAAA,iBAAAH,CAAA,CAAAS,WAAA,EAAAN,CAAA,GAAAH,CAAA,CAAAS,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAQ,KAAA,CAAAC,IAAA,CAAAZ,CAAA,OAAAG,CAAA,+DAAAU,IAAA,CAAAV,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAT,GAAA,EAAAqB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAArB,GAAA,CAAAsB,MAAA,EAAAD,GAAA,GAAArB,GAAA,CAAAsB,MAAA,WAAArB,CAAA,MAAAsB,IAAA,OAAAL,KAAA,CAAAG,GAAA,GAAApB,CAAA,GAAAoB,GAAA,EAAApB,CAAA,MAAAsB,IAAA,CAAAtB,CAAA,IAAAD,GAAA,CAAAC,CAAA,YAAAsB,IAAA;AAAA,SAAApB,sBAAAH,GAAA,EAAAC,CAAA,QAAAuB,EAAA,WAAAxB,GAAA,gCAAAyB,MAAA,IAAAzB,GAAA,CAAAyB,MAAA,CAAAC,QAAA,KAAA1B,GAAA,4BAAAwB,EAAA,QAAAG,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAL,EAAA,GAAAA,EAAA,CAAAV,IAAA,CAAAd,GAAA,GAAAkC,IAAA,QAAAjC,CAAA,QAAAU,MAAA,CAAAa,EAAA,MAAAA,EAAA,UAAAQ,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAAf,IAAA,CAAAU,EAAA,GAAAW,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAAT,MAAA,KAAArB,CAAA,GAAA+B,EAAA,sBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAR,EAAA,CAAAe,MAAA,KAAAT,EAAA,GAAAN,EAAA,CAAAe,MAAA,IAAA5B,MAAA,CAAAmB,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAA7B,gBAAAF,GAAA,QAAAkB,KAAA,CAAAsB,OAAA,CAAAxC,GAAA,UAAAA,GAAA,IAPvD;AACA;AACA;AAOO,IAAMyC,QAAQ,GAAG;EACtB,WAAW,EAAE,WAAW;EACxBC,GAAG,EAAE,KAAK;EACV,SAAS,EAAE,SAAS;EACpB,cAAc,EAAE,cAAc;EAC9BC,MAAM,EAAE,QAAQ;EAChB,YAAY,EAAE,YAAY;EAC1B,YAAY,EAAE,YAAY;EAC1BC,IAAI,EAAE,MAAM;EACZ,UAAU,EAAE,UAAU;EACtB,aAAa,EAAE,aAAa;EAC5BC,KAAK,EAAE,OAAO;EACd,WAAW,EAAE;AACf,CAAU;AAAAC,OAAA,CAAAL,QAAA,GAAAA,QAAA;AASV;AACA;AACA;AACA;AACA;AACO,IAAMM,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAoBlB;EAAA,IAnBJC,GAAG,GAAAD,IAAA,CAAHC,GAAG;IACHC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAAC,WAAA,GAAAH,IAAA,CACRI,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,CAAC,GAAAA,WAAA;IAAAE,WAAA,GAAAL,IAAA,CACVM,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,IAAI,GAAAA,WAAA;IAAAE,SAAA,GAAAP,IAAA,CACbQ,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA;IAAAE,UAAA,GAAAT,IAAA,CACXU,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,IAAI,GAAAA,UAAA;EAeZ,IAAAE,SAAA,GAA0B,IAAAC,eAAQ,EAAkC;MAClEC,SAAS,EAAE;IACb,CAAC,CAAC;IAAAC,UAAA,GAAA/D,cAAA,CAAA4D,SAAA;IAFKI,KAAK,GAAAD,UAAA;IAAEE,QAAQ,GAAAF,UAAA;EAItB,IAAMG,UAAU,GAAG,IAAAC,aAAM,EAAqB,IAAI,CAAC;EACnD,IAAMC,SAAS,GAAG,IAAAD,aAAM,EAAqB,IAAI,CAAC;EAElD,IAAME,MAAM,GAAG,SAATA,MAAMA,CAAA,EAAS;IACnB,IAAI,CAACd,MAAM,IAAI,CAACW,UAAU,CAACI,OAAO,IAAI,CAACF,SAAS,CAACE,OAAO,EAAE;IAE1D,IAAiBC,OAAO,GAAKL,UAAU,CAA/BI,OAAO;IACf,IAAiBE,MAAM,GAAKJ,SAAS,CAA7BE,OAAO;IAEfL,QAAQ,CAACQ,YAAY,CAAC;MAAED,MAAM,EAANA,MAAM;MAAED,OAAO,EAAPA,OAAO;MAAEpB,QAAQ,EAARA,QAAQ;MAAEE,MAAM,EAANA,MAAM;MAAEI,IAAI,EAAJA,IAAI;MAAEE,KAAK,EAALA;IAAM,CAAC,CAAC,CAAC;EAC5E,CAAC;;EAED;EACA,IAAAe,wCAAmB,EAAC;IAAEC,GAAG,EAAET,UAAU;IAAEU,QAAQ,EAAEP,MAAM;IAAEd,MAAM,EAANA;EAAO,CAAC,CAAC;;EAElE;EACA,IAAAsB,oCAAiB,EAAC;IAAEC,MAAM,EAAEV,SAAS;IAAEW,QAAQ,EAAEV,MAAM;IAAEd,MAAM,EAANA;EAAO,CAAC,CAAC;;EAElE;EACA,IAAAyB,oDAAyB,EAACX,MAAM,EAAE,CAACnB,GAAG,CAAC,CAAC;EAExC,IAAA8B,oDAAyB,EAAC,YAAM;IAC9B,IAAI,CAACzB,MAAM,IAAI,CAACW,UAAU,CAACI,OAAO,IAAI,CAACF,SAAS,CAACE,OAAO,EAAE;IAE1D,IAAiBC,OAAO,GAAKL,UAAU,CAA/BI,OAAO;IACf,IAAiBE,MAAM,GAAKJ,SAAS,CAA7BE,OAAO;IAEfC,OAAO,CAACU,KAAK,CAAC9B,QAAQ,GAAG,OAAO;IAChCoB,OAAO,CAACU,KAAK,CAACtC,GAAG,GAAG,GAAG;IACvB4B,OAAO,CAACU,KAAK,CAACpC,IAAI,GAAG,GAAG;IAExB,IAAMqC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;MACzBjB,QAAQ,CAACQ,YAAY,CAAC;QAAED,MAAM,EAANA,MAAM;QAAED,OAAO,EAAPA,OAAO;QAAEpB,QAAQ,EAARA,QAAQ;QAAEE,MAAM,EAANA,MAAM;QAAEI,IAAI,EAAJA,IAAI;QAAEE,KAAK,EAALA;MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEDwB,QAAQ,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,EAAE;MAChDG,OAAO,EAAE;IACX,CAAC,CAAC;IAEF,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;MACzBrB,QAAQ,CAACQ,YAAY,CAAC;QAAED,MAAM,EAANA,MAAM;QAAED,OAAO,EAAPA,OAAO;QAAEpB,QAAQ,EAARA,QAAQ;QAAEE,MAAM,EAANA,MAAM;QAAEI,IAAI,EAAJA,IAAI;QAAEE,KAAK,EAALA;MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED4B,MAAM,CAACH,gBAAgB,CAAC,QAAQ,EAAEE,YAAY,EAAE;MAAED,OAAO,EAAE;IAAK,CAAC,CAAC;IAElEpB,QAAQ,CAACQ,YAAY,CAAC;MAAED,MAAM,EAANA,MAAM;MAAED,OAAO,EAAPA,OAAO;MAAEpB,QAAQ,EAARA,QAAQ;MAAEE,MAAM,EAANA,MAAM;MAAEI,IAAI,EAAJA,IAAI;MAAEE,KAAK,EAALA;IAAM,CAAC,CAAC,CAAC;IAE1E,OAAO,YAAM;MACXwB,QAAQ,CAACK,mBAAmB,CAAC,QAAQ,EAAEN,YAAY,CAAC;MACpDK,MAAM,CAACC,mBAAmB,CAAC,QAAQ,EAAEF,YAAY,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAAC/B,MAAM,EAAEW,UAAU,EAAEE,SAAS,EAAEjB,QAAQ,CAAC,CAAC;EAE7C,OAAO;IACL;IACAe,UAAU,EAAVA,UAAU;IACV;IACAE,SAAS,EAATA,SAAS;IACTJ,KAAK,EAALA;EACF,CAAC;AACH,CAAC;AAAAjB,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAYM,IAAMyB,YAAY,GAAG,SAAfA,YAAYA,CAAAgB,KAAA,EAQL;EAAA,IAPlBjB,MAAM,GAAAiB,KAAA,CAANjB,MAAM;IACND,OAAO,GAAAkB,KAAA,CAAPlB,OAAO;IACPpB,QAAQ,GAAAsC,KAAA,CAARtC,QAAQ;IAAAuC,YAAA,GAAAD,KAAA,CACRpC,MAAM;IAANA,MAAM,GAAAqC,YAAA,cAAG,CAAC,GAAAA,YAAA;IAAAC,kBAAA,GAAAF,KAAA,CACVG,YAAY;IAAZA,YAAY,GAAAD,kBAAA,cAAGE,uBAAuB,EAAE,GAAAF,kBAAA;IAAAG,UAAA,GAAAL,KAAA,CACxChC,IAAI;IAAJA,IAAI,GAAAqC,UAAA,cAAG,IAAI,GAAAA,UAAA;IAAAC,WAAA,GAAAN,KAAA,CACX9B,KAAK;IAALA,KAAK,GAAAoC,WAAA,cAAG,IAAI,GAAAA,WAAA;EAEZ,IAAMC,WAAW,GAAGxB,MAAM,CAACyB,qBAAqB,EAAE;EAClD,IAAMC,WAAW,GAAG3B,OAAO,CAAC0B,qBAAqB,EAAE;EAEnD,IAAIE,cAAc,GAAGC,WAAW,CAACJ,WAAW,EAAEE,WAAW,EAAE/C,QAAQ,CAAC;;EAEpE;EACA,IAAMW,SAAS,GACbL,IAAI,IACJ4C,UAAU,CAAC;IACTF,cAAc,EAAdA,cAAc;IACdhD,QAAQ,EAARA,QAAQ;IACRyC,YAAY,EAAZA,YAAY;IACZM,WAAW,EAAXA;EACF,CAAC,CAAC;EAEJ,IAAIpC,SAAS,EAAE;IACbX,QAAQ,GAAGmD,mBAAmB,CAACnD,QAAQ,CAAC;IACxCgD,cAAc,GAAGC,WAAW,CAACJ,WAAW,EAAEE,WAAW,EAAE/C,QAAQ,CAAC;EAClE;;EAEA;EACA,IAAIQ,KAAK,EAAE;IACTwC,cAAc,CAACI,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACb,YAAY,CAAC/C,IAAI,EAAEsD,cAAc,CAACI,CAAC,CAAC;IAChEJ,cAAc,CAACI,CAAC,GAAGC,IAAI,CAACE,GAAG,CACzBd,YAAY,CAAC9C,KAAK,GAAGoD,WAAW,CAACS,KAAK,EACtCR,cAAc,CAACI,CAAC,CACjB;IACDJ,cAAc,CAACS,CAAC,GAAGJ,IAAI,CAACC,GAAG,CAACb,YAAY,CAACjD,GAAG,EAAEwD,cAAc,CAACS,CAAC,CAAC;IAC/DT,cAAc,CAACS,CAAC,GAAGJ,IAAI,CAACE,GAAG,CACzBd,YAAY,CAAChD,MAAM,GAAGsD,WAAW,CAACW,MAAM,EACxCV,cAAc,CAACS,CAAC,CACjB;EACH;;EAEA;EACA,IAAME,UAAU,GAAG,CAACC,QAAQ,CAACf,WAAW,EAAEJ,YAAY,CAAC;EACvDrB,OAAO,CAACU,KAAK,CAAC+B,OAAO,GAAGF,UAAU,GAAG,MAAM,GAAG,OAAO;EAErDvC,OAAO,CAACU,KAAK,CAACgC,SAAS,GAAGC,mBAAmB,CAC3Cf,cAAc,EACdhD,QAAQ,EACRE,MAAM,CACP;EAED,OAAO;IAAES,SAAS,EAATA;EAAU,CAAC;AACtB,CAAC;AAAAf,OAAA,CAAA0B,YAAA,GAAAA,YAAA;AAEM,IAAM2B,WAAW,GAAG,SAAdA,WAAWA,CACtBJ,WAGC,EACDE,WAA8C,EAC9C/C,QAAkB,EACC;EACnB,IAAIoD,CAAS;EACb,IAAIK,CAAS;EAEb,QAAQzD,QAAQ;IACd,KAAK,WAAW;IAChB,KAAK,cAAc;MACjBoD,CAAC,GAAGP,WAAW,CAACnD,IAAI;MACpB;IACF,KAAK,KAAK;IACV,KAAK,QAAQ;MACX0D,CAAC,GAAGP,WAAW,CAACnD,IAAI,GAAGmD,WAAW,CAACW,KAAK,GAAG,CAAC,GAAGT,WAAW,CAACS,KAAK,GAAG,CAAC;MACpE;IACF,KAAK,SAAS;IACd,KAAK,YAAY;MACfJ,CAAC,GAAGP,WAAW,CAAClD,KAAK,GAAGoD,WAAW,CAACS,KAAK;MACzC;IACF,KAAK,YAAY;IACjB,KAAK,MAAM;IACX,KAAK,UAAU;MACb;MACAJ,CAAC,GAAGP,WAAW,CAACnD,IAAI,GAAGqD,WAAW,CAACS,KAAK;MACxC;IACF,KAAK,aAAa;IAClB,KAAK,OAAO;IACZ,KAAK,WAAW;MACd;MACAJ,CAAC,GAAGP,WAAW,CAAClD,KAAK;MACrB;EAAK;EAGT,QAAQK,QAAQ;IACd,KAAK,YAAY;IACjB,KAAK,aAAa;MAChByD,CAAC,GAAGZ,WAAW,CAACrD,GAAG;MACnB;IACF,KAAK,MAAM;IACX,KAAK,OAAO;MACViE,CAAC,GAAGZ,WAAW,CAACrD,GAAG,GAAGqD,WAAW,CAACa,MAAM,GAAG,CAAC,GAAGX,WAAW,CAACW,MAAM,GAAG,CAAC;MACrE;IACF,KAAK,UAAU;IACf,KAAK,WAAW;MACdD,CAAC,GAAGZ,WAAW,CAACpD,MAAM,GAAGsD,WAAW,CAACW,MAAM;MAC3C;IACF,KAAK,WAAW;IAChB,KAAK,KAAK;IACV,KAAK,SAAS;MACZ;MACA;MACAD,CAAC,GAAGZ,WAAW,CAACrD,GAAG,GAAGuD,WAAW,CAACW,MAAM;MACxC;IACF,KAAK,cAAc;IACnB,KAAK,QAAQ;IACb,KAAK,YAAY;MACf;MACA;MACAD,CAAC,GAAGZ,WAAW,CAACpD,MAAM;MACtB;EAAK;EAGT,OAAO;IAAE2D,CAAC,EAADA,CAAC;IAAEK,CAAC,EAADA;EAAE,CAAC;AACjB,CAAC;AAAA7D,OAAA,CAAAqD,WAAA,GAAAA,WAAA;AAEM,IAAMc,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC9Bf,cAA8B,EAC9BhD,QAAkB,EAClBE,MAAc,EACX;EACH,IAAA8D,KAAA,GAAgB,YAAM;MACpB,QAAQhE,QAAQ;QACd,KAAK,WAAW;UACd,OAAO,CAACgD,cAAc,CAACI,CAAC,EAAEJ,cAAc,CAACS,CAAC,GAAGvD,MAAM,CAAC;QACtD,KAAK,KAAK;UACR,OAAO,CAAC8C,cAAc,CAACI,CAAC,EAAEJ,cAAc,CAACS,CAAC,GAAGvD,MAAM,CAAC;QACtD,KAAK,SAAS;UACZ,OAAO,CAAC8C,cAAc,CAACI,CAAC,EAAEJ,cAAc,CAACS,CAAC,GAAGvD,MAAM,CAAC;QACtD,KAAK,cAAc;UACjB,OAAO,CAAC8C,cAAc,CAACI,CAAC,EAAEJ,cAAc,CAACS,CAAC,GAAGvD,MAAM,CAAC;QACtD,KAAK,QAAQ;UACX,OAAO,CAAC8C,cAAc,CAACI,CAAC,EAAEJ,cAAc,CAACS,CAAC,GAAGvD,MAAM,CAAC;QACtD,KAAK,YAAY;UACf,OAAO,CAAC8C,cAAc,CAACI,CAAC,EAAEJ,cAAc,CAACS,CAAC,GAAGvD,MAAM,CAAC;QACtD,KAAK,YAAY;UACf,OAAO,CAAC8C,cAAc,CAACI,CAAC,GAAGlD,MAAM,EAAE8C,cAAc,CAACS,CAAC,CAAC;QACtD,KAAK,MAAM;UACT,OAAO,CAACT,cAAc,CAACI,CAAC,GAAGlD,MAAM,EAAE8C,cAAc,CAACS,CAAC,CAAC;QACtD,KAAK,UAAU;UACb,OAAO,CAACT,cAAc,CAACI,CAAC,GAAGlD,MAAM,EAAE8C,cAAc,CAACS,CAAC,CAAC;QACtD,KAAK,aAAa;UAChB,OAAO,CAACT,cAAc,CAACI,CAAC,GAAGlD,MAAM,EAAE8C,cAAc,CAACS,CAAC,CAAC;QACtD,KAAK,OAAO;UACV,OAAO,CAACT,cAAc,CAACI,CAAC,GAAGlD,MAAM,EAAE8C,cAAc,CAACS,CAAC,CAAC;QACtD,KAAK,WAAW;UACd,OAAO,CAACT,cAAc,CAACI,CAAC,GAAGlD,MAAM,EAAE8C,cAAc,CAACS,CAAC,CAAC;MAAA;IAE1D,CAAC,EAAG;IAAAQ,KAAA,GAAApH,cAAA,CAAAmH,KAAA;IA3BGZ,CAAC,GAAAa,KAAA;IAAER,CAAC,GAAAQ,KAAA;EA6BX,oBAAAC,MAAA,CAAoBd,CAAC,UAAAc,MAAA,CAAOT,CAAC;AAC/B,CAAC;AAAA7D,OAAA,CAAAmE,mBAAA,GAAAA,mBAAA;AAED,IAAMZ,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAInD,QAAkB,EAAK;EAClD,QAAQA,QAAQ;IACd,KAAK,WAAW;MACd,OAAO,cAAc;IACvB,KAAK,KAAK;MACR,OAAO,QAAQ;IACjB,KAAK,SAAS;MACZ,OAAO,YAAY;IACrB,KAAK,cAAc;MACjB,OAAO,WAAW;IACpB,KAAK,QAAQ;MACX,OAAO,KAAK;IACd,KAAK,YAAY;MACf,OAAO,SAAS;IAClB,KAAK,YAAY;MACf,OAAO,aAAa;IACtB,KAAK,MAAM;MACT,OAAO,OAAO;IAChB,KAAK,UAAU;MACb,OAAO,WAAW;IACpB,KAAK,aAAa;MAChB,OAAO,YAAY;IACrB,KAAK,OAAO;MACV,OAAO,MAAM;IACf,KAAK,WAAW;MACd,OAAO,UAAU;EAAA;AAEvB,CAAC;AAEM,IAAM0C,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EAC3C,IAAMc,KAAK,GAAGxB,QAAQ,CAACmC,IAAI,CAACC,WAAW;EACvC,IAAMV,MAAM,GAAG1B,QAAQ,CAACmC,IAAI,CAACE,YAAY;EAEzC,OAAO;IACL7E,GAAG,EAAE,CAAC;IACNE,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE6D,KAAK;IACZ/D,MAAM,EAAEiE,MAAM;IACdF,KAAK,EAALA,KAAK;IACLE,MAAM,EAANA;EACF,CAAC;AACH,CAAC;AAAA9D,OAAA,CAAA8C,uBAAA,GAAAA,uBAAA;AASM,IAAMQ,UAAU,GAAG,SAAbA,UAAUA,CAAAoB,KAAA,EAKL;EAAA,IAJhBtB,cAAc,GAAAsB,KAAA,CAAdtB,cAAc;IACdhD,QAAQ,GAAAsE,KAAA,CAARtE,QAAQ;IACRyC,YAAY,GAAA6B,KAAA,CAAZ7B,YAAY;IACZM,WAAW,GAAAuB,KAAA,CAAXvB,WAAW;EAEX,QAAQ/C,QAAQ;IACd,KAAK,WAAW;IAChB,KAAK,KAAK;IACV,KAAK,SAAS;MACZ,OAAOgD,cAAc,CAACS,CAAC,GAAGhB,YAAY,CAACjD,GAAG;IAC5C,KAAK,cAAc;IACnB,KAAK,QAAQ;IACb,KAAK,YAAY;MACf,OAAOwD,cAAc,CAACS,CAAC,GAAGV,WAAW,CAACW,MAAM,GAAGjB,YAAY,CAAChD,MAAM;IACpE,KAAK,YAAY;IACjB,KAAK,MAAM;IACX,KAAK,UAAU;MACb,OAAOuD,cAAc,CAACI,CAAC,GAAGX,YAAY,CAAC/C,IAAI;IAC7C,KAAK,aAAa;IAClB,KAAK,OAAO;IACZ,KAAK,WAAW;MACd,OAAOsD,cAAc,CAACI,CAAC,GAAGL,WAAW,CAACS,KAAK,GAAGf,YAAY,CAAC9C,KAAK;EAAA;AAEtE,CAAC;AAAAC,OAAA,CAAAsD,UAAA,GAAAA,UAAA;AAED,IAAMU,QAAQ,GAAG,SAAXA,QAAQA,CAAIf,WAAoB,EAAEJ,YAAqB,EAAK;EAChE,OACEA,YAAY,CAACjD,GAAG,GAAGqD,WAAW,CAACpD,MAAM,IACrCgD,YAAY,CAAC/C,IAAI,GAAGmD,WAAW,CAAClD,KAAK,IACrC8C,YAAY,CAAChD,MAAM,GAAGoD,WAAW,CAACrD,GAAG,IACrCiD,YAAY,CAAC9C,KAAK,GAAGkD,WAAW,CAACnD,IAAI;AAEzC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artsy/palette",
3
- "version": "37.4.0-canary.1351.29887.0",
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": "^5.1.0",
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": "3fe8c06a38b3d83b840f4e95038e933a48100a0d"
185
+ "gitHead": "8da3adb0296bfaa14d8c2c494c5215e5c30daaf8"
186
186
  }
@@ -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)";
@@ -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"}