@atlaskit/react-select 1.4.0 → 1.4.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 (64) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/accessibility/index.js +9 -7
  3. package/dist/cjs/components/containers.js +9 -7
  4. package/dist/cjs/components/control.js +58 -13
  5. package/dist/cjs/components/group.js +11 -11
  6. package/dist/cjs/components/indicators.js +39 -34
  7. package/dist/cjs/components/input.js +1 -1
  8. package/dist/cjs/components/internal/a11y-text.js +2 -0
  9. package/dist/cjs/components/live-region.js +6 -3
  10. package/dist/cjs/components/menu.js +4 -5
  11. package/dist/cjs/components/multi-value.js +86 -30
  12. package/dist/cjs/components/option.js +38 -13
  13. package/dist/cjs/components/placeholder.js +3 -6
  14. package/dist/cjs/components/single-value.js +3 -6
  15. package/dist/cjs/select.js +105 -54
  16. package/dist/es2019/accessibility/index.js +9 -7
  17. package/dist/es2019/components/containers.js +8 -8
  18. package/dist/es2019/components/control.js +71 -24
  19. package/dist/es2019/components/group.js +10 -18
  20. package/dist/es2019/components/indicators.js +25 -28
  21. package/dist/es2019/components/input.js +1 -1
  22. package/dist/es2019/components/internal/a11y-text.js +2 -0
  23. package/dist/es2019/components/live-region.js +6 -2
  24. package/dist/es2019/components/menu.js +6 -11
  25. package/dist/es2019/components/multi-value.js +89 -30
  26. package/dist/es2019/components/option.js +48 -22
  27. package/dist/es2019/components/placeholder.js +3 -7
  28. package/dist/es2019/components/single-value.js +3 -5
  29. package/dist/es2019/select.js +74 -24
  30. package/dist/esm/accessibility/index.js +9 -7
  31. package/dist/esm/components/containers.js +9 -7
  32. package/dist/esm/components/control.js +58 -13
  33. package/dist/esm/components/group.js +11 -11
  34. package/dist/esm/components/indicators.js +39 -34
  35. package/dist/esm/components/input.js +1 -1
  36. package/dist/esm/components/internal/a11y-text.js +2 -0
  37. package/dist/esm/components/live-region.js +6 -2
  38. package/dist/esm/components/menu.js +4 -5
  39. package/dist/esm/components/multi-value.js +86 -30
  40. package/dist/esm/components/option.js +38 -13
  41. package/dist/esm/components/placeholder.js +3 -6
  42. package/dist/esm/components/single-value.js +3 -6
  43. package/dist/esm/select.js +105 -53
  44. package/dist/types/components/containers.d.ts +5 -1
  45. package/dist/types/components/control.d.ts +10 -1
  46. package/dist/types/components/group.d.ts +2 -2
  47. package/dist/types/components/indicators.d.ts +16 -4
  48. package/dist/types/components/menu.d.ts +1 -1
  49. package/dist/types/components/multi-value.d.ts +3 -3
  50. package/dist/types/components/option.d.ts +1 -1
  51. package/dist/types/components/placeholder.d.ts +1 -1
  52. package/dist/types/components/single-value.d.ts +1 -1
  53. package/dist/types/select.d.ts +13 -4
  54. package/dist/types-ts4.5/components/containers.d.ts +5 -1
  55. package/dist/types-ts4.5/components/control.d.ts +10 -1
  56. package/dist/types-ts4.5/components/group.d.ts +2 -2
  57. package/dist/types-ts4.5/components/indicators.d.ts +16 -4
  58. package/dist/types-ts4.5/components/menu.d.ts +1 -1
  59. package/dist/types-ts4.5/components/multi-value.d.ts +3 -3
  60. package/dist/types-ts4.5/components/option.d.ts +1 -1
  61. package/dist/types-ts4.5/components/placeholder.d.ts +1 -1
  62. package/dist/types-ts4.5/components/single-value.d.ts +1 -1
  63. package/dist/types-ts4.5/select.d.ts +13 -4
  64. package/package.json +6 -2
@@ -23,11 +23,20 @@ export interface ControlProps<Option = unknown, IsMulti extends boolean = boolea
23
23
  * Whether the select is focused.
24
24
  */
25
25
  isFocused: boolean;
26
+ /**
27
+ * Whether the select is invalid.
28
+ */
29
+ isInvalid: boolean | undefined;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
34
+ appearance?: 'default' | 'subtle' | 'none';
26
35
  /**
27
36
  * Whether the select is expanded.
28
37
  */
29
38
  menuIsOpen: boolean;
30
39
  }
31
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { colors, borderRadius, spacing }, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isInvalid, isCompact, appearance, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
41
  declare const Control: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ControlProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
42
  export default Control;
@@ -37,7 +37,7 @@ export interface GroupProps<Option = unknown, IsMulti extends boolean = boolean,
37
37
  data: Group;
38
38
  options: Options<Option>;
39
39
  }
40
- export declare const groupCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing }, }: GroupProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const groupCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({}: GroupProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
41
41
  declare const Group: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: GroupProps<Option, IsMulti, Group>) => jsx.JSX.Element;
42
42
  interface GroupHeadingPropsDefinedProps<Option, IsMulti extends boolean, Group extends GroupBase<Option>> extends ForwardedHeadingProps<Option, Group> {
43
43
  className?: string | undefined;
@@ -48,6 +48,6 @@ interface GroupHeadingPropsDefinedProps<Option, IsMulti extends boolean, Group e
48
48
  cx: CX;
49
49
  }
50
50
  export type GroupHeadingProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> = GroupHeadingPropsDefinedProps<Option, IsMulti, Group> & JSX.IntrinsicElements['div'];
51
- export declare const groupHeadingCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { colors, spacing }, }: GroupHeadingProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
51
+ export declare const groupHeadingCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({}: GroupHeadingProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
52
52
  export declare const GroupHeading: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: GroupHeadingProps<Option, IsMulti, Group>) => jsx.JSX.Element;
53
53
  export default Group;
@@ -27,8 +27,12 @@ export interface DropdownIndicatorProps<Option = unknown, IsMulti extends boolea
27
27
  */
28
28
  isFocused: boolean;
29
29
  isDisabled: boolean;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
30
34
  }
31
- export declare const dropdownIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, theme: { spacing: { baseUnit }, colors, }, }: DropdownIndicatorProps<Option, IsMulti, Group> | ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
35
+ export declare const dropdownIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isCompact, isDisabled, }: DropdownIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
36
  export declare const DropdownIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: DropdownIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
37
  export interface ClearIndicatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
34
38
  /**
@@ -47,17 +51,21 @@ export interface ClearIndicatorProps<Option = unknown, IsMulti extends boolean =
47
51
  * The focused state of the select.
48
52
  */
49
53
  isFocused: boolean;
54
+ /**
55
+ * Whether the select is compact.
56
+ */
57
+ isCompact?: boolean;
50
58
  }
51
- export declare const clearIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, theme: { spacing: { baseUnit }, colors, }, }: DropdownIndicatorProps<Option, IsMulti, Group> | ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
59
+ export declare const clearIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isCompact, }: ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
52
60
  export declare const ClearIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ClearIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
53
61
  export interface IndicatorSeparatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
54
62
  isDisabled: boolean;
55
63
  isFocused: boolean;
56
64
  innerProps?: JSX.IntrinsicElements['span'];
57
65
  }
58
- export declare const indicatorSeparatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing: { baseUnit }, colors, }, }: IndicatorSeparatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
66
+ export declare const indicatorSeparatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, }: IndicatorSeparatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
59
67
  export declare const IndicatorSeparator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: IndicatorSeparatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
60
- export declare const loadingIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, size, theme: { colors, spacing: { baseUnit }, }, }: LoadingIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
68
+ export declare const loadingIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, size, isCompact, theme: { colors }, }: LoadingIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
61
69
  export interface LoadingIndicatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
62
70
  /**
63
71
  * Props that will be passed on to the children.
@@ -72,5 +80,9 @@ export interface LoadingIndicatorProps<Option = unknown, IsMulti extends boolean
72
80
  * Set size of the container.
73
81
  */
74
82
  size: number;
83
+ /**
84
+ * Whether the select is compact.
85
+ */
86
+ isCompact?: boolean;
75
87
  }
76
88
  export declare const LoadingIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ innerProps, isRtl, size, ...restProps }: LoadingIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
@@ -94,7 +94,7 @@ export interface MenuListProps<Option = unknown, IsMulti extends boolean = boole
94
94
  */
95
95
  innerProps: JSX.IntrinsicElements['div'];
96
96
  }
97
- export declare const menuListCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ maxHeight, theme: { spacing: { baseUnit }, }, }: MenuListProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
97
+ export declare const menuListCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ maxHeight, }: MenuListProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
98
98
  export declare const MenuList: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: MenuListProps<Option, IsMulti, Group>) => jsx.JSX.Element;
99
99
  export declare const noOptionsMessageCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing: { baseUnit }, colors, }, }: NoticeProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
100
100
  export declare const loadingMessageCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing: { baseUnit }, colors, }, }: NoticeProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
@@ -22,9 +22,9 @@ export interface MultiValueProps<Option = unknown, IsMulti extends boolean = boo
22
22
  removeProps: JSX.IntrinsicElements['div'];
23
23
  index: number;
24
24
  }
25
- export declare const multiValueCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, borderRadius, colors }, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
- export declare const multiValueLabelCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { borderRadius, colors }, cropWithEllipsis, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
- export declare const multiValueRemoveCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, borderRadius, colors }, isFocused, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
25
+ export declare const multiValueCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { spacing, borderRadius, colors }, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
+ export declare const multiValueLabelCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ cropWithEllipsis, isDisabled, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
+ export declare const multiValueRemoveCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
28
28
  export interface MultiValueGenericProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> {
29
29
  children: ReactNode;
30
30
  data: any;
@@ -44,6 +44,6 @@ export interface OptionProps<Option = unknown, IsMulti extends boolean = boolean
44
44
  */
45
45
  isSelected: boolean;
46
46
  }
47
- export declare const optionCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isSelected, theme: { spacing, colors }, }: OptionProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
47
+ export declare const optionCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isSelected, }: OptionProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
48
48
  declare const Option: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: OptionProps<Option, IsMulti, Group>) => jsx.JSX.Element;
49
49
  export default Option;
@@ -17,6 +17,6 @@ export interface PlaceholderProps<Option = unknown, IsMulti extends boolean = bo
17
17
  isDisabled: boolean;
18
18
  isFocused: boolean;
19
19
  }
20
- export declare const placeholderCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, colors }, }: PlaceholderProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
20
+ export declare const placeholderCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, }: PlaceholderProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
21
21
  declare const Placeholder: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: PlaceholderProps<Option, IsMulti, Group>) => jsx.JSX.Element;
22
22
  export default Placeholder;
@@ -23,6 +23,6 @@ export interface SingleValueProps<Option = unknown, IsMulti extends boolean = bo
23
23
  */
24
24
  isDisabled: boolean;
25
25
  }
26
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing, colors }, }: SingleValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing }, }: SingleValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
27
  declare const SingleValue: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: SingleValueProps<Option, IsMulti, Group>) => jsx.JSX.Element;
28
28
  export default SingleValue;
@@ -405,10 +405,15 @@ export interface SelectProps<Option, IsMulti extends boolean, Group extends Grou
405
405
  * Use `isRequired` instead.
406
406
  */
407
407
  required?: boolean;
408
+ /**
409
+ * This prop affects the height of the select control. Compact is gridSize() * 4, default is gridSize * 5
410
+ */
411
+ spacing?: 'compact' | 'default';
412
+ appearance: 'default' | 'subtle' | 'none';
408
413
  [key: string]: any;
409
414
  }
410
415
  export declare const defaultProps: {
411
- 'aria-live': string;
416
+ 'aria-live': string | undefined;
412
417
  backspaceRemovesValue: boolean;
413
418
  blurInputOnSelect: boolean;
414
419
  captureMenuScroll: boolean;
@@ -486,7 +491,7 @@ interface CategorizedGroup<Option, Group extends GroupBase<Option>> {
486
491
  type CategorizedGroupOrOption<Option, Group extends GroupBase<Option>> = CategorizedGroup<Option, Group> | CategorizedOption<Option>;
487
492
  export default class Select<Option = unknown, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> extends Component<SelectProps<Option, IsMulti, Group>, State<Option, IsMulti, Group>> {
488
493
  static defaultProps: {
489
- 'aria-live': string;
494
+ 'aria-live': string | undefined;
490
495
  backspaceRemovesValue: boolean;
491
496
  blurInputOnSelect: boolean;
492
497
  captureMenuScroll: boolean;
@@ -536,7 +541,7 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
536
541
  openAfterFocus: boolean;
537
542
  scrollToFocusedOptionOnUpdate: boolean;
538
543
  userIsDragging?: boolean;
539
- isAppleDevice: boolean;
544
+ isVoiceOver: boolean;
540
545
  controlRef: HTMLDivElement | null;
541
546
  getControlRef: RefCallback<HTMLDivElement>;
542
547
  focusedOptionRef: HTMLDivElement | null;
@@ -604,7 +609,7 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
604
609
  getOptionValue: (data: Option) => string;
605
610
  getStyles: <Key extends keyof StylesProps<Option, IsMulti, Group>>(key: Key, props: StylesProps<Option, IsMulti, Group>[Key]) => import("./types").CSSObjectWithLabel;
606
611
  getClassNames: <Key extends keyof StylesProps<Option, IsMulti, Group>>(key: Key, props: StylesProps<Option, IsMulti, Group>[Key]) => string | undefined;
607
- getElementId: (element: 'group' | 'input' | 'listbox' | 'option' | 'placeholder' | 'live-region') => string;
612
+ getElementId: (element: 'group' | 'input' | 'listbox' | 'option' | 'placeholder' | 'live-region' | 'multi-message') => string;
608
613
  getComponents: () => {
609
614
  ClearIndicator: <Option_1, IsMulti_1 extends boolean, Group_1 extends GroupBase<Option_1>>(props: import(".").ClearIndicatorProps<Option_1, IsMulti_1, Group_1>) => import("@emotion/react").jsx.JSX.Element;
610
615
  Control: <Option_2, IsMulti_2 extends boolean, Group_2 extends GroupBase<Option_2>>(props: import(".").ControlProps<Option_2, IsMulti_2, Group_2>) => import("@emotion/react").jsx.JSX.Element;
@@ -645,6 +650,9 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
645
650
  filterOption(option: FilterOptionOption<Option>, inputValue: string): boolean;
646
651
  formatOptionLabel(data: Option, context: FormatOptionLabelContext): ReactNode;
647
652
  formatGroupLabel(data: Group): React.ReactNode;
653
+ calculateDescription(action?: String): {
654
+ 'aria-describedby': string;
655
+ } | undefined;
648
656
  onMenuMouseDown: MouseEventHandler<HTMLDivElement>;
649
657
  onMenuMouseMove: MouseEventHandler<HTMLDivElement>;
650
658
  onControlMouseDown: (event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) => void;
@@ -679,6 +687,7 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
679
687
  renderMenu(): JSX.Element | null;
680
688
  renderFormField(): JSX.Element | undefined;
681
689
  renderLiveRegion(): JSX.Element;
690
+ renderMultiselectMessage(): JSX.Element;
682
691
  render(): JSX.Element;
683
692
  }
684
693
  export type PublicBaseSelectProps<Option, IsMulti extends boolean, Group extends GroupBase<Option>> = JSX.LibraryManagedAttributes<typeof Select, SelectProps<Option, IsMulti, Group>>;
@@ -32,8 +32,12 @@ export interface ValueContainerProps<Option = unknown, IsMulti extends boolean =
32
32
  */
33
33
  children: ReactNode;
34
34
  isDisabled: boolean;
35
+ /**
36
+ * Whether the select is compact.
37
+ */
38
+ isCompact?: boolean;
35
39
  }
36
- export declare const valueContainerCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing }, isMulti, hasValue, selectProps: { controlShouldRenderValue }, }: ValueContainerProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const valueContainerCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isMulti, hasValue, isCompact, selectProps: { controlShouldRenderValue }, }: ValueContainerProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
37
41
  export declare const ValueContainer: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ValueContainerProps<Option, IsMulti, Group>) => jsx.JSX.Element;
38
42
  export interface IndicatorsContainerProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
39
43
  isDisabled: boolean;
@@ -23,11 +23,20 @@ export interface ControlProps<Option = unknown, IsMulti extends boolean = boolea
23
23
  * Whether the select is focused.
24
24
  */
25
25
  isFocused: boolean;
26
+ /**
27
+ * Whether the select is invalid.
28
+ */
29
+ isInvalid: boolean | undefined;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
34
+ appearance?: 'default' | 'subtle' | 'none';
26
35
  /**
27
36
  * Whether the select is expanded.
28
37
  */
29
38
  menuIsOpen: boolean;
30
39
  }
31
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { colors, borderRadius, spacing }, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isInvalid, isCompact, appearance, }: ControlProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
41
  declare const Control: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ControlProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
42
  export default Control;
@@ -37,7 +37,7 @@ export interface GroupProps<Option = unknown, IsMulti extends boolean = boolean,
37
37
  data: Group;
38
38
  options: Options<Option>;
39
39
  }
40
- export declare const groupCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing }, }: GroupProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
40
+ export declare const groupCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({}: GroupProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
41
41
  declare const Group: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: GroupProps<Option, IsMulti, Group>) => jsx.JSX.Element;
42
42
  interface GroupHeadingPropsDefinedProps<Option, IsMulti extends boolean, Group extends GroupBase<Option>> extends ForwardedHeadingProps<Option, Group> {
43
43
  className?: string | undefined;
@@ -48,6 +48,6 @@ interface GroupHeadingPropsDefinedProps<Option, IsMulti extends boolean, Group e
48
48
  cx: CX;
49
49
  }
50
50
  export type GroupHeadingProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> = GroupHeadingPropsDefinedProps<Option, IsMulti, Group> & JSX.IntrinsicElements['div'];
51
- export declare const groupHeadingCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { colors, spacing }, }: GroupHeadingProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
51
+ export declare const groupHeadingCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({}: GroupHeadingProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
52
52
  export declare const GroupHeading: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: GroupHeadingProps<Option, IsMulti, Group>) => jsx.JSX.Element;
53
53
  export default Group;
@@ -27,8 +27,12 @@ export interface DropdownIndicatorProps<Option = unknown, IsMulti extends boolea
27
27
  */
28
28
  isFocused: boolean;
29
29
  isDisabled: boolean;
30
+ /**
31
+ * Whether the select is compact.
32
+ */
33
+ isCompact?: boolean;
30
34
  }
31
- export declare const dropdownIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, theme: { spacing: { baseUnit }, colors, }, }: DropdownIndicatorProps<Option, IsMulti, Group> | ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
35
+ export declare const dropdownIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isCompact, isDisabled, }: DropdownIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
32
36
  export declare const DropdownIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: DropdownIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
33
37
  export interface ClearIndicatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
34
38
  /**
@@ -47,17 +51,21 @@ export interface ClearIndicatorProps<Option = unknown, IsMulti extends boolean =
47
51
  * The focused state of the select.
48
52
  */
49
53
  isFocused: boolean;
54
+ /**
55
+ * Whether the select is compact.
56
+ */
57
+ isCompact?: boolean;
50
58
  }
51
- export declare const clearIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, theme: { spacing: { baseUnit }, colors, }, }: DropdownIndicatorProps<Option, IsMulti, Group> | ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
59
+ export declare const clearIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isCompact, }: ClearIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
52
60
  export declare const ClearIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: ClearIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
53
61
  export interface IndicatorSeparatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
54
62
  isDisabled: boolean;
55
63
  isFocused: boolean;
56
64
  innerProps?: JSX.IntrinsicElements['span'];
57
65
  }
58
- export declare const indicatorSeparatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing: { baseUnit }, colors, }, }: IndicatorSeparatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
66
+ export declare const indicatorSeparatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, }: IndicatorSeparatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
59
67
  export declare const IndicatorSeparator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: IndicatorSeparatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
60
- export declare const loadingIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, size, theme: { colors, spacing: { baseUnit }, }, }: LoadingIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
68
+ export declare const loadingIndicatorCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, size, isCompact, theme: { colors }, }: LoadingIndicatorProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
61
69
  export interface LoadingIndicatorProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> extends CommonPropsAndClassName<Option, IsMulti, Group> {
62
70
  /**
63
71
  * Props that will be passed on to the children.
@@ -72,5 +80,9 @@ export interface LoadingIndicatorProps<Option = unknown, IsMulti extends boolean
72
80
  * Set size of the container.
73
81
  */
74
82
  size: number;
83
+ /**
84
+ * Whether the select is compact.
85
+ */
86
+ isCompact?: boolean;
75
87
  }
76
88
  export declare const LoadingIndicator: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ innerProps, isRtl, size, ...restProps }: LoadingIndicatorProps<Option, IsMulti, Group>) => jsx.JSX.Element;
@@ -94,7 +94,7 @@ export interface MenuListProps<Option = unknown, IsMulti extends boolean = boole
94
94
  */
95
95
  innerProps: JSX.IntrinsicElements['div'];
96
96
  }
97
- export declare const menuListCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ maxHeight, theme: { spacing: { baseUnit }, }, }: MenuListProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
97
+ export declare const menuListCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ maxHeight, }: MenuListProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
98
98
  export declare const MenuList: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: MenuListProps<Option, IsMulti, Group>) => jsx.JSX.Element;
99
99
  export declare const noOptionsMessageCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing: { baseUnit }, colors, }, }: NoticeProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
100
100
  export declare const loadingMessageCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing: { baseUnit }, colors, }, }: NoticeProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
@@ -22,9 +22,9 @@ export interface MultiValueProps<Option = unknown, IsMulti extends boolean = boo
22
22
  removeProps: JSX.IntrinsicElements['div'];
23
23
  index: number;
24
24
  }
25
- export declare const multiValueCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, borderRadius, colors }, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
- export declare const multiValueLabelCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { borderRadius, colors }, cropWithEllipsis, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
- export declare const multiValueRemoveCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, borderRadius, colors }, isFocused, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
25
+ export declare const multiValueCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, theme: { spacing, borderRadius, colors }, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
+ export declare const multiValueLabelCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ cropWithEllipsis, isDisabled, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
+ export declare const multiValueRemoveCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isFocused, }: MultiValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
28
28
  export interface MultiValueGenericProps<Option = unknown, IsMulti extends boolean = boolean, Group extends GroupBase<Option> = GroupBase<Option>> {
29
29
  children: ReactNode;
30
30
  data: any;
@@ -44,6 +44,6 @@ export interface OptionProps<Option = unknown, IsMulti extends boolean = boolean
44
44
  */
45
45
  isSelected: boolean;
46
46
  }
47
- export declare const optionCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isSelected, theme: { spacing, colors }, }: OptionProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
47
+ export declare const optionCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, isFocused, isSelected, }: OptionProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
48
48
  declare const Option: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: OptionProps<Option, IsMulti, Group>) => jsx.JSX.Element;
49
49
  export default Option;
@@ -17,6 +17,6 @@ export interface PlaceholderProps<Option = unknown, IsMulti extends boolean = bo
17
17
  isDisabled: boolean;
18
18
  isFocused: boolean;
19
19
  }
20
- export declare const placeholderCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ theme: { spacing, colors }, }: PlaceholderProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
20
+ export declare const placeholderCSS: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, }: PlaceholderProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
21
21
  declare const Placeholder: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: PlaceholderProps<Option, IsMulti, Group>) => jsx.JSX.Element;
22
22
  export default Placeholder;
@@ -23,6 +23,6 @@ export interface SingleValueProps<Option = unknown, IsMulti extends boolean = bo
23
23
  */
24
24
  isDisabled: boolean;
25
25
  }
26
- export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing, colors }, }: SingleValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
26
+ export declare const css: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>({ isDisabled, theme: { spacing }, }: SingleValueProps<Option, IsMulti, Group>) => CSSObjectWithLabel;
27
27
  declare const SingleValue: <Option, IsMulti extends boolean, Group extends GroupBase<Option>>(props: SingleValueProps<Option, IsMulti, Group>) => jsx.JSX.Element;
28
28
  export default SingleValue;
@@ -405,10 +405,15 @@ export interface SelectProps<Option, IsMulti extends boolean, Group extends Grou
405
405
  * Use `isRequired` instead.
406
406
  */
407
407
  required?: boolean;
408
+ /**
409
+ * This prop affects the height of the select control. Compact is gridSize() * 4, default is gridSize * 5
410
+ */
411
+ spacing?: 'compact' | 'default';
412
+ appearance: 'default' | 'subtle' | 'none';
408
413
  [key: string]: any;
409
414
  }
410
415
  export declare const defaultProps: {
411
- 'aria-live': string;
416
+ 'aria-live': string | undefined;
412
417
  backspaceRemovesValue: boolean;
413
418
  blurInputOnSelect: boolean;
414
419
  captureMenuScroll: boolean;
@@ -486,7 +491,7 @@ interface CategorizedGroup<Option, Group extends GroupBase<Option>> {
486
491
  type CategorizedGroupOrOption<Option, Group extends GroupBase<Option>> = CategorizedGroup<Option, Group> | CategorizedOption<Option>;
487
492
  export default class Select<Option = unknown, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> extends Component<SelectProps<Option, IsMulti, Group>, State<Option, IsMulti, Group>> {
488
493
  static defaultProps: {
489
- 'aria-live': string;
494
+ 'aria-live': string | undefined;
490
495
  backspaceRemovesValue: boolean;
491
496
  blurInputOnSelect: boolean;
492
497
  captureMenuScroll: boolean;
@@ -536,7 +541,7 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
536
541
  openAfterFocus: boolean;
537
542
  scrollToFocusedOptionOnUpdate: boolean;
538
543
  userIsDragging?: boolean;
539
- isAppleDevice: boolean;
544
+ isVoiceOver: boolean;
540
545
  controlRef: HTMLDivElement | null;
541
546
  getControlRef: RefCallback<HTMLDivElement>;
542
547
  focusedOptionRef: HTMLDivElement | null;
@@ -604,7 +609,7 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
604
609
  getOptionValue: (data: Option) => string;
605
610
  getStyles: <Key extends keyof StylesProps<Option, IsMulti, Group>>(key: Key, props: StylesProps<Option, IsMulti, Group>[Key]) => import("./types").CSSObjectWithLabel;
606
611
  getClassNames: <Key extends keyof StylesProps<Option, IsMulti, Group>>(key: Key, props: StylesProps<Option, IsMulti, Group>[Key]) => string | undefined;
607
- getElementId: (element: 'group' | 'input' | 'listbox' | 'option' | 'placeholder' | 'live-region') => string;
612
+ getElementId: (element: 'group' | 'input' | 'listbox' | 'option' | 'placeholder' | 'live-region' | 'multi-message') => string;
608
613
  getComponents: () => {
609
614
  ClearIndicator: <Option_1, IsMulti_1 extends boolean, Group_1 extends GroupBase<Option_1>>(props: import(".").ClearIndicatorProps<Option_1, IsMulti_1, Group_1>) => import("@emotion/react").jsx.JSX.Element;
610
615
  Control: <Option_2, IsMulti_2 extends boolean, Group_2 extends GroupBase<Option_2>>(props: import(".").ControlProps<Option_2, IsMulti_2, Group_2>) => import("@emotion/react").jsx.JSX.Element;
@@ -645,6 +650,9 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
645
650
  filterOption(option: FilterOptionOption<Option>, inputValue: string): boolean;
646
651
  formatOptionLabel(data: Option, context: FormatOptionLabelContext): ReactNode;
647
652
  formatGroupLabel(data: Group): React.ReactNode;
653
+ calculateDescription(action?: String): {
654
+ 'aria-describedby': string;
655
+ } | undefined;
648
656
  onMenuMouseDown: MouseEventHandler<HTMLDivElement>;
649
657
  onMenuMouseMove: MouseEventHandler<HTMLDivElement>;
650
658
  onControlMouseDown: (event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>) => void;
@@ -679,6 +687,7 @@ export default class Select<Option = unknown, IsMulti extends boolean = false, G
679
687
  renderMenu(): JSX.Element | null;
680
688
  renderFormField(): JSX.Element | undefined;
681
689
  renderLiveRegion(): JSX.Element;
690
+ renderMultiselectMessage(): JSX.Element;
682
691
  render(): JSX.Element;
683
692
  }
684
693
  export type PublicBaseSelectProps<Option, IsMulti extends boolean, Group extends GroupBase<Option>> = JSX.LibraryManagedAttributes<typeof Select, SelectProps<Option, IsMulti, Group>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-select",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "A forked version of react-select to only be used in atlaskit/select",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -28,8 +28,9 @@
28
28
  "./async-creatable": "./src/async-creatable.tsx"
29
29
  },
30
30
  "dependencies": {
31
- "@atlaskit/ds-lib": "^3.2.0",
31
+ "@atlaskit/ds-lib": "^3.3.0",
32
32
  "@atlaskit/platform-feature-flags": "^0.3.0",
33
+ "@atlaskit/tokens": "^2.4.0",
33
34
  "@babel/runtime": "^7.0.0",
34
35
  "@emotion/react": "^11.7.1",
35
36
  "@floating-ui/dom": "^1.0.1",
@@ -55,6 +56,9 @@
55
56
  "platform-feature-flags": {
56
57
  "design_system_select-a11y-improvement": {
57
58
  "type": "boolean"
59
+ },
60
+ "platform-component-visual-refresh": {
61
+ "type": "boolean"
58
62
  }
59
63
  },
60
64
  "techstack": {