@aquera/nile-elements 1.9.4 → 1.9.5
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/dist/index-5fef1a0d.esm.js +1 -0
- package/dist/index-8f38fae3.cjs.js +2 -0
- package/dist/index-8f38fae3.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1287 -736
- package/dist/nile-combobox/index.cjs.js +1 -1
- package/dist/nile-combobox/index.esm.js +1 -1
- package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.esm.js +1 -1
- package/dist/nile-command-menu/index.cjs.js +2 -0
- package/dist/nile-command-menu/index.cjs.js.map +1 -0
- package/dist/nile-command-menu/index.esm.js +1 -0
- package/dist/nile-command-menu/nile-command-menu.cjs.js +2 -0
- package/dist/nile-command-menu/nile-command-menu.cjs.js.map +1 -0
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js +2 -0
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js.map +1 -0
- package/dist/nile-command-menu/nile-command-menu.css.esm.js +182 -0
- package/dist/nile-command-menu/nile-command-menu.esm.js +97 -0
- package/dist/nile-command-menu-group/index.cjs.js +2 -0
- package/dist/nile-command-menu-group/index.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/index.esm.js +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js +2 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js +2 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.esm.js +33 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.esm.js +11 -0
- package/dist/nile-command-menu-item/index.cjs.js +2 -0
- package/dist/nile-command-menu-item/index.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/index.esm.js +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js +2 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js +2 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.esm.js +115 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.esm.js +21 -0
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/index.esm.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-dot-stepper/index.cjs.js +2 -0
- package/dist/nile-dot-stepper/index.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/index.esm.js +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js +2 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js +2 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.esm.js +77 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.esm.js +24 -0
- package/dist/nile-section-message/nile-section-message.css.cjs.js +1 -1
- package/dist/nile-section-message/nile-section-message.css.cjs.js.map +1 -1
- package/dist/nile-section-message/nile-section-message.css.esm.js +7 -8
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-command-menu/index.d.ts +1 -0
- package/dist/src/nile-command-menu/index.js +2 -0
- package/dist/src/nile-command-menu/index.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.d.ts +12 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.js +194 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.d.ts +137 -0
- package/dist/src/nile-command-menu/nile-command-menu.js +557 -0
- package/dist/src/nile-command-menu/nile-command-menu.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.d.ts +3 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.js +268 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.js.map +1 -0
- package/dist/src/nile-command-menu-group/index.d.ts +1 -0
- package/dist/src/nile-command-menu-group/index.js +2 -0
- package/dist/src/nile-command-menu-group/index.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.d.ts +12 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js +45 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.d.ts +38 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.js +68 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.d.ts +2 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js +22 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js.map +1 -0
- package/dist/src/nile-command-menu-item/index.d.ts +1 -0
- package/dist/src/nile-command-menu-item/index.js +2 -0
- package/dist/src/nile-command-menu-item/index.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.d.ts +12 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js +127 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.d.ts +73 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.js +174 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.d.ts +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js +35 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js.map +1 -0
- package/dist/src/nile-dialog/nile-dialog.js +1 -1
- package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
- package/dist/src/nile-dot-stepper/index.d.ts +1 -0
- package/dist/src/nile-dot-stepper/index.js +2 -0
- package/dist/src/nile-dot-stepper/index.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.d.ts +12 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js +89 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.d.ts +48 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.js +153 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.d.ts +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js +319 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js.map +1 -0
- package/dist/src/nile-section-message/nile-section-message.css.js +7 -8
- package/dist/src/nile-section-message/nile-section-message.css.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/index.ts +4 -0
- package/src/nile-command-menu/index.ts +1 -0
- package/src/nile-command-menu/nile-command-menu.css.ts +196 -0
- package/src/nile-command-menu/nile-command-menu.test.ts +289 -0
- package/src/nile-command-menu/nile-command-menu.ts +601 -0
- package/src/nile-command-menu-group/index.ts +1 -0
- package/src/nile-command-menu-group/nile-command-menu-group.css.ts +47 -0
- package/src/nile-command-menu-group/nile-command-menu-group.test.ts +23 -0
- package/src/nile-command-menu-group/nile-command-menu-group.ts +72 -0
- package/src/nile-command-menu-item/index.ts +1 -0
- package/src/nile-command-menu-item/nile-command-menu-item.css.ts +129 -0
- package/src/nile-command-menu-item/nile-command-menu-item.test.ts +36 -0
- package/src/nile-command-menu-item/nile-command-menu-item.ts +172 -0
- package/src/nile-dialog/nile-dialog.ts +1 -1
- package/src/nile-dot-stepper/index.ts +1 -0
- package/src/nile-dot-stepper/nile-dot-stepper.css.ts +90 -0
- package/src/nile-dot-stepper/nile-dot-stepper.test.ts +493 -0
- package/src/nile-dot-stepper/nile-dot-stepper.ts +159 -0
- package/src/nile-section-message/nile-section-message.css.ts +7 -8
- package/stories/dot-stepper.stories.ts +67 -0
- package/vscode-html-custom-data.json +179 -0
- package/dist/index-c0b5232c.cjs.js +0 -2
- package/dist/index-c0b5232c.cjs.js.map +0 -1
- package/dist/index-e43a18eb.esm.js +0 -1
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { expect, fixture, html, oneEvent } from '@open-wc/testing';
|
|
2
|
+
import './nile-dot-stepper';
|
|
3
|
+
const dots = (el) => Array.from(el.shadowRoot.querySelectorAll('[part="dot"]'));
|
|
4
|
+
describe('NileDotStepper', () => {
|
|
5
|
+
// --- Basic rendering ---
|
|
6
|
+
it('1. renders', async () => {
|
|
7
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
8
|
+
expect(el).to.exist;
|
|
9
|
+
});
|
|
10
|
+
it('2. shadow root', async () => {
|
|
11
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
12
|
+
expect(el.shadowRoot).to.not.be.null;
|
|
13
|
+
});
|
|
14
|
+
it('3. tag name', async () => {
|
|
15
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
16
|
+
expect(el.tagName.toLowerCase()).to.equal('nile-dot-stepper');
|
|
17
|
+
});
|
|
18
|
+
it('4. is defined', async () => {
|
|
19
|
+
expect(customElements.get('nile-dot-stepper')).to.exist;
|
|
20
|
+
});
|
|
21
|
+
it('5. has styles', async () => {
|
|
22
|
+
expect((await import('./nile-dot-stepper')).NileDotStepper.styles).to.exist;
|
|
23
|
+
});
|
|
24
|
+
// --- Default property values ---
|
|
25
|
+
it('6. total defaults 0', async () => {
|
|
26
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
27
|
+
expect(el.total).to.equal(0);
|
|
28
|
+
});
|
|
29
|
+
it('7. current defaults 1', async () => {
|
|
30
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
31
|
+
expect(el.current).to.equal(1);
|
|
32
|
+
});
|
|
33
|
+
it('8. size defaults md', async () => {
|
|
34
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
35
|
+
expect(el.size).to.equal('md');
|
|
36
|
+
});
|
|
37
|
+
it('9. disabled defaults false', async () => {
|
|
38
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
39
|
+
expect(el.disabled).to.be.false;
|
|
40
|
+
});
|
|
41
|
+
it('10. no dots when total is 0', async () => {
|
|
42
|
+
const el = await fixture(html `<nile-dot-stepper></nile-dot-stepper>`);
|
|
43
|
+
expect(dots(el).length).to.equal(0);
|
|
44
|
+
});
|
|
45
|
+
// --- Reflected attributes ---
|
|
46
|
+
it('11. total reflects', async () => {
|
|
47
|
+
const el = await fixture(html `<nile-dot-stepper total="5"></nile-dot-stepper>`);
|
|
48
|
+
expect(el.getAttribute('total')).to.equal('5');
|
|
49
|
+
});
|
|
50
|
+
it('12. current reflects', async () => {
|
|
51
|
+
const el = await fixture(html `<nile-dot-stepper total="5" current="3"></nile-dot-stepper>`);
|
|
52
|
+
expect(el.getAttribute('current')).to.equal('3');
|
|
53
|
+
});
|
|
54
|
+
it('13. size reflects', async () => {
|
|
55
|
+
const el = await fixture(html `<nile-dot-stepper size="lg"></nile-dot-stepper>`);
|
|
56
|
+
expect(el.getAttribute('size')).to.equal('lg');
|
|
57
|
+
});
|
|
58
|
+
it('14. disabled reflects', async () => {
|
|
59
|
+
const el = await fixture(html `<nile-dot-stepper disabled></nile-dot-stepper>`);
|
|
60
|
+
expect(el.hasAttribute('disabled')).to.be.true;
|
|
61
|
+
});
|
|
62
|
+
// --- total renders N dots ---
|
|
63
|
+
it('15. total renders exactly N dots', async () => {
|
|
64
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5}></nile-dot-stepper>`);
|
|
65
|
+
expect(dots(el).length).to.equal(5);
|
|
66
|
+
});
|
|
67
|
+
it('16. total renders single dot', async () => {
|
|
68
|
+
const el = await fixture(html `<nile-dot-stepper .total=${1}></nile-dot-stepper>`);
|
|
69
|
+
expect(dots(el).length).to.equal(1);
|
|
70
|
+
});
|
|
71
|
+
it('17. dynamically updating total re-renders dots', async () => {
|
|
72
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3}></nile-dot-stepper>`);
|
|
73
|
+
expect(dots(el).length).to.equal(3);
|
|
74
|
+
el.total = 7;
|
|
75
|
+
await el.updateComplete;
|
|
76
|
+
expect(dots(el).length).to.equal(7);
|
|
77
|
+
});
|
|
78
|
+
// --- current marks correct active dot ---
|
|
79
|
+
it('18. current marks correct dot active', async () => {
|
|
80
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`);
|
|
81
|
+
const active = dots(el).filter((d) => d.classList.contains('dot--active'));
|
|
82
|
+
expect(active.length).to.equal(1);
|
|
83
|
+
expect(active[0].getAttribute('data-index')).to.equal('3');
|
|
84
|
+
});
|
|
85
|
+
it('19. active dot aria-selected true, others false', async () => {
|
|
86
|
+
const el = await fixture(html `<nile-dot-stepper .total=${4} .current=${2}></nile-dot-stepper>`);
|
|
87
|
+
const list = dots(el);
|
|
88
|
+
expect(list[1].getAttribute('aria-selected')).to.equal('true');
|
|
89
|
+
expect(list[0].getAttribute('aria-selected')).to.equal('false');
|
|
90
|
+
expect(list[2].getAttribute('aria-selected')).to.equal('false');
|
|
91
|
+
expect(list[3].getAttribute('aria-selected')).to.equal('false');
|
|
92
|
+
});
|
|
93
|
+
it('20. first dot active by default current=1', async () => {
|
|
94
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5}></nile-dot-stepper>`);
|
|
95
|
+
expect(dots(el)[0].classList.contains('dot--active')).to.be.true;
|
|
96
|
+
});
|
|
97
|
+
it('21. out-of-range current (too high) clamps active to last dot', async () => {
|
|
98
|
+
const el = await fixture(html `<nile-dot-stepper .total=${4} .current=${10}></nile-dot-stepper>`);
|
|
99
|
+
const active = dots(el).filter((d) => d.classList.contains('dot--active'));
|
|
100
|
+
expect(active.length).to.equal(1);
|
|
101
|
+
expect(active[0].getAttribute('data-index')).to.equal('4');
|
|
102
|
+
});
|
|
103
|
+
it('22. out-of-range current (too low) clamps active to first dot', async () => {
|
|
104
|
+
const el = await fixture(html `<nile-dot-stepper .total=${4} .current=${0}></nile-dot-stepper>`);
|
|
105
|
+
const active = dots(el).filter((d) => d.classList.contains('dot--active'));
|
|
106
|
+
expect(active.length).to.equal(1);
|
|
107
|
+
expect(active[0].getAttribute('data-index')).to.equal('1');
|
|
108
|
+
});
|
|
109
|
+
it('23. dynamic current updates active dot', async () => {
|
|
110
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`);
|
|
111
|
+
el.current = 4;
|
|
112
|
+
await el.updateComplete;
|
|
113
|
+
const active = dots(el).filter((d) => d.classList.contains('dot--active'));
|
|
114
|
+
expect(active[0].getAttribute('data-index')).to.equal('4');
|
|
115
|
+
});
|
|
116
|
+
// --- Click interaction ---
|
|
117
|
+
it('24. clicking a dot sets current', async () => {
|
|
118
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`);
|
|
119
|
+
dots(el)[2].click();
|
|
120
|
+
await el.updateComplete;
|
|
121
|
+
expect(el.current).to.equal(3);
|
|
122
|
+
});
|
|
123
|
+
it('25. clicking a dot emits nile-step-change with 1-based value', async () => {
|
|
124
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`);
|
|
125
|
+
setTimeout(() => dots(el)[3].click());
|
|
126
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
127
|
+
expect(ev.detail.value).to.equal(4);
|
|
128
|
+
});
|
|
129
|
+
it('26. clicking the first dot emits value 1', async () => {
|
|
130
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`);
|
|
131
|
+
setTimeout(() => dots(el)[0].click());
|
|
132
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
133
|
+
expect(ev.detail.value).to.equal(1);
|
|
134
|
+
});
|
|
135
|
+
it('27. nile-step-change bubbles and is composed', async () => {
|
|
136
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5}></nile-dot-stepper>`);
|
|
137
|
+
setTimeout(() => dots(el)[1].click());
|
|
138
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
139
|
+
expect(ev.bubbles).to.be.true;
|
|
140
|
+
expect(ev.composed).to.be.true;
|
|
141
|
+
});
|
|
142
|
+
// --- Disabled behaviour ---
|
|
143
|
+
it('28. disabled blocks click (no current change)', async () => {
|
|
144
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${1} disabled></nile-dot-stepper>`);
|
|
145
|
+
dots(el)[2].click();
|
|
146
|
+
await el.updateComplete;
|
|
147
|
+
expect(el.current).to.equal(1);
|
|
148
|
+
});
|
|
149
|
+
it('29. disabled blocks click (no event)', async () => {
|
|
150
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} disabled></nile-dot-stepper>`);
|
|
151
|
+
let fired = false;
|
|
152
|
+
el.addEventListener('nile-step-change', () => (fired = true));
|
|
153
|
+
dots(el)[2].click();
|
|
154
|
+
await el.updateComplete;
|
|
155
|
+
expect(fired).to.be.false;
|
|
156
|
+
});
|
|
157
|
+
it('30. disabled sets disabled attribute on each dot', async () => {
|
|
158
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3} disabled></nile-dot-stepper>`);
|
|
159
|
+
expect(dots(el).every((d) => d.disabled)).to.be.true;
|
|
160
|
+
});
|
|
161
|
+
it('31. disabled blocks keyboard interaction', async () => {
|
|
162
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${2} disabled></nile-dot-stepper>`);
|
|
163
|
+
let fired = false;
|
|
164
|
+
el.addEventListener('nile-step-change', () => (fired = true));
|
|
165
|
+
const base = el.shadowRoot.querySelector('[part="base"]');
|
|
166
|
+
base.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true }));
|
|
167
|
+
await el.updateComplete;
|
|
168
|
+
expect(el.current).to.equal(2);
|
|
169
|
+
expect(fired).to.be.false;
|
|
170
|
+
});
|
|
171
|
+
// --- Keyboard navigation ---
|
|
172
|
+
const dispatchKey = (el, key) => {
|
|
173
|
+
const base = el.shadowRoot.querySelector('[part="base"]');
|
|
174
|
+
base.dispatchEvent(new KeyboardEvent('keydown', { key, bubbles: true }));
|
|
175
|
+
};
|
|
176
|
+
it('32. ArrowRight increments current and emits value', async () => {
|
|
177
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`);
|
|
178
|
+
setTimeout(() => dispatchKey(el, 'ArrowRight'));
|
|
179
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
180
|
+
expect(ev.detail.value).to.equal(3);
|
|
181
|
+
expect(el.current).to.equal(3);
|
|
182
|
+
});
|
|
183
|
+
it('33. ArrowLeft decrements current and emits value', async () => {
|
|
184
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`);
|
|
185
|
+
setTimeout(() => dispatchKey(el, 'ArrowLeft'));
|
|
186
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
187
|
+
expect(ev.detail.value).to.equal(2);
|
|
188
|
+
expect(el.current).to.equal(2);
|
|
189
|
+
});
|
|
190
|
+
it('34. ArrowRight clamps at total', async () => {
|
|
191
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${5}></nile-dot-stepper>`);
|
|
192
|
+
setTimeout(() => dispatchKey(el, 'ArrowRight'));
|
|
193
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
194
|
+
expect(ev.detail.value).to.equal(5);
|
|
195
|
+
expect(el.current).to.equal(5);
|
|
196
|
+
});
|
|
197
|
+
it('35. ArrowLeft clamps at 1', async () => {
|
|
198
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`);
|
|
199
|
+
setTimeout(() => dispatchKey(el, 'ArrowLeft'));
|
|
200
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
201
|
+
expect(ev.detail.value).to.equal(1);
|
|
202
|
+
expect(el.current).to.equal(1);
|
|
203
|
+
});
|
|
204
|
+
it('36. Home jumps to first dot', async () => {
|
|
205
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${4}></nile-dot-stepper>`);
|
|
206
|
+
setTimeout(() => dispatchKey(el, 'Home'));
|
|
207
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
208
|
+
expect(ev.detail.value).to.equal(1);
|
|
209
|
+
expect(el.current).to.equal(1);
|
|
210
|
+
});
|
|
211
|
+
it('37. End jumps to last dot', async () => {
|
|
212
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`);
|
|
213
|
+
setTimeout(() => dispatchKey(el, 'End'));
|
|
214
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
215
|
+
expect(ev.detail.value).to.equal(5);
|
|
216
|
+
expect(el.current).to.equal(5);
|
|
217
|
+
});
|
|
218
|
+
it('38. unhandled key does not change current', async () => {
|
|
219
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`);
|
|
220
|
+
let fired = false;
|
|
221
|
+
el.addEventListener('nile-step-change', () => (fired = true));
|
|
222
|
+
dispatchKey(el, 'Enter');
|
|
223
|
+
await el.updateComplete;
|
|
224
|
+
expect(el.current).to.equal(2);
|
|
225
|
+
expect(fired).to.be.false;
|
|
226
|
+
});
|
|
227
|
+
it('39. keyboard nav moves focus to the new active dot', async () => {
|
|
228
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`);
|
|
229
|
+
dispatchKey(el, 'ArrowRight');
|
|
230
|
+
await el.updateComplete;
|
|
231
|
+
const focused = el.shadowRoot.activeElement;
|
|
232
|
+
expect(focused).to.exist;
|
|
233
|
+
expect(focused.getAttribute('data-index')).to.equal('3');
|
|
234
|
+
});
|
|
235
|
+
// --- Size variants ---
|
|
236
|
+
it('40. size sm applies dot--sm', async () => {
|
|
237
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3} size="sm"></nile-dot-stepper>`);
|
|
238
|
+
expect(dots(el).every((d) => d.classList.contains('dot--sm'))).to.be.true;
|
|
239
|
+
});
|
|
240
|
+
it('41. size md applies dot--md', async () => {
|
|
241
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3} size="md"></nile-dot-stepper>`);
|
|
242
|
+
expect(dots(el).every((d) => d.classList.contains('dot--md'))).to.be.true;
|
|
243
|
+
});
|
|
244
|
+
it('42. size lg applies dot--lg', async () => {
|
|
245
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3} size="lg"></nile-dot-stepper>`);
|
|
246
|
+
expect(dots(el).every((d) => d.classList.contains('dot--lg'))).to.be.true;
|
|
247
|
+
});
|
|
248
|
+
it('43. dynamic size update changes dot class', async () => {
|
|
249
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3} size="md"></nile-dot-stepper>`);
|
|
250
|
+
el.size = 'lg';
|
|
251
|
+
await el.updateComplete;
|
|
252
|
+
expect(dots(el).every((d) => d.classList.contains('dot--lg'))).to.be.true;
|
|
253
|
+
expect(dots(el).some((d) => d.classList.contains('dot--md'))).to.be.false;
|
|
254
|
+
});
|
|
255
|
+
// --- Accessibility / parts ---
|
|
256
|
+
it('44. base part present', async () => {
|
|
257
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3}></nile-dot-stepper>`);
|
|
258
|
+
expect(el.shadowRoot.querySelector('[part="base"]')).to.exist;
|
|
259
|
+
});
|
|
260
|
+
it('45. base has role tablist', async () => {
|
|
261
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3}></nile-dot-stepper>`);
|
|
262
|
+
expect(el.shadowRoot.querySelector('[part="base"]').getAttribute('role')).to.equal('tablist');
|
|
263
|
+
});
|
|
264
|
+
it('46. base has aria-label Progress', async () => {
|
|
265
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3}></nile-dot-stepper>`);
|
|
266
|
+
expect(el.shadowRoot.querySelector('[part="base"]').getAttribute('aria-label')).to.equal('Progress');
|
|
267
|
+
});
|
|
268
|
+
it('47. dot part present', async () => {
|
|
269
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3}></nile-dot-stepper>`);
|
|
270
|
+
expect(el.shadowRoot.querySelector('[part="dot"]')).to.exist;
|
|
271
|
+
});
|
|
272
|
+
it('48. each dot has role tab', async () => {
|
|
273
|
+
const el = await fixture(html `<nile-dot-stepper .total=${4}></nile-dot-stepper>`);
|
|
274
|
+
expect(dots(el).every((d) => d.getAttribute('role') === 'tab')).to.be.true;
|
|
275
|
+
});
|
|
276
|
+
it('49. dot aria-label is "Step N of M"', async () => {
|
|
277
|
+
const el = await fixture(html `<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`);
|
|
278
|
+
const list = dots(el);
|
|
279
|
+
expect(list[0].getAttribute('aria-label')).to.equal('Step 1 of 5');
|
|
280
|
+
expect(list[4].getAttribute('aria-label')).to.equal('Step 5 of 5');
|
|
281
|
+
});
|
|
282
|
+
it('50. roving tabindex: active 0, others -1', async () => {
|
|
283
|
+
const el = await fixture(html `<nile-dot-stepper .total=${4} .current=${3}></nile-dot-stepper>`);
|
|
284
|
+
const list = dots(el);
|
|
285
|
+
expect(list[2].getAttribute('tabindex')).to.equal('0');
|
|
286
|
+
expect(list[0].getAttribute('tabindex')).to.equal('-1');
|
|
287
|
+
expect(list[1].getAttribute('tabindex')).to.equal('-1');
|
|
288
|
+
expect(list[3].getAttribute('tabindex')).to.equal('-1');
|
|
289
|
+
});
|
|
290
|
+
it('51. roving tabindex updates after navigation', async () => {
|
|
291
|
+
const el = await fixture(html `<nile-dot-stepper .total=${4} .current=${1}></nile-dot-stepper>`);
|
|
292
|
+
el.current = 3;
|
|
293
|
+
await el.updateComplete;
|
|
294
|
+
const list = dots(el);
|
|
295
|
+
expect(list[2].getAttribute('tabindex')).to.equal('0');
|
|
296
|
+
expect(list[0].getAttribute('tabindex')).to.equal('-1');
|
|
297
|
+
});
|
|
298
|
+
it('52. dots are button elements of type button', async () => {
|
|
299
|
+
const el = await fixture(html `<nile-dot-stepper .total=${3}></nile-dot-stepper>`);
|
|
300
|
+
expect(dots(el).every((d) => d.tagName === 'BUTTON' && d.getAttribute('type') === 'button')).to.be.true;
|
|
301
|
+
});
|
|
302
|
+
it('53. full integration', async () => {
|
|
303
|
+
const el = await fixture(html `<nile-dot-stepper
|
|
304
|
+
.total=${6}
|
|
305
|
+
.current=${4}
|
|
306
|
+
size="lg"
|
|
307
|
+
></nile-dot-stepper>`);
|
|
308
|
+
expect(dots(el).length).to.equal(6);
|
|
309
|
+
expect(el.size).to.equal('lg');
|
|
310
|
+
const active = dots(el).filter((d) => d.classList.contains('dot--active'));
|
|
311
|
+
expect(active.length).to.equal(1);
|
|
312
|
+
expect(active[0].getAttribute('data-index')).to.equal('4');
|
|
313
|
+
setTimeout(() => dispatchKey(el, 'End'));
|
|
314
|
+
const ev = await oneEvent(el, 'nile-step-change');
|
|
315
|
+
expect(ev.detail.value).to.equal(6);
|
|
316
|
+
expect(el.current).to.equal(6);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
//# sourceMappingURL=nile-dot-stepper.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-dot-stepper.test.js","sourceRoot":"","sources":["../../../src/nile-dot-stepper/nile-dot-stepper.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, oneEvent } from '@open-wc/testing';\nimport './nile-dot-stepper';\nimport type { NileDotStepper } from './nile-dot-stepper';\n\nconst dots = (el: NileDotStepper) =>\n Array.from(\n el.shadowRoot!.querySelectorAll<HTMLButtonElement>('[part=\"dot\"]')\n );\n\ndescribe('NileDotStepper', () => {\n // --- Basic rendering ---\n it('1. renders', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el).to.exist;\n });\n\n it('2. shadow root', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. tag name', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.tagName.toLowerCase()).to.equal('nile-dot-stepper');\n });\n\n it('4. is defined', async () => {\n expect(customElements.get('nile-dot-stepper')).to.exist;\n });\n\n it('5. has styles', async () => {\n expect(\n (await import('./nile-dot-stepper')).NileDotStepper.styles\n ).to.exist;\n });\n\n // --- Default property values ---\n it('6. total defaults 0', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.total).to.equal(0);\n });\n\n it('7. current defaults 1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.current).to.equal(1);\n });\n\n it('8. size defaults md', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.size).to.equal('md');\n });\n\n it('9. disabled defaults false', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.disabled).to.be.false;\n });\n\n it('10. no dots when total is 0', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(0);\n });\n\n // --- Reflected attributes ---\n it('11. total reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper total=\"5\"></nile-dot-stepper>`\n );\n expect(el.getAttribute('total')).to.equal('5');\n });\n\n it('12. current reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper total=\"5\" current=\"3\"></nile-dot-stepper>`\n );\n expect(el.getAttribute('current')).to.equal('3');\n });\n\n it('13. size reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper size=\"lg\"></nile-dot-stepper>`\n );\n expect(el.getAttribute('size')).to.equal('lg');\n });\n\n it('14. disabled reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper disabled></nile-dot-stepper>`\n );\n expect(el.hasAttribute('disabled')).to.be.true;\n });\n\n // --- total renders N dots ---\n it('15. total renders exactly N dots', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5}></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(5);\n });\n\n it('16. total renders single dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${1}></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(1);\n });\n\n it('17. dynamically updating total re-renders dots', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(3);\n el.total = 7;\n await el.updateComplete;\n expect(dots(el).length).to.equal(7);\n });\n\n // --- current marks correct active dot ---\n it('18. current marks correct dot active', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`\n );\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('3');\n });\n\n it('19. active dot aria-selected true, others false', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${2}></nile-dot-stepper>`\n );\n const list = dots(el);\n expect(list[1].getAttribute('aria-selected')).to.equal('true');\n expect(list[0].getAttribute('aria-selected')).to.equal('false');\n expect(list[2].getAttribute('aria-selected')).to.equal('false');\n expect(list[3].getAttribute('aria-selected')).to.equal('false');\n });\n\n it('20. first dot active by default current=1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5}></nile-dot-stepper>`\n );\n expect(dots(el)[0].classList.contains('dot--active')).to.be.true;\n });\n\n it('21. out-of-range current (too high) clamps active to last dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${10}></nile-dot-stepper>`\n );\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('4');\n });\n\n it('22. out-of-range current (too low) clamps active to first dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${0}></nile-dot-stepper>`\n );\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('1');\n });\n\n it('23. dynamic current updates active dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n el.current = 4;\n await el.updateComplete;\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active[0].getAttribute('data-index')).to.equal('4');\n });\n\n // --- Click interaction ---\n it('24. clicking a dot sets current', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n dots(el)[2].click();\n await el.updateComplete;\n expect(el.current).to.equal(3);\n });\n\n it('25. clicking a dot emits nile-step-change with 1-based value', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n setTimeout(() => dots(el)[3].click());\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(4);\n });\n\n it('26. clicking the first dot emits value 1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`\n );\n setTimeout(() => dots(el)[0].click());\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(1);\n });\n\n it('27. nile-step-change bubbles and is composed', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5}></nile-dot-stepper>`\n );\n setTimeout(() => dots(el)[1].click());\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.bubbles).to.be.true;\n expect(ev.composed).to.be.true;\n });\n\n // --- Disabled behaviour ---\n it('28. disabled blocks click (no current change)', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1} disabled></nile-dot-stepper>`\n );\n dots(el)[2].click();\n await el.updateComplete;\n expect(el.current).to.equal(1);\n });\n\n it('29. disabled blocks click (no event)', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} disabled></nile-dot-stepper>`\n );\n let fired = false;\n el.addEventListener('nile-step-change', () => (fired = true));\n dots(el)[2].click();\n await el.updateComplete;\n expect(fired).to.be.false;\n });\n\n it('30. disabled sets disabled attribute on each dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} disabled></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.disabled)).to.be.true;\n });\n\n it('31. disabled blocks keyboard interaction', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2} disabled></nile-dot-stepper>`\n );\n let fired = false;\n el.addEventListener('nile-step-change', () => (fired = true));\n const base = el.shadowRoot!.querySelector('[part=\"base\"]')!;\n base.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true })\n );\n await el.updateComplete;\n expect(el.current).to.equal(2);\n expect(fired).to.be.false;\n });\n\n // --- Keyboard navigation ---\n const dispatchKey = (el: NileDotStepper, key: string) => {\n const base = el.shadowRoot!.querySelector('[part=\"base\"]')!;\n base.dispatchEvent(\n new KeyboardEvent('keydown', { key, bubbles: true })\n );\n };\n\n it('32. ArrowRight increments current and emits value', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowRight'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(3);\n expect(el.current).to.equal(3);\n });\n\n it('33. ArrowLeft decrements current and emits value', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowLeft'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(2);\n expect(el.current).to.equal(2);\n });\n\n it('34. ArrowRight clamps at total', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${5}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowRight'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(5);\n expect(el.current).to.equal(5);\n });\n\n it('35. ArrowLeft clamps at 1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowLeft'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(1);\n expect(el.current).to.equal(1);\n });\n\n it('36. Home jumps to first dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${4}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'Home'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(1);\n expect(el.current).to.equal(1);\n });\n\n it('37. End jumps to last dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'End'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(5);\n expect(el.current).to.equal(5);\n });\n\n it('38. unhandled key does not change current', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n let fired = false;\n el.addEventListener('nile-step-change', () => (fired = true));\n dispatchKey(el, 'Enter');\n await el.updateComplete;\n expect(el.current).to.equal(2);\n expect(fired).to.be.false;\n });\n\n it('39. keyboard nav moves focus to the new active dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n dispatchKey(el, 'ArrowRight');\n await el.updateComplete;\n const focused = el.shadowRoot!.activeElement as HTMLButtonElement;\n expect(focused).to.exist;\n expect(focused.getAttribute('data-index')).to.equal('3');\n });\n\n // --- Size variants ---\n it('40. size sm applies dot--sm', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"sm\"></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.classList.contains('dot--sm'))).to.be.true;\n });\n\n it('41. size md applies dot--md', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"md\"></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.classList.contains('dot--md'))).to.be.true;\n });\n\n it('42. size lg applies dot--lg', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"lg\"></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.classList.contains('dot--lg'))).to.be.true;\n });\n\n it('43. dynamic size update changes dot class', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"md\"></nile-dot-stepper>`\n );\n el.size = 'lg';\n await el.updateComplete;\n expect(dots(el).every((d) => d.classList.contains('dot--lg'))).to.be.true;\n expect(dots(el).some((d) => d.classList.contains('dot--md'))).to.be.false;\n });\n\n // --- Accessibility / parts ---\n it('44. base part present', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(el.shadowRoot!.querySelector('[part=\"base\"]')).to.exist;\n });\n\n it('45. base has role tablist', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(\n el.shadowRoot!.querySelector('[part=\"base\"]')!.getAttribute('role')\n ).to.equal('tablist');\n });\n\n it('46. base has aria-label Progress', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(\n el.shadowRoot!.querySelector('[part=\"base\"]')!.getAttribute('aria-label')\n ).to.equal('Progress');\n });\n\n it('47. dot part present', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(el.shadowRoot!.querySelector('[part=\"dot\"]')).to.exist;\n });\n\n it('48. each dot has role tab', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4}></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.getAttribute('role') === 'tab')).to.be.true;\n });\n\n it('49. dot aria-label is \"Step N of M\"', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n const list = dots(el);\n expect(list[0].getAttribute('aria-label')).to.equal('Step 1 of 5');\n expect(list[4].getAttribute('aria-label')).to.equal('Step 5 of 5');\n });\n\n it('50. roving tabindex: active 0, others -1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${3}></nile-dot-stepper>`\n );\n const list = dots(el);\n expect(list[2].getAttribute('tabindex')).to.equal('0');\n expect(list[0].getAttribute('tabindex')).to.equal('-1');\n expect(list[1].getAttribute('tabindex')).to.equal('-1');\n expect(list[3].getAttribute('tabindex')).to.equal('-1');\n });\n\n it('51. roving tabindex updates after navigation', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${1}></nile-dot-stepper>`\n );\n el.current = 3;\n await el.updateComplete;\n const list = dots(el);\n expect(list[2].getAttribute('tabindex')).to.equal('0');\n expect(list[0].getAttribute('tabindex')).to.equal('-1');\n });\n\n it('52. dots are button elements of type button', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(\n dots(el).every(\n (d) => d.tagName === 'BUTTON' && d.getAttribute('type') === 'button'\n )\n ).to.be.true;\n });\n\n it('53. full integration', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper\n .total=${6}\n .current=${4}\n size=\"lg\"\n ></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(6);\n expect(el.size).to.equal('lg');\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('4');\n setTimeout(() => dispatchKey(el, 'End'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(6);\n expect(el.current).to.equal(6);\n });\n});\n"]}
|
|
@@ -13,7 +13,7 @@ export const styles = css `
|
|
|
13
13
|
display: block;
|
|
14
14
|
width: 100%;
|
|
15
15
|
box-sizing: border-box;
|
|
16
|
-
--icon-button-background-color: var(--nile-colors-primary-600, var(--ng-colors-bg-
|
|
16
|
+
--icon-button-background-color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));
|
|
17
17
|
min-width: var(--nile-width-width-xxs, var(--ng-width-80));
|
|
18
18
|
-webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));
|
|
19
19
|
-moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));
|
|
@@ -57,30 +57,29 @@ export const styles = css `
|
|
|
57
57
|
nile-icon-button::part(base) {
|
|
58
58
|
background-color: var(--icon-button-background-color, var(--ng-colors-bg-primary-alt));
|
|
59
59
|
color: var(--nile-colors-dark-900, var(--ng-colors-text-brand-secondary-700));
|
|
60
|
+
padding: var(--nile-radius-md, var(--ng-radius-md));
|
|
61
|
+
border-radius: var(--nile-radius-sm, var(--ng-radius-sm));
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
.icon--primary {
|
|
63
65
|
--icon-button-background-color: var(
|
|
64
66
|
--nile-section-message-icon-background-color-primary,
|
|
65
|
-
var(--ng-colors-bg-
|
|
67
|
+
var(--ng-colors-bg-brand-solid));
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
.icon--success {
|
|
69
71
|
--icon-button-background-color: var(
|
|
70
|
-
--nile-section-message-icon-background-color-success
|
|
71
|
-
);
|
|
72
|
+
--nile-section-message-icon-background-color-success, var(--ng-colors-bg-success-solid));
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
.icon--warning {
|
|
75
76
|
--icon-button-background-color: var(
|
|
76
|
-
--nile-section-message-icon-background-color-warning
|
|
77
|
-
);
|
|
77
|
+
--nile-section-message-icon-background-color-warning, var(--ng-colors-bg-warning-solid));
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
.icon--error {
|
|
81
81
|
--icon-button-background-color: var(
|
|
82
|
-
--nile-section-message-icon-background-color-error
|
|
83
|
-
);
|
|
82
|
+
--nile-section-message-icon-background-color-error, var(--ng-colors-bg-error-solid));
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
.right__wrapper {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-section-message.css.js","sourceRoot":"","sources":["../../../src/nile-section-message/nile-section-message.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-section-message.css.js","sourceRoot":"","sources":["../../../src/nile-section-message/nile-section-message.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHxB,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 * SectionMessage CSS\n */\nexport const styles = css`\n :host {\n display: block;\n width: 100%;\n box-sizing: border-box;\n --icon-button-background-color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-solid));\n min-width: var(--nile-width-width-xxs, var(--ng-width-80));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .parent__wrapper {\n width: auto;\n display: flex;\n gap: var(--nile-spacing-lg, var(--ng-spacing-xl));\n box-sizing: border-box;\n padding: var(--nile-type-scale-4, var(--ng-spacing-xl));\n word-wrap: break-word;\n align-items: center;\n border: var(--nile-border-width-0, var(--ng-border-width-1)) solid var(--nile-section-message-background-color-primary, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-spacing-xs, var(--ng-radius-xl));\n box-shadow: var(--nile-box-shadow-none, var(--ng-shadow-lg));\n }\n\n .section--primary {\n background-color: var(--nile-section-message-background-color-primary, var(--ng-colors-bg-primary-alt));\n }\n\n .section--success {\n background-color: var(--nile-section-message-background-color-success, var(--ng-colors-bg-primary-alt));\n }\n\n .section--warning {\n background-color: var(--nile-section-message-background-color-warning, var(--ng-colors-bg-primary-alt));\n }\n\n .section--error {\n background-color: var(--nile-section-message-background-color-error, var(--ng-colors-bg-primary-alt));\n }\n\n .left__wrapper {\n align-self: start;\n height: auto;\n }\n\n nile-icon-button::part(base) {\n background-color: var(--icon-button-background-color, var(--ng-colors-bg-primary-alt));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-brand-secondary-700));\n padding: var(--nile-radius-md, var(--ng-radius-md));\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n .icon--primary {\n --icon-button-background-color: var(\n --nile-section-message-icon-background-color-primary,\n var(--ng-colors-bg-brand-solid));\n }\n\n .icon--success {\n --icon-button-background-color: var(\n --nile-section-message-icon-background-color-success, var(--ng-colors-bg-success-solid));\n }\n\n .icon--warning {\n --icon-button-background-color: var(\n --nile-section-message-icon-background-color-warning, var(--ng-colors-bg-warning-solid));\n }\n\n .icon--error {\n --icon-button-background-color: var(\n --nile-section-message-icon-background-color-error, var(--ng-colors-bg-error-solid));\n }\n\n .right__wrapper {\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n width: 100%;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n color: var(--nile-colors-dark-900, var(--ng-colors-fg-primary-900));\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n line-height: 140%;\n letter-spacing: 0.2px;\n }\n\n .section__heading {\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n }\n\n .section__description {\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-900, var(--ng-colors-fg-secondary-700));\n }\n\n .footer__actions {\n display: flex;\n gap: var(--nile-spacing-md, var(--ng-spacing-none));\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-semibold));\n cursor: pointer;\n }\n\n ::slotted([slot='footer__actions']:not(:last-child)) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-tertiary-600));\n }\n\n ::slotted([slot='footer__actions']:not(:last-child))::after {\n content: '•';\n color: var(--nile-section-message-footer-color, var(--ng-componentcolors-alpha-white-100));\n margin-left: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n`;\n\nexport default [styles];\n"]}
|
package/dist/src/version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Version utility - placeholders will be replaced during build
|
|
2
|
-
export const NILE_ELEMENTS_VERSION = '1.9.
|
|
2
|
+
export const NILE_ELEMENTS_VERSION = '1.9.5';
|
|
3
3
|
export const NILE_VERSION = '1.2.7';
|
|
4
4
|
// Set global versions for runtime access
|
|
5
5
|
if (typeof window !== 'undefined') {
|
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.9.
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.9.5';\nexport const NILE_VERSION = '1.2.7';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}
|