@atlaskit/react-select 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE.md +11 -0
  3. package/README.md +10 -0
  4. package/async/package.json +15 -0
  5. package/base/package.json +15 -0
  6. package/creatable/package.json +15 -0
  7. package/dist/cjs/accessibility/helpers.js +34 -0
  8. package/dist/cjs/accessibility/index.js +74 -0
  9. package/dist/cjs/async-creatable.js +27 -0
  10. package/dist/cjs/async.js +30 -0
  11. package/dist/cjs/builtins.js +18 -0
  12. package/dist/cjs/components/containers.js +100 -0
  13. package/dist/cjs/components/control.js +67 -0
  14. package/dist/cjs/components/group.js +79 -0
  15. package/dist/cjs/components/index.js +53 -0
  16. package/dist/cjs/components/indicators.js +214 -0
  17. package/dist/cjs/components/input.js +93 -0
  18. package/dist/cjs/components/internal/a11y-text.js +34 -0
  19. package/dist/cjs/components/internal/dummy-input.js +43 -0
  20. package/dist/cjs/components/internal/index.js +34 -0
  21. package/dist/cjs/components/internal/required-input.js +43 -0
  22. package/dist/cjs/components/internal/scroll-manager.js +57 -0
  23. package/dist/cjs/components/internal/use-scroll-capture.js +132 -0
  24. package/dist/cjs/components/internal/use-scroll-lock.js +149 -0
  25. package/dist/cjs/components/live-region.js +153 -0
  26. package/dist/cjs/components/menu.js +464 -0
  27. package/dist/cjs/components/multi-value.js +129 -0
  28. package/dist/cjs/components/option.js +62 -0
  29. package/dist/cjs/components/placeholder.js +39 -0
  30. package/dist/cjs/components/single-value.js +46 -0
  31. package/dist/cjs/creatable.js +30 -0
  32. package/dist/cjs/diacritics.js +274 -0
  33. package/dist/cjs/filters.js +50 -0
  34. package/dist/cjs/index.js +55 -0
  35. package/dist/cjs/nonce-provider.js +30 -0
  36. package/dist/cjs/select.js +1803 -0
  37. package/dist/cjs/state-manager.js +31 -0
  38. package/dist/cjs/styles.js +66 -0
  39. package/dist/cjs/theme.js +42 -0
  40. package/dist/cjs/types.js +5 -0
  41. package/dist/cjs/use-async.js +156 -0
  42. package/dist/cjs/use-creatable.js +114 -0
  43. package/dist/cjs/use-state-manager.js +83 -0
  44. package/dist/cjs/utils.js +357 -0
  45. package/dist/es2019/accessibility/helpers.js +24 -0
  46. package/dist/es2019/accessibility/index.js +72 -0
  47. package/dist/es2019/async-creatable.js +17 -0
  48. package/dist/es2019/async.js +16 -0
  49. package/dist/es2019/builtins.js +4 -0
  50. package/dist/es2019/components/containers.js +100 -0
  51. package/dist/es2019/components/control.js +62 -0
  52. package/dist/es2019/components/group.js +74 -0
  53. package/dist/es2019/components/index.js +41 -0
  54. package/dist/es2019/components/indicators.js +211 -0
  55. package/dist/es2019/components/input.js +88 -0
  56. package/dist/es2019/components/internal/a11y-text.js +25 -0
  57. package/dist/es2019/components/internal/dummy-input.js +36 -0
  58. package/dist/es2019/components/internal/index.js +4 -0
  59. package/dist/es2019/components/internal/required-input.js +35 -0
  60. package/dist/es2019/components/internal/scroll-manager.js +49 -0
  61. package/dist/es2019/components/internal/use-scroll-capture.js +128 -0
  62. package/dist/es2019/components/internal/use-scroll-lock.js +143 -0
  63. package/dist/es2019/components/live-region.js +151 -0
  64. package/dist/es2019/components/menu.js +466 -0
  65. package/dist/es2019/components/multi-value.js +134 -0
  66. package/dist/es2019/components/option.js +57 -0
  67. package/dist/es2019/components/placeholder.js +34 -0
  68. package/dist/es2019/components/single-value.js +41 -0
  69. package/dist/es2019/creatable.js +15 -0
  70. package/dist/es2019/diacritics.js +264 -0
  71. package/dist/es2019/filters.js +36 -0
  72. package/dist/es2019/index.js +8 -0
  73. package/dist/es2019/nonce-provider.js +19 -0
  74. package/dist/es2019/select.js +1766 -0
  75. package/dist/es2019/state-manager.js +22 -0
  76. package/dist/es2019/styles.js +56 -0
  77. package/dist/es2019/theme.js +36 -0
  78. package/dist/es2019/types.js +1 -0
  79. package/dist/es2019/use-async.js +117 -0
  80. package/dist/es2019/use-creatable.js +81 -0
  81. package/dist/es2019/use-state-manager.js +60 -0
  82. package/dist/es2019/utils.js +309 -0
  83. package/dist/esm/accessibility/helpers.js +24 -0
  84. package/dist/esm/accessibility/index.js +68 -0
  85. package/dist/esm/async-creatable.js +17 -0
  86. package/dist/esm/async.js +16 -0
  87. package/dist/esm/builtins.js +12 -0
  88. package/dist/esm/components/containers.js +96 -0
  89. package/dist/esm/components/control.js +62 -0
  90. package/dist/esm/components/group.js +74 -0
  91. package/dist/esm/components/index.js +43 -0
  92. package/dist/esm/components/indicators.js +209 -0
  93. package/dist/esm/components/input.js +88 -0
  94. package/dist/esm/components/internal/a11y-text.js +27 -0
  95. package/dist/esm/components/internal/dummy-input.js +37 -0
  96. package/dist/esm/components/internal/index.js +4 -0
  97. package/dist/esm/components/internal/required-input.js +36 -0
  98. package/dist/esm/components/internal/scroll-manager.js +49 -0
  99. package/dist/esm/components/internal/use-scroll-capture.js +126 -0
  100. package/dist/esm/components/internal/use-scroll-lock.js +143 -0
  101. package/dist/esm/components/live-region.js +148 -0
  102. package/dist/esm/components/menu.js +460 -0
  103. package/dist/esm/components/multi-value.js +122 -0
  104. package/dist/esm/components/option.js +57 -0
  105. package/dist/esm/components/placeholder.js +34 -0
  106. package/dist/esm/components/single-value.js +41 -0
  107. package/dist/esm/creatable.js +15 -0
  108. package/dist/esm/diacritics.js +268 -0
  109. package/dist/esm/filters.js +43 -0
  110. package/dist/esm/index.js +8 -0
  111. package/dist/esm/nonce-provider.js +20 -0
  112. package/dist/esm/select.js +1794 -0
  113. package/dist/esm/state-manager.js +22 -0
  114. package/dist/esm/styles.js +58 -0
  115. package/dist/esm/theme.js +36 -0
  116. package/dist/esm/types.js +1 -0
  117. package/dist/esm/use-async.js +149 -0
  118. package/dist/esm/use-creatable.js +107 -0
  119. package/dist/esm/use-state-manager.js +76 -0
  120. package/dist/esm/utils.js +328 -0
  121. package/dist/types/accessibility/helpers.d.ts +5 -0
  122. package/dist/types/accessibility/index.d.ts +125 -0
  123. package/dist/types/async-creatable.d.ts +10 -0
  124. package/dist/types/async.d.ts +9 -0
  125. package/dist/types/builtins.d.ts +5 -0
  126. package/dist/types/components/containers.d.ts +50 -0
  127. package/dist/types/components/control.d.ts +33 -0
  128. package/dist/types/components/group.d.ts +53 -0
  129. package/dist/types/components/index.d.ts +73 -0
  130. package/dist/types/components/indicators.d.ts +72 -0
  131. package/dist/types/components/input.d.ts +33 -0
  132. package/dist/types/components/internal/a11y-text.d.ts +8 -0
  133. package/dist/types/components/internal/dummy-input.d.ts +9 -0
  134. package/dist/types/components/internal/index.d.ts +4 -0
  135. package/dist/types/components/internal/required-input.d.ts +10 -0
  136. package/dist/types/components/internal/scroll-manager.d.ts +17 -0
  137. package/dist/types/components/internal/use-scroll-capture.d.ts +12 -0
  138. package/dist/types/components/internal/use-scroll-lock.d.ts +9 -0
  139. package/dist/types/components/live-region.d.ts +24 -0
  140. package/dist/types/components/menu.d.ts +130 -0
  141. package/dist/types/components/multi-value.d.ts +47 -0
  142. package/dist/types/components/option.d.ts +49 -0
  143. package/dist/types/components/placeholder.d.ts +22 -0
  144. package/dist/types/components/single-value.d.ts +28 -0
  145. package/dist/types/creatable.d.ts +10 -0
  146. package/dist/types/diacritics.d.ts +1 -0
  147. package/dist/types/filters.d.ts +15 -0
  148. package/dist/types/index.d.ts +28 -0
  149. package/dist/types/nonce-provider.d.ts +8 -0
  150. package/dist/types/select.d.ts +616 -0
  151. package/dist/types/state-manager.d.ts +17 -0
  152. package/dist/types/styles.d.ts +68 -0
  153. package/dist/types/theme.d.ts +27 -0
  154. package/dist/types/types.d.ts +134 -0
  155. package/dist/types/use-async.d.ts +31 -0
  156. package/dist/types/use-creatable.d.ts +46 -0
  157. package/dist/types/use-state-manager.d.ts +15 -0
  158. package/dist/types/utils.d.ts +44 -0
  159. package/dist/types-ts4.5/accessibility/helpers.d.ts +5 -0
  160. package/dist/types-ts4.5/accessibility/index.d.ts +125 -0
  161. package/dist/types-ts4.5/async-creatable.d.ts +10 -0
  162. package/dist/types-ts4.5/async.d.ts +9 -0
  163. package/dist/types-ts4.5/builtins.d.ts +5 -0
  164. package/dist/types-ts4.5/components/containers.d.ts +50 -0
  165. package/dist/types-ts4.5/components/control.d.ts +33 -0
  166. package/dist/types-ts4.5/components/group.d.ts +53 -0
  167. package/dist/types-ts4.5/components/index.d.ts +73 -0
  168. package/dist/types-ts4.5/components/indicators.d.ts +72 -0
  169. package/dist/types-ts4.5/components/input.d.ts +33 -0
  170. package/dist/types-ts4.5/components/internal/a11y-text.d.ts +8 -0
  171. package/dist/types-ts4.5/components/internal/dummy-input.d.ts +9 -0
  172. package/dist/types-ts4.5/components/internal/index.d.ts +4 -0
  173. package/dist/types-ts4.5/components/internal/required-input.d.ts +10 -0
  174. package/dist/types-ts4.5/components/internal/scroll-manager.d.ts +17 -0
  175. package/dist/types-ts4.5/components/internal/use-scroll-capture.d.ts +12 -0
  176. package/dist/types-ts4.5/components/internal/use-scroll-lock.d.ts +9 -0
  177. package/dist/types-ts4.5/components/live-region.d.ts +24 -0
  178. package/dist/types-ts4.5/components/menu.d.ts +130 -0
  179. package/dist/types-ts4.5/components/multi-value.d.ts +47 -0
  180. package/dist/types-ts4.5/components/option.d.ts +49 -0
  181. package/dist/types-ts4.5/components/placeholder.d.ts +22 -0
  182. package/dist/types-ts4.5/components/single-value.d.ts +28 -0
  183. package/dist/types-ts4.5/creatable.d.ts +10 -0
  184. package/dist/types-ts4.5/diacritics.d.ts +1 -0
  185. package/dist/types-ts4.5/filters.d.ts +15 -0
  186. package/dist/types-ts4.5/index.d.ts +28 -0
  187. package/dist/types-ts4.5/nonce-provider.d.ts +8 -0
  188. package/dist/types-ts4.5/select.d.ts +616 -0
  189. package/dist/types-ts4.5/state-manager.d.ts +17 -0
  190. package/dist/types-ts4.5/styles.d.ts +68 -0
  191. package/dist/types-ts4.5/theme.d.ts +27 -0
  192. package/dist/types-ts4.5/types.d.ts +134 -0
  193. package/dist/types-ts4.5/use-async.d.ts +31 -0
  194. package/dist/types-ts4.5/use-creatable.d.ts +46 -0
  195. package/dist/types-ts4.5/use-state-manager.d.ts +15 -0
  196. package/dist/types-ts4.5/utils.d.ts +44 -0
  197. package/package.json +83 -0
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.loadingIndicatorCSS = exports.indicatorSeparatorCSS = exports.dropdownIndicatorCSS = exports.clearIndicatorCSS = exports.LoadingIndicator = exports.IndicatorSeparator = exports.DropdownIndicator = exports.DownChevron = exports.CrossIcon = exports.ClearIndicator = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("@emotion/react");
12
+ var _utils = require("../utils");
13
+ var _excluded = ["size"],
14
+ _excluded2 = ["innerProps", "isRtl", "size"];
15
+ /**
16
+ * @jsxRuntime classic
17
+ * @jsx jsx
18
+ */
19
+ 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; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
+ // ==============================
22
+ // Dropdown & Clear Icons
23
+ // ==============================
24
+
25
+ var styles = (0, _react.css)({
26
+ display: 'inline-block',
27
+ fill: 'currentColor',
28
+ lineHeight: 1,
29
+ stroke: 'currentColor',
30
+ strokeWidth: 0
31
+ });
32
+ var Svg = function Svg(_ref) {
33
+ var size = _ref.size,
34
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
35
+ return (0, _react.jsx)("svg", (0, _extends2.default)({
36
+ height: size,
37
+ width: size,
38
+ viewBox: "0 0 20 20",
39
+ "aria-hidden": "true",
40
+ focusable: "false",
41
+ css: styles
42
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
43
+ }, props));
44
+ };
45
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
46
+ var CrossIcon = exports.CrossIcon = function CrossIcon(props) {
47
+ return (
48
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
49
+ (0, _react.jsx)(Svg, (0, _extends2.default)({
50
+ size: 20
51
+ }, props), (0, _react.jsx)("path", {
52
+ d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"
53
+ }))
54
+ );
55
+ };
56
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
57
+ var DownChevron = exports.DownChevron = function DownChevron(props) {
58
+ return (
59
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
60
+ (0, _react.jsx)(Svg, (0, _extends2.default)({
61
+ size: 20
62
+ }, props), (0, _react.jsx)("path", {
63
+ d: "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
64
+ }))
65
+ );
66
+ };
67
+
68
+ // ==============================
69
+ // Dropdown & Clear Buttons
70
+ // ==============================
71
+
72
+ var baseCSS = function baseCSS(_ref2, unstyled) {
73
+ var isFocused = _ref2.isFocused,
74
+ _ref2$theme = _ref2.theme,
75
+ baseUnit = _ref2$theme.spacing.baseUnit,
76
+ colors = _ref2$theme.colors;
77
+ return _objectSpread({
78
+ label: 'indicatorContainer',
79
+ display: 'flex',
80
+ transition: 'color 150ms'
81
+ }, unstyled ? {} : {
82
+ color: isFocused ? colors.neutral60 : colors.neutral20,
83
+ padding: baseUnit * 2,
84
+ ':hover': {
85
+ color: isFocused ? colors.neutral80 : colors.neutral40
86
+ }
87
+ });
88
+ };
89
+ var dropdownIndicatorCSS = exports.dropdownIndicatorCSS = baseCSS;
90
+
91
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
92
+ var DropdownIndicator = exports.DropdownIndicator = function DropdownIndicator(props) {
93
+ var children = props.children,
94
+ innerProps = props.innerProps;
95
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'dropdownIndicator', {
96
+ indicator: true,
97
+ 'dropdown-indicator': true
98
+ }), innerProps), children || (0, _react.jsx)(DownChevron, null));
99
+ };
100
+ var clearIndicatorCSS = exports.clearIndicatorCSS = baseCSS;
101
+
102
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
103
+ var ClearIndicator = exports.ClearIndicator = function ClearIndicator(props) {
104
+ var children = props.children,
105
+ innerProps = props.innerProps;
106
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'clearIndicator', {
107
+ indicator: true,
108
+ 'clear-indicator': true
109
+ }), innerProps), children || (0, _react.jsx)(CrossIcon, null));
110
+ };
111
+
112
+ // ==============================
113
+ // Separator
114
+ // ==============================
115
+
116
+ var indicatorSeparatorCSS = exports.indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref3, unstyled) {
117
+ var isDisabled = _ref3.isDisabled,
118
+ _ref3$theme = _ref3.theme,
119
+ baseUnit = _ref3$theme.spacing.baseUnit,
120
+ colors = _ref3$theme.colors;
121
+ return _objectSpread({
122
+ label: 'indicatorSeparator',
123
+ alignSelf: 'stretch',
124
+ width: 1
125
+ }, unstyled ? {} : {
126
+ backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,
127
+ marginBottom: baseUnit * 2,
128
+ marginTop: baseUnit * 2
129
+ });
130
+ };
131
+
132
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
133
+ var IndicatorSeparator = exports.IndicatorSeparator = function IndicatorSeparator(props) {
134
+ var innerProps = props.innerProps;
135
+ return (0, _react.jsx)("span", (0, _extends2.default)({}, innerProps, (0, _utils.getStyleProps)(props, 'indicatorSeparator', {
136
+ 'indicator-separator': true
137
+ })));
138
+ };
139
+
140
+ // ==============================
141
+ // Loading
142
+ // ==============================
143
+
144
+ var loadingDotAnimations = (0, _react.keyframes)({
145
+ '0%, 80%, 100%': {
146
+ opacity: 0
147
+ },
148
+ '40%': {
149
+ opacity: 1
150
+ }
151
+ });
152
+ var loadingIndicatorCSS = exports.loadingIndicatorCSS = function loadingIndicatorCSS(_ref4, unstyled) {
153
+ var isFocused = _ref4.isFocused,
154
+ size = _ref4.size,
155
+ _ref4$theme = _ref4.theme,
156
+ colors = _ref4$theme.colors,
157
+ baseUnit = _ref4$theme.spacing.baseUnit;
158
+ return _objectSpread({
159
+ label: 'loadingIndicator',
160
+ display: 'flex',
161
+ transition: 'color 150ms',
162
+ alignSelf: 'center',
163
+ fontSize: size,
164
+ lineHeight: 1,
165
+ marginRight: size,
166
+ textAlign: 'center',
167
+ verticalAlign: 'middle'
168
+ }, unstyled ? {} : {
169
+ color: isFocused ? colors.neutral60 : colors.neutral20,
170
+ padding: baseUnit * 2
171
+ });
172
+ };
173
+ var LoadingDot = function LoadingDot(_ref5) {
174
+ var delay = _ref5.delay,
175
+ offset = _ref5.offset;
176
+ return (0, _react.jsx)("span", {
177
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
178
+ css: {
179
+ animation: "".concat(loadingDotAnimations, " 1s ease-in-out ").concat(delay, "ms infinite;"),
180
+ backgroundColor: 'currentColor',
181
+ borderRadius: '1em',
182
+ display: 'inline-block',
183
+ marginLeft: offset ? '1em' : undefined,
184
+ height: '1em',
185
+ verticalAlign: 'top',
186
+ width: '1em'
187
+ }
188
+ });
189
+ };
190
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
191
+ var LoadingIndicator = exports.LoadingIndicator = function LoadingIndicator(_ref6) {
192
+ var innerProps = _ref6.innerProps,
193
+ isRtl = _ref6.isRtl,
194
+ _ref6$size = _ref6.size,
195
+ size = _ref6$size === void 0 ? 4 : _ref6$size,
196
+ restProps = (0, _objectWithoutProperties2.default)(_ref6, _excluded2);
197
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
198
+ innerProps: innerProps,
199
+ isRtl: isRtl,
200
+ size: size
201
+ }), 'loadingIndicator', {
202
+ indicator: true,
203
+ 'loading-indicator': true
204
+ }), innerProps), (0, _react.jsx)(LoadingDot, {
205
+ delay: 0,
206
+ offset: isRtl
207
+ }), (0, _react.jsx)(LoadingDot, {
208
+ delay: 160,
209
+ offset: true
210
+ }), (0, _react.jsx)(LoadingDot, {
211
+ delay: 320,
212
+ offset: !isRtl
213
+ }));
214
+ };
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.inputCSS = exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _react = require("@emotion/react");
12
+ var _utils = require("../utils");
13
+ var _excluded = ["innerRef", "isDisabled", "isHidden", "inputClassName"];
14
+ 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; }
15
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
16
+ * @jsxRuntime classic
17
+ * @jsx jsx
18
+ */
19
+ var inputCSS = exports.inputCSS = function inputCSS(_ref, unstyled) {
20
+ var isDisabled = _ref.isDisabled,
21
+ value = _ref.value,
22
+ _ref$theme = _ref.theme,
23
+ spacing = _ref$theme.spacing,
24
+ colors = _ref$theme.colors;
25
+ return _objectSpread(_objectSpread({
26
+ visibility: isDisabled ? 'hidden' : 'visible',
27
+ // force css to recompute when value change due to @emotion bug.
28
+ // We can remove it whenever the bug is fixed.
29
+ transform: value ? 'translateZ(0)' : ''
30
+ }, containerStyle), unstyled ? {} : {
31
+ margin: spacing.baseUnit / 2,
32
+ paddingBottom: spacing.baseUnit / 2,
33
+ paddingTop: spacing.baseUnit / 2,
34
+ color: colors.neutral80
35
+ });
36
+ };
37
+ var spacingStyle = {
38
+ gridArea: '1 / 2',
39
+ font: 'inherit',
40
+ minWidth: '2px',
41
+ border: 0,
42
+ margin: 0,
43
+ outline: 0,
44
+ padding: 0
45
+ };
46
+ var containerStyle = {
47
+ flex: '1 1 auto',
48
+ display: 'inline-grid',
49
+ gridArea: '1 / 1 / 2 / 3',
50
+ gridTemplateColumns: '0 min-content',
51
+ '&:after': _objectSpread({
52
+ content: 'attr(data-value) " "',
53
+ visibility: 'hidden',
54
+ whiteSpace: 'pre'
55
+ }, spacingStyle)
56
+ };
57
+ var inputStyle = function inputStyle(isHidden) {
58
+ return _objectSpread({
59
+ label: 'input',
60
+ color: 'inherit',
61
+ background: 0,
62
+ opacity: isHidden ? 0 : 1,
63
+ width: '100%'
64
+ }, spacingStyle);
65
+ };
66
+ var Input = function Input(props) {
67
+ var cx = props.cx,
68
+ value = props.value;
69
+ var _cleanCommonProps = (0, _utils.cleanCommonProps)(props),
70
+ innerRef = _cleanCommonProps.innerRef,
71
+ isDisabled = _cleanCommonProps.isDisabled,
72
+ isHidden = _cleanCommonProps.isHidden,
73
+ inputClassName = _cleanCommonProps.inputClassName,
74
+ innerProps = (0, _objectWithoutProperties2.default)(_cleanCommonProps, _excluded);
75
+ return (0, _react.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'input', {
76
+ 'input-container': true
77
+ }), {
78
+ "data-value": value || ''
79
+ }), (0, _react.jsx)("input", (0, _extends2.default)({
80
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
81
+ className: cx({
82
+ input: true
83
+ }, inputClassName),
84
+ ref: innerRef
85
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
86
+ ,
87
+ style: inputStyle(isHidden),
88
+ disabled: isDisabled
89
+ }, innerProps)));
90
+ };
91
+
92
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
93
+ var _default = exports.default = Input;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = require("@emotion/react");
10
+ /**
11
+ * @jsxRuntime classic
12
+ * @jsx jsx
13
+ */
14
+
15
+ // Assistive text to describe visual elements. Hidden for sighted users.
16
+ var styles = (0, _react.css)({
17
+ width: 1,
18
+ height: 1,
19
+ padding: 0,
20
+ position: 'absolute',
21
+ zIndex: 9999,
22
+ border: 0,
23
+ clip: 'rect(1px, 1px, 1px, 1px)',
24
+ label: 'a11yText',
25
+ overflow: 'hidden',
26
+ whiteSpace: 'nowrap'
27
+ });
28
+ var A11yText = function A11yText(props) {
29
+ return (0, _react.jsx)("span", (0, _extends2.default)({
30
+ css: styles
31
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
32
+ }, props));
33
+ };
34
+ var _default = exports.default = A11yText;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = DummyInput;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = require("@emotion/react");
11
+ var _utils = require("../../utils");
12
+ var _excluded = ["innerRef"];
13
+ /**
14
+ * @jsxRuntime classic
15
+ * @jsx jsx
16
+ */
17
+ var dummyInputStyles = (0, _react.css)({
18
+ width: 1,
19
+ padding: 0,
20
+ position: 'relative',
21
+ background: 0,
22
+ border: 0,
23
+ caretColor: 'transparent',
24
+ color: 'transparent',
25
+ fontSize: 'inherit',
26
+ gridArea: '1 / 1 / 2 / 3',
27
+ insetInlineStart: -100,
28
+ label: 'dummyInput',
29
+ opacity: 0,
30
+ outline: 0,
31
+ transform: 'scale(.01)'
32
+ });
33
+ function DummyInput(_ref) {
34
+ var innerRef = _ref.innerRef,
35
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
+ // Remove animation props not meant for HTML elements
37
+ var filteredProps = (0, _utils.removeProps)(props, 'onExited', 'in', 'enter', 'exit', 'appear');
38
+ return (0, _react.jsx)("input", (0, _extends2.default)({
39
+ ref: innerRef
40
+ }, filteredProps, {
41
+ css: dummyInputStyles
42
+ }));
43
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "A11yText", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _a11yText.default;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "DummyInput", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _dummyInput.default;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "RequiredInput", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _requiredInput.default;
23
+ }
24
+ });
25
+ Object.defineProperty(exports, "ScrollManager", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _scrollManager.default;
29
+ }
30
+ });
31
+ var _a11yText = _interopRequireDefault(require("./a11y-text"));
32
+ var _dummyInput = _interopRequireDefault(require("./dummy-input"));
33
+ var _scrollManager = _interopRequireDefault(require("./scroll-manager"));
34
+ var _requiredInput = _interopRequireDefault(require("./required-input"));
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = require("@emotion/react");
9
+ var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
10
+ /**
11
+ * @jsxRuntime classic
12
+ * @jsx jsx
13
+ */
14
+
15
+ var styles = (0, _react.css)({
16
+ width: '100%',
17
+ position: 'absolute',
18
+ insetBlockEnd: 0,
19
+ insetInlineEnd: 0,
20
+ insetInlineStart: 0,
21
+ label: 'requiredInput',
22
+ opacity: 0,
23
+ pointerEvents: 'none'
24
+ });
25
+ var RequiredInput = function RequiredInput(_ref) {
26
+ var name = _ref.name,
27
+ onFocus = _ref.onFocus;
28
+ return (0, _react.jsx)("input", {
29
+ required: true,
30
+ name: name,
31
+ tabIndex: -1,
32
+ "aria-hidden": "true",
33
+ onFocus: onFocus,
34
+ css: styles
35
+ // Prevent `Switching from uncontrolled to controlled` error
36
+ ,
37
+ value: "",
38
+ onChange: _noop.default
39
+ });
40
+ };
41
+
42
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
43
+ var _default = exports.default = RequiredInput;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = ScrollManager;
8
+ var _react = require("react");
9
+ var _react2 = require("@emotion/react");
10
+ var _useScrollCapture = _interopRequireDefault(require("./use-scroll-capture"));
11
+ var _useScrollLock = _interopRequireDefault(require("./use-scroll-lock"));
12
+ /**
13
+ * @jsxRuntime classic
14
+ * @jsx jsx
15
+ */
16
+
17
+ var styles = (0, _react2.css)({
18
+ position: 'fixed',
19
+ insetBlockEnd: 0,
20
+ insetBlockStart: 0,
21
+ insetInlineEnd: 0,
22
+ insetInlineStart: 0
23
+ });
24
+ var blurSelectInput = function blurSelectInput(event) {
25
+ var element = event.target;
26
+ return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();
27
+ };
28
+ function ScrollManager(_ref) {
29
+ var children = _ref.children,
30
+ lockEnabled = _ref.lockEnabled,
31
+ _ref$captureEnabled = _ref.captureEnabled,
32
+ captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,
33
+ onBottomArrive = _ref.onBottomArrive,
34
+ onBottomLeave = _ref.onBottomLeave,
35
+ onTopArrive = _ref.onTopArrive,
36
+ onTopLeave = _ref.onTopLeave;
37
+ var setScrollCaptureTarget = (0, _useScrollCapture.default)({
38
+ isEnabled: captureEnabled,
39
+ onBottomArrive: onBottomArrive,
40
+ onBottomLeave: onBottomLeave,
41
+ onTopArrive: onTopArrive,
42
+ onTopLeave: onTopLeave
43
+ });
44
+ var setScrollLockTarget = (0, _useScrollLock.default)({
45
+ isEnabled: lockEnabled
46
+ });
47
+ var targetRef = function targetRef(element) {
48
+ setScrollCaptureTarget(element);
49
+ setScrollLockTarget(element);
50
+ };
51
+ return (0, _react2.jsx)(_react.Fragment, null, lockEnabled &&
52
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
53
+ (0, _react2.jsx)("div", {
54
+ onClick: blurSelectInput,
55
+ css: styles
56
+ }), children(targetRef));
57
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useScrollCapture;
7
+ var _react = require("react");
8
+ var _utils = require("../../utils");
9
+ var cancelScroll = function cancelScroll(event) {
10
+ if (event.cancelable) {
11
+ event.preventDefault();
12
+ }
13
+ event.stopPropagation();
14
+ };
15
+ // TODO: Fill in the hook {description}.
16
+ /**
17
+ * {description}.
18
+ */
19
+ function useScrollCapture(_ref) {
20
+ var isEnabled = _ref.isEnabled,
21
+ onBottomArrive = _ref.onBottomArrive,
22
+ onBottomLeave = _ref.onBottomLeave,
23
+ onTopArrive = _ref.onTopArrive,
24
+ onTopLeave = _ref.onTopLeave;
25
+ var isBottom = (0, _react.useRef)(false);
26
+ var isTop = (0, _react.useRef)(false);
27
+ var touchStart = (0, _react.useRef)(0);
28
+ var scrollTarget = (0, _react.useRef)(null);
29
+ var handleEventDelta = (0, _react.useCallback)(function (event, delta) {
30
+ if (scrollTarget.current === null) {
31
+ return;
32
+ }
33
+ var _scrollTarget$current = scrollTarget.current,
34
+ scrollTop = _scrollTarget$current.scrollTop,
35
+ scrollHeight = _scrollTarget$current.scrollHeight,
36
+ clientHeight = _scrollTarget$current.clientHeight;
37
+ var target = scrollTarget.current;
38
+ var isDeltaPositive = delta > 0;
39
+ var availableScroll = scrollHeight - clientHeight - scrollTop;
40
+ var shouldCancelScroll = false;
41
+
42
+ // reset bottom/top flags
43
+ if (availableScroll > delta && isBottom.current) {
44
+ if (onBottomLeave) {
45
+ onBottomLeave(event);
46
+ }
47
+ isBottom.current = false;
48
+ }
49
+ if (isDeltaPositive && isTop.current) {
50
+ if (onTopLeave) {
51
+ onTopLeave(event);
52
+ }
53
+ isTop.current = false;
54
+ }
55
+
56
+ // bottom limit
57
+ if (isDeltaPositive && delta > availableScroll) {
58
+ if (onBottomArrive && !isBottom.current) {
59
+ onBottomArrive(event);
60
+ }
61
+ target.scrollTop = scrollHeight;
62
+ shouldCancelScroll = true;
63
+ isBottom.current = true;
64
+
65
+ // top limit
66
+ } else if (!isDeltaPositive && -delta > scrollTop) {
67
+ if (onTopArrive && !isTop.current) {
68
+ onTopArrive(event);
69
+ }
70
+ target.scrollTop = 0;
71
+ shouldCancelScroll = true;
72
+ isTop.current = true;
73
+ }
74
+
75
+ // cancel scroll
76
+ if (shouldCancelScroll) {
77
+ cancelScroll(event);
78
+ }
79
+ }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);
80
+ var onWheel = (0, _react.useCallback)(function (event) {
81
+ handleEventDelta(event, event.deltaY);
82
+ }, [handleEventDelta]);
83
+ var onTouchStart = (0, _react.useCallback)(function (event) {
84
+ // set touch start so we can calculate touchmove delta
85
+ touchStart.current = event.changedTouches[0].clientY;
86
+ }, []);
87
+ var onTouchMove = (0, _react.useCallback)(function (event) {
88
+ var deltaY = touchStart.current - event.changedTouches[0].clientY;
89
+ handleEventDelta(event, deltaY);
90
+ }, [handleEventDelta]);
91
+ var startListening = (0, _react.useCallback)(function (el) {
92
+ // bail early if no element is available to attach to
93
+ if (!el) {
94
+ return;
95
+ }
96
+ var notPassive = _utils.supportsPassiveEvents ? {
97
+ passive: false
98
+ } : false;
99
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
100
+ el.addEventListener('wheel', onWheel, notPassive);
101
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
102
+ el.addEventListener('touchstart', onTouchStart, notPassive);
103
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
104
+ el.addEventListener('touchmove', onTouchMove, notPassive);
105
+ }, [onTouchMove, onTouchStart, onWheel]);
106
+ var stopListening = (0, _react.useCallback)(function (el) {
107
+ // bail early if no element is available to detach from
108
+ if (!el) {
109
+ return;
110
+ }
111
+
112
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
113
+ el.removeEventListener('wheel', onWheel, false);
114
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
115
+ el.removeEventListener('touchstart', onTouchStart, false);
116
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
117
+ el.removeEventListener('touchmove', onTouchMove, false);
118
+ }, [onTouchMove, onTouchStart, onWheel]);
119
+ (0, _react.useEffect)(function () {
120
+ if (!isEnabled) {
121
+ return;
122
+ }
123
+ var element = scrollTarget.current;
124
+ startListening(element);
125
+ return function () {
126
+ stopListening(element);
127
+ };
128
+ }, [isEnabled, startListening, stopListening]);
129
+ return function (element) {
130
+ scrollTarget.current = element;
131
+ };
132
+ }