@dile/ui 2.27.1 → 2.27.2

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.
@@ -0,0 +1,86 @@
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import './toast.js';
3
+
4
+ describe('dile-toast', () => {
5
+ afterEach(() => {
6
+ document.body.innerHTML = '';
7
+ });
8
+
9
+ async function renderToast(html) {
10
+ document.body.innerHTML = html;
11
+ const el = document.body.querySelector('dile-toast');
12
+ await el.updateComplete;
13
+ return el;
14
+ }
15
+
16
+ async function openAndGetItem(el, text, toastType) {
17
+ el.open(text, toastType);
18
+ await el.updateComplete;
19
+ const item = el.shadowRoot.querySelector('dile-toast-item');
20
+ await item.updateComplete;
21
+ return item;
22
+ }
23
+
24
+ function wait(ms) {
25
+ return new Promise((resolve) => setTimeout(resolve, ms));
26
+ }
27
+
28
+ it('does not render a close icon by default', async () => {
29
+ const el = await renderToast('<dile-toast duration="10000"></dile-toast>');
30
+ const item = await openAndGetItem(el, 'Hello');
31
+
32
+ expect(item.shadowRoot.querySelector('.closeicon')).toBeNull();
33
+ });
34
+
35
+ it('renders the message text and status class', async () => {
36
+ const el = await renderToast('<dile-toast duration="10000"></dile-toast>');
37
+ const item = await openAndGetItem(el, 'Saved!', 'success');
38
+
39
+ expect(item.shadowRoot.querySelector('.text').textContent.trim()).toBe('Saved!');
40
+ expect(item.shadowRoot.querySelector('div').classList.contains('success')).toBe(true);
41
+ });
42
+
43
+ it('renders a close icon when showCloseIcon is set', async () => {
44
+ const el = await renderToast('<dile-toast duration="10000" showCloseIcon></dile-toast>');
45
+ const item = await openAndGetItem(el, 'Hello');
46
+
47
+ expect(item.shadowRoot.querySelector('dile-icon.closeicon')).toBeTruthy();
48
+ });
49
+
50
+ it('closing a toast dispatches dile-toast-closed-by-user with the message detail', async () => {
51
+ const el = await renderToast('<dile-toast duration="10000" showCloseIcon></dile-toast>');
52
+ const item = await openAndGetItem(el, 'Dismiss me', 'error');
53
+
54
+ let detail = null;
55
+ el.addEventListener('dile-toast-closed-by-user', (e) => { detail = e.detail; });
56
+
57
+ item.shadowRoot.querySelector('dile-icon.closeicon').click();
58
+ await el.updateComplete;
59
+
60
+ expect(detail).toBeTruthy();
61
+ expect(detail.message.text).toBe('Dismiss me');
62
+ expect(detail.message.toastType).toBe('error');
63
+ });
64
+
65
+ it('removes the closed toast from the DOM shortly after, without waiting for its duration', async () => {
66
+ const el = await renderToast('<dile-toast duration="10000" showCloseIcon></dile-toast>');
67
+ const item = await openAndGetItem(el, 'Dismiss me');
68
+
69
+ item.shadowRoot.querySelector('dile-icon.closeicon').click();
70
+ await el.updateComplete;
71
+ expect(item.shadowRoot.querySelector('div').classList.contains('hidden')).toBe(true);
72
+
73
+ await wait(600);
74
+
75
+ expect(el.shadowRoot.querySelector('dile-toast-item')).toBeNull();
76
+ });
77
+
78
+ it('still auto-hides and cleans up a toast on its own after duration elapses', async () => {
79
+ const el = await renderToast('<dile-toast duration="50"></dile-toast>');
80
+ await openAndGetItem(el, 'Auto dismiss');
81
+
82
+ await wait(1200);
83
+
84
+ expect(el.shadowRoot.querySelector('dile-toast-item')).toBeNull();
85
+ });
86
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dile/ui",
3
- "version": "2.27.1",
3
+ "version": "2.27.2",
4
4
  "description": "UI Core components from dile-components.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -27,5 +27,5 @@
27
27
  "publishConfig": {
28
28
  "access": "public"
29
29
  },
30
- "gitHead": "fec5662d02ad55763620b92b5748e45217f31b11"
30
+ "gitHead": "f096749bccd6d56731d9f8509182686c05175348"
31
31
  }
package/styles/colors.css CHANGED
@@ -34,6 +34,8 @@
34
34
  --dile-on-terciary-dark-color: #ffffff;
35
35
  --dile-gray-dark-color: #555555;
36
36
  --dile-on-gray-dark-color: #ffffff;
37
+ --dile-gray-very-light-color: #f5f5f5;
38
+ --dile-on-gray-very-light-color: #303030;
37
39
  }
38
40
 
39
41
  :root.dark-theme {
@@ -78,4 +80,6 @@
78
80
 
79
81
  --dile-gray-dark-color: #cccccc;
80
82
  --dile-on-gray-dark-color: #1e1e1e;
83
+ --dile-gray-very-light-color: #404040;
84
+ --dile-on-gray-very-light-color: #ffffff;
81
85
  }