Skip to content

Commit 14e3615

Browse files
committed
Add combobox docs
1 parent 718e49d commit 14e3615

File tree

4 files changed

+103
-5
lines changed

4 files changed

+103
-5
lines changed

src/components/examples/multi-select/ComboboxExample.astro

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,17 @@
22
33
---
44

5-
<vscode-multi-select filter="startsWith" id="combobox-example" combobox>
5+
<p>
6+
<label for="search-method">Search method:</label>
7+
<select name="search-method-selector" id="search-method-selector">
8+
<option value="contains">contains</option>
9+
<option value="fuzzy">fuzzy</option>
10+
<option value="startsWith">startsWith</option>
11+
<option value="startsWithPerTerm">startsWithPerTerm</option>
12+
</select>
13+
</p>
14+
15+
<vscode-multi-select id="combobox-example" combobox>
616
<vscode-option>Afghanistan</vscode-option>
717
<vscode-option>Albania</vscode-option>
818
<vscode-option>Algeria</vscode-option>
@@ -199,3 +209,19 @@
199209
<vscode-option>Zambia</vscode-option>
200210
<vscode-option>Zimbabwe</vscode-option>
201211
</vscode-multi-select>
212+
213+
<script>
214+
import type { SearchMethod } from "@vscode-elements/elements/dist/includes/vscode-select/types";
215+
import type { VscodeMultiSelect } from "@vscode-elements/elements/dist/vscode-multi-select";
216+
217+
const cb = document.querySelector<VscodeMultiSelect>("#combobox-example");
218+
const sl = document.querySelector<HTMLSelectElement>(
219+
"#search-method-selector"
220+
);
221+
222+
sl?.addEventListener("change", () => {
223+
cb!.filter = sl?.options[sl.selectedIndex].value as SearchMethod;
224+
});
225+
226+
cb!.filter = sl?.options[sl.selectedIndex].value as SearchMethod;
227+
</script>

src/components/examples/single-select/ComboboxExample.astro

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
---
2+
23
---
3-
<vscode-single-select filter="startsWithPerTerm" combobox>
4+
5+
<p>
6+
<label for="search-method">Search method:</label>
7+
<select name="search-method-selector" id="search-method-selector">
8+
<option value="contains">contains</option>
9+
<option value="fuzzy">fuzzy</option>
10+
<option value="startsWith">startsWith</option>
11+
<option value="startsWithPerTerm">startsWithPerTerm</option>
12+
</select>
13+
</p>
14+
15+
<vscode-single-select id="combobox-example" combobox>
416
<vscode-option>Afghanistan</vscode-option>
517
<vscode-option>Albania</vscode-option>
618
<vscode-option>Algeria</vscode-option>
@@ -196,4 +208,20 @@
196208
<vscode-option>Yemen</vscode-option>
197209
<vscode-option>Zambia</vscode-option>
198210
<vscode-option>Zimbabwe</vscode-option>
199-
</vscode-single-select>
211+
</vscode-single-select>
212+
213+
<script>
214+
import type { SearchMethod } from "@vscode-elements/elements/dist/includes/vscode-select/types";
215+
import type { VscodeSingleSelect } from "@vscode-elements/elements/dist/vscode-single-select";
216+
217+
const cb = document.querySelector<VscodeSingleSelect>("#combobox-example");
218+
const sl = document.querySelector<HTMLSelectElement>(
219+
"#search-method-selector"
220+
);
221+
222+
sl?.addEventListener("change", () => {
223+
cb!.filter = sl?.options[sl.selectedIndex].value as SearchMethod;
224+
});
225+
226+
cb!.filter = sl?.options[sl.selectedIndex].value as SearchMethod;
227+
</script>

src/content/components/multi-select.mdx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,34 @@ import Imports from "@components/examples/multi-select/Imports.astro";
4848
<ComboboxExample />
4949
<Fragment slot="html">
5050
```html
51-
<vscode-multi-select filter="startsWith" id="combobox-example" combobox>
51+
<p>
52+
<label for="search-method">Search method:</label>
53+
<select name="search-method-selector" id="search-method-selector">
54+
<option value="contains">contains</option>
55+
<option value="fuzzy">fuzzy</option>
56+
<option value="startsWith">startsWith</option>
57+
<option value="startsWithPerTerm">startsWithPerTerm</option>
58+
</select>
59+
</p>
60+
61+
<vscode-multi-select id="combobox-example" combobox>
5262
<vscode-option>Afghanistan</vscode-option>
5363
<vscode-option>Albania</vscode-option>
5464
<vscode-option>Algeria</vscode-option>
5565
...
5666
</vscode-multi-select>
5767
```
5868
</Fragment>
69+
<Fragment slot="js">
70+
```javascript
71+
const cb = document.querySelector("#combobox-example");
72+
const sl = document.querySelector("#search-method-selector");
73+
74+
sl.addEventListener("change", () => {
75+
cb.filter = sl.options[sl.selectedIndex].value;
76+
});
77+
78+
cb.filter = sl.options[sl.selectedIndex].value;
79+
```
80+
</Fragment>
5981
</Demo>

src/content/components/single-select.mdx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,33 @@ import Imports from "@components/examples/single-select/Imports.astro";
4242
<ComboboxExample />
4343
<Fragment slot="html">
4444
```html
45-
<vscode-single-select filter="fuzzy" combobox>
45+
<p>
46+
<label for="search-method">Search method:</label>
47+
<select name="search-method-selector" id="search-method-selector">
48+
<option value="contains">contains</option>
49+
<option value="fuzzy">fuzzy</option>
50+
<option value="startsWith">startsWith</option>
51+
<option value="startsWithPerTerm">startsWithPerTerm</option>
52+
</select>
53+
</p>
54+
55+
<vscode-single-select id="combobox-example" combobox>
4656
<vscode-option>Afghanistan</vscode-option>
4757
<vscode-option>Albania</vscode-option>
4858
...
4959
</vscode-single-select>
5060
```
5161
</Fragment>
62+
<Fragment slot="js">
63+
```javascript
64+
const cb = document.querySelector("#combobox-example");
65+
const sl = document.querySelector("#search-method-selector");
66+
67+
sl.addEventListener("change", () => {
68+
cb.filter = sl.options[sl.selectedIndex].value;
69+
});
70+
71+
cb.filter = sl.options[sl.selectedIndex].value;
72+
```
73+
</Fragment>
5274
</Demo>

0 commit comments

Comments
 (0)