@thecb/components 6.0.0-beta.15 → 6.0.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thecb/components",
3
- "version": "6.0.0-beta.15",
3
+ "version": "6.0.0-beta.16",
4
4
  "description": "Common lib for CityBase react components",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -16,12 +16,12 @@ import { fallbackValues } from "./Dropdown.theme";
16
16
  import { themeComponent } from "../../../util/themeUtils";
17
17
 
18
18
  const IconWrapper = styled.div`
19
+ position: absolute;
19
20
  display: flex;
20
21
  flex-direction: column;
21
22
  justify-content: center;
22
23
  transition: transform 0.3s ease;
23
24
  ${({ open }) => (open ? "transform: rotate(-180deg)" : "")}
24
- position: absolute;
25
25
  top: 20px;
26
26
  right: 12px;
27
27
  `;
@@ -131,6 +131,9 @@ const Dropdown = ({
131
131
  switch (key) {
132
132
  case "ArrowDown":
133
133
  e.preventDefault();
134
+ if (!isOpen) {
135
+ onClick();
136
+ }
134
137
  if (optionEl) {
135
138
  if (optionEl.current.nextElementSibling) {
136
139
  optionEl.current.nextElementSibling.focus();
@@ -180,6 +183,10 @@ const Dropdown = ({
180
183
  }
181
184
  break;
182
185
  }
186
+ if ((keyCode > 64 && keyCode < 91) || keyCode == 32 || keyCode == 189) {
187
+ e.preventDefault();
188
+ setInputValue(inputValue + key);
189
+ }
183
190
  };
184
191
 
185
192
  useEffect(() => {
@@ -231,71 +238,70 @@ const Dropdown = ({
231
238
  extraStyles={`position: relative;`}
232
239
  minWidth="100%"
233
240
  onClick={() => {
234
- onClick();
241
+ if (!isOpen) {
242
+ onClick();
243
+ }
235
244
  }}
236
245
  onKeyDown={onKeyDown}
237
246
  width="100%"
238
247
  >
239
- <Stack direction="row" bottomItem={2}>
240
- <Box
241
- as="input"
242
- aria-multiline="false"
243
- aria-autocomplete="list"
244
- aria-controls={`${ariaLabelledby}_listbox`}
245
- aria-activedescendant="focused_option"
246
- aria-owns={`${ariaLabelledby}_listbox`}
247
- aria-haspopup="listbox"
248
- aria-labelledby={ariaLabelledby}
249
- aria-expanded={isOpen}
250
- autocomplete={autocompleteValue}
251
- background={isOpen ? themeValues.hoverColor : WHITE}
252
- borderRadius="2px"
253
- borderSize="1px"
254
- borderColor={
255
- isError
256
- ? ERROR_COLOR
257
- : isOpen
258
- ? themeValues.selectedColor
259
- : GREY_CHATEAU
260
- }
261
- borderWidthOverride="1px 0px 1px 1px"
262
- extraStyles={
263
- disabled &&
264
- `color: #6e727e;
248
+ <Box
249
+ as="input"
250
+ aria-multiline="false"
251
+ aria-autocomplete="list"
252
+ aria-controls={`${ariaLabelledby}_listbox`}
253
+ aria-activedescendant="focused_option"
254
+ aria-owns={`${ariaLabelledby}_listbox`}
255
+ aria-haspopup="listbox"
256
+ aria-labelledby={ariaLabelledby}
257
+ aria-expanded={isOpen}
258
+ autocomplete={autocompleteValue}
259
+ background={isOpen ? themeValues.hoverColor : WHITE}
260
+ borderRadius="2px"
261
+ borderSize="1px"
262
+ borderColor={
263
+ isError
264
+ ? ERROR_COLOR
265
+ : isOpen
266
+ ? themeValues.selectedColor
267
+ : GREY_CHATEAU
268
+ }
269
+ extraStyles={
270
+ disabled &&
271
+ `color: #6e727e;
265
272
  background-color: #f7f7f7;
266
273
  pointer-events: none;`
274
+ }
275
+ hoverStyles={`background-color: ${themeValues.hoverColor};`}
276
+ isOpen={isOpen}
277
+ minHeight="48px"
278
+ minWidth="100%"
279
+ name={autocompleteValue}
280
+ onFocus={() => {
281
+ if (!isOpen) {
282
+ onClick();
267
283
  }
268
- hoverStyles={`background-color: ${themeValues.hoverColor};`}
269
- isOpen={isOpen}
270
- minHeight="48px"
271
- minWidth="100%"
272
- name={autocompleteValue}
273
- onFocus={() => {
274
- if (!isOpen) {
275
- onClick();
276
- }
277
- }}
278
- onChange={e => {
279
- console.log("current input value", inputValue);
280
- console.log("input change event", e.target);
281
- console.log("input change event value", e.target.value);
282
- setInputValue(e.target.value);
283
- }}
284
- padding="12px"
285
- placeholder={getSelection()}
286
- role="combobox"
287
- themeValues={themeValues}
288
- title={hasTitles ? getSelection() : null}
289
- type="text"
290
- tabIndex={0}
291
- value={inputValue}
292
- width="100%"
293
- dataQa={placeholder}
294
- />
295
- <IconWrapper open={isOpen}>
296
- <DropdownIcon />
297
- </IconWrapper>
298
- </Stack>
284
+ }}
285
+ onChange={e => {
286
+ console.log("current input value", inputValue);
287
+ console.log("input change event", e.target);
288
+ console.log("input change event value", e.target.value);
289
+ setInputValue(e.target.value);
290
+ }}
291
+ padding="12px"
292
+ placeholder={getSelection()}
293
+ role="combobox"
294
+ themeValues={themeValues}
295
+ title={hasTitles ? getSelection() : null}
296
+ type="text"
297
+ tabIndex={0}
298
+ value={inputValue}
299
+ width="100%"
300
+ dataQa={placeholder}
301
+ />
302
+ <IconWrapper open={isOpen} onClick={onClick}>
303
+ <DropdownIcon />
304
+ </IconWrapper>
299
305
  <Fragment>
300
306
  {isOpen ? (
301
307
  <DropdownContentWrapper