@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.
Files changed (268) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/compiled/components/containers.compiled.css +26 -0
  3. package/dist/cjs/compiled/components/containers.js +119 -0
  4. package/dist/cjs/compiled/components/control.compiled.css +51 -0
  5. package/dist/cjs/compiled/components/control.js +66 -0
  6. package/dist/cjs/compiled/components/group.compiled.css +12 -0
  7. package/dist/cjs/compiled/components/group.js +81 -0
  8. package/dist/cjs/compiled/components/indicators.compiled.css +24 -0
  9. package/dist/cjs/compiled/components/indicators.js +157 -0
  10. package/dist/cjs/compiled/components/input.compiled.css +49 -0
  11. package/dist/cjs/compiled/components/input.js +69 -0
  12. package/dist/cjs/compiled/components/internal/a11y-text.compiled.css +15 -0
  13. package/dist/cjs/compiled/components/internal/a11y-text.js +23 -0
  14. package/dist/cjs/compiled/components/internal/dummy-input.compiled.css +17 -0
  15. package/dist/cjs/compiled/components/internal/dummy-input.js +30 -0
  16. package/dist/cjs/compiled/components/internal/required-input.compiled.css +8 -0
  17. package/dist/cjs/compiled/components/internal/required-input.js +34 -0
  18. package/dist/cjs/compiled/components/live-region.js +177 -0
  19. package/dist/cjs/compiled/components/menu.compiled.css +19 -0
  20. package/dist/cjs/compiled/components/menu.js +491 -0
  21. package/dist/cjs/compiled/components/multi-value.compiled.css +56 -0
  22. package/dist/cjs/compiled/components/multi-value.js +199 -0
  23. package/dist/cjs/compiled/components/option.compiled.css +22 -0
  24. package/dist/cjs/compiled/components/option.js +57 -0
  25. package/dist/cjs/compiled/components/placeholder.compiled.css +7 -0
  26. package/dist/cjs/compiled/components/placeholder.js +45 -0
  27. package/dist/cjs/compiled/components/single-value.compiled.css +13 -0
  28. package/dist/cjs/compiled/components/single-value.js +46 -0
  29. package/dist/cjs/components/containers.js +12 -72
  30. package/dist/cjs/components/control.js +11 -96
  31. package/dist/cjs/components/group.js +15 -53
  32. package/dist/cjs/components/indicators.js +15 -107
  33. package/dist/cjs/components/input.js +12 -81
  34. package/dist/cjs/components/internal/a11y-text.js +6 -25
  35. package/dist/cjs/components/internal/dummy-input.js +8 -36
  36. package/dist/cjs/components/internal/notify-open-layer-observer.js +1 -0
  37. package/dist/cjs/components/internal/required-input.js +7 -31
  38. package/dist/cjs/components/internal/scroll-manager.js +19 -17
  39. package/dist/cjs/components/live-region.js +6 -164
  40. package/dist/cjs/components/menu.js +26 -181
  41. package/dist/cjs/components/multi-value.js +21 -197
  42. package/dist/cjs/components/option.js +11 -68
  43. package/dist/cjs/components/placeholder.js +11 -20
  44. package/dist/cjs/components/single-value.js +11 -26
  45. package/dist/cjs/emotion/components/containers.js +113 -0
  46. package/dist/cjs/emotion/components/control.js +112 -0
  47. package/dist/cjs/emotion/components/group.js +72 -0
  48. package/dist/cjs/emotion/components/indicators.js +138 -0
  49. package/dist/cjs/emotion/components/input.js +94 -0
  50. package/dist/cjs/emotion/components/internal/a11y-text.js +37 -0
  51. package/dist/cjs/emotion/components/internal/dummy-input.js +45 -0
  52. package/dist/cjs/emotion/components/internal/required-input.js +45 -0
  53. package/dist/cjs/emotion/components/live-region.js +182 -0
  54. package/dist/cjs/emotion/components/menu.js +456 -0
  55. package/dist/cjs/emotion/components/multi-value.js +224 -0
  56. package/dist/cjs/emotion/components/option.js +84 -0
  57. package/dist/cjs/emotion/components/placeholder.js +36 -0
  58. package/dist/cjs/emotion/components/single-value.js +42 -0
  59. package/dist/cjs/utils.js +2 -1
  60. package/dist/es2019/compiled/components/containers.compiled.css +26 -0
  61. package/dist/es2019/compiled/components/containers.js +115 -0
  62. package/dist/es2019/compiled/components/control.compiled.css +51 -0
  63. package/dist/es2019/compiled/components/control.js +58 -0
  64. package/dist/es2019/compiled/components/group.compiled.css +12 -0
  65. package/dist/es2019/compiled/components/group.js +72 -0
  66. package/dist/es2019/compiled/components/indicators.compiled.css +24 -0
  67. package/dist/es2019/compiled/components/indicators.js +144 -0
  68. package/dist/es2019/compiled/components/input.compiled.css +49 -0
  69. package/dist/es2019/compiled/components/input.js +59 -0
  70. package/dist/es2019/compiled/components/internal/a11y-text.compiled.css +15 -0
  71. package/dist/es2019/compiled/components/internal/a11y-text.js +11 -0
  72. package/dist/es2019/compiled/components/internal/dummy-input.compiled.css +17 -0
  73. package/dist/es2019/compiled/components/internal/dummy-input.js +19 -0
  74. package/dist/es2019/compiled/components/internal/required-input.compiled.css +8 -0
  75. package/dist/es2019/compiled/components/internal/required-input.js +23 -0
  76. package/dist/es2019/compiled/components/live-region.js +171 -0
  77. package/dist/es2019/compiled/components/menu.compiled.css +19 -0
  78. package/dist/es2019/compiled/components/menu.js +478 -0
  79. package/dist/es2019/compiled/components/multi-value.compiled.css +56 -0
  80. package/dist/es2019/compiled/components/multi-value.js +190 -0
  81. package/dist/es2019/compiled/components/option.compiled.css +22 -0
  82. package/dist/es2019/compiled/components/option.js +48 -0
  83. package/dist/es2019/compiled/components/placeholder.compiled.css +7 -0
  84. package/dist/es2019/compiled/components/placeholder.js +36 -0
  85. package/dist/es2019/compiled/components/single-value.compiled.css +13 -0
  86. package/dist/es2019/compiled/components/single-value.js +37 -0
  87. package/dist/es2019/components/containers.js +10 -87
  88. package/dist/es2019/components/control.js +8 -103
  89. package/dist/es2019/components/group.js +9 -54
  90. package/dist/es2019/components/indicators.js +11 -113
  91. package/dist/es2019/components/input.js +7 -83
  92. package/dist/es2019/components/internal/a11y-text.js +6 -26
  93. package/dist/es2019/components/internal/dummy-input.js +7 -36
  94. package/dist/es2019/components/internal/notify-open-layer-observer.js +1 -0
  95. package/dist/es2019/components/internal/required-input.js +6 -32
  96. package/dist/es2019/components/internal/scroll-manager.js +16 -16
  97. package/dist/es2019/components/live-region.js +5 -168
  98. package/dist/es2019/components/menu.js +14 -192
  99. package/dist/es2019/components/multi-value.js +12 -216
  100. package/dist/es2019/components/option.js +7 -75
  101. package/dist/es2019/components/placeholder.js +7 -25
  102. package/dist/es2019/components/single-value.js +7 -31
  103. package/dist/es2019/emotion/components/containers.js +110 -0
  104. package/dist/es2019/emotion/components/control.js +108 -0
  105. package/dist/es2019/emotion/components/group.js +60 -0
  106. package/dist/es2019/emotion/components/indicators.js +129 -0
  107. package/dist/es2019/emotion/components/input.js +87 -0
  108. package/dist/es2019/emotion/components/internal/a11y-text.js +28 -0
  109. package/dist/es2019/emotion/components/internal/dummy-input.js +38 -0
  110. package/dist/es2019/emotion/components/internal/required-input.js +36 -0
  111. package/dist/es2019/emotion/components/live-region.js +180 -0
  112. package/dist/es2019/emotion/components/menu.js +452 -0
  113. package/dist/es2019/emotion/components/multi-value.js +228 -0
  114. package/dist/es2019/emotion/components/option.js +79 -0
  115. package/dist/es2019/emotion/components/placeholder.js +29 -0
  116. package/dist/es2019/emotion/components/single-value.js +35 -0
  117. package/dist/es2019/utils.js +1 -0
  118. package/dist/esm/compiled/components/containers.compiled.css +26 -0
  119. package/dist/esm/compiled/components/containers.js +110 -0
  120. package/dist/esm/compiled/components/control.compiled.css +51 -0
  121. package/dist/esm/compiled/components/control.js +57 -0
  122. package/dist/esm/compiled/components/group.compiled.css +12 -0
  123. package/dist/esm/compiled/components/group.js +71 -0
  124. package/dist/esm/compiled/components/indicators.compiled.css +24 -0
  125. package/dist/esm/compiled/components/indicators.js +148 -0
  126. package/dist/esm/compiled/components/input.compiled.css +49 -0
  127. package/dist/esm/compiled/components/input.js +59 -0
  128. package/dist/esm/compiled/components/internal/a11y-text.compiled.css +15 -0
  129. package/dist/esm/compiled/components/internal/a11y-text.js +13 -0
  130. package/dist/esm/compiled/components/internal/dummy-input.compiled.css +17 -0
  131. package/dist/esm/compiled/components/internal/dummy-input.js +20 -0
  132. package/dist/esm/compiled/components/internal/required-input.compiled.css +8 -0
  133. package/dist/esm/compiled/components/internal/required-input.js +24 -0
  134. package/dist/esm/compiled/components/live-region.js +168 -0
  135. package/dist/esm/compiled/components/menu.compiled.css +19 -0
  136. package/dist/esm/compiled/components/menu.js +485 -0
  137. package/dist/esm/compiled/components/multi-value.compiled.css +56 -0
  138. package/dist/esm/compiled/components/multi-value.js +187 -0
  139. package/dist/esm/compiled/components/option.compiled.css +22 -0
  140. package/dist/esm/compiled/components/option.js +47 -0
  141. package/dist/esm/compiled/components/placeholder.compiled.css +7 -0
  142. package/dist/esm/compiled/components/placeholder.js +35 -0
  143. package/dist/esm/compiled/components/single-value.compiled.css +13 -0
  144. package/dist/esm/compiled/components/single-value.js +36 -0
  145. package/dist/esm/components/containers.js +12 -73
  146. package/dist/esm/components/control.js +8 -97
  147. package/dist/esm/components/group.js +11 -54
  148. package/dist/esm/components/indicators.js +15 -109
  149. package/dist/esm/components/input.js +8 -83
  150. package/dist/esm/components/internal/a11y-text.js +6 -26
  151. package/dist/esm/components/internal/dummy-input.js +7 -37
  152. package/dist/esm/components/internal/notify-open-layer-observer.js +1 -0
  153. package/dist/esm/components/internal/required-input.js +7 -32
  154. package/dist/esm/components/internal/scroll-manager.js +16 -16
  155. package/dist/esm/components/live-region.js +5 -163
  156. package/dist/esm/components/menu.js +24 -182
  157. package/dist/esm/components/multi-value.js +17 -199
  158. package/dist/esm/components/option.js +8 -69
  159. package/dist/esm/components/placeholder.js +8 -21
  160. package/dist/esm/components/single-value.js +8 -27
  161. package/dist/esm/emotion/components/containers.js +106 -0
  162. package/dist/esm/emotion/components/control.js +104 -0
  163. package/dist/esm/emotion/components/group.js +66 -0
  164. package/dist/esm/emotion/components/indicators.js +133 -0
  165. package/dist/esm/emotion/components/input.js +90 -0
  166. package/dist/esm/emotion/components/internal/a11y-text.js +30 -0
  167. package/dist/esm/emotion/components/internal/dummy-input.js +39 -0
  168. package/dist/esm/emotion/components/internal/required-input.js +37 -0
  169. package/dist/esm/emotion/components/live-region.js +177 -0
  170. package/dist/esm/emotion/components/menu.js +456 -0
  171. package/dist/esm/emotion/components/multi-value.js +218 -0
  172. package/dist/esm/emotion/components/option.js +76 -0
  173. package/dist/esm/emotion/components/placeholder.js +28 -0
  174. package/dist/esm/emotion/components/single-value.js +34 -0
  175. package/dist/esm/utils.js +2 -1
  176. package/dist/types/compiled/components/containers.d.ts +53 -0
  177. package/dist/types/compiled/components/control.d.ts +41 -0
  178. package/dist/types/compiled/components/group.d.ts +54 -0
  179. package/dist/types/compiled/components/indicators.d.ts +72 -0
  180. package/dist/types/compiled/components/input.d.ts +36 -0
  181. package/dist/types/compiled/components/internal/a11y-text.d.ts +3 -0
  182. package/dist/types/compiled/components/internal/dummy-input.d.ts +8 -0
  183. package/dist/types/compiled/components/internal/required-input.d.ts +10 -0
  184. package/dist/types/compiled/components/live-region.d.ts +19 -0
  185. package/dist/types/compiled/components/menu.d.ts +115 -0
  186. package/dist/types/compiled/components/multi-value.d.ts +57 -0
  187. package/dist/types/compiled/components/option.d.ts +48 -0
  188. package/dist/types/compiled/components/placeholder.d.ts +21 -0
  189. package/dist/types/compiled/components/single-value.d.ts +27 -0
  190. package/dist/types/components/containers.d.ts +6 -11
  191. package/dist/types/components/control.d.ts +4 -9
  192. package/dist/types/components/group.d.ts +8 -10
  193. package/dist/types/components/index.d.ts +21 -21
  194. package/dist/types/components/indicators.d.ts +7 -12
  195. package/dist/types/components/input.d.ts +3 -8
  196. package/dist/types/components/internal/a11y-text.d.ts +2 -7
  197. package/dist/types/components/internal/dummy-input.d.ts +3 -8
  198. package/dist/types/components/internal/required-input.d.ts +0 -4
  199. package/dist/types/components/internal/scroll-manager.d.ts +2 -7
  200. package/dist/types/components/live-region.d.ts +2 -8
  201. package/dist/types/components/menu.d.ts +10 -15
  202. package/dist/types/components/multi-value.d.ts +19 -13
  203. package/dist/types/components/option.d.ts +3 -8
  204. package/dist/types/components/placeholder.d.ts +3 -8
  205. package/dist/types/components/single-value.d.ts +3 -8
  206. package/dist/types/emotion/components/containers.d.ts +54 -0
  207. package/dist/types/emotion/components/control.d.ts +42 -0
  208. package/dist/types/emotion/components/group.d.ts +52 -0
  209. package/dist/types/emotion/components/indicators.d.ts +73 -0
  210. package/dist/types/emotion/components/input.d.ts +37 -0
  211. package/dist/types/emotion/components/internal/a11y-text.d.ts +8 -0
  212. package/dist/types/emotion/components/internal/dummy-input.d.ts +9 -0
  213. package/dist/types/emotion/components/internal/required-input.d.ts +10 -0
  214. package/dist/types/emotion/components/live-region.d.ts +25 -0
  215. package/dist/types/emotion/components/menu.d.ts +116 -0
  216. package/dist/types/emotion/components/multi-value.d.ts +47 -0
  217. package/dist/types/emotion/components/option.d.ts +49 -0
  218. package/dist/types/emotion/components/placeholder.d.ts +22 -0
  219. package/dist/types/emotion/components/single-value.d.ts +28 -0
  220. package/dist/types/select.d.ts +21 -21
  221. package/dist/types/types.d.ts +3 -0
  222. package/dist/types-ts4.5/compiled/components/containers.d.ts +53 -0
  223. package/dist/types-ts4.5/compiled/components/control.d.ts +41 -0
  224. package/dist/types-ts4.5/compiled/components/group.d.ts +54 -0
  225. package/dist/types-ts4.5/compiled/components/indicators.d.ts +72 -0
  226. package/dist/types-ts4.5/compiled/components/input.d.ts +36 -0
  227. package/dist/types-ts4.5/compiled/components/internal/a11y-text.d.ts +3 -0
  228. package/dist/types-ts4.5/compiled/components/internal/dummy-input.d.ts +8 -0
  229. package/dist/types-ts4.5/compiled/components/internal/required-input.d.ts +10 -0
  230. package/dist/types-ts4.5/compiled/components/live-region.d.ts +19 -0
  231. package/dist/types-ts4.5/compiled/components/menu.d.ts +115 -0
  232. package/dist/types-ts4.5/compiled/components/multi-value.d.ts +57 -0
  233. package/dist/types-ts4.5/compiled/components/option.d.ts +48 -0
  234. package/dist/types-ts4.5/compiled/components/placeholder.d.ts +21 -0
  235. package/dist/types-ts4.5/compiled/components/single-value.d.ts +27 -0
  236. package/dist/types-ts4.5/components/containers.d.ts +6 -11
  237. package/dist/types-ts4.5/components/control.d.ts +4 -9
  238. package/dist/types-ts4.5/components/group.d.ts +8 -10
  239. package/dist/types-ts4.5/components/index.d.ts +21 -21
  240. package/dist/types-ts4.5/components/indicators.d.ts +7 -12
  241. package/dist/types-ts4.5/components/input.d.ts +3 -8
  242. package/dist/types-ts4.5/components/internal/a11y-text.d.ts +2 -7
  243. package/dist/types-ts4.5/components/internal/dummy-input.d.ts +3 -8
  244. package/dist/types-ts4.5/components/internal/required-input.d.ts +0 -4
  245. package/dist/types-ts4.5/components/internal/scroll-manager.d.ts +2 -7
  246. package/dist/types-ts4.5/components/live-region.d.ts +2 -8
  247. package/dist/types-ts4.5/components/menu.d.ts +10 -15
  248. package/dist/types-ts4.5/components/multi-value.d.ts +19 -13
  249. package/dist/types-ts4.5/components/option.d.ts +3 -8
  250. package/dist/types-ts4.5/components/placeholder.d.ts +3 -8
  251. package/dist/types-ts4.5/components/single-value.d.ts +3 -8
  252. package/dist/types-ts4.5/emotion/components/containers.d.ts +54 -0
  253. package/dist/types-ts4.5/emotion/components/control.d.ts +42 -0
  254. package/dist/types-ts4.5/emotion/components/group.d.ts +52 -0
  255. package/dist/types-ts4.5/emotion/components/indicators.d.ts +73 -0
  256. package/dist/types-ts4.5/emotion/components/input.d.ts +37 -0
  257. package/dist/types-ts4.5/emotion/components/internal/a11y-text.d.ts +8 -0
  258. package/dist/types-ts4.5/emotion/components/internal/dummy-input.d.ts +9 -0
  259. package/dist/types-ts4.5/emotion/components/internal/required-input.d.ts +10 -0
  260. package/dist/types-ts4.5/emotion/components/live-region.d.ts +25 -0
  261. package/dist/types-ts4.5/emotion/components/menu.d.ts +116 -0
  262. package/dist/types-ts4.5/emotion/components/multi-value.d.ts +47 -0
  263. package/dist/types-ts4.5/emotion/components/option.d.ts +49 -0
  264. package/dist/types-ts4.5/emotion/components/placeholder.d.ts +22 -0
  265. package/dist/types-ts4.5/emotion/components/single-value.d.ts +28 -0
  266. package/dist/types-ts4.5/select.d.ts +21 -21
  267. package/dist/types-ts4.5/types.d.ts +3 -0
  268. package/package.json +10 -2
@@ -0,0 +1,110 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
8
+ import { jsx } from '@emotion/react';
9
+ import { fg } from '@atlaskit/platform-feature-flags';
10
+ import { media } from '@atlaskit/primitives';
11
+ import { getStyleProps } from '../../utils';
12
+
13
+ // ==============================
14
+ // Root Container
15
+ // ==============================
16
+
17
+ export const containerCSS = ({
18
+ isDisabled,
19
+ isRtl
20
+ }) => ({
21
+ label: 'container',
22
+ direction: isRtl ? 'rtl' : undefined,
23
+ position: 'relative',
24
+ font: fg('platform_design_system_team_safari_input_fix') ? "var(--ds-font-body-large, normal 400 16px/24px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)" : "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
25
+ pointerEvents: 'all',
26
+ cursor: isDisabled ? 'not-allowed' : undefined,
27
+ [`${media.above.xs}`]: {
28
+ font: fg('platform_design_system_team_safari_input_fix') ? "var(--ds-font-body, normal 400 14px/20px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)" : undefined
29
+ }
30
+ });
31
+
32
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
33
+ export const SelectContainer = props => {
34
+ const {
35
+ children,
36
+ innerProps,
37
+ isDisabled,
38
+ isRtl
39
+ } = props;
40
+ return jsx("div", _extends({}, getStyleProps(props, 'container', {
41
+ '--is-disabled': isDisabled,
42
+ '--is-rtl': isRtl
43
+ }), innerProps), children);
44
+ };
45
+
46
+ // ==============================
47
+ // Value Container
48
+ // ==============================
49
+
50
+ export const valueContainerCSS = ({
51
+ isMulti,
52
+ hasValue,
53
+ isCompact,
54
+ selectProps: {
55
+ controlShouldRenderValue
56
+ }
57
+ }) => ({
58
+ alignItems: 'center',
59
+ display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',
60
+ flex: 1,
61
+ flexWrap: 'wrap',
62
+ WebkitOverflowScrolling: 'touch',
63
+ position: 'relative',
64
+ overflow: 'hidden',
65
+ padding: `${isCompact ? 0 : "var(--ds-space-025, 2px)"} ${"var(--ds-space-075, 6px)"}`
66
+ });
67
+
68
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
69
+ export const ValueContainer = props => {
70
+ const {
71
+ children,
72
+ innerProps,
73
+ isMulti,
74
+ hasValue
75
+ } = props;
76
+ const styles = getStyleProps(props, 'valueContainer', {
77
+ 'value-container': true,
78
+ 'value-container--is-multi': isMulti,
79
+ 'value-container--has-value': hasValue
80
+ });
81
+ return jsx("div", _extends({
82
+ css: styles.css
83
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
84
+ ,
85
+ className: styles.className || 'value-container'
86
+ }, innerProps), children);
87
+ };
88
+
89
+ // ==============================
90
+ // Indicator Container
91
+ // ==============================
92
+
93
+ export const indicatorsContainerCSS = () => ({
94
+ alignItems: 'center',
95
+ alignSelf: 'stretch',
96
+ display: 'flex',
97
+ flexShrink: 0,
98
+ paddingRight: "var(--ds-space-050, 4px)"
99
+ });
100
+
101
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
102
+ export const IndicatorsContainer = props => {
103
+ const {
104
+ children,
105
+ innerProps
106
+ } = props;
107
+ return jsx("div", _extends({}, getStyleProps(props, 'indicatorsContainer', {
108
+ indicators: true
109
+ }), innerProps), children);
110
+ };
@@ -0,0 +1,108 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
8
+ import { jsx } from '@emotion/react';
9
+ import { getStyleProps } from '../../utils';
10
+ export const css = ({
11
+ isDisabled,
12
+ isFocused,
13
+ isInvalid,
14
+ isCompact,
15
+ appearance
16
+ }) => {
17
+ let borderColor = isFocused ? "var(--ds-border-focused, #388BFF)" : "var(--ds-border-input, #8590A2)";
18
+ let backgroundColor = isFocused ? "var(--ds-background-input-pressed, #FFFFFF)" : "var(--ds-background-input, #FFFFFF)";
19
+ let backgroundColorHover = isFocused ? "var(--ds-background-input-pressed, #FFFFFF)" : "var(--ds-background-input-hovered, #F7F8F9)";
20
+ let borderColorHover = isFocused ? "var(--ds-border-focused, #388BFF)" : "var(--ds-border-input, #8590A2)";
21
+ if (isDisabled) {
22
+ backgroundColor = "var(--ds-background-disabled, #091E4208)";
23
+ borderColor = "var(--ds-background-disabled, #091E4208)";
24
+ }
25
+ if (isInvalid) {
26
+ borderColor = "var(--ds-border-danger, #E2483D)";
27
+ borderColorHover = "var(--ds-border-danger, #E2483D)";
28
+ }
29
+ const transitionDuration = '200ms';
30
+ if (appearance === 'subtle') {
31
+ borderColor = isFocused ? "var(--ds-border-focused, #388BFF)" : 'transparent';
32
+ backgroundColor = isFocused ? "var(--ds-surface, #FFFFFF)" : 'transparent';
33
+ backgroundColorHover = isFocused ? "var(--ds-background-input-pressed, #FFFFFF)" : "var(--ds-background-input-hovered, #F7F8F9)";
34
+ }
35
+ if (appearance === 'none') {
36
+ borderColor = 'transparent';
37
+ backgroundColor = 'transparent';
38
+ backgroundColorHover = 'transparent';
39
+ borderColorHover = 'transparent';
40
+ }
41
+ return {
42
+ label: 'control',
43
+ alignItems: 'center',
44
+ cursor: 'default',
45
+ display: 'flex',
46
+ flexWrap: 'wrap',
47
+ justifyContent: 'space-between',
48
+ outline: '0 !important',
49
+ position: 'relative',
50
+ // Turn pointer events off when disabled - this makes it so hover etc don't work.
51
+ pointerEvents: isDisabled ? 'none' : undefined,
52
+ backgroundColor,
53
+ borderColor,
54
+ borderStyle: 'solid',
55
+ borderRadius: "var(--ds-border-radius-100, 3px)",
56
+ borderWidth: "var(--ds-border-width, 1px)",
57
+ boxShadow: isInvalid ? `inset 0 0 0 ${"var(--ds-border-width, 1px)"} ${borderColor}` : 'none',
58
+ '&:focus-within': {
59
+ boxShadow: `inset 0 0 0 ${"var(--ds-border-width, 1px)"} ${borderColor}`
60
+ },
61
+ minHeight: isCompact ? 32 : 40,
62
+ padding: 0,
63
+ transition: `background-color ${transitionDuration} ease-in-out,
64
+ border-color ${transitionDuration} ease-in-out`,
65
+ '::-webkit-scrollbar': {
66
+ height: 8,
67
+ width: 8
68
+ },
69
+ '::-webkit-scrollbar-corner': {
70
+ display: 'none'
71
+ },
72
+ ':hover': {
73
+ '::-webkit-scrollbar-thumb': {
74
+ // scrollbars occur only if the user passes in a custom component with overflow: scroll
75
+ backgroundColor: 'rgba(0,0,0,0.2)'
76
+ },
77
+ cursor: 'pointer',
78
+ backgroundColor: backgroundColorHover,
79
+ borderColor: borderColorHover
80
+ },
81
+ '::-webkit-scrollbar-thumb:hover': {
82
+ backgroundColor: 'rgba(0,0,0,0.4)'
83
+ }
84
+ };
85
+ };
86
+ const Control = props => {
87
+ const {
88
+ children,
89
+ isDisabled,
90
+ isFocused,
91
+ innerRef,
92
+ innerProps,
93
+ menuIsOpen
94
+ } = props;
95
+ return jsx("div", _extends({
96
+ ref: innerRef
97
+ }, getStyleProps(props, 'control', {
98
+ control: true,
99
+ 'control--is-disabled': isDisabled,
100
+ 'control--is-focused': isFocused,
101
+ 'control--menu-is-open': menuIsOpen
102
+ }), innerProps, {
103
+ "aria-disabled": isDisabled || undefined
104
+ }), children);
105
+ };
106
+
107
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
108
+ export default Control;
@@ -0,0 +1,60 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
8
+ import { jsx } from '@emotion/react';
9
+ import { cleanCommonProps, getStyleProps } from '../../utils';
10
+ export const groupCSS = ({}) => ({
11
+ paddingBottom: "var(--ds-space-100, 8px)",
12
+ paddingTop: "var(--ds-space-100, 8px)"
13
+ });
14
+ const Group = props => {
15
+ const {
16
+ children,
17
+ cx,
18
+ getStyles,
19
+ getClassNames,
20
+ Heading,
21
+ headingProps,
22
+ innerProps,
23
+ label,
24
+ selectProps
25
+ } = props;
26
+ return jsx("div", _extends({}, getStyleProps(props, 'group', {
27
+ group: true
28
+ }), innerProps), jsx(Heading, _extends({}, headingProps, {
29
+ selectProps: selectProps,
30
+ getStyles: getStyles,
31
+ getClassNames: getClassNames,
32
+ cx: cx
33
+ }), label), jsx("div", null, children));
34
+ };
35
+ export const groupHeadingCSS = ({}) => ({
36
+ label: 'group',
37
+ cursor: 'default',
38
+ display: 'block',
39
+ marginBottom: '0.25em',
40
+ paddingLeft: "var(--ds-space-150, 12px)",
41
+ paddingRight: "var(--ds-space-150, 12px)",
42
+ font: "var(--ds-font-body-small, normal 400 11px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
43
+ color: "var(--ds-text-subtle, #44546F)",
44
+ fontWeight: "var(--ds-font-weight-bold, 700)",
45
+ textTransform: 'none'
46
+ });
47
+
48
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
49
+ export const GroupHeading = props => {
50
+ const {
51
+ data,
52
+ ...innerProps
53
+ } = cleanCommonProps(props);
54
+ return jsx("div", _extends({}, getStyleProps(props, 'groupHeading', {
55
+ 'group-heading': true
56
+ }), innerProps));
57
+ };
58
+
59
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
60
+ export default Group;
@@ -0,0 +1,129 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
8
+ import { jsx } from '@emotion/react';
9
+ import DownIcon from '@atlaskit/icon/utility/migration/chevron-down';
10
+ import CrossIcon from '@atlaskit/icon/utility/migration/cross-circle--select-clear';
11
+ import { Inline, Pressable, xcss } from '@atlaskit/primitives';
12
+ import Spinner from '@atlaskit/spinner';
13
+ import { getStyleProps } from '../../utils';
14
+
15
+ // ==============================
16
+ // Dropdown & Clear Icons
17
+ // ==============================
18
+
19
+ const iconContainerStyles = xcss({
20
+ all: 'unset',
21
+ outline: 'revert',
22
+ display: 'flex',
23
+ alignItems: 'center',
24
+ justifyContent: 'center',
25
+ padding: 'space.025'
26
+ });
27
+ const dropdownWrapperStyles = xcss({
28
+ padding: 'space.075'
29
+ });
30
+
31
+ // ==============================
32
+ // Dropdown & Clear Buttons
33
+ // ==============================
34
+
35
+ export const dropdownIndicatorCSS = ({
36
+ isCompact,
37
+ isDisabled
38
+ }) => ({
39
+ label: 'indicatorContainer',
40
+ display: 'flex',
41
+ transition: 'color 150ms',
42
+ color: isDisabled ? "var(--ds-text-disabled, #091E424F)" : "var(--ds-text-subtle, #44546F)",
43
+ padding: `${isCompact ? 0 : "var(--ds-space-075, 6px)"} ${"var(--ds-space-025, 2px)"}`,
44
+ ':hover': {
45
+ color: "var(--ds-text-subtle, #44546F)"
46
+ }
47
+ });
48
+
49
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
50
+ export const DropdownIndicator = props => {
51
+ const {
52
+ innerProps,
53
+ children
54
+ } = props;
55
+ return jsx("div", _extends({}, getStyleProps(props, 'dropdownIndicator', {
56
+ indicator: true,
57
+ 'dropdown-indicator': true
58
+ }), innerProps), children ? children : jsx(Inline, {
59
+ as: "span",
60
+ xcss: dropdownWrapperStyles
61
+ }, jsx(DownIcon, {
62
+ color: "currentColor",
63
+ label: "open",
64
+ LEGACY_margin: "var(--ds-space-negative-075, -0.375rem)"
65
+ })));
66
+ };
67
+ export const clearIndicatorCSS = ({
68
+ isCompact
69
+ }) => ({
70
+ label: 'indicatorContainer',
71
+ display: 'flex',
72
+ transition: 'color 150ms',
73
+ color: "var(--ds-text-subtlest, #626F86)",
74
+ padding: `${isCompact ? 0 : "var(--ds-space-075, 6px)"} ${"var(--ds-space-025, 2px)"}`,
75
+ ':hover': {
76
+ color: "var(--ds-text-subtle, #44546F)"
77
+ }
78
+ });
79
+
80
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
81
+ export const ClearIndicator = props => {
82
+ const {
83
+ innerProps,
84
+ clearControlLabel = 'clear'
85
+ } = props;
86
+ return jsx("div", _extends({}, getStyleProps(props, 'clearIndicator', {
87
+ indicator: true,
88
+ 'clear-indicator': true
89
+ }), innerProps), jsx(Pressable, {
90
+ xcss: iconContainerStyles,
91
+ tabIndex: -1,
92
+ "aria-label": clearControlLabel
93
+ }, jsx(CrossIcon, {
94
+ label: "",
95
+ color: "currentColor",
96
+ LEGACY_size: "small",
97
+ LEGACY_margin: "var(--ds-space-negative-025, -0.125rem)"
98
+ })));
99
+ };
100
+
101
+ // ==============================
102
+ // Loading
103
+ // ==============================
104
+
105
+ export const loadingIndicatorCSS = ({
106
+ isCompact
107
+ }) => ({
108
+ label: 'loadingIndicator',
109
+ padding: `${isCompact ? 0 : "var(--ds-space-075, 6px)"} ${"var(--ds-space-100, 8px)"}`
110
+ });
111
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
112
+ export const LoadingIndicator = ({
113
+ innerProps,
114
+ isRtl,
115
+ size = 4,
116
+ ...restProps
117
+ }) => {
118
+ return jsx("div", _extends({}, getStyleProps({
119
+ ...restProps,
120
+ innerProps,
121
+ isRtl,
122
+ size
123
+ }, 'loadingIndicator', {
124
+ indicator: true,
125
+ 'loading-indicator': true
126
+ }), innerProps), jsx(Spinner, {
127
+ size: "small"
128
+ }));
129
+ };
@@ -0,0 +1,87 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
8
+ import { jsx } from '@emotion/react';
9
+ import { cleanCommonProps, getStyleProps } from '../../utils';
10
+ export const inputCSS = ({
11
+ isDisabled,
12
+ value
13
+ }) => ({
14
+ visibility: isDisabled ? 'hidden' : 'visible',
15
+ // force css to recompute when value change due to @emotion bug.
16
+ // We can remove it whenever the bug is fixed.
17
+ transform: value ? 'translateZ(0)' : '',
18
+ ...containerStyle,
19
+ margin: "var(--ds-space-025, 2px)",
20
+ paddingBottom: "var(--ds-space-025, 2px)",
21
+ paddingTop: "var(--ds-space-025, 2px)",
22
+ color: "var(--ds-text, #172B4D)"
23
+ });
24
+ const spacingStyle = {
25
+ gridArea: '1 / 2',
26
+ font: 'inherit',
27
+ minWidth: '2px',
28
+ border: 0,
29
+ margin: 0,
30
+ outline: 0,
31
+ padding: 0
32
+ };
33
+ const containerStyle = {
34
+ flex: '1 1 auto',
35
+ display: 'inline-grid',
36
+ gridArea: '1 / 1 / 2 / 3',
37
+ gridTemplateColumns: '0 min-content',
38
+ '&:after': {
39
+ content: 'attr(data-value) " "',
40
+ visibility: 'hidden',
41
+ whiteSpace: 'pre',
42
+ ...spacingStyle
43
+ }
44
+ };
45
+ const inputStyle = isHidden => ({
46
+ label: 'input',
47
+ color: 'inherit',
48
+ background: 0,
49
+ opacity: isHidden ? 0 : 1,
50
+ width: '100%',
51
+ ...spacingStyle
52
+ });
53
+ const Input = props => {
54
+ const {
55
+ cx,
56
+ value
57
+ } = props;
58
+ const {
59
+ innerRef,
60
+ isDisabled,
61
+ isHidden,
62
+ inputClassName,
63
+ testId,
64
+ ...innerProps
65
+ } = cleanCommonProps(props);
66
+ const dataId = testId ? `${testId}-select--input` : null;
67
+ return jsx("div", _extends({}, getStyleProps(props, 'input', {
68
+ 'input-container': true
69
+ }), {
70
+ "data-value": value || '',
71
+ "data-testid": dataId && `${dataId}-container`
72
+ }), jsx("input", _extends({
73
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
74
+ className: cx({
75
+ input: true
76
+ }, inputClassName),
77
+ ref: innerRef
78
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
79
+ ,
80
+ style: inputStyle(isHidden),
81
+ disabled: isDisabled,
82
+ "data-testid": dataId
83
+ }, innerProps)));
84
+ };
85
+
86
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
87
+ export default Input;
@@ -0,0 +1,28 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
7
+ import { css, jsx } from '@emotion/react';
8
+
9
+ // Assistive text to describe visual elements. Hidden for sighted users.
10
+ const styles = css({
11
+ width: 1,
12
+ height: 1,
13
+ padding: 0,
14
+ position: 'absolute',
15
+ zIndex: 9999,
16
+ border: 0,
17
+ clip: 'rect(1px, 1px, 1px, 1px)',
18
+ label: 'a11yText',
19
+ overflow: 'hidden',
20
+ userSelect: 'none',
21
+ // while hidden text is sitting in the DOM, it should not be selectable
22
+ whiteSpace: 'nowrap'
23
+ });
24
+ const A11yText = props => jsx("span", _extends({
25
+ css: styles
26
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
27
+ }, props));
28
+ export default A11yText;
@@ -0,0 +1,38 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
8
+ import { css, jsx } from '@emotion/react';
9
+ import { removeProps } from '../../../utils';
10
+ const dummyInputStyles = css({
11
+ width: 1,
12
+ padding: 0,
13
+ position: 'relative',
14
+ background: 0,
15
+ border: 0,
16
+ caretColor: 'transparent',
17
+ color: 'transparent',
18
+ // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
19
+ fontSize: 'inherit',
20
+ gridArea: '1 / 1 / 2 / 3',
21
+ insetInlineStart: -100,
22
+ label: 'dummyInput',
23
+ opacity: 0,
24
+ outline: 0,
25
+ transform: 'scale(.01)'
26
+ });
27
+ export default function DummyInput({
28
+ innerRef,
29
+ ...props
30
+ }) {
31
+ // Remove animation props not meant for HTML elements
32
+ const 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,36 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
5
+
6
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
7
+ import { css, jsx } from '@emotion/react';
8
+ import __noop from '@atlaskit/ds-lib/noop';
9
+ const styles = css({
10
+ width: '100%',
11
+ position: 'absolute',
12
+ insetBlockEnd: 0,
13
+ insetInlineEnd: 0,
14
+ insetInlineStart: 0,
15
+ label: 'requiredInput',
16
+ opacity: 0,
17
+ pointerEvents: 'none'
18
+ });
19
+ const RequiredInput = ({
20
+ name,
21
+ onFocus
22
+ }) => jsx("input", {
23
+ required: true,
24
+ name: name,
25
+ tabIndex: -1,
26
+ "aria-hidden": "true",
27
+ onFocus: onFocus,
28
+ css: styles
29
+ // Prevent `Switching from uncontrolled to controlled` error
30
+ ,
31
+ value: "",
32
+ onChange: __noop
33
+ });
34
+
35
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
36
+ export default RequiredInput;