@artsy/palette 37.2.0 → 37.2.1

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.
@@ -22,5 +22,15 @@ export declare const Placement: {
22
22
  };
23
23
  };
24
24
  };
25
+ export declare const InternalScrollContainer: {
26
+ (): JSX.Element;
27
+ story: {
28
+ parameters: {
29
+ chromatic: {
30
+ disable: boolean;
31
+ };
32
+ };
33
+ };
34
+ };
25
35
  export declare const ManageFocus: () => JSX.Element;
26
36
  export declare const PopoverActions: () => JSX.Element;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.PopoverActions = exports.Placement = exports.ManageFocus = exports.Default = void 0;
6
+ exports.default = exports.PopoverActions = exports.Placement = exports.ManageFocus = exports.InternalScrollContainer = exports.Default = void 0;
7
7
  var _addonActions = require("@storybook/addon-actions");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _storybookStates = require("storybook-states");
@@ -14,6 +14,7 @@ var _Flex = require("../Flex");
14
14
  var _Spacer = require("../Spacer");
15
15
  var _Text = require("../Text");
16
16
  var _Popover = require("./Popover");
17
+ var _Pill = require("../Pill");
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19
20
  var CONTENT = "Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi eius autem aliquid cumque, mollitia incidunt totam. Id ut quae hic in quisquam, cupiditate iure nobis, provident minus voluptatem tenetur consequatur.";
@@ -123,6 +124,54 @@ Placement.story = {
123
124
  }
124
125
  }
125
126
  };
127
+ var ExamplePopover = function ExamplePopover(_ref3) {
128
+ var children = _ref3.children;
129
+ return /*#__PURE__*/_react.default.createElement(_Popover.Popover, {
130
+ popover: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Text.Text, {
131
+ variant: "xs",
132
+ fontWeight: "bold"
133
+ }, "New filters"), /*#__PURE__*/_react.default.createElement(_Text.Text, {
134
+ variant: "xs"
135
+ }, "Choose artist and alert criteria to accurately narrow your results.")),
136
+ width: 250,
137
+ variant: "defaultDark",
138
+ pointer: true,
139
+ visible: true,
140
+ ignoreClickOutside: true,
141
+ manageFocus: false
142
+ }, function (_ref4) {
143
+ var anchorRef = _ref4.anchorRef;
144
+ return /*#__PURE__*/_react.default.createElement(_Box.Box, {
145
+ ref: anchorRef,
146
+ m: "auto"
147
+ }, children);
148
+ });
149
+ };
150
+ ExamplePopover.displayName = "ExamplePopover";
151
+ var InternalScrollContainer = function InternalScrollContainer() {
152
+ return /*#__PURE__*/_react.default.createElement(_Box.Box, {
153
+ overflow: "auto",
154
+ height: "100%"
155
+ }, /*#__PURE__*/_react.default.createElement(_Box.Box, {
156
+ height: "300vh",
157
+ border: "1px dotted",
158
+ borderColor: "black60",
159
+ p: 2
160
+ }, /*#__PURE__*/_react.default.createElement(_Spacer.Spacer, {
161
+ y: 12
162
+ }), /*#__PURE__*/_react.default.createElement(_Box.Box, {
163
+ textAlign: "center"
164
+ }, /*#__PURE__*/_react.default.createElement(ExamplePopover, null, /*#__PURE__*/_react.default.createElement(_Pill.Pill, null, "Popover should remain anchored to this element")))));
165
+ };
166
+ exports.InternalScrollContainer = InternalScrollContainer;
167
+ InternalScrollContainer.displayName = "InternalScrollContainer";
168
+ InternalScrollContainer.story = {
169
+ parameters: {
170
+ chromatic: {
171
+ disable: true
172
+ }
173
+ }
174
+ };
126
175
  var ManageFocus = function ManageFocus() {
127
176
  return /*#__PURE__*/_react.default.createElement(_storybookStates.States, {
128
177
  states: [{
@@ -138,9 +187,9 @@ var ManageFocus = function ManageFocus() {
138
187
  variant: "xs",
139
188
  width: 300
140
189
  }, CONTENT)
141
- }, function (_ref3) {
142
- var onVisible = _ref3.onVisible,
143
- anchorRef = _ref3.anchorRef;
190
+ }, function (_ref5) {
191
+ var onVisible = _ref5.onVisible,
192
+ anchorRef = _ref5.anchorRef;
144
193
  return /*#__PURE__*/_react.default.createElement(_Box.Box, {
145
194
  textAlign: "center"
146
195
  }, /*#__PURE__*/_react.default.createElement(_Button.Button, {
@@ -160,9 +209,9 @@ var PopoverActions = function PopoverActions() {
160
209
  }]
161
210
  }, /*#__PURE__*/_react.default.createElement(_Popover.Popover, {
162
211
  placement: "bottom",
163
- popover: function popover(_ref4) {
164
- var onHide = _ref4.onHide,
165
- onDismiss = _ref4.onDismiss;
212
+ popover: function popover(_ref6) {
213
+ var onHide = _ref6.onHide,
214
+ onDismiss = _ref6.onDismiss;
166
215
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Text.Text, {
167
216
  variant: "xs",
168
217
  width: 300
@@ -182,9 +231,9 @@ var PopoverActions = function PopoverActions() {
182
231
  onClick: onDismiss
183
232
  }, "Dismiss")));
184
233
  }
185
- }, function (_ref5) {
186
- var onVisible = _ref5.onVisible,
187
- anchorRef = _ref5.anchorRef;
234
+ }, function (_ref7) {
235
+ var onVisible = _ref7.onVisible,
236
+ anchorRef = _ref7.anchorRef;
188
237
  return /*#__PURE__*/_react.default.createElement(_Box.Box, {
189
238
  textAlign: "center"
190
239
  }, /*#__PURE__*/_react.default.createElement(_Button.Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.story.js","names":["_addonActions","require","_react","_interopRequireDefault","_storybookStates","_utils","_Box","_Button","_Flex","_Spacer","_Text","_Popover","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","CONTENT","_default","title","exports","Default","createElement","States","states","visible","onClose","action","onDismiss","popover","Text","variant","width","pointer","p","Fragment","Array","fill","map","_","overflowEllipsis","bg","px","py","placement","zIndex","ignoreClickOutside","Popover","_ref","onVisible","anchorRef","Box","textAlign","Button","ref","size","onClick","displayName","story","parameters","chromatic","disable","Placement","keys","POSITION","props","JSON","stringify","_ref2","maxWidth","mx","ManageFocus","manageFocus","_ref3","PopoverActions","_ref4","onHide","Spacer","y","Flex","flex","x","_ref5"],"sources":["../../../src/elements/Popover/Popover.story.tsx"],"sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Position, POSITION } from \"../../utils\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Flex } from \"../Flex\"\nimport { Spacer } from \"../Spacer\"\nimport { Text } from \"../Text\"\nimport { Popover, PopoverProps } from \"./Popover\"\n\nconst CONTENT =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi eius autem aliquid cumque, mollitia incidunt totam. Id ut quae hic in quisquam, cupiditate iure nobis, provident minus voluptatem tenetur consequatur.\"\n\nexport default {\n title: \"Components/Popover\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n {},\n { visible: true },\n { onClose: action(\"onClose\"), onDismiss: action(\"onDismiss\") },\n {\n visible: true,\n popover: (\n <Text variant=\"xs\" width={300}>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | — (Content interaction with close button.)\n </Text>\n ),\n },\n {\n pointer: true,\n visible: true,\n p: 0,\n popover: (\n <>\n {new Array(4).fill(0).map((_, i) => (\n <Text\n key={i}\n variant=\"sm-display\"\n overflowEllipsis\n bg=\"red10\"\n px={1}\n py={0.5}\n >\n Example Item\n </Text>\n ))}\n </>\n ),\n },\n {\n variant: \"defaultDark\",\n placement: \"bottom\",\n visible: true,\n pointer: true,\n zIndex: 99,\n },\n {\n ignoreClickOutside: true,\n },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nDefault.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const Placement = () => {\n return (\n <States<Partial<PopoverProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n {(props) => {\n return (\n <Popover\n popover={<Text variant=\"xs\">{JSON.stringify(props)}</Text>}\n visible\n variant=\"defaultDark\"\n pointer\n {...props}\n >\n {({ anchorRef }) => {\n return (\n <Text\n ref={anchorRef as any}\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n maxWidth=\"50%\"\n mx=\"auto\"\n bg=\"black10\"\n >\n {JSON.stringify(props)}\n </Text>\n )\n }}\n </Popover>\n )\n }}\n </States>\n )\n}\n\nPlacement.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const ManageFocus = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n { visible: true, manageFocus: false },\n { visible: true, manageFocus: true },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nexport const PopoverActions = () => {\n return (\n <States<Partial<PopoverProps>> states={[{ visible: true }]}>\n <Popover\n placement=\"bottom\"\n popover={({ onHide, onDismiss }) => {\n return (\n <>\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n\n <Spacer y={2} />\n\n <Flex>\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onHide}\n >\n Hide\n </Button>\n\n <Spacer x={1} />\n\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onDismiss}\n >\n Dismiss\n </Button>\n </Flex>\n </>\n )\n }}\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.story.js","names":["_addonActions","require","_react","_interopRequireDefault","_storybookStates","_utils","_Box","_Button","_Flex","_Spacer","_Text","_Popover","_Pill","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","CONTENT","_default","title","exports","Default","createElement","States","states","visible","onClose","action","onDismiss","popover","Text","variant","width","pointer","p","Fragment","Array","fill","map","_","overflowEllipsis","bg","px","py","placement","zIndex","ignoreClickOutside","Popover","_ref","onVisible","anchorRef","Box","textAlign","Button","ref","size","onClick","displayName","story","parameters","chromatic","disable","Placement","keys","POSITION","props","JSON","stringify","_ref2","maxWidth","mx","ExamplePopover","_ref3","children","fontWeight","manageFocus","_ref4","m","InternalScrollContainer","overflow","height","border","borderColor","Spacer","y","Pill","ManageFocus","_ref5","PopoverActions","_ref6","onHide","Flex","flex","x","_ref7"],"sources":["../../../src/elements/Popover/Popover.story.tsx"],"sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Position, POSITION } from \"../../utils\"\nimport { Box } from \"../Box\"\nimport { Button } from \"../Button\"\nimport { Flex } from \"../Flex\"\nimport { Spacer } from \"../Spacer\"\nimport { Text } from \"../Text\"\nimport { Popover, PopoverProps } from \"./Popover\"\nimport { Pill } from \"../Pill\"\n\nconst CONTENT =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi eius autem aliquid cumque, mollitia incidunt totam. Id ut quae hic in quisquam, cupiditate iure nobis, provident minus voluptatem tenetur consequatur.\"\n\nexport default {\n title: \"Components/Popover\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n {},\n { visible: true },\n { onClose: action(\"onClose\"), onDismiss: action(\"onDismiss\") },\n {\n visible: true,\n popover: (\n <Text variant=\"xs\" width={300}>\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |\n | | | — (Content interaction with close button.)\n </Text>\n ),\n },\n {\n pointer: true,\n visible: true,\n p: 0,\n popover: (\n <>\n {new Array(4).fill(0).map((_, i) => (\n <Text\n key={i}\n variant=\"sm-display\"\n overflowEllipsis\n bg=\"red10\"\n px={1}\n py={0.5}\n >\n Example Item\n </Text>\n ))}\n </>\n ),\n },\n {\n variant: \"defaultDark\",\n placement: \"bottom\",\n visible: true,\n pointer: true,\n zIndex: 99,\n },\n {\n ignoreClickOutside: true,\n },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nDefault.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const Placement = () => {\n return (\n <States<Partial<PopoverProps>>\n states={Object.keys(POSITION).map((placement) => ({\n placement: placement as Position,\n }))}\n >\n {(props) => {\n return (\n <Popover\n popover={<Text variant=\"xs\">{JSON.stringify(props)}</Text>}\n visible\n variant=\"defaultDark\"\n pointer\n {...props}\n >\n {({ anchorRef }) => {\n return (\n <Text\n ref={anchorRef as any}\n variant=\"xs\"\n textAlign=\"center\"\n p={1}\n maxWidth=\"50%\"\n mx=\"auto\"\n bg=\"black10\"\n >\n {JSON.stringify(props)}\n </Text>\n )\n }}\n </Popover>\n )\n }}\n </States>\n )\n}\n\nPlacement.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nconst ExamplePopover: React.FC = ({ children }) => {\n return (\n <Popover\n popover={\n <>\n <Text variant=\"xs\" fontWeight=\"bold\">\n New filters\n </Text>\n <Text variant=\"xs\">\n Choose artist and alert criteria to accurately narrow your results.\n </Text>\n </>\n }\n width={250}\n variant=\"defaultDark\"\n pointer\n visible\n ignoreClickOutside\n manageFocus={false}\n >\n {({ anchorRef }) => {\n return (\n <Box ref={anchorRef as any} m=\"auto\">\n {children}\n </Box>\n )\n }}\n </Popover>\n )\n}\n\nexport const InternalScrollContainer = () => {\n return (\n <Box overflow=\"auto\" height=\"100%\">\n <Box height=\"300vh\" border=\"1px dotted\" borderColor=\"black60\" p={2}>\n <Spacer y={12} />\n\n <Box textAlign=\"center\">\n <ExamplePopover>\n <Pill>Popover should remain anchored to this element</Pill>\n </ExamplePopover>\n </Box>\n </Box>\n </Box>\n )\n}\n\nInternalScrollContainer.story = {\n parameters: { chromatic: { disable: true } },\n}\n\nexport const ManageFocus = () => {\n return (\n <States<Partial<PopoverProps>>\n states={[\n { visible: true, manageFocus: false },\n { visible: true, manageFocus: true },\n ]}\n >\n <Popover\n placement=\"bottom\"\n popover={\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n }\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n\nexport const PopoverActions = () => {\n return (\n <States<Partial<PopoverProps>> states={[{ visible: true }]}>\n <Popover\n placement=\"bottom\"\n popover={({ onHide, onDismiss }) => {\n return (\n <>\n <Text variant=\"xs\" width={300}>\n {CONTENT}\n </Text>\n\n <Spacer y={2} />\n\n <Flex>\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onHide}\n >\n Hide\n </Button>\n\n <Spacer x={1} />\n\n <Button\n flex={1}\n size=\"small\"\n variant=\"secondaryBlack\"\n onClick={onDismiss}\n >\n Dismiss\n </Button>\n </Flex>\n </>\n )\n }}\n >\n {({ onVisible, anchorRef }) => {\n return (\n <Box textAlign=\"center\">\n <Button\n ref={anchorRef}\n variant=\"secondaryBlack\"\n size=\"small\"\n onClick={onVisible}\n >\n Click to display popover\n </Button>\n </Box>\n )\n }}\n </Popover>\n </States>\n )\n}\n"],"mappings":"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"}
@@ -48,16 +48,15 @@ interface PlaceTooltip {
48
48
  tooltip: HTMLElement;
49
49
  position: Position;
50
50
  offset?: number;
51
- boundaryRect?: DOMRect;
52
51
  flip?: boolean;
53
52
  clamp?: boolean;
53
+ scrollableParents: Array<HTMLElement | Document>;
54
54
  }
55
- export declare const placeTooltip: ({ anchor, tooltip, position, offset, boundaryRect, flip, clamp, }: PlaceTooltip) => {
55
+ export declare const placeTooltip: ({ anchor, tooltip, position, offset, flip, clamp, scrollableParents, }: PlaceTooltip) => {
56
56
  isFlipped: boolean;
57
57
  };
58
58
  export declare const getPosition: (elementRect: Pick<DOMRect, "width" | "height" | "top" | "right" | "bottom" | "left">, tooltipRect: Pick<DOMRect, "width" | "height">, position: Position) => TargetPosition;
59
59
  export declare const translateWithOffset: (targetPosition: TargetPosition, position: Position, offset: number) => string;
60
- export declare const getDocumentBoundingRect: () => DOMRect;
61
60
  interface ShouldFlip {
62
61
  targetPosition: TargetPosition;
63
62
  position: Position;
@@ -65,4 +64,16 @@ interface ShouldFlip {
65
64
  tooltipRect: Pick<DOMRect, "width" | "height">;
66
65
  }
67
66
  export declare const shouldFlip: ({ targetPosition, position, boundaryRect, tooltipRect, }: ShouldFlip) => boolean;
67
+ export declare const getDocumentBoundingRect: () => {
68
+ top: number;
69
+ left: number;
70
+ right: number;
71
+ bottom: number;
72
+ width: number;
73
+ height: number;
74
+ x: number;
75
+ y: number;
76
+ toJSON: () => null;
77
+ };
78
+ export declare const getBoundingRect: (element: HTMLElement | Document) => DOMRect;
68
79
  export {};
@@ -3,11 +3,12 @@
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.getBoundingRect = exports.POSITION = void 0;
7
7
  var _react = require("react");
8
8
  var _useMutationObserver = require("./useMutationObserver");
9
9
  var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect");
10
10
  var _useResizeObserver = require("./useResizeObserver");
11
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
12
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
13
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -59,13 +60,15 @@ var usePosition = function usePosition(_ref) {
59
60
  if (!tooltipRef.current || !anchorRef.current) return;
60
61
  var tooltip = tooltipRef.current;
61
62
  var anchor = anchorRef.current;
63
+ var scrollableParents = getScrollableParents(anchor);
62
64
  setState(placeTooltip({
63
65
  anchor: anchor,
64
66
  tooltip: tooltip,
65
67
  position: position,
66
68
  offset: offset,
67
69
  flip: flip,
68
- clamp: clamp
70
+ clamp: clamp,
71
+ scrollableParents: scrollableParents
69
72
  }));
70
73
  };
71
74
 
@@ -92,43 +95,54 @@ var usePosition = function usePosition(_ref) {
92
95
  tooltip.style.position = "fixed";
93
96
  tooltip.style.top = "0";
94
97
  tooltip.style.left = "0";
95
- var handleScroll = function handleScroll() {
98
+ var handle = function handle() {
96
99
  setState(placeTooltip({
97
100
  anchor: anchor,
98
101
  tooltip: tooltip,
99
102
  position: position,
100
103
  offset: offset,
101
104
  flip: flip,
102
- clamp: clamp
105
+ clamp: clamp,
106
+ scrollableParents: scrollableParents
103
107
  }));
104
108
  };
105
- document.addEventListener("scroll", handleScroll, {
106
- passive: true
109
+ var scrollableParents = getScrollableParents(anchor);
110
+ var handlers = scrollableParents.map(function (scrollableParent) {
111
+ return {
112
+ scrollableParent: scrollableParent,
113
+ handlerScroll: function handlerScroll() {
114
+ setState(placeTooltip({
115
+ anchor: anchor,
116
+ tooltip: tooltip,
117
+ position: position,
118
+ offset: offset,
119
+ flip: flip,
120
+ clamp: clamp,
121
+ scrollableParents: scrollableParents
122
+ }));
123
+ }
124
+ };
107
125
  });
108
- var handleResize = function handleResize() {
109
- setState(placeTooltip({
110
- anchor: anchor,
111
- tooltip: tooltip,
112
- position: position,
113
- offset: offset,
114
- flip: flip,
115
- clamp: clamp
116
- }));
117
- };
118
- window.addEventListener("resize", handleResize, {
126
+ handlers.forEach(function (_ref2) {
127
+ var scrollableParent = _ref2.scrollableParent,
128
+ handlerScroll = _ref2.handlerScroll;
129
+ scrollableParent.addEventListener("scroll", handlerScroll, {
130
+ passive: true
131
+ });
132
+ });
133
+ window.addEventListener("resize", handle, {
119
134
  passive: true
120
135
  });
121
- setState(placeTooltip({
122
- anchor: anchor,
123
- tooltip: tooltip,
124
- position: position,
125
- offset: offset,
126
- flip: flip,
127
- clamp: clamp
128
- }));
136
+
137
+ // Initialize
138
+ handle();
129
139
  return function () {
130
- document.removeEventListener("scroll", handleScroll);
131
- window.removeEventListener("resize", handleResize);
140
+ window.removeEventListener("resize", handle);
141
+ handlers.forEach(function (_ref3) {
142
+ var scrollableParent = _ref3.scrollableParent,
143
+ handlerScroll = _ref3.handlerScroll;
144
+ scrollableParent.removeEventListener("scroll", handlerScroll);
145
+ });
132
146
  };
133
147
  }, [active, tooltipRef, anchorRef, position]);
134
148
  return {
@@ -140,28 +154,29 @@ var usePosition = function usePosition(_ref) {
140
154
  };
141
155
  };
142
156
  exports.usePosition = usePosition;
143
- var placeTooltip = function placeTooltip(_ref2) {
144
- var anchor = _ref2.anchor,
145
- tooltip = _ref2.tooltip,
146
- position = _ref2.position,
147
- _ref2$offset = _ref2.offset,
148
- offset = _ref2$offset === void 0 ? 0 : _ref2$offset,
149
- _ref2$boundaryRect = _ref2.boundaryRect,
150
- boundaryRect = _ref2$boundaryRect === void 0 ? getDocumentBoundingRect() : _ref2$boundaryRect,
151
- _ref2$flip = _ref2.flip,
152
- flip = _ref2$flip === void 0 ? true : _ref2$flip,
153
- _ref2$clamp = _ref2.clamp,
154
- clamp = _ref2$clamp === void 0 ? true : _ref2$clamp;
157
+ var placeTooltip = function placeTooltip(_ref4) {
158
+ var anchor = _ref4.anchor,
159
+ tooltip = _ref4.tooltip,
160
+ position = _ref4.position,
161
+ _ref4$offset = _ref4.offset,
162
+ offset = _ref4$offset === void 0 ? 0 : _ref4$offset,
163
+ _ref4$flip = _ref4.flip,
164
+ flip = _ref4$flip === void 0 ? true : _ref4$flip,
165
+ _ref4$clamp = _ref4.clamp,
166
+ clamp = _ref4$clamp === void 0 ? true : _ref4$clamp,
167
+ scrollableParents = _ref4.scrollableParents;
155
168
  var elementRect = anchor.getBoundingClientRect();
156
169
  var tooltipRect = tooltip.getBoundingClientRect();
157
170
  var targetPosition = getPosition(elementRect, tooltipRect, position);
158
171
 
159
172
  // Flip to avoid edges
160
- var isFlipped = flip && shouldFlip({
161
- targetPosition: targetPosition,
162
- position: position,
163
- boundaryRect: boundaryRect,
164
- tooltipRect: tooltipRect
173
+ var isFlipped = flip && scrollableParents.some(function (scrollableParent) {
174
+ return shouldFlip({
175
+ targetPosition: targetPosition,
176
+ position: position,
177
+ boundaryRect: getBoundingRect(scrollableParent),
178
+ tooltipRect: tooltipRect
179
+ });
165
180
  });
166
181
  if (isFlipped) {
167
182
  position = getOppositePosition(position);
@@ -170,14 +185,33 @@ var placeTooltip = function placeTooltip(_ref2) {
170
185
 
171
186
  // Clamp position within boundary
172
187
  if (clamp) {
173
- targetPosition.x = Math.max(boundaryRect.left, targetPosition.x);
174
- targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
175
- targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
176
- targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
188
+ scrollableParents.forEach(function (scrollableParent) {
189
+ var boundaryRect = getBoundingRect(scrollableParent);
190
+ targetPosition.x = Math.max(boundaryRect.left, targetPosition.x);
191
+ targetPosition.x = Math.min(boundaryRect.right - tooltipRect.width, targetPosition.x);
192
+ targetPosition.y = Math.max(boundaryRect.top, targetPosition.y);
193
+ targetPosition.y = Math.min(boundaryRect.bottom - tooltipRect.height, targetPosition.y);
194
+ });
177
195
  }
178
196
 
179
197
  // Should hide entirely if it scrolls out of view
180
- var shouldHide = !isWithin(elementRect, boundaryRect);
198
+ var shouldHide = false;
199
+ var _iterator = _createForOfIteratorHelper(scrollableParents),
200
+ _step;
201
+ try {
202
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
203
+ var scrollableParent = _step.value;
204
+ var boundaryRect = getBoundingRect(scrollableParent);
205
+ if (!isWithin(elementRect, boundaryRect)) {
206
+ shouldHide = true;
207
+ break;
208
+ }
209
+ }
210
+ } catch (err) {
211
+ _iterator.e(err);
212
+ } finally {
213
+ _iterator.f();
214
+ }
181
215
  tooltip.style.display = shouldHide ? "none" : "block";
182
216
  tooltip.style.transform = translateWithOffset(targetPosition, position, offset);
183
217
  return {
@@ -249,7 +283,7 @@ var getPosition = function getPosition(elementRect, tooltipRect, position) {
249
283
  };
250
284
  exports.getPosition = getPosition;
251
285
  var translateWithOffset = function translateWithOffset(targetPosition, position, offset) {
252
- var _ref3 = function () {
286
+ var _ref5 = function () {
253
287
  switch (position) {
254
288
  case "top-start":
255
289
  return [targetPosition.x, targetPosition.y - offset];
@@ -277,9 +311,9 @@ var translateWithOffset = function translateWithOffset(targetPosition, position,
277
311
  return [targetPosition.x + offset, targetPosition.y];
278
312
  }
279
313
  }(),
280
- _ref4 = _slicedToArray(_ref3, 2),
281
- x = _ref4[0],
282
- y = _ref4[1];
314
+ _ref6 = _slicedToArray(_ref5, 2),
315
+ x = _ref6[0],
316
+ y = _ref6[1];
283
317
  return "translate(".concat(x, "px, ").concat(y, "px)");
284
318
  };
285
319
  exports.translateWithOffset = translateWithOffset;
@@ -311,24 +345,11 @@ var getOppositePosition = function getOppositePosition(position) {
311
345
  return "left-end";
312
346
  }
313
347
  };
314
- var getDocumentBoundingRect = function getDocumentBoundingRect() {
315
- var width = document.body.clientWidth;
316
- var height = document.body.clientHeight;
317
- return {
318
- top: 0,
319
- left: 0,
320
- right: width,
321
- bottom: height,
322
- width: width,
323
- height: height
324
- };
325
- };
326
- exports.getDocumentBoundingRect = getDocumentBoundingRect;
327
- var shouldFlip = function shouldFlip(_ref5) {
328
- var targetPosition = _ref5.targetPosition,
329
- position = _ref5.position,
330
- boundaryRect = _ref5.boundaryRect,
331
- tooltipRect = _ref5.tooltipRect;
348
+ var shouldFlip = function shouldFlip(_ref7) {
349
+ var targetPosition = _ref7.targetPosition,
350
+ position = _ref7.position,
351
+ boundaryRect = _ref7.boundaryRect,
352
+ tooltipRect = _ref7.tooltipRect;
332
353
  switch (position) {
333
354
  case "top-start":
334
355
  case "top":
@@ -352,4 +373,45 @@ exports.shouldFlip = shouldFlip;
352
373
  var isWithin = function isWithin(elementRect, boundaryRect) {
353
374
  return boundaryRect.top < elementRect.bottom && boundaryRect.left < elementRect.right && boundaryRect.bottom > elementRect.top && boundaryRect.right > elementRect.left;
354
375
  };
376
+ var getScrollableParents = function getScrollableParents(element) {
377
+ var parent = element.parentElement;
378
+ var scrollableParents = [];
379
+ while (parent) {
380
+ var computedStyle = getComputedStyle(parent);
381
+ if (isOverflowSet(computedStyle.overflow) || isOverflowSet(computedStyle.overflowY) || isOverflowSet(computedStyle.overflowX)) {
382
+ scrollableParents.push(parent);
383
+ }
384
+ parent = parent.parentElement;
385
+ }
386
+ scrollableParents.push(document);
387
+ return scrollableParents;
388
+ };
389
+ var isOverflowSet = function isOverflowSet(overflowValue) {
390
+ return overflowValue === "auto" || overflowValue === "hidden" || overflowValue === "scroll" || overflowValue === "overlay";
391
+ };
392
+ var isDocument = function isDocument(element) {
393
+ return element.ownerDocument === null;
394
+ };
395
+ var getDocumentBoundingRect = function getDocumentBoundingRect() {
396
+ var width = document.body.clientWidth;
397
+ var height = document.body.clientHeight;
398
+ return {
399
+ top: 0,
400
+ left: 0,
401
+ right: width,
402
+ bottom: height,
403
+ width: width,
404
+ height: height,
405
+ x: 0,
406
+ y: 0,
407
+ toJSON: function toJSON() {
408
+ return null;
409
+ }
410
+ };
411
+ };
412
+ exports.getDocumentBoundingRect = getDocumentBoundingRect;
413
+ var getBoundingRect = function getBoundingRect(element) {
414
+ return isDocument(element) ? getDocumentBoundingRect() : element.getBoundingClientRect();
415
+ };
416
+ exports.getBoundingRect = getBoundingRect;
355
417
  //# 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 (!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","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e2","f","TypeError","normalCompletion","didErr","err","call","step","next","_e3","return","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","push","POSITION","top","bottom","left","right","exports","usePosition","_ref","key","position","_ref$offset","offset","_ref$active","active","_ref$flip","flip","_ref$clamp","clamp","_useState","useState","isFlipped","_useState2","state","setState","tooltipRef","useRef","anchorRef","update","current","tooltip","anchor","scrollableParents","getScrollableParents","placeTooltip","useMutationObserver","ref","onMutate","useResizeObserver","target","onResize","useIsomorphicLayoutEffect","style","handle","handlers","map","scrollableParent","handlerScroll","forEach","_ref2","addEventListener","passive","window","removeEventListener","_ref3","_ref4","_ref4$offset","_ref4$flip","_ref4$clamp","elementRect","getBoundingClientRect","tooltipRect","targetPosition","getPosition","some","shouldFlip","boundaryRect","getBoundingRect","getOppositePosition","x","Math","max","min","width","y","height","shouldHide","_iterator","_step","isWithin","display","transform","translateWithOffset","_ref5","_ref6","concat","_ref7","element","parent","parentElement","computedStyle","getComputedStyle","isOverflowSet","overflow","overflowY","overflowX","document","overflowValue","isDocument","ownerDocument","getDocumentBoundingRect","body","clientWidth","clientHeight","toJSON"],"sources":["../../src/utils/usePosition.ts"],"sourcesContent":["/**\n * Adapted from https://codesandbox.io/s/positioning-tooltip-rhplo\n */\nimport { useState } from \"react\"\nimport { useRef } from \"react\"\nimport { useMutationObserver } from \"./useMutationObserver\"\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\"\nimport { useResizeObserver } from \"./useResizeObserver\"\n\nexport const POSITION = {\n \"top-start\": \"top-start\",\n top: \"top\",\n \"top-end\": \"top-end\",\n \"bottom-start\": \"bottom-start\",\n bottom: \"bottom\",\n \"bottom-end\": \"bottom-end\",\n \"left-start\": \"left-start\",\n left: \"left\",\n \"left-end\": \"left-end\",\n \"right-start\": \"right-start\",\n right: \"right\",\n \"right-end\": \"right-end\",\n} as const\n\nexport type Position = keyof typeof POSITION\n\ninterface TargetPosition {\n x: number\n y: number\n}\n\n/**\n * Will position the floating element (tooltip) relative to the anchor element,\n * using `position: fixed` and in such a way that it shouldn't ever appear\n * partially offscreen and will move correctly when the parent is scrolled.\n */\nexport const usePosition = ({\n key,\n position,\n offset = 0,\n active = true,\n flip = true,\n clamp = true,\n}: {\n /** Listen to changes on this value */\n key?: string | number | boolean\n /** Placement relative to anchor */\n position: Position\n /** Distance from anchor (default: `0`) */\n offset?: number\n /** Optionally disable for performance (default: `true`) */\n active?: boolean\n /** Optionally disable flipping (default: `true`) */\n flip?: boolean\n /** Optionally disable clamping (default: `true`) */\n clamp?: boolean\n}) => {\n const [state, setState] = useState<ReturnType<typeof placeTooltip>>({\n isFlipped: false,\n })\n\n const tooltipRef = useRef<HTMLElement | null>(null)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n const update = () => {\n if (!tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n const scrollableParents = getScrollableParents(anchor)\n\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n }\n\n // Re-position when there's any change to the tooltip\n useMutationObserver({ ref: tooltipRef, onMutate: update, active })\n\n // Re-position when there's any change to the anchor's size\n useResizeObserver({ target: anchorRef, onResize: update, active })\n\n // Listen to changes on key\n useIsomorphicLayoutEffect(update, [key])\n\n useIsomorphicLayoutEffect(() => {\n if (!active || !tooltipRef.current || !anchorRef.current) return\n\n const { current: tooltip } = tooltipRef\n const { current: anchor } = anchorRef\n\n tooltip.style.position = \"fixed\"\n tooltip.style.top = \"0\"\n tooltip.style.left = \"0\"\n\n const handle = () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n }\n\n const scrollableParents = getScrollableParents(anchor)\n const handlers = scrollableParents.map((scrollableParent) => {\n return {\n scrollableParent,\n handlerScroll: () => {\n setState(\n placeTooltip({\n anchor,\n tooltip,\n position,\n offset,\n flip,\n clamp,\n scrollableParents,\n })\n )\n },\n }\n })\n\n handlers.forEach(({ scrollableParent, handlerScroll }) => {\n scrollableParent.addEventListener(\"scroll\", handlerScroll, {\n passive: true,\n })\n })\n\n window.addEventListener(\"resize\", handle, { passive: true })\n\n // Initialize\n handle()\n\n return () => {\n window.removeEventListener(\"resize\", handle)\n handlers.forEach(({ scrollableParent, handlerScroll }) => {\n scrollableParent.removeEventListener(\"scroll\", handlerScroll)\n })\n }\n }, [active, tooltipRef, anchorRef, position])\n\n return {\n // Element that floating element is anchored to\n tooltipRef,\n // Element you want to position relative to the anchor\n anchorRef,\n state,\n }\n}\n\ninterface PlaceTooltip {\n anchor: HTMLElement\n tooltip: HTMLElement\n position: Position\n offset?: number\n flip?: boolean\n clamp?: boolean\n scrollableParents: Array<HTMLElement | Document>\n}\n\nexport const placeTooltip = ({\n anchor,\n tooltip,\n position,\n offset = 0,\n flip = true,\n clamp = true,\n scrollableParents,\n}: PlaceTooltip) => {\n const elementRect = anchor.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n\n let targetPosition = getPosition(elementRect, tooltipRect, position)\n\n // Flip to avoid edges\n const isFlipped =\n flip &&\n scrollableParents.some((scrollableParent) => {\n return shouldFlip({\n targetPosition,\n position,\n boundaryRect: getBoundingRect(scrollableParent),\n tooltipRect,\n })\n })\n\n if (isFlipped) {\n position = getOppositePosition(position)\n targetPosition = getPosition(elementRect, tooltipRect, position)\n }\n\n // Clamp position within boundary\n if (clamp) {\n scrollableParents.forEach((scrollableParent) => {\n const boundaryRect = getBoundingRect(scrollableParent)\n\n targetPosition.x = Math.max(boundaryRect.left, targetPosition.x)\n targetPosition.x = Math.min(\n boundaryRect.right - tooltipRect.width,\n targetPosition.x\n )\n targetPosition.y = Math.max(boundaryRect.top, targetPosition.y)\n targetPosition.y = Math.min(\n boundaryRect.bottom - tooltipRect.height,\n targetPosition.y\n )\n })\n }\n\n // Should hide entirely if it scrolls out of view\n let shouldHide = false\n for (const scrollableParent of scrollableParents) {\n const boundaryRect = getBoundingRect(scrollableParent)\n if (!isWithin(elementRect, boundaryRect)) {\n shouldHide = true\n break\n }\n }\n\n tooltip.style.display = shouldHide ? \"none\" : \"block\"\n\n tooltip.style.transform = translateWithOffset(\n targetPosition,\n position,\n offset\n )\n\n return { isFlipped }\n}\n\nexport const getPosition = (\n elementRect: Pick<\n DOMRect,\n \"width\" | \"height\" | \"top\" | \"right\" | \"bottom\" | \"left\"\n >,\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">,\n position: Position\n): TargetPosition => {\n let x: number\n let y: number\n\n switch (position) {\n case \"top-start\":\n case \"bottom-start\":\n x = elementRect.left\n break\n case \"top\":\n case \"bottom\":\n x = elementRect.left + elementRect.width / 2 - tooltipRect.width / 2\n break\n case \"top-end\":\n case \"bottom-end\":\n x = elementRect.right - tooltipRect.width\n break\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n // [..] {XXX}\n x = elementRect.left - tooltipRect.width\n break\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n // {XXX} [...]\n x = elementRect.right\n break\n }\n\n switch (position) {\n case \"left-start\":\n case \"right-start\":\n y = elementRect.top\n break\n case \"left\":\n case \"right\":\n y = elementRect.top + elementRect.height / 2 - tooltipRect.height / 2\n break\n case \"left-end\":\n case \"right-end\":\n y = elementRect.bottom - tooltipRect.height\n break\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n // [..]\n // {XXX}\n y = elementRect.top - tooltipRect.height\n break\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n // {XXX}\n // [...]\n y = elementRect.bottom\n break\n }\n\n return { x, y }\n}\n\nexport const translateWithOffset = (\n targetPosition: TargetPosition,\n position: Position,\n offset: number\n) => {\n const [x, y] = (() => {\n switch (position) {\n case \"top-start\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"top-end\":\n return [targetPosition.x, targetPosition.y - offset]\n case \"bottom-start\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"bottom-end\":\n return [targetPosition.x, targetPosition.y + offset]\n case \"left-start\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"left-end\":\n return [targetPosition.x - offset, targetPosition.y]\n case \"right-start\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right\":\n return [targetPosition.x + offset, targetPosition.y]\n case \"right-end\":\n return [targetPosition.x + offset, targetPosition.y]\n }\n })()\n\n return `translate(${x}px, ${y}px)`\n}\n\nconst getOppositePosition = (position: Position) => {\n switch (position) {\n case \"top-start\":\n return \"bottom-start\"\n case \"top\":\n return \"bottom\"\n case \"top-end\":\n return \"bottom-end\"\n case \"bottom-start\":\n return \"top-start\"\n case \"bottom\":\n return \"top\"\n case \"bottom-end\":\n return \"top-end\"\n case \"left-start\":\n return \"right-start\"\n case \"left\":\n return \"right\"\n case \"left-end\":\n return \"right-end\"\n case \"right-start\":\n return \"left-start\"\n case \"right\":\n return \"left\"\n case \"right-end\":\n return \"left-end\"\n }\n}\n\ninterface ShouldFlip {\n targetPosition: TargetPosition\n position: Position\n boundaryRect: Pick<DOMRect, \"top\" | \"right\" | \"bottom\" | \"left\">\n tooltipRect: Pick<DOMRect, \"width\" | \"height\">\n}\n\nexport const shouldFlip = ({\n targetPosition,\n position,\n boundaryRect,\n tooltipRect,\n}: ShouldFlip) => {\n switch (position) {\n case \"top-start\":\n case \"top\":\n case \"top-end\":\n return targetPosition.y < boundaryRect.top\n case \"bottom-start\":\n case \"bottom\":\n case \"bottom-end\":\n return targetPosition.y + tooltipRect.height > boundaryRect.bottom\n case \"left-start\":\n case \"left\":\n case \"left-end\":\n return targetPosition.x < boundaryRect.left\n case \"right-start\":\n case \"right\":\n case \"right-end\":\n return targetPosition.x + tooltipRect.width > boundaryRect.right\n }\n}\n\nconst isWithin = (elementRect: DOMRect, boundaryRect: DOMRect) => {\n return (\n boundaryRect.top < elementRect.bottom &&\n boundaryRect.left < elementRect.right &&\n boundaryRect.bottom > elementRect.top &&\n boundaryRect.right > elementRect.left\n )\n}\n\nconst getScrollableParents = (element: HTMLElement) => {\n let parent = element.parentElement\n const scrollableParents: Array<HTMLElement | Document> = []\n\n while (parent) {\n const computedStyle = getComputedStyle(parent)\n if (\n isOverflowSet(computedStyle.overflow) ||\n isOverflowSet(computedStyle.overflowY) ||\n isOverflowSet(computedStyle.overflowX)\n ) {\n scrollableParents.push(parent)\n }\n parent = parent.parentElement\n }\n\n scrollableParents.push(document)\n\n return scrollableParents\n}\n\nconst isOverflowSet = (overflowValue: string) => {\n return (\n overflowValue === \"auto\" ||\n overflowValue === \"hidden\" ||\n overflowValue === \"scroll\" ||\n overflowValue === \"overlay\"\n )\n}\n\nconst isDocument = (element: HTMLElement | Document): element is Document => {\n return element.ownerDocument === null\n}\n\nexport const getDocumentBoundingRect = () => {\n const width = document.body.clientWidth\n const height = document.body.clientHeight\n\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height,\n x: 0,\n y: 0,\n toJSON: () => null,\n }\n}\n\nexport const getBoundingRect = (element: HTMLElement | Document): DOMRect => {\n return isDocument(element)\n ? getDocumentBoundingRect()\n : element.getBoundingClientRect()\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artsy/palette",
3
- "version": "37.2.0",
3
+ "version": "37.2.1",
4
4
  "description": "Design system library for react components",
5
5
  "main": "dist/index.js",
6
6
  "publishConfig": {
@@ -182,5 +182,5 @@
182
182
  "url": "http://localhost"
183
183
  }
184
184
  },
185
- "gitHead": "af34cf0df8096ca6e0667dac811b7235d13dc04e"
185
+ "gitHead": "d803782e8d384c99b2ed331c3425528d993e3eec"
186
186
  }