@api-client/ui 0.0.3 → 0.0.4

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.
Files changed (86) hide show
  1. package/demo/amf/api-annotation.html +1 -0
  2. package/demo/amf/api-channel.html +1 -0
  3. package/demo/amf/api-console.html +1 -0
  4. package/demo/amf/api-documentation-document.html +1 -0
  5. package/demo/amf/api-documentation.html +1 -0
  6. package/demo/amf/api-editor.html +1 -0
  7. package/demo/amf/api-navigation.html +1 -0
  8. package/demo/amf/api-operation.html +1 -0
  9. package/demo/amf/api-payload.html +1 -0
  10. package/demo/amf/api-request.html +1 -0
  11. package/demo/amf/api-resource.html +1 -0
  12. package/demo/amf/api-schema-documentation.html +1 -0
  13. package/demo/amf/api-security-documentation.html +1 -0
  14. package/demo/amf/api-server-picker.html +1 -0
  15. package/demo/amf/api-summary.html +1 -0
  16. package/demo/amf/bare-components.html +2 -0
  17. package/demo/amf/index.html +2 -0
  18. package/demo/amf/oauth-authorize.html +2 -0
  19. package/demo/amf/request-editor.html +1 -0
  20. package/demo/elements/authorization/api-key.html +1 -0
  21. package/demo/elements/authorization/basic.html +1 -0
  22. package/demo/elements/authorization/bearer.html +1 -0
  23. package/demo/elements/authorization/cc.html +1 -0
  24. package/demo/elements/authorization/index.html +2 -0
  25. package/demo/elements/authorization/ntlm.html +1 -0
  26. package/demo/elements/authorization/oauth-error.html +2 -0
  27. package/demo/elements/authorization/oauth-popup.html +2 -0
  28. package/demo/elements/authorization/oauth2.html +1 -0
  29. package/demo/elements/authorization/oidc.html +1 -0
  30. package/demo/elements/authorization/redirect.html +3 -1
  31. package/demo/elements/context-menu/basic.html +2 -1
  32. package/demo/elements/context-menu/custom-data.html +2 -1
  33. package/demo/elements/context-menu/enabled-state.html +2 -1
  34. package/demo/elements/context-menu/icons.html +2 -1
  35. package/demo/elements/context-menu/index.html +2 -0
  36. package/demo/elements/context-menu/nested.html +2 -1
  37. package/demo/elements/context-menu/no-execute.html +2 -1
  38. package/demo/elements/context-menu/radio-menu.html +2 -1
  39. package/demo/elements/context-menu/separators.html +2 -1
  40. package/demo/elements/environment/environment-editor.html +1 -0
  41. package/demo/elements/environment/index.html +1 -0
  42. package/demo/elements/environment/server-editor.html +1 -1
  43. package/demo/elements/environment/variables-editor.html +1 -1
  44. package/demo/elements/har/har-viewer.html +1 -0
  45. package/demo/elements/highlight/index.html +1 -0
  46. package/demo/elements/highlight/marked-highlight.html +1 -0
  47. package/demo/elements/highlight/prism-highlight.html +1 -0
  48. package/demo/elements/http/body-editor.html +1 -0
  49. package/demo/elements/http/headers.html +1 -0
  50. package/demo/elements/http/http-assertions.html +1 -0
  51. package/demo/elements/http/request-editor.html +1 -0
  52. package/demo/elements/http/request-log.html +1 -0
  53. package/demo/elements/http/url-editing.html +1 -0
  54. package/demo/elements/icons/index.html +1 -0
  55. package/demo/elements/project/project-run-report.html +1 -0
  56. package/demo/elements/project/request-editor.html +1 -0
  57. package/demo/elements/ui/buttons/api-button.html +2 -1
  58. package/demo/elements/ui/buttons/api-icon-button.html +2 -1
  59. package/demo/elements/ui/buttons/segmented-buttons.html +2 -1
  60. package/demo/elements/ui/chip/api-chip.html +2 -1
  61. package/demo/elements/ui/collapse/ui-collapse.html +2 -1
  62. package/demo/elements/ui/dialog/ui-dialog.html +2 -1
  63. package/demo/elements/ui/inputs/api-checkbox.html +2 -1
  64. package/demo/elements/ui/inputs/api-input.html +2 -1
  65. package/demo/elements/ui/inputs/api-radio.html +2 -1
  66. package/demo/elements/ui/inputs/api-switch.html +2 -1
  67. package/demo/elements/ui/list/dropdown-list.html +2 -1
  68. package/demo/elements/ui/list/list.html +2 -1
  69. package/demo/elements/ui/notification/snack.html +2 -1
  70. package/demo/elements/ui/progress/ui-progress.html +2 -1
  71. package/demo/elements/ui/tabs/tabs.html +2 -1
  72. package/dist/pages/demo/DemoPage.d.ts.map +1 -1
  73. package/dist/pages/demo/DemoPage.js +12 -11
  74. package/dist/pages/demo/DemoPage.js.map +1 -1
  75. package/dist/ui/dialog/UiDialog.d.ts +1 -1
  76. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  77. package/dist/ui/dialog/UiDialog.js +5 -3
  78. package/dist/ui/dialog/UiDialog.js.map +1 -1
  79. package/package.json +1 -1
  80. package/src/pages/demo/DemoPage.ts +12 -11
  81. package/src/ui/dialog/UiDialog.ts +6 -4
  82. package/test/ui/dialog/UiDialog.test.ts +236 -0
  83. package/demo/themes/default.css +0 -0
  84. package/demo/themes/m3/theme.dark.css +0 -40
  85. package/demo/themes/m3/theme.light.css +0 -40
  86. package/demo/themes/m3/tokens.css +0 -291
@@ -0,0 +1,236 @@
1
+ import { assert, fixture, html } from '@open-wc/testing';
2
+ import sinon from 'sinon';
3
+ import UiDialog, { UiDialogClosingReason } from '../../../src/ui/dialog/UiDialog.js';
4
+ import { UiMock } from '../../helpers/UiMock.js';
5
+ import UiButton from '../../../src/ui/button/UiButton.js';
6
+ import '../../../src/define/ui/ui-dialog.js';
7
+ import '../../../src/define/ui/ui-icon.js';
8
+
9
+ describe('UI', () => {
10
+ describe('Dialog', () => {
11
+ async function basicFixture(): Promise<UiDialog> {
12
+ return fixture(html`
13
+ <ui-dialog>
14
+ Content
15
+ </ui-dialog>`
16
+ );
17
+ }
18
+
19
+ async function modalFixture(): Promise<UiDialog> {
20
+ return fixture(html`
21
+ <ui-dialog modal>
22
+ Content
23
+ </ui-dialog>`);
24
+ }
25
+
26
+ async function iconFixture(): Promise<UiDialog> {
27
+ return fixture(html`
28
+ <ui-dialog>
29
+ <ui-icon slot="icon" icon="deleteOutline"></ui-icon>
30
+ Content
31
+ </ui-dialog>`);
32
+ }
33
+
34
+ async function titleFixture(): Promise<UiDialog> {
35
+ return fixture(html`
36
+ <ui-dialog>
37
+ <span slot="title">The title</span>
38
+ Content
39
+ </ui-dialog>`);
40
+ }
41
+
42
+ async function buttonFixture(): Promise<UiDialog> {
43
+ return fixture(html`
44
+ <ui-dialog>
45
+ Content
46
+ <ui-button slot="button" type="text">Learn more</ui-button>
47
+ <ui-button slot="button" value="dismiss" type="text">Cancel</ui-button>
48
+ <ui-button slot="button" value="confirm" type="text">Accept</ui-button>
49
+ </ui-dialog>`);
50
+ }
51
+
52
+ describe('open/close', () => {
53
+ it('opens the native dialog via the "open" attribute', async () => {
54
+ const element = await basicFixture();
55
+ assert.isFalse(element.dialog.open, 'native dialog is closed initially');
56
+
57
+ element.open = true;
58
+ await element.updateComplete;
59
+ assert.isTrue(element.dialog.open, 'native dialog is opened');
60
+
61
+ element.open = false;
62
+ await element.updateComplete;
63
+ assert.isFalse(element.dialog.open, 'native dialog is closed again');
64
+ });
65
+
66
+ it('closes the dialog via the Escape button', async () => {
67
+ const element = await buttonFixture();
68
+ // the dialog requires a focusable element
69
+ const button = element.querySelector('ui-button')!;
70
+ button.focus();
71
+ await UiMock.keyPress(element, 'Escape', { key: 'Escape' });
72
+ assert.equal(element.open, false);
73
+ });
74
+
75
+ it('closes the dialog via the dismiss slotted button', async () => {
76
+ const element = await buttonFixture();
77
+ const button = element.querySelector('ui-button[value="dismiss"]') as UiButton;
78
+ button.click();
79
+ assert.equal(element.open, false);
80
+ });
81
+
82
+ it('closes the dialog via the confirm slotted button', async () => {
83
+ const element = await buttonFixture();
84
+ const button = element.querySelector('ui-button[value="confirm"]') as UiButton;
85
+ button.click();
86
+ assert.equal(element.open, false);
87
+ });
88
+
89
+ it('closes the dialog via the dismissLabel button', async () => {
90
+ const element = await basicFixture();
91
+ element.dismissLabel = 'Close';
92
+ await element.updateComplete;
93
+ const button = element.shadowRoot!.querySelector('.internal-button[value="dismiss"]') as UiButton;
94
+ button.click();
95
+ assert.equal(element.open, false);
96
+ });
97
+
98
+ it('closes the dialog via the confirmLabel button', async () => {
99
+ const element = await basicFixture();
100
+ element.confirmLabel = 'Close';
101
+ await element.updateComplete;
102
+ const button = element.shadowRoot!.querySelector('.internal-button[value="confirm"]') as UiButton;
103
+ button.click();
104
+ assert.equal(element.open, false);
105
+ });
106
+
107
+ it('dispatches the close event with cancelled = true', async () => {
108
+ const element = await buttonFixture();
109
+ const spy = sinon.spy();
110
+ element.addEventListener('close', spy);
111
+ const button = element.querySelector('ui-button[value="dismiss"]') as UiButton;
112
+ button.click();
113
+ assert.isTrue(spy.calledOnce, 'the event was dispatched');
114
+ const event = spy.args[0][0] as CustomEvent<UiDialogClosingReason>;
115
+ assert.isTrue(event.detail.cancelled, 'the cancelled flag is set');
116
+ });
117
+
118
+ it('dispatches the close event with cancelled = true', async () => {
119
+ const element = await buttonFixture();
120
+ const spy = sinon.spy();
121
+ element.addEventListener('close', spy);
122
+ const button = element.querySelector('ui-button[value="confirm"]') as UiButton;
123
+ button.click();
124
+ assert.isTrue(spy.calledOnce, 'the event was dispatched');
125
+ const event = spy.args[0][0] as CustomEvent<UiDialogClosingReason>;
126
+ assert.isFalse(event.detail.cancelled, 'the cancelled flag is not set');
127
+ });
128
+
129
+ it('dispatches the dialogValue', async () => {
130
+ const element = await buttonFixture();
131
+ element.dialogValue = 'test';
132
+ const spy = sinon.spy();
133
+ element.addEventListener('close', spy);
134
+ const button = element.querySelector('ui-button[value="confirm"]') as UiButton;
135
+ button.click();
136
+ assert.isTrue(spy.calledOnce, 'the event was dispatched');
137
+ const event = spy.args[0][0] as CustomEvent<UiDialogClosingReason>;
138
+ assert.equal(event.detail.value, 'test', 'has the value');
139
+ });
140
+ });
141
+
142
+ describe('modal dialog', () => {
143
+ it('opens the dialog as modal', async () => {
144
+ const element = await modalFixture();
145
+ const spy = sinon.spy(element.dialog, 'showModal');
146
+ element.open = true;
147
+ await element.updateComplete;
148
+ assert.isTrue(spy.calledOnce);
149
+ });
150
+ });
151
+
152
+ describe('icon', () => {
153
+ it('renders the icon slot', async () => {
154
+ const element = await basicFixture();
155
+ const slot = element.shadowRoot!.querySelector('slot[name="icon"]') as HTMLSlotElement;
156
+ assert.ok(slot, 'has the slot');
157
+ });
158
+
159
+ it('does not render padding around the icon slot', async () => {
160
+ const element = await basicFixture();
161
+ const container = element.shadowRoot!.querySelector('.icon') as HTMLElement;
162
+ assert.isFalse(container.classList.contains('with-icon'), 'has no with-icon class');
163
+ });
164
+
165
+ it('renders padding around the icon slot with an icon', async () => {
166
+ const element = await iconFixture();
167
+ const container = element.shadowRoot!.querySelector('.icon') as HTMLElement;
168
+ assert.isTrue(container.classList.contains('with-icon'), 'has the with-icon class');
169
+ });
170
+ });
171
+
172
+ describe('title', () => {
173
+ it('renders the title slot', async () => {
174
+ const element = await basicFixture();
175
+ const slot = element.shadowRoot!.querySelector('slot[name="title"]') as HTMLSlotElement;
176
+ assert.ok(slot, 'has the slot');
177
+ });
178
+
179
+ it('does not render padding around the title slot', async () => {
180
+ const element = await basicFixture();
181
+ const container = element.shadowRoot!.querySelector('.title') as HTMLElement;
182
+ assert.isFalse(container.classList.contains('with-title'), 'has no with-title class');
183
+ });
184
+
185
+ it('renders padding around the title slot with a title', async () => {
186
+ const element = await titleFixture();
187
+ const container = element.shadowRoot!.querySelector('.title') as HTMLElement;
188
+ assert.isTrue(container.classList.contains('with-title'), 'has the with-title class');
189
+ });
190
+ });
191
+
192
+ describe('buttons', () => {
193
+ it('renders the button slot', async () => {
194
+ const element = await basicFixture();
195
+ const slot = element.shadowRoot!.querySelector('slot[name="button"]') as HTMLSlotElement;
196
+ assert.ok(slot, 'has the slot');
197
+ });
198
+
199
+ it('does not render padding around the buttons slot', async () => {
200
+ const element = await basicFixture();
201
+ const container = element.shadowRoot!.querySelector('.buttons') as HTMLElement;
202
+ assert.isFalse(container.classList.contains('with-buttons'), 'has no with-buttons class');
203
+ });
204
+
205
+ it('renders the confirm button', async () => {
206
+ const element = await basicFixture();
207
+ element.confirmLabel = 'OK label';
208
+ await element.updateComplete;
209
+ const container = element.shadowRoot!.querySelector('.buttons') as HTMLElement;
210
+ assert.isTrue(container.classList.contains('with-buttons'), 'has the with-buttons class');
211
+ const button = element.shadowRoot!.querySelector('.internal-button') as UiButton;
212
+ assert.ok(button, 'has the button');
213
+ assert.equal(button.value, 'confirm');
214
+ assert.equal(button.textContent!.trim(), 'OK label');
215
+ });
216
+
217
+ it('renders the dismiss button', async () => {
218
+ const element = await basicFixture();
219
+ element.dismissLabel = 'Cancel label';
220
+ await element.updateComplete;
221
+ const container = element.shadowRoot!.querySelector('.buttons') as HTMLElement;
222
+ assert.isTrue(container.classList.contains('with-buttons'), 'has the with-buttons class');
223
+ const button = element.shadowRoot!.querySelector('.internal-button') as UiButton;
224
+ assert.ok(button, 'has the button');
225
+ assert.equal(button.value, 'dismiss');
226
+ assert.equal(button.textContent!.trim(), 'Cancel label');
227
+ });
228
+
229
+ it('renders the slotted buttons', async () => {
230
+ const element = await buttonFixture();
231
+ const container = element.shadowRoot!.querySelector('.buttons') as HTMLElement;
232
+ assert.isTrue(container.classList.contains('with-buttons'), 'has the with-buttons class');
233
+ });
234
+ });
235
+ });
236
+ });
File without changes
@@ -1,40 +0,0 @@
1
- :root {
2
- --md-sys-color-primary: var(--md-sys-color-primary-dark);
3
- --md-sys-color-on-primary: var(--md-sys-color-on-primary-dark);
4
- --md-sys-color-primary-container: var(--md-sys-color-primary-container-dark);
5
- --md-sys-color-on-primary-container: var(--md-sys-color-on-primary-container-dark);
6
- --md-sys-color-secondary: var(--md-sys-color-secondary-dark);
7
- --md-sys-color-on-secondary: var(--md-sys-color-on-secondary-dark);
8
- --md-sys-color-secondary-container: var(--md-sys-color-secondary-container-dark);
9
- --md-sys-color-on-secondary-container: var(--md-sys-color-on-secondary-container-dark);
10
- --md-sys-color-tertiary: var(--md-sys-color-tertiary-dark);
11
- --md-sys-color-on-tertiary: var(--md-sys-color-on-tertiary-dark);
12
- --md-sys-color-tertiary-container: var(--md-sys-color-tertiary-container-dark);
13
- --md-sys-color-on-tertiary-container: var(--md-sys-color-on-tertiary-container-dark);
14
- --md-sys-color-error: var(--md-sys-color-error-dark);
15
- --md-sys-color-on-error: var(--md-sys-color-on-error-dark);
16
- --md-sys-color-error-container: var(--md-sys-color-error-container-dark);
17
- --md-sys-color-on-error-container: var(--md-sys-color-on-error-container-dark);
18
- --md-sys-color-outline: var(--md-sys-color-outline-dark);
19
- --md-sys-color-background: var(--md-sys-color-background-dark);
20
- --md-sys-color-on-background: var(--md-sys-color-on-background-dark);
21
- --md-sys-color-surface: var(--md-sys-color-surface-dark);
22
- --md-sys-color-on-surface: var(--md-sys-color-on-surface-dark);
23
- --md-sys-color-surface-variant: var(--md-sys-color-surface-variant-dark);
24
- --md-sys-color-on-surface-variant: var(--md-sys-color-on-surface-variant-dark);
25
- --md-sys-color-inverse-surface: var(--md-sys-color-inverse-surface-dark);
26
- --md-sys-color-inverse-on-surface: var(--md-sys-color-inverse-on-surface-dark);
27
- --md-sys-color-inverse-primary: var(--md-sys-color-inverse-primary-dark);
28
- --md-sys-color-shadow: var(--md-sys-color-shadow-dark);
29
- --md-sys-color-surface-tint: var(--md-sys-color-surface-tint-dark);
30
- --md-sys-color-outline-variant: var(--md-sys-color-outline-variant-dark);
31
- --md-sys-color-scrim: var(--md-sys-color-scrim-dark);
32
-
33
- /* CUSTOM */
34
- --md-sys-elevation-0: none;
35
- --md-sys-elevation-1: var(--md-sys-elevation-1-dark);
36
- --md-sys-elevation-2: var(--md-sys-elevation-2-dark);
37
- --md-sys-elevation-3: var(--md-sys-elevation-3-dark);
38
- --md-sys-elevation-4: var(--md-sys-elevation-4-dark);
39
- --md-sys-elevation-5: var(--md-sys-elevation-5-dark);
40
- }
@@ -1,40 +0,0 @@
1
- :root {
2
- --md-sys-color-primary: var(--md-sys-color-primary-light);
3
- --md-sys-color-on-primary: var(--md-sys-color-on-primary-light);
4
- --md-sys-color-primary-container: var(--md-sys-color-primary-container-light);
5
- --md-sys-color-on-primary-container: var(--md-sys-color-on-primary-container-light);
6
- --md-sys-color-secondary: var(--md-sys-color-secondary-light);
7
- --md-sys-color-on-secondary: var(--md-sys-color-on-secondary-light);
8
- --md-sys-color-secondary-container: var(--md-sys-color-secondary-container-light);
9
- --md-sys-color-on-secondary-container: var(--md-sys-color-on-secondary-container-light);
10
- --md-sys-color-tertiary: var(--md-sys-color-tertiary-light);
11
- --md-sys-color-on-tertiary: var(--md-sys-color-on-tertiary-light);
12
- --md-sys-color-tertiary-container: var(--md-sys-color-tertiary-container-light);
13
- --md-sys-color-on-tertiary-container: var(--md-sys-color-on-tertiary-container-light);
14
- --md-sys-color-error: var(--md-sys-color-error-light);
15
- --md-sys-color-on-error: var(--md-sys-color-on-error-light);
16
- --md-sys-color-error-container: var(--md-sys-color-error-container-light);
17
- --md-sys-color-on-error-container: var(--md-sys-color-on-error-container-light);
18
- --md-sys-color-outline: var(--md-sys-color-outline-light);
19
- --md-sys-color-background: var(--md-sys-color-background-light);
20
- --md-sys-color-on-background: var(--md-sys-color-on-background-light);
21
- --md-sys-color-surface: var(--md-sys-color-surface-light);
22
- --md-sys-color-on-surface: var(--md-sys-color-on-surface-light);
23
- --md-sys-color-surface-variant: var(--md-sys-color-surface-variant-light);
24
- --md-sys-color-on-surface-variant: var(--md-sys-color-on-surface-variant-light);
25
- --md-sys-color-inverse-surface: var(--md-sys-color-inverse-surface-light);
26
- --md-sys-color-inverse-on-surface: var(--md-sys-color-inverse-on-surface-light);
27
- --md-sys-color-inverse-primary: var(--md-sys-color-inverse-primary-light);
28
- --md-sys-color-shadow: var(--md-sys-color-shadow-light);
29
- --md-sys-color-surface-tint: var(--md-sys-color-surface-tint-light);
30
- --md-sys-color-outline-variant: var(--md-sys-color-outline-variant-light);
31
- --md-sys-color-scrim: var(--md-sys-color-scrim-light);
32
-
33
- /* CUSTOM */
34
- --md-sys-elevation-0: none;
35
- --md-sys-elevation-1: var(--md-sys-elevation-1-light);
36
- --md-sys-elevation-2: var(--md-sys-elevation-2-light);
37
- --md-sys-elevation-3: var(--md-sys-elevation-3-light);
38
- --md-sys-elevation-4: var(--md-sys-elevation-4-light);
39
- --md-sys-elevation-5: var(--md-sys-elevation-5-light);
40
- }
@@ -1,291 +0,0 @@
1
- :root {
2
- --md-source: #6750A4;
3
- /* primary */
4
- --md-ref-palette-primary0: #000000;
5
- --md-ref-palette-primary10: #21005D;
6
- --md-ref-palette-primary20: #381E72;
7
- --md-ref-palette-primary30: #4F378B;
8
- --md-ref-palette-primary40: #6750A4;
9
- --md-ref-palette-primary50: #7F67BE;
10
- --md-ref-palette-primary60: #9A82DB;
11
- --md-ref-palette-primary70: #B69DF8;
12
- --md-ref-palette-primary80: #D0BCFF;
13
- --md-ref-palette-primary90: #EADDFF;
14
- --md-ref-palette-primary95: #F6EDFF;
15
- --md-ref-palette-primary99: #FFFBFE;
16
- --md-ref-palette-primary100: #FFFFFF;
17
- /* secondary */
18
- --md-ref-palette-secondary0: #000000;
19
- --md-ref-palette-secondary10: #1D192B;
20
- --md-ref-palette-secondary20: #332D41;
21
- --md-ref-palette-secondary30: #4A4458;
22
- --md-ref-palette-secondary40: #625B71;
23
- --md-ref-palette-secondary50: #7A7289;
24
- --md-ref-palette-secondary60: #958DA5;
25
- --md-ref-palette-secondary70: #B0A7C0;
26
- --md-ref-palette-secondary80: #CCC2DC;
27
- --md-ref-palette-secondary90: #E8DEF8;
28
- --md-ref-palette-secondary95: #F6EDFF;
29
- --md-ref-palette-secondary99: #FFFBFE;
30
- --md-ref-palette-secondary100: #FFFFFF;
31
- /* tertiary */
32
- --md-ref-palette-tertiary0: #000000;
33
- --md-ref-palette-tertiary10: #31111D;
34
- --md-ref-palette-tertiary20: #492532;
35
- --md-ref-palette-tertiary30: #633B48;
36
- --md-ref-palette-tertiary40: #7D5260;
37
- --md-ref-palette-tertiary50: #986977;
38
- --md-ref-palette-tertiary60: #B58392;
39
- --md-ref-palette-tertiary70: #D29DAC;
40
- --md-ref-palette-tertiary80: #EFB8C8;
41
- --md-ref-palette-tertiary90: #FFD8E4;
42
- --md-ref-palette-tertiary95: #FFECF1;
43
- --md-ref-palette-tertiary99: #FFFBFA;
44
- --md-ref-palette-tertiary100: #FFFFFF;
45
- /* error */
46
- --md-ref-palette-error0: #000000;
47
- --md-ref-palette-error10: #410E0B;
48
- --md-ref-palette-error20: #601410;
49
- --md-ref-palette-error30: #8C1D18;
50
- --md-ref-palette-error40: #B3261E;
51
- --md-ref-palette-error50: #DC362E;
52
- --md-ref-palette-error60: #E46962;
53
- --md-ref-palette-error70: #EC928E;
54
- --md-ref-palette-error80: #F2B8B5;
55
- --md-ref-palette-error90: #F9DEDC;
56
- --md-ref-palette-error95: #FCEEEE;
57
- --md-ref-palette-error99: #FFFBF9;
58
- --md-ref-palette-error100: #FFFFFF;
59
- /* neutral */
60
- --md-ref-palette-neutral0: #000000;
61
- --md-ref-palette-neutral10: #1C1B1F;
62
- --md-ref-palette-neutral20: #313033;
63
- --md-ref-palette-neutral30: #484649;
64
- --md-ref-palette-neutral40: #605D62;
65
- --md-ref-palette-neutral50: #787579;
66
- --md-ref-palette-neutral60: #939094;
67
- --md-ref-palette-neutral70: #AEAAAE;
68
- --md-ref-palette-neutral80: #C9C5CA;
69
- --md-ref-palette-neutral90: #E6E1E5;
70
- --md-ref-palette-neutral95: #F4EFF4;
71
- --md-ref-palette-neutral99: #FFFBFE;
72
- --md-ref-palette-neutral100: #FFFFFF;
73
- /* neutral-variant */
74
- --md-ref-palette-neutral-variant0: #000000;
75
- --md-ref-palette-neutral-variant10: #1D1A22;
76
- --md-ref-palette-neutral-variant20: #322F37;
77
- --md-ref-palette-neutral-variant30: #49454F;
78
- --md-ref-palette-neutral-variant40: #605D66;
79
- --md-ref-palette-neutral-variant50: #79747E;
80
- --md-ref-palette-neutral-variant60: #938F99;
81
- --md-ref-palette-neutral-variant70: #AEA9B4;
82
- --md-ref-palette-neutral-variant80: #CAC4D0;
83
- --md-ref-palette-neutral-variant90: #E7E0EC;
84
- --md-ref-palette-neutral-variant95: #F5EEFA;
85
- --md-ref-palette-neutral-variant99: #FFFBFE;
86
- --md-ref-palette-neutral-variant100: #FFFFFF;
87
- /* light */
88
- --md-sys-color-primary-light: #6750A4;
89
- --md-sys-color-on-primary-light: #FFFFFF;
90
- --md-sys-color-primary-container-light: #EADDFF;
91
- --md-sys-color-on-primary-container-light: #21005D;
92
- --md-sys-color-secondary-light: #625B71;
93
- --md-sys-color-on-secondary-light: #FFFFFF;
94
- --md-sys-color-secondary-container-light: #E8DEF8;
95
- --md-sys-color-on-secondary-container-light: #1D192B;
96
- --md-sys-color-tertiary-light: #7D5260;
97
- --md-sys-color-on-tertiary-light: #FFFFFF;
98
- --md-sys-color-tertiary-container-light: #FFD8E4;
99
- --md-sys-color-on-tertiary-container-light: #31111D;
100
- --md-sys-color-error-light: #B3261E;
101
- --md-sys-color-on-error-light: #FFFFFF;
102
- --md-sys-color-error-container-light: #F9DEDC;
103
- --md-sys-color-on-error-container-light: #410E0B;
104
- --md-sys-color-outline-light: #79747E;
105
- --md-sys-color-background-light: #FFFBFE;
106
- --md-sys-color-on-background-light: #1C1B1F;
107
- --md-sys-color-surface-light: #FFFBFE;
108
- --md-sys-color-on-surface-light: #1C1B1F;
109
- --md-sys-color-surface-variant-light: #E7E0EC;
110
- --md-sys-color-on-surface-variant-light: #49454F;
111
- --md-sys-color-inverse-surface-light: #313033;
112
- --md-sys-color-inverse-on-surface-light: #F4EFF4;
113
- --md-sys-color-inverse-primary-light: #D0BCFF;
114
- --md-sys-color-shadow-light: #000000;
115
- --md-sys-color-surface-tint-light: #6750A4;
116
- --md-sys-color-outline-variant-light: #CAC4D0;
117
- --md-sys-color-scrim-light: #000000;
118
- /* dark */
119
- --md-sys-color-primary-dark: #D0BCFF;
120
- --md-sys-color-on-primary-dark: #381E72;
121
- --md-sys-color-primary-container-dark: #4F378B;
122
- --md-sys-color-on-primary-container-dark: #EADDFF;
123
- --md-sys-color-secondary-dark: #CCC2DC;
124
- --md-sys-color-on-secondary-dark: #332D41;
125
- --md-sys-color-secondary-container-dark: #4A4458;
126
- --md-sys-color-on-secondary-container-dark: #E8DEF8;
127
- --md-sys-color-tertiary-dark: #EFB8C8;
128
- --md-sys-color-on-tertiary-dark: #492532;
129
- --md-sys-color-tertiary-container-dark: #633B48;
130
- --md-sys-color-on-tertiary-container-dark: #FFD8E4;
131
- --md-sys-color-error-dark: #F2B8B5;
132
- --md-sys-color-on-error-dark: #601410;
133
- --md-sys-color-error-container-dark: #8C1D18;
134
- --md-sys-color-on-error-container-dark: #F9DEDC;
135
- --md-sys-color-outline-dark: #938F99;
136
- --md-sys-color-background-dark: #1C1B1F;
137
- --md-sys-color-on-background-dark: #E6E1E5;
138
- --md-sys-color-surface-dark: #1C1B1F;
139
- --md-sys-color-on-surface-dark: #E6E1E5;
140
- --md-sys-color-surface-variant-dark: #49454F;
141
- --md-sys-color-on-surface-variant-dark: #CAC4D0;
142
- --md-sys-color-inverse-surface-dark: #E6E1E5;
143
- --md-sys-color-inverse-on-surface-dark: #313033;
144
- --md-sys-color-inverse-primary-dark: #6750A4;
145
- --md-sys-color-shadow-dark: #000000;
146
- --md-sys-color-surface-tint-dark: #D0BCFF;
147
- --md-sys-color-outline-variant-dark: #49454F;
148
- --md-sys-color-scrim-dark: #000000;
149
- /* display - large */
150
- --md-sys-typescale-display-large-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
151
- --md-sys-typescale-display-large-font-family-style: Regular;
152
- --md-sys-typescale-display-large-font-weight: 400;
153
- --md-sys-typescale-display-large-font-size: 57px;
154
- --md-sys-typescale-display-large-line-height: 64px;
155
- --md-sys-typescale-display-large-letter-spacing: -0.25px;
156
- /* display - medium */
157
- --md-sys-typescale-display-medium-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
158
- --md-sys-typescale-display-medium-font-family-style: Regular;
159
- --md-sys-typescale-display-medium-font-weight: 400;
160
- --md-sys-typescale-display-medium-font-size: 45px;
161
- --md-sys-typescale-display-medium-line-height: 52px;
162
- --md-sys-typescale-display-medium-letter-spacing: 0px;
163
- /* display - small */
164
- --md-sys-typescale-display-small-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
165
- --md-sys-typescale-display-small-font-family-style: Regular;
166
- --md-sys-typescale-display-small-font-weight: 400;
167
- --md-sys-typescale-display-small-font-size: 36px;
168
- --md-sys-typescale-display-small-line-height: 44px;
169
- --md-sys-typescale-display-small-letter-spacing: 0px;
170
- /* headline - large */
171
- --md-sys-typescale-headline-large-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
172
- --md-sys-typescale-headline-large-font-family-style: Regular;
173
- --md-sys-typescale-headline-large-font-weight: 400;
174
- --md-sys-typescale-headline-large-font-size: 32px;
175
- --md-sys-typescale-headline-large-line-height: 40px;
176
- --md-sys-typescale-headline-large-letter-spacing: 0px;
177
- /* headline - medium */
178
- --md-sys-typescale-headline-medium-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
179
- --md-sys-typescale-headline-medium-font-family-style: Regular;
180
- --md-sys-typescale-headline-medium-font-weight: 400;
181
- --md-sys-typescale-headline-medium-font-size: 28px;
182
- --md-sys-typescale-headline-medium-line-height: 36px;
183
- --md-sys-typescale-headline-medium-letter-spacing: 0px;
184
- /* headline - small */
185
- --md-sys-typescale-headline-small-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
186
- --md-sys-typescale-headline-small-font-family-style: Regular;
187
- --md-sys-typescale-headline-small-font-weight: 400;
188
- --md-sys-typescale-headline-small-font-size: 24px;
189
- --md-sys-typescale-headline-small-line-height: 32px;
190
- --md-sys-typescale-headline-small-letter-spacing: 0px;
191
- /* body - large */
192
- --md-sys-typescale-body-large-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
193
- --md-sys-typescale-body-large-font-family-style: Regular;
194
- --md-sys-typescale-body-large-font-weight: 400;
195
- --md-sys-typescale-body-large-font-size: 16px;
196
- --md-sys-typescale-body-large-line-height: 24px;
197
- --md-sys-typescale-body-large-letter-spacing: 0.50px;
198
- /* body - medium */
199
- --md-sys-typescale-body-medium-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
200
- --md-sys-typescale-body-medium-font-family-style: Regular;
201
- --md-sys-typescale-body-medium-font-weight: 400;
202
- --md-sys-typescale-body-medium-font-size: 14px;
203
- --md-sys-typescale-body-medium-line-height: 20px;
204
- --md-sys-typescale-body-medium-letter-spacing: 0.25px;
205
- /* body - small */
206
- --md-sys-typescale-body-small-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
207
- --md-sys-typescale-body-small-font-family-style: Regular;
208
- --md-sys-typescale-body-small-font-weight: 400;
209
- --md-sys-typescale-body-small-font-size: 12px;
210
- --md-sys-typescale-body-small-line-height: 16px;
211
- --md-sys-typescale-body-small-letter-spacing: 0.40px;
212
- /* label - large */
213
- --md-sys-typescale-label-large-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
214
- --md-sys-typescale-label-large-font-family-style: Medium;
215
- --md-sys-typescale-label-large-font-weight: 500;
216
- --md-sys-typescale-label-large-font-size: 14px;
217
- --md-sys-typescale-label-large-line-height: 20px;
218
- --md-sys-typescale-label-large-letter-spacing: 0.10px;
219
- /* label - medium */
220
- --md-sys-typescale-label-medium-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
221
- --md-sys-typescale-label-medium-font-family-style: Medium;
222
- --md-sys-typescale-label-medium-font-weight: 500;
223
- --md-sys-typescale-label-medium-font-size: 12px;
224
- --md-sys-typescale-label-medium-line-height: 16px;
225
- --md-sys-typescale-label-medium-letter-spacing: 0.50px;
226
- /* label - small */
227
- --md-sys-typescale-label-small-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
228
- --md-sys-typescale-label-small-font-family-style: Medium;
229
- --md-sys-typescale-label-small-font-weight: 500;
230
- --md-sys-typescale-label-small-font-size: 11px;
231
- --md-sys-typescale-label-small-line-height: 16px;
232
- --md-sys-typescale-label-small-letter-spacing: 0.50px;
233
- /* title - large */
234
- --md-sys-typescale-title-large-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
235
- --md-sys-typescale-title-large-font-family-style: Regular;
236
- --md-sys-typescale-title-large-font-weight: 400;
237
- --md-sys-typescale-title-large-font-size: 22px;
238
- --md-sys-typescale-title-large-line-height: 28px;
239
- --md-sys-typescale-title-large-letter-spacing: 0px;
240
- /* title - medium */
241
- --md-sys-typescale-title-medium-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
242
- --md-sys-typescale-title-medium-font-family-style: Medium;
243
- --md-sys-typescale-title-medium-font-weight: 500;
244
- --md-sys-typescale-title-medium-font-size: 16px;
245
- --md-sys-typescale-title-medium-line-height: 24px;
246
- --md-sys-typescale-title-medium-letter-spacing: 0.15px;
247
- /* title - small */
248
- --md-sys-typescale-title-small-font-family-name: Roboto, system-ui, -apple-system, "Segoe UI", Ubuntu, Cantarell, "Noto Sans", sans-serif;
249
- --md-sys-typescale-title-small-font-family-style: Medium;
250
- --md-sys-typescale-title-small-font-weight: 500;
251
- --md-sys-typescale-title-small-font-size: 14px;
252
- --md-sys-typescale-title-small-line-height: 20px;
253
- --md-sys-typescale-title-small-letter-spacing: 0.10px;
254
-
255
- /* CUSTOM!!! */
256
-
257
- /* Elevation light */
258
- --md-sys-elevation-1-light: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
259
- --md-sys-elevation-2-light: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15);
260
- --md-sys-elevation-3-light: 0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3);
261
- --md-sys-elevation-4-light: 0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3);
262
- --md-sys-elevation-5-light: 0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3);
263
- /* Elevation dark */
264
- --md-sys-elevation-1-dark: 0px 1px 3px 1px rgba(0, 0, 0, 0.15), 0px 1px 2px rgba(0, 0, 0, 0.3);
265
- --md-sys-elevation-2-dark: 0px 2px 6px 2px rgba(0, 0, 0, 0.15), 0px 1px 2px rgba(0, 0, 0, 0.3);
266
- --md-sys-elevation-3-dark: 0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3);
267
- --md-sys-elevation-4-dark: 0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3);
268
- --md-sys-elevation-5-dark: 0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3);
269
- /* State layer */
270
- --md-sys-state-hover-state-layer-opacity: 0.10;
271
- --md-sys-state-focus-state-layer-opacity: 0.12;
272
- --md-sys-state-pressed-state-layer-opacity: 0.14;
273
- --md-sys-state-dragged-state-layer-opacity: 0.16;
274
- /* Rounding */
275
- --md-sys-shape-corner-none: 0;
276
- --md-sys-shape-corner-extra-small: 4px;
277
- --md-sys-shape-corner-extra-small-top: 4px 4px 0px 0px;
278
- --md-sys-shape-corner-small: 8px;
279
- --md-sys-shape-corner-medium: 12px;
280
- --md-sys-shape-corner-large: 16px;
281
- --md-sys-shape-corner-large-end: 0px 16px 16px 0px;
282
- --md-sys-shape-corner-large-top: 16px 16px 0px 0px;
283
- --md-sys-shape-corner-extra-large: 28px;
284
- --md-sys-shape-corner-extra-large-top: 28px 28px 0 0;
285
- --md-sys-shape-corner-full: 50%;
286
-
287
- --md-sys-animation-easing-standard: cubic-bezier(0.2, 0, 0, 1);
288
- --md-sys-animation-easing-acceleration: cubic-bezier(0.4, 0, 1, 1);
289
- --md-sys-animation-easing-deceleration: cubic-bezier(0, 0, 0.2, 1);
290
- --md-sys-animation-easing-sharp: cubic-bezier(0.4, 0, 0.6, 1);
291
- }