@atlaskit/react-select 0.0.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.
- package/CHANGELOG.md +9 -0
- package/LICENSE.md +11 -0
- package/README.md +10 -0
- package/async/package.json +15 -0
- package/base/package.json +15 -0
- package/creatable/package.json +15 -0
- package/dist/cjs/accessibility/helpers.js +34 -0
- package/dist/cjs/accessibility/index.js +74 -0
- package/dist/cjs/async-creatable.js +27 -0
- package/dist/cjs/async.js +30 -0
- package/dist/cjs/builtins.js +18 -0
- package/dist/cjs/components/containers.js +100 -0
- package/dist/cjs/components/control.js +67 -0
- package/dist/cjs/components/group.js +79 -0
- package/dist/cjs/components/index.js +53 -0
- package/dist/cjs/components/indicators.js +214 -0
- package/dist/cjs/components/input.js +93 -0
- package/dist/cjs/components/internal/a11y-text.js +34 -0
- package/dist/cjs/components/internal/dummy-input.js +43 -0
- package/dist/cjs/components/internal/index.js +34 -0
- package/dist/cjs/components/internal/required-input.js +43 -0
- package/dist/cjs/components/internal/scroll-manager.js +57 -0
- package/dist/cjs/components/internal/use-scroll-capture.js +132 -0
- package/dist/cjs/components/internal/use-scroll-lock.js +149 -0
- package/dist/cjs/components/live-region.js +153 -0
- package/dist/cjs/components/menu.js +464 -0
- package/dist/cjs/components/multi-value.js +129 -0
- package/dist/cjs/components/option.js +62 -0
- package/dist/cjs/components/placeholder.js +39 -0
- package/dist/cjs/components/single-value.js +46 -0
- package/dist/cjs/creatable.js +30 -0
- package/dist/cjs/diacritics.js +274 -0
- package/dist/cjs/filters.js +50 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/nonce-provider.js +30 -0
- package/dist/cjs/select.js +1803 -0
- package/dist/cjs/state-manager.js +31 -0
- package/dist/cjs/styles.js +66 -0
- package/dist/cjs/theme.js +42 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/use-async.js +156 -0
- package/dist/cjs/use-creatable.js +114 -0
- package/dist/cjs/use-state-manager.js +83 -0
- package/dist/cjs/utils.js +357 -0
- package/dist/es2019/accessibility/helpers.js +24 -0
- package/dist/es2019/accessibility/index.js +72 -0
- package/dist/es2019/async-creatable.js +17 -0
- package/dist/es2019/async.js +16 -0
- package/dist/es2019/builtins.js +4 -0
- package/dist/es2019/components/containers.js +100 -0
- package/dist/es2019/components/control.js +62 -0
- package/dist/es2019/components/group.js +74 -0
- package/dist/es2019/components/index.js +41 -0
- package/dist/es2019/components/indicators.js +211 -0
- package/dist/es2019/components/input.js +88 -0
- package/dist/es2019/components/internal/a11y-text.js +25 -0
- package/dist/es2019/components/internal/dummy-input.js +36 -0
- package/dist/es2019/components/internal/index.js +4 -0
- package/dist/es2019/components/internal/required-input.js +35 -0
- package/dist/es2019/components/internal/scroll-manager.js +49 -0
- package/dist/es2019/components/internal/use-scroll-capture.js +128 -0
- package/dist/es2019/components/internal/use-scroll-lock.js +143 -0
- package/dist/es2019/components/live-region.js +151 -0
- package/dist/es2019/components/menu.js +466 -0
- package/dist/es2019/components/multi-value.js +134 -0
- package/dist/es2019/components/option.js +57 -0
- package/dist/es2019/components/placeholder.js +34 -0
- package/dist/es2019/components/single-value.js +41 -0
- package/dist/es2019/creatable.js +15 -0
- package/dist/es2019/diacritics.js +264 -0
- package/dist/es2019/filters.js +36 -0
- package/dist/es2019/index.js +8 -0
- package/dist/es2019/nonce-provider.js +19 -0
- package/dist/es2019/select.js +1766 -0
- package/dist/es2019/state-manager.js +22 -0
- package/dist/es2019/styles.js +56 -0
- package/dist/es2019/theme.js +36 -0
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/use-async.js +117 -0
- package/dist/es2019/use-creatable.js +81 -0
- package/dist/es2019/use-state-manager.js +60 -0
- package/dist/es2019/utils.js +309 -0
- package/dist/esm/accessibility/helpers.js +24 -0
- package/dist/esm/accessibility/index.js +68 -0
- package/dist/esm/async-creatable.js +17 -0
- package/dist/esm/async.js +16 -0
- package/dist/esm/builtins.js +12 -0
- package/dist/esm/components/containers.js +96 -0
- package/dist/esm/components/control.js +62 -0
- package/dist/esm/components/group.js +74 -0
- package/dist/esm/components/index.js +43 -0
- package/dist/esm/components/indicators.js +209 -0
- package/dist/esm/components/input.js +88 -0
- package/dist/esm/components/internal/a11y-text.js +27 -0
- package/dist/esm/components/internal/dummy-input.js +37 -0
- package/dist/esm/components/internal/index.js +4 -0
- package/dist/esm/components/internal/required-input.js +36 -0
- package/dist/esm/components/internal/scroll-manager.js +49 -0
- package/dist/esm/components/internal/use-scroll-capture.js +126 -0
- package/dist/esm/components/internal/use-scroll-lock.js +143 -0
- package/dist/esm/components/live-region.js +148 -0
- package/dist/esm/components/menu.js +460 -0
- package/dist/esm/components/multi-value.js +122 -0
- package/dist/esm/components/option.js +57 -0
- package/dist/esm/components/placeholder.js +34 -0
- package/dist/esm/components/single-value.js +41 -0
- package/dist/esm/creatable.js +15 -0
- package/dist/esm/diacritics.js +268 -0
- package/dist/esm/filters.js +43 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/nonce-provider.js +20 -0
- package/dist/esm/select.js +1794 -0
- package/dist/esm/state-manager.js +22 -0
- package/dist/esm/styles.js +58 -0
- package/dist/esm/theme.js +36 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/use-async.js +149 -0
- package/dist/esm/use-creatable.js +107 -0
- package/dist/esm/use-state-manager.js +76 -0
- package/dist/esm/utils.js +328 -0
- package/dist/types/accessibility/helpers.d.ts +5 -0
- package/dist/types/accessibility/index.d.ts +125 -0
- package/dist/types/async-creatable.d.ts +10 -0
- package/dist/types/async.d.ts +9 -0
- package/dist/types/builtins.d.ts +5 -0
- package/dist/types/components/containers.d.ts +50 -0
- package/dist/types/components/control.d.ts +33 -0
- package/dist/types/components/group.d.ts +53 -0
- package/dist/types/components/index.d.ts +73 -0
- package/dist/types/components/indicators.d.ts +72 -0
- package/dist/types/components/input.d.ts +33 -0
- package/dist/types/components/internal/a11y-text.d.ts +8 -0
- package/dist/types/components/internal/dummy-input.d.ts +9 -0
- package/dist/types/components/internal/index.d.ts +4 -0
- package/dist/types/components/internal/required-input.d.ts +10 -0
- package/dist/types/components/internal/scroll-manager.d.ts +17 -0
- package/dist/types/components/internal/use-scroll-capture.d.ts +12 -0
- package/dist/types/components/internal/use-scroll-lock.d.ts +9 -0
- package/dist/types/components/live-region.d.ts +24 -0
- package/dist/types/components/menu.d.ts +130 -0
- package/dist/types/components/multi-value.d.ts +47 -0
- package/dist/types/components/option.d.ts +49 -0
- package/dist/types/components/placeholder.d.ts +22 -0
- package/dist/types/components/single-value.d.ts +28 -0
- package/dist/types/creatable.d.ts +10 -0
- package/dist/types/diacritics.d.ts +1 -0
- package/dist/types/filters.d.ts +15 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/nonce-provider.d.ts +8 -0
- package/dist/types/select.d.ts +616 -0
- package/dist/types/state-manager.d.ts +17 -0
- package/dist/types/styles.d.ts +68 -0
- package/dist/types/theme.d.ts +27 -0
- package/dist/types/types.d.ts +134 -0
- package/dist/types/use-async.d.ts +31 -0
- package/dist/types/use-creatable.d.ts +46 -0
- package/dist/types/use-state-manager.d.ts +15 -0
- package/dist/types/utils.d.ts +44 -0
- package/dist/types-ts4.5/accessibility/helpers.d.ts +5 -0
- package/dist/types-ts4.5/accessibility/index.d.ts +125 -0
- package/dist/types-ts4.5/async-creatable.d.ts +10 -0
- package/dist/types-ts4.5/async.d.ts +9 -0
- package/dist/types-ts4.5/builtins.d.ts +5 -0
- package/dist/types-ts4.5/components/containers.d.ts +50 -0
- package/dist/types-ts4.5/components/control.d.ts +33 -0
- package/dist/types-ts4.5/components/group.d.ts +53 -0
- package/dist/types-ts4.5/components/index.d.ts +73 -0
- package/dist/types-ts4.5/components/indicators.d.ts +72 -0
- package/dist/types-ts4.5/components/input.d.ts +33 -0
- package/dist/types-ts4.5/components/internal/a11y-text.d.ts +8 -0
- package/dist/types-ts4.5/components/internal/dummy-input.d.ts +9 -0
- package/dist/types-ts4.5/components/internal/index.d.ts +4 -0
- package/dist/types-ts4.5/components/internal/required-input.d.ts +10 -0
- package/dist/types-ts4.5/components/internal/scroll-manager.d.ts +17 -0
- package/dist/types-ts4.5/components/internal/use-scroll-capture.d.ts +12 -0
- package/dist/types-ts4.5/components/internal/use-scroll-lock.d.ts +9 -0
- package/dist/types-ts4.5/components/live-region.d.ts +24 -0
- package/dist/types-ts4.5/components/menu.d.ts +130 -0
- package/dist/types-ts4.5/components/multi-value.d.ts +47 -0
- package/dist/types-ts4.5/components/option.d.ts +49 -0
- package/dist/types-ts4.5/components/placeholder.d.ts +22 -0
- package/dist/types-ts4.5/components/single-value.d.ts +28 -0
- package/dist/types-ts4.5/creatable.d.ts +10 -0
- package/dist/types-ts4.5/diacritics.d.ts +1 -0
- package/dist/types-ts4.5/filters.d.ts +15 -0
- package/dist/types-ts4.5/index.d.ts +28 -0
- package/dist/types-ts4.5/nonce-provider.d.ts +8 -0
- package/dist/types-ts4.5/select.d.ts +616 -0
- package/dist/types-ts4.5/state-manager.d.ts +17 -0
- package/dist/types-ts4.5/styles.d.ts +68 -0
- package/dist/types-ts4.5/theme.d.ts +27 -0
- package/dist/types-ts4.5/types.d.ts +134 -0
- package/dist/types-ts4.5/use-async.d.ts +31 -0
- package/dist/types-ts4.5/use-creatable.d.ts +46 -0
- package/dist/types-ts4.5/use-state-manager.d.ts +15 -0
- package/dist/types-ts4.5/utils.d.ts +44 -0
- package/package.json +83 -0
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.NoOptionsMessage = exports.MenuPortal = exports.MenuPlacer = exports.MenuList = exports.LoadingMessage = void 0;
|
|
8
|
+
exports.getMenuPlacement = getMenuPlacement;
|
|
9
|
+
exports.noOptionsMessageCSS = exports.menuPortalCSS = exports.menuListCSS = exports.menuCSS = exports.loadingMessageCSS = void 0;
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
var _react2 = require("@emotion/react");
|
|
16
|
+
var _dom = require("@floating-ui/dom");
|
|
17
|
+
var _reactDom = require("react-dom");
|
|
18
|
+
var _useIsomorphicLayoutEffect = _interopRequireDefault(require("use-isomorphic-layout-effect"));
|
|
19
|
+
var _utils = require("../utils");
|
|
20
|
+
var _excluded = ["children", "innerProps"],
|
|
21
|
+
_excluded2 = ["children", "innerProps"];
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
|
24
|
+
* @jsxRuntime classic
|
|
25
|
+
* @jsx jsx
|
|
26
|
+
*/
|
|
27
|
+
// ==============================
|
|
28
|
+
// Menu
|
|
29
|
+
// ==============================
|
|
30
|
+
|
|
31
|
+
// Get Menu Placement
|
|
32
|
+
// ------------------------------
|
|
33
|
+
|
|
34
|
+
function getMenuPlacement(_ref) {
|
|
35
|
+
var preferredMaxHeight = _ref.maxHeight,
|
|
36
|
+
menuEl = _ref.menuEl,
|
|
37
|
+
minHeight = _ref.minHeight,
|
|
38
|
+
preferredPlacement = _ref.placement,
|
|
39
|
+
shouldScroll = _ref.shouldScroll,
|
|
40
|
+
isFixedPosition = _ref.isFixedPosition,
|
|
41
|
+
controlHeight = _ref.controlHeight;
|
|
42
|
+
var scrollParent = (0, _utils.getScrollParent)(menuEl);
|
|
43
|
+
var defaultState = {
|
|
44
|
+
placement: 'bottom',
|
|
45
|
+
maxHeight: preferredMaxHeight
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// something went wrong, return default state
|
|
49
|
+
if (!menuEl || !menuEl.offsetParent) {
|
|
50
|
+
return defaultState;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// we can't trust `scrollParent.scrollHeight` --> it may increase when
|
|
54
|
+
// the menu is rendered
|
|
55
|
+
var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
|
|
56
|
+
scrollHeight = _scrollParent$getBoun.height;
|
|
57
|
+
var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),
|
|
58
|
+
menuBottom = _menuEl$getBoundingCl.bottom,
|
|
59
|
+
menuHeight = _menuEl$getBoundingCl.height,
|
|
60
|
+
menuTop = _menuEl$getBoundingCl.top;
|
|
61
|
+
var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),
|
|
62
|
+
containerTop = _menuEl$offsetParent$.top;
|
|
63
|
+
var viewHeight = isFixedPosition ? window.innerHeight : (0, _utils.normalizedHeight)(scrollParent);
|
|
64
|
+
var scrollTop = (0, _utils.getScrollTop)(scrollParent);
|
|
65
|
+
var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
|
|
66
|
+
var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
|
|
67
|
+
var viewSpaceAbove = containerTop - marginTop;
|
|
68
|
+
var viewSpaceBelow = viewHeight - menuTop;
|
|
69
|
+
var scrollSpaceAbove = viewSpaceAbove + scrollTop;
|
|
70
|
+
var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;
|
|
71
|
+
var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
|
|
72
|
+
var scrollUp = scrollTop + menuTop - marginTop;
|
|
73
|
+
var scrollDuration = 160;
|
|
74
|
+
switch (preferredPlacement) {
|
|
75
|
+
case 'auto':
|
|
76
|
+
case 'bottom':
|
|
77
|
+
// 1: the menu will fit, do nothing
|
|
78
|
+
if (viewSpaceBelow >= menuHeight) {
|
|
79
|
+
return {
|
|
80
|
+
placement: 'bottom',
|
|
81
|
+
maxHeight: preferredMaxHeight
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// 2: the menu will fit, if scrolled
|
|
86
|
+
if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {
|
|
87
|
+
if (shouldScroll) {
|
|
88
|
+
(0, _utils.animatedScrollTo)(scrollParent, scrollDown, scrollDuration);
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
placement: 'bottom',
|
|
92
|
+
maxHeight: preferredMaxHeight
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 3: the menu will fit, if constrained
|
|
97
|
+
if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {
|
|
98
|
+
if (shouldScroll) {
|
|
99
|
+
(0, _utils.animatedScrollTo)(scrollParent, scrollDown, scrollDuration);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// we want to provide as much of the menu as possible to the user,
|
|
103
|
+
// so give them whatever is available below rather than the minHeight.
|
|
104
|
+
var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;
|
|
105
|
+
return {
|
|
106
|
+
placement: 'bottom',
|
|
107
|
+
maxHeight: constrainedHeight
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// 4. Forked beviour when there isn't enough space below
|
|
112
|
+
|
|
113
|
+
// AUTO: flip the menu, render above
|
|
114
|
+
if (preferredPlacement === 'auto' || isFixedPosition) {
|
|
115
|
+
// may need to be constrained after flipping
|
|
116
|
+
var _constrainedHeight = preferredMaxHeight;
|
|
117
|
+
var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;
|
|
118
|
+
if (spaceAbove >= minHeight) {
|
|
119
|
+
_constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
placement: 'top',
|
|
123
|
+
maxHeight: _constrainedHeight
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// BOTTOM: allow browser to increase scrollable area and immediately set scroll
|
|
128
|
+
if (preferredPlacement === 'bottom') {
|
|
129
|
+
if (shouldScroll) {
|
|
130
|
+
(0, _utils.scrollTo)(scrollParent, scrollDown);
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
placement: 'bottom',
|
|
134
|
+
maxHeight: preferredMaxHeight
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
case 'top':
|
|
139
|
+
// 1: the menu will fit, do nothing
|
|
140
|
+
if (viewSpaceAbove >= menuHeight) {
|
|
141
|
+
return {
|
|
142
|
+
placement: 'top',
|
|
143
|
+
maxHeight: preferredMaxHeight
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// 2: the menu will fit, if scrolled
|
|
148
|
+
if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {
|
|
149
|
+
if (shouldScroll) {
|
|
150
|
+
(0, _utils.animatedScrollTo)(scrollParent, scrollUp, scrollDuration);
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
placement: 'top',
|
|
154
|
+
maxHeight: preferredMaxHeight
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// 3: the menu will fit, if constrained
|
|
159
|
+
if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
|
|
160
|
+
var _constrainedHeight2 = preferredMaxHeight;
|
|
161
|
+
|
|
162
|
+
// we want to provide as much of the menu as possible to the user,
|
|
163
|
+
// so give them whatever is available below rather than the minHeight.
|
|
164
|
+
if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
|
|
165
|
+
_constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;
|
|
166
|
+
}
|
|
167
|
+
if (shouldScroll) {
|
|
168
|
+
(0, _utils.animatedScrollTo)(scrollParent, scrollUp, scrollDuration);
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
placement: 'top',
|
|
172
|
+
maxHeight: _constrainedHeight2
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// 4. not enough space, the browser WILL NOT increase scrollable area when
|
|
177
|
+
// absolutely positioned element rendered above the viewport (only below).
|
|
178
|
+
// Flip the menu, render below
|
|
179
|
+
return {
|
|
180
|
+
placement: 'bottom',
|
|
181
|
+
maxHeight: preferredMaxHeight
|
|
182
|
+
};
|
|
183
|
+
default:
|
|
184
|
+
throw new Error("Invalid placement provided \"".concat(preferredPlacement, "\"."));
|
|
185
|
+
}
|
|
186
|
+
return defaultState;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// Menu Component
|
|
190
|
+
// ------------------------------
|
|
191
|
+
|
|
192
|
+
function alignToControl(placement) {
|
|
193
|
+
var placementToCSSProp = {
|
|
194
|
+
bottom: 'top',
|
|
195
|
+
top: 'bottom'
|
|
196
|
+
};
|
|
197
|
+
return placement ? placementToCSSProp[placement] : 'bottom';
|
|
198
|
+
}
|
|
199
|
+
var coercePlacement = function coercePlacement(p) {
|
|
200
|
+
return p === 'auto' ? 'bottom' : p;
|
|
201
|
+
};
|
|
202
|
+
var menuCSS = exports.menuCSS = function menuCSS(_ref2, unstyled) {
|
|
203
|
+
var _objectSpread2;
|
|
204
|
+
var placement = _ref2.placement,
|
|
205
|
+
_ref2$theme = _ref2.theme,
|
|
206
|
+
borderRadius = _ref2$theme.borderRadius,
|
|
207
|
+
spacing = _ref2$theme.spacing,
|
|
208
|
+
colors = _ref2$theme.colors;
|
|
209
|
+
return _objectSpread((_objectSpread2 = {
|
|
210
|
+
label: 'menu'
|
|
211
|
+
}, (0, _defineProperty2.default)(_objectSpread2, alignToControl(placement), '100%'), (0, _defineProperty2.default)(_objectSpread2, "position", 'absolute'), (0, _defineProperty2.default)(_objectSpread2, "width", '100%'), (0, _defineProperty2.default)(_objectSpread2, "zIndex", 1), _objectSpread2), unstyled ? {} : {
|
|
212
|
+
backgroundColor: colors.neutral0,
|
|
213
|
+
borderRadius: borderRadius,
|
|
214
|
+
boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',
|
|
215
|
+
marginBottom: spacing.menuGutter,
|
|
216
|
+
marginTop: spacing.menuGutter
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
var PortalPlacementContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
220
|
+
|
|
221
|
+
// NOTE: internal only
|
|
222
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
223
|
+
var MenuPlacer = exports.MenuPlacer = function MenuPlacer(props) {
|
|
224
|
+
var children = props.children,
|
|
225
|
+
minMenuHeight = props.minMenuHeight,
|
|
226
|
+
maxMenuHeight = props.maxMenuHeight,
|
|
227
|
+
menuPlacement = props.menuPlacement,
|
|
228
|
+
menuPosition = props.menuPosition,
|
|
229
|
+
menuShouldScrollIntoView = props.menuShouldScrollIntoView,
|
|
230
|
+
theme = props.theme;
|
|
231
|
+
var _ref3 = (0, _react.useContext)(PortalPlacementContext) || {},
|
|
232
|
+
setPortalPlacement = _ref3.setPortalPlacement;
|
|
233
|
+
var ref = (0, _react.useRef)(null);
|
|
234
|
+
var _useState = (0, _react.useState)(maxMenuHeight),
|
|
235
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
236
|
+
maxHeight = _useState2[0],
|
|
237
|
+
setMaxHeight = _useState2[1];
|
|
238
|
+
var _useState3 = (0, _react.useState)(null),
|
|
239
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
240
|
+
placement = _useState4[0],
|
|
241
|
+
setPlacement = _useState4[1];
|
|
242
|
+
var controlHeight = theme.spacing.controlHeight;
|
|
243
|
+
(0, _useIsomorphicLayoutEffect.default)(function () {
|
|
244
|
+
var menuEl = ref.current;
|
|
245
|
+
if (!menuEl) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// DO NOT scroll if position is fixed
|
|
250
|
+
var isFixedPosition = menuPosition === 'fixed';
|
|
251
|
+
var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;
|
|
252
|
+
var state = getMenuPlacement({
|
|
253
|
+
maxHeight: maxMenuHeight,
|
|
254
|
+
menuEl: menuEl,
|
|
255
|
+
minHeight: minMenuHeight,
|
|
256
|
+
placement: menuPlacement,
|
|
257
|
+
shouldScroll: shouldScroll,
|
|
258
|
+
isFixedPosition: isFixedPosition,
|
|
259
|
+
controlHeight: controlHeight
|
|
260
|
+
});
|
|
261
|
+
setMaxHeight(state.maxHeight);
|
|
262
|
+
setPlacement(state.placement);
|
|
263
|
+
setPortalPlacement === null || setPortalPlacement === void 0 || setPortalPlacement(state.placement);
|
|
264
|
+
}, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);
|
|
265
|
+
return children({
|
|
266
|
+
ref: ref,
|
|
267
|
+
placerProps: _objectSpread(_objectSpread({}, props), {}, {
|
|
268
|
+
placement: placement || coercePlacement(menuPlacement),
|
|
269
|
+
maxHeight: maxHeight
|
|
270
|
+
})
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
var Menu = function Menu(props) {
|
|
274
|
+
var children = props.children,
|
|
275
|
+
innerRef = props.innerRef,
|
|
276
|
+
innerProps = props.innerProps;
|
|
277
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'menu', {
|
|
278
|
+
menu: true
|
|
279
|
+
}), {
|
|
280
|
+
ref: innerRef
|
|
281
|
+
}, innerProps), children);
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
285
|
+
var _default = exports.default = Menu; // ==============================
|
|
286
|
+
// Menu List
|
|
287
|
+
// ==============================
|
|
288
|
+
var menuListCSS = exports.menuListCSS = function menuListCSS(_ref4, unstyled) {
|
|
289
|
+
var maxHeight = _ref4.maxHeight,
|
|
290
|
+
baseUnit = _ref4.theme.spacing.baseUnit;
|
|
291
|
+
return _objectSpread({
|
|
292
|
+
maxHeight: maxHeight,
|
|
293
|
+
overflowY: 'auto',
|
|
294
|
+
position: 'relative',
|
|
295
|
+
// required for offset[Height, Top] > keyboard scroll
|
|
296
|
+
WebkitOverflowScrolling: 'touch'
|
|
297
|
+
}, unstyled ? {} : {
|
|
298
|
+
paddingBottom: baseUnit,
|
|
299
|
+
paddingTop: baseUnit
|
|
300
|
+
});
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
304
|
+
var MenuList = exports.MenuList = function MenuList(props) {
|
|
305
|
+
var children = props.children,
|
|
306
|
+
innerProps = props.innerProps,
|
|
307
|
+
innerRef = props.innerRef,
|
|
308
|
+
isMulti = props.isMulti;
|
|
309
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'menuList', {
|
|
310
|
+
'menu-list': true,
|
|
311
|
+
'menu-list--is-multi': isMulti
|
|
312
|
+
}), {
|
|
313
|
+
//@ts-ignore
|
|
314
|
+
ref: innerRef
|
|
315
|
+
}, innerProps), children);
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
// ==============================
|
|
319
|
+
// Menu Notices
|
|
320
|
+
// ==============================
|
|
321
|
+
|
|
322
|
+
var noticeCSS = function noticeCSS(_ref5, unstyled) {
|
|
323
|
+
var _ref5$theme = _ref5.theme,
|
|
324
|
+
baseUnit = _ref5$theme.spacing.baseUnit,
|
|
325
|
+
colors = _ref5$theme.colors;
|
|
326
|
+
return _objectSpread({
|
|
327
|
+
textAlign: 'center'
|
|
328
|
+
}, unstyled ? {} : {
|
|
329
|
+
color: colors.neutral40,
|
|
330
|
+
padding: "".concat(baseUnit * 2, "px ").concat(baseUnit * 3, "px")
|
|
331
|
+
});
|
|
332
|
+
};
|
|
333
|
+
var noOptionsMessageCSS = exports.noOptionsMessageCSS = noticeCSS;
|
|
334
|
+
var loadingMessageCSS = exports.loadingMessageCSS = noticeCSS;
|
|
335
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
336
|
+
var NoOptionsMessage = exports.NoOptionsMessage = function NoOptionsMessage(_ref6) {
|
|
337
|
+
var _ref6$children = _ref6.children,
|
|
338
|
+
children = _ref6$children === void 0 ? 'No options' : _ref6$children,
|
|
339
|
+
innerProps = _ref6.innerProps,
|
|
340
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded);
|
|
341
|
+
return (
|
|
342
|
+
//@ts-ignore
|
|
343
|
+
(0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
|
|
344
|
+
children: children,
|
|
345
|
+
innerProps: innerProps
|
|
346
|
+
}), 'noOptionsMessage', {
|
|
347
|
+
'menu-notice': true,
|
|
348
|
+
'menu-notice--no-options': true
|
|
349
|
+
}), {
|
|
350
|
+
// eslint-disable-next-line jsx-a11y/role-has-required-aria-props
|
|
351
|
+
role: "option"
|
|
352
|
+
}, innerProps), children)
|
|
353
|
+
);
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
357
|
+
var LoadingMessage = exports.LoadingMessage = function LoadingMessage(_ref7) {
|
|
358
|
+
var _ref7$children = _ref7.children,
|
|
359
|
+
children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,
|
|
360
|
+
innerProps = _ref7.innerProps,
|
|
361
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref7, _excluded2);
|
|
362
|
+
return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
|
|
363
|
+
children: children,
|
|
364
|
+
innerProps: innerProps
|
|
365
|
+
}), 'loadingMessage', {
|
|
366
|
+
'menu-notice': true,
|
|
367
|
+
'menu-notice--loading': true
|
|
368
|
+
}), innerProps), children);
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
// ==============================
|
|
372
|
+
// Menu Portal
|
|
373
|
+
// ==============================
|
|
374
|
+
|
|
375
|
+
var menuPortalCSS = exports.menuPortalCSS = function menuPortalCSS(_ref8) {
|
|
376
|
+
var rect = _ref8.rect,
|
|
377
|
+
offset = _ref8.offset,
|
|
378
|
+
position = _ref8.position;
|
|
379
|
+
return {
|
|
380
|
+
left: rect.left,
|
|
381
|
+
position: position,
|
|
382
|
+
top: offset,
|
|
383
|
+
width: rect.width,
|
|
384
|
+
zIndex: 1
|
|
385
|
+
};
|
|
386
|
+
};
|
|
387
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
388
|
+
var MenuPortal = exports.MenuPortal = function MenuPortal(props) {
|
|
389
|
+
var appendTo = props.appendTo,
|
|
390
|
+
children = props.children,
|
|
391
|
+
controlElement = props.controlElement,
|
|
392
|
+
innerProps = props.innerProps,
|
|
393
|
+
menuPlacement = props.menuPlacement,
|
|
394
|
+
menuPosition = props.menuPosition;
|
|
395
|
+
var menuPortalRef = (0, _react.useRef)(null);
|
|
396
|
+
var cleanupRef = (0, _react.useRef)(null);
|
|
397
|
+
var _useState5 = (0, _react.useState)(coercePlacement(menuPlacement)),
|
|
398
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
399
|
+
placement = _useState6[0],
|
|
400
|
+
setPortalPlacement = _useState6[1];
|
|
401
|
+
var portalPlacementContext = (0, _react.useMemo)(function () {
|
|
402
|
+
return {
|
|
403
|
+
setPortalPlacement: setPortalPlacement
|
|
404
|
+
};
|
|
405
|
+
}, []);
|
|
406
|
+
var _useState7 = (0, _react.useState)(null),
|
|
407
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
408
|
+
computedPosition = _useState8[0],
|
|
409
|
+
setComputedPosition = _useState8[1];
|
|
410
|
+
var updateComputedPosition = (0, _react.useCallback)(function () {
|
|
411
|
+
if (!controlElement) {
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
var rect = (0, _utils.getBoundingClientObj)(controlElement);
|
|
415
|
+
var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
|
|
416
|
+
var offset = rect[placement] + scrollDistance;
|
|
417
|
+
if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {
|
|
418
|
+
setComputedPosition({
|
|
419
|
+
offset: offset,
|
|
420
|
+
rect: rect
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
}, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);
|
|
424
|
+
(0, _useIsomorphicLayoutEffect.default)(function () {
|
|
425
|
+
updateComputedPosition();
|
|
426
|
+
}, [updateComputedPosition]);
|
|
427
|
+
var runAutoUpdate = (0, _react.useCallback)(function () {
|
|
428
|
+
if (typeof cleanupRef.current === 'function') {
|
|
429
|
+
cleanupRef.current();
|
|
430
|
+
cleanupRef.current = null;
|
|
431
|
+
}
|
|
432
|
+
if (controlElement && menuPortalRef.current) {
|
|
433
|
+
cleanupRef.current = (0, _dom.autoUpdate)(controlElement, menuPortalRef.current, updateComputedPosition, {
|
|
434
|
+
elementResize: 'ResizeObserver' in window
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
}, [controlElement, updateComputedPosition]);
|
|
438
|
+
(0, _useIsomorphicLayoutEffect.default)(function () {
|
|
439
|
+
runAutoUpdate();
|
|
440
|
+
}, [runAutoUpdate]);
|
|
441
|
+
var setMenuPortalElement = (0, _react.useCallback)(function (menuPortalElement) {
|
|
442
|
+
menuPortalRef.current = menuPortalElement;
|
|
443
|
+
runAutoUpdate();
|
|
444
|
+
}, [runAutoUpdate]);
|
|
445
|
+
|
|
446
|
+
// bail early if required elements aren't present
|
|
447
|
+
if (!appendTo && menuPosition !== 'fixed' || !computedPosition) {
|
|
448
|
+
return null;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
// same wrapper element whether fixed or portalled
|
|
452
|
+
var menuWrapper = (0, _react2.jsx)("div", (0, _extends2.default)({
|
|
453
|
+
ref: setMenuPortalElement
|
|
454
|
+
}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, props), {}, {
|
|
455
|
+
offset: computedPosition.offset,
|
|
456
|
+
position: menuPosition,
|
|
457
|
+
rect: computedPosition.rect
|
|
458
|
+
}), 'menuPortal', {
|
|
459
|
+
'menu-portal': true
|
|
460
|
+
}), innerProps), children);
|
|
461
|
+
return (0, _react2.jsx)(PortalPlacementContext.Provider, {
|
|
462
|
+
value: portalPlacementContext
|
|
463
|
+
}, appendTo ? /*#__PURE__*/(0, _reactDom.createPortal)(menuWrapper, appendTo) : menuWrapper);
|
|
464
|
+
};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.MultiValueLabel = exports.MultiValueGeneric = exports.MultiValueContainer = void 0;
|
|
8
|
+
exports.MultiValueRemove = MultiValueRemove;
|
|
9
|
+
exports.multiValueRemoveCSS = exports.multiValueLabelCSS = exports.multiValueCSS = exports.default = void 0;
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
var _utils = require("../utils");
|
|
14
|
+
var _indicators = require("./indicators");
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
|
17
|
+
* @jsxRuntime classic
|
|
18
|
+
* @jsx jsx
|
|
19
|
+
*/
|
|
20
|
+
var multiValueCSS = exports.multiValueCSS = function multiValueCSS(_ref, unstyled) {
|
|
21
|
+
var _ref$theme = _ref.theme,
|
|
22
|
+
spacing = _ref$theme.spacing,
|
|
23
|
+
borderRadius = _ref$theme.borderRadius,
|
|
24
|
+
colors = _ref$theme.colors;
|
|
25
|
+
return _objectSpread({
|
|
26
|
+
label: 'multiValue',
|
|
27
|
+
display: 'flex',
|
|
28
|
+
minWidth: 0
|
|
29
|
+
}, unstyled ? {} : {
|
|
30
|
+
backgroundColor: colors.neutral10,
|
|
31
|
+
borderRadius: borderRadius / 2,
|
|
32
|
+
margin: spacing.baseUnit / 2
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var multiValueLabelCSS = exports.multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {
|
|
36
|
+
var _ref2$theme = _ref2.theme,
|
|
37
|
+
borderRadius = _ref2$theme.borderRadius,
|
|
38
|
+
colors = _ref2$theme.colors,
|
|
39
|
+
cropWithEllipsis = _ref2.cropWithEllipsis;
|
|
40
|
+
return _objectSpread({
|
|
41
|
+
overflow: 'hidden',
|
|
42
|
+
textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,
|
|
43
|
+
whiteSpace: 'nowrap'
|
|
44
|
+
}, unstyled ? {} : {
|
|
45
|
+
borderRadius: borderRadius / 2,
|
|
46
|
+
color: colors.neutral80,
|
|
47
|
+
fontSize: '85%',
|
|
48
|
+
padding: 3,
|
|
49
|
+
paddingLeft: 6
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
var multiValueRemoveCSS = exports.multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {
|
|
53
|
+
var _ref3$theme = _ref3.theme,
|
|
54
|
+
spacing = _ref3$theme.spacing,
|
|
55
|
+
borderRadius = _ref3$theme.borderRadius,
|
|
56
|
+
colors = _ref3$theme.colors,
|
|
57
|
+
isFocused = _ref3.isFocused;
|
|
58
|
+
return _objectSpread({
|
|
59
|
+
alignItems: 'center',
|
|
60
|
+
display: 'flex'
|
|
61
|
+
}, unstyled ? {} : {
|
|
62
|
+
borderRadius: borderRadius / 2,
|
|
63
|
+
backgroundColor: isFocused ? colors.dangerLight : undefined,
|
|
64
|
+
paddingLeft: spacing.baseUnit,
|
|
65
|
+
paddingRight: spacing.baseUnit,
|
|
66
|
+
':hover': {
|
|
67
|
+
backgroundColor: colors.dangerLight,
|
|
68
|
+
color: colors.danger
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
73
|
+
var MultiValueGeneric = exports.MultiValueGeneric = function MultiValueGeneric(_ref4) {
|
|
74
|
+
var children = _ref4.children,
|
|
75
|
+
innerProps = _ref4.innerProps;
|
|
76
|
+
return (0, _react.jsx)("div", innerProps, children);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
80
|
+
var MultiValueContainer = exports.MultiValueContainer = MultiValueGeneric;
|
|
81
|
+
|
|
82
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
83
|
+
var MultiValueLabel = exports.MultiValueLabel = MultiValueGeneric;
|
|
84
|
+
function MultiValueRemove(_ref5) {
|
|
85
|
+
var children = _ref5.children,
|
|
86
|
+
innerProps = _ref5.innerProps;
|
|
87
|
+
return (0, _react.jsx)("div", (0, _extends2.default)({
|
|
88
|
+
role: "button"
|
|
89
|
+
}, innerProps), children || (0, _react.jsx)(_indicators.CrossIcon, {
|
|
90
|
+
size: 14
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
var MultiValue = function MultiValue(props) {
|
|
94
|
+
var children = props.children,
|
|
95
|
+
components = props.components,
|
|
96
|
+
data = props.data,
|
|
97
|
+
innerProps = props.innerProps,
|
|
98
|
+
isDisabled = props.isDisabled,
|
|
99
|
+
removeProps = props.removeProps,
|
|
100
|
+
selectProps = props.selectProps;
|
|
101
|
+
var Container = components.Container,
|
|
102
|
+
Label = components.Label,
|
|
103
|
+
Remove = components.Remove;
|
|
104
|
+
return (0, _react.jsx)(Container, {
|
|
105
|
+
data: data,
|
|
106
|
+
innerProps: _objectSpread(_objectSpread({}, (0, _utils.getStyleProps)(props, 'multiValue', {
|
|
107
|
+
'multi-value': true,
|
|
108
|
+
'multi-value--is-disabled': isDisabled
|
|
109
|
+
})), innerProps),
|
|
110
|
+
selectProps: selectProps
|
|
111
|
+
}, (0, _react.jsx)(Label, {
|
|
112
|
+
data: data,
|
|
113
|
+
innerProps: _objectSpread({}, (0, _utils.getStyleProps)(props, 'multiValueLabel', {
|
|
114
|
+
'multi-value__label': true
|
|
115
|
+
})),
|
|
116
|
+
selectProps: selectProps
|
|
117
|
+
}, children), (0, _react.jsx)(Remove, {
|
|
118
|
+
data: data,
|
|
119
|
+
innerProps: _objectSpread(_objectSpread({}, (0, _utils.getStyleProps)(props, 'multiValueRemove', {
|
|
120
|
+
'multi-value__remove': true
|
|
121
|
+
})), {}, {
|
|
122
|
+
'aria-label': "Remove ".concat(children || 'option')
|
|
123
|
+
}, removeProps),
|
|
124
|
+
selectProps: selectProps
|
|
125
|
+
}));
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
129
|
+
var _default = exports.default = MultiValue;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.optionCSS = exports.default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _react = require("@emotion/react");
|
|
11
|
+
var _utils = require("../utils");
|
|
12
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
|
|
14
|
+
* @jsxRuntime classic
|
|
15
|
+
* @jsx jsx
|
|
16
|
+
*/
|
|
17
|
+
var optionCSS = exports.optionCSS = function optionCSS(_ref, unstyled) {
|
|
18
|
+
var isDisabled = _ref.isDisabled,
|
|
19
|
+
isFocused = _ref.isFocused,
|
|
20
|
+
isSelected = _ref.isSelected,
|
|
21
|
+
_ref$theme = _ref.theme,
|
|
22
|
+
spacing = _ref$theme.spacing,
|
|
23
|
+
colors = _ref$theme.colors;
|
|
24
|
+
return _objectSpread({
|
|
25
|
+
label: 'option',
|
|
26
|
+
cursor: 'default',
|
|
27
|
+
display: 'block',
|
|
28
|
+
fontSize: 'inherit',
|
|
29
|
+
width: '100%',
|
|
30
|
+
userSelect: 'none',
|
|
31
|
+
WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'
|
|
32
|
+
}, unstyled ? {} : {
|
|
33
|
+
backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',
|
|
34
|
+
color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',
|
|
35
|
+
padding: "".concat(spacing.baseUnit * 2, "px ").concat(spacing.baseUnit * 3, "px"),
|
|
36
|
+
// provide some affordance on touch devices
|
|
37
|
+
':active': {
|
|
38
|
+
backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
var Option = function Option(props) {
|
|
43
|
+
var children = props.children,
|
|
44
|
+
isDisabled = props.isDisabled,
|
|
45
|
+
isFocused = props.isFocused,
|
|
46
|
+
isSelected = props.isSelected,
|
|
47
|
+
innerRef = props.innerRef,
|
|
48
|
+
innerProps = props.innerProps;
|
|
49
|
+
return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'option', {
|
|
50
|
+
option: true,
|
|
51
|
+
'option--is-disabled': isDisabled,
|
|
52
|
+
'option--is-focused': isFocused,
|
|
53
|
+
'option--is-selected': isSelected
|
|
54
|
+
}), {
|
|
55
|
+
//@ts-ignore
|
|
56
|
+
ref: innerRef
|
|
57
|
+
// aria-disabled={isDisabled}
|
|
58
|
+
}, innerProps), children);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
62
|
+
var _default = exports.default = Option;
|