@loadsmart/loadsmart-ui 6.0.7 → 6.0.9

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../DragDropFile.context-c7cd1441.js"),t=require("@testing-library/react"),i=require("../toArray-b56541b4.js"),n=require("@testing-library/user-event"),r=require("../miranda-compatibility.theme-97e29e8e.js"),o=require("react");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@loadsmart/miranda-tokens");var c=a(n),d=a(o);function l(e){return e.parentNode.parentNode.parentNode.parentNode}function u(i){return e.__awaiter(this,void 0,void 0,(function*(){const n=l(i);t.queries.queryByRole(n,"menu")||(yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){t.fireEvent.click(i),expect(yield t.queries.findByRole(n,"menu")).toBeInTheDocument()})))))}))}function s(i){return e.__awaiter(this,void 0,void 0,(function*(){const n=l(i);t.queries.queryByRole(n,"menu")&&(yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){t.fireEvent.click(t.queries.getByText(n,"Close")),yield t.waitForElementToBeRemoved((()=>t.queries.queryByRole(n,"menu")))})))))}))}const f={getContainer:l,expand:u,collapse:s,pick:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){const r=l(n);yield u(n),yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){n.focus();const e=t.queries.getByLabelText(r,i);e&&"false"==e.getAttribute("aria-checked")&&t.fireEvent.click(e)})))),yield s(n)}))},clear:function(i){return e.__awaiter(this,void 0,void 0,(function*(){const n=l(i);yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){const e=t.queries.getByLabelText(n,"Clear selection");t.fireEvent.click(e)})))),yield s(i)}))},getSelectedDates:function(i){return e.__awaiter(this,void 0,void 0,(function*(){const e=l(i);yield u(i);const n=t.queries.queryAllByRole(e,"checkbox",{checked:!0});return yield s(i),n}))}};function v(t){return e.__awaiter(this,void 0,void 0,(function*(){yield f.expand(t)}))}function y(t){return e.__awaiter(this,void 0,void 0,(function*(){yield f.collapse(t)}))}const p={getContainer:f.getContainer,expand:v,collapse:y,pick:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){const e=f.getContainer(n);yield v(n);const[r,o]=i;if(null!=r){const i=t.queries.getByTestId(e,"input-date-range-start");yield f.pick(r,i)}if(null!=o){const i=t.queries.getByTestId(e,"input-date-range-end");yield f.pick(o,i)}yield y(n)}))},clear:function(t){return e.__awaiter(this,void 0,void 0,(function*(){yield f.clear(t)}))},getSelectedDates:function(t){return e.__awaiter(this,void 0,void 0,(function*(){return f.getSelectedDates(t)}))}},_=e=>e.parentNode,h={dragOver:e=>{const i=_(e),n=t.createEvent.dragOver(i);t.fireEvent(i,n)},dragLeave:e=>{const i=_(e),n=t.createEvent.dragLeave(i);t.fireEvent(i,n)},dropFiles:(e,n)=>{const r=_(e),o=t.createEvent.drop(r);Object.defineProperty(o,"dataTransfer",{value:{files:i.toArray(n)}}),t.fireEvent(r,o)}};function g(e){return e.parentNode.parentNode.parentNode}function w(e){return e.parentNode.parentNode.nextSibling}function x(e){return e.parentNode.nextSibling.nextSibling}function B(e){return e.parentNode}function q(e){return 3==g(e).children.length}function b(i){return e.__awaiter(this,void 0,void 0,(function*(){const e=B(i);t.within(e).queryByTestId("select-trigger-loading")&&(yield t.waitForElementToBeRemoved((()=>t.within(e).queryByTestId("select-trigger-loading")),{timeout:2500}))}))}function m(i){return e.__awaiter(this,void 0,void 0,(function*(){if(yield b(i),q(i))return;const n=x(i);yield t.waitFor((()=>{expect(n).toBeEnabled()})),c.default.click(n),yield t.waitFor((()=>e.__awaiter(this,void 0,void 0,(function*(){expect(yield t.within(g(i)).findByRole("listbox")).toBeInTheDocument()}))))}))}function k(i){return e.__awaiter(this,void 0,void 0,(function*(){if(!q(i))return;const e=x(i);c.default.click(e),yield t.waitFor((()=>{expect(t.within(g(i)).queryByRole("listbox")).not.toBeInTheDocument()}))}))}const E={select:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){yield m(n);const e=w(n),r=yield t.within(e).findByLabelText(i);r&&"false"==r.getAttribute("aria-selected")&&c.default.click(r),yield k(n)}))},unselect:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){yield m(n);const e=w(n),r=yield t.within(e).findByLabelText(i);r&&"true"==r.getAttribute("aria-selected")&&c.default.click(r),yield k(n)}))},clear:function(i){return e.__awaiter(this,void 0,void 0,(function*(){yield b(i);const e=B(i),n=t.within(e).getByTestId("select-trigger-clear");t.act((()=>{n&&c.default.click(n)}))}))},search:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){const e=g(n);c.default.type(n,i),yield t.within(e).findAllByRole("option",void 0,{timeout:2500})}))},expand:m,collapse:k,getOptions:function(i){return e.__awaiter(this,void 0,void 0,(function*(){yield m(i);const e=w(i),n=t.within(e).queryAllByRole("option");return yield k(i),n}))},getSelectedOptions:function(i){return e.__awaiter(this,void 0,void 0,(function*(){yield m(i);const e=w(i);let n=[];try{n=yield t.within(e).findAllByRole("option",{selected:!0})}catch(e){n=[]}return yield k(i),n}))},isMenuExpanded:q};const D={fileList:[],onFilesAdded:jest.fn(),onRetryUpload:jest.fn(),onRemoveFile:jest.fn()};exports.DatePickerEvent=f,exports.DateRangePickerEvent=p,exports.DragDropFileEvent=h,exports.SelectEvent=E,exports.getInterpolatedStyles=function(e){return i.toArray(e).map((e=>{for(;r.isFunction(e);)e=e({theme:r.alice});return e})).join("")},exports.renderWithDragDropFileProvider=(i,n)=>{const r=Object.assign(Object.assign({},D),n);return t.render((o=i,d.default.createElement(e.DragDropFileContext.Provider,{value:r},o)));var o};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../DragDropFile.context-c7cd1441.js"),t=require("@testing-library/react"),i=require("../toArray-b56541b4.js"),n=require("@testing-library/user-event"),r=require("../miranda-compatibility.theme-ec2c3370.js"),o=require("react");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@loadsmart/miranda-tokens");var a=c(n),d=c(o);function l(e){return e.parentNode.parentNode.parentNode.parentNode}function u(i){return e.__awaiter(this,void 0,void 0,(function*(){const n=l(i);t.queries.queryByRole(n,"menu")||(yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){t.fireEvent.click(i),expect(yield t.queries.findByRole(n,"menu")).toBeInTheDocument()})))))}))}function s(i){return e.__awaiter(this,void 0,void 0,(function*(){const n=l(i);t.queries.queryByRole(n,"menu")&&(yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){t.fireEvent.click(t.queries.getByText(n,"Close")),yield t.waitForElementToBeRemoved((()=>t.queries.queryByRole(n,"menu")))})))))}))}const f={getContainer:l,expand:u,collapse:s,pick:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){const r=l(n);yield u(n),yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){n.focus();const e=t.queries.getByLabelText(r,i);e&&"false"==e.getAttribute("aria-checked")&&t.fireEvent.click(e)})))),yield s(n)}))},clear:function(i){return e.__awaiter(this,void 0,void 0,(function*(){const n=l(i);yield t.act((()=>e.__awaiter(this,void 0,void 0,(function*(){const e=t.queries.getByLabelText(n,"Clear selection");t.fireEvent.click(e)})))),yield s(i)}))},getSelectedDates:function(i){return e.__awaiter(this,void 0,void 0,(function*(){const e=l(i);yield u(i);const n=t.queries.queryAllByRole(e,"checkbox",{checked:!0});return yield s(i),n}))}};function v(t){return e.__awaiter(this,void 0,void 0,(function*(){yield f.expand(t)}))}function y(t){return e.__awaiter(this,void 0,void 0,(function*(){yield f.collapse(t)}))}const p={getContainer:f.getContainer,expand:v,collapse:y,pick:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){const e=f.getContainer(n);yield v(n);const[r,o]=i;if(null!=r){const i=t.queries.getByTestId(e,"input-date-range-start");yield f.pick(r,i)}if(null!=o){const i=t.queries.getByTestId(e,"input-date-range-end");yield f.pick(o,i)}yield y(n)}))},clear:function(t){return e.__awaiter(this,void 0,void 0,(function*(){yield f.clear(t)}))},getSelectedDates:function(t){return e.__awaiter(this,void 0,void 0,(function*(){return f.getSelectedDates(t)}))}},_=e=>e.parentNode,h={dragOver:e=>{const i=_(e),n=t.createEvent.dragOver(i);t.fireEvent(i,n)},dragLeave:e=>{const i=_(e),n=t.createEvent.dragLeave(i);t.fireEvent(i,n)},dropFiles:(e,n)=>{const r=_(e),o=t.createEvent.drop(r);Object.defineProperty(o,"dataTransfer",{value:{files:i.toArray(n)}}),t.fireEvent(r,o)}};function g(e){return e.parentNode.parentNode.parentNode}function w(e){return e.parentNode.parentNode.nextSibling}function x(e){return e.parentNode.nextSibling.nextSibling}function B(e){return e.parentNode}function q(e){return 3==g(e).children.length}function b(i){return e.__awaiter(this,void 0,void 0,(function*(){const e=B(i);t.within(e).queryByTestId("select-trigger-loading")&&(yield t.waitForElementToBeRemoved((()=>t.within(e).queryByTestId("select-trigger-loading")),{timeout:2500}))}))}function m(i){return e.__awaiter(this,void 0,void 0,(function*(){if(yield b(i),q(i))return;const n=x(i);yield t.waitFor((()=>{expect(n).toBeEnabled()})),a.default.click(n),yield t.waitFor((()=>e.__awaiter(this,void 0,void 0,(function*(){expect(yield t.within(g(i)).findByRole("listbox")).toBeInTheDocument()}))))}))}function k(i){return e.__awaiter(this,void 0,void 0,(function*(){if(!q(i))return;const e=x(i);a.default.click(e),yield t.waitFor((()=>{expect(t.within(g(i)).queryByRole("listbox")).not.toBeInTheDocument()}))}))}const E={select:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){yield m(n);const e=w(n),r=yield t.within(e).findByLabelText(i);r&&"false"==r.getAttribute("aria-selected")&&a.default.click(r),yield k(n)}))},unselect:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){yield m(n);const e=w(n),r=yield t.within(e).findByLabelText(i);r&&"true"==r.getAttribute("aria-selected")&&a.default.click(r),yield k(n)}))},clear:function(i){return e.__awaiter(this,void 0,void 0,(function*(){yield b(i);const e=B(i),n=t.within(e).getByTestId("select-trigger-clear");t.act((()=>{n&&a.default.click(n)}))}))},search:function(i,n){return e.__awaiter(this,void 0,void 0,(function*(){const e=g(n);a.default.type(n,i),yield t.within(e).findAllByRole("option",void 0,{timeout:2500})}))},expand:m,collapse:k,getOptions:function(i){return e.__awaiter(this,void 0,void 0,(function*(){yield m(i);const e=w(i),n=t.within(e).queryAllByRole("option");return yield k(i),n}))},getSelectedOptions:function(i){return e.__awaiter(this,void 0,void 0,(function*(){yield m(i);const e=w(i);let n=[];try{n=yield t.within(e).findAllByRole("option",{selected:!0})}catch(e){n=[]}return yield k(i),n}))},isMenuExpanded:q};const D={fileList:[],onFilesAdded:jest.fn(),onRetryUpload:jest.fn(),onRemoveFile:jest.fn()};exports.DatePickerEvent=f,exports.DateRangePickerEvent=p,exports.DragDropFileEvent=h,exports.SelectEvent=E,exports.getInterpolatedStyles=function(e){return i.toArray(e).map((e=>{for(;r.isFunction(e);)e=e({theme:r.alice});return e})).join("")},exports.renderWithDragDropFileProvider=(i,n)=>{const r=Object.assign(Object.assign({},D),n);return t.render((o=i,d.default.createElement(e.DragDropFileContext.Provider,{value:r},o)));var o};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../miranda-compatibility.theme-97e29e8e.js");require("@loadsmart/miranda-tokens");var t=Object.freeze({__proto__:null,Alice:e.alice,Loadsmart:e.loadsmart,Miranda:e.mirandaCompatibility});function r(t,r){const i=e.isFunction(t)?t(r):t;return r.theme[i]}exports.Themes=t,exports.getToken=function(e,t){return void 0===t?t=>r(e,t):r(e,t)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../miranda-compatibility.theme-ec2c3370.js");require("@loadsmart/miranda-tokens");var t=Object.freeze({__proto__:null,Alice:e.alice,Loadsmart:e.loadsmart,Miranda:e.mirandaCompatibility});function r(t,r){const i=e.isFunction(t)?t(r):t;return r.theme[i]}exports.Themes=t,exports.getToken=function(e,t){return void 0===t?t=>r(e,t):r(e,t)};
2
2
  //# sourceMappingURL=index.js.map
@@ -677,6 +677,8 @@ declare const alice: {
677
677
  'toggle-group-single-padding': string;
678
678
  'dropdown-trigger-expanded-color': string | number;
679
679
  'dropdown-trigger-height': string | number;
680
+ 'dropdown-trigger-small-height': string | number;
681
+ 'dropdown-trigger-large-height': string | number;
680
682
  'height-small': string;
681
683
  'height-default': string;
682
684
  'height-large': string;
@@ -659,6 +659,8 @@ declare const loadsmart: {
659
659
  'toggle-group-single-padding': string;
660
660
  'dropdown-trigger-expanded-color': string | number;
661
661
  'dropdown-trigger-height': string | number;
662
+ 'dropdown-trigger-small-height': string | number;
663
+ 'dropdown-trigger-large-height': string | number;
662
664
  'height-small': string;
663
665
  'height-default': string;
664
666
  'height-large': string;
@@ -668,6 +668,8 @@ declare const mirandaCompatibility: {
668
668
  'toggle-group-single-padding': string;
669
669
  'dropdown-trigger-expanded-color': string;
670
670
  'dropdown-trigger-height': string | number;
671
+ 'dropdown-trigger-small-height': string | number;
672
+ 'dropdown-trigger-large-height': string | number;
671
673
  'height-small': string;
672
674
  'height-default': string;
673
675
  'height-large': string;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../prop-5c502a5a.js");require("../toArray-b56541b4.js"),require("../miranda-compatibility.theme-97e29e8e.js"),require("@loadsmart/miranda-tokens"),require("../theming/index.js"),exports.conditional=e.conditional,exports.prop=e.prop,exports.whenProps=e.whenProps;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../prop-9e9ff08a.js");require("../toArray-b56541b4.js"),require("../miranda-compatibility.theme-ec2c3370.js"),require("@loadsmart/miranda-tokens"),require("../theming/index.js"),exports.conditional=e.conditional,exports.prop=e.prop,exports.whenProps=e.whenProps;
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loadsmart/loadsmart-ui",
3
- "version": "6.0.7",
3
+ "version": "6.0.9",
4
4
  "description": "Miranda UI, a React UI library",
5
5
  "main": "dist",
6
6
  "files": [
@@ -8,10 +8,10 @@ import { TextField } from 'components/TextField'
8
8
  import Dropdown from './Dropdown'
9
9
  import DropdownContext from './Dropdown.context'
10
10
 
11
- import type { DropdownProps, DropdownMenuProps, DropdownTriggerProps } from './Dropdown.types'
11
+ import type { DropdownProps, DropdownTriggerProps } from './Dropdown.types'
12
12
  import { Popover } from 'components/Popover'
13
13
 
14
- export default {
14
+ const meta: Meta = {
15
15
  title: 'Components/Dropdown',
16
16
  component: Dropdown,
17
17
  argTypes: {
@@ -20,11 +20,19 @@ export default {
20
20
  disable: true,
21
21
  },
22
22
  },
23
+ scale: {
24
+ control: {
25
+ type: 'select',
26
+ },
27
+ options: ['small', 'default', 'large'],
28
+ },
23
29
  },
24
- } as Meta
30
+ }
31
+
32
+ export default meta
25
33
 
26
34
  export type DropdownStoryProps = DropdownProps & {
27
- align?: DropdownMenuProps['align']
35
+ scale: DropdownTriggerProps['scale']
28
36
  outlined?: DropdownTriggerProps['outlined']
29
37
  }
30
38
 
@@ -34,7 +42,9 @@ export const Playground: Story<DropdownStoryProps> = (args) => {
34
42
  return (
35
43
  <div className="flex flex-col">
36
44
  <Dropdown {...args}>
37
- <Dropdown.Trigger outlined={args.outlined}>Actions</Dropdown.Trigger>
45
+ <Dropdown.Trigger outlined={args.outlined} scale={args.scale}>
46
+ Actions
47
+ </Dropdown.Trigger>
38
48
  <Dropdown.Menu>
39
49
  {ACTIONS.map(({ label, value }) => (
40
50
  <Dropdown.Item
@@ -56,12 +66,11 @@ export const Playground: Story<DropdownStoryProps> = (args) => {
56
66
  )
57
67
  }
58
68
 
59
- Playground.bind({})
60
-
61
69
  Playground.args = {
62
70
  disabled: false,
63
71
  align: 'start',
64
72
  outlined: true,
73
+ scale: 'default',
65
74
  }
66
75
 
67
76
  export const WithSections: Story<DropdownStoryProps> = (args) => {
@@ -12,9 +12,9 @@ import conditional, { whenProps } from 'tools/conditional'
12
12
  import disableable from 'styles/disableable'
13
13
  import DropdownContext from './Dropdown.context'
14
14
  import focusable from 'styles/focusable'
15
- import font from 'styles/font'
16
15
  import hoverable from 'styles/hoverable'
17
16
  import transition from 'styles/transition'
17
+ import typography from 'styles/typography'
18
18
 
19
19
  import type { ButtonHTMLAttributes, HTMLAttributes, MouseEvent } from 'react'
20
20
  import type { DropdownTriggerProps, DropdownContextReturn } from './Dropdown.types'
@@ -30,6 +30,7 @@ type DropdownTriggerWrapperProps = {
30
30
  disabled: boolean
31
31
  scheme: ColorScheme
32
32
  $outlined: boolean
33
+ $scale: DropdownTriggerProps['scale']
33
34
  }
34
35
 
35
36
  type TriggerButtonProps = ButtonProps & {
@@ -142,10 +143,13 @@ const TriggerButton = styled(
142
143
  const DropdownTriggerWrapper = styled.div<DropdownTriggerWrapperProps>`
143
144
  ${transition()}
144
145
 
145
- ${font({
146
- height: 'font-height-3',
147
- weight: 'font-weight-medium',
148
- })}
146
+ ${typography(
147
+ conditional({
148
+ 'button-md': whenProps({ $scale: 'default' }),
149
+ 'button-sm': whenProps({ $scale: 'small' }),
150
+ 'button-lg': whenProps({ $scale: 'large' }),
151
+ })
152
+ )}
149
153
 
150
154
  display: flex;
151
155
  justify-content: flex-start;
@@ -164,7 +168,12 @@ const DropdownTriggerWrapper = styled.div<DropdownTriggerWrapperProps>`
164
168
 
165
169
  color: ${token('color-neutral-darker')};
166
170
 
167
- height: ${token('dropdown-trigger-height')};
171
+ height: ${conditional({
172
+ 'dropdown-trigger-height': whenProps({ $scale: 'default' }),
173
+ 'dropdown-trigger-small-height': whenProps({ $scale: 'small' }),
174
+ 'dropdown-trigger-large-height': whenProps({ $scale: 'large' }),
175
+ })};
176
+
168
177
  box-sizing: border-box;
169
178
 
170
179
  flex: 1;
@@ -305,6 +314,7 @@ export interface GenericDropdownTriggerProps extends HTMLAttributes<HTMLDivEleme
305
314
  disabled?: boolean
306
315
  scheme?: ColorScheme
307
316
  outlined?: boolean
317
+ scale?: DropdownTriggerProps['scale']
308
318
  }
309
319
 
310
320
  export function GenericDropdownTrigger(props: GenericDropdownTriggerProps): JSX.Element {
@@ -315,7 +325,7 @@ export function GenericDropdownTrigger(props: GenericDropdownTriggerProps): JSX.
315
325
  throw new Error('DropdownTrigger must be inside a DropdownContext')
316
326
  }
317
327
 
318
- const { children, className, scheme = 'light', outlined = true, ...others } = props
328
+ const { children, className, scheme = 'light', outlined = true, scale, ...others } = props
319
329
  const { disabled } = context
320
330
 
321
331
  return (
@@ -332,6 +342,7 @@ export function GenericDropdownTrigger(props: GenericDropdownTriggerProps): JSX.
332
342
  )}
333
343
  disabled={disabled}
334
344
  scheme={scheme}
345
+ $scale={scale}
335
346
  $outlined={outlined}
336
347
  >
337
348
  {children}
@@ -344,7 +355,7 @@ function DropdownTrigger(props: DropdownTriggerProps): JSX.Element {
344
355
 
345
356
  return (
346
357
  <Popover.Reference>
347
- <GenericDropdownTrigger className={className} outlined={props.outlined}>
358
+ <GenericDropdownTrigger className={className} outlined={props.outlined} scale={props.scale}>
348
359
  <DropdownTriggerButton {...others} data-text={children}>
349
360
  {children}
350
361
  </DropdownTriggerButton>
@@ -191,6 +191,7 @@ describe('Select', () => {
191
191
 
192
192
  expect(onBlur).toHaveBeenNthCalledWith(1, new MouseEvent('mousedown'))
193
193
  expect(onBlur).toHaveBeenNthCalledWith(2, new KeyboardEvent('keyup'))
194
+ expect(selectEvent.isMenuExpanded(selectInput)).toBe(false)
194
195
  })
195
196
 
196
197
  it('shrinks when an option is selected', async () => {
@@ -314,6 +315,7 @@ describe('Select', () => {
314
315
 
315
316
  expect(await selectEvent.getSelectedOptions(searchInput)).toHaveLength(0)
316
317
  expect(searchInput).toHaveDisplayValue('')
318
+ expect(selectEvent.isMenuExpanded(searchInput)).toBe(false)
317
319
  })
318
320
 
319
321
  it('removes the clear button', async () => {
@@ -30,6 +30,7 @@ import type {
30
30
  SelectDatasourceFunction,
31
31
  SelectProps,
32
32
  SelectStatus,
33
+ SelectValue,
33
34
  useSelectReturn,
34
35
  } from './Select.types'
35
36
 
@@ -223,7 +224,7 @@ function useSelect(props: SelectProps): useSelectReturn {
223
224
  multiple,
224
225
  adapters,
225
226
  onChange: useCallback(
226
- function handleSelectionChange(selected) {
227
+ function handleSelectionChange(selected: SelectValue) {
227
228
  onChange?.({ target: { id, name, value: getValue(selected, multiple) } })
228
229
  },
229
230
  [id, multiple, name, onChange]
@@ -303,13 +304,14 @@ function useSelect(props: SelectProps): useSelectReturn {
303
304
  toggle: dropdown.toggle,
304
305
  expanded: dropdown.expanded,
305
306
  onBlur(event?: MouseEvent | TouchEvent | KeyboardEvent) {
307
+ setQueryTyped(false)
308
+
306
309
  if (!multiple) {
307
310
  setQuery(getDisplayValue(adapters, selectable.selected, multiple))
308
311
  } else {
309
312
  setQuery('')
310
313
  }
311
314
  options.reset()
312
-
313
315
  onBlur?.(event)
314
316
  },
315
317
  expandDisabled,
@@ -338,10 +340,11 @@ function useSelect(props: SelectProps): useSelectReturn {
338
340
  },
339
341
  value: query,
340
342
  onChange(e: ChangeEvent<HTMLInputElement>) {
341
- onQueryChange?.(e)
343
+ const sanitizedValue = e.target.value.replace(/\s+/, '')
342
344
 
345
+ setQueryTyped(sanitizedValue !== '')
346
+ onQueryChange?.(e)
343
347
  setQuery(e.target.value)
344
- setQueryTyped(true)
345
348
  },
346
349
  onFocus: TriggerOnFocusHandler,
347
350
  }
@@ -353,10 +356,10 @@ function useSelect(props: SelectProps): useSelectReturn {
353
356
  function getClearProps() {
354
357
  return {
355
358
  onClick() {
359
+ setQueryTyped(false)
356
360
  setQuery('')
357
361
  selectable.clear()
358
362
  options.reset()
359
-
360
363
  triggerRef.current?.focus()
361
364
  },
362
365
  }
@@ -947,6 +947,8 @@ const alice = {
947
947
  // dropdown
948
948
  'dropdown-trigger-expanded-color': color('accent'),
949
949
  'dropdown-trigger-height': height('default'),
950
+ 'dropdown-trigger-small-height': height('small'),
951
+ 'dropdown-trigger-large-height': height('large'),
950
952
  }
951
953
 
952
954
  export default alice
@@ -943,6 +943,8 @@ const loadsmart = {
943
943
  // dropdown
944
944
  'dropdown-trigger-expanded-color': color('accent'),
945
945
  'dropdown-trigger-height': height('default'),
946
+ 'dropdown-trigger-small-height': height('small'),
947
+ 'dropdown-trigger-large-height': height('large'),
946
948
  }
947
949
 
948
950
  export default loadsmart
@@ -897,6 +897,8 @@ const mirandaCompatibility = {
897
897
  // dropdown
898
898
  'dropdown-trigger-expanded-color': toCSSValue('color-primary-60'),
899
899
  'dropdown-trigger-height': height('default'),
900
+ 'dropdown-trigger-small-height': height('small'),
901
+ 'dropdown-trigger-large-height': height('large'),
900
902
  }
901
903
 
902
904
  export default mirandaCompatibility