@mongodb-js/compass-components 0.17.0 → 1.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.
- package/lib/components/editor.d.ts +2 -1
- package/lib/components/editor.d.ts.map +1 -1
- package/lib/components/editor.js +34 -5
- package/lib/components/editor.js.map +1 -1
- package/lib/components/leafy-green/combobox/chip.d.ts +4 -0
- package/lib/components/leafy-green/combobox/chip.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/chip.js +182 -0
- package/lib/components/leafy-green/combobox/chip.js.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-context.d.ts +15 -0
- package/lib/components/leafy-green/combobox/combobox-context.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-context.js +12 -0
- package/lib/components/leafy-green/combobox/combobox-context.js.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-group.d.ts +9 -0
- package/lib/components/leafy-green/combobox/combobox-group.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-group.js +69 -0
- package/lib/components/leafy-green/combobox/combobox-group.js.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-option.d.ts +10 -0
- package/lib/components/leafy-green/combobox/combobox-option.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-option.js +142 -0
- package/lib/components/leafy-green/combobox/combobox-option.js.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-types.d.ts +94 -0
- package/lib/components/leafy-green/combobox/combobox-types.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/combobox-types.js +36 -0
- package/lib/components/leafy-green/combobox/combobox-types.js.map +1 -0
- package/lib/components/leafy-green/combobox/combobox.d.ts +4 -0
- package/lib/components/leafy-green/combobox/combobox.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/combobox.js +725 -0
- package/lib/components/leafy-green/combobox/combobox.js.map +1 -0
- package/lib/components/leafy-green/combobox/combobox.styles.d.ts +38 -0
- package/lib/components/leafy-green/combobox/combobox.styles.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/combobox.styles.js +292 -0
- package/lib/components/leafy-green/combobox/combobox.styles.js.map +1 -0
- package/lib/components/leafy-green/combobox/index.d.ts +4 -0
- package/lib/components/leafy-green/combobox/index.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/index.js +13 -0
- package/lib/components/leafy-green/combobox/index.js.map +1 -0
- package/lib/components/leafy-green/combobox/util.d.ts +27 -0
- package/lib/components/leafy-green/combobox/util.d.ts.map +1 -0
- package/lib/components/leafy-green/combobox/util.js +65 -0
- package/lib/components/leafy-green/combobox/util.js.map +1 -0
- package/lib/components/more-options-toggle.d.ts.map +1 -1
- package/lib/components/more-options-toggle.js +1 -1
- package/lib/components/more-options-toggle.js.map +1 -1
- package/lib/components/placeholder.d.ts +5 -4
- package/lib/components/placeholder.d.ts.map +1 -1
- package/lib/components/placeholder.js +3 -1
- package/lib/components/placeholder.js.map +1 -1
- package/lib/components/resizeable-sidebar.d.ts +8 -0
- package/lib/components/resizeable-sidebar.d.ts.map +1 -0
- package/lib/components/resizeable-sidebar.js +84 -0
- package/lib/components/resizeable-sidebar.js.map +1 -0
- package/lib/components/spin-loader.d.ts +2 -1
- package/lib/components/spin-loader.d.ts.map +1 -1
- package/lib/components/spin-loader.js +2 -2
- package/lib/components/spin-loader.js.map +1 -1
- package/lib/constants/mongodb-ace-theme-query.d.ts +1 -1
- package/lib/constants/mongodb-ace-theme-query.js +2 -2
- package/lib/hooks/use-theme.d.ts +2 -1
- package/lib/hooks/use-theme.d.ts.map +1 -1
- package/lib/hooks/use-theme.js +2 -1
- package/lib/hooks/use-theme.js.map +1 -1
- package/lib/index.d.ts +5 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -2
- package/lib/index.js.map +1 -1
- package/package.json +19 -12
|
@@ -22,13 +22,14 @@ declare const EditorVariant: {
|
|
|
22
22
|
declare type EditorProps = {
|
|
23
23
|
variant: keyof typeof EditorVariant;
|
|
24
24
|
text?: string;
|
|
25
|
+
id?: string;
|
|
25
26
|
options?: Omit<IAceOptions, 'readOnly'>;
|
|
26
27
|
readOnly?: boolean;
|
|
27
28
|
completer?: unknown;
|
|
28
29
|
'data-testid'?: string;
|
|
29
30
|
onChangeText?: (text: string, event?: any) => void;
|
|
30
31
|
} & Omit<IAceEditorProps, 'onChange' | 'value'>;
|
|
31
|
-
declare function Editor({ text, variant, options, readOnly, onChangeText, completer, onFocus, 'data-testid': dataTestId, ...aceProps }: EditorProps): React.ReactElement;
|
|
32
|
+
declare function Editor({ text, variant, options, readOnly, id, onChangeText, completer, onFocus, 'data-testid': dataTestId, ...aceProps }: EditorProps): React.ReactElement;
|
|
32
33
|
declare function setEditorValue(element: HTMLElement, value: string): void;
|
|
33
34
|
declare const EditorTextCompleter: any;
|
|
34
35
|
export { Editor, EditorVariant, EditorTextCompleter, setEditorValue };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/components/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/components/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAYvD,OAAO,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,8CAA8C,CAAC;AACtD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,oCAAoC,CAAC;AAE5C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAiB9C,QAAA,MAAM,aAAa;;;;CAIT,CAAC;AAEX,aAAK,WAAW,GAAG;IACjB,OAAO,EAAE,MAAM,OAAO,aAAa,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACpD,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;AAEhD,iBAAS,MAAM,CAAC,EACd,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,EAAE,EACF,YAAY,EACZ,SAAS,EACT,OAAO,EACP,aAAa,EAAE,UAAU,EACzB,GAAG,QAAQ,EACZ,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAuDlC;AAUD,iBAAS,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED,QAAA,MAAM,mBAAmB,KAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC"}
|
package/lib/components/editor.js
CHANGED
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.setEditorValue = exports.EditorTextCompleter = exports.EditorVariant = exports.Editor = void 0;
|
|
7
|
-
const react_1 =
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
8
31
|
const utils_1 = require("@react-aria/utils");
|
|
9
32
|
if (typeof window === 'undefined' && typeof globalThis !== 'undefined') {
|
|
10
33
|
globalThis.window = {};
|
|
@@ -42,7 +65,7 @@ const EditorVariant = {
|
|
|
42
65
|
Generic: 'Generic',
|
|
43
66
|
};
|
|
44
67
|
exports.EditorVariant = EditorVariant;
|
|
45
|
-
function Editor({ text, variant, options, readOnly, onChangeText, completer, onFocus, 'data-testid': dataTestId, ...aceProps }) {
|
|
68
|
+
function Editor({ text, variant, options, readOnly, id, onChangeText, completer, onFocus, 'data-testid': dataTestId, ...aceProps }) {
|
|
46
69
|
var _a;
|
|
47
70
|
const setOptions = {
|
|
48
71
|
...DEFAULT_OPTIONS,
|
|
@@ -51,12 +74,18 @@ function Editor({ text, variant, options, readOnly, onChangeText, completer, onF
|
|
|
51
74
|
...(variant === 'Shell' && { mode: 'ace/mode/mongodb' }),
|
|
52
75
|
...(!!completer && { enableLiveAutocompletion: true }),
|
|
53
76
|
};
|
|
54
|
-
const
|
|
55
|
-
|
|
77
|
+
const editorRef = (0, react_1.useRef)(null);
|
|
78
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
79
|
+
if (id && editorRef.current) {
|
|
80
|
+
editorRef.current.editor.textInput.getElement().id = id;
|
|
81
|
+
}
|
|
82
|
+
}, [id]);
|
|
83
|
+
const editorName = (0, utils_1.useId)();
|
|
84
|
+
const editor = (react_1.default.createElement(react_ace_1.default, { ref: (ref) => (editorRef.current = ref), mode: variant === 'Generic'
|
|
56
85
|
? undefined
|
|
57
86
|
: variant === 'EJSON'
|
|
58
87
|
? 'json'
|
|
59
|
-
: 'javascript', theme: "mongodb", width: "100%", value: text, onChange: onChangeText, editorProps: { $blockScrolling: Infinity }, setOptions: setOptions, readOnly: readOnly, commands: ext_beautify_1.default.commands, name: (_a = aceProps.name) !== null && _a !== void 0 ? _a :
|
|
88
|
+
: 'javascript', theme: "mongodb", width: "100%", value: text, onChange: onChangeText, editorProps: { $blockScrolling: Infinity }, setOptions: setOptions, readOnly: readOnly, commands: ext_beautify_1.default.commands, name: (_a = aceProps.name) !== null && _a !== void 0 ? _a : editorName, ...aceProps, onFocus: (ev) => {
|
|
60
89
|
if (completer) {
|
|
61
90
|
ext_language_tools_1.default.setCompleters([completer]);
|
|
62
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/components/editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/components/editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/chip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAmGhE,eAAO,MAAM,IAAI,mFAyHhB,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Chip = void 0;
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const icon_1 = __importDefault(require("@leafygreen-ui/icon"));
|
|
32
|
+
const combobox_context_1 = require("./combobox-context");
|
|
33
|
+
const emotion_1 = require("@leafygreen-ui/emotion");
|
|
34
|
+
const palette_1 = require("@leafygreen-ui/palette");
|
|
35
|
+
const inline_definition_1 = __importDefault(require("@leafygreen-ui/inline-definition"));
|
|
36
|
+
const lib_1 = require("@leafygreen-ui/lib");
|
|
37
|
+
const util_1 = require("./util");
|
|
38
|
+
const chipWrapperStyle = ({ darkMode, size, }) => {
|
|
39
|
+
let chipModeStyle, chipSizeStyle;
|
|
40
|
+
if (darkMode) {
|
|
41
|
+
chipModeStyle = (0, emotion_1.css) ``;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
chipModeStyle = (0, emotion_1.css) `
|
|
45
|
+
--lg-combobox-chip-text-color: ${palette_1.uiColors.gray.dark3};
|
|
46
|
+
--lg-combobox-chip-icon-color: ${palette_1.uiColors.gray.dark2};
|
|
47
|
+
--lg-combobox-chip-background-color: ${palette_1.uiColors.gray.light2};
|
|
48
|
+
--lg-combobox-chip-hover-color: ${palette_1.uiColors.gray.light1};
|
|
49
|
+
--lg-combobox-chip-focus-color: ${palette_1.uiColors.blue.light2};
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
52
|
+
switch (size) {
|
|
53
|
+
case 'default':
|
|
54
|
+
chipSizeStyle = (0, emotion_1.css) `
|
|
55
|
+
--lg-combobox-chip-height: 24px;
|
|
56
|
+
--lg-combobox-chip-border-radius: 4px;
|
|
57
|
+
--lg-combobox-chip-font-size: 14px;
|
|
58
|
+
--lg-combobox-chip-line-height: 20px;
|
|
59
|
+
--lg-combobox-chip-padding-x: 6px;
|
|
60
|
+
`;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
return (0, emotion_1.cx)(chipModeStyle, chipSizeStyle, (0, emotion_1.css) `
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
white-space: nowrap;
|
|
68
|
+
height: var(--lg-combobox-chip-height);
|
|
69
|
+
font-size: var(--lg-combobox-chip-font-size);
|
|
70
|
+
line-height: var(--lg-combobox-chip-line-height);
|
|
71
|
+
border-radius: var(--lg-combobox-chip-border-radius);
|
|
72
|
+
color: var(--lg-combobox-chip-text-color);
|
|
73
|
+
background-color: var(--lg-combobox-chip-background-color);
|
|
74
|
+
|
|
75
|
+
// TODO - refine these styles
|
|
76
|
+
/* &:focus, */
|
|
77
|
+
&:focus-within {
|
|
78
|
+
background-color: var(--lg-combobox-chip-focus-color);
|
|
79
|
+
}
|
|
80
|
+
`);
|
|
81
|
+
};
|
|
82
|
+
const chipText = (0, emotion_1.css) `
|
|
83
|
+
padding-inline: var(--lg-combobox-chip-padding-x);
|
|
84
|
+
`;
|
|
85
|
+
const chipButton = (0, emotion_1.css) `
|
|
86
|
+
position: relative;
|
|
87
|
+
display: flex;
|
|
88
|
+
align-items: center;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
height: 100%;
|
|
91
|
+
width: 100%;
|
|
92
|
+
outline: none;
|
|
93
|
+
border: none;
|
|
94
|
+
background-color: transparent;
|
|
95
|
+
color: var(--lg-combobox-chip-icon-color);
|
|
96
|
+
cursor: pointer;
|
|
97
|
+
transition: background-color 100ms ease-in-out;
|
|
98
|
+
|
|
99
|
+
&:before {
|
|
100
|
+
content: '';
|
|
101
|
+
position: absolute;
|
|
102
|
+
top: 0;
|
|
103
|
+
left: 0;
|
|
104
|
+
height: 100%;
|
|
105
|
+
width: 1px;
|
|
106
|
+
background-color: var(--lg-combobox-chip-hover-color);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
&:hover {
|
|
110
|
+
background-color: var(--lg-combobox-chip-hover-color);
|
|
111
|
+
}
|
|
112
|
+
`;
|
|
113
|
+
exports.Chip = react_1.default.forwardRef(({ displayName, isFocused, onRemove, onFocus }, forwardedRef) => {
|
|
114
|
+
const { darkMode, size, disabled, chipTruncationLocation, chipCharacterLimit = 12, } = (0, react_1.useContext)(combobox_context_1.ComboboxContext);
|
|
115
|
+
const isTruncated = !!chipCharacterLimit &&
|
|
116
|
+
!!chipTruncationLocation &&
|
|
117
|
+
chipTruncationLocation !== 'none' &&
|
|
118
|
+
displayName.length > chipCharacterLimit;
|
|
119
|
+
const buttonRef = (0, react_1.useRef)(null);
|
|
120
|
+
const truncatedName = (0, react_1.useMemo)(() => {
|
|
121
|
+
if (isTruncated) {
|
|
122
|
+
const ellipsis = '…';
|
|
123
|
+
const chars = chipCharacterLimit - 3;
|
|
124
|
+
switch (chipTruncationLocation) {
|
|
125
|
+
case 'start': {
|
|
126
|
+
const end = displayName
|
|
127
|
+
.substring(displayName.length - chars)
|
|
128
|
+
.trim();
|
|
129
|
+
return ellipsis + end;
|
|
130
|
+
}
|
|
131
|
+
case 'middle': {
|
|
132
|
+
const start = displayName.substring(0, chars / 2).trim();
|
|
133
|
+
const end = displayName
|
|
134
|
+
.substring(displayName.length - chars / 2)
|
|
135
|
+
.trim();
|
|
136
|
+
return start + ellipsis + end;
|
|
137
|
+
}
|
|
138
|
+
case 'end': {
|
|
139
|
+
const start = displayName.substring(0, chars).trim();
|
|
140
|
+
return start + ellipsis;
|
|
141
|
+
}
|
|
142
|
+
default: {
|
|
143
|
+
return displayName;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
}, [chipCharacterLimit, chipTruncationLocation, displayName, isTruncated]);
|
|
149
|
+
(0, react_1.useEffect)(() => {
|
|
150
|
+
var _a;
|
|
151
|
+
if (isFocused && !disabled) {
|
|
152
|
+
(_a = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
153
|
+
}
|
|
154
|
+
}, [disabled, forwardedRef, isFocused]);
|
|
155
|
+
const handleKeyDown = (e) => {
|
|
156
|
+
if (!disabled &&
|
|
157
|
+
(e.keyCode === util_1.keyMap.Delete ||
|
|
158
|
+
e.keyCode === util_1.keyMap.Backspace ||
|
|
159
|
+
e.keyCode === util_1.keyMap.Enter ||
|
|
160
|
+
e.keyCode === util_1.keyMap.Space)) {
|
|
161
|
+
onRemove();
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const handleChipClick = (e) => {
|
|
165
|
+
var _a;
|
|
166
|
+
if (!((_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
|
|
167
|
+
onFocus();
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const handleButtonClick = () => {
|
|
171
|
+
if (!disabled) {
|
|
172
|
+
onRemove();
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
const dataProp = (0, lib_1.createDataProp)('combobox-chip');
|
|
176
|
+
return (react_1.default.createElement("span", { role: "option", "aria-selected": isFocused, "data-test-id": "lg-combobox-chip", ...dataProp.prop, ref: forwardedRef, className: chipWrapperStyle({ darkMode, size }), onClick: handleChipClick, tabIndex: -1 },
|
|
177
|
+
react_1.default.createElement("span", { className: chipText }, truncatedName ? (react_1.default.createElement(inline_definition_1.default, { definition: displayName, align: "bottom" }, truncatedName)) : (displayName)),
|
|
178
|
+
react_1.default.createElement("button", { "aria-label": `Deselect ${displayName}`, "aria-disabled": disabled, disabled: disabled, ref: buttonRef, className: chipButton, onClick: handleButtonClick, onKeyDown: handleKeyDown },
|
|
179
|
+
react_1.default.createElement(icon_1.default, { glyph: "X" }))));
|
|
180
|
+
});
|
|
181
|
+
exports.Chip.displayName = 'Chip';
|
|
182
|
+
//# sourceMappingURL=chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.js","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/chip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { ComboboxSize, TrunctationLocation } from './combobox-types';
|
|
3
|
+
interface ComboboxData {
|
|
4
|
+
multiselect: boolean;
|
|
5
|
+
darkMode: boolean;
|
|
6
|
+
size: keyof typeof ComboboxSize;
|
|
7
|
+
withIcons: boolean;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
chipTruncationLocation?: TrunctationLocation;
|
|
10
|
+
chipCharacterLimit?: number;
|
|
11
|
+
inputValue?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const ComboboxContext: import("react").Context<ComboboxData>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=combobox-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-context.d.ts","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/combobox-context.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,UAAU,YAAY;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,OAAO,YAAY,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,uCAM1B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComboboxContext = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
exports.ComboboxContext = (0, react_1.createContext)({
|
|
6
|
+
multiselect: false,
|
|
7
|
+
darkMode: false,
|
|
8
|
+
size: 'default',
|
|
9
|
+
withIcons: false,
|
|
10
|
+
disabled: false,
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=combobox-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-context.js","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/combobox-context.tsx"],"names":[],"mappings":";;;AAAA,iCAAsC;AAczB,QAAA,eAAe,GAAG,IAAA,qBAAa,EAAe;IACzD,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { ComboboxGroupProps } from './combobox-types';
|
|
3
|
+
export declare function InternalComboboxGroup({ label, className, children, }: ComboboxGroupProps): JSX.Element;
|
|
4
|
+
declare function ComboboxGroup(): JSX.Element;
|
|
5
|
+
declare namespace ComboboxGroup {
|
|
6
|
+
var displayName: string;
|
|
7
|
+
}
|
|
8
|
+
export default ComboboxGroup;
|
|
9
|
+
//# sourceMappingURL=combobox-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-group.d.ts","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/combobox-group.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA4B3D,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAkBlC;AAID,iBAAwB,aAAa,IAAI,GAAG,CAAC,OAAO,CAEnD;kBAFuB,aAAa;;;eAAb,aAAa"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.InternalComboboxGroup = void 0;
|
|
27
|
+
const emotion_1 = require("@leafygreen-ui/emotion");
|
|
28
|
+
const hooks_1 = require("@leafygreen-ui/hooks");
|
|
29
|
+
const palette_1 = require("@leafygreen-ui/palette");
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
31
|
+
const combobox_context_1 = require("./combobox-context");
|
|
32
|
+
const comboboxGroupStyle = (darkMode) => (0, emotion_1.css) `
|
|
33
|
+
--lg-combobox-group-label-color: ${darkMode
|
|
34
|
+
? palette_1.uiColors.gray.light1
|
|
35
|
+
: palette_1.uiColors.gray.dark1};
|
|
36
|
+
--lg-combobox-group-border-color: ${darkMode
|
|
37
|
+
? palette_1.uiColors.gray.dark1
|
|
38
|
+
: palette_1.uiColors.gray.light1};
|
|
39
|
+
padding-top: 8px;
|
|
40
|
+
border-bottom: 1px solid var(--lg-combobox-group-border-color);
|
|
41
|
+
`;
|
|
42
|
+
const comboboxGroupLabel = (0, emotion_1.css) `
|
|
43
|
+
cursor: default;
|
|
44
|
+
width: 100%;
|
|
45
|
+
padding: 0 12px 2px;
|
|
46
|
+
outline: none;
|
|
47
|
+
overflow-wrap: anywhere;
|
|
48
|
+
font-size: 12px;
|
|
49
|
+
line-height: 16px;
|
|
50
|
+
font-weight: bold;
|
|
51
|
+
text-transform: uppercase;
|
|
52
|
+
letter-spacing: 0.4px;
|
|
53
|
+
color: var(--lg-combobox-group-label-color);
|
|
54
|
+
`;
|
|
55
|
+
function InternalComboboxGroup({ label, className, children, }) {
|
|
56
|
+
const { darkMode } = (0, react_1.useContext)(combobox_context_1.ComboboxContext);
|
|
57
|
+
const groupId = (0, hooks_1.useIdAllocator)({ prefix: 'combobox-group' });
|
|
58
|
+
const childCount = react_1.default.Children.count(children);
|
|
59
|
+
return childCount > 0 ? (react_1.default.createElement("div", { className: (0, emotion_1.cx)(comboboxGroupStyle(darkMode), className) },
|
|
60
|
+
react_1.default.createElement("div", { className: comboboxGroupLabel, id: groupId }, label),
|
|
61
|
+
react_1.default.createElement("div", { role: "group", "aria-labelledby": groupId }, children))) : (react_1.default.createElement(react_1.default.Fragment, null));
|
|
62
|
+
}
|
|
63
|
+
exports.InternalComboboxGroup = InternalComboboxGroup;
|
|
64
|
+
ComboboxGroup.displayName = 'ComboboxGroup';
|
|
65
|
+
function ComboboxGroup() {
|
|
66
|
+
throw Error('`ComboboxGroup` must be a child of a `Combobox` instance');
|
|
67
|
+
}
|
|
68
|
+
exports.default = ComboboxGroup;
|
|
69
|
+
//# sourceMappingURL=combobox-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-group.js","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/combobox-group.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAiD;AACjD,gDAAsD;AACtD,oDAAkD;AAClD,+CAA0C;AAE1C,yDAAqD;AAErD,MAAM,kBAAkB,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAA,aAAG,EAAA;qCAChB,QAAQ;IACzC,CAAC,CAAC,kBAAQ,CAAC,IAAI,CAAC,MAAM;IACtB,CAAC,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK;sCACa,QAAQ;IAC1C,CAAC,CAAC,kBAAQ,CAAC,IAAI,CAAC,KAAK;IACrB,CAAC,CAAC,kBAAQ,CAAC,IAAI,CAAC,MAAM;;;CAGzB,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAA,aAAG,EAAA;;;;;;;;;;;;CAY7B,CAAC;AAEF,SAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,SAAS,EACT,QAAQ,GACW;IACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,kBAAU,EAAC,kCAAe,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,IAAA,sBAAc,EAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CACtB,uCAAK,SAAS,EAAE,IAAA,YAAE,EAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QACzD,uCAAK,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,OAAO,IAC5C,KAAK,CACF;QACN,uCAAK,IAAI,EAAC,OAAO,qBAAkB,OAAO,IACvC,QAAQ,CACL,CACF,CACP,CAAC,CAAC,CAAC,CACF,6DAAK,CACN,CAAC;AACJ,CAAC;AAtBD,sDAsBC;AAED,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAE5C,SAAwB,aAAa;IACnC,MAAM,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC1E,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { InternalComboboxOptionProps } from './combobox-types';
|
|
3
|
+
declare const InternalComboboxOption: React.ForwardRefExoticComponent<InternalComboboxOptionProps & React.RefAttributes<HTMLLIElement>>;
|
|
4
|
+
export { InternalComboboxOption };
|
|
5
|
+
declare function ComboboxOption(): JSX.Element;
|
|
6
|
+
declare namespace ComboboxOption {
|
|
7
|
+
var displayName: string;
|
|
8
|
+
}
|
|
9
|
+
export default ComboboxOption;
|
|
10
|
+
//# sourceMappingURL=combobox-option.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-option.d.ts","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/combobox-option.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AA+DpE,QAAA,MAAM,sBAAsB,mGAwH3B,CAAC;AAGF,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,iBAAwB,cAAc,IAAI,GAAG,CAAC,OAAO,CAEpD;kBAFuB,cAAc;;;eAAd,cAAc"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.InternalComboboxOption = void 0;
|
|
30
|
+
const emotion_1 = require("@leafygreen-ui/emotion");
|
|
31
|
+
const react_1 = __importStar(require("react"));
|
|
32
|
+
const palette_1 = require("@leafygreen-ui/palette");
|
|
33
|
+
const lib_1 = require("@leafygreen-ui/lib");
|
|
34
|
+
const hooks_1 = require("@leafygreen-ui/hooks");
|
|
35
|
+
const checkbox_1 = __importDefault(require("@leafygreen-ui/checkbox"));
|
|
36
|
+
const icon_1 = __importStar(require("@leafygreen-ui/icon"));
|
|
37
|
+
const combobox_context_1 = require("./combobox-context");
|
|
38
|
+
const util_1 = require("./util");
|
|
39
|
+
const comboboxOptionStyle = () => (0, emotion_1.css) `
|
|
40
|
+
position: relative;
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: space-between;
|
|
44
|
+
list-style: none;
|
|
45
|
+
color: inherit;
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
font-size: var(--lg-combobox-item-font-size);
|
|
49
|
+
line-height: var(--lg-combobox-item-line-height);
|
|
50
|
+
padding: var(--lg-combobox-item-padding-y) var(--lg-combobox-item-padding-x);
|
|
51
|
+
|
|
52
|
+
&:before {
|
|
53
|
+
content: '';
|
|
54
|
+
position: absolute;
|
|
55
|
+
left: 0;
|
|
56
|
+
width: 3px;
|
|
57
|
+
height: var(--lg-combobox-item-wedge-height);
|
|
58
|
+
background-color: transparent;
|
|
59
|
+
border-radius: 0 2px 2px 0;
|
|
60
|
+
transform: scaleY(0.3);
|
|
61
|
+
transition: 150ms ease-in-out;
|
|
62
|
+
transition-property: transform, background-color;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&:hover {
|
|
66
|
+
outline: none;
|
|
67
|
+
background-color: var(--lg-combobox-item-hover-color);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&[aria-selected='true'] {
|
|
71
|
+
outline: none;
|
|
72
|
+
background-color: var(--lg-combobox-item-active-color);
|
|
73
|
+
|
|
74
|
+
&:before {
|
|
75
|
+
background-color: var(--lg-combobox-item-wedge-color);
|
|
76
|
+
transform: scaleY(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
const flexSpan = (0, emotion_1.css) `
|
|
81
|
+
display: inline-flex;
|
|
82
|
+
gap: 8px;
|
|
83
|
+
justify-content: start;
|
|
84
|
+
align-items: inherit;
|
|
85
|
+
`;
|
|
86
|
+
const displayNameStyle = (isSelected) => (0, emotion_1.css) `
|
|
87
|
+
font-weight: ${isSelected ? 'bold' : 'normal'};
|
|
88
|
+
`;
|
|
89
|
+
const InternalComboboxOption = react_1.default.forwardRef(({ displayName, glyph, isSelected, isFocused, setSelected, className, }, forwardedRef) => {
|
|
90
|
+
const { multiselect, darkMode, withIcons, inputValue } = (0, react_1.useContext)(combobox_context_1.ComboboxContext);
|
|
91
|
+
const optionTextId = (0, hooks_1.useIdAllocator)({ prefix: 'combobox-option-text' });
|
|
92
|
+
const optionRef = (0, hooks_1.useForwardedRef)(forwardedRef, null);
|
|
93
|
+
const handleOptionClick = (0, react_1.useCallback)((e) => {
|
|
94
|
+
e.stopPropagation();
|
|
95
|
+
if (e.target === optionRef.current ||
|
|
96
|
+
e.target.tagName === 'INPUT' ||
|
|
97
|
+
e.target.tagName === 'SPAN') {
|
|
98
|
+
setSelected();
|
|
99
|
+
}
|
|
100
|
+
}, [optionRef, setSelected]);
|
|
101
|
+
const renderedIcon = (0, react_1.useMemo)(() => {
|
|
102
|
+
if (glyph) {
|
|
103
|
+
if ((0, icon_1.isComponentGlyph)(glyph) || (0, lib_1.isComponentType)(glyph, 'Icon')) {
|
|
104
|
+
return glyph;
|
|
105
|
+
}
|
|
106
|
+
console.error('`ComboboxOption` instance did not render icon because it is not a known glyph element.', glyph);
|
|
107
|
+
}
|
|
108
|
+
}, [glyph]);
|
|
109
|
+
const renderedChildren = (0, react_1.useMemo)(() => {
|
|
110
|
+
if (multiselect) {
|
|
111
|
+
const checkbox = (react_1.default.createElement(checkbox_1.default, { label: "", "aria-labelledby": optionTextId, checked: isSelected, tabIndex: -1, animate: false }));
|
|
112
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
113
|
+
react_1.default.createElement("span", { className: flexSpan },
|
|
114
|
+
withIcons ? renderedIcon : checkbox,
|
|
115
|
+
react_1.default.createElement("span", { id: optionTextId, className: displayNameStyle(isSelected) }, (0, util_1.wrapJSX)(displayName, inputValue, 'strong'))),
|
|
116
|
+
withIcons && checkbox));
|
|
117
|
+
}
|
|
118
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
119
|
+
react_1.default.createElement("span", { className: flexSpan },
|
|
120
|
+
renderedIcon,
|
|
121
|
+
react_1.default.createElement("span", { className: displayNameStyle(isSelected) }, (0, util_1.wrapJSX)(displayName, inputValue, 'strong'))),
|
|
122
|
+
isSelected && (react_1.default.createElement(icon_1.default, { glyph: "Checkmark", color: darkMode ? palette_1.uiColors.blue.light1 : palette_1.uiColors.blue.base }))));
|
|
123
|
+
}, [
|
|
124
|
+
multiselect,
|
|
125
|
+
renderedIcon,
|
|
126
|
+
isSelected,
|
|
127
|
+
displayName,
|
|
128
|
+
inputValue,
|
|
129
|
+
darkMode,
|
|
130
|
+
optionTextId,
|
|
131
|
+
withIcons,
|
|
132
|
+
]);
|
|
133
|
+
return (react_1.default.createElement("li", { ref: optionRef, role: "option", "aria-selected": isFocused, "aria-label": displayName, tabIndex: -1, className: (0, emotion_1.cx)(comboboxOptionStyle(), className), onClick: handleOptionClick, onKeyPress: handleOptionClick }, renderedChildren));
|
|
134
|
+
});
|
|
135
|
+
exports.InternalComboboxOption = InternalComboboxOption;
|
|
136
|
+
InternalComboboxOption.displayName = 'ComboboxOption';
|
|
137
|
+
function ComboboxOption() {
|
|
138
|
+
throw Error('`ComboboxOption` must be a child of a `Combobox` instance');
|
|
139
|
+
}
|
|
140
|
+
exports.default = ComboboxOption;
|
|
141
|
+
ComboboxOption.displayName = 'ComboboxOption';
|
|
142
|
+
//# sourceMappingURL=combobox-option.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-option.js","sourceRoot":"","sources":["../../../../src/components/leafy-green/combobox/combobox-option.tsx"],"names":[],"mappings":"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"}
|