@jobber/components 2.78.0 → 2.78.1-pre.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,10 +22,9 @@ var index$3 = require('../Avatar/index.js');
22
22
  require('color');
23
23
  var hooks = require('@jobber/hooks');
24
24
  require('react-dom');
25
- require('@popperjs/core');
25
+ var reactPopper = require('react-popper');
26
26
  var index$4 = require('../Tooltip/index.js');
27
27
  var lodash = require('lodash');
28
- var reactPopper = require('react-popper');
29
28
 
30
29
  var css = "/**\n * Used in the wrapping chips component:\n * - InternalChipSingleSelect\n * - InternalChipMultiSelect\n */\n\n.uhcyg-a-GLRKF_7oHwvMP {\n display: -ms-flexbox;\n display: flex;\n grid-gap: var(--space-small);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._2XfthED8eqbKIyTNoH1aWp {\n display: inline-grid;\n position: relative;\n max-width: 100%;\n box-sizing: border-box;\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-larger);\n color: var(--color-text--secondary);\n text-align: left;\n vertical-align: middle;\n background-color: var(--color-surface);\n transition: var(--timing-base) ease-in-out;\n transition-property: background-color, box-shadow, color;\n grid-template-columns: -webkit-max-content;\n grid-template-columns: max-content;\n -ms-flex-align: center;\n align-items: center;\n grid-gap: var(--space-small);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n}\n\n._4U2lNr3Kk6xnNZTk3Fxgm,\n.fl19i7ccgBu7NZkxnpvcI {\n padding: calc(var(--space-smaller) + var(--space-smallest)) var(--space-small);\n}\n\n._4U2lNr3Kk6xnNZTk3Fxgm {\n grid-template-columns: -webkit-min-content 1fr;\n grid-template-columns: min-content 1fr;\n}\n\n.fl19i7ccgBu7NZkxnpvcI {\n grid-template-columns: 1fr -webkit-min-content;\n grid-template-columns: 1fr min-content;\n}\n\n._4U2lNr3Kk6xnNZTk3Fxgm.fl19i7ccgBu7NZkxnpvcI {\n grid-template-columns: -webkit-min-content 1fr -webkit-min-content;\n grid-template-columns: min-content 1fr min-content;\n}\n\n._3Uf2El5YBbG3DmUWHBhuea,\n._35he2rVDYRU4YQko5r4adP ~ ._2XfthED8eqbKIyTNoH1aWp {\n box-shadow: var(--shadow-base);\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n/**\n * Interaction\n */\n\n._2XfthED8eqbKIyTNoH1aWp:focus,\n._35he2rVDYRU4YQko5r4adP:focus ~ ._2XfthED8eqbKIyTNoH1aWp {\n outline: none;\n}\n\n._3Uf2El5YBbG3DmUWHBhuea:focus,\n._35he2rVDYRU4YQko5r4adP:focus ~ ._2XfthED8eqbKIyTNoH1aWp {\n box-shadow: var(--shadow-focus);\n}\n\n._3Uf2El5YBbG3DmUWHBhuea:hover,\n._3Uf2El5YBbG3DmUWHBhuea:focus,\n._35he2rVDYRU4YQko5r4adP:focus ~ ._2XfthED8eqbKIyTNoH1aWp:not(._18wCcoIrboygQTnIVm8yzS) {\n background-color: var(--color-surface--hover);\n}\n\n/**\n * States\n */\n\n._2XfthED8eqbKIyTNoH1aWp._18wCcoIrboygQTnIVm8yzS {\n border-color: var(--color-surface--reverse);\n color: var(--color-text--reverse);\n background-color: var(--color-surface--reverse);\n}\n\n._2XfthED8eqbKIyTNoH1aWp._1FTJ2ALrm1mVaT7HdMFFGN {\n border-color: var(--color-critical--onSurface);\n color: var(--color-critical--onSurface);\n background-color: var(--color-critical--surface);\n}\n\n._2XfthED8eqbKIyTNoH1aWp.B1ELFzeQy9Ihy9oYcv-px {\n border-color: var(--color-disabled--secondary);\n color: var(--color-disabled);\n background-color: var(--color-disabled--secondary);\n}\n\n._18wCcoIrboygQTnIVm8yzS.B1ELFzeQy9Ihy9oYcv-px {\n border-color: var(--color-disabled);\n color: var(--color-white);\n background-color: var(--color-disabled);\n}\n\n._1FTJ2ALrm1mVaT7HdMFFGN.B1ELFzeQy9Ihy9oYcv-px {\n border-color: var(--color-critical);\n}\n\n/**\n * Input checkbox/radio\n *\n * Hide checkbox on UI but not screen readers and still allow focus state\n */\n\n._35he2rVDYRU4YQko5r4adP {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n -webkit-clip-path: inset(100%);\n clip-path: inset(100%);\n white-space: nowrap;\n}\n\n/**\n * Button\n */\n\n._1M_ek3kiaa7OApx5rwBEc3 {\n display: -ms-flexbox;\n display: flex;\n border-radius: var(--radius-base);\n cursor: pointer;\n transition: background-color 200ms ease;\n}\n\n._1M_ek3kiaa7OApx5rwBEc3:hover,\n._1M_ek3kiaa7OApx5rwBEc3:focus {\n background-color: var(--color-surface--hover);\n}\n\n._1M_ek3kiaa7OApx5rwBEc3:focus,\n._3Uf2El5YBbG3DmUWHBhuea ._1M_ek3kiaa7OApx5rwBEc3:hover {\n box-shadow: var(--shadow-focus);\n outline: none;\n}\n\n/**\n * Override icon default colors.\n *\n * NOTE: This is a workaround since some icons have default colors that we don't\n * want to override until the component color prop overrides it.\n * DO NOT COPY!\n */\n\n._3AG5dSWeyKYD1Xfu9fN_DL > svg {\n fill: var(--color-interactive--subtle);\n}\n\n._3AG5dSWeyKYD1Xfu9fN_DL {\n display: -ms-flexbox;\n display: flex;\n}\n";
31
30
  var styles = {"wrapper":"uhcyg-a-GLRKF_7oHwvMP","chip":"_2XfthED8eqbKIyTNoH1aWp","hasPrefix":"_4U2lNr3Kk6xnNZTk3Fxgm","hasSuffix":"fl19i7ccgBu7NZkxnpvcI","clickable":"_3Uf2El5YBbG3DmUWHBhuea","input":"_35he2rVDYRU4YQko5r4adP","active":"_18wCcoIrboygQTnIVm8yzS","invalid":"_1FTJ2ALrm1mVaT7HdMFFGN","disabled":"B1ELFzeQy9Ihy9oYcv-px","button":"_1M_ek3kiaa7OApx5rwBEc3","icon":"_3AG5dSWeyKYD1Xfu9fN_DL"};
@@ -14,7 +14,7 @@ var index$1 = require('../Text/index.js');
14
14
  var framerMotion = require('framer-motion');
15
15
  var ReactDOM = require('react-dom');
16
16
  var ReactDOM__default = _interopDefault(ReactDOM);
17
- var core = require('@popperjs/core');
17
+ var reactPopper = require('react-popper');
18
18
 
19
19
  var css = ":root {\n --tooltip--arrow-size: var(--space-small);\n --tooltip--offset: calc(-1 * calc(var(--space-smaller) + 1px));\n}\n\n._2IKuYsqwWWH9A-WgJDR61q {\n display: none;\n}\n\n._2fkHxHwiJK9AkUMCIPucCJ {\n display: inline-block;\n position: absolute;\n z-index: var(--elevation-tooltip);\n}\n\n._2YpF1qO7J5ncFlfoW0hA1L {\n display: inline-block;\n position: relative;\n max-width: calc(var(--base-unit) * 15);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-informative);\n border-radius: var(--radius-base);\n background-color: var(--color-informative--surface);\n}\n\n._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd,\n._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd::after {\n width: var(--space-small);\n width: var(--space-small);\n width: var(--tooltip--arrow-size);\n height: var(--space-small);\n height: var(--space-small);\n height: var(--tooltip--arrow-size);\n background-color: inherit;\n}\n\n._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd::after {\n content: \"\";\n display: block;\n position: absolute;\n border: var(--border-base) solid var(--color-informative);\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n}\n\n._3VkJmaX3T1x98A59lZbEa5 {\n padding-bottom: var(--space-small);\n}\n\n._3VkJmaX3T1x98A59lZbEa5 ._2YpF1qO7J5ncFlfoW0hA1L {\n -webkit-transform-origin: bottom center;\n transform-origin: bottom center;\n}\n\n._3VkJmaX3T1x98A59lZbEa5 ._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd {\n bottom: calc(-1 * calc(var(--space-smaller) + 1px));\n bottom: calc(-1 * calc(var(--space-smaller) + 1px));\n bottom: var(--tooltip--offset);\n}\n\n._3VkJmaX3T1x98A59lZbEa5 ._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd::after {\n border-top-width: 0;\n border-left-width: 0;\n}\n\n.QtIXawS3dVhY8j2NKSZLY {\n padding-top: var(--space-small);\n}\n\n.QtIXawS3dVhY8j2NKSZLY ._2YpF1qO7J5ncFlfoW0hA1L {\n -webkit-transform-origin: top center;\n transform-origin: top center;\n}\n\n.QtIXawS3dVhY8j2NKSZLY ._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd {\n top: calc(-1 * calc(var(--space-smaller) + 1px));\n top: calc(-1 * calc(var(--space-smaller) + 1px));\n top: var(--tooltip--offset);\n}\n\n.QtIXawS3dVhY8j2NKSZLY ._2YpF1qO7J5ncFlfoW0hA1L ._3DjyKsZFiUA0QD18ABsimd::after {\n border-bottom-width: 0;\n border-right-width: 0;\n}\n";
20
20
  var styles = {"shadowActivator":"_2IKuYsqwWWH9A-WgJDR61q","tooltipWrapper":"_2fkHxHwiJK9AkUMCIPucCJ","tooltip":"_2YpF1qO7J5ncFlfoW0hA1L","arrow":"_3DjyKsZFiUA0QD18ABsimd","above":"_3VkJmaX3T1x98A59lZbEa5","below":"QtIXawS3dVhY8j2NKSZLY"};
@@ -26,33 +26,35 @@ var variation = {
26
26
  };
27
27
  function Tooltip(_a) {
28
28
  var message = _a.message, children = _a.children;
29
- var _b = __chunk_1.__read(React.useState("above"), 2), placement = _b[0], setPlacement = _b[1];
30
- var _c = __chunk_1.__read(React.useState({}), 2), tooltipStyles = _c[0], setTooltipStyles = _c[1];
31
- var _d = __chunk_1.__read(React.useState({}), 2), arrowStyles = _d[0], setArrowStyles = _d[1];
32
- var _e = __chunk_1.__read(React.useState(true), 2), show = _e[0], setShow = _e[1];
33
- var tooltipRef = React.createRef();
34
- var arrowRef = React.createRef();
35
- var shadowRef = React.createRef();
29
+ var _b, _c, _d;
30
+ var _e = __chunk_1.__read(React.useState(false), 2), show = _e[0], setShow = _e[1];
31
+ var shadowRef = React.useRef(null); // eslint-disable-line no-null/no-null
32
+ var _f = __chunk_1.__read(React.useState(), 2), positionElement = _f[0], setPositionedElementRef = _f[1];
33
+ var _g = __chunk_1.__read(React.useState(), 2), arrowElement = _g[0], setArrowElement = _g[1];
34
+ var popper = reactPopper.usePopper((_b = shadowRef.current) === null || _b === void 0 ? void 0 : _b.nextElementSibling, positionElement, {
35
+ placement: "top",
36
+ modifiers: [
37
+ { name: "flip", options: { fallbackPlacements: ["bottom"] } },
38
+ {
39
+ name: "arrow",
40
+ options: { element: arrowElement, padding: 10 },
41
+ },
42
+ ],
43
+ });
36
44
  initializeListeners();
37
- var toolTipClassNames = classnames(styles.tooltipWrapper, placement === "below" && styles.below, placement === "above" && styles.above);
45
+ var toolTipClassNames = classnames(styles.tooltipWrapper, ((_c = popper.state) === null || _c === void 0 ? void 0 : _c.placement) === "bottom" && styles.below, ((_d = popper.state) === null || _d === void 0 ? void 0 : _d.placement) === "top" && styles.above);
38
46
  return (React__default.createElement(React__default.Fragment, null,
39
47
  React__default.createElement("span", { className: styles.shadowActivator, ref: shadowRef }),
40
48
  children,
41
- React__default.createElement(TooltipPortal, null,
42
- React__default.createElement("div", { className: toolTipClassNames, style: tooltipStyles, ref: tooltipRef, role: "tooltip" },
43
- React__default.createElement(framerMotion.AnimatePresence, null, show && (React__default.createElement(framerMotion.motion.div, { className: styles.tooltip, variants: variation, initial: "startOrStop", animate: "done", exit: "startOrStop", transition: {
44
- type: "spring",
45
- damping: 20,
46
- stiffness: 300,
47
- } },
48
- React__default.createElement(index$1.Text, null, message),
49
- React__default.createElement("div", { ref: arrowRef, style: arrowStyles, className: styles.arrow }))))))));
49
+ React__default.createElement(TooltipPortal, null, show && (React__default.createElement("div", __chunk_1.__assign({ className: toolTipClassNames, style: popper.styles.popper, ref: setPositionedElementRef, role: "tooltip" }, popper.attributes.popper),
50
+ React__default.createElement(framerMotion.motion.div, { className: styles.tooltip, variants: variation, initial: "startOrStop", animate: "done", exit: "startOrStop", transition: {
51
+ type: "spring",
52
+ damping: 20,
53
+ stiffness: 300,
54
+ } },
55
+ React__default.createElement(index$1.Text, null, message),
56
+ React__default.createElement("div", { ref: setArrowElement, style: popper.styles.arrow, className: styles.arrow })))))));
50
57
  function initializeListeners() {
51
- var _a = __chunk_1.__read(React.useState(undefined), 2), popperInstance = _a[0], setPopperInstance = _a[1];
52
- React.useEffect(function () {
53
- if (popperInstance)
54
- popperInstance.update();
55
- }, [show]);
56
58
  var showTooltip = function () {
57
59
  setShow(true);
58
60
  };
@@ -92,60 +94,13 @@ function Tooltip(_a) {
92
94
  }
93
95
  };
94
96
  React.useLayoutEffect(function () {
95
- var popper = setupPopper();
96
- setPopperInstance(popper);
97
- setShow(false);
98
97
  injectAttributes();
99
98
  addListeners();
100
99
  return function () {
101
- if (popper)
102
- popper.destroy();
103
100
  removeListeners();
104
101
  };
105
102
  }, []);
106
103
  }
107
- function setupPopper() {
108
- if (shadowRef.current &&
109
- shadowRef.current.nextElementSibling &&
110
- tooltipRef.current) {
111
- var popper = core.createPopper(shadowRef.current.nextElementSibling, tooltipRef.current, {
112
- placement: "top",
113
- modifiers: [
114
- {
115
- name: "preventOverflow",
116
- options: {
117
- padding: 5,
118
- },
119
- },
120
- {
121
- name: "flip",
122
- options: { padding: 50, fallbackPlacements: ["bottom"] },
123
- },
124
- {
125
- name: "arrow",
126
- options: { element: arrowRef.current, padding: 5 },
127
- },
128
- {
129
- name: "applyStyles",
130
- fn: function (data) {
131
- setTooltipStyles(data.state.styles.popper);
132
- setArrowStyles(data.state.styles.arrow);
133
- if (data.state.placement === "top") {
134
- setPlacement("above");
135
- }
136
- else {
137
- setPlacement("below");
138
- }
139
- },
140
- },
141
- ],
142
- });
143
- return popper;
144
- }
145
- else {
146
- return undefined;
147
- }
148
- }
149
104
  }
150
105
  function TooltipPortal(_a) {
151
106
  var children = _a.children;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "2.78.0",
3
+ "version": "2.78.1-pre.1+738d128",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -85,5 +85,5 @@
85
85
  "> 1%",
86
86
  "IE 10"
87
87
  ],
88
- "gitHead": "cf2446cabdba1f3539555ff5d65fcdfa4a8f5e4b"
88
+ "gitHead": "738d128cbd0a19214d34879b4b1f6651b85630e1"
89
89
  }