@pixum/combobox 5.0.0-alpha.0 → 5.0.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.
Files changed (64) hide show
  1. package/lib/ComboBox.d.ts +11 -5
  2. package/lib/ComboBox.js +99 -76
  3. package/lib/ComboBox.js.map +1 -1
  4. package/lib/ComboboxOptions/Options.d.ts +11 -12
  5. package/lib/ComboboxOptions/Options.js +18 -15
  6. package/lib/ComboboxOptions/Options.js.map +1 -1
  7. package/lib/ComboboxOptions/OptionsGroup.d.ts +12 -13
  8. package/lib/ComboboxOptions/OptionsGroup.js +7 -7
  9. package/lib/ComboboxOptions/OptionsGroup.js.map +1 -1
  10. package/lib/ComboboxOptions/index.d.ts +4 -4
  11. package/lib/ComboboxOptions/index.js +18 -21
  12. package/lib/ComboboxOptions/index.js.map +1 -1
  13. package/lib/helper/calculateListMaxHeight.d.ts +1 -1
  14. package/lib/helper/calculateListMaxHeight.js +7 -7
  15. package/lib/helper/index.d.ts +2 -0
  16. package/lib/helper/index.js +3 -0
  17. package/lib/helper/index.js.map +1 -0
  18. package/lib/helper/scrollOptionToViewport.d.ts +1 -1
  19. package/lib/helper/scrollOptionToViewport.js +18 -17
  20. package/lib/helper/scrollOptionToViewport.js.map +1 -1
  21. package/lib/helper/useIsDesktopScreenWidth.d.ts +2 -2
  22. package/lib/helper/useIsDesktopScreenWidth.js +19 -19
  23. package/lib/helper/useIsDesktopScreenWidth.js.map +1 -1
  24. package/lib/hooks/index.d.ts +1 -0
  25. package/lib/hooks/index.js +2 -0
  26. package/lib/hooks/index.js.map +1 -0
  27. package/lib/hooks/useIsDesktopScreenWidth.d.ts +7 -0
  28. package/lib/hooks/useIsDesktopScreenWidth.js +22 -0
  29. package/lib/hooks/useIsDesktopScreenWidth.js.map +1 -0
  30. package/lib/index.d.ts +3 -3
  31. package/lib/index.js +3 -3
  32. package/lib/index.js.map +1 -1
  33. package/lib/partials/ComboBoxGroupedOptions.d.ts +13 -0
  34. package/lib/partials/ComboBoxGroupedOptions.js +10 -0
  35. package/lib/partials/ComboBoxGroupedOptions.js.map +1 -0
  36. package/lib/partials/ComboBoxMenu.d.ts +3 -0
  37. package/lib/partials/ComboBoxMenu.js +22 -0
  38. package/lib/partials/ComboBoxMenu.js.map +1 -0
  39. package/lib/partials/ComboBoxOptions.d.ts +10 -0
  40. package/lib/partials/ComboBoxOptions.js +25 -0
  41. package/lib/partials/ComboBoxOptions.js.map +1 -0
  42. package/lib/partials/ComboBoxOptionsItems.d.ts +24 -0
  43. package/lib/partials/ComboBoxOptionsItems.js +24 -0
  44. package/lib/partials/ComboBoxOptionsItems.js.map +1 -0
  45. package/lib/partials/ComboBoxOptionsWithGrouping.d.ts +26 -0
  46. package/lib/partials/ComboBoxOptionsWithGrouping.js +14 -0
  47. package/lib/partials/ComboBoxOptionsWithGrouping.js.map +1 -0
  48. package/lib/partials/index.d.ts +3 -0
  49. package/lib/partials/index.js +4 -0
  50. package/lib/partials/index.js.map +1 -0
  51. package/lib/styles.css +1 -1
  52. package/lib/types.d.ts +70 -34
  53. package/lib/types.js +1 -1
  54. package/lib/utils/calculateListMaxHeight.d.ts +7 -0
  55. package/lib/utils/calculateListMaxHeight.js +14 -0
  56. package/lib/utils/calculateListMaxHeight.js.map +1 -0
  57. package/lib/utils/index.d.ts +2 -0
  58. package/lib/utils/index.js +3 -0
  59. package/lib/utils/index.js.map +1 -0
  60. package/lib/utils/scrollOptionToViewport.d.ts +7 -0
  61. package/lib/utils/scrollOptionToViewport.js +25 -0
  62. package/lib/utils/scrollOptionToViewport.js.map +1 -0
  63. package/package.json +14 -11
  64. package/CHANGELOG.md +0 -659
package/lib/ComboBox.d.ts CHANGED
@@ -1,5 +1,11 @@
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 type { ComboBoxProps } from './types';
2
+ import './styles.css';
3
+ /**
4
+ * ComboBox component that provides a searchable dropdown with options.
5
+ * Adapts to mobile (bottom sheet) and desktop (dropdown) viewports.
6
+ * Supports both flat and grouped options, search functionality, and keyboard navigation.
7
+ *
8
+ * @param props - The props for the ComboBox component
9
+ * @returns A responsive combobox component with search and selection capabilities
10
+ */
11
+ export declare function ComboBox({ className, name, headline, label, searchPattern, id, isOpen, options, placeholder, value, inputMode, noResultsText, leadingType, optionDetails, withSearch, theme, setIsOpen, onClick, onChange, onOutsideClick, onOptionItemClick, onSheetClose, }: ComboBoxProps): import("react/jsx-runtime").JSX.Element;
package/lib/ComboBox.js CHANGED
@@ -1,77 +1,100 @@
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;
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef, useState, } from 'react';
4
+ import BottomSheet from '@pixum/bottom-sheet';
5
+ import Text, { TextVariant } from '@pixum/text';
6
+ import { useEscapeKeyPress } from '@pixum/utils';
7
+ import { ComboBoxOptions } from './partials';
8
+ import { SearchInput } from '@pixum/web-input';
9
+ import { SelectInput } from '@pixum/user-input';
10
+ import { useIsDesktopScreenWidth } from './hooks';
11
+ import clsx from 'clsx';
12
+ import ThemeProvider, { DEFAULT_THEME } from '@pixum/theme-provider';
13
+ import './styles.css';
14
+ /**
15
+ * ComboBox component that provides a searchable dropdown with options.
16
+ * Adapts to mobile (bottom sheet) and desktop (dropdown) viewports.
17
+ * Supports both flat and grouped options, search functionality, and keyboard navigation.
18
+ *
19
+ * @param props - The props for the ComboBox component
20
+ * @returns A responsive combobox component with search and selection capabilities
21
+ */
22
+ export function 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, }) {
23
+ const comboBoxRef = useRef(null);
24
+ const bottomSheetRef = useRef(null);
25
+ const [searchQuery, setSearchQuery] = useState('');
26
+ const [inputPlaceholder, setPlaceholder] = useState(placeholder);
27
+ const isDesktop = useIsDesktopScreenWidth();
28
+ const optionsExist = Object.keys(options).length > 0;
29
+ const showSelectField = !withSearch || (isDesktop && !isOpen) || !isDesktop;
30
+ useEffect(() => {
31
+ !isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
32
+ }, [isOpen]);
33
+ /**
34
+ * Handles changes to the search input field
35
+ *
36
+ * @param e - The change event from the input
37
+ */
38
+ const handleChange = (e) => {
39
+ const { value: searchValue } = e.target;
40
+ setSearchQuery(searchValue);
41
+ onChange === null || onChange === void 0 ? void 0 : onChange(searchValue);
42
+ };
43
+ /**
44
+ * Clears the search input field
45
+ */
46
+ const handleClearInput = () => {
47
+ setSearchQuery('');
48
+ };
49
+ /**
50
+ * Clears the search input and closes the dropdown/bottom sheet
51
+ */
52
+ const clearAndClose = () => {
53
+ setSearchQuery('');
54
+ setIsOpen(false);
55
+ };
56
+ useEscapeKeyPress(clearAndClose, isOpen);
57
+ /**
58
+ * Handles clicks outside the component to close it
59
+ *
60
+ * @param event - The mouse event
61
+ */
62
+ const handleClickOutside = useCallback((event) => {
63
+ var _a;
64
+ const node = event === null || event === void 0 ? void 0 : event.target;
65
+ const isOutside = !((_a = comboBoxRef.current) === null || _a === void 0 ? void 0 : _a.contains(node));
66
+ setPlaceholder(placeholder);
67
+ isOutside && isDesktop && clearAndClose();
68
+ isOutside && isDesktop && (onOutsideClick === null || onOutsideClick === void 0 ? void 0 : onOutsideClick());
69
+ }, [comboBoxRef, bottomSheetRef, placeholder, isDesktop]);
70
+ /**
71
+ * Handles click on an option item
72
+ *
73
+ * @param optionValue - The value of the clicked option
74
+ */
75
+ const handleOptionItemClick = (optionValue) => {
76
+ onOptionItemClick === null || onOptionItemClick === void 0 ? void 0 : onOptionItemClick(optionValue);
77
+ };
78
+ /**
79
+ * Handles click on the input field
80
+ */
81
+ const handleOnClick = () => {
82
+ onClick === null || onClick === void 0 ? void 0 : onClick();
83
+ };
84
+ /**
85
+ * Renders the "no results" message when no options match the search
86
+ *
87
+ * @returns A text component displaying the no results message
88
+ */
89
+ const NoResultsTextComponent = () => {
90
+ return (_jsx(Text, { variant: TextVariant.SUBHEADLINE, className: "combobox--no-results-text", children: noResultsText }));
91
+ };
92
+ /**
93
+ * Removes the placeholder text from the input field
94
+ */
95
+ const removePlaceholder = () => {
96
+ setPlaceholder('');
97
+ };
98
+ return (_jsxs(ThemeProvider, { theme: theme, children: [showSelectField && (_jsx(SelectInput, { className: clsx(isOpen && 'active', className), name: name, label: label, value: value, onClick: handleOnClick, onOutsideClick: handleClickOutside, isCompact: true, id: id, readOnly: true })), isDesktop && isOpen && (_jsxs("div", { className: "combobox", ref: comboBoxRef, children: [withSearch && (_jsx(SearchInput, { name: name, value: searchQuery, pattern: searchPattern, label: label, onChange: handleChange, onClear: handleClearInput, onOutsideClick: handleClickOutside, displayLeadingIcon: isOpen, isCompact: true, inputMode: inputMode, autoFocus: true })), optionsExist ? (_jsx(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType })) : (_jsx(NoResultsTextComponent, {})), _jsx("div", {})] })), !isDesktop && isOpen && (_jsxs(BottomSheet, { open: isOpen, onClose: clearAndClose, ref: bottomSheetRef, children: [_jsxs("div", { className: "combobox--header", children: [_jsx(Text, { variant: TextVariant.HEADLINE, className: "combobox--headline", children: headline }), withSearch && (_jsx(SearchInput, { name: name, value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: removePlaceholder, placeholder: inputPlaceholder, isCompact: true, inputMode: inputMode, displayLeadingIcon: isOpen }))] }), _jsx("div", { className: "combobox__options scrollable", children: optionsExist ? (_jsx(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (_jsx(NoResultsTextComponent, {})) })] }))] }));
99
+ }
77
100
  //# 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,11 @@
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
+ leadingType?: LeadingType;
9
+ }
10
+ declare const Options: React.FC<OptionsProps>;
11
+ export default Options;
@@ -1,16 +1,19 @@
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;
1
+ import MenuItem from '@pixum/menu-item';
2
+ import clsx from 'clsx';
3
+ import React from 'react';
4
+ const Options = ({ items, selectedOption, onClick, leadingType, }) => (React.createElement(React.Fragment, null, items.map((item) => {
5
+ var _a;
6
+ const itemText = item.text;
7
+ const isSelected = selectedOption === ((item === null || item === void 0 ? void 0 : item.label) || itemText);
8
+ return (React.createElement("div", { key: `combobox-item-wrapper-${itemText}`, className: "combobox__option-wrapper", role: "button", tabIndex: 0, onPointerDown: (e) => e.stopPropagation(), onTouchStart: (e) => e.stopPropagation(), onMouseDown: (e) => e.stopPropagation(), onClickCapture: (e) => {
9
+ e.stopPropagation();
10
+ onClick === null || onClick === void 0 ? void 0 : onClick(itemText);
11
+ } },
12
+ React.createElement(MenuItem, { tabIndex: -1, className: clsx(isSelected && 'selected'), onMouseEnter: item.onMouseEnter, leadingProps: leadingType
13
+ ? { name: itemText, type: leadingType }
14
+ : undefined, selected: selectedOption === itemText, text: itemText, subtext: item.subtext, subItemProps: {
15
+ text: (_a = item.subItemProps) === null || _a === void 0 ? void 0 : _a.text,
16
+ } })));
17
+ })));
18
+ export default Options;
16
19
  //# 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,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
+ {"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;AAUzB,MAAM,OAAO,GAA2B,CAAC,EACvC,KAAK,EACL,cAAc,EACd,OAAO,EACP,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,0CACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAmB,EAAE,EAAE;;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;IAC1B,MAAM,UAAU,GAAG,cAAc,KAAK,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAI,QAAQ,CAAC,CAAA;IAE/D,OAAO,CACL,6BACE,GAAG,EAAE,yBAAyB,QAAQ,EAAE,EACxC,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,EACX,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACzC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACxC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACvC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,CAAC,CAAC,eAAe,EAAE,CAAA;YACnB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,QAAQ,CAAC,CAAA;QACrB,CAAC;QAED,oBAAC,QAAQ,IACP,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,EACzC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EACV,WAAW;gBACT,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE;gBACvC,CAAC,CAAC,SAAS,EAEf,QAAQ,EAAE,cAAc,KAAK,QAAQ,EACrC,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;aAC9B,GACD,CACE,CACP,CAAA;AACH,CAAC,CAAC,CACD,CACJ,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1,13 +1,12 @@
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
+ leadingType?: LeadingType;
10
+ }
11
+ declare const OptionsGroup: React.FC<OptionsGroupProps>;
12
+ 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, 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, leadingType: leadingType })));
7
+ export default OptionsGroup;
8
8
  //# sourceMappingURL=OptionsGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionsGroup.js","sourceRoot":"","sources":["../../src/ComboboxOptions/OptionsGroup.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,WAAW,CAAA;AAY/B,MAAM,YAAY,GAAgC,CAAC,EACjD,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,6BACE,SAAS,EAAC,yBAAyB,EACnC,GAAG,EAAE,2BAA2B,KAAK,EAAE;IAEvC,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,yBAAyB,IACrE,KAAK,CACD;IACP,oBAAC,OAAO,IACN,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,GACxB,CACE,CACP,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"OptionsGroup.js","sourceRoot":"","sources":["../../src/ComboboxOptions/OptionsGroup.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,WAAW,CAAA;AAW/B,MAAM,YAAY,GAAgC,CAAC,EACjD,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,6BACE,SAAS,EAAC,yBAAyB,EACnC,GAAG,EAAE,2BAA2B,KAAK,EAAE;IAEvC,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,yBAAyB,IACrE,KAAK,CACD;IACP,oBAAC,OAAO,IACN,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACxB,CACE,CACP,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -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,19 @@
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 optionsWithoutGroup = Array.isArray(options);
10
+ const optionsWithGroup = Object.entries(options);
11
+ useEffect(() => {
12
+ scrollOptionToViewport(isDesktop);
13
+ }, [isDesktop]);
14
+ return (React.createElement(Menu, { className: "combobox__options scrollable", "data-tappable": "true" },
15
+ optionsWithoutGroup ? (React.createElement(Options, { items: options, selectedOption: selectedOption, onClick: onClick, leadingType: leadingType })) : (React.createElement(React.Fragment, null, optionsWithGroup.map(([group, items]) => (React.createElement(OptionsGroup, { group: group, items: items, selectedOption: selectedOption, onClick: onClick, leadingType: leadingType }))))),
16
+ optionDetails && (React.createElement("div", { className: "combobox__option-details text--caption" }, optionDetails))));
17
+ };
18
+ export default ComboBoxOptions;
22
19
  //# 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;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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,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;IAC3C,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL,oBAAC,IAAI,IACH,SAAS,EAAC,8BAA8B,mBAC1B,MAAM;QAEnB,mBAAmB,CAAC,CAAC,CAAC,CACrB,oBAAC,OAAO,IACN,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,0CACG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACxC,oBAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,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
@@ -0,0 +1,2 @@
1
+ export * from './calculateListMaxHeight';
2
+ export * from './scrollOptionToViewport';
@@ -0,0 +1,3 @@
1
+ export * from './calculateListMaxHeight';
2
+ export * from './scrollOptionToViewport';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA"}
@@ -1 +1 @@
1
- export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
1
+ export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
@@ -1,18 +1,19 @@
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
- };
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
+ };
18
19
  //# 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;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
+ {"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,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;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"}
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"}
@@ -0,0 +1 @@
1
+ export * from './useIsDesktopScreenWidth';
@@ -0,0 +1,2 @@
1
+ export * from './useIsDesktopScreenWidth';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Custom hook that detects whether the viewport width is desktop size (>= 768px).
3
+ * Listens to window resize events to update the state dynamically.
4
+ *
5
+ * @returns True if the viewport width is 768px or greater, false otherwise
6
+ */
7
+ export declare function useIsDesktopScreenWidth(): boolean;
@@ -0,0 +1,22 @@
1
+ import { useState, useEffect } from 'react';
2
+ /**
3
+ * Custom hook that detects whether the viewport width is desktop size (>= 768px).
4
+ * Listens to window resize events to update the state dynamically.
5
+ *
6
+ * @returns True if the viewport width is 768px or greater, false otherwise
7
+ */
8
+ export function useIsDesktopScreenWidth() {
9
+ const [isDesktop, setIsDesktop] = useState(false);
10
+ useEffect(() => {
11
+ const checkScreenSize = () => {
12
+ setIsDesktop(window.innerWidth >= 960);
13
+ };
14
+ checkScreenSize();
15
+ window.addEventListener('resize', checkScreenSize);
16
+ return () => {
17
+ window.removeEventListener('resize', checkScreenSize);
18
+ };
19
+ }, []);
20
+ return isDesktop;
21
+ }
22
+ //# sourceMappingURL=useIsDesktopScreenWidth.js.map