@lumx/react 3.20.1-alpha.11 → 3.20.1-alpha.12

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 (183) hide show
  1. package/_internal/{8fcceef3.js → 0420e67b.js} +13 -14
  2. package/_internal/{8fcceef3.js.map → 0420e67b.js.map} +1 -1
  3. package/_internal/{7b214f74.js → 0a490b07.js} +29 -24
  4. package/_internal/{7b214f74.js.map → 0a490b07.js.map} +1 -1
  5. package/_internal/{4d92e13b.js → 0be1006e.js} +25 -25
  6. package/_internal/{4d92e13b.js.map → 0be1006e.js.map} +1 -1
  7. package/_internal/{dd0a245d.js → 0d1a078c.js} +44 -42
  8. package/_internal/{dd0a245d.js.map → 0d1a078c.js.map} +1 -1
  9. package/_internal/{1eab656b.js → 15eab19b.js} +25 -25
  10. package/_internal/{1eab656b.js.map → 15eab19b.js.map} +1 -1
  11. package/_internal/{87bada02.js → 179a84d1.js} +64 -67
  12. package/_internal/{87bada02.js.map → 179a84d1.js.map} +1 -1
  13. package/_internal/{4c5a7b63.js → 193521fa.js} +11 -12
  14. package/_internal/{4c5a7b63.js.map → 193521fa.js.map} +1 -1
  15. package/_internal/{f57d4eb8.js → 1a90ea3d.js} +15 -17
  16. package/_internal/{f57d4eb8.js.map → 1a90ea3d.js.map} +1 -1
  17. package/_internal/1deba7d7.js +224 -0
  18. package/_internal/{2d6bde7d.js.map → 1deba7d7.js.map} +1 -1
  19. package/_internal/{2938a251.js → 1ea72630.js} +16 -17
  20. package/_internal/{2938a251.js.map → 1ea72630.js.map} +1 -1
  21. package/_internal/21b83d16.js +137 -0
  22. package/_internal/{5ba8fae8.js.map → 21b83d16.js.map} +1 -1
  23. package/_internal/297bed8f.js +457 -0
  24. package/_internal/{e53b5a39.js.map → 297bed8f.js.map} +1 -1
  25. package/_internal/{432c85a7.js → 2c2b6a89.js} +9 -7
  26. package/_internal/{432c85a7.js.map → 2c2b6a89.js.map} +1 -1
  27. package/_internal/{bba7d4c4.js → 2f1716fa.js} +75 -63
  28. package/_internal/{bba7d4c4.js.map → 2f1716fa.js.map} +1 -1
  29. package/_internal/{2c7942af.js → 2f6c7f84.js} +16 -21
  30. package/_internal/{2c7942af.js.map → 2f6c7f84.js.map} +1 -1
  31. package/_internal/{64046d7a.js → 329b5f12.js} +10 -12
  32. package/_internal/{64046d7a.js.map → 329b5f12.js.map} +1 -1
  33. package/_internal/332e9844.js +2 -0
  34. package/_internal/332e9844.js.map +1 -0
  35. package/_internal/{85d992d2.js → 34c59f5b.js} +101 -98
  36. package/_internal/{85d992d2.js.map → 34c59f5b.js.map} +1 -1
  37. package/_internal/{30f4c83c.js → 370bdaed.js} +7 -5
  38. package/_internal/{30f4c83c.js.map → 370bdaed.js.map} +1 -1
  39. package/_internal/{7c4f4643.js → 37b007a4.js} +2 -2
  40. package/_internal/{7c4f4643.js.map → 37b007a4.js.map} +1 -1
  41. package/_internal/{07e0bd90.js → 3a4e4636.js} +51 -36
  42. package/_internal/{07e0bd90.js.map → 3a4e4636.js.map} +1 -1
  43. package/_internal/{3683d267.js → 3e653144.js} +8 -11
  44. package/_internal/{3683d267.js.map → 3e653144.js.map} +1 -1
  45. package/_internal/{c43d098b.js → 3f86608e.js} +5 -2
  46. package/_internal/{c43d098b.js.map → 3f86608e.js.map} +1 -1
  47. package/_internal/{b3bfbe72.js → 478b5c92.js} +2 -2
  48. package/_internal/{b3bfbe72.js.map → 478b5c92.js.map} +1 -1
  49. package/_internal/4962be5b.js +121 -0
  50. package/_internal/{70cf341b.js.map → 4962be5b.js.map} +1 -1
  51. package/_internal/{407735b4.js → 4cd870a5.js} +2 -2
  52. package/_internal/{407735b4.js.map → 4cd870a5.js.map} +1 -1
  53. package/_internal/{e4613195.js → 501f2f9f.js} +8 -9
  54. package/_internal/{e4613195.js.map → 501f2f9f.js.map} +1 -1
  55. package/_internal/5e7b90e2.js +2 -0
  56. package/_internal/5e7b90e2.js.map +1 -0
  57. package/_internal/{18334f0d.js → 5ec059fe.js} +48 -43
  58. package/_internal/{18334f0d.js.map → 5ec059fe.js.map} +1 -1
  59. package/_internal/{fc47f2da.js → 5f8f9454.js} +10 -12
  60. package/_internal/{fc47f2da.js.map → 5f8f9454.js.map} +1 -1
  61. package/_internal/{3f3de25e.js → 5fe09341.js} +3 -3
  62. package/_internal/{3f3de25e.js.map → 5fe09341.js.map} +1 -1
  63. package/_internal/{714809cc.js → 628468c4.js} +47 -46
  64. package/_internal/{714809cc.js.map → 628468c4.js.map} +1 -1
  65. package/_internal/{d3321a86.js → 6589b796.js} +2 -12
  66. package/_internal/{d3321a86.js.map → 6589b796.js.map} +1 -1
  67. package/_internal/{2368cb68.js → 65f91970.js} +43 -43
  68. package/_internal/{2368cb68.js.map → 65f91970.js.map} +1 -1
  69. package/_internal/66f691d3.js +74 -0
  70. package/_internal/{1921f348.js.map → 66f691d3.js.map} +1 -1
  71. package/_internal/{bdd41804.js → 68c10f98.js} +50 -41
  72. package/_internal/{bdd41804.js.map → 68c10f98.js.map} +1 -1
  73. package/_internal/{9cfa3e10.js → 690ca33e.js} +36 -35
  74. package/_internal/{9cfa3e10.js.map → 690ca33e.js.map} +1 -1
  75. package/_internal/6ca04271.js +108 -0
  76. package/_internal/{a67f26a8.js.map → 6ca04271.js.map} +1 -1
  77. package/_internal/{cdc3efab.js → 6da19518.js} +24 -32
  78. package/_internal/{cdc3efab.js.map → 6da19518.js.map} +1 -1
  79. package/_internal/{bcce6ceb.js → 7093ba23.js} +6 -4
  80. package/_internal/{bcce6ceb.js.map → 7093ba23.js.map} +1 -1
  81. package/_internal/{bc4cb4c0.js → 74a4a214.js} +29 -33
  82. package/_internal/{bc4cb4c0.js.map → 74a4a214.js.map} +1 -1
  83. package/_internal/{95a2e851.js → 76be70dd.js} +3 -3
  84. package/_internal/{95a2e851.js.map → 76be70dd.js.map} +1 -1
  85. package/_internal/{60f8e509.js → 7f54e947.js} +114 -101
  86. package/_internal/{60f8e509.js.map → 7f54e947.js.map} +1 -1
  87. package/_internal/{72407886.js → 84dfe68f.js} +50 -44
  88. package/_internal/{72407886.js.map → 84dfe68f.js.map} +1 -1
  89. package/_internal/{e2440593.js → 85e3a5ca.js} +32 -35
  90. package/_internal/{e2440593.js.map → 85e3a5ca.js.map} +1 -1
  91. package/_internal/{742d4906.js → 86aa4aa4.js} +60 -54
  92. package/_internal/{742d4906.js.map → 86aa4aa4.js.map} +1 -1
  93. package/_internal/{4e1dde79.js → 8ab42752.js} +25 -26
  94. package/_internal/{4e1dde79.js.map → 8ab42752.js.map} +1 -1
  95. package/_internal/{0f4b35b2.js → 95cfd814.js} +14 -20
  96. package/_internal/{0f4b35b2.js.map → 95cfd814.js.map} +1 -1
  97. package/_internal/{d6b3a3c0.js → 9a4dfad0.js} +48 -39
  98. package/_internal/{d6b3a3c0.js.map → 9a4dfad0.js.map} +1 -1
  99. package/_internal/{80e5c950.js → 9c9df5f2.js} +19 -19
  100. package/_internal/{80e5c950.js.map → 9c9df5f2.js.map} +1 -1
  101. package/_internal/{21aeb1c7.js → 9d1336a1.js} +6 -6
  102. package/_internal/{21aeb1c7.js.map → 9d1336a1.js.map} +1 -1
  103. package/_internal/{ee64ab0d.js → 9fdc715b.js} +37 -34
  104. package/_internal/{ee64ab0d.js.map → 9fdc715b.js.map} +1 -1
  105. package/_internal/a003602b.js +116 -0
  106. package/_internal/{32698205.js.map → a003602b.js.map} +1 -1
  107. package/_internal/{baa0a23b.js → a34639bd.js} +31 -29
  108. package/_internal/{baa0a23b.js.map → a34639bd.js.map} +1 -1
  109. package/_internal/{cb036703.js → a84f4981.js} +35 -26
  110. package/_internal/{cb036703.js.map → a84f4981.js.map} +1 -1
  111. package/_internal/{9210e2f3.js → b0a7a999.js} +10 -12
  112. package/_internal/{9210e2f3.js.map → b0a7a999.js.map} +1 -1
  113. package/_internal/{3646abc3.js → b0b2e33d.js} +117 -104
  114. package/_internal/{3646abc3.js.map → b0b2e33d.js.map} +1 -1
  115. package/_internal/{1aaa0341.js → b1af5979.js} +168 -160
  116. package/_internal/{1aaa0341.js.map → b1af5979.js.map} +1 -1
  117. package/_internal/{21cf275f.js → b477da26.js} +63 -57
  118. package/_internal/{21cf275f.js.map → b477da26.js.map} +1 -1
  119. package/_internal/{60923026.js → b8667090.js} +2 -2
  120. package/_internal/{60923026.js.map → b8667090.js.map} +1 -1
  121. package/_internal/{1e4b7ad5.js → bae266a9.js} +19 -18
  122. package/_internal/{1e4b7ad5.js.map → bae266a9.js.map} +1 -1
  123. package/_internal/{9d8130ae.js → be6da9b0.js} +69 -74
  124. package/_internal/{9d8130ae.js.map → be6da9b0.js.map} +1 -1
  125. package/_internal/{9452daf7.js → c0414b89.js} +10 -12
  126. package/_internal/{9452daf7.js.map → c0414b89.js.map} +1 -1
  127. package/_internal/{e566d502.js → c2388b10.js} +21 -17
  128. package/_internal/{e566d502.js.map → c2388b10.js.map} +1 -1
  129. package/_internal/{9cf0d217.js → c459a04d.js} +55 -54
  130. package/_internal/{9cf0d217.js.map → c459a04d.js.map} +1 -1
  131. package/_internal/c6ca7494.js +2 -0
  132. package/_internal/c6ca7494.js.map +1 -0
  133. package/_internal/{01bc8fcf.js → cdddaed8.js} +20 -18
  134. package/_internal/{01bc8fcf.js.map → cdddaed8.js.map} +1 -1
  135. package/_internal/{0361b7fb.js → d45e3f16.js} +2 -2
  136. package/_internal/{0361b7fb.js.map → d45e3f16.js.map} +1 -1
  137. package/_internal/{d66c4375.js → d5f316cb.js} +2 -2
  138. package/_internal/{d66c4375.js.map → d5f316cb.js.map} +1 -1
  139. package/_internal/{0a31e895.js → db4fdc7b.js} +63 -57
  140. package/_internal/{0a31e895.js.map → db4fdc7b.js.map} +1 -1
  141. package/_internal/dbe0cf24.js +75 -0
  142. package/_internal/{803945f7.js.map → dbe0cf24.js.map} +1 -1
  143. package/_internal/{4ceaf17c.js → e2afb13f.js} +2 -2
  144. package/_internal/{4ceaf17c.js.map → e2afb13f.js.map} +1 -1
  145. package/_internal/{b925072d.js → e52f0d3f.js} +37 -34
  146. package/_internal/{b925072d.js.map → e52f0d3f.js.map} +1 -1
  147. package/_internal/{aa8c5d9b.js → e6dd117e.js} +2 -2
  148. package/_internal/{aa8c5d9b.js.map → e6dd117e.js.map} +1 -1
  149. package/_internal/{077b7bef.js → ea04260d.js} +6 -6
  150. package/_internal/{077b7bef.js.map → ea04260d.js.map} +1 -1
  151. package/_internal/{77eb8ef3.js → eaa8b1d8.js} +39 -38
  152. package/_internal/{77eb8ef3.js.map → eaa8b1d8.js.map} +1 -1
  153. package/_internal/{aafcf80e.js → edab29ce.js} +61 -65
  154. package/_internal/{aafcf80e.js.map → edab29ce.js.map} +1 -1
  155. package/_internal/{38b3ecf3.js → f0900583.js} +54 -45
  156. package/_internal/{38b3ecf3.js.map → f0900583.js.map} +1 -1
  157. package/_internal/{881714a1.js → f23cdf84.js} +45 -51
  158. package/_internal/{881714a1.js.map → f23cdf84.js.map} +1 -1
  159. package/_internal/f52e979e.js +3 -0
  160. package/_internal/f52e979e.js.map +1 -0
  161. package/_internal/{1ce667fb.js → f5508d3d.js} +53 -51
  162. package/_internal/{1ce667fb.js.map → f5508d3d.js.map} +1 -1
  163. package/_internal/{43262bfe.js → f93fe83e.js} +11 -13
  164. package/_internal/{43262bfe.js.map → f93fe83e.js.map} +1 -1
  165. package/index.js +63 -63
  166. package/package.json +3 -11
  167. package/utils/index.js +3 -3
  168. package/_internal/1921f348.js +0 -72
  169. package/_internal/286fc728.js +0 -2
  170. package/_internal/286fc728.js.map +0 -1
  171. package/_internal/2d6bde7d.js +0 -209
  172. package/_internal/32698205.js +0 -107
  173. package/_internal/5ba8fae8.js +0 -120
  174. package/_internal/70cf341b.js +0 -117
  175. package/_internal/803945f7.js +0 -65
  176. package/_internal/a67f26a8.js +0 -98
  177. package/_internal/ac3bc511.js +0 -2
  178. package/_internal/ac3bc511.js.map +0 -1
  179. package/_internal/cc995526.js +0 -2
  180. package/_internal/cc995526.js.map +0 -1
  181. package/_internal/e2122a37.js +0 -3
  182. package/_internal/e2122a37.js.map +0 -1
  183. package/_internal/e53b5a39.js +0 -407
@@ -1,407 +0,0 @@
1
- import { m as getRootClassName, b as Theme, l as classNames, _ as _extends, K as Kind, n as forwardRef, c as Size, d as Emphasis } from './d3321a86.js';
2
- import isEmpty from 'lodash/isEmpty';
3
- import { I as IconButton } from './7b214f74.js';
4
- import { C as Chip } from './e2440593.js';
5
- import { I as Icon, m as mdiAlertCircle } from './4e1dde79.js';
6
- import { InputLabel } from './9210e2f3.js';
7
- import { h as handleBasicClasses } from './4ceaf17c.js';
8
- import { m as mergeRefs } from './f0d7d6ea.js';
9
- import { u as useTheme } from './3181f000.js';
10
- import { useState, useEffect, useRef, useCallback } from 'react';
11
- import { Dropdown } from './2938a251.js';
12
- import { InputHelper } from './fc47f2da.js';
13
- import { u as useFocusTrap } from './3f3de25e.js';
14
- import { u as useId } from './3a1facc0.js';
15
- import { P as Placement } from './407735b4.js';
16
- import { m as mdiCloseCircle } from './ef5d1aac.js';
17
- import { m as mdiCheckCircle } from './de24f857.js';
18
- import { m as mdiClose } from './eaf6c45a.js';
19
-
20
- const mdiMenuDown = 'm7 10 5 5 5-5z';
21
-
22
- /**
23
- * Listen on element focus to store the focus status.
24
- */
25
- function useListenFocus(ref) {
26
- const [isFocus, setFocus] = useState(false);
27
- useEffect(() => {
28
- const {
29
- current: element
30
- } = ref;
31
- if (!element) {
32
- return undefined;
33
- }
34
- const onFocus = () => setFocus(true);
35
- const onBlur = () => setFocus(false);
36
- element.addEventListener('focus', onFocus);
37
- element.addEventListener('blur', onBlur);
38
- return () => {
39
- element.removeEventListener('focus', onFocus);
40
- element.removeEventListener('blur', onBlur);
41
- };
42
- }, [ref, setFocus]);
43
- return isFocus;
44
- }
45
-
46
- /** The display name of the component. */
47
- const COMPONENT_NAME$2 = 'Select';
48
-
49
- /** The default class name and classes prefix for this component. */
50
- const CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
51
- const WithSelectContext = (SelectElement, props, ref) => {
52
- const defaultTheme = useTheme() || Theme.light;
53
- const {
54
- children,
55
- className,
56
- focusElement,
57
- isMultiple,
58
- closeOnClick = !isMultiple,
59
- disabled,
60
- error,
61
- hasError,
62
- helper,
63
- id,
64
- isDisabled = disabled,
65
- isEmpty,
66
- isOpen,
67
- isRequired,
68
- isValid,
69
- label,
70
- onClear,
71
- onDropdownClose,
72
- onInfiniteScroll,
73
- onInputClick,
74
- placeholder,
75
- theme = defaultTheme,
76
- value,
77
- variant,
78
- ...forwardedProps
79
- } = props;
80
- const generatedSelectId = useId();
81
- const selectId = id || generatedSelectId;
82
- const anchorRef = useRef(null);
83
- const selectRef = useRef(null);
84
- const dropdownRef = useRef(null);
85
- const isFocus = useListenFocus(anchorRef);
86
- const handleKeyboardNav = useCallback(evt => {
87
- if ((evt.key === 'Enter' || evt.key === ' ' || evt.key === 'ArrowDown') && onInputClick) {
88
- evt.preventDefault();
89
- onInputClick();
90
- }
91
- }, [onInputClick]);
92
- const onClose = () => {
93
- if (onDropdownClose) {
94
- onDropdownClose();
95
- }
96
- anchorRef?.current?.blur();
97
- };
98
-
99
- // Handle focus trap.
100
- useFocusTrap(isOpen && dropdownRef.current, focusElement?.current);
101
- return /*#__PURE__*/React.createElement("div", {
102
- ref: mergeRefs(ref, selectRef),
103
- className: classNames(className, handleBasicClasses({
104
- hasError,
105
- hasLabel: Boolean(label),
106
- hasPlaceholder: Boolean(placeholder),
107
- hasValue: !isEmpty,
108
- isDisabled,
109
- isEmpty,
110
- isFocus,
111
- isOpen,
112
- isValid,
113
- prefix: CLASSNAME$2,
114
- theme: theme === Theme.light ? Theme.light : Theme.dark
115
- }))
116
- }, /*#__PURE__*/React.createElement(SelectElement, _extends({}, forwardedProps, {
117
- anchorRef: anchorRef,
118
- "aria-disabled": isDisabled,
119
- handleKeyboardNav: handleKeyboardNav,
120
- hasError: hasError,
121
- isDisabled: isDisabled,
122
- isEmpty: isEmpty,
123
- isRequired: isRequired,
124
- isValid: isValid,
125
- label: label,
126
- placeholder: placeholder,
127
- id: selectId,
128
- theme: theme,
129
- value: value,
130
- variant: variant,
131
- onClear: onClear,
132
- onInputClick: onInputClick
133
- })), /*#__PURE__*/React.createElement(Dropdown, {
134
- anchorRef: anchorRef,
135
- closeOnClick: closeOnClick,
136
- closeOnClickAway: true,
137
- closeOnEscape: true,
138
- isOpen: !!isOpen,
139
- placement: Placement.BOTTOM_START,
140
- onClose: onClose,
141
- onInfiniteScroll: onInfiniteScroll,
142
- ref: dropdownRef
143
- }, children), hasError && error && /*#__PURE__*/React.createElement(InputHelper, {
144
- className: `${CLASSNAME$2}__helper`,
145
- kind: Kind.error,
146
- theme: theme
147
- }, error), helper && /*#__PURE__*/React.createElement(InputHelper, {
148
- className: `${CLASSNAME$2}__helper`,
149
- theme: theme
150
- }, helper));
151
- };
152
-
153
- /**
154
- * Select variants.
155
- */
156
- const SelectVariant = {
157
- input: 'input',
158
- chip: 'chip'
159
- };
160
-
161
- /** The display name of the component. */
162
- const COMPONENT_NAME$1 = 'Select';
163
-
164
- /** The default class name and classes prefix for this component. */
165
- const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
166
-
167
- /** The default value of props. */
168
- const DEFAULT_PROPS$1 = {
169
- selectedValueRender: choice => choice,
170
- variant: SelectVariant.input
171
- };
172
- const stopPropagation = evt => evt.stopPropagation();
173
-
174
- /**
175
- * Select component.
176
- */
177
- const SelectField = props => {
178
- const defaultTheme = useTheme();
179
- const {
180
- anchorRef,
181
- clearButtonProps,
182
- handleKeyboardNav,
183
- hasError,
184
- hasInputClear,
185
- icon,
186
- id,
187
- isDisabled,
188
- isEmpty,
189
- isRequired,
190
- isValid,
191
- label,
192
- onClear,
193
- onInputClick,
194
- placeholder,
195
- selectedValueRender,
196
- theme = defaultTheme,
197
- value,
198
- variant,
199
- selectElementRef,
200
- ...forwardedProps
201
- } = props;
202
- return /*#__PURE__*/React.createElement(React.Fragment, null, variant === SelectVariant.input && /*#__PURE__*/React.createElement(React.Fragment, null, label && /*#__PURE__*/React.createElement("div", {
203
- className: `${CLASSNAME$1}__header`
204
- }, /*#__PURE__*/React.createElement(InputLabel, {
205
- htmlFor: id,
206
- className: `${CLASSNAME$1}__label`,
207
- isRequired: isRequired,
208
- theme: theme
209
- }, label)), /*#__PURE__*/React.createElement("div", _extends({
210
- ref: mergeRefs(anchorRef, selectElementRef),
211
- id: id,
212
- className: `${CLASSNAME$1}__wrapper`,
213
- onClick: onInputClick,
214
- onKeyDown: handleKeyboardNav,
215
- tabIndex: isDisabled ? undefined : 0,
216
- "aria-disabled": isDisabled || undefined
217
- }, forwardedProps), icon && /*#__PURE__*/React.createElement(Icon, {
218
- className: `${CLASSNAME$1}__input-icon`,
219
- color: theme === Theme.dark ? 'light' : undefined,
220
- icon: icon,
221
- size: Size.xs
222
- }), /*#__PURE__*/React.createElement("div", {
223
- className: classNames([`${CLASSNAME$1}__input-native`, isEmpty && placeholder && `${CLASSNAME$1}__input-native--placeholder`])
224
- }, !isEmpty && /*#__PURE__*/React.createElement("span", null, selectedValueRender?.(value)), isEmpty && placeholder && /*#__PURE__*/React.createElement("span", null, placeholder)), (isValid || hasError) && /*#__PURE__*/React.createElement("div", {
225
- className: `${CLASSNAME$1}__input-validity`
226
- }, /*#__PURE__*/React.createElement(Icon, {
227
- icon: isValid ? mdiCheckCircle : mdiAlertCircle,
228
- size: Size.xxs
229
- })), hasInputClear && clearButtonProps && /*#__PURE__*/React.createElement(IconButton, _extends({}, clearButtonProps, {
230
- className: `${CLASSNAME$1}__input-clear`,
231
- icon: mdiCloseCircle,
232
- emphasis: Emphasis.low,
233
- size: Size.s,
234
- theme: theme,
235
- onClick: onClear,
236
- onKeyDown: stopPropagation
237
- })), /*#__PURE__*/React.createElement("div", {
238
- className: `${CLASSNAME$1}__input-indicator`
239
- }, /*#__PURE__*/React.createElement(Icon, {
240
- icon: mdiMenuDown,
241
- size: Size.s
242
- })))), variant === SelectVariant.chip && /*#__PURE__*/React.createElement(Chip, _extends({
243
- id: id,
244
- isSelected: !isEmpty,
245
- isDisabled: isDisabled,
246
- after: /*#__PURE__*/React.createElement(Icon, {
247
- icon: isEmpty ? mdiMenuDown : mdiCloseCircle
248
- }),
249
- onAfterClick: isEmpty ? onInputClick : onClear,
250
- onClick: onInputClick,
251
- ref: mergeRefs(anchorRef, selectElementRef),
252
- theme: theme
253
- }, forwardedProps), isEmpty && /*#__PURE__*/React.createElement("span", null, label), !isEmpty && /*#__PURE__*/React.createElement("span", null, selectedValueRender?.(value))));
254
- };
255
-
256
- /**
257
- * Select component.
258
- *
259
- * @param props Component props.
260
- * @param ref Component ref.
261
- * @return React element.
262
- */
263
- const Select = forwardRef((props, ref) => {
264
- const isEmpty$1 = isEmpty(props.value);
265
- const hasInputClear = props.onClear && props.clearButtonProps && !isEmpty$1;
266
- return WithSelectContext(SelectField, {
267
- ...DEFAULT_PROPS$1,
268
- ...props,
269
- className: classNames(props.className, handleBasicClasses({
270
- hasInputClear,
271
- hasUnique: !props.isEmpty,
272
- prefix: CLASSNAME$1
273
- })),
274
- hasInputClear,
275
- isEmpty: isEmpty$1
276
- }, ref);
277
- });
278
- Select.displayName = COMPONENT_NAME$1;
279
- Select.className = CLASSNAME$1;
280
- Select.defaultProps = DEFAULT_PROPS$1;
281
- Select.className = CLASSNAME$1;
282
-
283
- /** Defines the props of the component. */
284
-
285
- /** The display name of the component. */
286
- const COMPONENT_NAME = 'Select';
287
-
288
- /** The default class name and classes prefix for this component. */
289
- const CLASSNAME = getRootClassName(COMPONENT_NAME);
290
-
291
- /** The default value of props. */
292
- const DEFAULT_PROPS = {
293
- selectedChipRender(choice, index, onClear, isDisabled, theme) {
294
- const onClick = event => onClear && onClear(event, choice);
295
- return /*#__PURE__*/React.createElement(Chip, {
296
- key: index,
297
- after: onClear && /*#__PURE__*/React.createElement(Icon, {
298
- icon: mdiClose,
299
- size: Size.xxs
300
- }),
301
- isDisabled: isDisabled,
302
- size: Size.s,
303
- onAfterClick: onClick,
304
- onClick: onClick,
305
- theme: theme
306
- }, choice);
307
- },
308
- selectedValueRender: choice => choice,
309
- variant: SelectVariant.input
310
- };
311
- const SelectMultipleField = props => {
312
- const defaultTheme = useTheme();
313
- const {
314
- anchorRef,
315
- handleKeyboardNav,
316
- hasError,
317
- icon,
318
- id,
319
- isDisabled,
320
- isEmpty,
321
- isRequired,
322
- isValid,
323
- label,
324
- onClear,
325
- onInputClick,
326
- placeholder,
327
- selectedChipRender,
328
- selectedValueRender,
329
- theme = defaultTheme,
330
- value,
331
- variant,
332
- selectElementRef,
333
- ...forwardedProps
334
- } = props;
335
- return /*#__PURE__*/React.createElement(React.Fragment, null, variant === SelectVariant.input && /*#__PURE__*/React.createElement(React.Fragment, null, label && /*#__PURE__*/React.createElement("div", {
336
- className: `${CLASSNAME}__header`
337
- }, /*#__PURE__*/React.createElement(InputLabel, {
338
- htmlFor: id,
339
- className: `${CLASSNAME}__label`,
340
- isRequired: isRequired,
341
- theme: theme
342
- }, label)), /*#__PURE__*/React.createElement("div", _extends({
343
- ref: mergeRefs(anchorRef, selectElementRef),
344
- id: id,
345
- className: `${CLASSNAME}__wrapper`,
346
- onClick: onInputClick,
347
- onKeyDown: handleKeyboardNav,
348
- tabIndex: isDisabled ? undefined : 0,
349
- "aria-disabled": isDisabled || undefined
350
- }, forwardedProps), icon && /*#__PURE__*/React.createElement(Icon, {
351
- className: `${CLASSNAME}__input-icon`,
352
- color: theme === Theme.dark ? 'light' : undefined,
353
- icon: icon,
354
- size: Size.xs
355
- }), /*#__PURE__*/React.createElement("div", {
356
- className: `${CLASSNAME}__chips`
357
- }, !isEmpty && value.map((val, index) => selectedChipRender?.(val, index, onClear, isDisabled, theme))), isEmpty && placeholder && /*#__PURE__*/React.createElement("div", {
358
- className: classNames([`${CLASSNAME}__input-native`, `${CLASSNAME}__input-native--placeholder`])
359
- }, /*#__PURE__*/React.createElement("span", null, placeholder)), (isValid || hasError) && /*#__PURE__*/React.createElement("div", {
360
- className: `${CLASSNAME}__input-validity`
361
- }, /*#__PURE__*/React.createElement(Icon, {
362
- icon: isValid ? mdiCheckCircle : mdiAlertCircle,
363
- size: Size.xxs
364
- })), /*#__PURE__*/React.createElement("div", {
365
- className: `${CLASSNAME}__input-indicator`
366
- }, /*#__PURE__*/React.createElement(Icon, {
367
- icon: mdiMenuDown,
368
- size: Size.s
369
- })))), variant === SelectVariant.chip && /*#__PURE__*/React.createElement(Chip, _extends({
370
- id: id,
371
- isSelected: !isEmpty,
372
- isDisabled: isDisabled,
373
- after: /*#__PURE__*/React.createElement(Icon, {
374
- icon: isEmpty ? mdiMenuDown : mdiCloseCircle
375
- }),
376
- onAfterClick: isEmpty ? onInputClick : onClear,
377
- onClick: onInputClick,
378
- ref: mergeRefs(anchorRef, selectElementRef),
379
- theme: theme
380
- }, forwardedProps), isEmpty && /*#__PURE__*/React.createElement("span", null, label), !isEmpty && /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", null, selectedValueRender?.(value[0])), value.length > 1 && /*#__PURE__*/React.createElement("span", null, "\xA0+", value.length - 1))));
381
- };
382
-
383
- /**
384
- * SelectMultiple component.
385
- *
386
- * @param props Component props.
387
- * @param ref Component ref.
388
- * @return React element.
389
- */
390
- const SelectMultiple = forwardRef((props, ref) => {
391
- return WithSelectContext(SelectMultipleField, {
392
- ...DEFAULT_PROPS,
393
- ...props,
394
- className: classNames(props.className, handleBasicClasses({
395
- hasMultiple: !props.isEmpty,
396
- prefix: CLASSNAME
397
- })),
398
- isEmpty: props.value.length === 0,
399
- isMultiple: true
400
- }, ref);
401
- });
402
- SelectMultiple.displayName = COMPONENT_NAME;
403
- SelectMultiple.className = CLASSNAME;
404
- SelectMultiple.defaultProps = DEFAULT_PROPS;
405
-
406
- export { Select, SelectMultiple, SelectMultipleField, SelectVariant };
407
- //# sourceMappingURL=e53b5a39.js.map