@zendeskgarden/react-dropdowns 9.0.0-next.2 → 9.0.0-next.20
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/README.md +73 -69
- package/dist/esm/context/useComboboxContext.js +18 -0
- package/dist/esm/context/useFieldContext.js +18 -0
- package/dist/esm/context/useItemContext.js +18 -0
- package/dist/esm/context/useItemGroupContext.js +14 -0
- package/dist/esm/context/useMenuContext.js +18 -0
- package/dist/esm/context/useOptionContext.js +18 -0
- package/dist/esm/elements/combobox/Combobox.js +329 -0
- package/dist/esm/elements/combobox/Field.js +74 -0
- package/dist/esm/elements/combobox/Hint.js +56 -0
- package/dist/esm/elements/combobox/Label.js +67 -0
- package/dist/esm/elements/combobox/Listbox.js +154 -0
- package/dist/esm/elements/combobox/Message.js +62 -0
- package/dist/esm/elements/combobox/OptGroup.js +92 -0
- package/dist/esm/elements/combobox/Option.js +136 -0
- package/dist/esm/elements/combobox/OptionMeta.js +54 -0
- package/dist/esm/elements/combobox/Tag.js +97 -0
- package/dist/esm/elements/combobox/TagAvatar.js +13 -0
- package/dist/esm/elements/combobox/TagGroup.js +35 -0
- package/dist/esm/elements/combobox/utils.js +36 -0
- package/dist/esm/elements/menu/Item.js +141 -0
- package/dist/esm/elements/menu/ItemGroup.js +95 -0
- package/dist/esm/elements/menu/ItemMeta.js +54 -0
- package/dist/esm/elements/menu/Menu.js +126 -0
- package/dist/esm/elements/menu/MenuList.js +169 -0
- package/dist/esm/elements/menu/Separator.js +57 -0
- package/dist/esm/elements/menu/utils.js +55 -0
- package/dist/esm/index.js +19 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/check-lg-stroke.svg.js +28 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-down-stroke.svg.js +25 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-left-stroke.svg.js +25 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-right-stroke.svg.js +25 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/plus-stroke.svg.js +26 -0
- package/dist/esm/types/index.js +12 -0
- package/dist/esm/views/combobox/StyledCombobox.js +30 -0
- package/dist/esm/views/combobox/StyledContainer.js +22 -0
- package/dist/esm/views/combobox/StyledField.js +22 -0
- package/dist/esm/views/combobox/StyledFloatingListbox.js +27 -0
- package/dist/esm/views/combobox/StyledHint.js +23 -0
- package/dist/esm/views/combobox/StyledInput.js +47 -0
- package/dist/esm/views/combobox/StyledInputGroup.js +26 -0
- package/dist/esm/views/combobox/StyledInputIcon.js +62 -0
- package/dist/esm/views/combobox/StyledLabel.js +23 -0
- package/dist/esm/views/combobox/StyledListbox.js +31 -0
- package/dist/esm/views/combobox/StyledListboxSeparator.js +37 -0
- package/dist/esm/views/combobox/StyledMessage.js +23 -0
- package/dist/esm/views/combobox/StyledOptGroup.js +22 -0
- package/dist/esm/views/combobox/StyledOption.js +69 -0
- package/dist/esm/views/combobox/StyledOptionContent.js +22 -0
- package/dist/esm/views/combobox/StyledOptionIcon.js +51 -0
- package/dist/esm/views/combobox/StyledOptionMeta.js +39 -0
- package/dist/esm/views/combobox/StyledOptionTypeIcon.js +58 -0
- package/dist/esm/views/combobox/StyledTag.js +27 -0
- package/dist/esm/views/combobox/StyledTagsButton.js +34 -0
- package/dist/esm/views/combobox/StyledTrigger.js +125 -0
- package/dist/esm/views/combobox/StyledValue.js +39 -0
- package/dist/esm/views/menu/StyledFloatingMenu.js +23 -0
- package/dist/esm/views/menu/StyledItem.js +23 -0
- package/dist/esm/views/menu/StyledItemContent.js +23 -0
- package/dist/esm/views/menu/StyledItemGroup.js +23 -0
- package/dist/esm/views/menu/StyledItemIcon.js +23 -0
- package/dist/esm/views/menu/StyledItemMeta.js +23 -0
- package/dist/esm/views/menu/StyledItemTypeIcon.js +24 -0
- package/dist/esm/views/menu/StyledMenu.js +27 -0
- package/dist/esm/views/menu/StyledSeparator.js +23 -0
- package/dist/index.cjs.js +1778 -1761
- package/dist/typings/context/useComboboxContext.d.ts +25 -0
- package/dist/typings/context/useFieldContext.d.ts +32 -0
- package/dist/typings/context/useItemContext.d.ts +14 -0
- package/dist/typings/context/useItemGroupContext.d.ts +15 -0
- package/dist/typings/context/useMenuContext.d.ts +23 -0
- package/dist/typings/context/useOptionContext.d.ts +14 -0
- package/dist/typings/elements/{Combobox → combobox}/Combobox.d.ts +0 -2
- package/dist/typings/elements/{Fields → combobox}/Field.d.ts +8 -1
- package/dist/typings/elements/{Fields → combobox}/Hint.d.ts +2 -0
- package/dist/typings/elements/{Fields → combobox}/Label.d.ts +3 -1
- package/dist/typings/elements/{Menu/Items/MediaBody.d.ts → combobox/Listbox.d.ts} +2 -4
- package/dist/typings/elements/{Fields → combobox}/Message.d.ts +3 -1
- package/dist/typings/elements/{Menu/Items/HeaderItem.d.ts → combobox/OptGroup.d.ts} +2 -2
- package/dist/typings/elements/{Menu/Items/MediaItem.d.ts → combobox/Option.d.ts} +5 -2
- package/dist/typings/elements/{Menu/Items/HeaderIcon.d.ts → combobox/OptionMeta.d.ts} +1 -1
- package/dist/typings/elements/combobox/Tag.d.ts +15 -0
- package/dist/typings/elements/combobox/TagAvatar.d.ts +14 -0
- package/dist/typings/elements/combobox/TagGroup.d.ts +12 -0
- package/dist/typings/elements/combobox/utils.d.ts +30 -0
- package/dist/typings/elements/{Menu/Items → menu}/Item.d.ts +5 -2
- package/dist/typings/elements/{Menu/Items/AddItem.d.ts → menu/ItemGroup.d.ts} +2 -2
- package/dist/typings/elements/{Menu/Items → menu}/ItemMeta.d.ts +2 -2
- package/dist/typings/elements/{Menu → menu}/Menu.d.ts +0 -2
- package/dist/typings/elements/menu/MenuList.d.ts +12 -0
- package/dist/typings/elements/{Menu → menu}/Separator.d.ts +1 -1
- package/dist/typings/elements/menu/utils.d.ts +29 -0
- package/dist/typings/index.d.ts +18 -25
- package/dist/typings/types/index.d.ts +242 -121
- package/dist/typings/{styled/items/StyledItemIcon.d.ts → views/combobox/StyledCombobox.d.ts} +4 -6
- package/dist/typings/{styled/multiselect/StyledMultiselectItemWrapper.d.ts → views/combobox/StyledContainer.d.ts} +1 -1
- package/dist/typings/{styled/select/StyledSelect.d.ts → views/combobox/StyledField.d.ts} +1 -1
- package/dist/typings/views/combobox/StyledFloatingListbox.d.ts +18 -0
- package/dist/typings/views/combobox/StyledHint.d.ts +11 -0
- package/dist/typings/views/combobox/StyledInput.d.ts +20 -0
- package/dist/typings/{styled/items/StyledAddItem.d.ts → views/combobox/StyledInputGroup.d.ts} +2 -4
- package/dist/typings/views/combobox/StyledInputIcon.d.ts +20 -0
- package/dist/typings/views/combobox/StyledLabel.d.ts +11 -0
- package/dist/typings/views/combobox/StyledListbox.d.ts +17 -0
- package/dist/typings/{styled/items/StyledNextItem.d.ts → views/combobox/StyledListboxSeparator.d.ts} +2 -4
- package/dist/typings/views/combobox/StyledMessage.d.ts +11 -0
- package/dist/typings/views/combobox/StyledOptGroup.d.ts +14 -0
- package/dist/typings/views/combobox/StyledOption.d.ts +18 -0
- package/dist/typings/views/combobox/StyledOptionContent.d.ts +10 -0
- package/dist/typings/views/combobox/StyledOptionIcon.d.ts +17 -0
- package/dist/typings/views/combobox/StyledOptionMeta.d.ts +14 -0
- package/dist/typings/views/combobox/StyledOptionTypeIcon.d.ts +17 -0
- package/dist/typings/views/combobox/StyledTag.d.ts +17 -0
- package/dist/typings/views/combobox/StyledTagsButton.d.ts +16 -0
- package/dist/typings/views/combobox/StyledTrigger.d.ts +24 -0
- package/dist/typings/views/combobox/StyledValue.d.ts +21 -0
- package/dist/typings/views/index.d.ts +37 -0
- package/dist/typings/views/menu/StyledFloatingMenu.d.ts +13 -0
- package/dist/typings/{styled/items/StyledPreviousItem.d.ts → views/menu/StyledItem.d.ts} +4 -4
- package/dist/typings/views/menu/StyledItemContent.d.ts +13 -0
- package/dist/typings/views/menu/StyledItemGroup.d.ts +13 -0
- package/dist/typings/views/menu/StyledItemIcon.d.ts +14 -0
- package/dist/typings/{styled/items → views/menu}/StyledItemMeta.d.ts +5 -10
- package/dist/typings/views/menu/StyledItemTypeIcon.d.ts +14 -0
- package/dist/typings/views/menu/StyledMenu.d.ts +19 -0
- package/dist/typings/{styled → views}/menu/StyledSeparator.d.ts +7 -4
- package/package.json +20 -18
- package/dist/index.esm.js +0 -2032
- package/dist/typings/elements/Autocomplete/Autocomplete.d.ts +0 -14
- package/dist/typings/elements/Dropdown/Dropdown.d.ts +0 -26
- package/dist/typings/elements/Menu/Items/MediaFigure.d.ts +0 -11
- package/dist/typings/elements/Menu/Items/NextItem.d.ts +0 -12
- package/dist/typings/elements/Menu/Items/PreviousItem.d.ts +0 -12
- package/dist/typings/elements/Multiselect/Multiselect.d.ts +0 -14
- package/dist/typings/elements/Select/Select.d.ts +0 -14
- package/dist/typings/elements/Trigger/Trigger.d.ts +0 -24
- package/dist/typings/styled/index.d.ts +0 -29
- package/dist/typings/styled/items/StyledItem.d.ts +0 -20
- package/dist/typings/styled/items/StyledNextIcon.d.ts +0 -12
- package/dist/typings/styled/items/StyledPreviousIcon.d.ts +0 -12
- package/dist/typings/styled/items/header/StyledHeaderIcon.d.ts +0 -14
- package/dist/typings/styled/items/header/StyledHeaderItem.d.ts +0 -16
- package/dist/typings/styled/items/media/StyledMediaBody.d.ts +0 -17
- package/dist/typings/styled/items/media/StyledMediaFigure.d.ts +0 -287
- package/dist/typings/styled/items/media/StyledMediaItem.d.ts +0 -13
- package/dist/typings/styled/menu/StyledMenu.d.ts +0 -20
- package/dist/typings/styled/menu/StyledMenuWrapper.d.ts +0 -16
- package/dist/typings/styled/multiselect/StyledMultiselectInput.d.ts +0 -22
- package/dist/typings/styled/multiselect/StyledMultiselectItemsContainer.d.ts +0 -16
- package/dist/typings/styled/multiselect/StyledMultiselectMoreAnchor.d.ts +0 -15
- package/dist/typings/styled/select/StyledFauxInput.d.ts +0 -22
- package/dist/typings/styled/select/StyledInput.d.ts +0 -15
- package/dist/typings/utils/garden-placements.d.ts +0 -26
- package/dist/typings/utils/useDropdownContext.d.ts +0 -28
- package/dist/typings/utils/useFieldContext.d.ts +0 -17
- package/dist/typings/utils/useItemContext.d.ts +0 -16
- package/dist/typings/utils/useMenuContext.d.ts +0 -17
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default, { forwardRef, useRef, useState, useContext, useEffect } from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import { ThemeContext } from 'styled-components';
|
|
10
|
+
import { DEFAULT_THEME, getFloatingPlacements, getMenuPosition, getArrowPosition } from '@zendeskgarden/react-theming';
|
|
11
|
+
import { useFloating, platform, offset, autoPlacement, flip, size, autoUpdate } from '@floating-ui/react-dom';
|
|
12
|
+
import { PLACEMENT } from '../../types/index.js';
|
|
13
|
+
import '../../views/combobox/StyledCombobox.js';
|
|
14
|
+
import '../../views/combobox/StyledContainer.js';
|
|
15
|
+
import '../../views/combobox/StyledField.js';
|
|
16
|
+
import '../../views/combobox/StyledFloatingListbox.js';
|
|
17
|
+
import '../../views/combobox/StyledHint.js';
|
|
18
|
+
import '../../views/combobox/StyledInput.js';
|
|
19
|
+
import '../../views/combobox/StyledInputGroup.js';
|
|
20
|
+
import '../../views/combobox/StyledInputIcon.js';
|
|
21
|
+
import '../../views/combobox/StyledLabel.js';
|
|
22
|
+
import '../../views/combobox/StyledListbox.js';
|
|
23
|
+
import '../../views/combobox/StyledListboxSeparator.js';
|
|
24
|
+
import '../../views/combobox/StyledMessage.js';
|
|
25
|
+
import '../../views/combobox/StyledOptGroup.js';
|
|
26
|
+
import '../../views/combobox/StyledOption.js';
|
|
27
|
+
import '../../views/combobox/StyledOptionContent.js';
|
|
28
|
+
import '../../views/combobox/StyledOptionIcon.js';
|
|
29
|
+
import '../../views/combobox/StyledOptionMeta.js';
|
|
30
|
+
import '../../views/combobox/StyledOptionTypeIcon.js';
|
|
31
|
+
import '../../views/combobox/StyledTag.js';
|
|
32
|
+
import '../../views/combobox/StyledTagsButton.js';
|
|
33
|
+
import '../../views/combobox/StyledTrigger.js';
|
|
34
|
+
import '../../views/combobox/StyledValue.js';
|
|
35
|
+
import { StyledMenu } from '../../views/menu/StyledMenu.js';
|
|
36
|
+
import { StyledFloatingMenu } from '../../views/menu/StyledFloatingMenu.js';
|
|
37
|
+
import '../../views/menu/StyledItem.js';
|
|
38
|
+
import '../../views/menu/StyledItemContent.js';
|
|
39
|
+
import '../../views/menu/StyledItemGroup.js';
|
|
40
|
+
import '../../views/menu/StyledItemIcon.js';
|
|
41
|
+
import '../../views/menu/StyledItemMeta.js';
|
|
42
|
+
import '../../views/menu/StyledItemTypeIcon.js';
|
|
43
|
+
import '../../views/menu/StyledSeparator.js';
|
|
44
|
+
import { createPortal } from 'react-dom';
|
|
45
|
+
|
|
46
|
+
const PLACEMENT_DEFAULT = 'bottom-start';
|
|
47
|
+
const MenuList = forwardRef((_ref, ref) => {
|
|
48
|
+
let {
|
|
49
|
+
appendToNode,
|
|
50
|
+
hasArrow,
|
|
51
|
+
isCompact,
|
|
52
|
+
isExpanded,
|
|
53
|
+
fallbackPlacements: _fallbackPlacements,
|
|
54
|
+
maxHeight,
|
|
55
|
+
minHeight,
|
|
56
|
+
placement: _placement,
|
|
57
|
+
triggerRef,
|
|
58
|
+
zIndex,
|
|
59
|
+
children,
|
|
60
|
+
...props
|
|
61
|
+
} = _ref;
|
|
62
|
+
const floatingRef = useRef(null);
|
|
63
|
+
const [isVisible, setIsVisible] = useState(isExpanded);
|
|
64
|
+
const [height, setHeight] = useState();
|
|
65
|
+
const theme = useContext(ThemeContext) || DEFAULT_THEME;
|
|
66
|
+
const [floatingPlacement, fallbackPlacements] = getFloatingPlacements(theme, _placement === 'auto' ? PLACEMENT_DEFAULT : _placement, _fallbackPlacements);
|
|
67
|
+
const {
|
|
68
|
+
refs,
|
|
69
|
+
placement,
|
|
70
|
+
update,
|
|
71
|
+
floatingStyles: {
|
|
72
|
+
transform
|
|
73
|
+
}
|
|
74
|
+
} = useFloating({
|
|
75
|
+
platform: {
|
|
76
|
+
...platform,
|
|
77
|
+
isRTL: () => theme.rtl
|
|
78
|
+
},
|
|
79
|
+
elements: {
|
|
80
|
+
reference: triggerRef?.current,
|
|
81
|
+
floating: floatingRef?.current
|
|
82
|
+
},
|
|
83
|
+
placement: floatingPlacement,
|
|
84
|
+
middleware: [offset(theme.space.base * (hasArrow ? 2 : 1)), _placement === 'auto' ? autoPlacement() : flip({
|
|
85
|
+
fallbackPlacements
|
|
86
|
+
}), size({
|
|
87
|
+
apply: _ref2 => {
|
|
88
|
+
let {
|
|
89
|
+
rects,
|
|
90
|
+
availableHeight
|
|
91
|
+
} = _ref2;
|
|
92
|
+
if (!(minHeight === null || minHeight === 'fit-content')) {
|
|
93
|
+
if (rects.floating.height > availableHeight) {
|
|
94
|
+
setHeight(availableHeight);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
})]
|
|
99
|
+
});
|
|
100
|
+
useEffect(() => {
|
|
101
|
+
let cleanup;
|
|
102
|
+
if (isExpanded && refs.reference.current && refs.floating.current) {
|
|
103
|
+
cleanup = autoUpdate(refs.reference.current, refs.floating.current, update, {
|
|
104
|
+
elementResize: typeof ResizeObserver === 'function'
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return () => cleanup && cleanup();
|
|
108
|
+
}, [isExpanded, refs.reference, refs.floating, update]);
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
let timeout;
|
|
111
|
+
if (isExpanded) {
|
|
112
|
+
setIsVisible(true);
|
|
113
|
+
} else {
|
|
114
|
+
timeout = setTimeout(() => {
|
|
115
|
+
setIsVisible(false);
|
|
116
|
+
setHeight(undefined);
|
|
117
|
+
}, 200 );
|
|
118
|
+
}
|
|
119
|
+
return () => clearTimeout(timeout);
|
|
120
|
+
}, [isExpanded]);
|
|
121
|
+
useEffect(() => {
|
|
122
|
+
if (height) {
|
|
123
|
+
setHeight(undefined);
|
|
124
|
+
update();
|
|
125
|
+
}
|
|
126
|
+
}, [
|
|
127
|
+
children, update]);
|
|
128
|
+
const Node = React__default.createElement(StyledFloatingMenu, {
|
|
129
|
+
"data-garden-animate": isVisible,
|
|
130
|
+
isHidden: !isExpanded,
|
|
131
|
+
position: getMenuPosition(placement),
|
|
132
|
+
zIndex: zIndex,
|
|
133
|
+
style: {
|
|
134
|
+
transform
|
|
135
|
+
},
|
|
136
|
+
ref: floatingRef
|
|
137
|
+
}, React__default.createElement(StyledMenu, Object.assign({
|
|
138
|
+
"data-garden-animate-arrow": isVisible,
|
|
139
|
+
arrowPosition: hasArrow ? getArrowPosition(theme, placement) : undefined,
|
|
140
|
+
isCompact: isCompact,
|
|
141
|
+
minHeight: minHeight,
|
|
142
|
+
maxHeight: maxHeight,
|
|
143
|
+
style: {
|
|
144
|
+
height
|
|
145
|
+
}
|
|
146
|
+
}, props, {
|
|
147
|
+
ref: ref
|
|
148
|
+
}), isVisible && children));
|
|
149
|
+
return appendToNode ? createPortal(Node, appendToNode) : Node;
|
|
150
|
+
});
|
|
151
|
+
MenuList.displayName = 'MenuList';
|
|
152
|
+
MenuList.propTypes = {
|
|
153
|
+
appendToNode: PropTypes.any,
|
|
154
|
+
hasArrow: PropTypes.bool,
|
|
155
|
+
isCompact: PropTypes.bool,
|
|
156
|
+
isExpanded: PropTypes.bool,
|
|
157
|
+
maxHeight: PropTypes.string,
|
|
158
|
+
minHeight: PropTypes.string,
|
|
159
|
+
placement: PropTypes.oneOf(PLACEMENT),
|
|
160
|
+
triggerRef: PropTypes.any,
|
|
161
|
+
zIndex: PropTypes.number
|
|
162
|
+
};
|
|
163
|
+
MenuList.defaultProps = {
|
|
164
|
+
maxHeight: '400px',
|
|
165
|
+
placement: PLACEMENT_DEFAULT,
|
|
166
|
+
zIndex: 1000
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export { MenuList };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default, { forwardRef } from 'react';
|
|
8
|
+
import '../../views/combobox/StyledCombobox.js';
|
|
9
|
+
import '../../views/combobox/StyledContainer.js';
|
|
10
|
+
import '../../views/combobox/StyledField.js';
|
|
11
|
+
import '../../views/combobox/StyledFloatingListbox.js';
|
|
12
|
+
import '../../views/combobox/StyledHint.js';
|
|
13
|
+
import '../../views/combobox/StyledInput.js';
|
|
14
|
+
import '../../views/combobox/StyledInputGroup.js';
|
|
15
|
+
import '../../views/combobox/StyledInputIcon.js';
|
|
16
|
+
import '../../views/combobox/StyledLabel.js';
|
|
17
|
+
import '../../views/combobox/StyledListbox.js';
|
|
18
|
+
import '../../views/combobox/StyledListboxSeparator.js';
|
|
19
|
+
import '../../views/combobox/StyledMessage.js';
|
|
20
|
+
import '../../views/combobox/StyledOptGroup.js';
|
|
21
|
+
import '../../views/combobox/StyledOption.js';
|
|
22
|
+
import '../../views/combobox/StyledOptionContent.js';
|
|
23
|
+
import '../../views/combobox/StyledOptionIcon.js';
|
|
24
|
+
import '../../views/combobox/StyledOptionMeta.js';
|
|
25
|
+
import '../../views/combobox/StyledOptionTypeIcon.js';
|
|
26
|
+
import '../../views/combobox/StyledTag.js';
|
|
27
|
+
import '../../views/combobox/StyledTagsButton.js';
|
|
28
|
+
import '../../views/combobox/StyledTrigger.js';
|
|
29
|
+
import '../../views/combobox/StyledValue.js';
|
|
30
|
+
import '../../views/menu/StyledMenu.js';
|
|
31
|
+
import '../../views/menu/StyledFloatingMenu.js';
|
|
32
|
+
import '../../views/menu/StyledItem.js';
|
|
33
|
+
import '../../views/menu/StyledItemContent.js';
|
|
34
|
+
import '../../views/menu/StyledItemGroup.js';
|
|
35
|
+
import '../../views/menu/StyledItemIcon.js';
|
|
36
|
+
import '../../views/menu/StyledItemMeta.js';
|
|
37
|
+
import '../../views/menu/StyledItemTypeIcon.js';
|
|
38
|
+
import { StyledSeparator } from '../../views/menu/StyledSeparator.js';
|
|
39
|
+
import useMenuContext from '../../context/useMenuContext.js';
|
|
40
|
+
|
|
41
|
+
const Separator = forwardRef(
|
|
42
|
+
(_ref, ref) => {
|
|
43
|
+
let {
|
|
44
|
+
children,
|
|
45
|
+
...props
|
|
46
|
+
} = _ref;
|
|
47
|
+
const {
|
|
48
|
+
getSeparatorProps
|
|
49
|
+
} = useMenuContext();
|
|
50
|
+
const separatorProps = getSeparatorProps();
|
|
51
|
+
return React__default.createElement(StyledSeparator, Object.assign({}, props, separatorProps, {
|
|
52
|
+
ref: ref
|
|
53
|
+
}));
|
|
54
|
+
});
|
|
55
|
+
Separator.displayName = 'Separator';
|
|
56
|
+
|
|
57
|
+
export { Separator };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import { Children, isValidElement } from 'react';
|
|
8
|
+
|
|
9
|
+
const toItem = props => ({
|
|
10
|
+
value: props.value,
|
|
11
|
+
label: props.label,
|
|
12
|
+
...(props.name && {
|
|
13
|
+
name: props.name
|
|
14
|
+
}),
|
|
15
|
+
...(props.isDisabled && {
|
|
16
|
+
disabled: props.isDisabled
|
|
17
|
+
}),
|
|
18
|
+
...(props.isSelected && {
|
|
19
|
+
selected: props.isSelected
|
|
20
|
+
}),
|
|
21
|
+
...(props.selectionType && {
|
|
22
|
+
type: props.selectionType
|
|
23
|
+
}),
|
|
24
|
+
...(props.type === 'next' && {
|
|
25
|
+
isNext: true
|
|
26
|
+
}),
|
|
27
|
+
...(props.type === 'previous' && {
|
|
28
|
+
isPrevious: true
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
const toItems = (children, type) => Children.toArray(children).reduce((items, item) => {
|
|
32
|
+
const retVal = items;
|
|
33
|
+
if ( isValidElement(item)) {
|
|
34
|
+
if ('value' in item.props) {
|
|
35
|
+
retVal.push(toItem({
|
|
36
|
+
...item.props,
|
|
37
|
+
selectionType: type
|
|
38
|
+
}));
|
|
39
|
+
} else {
|
|
40
|
+
const props = item.props;
|
|
41
|
+
const groupLabel = props.legend || props['aria-label'];
|
|
42
|
+
const isSelectableGroup = props.type && ['checkbox', 'radio'].includes(props.type);
|
|
43
|
+
if (groupLabel || isSelectableGroup) {
|
|
44
|
+
const groupItems = toItems(props.children, props.type);
|
|
45
|
+
retVal.push({
|
|
46
|
+
label: props.legend || props['aria-label'],
|
|
47
|
+
items: groupItems
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return retVal;
|
|
53
|
+
}, []);
|
|
54
|
+
|
|
55
|
+
export { toItem, toItems };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
export { Combobox } from './elements/combobox/Combobox.js';
|
|
8
|
+
export { Field } from './elements/combobox/Field.js';
|
|
9
|
+
export { Hint } from './elements/combobox/Hint.js';
|
|
10
|
+
export { Label } from './elements/combobox/Label.js';
|
|
11
|
+
export { Message } from './elements/combobox/Message.js';
|
|
12
|
+
export { Option } from './elements/combobox/Option.js';
|
|
13
|
+
export { OptGroup } from './elements/combobox/OptGroup.js';
|
|
14
|
+
export { Tag } from './elements/combobox/Tag.js';
|
|
15
|
+
export { Menu } from './elements/menu/Menu.js';
|
|
16
|
+
export { ItemGroup } from './elements/menu/ItemGroup.js';
|
|
17
|
+
export { Item } from './elements/menu/Item.js';
|
|
18
|
+
export { Separator } from './elements/menu/Separator.js';
|
|
19
|
+
export { VALIDATION } from '@zendeskgarden/react-forms';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
|
|
9
|
+
var _path;
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
var SvgCheckLgStroke = function SvgCheckLgStroke(props) {
|
|
12
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
width: 16,
|
|
15
|
+
height: 16,
|
|
16
|
+
focusable: "false",
|
|
17
|
+
viewBox: "0 0 16 16",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
20
|
+
fill: "none",
|
|
21
|
+
stroke: "currentColor",
|
|
22
|
+
strokeLinecap: "round",
|
|
23
|
+
strokeLinejoin: "round",
|
|
24
|
+
d: "M1 9l4 4L15 3"
|
|
25
|
+
})));
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { SvgCheckLgStroke as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
|
|
9
|
+
var _path;
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
var SvgChevronDownStroke = function SvgChevronDownStroke(props) {
|
|
12
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
width: 16,
|
|
15
|
+
height: 16,
|
|
16
|
+
focusable: "false",
|
|
17
|
+
viewBox: "0 0 16 16",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
d: "M12.688 5.61a.5.5 0 01.69.718l-.066.062-5 4a.5.5 0 01-.542.054l-.082-.054-5-4a.5.5 0 01.55-.83l.074.05L8 9.359l4.688-3.75z"
|
|
22
|
+
})));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { SvgChevronDownStroke as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
|
|
9
|
+
var _path;
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
var SvgChevronLeftStroke = function SvgChevronLeftStroke(props) {
|
|
12
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
width: 16,
|
|
15
|
+
height: 16,
|
|
16
|
+
focusable: "false",
|
|
17
|
+
viewBox: "0 0 16 16",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
d: "M10.39 12.688a.5.5 0 01-.718.69l-.062-.066-4-5a.5.5 0 01-.054-.542l.054-.082 4-5a.5.5 0 01.83.55l-.05.074L6.641 8l3.75 4.688z"
|
|
22
|
+
})));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { SvgChevronLeftStroke as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
|
|
9
|
+
var _path;
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
var SvgChevronRightStroke = function SvgChevronRightStroke(props) {
|
|
12
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
width: 16,
|
|
15
|
+
height: 16,
|
|
16
|
+
focusable: "false",
|
|
17
|
+
viewBox: "0 0 16 16",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
d: "M5.61 3.312a.5.5 0 01.718-.69l.062.066 4 5a.5.5 0 01.054.542l-.054.082-4 5a.5.5 0 01-.83-.55l.05-.074L9.359 8l-3.75-4.688z"
|
|
22
|
+
})));
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export { SvgChevronRightStroke as default };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
|
|
9
|
+
var _path;
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
11
|
+
var SvgPlusStroke = function SvgPlusStroke(props) {
|
|
12
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
width: 16,
|
|
15
|
+
height: 16,
|
|
16
|
+
focusable: "false",
|
|
17
|
+
viewBox: "0 0 16 16",
|
|
18
|
+
"aria-hidden": "true"
|
|
19
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
20
|
+
stroke: "currentColor",
|
|
21
|
+
strokeLinecap: "round",
|
|
22
|
+
d: "M7.5 2.5v12m6-6h-12"
|
|
23
|
+
})));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { SvgPlusStroke as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import { PLACEMENT as PLACEMENT$1 } from '@zendeskgarden/react-theming';
|
|
8
|
+
|
|
9
|
+
const OPTION_TYPE = ['add', 'danger', 'next', 'previous'];
|
|
10
|
+
const PLACEMENT = ['auto', ...PLACEMENT$1];
|
|
11
|
+
|
|
12
|
+
export { OPTION_TYPE, PLACEMENT };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { StyledLabel } from './StyledLabel.js';
|
|
10
|
+
import { StyledHint } from './StyledHint.js';
|
|
11
|
+
import { StyledMessage } from './StyledMessage.js';
|
|
12
|
+
|
|
13
|
+
const COMPONENT_ID = 'dropdowns.combobox';
|
|
14
|
+
const sizeStyles = props => {
|
|
15
|
+
const minWidth = `${props.isCompact ? 100 : 144}px`;
|
|
16
|
+
const marginTop = `${props.theme.space.base * (props.isCompact ? 1 : 2)}px`;
|
|
17
|
+
return css(["min-width:", ";", ":not([hidden]) + &&,", " + &&,", " + &&,&& + ", ",&& + ", "{margin-top:", ";}"], minWidth, StyledLabel, StyledHint, StyledMessage, StyledHint, StyledMessage, marginTop);
|
|
18
|
+
};
|
|
19
|
+
const StyledCombobox = styled.div.attrs({
|
|
20
|
+
'data-garden-id': COMPONENT_ID,
|
|
21
|
+
'data-garden-version': '9.0.0-next.20'
|
|
22
|
+
}).withConfig({
|
|
23
|
+
displayName: "StyledCombobox",
|
|
24
|
+
componentId: "sc-13eybg8-0"
|
|
25
|
+
})(["", ";", ";"], sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
26
|
+
StyledCombobox.defaultProps = {
|
|
27
|
+
theme: DEFAULT_THEME
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { StyledCombobox };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'dropdowns.combobox.container';
|
|
11
|
+
const StyledContainer = styled.div.attrs({
|
|
12
|
+
'data-garden-id': COMPONENT_ID,
|
|
13
|
+
'data-garden-version': '9.0.0-next.20'
|
|
14
|
+
}).withConfig({
|
|
15
|
+
displayName: "StyledContainer",
|
|
16
|
+
componentId: "sc-14i9jid-0"
|
|
17
|
+
})(["display:flex;", ";"], props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
18
|
+
StyledContainer.defaultProps = {
|
|
19
|
+
theme: DEFAULT_THEME
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { StyledContainer };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'dropdowns.combobox.field';
|
|
11
|
+
const StyledField = styled.div.attrs({
|
|
12
|
+
'data-garden-id': COMPONENT_ID,
|
|
13
|
+
'data-garden-version': '9.0.0-next.20'
|
|
14
|
+
}).withConfig({
|
|
15
|
+
displayName: "StyledField",
|
|
16
|
+
componentId: "sc-zc57xl-0"
|
|
17
|
+
})(["direction:", ";", ";"], props => props.theme.rtl ? 'rtl' : 'ltr', props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
18
|
+
StyledField.defaultProps = {
|
|
19
|
+
theme: DEFAULT_THEME
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { StyledField };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { menuStyles, retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'dropdowns.combobox.floating';
|
|
11
|
+
const StyledFloatingListbox = styled.div.attrs({
|
|
12
|
+
'data-garden-id': COMPONENT_ID,
|
|
13
|
+
'data-garden-version': '9.0.0-next.20'
|
|
14
|
+
}).withConfig({
|
|
15
|
+
displayName: "StyledFloatingListbox",
|
|
16
|
+
componentId: "sc-1cp6spf-0"
|
|
17
|
+
})(["top:0;left:0;", ";", ";"], props => menuStyles(props.position, {
|
|
18
|
+
theme: props.theme,
|
|
19
|
+
hidden: props.isHidden,
|
|
20
|
+
animationModifier: '[data-garden-animate="true"]',
|
|
21
|
+
zIndex: props.zIndex
|
|
22
|
+
}), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
23
|
+
StyledFloatingListbox.defaultProps = {
|
|
24
|
+
theme: DEFAULT_THEME
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { StyledFloatingListbox };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
import { Field } from '@zendeskgarden/react-forms';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'dropdowns.combobox.hint';
|
|
12
|
+
const StyledHint = styled(Field.Hint).attrs({
|
|
13
|
+
'data-garden-id': COMPONENT_ID,
|
|
14
|
+
'data-garden-version': '9.0.0-next.20'
|
|
15
|
+
}).withConfig({
|
|
16
|
+
displayName: "StyledHint",
|
|
17
|
+
componentId: "sc-106qvqx-0"
|
|
18
|
+
})(["", ";"], props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
19
|
+
StyledHint.defaultProps = {
|
|
20
|
+
theme: DEFAULT_THEME
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { StyledHint };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { hideVisually, math } from 'polished';
|
|
9
|
+
import { retrieveComponentStyles, DEFAULT_THEME, getColor, getLineHeight } from '@zendeskgarden/react-theming';
|
|
10
|
+
|
|
11
|
+
const COMPONENT_ID = 'dropdowns.combobox.input';
|
|
12
|
+
const colorStyles = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
theme
|
|
15
|
+
} = _ref;
|
|
16
|
+
const placeholderColor = getColor({
|
|
17
|
+
theme,
|
|
18
|
+
variable: 'foreground.disabled'
|
|
19
|
+
});
|
|
20
|
+
return css(["background-color:inherit;color:inherit;&::placeholder{opacity:1;color:", ";}"], placeholderColor);
|
|
21
|
+
};
|
|
22
|
+
const getHeight = props => {
|
|
23
|
+
if (props.isBare && !props.isMultiselectable) {
|
|
24
|
+
return props.theme.space.base * 5;
|
|
25
|
+
}
|
|
26
|
+
return props.theme.space.base * (props.isCompact ? 5 : 8);
|
|
27
|
+
};
|
|
28
|
+
const sizeStyles = props => {
|
|
29
|
+
const height = props.theme.space.base * 5;
|
|
30
|
+
const fontSize = props.theme.fontSizes.md;
|
|
31
|
+
const lineHeight = getLineHeight(height, fontSize);
|
|
32
|
+
const margin = math(`${props.theme.shadowWidths.sm} + ${(getHeight(props) - height) / 2}`);
|
|
33
|
+
const minWidth = `${props.theme.space.base * 8}px`;
|
|
34
|
+
return css(["min-width:", ";height:", "px;line-height:", ";font-size:", ";&&{margin-top:", ";margin-bottom:", ";}"], minWidth, height, lineHeight, fontSize, margin, margin);
|
|
35
|
+
};
|
|
36
|
+
const StyledInput = styled.input.attrs({
|
|
37
|
+
'data-garden-id': COMPONENT_ID,
|
|
38
|
+
'data-garden-version': '9.0.0-next.20'
|
|
39
|
+
}).withConfig({
|
|
40
|
+
displayName: "StyledInput",
|
|
41
|
+
componentId: "sc-1lkqdg-0"
|
|
42
|
+
})(["flex-basis:0;flex-grow:1;border:none;padding:0;font-family:inherit;&:focus{outline:none;}", ";", ";&[hidden]{display:revert;", "}&[aria-hidden='true']{display:none;}", ";"], sizeStyles, colorStyles, props => props.isEditable && hideVisually(), props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
43
|
+
StyledInput.defaultProps = {
|
|
44
|
+
theme: DEFAULT_THEME
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { StyledInput, getHeight, sizeStyles };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import styled, { css } from 'styled-components';
|
|
8
|
+
import { retrieveComponentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming';
|
|
9
|
+
|
|
10
|
+
const COMPONENT_ID = 'dropdowns.combobox.input_group';
|
|
11
|
+
const sizeStyles = props => {
|
|
12
|
+
const margin = props.theme.shadowWidths.sm;
|
|
13
|
+
return css(["margin:-", ";min-width:0;& > *{margin:", ";}"], margin, margin);
|
|
14
|
+
};
|
|
15
|
+
const StyledInputGroup = styled.div.attrs({
|
|
16
|
+
'data-garden-id': COMPONENT_ID,
|
|
17
|
+
'data-garden-version': '9.0.0-next.20'
|
|
18
|
+
}).withConfig({
|
|
19
|
+
displayName: "StyledInputGroup",
|
|
20
|
+
componentId: "sc-yx3q7u-0"
|
|
21
|
+
})(["display:flex;flex-grow:1;flex-wrap:wrap;", ";", ";"], sizeStyles, props => retrieveComponentStyles(COMPONENT_ID, props));
|
|
22
|
+
StyledInputGroup.defaultProps = {
|
|
23
|
+
theme: DEFAULT_THEME
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { StyledInputGroup };
|