@atlaskit/react-select 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/cjs/compiled/components/containers.compiled.css +26 -0
- package/dist/cjs/compiled/components/containers.js +119 -0
- package/dist/cjs/compiled/components/control.compiled.css +51 -0
- package/dist/cjs/compiled/components/control.js +66 -0
- package/dist/cjs/compiled/components/group.compiled.css +12 -0
- package/dist/cjs/compiled/components/group.js +81 -0
- package/dist/cjs/compiled/components/indicators.compiled.css +24 -0
- package/dist/cjs/compiled/components/indicators.js +157 -0
- package/dist/cjs/compiled/components/input.compiled.css +49 -0
- package/dist/cjs/compiled/components/input.js +69 -0
- package/dist/cjs/compiled/components/internal/a11y-text.compiled.css +15 -0
- package/dist/cjs/compiled/components/internal/a11y-text.js +23 -0
- package/dist/cjs/compiled/components/internal/dummy-input.compiled.css +17 -0
- package/dist/cjs/compiled/components/internal/dummy-input.js +30 -0
- package/dist/cjs/compiled/components/internal/required-input.compiled.css +8 -0
- package/dist/cjs/compiled/components/internal/required-input.js +34 -0
- package/dist/cjs/compiled/components/live-region.js +177 -0
- package/dist/cjs/compiled/components/menu.compiled.css +19 -0
- package/dist/cjs/compiled/components/menu.js +491 -0
- package/dist/cjs/compiled/components/multi-value.compiled.css +56 -0
- package/dist/cjs/compiled/components/multi-value.js +199 -0
- package/dist/cjs/compiled/components/option.compiled.css +22 -0
- package/dist/cjs/compiled/components/option.js +57 -0
- package/dist/cjs/compiled/components/placeholder.compiled.css +7 -0
- package/dist/cjs/compiled/components/placeholder.js +45 -0
- package/dist/cjs/compiled/components/single-value.compiled.css +13 -0
- package/dist/cjs/compiled/components/single-value.js +46 -0
- package/dist/cjs/components/containers.js +12 -72
- package/dist/cjs/components/control.js +11 -96
- package/dist/cjs/components/group.js +15 -53
- package/dist/cjs/components/indicators.js +15 -107
- package/dist/cjs/components/input.js +12 -81
- package/dist/cjs/components/internal/a11y-text.js +6 -25
- package/dist/cjs/components/internal/dummy-input.js +8 -36
- package/dist/cjs/components/internal/notify-open-layer-observer.js +1 -0
- package/dist/cjs/components/internal/required-input.js +7 -31
- package/dist/cjs/components/internal/scroll-manager.js +19 -17
- package/dist/cjs/components/live-region.js +6 -164
- package/dist/cjs/components/menu.js +26 -181
- package/dist/cjs/components/multi-value.js +21 -197
- package/dist/cjs/components/option.js +11 -68
- package/dist/cjs/components/placeholder.js +11 -20
- package/dist/cjs/components/single-value.js +11 -26
- package/dist/cjs/emotion/components/containers.js +113 -0
- package/dist/cjs/emotion/components/control.js +112 -0
- package/dist/cjs/emotion/components/group.js +72 -0
- package/dist/cjs/emotion/components/indicators.js +138 -0
- package/dist/cjs/emotion/components/input.js +94 -0
- package/dist/cjs/emotion/components/internal/a11y-text.js +37 -0
- package/dist/cjs/emotion/components/internal/dummy-input.js +45 -0
- package/dist/cjs/emotion/components/internal/required-input.js +45 -0
- package/dist/cjs/emotion/components/live-region.js +182 -0
- package/dist/cjs/emotion/components/menu.js +456 -0
- package/dist/cjs/emotion/components/multi-value.js +224 -0
- package/dist/cjs/emotion/components/option.js +84 -0
- package/dist/cjs/emotion/components/placeholder.js +36 -0
- package/dist/cjs/emotion/components/single-value.js +42 -0
- package/dist/cjs/utils.js +2 -1
- package/dist/es2019/compiled/components/containers.compiled.css +26 -0
- package/dist/es2019/compiled/components/containers.js +115 -0
- package/dist/es2019/compiled/components/control.compiled.css +51 -0
- package/dist/es2019/compiled/components/control.js +58 -0
- package/dist/es2019/compiled/components/group.compiled.css +12 -0
- package/dist/es2019/compiled/components/group.js +72 -0
- package/dist/es2019/compiled/components/indicators.compiled.css +24 -0
- package/dist/es2019/compiled/components/indicators.js +144 -0
- package/dist/es2019/compiled/components/input.compiled.css +49 -0
- package/dist/es2019/compiled/components/input.js +59 -0
- package/dist/es2019/compiled/components/internal/a11y-text.compiled.css +15 -0
- package/dist/es2019/compiled/components/internal/a11y-text.js +11 -0
- package/dist/es2019/compiled/components/internal/dummy-input.compiled.css +17 -0
- package/dist/es2019/compiled/components/internal/dummy-input.js +19 -0
- package/dist/es2019/compiled/components/internal/required-input.compiled.css +8 -0
- package/dist/es2019/compiled/components/internal/required-input.js +23 -0
- package/dist/es2019/compiled/components/live-region.js +171 -0
- package/dist/es2019/compiled/components/menu.compiled.css +19 -0
- package/dist/es2019/compiled/components/menu.js +478 -0
- package/dist/es2019/compiled/components/multi-value.compiled.css +56 -0
- package/dist/es2019/compiled/components/multi-value.js +190 -0
- package/dist/es2019/compiled/components/option.compiled.css +22 -0
- package/dist/es2019/compiled/components/option.js +48 -0
- package/dist/es2019/compiled/components/placeholder.compiled.css +7 -0
- package/dist/es2019/compiled/components/placeholder.js +36 -0
- package/dist/es2019/compiled/components/single-value.compiled.css +13 -0
- package/dist/es2019/compiled/components/single-value.js +37 -0
- package/dist/es2019/components/containers.js +10 -87
- package/dist/es2019/components/control.js +8 -103
- package/dist/es2019/components/group.js +9 -54
- package/dist/es2019/components/indicators.js +11 -113
- package/dist/es2019/components/input.js +7 -83
- package/dist/es2019/components/internal/a11y-text.js +6 -26
- package/dist/es2019/components/internal/dummy-input.js +7 -36
- package/dist/es2019/components/internal/notify-open-layer-observer.js +1 -0
- package/dist/es2019/components/internal/required-input.js +6 -32
- package/dist/es2019/components/internal/scroll-manager.js +16 -16
- package/dist/es2019/components/live-region.js +5 -168
- package/dist/es2019/components/menu.js +14 -192
- package/dist/es2019/components/multi-value.js +12 -216
- package/dist/es2019/components/option.js +7 -75
- package/dist/es2019/components/placeholder.js +7 -25
- package/dist/es2019/components/single-value.js +7 -31
- package/dist/es2019/emotion/components/containers.js +110 -0
- package/dist/es2019/emotion/components/control.js +108 -0
- package/dist/es2019/emotion/components/group.js +60 -0
- package/dist/es2019/emotion/components/indicators.js +129 -0
- package/dist/es2019/emotion/components/input.js +87 -0
- package/dist/es2019/emotion/components/internal/a11y-text.js +28 -0
- package/dist/es2019/emotion/components/internal/dummy-input.js +38 -0
- package/dist/es2019/emotion/components/internal/required-input.js +36 -0
- package/dist/es2019/emotion/components/live-region.js +180 -0
- package/dist/es2019/emotion/components/menu.js +452 -0
- package/dist/es2019/emotion/components/multi-value.js +228 -0
- package/dist/es2019/emotion/components/option.js +79 -0
- package/dist/es2019/emotion/components/placeholder.js +29 -0
- package/dist/es2019/emotion/components/single-value.js +35 -0
- package/dist/es2019/utils.js +1 -0
- package/dist/esm/compiled/components/containers.compiled.css +26 -0
- package/dist/esm/compiled/components/containers.js +110 -0
- package/dist/esm/compiled/components/control.compiled.css +51 -0
- package/dist/esm/compiled/components/control.js +57 -0
- package/dist/esm/compiled/components/group.compiled.css +12 -0
- package/dist/esm/compiled/components/group.js +71 -0
- package/dist/esm/compiled/components/indicators.compiled.css +24 -0
- package/dist/esm/compiled/components/indicators.js +148 -0
- package/dist/esm/compiled/components/input.compiled.css +49 -0
- package/dist/esm/compiled/components/input.js +59 -0
- package/dist/esm/compiled/components/internal/a11y-text.compiled.css +15 -0
- package/dist/esm/compiled/components/internal/a11y-text.js +13 -0
- package/dist/esm/compiled/components/internal/dummy-input.compiled.css +17 -0
- package/dist/esm/compiled/components/internal/dummy-input.js +20 -0
- package/dist/esm/compiled/components/internal/required-input.compiled.css +8 -0
- package/dist/esm/compiled/components/internal/required-input.js +24 -0
- package/dist/esm/compiled/components/live-region.js +168 -0
- package/dist/esm/compiled/components/menu.compiled.css +19 -0
- package/dist/esm/compiled/components/menu.js +485 -0
- package/dist/esm/compiled/components/multi-value.compiled.css +56 -0
- package/dist/esm/compiled/components/multi-value.js +187 -0
- package/dist/esm/compiled/components/option.compiled.css +22 -0
- package/dist/esm/compiled/components/option.js +47 -0
- package/dist/esm/compiled/components/placeholder.compiled.css +7 -0
- package/dist/esm/compiled/components/placeholder.js +35 -0
- package/dist/esm/compiled/components/single-value.compiled.css +13 -0
- package/dist/esm/compiled/components/single-value.js +36 -0
- package/dist/esm/components/containers.js +12 -73
- package/dist/esm/components/control.js +8 -97
- package/dist/esm/components/group.js +11 -54
- package/dist/esm/components/indicators.js +15 -109
- package/dist/esm/components/input.js +8 -83
- package/dist/esm/components/internal/a11y-text.js +6 -26
- package/dist/esm/components/internal/dummy-input.js +7 -37
- package/dist/esm/components/internal/notify-open-layer-observer.js +1 -0
- package/dist/esm/components/internal/required-input.js +7 -32
- package/dist/esm/components/internal/scroll-manager.js +16 -16
- package/dist/esm/components/live-region.js +5 -163
- package/dist/esm/components/menu.js +24 -182
- package/dist/esm/components/multi-value.js +17 -199
- package/dist/esm/components/option.js +8 -69
- package/dist/esm/components/placeholder.js +8 -21
- package/dist/esm/components/single-value.js +8 -27
- package/dist/esm/emotion/components/containers.js +106 -0
- package/dist/esm/emotion/components/control.js +104 -0
- package/dist/esm/emotion/components/group.js +66 -0
- package/dist/esm/emotion/components/indicators.js +133 -0
- package/dist/esm/emotion/components/input.js +90 -0
- package/dist/esm/emotion/components/internal/a11y-text.js +30 -0
- package/dist/esm/emotion/components/internal/dummy-input.js +39 -0
- package/dist/esm/emotion/components/internal/required-input.js +37 -0
- package/dist/esm/emotion/components/live-region.js +177 -0
- package/dist/esm/emotion/components/menu.js +456 -0
- package/dist/esm/emotion/components/multi-value.js +218 -0
- package/dist/esm/emotion/components/option.js +76 -0
- package/dist/esm/emotion/components/placeholder.js +28 -0
- package/dist/esm/emotion/components/single-value.js +34 -0
- package/dist/esm/utils.js +2 -1
- package/dist/types/compiled/components/containers.d.ts +53 -0
- package/dist/types/compiled/components/control.d.ts +41 -0
- package/dist/types/compiled/components/group.d.ts +54 -0
- package/dist/types/compiled/components/indicators.d.ts +72 -0
- package/dist/types/compiled/components/input.d.ts +36 -0
- package/dist/types/compiled/components/internal/a11y-text.d.ts +3 -0
- package/dist/types/compiled/components/internal/dummy-input.d.ts +8 -0
- package/dist/types/compiled/components/internal/required-input.d.ts +10 -0
- package/dist/types/compiled/components/live-region.d.ts +19 -0
- package/dist/types/compiled/components/menu.d.ts +115 -0
- package/dist/types/compiled/components/multi-value.d.ts +57 -0
- package/dist/types/compiled/components/option.d.ts +48 -0
- package/dist/types/compiled/components/placeholder.d.ts +21 -0
- package/dist/types/compiled/components/single-value.d.ts +27 -0
- package/dist/types/components/containers.d.ts +6 -11
- package/dist/types/components/control.d.ts +4 -9
- package/dist/types/components/group.d.ts +8 -10
- package/dist/types/components/index.d.ts +21 -21
- package/dist/types/components/indicators.d.ts +7 -12
- package/dist/types/components/input.d.ts +3 -8
- package/dist/types/components/internal/a11y-text.d.ts +2 -7
- package/dist/types/components/internal/dummy-input.d.ts +3 -8
- package/dist/types/components/internal/required-input.d.ts +0 -4
- package/dist/types/components/internal/scroll-manager.d.ts +2 -7
- package/dist/types/components/live-region.d.ts +2 -8
- package/dist/types/components/menu.d.ts +10 -15
- package/dist/types/components/multi-value.d.ts +19 -13
- package/dist/types/components/option.d.ts +3 -8
- package/dist/types/components/placeholder.d.ts +3 -8
- package/dist/types/components/single-value.d.ts +3 -8
- package/dist/types/emotion/components/containers.d.ts +54 -0
- package/dist/types/emotion/components/control.d.ts +42 -0
- package/dist/types/emotion/components/group.d.ts +52 -0
- package/dist/types/emotion/components/indicators.d.ts +73 -0
- package/dist/types/emotion/components/input.d.ts +37 -0
- package/dist/types/emotion/components/internal/a11y-text.d.ts +8 -0
- package/dist/types/emotion/components/internal/dummy-input.d.ts +9 -0
- package/dist/types/emotion/components/internal/required-input.d.ts +10 -0
- package/dist/types/emotion/components/live-region.d.ts +25 -0
- package/dist/types/emotion/components/menu.d.ts +116 -0
- package/dist/types/emotion/components/multi-value.d.ts +47 -0
- package/dist/types/emotion/components/option.d.ts +49 -0
- package/dist/types/emotion/components/placeholder.d.ts +22 -0
- package/dist/types/emotion/components/single-value.d.ts +28 -0
- package/dist/types/select.d.ts +21 -21
- package/dist/types/types.d.ts +3 -0
- package/dist/types-ts4.5/compiled/components/containers.d.ts +53 -0
- package/dist/types-ts4.5/compiled/components/control.d.ts +41 -0
- package/dist/types-ts4.5/compiled/components/group.d.ts +54 -0
- package/dist/types-ts4.5/compiled/components/indicators.d.ts +72 -0
- package/dist/types-ts4.5/compiled/components/input.d.ts +36 -0
- package/dist/types-ts4.5/compiled/components/internal/a11y-text.d.ts +3 -0
- package/dist/types-ts4.5/compiled/components/internal/dummy-input.d.ts +8 -0
- package/dist/types-ts4.5/compiled/components/internal/required-input.d.ts +10 -0
- package/dist/types-ts4.5/compiled/components/live-region.d.ts +19 -0
- package/dist/types-ts4.5/compiled/components/menu.d.ts +115 -0
- package/dist/types-ts4.5/compiled/components/multi-value.d.ts +57 -0
- package/dist/types-ts4.5/compiled/components/option.d.ts +48 -0
- package/dist/types-ts4.5/compiled/components/placeholder.d.ts +21 -0
- package/dist/types-ts4.5/compiled/components/single-value.d.ts +27 -0
- package/dist/types-ts4.5/components/containers.d.ts +6 -11
- package/dist/types-ts4.5/components/control.d.ts +4 -9
- package/dist/types-ts4.5/components/group.d.ts +8 -10
- package/dist/types-ts4.5/components/index.d.ts +21 -21
- package/dist/types-ts4.5/components/indicators.d.ts +7 -12
- package/dist/types-ts4.5/components/input.d.ts +3 -8
- package/dist/types-ts4.5/components/internal/a11y-text.d.ts +2 -7
- package/dist/types-ts4.5/components/internal/dummy-input.d.ts +3 -8
- package/dist/types-ts4.5/components/internal/required-input.d.ts +0 -4
- package/dist/types-ts4.5/components/internal/scroll-manager.d.ts +2 -7
- package/dist/types-ts4.5/components/live-region.d.ts +2 -8
- package/dist/types-ts4.5/components/menu.d.ts +10 -15
- package/dist/types-ts4.5/components/multi-value.d.ts +19 -13
- package/dist/types-ts4.5/components/option.d.ts +3 -8
- package/dist/types-ts4.5/components/placeholder.d.ts +3 -8
- package/dist/types-ts4.5/components/single-value.d.ts +3 -8
- package/dist/types-ts4.5/emotion/components/containers.d.ts +54 -0
- package/dist/types-ts4.5/emotion/components/control.d.ts +42 -0
- package/dist/types-ts4.5/emotion/components/group.d.ts +52 -0
- package/dist/types-ts4.5/emotion/components/indicators.d.ts +73 -0
- package/dist/types-ts4.5/emotion/components/input.d.ts +37 -0
- package/dist/types-ts4.5/emotion/components/internal/a11y-text.d.ts +8 -0
- package/dist/types-ts4.5/emotion/components/internal/dummy-input.d.ts +9 -0
- package/dist/types-ts4.5/emotion/components/internal/required-input.d.ts +10 -0
- package/dist/types-ts4.5/emotion/components/live-region.d.ts +25 -0
- package/dist/types-ts4.5/emotion/components/menu.d.ts +116 -0
- package/dist/types-ts4.5/emotion/components/multi-value.d.ts +47 -0
- package/dist/types-ts4.5/emotion/components/option.d.ts +49 -0
- package/dist/types-ts4.5/emotion/components/placeholder.d.ts +22 -0
- package/dist/types-ts4.5/emotion/components/single-value.d.ts +28 -0
- package/dist/types-ts4.5/select.d.ts +21 -21
- package/dist/types-ts4.5/types.d.ts +3 -0
- package/package.json +10 -2
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* @jsxRuntime classic
|
|
4
|
-
* @jsx jsx
|
|
5
|
-
*/
|
|
6
|
-
import { createContext, useCallback, useContext, useMemo, useRef, useState } from 'react';
|
|
7
|
-
import { jsx } from '@emotion/react';
|
|
8
|
-
import { autoUpdate } from '@floating-ui/dom';
|
|
9
|
-
import { createPortal } from 'react-dom';
|
|
1
|
+
/* eslint-disable @repo/internal/react/no-unsafe-spread-props */
|
|
2
|
+
import React, { createContext, useContext, useRef, useState } from 'react';
|
|
10
3
|
import useLayoutEffect from 'use-isomorphic-layout-effect';
|
|
11
4
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
5
|
+
import Compiled, { LoadingMessage as CompiledLoadingMessage, menuCSS as compiledMenuCSS, MenuList as CompiledMenuList, menuListCSS as compiledMenuListCSS, MenuPortal as CompiledMenuPortal, menuPortalCSS as compiledMenuPortalCSS, NoOptionsMessage as CompiledNoOptionsMessage } from '../compiled/components/menu';
|
|
6
|
+
import Emotion, { LoadingMessage as EmotionLoadingMessage, menuCSS as emotionMenuCSS, MenuList as EmotionMenuList, menuListCSS as emotionMenuListCSS, MenuPortal as EmotionMenuPortal, menuPortalCSS as emotionMenuPortalCSS, NoOptionsMessage as EmotionNoOptionsMessage } from '../emotion/components/menu';
|
|
7
|
+
import { animatedScrollTo, getScrollParent, getScrollTop, normalizedHeight, scrollTo } from '../utils';
|
|
14
8
|
|
|
15
9
|
// ==============================
|
|
16
10
|
// Menu
|
|
@@ -184,28 +178,8 @@ function getMenuPlacement({
|
|
|
184
178
|
// Menu Component
|
|
185
179
|
// ------------------------------
|
|
186
180
|
|
|
187
|
-
function alignToControl(placement) {
|
|
188
|
-
const placementToCSSProp = {
|
|
189
|
-
bottom: 'top',
|
|
190
|
-
top: 'bottom'
|
|
191
|
-
};
|
|
192
|
-
return placement ? placementToCSSProp[placement] : 'bottom';
|
|
193
|
-
}
|
|
194
181
|
const coercePlacement = p => p === 'auto' ? 'bottom' : p;
|
|
195
|
-
export const menuCSS = (
|
|
196
|
-
placement
|
|
197
|
-
}) => ({
|
|
198
|
-
label: 'menu',
|
|
199
|
-
[alignToControl(placement)]: '100%',
|
|
200
|
-
position: 'absolute',
|
|
201
|
-
width: '100%',
|
|
202
|
-
zIndex: 1,
|
|
203
|
-
borderRadius: "var(--ds-border-radius, 4px)",
|
|
204
|
-
marginBottom: "var(--ds-space-100, 8px)",
|
|
205
|
-
marginTop: "var(--ds-space-100, 8px)",
|
|
206
|
-
backgroundColor: "var(--ds-surface-overlay, white)",
|
|
207
|
-
boxShadow: "var(--ds-shadow-overlay, 0 0 0 1px hsl(0deg 0% 0% / 10%), 0 4px 11px hsl(0deg 0% 0% / 10%))"
|
|
208
|
-
});
|
|
182
|
+
export const menuCSS = props => fg('compiled-react-select') ? compiledMenuCSS() : emotionMenuCSS(props);
|
|
209
183
|
const PortalPlacementContext = /*#__PURE__*/createContext(null);
|
|
210
184
|
|
|
211
185
|
// NOTE: internal only
|
|
@@ -258,18 +232,7 @@ export const MenuPlacer = props => {
|
|
|
258
232
|
}
|
|
259
233
|
});
|
|
260
234
|
};
|
|
261
|
-
const Menu = props =>
|
|
262
|
-
const {
|
|
263
|
-
children,
|
|
264
|
-
innerRef,
|
|
265
|
-
innerProps
|
|
266
|
-
} = props;
|
|
267
|
-
return jsx("div", _extends({}, getStyleProps(props, 'menu', {
|
|
268
|
-
menu: true
|
|
269
|
-
}), {
|
|
270
|
-
ref: innerRef
|
|
271
|
-
}, innerProps), children);
|
|
272
|
-
};
|
|
235
|
+
const Menu = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(Compiled, props) : /*#__PURE__*/React.createElement(Emotion, props);
|
|
273
236
|
|
|
274
237
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
275
238
|
export default Menu;
|
|
@@ -278,35 +241,10 @@ export default Menu;
|
|
|
278
241
|
// Menu List
|
|
279
242
|
// ==============================
|
|
280
243
|
|
|
281
|
-
export const menuListCSS = (
|
|
282
|
-
maxHeight
|
|
283
|
-
}) => ({
|
|
284
|
-
maxHeight,
|
|
285
|
-
overflowY: 'auto',
|
|
286
|
-
position: 'relative',
|
|
287
|
-
// required for offset[Height, Top] > keyboard scroll
|
|
288
|
-
WebkitOverflowScrolling: 'touch',
|
|
289
|
-
paddingTop: "var(--ds-space-100, 8px)",
|
|
290
|
-
paddingBottom: "var(--ds-space-100, 8px)"
|
|
291
|
-
});
|
|
244
|
+
export const menuListCSS = props => fg('compiled-react-select') ? compiledMenuListCSS() : emotionMenuListCSS(props);
|
|
292
245
|
|
|
293
246
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
294
|
-
export const MenuList = props =>
|
|
295
|
-
const {
|
|
296
|
-
children,
|
|
297
|
-
innerProps,
|
|
298
|
-
innerRef,
|
|
299
|
-
isMulti
|
|
300
|
-
} = props;
|
|
301
|
-
return jsx("div", _extends({}, getStyleProps(props, 'menuList', {
|
|
302
|
-
'menu-list': true,
|
|
303
|
-
'menu-list--is-multi': isMulti
|
|
304
|
-
}), {
|
|
305
|
-
ref: innerRef
|
|
306
|
-
}, innerProps, {
|
|
307
|
-
tabIndex: -1
|
|
308
|
-
}), children);
|
|
309
|
-
};
|
|
247
|
+
export const MenuList = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledMenuList, props) : /*#__PURE__*/React.createElement(EmotionMenuList, props);
|
|
310
248
|
|
|
311
249
|
// ==============================
|
|
312
250
|
// Menu Notices
|
|
@@ -319,132 +257,16 @@ const noticeCSS = ({}) => ({
|
|
|
319
257
|
export const noOptionsMessageCSS = noticeCSS;
|
|
320
258
|
export const loadingMessageCSS = noticeCSS;
|
|
321
259
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
322
|
-
export const NoOptionsMessage = (
|
|
323
|
-
children = 'No options',
|
|
324
|
-
innerProps,
|
|
325
|
-
...restProps
|
|
326
|
-
}) => {
|
|
327
|
-
return jsx("div", _extends({}, getStyleProps({
|
|
328
|
-
...restProps,
|
|
329
|
-
children,
|
|
330
|
-
innerProps
|
|
331
|
-
}, 'noOptionsMessage', {
|
|
332
|
-
'menu-notice': true,
|
|
333
|
-
'menu-notice--no-options': true
|
|
334
|
-
}), {
|
|
335
|
-
// eslint-disable-next-line jsx-a11y/role-has-required-aria-props
|
|
336
|
-
role: "option"
|
|
337
|
-
}, innerProps), jsx(Text, {
|
|
338
|
-
color: "color.text.subtle"
|
|
339
|
-
}, children));
|
|
340
|
-
};
|
|
260
|
+
export const NoOptionsMessage = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledNoOptionsMessage, props) : /*#__PURE__*/React.createElement(EmotionNoOptionsMessage, props);
|
|
341
261
|
|
|
342
262
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
343
|
-
export const LoadingMessage = (
|
|
344
|
-
children = 'Loading...',
|
|
345
|
-
innerProps,
|
|
346
|
-
...restProps
|
|
347
|
-
}) => {
|
|
348
|
-
return jsx("div", _extends({}, getStyleProps({
|
|
349
|
-
...restProps,
|
|
350
|
-
children,
|
|
351
|
-
innerProps
|
|
352
|
-
}, 'loadingMessage', {
|
|
353
|
-
'menu-notice': true,
|
|
354
|
-
'menu-notice--loading': true
|
|
355
|
-
}), innerProps, {
|
|
356
|
-
// eslint-disable-next-line jsx-a11y/role-has-required-aria-props
|
|
357
|
-
role: "option"
|
|
358
|
-
}), jsx(Text, {
|
|
359
|
-
color: "color.text.subtle"
|
|
360
|
-
}, children));
|
|
361
|
-
};
|
|
263
|
+
export const LoadingMessage = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledLoadingMessage, props) : /*#__PURE__*/React.createElement(EmotionLoadingMessage, props);
|
|
362
264
|
|
|
363
265
|
// ==============================
|
|
364
266
|
// Menu Portal
|
|
365
267
|
// ==============================
|
|
366
268
|
|
|
367
|
-
export const menuPortalCSS = (
|
|
368
|
-
rect,
|
|
369
|
-
offset,
|
|
370
|
-
position
|
|
371
|
-
}) => ({
|
|
372
|
-
left: rect.left,
|
|
373
|
-
position: position,
|
|
374
|
-
top: offset,
|
|
375
|
-
width: rect.width,
|
|
376
|
-
zIndex: 1
|
|
377
|
-
});
|
|
378
|
-
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
379
|
-
export const MenuPortal = props => {
|
|
380
|
-
const {
|
|
381
|
-
appendTo,
|
|
382
|
-
children,
|
|
383
|
-
controlElement,
|
|
384
|
-
innerProps,
|
|
385
|
-
menuPlacement,
|
|
386
|
-
menuPosition
|
|
387
|
-
} = props;
|
|
388
|
-
const menuPortalRef = useRef(null);
|
|
389
|
-
const cleanupRef = useRef(null);
|
|
390
|
-
const [placement, setPortalPlacement] = useState(coercePlacement(menuPlacement));
|
|
391
|
-
const portalPlacementContext = useMemo(() => ({
|
|
392
|
-
setPortalPlacement
|
|
393
|
-
}), []);
|
|
394
|
-
const [computedPosition, setComputedPosition] = useState(null);
|
|
395
|
-
const updateComputedPosition = useCallback(() => {
|
|
396
|
-
if (!controlElement) {
|
|
397
|
-
return;
|
|
398
|
-
}
|
|
399
|
-
const rect = getBoundingClientObj(controlElement);
|
|
400
|
-
const scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
|
|
401
|
-
const offset = rect[placement] + scrollDistance;
|
|
402
|
-
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)) {
|
|
403
|
-
setComputedPosition({
|
|
404
|
-
offset,
|
|
405
|
-
rect
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
}, [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]);
|
|
409
|
-
useLayoutEffect(() => {
|
|
410
|
-
updateComputedPosition();
|
|
411
|
-
}, [updateComputedPosition]);
|
|
412
|
-
const runAutoUpdate = useCallback(() => {
|
|
413
|
-
if (typeof cleanupRef.current === 'function') {
|
|
414
|
-
cleanupRef.current();
|
|
415
|
-
cleanupRef.current = null;
|
|
416
|
-
}
|
|
417
|
-
if (controlElement && menuPortalRef.current) {
|
|
418
|
-
cleanupRef.current = autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {
|
|
419
|
-
elementResize: 'ResizeObserver' in window
|
|
420
|
-
});
|
|
421
|
-
}
|
|
422
|
-
}, [controlElement, updateComputedPosition]);
|
|
423
|
-
useLayoutEffect(() => {
|
|
424
|
-
runAutoUpdate();
|
|
425
|
-
}, [runAutoUpdate]);
|
|
426
|
-
const setMenuPortalElement = useCallback(menuPortalElement => {
|
|
427
|
-
menuPortalRef.current = menuPortalElement;
|
|
428
|
-
runAutoUpdate();
|
|
429
|
-
}, [runAutoUpdate]);
|
|
430
|
-
|
|
431
|
-
// bail early if required elements aren't present
|
|
432
|
-
if (!appendTo && menuPosition !== 'fixed' || !computedPosition) {
|
|
433
|
-
return null;
|
|
434
|
-
}
|
|
269
|
+
export const menuPortalCSS = props => fg('compiled-react-select') ? compiledMenuPortalCSS() : emotionMenuPortalCSS(props);
|
|
435
270
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
ref: setMenuPortalElement
|
|
439
|
-
}, getStyleProps({
|
|
440
|
-
...props,
|
|
441
|
-
offset: computedPosition.offset,
|
|
442
|
-
position: menuPosition,
|
|
443
|
-
rect: computedPosition.rect
|
|
444
|
-
}, 'menuPortal', {
|
|
445
|
-
'menu-portal': true
|
|
446
|
-
}), innerProps), children);
|
|
447
|
-
return jsx(PortalPlacementContext.Provider, {
|
|
448
|
-
value: portalPlacementContext
|
|
449
|
-
}, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);
|
|
450
|
-
};
|
|
271
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
272
|
+
export const MenuPortal = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledMenuPortal, props) : /*#__PURE__*/React.createElement(EmotionMenuPortal, props);
|
|
@@ -1,227 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* @jsx jsx
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { css, jsx } from '@emotion/react';
|
|
7
|
-
import LegacySelectClearIcon from '@atlaskit/icon/glyph/select-clear';
|
|
8
|
-
import CrossIcon from '@atlaskit/icon/utility/cross';
|
|
1
|
+
/* eslint-disable @repo/internal/react/no-unsafe-spread-props */
|
|
2
|
+
import React from 'react';
|
|
9
3
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
export const multiValueCSS = (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}) => {
|
|
16
|
-
let backgroundColor;
|
|
17
|
-
let color;
|
|
18
|
-
if (isDisabled) {
|
|
19
|
-
// Use the basic neutral background so it is slightly separate from the
|
|
20
|
-
// field's background
|
|
21
|
-
backgroundColor = "var(--ds-background-neutral, #091E420F)";
|
|
22
|
-
color = "var(--ds-text-disabled, #091E424F)";
|
|
23
|
-
} else if (isFocused) {
|
|
24
|
-
backgroundColor = "var(--ds-background-selected, #E9F2FF)";
|
|
25
|
-
color = "var(--ds-text-selected, hsl(0, 0%, 20%))";
|
|
26
|
-
} else {
|
|
27
|
-
backgroundColor = fg('platform-component-visual-refresh') ? "var(--ds-background-neutral-subtle-hovered, #091E420F)" : "var(--ds-background-neutral, #091E420F)";
|
|
28
|
-
color = "var(--ds-text, hsl(0, 0%, 20%))";
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
label: 'multiValue',
|
|
32
|
-
display: 'flex',
|
|
33
|
-
minWidth: 0,
|
|
34
|
-
// resolves flex/text-overflow bug
|
|
35
|
-
margin: "var(--ds-space-025, 2px)",
|
|
36
|
-
borderRadius: "var(--ds-border-radius-050, 2px)",
|
|
37
|
-
backgroundColor,
|
|
38
|
-
boxShadow: isFocused ? `0 0 0 2px ${"var(--ds-surface, transparent)"}, 0 0 0 4px ${"var(--ds-border-focused, transparent)"}` : 'none',
|
|
39
|
-
maxWidth: '100%',
|
|
40
|
-
'@media screen and (-ms-high-contrast: active)': {
|
|
41
|
-
border: isFocused ? '1px solid transparent' : 'none'
|
|
42
|
-
},
|
|
43
|
-
color,
|
|
44
|
-
...(fg('platform-component-visual-refresh') && {
|
|
45
|
-
borderRadius: "var(--ds-border-radius-100, 4px)",
|
|
46
|
-
// Hardcode this color for visual refresh as there is no token color yet
|
|
47
|
-
borderColor: '#B7B9BE',
|
|
48
|
-
borderWidth: "var(--ds-border-width, 1px)",
|
|
49
|
-
borderStyle: 'solid',
|
|
50
|
-
backgroundColor: "var(--ds-background-input, #FFFFFF)"
|
|
51
|
-
})
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
export const multiValueLabelCSS = ({
|
|
55
|
-
cropWithEllipsis,
|
|
56
|
-
isDisabled
|
|
57
|
-
}) => ({
|
|
58
|
-
overflow: 'hidden',
|
|
59
|
-
textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,
|
|
60
|
-
whiteSpace: 'nowrap',
|
|
61
|
-
borderRadius: "var(--ds-border-radius-050, 2px)",
|
|
62
|
-
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
63
|
-
fontSize: '85%',
|
|
64
|
-
font: "var(--ds-font-body-UNSAFE_small, normal 400 12px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
|
|
65
|
-
padding: "var(--ds-space-025, 2px)",
|
|
66
|
-
color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : 'inherit',
|
|
67
|
-
paddingLeft: "var(--ds-space-075, 6px)",
|
|
68
|
-
...(fg('platform-component-visual-refresh') && {
|
|
69
|
-
font: "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
|
|
70
|
-
paddingTop: 0,
|
|
71
|
-
paddingBottom: 0,
|
|
72
|
-
paddingLeft: "var(--ds-space-050, 4px)"
|
|
73
|
-
})
|
|
74
|
-
});
|
|
75
|
-
export const multiValueRemoveCSS = ({
|
|
76
|
-
isFocused
|
|
77
|
-
}) => ({
|
|
78
|
-
alignItems: 'center',
|
|
79
|
-
display: 'flex',
|
|
80
|
-
backgroundColor: isFocused ? "var(--ds-UNSAFE-transparent, transparent)" : undefined,
|
|
81
|
-
fill: isFocused ? "var(--ds-text-selected, #000)" : "var(--ds-text, #000)",
|
|
82
|
-
paddingLeft: "var(--ds-space-025, 2px)",
|
|
83
|
-
paddingRight: "var(--ds-space-025, 2px)",
|
|
84
|
-
borderRadius: '0px 2px 2px 0px',
|
|
85
|
-
// DSP-6470 we should style like Tag once we have the :has selector
|
|
86
|
-
':hover': {
|
|
87
|
-
backgroundColor: "var(--ds-background-danger-hovered, #FFD5D2)",
|
|
88
|
-
fill: "var(--ds-text-danger, #000)"
|
|
89
|
-
},
|
|
90
|
-
':active': {
|
|
91
|
-
backgroundColor: "var(--ds-background-danger-pressed, #FD9891)",
|
|
92
|
-
fill: "var(--ds-text-danger, #000)"
|
|
93
|
-
},
|
|
94
|
-
...(fg('platform-component-visual-refresh') && {
|
|
95
|
-
backgroundColor: "var(--ds-background-neutral-subtle, #00000000)",
|
|
96
|
-
border: 'none',
|
|
97
|
-
alignItems: 'center',
|
|
98
|
-
justifyContent: 'center',
|
|
99
|
-
alignSelf: 'center',
|
|
100
|
-
appearance: 'none',
|
|
101
|
-
borderRadius: "var(--ds-border-radius, 4px)",
|
|
102
|
-
color: "var(--ds-text, #172B4D)",
|
|
103
|
-
padding: "var(--ds-space-025, 2px)",
|
|
104
|
-
marginRight: "var(--ds-space-025, 2px)",
|
|
105
|
-
':focus-visible': {
|
|
106
|
-
outlineOffset: "var(--ds-space-negative-025, -2px)"
|
|
107
|
-
},
|
|
108
|
-
':hover': {
|
|
109
|
-
backgroundColor: "var(--ds-background-neutral-subtle-hovered, #091E420F)"
|
|
110
|
-
},
|
|
111
|
-
':active': {
|
|
112
|
-
backgroundColor: "var(--ds-background-neutral-subtle-pressed, #091E4224)"
|
|
113
|
-
}
|
|
114
|
-
})
|
|
115
|
-
});
|
|
116
|
-
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
117
|
-
const MultiValueGeneric = ({
|
|
118
|
-
children,
|
|
119
|
-
innerProps
|
|
120
|
-
}) => jsx("div", innerProps, children);
|
|
121
|
-
|
|
4
|
+
import Compiled, { MultiValueContainer as CompiledMultiValueContainer, multiValueCSS as CompiledMultiValueCSS, MultiValueLabel as CompiledMultiValueLabel, multiValueLabelCSS as CompiledMultiValueLabelCSS, MultiValueRemove as CompiledMultiValueRemove, multiValueRemoveCSS as CompiledMultiValueRemoveCSS } from '../compiled/components/multi-value';
|
|
5
|
+
import Emotion, { MultiValueContainer as EmotionMultiValueContainer, multiValueCSS as EmotionMultiValueCSS, MultiValueLabel as EmotionMultiValueLabel, multiValueLabelCSS as EmotionMultiValueLabelCSS, MultiValueRemove as EmotionMultiValueRemove, multiValueRemoveCSS as EmotionMultiValueRemoveCSS } from '../emotion/components/multi-value';
|
|
6
|
+
export const multiValueCSS = props => fg('compiled-react-select') ? CompiledMultiValueCSS() : EmotionMultiValueCSS(props);
|
|
7
|
+
export const multiValueLabelCSS = props => fg('compiled-react-select') ? CompiledMultiValueLabelCSS() : EmotionMultiValueLabelCSS(props);
|
|
8
|
+
export const multiValueRemoveCSS = props => fg('compiled-react-select') ? CompiledMultiValueRemoveCSS() : EmotionMultiValueRemoveCSS(props);
|
|
122
9
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
123
|
-
export const MultiValueContainer =
|
|
10
|
+
export const MultiValueContainer = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledMultiValueContainer, props) : /*#__PURE__*/React.createElement(EmotionMultiValueContainer, props);
|
|
124
11
|
|
|
125
12
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
126
|
-
export const MultiValueLabel =
|
|
127
|
-
|
|
128
|
-
display: 'none'
|
|
129
|
-
});
|
|
130
|
-
const enabledStyles = css({
|
|
131
|
-
display: 'inherit'
|
|
132
|
-
});
|
|
133
|
-
const iconWrapperStyles = xcss({
|
|
134
|
-
padding: 'space.025'
|
|
135
|
-
});
|
|
136
|
-
const renderIcon = () => {
|
|
137
|
-
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
138
|
-
if (fg('platform-component-visual-refresh')) {
|
|
139
|
-
return jsx(CrossIcon, {
|
|
140
|
-
label: "",
|
|
141
|
-
color: "currentColor"
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
|
|
146
|
-
if (fg('platform-visual-refresh-icons-legacy-facade')) {
|
|
147
|
-
return jsx(Inline, {
|
|
148
|
-
xcss: iconWrapperStyles
|
|
149
|
-
}, jsx(CrossIcon, {
|
|
150
|
-
label: "",
|
|
151
|
-
color: "currentColor"
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
return (
|
|
155
|
-
// eslint-disable-next-line @atlaskit/design-system/no-legacy-icons
|
|
156
|
-
jsx(LegacySelectClearIcon, {
|
|
157
|
-
label: "",
|
|
158
|
-
primaryColor: "transparent",
|
|
159
|
-
size: "small",
|
|
160
|
-
secondaryColor: "inherit"
|
|
161
|
-
})
|
|
162
|
-
);
|
|
163
|
-
};
|
|
164
|
-
export function MultiValueRemove({
|
|
165
|
-
isDisabled,
|
|
166
|
-
innerProps
|
|
167
|
-
}) {
|
|
13
|
+
export const MultiValueLabel = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledMultiValueLabel, props) : /*#__PURE__*/React.createElement(EmotionMultiValueLabel, props);
|
|
14
|
+
export function MultiValueRemove(props) {
|
|
168
15
|
return (
|
|
169
16
|
// The Remove button is intentionally excluded from the tab order, please avoid assigning a non-negative tabIndex to it. Context: https://hello.atlassian.net/wiki/spaces/A11YKB/pages/3031993460/Clear+Options+on+an+Input+Field
|
|
170
|
-
|
|
171
|
-
css: isDisabled ? disabledStyles : enabledStyles,
|
|
172
|
-
"data-testid": isDisabled ? 'hide-clear-icon' : 'show-clear-icon'
|
|
173
|
-
}, renderIcon()))
|
|
17
|
+
fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledMultiValueRemove, props) : /*#__PURE__*/React.createElement(EmotionMultiValueRemove, props)
|
|
174
18
|
);
|
|
175
19
|
}
|
|
176
|
-
const MultiValue = props =>
|
|
177
|
-
const {
|
|
178
|
-
children,
|
|
179
|
-
components,
|
|
180
|
-
data,
|
|
181
|
-
innerProps,
|
|
182
|
-
isDisabled,
|
|
183
|
-
removeProps,
|
|
184
|
-
selectProps
|
|
185
|
-
} = props;
|
|
186
|
-
const {
|
|
187
|
-
Container,
|
|
188
|
-
Label,
|
|
189
|
-
Remove
|
|
190
|
-
} = components;
|
|
191
|
-
const ariaLabel = typeof children === 'string' ? children : data.label;
|
|
192
|
-
return jsx(Container, {
|
|
193
|
-
data: data,
|
|
194
|
-
innerProps: {
|
|
195
|
-
...getStyleProps(props, 'multiValue', {
|
|
196
|
-
'multi-value': true,
|
|
197
|
-
'multi-value--is-disabled': isDisabled
|
|
198
|
-
}),
|
|
199
|
-
...innerProps
|
|
200
|
-
},
|
|
201
|
-
selectProps: selectProps
|
|
202
|
-
}, jsx(Label, {
|
|
203
|
-
data: data,
|
|
204
|
-
innerProps: {
|
|
205
|
-
...getStyleProps(props, 'multiValueLabel', {
|
|
206
|
-
'multi-value__label': true
|
|
207
|
-
})
|
|
208
|
-
},
|
|
209
|
-
selectProps: selectProps
|
|
210
|
-
}, children), jsx(Remove, {
|
|
211
|
-
data: data,
|
|
212
|
-
innerProps: {
|
|
213
|
-
...getStyleProps(props, 'multiValueRemove', {
|
|
214
|
-
'multi-value__remove': true
|
|
215
|
-
}),
|
|
216
|
-
role: 'button',
|
|
217
|
-
tabIndex: -1,
|
|
218
|
-
'aria-label': `${ariaLabel || 'option'}, remove`,
|
|
219
|
-
...removeProps
|
|
220
|
-
},
|
|
221
|
-
isDisabled: isDisabled,
|
|
222
|
-
selectProps: selectProps
|
|
223
|
-
}));
|
|
224
|
-
};
|
|
20
|
+
const MultiValue = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(Compiled, props) : /*#__PURE__*/React.createElement(Emotion, props);
|
|
225
21
|
|
|
226
22
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
227
23
|
export default MultiValue;
|
|
@@ -1,78 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { getStyleProps } from '../utils';
|
|
9
|
-
export const optionCSS = ({
|
|
10
|
-
isDisabled,
|
|
11
|
-
isFocused,
|
|
12
|
-
isSelected
|
|
13
|
-
}) => {
|
|
14
|
-
let color = "var(--ds-text, #172B4D)";
|
|
15
|
-
if (isDisabled) {
|
|
16
|
-
color = "var(--ds-text-disabled, #091E424F)";
|
|
17
|
-
} else if (isSelected) {
|
|
18
|
-
color = "var(--ds-text-selected, #0C66E4)";
|
|
19
|
-
}
|
|
20
|
-
let boxShadow;
|
|
21
|
-
let backgroundColor;
|
|
22
|
-
if (isDisabled) {
|
|
23
|
-
backgroundColor = undefined;
|
|
24
|
-
} else if (isSelected && isFocused) {
|
|
25
|
-
backgroundColor = "var(--ds-background-selected-hovered, #CCE0FF)";
|
|
26
|
-
} else if (isSelected) {
|
|
27
|
-
backgroundColor = "var(--ds-background-selected, #E9F2FF)";
|
|
28
|
-
} else if (isFocused) {
|
|
29
|
-
backgroundColor = "var(--ds-background-neutral-subtle-hovered, #091E420F)";
|
|
30
|
-
}
|
|
31
|
-
if (!isDisabled && (isFocused || isSelected)) {
|
|
32
|
-
boxShadow = `inset 2px 0px 0px ${"var(--ds-border-selected, #0C66E4)"}`;
|
|
33
|
-
}
|
|
34
|
-
const cursor = isDisabled ? 'not-allowed' : 'default';
|
|
35
|
-
return {
|
|
36
|
-
label: 'option',
|
|
37
|
-
display: 'block',
|
|
38
|
-
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
39
|
-
fontSize: 'inherit',
|
|
40
|
-
width: '100%',
|
|
41
|
-
userSelect: 'none',
|
|
42
|
-
WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',
|
|
43
|
-
padding: `${"var(--ds-space-075, 6px)"} ${"var(--ds-space-150, 12px)"}`,
|
|
44
|
-
backgroundColor,
|
|
45
|
-
color,
|
|
46
|
-
cursor,
|
|
47
|
-
boxShadow,
|
|
48
|
-
':active': {
|
|
49
|
-
backgroundColor: !isDisabled ? isSelected ? "var(--ds-background-selected-pressed, #85B8FF)" : "var(--ds-background-neutral-subtle-pressed, #091E4224)" : undefined
|
|
50
|
-
},
|
|
51
|
-
'@media screen and (-ms-high-contrast: active)': {
|
|
52
|
-
borderLeft: !isDisabled && (isFocused || isSelected) ? '2px solid transparent' : ''
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
const Option = props => {
|
|
57
|
-
const {
|
|
58
|
-
children,
|
|
59
|
-
isDisabled,
|
|
60
|
-
isFocused,
|
|
61
|
-
isSelected,
|
|
62
|
-
innerRef,
|
|
63
|
-
innerProps
|
|
64
|
-
} = props;
|
|
65
|
-
return jsx("div", _extends({}, getStyleProps(props, 'option', {
|
|
66
|
-
option: true,
|
|
67
|
-
'option--is-disabled': isDisabled,
|
|
68
|
-
'option--is-focused': isFocused,
|
|
69
|
-
'option--is-selected': isSelected
|
|
70
|
-
}), {
|
|
71
|
-
ref: innerRef
|
|
72
|
-
}, innerProps, {
|
|
73
|
-
tabIndex: -1
|
|
74
|
-
}), children);
|
|
75
|
-
};
|
|
1
|
+
/* eslint-disable @repo/internal/react/no-unsafe-spread-props */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
|
+
import CompiledOption, { optionCSS as compiledOptionCSS } from '../compiled/components/option';
|
|
5
|
+
import EmotionOption, { optionCSS as emotionOptionCSS } from '../emotion/components/option';
|
|
6
|
+
export const optionCSS = props => fg('compiled-react-select') ? compiledOptionCSS() : emotionOptionCSS(props);
|
|
7
|
+
const Option = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(CompiledOption, props) : /*#__PURE__*/React.createElement(EmotionOption, props);
|
|
76
8
|
|
|
77
9
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
78
10
|
export default Option;
|
|
@@ -1,28 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { getStyleProps } from '../utils';
|
|
9
|
-
export const placeholderCSS = ({
|
|
10
|
-
isDisabled
|
|
11
|
-
}) => ({
|
|
12
|
-
label: 'placeholder',
|
|
13
|
-
gridArea: '1 / 1 / 2 / 3',
|
|
14
|
-
margin: `0 ${"var(--ds-space-025, 2px)"}`,
|
|
15
|
-
color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text-subtlest, #626F86)"
|
|
16
|
-
});
|
|
17
|
-
const Placeholder = props => {
|
|
18
|
-
const {
|
|
19
|
-
children,
|
|
20
|
-
innerProps
|
|
21
|
-
} = props;
|
|
22
|
-
return jsx("div", _extends({}, getStyleProps(props, 'placeholder', {
|
|
23
|
-
placeholder: true
|
|
24
|
-
}), innerProps), children);
|
|
25
|
-
};
|
|
1
|
+
/* eslint-disable @repo/internal/react/no-unsafe-spread-props */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
|
+
import Compiled, { placeholderCSS as compiledPlaceholderCSS } from '../compiled/components/placeholder';
|
|
5
|
+
import Emotion, { placeholderCSS as emotionPlaceholderCSS } from '../emotion/components/placeholder';
|
|
6
|
+
export const placeholderCSS = props => fg('compiled-react-select') ? compiledPlaceholderCSS() : emotionPlaceholderCSS(props);
|
|
7
|
+
const Placeholder = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(Compiled, props) : /*#__PURE__*/React.createElement(Emotion, props);
|
|
26
8
|
|
|
27
9
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
28
10
|
export default Placeholder;
|
|
@@ -1,34 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { getStyleProps } from '../utils';
|
|
9
|
-
export const css = ({
|
|
10
|
-
isDisabled
|
|
11
|
-
}) => ({
|
|
12
|
-
label: 'singleValue',
|
|
13
|
-
gridArea: '1 / 1 / 2 / 3',
|
|
14
|
-
maxWidth: '100%',
|
|
15
|
-
overflow: 'hidden',
|
|
16
|
-
textOverflow: 'ellipsis',
|
|
17
|
-
whiteSpace: 'nowrap',
|
|
18
|
-
margin: `0 ${"var(--ds-space-025, 2px)"}`,
|
|
19
|
-
color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text, #172B4D)"
|
|
20
|
-
});
|
|
21
|
-
const SingleValue = props => {
|
|
22
|
-
const {
|
|
23
|
-
children,
|
|
24
|
-
isDisabled,
|
|
25
|
-
innerProps
|
|
26
|
-
} = props;
|
|
27
|
-
return jsx("div", _extends({}, getStyleProps(props, 'singleValue', {
|
|
28
|
-
'single-value': true,
|
|
29
|
-
'single-value--is-disabled': isDisabled
|
|
30
|
-
}), innerProps), children);
|
|
31
|
-
};
|
|
1
|
+
/* eslint-disable @repo/internal/react/no-unsafe-spread-props */
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
4
|
+
import Compiled, { css as compiledCSS } from '../compiled/components/single-value';
|
|
5
|
+
import Emotion, { css as emotionCSS } from '../emotion/components/single-value';
|
|
6
|
+
export const css = props => fg('compiled-react-select') ? compiledCSS() : emotionCSS(props);
|
|
7
|
+
const SingleValue = props => fg('compiled-react-select') ? /*#__PURE__*/React.createElement(Compiled, props) : /*#__PURE__*/React.createElement(Emotion, props);
|
|
32
8
|
|
|
33
9
|
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
34
10
|
export default SingleValue;
|