@artsy/palette 40.7.2 → 40.8.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/elements/Dropdown/Dropdown.d.ts +3 -1
- package/dist/elements/Dropdown/Dropdown.js +41 -7
- package/dist/elements/Dropdown/Dropdown.js.map +1 -1
- package/dist/elements/Dropdown/Dropdown.story.js +35 -5
- package/dist/elements/Dropdown/Dropdown.story.js.map +1 -1
- package/dist/utils/usePosition.d.ts +18 -3
- package/dist/utils/usePosition.js +96 -19
- package/dist/utils/usePosition.js.map +1 -1
- package/package.json +2 -2
|
@@ -31,10 +31,12 @@ export interface DropdownProps extends Omit<BoxProps, "children"> {
|
|
|
31
31
|
keepInDOM?: boolean;
|
|
32
32
|
openDropdownByClick?: boolean;
|
|
33
33
|
children: Children;
|
|
34
|
+
/** Optionally disable flipping (default: `true`) */
|
|
35
|
+
flip?: boolean;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
38
|
* A `Dropdown` is a small modal-type element which is anchored, and can be
|
|
37
39
|
* positioned relative to, another element and designed to be transitioned in on hover or on click.
|
|
38
40
|
*/
|
|
39
|
-
export declare const Dropdown: ({ placement, visible: _visible, keepInDOM, children, offset, dropdown, dropdownZIndex, openDropdownByClick, transition: _transition, ...rest }: DropdownProps) => React.JSX.Element;
|
|
41
|
+
export declare const Dropdown: ({ placement, visible: _visible, keepInDOM, children, offset, dropdown, dropdownZIndex, openDropdownByClick, transition: _transition, flip, ...rest }: DropdownProps) => React.JSX.Element;
|
|
40
42
|
export {};
|
|
@@ -12,7 +12,8 @@ var _usePortal2 = require("../../utils/usePortal");
|
|
|
12
12
|
var _Box = require("../Box");
|
|
13
13
|
var _reactFocusOn = require("react-focus-on");
|
|
14
14
|
var _themeGet = require("@styled-system/theme-get");
|
|
15
|
-
var
|
|
15
|
+
var _esToolkit = require("es-toolkit");
|
|
16
|
+
var _excluded = ["placement", "visible", "keepInDOM", "children", "offset", "dropdown", "dropdownZIndex", "openDropdownByClick", "transition", "flip"];
|
|
16
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -49,6 +50,8 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
49
50
|
openDropdownByClick = _ref.openDropdownByClick,
|
|
50
51
|
_ref$transition = _ref.transition,
|
|
51
52
|
_transition = _ref$transition === void 0 ? true : _ref$transition,
|
|
53
|
+
_ref$flip = _ref.flip,
|
|
54
|
+
flip = _ref$flip === void 0 ? true : _ref$flip,
|
|
52
55
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
53
56
|
var _useState = (0, _react.useState)(false),
|
|
54
57
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -94,7 +97,9 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
94
97
|
var _usePosition = (0, _utils.usePosition)({
|
|
95
98
|
position: placement,
|
|
96
99
|
offset: 0,
|
|
97
|
-
active: visible
|
|
100
|
+
active: visible,
|
|
101
|
+
flip: flip,
|
|
102
|
+
padding: offset
|
|
98
103
|
}),
|
|
99
104
|
anchorRef = _usePosition.anchorRef,
|
|
100
105
|
panelRef = _usePosition.tooltipRef,
|
|
@@ -226,6 +231,32 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
226
231
|
createPortal = _usePortal.createPortal;
|
|
227
232
|
var isPointer = !openDropdownByClick && pointerRef.current;
|
|
228
233
|
var focusEnabled = visible && !isPointer;
|
|
234
|
+
var _useState5 = (0, _react.useState)(0),
|
|
235
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
236
|
+
maxHeight = _useState6[0],
|
|
237
|
+
setMaxHeight = _useState6[1];
|
|
238
|
+
(0, _react.useEffect)(function () {
|
|
239
|
+
var calculate = (0, _esToolkit.debounce)(function () {
|
|
240
|
+
if (!anchorRef.current) return;
|
|
241
|
+
var nextMaxHeight = (0, _utils.calculateMaxHeight)({
|
|
242
|
+
anchorRect: anchorRef.current.getBoundingClientRect(),
|
|
243
|
+
position: placement,
|
|
244
|
+
offset: offset
|
|
245
|
+
});
|
|
246
|
+
setMaxHeight(nextMaxHeight);
|
|
247
|
+
}, 500);
|
|
248
|
+
window.addEventListener("resize", calculate, {
|
|
249
|
+
passive: true
|
|
250
|
+
});
|
|
251
|
+
window.addEventListener("scroll", calculate, {
|
|
252
|
+
passive: true
|
|
253
|
+
});
|
|
254
|
+
calculate();
|
|
255
|
+
return function () {
|
|
256
|
+
window.removeEventListener("resize", calculate);
|
|
257
|
+
window.removeEventListener("scroll", calculate);
|
|
258
|
+
};
|
|
259
|
+
}, [anchorRef, offset, placement, visible]);
|
|
229
260
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children === null || children === void 0 ? void 0 : children({
|
|
230
261
|
anchorRef: anchorRef,
|
|
231
262
|
anchorProps: anchorProps,
|
|
@@ -246,11 +277,11 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
246
277
|
}, openDropdownByClick ? {} : {
|
|
247
278
|
onMouseEnter: handleMouseEnter,
|
|
248
279
|
onMouseLeave: handleMouseLeave
|
|
280
|
+
}, {
|
|
281
|
+
maxHeight: maxHeight + offset
|
|
249
282
|
}, padding, rest), /*#__PURE__*/_react.default.createElement(Panel, {
|
|
250
|
-
bg: "white100",
|
|
251
|
-
border: "1px solid",
|
|
252
|
-
borderColor: "black10",
|
|
253
283
|
transition: _transition,
|
|
284
|
+
maxHeight: maxHeight,
|
|
254
285
|
style: transition ?
|
|
255
286
|
// In
|
|
256
287
|
{
|
|
@@ -281,8 +312,11 @@ var Container = (0, _styledComponents.default)(_Box.Box).withConfig({
|
|
|
281
312
|
var Panel = (0, _styledComponents.default)(_Box.Box).withConfig({
|
|
282
313
|
displayName: "Dropdown__Panel",
|
|
283
314
|
componentId: "sc-je1xqj-1"
|
|
284
|
-
})(["transition:", ";box-shadow:", "
|
|
315
|
+
})(["transition:", ";> div{max-height:", ";box-shadow:", ";background-color:", ";border:1px solid ", ";overflow-y:auto;}"], function (_ref7) {
|
|
285
316
|
var transition = _ref7.transition;
|
|
286
317
|
return transition ? "opacity 250ms ease-out, transform 250ms ease-out" : "none";
|
|
287
|
-
},
|
|
318
|
+
}, function (_ref8) {
|
|
319
|
+
var maxHeight = _ref8.maxHeight;
|
|
320
|
+
return maxHeight ? "".concat(maxHeight, "px") : "100vh";
|
|
321
|
+
}, (0, _themeGet.themeGet)("effects.flatShadow"), (0, _themeGet.themeGet)("colors.white100"), (0, _themeGet.themeGet)("colors.black10"));
|
|
288
322
|
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_utils","_usePortal2","_Box","_reactFocusOn","_themeGet","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Dropdown","_ref","_ref$placement","placement","_ref$visible","visible","_visible","keepInDOM","children","_ref$offset","offset","dropdown","_ref$dropdownZIndex","dropdownZIndex","openDropdownByClick","_ref$transition","transition","_transition","rest","_useState","useState","_useState2","setVisible","useEffect","timeoutRef","useRef","setVisibility","useCallback","_ref2","_ref2$isPointer","isPointer","delay","current","clearTimeout","setTimeout","activeRef","pointerRef","onVisible","onHide","onToggleVisibility","_usePosition","usePosition","position","active","anchorRef","panelRef","tooltipRef","isFlipped","state","handleKeyDown","event","handleKeyUp","document","activeElement","contains","handleClick","tagName","toLowerCase","isClosableElement","element","closest","addEventListener","removeEventListener","handleMouseEnter","handleMouseLeave","_useState3","_useState4","setTransition","translation","useMemo","padding","handlePointerVisible","handlePointerHide","anchorProps","onClick","onMouseEnter","onMouseLeave","_usePortal","usePortal","createPortal","focusEnabled","createElement","Fragment","Container","tabIndex","ref","zIndex","display","style","visibility","Panel","bg","border","borderColor","opacity","transform","FocusOn","noIsolation","enabled","onClickOutside","exports","styled","Box","withConfig","displayName","componentId","_ref7","themeGet"],"sources":["../../../src/elements/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { Position, usePosition } from \"../../utils\"\nimport { usePortal } from \"../../utils/usePortal\"\nimport { Box, BoxProps } from \"../Box\"\nimport { FocusOn } from \"react-focus-on\"\nimport { themeGet } from \"@styled-system/theme-get\"\n\nexport interface DropdownActions {\n /** Call to show dropdown */\n onVisible(): void\n /** Call to hide dropdown */\n onHide(): void\n /** Manipulate visible directly */\n setVisible(value: boolean): void\n /** Pass ref to element you want the dropdown to be anchored to */\n anchorRef: React.MutableRefObject<HTMLElement>\n /** Spread props on element you want the dropdown to be anchored to */\n anchorProps: React.HTMLAttributes<HTMLElement>\n /** Whether or not the dropdown is visible */\n visible: boolean\n}\n\ntype Children =\n | React.ReactNode\n | ((dropdownActions: DropdownActions) => React.ReactNode)\n\nexport interface DropdownProps extends Omit<BoxProps, \"children\"> {\n placement?: Position\n /** Intially visible by default? */\n visible?: boolean\n /** Whether or not we should animate the dropdown transition */\n transition?: boolean\n dropdown:\n | React.ReactNode\n | ((\n dropdownActions: Pick<\n DropdownActions,\n \"onHide\" | \"onVisible\" | \"setVisible\" | \"visible\"\n >\n ) => void)\n /** Custom zIndex to assign to the dropdown panel */\n dropdownZIndex?: number\n /** Distance in pixels from anchor */\n offset?: number\n /** Should the dropdown panel always be present in the DOM (vs removed when invisible) */\n keepInDOM?: boolean\n openDropdownByClick?: boolean\n children: Children\n}\n\n/**\n * A `Dropdown` is a small modal-type element which is anchored, and can be\n * positioned relative to, another element and designed to be transitioned in on hover or on click.\n */\nexport const Dropdown = ({\n placement = \"top\",\n visible: _visible = false,\n keepInDOM,\n children,\n offset = 10,\n dropdown,\n dropdownZIndex = 1,\n openDropdownByClick,\n transition: _transition = true,\n ...rest\n}: DropdownProps) => {\n const [visible, setVisible] = useState(false)\n\n // If prop updates/set initial visibility.\n useEffect(() => {\n setVisible(_visible)\n }, [_visible])\n\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n // We need to keep the pointer state in sync with the visibility state, else we\n // wind up with focus isolation out of sync.\n const setVisibility = useCallback(\n ({\n visible,\n isPointer = false,\n }: {\n visible: boolean\n isPointer?: boolean\n }) => {\n const delay = _transition ? (visible ? 50 : 150) : visible ? 1 : 50\n\n timeoutRef.current && clearTimeout(timeoutRef.current)\n timeoutRef.current = setTimeout(() => {\n if (!visible && activeRef.current) return\n pointerRef.current = isPointer\n setVisible(visible)\n }, delay)\n },\n [_transition]\n )\n\n const onVisible = () => {\n setVisibility({ visible: true })\n }\n\n const onHide = useCallback(() => {\n setVisibility({ visible: false })\n }, [setVisibility])\n\n const onToggleVisibility = () => {\n if (visible) {\n return onHide()\n }\n\n onVisible()\n }\n\n const {\n anchorRef,\n tooltipRef: panelRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset: 0,\n active: visible,\n })\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onHide()\n }\n }\n\n // Close dropdown when focus leaves element\n const handleKeyUp = (event: KeyboardEvent) => {\n if (!panelRef.current) return\n\n if (\n event.key === \"Tab\" &&\n !(\n panelRef.current === document.activeElement ||\n panelRef.current.contains(document.activeElement)\n )\n ) {\n onHide()\n }\n }\n\n const handleClick = (event: MouseEvent) => {\n if (!panelRef.current || !openDropdownByClick) return\n const target = event.target as Element\n const tagName = target.tagName.toLowerCase()\n let isClosableElement = tagName === \"a\"\n let element: Element | null = target\n\n // Find parent link element\n if (!isClosableElement) {\n element = target.closest(\"a\")\n isClosableElement = !!element\n }\n\n if (isClosableElement && element && panelRef.current.contains(element)) {\n onHide()\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown)\n document.addEventListener(\"keyup\", handleKeyUp)\n document.addEventListener(\"click\", handleClick)\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n document.removeEventListener(\"keyup\", handleKeyUp)\n document.removeEventListener(\"click\", handleClick)\n }\n }, [panelRef, openDropdownByClick, onHide])\n\n const activeRef = useRef(false)\n\n const handleMouseEnter = () => {\n activeRef.current = true\n }\n\n const handleMouseLeave = () => {\n activeRef.current = false\n onHide()\n }\n\n const [transition, setTransition] = useState(false)\n\n // Wait for next tick so that animation runs\n useEffect(() => {\n setTimeout(() => {\n setTransition(visible)\n }, 0)\n }, [visible])\n\n const translation = useMemo(() => {\n switch (placement) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return `translateY(10px)`\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return `translateY(-10px)`\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return `translateX(10px)`\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return `translateX(-10px)`\n }\n }, [placement])\n\n // Fills offset gap between anchor and panel to prevent mouseout\n const padding = useMemo(() => {\n switch (placement) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return { [isFlipped ? \"pt\" : \"pb\"]: offset }\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return { [isFlipped ? \"pb\" : \"pt\"]: offset }\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return { [isFlipped ? \"pl\" : \"pr\"]: offset }\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return { [isFlipped ? \"pr\" : \"pl\"]: offset }\n }\n }, [placement, isFlipped, offset])\n\n const pointerRef = useRef(false)\n\n const handlePointerVisible = () => {\n setVisibility({ visible: true, isPointer: true })\n }\n\n const handlePointerHide = () => {\n setVisibility({ visible: false, isPointer: false })\n }\n\n const anchorProps: React.HTMLAttributes<HTMLElement> = {\n \"aria-expanded\": visible,\n \"aria-haspopup\": true,\n ...(openDropdownByClick\n ? {\n onClick: onToggleVisibility,\n }\n : {\n onMouseEnter: handlePointerVisible,\n onMouseLeave: handlePointerHide,\n onClick: onVisible,\n }),\n }\n\n const { createPortal } = usePortal()\n\n const isPointer = !openDropdownByClick && pointerRef.current\n const focusEnabled = visible && !isPointer\n\n return (\n <>\n {(children as any)?.({\n anchorRef: anchorRef as any,\n anchorProps,\n onVisible,\n onHide,\n setVisible,\n visible,\n })}\n\n {(visible || keepInDOM) &&\n createPortal(\n <Container\n aria-label=\"Press escape to close\"\n tabIndex={0}\n ref={panelRef as any}\n zIndex={dropdownZIndex}\n display=\"inline-block\"\n placement={placement}\n style={{\n ...(keepInDOM\n ? { visibility: visible ? \"visible\" : \"hidden\" }\n : {}),\n }}\n {...(openDropdownByClick\n ? {}\n : {\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n })}\n {...padding}\n {...rest}\n >\n <Panel\n bg=\"white100\"\n border=\"1px solid\"\n borderColor=\"black10\"\n transition={_transition}\n style={\n transition\n ? // In\n { opacity: 1, transform: \"translate(0)\" }\n : // Out\n {\n opacity: 0,\n transform: translation,\n }\n }\n >\n <FocusOn\n noIsolation\n enabled={focusEnabled}\n onClickOutside={onHide}\n >\n {typeof dropdown === \"function\"\n ? (dropdown as any)({\n onVisible,\n onHide,\n setVisible,\n visible,\n })\n : dropdown}\n </FocusOn>\n </Panel>\n </Container>\n )}\n </>\n )\n}\n\nconst Container = styled(Box)<{ placement: Position } & BoxProps>`\n position: fixed;\n text-align: left;\n outline: 0;\n`\n\nconst Panel = styled(Box)<{ transition: boolean }>`\n transition: ${({ transition }) =>\n transition ? \"opacity 250ms ease-out, transform 250ms ease-out\" : \"none\"};\n box-shadow: ${themeGet(\"effects.flatShadow\")};\n > div {\n max-height: 100vh;\n overflow-y: auto;\n }\n`\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_utils","_usePortal2","_Box","_reactFocusOn","_themeGet","_esToolkit","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Dropdown","_ref","_ref$placement","placement","_ref$visible","visible","_visible","keepInDOM","children","_ref$offset","offset","dropdown","_ref$dropdownZIndex","dropdownZIndex","openDropdownByClick","_ref$transition","transition","_transition","_ref$flip","flip","rest","_useState","useState","_useState2","setVisible","useEffect","timeoutRef","useRef","setVisibility","useCallback","_ref2","_ref2$isPointer","isPointer","delay","current","clearTimeout","setTimeout","activeRef","pointerRef","onVisible","onHide","onToggleVisibility","_usePosition","usePosition","position","active","padding","anchorRef","panelRef","tooltipRef","isFlipped","state","handleKeyDown","event","handleKeyUp","document","activeElement","contains","handleClick","tagName","toLowerCase","isClosableElement","element","closest","addEventListener","removeEventListener","handleMouseEnter","handleMouseLeave","_useState3","_useState4","setTransition","translation","useMemo","handlePointerVisible","handlePointerHide","anchorProps","onClick","onMouseEnter","onMouseLeave","_usePortal","usePortal","createPortal","focusEnabled","_useState5","_useState6","maxHeight","setMaxHeight","calculate","debounce","nextMaxHeight","calculateMaxHeight","anchorRect","getBoundingClientRect","window","passive","createElement","Fragment","Container","tabIndex","ref","zIndex","display","style","visibility","Panel","opacity","transform","FocusOn","noIsolation","enabled","onClickOutside","exports","styled","Box","withConfig","displayName","componentId","_ref7","_ref8","concat","themeGet"],"sources":["../../../src/elements/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { calculateMaxHeight, Position, usePosition } from \"../../utils\"\nimport { usePortal } from \"../../utils/usePortal\"\nimport { Box, BoxProps } from \"../Box\"\nimport { FocusOn } from \"react-focus-on\"\nimport { themeGet } from \"@styled-system/theme-get\"\nimport { debounce } from \"es-toolkit\"\n\nexport interface DropdownActions {\n /** Call to show dropdown */\n onVisible(): void\n /** Call to hide dropdown */\n onHide(): void\n /** Manipulate visible directly */\n setVisible(value: boolean): void\n /** Pass ref to element you want the dropdown to be anchored to */\n anchorRef: React.MutableRefObject<HTMLElement>\n /** Spread props on element you want the dropdown to be anchored to */\n anchorProps: React.HTMLAttributes<HTMLElement>\n /** Whether or not the dropdown is visible */\n visible: boolean\n}\n\ntype Children =\n | React.ReactNode\n | ((dropdownActions: DropdownActions) => React.ReactNode)\n\nexport interface DropdownProps extends Omit<BoxProps, \"children\"> {\n placement?: Position\n /** Intially visible by default? */\n visible?: boolean\n /** Whether or not we should animate the dropdown transition */\n transition?: boolean\n dropdown:\n | React.ReactNode\n | ((\n dropdownActions: Pick<\n DropdownActions,\n \"onHide\" | \"onVisible\" | \"setVisible\" | \"visible\"\n >\n ) => void)\n /** Custom zIndex to assign to the dropdown panel */\n dropdownZIndex?: number\n /** Distance in pixels from anchor */\n offset?: number\n /** Should the dropdown panel always be present in the DOM (vs removed when invisible) */\n keepInDOM?: boolean\n openDropdownByClick?: boolean\n children: Children\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n}\n\n/**\n * A `Dropdown` is a small modal-type element which is anchored, and can be\n * positioned relative to, another element and designed to be transitioned in on hover or on click.\n */\nexport const Dropdown = ({\n placement = \"top\",\n visible: _visible = false,\n keepInDOM,\n children,\n offset = 10,\n dropdown,\n dropdownZIndex = 1,\n openDropdownByClick,\n transition: _transition = true,\n flip = true,\n ...rest\n}: DropdownProps) => {\n const [visible, setVisible] = useState(false)\n\n // If prop updates/set initial visibility.\n useEffect(() => {\n setVisible(_visible)\n }, [_visible])\n\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n // We need to keep the pointer state in sync with the visibility state, else we\n // wind up with focus isolation out of sync.\n const setVisibility = useCallback(\n ({\n visible,\n isPointer = false,\n }: {\n visible: boolean\n isPointer?: boolean\n }) => {\n const delay = _transition ? (visible ? 50 : 150) : visible ? 1 : 50\n\n timeoutRef.current && clearTimeout(timeoutRef.current)\n timeoutRef.current = setTimeout(() => {\n if (!visible && activeRef.current) return\n pointerRef.current = isPointer\n setVisible(visible)\n }, delay)\n },\n [_transition]\n )\n\n const onVisible = () => {\n setVisibility({ visible: true })\n }\n\n const onHide = useCallback(() => {\n setVisibility({ visible: false })\n }, [setVisibility])\n\n const onToggleVisibility = () => {\n if (visible) {\n return onHide()\n }\n\n onVisible()\n }\n\n const {\n anchorRef,\n tooltipRef: panelRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset: 0,\n active: visible,\n flip,\n padding: offset,\n })\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onHide()\n }\n }\n\n // Close dropdown when focus leaves element\n const handleKeyUp = (event: KeyboardEvent) => {\n if (!panelRef.current) return\n\n if (\n event.key === \"Tab\" &&\n !(\n panelRef.current === document.activeElement ||\n panelRef.current.contains(document.activeElement)\n )\n ) {\n onHide()\n }\n }\n\n const handleClick = (event: MouseEvent) => {\n if (!panelRef.current || !openDropdownByClick) return\n const target = event.target as Element\n const tagName = target.tagName.toLowerCase()\n let isClosableElement = tagName === \"a\"\n let element: Element | null = target\n\n // Find parent link element\n if (!isClosableElement) {\n element = target.closest(\"a\")\n isClosableElement = !!element\n }\n\n if (isClosableElement && element && panelRef.current.contains(element)) {\n onHide()\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown)\n document.addEventListener(\"keyup\", handleKeyUp)\n document.addEventListener(\"click\", handleClick)\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n document.removeEventListener(\"keyup\", handleKeyUp)\n document.removeEventListener(\"click\", handleClick)\n }\n }, [panelRef, openDropdownByClick, onHide])\n\n const activeRef = useRef(false)\n\n const handleMouseEnter = () => {\n activeRef.current = true\n }\n\n const handleMouseLeave = () => {\n activeRef.current = false\n onHide()\n }\n\n const [transition, setTransition] = useState(false)\n\n // Wait for next tick so that animation runs\n useEffect(() => {\n setTimeout(() => {\n setTransition(visible)\n }, 0)\n }, [visible])\n\n const translation = useMemo(() => {\n switch (placement) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return `translateY(10px)`\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return `translateY(-10px)`\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return `translateX(10px)`\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return `translateX(-10px)`\n }\n }, [placement])\n\n // Fills offset gap between anchor and panel to prevent mouseout\n const padding = useMemo(() => {\n switch (placement) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return { [isFlipped ? \"pt\" : \"pb\"]: offset }\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return { [isFlipped ? \"pb\" : \"pt\"]: offset }\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return { [isFlipped ? \"pl\" : \"pr\"]: offset }\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return { [isFlipped ? \"pr\" : \"pl\"]: offset }\n }\n }, [placement, isFlipped, offset])\n\n const pointerRef = useRef(false)\n\n const handlePointerVisible = () => {\n setVisibility({ visible: true, isPointer: true })\n }\n\n const handlePointerHide = () => {\n setVisibility({ visible: false, isPointer: false })\n }\n\n const anchorProps: React.HTMLAttributes<HTMLElement> = {\n \"aria-expanded\": visible,\n \"aria-haspopup\": true,\n ...(openDropdownByClick\n ? {\n onClick: onToggleVisibility,\n }\n : {\n onMouseEnter: handlePointerVisible,\n onMouseLeave: handlePointerHide,\n onClick: onVisible,\n }),\n }\n\n const { createPortal } = usePortal()\n\n const isPointer = !openDropdownByClick && pointerRef.current\n const focusEnabled = visible && !isPointer\n\n const [maxHeight, setMaxHeight] = useState(0)\n\n useEffect(() => {\n const calculate = debounce(() => {\n if (!anchorRef.current) return\n\n const nextMaxHeight = calculateMaxHeight({\n anchorRect: anchorRef.current.getBoundingClientRect(),\n position: placement,\n offset,\n })\n\n setMaxHeight(nextMaxHeight)\n }, 500)\n\n window.addEventListener(\"resize\", calculate, { passive: true })\n window.addEventListener(\"scroll\", calculate, { passive: true })\n calculate()\n\n return () => {\n window.removeEventListener(\"resize\", calculate)\n window.removeEventListener(\"scroll\", calculate)\n }\n }, [anchorRef, offset, placement, visible])\n\n return (\n <>\n {(children as any)?.({\n anchorRef: anchorRef as any,\n anchorProps,\n onVisible,\n onHide,\n setVisible,\n visible,\n })}\n\n {(visible || keepInDOM) &&\n createPortal(\n <Container\n aria-label=\"Press escape to close\"\n tabIndex={0}\n ref={panelRef as any}\n zIndex={dropdownZIndex}\n display=\"inline-block\"\n placement={placement}\n style={{\n ...(keepInDOM\n ? { visibility: visible ? \"visible\" : \"hidden\" }\n : {}),\n }}\n {...(openDropdownByClick\n ? {}\n : {\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n })}\n maxHeight={maxHeight + offset}\n {...padding}\n {...rest}\n >\n <Panel\n transition={_transition}\n maxHeight={maxHeight}\n style={\n transition\n ? // In\n { opacity: 1, transform: \"translate(0)\" }\n : // Out\n {\n opacity: 0,\n transform: translation,\n }\n }\n >\n <FocusOn\n noIsolation\n enabled={focusEnabled}\n onClickOutside={onHide}\n >\n {typeof dropdown === \"function\"\n ? (dropdown as any)({\n onVisible,\n onHide,\n setVisible,\n visible,\n })\n : dropdown}\n </FocusOn>\n </Panel>\n </Container>\n )}\n </>\n )\n}\n\nconst Container = styled(Box)<{ placement: Position } & BoxProps>`\n position: fixed;\n text-align: left;\n outline: 0;\n`\n\nconst Panel = styled(Box)<{ transition: boolean; maxHeight: number }>`\n transition: ${({ transition }) =>\n transition ? \"opacity 250ms ease-out, transform 250ms ease-out\" : \"none\"};\n > div {\n max-height: ${({ maxHeight }) => (maxHeight ? `${maxHeight}px` : \"100vh\")};\n box-shadow: ${themeGet(\"effects.flatShadow\")};\n background-color: ${themeGet(\"colors.white100\")};\n border: 1px solid ${themeGet(\"colors.black10\")};\n overflow-y: auto;\n }\n`\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAAqC,IAAAS,SAAA;AAAA,SAAAP,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAf,wBAAAW,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAQ,OAAA,CAAAR,GAAA,yBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAS,KAAA,GAAAN,wBAAA,CAAAC,WAAA,OAAAK,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAV,GAAA,YAAAS,KAAA,CAAAE,GAAA,CAAAX,GAAA,SAAAY,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAjB,GAAA,QAAAiB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAApB,GAAA,EAAAiB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAhB,GAAA,EAAAiB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAjB,GAAA,CAAAiB,GAAA,SAAAL,MAAA,CAAAV,OAAA,GAAAF,GAAA,MAAAS,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAtB,GAAA,EAAAY,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAArB,MAAA,CAAAqB,IAAA,CAAAF,MAAA,OAAAnB,MAAA,CAAAsB,qBAAA,QAAAC,OAAA,GAAAvB,MAAA,CAAAsB,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAzB,MAAA,CAAAE,wBAAA,CAAAiB,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAV,KAAA,CAAAI,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAO,cAAAhB,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAK,OAAA,CAAAlB,MAAA,CAAAgB,MAAA,OAAAa,OAAA,WAAA1B,GAAA,IAAA2B,eAAA,CAAAlB,MAAA,EAAAT,GAAA,EAAAa,MAAA,CAAAb,GAAA,SAAAH,MAAA,CAAA+B,yBAAA,GAAA/B,MAAA,CAAAgC,gBAAA,CAAApB,MAAA,EAAAZ,MAAA,CAAA+B,yBAAA,CAAAf,MAAA,KAAAE,OAAA,CAAAlB,MAAA,CAAAgB,MAAA,GAAAa,OAAA,WAAA1B,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAW,MAAA,EAAAT,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAc,MAAA,EAAAb,GAAA,iBAAAS,MAAA;AAAA,SAAAkB,gBAAA5C,GAAA,EAAAiB,GAAA,EAAA8B,KAAA,IAAA9B,GAAA,GAAA+B,cAAA,CAAA/B,GAAA,OAAAA,GAAA,IAAAjB,GAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAf,GAAA,EAAAiB,GAAA,IAAA8B,KAAA,EAAAA,KAAA,EAAAP,UAAA,QAAAS,YAAA,QAAAC,QAAA,oBAAAlD,GAAA,CAAAiB,GAAA,IAAA8B,KAAA,WAAA/C,GAAA;AAAA,SAAAgD,eAAAG,GAAA,QAAAlC,GAAA,GAAAmC,YAAA,CAAAD,GAAA,oBAAA3C,OAAA,CAAAS,GAAA,iBAAAA,GAAA,GAAAoC,MAAA,CAAApC,GAAA;AAAA,SAAAmC,aAAAE,KAAA,EAAAC,IAAA,QAAA/C,OAAA,CAAA8C,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAApC,IAAA,CAAAkC,KAAA,EAAAC,IAAA,oBAAA/C,OAAA,CAAAoD,GAAA,uBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAAA,SAAAS,eAAAC,GAAA,EAAArC,CAAA,WAAAsC,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAArC,CAAA,KAAAwC,2BAAA,CAAAH,GAAA,EAAArC,CAAA,KAAAyC,gBAAA;AAAA,SAAAA,iBAAA,cAAAP,SAAA;AAAA,SAAAM,4BAAAE,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAA1D,MAAA,CAAAI,SAAA,CAAAuD,QAAA,CAAArD,IAAA,CAAAiD,CAAA,EAAAK,KAAA,aAAAF,CAAA,iBAAAH,CAAA,CAAAM,WAAA,EAAAH,CAAA,GAAAH,CAAA,CAAAM,WAAA,CAAAC,IAAA,MAAAJ,CAAA,cAAAA,CAAA,mBAAAK,KAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAG,CAAA,+DAAAO,IAAA,CAAAP,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAP,GAAA,EAAAgB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAhB,GAAA,CAAAnC,MAAA,EAAAmD,GAAA,GAAAhB,GAAA,CAAAnC,MAAA,WAAAF,CAAA,MAAAsD,IAAA,OAAAJ,KAAA,CAAAG,GAAA,GAAArD,CAAA,GAAAqD,GAAA,EAAArD,CAAA,MAAAsD,IAAA,CAAAtD,CAAA,IAAAqC,GAAA,CAAArC,CAAA,YAAAsD,IAAA;AAAA,SAAAf,sBAAAF,GAAA,EAAArC,CAAA,QAAAuD,EAAA,WAAAlB,GAAA,gCAAAP,MAAA,IAAAO,GAAA,CAAAP,MAAA,CAAA0B,QAAA,KAAAnB,GAAA,4BAAAkB,EAAA,QAAAE,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAJ,EAAA,GAAAA,EAAA,CAAA9D,IAAA,CAAA4C,GAAA,GAAA2B,IAAA,QAAAhE,CAAA,QAAAb,MAAA,CAAAoE,EAAA,MAAAA,EAAA,UAAAO,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAAlE,IAAA,CAAA8D,EAAA,GAAAU,IAAA,MAAAJ,IAAA,CAAA/C,IAAA,CAAA2C,EAAA,CAAArC,KAAA,GAAAyC,IAAA,CAAA3D,MAAA,KAAAF,CAAA,GAAA8D,EAAA,sBAAAI,GAAA,IAAAH,EAAA,OAAAL,EAAA,GAAAQ,GAAA,yBAAAJ,EAAA,YAAAP,EAAA,CAAAY,MAAA,KAAAP,EAAA,GAAAL,EAAA,CAAAY,MAAA,IAAAhF,MAAA,CAAAyE,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAvB,gBAAAD,GAAA,QAAAa,KAAA,CAAAkB,OAAA,CAAA/B,GAAA,UAAAA,GAAA;AAAA,SAAAgC,yBAAAlE,MAAA,EAAAmE,QAAA,QAAAnE,MAAA,yBAAAJ,MAAA,GAAAwE,6BAAA,CAAApE,MAAA,EAAAmE,QAAA,OAAAhF,GAAA,EAAAU,CAAA,MAAAb,MAAA,CAAAsB,qBAAA,QAAA+D,gBAAA,GAAArF,MAAA,CAAAsB,qBAAA,CAAAN,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAwE,gBAAA,CAAAtE,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAkF,gBAAA,CAAAxE,CAAA,OAAAsE,QAAA,CAAAG,OAAA,CAAAnF,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAmF,oBAAA,CAAAjF,IAAA,CAAAU,MAAA,EAAAb,GAAA,aAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,cAAAS,MAAA;AAAA,SAAAwE,8BAAApE,MAAA,EAAAmE,QAAA,QAAAnE,MAAA,yBAAAJ,MAAA,WAAA4E,UAAA,GAAAxF,MAAA,CAAAqB,IAAA,CAAAL,MAAA,OAAAb,GAAA,EAAAU,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAA2E,UAAA,CAAAzE,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAqF,UAAA,CAAA3E,CAAA,OAAAsE,QAAA,CAAAG,OAAA,CAAAnF,GAAA,kBAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,YAAAS,MAAA;AA+CrC;AACA;AACA;AACA;AACO,IAAM6E,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAYA;EAAA,IAAAC,cAAA,GAAAD,IAAA,CAXnBE,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA;IAAAE,YAAA,GAAAH,IAAA,CACjBI,OAAO;IAAEC,QAAQ,GAAAF,YAAA,cAAG,KAAK,GAAAA,YAAA;IACzBG,SAAS,GAAAN,IAAA,CAATM,SAAS;IACTC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IAAAC,WAAA,GAAAR,IAAA,CACRS,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA;IACXE,QAAQ,GAAAV,IAAA,CAARU,QAAQ;IAAAC,mBAAA,GAAAX,IAAA,CACRY,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,CAAC,GAAAA,mBAAA;IAClBE,mBAAmB,GAAAb,IAAA,CAAnBa,mBAAmB;IAAAC,eAAA,GAAAd,IAAA,CACnBe,UAAU;IAAEC,WAAW,GAAAF,eAAA,cAAG,IAAI,GAAAA,eAAA;IAAAG,SAAA,GAAAjB,IAAA,CAC9BkB,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,IAAI,GAAAA,SAAA;IACRE,IAAI,GAAA3B,wBAAA,CAAAQ,IAAA,EAAAzG,SAAA;EAEP,IAAA6H,SAAA,GAA8B,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAA/D,cAAA,CAAA6D,SAAA;IAAtChB,OAAO,GAAAkB,UAAA;IAAEC,UAAU,GAAAD,UAAA;;EAE1B;EACA,IAAAE,gBAAS,EAAC,YAAM;IACdD,UAAU,CAAClB,QAAQ,CAAC;EACtB,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMoB,UAAU,GAAG,IAAAC,aAAM,EAAuC,IAAI,CAAC;;EAErE;EACA;EACA,IAAMC,aAAa,GAAG,IAAAC,kBAAW,EAC/B,UAAAC,KAAA,EAMM;IAAA,IALJzB,OAAO,GAAAyB,KAAA,CAAPzB,OAAO;MAAA0B,eAAA,GAAAD,KAAA,CACPE,SAAS;MAATA,SAAS,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA;IAKjB,IAAME,KAAK,GAAGhB,WAAW,GAAIZ,OAAO,GAAG,EAAE,GAAG,GAAG,GAAIA,OAAO,GAAG,CAAC,GAAG,EAAE;IAEnEqB,UAAU,CAACQ,OAAO,IAAIC,YAAY,CAACT,UAAU,CAACQ,OAAO,CAAC;IACtDR,UAAU,CAACQ,OAAO,GAAGE,UAAU,CAAC,YAAM;MACpC,IAAI,CAAC/B,OAAO,IAAIgC,SAAS,CAACH,OAAO,EAAE;MACnCI,UAAU,CAACJ,OAAO,GAAGF,SAAS;MAC9BR,UAAU,CAACnB,OAAO,CAAC;IACrB,CAAC,EAAE4B,KAAK,CAAC;EACX,CAAC,EACD,CAAChB,WAAW,CAAC,CACd;EAED,IAAMsB,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;IACtBX,aAAa,CAAC;MAAEvB,OAAO,EAAE;IAAK,CAAC,CAAC;EAClC,CAAC;EAED,IAAMmC,MAAM,GAAG,IAAAX,kBAAW,EAAC,YAAM;IAC/BD,aAAa,CAAC;MAAEvB,OAAO,EAAE;IAAM,CAAC,CAAC;EACnC,CAAC,EAAE,CAACuB,aAAa,CAAC,CAAC;EAEnB,IAAMa,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;IAC/B,IAAIpC,OAAO,EAAE;MACX,OAAOmC,MAAM,EAAE;IACjB;IAEAD,SAAS,EAAE;EACb,CAAC;EAED,IAAAG,YAAA,GAII,IAAAC,kBAAW,EAAC;MACdC,QAAQ,EAAEzC,SAAS;MACnBO,MAAM,EAAE,CAAC;MACTmC,MAAM,EAAExC,OAAO;MACfc,IAAI,EAAJA,IAAI;MACJ2B,OAAO,EAAEpC;IACX,CAAC,CAAC;IATAqC,SAAS,GAAAL,YAAA,CAATK,SAAS;IACGC,QAAQ,GAAAN,YAAA,CAApBO,UAAU;IACDC,SAAS,GAAAR,YAAA,CAAlBS,KAAK,CAAID,SAAS;EASpB,IAAAzB,gBAAS,EAAC,YAAM;IACd,IAAM2B,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAoB,EAAK;MAC9C,IAAIA,KAAK,CAAC3I,GAAG,KAAK,QAAQ,EAAE;QAC1B8H,MAAM,EAAE;MACV;IACF,CAAC;;IAED;IACA,IAAMc,WAAW,GAAG,SAAdA,WAAWA,CAAID,KAAoB,EAAK;MAC5C,IAAI,CAACL,QAAQ,CAACd,OAAO,EAAE;MAEvB,IACEmB,KAAK,CAAC3I,GAAG,KAAK,KAAK,IACnB,EACEsI,QAAQ,CAACd,OAAO,KAAKqB,QAAQ,CAACC,aAAa,IAC3CR,QAAQ,CAACd,OAAO,CAACuB,QAAQ,CAACF,QAAQ,CAACC,aAAa,CAAC,CAClD,EACD;QACAhB,MAAM,EAAE;MACV;IACF,CAAC;IAED,IAAMkB,WAAW,GAAG,SAAdA,WAAWA,CAAIL,KAAiB,EAAK;MACzC,IAAI,CAACL,QAAQ,CAACd,OAAO,IAAI,CAACpB,mBAAmB,EAAE;MAC/C,IAAM3F,MAAM,GAAGkI,KAAK,CAAClI,MAAiB;MACtC,IAAMwI,OAAO,GAAGxI,MAAM,CAACwI,OAAO,CAACC,WAAW,EAAE;MAC5C,IAAIC,iBAAiB,GAAGF,OAAO,KAAK,GAAG;MACvC,IAAIG,OAAuB,GAAG3I,MAAM;;MAEpC;MACA,IAAI,CAAC0I,iBAAiB,EAAE;QACtBC,OAAO,GAAG3I,MAAM,CAAC4I,OAAO,CAAC,GAAG,CAAC;QAC7BF,iBAAiB,GAAG,CAAC,CAACC,OAAO;MAC/B;MAEA,IAAID,iBAAiB,IAAIC,OAAO,IAAId,QAAQ,CAACd,OAAO,CAACuB,QAAQ,CAACK,OAAO,CAAC,EAAE;QACtEtB,MAAM,EAAE;MACV;IACF,CAAC;IAEDe,QAAQ,CAACS,gBAAgB,CAAC,SAAS,EAAEZ,aAAa,CAAC;IACnDG,QAAQ,CAACS,gBAAgB,CAAC,OAAO,EAAEV,WAAW,CAAC;IAC/CC,QAAQ,CAACS,gBAAgB,CAAC,OAAO,EAAEN,WAAW,CAAC;IAE/C,OAAO,YAAM;MACXH,QAAQ,CAACU,mBAAmB,CAAC,SAAS,EAAEb,aAAa,CAAC;MACtDG,QAAQ,CAACU,mBAAmB,CAAC,OAAO,EAAEX,WAAW,CAAC;MAClDC,QAAQ,CAACU,mBAAmB,CAAC,OAAO,EAAEP,WAAW,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAACV,QAAQ,EAAElC,mBAAmB,EAAE0B,MAAM,CAAC,CAAC;EAE3C,IAAMH,SAAS,GAAG,IAAAV,aAAM,EAAC,KAAK,CAAC;EAE/B,IAAMuC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC7B7B,SAAS,CAACH,OAAO,GAAG,IAAI;EAC1B,CAAC;EAED,IAAMiC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;IAC7B9B,SAAS,CAACH,OAAO,GAAG,KAAK;IACzBM,MAAM,EAAE;EACV,CAAC;EAED,IAAA4B,UAAA,GAAoC,IAAA9C,eAAQ,EAAC,KAAK,CAAC;IAAA+C,UAAA,GAAA7G,cAAA,CAAA4G,UAAA;IAA5CpD,UAAU,GAAAqD,UAAA;IAAEC,aAAa,GAAAD,UAAA;;EAEhC;EACA,IAAA5C,gBAAS,EAAC,YAAM;IACdW,UAAU,CAAC,YAAM;MACfkC,aAAa,CAACjE,OAAO,CAAC;IACxB,CAAC,EAAE,CAAC,CAAC;EACP,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,IAAMkE,WAAW,GAAG,IAAAC,cAAO,EAAC,YAAM;IAChC,QAAQrE,SAAS;MACf,KAAK,WAAW;MAChB,KAAK,KAAK;MACV,KAAK,SAAS;QACZ;MACF,KAAK,cAAc;MACnB,KAAK,QAAQ;MACb,KAAK,YAAY;QACf;MACF,KAAK,YAAY;MACjB,KAAK,MAAM;MACX,KAAK,UAAU;QACb;MACF,KAAK,aAAa;MAClB,KAAK,OAAO;MACZ,KAAK,WAAW;QACd;IAA0B;EAEhC,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;;EAEf;EACA,IAAM2C,OAAO,GAAG,IAAA0B,cAAO,EAAC,YAAM;IAC5B,QAAQrE,SAAS;MACf,KAAK,WAAW;MAChB,KAAK,KAAK;MACV,KAAK,SAAS;QACZ,OAAA9D,eAAA,KAAU6G,SAAS,GAAG,IAAI,GAAG,IAAI,EAAGxC,MAAM;MAC5C,KAAK,cAAc;MACnB,KAAK,QAAQ;MACb,KAAK,YAAY;QACf,OAAArE,eAAA,KAAU6G,SAAS,GAAG,IAAI,GAAG,IAAI,EAAGxC,MAAM;MAC5C,KAAK,YAAY;MACjB,KAAK,MAAM;MACX,KAAK,UAAU;QACb,OAAArE,eAAA,KAAU6G,SAAS,GAAG,IAAI,GAAG,IAAI,EAAGxC,MAAM;MAC5C,KAAK,aAAa;MAClB,KAAK,OAAO;MACZ,KAAK,WAAW;QACd,OAAArE,eAAA,KAAU6G,SAAS,GAAG,IAAI,GAAG,IAAI,EAAGxC,MAAM;IAAE;EAElD,CAAC,EAAE,CAACP,SAAS,EAAE+C,SAAS,EAAExC,MAAM,CAAC,CAAC;EAElC,IAAM4B,UAAU,GAAG,IAAAX,aAAM,EAAC,KAAK,CAAC;EAEhC,IAAM8C,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;IACjC7C,aAAa,CAAC;MAAEvB,OAAO,EAAE,IAAI;MAAE2B,SAAS,EAAE;IAAK,CAAC,CAAC;EACnD,CAAC;EAED,IAAM0C,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA,EAAS;IAC9B9C,aAAa,CAAC;MAAEvB,OAAO,EAAE,KAAK;MAAE2B,SAAS,EAAE;IAAM,CAAC,CAAC;EACrD,CAAC;EAED,IAAM2C,WAA8C,GAAAxI,aAAA;IAClD,eAAe,EAAEkE,OAAO;IACxB,eAAe,EAAE;EAAI,GACjBS,mBAAmB,GACnB;IACE8D,OAAO,EAAEnC;EACX,CAAC,GACD;IACEoC,YAAY,EAAEJ,oBAAoB;IAClCK,YAAY,EAAEJ,iBAAiB;IAC/BE,OAAO,EAAErC;EACX,CAAC,CACN;EAED,IAAAwC,UAAA,GAAyB,IAAAC,qBAAS,GAAE;IAA5BC,YAAY,GAAAF,UAAA,CAAZE,YAAY;EAEpB,IAAMjD,SAAS,GAAG,CAAClB,mBAAmB,IAAIwB,UAAU,CAACJ,OAAO;EAC5D,IAAMgD,YAAY,GAAG7E,OAAO,IAAI,CAAC2B,SAAS;EAE1C,IAAAmD,UAAA,GAAkC,IAAA7D,eAAQ,EAAC,CAAC,CAAC;IAAA8D,UAAA,GAAA5H,cAAA,CAAA2H,UAAA;IAAtCE,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAE9B,IAAA3D,gBAAS,EAAC,YAAM;IACd,IAAM8D,SAAS,GAAG,IAAAC,mBAAQ,EAAC,YAAM;MAC/B,IAAI,CAACzC,SAAS,CAACb,OAAO,EAAE;MAExB,IAAMuD,aAAa,GAAG,IAAAC,yBAAkB,EAAC;QACvCC,UAAU,EAAE5C,SAAS,CAACb,OAAO,CAAC0D,qBAAqB,EAAE;QACrDhD,QAAQ,EAAEzC,SAAS;QACnBO,MAAM,EAANA;MACF,CAAC,CAAC;MAEF4E,YAAY,CAACG,aAAa,CAAC;IAC7B,CAAC,EAAE,GAAG,CAAC;IAEPI,MAAM,CAAC7B,gBAAgB,CAAC,QAAQ,EAAEuB,SAAS,EAAE;MAAEO,OAAO,EAAE;IAAK,CAAC,CAAC;IAC/DD,MAAM,CAAC7B,gBAAgB,CAAC,QAAQ,EAAEuB,SAAS,EAAE;MAAEO,OAAO,EAAE;IAAK,CAAC,CAAC;IAC/DP,SAAS,EAAE;IAEX,OAAO,YAAM;MACXM,MAAM,CAAC5B,mBAAmB,CAAC,QAAQ,EAAEsB,SAAS,CAAC;MAC/CM,MAAM,CAAC5B,mBAAmB,CAAC,QAAQ,EAAEsB,SAAS,CAAC;IACjD,CAAC;EACH,CAAC,EAAE,CAACxC,SAAS,EAAErC,MAAM,EAAEP,SAAS,EAAEE,OAAO,CAAC,CAAC;EAE3C,oBACExH,MAAA,CAAAc,OAAA,CAAAoM,aAAA,CAAAlN,MAAA,CAAAc,OAAA,CAAAqM,QAAA,QACIxF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAW;IACnBuC,SAAS,EAAEA,SAAgB;IAC3B4B,WAAW,EAAXA,WAAW;IACXpC,SAAS,EAATA,SAAS;IACTC,MAAM,EAANA,MAAM;IACNhB,UAAU,EAAVA,UAAU;IACVnB,OAAO,EAAPA;EACF,CAAC,CAAC,EAED,CAACA,OAAO,IAAIE,SAAS,KACpB0E,YAAY,eACVpM,MAAA,CAAAc,OAAA,CAAAoM,aAAA,CAACE,SAAS,EAAAjL,QAAA;IACR,cAAW,uBAAuB;IAClCkL,QAAQ,EAAE,CAAE;IACZC,GAAG,EAAEnD,QAAgB;IACrBoD,MAAM,EAAEvF,cAAe;IACvBwF,OAAO,EAAC,cAAc;IACtBlG,SAAS,EAAEA,SAAU;IACrBmG,KAAK,EAAAnK,aAAA,KACCoE,SAAS,GACT;MAAEgG,UAAU,EAAElG,OAAO,GAAG,SAAS,GAAG;IAAS,CAAC,GAC9C,CAAC,CAAC;EACN,GACGS,mBAAmB,GACpB,CAAC,CAAC,GACF;IACE+D,YAAY,EAAEX,gBAAgB;IAC9BY,YAAY,EAAEX;EAChB,CAAC;IACLkB,SAAS,EAAEA,SAAS,GAAG3E;EAAO,GAC1BoC,OAAO,EACP1B,IAAI,gBAERvI,MAAA,CAAAc,OAAA,CAAAoM,aAAA,CAACS,KAAK;IACJxF,UAAU,EAAEC,WAAY;IACxBoE,SAAS,EAAEA,SAAU;IACrBiB,KAAK,EACHtF,UAAU;IACN;IACA;MAAEyF,OAAO,EAAE,CAAC;MAAEC,SAAS,EAAE;IAAe,CAAC;IACzC;IACA;MACED,OAAO,EAAE,CAAC;MACVC,SAAS,EAAEnC;IACb;EACL,gBAED1L,MAAA,CAAAc,OAAA,CAAAoM,aAAA,CAAC1M,aAAA,CAAAsN,OAAO;IACNC,WAAW;IACXC,OAAO,EAAE3B,YAAa;IACtB4B,cAAc,EAAEtE;EAAO,GAEtB,OAAO7B,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,CAAS;IAChB4B,SAAS,EAATA,SAAS;IACTC,MAAM,EAANA,MAAM;IACNhB,UAAU,EAAVA,UAAU;IACVnB,OAAO,EAAPA;EACF,CAAC,CAAC,GACFM,QAAQ,CACJ,CACJ,CACE,CACb,CACF;AAEP,CAAC;AAAAoG,OAAA,CAAA/G,QAAA,GAAAA,QAAA;AAED,IAAMiG,SAAS,GAAG,IAAAe,yBAAM,EAACC,QAAG,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iDAI5B;AAED,IAAMZ,KAAK,GAAG,IAAAQ,yBAAM,EAACC,QAAG,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,4HACT,UAAAC,KAAA;EAAA,IAAGrG,UAAU,GAAAqG,KAAA,CAAVrG,UAAU;EAAA,OACzBA,UAAU,GAAG,kDAAkD,GAAG,MAAM;AAAA,GAE1D,UAAAsG,KAAA;EAAA,IAAGjC,SAAS,GAAAiC,KAAA,CAATjC,SAAS;EAAA,OAAQA,SAAS,MAAAkC,MAAA,CAAMlC,SAAS,UAAO,OAAO;AAAA,CAAC,EAC3D,IAAAmC,kBAAQ,EAAC,oBAAoB,CAAC,EACxB,IAAAA,kBAAQ,EAAC,iBAAiB,CAAC,EAC3B,IAAAA,kBAAQ,EAAC,gBAAgB,CAAC,CAGjD"}
|
|
@@ -16,6 +16,7 @@ var _Clickable = require("../Clickable");
|
|
|
16
16
|
var _Flex = require("../Flex");
|
|
17
17
|
var _Pill = require("../Pill");
|
|
18
18
|
var _ChevronSmallDownIcon = _interopRequireDefault(require("@artsy/icons/ChevronSmallDownIcon"));
|
|
19
|
+
var _Spacer = require("../Spacer");
|
|
19
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -247,22 +248,51 @@ var OverflowingContent = function OverflowingContent() {
|
|
|
247
248
|
px: 2
|
|
248
249
|
}, "Item ", i);
|
|
249
250
|
}));
|
|
250
|
-
|
|
251
|
+
var _useState3 = (0, _react.useState)("bottom"),
|
|
252
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
253
|
+
placement = _useState4[0],
|
|
254
|
+
setPlacement = _useState4[1];
|
|
255
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
256
|
+
height: 200,
|
|
257
|
+
bg: "black10"
|
|
258
|
+
}), /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
|
|
259
|
+
y: 2
|
|
260
|
+
}), ["bottom", "top", "left", "right"].map(function (p) {
|
|
261
|
+
return /*#__PURE__*/_react.default.createElement(_Pill.Pill, {
|
|
262
|
+
key: p,
|
|
263
|
+
size: "small",
|
|
264
|
+
mr: 1,
|
|
265
|
+
mb: 1,
|
|
266
|
+
selected: placement === p,
|
|
267
|
+
onClick: function onClick() {
|
|
268
|
+
return setPlacement(p);
|
|
269
|
+
}
|
|
270
|
+
}, p);
|
|
271
|
+
}), /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
|
|
272
|
+
y: 2
|
|
273
|
+
}), /*#__PURE__*/_react.default.createElement(_Flex.Flex, {
|
|
274
|
+
alignItems: "center",
|
|
275
|
+
justifyContent: "center"
|
|
276
|
+
}, /*#__PURE__*/_react.default.createElement(_Dropdown.Dropdown, {
|
|
251
277
|
dropdown: dropdown,
|
|
252
|
-
openDropdownByClick: true
|
|
278
|
+
openDropdownByClick: true,
|
|
279
|
+
placement: placement
|
|
253
280
|
}, function (_ref8) {
|
|
254
281
|
var anchorRef = _ref8.anchorRef,
|
|
255
282
|
anchorProps = _ref8.anchorProps;
|
|
256
283
|
return /*#__PURE__*/_react.default.createElement(_Button.Button, _extends({
|
|
257
284
|
ref: anchorRef,
|
|
258
285
|
variant: "secondaryBlack",
|
|
259
|
-
size: "small"
|
|
260
|
-
mr: 1
|
|
286
|
+
size: "small"
|
|
261
287
|
}, anchorProps), "Click to display dropdown");
|
|
288
|
+
})), /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
|
|
289
|
+
y: 2
|
|
290
|
+
}), /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
291
|
+
height: 5000,
|
|
292
|
+
bg: "black10"
|
|
262
293
|
}));
|
|
263
294
|
};
|
|
264
295
|
exports.OverflowingContent = OverflowingContent;
|
|
265
|
-
OverflowingContent.displayName = "OverflowingContent";
|
|
266
296
|
var DisabledTransition = function DisabledTransition() {
|
|
267
297
|
return /*#__PURE__*/_react.default.createElement(_Flex.Flex, null, [1, 2, 3].map(function (num) {
|
|
268
298
|
var dropdown = /*#__PURE__*/_react.default.createElement(_Text.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.story.js","names":["_react","_interopRequireWildcard","require","_storybookStates","_utils","_Box","_Button","_Text","_Dropdown","_Clickable","_Flex","_Pill","_ChevronSmallDownIcon","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","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","_extends","assign","bind","target","arguments","source","apply","_default","title","exports","Default","createElement","States","states","keys","POSITION","map","placement","Dropdown","visible","dropdown","Box","width","p","Text","as","display","variant","href","_ref","anchorRef","anchorProps","textAlign","Button","ref","size","displayName","story","parameters","chromatic","disable","KeepInDOM","keepInDOM","_ref2","ChangeDimensions","_useState","useState","_useState2","height","setHeight","useEffect","setInterval","Math","floor","random","_ref3","FocusOrder","Clickable","py","px","Flex","_ref4","mr","_ref5","OpenDropdownByClick","openDropdownByClick","_ref6","FilterExample","_ref7","Pill","Icon","ChevronSmallDownIcon","iconPosition","OverflowingContent","fill","_","_ref8","DisabledTransition","num","bg","concat","transition","_ref9"],"sources":["../../../src/elements/Dropdown/Dropdown.story.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\"\nimport { States } from \"storybook-states\"\nimport { Position, POSITION } from \"../../utils\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Text } from \"../Text\"\nimport { Dropdown, DropdownProps } from \"./Dropdown\"\nimport { Clickable } from \"../Clickable\"\nimport { Flex } from \"../Flex\"\nimport { Pill } from \"../Pill\"\nimport ChevronSmallDownIcon from \"@artsy/icons/ChevronSmallDownIcon\"\n\nexport default {\n title: \"Components/Dropdown\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<DropdownProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n <Dropdown\n placement=\"bottom\"\n visible\n dropdown={\n <Box width={300} p={2}>\n <Text as=\"a\" display=\"block\" variant=\"sm\" href=\"#\">\n One\n </Text>\n\n <Text as=\"a\" display=\"block\" variant=\"sm\" href=\"#\">\n Two\n </Text>\n\n <Text as=\"a\" display=\"block\" variant=\"sm\" href=\"#\">\n Three\n </Text>\n </Box>\n }\n >\n {({ anchorRef, anchorProps }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Hover to display dropdown\n </Button>\n </Box>\n )\n }}\n </Dropdown>\n </States>\n )\n}\n\nDefault.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const KeepInDOM = () => {\n return (\n <Dropdown\n placement=\"bottom\"\n keepInDOM\n dropdown={\n <Text p={2} variant=\"xs\">\n Content remains in DOM\n </Text>\n }\n >\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Hover to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n )\n}\n\nKeepInDOM.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const ChangeDimensions = () => {\n const [height, setHeight] = useState(10)\n\n useEffect(() => {\n setInterval(() => {\n setHeight(Math.floor(Math.random() * 100))\n }, 1000)\n }, [])\n\n return (\n <Dropdown placement=\"top\" dropdown={<Box height={height} width={300} />}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Hover to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n )\n}\n\nexport const FocusOrder = () => {\n const dropdown = (\n <Text variant=\"sm-display\">\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n First\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Second\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Third\n </Clickable>\n </Text>\n )\n\n return (\n <Flex>\n <Dropdown dropdown={dropdown}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n First Parent\n </Button>\n )\n }}\n </Dropdown>\n\n <Dropdown dropdown={dropdown}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Second Parent\n </Button>\n )\n }}\n </Dropdown>\n </Flex>\n )\n}\n\nexport const OpenDropdownByClick = () => {\n const dropdown = (\n <Text variant=\"sm-display\">\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n First\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Second\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Third\n </Clickable>\n </Text>\n )\n\n return (\n <Flex>\n <Dropdown dropdown={dropdown} openDropdownByClick>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n Click to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n </Flex>\n )\n}\n\nexport const FilterExample = () => {\n return (\n <Dropdown\n dropdown={\n <Box p={1}>\n <Text variant=\"xs\">Example content</Text>\n </Box>\n }\n placement=\"bottom-start\"\n openDropdownByClick\n >\n {({ anchorRef, anchorProps }) => {\n return (\n <Pill\n ref={anchorRef as any}\n Icon={ChevronSmallDownIcon}\n iconPosition=\"right\"\n {...anchorProps}\n >\n Example\n </Pill>\n )\n }}\n </Dropdown>\n )\n}\n\nexport const OverflowingContent = () => {\n const dropdown = (\n <Text variant=\"sm-display\">\n {new Array(100).fill(null).map((_, i) => (\n <Clickable key={i} display=\"block\" width=\"100%\" py={1} px={2}>\n Item {i}\n </Clickable>\n ))}\n </Text>\n )\n\n return (\n <Flex>\n <Dropdown dropdown={dropdown} openDropdownByClick>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n Click to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n </Flex>\n )\n}\n\nexport const DisabledTransition = () => {\n return (\n <Flex>\n {[1, 2, 3].map((num) => {\n const dropdown = (\n <Text variant=\"sm-display\" width=\"100vw\" bg={`color-b${num}00`} p={2}>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Panel {num}: First Item\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Panel {num}: Second Item\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Panel {num}: Third Item\n </Clickable>\n </Text>\n )\n\n return (\n <Dropdown key={num} dropdown={dropdown} transition={false}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n Hover for dropdown {num}\n </Button>\n )\n }}\n </Dropdown>\n )\n })}\n </Flex>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dropdown.story.js","names":["_react","_interopRequireWildcard","require","_storybookStates","_utils","_Box","_Button","_Text","_Dropdown","_Clickable","_Flex","_Pill","_ChevronSmallDownIcon","_interopRequireDefault","_Spacer","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","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","_extends","assign","bind","target","arguments","source","apply","_default","title","exports","Default","createElement","States","states","keys","POSITION","map","placement","Dropdown","visible","dropdown","Box","width","p","Text","as","display","variant","href","_ref","anchorRef","anchorProps","textAlign","Button","ref","size","displayName","story","parameters","chromatic","disable","KeepInDOM","keepInDOM","_ref2","ChangeDimensions","_useState","useState","_useState2","height","setHeight","useEffect","setInterval","Math","floor","random","_ref3","FocusOrder","Clickable","py","px","Flex","_ref4","mr","_ref5","OpenDropdownByClick","openDropdownByClick","_ref6","FilterExample","_ref7","Pill","Icon","ChevronSmallDownIcon","iconPosition","OverflowingContent","fill","_","_useState3","_useState4","setPlacement","Fragment","bg","Spacer","y","mb","selected","onClick","alignItems","justifyContent","_ref8","DisabledTransition","num","concat","transition","_ref9"],"sources":["../../../src/elements/Dropdown/Dropdown.story.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\"\nimport { States } from \"storybook-states\"\nimport { Position, POSITION } from \"../../utils\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Text } from \"../Text\"\nimport { Dropdown, DropdownProps } from \"./Dropdown\"\nimport { Clickable } from \"../Clickable\"\nimport { Flex } from \"../Flex\"\nimport { Pill } from \"../Pill\"\nimport ChevronSmallDownIcon from \"@artsy/icons/ChevronSmallDownIcon\"\nimport { Spacer } from \"../Spacer\"\n\nexport default {\n title: \"Components/Dropdown\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<DropdownProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n <Dropdown\n placement=\"bottom\"\n visible\n dropdown={\n <Box width={300} p={2}>\n <Text as=\"a\" display=\"block\" variant=\"sm\" href=\"#\">\n One\n </Text>\n\n <Text as=\"a\" display=\"block\" variant=\"sm\" href=\"#\">\n Two\n </Text>\n\n <Text as=\"a\" display=\"block\" variant=\"sm\" href=\"#\">\n Three\n </Text>\n </Box>\n }\n >\n {({ anchorRef, anchorProps }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Hover to display dropdown\n </Button>\n </Box>\n )\n }}\n </Dropdown>\n </States>\n )\n}\n\nDefault.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const KeepInDOM = () => {\n return (\n <Dropdown\n placement=\"bottom\"\n keepInDOM\n dropdown={\n <Text p={2} variant=\"xs\">\n Content remains in DOM\n </Text>\n }\n >\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Hover to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n )\n}\n\nKeepInDOM.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const ChangeDimensions = () => {\n const [height, setHeight] = useState(10)\n\n useEffect(() => {\n setInterval(() => {\n setHeight(Math.floor(Math.random() * 100))\n }, 1000)\n }, [])\n\n return (\n <Dropdown placement=\"top\" dropdown={<Box height={height} width={300} />}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Hover to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n )\n}\n\nexport const FocusOrder = () => {\n const dropdown = (\n <Text variant=\"sm-display\">\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n First\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Second\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Third\n </Clickable>\n </Text>\n )\n\n return (\n <Flex>\n <Dropdown dropdown={dropdown}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n First Parent\n </Button>\n )\n }}\n </Dropdown>\n\n <Dropdown dropdown={dropdown}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Second Parent\n </Button>\n )\n }}\n </Dropdown>\n </Flex>\n )\n}\n\nexport const OpenDropdownByClick = () => {\n const dropdown = (\n <Text variant=\"sm-display\">\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n First\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Second\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Third\n </Clickable>\n </Text>\n )\n\n return (\n <Flex>\n <Dropdown dropdown={dropdown} openDropdownByClick>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n Click to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n </Flex>\n )\n}\n\nexport const FilterExample = () => {\n return (\n <Dropdown\n dropdown={\n <Box p={1}>\n <Text variant=\"xs\">Example content</Text>\n </Box>\n }\n placement=\"bottom-start\"\n openDropdownByClick\n >\n {({ anchorRef, anchorProps }) => {\n return (\n <Pill\n ref={anchorRef as any}\n Icon={ChevronSmallDownIcon}\n iconPosition=\"right\"\n {...anchorProps}\n >\n Example\n </Pill>\n )\n }}\n </Dropdown>\n )\n}\n\nexport const OverflowingContent = () => {\n const dropdown = (\n <Text variant=\"sm-display\">\n {new Array(100).fill(null).map((_, i) => (\n <Clickable key={i} display=\"block\" width=\"100%\" py={1} px={2}>\n Item {i}\n </Clickable>\n ))}\n </Text>\n )\n\n const [placement, setPlacement] = useState<Position>(\"bottom\")\n\n return (\n <>\n <Box height={200} bg=\"black10\" />\n\n <Spacer y={2} />\n\n {[\"bottom\", \"top\", \"left\", \"right\"].map((p) => {\n return (\n <Pill\n key={p}\n size=\"small\"\n mr={1}\n mb={1}\n selected={placement === p}\n onClick={() => setPlacement(p as Position)}\n >\n {p}\n </Pill>\n )\n })}\n\n <Spacer y={2} />\n\n <Flex alignItems=\"center\" justifyContent=\"center\">\n <Dropdown dropdown={dropdown} openDropdownByClick placement={placement}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n {...anchorProps}\n >\n Click to display dropdown\n </Button>\n )\n }}\n </Dropdown>\n </Flex>\n\n <Spacer y={2} />\n\n <Box height={5000} bg=\"black10\" />\n </>\n )\n}\n\nexport const DisabledTransition = () => {\n return (\n <Flex>\n {[1, 2, 3].map((num) => {\n const dropdown = (\n <Text variant=\"sm-display\" width=\"100vw\" bg={`color-b${num}00`} p={2}>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Panel {num}: First Item\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Panel {num}: Second Item\n </Clickable>\n <Clickable display=\"block\" width=\"100%\" py={1} px={2}>\n Panel {num}: Third Item\n </Clickable>\n </Text>\n )\n\n return (\n <Dropdown key={num} dropdown={dropdown} transition={false}>\n {({ anchorRef, anchorProps }) => {\n return (\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n mr={1}\n {...anchorProps}\n >\n Hover for dropdown {num}\n </Button>\n )\n }}\n </Dropdown>\n )\n })}\n </Flex>\n )\n}\n"],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ interface TargetPosition {
|
|
|
23
23
|
* using `position: fixed` and in such a way that it shouldn't ever appear
|
|
24
24
|
* partially offscreen and will move correctly when the parent is scrolled.
|
|
25
25
|
*/
|
|
26
|
-
export declare const usePosition: ({ key, position, offset, active, flip, clamp, }: {
|
|
26
|
+
export declare const usePosition: ({ key, position, offset, active, flip, clamp, padding, }: {
|
|
27
27
|
/** Listen to changes on this value */
|
|
28
28
|
key?: string | number | boolean | undefined;
|
|
29
29
|
/** Placement relative to anchor */
|
|
@@ -36,6 +36,8 @@ export declare const usePosition: ({ key, position, offset, active, flip, clamp,
|
|
|
36
36
|
flip?: boolean | undefined;
|
|
37
37
|
/** Optionally disable clamping (default: `true`) */
|
|
38
38
|
clamp?: boolean | undefined;
|
|
39
|
+
/** Add boundary padding (default: `0`) used when clamping */
|
|
40
|
+
padding?: number | undefined;
|
|
39
41
|
}) => {
|
|
40
42
|
tooltipRef: import("react").MutableRefObject<HTMLElement | null>;
|
|
41
43
|
anchorRef: import("react").MutableRefObject<HTMLElement | null>;
|
|
@@ -51,11 +53,16 @@ interface PlaceTooltip {
|
|
|
51
53
|
boundaryRect?: DOMRect;
|
|
52
54
|
flip?: boolean;
|
|
53
55
|
clamp?: boolean;
|
|
56
|
+
padding?: number;
|
|
54
57
|
}
|
|
55
|
-
export declare const placeTooltip: ({ anchor, tooltip, position, offset, boundaryRect, flip, clamp, }: PlaceTooltip) => {
|
|
58
|
+
export declare const placeTooltip: ({ anchor, tooltip, position, offset, boundaryRect, flip, clamp, padding, }: PlaceTooltip) => {
|
|
56
59
|
isFlipped: boolean;
|
|
57
60
|
};
|
|
58
|
-
export declare const getPosition: (elementRect
|
|
61
|
+
export declare const getPosition: ({ elementRect, tooltipRect, position, }: {
|
|
62
|
+
elementRect: Pick<DOMRect, "width" | "height" | "top" | "right" | "bottom" | "left">;
|
|
63
|
+
tooltipRect: Pick<DOMRect, "width" | "height">;
|
|
64
|
+
position: Position;
|
|
65
|
+
}) => TargetPosition;
|
|
59
66
|
export declare const translateWithOffset: (targetPosition: TargetPosition, position: Position, offset: number) => string;
|
|
60
67
|
export declare const getDocumentBoundingRect: () => DOMRect;
|
|
61
68
|
interface ShouldFlip {
|
|
@@ -65,4 +72,12 @@ interface ShouldFlip {
|
|
|
65
72
|
tooltipRect: Pick<DOMRect, "width" | "height">;
|
|
66
73
|
}
|
|
67
74
|
export declare const shouldFlip: ({ targetPosition, position, boundaryRect, tooltipRect, }: ShouldFlip) => boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Calculate the maximum height available for a tooltip based on its placement and viewport constraints.
|
|
77
|
+
*/
|
|
78
|
+
export declare const calculateMaxHeight: ({ anchorRect, position, offset, }: {
|
|
79
|
+
anchorRect: DOMRect;
|
|
80
|
+
position: Position;
|
|
81
|
+
offset?: number | undefined;
|
|
82
|
+
}) => number;
|
|
68
83
|
export {};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.POSITION = void 0;
|
|
6
|
+
exports.usePosition = exports.translateWithOffset = exports.shouldFlip = exports.placeTooltip = exports.getPosition = exports.getDocumentBoundingRect = exports.calculateMaxHeight = exports.POSITION = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _useMutationObserver = require("./useMutationObserver");
|
|
9
9
|
var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");
|
|
@@ -46,7 +46,9 @@ var usePosition = function usePosition(_ref) {
|
|
|
46
46
|
_ref$flip = _ref.flip,
|
|
47
47
|
flip = _ref$flip === void 0 ? true : _ref$flip,
|
|
48
48
|
_ref$clamp = _ref.clamp,
|
|
49
|
-
clamp = _ref$clamp === void 0 ? true : _ref$clamp
|
|
49
|
+
clamp = _ref$clamp === void 0 ? true : _ref$clamp,
|
|
50
|
+
_ref$padding = _ref.padding,
|
|
51
|
+
padding = _ref$padding === void 0 ? 0 : _ref$padding;
|
|
50
52
|
var _useState = (0, _react.useState)({
|
|
51
53
|
isFlipped: false
|
|
52
54
|
}),
|
|
@@ -65,7 +67,8 @@ var usePosition = function usePosition(_ref) {
|
|
|
65
67
|
position: position,
|
|
66
68
|
offset: offset,
|
|
67
69
|
flip: flip,
|
|
68
|
-
clamp: clamp
|
|
70
|
+
clamp: clamp,
|
|
71
|
+
padding: padding
|
|
69
72
|
}));
|
|
70
73
|
};
|
|
71
74
|
|
|
@@ -99,7 +102,8 @@ var usePosition = function usePosition(_ref) {
|
|
|
99
102
|
position: position,
|
|
100
103
|
offset: offset,
|
|
101
104
|
flip: flip,
|
|
102
|
-
clamp: clamp
|
|
105
|
+
clamp: clamp,
|
|
106
|
+
padding: padding
|
|
103
107
|
}));
|
|
104
108
|
};
|
|
105
109
|
document.addEventListener("scroll", handleScroll, {
|
|
@@ -112,7 +116,8 @@ var usePosition = function usePosition(_ref) {
|
|
|
112
116
|
position: position,
|
|
113
117
|
offset: offset,
|
|
114
118
|
flip: flip,
|
|
115
|
-
clamp: clamp
|
|
119
|
+
clamp: clamp,
|
|
120
|
+
padding: padding
|
|
116
121
|
}));
|
|
117
122
|
};
|
|
118
123
|
window.addEventListener("resize", handleResize, {
|
|
@@ -124,7 +129,8 @@ var usePosition = function usePosition(_ref) {
|
|
|
124
129
|
position: position,
|
|
125
130
|
offset: offset,
|
|
126
131
|
flip: flip,
|
|
127
|
-
clamp: clamp
|
|
132
|
+
clamp: clamp,
|
|
133
|
+
padding: padding
|
|
128
134
|
}));
|
|
129
135
|
return function () {
|
|
130
136
|
document.removeEventListener("scroll", handleScroll);
|
|
@@ -151,10 +157,16 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
151
157
|
_ref2$flip = _ref2.flip,
|
|
152
158
|
flip = _ref2$flip === void 0 ? true : _ref2$flip,
|
|
153
159
|
_ref2$clamp = _ref2.clamp,
|
|
154
|
-
clamp = _ref2$clamp === void 0 ? true : _ref2$clamp
|
|
160
|
+
clamp = _ref2$clamp === void 0 ? true : _ref2$clamp,
|
|
161
|
+
_ref2$padding = _ref2.padding,
|
|
162
|
+
padding = _ref2$padding === void 0 ? 0 : _ref2$padding;
|
|
155
163
|
var elementRect = anchor.getBoundingClientRect();
|
|
156
164
|
var tooltipRect = tooltip.getBoundingClientRect();
|
|
157
|
-
var targetPosition = getPosition(
|
|
165
|
+
var targetPosition = getPosition({
|
|
166
|
+
elementRect: elementRect,
|
|
167
|
+
tooltipRect: tooltipRect,
|
|
168
|
+
position: position
|
|
169
|
+
});
|
|
158
170
|
|
|
159
171
|
// Flip to avoid edges
|
|
160
172
|
var isFlipped = flip && shouldFlip({
|
|
@@ -165,7 +177,11 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
165
177
|
});
|
|
166
178
|
if (isFlipped) {
|
|
167
179
|
position = getOppositePosition(position);
|
|
168
|
-
targetPosition = getPosition(
|
|
180
|
+
targetPosition = getPosition({
|
|
181
|
+
elementRect: elementRect,
|
|
182
|
+
tooltipRect: tooltipRect,
|
|
183
|
+
position: position
|
|
184
|
+
});
|
|
169
185
|
}
|
|
170
186
|
|
|
171
187
|
// Clamp position within boundary
|
|
@@ -174,6 +190,26 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
174
190
|
targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
|
|
175
191
|
targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
|
|
176
192
|
targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
|
|
193
|
+
|
|
194
|
+
// Apply padding to boundary
|
|
195
|
+
switch (position) {
|
|
196
|
+
case "top-start":
|
|
197
|
+
case "top":
|
|
198
|
+
case "top-end":
|
|
199
|
+
case "bottom-start":
|
|
200
|
+
case "bottom":
|
|
201
|
+
case "bottom-end":
|
|
202
|
+
targetPosition.x = targetPosition.x - padding;
|
|
203
|
+
break;
|
|
204
|
+
case "left-start":
|
|
205
|
+
case "left":
|
|
206
|
+
case "left-end":
|
|
207
|
+
case "right-start":
|
|
208
|
+
case "right":
|
|
209
|
+
case "right-end":
|
|
210
|
+
targetPosition.y = targetPosition.y + padding;
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
177
213
|
}
|
|
178
214
|
|
|
179
215
|
// Should hide entirely if it scrolls out of view
|
|
@@ -185,9 +221,14 @@ var placeTooltip = function placeTooltip(_ref2) {
|
|
|
185
221
|
};
|
|
186
222
|
};
|
|
187
223
|
exports.placeTooltip = placeTooltip;
|
|
188
|
-
var getPosition = function getPosition(
|
|
224
|
+
var getPosition = function getPosition(_ref3) {
|
|
225
|
+
var elementRect = _ref3.elementRect,
|
|
226
|
+
tooltipRect = _ref3.tooltipRect,
|
|
227
|
+
position = _ref3.position;
|
|
189
228
|
var x;
|
|
190
229
|
var y;
|
|
230
|
+
|
|
231
|
+
// X position
|
|
191
232
|
switch (position) {
|
|
192
233
|
case "top-start":
|
|
193
234
|
case "bottom-start":
|
|
@@ -214,6 +255,8 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
|
|
|
214
255
|
x = elementRect.right;
|
|
215
256
|
break;
|
|
216
257
|
}
|
|
258
|
+
|
|
259
|
+
// Y position
|
|
217
260
|
switch (position) {
|
|
218
261
|
case "left-start":
|
|
219
262
|
case "right-start":
|
|
@@ -249,7 +292,7 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
|
|
|
249
292
|
};
|
|
250
293
|
exports.getPosition = getPosition;
|
|
251
294
|
var translateWithOffset = function translateWithOffset(targetPosition, position, offset) {
|
|
252
|
-
var
|
|
295
|
+
var _ref4 = function () {
|
|
253
296
|
switch (position) {
|
|
254
297
|
case "top-start":
|
|
255
298
|
return [targetPosition.x, targetPosition.y - offset];
|
|
@@ -277,9 +320,9 @@ var translateWithOffset = function translateWithOffset(targetPosition, position,
|
|
|
277
320
|
return [targetPosition.x + offset, targetPosition.y];
|
|
278
321
|
}
|
|
279
322
|
}(),
|
|
280
|
-
|
|
281
|
-
x =
|
|
282
|
-
y =
|
|
323
|
+
_ref5 = _slicedToArray(_ref4, 2),
|
|
324
|
+
x = _ref5[0],
|
|
325
|
+
y = _ref5[1];
|
|
283
326
|
return "translate(".concat(x, "px, ").concat(y, "px)");
|
|
284
327
|
};
|
|
285
328
|
exports.translateWithOffset = translateWithOffset;
|
|
@@ -324,11 +367,11 @@ var getDocumentBoundingRect = function getDocumentBoundingRect() {
|
|
|
324
367
|
};
|
|
325
368
|
};
|
|
326
369
|
exports.getDocumentBoundingRect = getDocumentBoundingRect;
|
|
327
|
-
var shouldFlip = function shouldFlip(
|
|
328
|
-
var targetPosition =
|
|
329
|
-
position =
|
|
330
|
-
boundaryRect =
|
|
331
|
-
tooltipRect =
|
|
370
|
+
var shouldFlip = function shouldFlip(_ref6) {
|
|
371
|
+
var targetPosition = _ref6.targetPosition,
|
|
372
|
+
position = _ref6.position,
|
|
373
|
+
boundaryRect = _ref6.boundaryRect,
|
|
374
|
+
tooltipRect = _ref6.tooltipRect;
|
|
332
375
|
switch (position) {
|
|
333
376
|
case "top-start":
|
|
334
377
|
case "top":
|
|
@@ -352,4 +395,38 @@ exports.shouldFlip = shouldFlip;
|
|
|
352
395
|
var isWithin = function isWithin(elementRect, boundaryRect) {
|
|
353
396
|
return boundaryRect.top < elementRect.bottom && boundaryRect.left < elementRect.right && boundaryRect.bottom > elementRect.top && boundaryRect.right > elementRect.left;
|
|
354
397
|
};
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Calculate the maximum height available for a tooltip based on its placement and viewport constraints.
|
|
401
|
+
*/
|
|
402
|
+
var calculateMaxHeight = function calculateMaxHeight(_ref7) {
|
|
403
|
+
var anchorRect = _ref7.anchorRect,
|
|
404
|
+
position = _ref7.position,
|
|
405
|
+
_ref7$offset = _ref7.offset,
|
|
406
|
+
offset = _ref7$offset === void 0 ? 0 : _ref7$offset;
|
|
407
|
+
var viewportHeight = window.innerHeight;
|
|
408
|
+
switch (position) {
|
|
409
|
+
case "top-start":
|
|
410
|
+
case "top":
|
|
411
|
+
case "top-end":
|
|
412
|
+
// Space from top of anchor to top of viewport
|
|
413
|
+
return anchorRect.top - offset * 2;
|
|
414
|
+
case "bottom-start":
|
|
415
|
+
case "bottom":
|
|
416
|
+
case "bottom-end":
|
|
417
|
+
// Space from bottom of anchor to bottom of viewport
|
|
418
|
+
return viewportHeight - anchorRect.bottom - offset * 2;
|
|
419
|
+
case "left-start":
|
|
420
|
+
case "left":
|
|
421
|
+
case "left-end":
|
|
422
|
+
case "right-start":
|
|
423
|
+
case "right":
|
|
424
|
+
case "right-end":
|
|
425
|
+
// For side placements, use the entire viewport height
|
|
426
|
+
return viewportHeight - offset * 2;
|
|
427
|
+
default:
|
|
428
|
+
return viewportHeight;
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
exports.calculateMaxHeight = calculateMaxHeight;
|
|
355
432
|
//# sourceMappingURL=usePosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handleScroll","document","addEventListener","passive","handleResize","window","removeEventListener","_ref2","_ref2$offset","_ref2$boundaryRect","boundaryRect","getDocumentBoundingRect","_ref2$flip","_ref2$clamp","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","shouldFlip","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","isWithin","display","transform","translateWithOffset","_ref3","_ref4","concat","body","clientWidth","clientHeight","_ref5"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handleScroll = () => {\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n document.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n\n const handleResize = () => {\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n }\n\n window.addEventListener(\"resize\", handleResize, { passive: true })\n\n setState(placeTooltip({ anchor, tooltip, position, offset, flip, clamp }))\n\n return () => {\n document.removeEventListener(\"scroll\", handleScroll)\n window.removeEventListener(\"resize\", handleResize)\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n boundaryRect?: DOMRect\n flip?: boolean\n clamp?: boolean\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n boundaryRect = getDocumentBoundingRect(),\n flip = true,\n clamp = true,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition(elementRect, tooltipRect, position)\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n shouldFlip({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition(elementRect, tooltipRect, position)\n }\n\n // Clamp position within boundary\n if (clamp) {\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n }\n\n // Should hide entirely if it scrolls out of view\n const shouldHide = !isWithin(elementRect, boundaryRect)\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = (\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >,\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">,\n position: Position\n): TargetPosition => {\n let x: number\n let y: number\n\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n } as DOMRect\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePosition.js","names":["_react","require","_useMutationObserver","_useIsomorphicLayoutEffect","_useResizeObserver","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_ref$padding","padding","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handleScroll","document","addEventListener","passive","handleResize","window","removeEventListener","_ref2","_ref2$offset","_ref2$boundaryRect","boundaryRect","getDocumentBoundingRect","_ref2$flip","_ref2$clamp","_ref2$padding","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","shouldFlip","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","isWithin","display","transform","translateWithOffset","_ref3","_ref4","_ref5","concat","body","clientWidth","clientHeight","_ref6","calculateMaxHeight","_ref7","anchorRect","_ref7$offset","viewportHeight","innerHeight"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n padding = 0,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n /** Add boundary padding (default: `0`) used when clamping */\n padding?: number\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n setState(\n placeTooltip({ anchor, tooltip, position, offset, flip, clamp, padding })\n )\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handleScroll = () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n padding,\n })\n )\n }\n\n document.addEventListener(\"scroll\", handleScroll, {\n passive: true,\n })\n\n const handleResize = () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n padding,\n })\n )\n }\n\n window.addEventListener(\"resize\", handleResize, { passive: true })\n\n setState(\n placeTooltip({ anchor, tooltip, position, offset, flip, clamp, padding })\n )\n\n return () => {\n document.removeEventListener(\"scroll\", handleScroll)\n window.removeEventListener(\"resize\", handleResize)\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n boundaryRect?: DOMRect\n flip?: boolean\n clamp?: boolean\n padding?: number\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n boundaryRect = getDocumentBoundingRect(),\n flip = true,\n clamp = true,\n padding = 0,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition({\n elementRect,\n tooltipRect,\n position,\n })\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n shouldFlip({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition({ elementRect, tooltipRect, position })\n }\n\n // Clamp position within boundary\n if (clamp) {\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n\n // Apply padding to boundary\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n targetPosition.x = targetPosition.x - padding\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n targetPosition.y = targetPosition.y + padding\n break\n }\n }\n\n // Should hide entirely if it scrolls out of view\n const shouldHide = !isWithin(elementRect, boundaryRect)\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = ({\n elementRect,\n tooltipRect,\n position,\n}: {\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n position: Position\n}): TargetPosition => {\n let x: number\n let y: number\n\n // X position\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n // Y position\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n } as DOMRect\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n\n/**\n * Calculate the maximum height available for a tooltip based on its placement and viewport constraints.\n */\nexport const calculateMaxHeight = ({\n anchorRect,\n position,\n offset = 0,\n}: {\n anchorRect: DOMRect\n position: Position\n offset?: number\n}): number => {\n const viewportHeight = window.innerHeight\n\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // Space from top of anchor to top of viewport\n return anchorRect.top - offset * 2\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // Space from bottom of anchor to bottom of viewport\n return viewportHeight - anchorRect.bottom - offset * 2\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // For side placements, use the entire viewport height\n return viewportHeight - offset * 2\n default:\n return viewportHeight\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "40.
|
|
3
|
+
"version": "40.8.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -187,5 +187,5 @@
|
|
|
187
187
|
"url": "http://localhost"
|
|
188
188
|
}
|
|
189
189
|
},
|
|
190
|
-
"gitHead": "
|
|
190
|
+
"gitHead": "3722a4f3fa914c371fa838b5e2fa2fc3eccedb6f"
|
|
191
191
|
}
|