@aquera/nile-elements 0.1.8 → 0.1.10
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 +7 -0
- package/demo/index.html +0 -10
- package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordian.test.cjs.js.map +1 -1
- package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
- package/dist/nile-accordion/nile-accordion.css.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordion.css.cjs.js.map +1 -1
- package/dist/nile-accordion/nile-accordion.css.esm.js +54 -23
- package/dist/nile-accordion/nile-accordion.esm.js +9 -8
- package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.test.esm.js +11 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.css.esm.js +18 -10
- package/dist/nile-code-editor/nile-code-editor.esm.js +9 -9
- package/dist/src/nile-accordion/nile-accordian.test.js +24 -29
- package/dist/src/nile-accordion/nile-accordian.test.js.map +1 -1
- package/dist/src/nile-accordion/nile-accordion.css.js +53 -22
- package/dist/src/nile-accordion/nile-accordion.css.js.map +1 -1
- package/dist/src/nile-accordion/nile-accordion.d.ts +31 -16
- package/dist/src/nile-accordion/nile-accordion.js +68 -34
- package/dist/src/nile-accordion/nile-accordion.js.map +1 -1
- package/dist/src/nile-avatar/nile-avatar.test.d.ts +1 -0
- package/dist/src/nile-avatar/nile-avatar.test.js +64 -30
- package/dist/src/nile-avatar/nile-avatar.test.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.css.js +18 -10
- package/dist/src/nile-code-editor/nile-code-editor.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +10 -10
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-accordion/nile-accordian.test.ts +30 -57
- package/src/nile-accordion/nile-accordion.css.ts +53 -22
- package/src/nile-accordion/nile-accordion.ts +61 -33
- package/src/nile-avatar/nile-avatar.test.ts +84 -33
- package/src/nile-code-editor/nile-code-editor.css.ts +18 -10
- package/src/nile-code-editor/nile-code-editor.ts +10 -10
- package/vscode-html-custom-data.json +82 -43
@@ -2,7 +2,6 @@ import { fixture, html, expect, oneEvent, elementUpdated } from '@open-wc/testin
|
|
2
2
|
import './nile-accordion';
|
3
3
|
import { NileAccordion } from './nile-accordion';
|
4
4
|
import Sinon from 'sinon';
|
5
|
-
const wait = (ms = 50000) => new Promise(resolve => setTimeout(resolve, ms));
|
6
5
|
describe('NileAccordion', () => {
|
7
6
|
it('should render correctly', async () => {
|
8
7
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
@@ -13,24 +12,23 @@ describe('NileAccordion', () => {
|
|
13
12
|
it('should initialize closed by default', async () => {
|
14
13
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
15
14
|
expect(el.open).to.be.false;
|
16
|
-
const body = el.shadowRoot?.querySelector('.
|
15
|
+
const body = el.shadowRoot?.querySelector('.accordian__body');
|
17
16
|
expect(body?.hidden).to.be.true;
|
18
17
|
});
|
19
18
|
it('should open when clicked', async () => {
|
20
19
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
21
|
-
const header = el.shadowRoot?.querySelector('.
|
20
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
22
21
|
header.click();
|
23
22
|
await elementUpdated(el);
|
24
23
|
expect(el.open).to.be.true;
|
25
|
-
const body = el.shadowRoot?.querySelector('.
|
24
|
+
const body = el.shadowRoot?.querySelector('.accordian__body');
|
26
25
|
expect(body?.hidden).to.be.false;
|
27
26
|
});
|
28
27
|
it('should emit "nile-show" and "nile-after-show" when opened', async () => {
|
29
28
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
30
29
|
const showSpy = Sinon.spy(el, 'emit');
|
31
|
-
const header = el.shadowRoot?.querySelector('.
|
30
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
32
31
|
setTimeout(() => header.click());
|
33
|
-
// Wait for the "nile-show" and "nile-after-show" events to be emitted
|
34
32
|
await oneEvent(el, 'nile-after-show');
|
35
33
|
expect(showSpy.calledWith('nile-show')).to.be.true;
|
36
34
|
expect(showSpy.calledWith('nile-after-show')).to.be.true;
|
@@ -38,40 +36,26 @@ describe('NileAccordion', () => {
|
|
38
36
|
it('should emit "nile-hide" and "nile-after-hide" when closed', async () => {
|
39
37
|
const el = await fixture(html `<nile-accordion summary="Test Summary" open></nile-accordion>`);
|
40
38
|
const hideSpy = Sinon.spy(el, 'emit');
|
41
|
-
const header = el.shadowRoot?.querySelector('.
|
39
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
42
40
|
setTimeout(() => header.click());
|
43
|
-
// Wait for the "nile-hide" and "nile-after-hide" events to be emitted
|
44
41
|
await oneEvent(el, 'nile-after-hide');
|
45
42
|
expect(hideSpy.calledWith('nile-hide')).to.be.true;
|
46
43
|
expect(hideSpy.calledWith('nile-after-hide')).to.be.true;
|
47
44
|
});
|
48
45
|
it('should be disabled when the "disabled" property is set', async () => {
|
49
46
|
const el = await fixture(html `<nile-accordion summary="Test Summary" disabled></nile-accordion>`);
|
50
|
-
const header = el.shadowRoot?.querySelector('.
|
47
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
51
48
|
header.click();
|
52
49
|
await elementUpdated(el);
|
53
50
|
expect(el.open).to.be.false;
|
54
|
-
const body = el.shadowRoot?.querySelector('.details__body');
|
55
|
-
expect(body?.hidden).to.be.true;
|
56
|
-
});
|
57
|
-
it('should open when pressing "Enter"', async () => {
|
58
|
-
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
59
|
-
const header = el.shadowRoot?.querySelector('.details__header');
|
60
|
-
// Simulate pressing the "Enter" key
|
61
|
-
const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
|
62
|
-
header.dispatchEvent(enterEvent);
|
63
|
-
await elementUpdated(el);
|
64
|
-
expect(el.open).to.be.true;
|
65
51
|
});
|
66
52
|
it('should handle keyboard interaction (Enter and Space)', async () => {
|
67
53
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
68
|
-
const header = el.shadowRoot?.querySelector('.
|
69
|
-
// Simulate pressing the "Enter" key
|
54
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
70
55
|
const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
|
71
56
|
header.dispatchEvent(enterEvent);
|
72
57
|
await elementUpdated(el);
|
73
58
|
expect(el.open).to.be.true;
|
74
|
-
// Simulate pressing the "Space" key
|
75
59
|
const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
|
76
60
|
header.dispatchEvent(spaceEvent);
|
77
61
|
await elementUpdated(el);
|
@@ -79,27 +63,38 @@ describe('NileAccordion', () => {
|
|
79
63
|
});
|
80
64
|
it('should handle ArrowUp/ArrowLeft to close and ArrowDown/ArrowRight to open', async () => {
|
81
65
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
82
|
-
const header = el.shadowRoot?.querySelector('.
|
83
|
-
// Simulate pressing the "ArrowDown" key to open
|
66
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
84
67
|
const arrowDownEvent = new KeyboardEvent('keydown', { key: 'ArrowDown' });
|
85
68
|
header.dispatchEvent(arrowDownEvent);
|
86
69
|
await elementUpdated(el);
|
87
70
|
expect(el.open).to.be.true;
|
88
|
-
// Simulate pressing the "ArrowUp" key to close
|
89
71
|
const arrowUpEvent = new KeyboardEvent('keydown', { key: 'ArrowUp' });
|
90
72
|
header.dispatchEvent(arrowUpEvent);
|
91
73
|
await elementUpdated(el);
|
92
74
|
expect(el.open).to.be.false;
|
93
75
|
});
|
76
|
+
it('should apply the "variant" class based on the variant property', async () => {
|
77
|
+
const el = await fixture(html `<nile-accordion summary="Test Summary" variant="dark"></nile-accordion>`);
|
78
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
79
|
+
expect(header).to.have.class('accordian__header--dark');
|
80
|
+
});
|
81
|
+
it('should apply the correct size class based on the size property', async () => {
|
82
|
+
const el = await fixture(html `<nile-accordion summary="Test Summary" size="lg"></nile-accordion>`);
|
83
|
+
const container = el.shadowRoot?.querySelector('.accordian');
|
84
|
+
expect(container).to.have.class('accordian--lg');
|
85
|
+
});
|
86
|
+
it('should apply the correct expand icon placement class based on the expandIconPlacement property', async () => {
|
87
|
+
const el = await fixture(html `<nile-accordion summary="Test Summary" expandIconPlacement="left"></nile-accordion>`);
|
88
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
89
|
+
expect(header).to.have.class('accordian__header--arrow-left');
|
90
|
+
});
|
94
91
|
it('should animate when opening and closing', async () => {
|
95
92
|
const el = await fixture(html `<nile-accordion summary="Test Summary"></nile-accordion>`);
|
96
93
|
const animateSpy = Sinon.spy(el, 'handleOpenChange');
|
97
|
-
|
98
|
-
const header = el.shadowRoot?.querySelector('.details__header');
|
94
|
+
const header = el.shadowRoot?.querySelector('.accordian__header');
|
99
95
|
header.click();
|
100
96
|
await elementUpdated(el);
|
101
97
|
expect(animateSpy.called).to.be.true;
|
102
|
-
// Simulate closing
|
103
98
|
header.click();
|
104
99
|
await elementUpdated(el);
|
105
100
|
expect(animateSpy.calledTwice).to.be.true;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-accordian.test.js","sourceRoot":"","sources":["../../../src/nile-accordion/nile-accordian.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { fixture, html, expect, oneEvent, elementUpdated } from '@open-wc/testing';\nimport './nile-accordion';\nimport { NileAccordion } from './nile-accordion';\nimport Sinon from 'sinon';\nconst wait=(ms:number=50000)=>new Promise(resolve => setTimeout(resolve, ms))\n\n\ndescribe('NileAccordion', () => {\n it('should render correctly', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n expect(el).to.be.instanceOf(NileAccordion);\n expect(el.shadowRoot).not.to.be.null;\n expect(el.summary).to.equal('Test Summary');\n });\n\n it('should initialize closed by default', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n expect(el.open).to.be.false;\n const body = el.shadowRoot?.querySelector<any>('.details__body');\n expect(body?.hidden).to.be.true;\n });\n\n it('should open when clicked', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n \n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n header.click();\n \n await elementUpdated(el);\n \n expect(el.open).to.be.true;\n const body = el.shadowRoot?.querySelector<any>('.details__body');\n expect(body?.hidden).to.be.false;\n });\n\n it('should emit \"nile-show\" and \"nile-after-show\" when opened', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n \n const showSpy = Sinon.spy(el, 'emit');\n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n\t\tsetTimeout(() => header.click());\n\n // Wait for the \"nile-show\" and \"nile-after-show\" events to be emitted\n await oneEvent(el, 'nile-after-show');\n\n expect(showSpy.calledWith('nile-show')).to.be.true;\n expect(showSpy.calledWith('nile-after-show')).to.be.true;\n });\n\n it('should emit \"nile-hide\" and \"nile-after-hide\" when closed', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" open></nile-accordion>`);\n \n const hideSpy = Sinon.spy(el, 'emit');\n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n\t\tsetTimeout(() => header.click());\n\n // Wait for the \"nile-hide\" and \"nile-after-hide\" events to be emitted\n await oneEvent(el, 'nile-after-hide');\n\n expect(hideSpy.calledWith('nile-hide')).to.be.true;\n expect(hideSpy.calledWith('nile-after-hide')).to.be.true;\n });\n\n it('should be disabled when the \"disabled\" property is set', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" disabled></nile-accordion>`);\n \n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n header.click();\n\n await elementUpdated(el);\n \n expect(el.open).to.be.false;\n const body = el.shadowRoot?.querySelector<any>('.details__body');\n expect(body?.hidden).to.be.true;\n });\n\n it('should open when pressing \"Enter\"', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n \n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n\n // Simulate pressing the \"Enter\" key\n const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });\n header.dispatchEvent(enterEvent);\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n });\n\n it('should handle keyboard interaction (Enter and Space)', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n \n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n\n // Simulate pressing the \"Enter\" key\n const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });\n header.dispatchEvent(enterEvent);\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n // Simulate pressing the \"Space\" key\n const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });\n header.dispatchEvent(spaceEvent);\n\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n\n it('should handle ArrowUp/ArrowLeft to close and ArrowDown/ArrowRight to open', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n \n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n\n // Simulate pressing the \"ArrowDown\" key to open\n const arrowDownEvent = new KeyboardEvent('keydown', { key: 'ArrowDown' });\n header.dispatchEvent(arrowDownEvent);\n\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n // Simulate pressing the \"ArrowUp\" key to close\n const arrowUpEvent = new KeyboardEvent('keydown', { key: 'ArrowUp' });\n header.dispatchEvent(arrowUpEvent);\n\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n\n it('should animate when opening and closing', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n \n const animateSpy = Sinon.spy(el, 'handleOpenChange');\n\n // Simulate opening\n const header = el.shadowRoot?.querySelector('.details__header') as HTMLElement;\n header.click();\n \n await elementUpdated(el);\n expect(animateSpy.called).to.be.true;\n\n // Simulate closing\n header.click();\n await elementUpdated(el);\n expect(animateSpy.calledTwice).to.be.true;\n });\n});"]}
|
1
|
+
{"version":3,"file":"nile-accordian.test.js","sourceRoot":"","sources":["../../../src/nile-accordion/nile-accordian.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { fixture, html, expect, oneEvent, elementUpdated } from '@open-wc/testing';\nimport './nile-accordion';\nimport { NileAccordion } from './nile-accordion';\nimport Sinon from 'sinon';\n\ndescribe('NileAccordion', () => {\n it('should render correctly', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n expect(el).to.be.instanceOf(NileAccordion);\n expect(el.shadowRoot).not.to.be.null;\n expect(el.summary).to.equal('Test Summary');\n });\n\n it('should initialize closed by default', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n expect(el.open).to.be.false;\n const body = el.shadowRoot?.querySelector<HTMLElement>('.accordian__body');\n expect(body?.hidden).to.be.true;\n });\n\n it('should open when clicked', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n header.click();\n await elementUpdated(el);\n expect(el.open).to.be.true;\n const body = el.shadowRoot?.querySelector<HTMLElement>('.accordian__body');\n expect(body?.hidden).to.be.false;\n });\n\n it('should emit \"nile-show\" and \"nile-after-show\" when opened', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n const showSpy = Sinon.spy(el, 'emit');\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n setTimeout(() => header.click());\n await oneEvent(el, 'nile-after-show');\n expect(showSpy.calledWith('nile-show')).to.be.true;\n expect(showSpy.calledWith('nile-after-show')).to.be.true;\n });\n\n it('should emit \"nile-hide\" and \"nile-after-hide\" when closed', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" open></nile-accordion>`);\n const hideSpy = Sinon.spy(el, 'emit');\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n setTimeout(() => header.click());\n await oneEvent(el, 'nile-after-hide');\n expect(hideSpy.calledWith('nile-hide')).to.be.true;\n expect(hideSpy.calledWith('nile-after-hide')).to.be.true;\n });\n\n it('should be disabled when the \"disabled\" property is set', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" disabled></nile-accordion>`);\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n header.click();\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n\n it('should handle keyboard interaction (Enter and Space)', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n\n const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });\n header.dispatchEvent(enterEvent);\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });\n header.dispatchEvent(spaceEvent);\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n\n it('should handle ArrowUp/ArrowLeft to close and ArrowDown/ArrowRight to open', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n\n const arrowDownEvent = new KeyboardEvent('keydown', { key: 'ArrowDown' });\n header.dispatchEvent(arrowDownEvent);\n await elementUpdated(el);\n expect(el.open).to.be.true;\n\n const arrowUpEvent = new KeyboardEvent('keydown', { key: 'ArrowUp' });\n header.dispatchEvent(arrowUpEvent);\n await elementUpdated(el);\n expect(el.open).to.be.false;\n });\n\n it('should apply the \"variant\" class based on the variant property', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" variant=\"dark\"></nile-accordion>`);\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header');\n expect(header).to.have.class('accordian__header--dark');\n });\n\n it('should apply the correct size class based on the size property', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" size=\"lg\"></nile-accordion>`);\n const container = el.shadowRoot?.querySelector<HTMLElement>('.accordian');\n expect(container).to.have.class('accordian--lg');\n });\n\n it('should apply the correct expand icon placement class based on the expandIconPlacement property', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\" expandIconPlacement=\"left\"></nile-accordion>`);\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header');\n expect(header).to.have.class('accordian__header--arrow-left');\n });\n\n it('should animate when opening and closing', async () => {\n const el = await fixture<NileAccordion>(html`<nile-accordion summary=\"Test Summary\"></nile-accordion>`);\n const animateSpy = Sinon.spy(el, 'handleOpenChange');\n const header = el.shadowRoot?.querySelector<HTMLElement>('.accordian__header') as HTMLElement;\n\n header.click();\n await elementUpdated(el);\n expect(animateSpy.called).to.be.true;\n\n header.click();\n await elementUpdated(el);\n expect(animateSpy.calledTwice).to.be.true;\n });\n});\n"]}
|
@@ -28,77 +28,108 @@ export const styles = css `
|
|
28
28
|
display: block;
|
29
29
|
}
|
30
30
|
|
31
|
-
.
|
32
|
-
border:
|
33
|
-
border-radius: 0.25rem;
|
31
|
+
.accordian {
|
32
|
+
border-top:solid 1px var(--nile-colors-neutral-500);
|
34
33
|
background-color: #FFFFFF;
|
35
34
|
overflow-anchor: none;
|
36
35
|
}
|
37
36
|
|
38
|
-
.
|
37
|
+
.accordian--lg{
|
38
|
+
--accordian-text-size:var(--sm-tesx, 14px);
|
39
|
+
--accordian-heading-padding: 16px 12px;
|
40
|
+
--accordian-content-padding: 6px 12px 18px;
|
41
|
+
}
|
42
|
+
|
43
|
+
.accordian--md{
|
44
|
+
--accordian-text-size:var(--sm-tesx, 14px);
|
45
|
+
--accordian-heading-padding: 12px 12px;
|
46
|
+
--accordian-content-padding: 6px 12px 18px;
|
47
|
+
}
|
48
|
+
|
49
|
+
.accordian--sm{
|
50
|
+
--accordian-text-size:var(--sm-tesx, 12px);
|
51
|
+
--accordian-heading-padding: 6px 12px;
|
52
|
+
--accordian-content-padding: 6px 12px 12px;
|
53
|
+
}
|
54
|
+
|
55
|
+
.accordian {
|
56
|
+
font-size: var(--accordian-text-size);
|
57
|
+
}
|
58
|
+
|
59
|
+
.accordian--disabled {
|
39
60
|
opacity: 0.5;
|
40
61
|
}
|
41
62
|
|
42
|
-
.
|
63
|
+
.accordian__header {
|
43
64
|
display: flex;
|
65
|
+
gap:12px;
|
44
66
|
align-items: center;
|
45
67
|
border-radius: inherit;
|
46
|
-
|
68
|
+
font-weight:500;
|
69
|
+
padding: var(--accordian-heading-padding);
|
47
70
|
user-select: none;
|
48
71
|
cursor: pointer;
|
49
72
|
}
|
50
73
|
|
51
|
-
.
|
74
|
+
.accordian__header--dark{
|
75
|
+
background-color:var(--nile-colors-dark-200);
|
76
|
+
}
|
77
|
+
|
78
|
+
.accordian__header--arrow-left{
|
79
|
+
flex-direction: row-reverse;
|
80
|
+
}
|
81
|
+
|
82
|
+
.accordian__header:focus {
|
52
83
|
outline: none;
|
53
84
|
}
|
54
85
|
|
55
|
-
.
|
86
|
+
.accordian__header:focus-visible {
|
56
87
|
outline: solid 3px hsl(200.4, 98%, 39.4%);
|
57
88
|
outline-offset: calc(1px + 1px);
|
58
89
|
}
|
59
90
|
|
60
|
-
.
|
91
|
+
.accordian--disabled .accordian__header {
|
61
92
|
cursor: not-allowed;
|
62
93
|
}
|
63
94
|
|
64
|
-
.
|
95
|
+
.accordian--disabled .accordian__header:focus-visible {
|
65
96
|
outline: none;
|
66
97
|
box-shadow: none;
|
67
98
|
}
|
68
99
|
|
69
|
-
.
|
100
|
+
.accordian__summary {
|
70
101
|
flex: 1 1 auto;
|
71
102
|
display: flex;
|
72
103
|
align-items: center;
|
73
104
|
}
|
74
105
|
|
75
|
-
.
|
106
|
+
.accordian__summary-icon {
|
76
107
|
flex: 0 0 auto;
|
77
108
|
display: flex;
|
78
109
|
align-items: center;
|
79
110
|
transition: 250ms rotate ease;
|
80
111
|
}
|
81
112
|
|
82
|
-
.
|
113
|
+
.accordian--open .accordian__summary-icon {
|
83
114
|
rotate: 90deg;
|
84
115
|
}
|
85
116
|
|
86
|
-
.
|
87
|
-
|
88
|
-
}
|
89
|
-
|
90
|
-
.details--open slot[name='expand-icon'],
|
91
|
-
.details:not(.details--open) slot[name='collapse-icon'] {
|
117
|
+
.accordian--open slot[name='expand-icon'],
|
118
|
+
.accordian:not(.accordian--open) slot[name='collapse-icon'] {
|
92
119
|
display: none;
|
93
120
|
}
|
94
121
|
|
95
|
-
.
|
122
|
+
.accordian__body {
|
96
123
|
overflow: hidden;
|
97
124
|
}
|
98
125
|
|
99
|
-
.
|
126
|
+
.accordian__content {
|
100
127
|
display: block;
|
101
|
-
padding:
|
128
|
+
padding: var(--accordian-content-padding);
|
129
|
+
}
|
130
|
+
|
131
|
+
.accordian__content--arrow-left{
|
132
|
+
margin-left:28px;
|
102
133
|
}
|
103
134
|
`;
|
104
135
|
export default [styles];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-accordion.css.js","sourceRoot":"","sources":["../../../src/nile-accordion/nile-accordion.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
1
|
+
{"version":3,"file":"nile-accordion.css.js","sourceRoot":"","sources":["../../../src/nile-accordion/nile-accordion.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * Detail CSS\n */\nexport const styles = css`\n\n :host {\n box-sizing: border-box;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n :host {\n display: block;\n }\n\n .accordian {\n border-top:solid 1px var(--nile-colors-neutral-500);\n background-color: #FFFFFF;\n overflow-anchor: none;\n }\n\n .accordian--lg{\n --accordian-text-size:var(--sm-tesx, 14px);\n --accordian-heading-padding: 16px 12px;\n --accordian-content-padding: 6px 12px 18px;\n }\n\n .accordian--md{\n --accordian-text-size:var(--sm-tesx, 14px);\n --accordian-heading-padding: 12px 12px;\n --accordian-content-padding: 6px 12px 18px;\n }\n\n .accordian--sm{\n --accordian-text-size:var(--sm-tesx, 12px);\n --accordian-heading-padding: 6px 12px;\n --accordian-content-padding: 6px 12px 12px;\n }\n \n .accordian {\n font-size: var(--accordian-text-size);\n }\n\n .accordian--disabled {\n opacity: 0.5;\n }\n\n .accordian__header {\n display: flex;\n gap:12px;\n align-items: center;\n border-radius: inherit;\n font-weight:500;\n padding: var(--accordian-heading-padding);\n user-select: none;\n cursor: pointer;\n }\n\n .accordian__header--dark{\n background-color:var(--nile-colors-dark-200);\n }\n\n .accordian__header--arrow-left{\n flex-direction: row-reverse;\n }\n\n .accordian__header:focus {\n outline: none;\n }\n\n .accordian__header:focus-visible {\n outline: solid 3px hsl(200.4, 98%, 39.4%);\n outline-offset: calc(1px + 1px);\n }\n\n .accordian--disabled .accordian__header {\n cursor: not-allowed;\n }\n\n .accordian--disabled .accordian__header:focus-visible {\n outline: none;\n box-shadow: none;\n }\n\n .accordian__summary {\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n }\n\n .accordian__summary-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n }\n\n .accordian--open .accordian__summary-icon {\n rotate: 90deg;\n }\n\n .accordian--open slot[name='expand-icon'],\n .accordian:not(.accordian--open) slot[name='collapse-icon'] {\n display: none;\n }\n\n .accordian__body {\n overflow: hidden;\n }\n\n .accordian__content {\n display: block;\n padding: var(--accordian-content-padding);\n }\n\n .accordian__content--arrow-left{\n margin-left:28px;\n }\n`;\n\nexport default [styles];\n"]}
|
@@ -15,50 +15,65 @@ import type { CSSResultGroup } from 'lit';
|
|
15
15
|
*/
|
16
16
|
export declare class NileAccordion extends NileElement {
|
17
17
|
/**
|
18
|
-
* @summary
|
18
|
+
* @summary Accordian show a brief summary and expand to show additional content.
|
19
19
|
*
|
20
20
|
* @dependency nile-icon
|
21
21
|
*
|
22
|
-
* @slot - The
|
23
|
-
* @slot summary - The
|
22
|
+
* @slot - The accordian' main content.
|
23
|
+
* @slot summary - The accordian' summary. Alternatively, you can use the `summary` attribute.
|
24
24
|
* @slot expand-icon - Optional expand icon to use instead of the default. Works best with `<nile-icon>`.
|
25
25
|
* @slot collapse-icon - Optional collapse icon to use instead of the default. Works best with `<nile-icon>`.
|
26
26
|
*
|
27
|
-
* @event nile-show - Emitted when the
|
28
|
-
* @event nile-after-show - Emitted after the
|
29
|
-
* @event nile-hide - Emitted when the
|
30
|
-
* @event nile-after-hide - Emitted after the
|
27
|
+
* @event nile-show - Emitted when the accordian opens.
|
28
|
+
* @event nile-after-show - Emitted after the accordian opens and all animations are complete.
|
29
|
+
* @event nile-hide - Emitted when the accordian closes.
|
30
|
+
* @event nile-after-hide - Emitted after the accordian closes and all animations are complete.
|
31
31
|
*
|
32
32
|
* @csspart base - The component's base wrapper.
|
33
33
|
* @csspart header - The header that wraps both the summary and the expand/collapse icon.
|
34
34
|
* @csspart summary - The container that wraps the summary.
|
35
35
|
* @csspart summary-icon - The container that wraps the expand/collapse icons.
|
36
|
-
* @csspart content - The
|
36
|
+
* @csspart content - The accordian content.
|
37
37
|
*
|
38
|
-
* @animation
|
39
|
-
* @animation
|
38
|
+
* @animation accordian.show - The animation to use when showing accordian. You can use `height: auto` with this animation.
|
39
|
+
* @animation accordian.hide - The animation to use when hiding accordian. You can use `height: auto` with this animation.
|
40
40
|
*/
|
41
41
|
static styles: CSSResultGroup;
|
42
|
-
|
42
|
+
accordian: HTMLElement;
|
43
43
|
header: HTMLElement;
|
44
44
|
body: HTMLElement;
|
45
45
|
expandIconSlot: HTMLSlotElement;
|
46
46
|
/**
|
47
|
-
* Indicates whether or not the
|
48
|
-
* can use the `show()` and `hide()` methods and this attribute will reflect the
|
47
|
+
* Indicates whether or not the accordian is open. You can toggle this attribute to show and hide the accordian, or you
|
48
|
+
* can use the `show()` and `hide()` methods and this attribute will reflect the accordian' open state.
|
49
49
|
*/
|
50
50
|
open: boolean;
|
51
|
+
/**
|
52
|
+
* Indicates the visual style of the accordian component. Accepted values are `'dark'` or `'light'`.
|
53
|
+
* Defaults to `'light'`.
|
54
|
+
*/
|
55
|
+
variant: 'dark' | 'light';
|
56
|
+
/**
|
57
|
+
* Specifies the direction of the arrow indicator. Accepted values are `'left'` or `'right'`.
|
58
|
+
* Defaults to `'right'`.
|
59
|
+
*/
|
60
|
+
expandIconPlacement: 'left' | 'right';
|
61
|
+
/**
|
62
|
+
* Specifies the size of the accordian component. Accepted values are `'sm'`, `'md'`, or `'lg'`.
|
63
|
+
* Defaults to `'md'`.
|
64
|
+
*/
|
65
|
+
size: 'sm' | 'md' | 'lg';
|
51
66
|
/** The summary to show in the header. If you need to display HTML, use the `summary` slot instead. */
|
52
67
|
summary: string;
|
53
|
-
/** Disables the
|
68
|
+
/** Disables the accordian so it can't be toggled. */
|
54
69
|
disabled: boolean;
|
55
70
|
firstUpdated(): void;
|
56
71
|
private handleSummaryClick;
|
57
72
|
private handleSummaryKeyDown;
|
58
73
|
handleOpenChange(): Promise<void>;
|
59
|
-
/** Shows the
|
74
|
+
/** Shows the accordian. */
|
60
75
|
show(): Promise<void>;
|
61
|
-
/** Hides the
|
76
|
+
/** Hides the accordian */
|
62
77
|
hide(): Promise<void>;
|
63
78
|
render(): TemplateResult<1>;
|
64
79
|
}
|
@@ -23,36 +23,51 @@ import { watch } from '../internal/watch';
|
|
23
23
|
let NileAccordion = class NileAccordion extends NileElement {
|
24
24
|
constructor() {
|
25
25
|
/**
|
26
|
-
* @summary
|
26
|
+
* @summary Accordian show a brief summary and expand to show additional content.
|
27
27
|
*
|
28
28
|
* @dependency nile-icon
|
29
29
|
*
|
30
|
-
* @slot - The
|
31
|
-
* @slot summary - The
|
30
|
+
* @slot - The accordian' main content.
|
31
|
+
* @slot summary - The accordian' summary. Alternatively, you can use the `summary` attribute.
|
32
32
|
* @slot expand-icon - Optional expand icon to use instead of the default. Works best with `<nile-icon>`.
|
33
33
|
* @slot collapse-icon - Optional collapse icon to use instead of the default. Works best with `<nile-icon>`.
|
34
34
|
*
|
35
|
-
* @event nile-show - Emitted when the
|
36
|
-
* @event nile-after-show - Emitted after the
|
37
|
-
* @event nile-hide - Emitted when the
|
38
|
-
* @event nile-after-hide - Emitted after the
|
35
|
+
* @event nile-show - Emitted when the accordian opens.
|
36
|
+
* @event nile-after-show - Emitted after the accordian opens and all animations are complete.
|
37
|
+
* @event nile-hide - Emitted when the accordian closes.
|
38
|
+
* @event nile-after-hide - Emitted after the accordian closes and all animations are complete.
|
39
39
|
*
|
40
40
|
* @csspart base - The component's base wrapper.
|
41
41
|
* @csspart header - The header that wraps both the summary and the expand/collapse icon.
|
42
42
|
* @csspart summary - The container that wraps the summary.
|
43
43
|
* @csspart summary-icon - The container that wraps the expand/collapse icons.
|
44
|
-
* @csspart content - The
|
44
|
+
* @csspart content - The accordian content.
|
45
45
|
*
|
46
|
-
* @animation
|
47
|
-
* @animation
|
46
|
+
* @animation accordian.show - The animation to use when showing accordian. You can use `height: auto` with this animation.
|
47
|
+
* @animation accordian.hide - The animation to use when hiding accordian. You can use `height: auto` with this animation.
|
48
48
|
*/
|
49
49
|
super(...arguments);
|
50
50
|
/**
|
51
|
-
* Indicates whether or not the
|
52
|
-
* can use the `show()` and `hide()` methods and this attribute will reflect the
|
51
|
+
* Indicates whether or not the accordian is open. You can toggle this attribute to show and hide the accordian, or you
|
52
|
+
* can use the `show()` and `hide()` methods and this attribute will reflect the accordian' open state.
|
53
53
|
*/
|
54
54
|
this.open = false;
|
55
|
-
/**
|
55
|
+
/**
|
56
|
+
* Indicates the visual style of the accordian component. Accepted values are `'dark'` or `'light'`.
|
57
|
+
* Defaults to `'light'`.
|
58
|
+
*/
|
59
|
+
this.variant = 'light';
|
60
|
+
/**
|
61
|
+
* Specifies the direction of the arrow indicator. Accepted values are `'left'` or `'right'`.
|
62
|
+
* Defaults to `'right'`.
|
63
|
+
*/
|
64
|
+
this.expandIconPlacement = 'right';
|
65
|
+
/**
|
66
|
+
* Specifies the size of the accordian component. Accepted values are `'sm'`, `'md'`, or `'lg'`.
|
67
|
+
* Defaults to `'md'`.
|
68
|
+
*/
|
69
|
+
this.size = 'md';
|
70
|
+
/** Disables the accordian so it can't be toggled. */
|
56
71
|
this.disabled = false;
|
57
72
|
}
|
58
73
|
firstUpdated() {
|
@@ -99,7 +114,7 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
99
114
|
}
|
100
115
|
await stopAnimations(this.body);
|
101
116
|
this.body.hidden = false;
|
102
|
-
const { keyframes, options } = getAnimation(this, '
|
117
|
+
const { keyframes, options } = getAnimation(this, 'accordian.show', { dir: 'ltr' });
|
103
118
|
await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);
|
104
119
|
this.body.style.height = 'auto';
|
105
120
|
this.emit('nile-after-show');
|
@@ -112,14 +127,14 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
112
127
|
return;
|
113
128
|
}
|
114
129
|
await stopAnimations(this.body);
|
115
|
-
const { keyframes, options } = getAnimation(this, '
|
130
|
+
const { keyframes, options } = getAnimation(this, 'accordian.hide', { dir: 'ltr' });
|
116
131
|
await animateTo(this.body, shimKeyframesHeightAuto(keyframes, this.body.scrollHeight), options);
|
117
132
|
this.body.hidden = true;
|
118
133
|
this.body.style.height = 'auto';
|
119
134
|
this.emit('nile-after-hide');
|
120
135
|
}
|
121
136
|
}
|
122
|
-
/** Shows the
|
137
|
+
/** Shows the accordian. */
|
123
138
|
async show() {
|
124
139
|
if (this.open || this.disabled) {
|
125
140
|
return undefined;
|
@@ -127,7 +142,7 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
127
142
|
this.open = true;
|
128
143
|
return waitForEvent(this, 'nile-after-show');
|
129
144
|
}
|
130
|
-
/** Hides the
|
145
|
+
/** Hides the accordian */
|
131
146
|
async hide() {
|
132
147
|
if (!this.open || this.disabled) {
|
133
148
|
return undefined;
|
@@ -136,21 +151,27 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
136
151
|
return waitForEvent(this, 'nile-after-hide');
|
137
152
|
}
|
138
153
|
render() {
|
139
|
-
const isRtl =
|
154
|
+
const isRtl = true;
|
140
155
|
return html `
|
141
156
|
<div
|
142
157
|
part="base"
|
143
158
|
class=${classMap({
|
144
|
-
|
145
|
-
'
|
146
|
-
'
|
147
|
-
'
|
159
|
+
accordian: true,
|
160
|
+
'accordian--open': this.open,
|
161
|
+
'accordian--disabled': this.disabled,
|
162
|
+
'accordian--sm': this.size == 'sm',
|
163
|
+
'accordian--md': this.size == 'md',
|
164
|
+
'accordian--lg': this.size == 'lg',
|
148
165
|
})}
|
149
166
|
>
|
150
167
|
<div
|
151
168
|
part="header"
|
152
169
|
id="header"
|
153
|
-
class="
|
170
|
+
class="${classMap({
|
171
|
+
'accordian__header': true,
|
172
|
+
'accordian__header--dark': this.variant == 'dark',
|
173
|
+
'accordian__header--arrow-left': 'left' == this.expandIconPlacement
|
174
|
+
})}"
|
154
175
|
role="button"
|
155
176
|
aria-expanded=${this.open ? 'true' : 'false'}
|
156
177
|
aria-controls="content"
|
@@ -159,9 +180,9 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
159
180
|
@click=${this.handleSummaryClick}
|
160
181
|
@keydown=${this.handleSummaryKeyDown}
|
161
182
|
>
|
162
|
-
<slot name="summary" part="summary" class="
|
183
|
+
<slot name="summary" part="summary" class="accordian__summary">${this.summary}</slot>
|
163
184
|
|
164
|
-
<span part="summary-icon" class="
|
185
|
+
<span part="summary-icon" class="accordian__summary-icon">
|
165
186
|
<slot name="expand-icon">
|
166
187
|
<nile-icon name="arrowright"></nile-icon>
|
167
188
|
</slot>
|
@@ -171,8 +192,12 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
171
192
|
</span>
|
172
193
|
</div>
|
173
194
|
|
174
|
-
<div class="
|
175
|
-
<slot part="content" id="content"
|
195
|
+
<div class="accordian__body" role="region" aria-labelledby="header">
|
196
|
+
<slot part="content" id="content"
|
197
|
+
class="${classMap({
|
198
|
+
'accordian__content': true,
|
199
|
+
'accordian__content--arrow-left': this.expandIconPlacement == 'left'
|
200
|
+
})}"></slot>
|
176
201
|
</div>
|
177
202
|
</div>
|
178
203
|
`;
|
@@ -180,20 +205,29 @@ let NileAccordion = class NileAccordion extends NileElement {
|
|
180
205
|
};
|
181
206
|
NileAccordion.styles = styles;
|
182
207
|
__decorate([
|
183
|
-
query('.
|
184
|
-
], NileAccordion.prototype, "
|
208
|
+
query('.accordian')
|
209
|
+
], NileAccordion.prototype, "accordian", void 0);
|
185
210
|
__decorate([
|
186
|
-
query('.
|
211
|
+
query('.accordian__header')
|
187
212
|
], NileAccordion.prototype, "header", void 0);
|
188
213
|
__decorate([
|
189
|
-
query('.
|
214
|
+
query('.accordian__body')
|
190
215
|
], NileAccordion.prototype, "body", void 0);
|
191
216
|
__decorate([
|
192
|
-
query('.
|
217
|
+
query('.accordian__expand-icon-slot')
|
193
218
|
], NileAccordion.prototype, "expandIconSlot", void 0);
|
194
219
|
__decorate([
|
195
220
|
property({ type: Boolean, reflect: true })
|
196
221
|
], NileAccordion.prototype, "open", void 0);
|
222
|
+
__decorate([
|
223
|
+
property({ reflect: true })
|
224
|
+
], NileAccordion.prototype, "variant", void 0);
|
225
|
+
__decorate([
|
226
|
+
property({ reflect: true })
|
227
|
+
], NileAccordion.prototype, "expandIconPlacement", void 0);
|
228
|
+
__decorate([
|
229
|
+
property({ reflect: true })
|
230
|
+
], NileAccordion.prototype, "size", void 0);
|
197
231
|
__decorate([
|
198
232
|
property()
|
199
233
|
], NileAccordion.prototype, "summary", void 0);
|
@@ -207,14 +241,14 @@ NileAccordion = __decorate([
|
|
207
241
|
customElement('nile-accordion')
|
208
242
|
], NileAccordion);
|
209
243
|
export { NileAccordion };
|
210
|
-
setDefaultAnimation('
|
244
|
+
setDefaultAnimation('accordian.show', {
|
211
245
|
keyframes: [
|
212
246
|
{ height: '0', opacity: '0' },
|
213
247
|
{ height: 'auto', opacity: '1' }
|
214
248
|
],
|
215
249
|
options: { duration: 250, easing: 'linear' }
|
216
250
|
});
|
217
|
-
setDefaultAnimation('
|
251
|
+
setDefaultAnimation('accordian.hide', {
|
218
252
|
keyframes: [
|
219
253
|
{ height: 'auto', opacity: '1' },
|
220
254
|
{ height: '0', opacity: '0' }
|