Skip to content

Commit 8c53d2d

Browse files
feat(js): rename class names (#351)
1 parent 25099e8 commit 8c53d2d

5 files changed

Lines changed: 36 additions & 56 deletions

File tree

examples/js/autocomplete.css

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,7 @@
4343
-webkit-appearance: none;
4444
}
4545

46-
.aa-Completion {
47-
color: #999;
48-
left: 1px;
49-
position: absolute;
50-
transform: translateY(50%);
51-
z-index: 1;
52-
}
53-
54-
.aa-Input,
55-
.aa-Completion {
46+
.aa-Input {
5647
padding: 0 2.25rem;
5748
}
5849

@@ -77,7 +68,7 @@
7768
z-index: 2;
7869
}
7970

80-
.aa-Dropdown {
71+
.aa-Panel {
8172
background-color: #fff;
8273
border: 1px solid rgba(150, 150, 150, 0.16);
8374
border-radius: 3px;
@@ -89,25 +80,24 @@
8980
width: 100%;
9081
}
9182

92-
.aa-Dropdown--stalled {
83+
.aa-Panel--stalled {
9384
filter: grayscale(1);
9485
opacity: 0.5;
9586
transition: opacity 200ms ease-in;
9687
}
9788

98-
.aa-Dropdown a {
89+
.aa-Panel a {
9990
color: inherit;
10091
text-decoration: none;
10192
}
10293

103-
.aa-Dropdown ul {
94+
.aa-Panel ul {
10495
list-style: none;
10596
margin: 0;
10697
padding: 0;
10798
}
10899

109100
.aa-Item {
110-
align-items: center;
111101
color: #23263b;
112102
cursor: pointer;
113103
display: flex;

packages/autocomplete-js/src/__tests__/autocomplete.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('autocomplete-js', () => {
4747
class="aa-InputWrapper"
4848
>
4949
<input
50-
aria-autocomplete="list"
50+
aria-autocomplete="both"
5151
aria-labelledby="autocomplete-label"
5252
autocapitalize="off"
5353
autocomplete="off"
@@ -109,7 +109,7 @@ describe('autocomplete-js', () => {
109109
</div>
110110
</form>
111111
<div
112-
class="aa-Dropdown"
112+
class="aa-Panel"
113113
hidden=""
114114
style="top: 0px; left: 0px; right: 0px; max-width: unset;"
115115
/>

packages/autocomplete-js/src/autocomplete.ts

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function autocomplete<TItem>({
3636
const form = document.createElement('form');
3737
const label = document.createElement('label');
3838
const resetButton = document.createElement('button');
39-
const dropdown = document.createElement('div');
39+
const panel = document.createElement('div');
4040

4141
const autocomplete = createAutocomplete<TItem>({
4242
...props,
@@ -51,13 +51,13 @@ export function autocomplete<TItem>({
5151
});
5252

5353
const onResize = debounce(() => {
54-
if (!dropdown.hasAttribute('hidden')) {
54+
if (!panel.hasAttribute('hidden')) {
5555
setDropdownPosition();
5656
}
5757
}, 100);
5858

5959
function setDropdownPosition() {
60-
setProperties(dropdown, {
60+
setProperties(panel, {
6161
style: getDropdownPositionStyle({
6262
dropdownPlacement,
6363
container: root,
@@ -70,7 +70,7 @@ export function autocomplete<TItem>({
7070
setProperties(window as any, {
7171
...autocomplete.getEnvironmentProps({
7272
searchBoxElement: form,
73-
dropdownElement: dropdown,
73+
dropdownElement: panel,
7474
inputElement: input,
7575
}),
7676
onResize,
@@ -85,9 +85,7 @@ export function autocomplete<TItem>({
8585
class: concatClassNames(['aa-Form', classNames.form]),
8686
});
8787
setProperties(inputWrapper, {
88-
class: ['aa-InputWrapper', classNames.inputWrapper]
89-
.filter(Boolean)
90-
.join(' '),
88+
class: concatClassNames(['aa-InputWrapper', classNames.inputWrapper]),
9189
});
9290
setProperties(input, {
9391
...autocomplete.getInputProps({ inputElement: input }),
@@ -104,10 +102,10 @@ export function autocomplete<TItem>({
104102
class: concatClassNames(['aa-ResetButton', classNames.resetButton]),
105103
innerHTML: resetIcon,
106104
});
107-
setProperties(dropdown, {
105+
setProperties(panel, {
108106
...autocomplete.getDropdownProps(),
109107
hidden: true,
110-
class: concatClassNames(['aa-Dropdown', classNames.dropdown]),
108+
class: concatClassNames(['aa-Panel', classNames.panel]),
111109
});
112110

113111
function render(state: AutocompleteCoreState<TItem>) {
@@ -117,23 +115,23 @@ export function autocomplete<TItem>({
117115
autocomplete.getInputProps({ inputElement: input })
118116
);
119117

120-
dropdown.innerHTML = '';
118+
panel.innerHTML = '';
121119

122120
if (state.isOpen) {
123-
setProperties(dropdown, {
121+
setProperties(panel, {
124122
hidden: false,
125123
});
126124
} else {
127-
setProperties(dropdown, {
125+
setProperties(panel, {
128126
hidden: true,
129127
});
130128
return;
131129
}
132130

133131
if (state.status === 'stalled') {
134-
dropdown.classList.add('aa-Dropdown--stalled');
132+
panel.classList.add('aa-panel--stalled');
135133
} else {
136-
dropdown.classList.remove('aa-Dropdown--stalled');
134+
panel.classList.remove('aa-panel--stalled');
137135
}
138136

139137
const sections = state.collections.map((collection) => {
@@ -142,16 +140,13 @@ export function autocomplete<TItem>({
142140

143141
const section = document.createElement('section');
144142
setProperties(section, {
145-
class: concatClassNames(['aa-Section', classNames.section]),
143+
class: concatClassNames(['aa-Source', classNames.source]),
146144
});
147145

148146
if (source.templates.header) {
149147
const header = document.createElement('div');
150148
setProperties(header, {
151-
class: concatClassNames([
152-
'aa-SectionHeader',
153-
classNames.sectionHeader,
154-
]),
149+
class: concatClassNames(['aa-SourceHeader', classNames.sourceHeader]),
155150
});
156151
renderTemplate(
157152
source.templates.header({ root: header, state }),
@@ -164,14 +159,14 @@ export function autocomplete<TItem>({
164159
const menu = document.createElement('ul');
165160
setProperties(menu, {
166161
...autocomplete.getMenuProps(),
167-
class: concatClassNames(['aa-Menu', classNames.menu]),
162+
class: concatClassNames(['aa-List', classNames.list]),
168163
});
169164

170165
const menuItems = items.map((item) => {
171166
const li = document.createElement('li');
172167
setProperties(li, {
173168
...autocomplete.getItemProps({ item, source }),
174-
class: concatClassNames(['aa-Item', classNames.item]),
169+
class: concatClassNames(['aa-Item', classNames.Item]),
175170
});
176171
renderTemplate(source.templates.item({ root: li, item, state }), li);
177172

@@ -188,10 +183,7 @@ export function autocomplete<TItem>({
188183
if (source.templates.footer) {
189184
const footer = document.createElement('div');
190185
setProperties(footer, {
191-
class: concatClassNames([
192-
'aa-SectionFooter',
193-
classNames.sectionFooter,
194-
]),
186+
class: concatClassNames(['aa-SourceFooter', classNames.sourceFooter]),
195187
});
196188
renderTemplate(
197189
source.templates.footer({ root: footer, state }),
@@ -203,15 +195,15 @@ export function autocomplete<TItem>({
203195
return section;
204196
});
205197

206-
renderDropdown({ root: dropdown, sections, state });
198+
renderDropdown({ root: panel, sections, state });
207199
}
208200

209201
inputWrapper.appendChild(input);
210202
inputWrapper.appendChild(label);
211203
inputWrapper.appendChild(resetButton);
212204
form.appendChild(inputWrapper);
213205
root.appendChild(form);
214-
root.appendChild(dropdown);
206+
root.appendChild(panel);
215207
containerElement.appendChild(root);
216208

217209
setDropdownPosition();

packages/autocomplete-js/src/types/index.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,13 @@ export interface AutocompleteOptions<TItem>
8282
label?: string;
8383
inputWrapper?: string;
8484
input?: string;
85-
completion?: string;
8685
resetButton?: string;
87-
dropdown?: string;
88-
section?: string;
89-
sectionHeader?: string;
90-
menu?: string;
86+
panel?: string;
87+
source?: string;
88+
sourceHeader?: string;
89+
list?: string;
9190
item?: string;
92-
sectionFooter?: string;
91+
sourceFooter?: string;
9392
};
9493
/**
9594
* Function called to render the autocomplete results. It is useful for rendering sections in different row or column layouts.

packages/website/docs/autocomplete-js.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,13 @@ type ClassNames = {
8888
label?: string;
8989
inputWrapper?: string;
9090
input?: string;
91-
completion?: string;
9291
resetButton?: string;
93-
dropdown?: string;
94-
section?: string;
95-
sectionHeader?: string;
96-
menu?: string;
92+
panel?: string;
93+
source?: string;
94+
sourceHeader?: string;
95+
list?: string;
9796
item?: string;
98-
sectionFooter?: string;
97+
sourceFooter?: string;
9998
};
10099
```
101100

0 commit comments

Comments
 (0)