@pixum/combobox 3.0.4 → 4.0.0-alpha.0

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/lib/ComboBox.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import { ComboBoxProps } from './types';
3
- import './styles.css';
4
- declare const ComboBox: React.FC<ComboBoxProps>;
5
- export default ComboBox;
1
+ import React from 'react';
2
+ import { ComboBoxProps } from './types';
3
+ import './styles.css';
4
+ declare const ComboBox: React.FC<ComboBoxProps>;
5
+ export default ComboBox;
package/lib/ComboBox.js CHANGED
@@ -1,74 +1,77 @@
1
- import React, { useCallback, useEffect, useRef, useState } from 'react';
2
- import BottomSheet from '@pixum/bottom-sheet';
3
- import Text, { TextVariant } from '@pixum/text';
4
- import ComboBoxOptions from './ComboboxOptions';
5
- import { SearchInput } from '@pixum/web-input';
6
- import { SelectInput } from '@pixum/user-input';
7
- import useIsDesktopScreenWidth from './helper/useIsDesktopScreenWidth';
8
- import './styles.css';
9
- import clsx from 'clsx';
10
- import ThemeProvider, { DEFAULT_THEME } from '@pixum/theme-provider';
11
- const ComboBox = ({ className = '', name, headline, label, searchPattern = '', id, isOpen, options, placeholder, value, inputMode, noResultsText, leadingType, optionDetails, withSearch = true, theme = DEFAULT_THEME, setIsOpen, onClick, onChange, onOutsideClick, onOptionItemClick, onSheetClose, }) => {
12
- const comboBoxRef = useRef(null);
13
- const bottomSheetRef = useRef(null);
14
- const [searchQuery, setSearchQuery] = useState('');
15
- const [inputPlaceholder, setPlaceholder] = useState(placeholder);
16
- const isDesktop = useIsDesktopScreenWidth();
17
- const optionsExist = Object.keys(options).length > 0;
18
- const showSelectField = !withSearch || (isDesktop && !isOpen) || !isDesktop;
19
- useEffect(() => {
20
- !isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
21
- }, [isOpen]);
22
- const handleChange = (e) => {
23
- const { value: searchValue } = e.target;
24
- setSearchQuery(searchValue);
25
- onChange === null || onChange === void 0 ? void 0 : onChange(searchValue);
26
- };
27
- const handleClearInput = () => {
28
- setSearchQuery('');
29
- };
30
- const clearAndClose = () => {
31
- setSearchQuery('');
32
- setIsOpen(false);
33
- };
34
- const handleClickOutside = useCallback((event) => {
35
- var _a;
36
- const node = event === null || event === void 0 ? void 0 : event.target;
37
- const isOutside = !((_a = comboBoxRef.current) === null || _a === void 0 ? void 0 : _a.contains(node));
38
- setPlaceholder(placeholder);
39
- isOutside && isDesktop && clearAndClose();
40
- isOutside && isDesktop && (onOutsideClick === null || onOutsideClick === void 0 ? void 0 : onOutsideClick());
41
- }, [comboBoxRef, bottomSheetRef, placeholder]);
42
- const handleOptionItemClick = (optionValue) => {
43
- onOptionItemClick === null || onOptionItemClick === void 0 ? void 0 : onOptionItemClick(optionValue);
44
- };
45
- const handleOnClick = () => {
46
- onClick === null || onClick === void 0 ? void 0 : onClick();
47
- };
48
- const NoResultsTextComponent = () => {
49
- return (React.createElement(Text, { variant: TextVariant.SUBHEADLINE, className: "combobox--no-results-text" }, noResultsText));
50
- };
51
- const removePlaceholder = () => {
52
- setPlaceholder('');
53
- };
54
- const handleKeyDown = (e) => {
55
- var _a;
56
- if (e.key === 'Tab') {
57
- e.preventDefault();
58
- (_a = document.querySelector('.combobox__options .menu-item')) === null || _a === void 0 ? void 0 : _a.focus();
59
- }
60
- };
61
- return (React.createElement(ThemeProvider, { theme: theme },
62
- showSelectField && (React.createElement(SelectInput, { className: clsx(isOpen && 'active', className), name: name, label: label, value: value, onClick: handleOnClick, onOutsideClick: handleClickOutside, isCompact: true, id: id, readOnly: true })),
63
- isDesktop && isOpen && (React.createElement("div", { className: "combobox", ref: comboBoxRef },
64
- withSearch && (React.createElement(SearchInput, { name: name, value: searchQuery, pattern: searchPattern, label: label, onChange: handleChange, onClear: handleClearInput, onKeyDown: handleKeyDown, onOutsideClick: handleClickOutside, displayLeadingIcon: isOpen, isCompact: true, inputMode: inputMode, autoFocus: true })),
65
- optionsExist ? (React.createElement(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (React.createElement(NoResultsTextComponent, null)),
66
- React.createElement("div", null))),
67
- !isDesktop && isOpen && (React.createElement(BottomSheet, { open: isOpen, onClose: clearAndClose, ref: bottomSheetRef },
68
- React.createElement("div", { className: "combobox--header" },
69
- React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox--headline" }, headline),
70
- withSearch && (React.createElement(SearchInput, { name: name, value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: removePlaceholder, placeholder: inputPlaceholder, isCompact: true, inputMode: inputMode, displayLeadingIcon: isOpen }))),
71
- React.createElement("div", { className: "combobox__options scrollable" }, optionsExist ? (React.createElement(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (React.createElement(NoResultsTextComponent, null)))))));
72
- };
73
- export default ComboBox;
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
+ import BottomSheet from '@pixum/bottom-sheet';
3
+ import Text, { TextVariant } from '@pixum/text';
4
+ import { SelectInput, SmallSearchInput } from '@pixum/user-input';
5
+ import ComboBoxOptions from './ComboboxOptions';
6
+ import useIsDesktopScreenWidth from './helper/useIsDesktopScreenWidth';
7
+ import './styles.css';
8
+ import clsx from 'clsx';
9
+ const ComboBox = ({ className = '', headline, label, onClick, onChange, onOutsideClick, onOptionItemClick, onSheetClose, searchPattern = '', id, isOpen, setIsOpen, options, placeholder, value, inputMode, noResultsText, leadingType, optionDetails, withSearch = true, }) => {
10
+ const comboBoxRef = useRef(null);
11
+ const bottomSheetRef = useRef(null);
12
+ const [searchQuery, setSearchQuery] = useState('');
13
+ const [inputPlaceholder, setPlaceholder] = useState(placeholder);
14
+ const isDesktop = useIsDesktopScreenWidth();
15
+ const optionsExist = Object.keys(options).length > 0;
16
+ const showSelectField = !withSearch || (isDesktop && !isOpen) || !isDesktop;
17
+ useEffect(() => {
18
+ !isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
19
+ }, [isOpen]);
20
+ const handleChange = (e) => {
21
+ const { value: searchValue } = e.target;
22
+ setSearchQuery(searchValue);
23
+ onChange === null || onChange === void 0 ? void 0 : onChange(searchValue);
24
+ };
25
+ const handleClearInput = () => {
26
+ setSearchQuery('');
27
+ };
28
+ const clearAndClose = () => {
29
+ setSearchQuery('');
30
+ setIsOpen(false);
31
+ };
32
+ const handleClickOutside = useCallback((event) => {
33
+ var _a;
34
+ const node = event === null || event === void 0 ? void 0 : event.target;
35
+ const isOutside = !((_a = comboBoxRef.current) === null || _a === void 0 ? void 0 : _a.contains(node));
36
+ setPlaceholder(placeholder);
37
+ isOutside && isDesktop && clearAndClose();
38
+ isOutside && isDesktop && (onOutsideClick === null || onOutsideClick === void 0 ? void 0 : onOutsideClick());
39
+ }, [comboBoxRef, bottomSheetRef, placeholder]);
40
+ const handleOptionItemClick = (optionValue) => {
41
+ onOptionItemClick === null || onOptionItemClick === void 0 ? void 0 : onOptionItemClick(optionValue);
42
+ };
43
+ const handleOnArrowClick = () => {
44
+ clearAndClose();
45
+ };
46
+ const handleOnClick = () => {
47
+ onClick === null || onClick === void 0 ? void 0 : onClick();
48
+ };
49
+ const NoResultsTextComponent = () => {
50
+ return (React.createElement(Text, { variant: TextVariant.SUBHEADLINE, className: "combobox--no-results-text" }, noResultsText));
51
+ };
52
+ const removePlaceholder = () => {
53
+ setPlaceholder('');
54
+ };
55
+ const handleKeyDown = (e) => {
56
+ var _a;
57
+ if (e.key === 'Tab') {
58
+ e.preventDefault();
59
+ (_a = document.querySelector('.combobox__options .menu-item')) === null || _a === void 0 ? void 0 : _a.focus();
60
+ }
61
+ };
62
+ return (React.createElement(React.Fragment, null,
63
+ showSelectField && (React.createElement(SelectInput, { className: clsx(isOpen && 'active', className), label: label, value: value, onClick: handleOnClick, onOutsideClick: handleClickOutside, isCompact: true, id: id, readOnly: true })),
64
+ isDesktop && isOpen && (React.createElement("div", { className: "combobox", ref: comboBoxRef },
65
+ withSearch && (React.createElement(SmallSearchInput, { value: searchQuery, pattern: searchPattern, label: label, onChange: handleChange, onClear: handleClearInput, onKeyDown: handleKeyDown, onArrowClick: handleOnArrowClick, onOutsideClick: handleClickOutside, show: isOpen, inputMode: inputMode, autoFocus: true, isCompact: true })),
66
+ optionsExist ? (React.createElement(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (React.createElement(NoResultsTextComponent, null)),
67
+ React.createElement("div", null))),
68
+ !isDesktop && isOpen && (React.createElement(BottomSheet, { open: isOpen, onClose: () => {
69
+ setIsOpen(false);
70
+ }, ref: bottomSheetRef },
71
+ React.createElement("div", { className: "combobox--header" },
72
+ React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox--headline" }, headline),
73
+ withSearch && (React.createElement(SmallSearchInput, { value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: removePlaceholder, placeholder: inputPlaceholder, inputMode: inputMode, show: isOpen, isCompact: true }))),
74
+ React.createElement("div", { className: "combobox__options scrollable" }, optionsExist ? (React.createElement(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (React.createElement(NoResultsTextComponent, null)))))));
75
+ };
76
+ export default ComboBox;
74
77
  //# sourceMappingURL=ComboBox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { LeadingType } from '@pixum/menu-item';
2
- import React from 'react';
3
- import { ComboBoxOptionProps } from '../types';
4
- interface OptionsProps {
5
- items: ComboBoxOptionProps[];
6
- selectedOption?: string;
7
- onClick?: (value: string) => void;
8
- onKeyDown: (e: React.KeyboardEvent, value: string) => void;
9
- leadingType?: LeadingType;
10
- }
11
- declare const Options: React.FC<OptionsProps>;
12
- export default Options;
1
+ import { LeadingType } from '@pixum/menu-item';
2
+ import React from 'react';
3
+ import { ComboBoxOptionProps } from '../types';
4
+ interface OptionsProps {
5
+ items: ComboBoxOptionProps[];
6
+ selectedOption?: string;
7
+ onClick?: (value: string) => void;
8
+ onKeyDown: (e: React.KeyboardEvent, value: string) => void;
9
+ leadingType?: LeadingType;
10
+ }
11
+ declare const Options: React.FC<OptionsProps>;
12
+ export default Options;
@@ -1,16 +1,16 @@
1
- import MenuItem from '@pixum/menu-item';
2
- import clsx from 'clsx';
3
- import React from 'react';
4
- const Options = ({ items, selectedOption, onClick, onKeyDown, leadingType, }) => (React.createElement(React.Fragment, null, items.map((item) => {
5
- var _a;
6
- return (React.createElement(MenuItem, { key: `combobox-item-${item.text}`, tabIndex: 0, className: clsx(selectedOption === item.text && 'selected'), onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(item.text), onKeyDown: e => onKeyDown(e, item.text), onMouseEnter: item.onMouseEnter, leadingProps: leadingType
7
- ? {
8
- name: item.text,
9
- type: leadingType,
10
- }
11
- : undefined, selected: selectedOption === item.text, text: item.text, subtext: item.subtext, subItemProps: {
12
- text: (_a = item.subItemProps) === null || _a === void 0 ? void 0 : _a.text,
13
- } }));
14
- })));
15
- export default Options;
1
+ import MenuItem from '@pixum/menu-item';
2
+ import clsx from 'clsx';
3
+ import React from 'react';
4
+ const Options = ({ items, selectedOption, onClick, onKeyDown, leadingType, }) => (React.createElement(React.Fragment, null, items.map((item, index) => {
5
+ var _a;
6
+ return (React.createElement(MenuItem, { key: `combobox-item-${item.text}`, tabIndex: index, className: clsx(selectedOption === item.text && 'selected'), onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(item.text), onKeyDown: e => onKeyDown(e, item.text), onMouseEnter: item.onMouseEnter, leadingProps: leadingType
7
+ ? {
8
+ name: item.text,
9
+ type: leadingType,
10
+ }
11
+ : undefined, selected: selectedOption === item.text, text: item.text, subtext: item.subtext, subItemProps: {
12
+ text: (_a = item.subItemProps) === null || _a === void 0 ? void 0 : _a.text,
13
+ } }));
14
+ })));
15
+ export default Options;
16
16
  //# sourceMappingURL=Options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ComboboxOptions/Options.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,kBAAkB,CAAA;AACvE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,MAAM,OAAO,GAA2B,CAAC,EACvC,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,0CACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAmB,EAAE,EAAE;;IAAC,OAAA,CAClC,oBAAC,QAAQ,IACP,GAAG,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EACjC,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,EAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EACvC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EACV,WAAW;YACT,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,WAAW;aAClB;YACH,CAAC,CAAC,SAAS,EAEf,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC,IAAI,EACtC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE;YACZ,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;SAC9B,GACD,CACH,CAAA;CAAA,CAAC,CACD,CACJ,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ComboboxOptions/Options.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,kBAAkB,CAAA;AACvE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,MAAM,OAAO,GAA2B,CAAC,EACvC,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,0CACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAmB,EAAE,KAAa,EAAE,EAAE;;IAAC,OAAA,CACjD,oBAAC,QAAQ,IACP,GAAG,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EACjC,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,EAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EACvC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EACV,WAAW;YACT,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,WAAW;aAClB;YACH,CAAC,CAAC,SAAS,EAEf,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC,IAAI,EACtC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE;YACZ,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;SAC9B,GACD,CACH,CAAA;CAAA,CAAC,CACD,CACJ,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1,13 +1,13 @@
1
- import { LeadingType } from '@pixum/menu-item';
2
- import React from 'react';
3
- import { ComboBoxOptionProps } from '../types';
4
- interface OptionsGroupProps {
5
- group: string;
6
- items: ComboBoxOptionProps[];
7
- selectedOption?: string;
8
- onClick?: (value: string) => void;
9
- onKeyDown: (e: React.KeyboardEvent, value: string) => void;
10
- leadingType?: LeadingType;
11
- }
12
- declare const OptionsGroup: React.FC<OptionsGroupProps>;
13
- export default OptionsGroup;
1
+ import { LeadingType } from '@pixum/menu-item';
2
+ import React from 'react';
3
+ import { ComboBoxOptionProps } from '../types';
4
+ interface OptionsGroupProps {
5
+ group: string;
6
+ items: ComboBoxOptionProps[];
7
+ selectedOption?: string;
8
+ onClick?: (value: string) => void;
9
+ onKeyDown: (e: React.KeyboardEvent, value: string) => void;
10
+ leadingType?: LeadingType;
11
+ }
12
+ declare const OptionsGroup: React.FC<OptionsGroupProps>;
13
+ export default OptionsGroup;
@@ -1,8 +1,8 @@
1
- import Text, { TextVariant } from '@pixum/text';
2
- import React from 'react';
3
- import Options from './Options';
4
- const OptionsGroup = ({ group, items, selectedOption, onClick, onKeyDown, leadingType, }) => (React.createElement("div", { className: "combobox__options-group", key: `combobox__options-group-${group}` },
5
- React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox__sticky-header" }, group),
6
- React.createElement(Options, { items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: onKeyDown, leadingType: leadingType })));
7
- export default OptionsGroup;
1
+ import Text, { TextVariant } from '@pixum/text';
2
+ import React from 'react';
3
+ import Options from './Options';
4
+ const OptionsGroup = ({ group, items, selectedOption, onClick, onKeyDown, leadingType, }) => (React.createElement("div", { className: "combobox__options-group", key: `combobox__options-group-${group}` },
5
+ React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox__sticky-header" }, group),
6
+ React.createElement(Options, { items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: onKeyDown, leadingType: leadingType })));
7
+ export default OptionsGroup;
8
8
  //# sourceMappingURL=OptionsGroup.js.map
@@ -1,4 +1,4 @@
1
- import React from 'react';
2
- import { ComboBoxOptionsProps } from '../types';
3
- declare const ComboBoxOptions: React.FC<ComboBoxOptionsProps>;
4
- export default ComboBoxOptions;
1
+ import React from 'react';
2
+ import { ComboBoxOptionsProps } from '../types';
3
+ declare const ComboBoxOptions: React.FC<ComboBoxOptionsProps>;
4
+ export default ComboBoxOptions;
@@ -1,22 +1,22 @@
1
- import React, { useEffect } from 'react';
2
- import Menu from '@pixum/menu';
3
- import { scrollOptionToViewport } from '../helper/scrollOptionToViewport';
4
- import OptionsGroup from './OptionsGroup';
5
- import Options from './Options';
6
- import useIsDesktopScreenWidth from '../helper/useIsDesktopScreenWidth';
7
- const ComboBoxOptions = ({ options, onClick, selectedOption, leadingType, optionDetails, }) => {
8
- const isDesktop = useIsDesktopScreenWidth();
9
- const handleOnKeyDown = (e, value) => {
10
- if (e.key === 'Enter') {
11
- onClick === null || onClick === void 0 ? void 0 : onClick(value);
12
- }
13
- };
14
- useEffect(() => {
15
- scrollOptionToViewport(isDesktop);
16
- }, [isDesktop]);
17
- return (React.createElement(Menu, { className: "combobox__options" },
18
- Array.isArray(options) ? (React.createElement(Options, { items: options, selectedOption: selectedOption, onClick: onClick, onKeyDown: handleOnKeyDown, leadingType: leadingType })) : (React.createElement(React.Fragment, null, Object.entries(options).map(([group, items]) => (React.createElement(OptionsGroup, { group: group, items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: handleOnKeyDown, leadingType: leadingType }))))),
19
- optionDetails && (React.createElement("div", { className: "combobox__option-details text--caption" }, optionDetails))));
20
- };
21
- export default ComboBoxOptions;
1
+ import React, { useEffect } from 'react';
2
+ import Menu from '@pixum/menu';
3
+ import { scrollOptionToViewport } from '../helper/scrollOptionToViewport';
4
+ import OptionsGroup from './OptionsGroup';
5
+ import Options from './Options';
6
+ import useIsDesktopScreenWidth from '../helper/useIsDesktopScreenWidth';
7
+ const ComboBoxOptions = ({ options, onClick, selectedOption, leadingType, optionDetails, }) => {
8
+ const isDesktop = useIsDesktopScreenWidth();
9
+ const handleOnKeyDown = (e, value) => {
10
+ if (e.key === 'Enter') {
11
+ onClick === null || onClick === void 0 ? void 0 : onClick(value);
12
+ }
13
+ };
14
+ useEffect(() => {
15
+ scrollOptionToViewport(isDesktop);
16
+ }, [isDesktop]);
17
+ return (React.createElement(Menu, { className: "combobox__options" },
18
+ Array.isArray(options) ? (React.createElement(Options, { items: options, selectedOption: selectedOption, onClick: onClick, onKeyDown: handleOnKeyDown, leadingType: leadingType })) : (React.createElement(React.Fragment, null, Object.entries(options).map(([group, items]) => (React.createElement(OptionsGroup, { group: group, items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: handleOnKeyDown, leadingType: leadingType }))))),
19
+ optionDetails && (React.createElement("div", { className: "combobox__option-details text--caption" }, optionDetails))));
20
+ };
21
+ export default ComboBoxOptions;
22
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AACjD,OAAO,IAAI,MAAM,aAAa,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,uBAAuB,MAAM,mCAAmC,CAAA;AAEvE,MAAM,eAAe,GAAmC,CAAC,EACvD,OAAO,EACP,OAAO,EACP,cAAc,EACd,WAAW,EACX,aAAa,GACd,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAA;IAE3C,MAAM,eAAe,GAAG,CAAC,CAAsB,EAAE,KAAa,EAAE,EAAE;QAChE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL,oBAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB;QAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACxB,oBAAC,OAAO,IACN,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,0CACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC/C,oBAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CACD,CACJ;QACA,aAAa,IAAI,CAChB,6BAAK,SAAS,EAAC,wCAAwC,IACpD,aAAa,CACV,CACP,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AACjD,OAAO,IAAI,MAAM,aAAa,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,uBAAuB,MAAM,mCAAmC,CAAA;AAEvE,MAAM,eAAe,GAAmC,CAAC,EACvD,OAAO,EACP,OAAO,EACP,cAAc,EACd,WAAW,EACX,aAAa,GACd,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAA;IAE3C,MAAM,eAAe,GAAG,CAAC,CAAsB,EAAE,KAAa,EAAE,EAAE;QAChE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAA;SACjB;IACH,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL,oBAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB;QAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACxB,oBAAC,OAAO,IACN,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,0CACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC/C,oBAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CACD,CACJ;QACA,aAAa,IAAI,CAChB,6BAAK,SAAS,EAAC,wCAAwC,IACpD,aAAa,CACV,CACP,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1 +1 @@
1
- export declare const calculateListMaxHeight: () => number;
1
+ export declare const calculateListMaxHeight: () => number;
@@ -1,8 +1,8 @@
1
- export const calculateListMaxHeight = () => {
2
- const windowHeight = window.innerHeight;
3
- const headerHeight = 50;
4
- const inputFieldHeight = 35;
5
- const maxListHeight = windowHeight - headerHeight - inputFieldHeight;
6
- return maxListHeight;
7
- };
1
+ export const calculateListMaxHeight = () => {
2
+ const windowHeight = window.innerHeight;
3
+ const headerHeight = 50;
4
+ const inputFieldHeight = 35;
5
+ const maxListHeight = windowHeight - headerHeight - inputFieldHeight;
6
+ return maxListHeight;
7
+ };
8
8
  //# sourceMappingURL=calculateListMaxHeight.js.map
@@ -1 +1 @@
1
- export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
1
+ export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
@@ -1,19 +1,18 @@
1
- export const scrollOptionToViewport = (isDesktop) => {
2
- const comboboxOptions = isDesktop
3
- ? document.querySelector('.menu')
4
- : document.querySelector('.combobox__options');
5
- const selectedItem = document.querySelector('.menu-item.selected');
6
- if (selectedItem && comboboxOptions) {
7
- let comboboxOptionsGroup = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.parentElement;
8
- if (comboboxOptionsGroup) {
9
- const stickyHeader = comboboxOptionsGroup === null || comboboxOptionsGroup === void 0 ? void 0 : comboboxOptionsGroup.querySelector('.sticky-header');
10
- const stickyHeaderOffset = stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.offsetTop;
11
- comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: stickyHeaderOffset });
12
- }
13
- else {
14
- const selectedItemOffset = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.offsetTop;
15
- comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: selectedItemOffset });
16
- }
17
- }
18
- };
1
+ export const scrollOptionToViewport = (isDesktop) => {
2
+ const comboboxOptions = isDesktop ? document.querySelector('.menu') :
3
+ document.querySelector('.combobox__options');
4
+ const selectedItem = document.querySelector(".menu-item.selected");
5
+ if (selectedItem && comboboxOptions) {
6
+ let comboboxOptionsGroup = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.parentElement;
7
+ if (comboboxOptionsGroup) {
8
+ const stickyHeader = comboboxOptionsGroup === null || comboboxOptionsGroup === void 0 ? void 0 : comboboxOptionsGroup.querySelector('.sticky-header');
9
+ const stickyHeaderOffset = stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.offsetTop;
10
+ comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: stickyHeaderOffset });
11
+ }
12
+ else {
13
+ const selectedItemOffset = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.offsetTop;
14
+ comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: selectedItemOffset });
15
+ }
16
+ }
17
+ };
19
18
  //# sourceMappingURL=scrollOptionToViewport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrollOptionToViewport.js","sourceRoot":"","sources":["../../src/helper/scrollOptionToViewport.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAkB,EAAE,EAAE;IAC3D,MAAM,eAAe,GAAG,SAAS;QAC/B,CAAC,CAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAiB;QAClD,CAAC,CAAE,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAiB,CAAA;IACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CACzC,qBAAqB,CACP,CAAA;IAEhB,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,oBAAoB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,CAAA;QAEtD,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,CACtD,gBAAgB,CACF,CAAA;YAChB,MAAM,kBAAkB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA;YAElD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,kBAAkB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA;YAElD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"scrollOptionToViewport.js","sourceRoot":"","sources":["../../src/helper/scrollOptionToViewport.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAkB,EAAE,EAAE;IACzD,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAgB,CAAC,CAAC;QAChF,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAgB,CAAA;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAgB,CAAC;IAElF,IAAI,YAAY,IAAI,eAAe,EAAE;QACjC,IAAI,oBAAoB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,CAAA;QAEtD,IAAI,oBAAoB,EAAE;YACtB,MAAM,YAAY,GAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,CAAC,gBAAgB,CAAgB,CAAA;YACzF,MAAM,kBAAkB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA;YAElD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAG,CAAC,CAAA;SAC1D;aAAM;YACH,MAAM,kBAAkB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA;YAElD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;SACzD;KACJ;AACL,CAAC,CAAA"}
@@ -1,2 +1,2 @@
1
- declare const useIsDesktopScreenWidth: () => boolean;
2
- export default useIsDesktopScreenWidth;
1
+ declare const useIsDesktopScreenWidth: () => boolean;
2
+ export default useIsDesktopScreenWidth;
@@ -1,20 +1,20 @@
1
- import { useState, useEffect } from 'react';
2
- const useIsDesktopScreenWidth = () => {
3
- const hasWindowObject = typeof window !== 'undefined';
4
- if (hasWindowObject) {
5
- const [screenWidth, setScreenWidth] = useState(window.innerWidth);
6
- useEffect(() => {
7
- const handleResize = () => {
8
- setScreenWidth(window.innerWidth);
9
- };
10
- window.addEventListener('resize', handleResize);
11
- return () => {
12
- window.removeEventListener('resize', handleResize);
13
- };
14
- }, []);
15
- return screenWidth > 960;
16
- }
17
- return false;
18
- };
19
- export default useIsDesktopScreenWidth;
1
+ import { useState, useEffect } from 'react';
2
+ const useIsDesktopScreenWidth = () => {
3
+ const hasWindowObject = typeof window !== 'undefined';
4
+ if (hasWindowObject) {
5
+ const [screenWidth, setScreenWidth] = useState(window.innerWidth);
6
+ useEffect(() => {
7
+ const handleResize = () => {
8
+ setScreenWidth(window.innerWidth);
9
+ };
10
+ window.addEventListener('resize', handleResize);
11
+ return () => {
12
+ window.removeEventListener('resize', handleResize);
13
+ };
14
+ }, []);
15
+ return screenWidth > 960;
16
+ }
17
+ return false;
18
+ };
19
+ export default useIsDesktopScreenWidth;
20
20
  //# sourceMappingURL=useIsDesktopScreenWidth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsDesktopScreenWidth.js","sourceRoot":"","sources":["../../src/helper/useIsDesktopScreenWidth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,CAAA;IAErD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEjE,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACnC,CAAC,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAE/C,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACpD,CAAC,CAAA;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,OAAO,WAAW,GAAG,GAAG,CAAA;IAC1B,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,uBAAuB,CAAA"}
1
+ {"version":3,"file":"useIsDesktopScreenWidth.js","sourceRoot":"","sources":["../../src/helper/useIsDesktopScreenWidth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,CAAA;IAErD,IAAI,eAAe,EAAE;QACnB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEjE,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACnC,CAAC,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAE/C,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACpD,CAAC,CAAA;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,OAAO,WAAW,GAAG,GAAG,CAAA;KACzB;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,uBAAuB,CAAA"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import ComboBox from './ComboBox';
2
- export default ComboBox;
3
- export * from './types';
1
+ import ComboBox from './ComboBox';
2
+ export default ComboBox;
3
+ export * from './types';
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import ComboBox from './ComboBox';
2
- export default ComboBox;
3
- export * from './types';
1
+ import ComboBox from './ComboBox';
2
+ export default ComboBox;
3
+ export * from './types';
4
4
  //# sourceMappingURL=index.js.map
package/lib/styles.css CHANGED
@@ -1 +1 @@
1
- .combobox{width:100%;position:relative}.combobox--headline[class*=text--]+*{margin-top:var(--spacing-2)}.combobox--header,.combobox__options{position:relative}.combobox--header{width:100%;align-items:flex-start;flex-direction:column;gap:var(--spacing-1_5);height:auto;padding:var(--spacing-3) var(--spacing) var(--spacing-2)}.combobox__options{width:100%;max-height:none;display:flex;flex-direction:column;overflow:scroll}.combobox .input-outer-container .input-inner-container.input-inner-container--compact{height:32px}.combobox .user-input__label-container{align-self:baseline;padding-left:var(--spacing-2)}.combobox .user-input__label-container label.user-input__label{font-size:12px;padding:var(--spacing-0_5)}.combobox__options .combobox__sticky-header,.combobox__options .menu-item[data-background-color=default]{padding-left:0}.combobox .search.user-input__compact{margin-bottom:var(--spacing-2)}.combobox__options .combobox__sticky-header{position:sticky;top:0;padding-left:var(--spacing);padding-right:var(--spacing);background-color:var(--color-surface)}.combobox__options .menu-item[data-background-color=default]{padding:var(--spacing)}.combobox__options .menu-item:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.combobox__options .text--caption{color:var(--color-on-secondary)}.combobox__options .item-header{display:flex;justify-content:space-between}.combobox .combobox__options .combobox__option-details{position:sticky;bottom:0;padding-left:var(--spacing);padding-right:var(--spacing);background-color:var(--color-surface)}.combobox .user-input__label.user-input__label--active{color:var(--color-on)}.combobox--no-results-text{text-align:center;padding:var(--spacing-2) var(--spacing)}.combobox .input-outer-container label{padding-top:0;padding-bottom:0;padding-left:0}@media screen and (min-width:960px){.combobox .input-inner-container,.combobox .user-input__container.search{border-radius:var(--spacing-0_5) var(--spacing-0_5) 0 0}.combobox__options{position:absolute;overflow-x:auto;max-height:330px}.combobox .user-input__label-container{padding-left:0}.combobox .search.user-input__compact{margin-bottom:0}.combobox .user-input__label-container label.user-input__label{font-size:14px}}
1
+ .combobox{width:100%;position:relative}.combobox--headline[class*=text--]+*{margin-top:var(--spacing-2)}.combobox--header,.combobox__options{position:relative}.combobox--header{width:100%;align-items:flex-start;flex-direction:column;gap:var(--spacing-1_5);height:auto;padding:var(--spacing-3) var(--spacing) var(--spacing-2)}.combobox__options{width:100%;max-height:none;display:flex;flex-direction:column;overflow:scroll}.combobox .user-input__label-container{align-self:baseline;padding-left:var(--spacing-2)}.combobox__options .combobox__sticky-header,.combobox__options .menu-item[data-background-color=default]{padding-left:0}.combobox .search.user-input__compact{margin-bottom:var(--spacing-2)}.combobox__options .combobox__sticky-header{position:-webkit-sticky;position:sticky;top:0;padding-left:var(--spacing);padding-right:var(--spacing);background-color:var(--color-surface)}.combobox__options .menu-item[data-background-color=default]{padding:var(--spacing)}.combobox__options .text--caption{color:var(--color-on-secondary)}.combobox__options .item-header{display:flex;justify-content:space-between}.combobox .combobox__options .combobox__option-details{position:-webkit-sticky;position:sticky;bottom:0;padding-left:var(--spacing);padding-right:var(--spacing);background-color:var(--color-surface)}.combobox .user-input__label.user-input__label--active{color:var(--color-on)}.combobox--no-results-text{text-align:center;padding:var(--spacing-2) var(--spacing)}@media screen and (min-width:960px){.combobox .user-input__container.search{border-radius:var(--spacing-0_5) var(--spacing-0_5) 0 0}.combobox__options{position:absolute;overflow-x:auto;max-height:330px}.combobox .user-input__label-container{padding-left:0}.combobox .search.user-input__compact{margin-bottom:0}}
package/lib/types.d.ts CHANGED
@@ -1,36 +1,34 @@
1
- import { LeadingType, MenuItemProps } from '@pixum/menu-item';
2
- import { ThemeType } from '@pixum/theme-provider';
3
- import { InputModesType } from '@pixum/web-input';
4
- interface ComboBoxOptionsProps {
5
- options: Record<string, ComboBoxOptionProps[]> | ComboBoxOptionProps[];
6
- selectedOption?: string;
7
- onClick?: (value: string) => void;
8
- leadingType?: LeadingType;
9
- optionDetails?: React.ReactNode;
10
- }
11
- interface ComboBoxProps extends ComboBoxOptionsProps {
12
- className?: string;
13
- name?: string;
14
- headline?: string;
15
- helperText?: string;
16
- id?: string;
17
- label?: string;
18
- isOpen: boolean;
19
- setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
20
- onChange?: (value: string) => void;
21
- onOptionItemClick?: (value: string) => void;
22
- onOutsideClick?: () => void;
23
- onClick?: () => void;
24
- onSheetClose?: () => void;
25
- placeholder?: string;
26
- searchPattern?: string;
27
- value?: string;
28
- noResultsText?: string;
29
- inputMode?: InputModesType;
30
- withSearch?: boolean;
31
- theme?: ThemeType;
32
- }
33
- interface ComboBoxOptionProps extends MenuItemProps {
34
- key?: string;
35
- }
36
- export { ComboBoxProps, ComboBoxOptionProps, ComboBoxOptionsProps };
1
+ /// <reference types="react" />
2
+ import { LeadingType, MenuItemProps } from '@pixum/menu-item';
3
+ import { InputMode } from '@pixum/user-input';
4
+ interface ComboBoxOptionsProps {
5
+ options: Record<string, ComboBoxOptionProps[]> | ComboBoxOptionProps[];
6
+ selectedOption?: string;
7
+ onClick?: (value: string) => void;
8
+ leadingType?: LeadingType;
9
+ optionDetails?: React.ReactNode;
10
+ }
11
+ interface ComboBoxProps extends ComboBoxOptionsProps {
12
+ className?: string;
13
+ headline?: string;
14
+ helperText?: string;
15
+ id?: string;
16
+ label?: string;
17
+ isOpen: boolean;
18
+ setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
19
+ onChange?: (value: string) => void;
20
+ onOptionItemClick?: (value: string) => void;
21
+ onOutsideClick?: () => void;
22
+ onClick?: () => void;
23
+ onSheetClose?: () => void;
24
+ placeholder?: string;
25
+ searchPattern?: string;
26
+ value?: string;
27
+ noResultsText?: string;
28
+ inputMode?: InputMode;
29
+ withSearch?: boolean;
30
+ }
31
+ interface ComboBoxOptionProps extends MenuItemProps {
32
+ key?: string;
33
+ }
34
+ export { ComboBoxProps, ComboBoxOptionProps, ComboBoxOptionsProps };
package/lib/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=types.js.map