@easypost/easy-ui 1.0.0-alpha.4 → 1.0.0-alpha.6

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 (133) hide show
  1. package/Badge/index.js +32 -26
  2. package/Badge/index.mjs +32 -26
  3. package/Banner/index.js +15 -16
  4. package/Banner/index.mjs +15 -16
  5. package/Button/Button.d.ts +61 -0
  6. package/Button/Button.d.ts.map +1 -1
  7. package/Button/index.js +34 -69
  8. package/Button/index.mjs +33 -68
  9. package/CHANGELOG.md +21 -0
  10. package/Card/index.js +84 -5
  11. package/Card/index.mjs +84 -5
  12. package/Checkbox/index.js +84 -72
  13. package/Checkbox/index.mjs +84 -72
  14. package/CodeBlock/index.js +43 -49
  15. package/CodeBlock/index.mjs +43 -49
  16. package/DropdownButton/DropdownButton.d.ts +48 -0
  17. package/DropdownButton/DropdownButton.d.ts.map +1 -1
  18. package/DropdownButton/index.js +29 -101
  19. package/DropdownButton/index.mjs +29 -85
  20. package/HorizontalGrid/index.js +11 -31
  21. package/HorizontalGrid/index.mjs +11 -31
  22. package/HorizontalStack/index.js +48 -4
  23. package/HorizontalStack/index.mjs +48 -4
  24. package/Icon/Icon.d.ts +51 -0
  25. package/Icon/Icon.d.ts.map +1 -1
  26. package/Icon/index.js +38 -4
  27. package/Icon/index.mjs +38 -4
  28. package/IconButton/IconButton.d.ts +62 -0
  29. package/IconButton/IconButton.d.ts.map +1 -1
  30. package/IconButton/index.js +26 -43
  31. package/IconButton/index.mjs +25 -42
  32. package/InputField/Label.d.ts +2 -2
  33. package/InputField/index.js +282 -10
  34. package/InputField/index.mjs +266 -10
  35. package/InputField/utilities.d.ts +1 -1
  36. package/InputField/utilities.d.ts.map +1 -1
  37. package/Menu/MenuOverlay.d.ts.map +1 -1
  38. package/Menu/index.js +178 -1958
  39. package/Menu/index.mjs +168 -1948
  40. package/Menu/utilities.d.ts +11 -0
  41. package/Menu/utilities.d.ts.map +1 -0
  42. package/Notification/index.js +1534 -14
  43. package/Notification/index.mjs +1518 -14
  44. package/Provider/index.js +15 -15
  45. package/Provider/index.mjs +15 -15
  46. package/RadioGroup/index.js +63 -63
  47. package/RadioGroup/index.mjs +63 -63
  48. package/Select/Select.d.ts +88 -0
  49. package/Select/Select.d.ts.map +1 -0
  50. package/Select/Select.stories.d.ts +17 -0
  51. package/Select/Select.stories.d.ts.map +1 -0
  52. package/Select/Select.test.d.ts +2 -0
  53. package/Select/Select.test.d.ts.map +1 -0
  54. package/Select/SelectContext.d.ts +14 -0
  55. package/Select/SelectContext.d.ts.map +1 -0
  56. package/Select/SelectField.d.ts +62 -0
  57. package/Select/SelectField.d.ts.map +1 -0
  58. package/Select/SelectOption.d.ts +23 -0
  59. package/Select/SelectOption.d.ts.map +1 -0
  60. package/Select/SelectOverlay.d.ts +3 -0
  61. package/Select/SelectOverlay.d.ts.map +1 -0
  62. package/Select/SelectSection.d.ts +22 -0
  63. package/Select/SelectSection.d.ts.map +1 -0
  64. package/Select/SelectTrigger.d.ts +30 -0
  65. package/Select/SelectTrigger.d.ts.map +1 -0
  66. package/Select/index.d.ts +2 -0
  67. package/Select/index.d.ts.map +1 -0
  68. package/Select/index.js +816 -0
  69. package/Select/index.mjs +816 -0
  70. package/SelectorErrorTooltip/index.js +102 -11
  71. package/SelectorErrorTooltip/index.mjs +86 -11
  72. package/Text/index.js +85 -4
  73. package/Text/index.mjs +85 -4
  74. package/TextField/index.js +19 -38
  75. package/TextField/index.mjs +19 -38
  76. package/Textarea/index.js +20 -37
  77. package/Textarea/index.mjs +20 -37
  78. package/Theme/index.js +145 -9
  79. package/Theme/index.mjs +145 -9
  80. package/Toggle/index.js +51 -50
  81. package/Toggle/index.mjs +51 -50
  82. package/Tooltip/index.js +299 -10
  83. package/Tooltip/index.mjs +299 -10
  84. package/UnstyledButton/index.js +4 -4
  85. package/UnstyledButton/index.mjs +3 -3
  86. package/VerticalStack/index.js +13 -47
  87. package/VerticalStack/index.mjs +13 -47
  88. package/__chunks__/ExpandMore400-7c5263a4.mjs +49 -0
  89. package/__chunks__/ExpandMore400-92646971.js +65 -0
  90. package/__chunks__/InputIcon-2317befd.mjs +148 -0
  91. package/__chunks__/InputIcon-d3963cf8.js +147 -0
  92. package/__chunks__/{import-e7f45c7e.mjs → import-0561e1ba.mjs} +3 -3
  93. package/__chunks__/{import-b7971a11.mjs → import-19bc38ac.mjs} +72 -34
  94. package/__chunks__/{import-01299af6.js → import-24a482e1.js} +3 -2
  95. package/__chunks__/{import-baa3cd0c.mjs → import-29af6941.mjs} +4 -3
  96. package/__chunks__/{import-0d1b4d93.js → import-2b302763.js} +193 -141
  97. package/__chunks__/{import-ab878fb6.mjs → import-3d962a94.mjs} +205 -153
  98. package/__chunks__/{import-86330a7c.mjs → import-6a831ca1.mjs} +16 -15
  99. package/__chunks__/{import-7545401a.js → import-8b6c0bc7.js} +3 -3
  100. package/__chunks__/{import-63bf0645.js → import-a1e0f814.js} +47 -9
  101. package/__chunks__/{import-3ab42f86.js → import-a2023d8f.js} +35 -22
  102. package/__chunks__/{import-76076ca6.js → import-dea5a24d.js} +15 -14
  103. package/__chunks__/{import-856e0385.mjs → import-f1f4792a.mjs} +36 -23
  104. package/__chunks__/{UnstyledButton-883f0c6c.mjs → index-29d7bca9.mjs} +17 -42
  105. package/__chunks__/{UnstyledButton-96172ec0.js → index-3985350a.js} +17 -42
  106. package/__chunks__/{overlayscrollbars-react.es-c8369a03.mjs → overlayscrollbars-react.es-7f332a3b.mjs} +4 -4
  107. package/__chunks__/{overlayscrollbars-react.es-20563393.js → overlayscrollbars-react.es-f2a0bcff.js} +4 -4
  108. package/__chunks__/{real-module-e4cd2301.mjs → real-module-515df21d.mjs} +1 -1
  109. package/__chunks__/{real-module-ae2a4342.js → real-module-e36b1436.js} +1 -1
  110. package/__chunks__/useTriggerWidth-156b038a.js +2030 -0
  111. package/__chunks__/useTriggerWidth-addcd1d6.mjs +2031 -0
  112. package/package.json +11 -11
  113. package/style.css +1423 -1196
  114. package/utilities/css.js +14 -58
  115. package/utilities/css.mjs +14 -58
  116. package/__chunks__/Card-7bbd41e0.mjs +0 -110
  117. package/__chunks__/Card-dac53c75.js +0 -109
  118. package/__chunks__/HorizontalStack-a441c63f.mjs +0 -80
  119. package/__chunks__/HorizontalStack-a862839b.js +0 -79
  120. package/__chunks__/Icon-3d00481a.js +0 -44
  121. package/__chunks__/Icon-a75b5201.mjs +0 -45
  122. package/__chunks__/InputField-4fbaae06.js +0 -487
  123. package/__chunks__/InputField-a272f602.mjs +0 -472
  124. package/__chunks__/Notification-b8eafec6.mjs +0 -1456
  125. package/__chunks__/Notification-c5b34eb3.js +0 -1471
  126. package/__chunks__/SelectorErrorTooltip-43c5e29e.js +0 -84
  127. package/__chunks__/SelectorErrorTooltip-b6204987.mjs +0 -69
  128. package/__chunks__/Text-1ae70c19.js +0 -102
  129. package/__chunks__/Text-4ae50d5c.mjs +0 -103
  130. package/__chunks__/Theme-4e498252.mjs +0 -132
  131. package/__chunks__/Theme-751e5575.js +0 -131
  132. package/__chunks__/Tooltip-bd55165e.js +0 -317
  133. package/__chunks__/Tooltip-f7e67b21.mjs +0 -318
@@ -0,0 +1,816 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __knownSymbol = (name, symbol) => {
9
+ if (symbol = Symbol[name])
10
+ return symbol;
11
+ throw Error("Symbol." + name + " is not defined");
12
+ };
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __await = function(promise, isYieldStar) {
27
+ this[0] = promise;
28
+ this[1] = isYieldStar;
29
+ };
30
+ var __yieldStar = (value) => {
31
+ var obj = value[__knownSymbol("asyncIterator")];
32
+ var isAwait = false;
33
+ var method;
34
+ var it = {};
35
+ if (obj == null) {
36
+ obj = value[__knownSymbol("iterator")]();
37
+ method = (k) => it[k] = (x) => obj[k](x);
38
+ } else {
39
+ obj = obj.call(value);
40
+ method = (k) => it[k] = (v) => {
41
+ if (isAwait) {
42
+ isAwait = false;
43
+ if (k === "throw")
44
+ throw v;
45
+ return v;
46
+ }
47
+ isAwait = true;
48
+ return {
49
+ done: false,
50
+ value: new __await(new Promise((resolve) => {
51
+ var x = obj[k](v);
52
+ if (!(x instanceof Object))
53
+ throw TypeError("Object expected");
54
+ resolve(x);
55
+ }), 1)
56
+ };
57
+ };
58
+ }
59
+ return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
60
+ throw x;
61
+ }, "return" in obj && method("return"), it;
62
+ };
63
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
64
+ const React = require("react");
65
+ const utilities_css = require("../utilities/css.js");
66
+ const InputIcon = require("../__chunks__/InputIcon-d3963cf8.js");
67
+ const Text_index = require("../Text/index.js");
68
+ const ExpandMore400 = require("../__chunks__/ExpandMore400-92646971.js");
69
+ const UnstyledButton_index = require("../__chunks__/index-3985350a.js");
70
+ const _import = require("../__chunks__/import-a1e0f814.js");
71
+ const useTriggerWidth = require("../__chunks__/useTriggerWidth-156b038a.js");
72
+ const _import$1 = require("../__chunks__/import-2b302763.js");
73
+ const _import$2 = require("../__chunks__/import-24a482e1.js");
74
+ const _import$3 = require("../__chunks__/import-a2023d8f.js");
75
+ const realModule = require("../__chunks__/real-module-e36b1436.js");
76
+ const _import$4 = require("../__chunks__/import-dea5a24d.js");
77
+ require("../Icon/index.js");
78
+ require("../__chunks__/omit-fca26542.js");
79
+ require("react-dom");
80
+ const $b1f0cad8af73213b$export$3585ede4d035bf14 = /* @__PURE__ */ new WeakMap();
81
+ function $b1f0cad8af73213b$var$normalizeKey(key) {
82
+ if (typeof key === "string")
83
+ return key.replace(/\s*/g, "");
84
+ return "" + key;
85
+ }
86
+ function $b1f0cad8af73213b$export$9145995848b05025(state, itemKey) {
87
+ let data = $b1f0cad8af73213b$export$3585ede4d035bf14.get(state);
88
+ if (!data)
89
+ throw new Error("Unknown list");
90
+ return `${data.id}-option-${$b1f0cad8af73213b$var$normalizeKey(itemKey)}`;
91
+ }
92
+ function $c132121280ec012d$export$50eacbbf140a3141(props, state, ref) {
93
+ let domProps = _import.$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, {
94
+ labelable: true
95
+ });
96
+ let { listProps } = useTriggerWidth.$982254629710d113$export$b95089534ab7c1fd(__spreadProps(__spreadValues({}, props), {
97
+ ref,
98
+ selectionManager: state.selectionManager,
99
+ collection: state.collection,
100
+ disabledKeys: state.disabledKeys
101
+ }));
102
+ let { focusWithinProps } = _import$1.$9ab94262bd0047c7$export$420e68273165f4ec({
103
+ onFocusWithin: props.onFocus,
104
+ onBlurWithin: props.onBlur,
105
+ onFocusWithinChange: props.onFocusChange
106
+ });
107
+ let id = _import.$bdb11010cef70236$export$f680877a34711e37(props.id);
108
+ $b1f0cad8af73213b$export$3585ede4d035bf14.set(state, {
109
+ id,
110
+ shouldUseVirtualFocus: props.shouldUseVirtualFocus,
111
+ shouldSelectOnPressUp: props.shouldSelectOnPressUp,
112
+ shouldFocusOnHover: props.shouldFocusOnHover,
113
+ isVirtualized: props.isVirtualized,
114
+ onAction: props.onAction
115
+ });
116
+ let { labelProps, fieldProps } = _import$2.$d191a55c9702f145$export$8467354a121f1b9f(__spreadProps(__spreadValues({}, props), {
117
+ id,
118
+ // listbox is not an HTML input element so it
119
+ // shouldn't be labeled by a <label> element.
120
+ labelElementType: "span"
121
+ }));
122
+ return {
123
+ labelProps,
124
+ listBoxProps: _import.$3ef42575df84b30b$export$9d1611c77c2fe928(domProps, focusWithinProps, state.selectionManager.selectionMode === "multiple" ? {
125
+ "aria-multiselectable": "true"
126
+ } : {}, __spreadValues({
127
+ role: "listbox"
128
+ }, _import.$3ef42575df84b30b$export$9d1611c77c2fe928(fieldProps, listProps)))
129
+ };
130
+ }
131
+ function $293f70390ea03370$export$497855f14858aa34(props, state, ref) {
132
+ let { key } = props;
133
+ let data = $b1f0cad8af73213b$export$3585ede4d035bf14.get(state);
134
+ var _props_isDisabled;
135
+ let isDisabled = (_props_isDisabled = props.isDisabled) !== null && _props_isDisabled !== void 0 ? _props_isDisabled : state.disabledKeys.has(key);
136
+ var _props_isSelected;
137
+ let isSelected = (_props_isSelected = props.isSelected) !== null && _props_isSelected !== void 0 ? _props_isSelected : state.selectionManager.isSelected(key);
138
+ var _props_shouldSelectOnPressUp;
139
+ let shouldSelectOnPressUp = (_props_shouldSelectOnPressUp = props.shouldSelectOnPressUp) !== null && _props_shouldSelectOnPressUp !== void 0 ? _props_shouldSelectOnPressUp : data === null || data === void 0 ? void 0 : data.shouldSelectOnPressUp;
140
+ var _props_shouldFocusOnHover;
141
+ let shouldFocusOnHover = (_props_shouldFocusOnHover = props.shouldFocusOnHover) !== null && _props_shouldFocusOnHover !== void 0 ? _props_shouldFocusOnHover : data === null || data === void 0 ? void 0 : data.shouldFocusOnHover;
142
+ var _props_shouldUseVirtualFocus;
143
+ let shouldUseVirtualFocus = (_props_shouldUseVirtualFocus = props.shouldUseVirtualFocus) !== null && _props_shouldUseVirtualFocus !== void 0 ? _props_shouldUseVirtualFocus : data === null || data === void 0 ? void 0 : data.shouldUseVirtualFocus;
144
+ var _props_isVirtualized;
145
+ let isVirtualized = (_props_isVirtualized = props.isVirtualized) !== null && _props_isVirtualized !== void 0 ? _props_isVirtualized : data === null || data === void 0 ? void 0 : data.isVirtualized;
146
+ let labelId = _import.$bdb11010cef70236$export$b4cc09c592e8fdb8();
147
+ let descriptionId = _import.$bdb11010cef70236$export$b4cc09c592e8fdb8();
148
+ let optionProps = {
149
+ role: "option",
150
+ "aria-disabled": isDisabled || void 0,
151
+ "aria-selected": state.selectionManager.selectionMode !== "none" ? isSelected : void 0
152
+ };
153
+ if (!(_import.$c87311424ea30a05$export$9ac100e40613ea10() && _import.$c87311424ea30a05$export$78551043582a6a98())) {
154
+ optionProps["aria-label"] = props["aria-label"];
155
+ optionProps["aria-labelledby"] = labelId;
156
+ optionProps["aria-describedby"] = descriptionId;
157
+ }
158
+ if (isVirtualized) {
159
+ var _state_collection_getItem;
160
+ let index = Number((_state_collection_getItem = state.collection.getItem(key)) === null || _state_collection_getItem === void 0 ? void 0 : _state_collection_getItem.index);
161
+ optionProps["aria-posinset"] = Number.isNaN(index) ? void 0 : index + 1;
162
+ optionProps["aria-setsize"] = useTriggerWidth.$453cc9f0df89c0a5$export$77d5aafae4e095b2(state.collection);
163
+ }
164
+ let { itemProps, isPressed, isFocused, hasAction, allowsSelection } = useTriggerWidth.$880e95eb8b93ba9a$export$ecf600387e221c37({
165
+ selectionManager: state.selectionManager,
166
+ key,
167
+ ref,
168
+ shouldSelectOnPressUp,
169
+ allowsDifferentPressOrigin: shouldSelectOnPressUp && shouldFocusOnHover,
170
+ isVirtualized,
171
+ shouldUseVirtualFocus,
172
+ isDisabled,
173
+ onAction: (data === null || data === void 0 ? void 0 : data.onAction) ? () => {
174
+ var _data_onAction;
175
+ return data === null || data === void 0 ? void 0 : (_data_onAction = data.onAction) === null || _data_onAction === void 0 ? void 0 : _data_onAction.call(data, key);
176
+ } : void 0
177
+ });
178
+ let { hoverProps } = _import$1.$6179b936705e76d3$export$ae780daf29e6d456({
179
+ isDisabled: isDisabled || !shouldFocusOnHover,
180
+ onHoverStart() {
181
+ if (!_import$1.$507fabe10e71c6fb$export$b9b3dfddab17db27()) {
182
+ state.selectionManager.setFocused(true);
183
+ state.selectionManager.setFocusedKey(key);
184
+ }
185
+ }
186
+ });
187
+ return {
188
+ optionProps: __spreadProps(__spreadValues(__spreadValues({}, optionProps), _import.$3ef42575df84b30b$export$9d1611c77c2fe928(itemProps, hoverProps)), {
189
+ id: $b1f0cad8af73213b$export$9145995848b05025(state, key)
190
+ }),
191
+ labelProps: {
192
+ id: labelId
193
+ },
194
+ descriptionProps: {
195
+ id: descriptionId
196
+ },
197
+ isFocused,
198
+ isFocusVisible: isFocused && _import$1.$507fabe10e71c6fb$export$b9b3dfddab17db27(),
199
+ isSelected,
200
+ isDisabled,
201
+ isPressed,
202
+ allowsSelection,
203
+ hasAction
204
+ };
205
+ }
206
+ function $af383d3bef1cfdc9$export$c3f9f39876e4bc7(props) {
207
+ let { heading, "aria-label": ariaLabel } = props;
208
+ let headingId = _import.$bdb11010cef70236$export$f680877a34711e37();
209
+ return {
210
+ itemProps: {
211
+ role: "presentation"
212
+ },
213
+ headingProps: heading ? {
214
+ // Techincally, listbox cannot contain headings according to ARIA.
215
+ // We hide the heading from assistive technology, using role="presentation",
216
+ // and only use it as a visual label for the nested group.
217
+ id: headingId,
218
+ role: "presentation"
219
+ } : {},
220
+ groupProps: {
221
+ role: "group",
222
+ "aria-label": ariaLabel,
223
+ "aria-labelledby": heading ? headingId : void 0
224
+ }
225
+ };
226
+ }
227
+ function $58aed456727eb0f3$export$e64b2f635402ca43(props, state, ref) {
228
+ let { keyboardDelegate, isDisabled } = props;
229
+ let collator = realModule.$325a3faab7a68acd$export$a16aca283550c30d({
230
+ usage: "search",
231
+ sensitivity: "base"
232
+ });
233
+ let delegate = React.useMemo(() => keyboardDelegate || new useTriggerWidth.$2a25aae57d74318e$export$a05409b8bb224a5a(state.collection, state.disabledKeys, null, collator), [
234
+ keyboardDelegate,
235
+ state.collection,
236
+ state.disabledKeys,
237
+ collator
238
+ ]);
239
+ let { menuTriggerProps, menuProps } = useTriggerWidth.$168583247155ddda$export$dc9c12ed27dd1b49({
240
+ isDisabled,
241
+ type: "listbox"
242
+ }, state, ref);
243
+ let onKeyDown = (e) => {
244
+ switch (e.key) {
245
+ case "ArrowLeft": {
246
+ e.preventDefault();
247
+ let key = state.selectedKey != null ? delegate.getKeyAbove(state.selectedKey) : delegate.getFirstKey();
248
+ if (key)
249
+ state.setSelectedKey(key);
250
+ break;
251
+ }
252
+ case "ArrowRight": {
253
+ e.preventDefault();
254
+ let key = state.selectedKey != null ? delegate.getKeyBelow(state.selectedKey) : delegate.getFirstKey();
255
+ if (key)
256
+ state.setSelectedKey(key);
257
+ break;
258
+ }
259
+ }
260
+ };
261
+ let { typeSelectProps } = useTriggerWidth.$fb3050f43d946246$export$e32c88dfddc6e1d8({
262
+ keyboardDelegate: delegate,
263
+ selectionManager: state.selectionManager,
264
+ onTypeSelect(key) {
265
+ state.setSelectedKey(key);
266
+ }
267
+ });
268
+ let { labelProps, fieldProps, descriptionProps, errorMessageProps } = _import$2.$2baaea4c71418dea$export$294aa081a6c6f55d(__spreadProps(__spreadValues({}, props), {
269
+ labelElementType: "span"
270
+ }));
271
+ typeSelectProps.onKeyDown = typeSelectProps.onKeyDownCapture;
272
+ delete typeSelectProps.onKeyDownCapture;
273
+ let domProps = _import.$65484d02dcb7eb3e$export$457c3d6518dd4c6f(props, {
274
+ labelable: true
275
+ });
276
+ let triggerProps = _import.$3ef42575df84b30b$export$9d1611c77c2fe928(typeSelectProps, menuTriggerProps, fieldProps);
277
+ let valueId = _import.$bdb11010cef70236$export$f680877a34711e37();
278
+ return {
279
+ labelProps: __spreadProps(__spreadValues({}, labelProps), {
280
+ onClick: () => {
281
+ if (!props.isDisabled) {
282
+ ref.current.focus();
283
+ _import$1.$507fabe10e71c6fb$export$8397ddfc504fdb9a("keyboard");
284
+ }
285
+ }
286
+ }),
287
+ triggerProps: _import.$3ef42575df84b30b$export$9d1611c77c2fe928(domProps, __spreadProps(__spreadValues({}, triggerProps), {
288
+ isDisabled,
289
+ onKeyDown: _import.$ff5963eb1fccf552$export$e08e3b67e392101e(triggerProps.onKeyDown, onKeyDown, props.onKeyDown),
290
+ onKeyUp: props.onKeyUp,
291
+ "aria-labelledby": [
292
+ valueId,
293
+ triggerProps["aria-labelledby"],
294
+ triggerProps["aria-label"] && !triggerProps["aria-labelledby"] ? triggerProps.id : null
295
+ ].filter(Boolean).join(" "),
296
+ onFocus(e) {
297
+ if (state.isFocused)
298
+ return;
299
+ if (props.onFocus)
300
+ props.onFocus(e);
301
+ if (props.onFocusChange)
302
+ props.onFocusChange(true);
303
+ state.setFocused(true);
304
+ },
305
+ onBlur(e) {
306
+ if (state.isOpen)
307
+ return;
308
+ if (props.onBlur)
309
+ props.onBlur(e);
310
+ if (props.onFocusChange)
311
+ props.onFocusChange(false);
312
+ state.setFocused(false);
313
+ }
314
+ })),
315
+ valueProps: {
316
+ id: valueId
317
+ },
318
+ menuProps: __spreadProps(__spreadValues({}, menuProps), {
319
+ autoFocus: state.focusStrategy || true,
320
+ shouldSelectOnPressUp: true,
321
+ shouldFocusOnHover: true,
322
+ disallowEmptySelection: true,
323
+ onBlur: (e) => {
324
+ if (e.currentTarget.contains(e.relatedTarget))
325
+ return;
326
+ if (props.onBlur)
327
+ props.onBlur(e);
328
+ if (props.onFocusChange)
329
+ props.onFocusChange(false);
330
+ state.setFocused(false);
331
+ },
332
+ "aria-labelledby": [
333
+ fieldProps["aria-labelledby"],
334
+ triggerProps["aria-label"] && !fieldProps["aria-labelledby"] ? triggerProps.id : null
335
+ ].filter(Boolean).join(" ")
336
+ }),
337
+ descriptionProps,
338
+ errorMessageProps
339
+ };
340
+ }
341
+ function $bdd25dc72710631f$export$f809e80f58e251d1(props, state, triggerRef) {
342
+ let { autoComplete, name, isDisabled } = props;
343
+ let modality = _import$1.$507fabe10e71c6fb$export$98e20ec92f614cfe();
344
+ let { visuallyHiddenProps } = _import$3.$5c3e21d68f1c4674$export$a966af930f325cab();
345
+ var _state_selectedKey;
346
+ return {
347
+ containerProps: __spreadProps(__spreadValues({}, visuallyHiddenProps), {
348
+ "aria-hidden": true
349
+ }),
350
+ inputProps: {
351
+ type: "text",
352
+ tabIndex: modality == null || state.isFocused || state.isOpen ? -1 : 0,
353
+ style: {
354
+ fontSize: 16
355
+ },
356
+ onFocus: () => triggerRef.current.focus(),
357
+ disabled: isDisabled
358
+ },
359
+ selectProps: {
360
+ tabIndex: -1,
361
+ autoComplete,
362
+ disabled: isDisabled,
363
+ name,
364
+ size: state.collection.size,
365
+ value: (_state_selectedKey = state.selectedKey) !== null && _state_selectedKey !== void 0 ? _state_selectedKey : "",
366
+ onChange: (e) => state.setSelectedKey(e.target.value)
367
+ }
368
+ };
369
+ }
370
+ function $bdd25dc72710631f$export$cbd84cdb2e668835(props) {
371
+ let { state, triggerRef, label, name, isDisabled } = props;
372
+ let { containerProps, inputProps, selectProps } = $bdd25dc72710631f$export$f809e80f58e251d1(props, state, triggerRef);
373
+ var _state_selectedKey;
374
+ if (state.collection.size <= 300)
375
+ return /* @__PURE__ */ React.createElement("div", containerProps, /* @__PURE__ */ React.createElement("input", inputProps), /* @__PURE__ */ React.createElement("label", null, label, /* @__PURE__ */ React.createElement("select", selectProps, /* @__PURE__ */ React.createElement("option", null), [
376
+ ...state.collection.getKeys()
377
+ ].map((key) => {
378
+ let item = state.collection.getItem(key);
379
+ if (item.type === "item")
380
+ return /* @__PURE__ */ React.createElement("option", {
381
+ key: item.key,
382
+ value: item.key
383
+ }, item.textValue);
384
+ }))));
385
+ else if (name)
386
+ return /* @__PURE__ */ React.createElement("input", {
387
+ type: "hidden",
388
+ autoComplete: selectProps.autoComplete,
389
+ name,
390
+ disabled: isDisabled,
391
+ value: (_state_selectedKey = state.selectedKey) !== null && _state_selectedKey !== void 0 ? _state_selectedKey : ""
392
+ });
393
+ return null;
394
+ }
395
+ class $a02d57049d202695$export$d085fb9e920b5ca7 {
396
+ *[Symbol.iterator]() {
397
+ yield* __yieldStar(this.iterable);
398
+ }
399
+ get size() {
400
+ return this.keyMap.size;
401
+ }
402
+ getKeys() {
403
+ return this.keyMap.keys();
404
+ }
405
+ getKeyBefore(key) {
406
+ let node = this.keyMap.get(key);
407
+ return node ? node.prevKey : null;
408
+ }
409
+ getKeyAfter(key) {
410
+ let node = this.keyMap.get(key);
411
+ return node ? node.nextKey : null;
412
+ }
413
+ getFirstKey() {
414
+ return this.firstKey;
415
+ }
416
+ getLastKey() {
417
+ return this.lastKey;
418
+ }
419
+ getItem(key) {
420
+ return this.keyMap.get(key);
421
+ }
422
+ at(idx) {
423
+ const keys = [
424
+ ...this.getKeys()
425
+ ];
426
+ return this.getItem(keys[idx]);
427
+ }
428
+ getChildren(key) {
429
+ let node = this.keyMap.get(key);
430
+ return (node === null || node === void 0 ? void 0 : node.childNodes) || [];
431
+ }
432
+ constructor(nodes) {
433
+ this.keyMap = /* @__PURE__ */ new Map();
434
+ this.iterable = nodes;
435
+ let visit = (node) => {
436
+ this.keyMap.set(node.key, node);
437
+ if (node.childNodes && node.type === "section")
438
+ for (let child of node.childNodes)
439
+ visit(child);
440
+ };
441
+ for (let node of nodes)
442
+ visit(node);
443
+ let last;
444
+ let index = 0;
445
+ for (let [key, node] of this.keyMap) {
446
+ if (last) {
447
+ last.nextKey = key;
448
+ node.prevKey = last.key;
449
+ } else {
450
+ this.firstKey = key;
451
+ node.prevKey = void 0;
452
+ }
453
+ if (node.type === "item")
454
+ node.index = index++;
455
+ last = node;
456
+ last.nextKey = void 0;
457
+ }
458
+ this.lastKey = last === null || last === void 0 ? void 0 : last.key;
459
+ }
460
+ }
461
+ function $e72dd72e1c76a225$export$2f645645f7bca764(props) {
462
+ let { filter } = props;
463
+ let selectionState = useTriggerWidth.$7af3f5b51489e0b5$export$253fe78d46329472(props);
464
+ let disabledKeys = React.useMemo(() => props.disabledKeys ? new Set(props.disabledKeys) : /* @__PURE__ */ new Set(), [
465
+ props.disabledKeys
466
+ ]);
467
+ let factory = React.useCallback((nodes) => filter ? new $a02d57049d202695$export$d085fb9e920b5ca7(filter(nodes)) : new $a02d57049d202695$export$d085fb9e920b5ca7(nodes), [
468
+ filter
469
+ ]);
470
+ let context = React.useMemo(() => ({
471
+ suppressTextValueWarning: props.suppressTextValueWarning
472
+ }), [
473
+ props.suppressTextValueWarning
474
+ ]);
475
+ let collection = useTriggerWidth.$7613b1592d41b092$export$6cd28814d92fa9c9(props, factory, context);
476
+ let selectionManager = React.useMemo(() => new useTriggerWidth.$d496c0a20b6e58ec$export$6c8a5aaad13c9852(collection, selectionState), [
477
+ collection,
478
+ selectionState
479
+ ]);
480
+ const cachedCollection = React.useRef(null);
481
+ React.useEffect(() => {
482
+ if (selectionState.focusedKey != null && !collection.getItem(selectionState.focusedKey)) {
483
+ const startItem = cachedCollection.current.getItem(selectionState.focusedKey);
484
+ const cachedItemNodes = [
485
+ ...cachedCollection.current.getKeys()
486
+ ].map((key) => {
487
+ const itemNode = cachedCollection.current.getItem(key);
488
+ return itemNode.type === "item" ? itemNode : null;
489
+ }).filter((node) => node !== null);
490
+ const itemNodes = [
491
+ ...collection.getKeys()
492
+ ].map((key) => {
493
+ const itemNode = collection.getItem(key);
494
+ return itemNode.type === "item" ? itemNode : null;
495
+ }).filter((node) => node !== null);
496
+ const diff = cachedItemNodes.length - itemNodes.length;
497
+ let index = Math.min(diff > 1 ? Math.max(startItem.index - diff + 1, 0) : startItem.index, itemNodes.length - 1);
498
+ let newNode;
499
+ while (index >= 0) {
500
+ if (!selectionManager.isDisabled(itemNodes[index].key)) {
501
+ newNode = itemNodes[index];
502
+ break;
503
+ }
504
+ if (index < itemNodes.length - 1)
505
+ index++;
506
+ else {
507
+ if (index > startItem.index)
508
+ index = startItem.index;
509
+ index--;
510
+ }
511
+ }
512
+ selectionState.setFocusedKey(newNode ? newNode.key : null);
513
+ }
514
+ cachedCollection.current = collection;
515
+ }, [
516
+ collection,
517
+ selectionManager,
518
+ selectionState,
519
+ selectionState.focusedKey
520
+ ]);
521
+ return {
522
+ collection,
523
+ disabledKeys,
524
+ selectionManager
525
+ };
526
+ }
527
+ function $a0d645289fe9b86b$export$e7f05e985daf4b5f(props) {
528
+ var _props_defaultSelectedKey;
529
+ let [selectedKey, setSelectedKey] = _import$4.$458b0a5536c1a7cf$export$40bfa8c7b0832715(props.selectedKey, (_props_defaultSelectedKey = props.defaultSelectedKey) !== null && _props_defaultSelectedKey !== void 0 ? _props_defaultSelectedKey : null, props.onSelectionChange);
530
+ let selectedKeys = React.useMemo(() => selectedKey != null ? [
531
+ selectedKey
532
+ ] : [], [
533
+ selectedKey
534
+ ]);
535
+ let { collection, disabledKeys, selectionManager } = $e72dd72e1c76a225$export$2f645645f7bca764(__spreadProps(__spreadValues({}, props), {
536
+ selectionMode: "single",
537
+ disallowEmptySelection: true,
538
+ allowDuplicateSelectionEvents: true,
539
+ selectedKeys,
540
+ onSelectionChange: (keys) => {
541
+ let key = keys.values().next().value;
542
+ if (key === selectedKey && props.onSelectionChange)
543
+ props.onSelectionChange(key);
544
+ setSelectedKey(key);
545
+ }
546
+ }));
547
+ let selectedItem = selectedKey != null ? collection.getItem(selectedKey) : null;
548
+ return {
549
+ collection,
550
+ disabledKeys,
551
+ selectionManager,
552
+ selectedKey,
553
+ setSelectedKey,
554
+ selectedItem
555
+ };
556
+ }
557
+ function $2bc3a590c5373a4e$export$5159ec8b34d4ec12(props) {
558
+ let triggerState = useTriggerWidth.$a28c903ee9ad8dc5$export$79fefeb1c2091ac3(props);
559
+ let listState = $a0d645289fe9b86b$export$e7f05e985daf4b5f(__spreadProps(__spreadValues({}, props), {
560
+ onSelectionChange: (key) => {
561
+ if (props.onSelectionChange != null)
562
+ props.onSelectionChange(key);
563
+ triggerState.close();
564
+ }
565
+ }));
566
+ let [isFocused, setFocused] = React.useState(false);
567
+ return __spreadProps(__spreadValues(__spreadValues({}, listState), triggerState), {
568
+ open() {
569
+ if (listState.collection.size !== 0)
570
+ triggerState.open();
571
+ },
572
+ toggle(focusStrategy) {
573
+ if (listState.collection.size !== 0)
574
+ triggerState.toggle(focusStrategy);
575
+ },
576
+ isFocused,
577
+ setFocused
578
+ });
579
+ }
580
+ const InternalSelectContext = React.createContext(null);
581
+ function useInternalSelectContext() {
582
+ const selectContext = React.useContext(InternalSelectContext);
583
+ if (!selectContext) {
584
+ throw new Error("InternalSelectContext must be used inside a <Select />");
585
+ }
586
+ return selectContext;
587
+ }
588
+ const underlay = "_underlay_134q0_5";
589
+ const listboxRoot = "_listboxRoot_134q0_10";
590
+ const listbox = "_listbox_134q0_10";
591
+ const listboxList = "_listboxList_134q0_65";
592
+ const sectionList = "_sectionList_134q0_66";
593
+ const optionContent = "_optionContent_134q0_72";
594
+ const separator = "_separator_134q0_73";
595
+ const option = "_option_134q0_72";
596
+ const fieldRoot = "_fieldRoot_134q0_116";
597
+ const selectField = "_selectField_134q0_137";
598
+ const selectSizeSm = "_selectSizeSm_134q0_176";
599
+ const selectSizeLg = "_selectSizeLg_134q0_190";
600
+ const selectFieldError = "_selectFieldError_134q0_198";
601
+ const selectFieldIconStart = "_selectFieldIconStart_134q0_206";
602
+ const selectFieldIconEnd = "_selectFieldIconEnd_134q0_210";
603
+ const selectFieldIconContainer = "_selectFieldIconContainer_134q0_214";
604
+ const selectFieldText = "_selectFieldText_134q0_220";
605
+ const listboxOpen = "_listboxOpen_134q0_224";
606
+ const styles = {
607
+ underlay,
608
+ listboxRoot,
609
+ listbox,
610
+ listboxList,
611
+ sectionList,
612
+ optionContent,
613
+ separator,
614
+ option,
615
+ fieldRoot,
616
+ selectField,
617
+ selectSizeSm,
618
+ selectSizeLg,
619
+ selectFieldError,
620
+ selectFieldIconStart,
621
+ selectFieldIconEnd,
622
+ selectFieldIconContainer,
623
+ selectFieldText,
624
+ listboxOpen
625
+ };
626
+ function SelectTrigger(props) {
627
+ const { size = "md", valueProps, iconAtStart, hasError, isDisabled, children } = props;
628
+ const { triggerProps, triggerRef, selectState } = useInternalSelectContext();
629
+ const hasStartIcon = !!iconAtStart;
630
+ const className = utilities_css.classNames(styles.selectField, styles.selectFieldIconEnd, selectState.isOpen && styles.listboxOpen, hasError && styles.selectFieldError, hasStartIcon && styles.selectFieldIconStart, styles[utilities_css.variationName("selectSize", size)]);
631
+ return React.createElement("div", {
632
+ className: styles.selectFieldIconContainer
633
+ }, hasStartIcon && React.createElement(InputIcon.InputIcon, {
634
+ alignment: "start",
635
+ icon: iconAtStart,
636
+ size,
637
+ isDisabled
638
+ }), React.createElement(UnstyledButton_index.UnstyledButton, __spreadProps(__spreadValues({}, triggerProps), {
639
+ ref: triggerRef,
640
+ className
641
+ }), React.createElement("span", __spreadProps(__spreadValues({}, valueProps), {
642
+ className: styles.selectFieldText
643
+ }), children)), React.createElement(InputIcon.InputIcon, {
644
+ alignment: "end",
645
+ icon: ExpandMore400.ExpandMore400,
646
+ size,
647
+ isDisabled
648
+ }));
649
+ }
650
+ function SelectField(props) {
651
+ const { isLabelVisuallyHidden = false, isDisabled = false, validationState = "valid", isLabelEmphasized = false, size = "md", label, errorText, helperText, placeholder, iconAtStart, labelProps, valueProps, errorTextProps, helperTextProps } = props;
652
+ const { triggerRef, selectState } = useInternalSelectContext();
653
+ const hasError = validationState === "invalid";
654
+ const showErrorText = hasError && errorText;
655
+ const showHelperText = !showErrorText && helperText;
656
+ const captionProps = showHelperText ? helperTextProps : errorTextProps;
657
+ const captionText = showHelperText ? helperText : errorText;
658
+ return React.createElement("div", {
659
+ className: utilities_css.classNames(styles.fieldRoot)
660
+ }, React.createElement(InputIcon.Label, __spreadValues({
661
+ isLabelVisuallyHidden,
662
+ fieldSize: size,
663
+ hasError,
664
+ isLabelEmphasized
665
+ }, labelProps), label), React.createElement($bdd25dc72710631f$export$cbd84cdb2e668835, {
666
+ isDisabled,
667
+ state: selectState,
668
+ triggerRef,
669
+ label
670
+ }), React.createElement(SelectTrigger, {
671
+ valueProps,
672
+ iconAtStart,
673
+ hasError,
674
+ isDisabled,
675
+ size
676
+ }, selectState.selectedItem ? selectState.selectedItem.rendered : React.createElement(Text_index.Text, {
677
+ color: "subdued"
678
+ }, placeholder)), (showErrorText || showHelperText) && React.createElement(InputIcon.InputCaption, __spreadValues({
679
+ variant: showHelperText ? "helper" : "error"
680
+ }, captionProps), captionText));
681
+ }
682
+ function SelectOption(_props) {
683
+ return null;
684
+ }
685
+ Object.assign(SelectOption, useTriggerWidth.$c1d7fb2ec91bae71$export$6d08773d2e66f8f2);
686
+ function SelectOptionContent({ item, state }) {
687
+ const ref = React.useRef(null);
688
+ const { optionProps, isSelected, isFocused, isDisabled } = $293f70390ea03370$export$497855f14858aa34({
689
+ key: item.key
690
+ }, state, ref);
691
+ return React.createElement("li", __spreadProps(__spreadValues({}, optionProps), {
692
+ ref,
693
+ className: styles.option,
694
+ "data-is-disabled": isDisabled,
695
+ "data-is-focused": isFocused,
696
+ "data-is-selected": isSelected
697
+ }), React.createElement("div", {
698
+ className: styles.optionContent
699
+ }, React.createElement(Text_index.Text, {
700
+ variant: "body1",
701
+ truncate: true
702
+ }, item.rendered)));
703
+ }
704
+ function SelectSection(_props) {
705
+ return null;
706
+ }
707
+ Object.assign(SelectSection, useTriggerWidth.$9fc4852771d079eb$export$6e2c8f0811a474ce);
708
+ function SelectSectionContent({ section, state }) {
709
+ const { itemProps, groupProps } = $af383d3bef1cfdc9$export$c3f9f39876e4bc7({
710
+ "aria-label": section["aria-label"]
711
+ });
712
+ const { separatorProps } = useTriggerWidth.$f4b273590fab9f93$export$52210f68a14655d0({
713
+ elementType: "li"
714
+ });
715
+ return React.createElement(React.Fragment, null, section.key !== state.collection.getFirstKey() && React.createElement("li", __spreadProps(__spreadValues({}, separatorProps), {
716
+ className: styles.separator
717
+ })), React.createElement("li", __spreadValues({}, itemProps), section.hasChildNodes && React.createElement("ul", __spreadProps(__spreadValues({}, groupProps), {
718
+ className: styles.sectionList
719
+ }), [...section.childNodes].map((item) => {
720
+ return React.createElement(SelectOptionContent, {
721
+ key: item.key,
722
+ item,
723
+ state
724
+ });
725
+ }))));
726
+ }
727
+ function SelectOverlay() {
728
+ const { selectState, triggerWidth } = useInternalSelectContext();
729
+ if (!selectState.isOpen || triggerWidth === null) {
730
+ return null;
731
+ }
732
+ return React.createElement(SelectOverlayContent, null);
733
+ }
734
+ function SelectOverlayContent() {
735
+ const { selectState, triggerRef, listBoxPropsFromSelect, triggerWidth } = useInternalSelectContext();
736
+ const popoverRef = React.useRef(null);
737
+ const listBoxRef = React.useRef(null);
738
+ const { popoverProps, underlayProps } = _import$3.$f2f8a6077418541e$export$542a6fd13ac93354({
739
+ containerPadding: useTriggerWidth.OVERLAY_PADDING_FROM_CONTAINER,
740
+ maxHeight: useTriggerWidth.ITEM_HEIGHT * Infinity + useTriggerWidth.Y_PADDING_INSIDE_OVERLAY * 2 + 2,
741
+ offset: useTriggerWidth.OVERLAY_OFFSET,
742
+ placement: useTriggerWidth.DEFAULT_PLACEMENT,
743
+ popoverRef,
744
+ scrollRef: listBoxRef,
745
+ triggerRef
746
+ }, selectState);
747
+ const { listBoxProps } = $c132121280ec012d$export$50eacbbf140a3141(listBoxPropsFromSelect, selectState, listBoxRef);
748
+ const style = __spreadValues(__spreadValues({}, popoverProps.style), useTriggerWidth.getUnmergedPopoverStyles(useTriggerWidth.DEFAULT_WIDTH, triggerWidth));
749
+ return React.createElement(_import$3.$f57aed4a881a3485$export$b47c3594eab58386, null, React.createElement("div", __spreadProps(__spreadValues({}, underlayProps), {
750
+ className: styles.underlay
751
+ })), React.createElement("div", __spreadProps(__spreadValues({}, _import.$3ef42575df84b30b$export$9d1611c77c2fe928(popoverProps, {
752
+ style
753
+ })), {
754
+ ref: popoverRef,
755
+ className: styles.listboxRoot
756
+ }), React.createElement(_import$3.$86ea4cb521eb2e37$export$2317d149ed6f78c4, {
757
+ onDismiss: selectState.close
758
+ }), React.createElement("div", __spreadProps(__spreadValues({}, listBoxProps), {
759
+ ref: listBoxRef,
760
+ className: styles.listbox,
761
+ "data-width": useTriggerWidth.DEFAULT_WIDTH,
762
+ "data-max-items-until-scroll": Infinity,
763
+ "data-overlayscrollbars-initialize": true
764
+ }), React.createElement("ul", {
765
+ className: styles.listboxList
766
+ }, [...selectState.collection].map((item) => {
767
+ return item.type === "section" ? React.createElement(SelectSectionContent, {
768
+ key: item.key,
769
+ section: item,
770
+ state: selectState
771
+ }) : React.createElement(SelectOptionContent, {
772
+ key: item.key,
773
+ item,
774
+ state: selectState
775
+ });
776
+ }))), React.createElement(_import$3.$86ea4cb521eb2e37$export$2317d149ed6f78c4, {
777
+ onDismiss: selectState.close
778
+ })));
779
+ }
780
+ function Select(props) {
781
+ const { isLabelVisuallyHidden, isDisabled, validationState, isLabelEmphasized, size = "md", label, errorText, helperText, placeholder, iconAtStart } = props;
782
+ const triggerRef = React.useRef(null);
783
+ const selectState = $2bc3a590c5373a4e$export$5159ec8b34d4ec12(props);
784
+ const { labelProps, valueProps, triggerProps, menuProps: listBoxPropsFromSelect, descriptionProps: helperTextProps, errorMessageProps: errorTextProps } = $58aed456727eb0f3$export$e64b2f635402ca43(props, selectState, triggerRef);
785
+ const triggerWidth = useTriggerWidth.useTriggerWidth(triggerRef);
786
+ const context = React.useMemo(() => {
787
+ return {
788
+ triggerProps,
789
+ listBoxPropsFromSelect,
790
+ triggerRef,
791
+ selectState,
792
+ triggerWidth
793
+ };
794
+ }, [triggerProps, listBoxPropsFromSelect, selectState, triggerWidth]);
795
+ return React.createElement(InternalSelectContext.Provider, {
796
+ value: context
797
+ }, React.createElement(SelectField, {
798
+ isLabelVisuallyHidden,
799
+ isDisabled,
800
+ validationState,
801
+ isLabelEmphasized,
802
+ size,
803
+ label,
804
+ errorText,
805
+ helperText,
806
+ placeholder,
807
+ iconAtStart,
808
+ labelProps,
809
+ valueProps,
810
+ helperTextProps,
811
+ errorTextProps
812
+ }), React.createElement(SelectOverlay, null));
813
+ }
814
+ Select.Section = SelectSection;
815
+ Select.Option = SelectOption;
816
+ exports.Select = Select;