Skip to content

Commit 50b89f8

Browse files
committed
fix(core): remove deprecations
Signed-off-by: Cory Rylan <crylan@nvidia.com>
1 parent a867d59 commit 50b89f8

75 files changed

Lines changed: 473 additions & 735 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading

projects/core/build/icons.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,6 @@ export const ICON_IMPORTS = {\n${sortIconKeys(Object.keys(icons))
8888
8989
export type IconName = keyof typeof ICON_IMPORTS;
9090
91-
/** @deprecated */
92-
export type IconNames = IconName;
93-
9491
export const ICON_NAMES = Object.keys(ICON_IMPORTS) as IconName[];
9592
`,
9693
{ encoding: 'utf-8' },

projects/core/src/accordion/accordion-header.css

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,9 @@
1414
justify-content: space-between;
1515
align-items: center;
1616
gap: var(--nve-ref-space-xs);
17+
}
1718

18-
::slotted([slot='title']) {
19-
margin: 0;
20-
font-size: var(--nve-ref-font-size-200);
21-
font-weight: var(--nve-ref-font-weight-medium);
22-
}
23-
24-
::slotted([slot='subtitle']) {
25-
margin: 0;
26-
font-size: var(--nve-ref-font-size-100);
27-
font-weight: var(--nve-ref-font-weight-regular);
28-
color: var(--nve-sys-text-muted-color);
29-
}
30-
31-
::part(icon-button) {
32-
--width: var(--nve-ref-size-400);
33-
--height: var(--nve-ref-size-400);
34-
}
35-
36-
#titles {
37-
display: flex;
38-
flex-direction: column;
39-
gap: var(--nve-ref-space-xxxs);
40-
}
41-
42-
#actions {
43-
display: flex;
44-
flex-direction: row;
45-
gap: var(--nve-ref-space-xs);
46-
margin-inline-start: auto;
47-
}
19+
slot:not([name]) {
20+
display: block;
21+
flex: 1;
4822
}

projects/core/src/accordion/accordion.css

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,6 @@
3636
padding: var(--header-padding);
3737
}
3838

39-
[internal-host].has-action #header {
40-
flex-direction: row-reverse;
41-
justify-content: start;
42-
gap: var(--nve-ref-space-xxs);
43-
}
44-
4539
#content {
4640
display: block;
4741
height: 0;

projects/core/src/accordion/accordion.examples.ts

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export const Default = {
1919
<nve-accordion-group behavior-expand>
2020
<nve-accordion>
2121
<nve-accordion-header>
22-
<h2 nve-text="heading xs medium" slot="prefix">Workspace Settings</h2>
22+
<h2 nve-text="heading xs medium">Workspace Settings</h2>
2323
</nve-accordion-header>
2424
<nve-accordion-content>Adjust workspace preferences and project configurations to customize your experience.</nve-accordion-content>
2525
</nve-accordion>
@@ -196,26 +196,6 @@ export const NestedOpenEvent = {
196196
`
197197
};
198198

199-
/**
200-
* @summary Legacy slot patterns (title, subtitle, actions) for backward compatibility. Deprecated in favor of prefix/suffix slots for more flexible content layout, but maintained to support existing implementations during migration.
201-
* @tags test-case
202-
*/
203-
export const DeprecatedSlots = {
204-
/* eslint-disable @nvidia-elements/lint/no-deprecated-slots */
205-
/* eslint-disable @nvidia-elements/lint/no-unexpected-slot-value */
206-
render: () => html`
207-
<nve-accordion behavior-expand>
208-
<nve-accordion-header>
209-
<div slot="title">Project Details</div>
210-
<div slot="subtitle">Last modified today</div>
211-
<nve-icon-button container="flat" icon-name="add" size="sm" slot="actions"></nve-icon-button>
212-
<nve-icon-button container="flat" icon-name="delete" size="sm" slot="actions"></nve-icon-button>
213-
</nve-accordion-header>
214-
<nve-accordion-content>Adjust workspace preferences and project configurations to customize your experience.</nve-accordion-content>
215-
</nve-accordion>
216-
`
217-
};
218-
219199
/**
220200
* @summary Basic accordion component for collapsible content sections with expand/collapse functionality.
221201
* @tags test-case
@@ -254,4 +234,4 @@ export const Multiple = {
254234
</nve-accordion>
255235
</nve-accordion-group>
256236
`
257-
};
237+
};

projects/core/src/accordion/accordion.snippets.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template name="Accordion" prefix="accordion" description="Basic accordion with title and content slot." type="pattern">
22
<nve-accordion behavior-expand container="${1:flat}">
33
<nve-accordion-header>
4-
<div slot="title">${2:Title}</div>
4+
<div>${2:Title}</div>
55
</nve-accordion-header>
66

77
<nve-accordion-content> ${3:Content} </nve-accordion-content>
@@ -16,10 +16,10 @@
1616
type="pattern">
1717
<nve-accordion behavior-expand container="${1:flat}">
1818
<nve-accordion-header>
19-
<div slot="title">${2:Title}</div>
19+
<div>${2:Title}</div>
2020

21-
<nve-icon-button container="flat" icon-name="${3:add}" size="sm" slot="actions"></nve-icon-button>
22-
<nve-icon-button container="flat" icon-name="${4:delete}" size="sm" slot="actions"></nve-icon-button>
21+
<nve-icon-button container="flat" icon-name="${3:add}" size="sm" slot="suffix"></nve-icon-button>
22+
<nve-icon-button container="flat" icon-name="${4:delete}" size="sm" slot="suffix"></nve-icon-button>
2323
</nve-accordion-header>
2424

2525
<nve-accordion-content> ${5:Content} </nve-accordion-content>
@@ -35,23 +35,23 @@
3535
<nve-accordion-group behavior-expand-single container="${1:flat}">
3636
<nve-accordion>
3737
<nve-accordion-header>
38-
<div slot="title">${2:Title}</div>
38+
<div>${2:Title}</div>
3939
</nve-accordion-header>
4040

4141
<nve-accordion-content> ${3:Content} </nve-accordion-content>
4242
</nve-accordion>
4343

4444
<nve-accordion>
4545
<nve-accordion-header>
46-
<div slot="title">${4:Title}</div>
46+
<div>${4:Title}</div>
4747
</nve-accordion-header>
4848

4949
<nve-accordion-content> ${5:Content} </nve-accordion-content>
5050
</nve-accordion>
5151

5252
<nve-accordion>
5353
<nve-accordion-header>
54-
<div slot="title">${6:Title}</div>
54+
<div>${6:Title}</div>
5555
</nve-accordion-header>
5656

5757
<nve-accordion-content> ${7:Content} </nve-accordion-content>

projects/core/src/accordion/accordion.test.ts

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -249,15 +249,13 @@ describe(`${Accordion.metadata.tag} - Actions`, () => {
249249
let fixture: HTMLElement;
250250
let element: Accordion;
251251

252-
/* eslint-disable @nvidia-elements/lint/no-deprecated-slots */
253-
/* eslint-disable @nvidia-elements/lint/no-unexpected-slot-value */
254252
beforeEach(async () => {
255253
fixture = await createFixture(html`
256254
<nve-accordion-group>
257255
<nve-accordion>
258256
<nve-accordion-header>
259257
heading
260-
<nve-icon-button container="flat" icon-name="add" size="sm" slot="actions"></nve-icon-button>
258+
<nve-icon-button container="flat" icon-name="add" size="sm" slot="suffix"></nve-icon-button>
261259
</nve-accordion-header>
262260
<nve-accordion-content>content</nve-accordion-content>
263261
</nve-accordion>
@@ -271,16 +269,45 @@ describe(`${Accordion.metadata.tag} - Actions`, () => {
271269
removeFixture(fixture);
272270
});
273271

274-
it('should align caret icon button to left side if an action is provided by consumer', () => {
275-
expect(element.shadowRoot.querySelector('.has-action')).toBeTruthy();
272+
it('should not align caret icon button to left side if an action is provided by consumer', () => {
273+
expect(element.shadowRoot.querySelector('.has-suffix')).toBeNull();
276274
});
277275

278-
it('should keep the action caret pointing down when expanded', async () => {
276+
it('should not align caret icon button to left side for suffix content outside the assigned header', async () => {
277+
removeFixture(fixture);
278+
fixture = await createFixture(html`
279+
<nve-accordion>
280+
<nve-accordion-header>heading</nve-accordion-header>
281+
<nve-accordion-content>
282+
content
283+
<nve-accordion-header>
284+
nested heading
285+
<span slot="suffix">nested suffix</span>
286+
</nve-accordion-header>
287+
</nve-accordion-content>
288+
</nve-accordion>
289+
`);
290+
element = fixture.querySelector<Accordion>(Accordion.metadata.tag);
291+
await elementIsStable(element);
292+
293+
expect(element.shadowRoot.querySelector('.has-suffix')).toBeNull();
294+
});
295+
296+
it('should point the action caret up when expanded', async () => {
279297
element.expanded = true;
280298
await elementIsStable(element);
281299

282300
const iconButton = element.shadowRoot.querySelector<IconButton>(IconButton.metadata.tag);
283-
expect(iconButton.direction).toBe('down');
301+
expect(iconButton.direction).toBe('up');
302+
});
303+
304+
it('should not render deprecated header slots', async () => {
305+
const header = fixture.querySelector<AccordionHeader>(AccordionHeader.metadata.tag);
306+
await elementIsStable(header);
307+
308+
expect(header.shadowRoot.querySelector('slot[name="title"]')).toBeNull();
309+
expect(header.shadowRoot.querySelector('slot[name="subtitle"]')).toBeNull();
310+
expect(header.shadowRoot.querySelector('slot[name="actions"]')).toBeNull();
284311
});
285312
});
286313

projects/core/src/accordion/accordion.test.visual.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ describe('accordion visual', () => {
1616
});
1717
});
1818

19-
/* eslint-disable @nvidia-elements/lint/no-deprecated-slots */
20-
/* eslint-disable @nvidia-elements/lint/no-unexpected-slot-value */
21-
2219
function template(theme: '' | 'dark' = '') {
2320
return /* html */ `
2421
<script type="module">
@@ -81,8 +78,10 @@ function template(theme: '' | 'dark' = '') {
8178
8279
<nve-accordion>
8380
<nve-accordion-header>
84-
<div slot="title">•︎•︎•︎</div>
85-
<div slot="subtitle">•︎•︎•︎</div>
81+
<div>
82+
<div>•︎•︎•︎</div>
83+
<div>•︎•︎•︎</div>
84+
</div>
8685
<nve-icon-button container="flat" icon-name="add" size="sm" slot="suffix"></nve-icon-button>
8786
<nve-icon-button container="flat" icon-name="delete" size="sm" slot="suffix"></nve-icon-button>
8887
</nve-accordion-header>

projects/core/src/accordion/accordion.ts

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ import accordionGroupStyleSheet from './accordion-group.css?inline';
3232
* @slot - default content slot
3333
* @slot prefix - slot for prefix content
3434
* @slot suffix - slot for suffix content
35-
* @slot title - (deprecated)
36-
* @slot subtitle - (deprecated)
37-
* @slot actions - (deprecated)
3835
* @cssprop --cursor
3936
* @aria https://www.w3.org/WAI/ARIA/apg/patterns/disclosure/
4037
*/
@@ -53,14 +50,7 @@ export class AccordionHeader extends LitElement {
5350
return html`
5451
<div internal-host>
5552
<slot name="prefix"></slot>
56-
<div id="titles">
57-
<slot name="title"></slot>
58-
<slot name="subtitle"></slot>
59-
</div>
6053
<slot></slot>
61-
<div id="actions">
62-
<slot name="actions"></slot>
63-
</div>
6454
<slot name="suffix"></slot>
6555
</div>
6656
`;
@@ -168,11 +158,6 @@ export class Accordion extends LitElement implements ContainerElement {
168158
*/
169159
@property({ type: Boolean, attribute: 'behavior-expand' }) behaviorExpand = false;
170160

171-
get #hasAction(): boolean {
172-
return !!(this?.querySelectorAll ? Array.from(this?.querySelectorAll<HTMLSlotElement>('[slot="actions"]')) : [])
173-
.length;
174-
}
175-
176161
get #header() {
177162
return this.shadowRoot?.querySelector<HTMLSlotElement>('slot[name=header]')?.assignedElements()[0];
178163
}
@@ -185,7 +170,7 @@ export class Accordion extends LitElement implements ContainerElement {
185170

186171
render() {
187172
return html`
188-
<div internal-host class=${this.#hasAction ? 'has-action' : ''}>
173+
<div internal-host>
189174
<div id="header"
190175
@click=${(e: Event) => this.#toggle(e.target as HTMLElement)}
191176
.ariaLabel=${this.expanded ? this.i18n.close : this.i18n.expand}
@@ -199,7 +184,7 @@ export class Accordion extends LitElement implements ContainerElement {
199184
id="internal-trigger"
200185
container="inline"
201186
icon-name="caret"
202-
direction=${this.expanded ? (this.#hasAction ? 'down' : 'up') : this.#hasAction ? 'right' : 'down'}
187+
direction=${this.expanded ? 'up' : 'down'}
203188
?disabled=${this.disabled}
204189
?pressed=${this.expanded}
205190
.expanded=${this.expanded}

0 commit comments

Comments
 (0)