@artsy/palette 37.2.1 → 37.2.2

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