@atlaskit/react-select 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/emotion/components/containers.js +111 -0
- package/dist/cjs/emotion/components/control.js +110 -0
- package/dist/cjs/emotion/components/group.js +71 -0
- package/dist/cjs/emotion/components/index.js +52 -0
- package/dist/cjs/emotion/components/indicators.js +137 -0
- package/dist/cjs/emotion/components/input.js +94 -0
- package/dist/cjs/emotion/components/internal/a11y-text.js +36 -0
- package/dist/cjs/emotion/components/internal/dummy-input.js +44 -0
- package/dist/cjs/emotion/components/internal/index.js +34 -0
- package/dist/cjs/emotion/components/internal/notify-open-layer-observer.js +21 -0
- package/dist/cjs/emotion/components/internal/required-input.js +43 -0
- package/dist/cjs/emotion/components/internal/scroll-manager.js +57 -0
- package/dist/cjs/emotion/components/internal/use-scroll-capture.js +132 -0
- package/dist/cjs/emotion/components/internal/use-scroll-lock.js +149 -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 +82 -0
- package/dist/cjs/emotion/components/placeholder.js +34 -0
- package/dist/cjs/emotion/components/single-value.js +40 -0
- package/dist/cjs/select.js +11 -8
- package/dist/es2019/emotion/components/containers.js +109 -0
- package/dist/es2019/emotion/components/control.js +107 -0
- package/dist/es2019/emotion/components/group.js +59 -0
- package/dist/es2019/emotion/components/index.js +41 -0
- package/dist/es2019/emotion/components/indicators.js +128 -0
- package/dist/es2019/emotion/components/input.js +86 -0
- package/dist/es2019/emotion/components/internal/a11y-text.js +27 -0
- package/dist/es2019/emotion/components/internal/dummy-input.js +37 -0
- package/dist/es2019/emotion/components/internal/index.js +4 -0
- package/dist/es2019/emotion/components/internal/notify-open-layer-observer.js +16 -0
- package/dist/es2019/emotion/components/internal/required-input.js +35 -0
- package/dist/es2019/emotion/components/internal/scroll-manager.js +49 -0
- package/dist/es2019/emotion/components/internal/use-scroll-capture.js +128 -0
- package/dist/es2019/emotion/components/internal/use-scroll-lock.js +143 -0
- package/dist/es2019/emotion/components/live-region.js +178 -0
- package/dist/es2019/emotion/components/menu.js +450 -0
- package/dist/es2019/emotion/components/multi-value.js +227 -0
- package/dist/es2019/emotion/components/option.js +78 -0
- package/dist/es2019/emotion/components/placeholder.js +28 -0
- package/dist/es2019/emotion/components/single-value.js +34 -0
- package/dist/es2019/select.js +11 -8
- package/dist/esm/emotion/components/containers.js +105 -0
- package/dist/esm/emotion/components/control.js +103 -0
- package/dist/esm/emotion/components/group.js +65 -0
- package/dist/esm/emotion/components/index.js +43 -0
- package/dist/esm/emotion/components/indicators.js +132 -0
- package/dist/esm/emotion/components/input.js +89 -0
- package/dist/esm/emotion/components/internal/a11y-text.js +29 -0
- package/dist/esm/emotion/components/internal/dummy-input.js +38 -0
- package/dist/esm/emotion/components/internal/index.js +4 -0
- package/dist/esm/emotion/components/internal/notify-open-layer-observer.js +15 -0
- package/dist/esm/emotion/components/internal/required-input.js +36 -0
- package/dist/esm/emotion/components/internal/scroll-manager.js +49 -0
- package/dist/esm/emotion/components/internal/use-scroll-capture.js +126 -0
- package/dist/esm/emotion/components/internal/use-scroll-lock.js +143 -0
- package/dist/esm/emotion/components/live-region.js +175 -0
- package/dist/esm/emotion/components/menu.js +454 -0
- package/dist/esm/emotion/components/multi-value.js +217 -0
- package/dist/esm/emotion/components/option.js +75 -0
- package/dist/esm/emotion/components/placeholder.js +27 -0
- package/dist/esm/emotion/components/single-value.js +33 -0
- package/dist/esm/select.js +11 -8
- package/dist/types/components/internal/notify-open-layer-observer.d.ts +4 -2
- 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/index.d.ts +67 -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/index.d.ts +4 -0
- package/dist/types/emotion/components/internal/notify-open-layer-observer.d.ts +11 -0
- package/dist/types/emotion/components/internal/required-input.d.ts +10 -0
- package/dist/types/emotion/components/internal/scroll-manager.d.ts +17 -0
- package/dist/types/emotion/components/internal/use-scroll-capture.d.ts +12 -0
- package/dist/types/emotion/components/internal/use-scroll-lock.d.ts +9 -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 +7 -4
- package/dist/types-ts4.5/components/internal/notify-open-layer-observer.d.ts +4 -2
- 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/index.d.ts +67 -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/index.d.ts +4 -0
- package/dist/types-ts4.5/emotion/components/internal/notify-open-layer-observer.d.ts +11 -0
- package/dist/types-ts4.5/emotion/components/internal/required-input.d.ts +10 -0
- package/dist/types-ts4.5/emotion/components/internal/scroll-manager.d.ts +17 -0
- package/dist/types-ts4.5/emotion/components/internal/use-scroll-capture.d.ts +12 -0
- package/dist/types-ts4.5/emotion/components/internal/use-scroll-lock.d.ts +9 -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 +7 -4
- package/package.json +3 -3
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
import _objectDestructuringEmpty from "@babel/runtime/helpers/objectDestructuringEmpty";
|
|
4
|
+
var _excluded = ["data"];
|
|
5
|
+
/**
|
|
6
|
+
* @jsxRuntime classic
|
|
7
|
+
* @jsx jsx
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { jsx } from '@emotion/react';
|
|
11
|
+
import { cleanCommonProps, getStyleProps } from '../../utils';
|
|
12
|
+
export var groupCSS = function groupCSS(_ref) {
|
|
13
|
+
_objectDestructuringEmpty(_ref);
|
|
14
|
+
return {
|
|
15
|
+
paddingBottom: "var(--ds-space-100, 8px)",
|
|
16
|
+
paddingTop: "var(--ds-space-100, 8px)"
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
var Group = function Group(props) {
|
|
20
|
+
var children = props.children,
|
|
21
|
+
cx = props.cx,
|
|
22
|
+
getStyles = props.getStyles,
|
|
23
|
+
getClassNames = props.getClassNames,
|
|
24
|
+
Heading = props.Heading,
|
|
25
|
+
headingProps = props.headingProps,
|
|
26
|
+
innerProps = props.innerProps,
|
|
27
|
+
label = props.label,
|
|
28
|
+
selectProps = props.selectProps;
|
|
29
|
+
return jsx("div", _extends({}, getStyleProps(props, 'group', {
|
|
30
|
+
group: true
|
|
31
|
+
}), innerProps), jsx(Heading, _extends({}, headingProps, {
|
|
32
|
+
selectProps: selectProps,
|
|
33
|
+
getStyles: getStyles,
|
|
34
|
+
getClassNames: getClassNames,
|
|
35
|
+
cx: cx
|
|
36
|
+
}), label), jsx("div", null, children));
|
|
37
|
+
};
|
|
38
|
+
export var groupHeadingCSS = function groupHeadingCSS(_ref2) {
|
|
39
|
+
_objectDestructuringEmpty(_ref2);
|
|
40
|
+
return {
|
|
41
|
+
label: 'group',
|
|
42
|
+
cursor: 'default',
|
|
43
|
+
display: 'block',
|
|
44
|
+
marginBottom: '0.25em',
|
|
45
|
+
paddingLeft: "var(--ds-space-150, 12px)",
|
|
46
|
+
paddingRight: "var(--ds-space-150, 12px)",
|
|
47
|
+
font: "var(--ds-font-body-small, normal 400 11px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
|
|
48
|
+
color: "var(--ds-text-subtle, #44546F)",
|
|
49
|
+
fontWeight: "var(--ds-font-weight-bold, 700)",
|
|
50
|
+
textTransform: 'none'
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
55
|
+
export var GroupHeading = function GroupHeading(props) {
|
|
56
|
+
var _cleanCommonProps = cleanCommonProps(props),
|
|
57
|
+
data = _cleanCommonProps.data,
|
|
58
|
+
innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);
|
|
59
|
+
return jsx("div", _extends({}, getStyleProps(props, 'groupHeading', {
|
|
60
|
+
'group-heading': true
|
|
61
|
+
}), innerProps));
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
65
|
+
export default Group;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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) { _defineProperty(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; }
|
|
4
|
+
import { IndicatorsContainer, SelectContainer, ValueContainer } from './containers';
|
|
5
|
+
import Control from './control';
|
|
6
|
+
import Group, { GroupHeading } from './group';
|
|
7
|
+
import { ClearIndicator, DropdownIndicator, LoadingIndicator } from './indicators';
|
|
8
|
+
import Input from './input';
|
|
9
|
+
import Menu, { LoadingMessage, MenuList, MenuPortal, NoOptionsMessage } from './menu';
|
|
10
|
+
import MultiValue, { MultiValueContainer, MultiValueLabel, MultiValueRemove } from './multi-value';
|
|
11
|
+
import Option from './option';
|
|
12
|
+
import Placeholder from './placeholder';
|
|
13
|
+
import SingleValue from './single-value';
|
|
14
|
+
|
|
15
|
+
// Required export for external packages
|
|
16
|
+
|
|
17
|
+
export var components = {
|
|
18
|
+
ClearIndicator: ClearIndicator,
|
|
19
|
+
Control: Control,
|
|
20
|
+
DropdownIndicator: DropdownIndicator,
|
|
21
|
+
Group: Group,
|
|
22
|
+
GroupHeading: GroupHeading,
|
|
23
|
+
IndicatorsContainer: IndicatorsContainer,
|
|
24
|
+
Input: Input,
|
|
25
|
+
LoadingIndicator: LoadingIndicator,
|
|
26
|
+
Menu: Menu,
|
|
27
|
+
MenuList: MenuList,
|
|
28
|
+
MenuPortal: MenuPortal,
|
|
29
|
+
LoadingMessage: LoadingMessage,
|
|
30
|
+
NoOptionsMessage: NoOptionsMessage,
|
|
31
|
+
MultiValue: MultiValue,
|
|
32
|
+
MultiValueContainer: MultiValueContainer,
|
|
33
|
+
MultiValueLabel: MultiValueLabel,
|
|
34
|
+
MultiValueRemove: MultiValueRemove,
|
|
35
|
+
Option: Option,
|
|
36
|
+
Placeholder: Placeholder,
|
|
37
|
+
SelectContainer: SelectContainer,
|
|
38
|
+
SingleValue: SingleValue,
|
|
39
|
+
ValueContainer: ValueContainer
|
|
40
|
+
};
|
|
41
|
+
export var defaultComponents = function defaultComponents(props) {
|
|
42
|
+
return _objectSpread(_objectSpread({}, components), props.components);
|
|
43
|
+
};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
4
|
+
var _excluded = ["innerProps", "isRtl", "size"];
|
|
5
|
+
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; }
|
|
6
|
+
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) { _defineProperty(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; }
|
|
7
|
+
/**
|
|
8
|
+
* @jsxRuntime classic
|
|
9
|
+
* @jsx jsx
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { jsx } from '@emotion/react';
|
|
13
|
+
import DownIcon from '@atlaskit/icon/utility/migration/chevron-down';
|
|
14
|
+
import CrossIcon from '@atlaskit/icon/utility/migration/cross-circle--select-clear';
|
|
15
|
+
import { Inline, Pressable, xcss } from '@atlaskit/primitives';
|
|
16
|
+
import Spinner from '@atlaskit/spinner';
|
|
17
|
+
import { getStyleProps } from '../../utils';
|
|
18
|
+
|
|
19
|
+
// ==============================
|
|
20
|
+
// Dropdown & Clear Icons
|
|
21
|
+
// ==============================
|
|
22
|
+
|
|
23
|
+
var iconContainerStyles = xcss({
|
|
24
|
+
all: 'unset',
|
|
25
|
+
outline: 'revert',
|
|
26
|
+
display: 'flex',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
padding: 'space.025'
|
|
30
|
+
});
|
|
31
|
+
var dropdownWrapperStyles = xcss({
|
|
32
|
+
padding: 'space.075'
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// ==============================
|
|
36
|
+
// Dropdown & Clear Buttons
|
|
37
|
+
// ==============================
|
|
38
|
+
|
|
39
|
+
export var dropdownIndicatorCSS = function dropdownIndicatorCSS(_ref) {
|
|
40
|
+
var isCompact = _ref.isCompact,
|
|
41
|
+
isDisabled = _ref.isDisabled;
|
|
42
|
+
return {
|
|
43
|
+
label: 'indicatorContainer',
|
|
44
|
+
display: 'flex',
|
|
45
|
+
transition: 'color 150ms',
|
|
46
|
+
color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text-subtle, #44546F)",
|
|
47
|
+
padding: "".concat(isCompact ? 0 : "var(--ds-space-075, 6px)", " ", "var(--ds-space-025, 2px)"),
|
|
48
|
+
':hover': {
|
|
49
|
+
color: "var(--ds-text-subtle, #44546F)"
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
55
|
+
export var DropdownIndicator = function DropdownIndicator(props) {
|
|
56
|
+
var innerProps = props.innerProps,
|
|
57
|
+
children = props.children;
|
|
58
|
+
return jsx("div", _extends({}, getStyleProps(props, 'dropdownIndicator', {
|
|
59
|
+
indicator: true,
|
|
60
|
+
'dropdown-indicator': true
|
|
61
|
+
}), innerProps), children ? children : jsx(Inline, {
|
|
62
|
+
as: "span",
|
|
63
|
+
xcss: dropdownWrapperStyles
|
|
64
|
+
}, jsx(DownIcon, {
|
|
65
|
+
color: "currentColor",
|
|
66
|
+
label: "open",
|
|
67
|
+
LEGACY_margin: "var(--ds-space-negative-075, -0.375rem)"
|
|
68
|
+
})));
|
|
69
|
+
};
|
|
70
|
+
export var clearIndicatorCSS = function clearIndicatorCSS(_ref2) {
|
|
71
|
+
var isCompact = _ref2.isCompact;
|
|
72
|
+
return {
|
|
73
|
+
label: 'indicatorContainer',
|
|
74
|
+
display: 'flex',
|
|
75
|
+
transition: 'color 150ms',
|
|
76
|
+
color: "var(--ds-text-subtlest, #626F86)",
|
|
77
|
+
padding: "".concat(isCompact ? 0 : "var(--ds-space-075, 6px)", " ", "var(--ds-space-025, 2px)"),
|
|
78
|
+
':hover': {
|
|
79
|
+
color: "var(--ds-text-subtle, #44546F)"
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
85
|
+
export var ClearIndicator = function ClearIndicator(props) {
|
|
86
|
+
var innerProps = props.innerProps,
|
|
87
|
+
_props$clearControlLa = props.clearControlLabel,
|
|
88
|
+
clearControlLabel = _props$clearControlLa === void 0 ? 'clear' : _props$clearControlLa;
|
|
89
|
+
return jsx("div", _extends({}, getStyleProps(props, 'clearIndicator', {
|
|
90
|
+
indicator: true,
|
|
91
|
+
'clear-indicator': true
|
|
92
|
+
}), innerProps), jsx(Pressable, {
|
|
93
|
+
xcss: iconContainerStyles,
|
|
94
|
+
tabIndex: -1,
|
|
95
|
+
"aria-label": clearControlLabel
|
|
96
|
+
}, jsx(CrossIcon, {
|
|
97
|
+
label: "",
|
|
98
|
+
color: "currentColor",
|
|
99
|
+
LEGACY_size: "small",
|
|
100
|
+
LEGACY_margin: "var(--ds-space-negative-025, -0.125rem)"
|
|
101
|
+
})));
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// ==============================
|
|
105
|
+
// Loading
|
|
106
|
+
// ==============================
|
|
107
|
+
|
|
108
|
+
export var loadingIndicatorCSS = function loadingIndicatorCSS(_ref3) {
|
|
109
|
+
var isCompact = _ref3.isCompact;
|
|
110
|
+
return {
|
|
111
|
+
label: 'loadingIndicator',
|
|
112
|
+
padding: "".concat(isCompact ? 0 : "var(--ds-space-075, 6px)", " ", "var(--ds-space-100, 8px)")
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
116
|
+
export var LoadingIndicator = function LoadingIndicator(_ref4) {
|
|
117
|
+
var innerProps = _ref4.innerProps,
|
|
118
|
+
isRtl = _ref4.isRtl,
|
|
119
|
+
_ref4$size = _ref4.size,
|
|
120
|
+
size = _ref4$size === void 0 ? 4 : _ref4$size,
|
|
121
|
+
restProps = _objectWithoutProperties(_ref4, _excluded);
|
|
122
|
+
return jsx("div", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {
|
|
123
|
+
innerProps: innerProps,
|
|
124
|
+
isRtl: isRtl,
|
|
125
|
+
size: size
|
|
126
|
+
}), 'loadingIndicator', {
|
|
127
|
+
indicator: true,
|
|
128
|
+
'loading-indicator': true
|
|
129
|
+
}), innerProps), jsx(Spinner, {
|
|
130
|
+
size: "small"
|
|
131
|
+
}));
|
|
132
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
var _excluded = ["innerRef", "isDisabled", "isHidden", "inputClassName", "testId"];
|
|
5
|
+
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; }
|
|
6
|
+
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) { _defineProperty(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; }
|
|
7
|
+
/**
|
|
8
|
+
* @jsxRuntime classic
|
|
9
|
+
* @jsx jsx
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { jsx } from '@emotion/react';
|
|
13
|
+
import { cleanCommonProps, getStyleProps } from '../../utils';
|
|
14
|
+
export var inputCSS = function inputCSS(_ref) {
|
|
15
|
+
var isDisabled = _ref.isDisabled,
|
|
16
|
+
value = _ref.value;
|
|
17
|
+
return _objectSpread(_objectSpread({
|
|
18
|
+
visibility: isDisabled ? 'hidden' : 'visible',
|
|
19
|
+
// force css to recompute when value change due to @emotion bug.
|
|
20
|
+
// We can remove it whenever the bug is fixed.
|
|
21
|
+
transform: value ? 'translateZ(0)' : ''
|
|
22
|
+
}, containerStyle), {}, {
|
|
23
|
+
margin: "var(--ds-space-025, 2px)",
|
|
24
|
+
paddingBottom: "var(--ds-space-025, 2px)",
|
|
25
|
+
paddingTop: "var(--ds-space-025, 2px)",
|
|
26
|
+
color: "var(--ds-text, #172B4D)"
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
var spacingStyle = {
|
|
30
|
+
gridArea: '1 / 2',
|
|
31
|
+
font: 'inherit',
|
|
32
|
+
minWidth: '2px',
|
|
33
|
+
border: 0,
|
|
34
|
+
margin: 0,
|
|
35
|
+
outline: 0,
|
|
36
|
+
padding: 0
|
|
37
|
+
};
|
|
38
|
+
var containerStyle = {
|
|
39
|
+
flex: '1 1 auto',
|
|
40
|
+
display: 'inline-grid',
|
|
41
|
+
gridArea: '1 / 1 / 2 / 3',
|
|
42
|
+
gridTemplateColumns: '0 min-content',
|
|
43
|
+
'&:after': _objectSpread({
|
|
44
|
+
content: 'attr(data-value) " "',
|
|
45
|
+
visibility: 'hidden',
|
|
46
|
+
whiteSpace: 'pre'
|
|
47
|
+
}, spacingStyle)
|
|
48
|
+
};
|
|
49
|
+
var inputStyle = function inputStyle(isHidden) {
|
|
50
|
+
return _objectSpread({
|
|
51
|
+
label: 'input',
|
|
52
|
+
color: 'inherit',
|
|
53
|
+
background: 0,
|
|
54
|
+
opacity: isHidden ? 0 : 1,
|
|
55
|
+
width: '100%'
|
|
56
|
+
}, spacingStyle);
|
|
57
|
+
};
|
|
58
|
+
var Input = function Input(props) {
|
|
59
|
+
var cx = props.cx,
|
|
60
|
+
value = props.value;
|
|
61
|
+
var _cleanCommonProps = cleanCommonProps(props),
|
|
62
|
+
innerRef = _cleanCommonProps.innerRef,
|
|
63
|
+
isDisabled = _cleanCommonProps.isDisabled,
|
|
64
|
+
isHidden = _cleanCommonProps.isHidden,
|
|
65
|
+
inputClassName = _cleanCommonProps.inputClassName,
|
|
66
|
+
testId = _cleanCommonProps.testId,
|
|
67
|
+
innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);
|
|
68
|
+
var dataId = testId ? "".concat(testId, "-select--input") : null;
|
|
69
|
+
return jsx("div", _extends({}, getStyleProps(props, 'input', {
|
|
70
|
+
'input-container': true
|
|
71
|
+
}), {
|
|
72
|
+
"data-value": value || '',
|
|
73
|
+
"data-testid": dataId && "".concat(dataId, "-container")
|
|
74
|
+
}), jsx("input", _extends({
|
|
75
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
|
|
76
|
+
className: cx({
|
|
77
|
+
input: true
|
|
78
|
+
}, inputClassName),
|
|
79
|
+
ref: innerRef
|
|
80
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
|
|
81
|
+
,
|
|
82
|
+
style: inputStyle(isHidden),
|
|
83
|
+
disabled: isDisabled,
|
|
84
|
+
"data-testid": dataId
|
|
85
|
+
}, innerProps)));
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
89
|
+
export default Input;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
/**
|
|
3
|
+
* @jsxRuntime classic
|
|
4
|
+
* @jsx jsx
|
|
5
|
+
*/
|
|
6
|
+
import { css, jsx } from '@emotion/react';
|
|
7
|
+
|
|
8
|
+
// Assistive text to describe visual elements. Hidden for sighted users.
|
|
9
|
+
var styles = css({
|
|
10
|
+
width: 1,
|
|
11
|
+
height: 1,
|
|
12
|
+
padding: 0,
|
|
13
|
+
position: 'absolute',
|
|
14
|
+
zIndex: 9999,
|
|
15
|
+
border: 0,
|
|
16
|
+
clip: 'rect(1px, 1px, 1px, 1px)',
|
|
17
|
+
label: 'a11yText',
|
|
18
|
+
overflow: 'hidden',
|
|
19
|
+
userSelect: 'none',
|
|
20
|
+
// while hidden text is sitting in the DOM, it should not be selectable
|
|
21
|
+
whiteSpace: 'nowrap'
|
|
22
|
+
});
|
|
23
|
+
var A11yText = function A11yText(props) {
|
|
24
|
+
return jsx("span", _extends({
|
|
25
|
+
css: styles
|
|
26
|
+
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
27
|
+
}, props));
|
|
28
|
+
};
|
|
29
|
+
export default A11yText;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["innerRef"];
|
|
4
|
+
/**
|
|
5
|
+
* @jsxRuntime classic
|
|
6
|
+
* @jsx jsx
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { css, jsx } from '@emotion/react';
|
|
10
|
+
import { removeProps } from '../../../utils';
|
|
11
|
+
var dummyInputStyles = css({
|
|
12
|
+
width: 1,
|
|
13
|
+
padding: 0,
|
|
14
|
+
position: 'relative',
|
|
15
|
+
background: 0,
|
|
16
|
+
border: 0,
|
|
17
|
+
caretColor: 'transparent',
|
|
18
|
+
color: 'transparent',
|
|
19
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
|
|
20
|
+
fontSize: 'inherit',
|
|
21
|
+
gridArea: '1 / 1 / 2 / 3',
|
|
22
|
+
insetInlineStart: -100,
|
|
23
|
+
label: 'dummyInput',
|
|
24
|
+
opacity: 0,
|
|
25
|
+
outline: 0,
|
|
26
|
+
transform: 'scale(.01)'
|
|
27
|
+
});
|
|
28
|
+
export default function DummyInput(_ref) {
|
|
29
|
+
var innerRef = _ref.innerRef,
|
|
30
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
31
|
+
// Remove animation props not meant for HTML elements
|
|
32
|
+
var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');
|
|
33
|
+
return jsx("input", _extends({
|
|
34
|
+
ref: innerRef
|
|
35
|
+
}, filteredProps, {
|
|
36
|
+
css: dummyInputStyles
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useNotifyOpenLayerObserver } from '@atlaskit/layering/experimental/open-layer-observer';
|
|
2
|
+
/**
|
|
3
|
+
* Functional component wrapper around `useNotifyOpenLayerObserver`.
|
|
4
|
+
*
|
|
5
|
+
* This is needed as Select is a class component, which cannot use hooks directly.
|
|
6
|
+
*/
|
|
7
|
+
export function NotifyOpenLayerObserver(_ref) {
|
|
8
|
+
var isOpen = _ref.isOpen,
|
|
9
|
+
onClose = _ref.onClose;
|
|
10
|
+
useNotifyOpenLayerObserver({
|
|
11
|
+
isOpen: isOpen,
|
|
12
|
+
onClose: onClose
|
|
13
|
+
});
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { css, jsx } from '@emotion/react';
|
|
7
|
+
import __noop from '@atlaskit/ds-lib/noop';
|
|
8
|
+
var styles = css({
|
|
9
|
+
width: '100%',
|
|
10
|
+
position: 'absolute',
|
|
11
|
+
insetBlockEnd: 0,
|
|
12
|
+
insetInlineEnd: 0,
|
|
13
|
+
insetInlineStart: 0,
|
|
14
|
+
label: 'requiredInput',
|
|
15
|
+
opacity: 0,
|
|
16
|
+
pointerEvents: 'none'
|
|
17
|
+
});
|
|
18
|
+
var RequiredInput = function RequiredInput(_ref) {
|
|
19
|
+
var name = _ref.name,
|
|
20
|
+
onFocus = _ref.onFocus;
|
|
21
|
+
return jsx("input", {
|
|
22
|
+
required: true,
|
|
23
|
+
name: name,
|
|
24
|
+
tabIndex: -1,
|
|
25
|
+
"aria-hidden": "true",
|
|
26
|
+
onFocus: onFocus,
|
|
27
|
+
css: styles
|
|
28
|
+
// Prevent `Switching from uncontrolled to controlled` error
|
|
29
|
+
,
|
|
30
|
+
value: "",
|
|
31
|
+
onChange: __noop
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// eslint-disable-next-line @repo/internal/react/require-jsdoc
|
|
36
|
+
export default RequiredInput;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
5
|
+
import { Fragment } from 'react';
|
|
6
|
+
import { css, jsx } from '@emotion/react';
|
|
7
|
+
import useScrollCapture from './use-scroll-capture';
|
|
8
|
+
import useScrollLock from './use-scroll-lock';
|
|
9
|
+
var styles = css({
|
|
10
|
+
position: 'fixed',
|
|
11
|
+
insetBlockEnd: 0,
|
|
12
|
+
insetBlockStart: 0,
|
|
13
|
+
insetInlineEnd: 0,
|
|
14
|
+
insetInlineStart: 0
|
|
15
|
+
});
|
|
16
|
+
var blurSelectInput = function blurSelectInput(event) {
|
|
17
|
+
var element = event.target;
|
|
18
|
+
return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();
|
|
19
|
+
};
|
|
20
|
+
export default function ScrollManager(_ref) {
|
|
21
|
+
var children = _ref.children,
|
|
22
|
+
lockEnabled = _ref.lockEnabled,
|
|
23
|
+
_ref$captureEnabled = _ref.captureEnabled,
|
|
24
|
+
captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,
|
|
25
|
+
onBottomArrive = _ref.onBottomArrive,
|
|
26
|
+
onBottomLeave = _ref.onBottomLeave,
|
|
27
|
+
onTopArrive = _ref.onTopArrive,
|
|
28
|
+
onTopLeave = _ref.onTopLeave;
|
|
29
|
+
var setScrollCaptureTarget = useScrollCapture({
|
|
30
|
+
isEnabled: captureEnabled,
|
|
31
|
+
onBottomArrive: onBottomArrive,
|
|
32
|
+
onBottomLeave: onBottomLeave,
|
|
33
|
+
onTopArrive: onTopArrive,
|
|
34
|
+
onTopLeave: onTopLeave
|
|
35
|
+
});
|
|
36
|
+
var setScrollLockTarget = useScrollLock({
|
|
37
|
+
isEnabled: lockEnabled
|
|
38
|
+
});
|
|
39
|
+
var targetRef = function targetRef(element) {
|
|
40
|
+
setScrollCaptureTarget(element);
|
|
41
|
+
setScrollLockTarget(element);
|
|
42
|
+
};
|
|
43
|
+
return jsx(Fragment, null, lockEnabled &&
|
|
44
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
|
|
45
|
+
jsx("div", {
|
|
46
|
+
onClick: blurSelectInput,
|
|
47
|
+
css: styles
|
|
48
|
+
}), children(targetRef));
|
|
49
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
2
|
+
import { supportsPassiveEvents } from '../../../utils';
|
|
3
|
+
var cancelScroll = function cancelScroll(event) {
|
|
4
|
+
if (event.cancelable) {
|
|
5
|
+
event.preventDefault();
|
|
6
|
+
}
|
|
7
|
+
event.stopPropagation();
|
|
8
|
+
};
|
|
9
|
+
// TODO: Fill in the hook {description}.
|
|
10
|
+
/**
|
|
11
|
+
* {description}.
|
|
12
|
+
*/
|
|
13
|
+
export default function useScrollCapture(_ref) {
|
|
14
|
+
var isEnabled = _ref.isEnabled,
|
|
15
|
+
onBottomArrive = _ref.onBottomArrive,
|
|
16
|
+
onBottomLeave = _ref.onBottomLeave,
|
|
17
|
+
onTopArrive = _ref.onTopArrive,
|
|
18
|
+
onTopLeave = _ref.onTopLeave;
|
|
19
|
+
var isBottom = useRef(false);
|
|
20
|
+
var isTop = useRef(false);
|
|
21
|
+
var touchStart = useRef(0);
|
|
22
|
+
var scrollTarget = useRef(null);
|
|
23
|
+
var handleEventDelta = useCallback(function (event, delta) {
|
|
24
|
+
if (scrollTarget.current === null) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
var _scrollTarget$current = scrollTarget.current,
|
|
28
|
+
scrollTop = _scrollTarget$current.scrollTop,
|
|
29
|
+
scrollHeight = _scrollTarget$current.scrollHeight,
|
|
30
|
+
clientHeight = _scrollTarget$current.clientHeight;
|
|
31
|
+
var target = scrollTarget.current;
|
|
32
|
+
var isDeltaPositive = delta > 0;
|
|
33
|
+
var availableScroll = scrollHeight - clientHeight - scrollTop;
|
|
34
|
+
var shouldCancelScroll = false;
|
|
35
|
+
|
|
36
|
+
// reset bottom/top flags
|
|
37
|
+
if (availableScroll > delta && isBottom.current) {
|
|
38
|
+
if (onBottomLeave) {
|
|
39
|
+
onBottomLeave(event);
|
|
40
|
+
}
|
|
41
|
+
isBottom.current = false;
|
|
42
|
+
}
|
|
43
|
+
if (isDeltaPositive && isTop.current) {
|
|
44
|
+
if (onTopLeave) {
|
|
45
|
+
onTopLeave(event);
|
|
46
|
+
}
|
|
47
|
+
isTop.current = false;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// bottom limit
|
|
51
|
+
if (isDeltaPositive && delta > availableScroll) {
|
|
52
|
+
if (onBottomArrive && !isBottom.current) {
|
|
53
|
+
onBottomArrive(event);
|
|
54
|
+
}
|
|
55
|
+
target.scrollTop = scrollHeight;
|
|
56
|
+
shouldCancelScroll = true;
|
|
57
|
+
isBottom.current = true;
|
|
58
|
+
|
|
59
|
+
// top limit
|
|
60
|
+
} else if (!isDeltaPositive && -delta > scrollTop) {
|
|
61
|
+
if (onTopArrive && !isTop.current) {
|
|
62
|
+
onTopArrive(event);
|
|
63
|
+
}
|
|
64
|
+
target.scrollTop = 0;
|
|
65
|
+
shouldCancelScroll = true;
|
|
66
|
+
isTop.current = true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// cancel scroll
|
|
70
|
+
if (shouldCancelScroll) {
|
|
71
|
+
cancelScroll(event);
|
|
72
|
+
}
|
|
73
|
+
}, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);
|
|
74
|
+
var onWheel = useCallback(function (event) {
|
|
75
|
+
handleEventDelta(event, event.deltaY);
|
|
76
|
+
}, [handleEventDelta]);
|
|
77
|
+
var onTouchStart = useCallback(function (event) {
|
|
78
|
+
// set touch start so we can calculate touchmove delta
|
|
79
|
+
touchStart.current = event.changedTouches[0].clientY;
|
|
80
|
+
}, []);
|
|
81
|
+
var onTouchMove = useCallback(function (event) {
|
|
82
|
+
var deltaY = touchStart.current - event.changedTouches[0].clientY;
|
|
83
|
+
handleEventDelta(event, deltaY);
|
|
84
|
+
}, [handleEventDelta]);
|
|
85
|
+
var startListening = useCallback(function (el) {
|
|
86
|
+
// bail early if no element is available to attach to
|
|
87
|
+
if (!el) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
var notPassive = supportsPassiveEvents ? {
|
|
91
|
+
passive: false
|
|
92
|
+
} : false;
|
|
93
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
94
|
+
el.addEventListener('wheel', onWheel, notPassive);
|
|
95
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
96
|
+
el.addEventListener('touchstart', onTouchStart, notPassive);
|
|
97
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
98
|
+
el.addEventListener('touchmove', onTouchMove, notPassive);
|
|
99
|
+
}, [onTouchMove, onTouchStart, onWheel]);
|
|
100
|
+
var stopListening = useCallback(function (el) {
|
|
101
|
+
// bail early if no element is available to detach from
|
|
102
|
+
if (!el) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
107
|
+
el.removeEventListener('wheel', onWheel, false);
|
|
108
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
109
|
+
el.removeEventListener('touchstart', onTouchStart, false);
|
|
110
|
+
// eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
|
|
111
|
+
el.removeEventListener('touchmove', onTouchMove, false);
|
|
112
|
+
}, [onTouchMove, onTouchStart, onWheel]);
|
|
113
|
+
useEffect(function () {
|
|
114
|
+
if (!isEnabled) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
var element = scrollTarget.current;
|
|
118
|
+
startListening(element);
|
|
119
|
+
return function () {
|
|
120
|
+
stopListening(element);
|
|
121
|
+
};
|
|
122
|
+
}, [isEnabled, startListening, stopListening]);
|
|
123
|
+
return function (element) {
|
|
124
|
+
scrollTarget.current = element;
|
|
125
|
+
};
|
|
126
|
+
}
|