@descope/web-components-ui 3.20.4 → 3.21.1

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 (123) hide show
  1. package/dist/cjs/index.cjs.js +358 -25
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +358 -25
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1411.js +339 -0
  6. package/dist/umd/1411.js.map +1 -0
  7. package/dist/umd/189.js +171 -0
  8. package/dist/umd/189.js.map +1 -0
  9. package/dist/umd/2894.js +339 -0
  10. package/dist/umd/2894.js.map +1 -0
  11. package/dist/umd/3792.js +339 -0
  12. package/dist/umd/3792.js.map +1 -0
  13. package/dist/umd/{9117.js → 384.js} +121 -9
  14. package/dist/umd/{descope-tooltip.js.LICENSE.txt → 384.js.LICENSE.txt} +2 -2
  15. package/dist/umd/384.js.map +1 -0
  16. package/dist/umd/4268.js +339 -0
  17. package/dist/umd/4268.js.LICENSE.txt +11 -0
  18. package/dist/umd/4268.js.map +1 -0
  19. package/dist/umd/513.js +339 -0
  20. package/dist/umd/513.js.LICENSE.txt +11 -0
  21. package/dist/umd/513.js.map +1 -0
  22. package/dist/umd/6227.js +320 -0
  23. package/dist/umd/6227.js.map +1 -0
  24. package/dist/umd/6535.js +115 -0
  25. package/dist/umd/{9275.js.LICENSE.txt → 6535.js.LICENSE.txt} +0 -6
  26. package/dist/umd/6535.js.map +1 -0
  27. package/dist/umd/6649.js +339 -0
  28. package/dist/umd/6649.js.LICENSE.txt +11 -0
  29. package/dist/umd/6649.js.map +1 -0
  30. package/dist/umd/7125.js +339 -0
  31. package/dist/umd/7125.js.LICENSE.txt +11 -0
  32. package/dist/umd/7125.js.map +1 -0
  33. package/dist/umd/{5263.js → 8264.js} +5 -5
  34. package/dist/umd/8264.js.map +1 -0
  35. package/dist/umd/8983.js +7 -324
  36. package/dist/umd/8983.js.map +1 -1
  37. package/dist/umd/9030.js +339 -0
  38. package/dist/umd/9030.js.LICENSE.txt +11 -0
  39. package/dist/umd/9030.js.map +1 -0
  40. package/dist/umd/9380.js +130 -0
  41. package/dist/umd/9380.js.map +1 -0
  42. package/dist/umd/9506.js +339 -0
  43. package/dist/umd/9506.js.LICENSE.txt +11 -0
  44. package/dist/umd/9506.js.map +1 -0
  45. package/dist/umd/DescopeDev.js +1 -1
  46. package/dist/umd/DescopeDev.js.map +1 -1
  47. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  48. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js.map +1 -1
  49. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  50. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js.map +1 -1
  51. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -338
  52. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.map +1 -1
  53. package/dist/umd/descope-apps-list.js +161 -1
  54. package/dist/umd/descope-apps-list.js.LICENSE.txt +17 -0
  55. package/dist/umd/descope-apps-list.js.map +1 -1
  56. package/dist/umd/descope-avatar.js +5 -20
  57. package/dist/umd/descope-avatar.js.LICENSE.txt +0 -12
  58. package/dist/umd/descope-avatar.js.map +1 -1
  59. package/dist/umd/descope-button.js +3 -3
  60. package/dist/umd/descope-button.js.LICENSE.txt +6 -0
  61. package/dist/umd/descope-button.js.map +1 -1
  62. package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
  63. package/dist/umd/descope-date-field-descope-calendar-index-js.js.map +1 -1
  64. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +4 -321
  65. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.LICENSE.txt +0 -6
  66. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js.map +1 -1
  67. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +5 -322
  68. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.map +1 -1
  69. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +4 -321
  70. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.LICENSE.txt +0 -6
  71. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js.map +1 -1
  72. package/dist/umd/descope-multi-line-mappings.js +1 -1
  73. package/dist/umd/descope-multi-line-mappings.js.map +1 -1
  74. package/dist/umd/descope-multi-sso.js +1 -338
  75. package/dist/umd/descope-multi-sso.js.map +1 -1
  76. package/dist/umd/descope-outbound-app-button.js +1 -338
  77. package/dist/umd/descope-outbound-app-button.js.map +1 -1
  78. package/dist/umd/descope-recovery-codes.js +1 -1
  79. package/dist/umd/descope-recovery-codes.js.map +1 -1
  80. package/dist/umd/descope-timer-button.js +1 -338
  81. package/dist/umd/descope-timer-button.js.map +1 -1
  82. package/dist/umd/descope-tooltip.js +1 -2
  83. package/dist/umd/descope-tooltip.js.map +1 -1
  84. package/dist/umd/descope-upload-file-index-js.js +1 -338
  85. package/dist/umd/descope-upload-file-index-js.js.map +1 -1
  86. package/dist/umd/descope-user-attribute-index-js.js +1 -338
  87. package/dist/umd/descope-user-attribute-index-js.js.map +1 -1
  88. package/dist/umd/descope-user-auth-method-index-js.js +1 -338
  89. package/dist/umd/descope-user-auth-method-index-js.js.map +1 -1
  90. package/dist/umd/descope-user-passkeys.js +1 -338
  91. package/dist/umd/descope-user-passkeys.js.map +1 -1
  92. package/dist/umd/index.js +1 -1
  93. package/dist/umd/index.js.map +1 -1
  94. package/package.json +42 -42
  95. package/dist/umd/1453.js +0 -177
  96. package/dist/umd/1453.js.LICENSE.txt +0 -29
  97. package/dist/umd/1453.js.map +0 -1
  98. package/dist/umd/5263.js.map +0 -1
  99. package/dist/umd/6063.js +0 -18
  100. package/dist/umd/6063.js.map +0 -1
  101. package/dist/umd/6818.js +0 -3
  102. package/dist/umd/6818.js.map +0 -1
  103. package/dist/umd/8248.js +0 -171
  104. package/dist/umd/8248.js.map +0 -1
  105. package/dist/umd/8968.js +0 -432
  106. package/dist/umd/8968.js.map +0 -1
  107. package/dist/umd/9117.js.map +0 -1
  108. package/dist/umd/9275.js +0 -18
  109. package/dist/umd/9275.js.map +0 -1
  110. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js.LICENSE.txt +0 -5
  111. package/dist/umd/descope-multi-sso.js.LICENSE.txt +0 -5
  112. package/dist/umd/descope-outbound-app-button.js.LICENSE.txt +0 -5
  113. package/dist/umd/descope-timer-button.js.LICENSE.txt +0 -5
  114. package/dist/umd/descope-upload-file-index-js.js.LICENSE.txt +0 -5
  115. package/dist/umd/descope-user-attribute-index-js.js.LICENSE.txt +0 -5
  116. package/dist/umd/descope-user-passkeys.js.LICENSE.txt +0 -5
  117. /package/dist/umd/{8968.js.LICENSE.txt → 1411.js.LICENSE.txt} +0 -0
  118. /package/dist/umd/{6063.js.LICENSE.txt → 189.js.LICENSE.txt} +0 -0
  119. /package/dist/umd/{9117.js.LICENSE.txt → 2894.js.LICENSE.txt} +0 -0
  120. /package/dist/umd/{descope-user-auth-method-index-js.js.LICENSE.txt → 3792.js.LICENSE.txt} +0 -0
  121. /package/dist/umd/{6818.js.LICENSE.txt → 6227.js.LICENSE.txt} +0 -0
  122. /package/dist/umd/{5263.js.LICENSE.txt → 8264.js.LICENSE.txt} +0 -0
  123. /package/dist/umd/{8248.js.LICENSE.txt → 9380.js.LICENSE.txt} +0 -0
@@ -0,0 +1,339 @@
1
+ /*! For license information please see 7125.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[1411,3792,4268,6649,7125,9030,9506],{5745(t,e,o){o.d(e,{i:()=>r});const r=(0,o(98741).y)(t=>class extends t{static get properties(){return{disabled:{type:Boolean,value:!1,observer:"_disabledChanged",reflectToAttribute:!0}}}_disabledChanged(t){this._setAriaDisabled(t)}_setAriaDisabled(t){t?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled")}click(){this.disabled||super.click()}})},7888(t,e,o){o.d(e,{f:()=>r});const r=(0,o(98741).y)(t=>class extends t{ready(){super.ready(),this.addEventListener("keydown",t=>{this._onKeyDown(t)}),this.addEventListener("keyup",t=>{this._onKeyUp(t)})}_onKeyDown(t){switch(t.key){case"Enter":this._onEnter(t);break;case"Escape":this._onEscape(t)}}_onKeyUp(t){}_onEnter(t){}_onEscape(t){}})},36176(t,e,o){o.d(e,{l:()=>a});var r=o(5745);const a=t=>class extends((0,r.i)(t)){static get properties(){return{tabindex:{type:Number,reflectToAttribute:!0,observer:"_tabindexChanged"},_lastTabIndex:{type:Number}}}_disabledChanged(t,e){super._disabledChanged(t,e),t?(void 0!==this.tabindex&&(this._lastTabIndex=this.tabindex),this.tabindex=-1):e&&(this.tabindex=this._lastTabIndex)}_tabindexChanged(t){this.disabled&&-1!==t&&(this._lastTabIndex=t,this.tabindex=-1)}}},89389(t,e,o){o.d(e,{$:()=>b});var r=o(13256),a=o(55774),i=o(82901),n=o(72562),s=o(81488),l=o(87550);const d=o(51450).AH`
3
+ :host {
4
+ display: inline-block;
5
+ position: relative;
6
+ outline: none;
7
+ white-space: nowrap;
8
+ -webkit-user-select: none;
9
+ -moz-user-select: none;
10
+ user-select: none;
11
+ }
12
+
13
+ :host([hidden]) {
14
+ display: none !important;
15
+ }
16
+
17
+ /* Aligns the button with form fields when placed on the same line.
18
+ Note, to make it work, the form fields should have the same "::before" pseudo-element. */
19
+ .vaadin-button-container::before {
20
+ content: '\\2003';
21
+ display: inline-block;
22
+ width: 0;
23
+ max-height: 100%;
24
+ }
25
+
26
+ .vaadin-button-container {
27
+ display: inline-flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ text-align: center;
31
+ width: 100%;
32
+ height: 100%;
33
+ min-height: inherit;
34
+ text-shadow: inherit;
35
+ }
36
+
37
+ [part='prefix'],
38
+ [part='suffix'] {
39
+ flex: none;
40
+ }
41
+
42
+ [part='label'] {
43
+ white-space: nowrap;
44
+ overflow: hidden;
45
+ text-overflow: ellipsis;
46
+ }
47
+
48
+ @media (forced-colors: active) {
49
+ :host {
50
+ outline: 1px solid;
51
+ outline-offset: -1px;
52
+ }
53
+
54
+ :host([focused]) {
55
+ outline-width: 2px;
56
+ }
57
+
58
+ :host([disabled]) {
59
+ outline-color: GrayText;
60
+ }
61
+ }
62
+ `;var c=o(84467),u=o(53149),h=o(36176);const m=t=>class extends((0,c.e)((0,h.l)((0,u.y)(t)))){static get properties(){return{tabindex:{type:Number,value:0,reflectToAttribute:!0}}}get _activeKeys(){return["Enter"," "]}ready(){super.ready(),this.hasAttribute("role")||this.setAttribute("role","button")}_onKeyDown(t){super._onKeyDown(t),t.altKey||t.shiftKey||t.ctrlKey||t.metaKey||this._activeKeys.includes(t.key)&&(t.preventDefault(),this.click())}};(0,l.SF)("vaadin-button",d,{moduleId:"vaadin-button-styles"});class b extends(m((0,n.q)((0,l.cp)((0,a.w)(r.Pu))))){static get is(){return"vaadin-button"}static get template(){return r.qy`
63
+ <div class="vaadin-button-container">
64
+ <span part="prefix" aria-hidden="true">
65
+ <slot name="prefix"></slot>
66
+ </span>
67
+ <span part="label">
68
+ <slot></slot>
69
+ </span>
70
+ <span part="suffix" aria-hidden="true">
71
+ <slot name="suffix"></slot>
72
+ </span>
73
+ </div>
74
+ <slot name="tooltip"></slot>
75
+ `}ready(){super.ready(),this._tooltipController=new s.I(this),this.addController(this._tooltipController)}}(0,i.X)(b)},93555(t,e,o){o.d(e,{x:()=>a}),o(64511),o(42068),o(9433),o(3241),o(83315);var r=o(87550);const a=r.AH`
76
+ :host {
77
+ /* Sizing */
78
+ --lumo-button-size: var(--lumo-size-m);
79
+ min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));
80
+ height: var(--_button-size);
81
+ padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));
82
+ margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);
83
+ box-sizing: border-box;
84
+ /* Style */
85
+ font-family: var(--lumo-font-family);
86
+ font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));
87
+ font-weight: var(--vaadin-button-font-weight, 500);
88
+ color: var(--_lumo-button-text-color);
89
+ background: var(--_lumo-button-background);
90
+ border: var(--vaadin-button-border, none);
91
+ border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));
92
+ cursor: var(--lumo-clickable-cursor);
93
+ -webkit-tap-highlight-color: transparent;
94
+ -webkit-font-smoothing: antialiased;
95
+ -moz-osx-font-smoothing: grayscale;
96
+ flex-shrink: 0;
97
+ --_button-size: var(--vaadin-button-height, var(--lumo-button-size));
98
+ --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));
99
+ --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);
100
+ /* Used by notification */
101
+ --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));
102
+ --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));
103
+ --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));
104
+ --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));
105
+ }
106
+
107
+ /* Set only for the internal parts so we don't affect the host vertical alignment */
108
+ [part='label'],
109
+ [part='prefix'],
110
+ [part='suffix'] {
111
+ line-height: var(--lumo-line-height-xs);
112
+ }
113
+
114
+ [part='label'] {
115
+ padding: calc(var(--lumo-button-size) / 6) 0;
116
+ }
117
+
118
+ :host([theme~='small']) {
119
+ font-size: var(--lumo-font-size-s);
120
+ --lumo-button-size: var(--lumo-size-s);
121
+ }
122
+
123
+ :host([theme~='large']) {
124
+ font-size: var(--lumo-font-size-l);
125
+ --lumo-button-size: var(--lumo-size-l);
126
+ }
127
+
128
+ /* For interaction states */
129
+ :host::before,
130
+ :host::after {
131
+ content: '';
132
+ /* We rely on the host always being relative */
133
+ position: absolute;
134
+ z-index: 1;
135
+ inset: 0;
136
+ background-color: currentColor;
137
+ border-radius: inherit;
138
+ opacity: 0;
139
+ pointer-events: none;
140
+ }
141
+
142
+ /* Hover */
143
+
144
+ @media (any-hover: hover) {
145
+ :host(:hover)::before {
146
+ opacity: 0.02;
147
+ }
148
+ }
149
+
150
+ /* Active */
151
+
152
+ :host::after {
153
+ transition: opacity 1.4s, transform 0.1s;
154
+ filter: blur(8px);
155
+ }
156
+
157
+ :host([active])::before {
158
+ opacity: 0.05;
159
+ transition-duration: 0s;
160
+ }
161
+
162
+ :host([active])::after {
163
+ opacity: 0.1;
164
+ transition-duration: 0s, 0s;
165
+ transform: scale(0);
166
+ }
167
+
168
+ /* Keyboard focus */
169
+
170
+ :host([focus-ring]) {
171
+ box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);
172
+ }
173
+
174
+ :host([theme~='primary'][focus-ring]) {
175
+ box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);
176
+ }
177
+
178
+ /* Types (primary, tertiary, tertiary-inline */
179
+
180
+ :host([theme~='tertiary']),
181
+ :host([theme~='tertiary-inline']) {
182
+ --_background: transparent !important;
183
+ background: var(--vaadin-button-tertiary-background, var(--_background));
184
+ min-width: 0;
185
+ }
186
+
187
+ :host([theme~='tertiary']) {
188
+ border: var(--vaadin-button-tertiary-border, none);
189
+ color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));
190
+ font-weight: var(--vaadin-button-tertiary-font-weight, 500);
191
+ padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));
192
+ }
193
+
194
+ :host([theme~='tertiary-inline'])::before {
195
+ display: none;
196
+ }
197
+
198
+ :host([theme~='tertiary-inline']) {
199
+ margin: 0;
200
+ height: auto;
201
+ padding: 0;
202
+ line-height: inherit;
203
+ font-size: inherit;
204
+ }
205
+
206
+ :host([theme~='tertiary-inline']) [part='label'] {
207
+ padding: 0;
208
+ overflow: visible;
209
+ line-height: inherit;
210
+ }
211
+
212
+ :host([theme~='primary']) {
213
+ background: var(--_lumo-button-primary-background);
214
+ border: var(--vaadin-button-primary-border, none);
215
+ color: var(--_lumo-button-primary-text-color);
216
+ font-weight: var(--vaadin-button-primary-font-weight, 600);
217
+ min-width: calc(var(--lumo-button-size) * 2.5);
218
+ }
219
+
220
+ :host([theme~='primary'])::before {
221
+ background-color: black;
222
+ }
223
+
224
+ @media (any-hover: hover) {
225
+ :host([theme~='primary']:hover)::before {
226
+ opacity: 0.05;
227
+ }
228
+ }
229
+
230
+ :host([theme~='primary'][active])::before {
231
+ opacity: 0.1;
232
+ }
233
+
234
+ :host([theme~='primary'][active])::after {
235
+ opacity: 0.2;
236
+ }
237
+
238
+ /* Colors (success, error, contrast) */
239
+
240
+ :host([theme~='success']) {
241
+ color: var(--lumo-success-text-color);
242
+ }
243
+
244
+ :host([theme~='success'][theme~='primary']) {
245
+ background-color: var(--lumo-success-color);
246
+ color: var(--lumo-success-contrast-color);
247
+ }
248
+
249
+ :host([theme~='error']) {
250
+ color: var(--lumo-error-text-color);
251
+ }
252
+
253
+ :host([theme~='error'][theme~='primary']) {
254
+ background-color: var(--lumo-error-color);
255
+ color: var(--lumo-error-contrast-color);
256
+ }
257
+
258
+ :host([theme~='contrast']) {
259
+ color: var(--lumo-contrast);
260
+ }
261
+
262
+ :host([theme~='contrast'][theme~='primary']) {
263
+ background-color: var(--lumo-contrast);
264
+ color: var(--lumo-base-color);
265
+ }
266
+
267
+ /* Disabled state. Keep selectors after other color variants. */
268
+
269
+ :host([disabled]) {
270
+ pointer-events: none;
271
+ color: var(--lumo-disabled-text-color);
272
+ }
273
+
274
+ :host([theme~='primary'][disabled]) {
275
+ background-color: var(--lumo-contrast-30pct);
276
+ color: var(--lumo-base-color);
277
+ }
278
+
279
+ :host([theme~='primary'][disabled]) [part] {
280
+ opacity: 0.7;
281
+ }
282
+
283
+ /* Icons */
284
+
285
+ [part] ::slotted(vaadin-icon) {
286
+ display: inline-block;
287
+ width: var(--lumo-icon-size-m);
288
+ height: var(--lumo-icon-size-m);
289
+ }
290
+
291
+ /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */
292
+ [part] ::slotted(vaadin-icon[icon^='vaadin:']) {
293
+ padding: 0.25em;
294
+ box-sizing: border-box !important;
295
+ }
296
+
297
+ [part='prefix'] {
298
+ margin-left: -0.25em;
299
+ margin-right: 0.25em;
300
+ }
301
+
302
+ [part='suffix'] {
303
+ margin-left: 0.25em;
304
+ margin-right: -0.25em;
305
+ }
306
+
307
+ /* Icon-only */
308
+
309
+ :host([theme~='icon']:not([theme~='tertiary-inline'])) {
310
+ min-width: var(--lumo-button-size);
311
+ padding-left: calc(var(--lumo-button-size) / 4);
312
+ padding-right: calc(var(--lumo-button-size) / 4);
313
+ }
314
+
315
+ :host([theme~='icon']) [part='prefix'],
316
+ :host([theme~='icon']) [part='suffix'] {
317
+ margin-left: 0;
318
+ margin-right: 0;
319
+ }
320
+
321
+ /* RTL specific styles */
322
+
323
+ :host([dir='rtl']) [part='prefix'] {
324
+ margin-left: 0.25em;
325
+ margin-right: -0.25em;
326
+ }
327
+
328
+ :host([dir='rtl']) [part='suffix'] {
329
+ margin-left: -0.25em;
330
+ margin-right: 0.25em;
331
+ }
332
+
333
+ :host([dir='rtl'][theme~='icon']) [part='prefix'],
334
+ :host([dir='rtl'][theme~='icon']) [part='suffix'] {
335
+ margin-left: 0;
336
+ margin-right: 0;
337
+ }
338
+ `;(0,r.SF)("vaadin-button",a,{moduleId:"lumo-button"})},83799(t,e,o){o(93555),o(89389)}}]);
339
+ //# sourceMappingURL=7125.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2017 - 2023 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+
7
+ /**
8
+ * @license
9
+ * Copyright (c) 2021 - 2023 Vaadin Ltd.
10
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
11
+ */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7125.js","mappings":"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","sources":["webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/a11y-base/src/disabled-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/a11y-base/src/keyboard-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/a11y-base/src/tabindex-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/src/vaadin-button-base.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/src/vaadin-button-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/src/vaadin-button.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/theme/lumo/vaadin-button-styles.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * A mixin to provide disabled property for field components.\n *\n * @polymerMixin\n */\nexport const DisabledMixin = dedupingMixin(\n (superclass) =>\n class DisabledMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * If true, the user cannot interact with this element.\n */\n disabled: {\n type: Boolean,\n value: false,\n observer: '_disabledChanged',\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _disabledChanged(disabled) {\n this._setAriaDisabled(disabled);\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _setAriaDisabled(disabled) {\n if (disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n\n /**\n * Overrides the default element `click` method in order to prevent\n * firing the `click` event when the element is disabled.\n * @protected\n * @override\n */\n click() {\n if (!this.disabled) {\n super.click();\n }\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * A mixin that manages keyboard handling.\n * The mixin subscribes to the keyboard events while an actual implementation\n * for the event handlers is left to the client (a component or another mixin).\n *\n * @polymerMixin\n */\nexport const KeyboardMixin = dedupingMixin(\n (superclass) =>\n class KeyboardMixinClass extends superclass {\n /** @protected */\n ready() {\n super.ready();\n\n this.addEventListener('keydown', (event) => {\n this._onKeyDown(event);\n });\n\n this.addEventListener('keyup', (event) => {\n this._onKeyUp(event);\n });\n }\n\n /**\n * A handler for the `keydown` event. By default, it calls\n * separate methods for handling \"Enter\" and \"Escape\" keys.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} event\n * @protected\n */\n _onKeyDown(event) {\n switch (event.key) {\n case 'Enter':\n this._onEnter(event);\n break;\n case 'Escape':\n this._onEscape(event);\n break;\n default:\n break;\n }\n }\n\n /**\n * A handler for the `keyup` event. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onKeyUp(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Enter\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEnter(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Escape\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEscape(_event) {\n // To be implemented.\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { DisabledMixin } from './disabled-mixin.js';\n\n/**\n * A mixin to toggle the `tabindex` attribute.\n *\n * The attribute is set to -1 whenever the user disables the element\n * and restored with the last known value once the element is enabled.\n *\n * @polymerMixin\n * @mixes DisabledMixin\n */\nexport const TabindexMixin = (superclass) =>\n class TabindexMixinClass extends DisabledMixin(superclass) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @protected\n */\n tabindex: {\n type: Number,\n reflectToAttribute: true,\n observer: '_tabindexChanged',\n },\n\n /**\n * Stores the last known tabindex since the element has been disabled.\n *\n * @protected\n */\n _lastTabIndex: {\n type: Number,\n },\n };\n }\n\n /**\n * When the element gets disabled, the observer saves the last known tabindex\n * and makes the element not focusable by setting tabindex to -1.\n * As soon as the element gets enabled, the observer restores the last known tabindex\n * so that the element can be focusable again.\n *\n * @protected\n * @override\n */\n _disabledChanged(disabled, oldDisabled) {\n super._disabledChanged(disabled, oldDisabled);\n\n if (disabled) {\n if (this.tabindex !== undefined) {\n this._lastTabIndex = this.tabindex;\n }\n this.tabindex = -1;\n } else if (oldDisabled) {\n this.tabindex = this._lastTabIndex;\n }\n }\n\n /**\n * When the user has changed tabindex while the element is disabled,\n * the observer reverts tabindex to -1 and rather saves the new tabindex value to apply it later.\n * The new value will be applied as soon as the element becomes enabled.\n *\n * @protected\n */\n _tabindexChanged(tabindex) {\n if (this.disabled && tabindex !== -1) {\n this._lastTabIndex = tabindex;\n this.tabindex = -1;\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from 'lit';\n\nexport const buttonStyles = css`\n :host {\n display: inline-block;\n position: relative;\n outline: none;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Aligns the button with form fields when placed on the same line.\n Note, to make it work, the form fields should have the same \"::before\" pseudo-element. */\n .vaadin-button-container::before {\n content: '\\\\2003';\n display: inline-block;\n width: 0;\n max-height: 100%;\n }\n\n .vaadin-button-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n height: 100%;\n min-height: inherit;\n text-shadow: inherit;\n }\n\n [part='prefix'],\n [part='suffix'] {\n flex: none;\n }\n\n [part='label'] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (forced-colors: active) {\n :host {\n outline: 1px solid;\n outline-offset: -1px;\n }\n\n :host([focused]) {\n outline-width: 2px;\n }\n\n :host([disabled]) {\n outline-color: GrayText;\n }\n }\n`;\n\nexport const buttonTemplate = (html) => html`\n <div class=\"vaadin-button-container\">\n <span part=\"prefix\" aria-hidden=\"true\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" aria-hidden=\"true\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n <slot name=\"tooltip\"></slot>\n`;\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { ActiveMixin } from '@vaadin/a11y-base/src/active-mixin.js';\nimport { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\nimport { TabindexMixin } from '@vaadin/a11y-base/src/tabindex-mixin.js';\n\n/**\n * A mixin providing common button functionality.\n *\n * @polymerMixin\n * @mixes ActiveMixin\n * @mixes FocusMixin\n * @mixes TabindexMixin\n */\nexport const ButtonMixin = (superClass) =>\n class ButtonMixinClass extends ActiveMixin(TabindexMixin(FocusMixin(superClass))) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @override\n * @protected\n */\n tabindex: {\n type: Number,\n value: 0,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * By default, `Space` is the only possible activation key for a focusable HTML element.\n * Nonetheless, the button is an exception as it can be also activated by pressing `Enter`.\n * See the \"Keyboard Support\" section in https://www.w3.org/TR/wai-aria-practices/examples/button/button.html.\n *\n * @protected\n * @override\n */\n get _activeKeys() {\n return ['Enter', ' '];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n // By default, if the user hasn't provided a custom role,\n // the role attribute is set to \"button\".\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n }\n\n /**\n * Since the button component is designed on the base of the `[role=button]` attribute,\n * and doesn't have a native <button> inside, in order to be fully accessible from the keyboard,\n * it should manually fire the `click` event once an activation key is pressed,\n * as it follows from the WAI-ARIA specifications:\n * https://www.w3.org/TR/wai-aria-practices-1.1/#button\n *\n * According to the UI Events specifications,\n * the `click` event should be fired exactly on `keydown`:\n * https://www.w3.org/TR/uievents/#event-type-keydown\n *\n * @param {KeyboardEvent} event\n * @protected\n * @override\n */\n _onKeyDown(event) {\n super._onKeyDown(event);\n\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (this._activeKeys.includes(event.key)) {\n event.preventDefault();\n\n // `DisabledMixin` overrides the standard `click()` method\n // so that it doesn't fire the `click` event when the element is disabled.\n this.click();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { buttonStyles, buttonTemplate } from './vaadin-button-base.js';\nimport { ButtonMixin } from './vaadin-button-mixin.js';\n\nregisterStyles('vaadin-button', buttonStyles, { moduleId: 'vaadin-button-styles' });\n\n/**\n * `<vaadin-button>` is an accessible and customizable button that allows users to perform actions.\n *\n * ```html\n * <vaadin-button>Press me</vaadin-button>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------|-------------\n * `label` | The label (text) inside the button.\n * `prefix` | A slot for content before the label (e.g. an icon).\n * `suffix` | A slot for content after the label (e.g. an icon).\n *\n * The following attributes are available for styling:\n *\n * Attribute | Description\n * -------------|-------------\n * `active` | Set when the button is pressed down, either with mouse, touch or the keyboard.\n * `disabled` | Set when the button is disabled.\n * `focus-ring` | Set when the button is focused using the keyboard.\n * `focused` | Set when the button is focused.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ButtonMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Button extends ButtonMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get is() {\n return 'vaadin-button';\n }\n\n static get template() {\n return buttonTemplate(html);\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(Button);\n\nexport { Button };\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst button = css`\n :host {\n /* Sizing */\n --lumo-button-size: var(--lumo-size-m);\n min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));\n height: var(--_button-size);\n padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));\n margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);\n box-sizing: border-box;\n /* Style */\n font-family: var(--lumo-font-family);\n font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));\n font-weight: var(--vaadin-button-font-weight, 500);\n color: var(--_lumo-button-text-color);\n background: var(--_lumo-button-background);\n border: var(--vaadin-button-border, none);\n border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));\n cursor: var(--lumo-clickable-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n flex-shrink: 0;\n --_button-size: var(--vaadin-button-height, var(--lumo-button-size));\n --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);\n /* Used by notification */\n --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));\n --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));\n --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));\n --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));\n }\n\n /* Set only for the internal parts so we don't affect the host vertical alignment */\n [part='label'],\n [part='prefix'],\n [part='suffix'] {\n line-height: var(--lumo-line-height-xs);\n }\n\n [part='label'] {\n padding: calc(var(--lumo-button-size) / 6) 0;\n }\n\n :host([theme~='small']) {\n font-size: var(--lumo-font-size-s);\n --lumo-button-size: var(--lumo-size-s);\n }\n\n :host([theme~='large']) {\n font-size: var(--lumo-font-size-l);\n --lumo-button-size: var(--lumo-size-l);\n }\n\n /* For interaction states */\n :host::before,\n :host::after {\n content: '';\n /* We rely on the host always being relative */\n position: absolute;\n z-index: 1;\n inset: 0;\n background-color: currentColor;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n }\n\n /* Hover */\n\n @media (any-hover: hover) {\n :host(:hover)::before {\n opacity: 0.02;\n }\n }\n\n /* Active */\n\n :host::after {\n transition: opacity 1.4s, transform 0.1s;\n filter: blur(8px);\n }\n\n :host([active])::before {\n opacity: 0.05;\n transition-duration: 0s;\n }\n\n :host([active])::after {\n opacity: 0.1;\n transition-duration: 0s, 0s;\n transform: scale(0);\n }\n\n /* Keyboard focus */\n\n :host([focus-ring]) {\n box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);\n }\n\n :host([theme~='primary'][focus-ring]) {\n box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);\n }\n\n /* Types (primary, tertiary, tertiary-inline */\n\n :host([theme~='tertiary']),\n :host([theme~='tertiary-inline']) {\n --_background: transparent !important;\n background: var(--vaadin-button-tertiary-background, var(--_background));\n min-width: 0;\n }\n\n :host([theme~='tertiary']) {\n border: var(--vaadin-button-tertiary-border, none);\n color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));\n font-weight: var(--vaadin-button-tertiary-font-weight, 500);\n padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));\n }\n\n :host([theme~='tertiary-inline'])::before {\n display: none;\n }\n\n :host([theme~='tertiary-inline']) {\n margin: 0;\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: inherit;\n }\n\n :host([theme~='tertiary-inline']) [part='label'] {\n padding: 0;\n overflow: visible;\n line-height: inherit;\n }\n\n :host([theme~='primary']) {\n background: var(--_lumo-button-primary-background);\n border: var(--vaadin-button-primary-border, none);\n color: var(--_lumo-button-primary-text-color);\n font-weight: var(--vaadin-button-primary-font-weight, 600);\n min-width: calc(var(--lumo-button-size) * 2.5);\n }\n\n :host([theme~='primary'])::before {\n background-color: black;\n }\n\n @media (any-hover: hover) {\n :host([theme~='primary']:hover)::before {\n opacity: 0.05;\n }\n }\n\n :host([theme~='primary'][active])::before {\n opacity: 0.1;\n }\n\n :host([theme~='primary'][active])::after {\n opacity: 0.2;\n }\n\n /* Colors (success, error, contrast) */\n\n :host([theme~='success']) {\n color: var(--lumo-success-text-color);\n }\n\n :host([theme~='success'][theme~='primary']) {\n background-color: var(--lumo-success-color);\n color: var(--lumo-success-contrast-color);\n }\n\n :host([theme~='error']) {\n color: var(--lumo-error-text-color);\n }\n\n :host([theme~='error'][theme~='primary']) {\n background-color: var(--lumo-error-color);\n color: var(--lumo-error-contrast-color);\n }\n\n :host([theme~='contrast']) {\n color: var(--lumo-contrast);\n }\n\n :host([theme~='contrast'][theme~='primary']) {\n background-color: var(--lumo-contrast);\n color: var(--lumo-base-color);\n }\n\n /* Disabled state. Keep selectors after other color variants. */\n\n :host([disabled]) {\n pointer-events: none;\n color: var(--lumo-disabled-text-color);\n }\n\n :host([theme~='primary'][disabled]) {\n background-color: var(--lumo-contrast-30pct);\n color: var(--lumo-base-color);\n }\n\n :host([theme~='primary'][disabled]) [part] {\n opacity: 0.7;\n }\n\n /* Icons */\n\n [part] ::slotted(vaadin-icon) {\n display: inline-block;\n width: var(--lumo-icon-size-m);\n height: var(--lumo-icon-size-m);\n }\n\n /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */\n [part] ::slotted(vaadin-icon[icon^='vaadin:']) {\n padding: 0.25em;\n box-sizing: border-box !important;\n }\n\n [part='prefix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n [part='suffix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n /* Icon-only */\n\n :host([theme~='icon']:not([theme~='tertiary-inline'])) {\n min-width: var(--lumo-button-size);\n padding-left: calc(var(--lumo-button-size) / 4);\n padding-right: calc(var(--lumo-button-size) / 4);\n }\n\n :host([theme~='icon']) [part='prefix'],\n :host([theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='prefix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n :host([dir='rtl']) [part='suffix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n :host([dir='rtl'][theme~='icon']) [part='prefix'],\n :host([dir='rtl'][theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nregisterStyles('vaadin-button', button, { moduleId: 'lumo-button' });\n\nexport { button };\n"],"names":["DisabledMixin","y","superclass","properties","disabled","type","Boolean","value","observer","reflectToAttribute","_disabledChanged","this","_setAriaDisabled","setAttribute","removeAttribute","click","super","KeyboardMixin","ready","addEventListener","event","_onKeyDown","_onKeyUp","key","_onEnter","_onEscape","_event","TabindexMixin","_disabled_mixin_js__WEBPACK_IMPORTED_MODULE_0__","i","tabindex","Number","_lastTabIndex","oldDisabled","undefined","_tabindexChanged","buttonStyles","AH","ButtonMixin","superClass","active_mixin","e","tabindex_mixin","l","focus_mixin","_activeKeys","hasAttribute","altKey","shiftKey","ctrlKey","metaKey","includes","preventDefault","vaadin_themable_mixin","SF","moduleId","Button","element_mixin","q","cp","controller_mixin","w","polymer_element","Pu","is","template","qy","_tooltipController","tooltip_controller","I","addController","src_define","X","button","_vaadin_vaadin_themable_mixin_vaadin_themable_mixin_js__WEBPACK_IMPORTED_MODULE_5__"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
- /*! For license information please see 5263.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[5263],{87133(t,e,o){o(17017),o(64511),o(42068),o(9433),o(3241),o(83315),o(88660);var a=o(87550),r=o(36411);const i=a.AH`
1
+ /*! For license information please see 8264.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[1411,3792,4268,6649,7125,8264,9030,9506],{5745(t,e,o){o.d(e,{i:()=>a});const a=(0,o(98741).y)(t=>class extends t{static get properties(){return{disabled:{type:Boolean,value:!1,observer:"_disabledChanged",reflectToAttribute:!0}}}_disabledChanged(t){this._setAriaDisabled(t)}_setAriaDisabled(t){t?this.setAttribute("aria-disabled","true"):this.removeAttribute("aria-disabled")}click(){this.disabled||super.click()}})},7888(t,e,o){o.d(e,{f:()=>a});const a=(0,o(98741).y)(t=>class extends t{ready(){super.ready(),this.addEventListener("keydown",t=>{this._onKeyDown(t)}),this.addEventListener("keyup",t=>{this._onKeyUp(t)})}_onKeyDown(t){switch(t.key){case"Enter":this._onEnter(t);break;case"Escape":this._onEscape(t)}}_onKeyUp(t){}_onEnter(t){}_onEscape(t){}})},36176(t,e,o){o.d(e,{l:()=>r});var a=o(5745);const r=t=>class extends((0,a.i)(t)){static get properties(){return{tabindex:{type:Number,reflectToAttribute:!0,observer:"_tabindexChanged"},_lastTabIndex:{type:Number}}}_disabledChanged(t,e){super._disabledChanged(t,e),t?(void 0!==this.tabindex&&(this._lastTabIndex=this.tabindex),this.tabindex=-1):e&&(this.tabindex=this._lastTabIndex)}_tabindexChanged(t){this.disabled&&-1!==t&&(this._lastTabIndex=t,this.tabindex=-1)}}},87133(t,e,o){o(17017),o(64511),o(42068),o(9433),o(3241),o(83315),o(88660);var a=o(87550),r=o(36411);const i=a.AH`
3
3
  :host {
4
4
  --vaadin-user-color-0: #df0b92;
5
5
  --vaadin-user-color-1: #650acc;
@@ -134,7 +134,7 @@
134
134
  border-radius: inherit;
135
135
  box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);
136
136
  }
137
- `;(0,a.SF)("vaadin-avatar",b,{moduleId:"vaadin-avatar-styles"});class v extends(m((0,c.q)((0,a.cp)((0,l.w)(s.Pu))))){static get template(){return s.qy`
137
+ `;(0,a.SF)("vaadin-avatar",b,{moduleId:"vaadin-avatar-styles"});class p extends(m((0,c.q)((0,a.cp)((0,l.w)(s.Pu))))){static get template(){return s.qy`
138
138
  <img hidden$="[[!__imgVisible]]" src$="[[img]]" aria-hidden="true" on-error="__onImageLoadError" />
139
139
  <svg
140
140
  part="icon"
@@ -158,7 +158,7 @@
158
158
  </svg>
159
159
 
160
160
  <slot name="tooltip"></slot>
161
- `}static get is(){return"vaadin-avatar"}ready(){super.ready(),this._tooltipController=new h.I(this),this.addController(this._tooltipController)}}(0,d.X)(v)},89389(t,e,o){o.d(e,{$:()=>b});var a=o(13256),r=o(55774),i=o(82901),n=o(72562),s=o(81488),l=o(87550);const d=o(51450).AH`
161
+ `}static get is(){return"vaadin-avatar"}ready(){super.ready(),this._tooltipController=new h.I(this),this.addController(this._tooltipController)}}(0,d.X)(p)},89389(t,e,o){o.d(e,{$:()=>b});var a=o(13256),r=o(55774),i=o(82901),n=o(72562),s=o(81488),l=o(87550);const d=o(51450).AH`
162
162
  :host {
163
163
  display: inline-block;
164
164
  position: relative;
@@ -495,4 +495,4 @@
495
495
  margin-right: 0;
496
496
  }
497
497
  `;(0,a.SF)("vaadin-button",r,{moduleId:"lumo-button"})},83799(t,e,o){o(93555),o(89389)},21961(t,e,o){o.d(e,{C:()=>i});var a=o(98741);const r=new WeakMap,i=(0,a.y)(t=>class extends t{get slotStyles(){return{}}connectedCallback(){super.connectedCallback(),this.__applySlotStyles()}__applySlotStyles(){const t=this.getRootNode(),e=function(t){return r.has(t)||r.set(t,new Set),r.get(t)}(t);this.slotStyles.forEach(o=>{e.has(o)||(function(t,e){const o=document.createElement("style");window.DESCOPE_NONCE&&o.setAttribute("nonce",window.DESCOPE_NONCE),o.textContent=t,e===document?document.head.appendChild(o):e.insertBefore(o,e.firstChild)}(o,t),e.add(o))})}})}}]);
498
- //# sourceMappingURL=5263.js.map
498
+ //# sourceMappingURL=8264.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"8264.js","mappings":"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","sources":["webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/a11y-base/src/disabled-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/a11y-base/src/keyboard-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/a11y-base/src/tabindex-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/vaadin-lumo-styles/user-colors.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/avatar/theme/lumo/vaadin-avatar-styles.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/avatar/src/vaadin-avatar-icons.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/avatar/src/vaadin-avatar-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/avatar/src/vaadin-avatar-styles.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/avatar/src/vaadin-avatar.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/src/vaadin-button-base.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/src/vaadin-button-mixin.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/src/vaadin-button.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/button/theme/lumo/vaadin-button-styles.js","webpack://@descope/web-components-ui/javascript/libs/webpack-extract-font-loader/node_modules/@vaadin/component-base/src/slot-styles-mixin.js"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * A mixin to provide disabled property for field components.\n *\n * @polymerMixin\n */\nexport const DisabledMixin = dedupingMixin(\n (superclass) =>\n class DisabledMixinClass extends superclass {\n static get properties() {\n return {\n /**\n * If true, the user cannot interact with this element.\n */\n disabled: {\n type: Boolean,\n value: false,\n observer: '_disabledChanged',\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _disabledChanged(disabled) {\n this._setAriaDisabled(disabled);\n }\n\n /**\n * @param {boolean} disabled\n * @protected\n */\n _setAriaDisabled(disabled) {\n if (disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n\n /**\n * Overrides the default element `click` method in order to prevent\n * firing the `click` event when the element is disabled.\n * @protected\n * @override\n */\n click() {\n if (!this.disabled) {\n super.click();\n }\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\n/**\n * A mixin that manages keyboard handling.\n * The mixin subscribes to the keyboard events while an actual implementation\n * for the event handlers is left to the client (a component or another mixin).\n *\n * @polymerMixin\n */\nexport const KeyboardMixin = dedupingMixin(\n (superclass) =>\n class KeyboardMixinClass extends superclass {\n /** @protected */\n ready() {\n super.ready();\n\n this.addEventListener('keydown', (event) => {\n this._onKeyDown(event);\n });\n\n this.addEventListener('keyup', (event) => {\n this._onKeyUp(event);\n });\n }\n\n /**\n * A handler for the `keydown` event. By default, it calls\n * separate methods for handling \"Enter\" and \"Escape\" keys.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} event\n * @protected\n */\n _onKeyDown(event) {\n switch (event.key) {\n case 'Enter':\n this._onEnter(event);\n break;\n case 'Escape':\n this._onEscape(event);\n break;\n default:\n break;\n }\n }\n\n /**\n * A handler for the `keyup` event. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onKeyUp(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Enter\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEnter(_event) {\n // To be implemented.\n }\n\n /**\n * A handler for the \"Escape\" key. By default, it does nothing.\n * Override the method to implement your own behavior.\n *\n * @param {KeyboardEvent} _event\n * @protected\n */\n _onEscape(_event) {\n // To be implemented.\n }\n },\n);\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { DisabledMixin } from './disabled-mixin.js';\n\n/**\n * A mixin to toggle the `tabindex` attribute.\n *\n * The attribute is set to -1 whenever the user disables the element\n * and restored with the last known value once the element is enabled.\n *\n * @polymerMixin\n * @mixes DisabledMixin\n */\nexport const TabindexMixin = (superclass) =>\n class TabindexMixinClass extends DisabledMixin(superclass) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @protected\n */\n tabindex: {\n type: Number,\n reflectToAttribute: true,\n observer: '_tabindexChanged',\n },\n\n /**\n * Stores the last known tabindex since the element has been disabled.\n *\n * @protected\n */\n _lastTabIndex: {\n type: Number,\n },\n };\n }\n\n /**\n * When the element gets disabled, the observer saves the last known tabindex\n * and makes the element not focusable by setting tabindex to -1.\n * As soon as the element gets enabled, the observer restores the last known tabindex\n * so that the element can be focusable again.\n *\n * @protected\n * @override\n */\n _disabledChanged(disabled, oldDisabled) {\n super._disabledChanged(disabled, oldDisabled);\n\n if (disabled) {\n if (this.tabindex !== undefined) {\n this._lastTabIndex = this.tabindex;\n }\n this.tabindex = -1;\n } else if (oldDisabled) {\n this.tabindex = this._lastTabIndex;\n }\n }\n\n /**\n * When the user has changed tabindex while the element is disabled,\n * the observer reverts tabindex to -1 and rather saves the new tabindex value to apply it later.\n * The new value will be applied as soon as the element becomes enabled.\n *\n * @protected\n */\n _tabindexChanged(tabindex) {\n if (this.disabled && tabindex !== -1) {\n this._lastTabIndex = tabindex;\n this.tabindex = -1;\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './version.js';\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { addLumoGlobalStyles } from './global.js';\n\nconst userColors = css`\n :host {\n --vaadin-user-color-0: #df0b92;\n --vaadin-user-color-1: #650acc;\n --vaadin-user-color-2: #097faa;\n --vaadin-user-color-3: #ad6200;\n --vaadin-user-color-4: #bf16f3;\n --vaadin-user-color-5: #084391;\n --vaadin-user-color-6: #078836;\n }\n\n [theme~='dark'] {\n --vaadin-user-color-0: #ff66c7;\n --vaadin-user-color-1: #9d8aff;\n --vaadin-user-color-2: #8aff66;\n --vaadin-user-color-3: #ffbd66;\n --vaadin-user-color-4: #dc6bff;\n --vaadin-user-color-5: #66fffa;\n --vaadin-user-color-6: #e6ff66;\n }\n`;\n\naddLumoGlobalStyles('user-color-props', userColors);\nexport { userColors };\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport '@vaadin/vaadin-lumo-styles/user-colors.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nregisterStyles(\n 'vaadin-avatar',\n css`\n :host {\n color: var(--lumo-secondary-text-color);\n background-color: var(--lumo-contrast-10pct);\n border-radius: 50%;\n outline: none;\n cursor: default;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n :host([has-color-index]) {\n color: var(--lumo-base-color);\n }\n\n :host([focus-ring]) {\n border-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n }\n\n [part='icon'],\n [part='abbr'] {\n fill: currentColor;\n }\n\n [part='abbr'] {\n font-family: var(--lumo-font-family);\n font-size: 2.4375em;\n font-weight: 500;\n }\n\n :host([theme~='xlarge']) [part='abbr'] {\n font-size: 2.5em;\n }\n\n :host([theme~='large']) [part='abbr'] {\n font-size: 2.375em;\n }\n\n :host([theme~='small']) [part='abbr'] {\n font-size: 2.75em;\n }\n\n :host([theme~='xsmall']) [part='abbr'] {\n font-size: 3em;\n }\n\n :host([theme~='xlarge']) {\n --vaadin-avatar-size: var(--lumo-size-xl);\n }\n\n :host([theme~='large']) {\n --vaadin-avatar-size: var(--lumo-size-l);\n }\n\n :host([theme~='small']) {\n --vaadin-avatar-size: var(--lumo-size-s);\n }\n\n :host([theme~='xsmall']) {\n --vaadin-avatar-size: var(--lumo-size-xs);\n }\n `,\n { moduleId: 'lumo-avatar' },\n);\n","/**\n * @license\n * Copyright (c) 2020 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nconst template = document.createElement('template');\n\ntemplate.innerHTML = `\n <style nonce=${window.DESCOPE_NONCE}>\n @font-face {\n font-family: 'vaadin-avatar-icons';\n src: url('` + __webpack_public_path__ + `fonts/font-1949233557.woff');\n font-weight: normal;\n font-style: normal;\n }\n </style>\n`;\n\ndocument.head.appendChild(template.content);\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\n\n/**\n * A mixin providing common avatar functionality.\n *\n * @polymerMixin\n * @mixes FocusMixin\n */\nexport const AvatarMixin = (superClass) =>\n class AvatarMixinClass extends FocusMixin(superClass) {\n static get properties() {\n return {\n /**\n * The path to the image\n */\n img: {\n type: String,\n reflectToAttribute: true,\n observer: '__imgChanged',\n },\n\n /**\n * A shortened form of name that is displayed\n * in the avatar when `img` is not provided.\n */\n abbr: {\n type: String,\n reflectToAttribute: true,\n },\n\n /**\n * Full name of the user\n * used for the tooltip of the avatar.\n */\n name: {\n type: String,\n reflectToAttribute: true,\n },\n\n /**\n * Color index used for avatar background.\n * @attr {number} color-index\n */\n colorIndex: {\n type: Number,\n observer: '__colorIndexChanged',\n },\n\n /**\n * The object used to localize this component.\n * To change the default localization, replace the entire\n * _i18n_ object or just the property you want to modify.\n *\n * The object has the following JSON structure and default values:\n *\n * ```\n * {\n * // Translation of the anonymous user avatar tooltip.\n * anonymous: 'anonymous'\n * }\n * ```\n *\n * @type {!AvatarI18n}\n * @default {English/US}\n */\n i18n: {\n type: Object,\n value: () => {\n return {\n anonymous: 'anonymous',\n };\n },\n },\n\n /**\n * When true, the avatar has tooltip shown on hover and focus.\n * The tooltip text is based on the `name` and `abbr` properties.\n * When neither is provided, `i18n.anonymous` is used instead.\n * @attr {boolean} with-tooltip\n */\n withTooltip: {\n type: Boolean,\n value: false,\n observer: '__withTooltipChanged',\n },\n\n /** @protected */\n __imgVisible: Boolean,\n\n /** @protected */\n __iconVisible: Boolean,\n\n /** @protected */\n __abbrVisible: Boolean,\n\n /** @private */\n __tooltipNode: Object,\n };\n }\n\n static get observers() {\n return [\n '__imgOrAbbrOrNameChanged(img, abbr, name)',\n '__i18nChanged(i18n)',\n '__tooltipChanged(__tooltipNode, name, abbr)',\n ];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this.__updateVisibility();\n\n // By default, if the user hasn't provided a custom role,\n // the role attribute is set to \"button\".\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n\n // Should set `anonymous` if name / abbr is not provided\n if (!this.name && !this.abbr) {\n this.__setTooltip();\n }\n }\n\n /** @private */\n __colorIndexChanged(index) {\n if (index != null) {\n const prop = `--vaadin-user-color-${index}`;\n\n // Check if custom CSS property is defined\n const isValid = Boolean(getComputedStyle(document.documentElement).getPropertyValue(prop));\n\n if (isValid) {\n this.setAttribute('has-color-index', '');\n this.style.setProperty('--vaadin-avatar-user-color', `var(${prop})`);\n } else {\n this.removeAttribute('has-color-index');\n console.warn(`The CSS property --vaadin-user-color-${index} is not defined`);\n }\n } else {\n this.removeAttribute('has-color-index');\n }\n }\n\n /** @private */\n __imgChanged() {\n this.__imgFailedToLoad = false;\n }\n\n /** @private */\n __imgOrAbbrOrNameChanged(img, abbr, name) {\n this.__updateVisibility();\n\n if (abbr && abbr !== this.__generatedAbbr) {\n return;\n }\n\n if (name) {\n this.abbr = this.__generatedAbbr = name\n .split(' ')\n .map((word) => word.charAt(0))\n .join('');\n } else {\n this.abbr = undefined;\n }\n }\n\n /** @private */\n __tooltipChanged(tooltipNode, name, abbr) {\n if (tooltipNode) {\n if (abbr && abbr !== this.__generatedAbbr) {\n this.__setTooltip(name ? `${name} (${abbr})` : abbr);\n } else {\n this.__setTooltip(name);\n }\n }\n }\n\n /** @private */\n __withTooltipChanged(withTooltip, oldWithTooltip) {\n if (withTooltip) {\n // Create and attach tooltip\n const tooltipNode = document.createElement('vaadin-tooltip');\n tooltipNode.setAttribute('slot', 'tooltip');\n this.appendChild(tooltipNode);\n this.__tooltipNode = tooltipNode;\n } else if (oldWithTooltip) {\n // Cleanup and detach tooltip\n this.__tooltipNode.target = null;\n this.__tooltipNode.remove();\n this.__tooltipNode = null;\n }\n }\n\n /** @private */\n __i18nChanged(i18n) {\n if (i18n && i18n.anonymous) {\n if (this.__oldAnonymous && this.__tooltipNode && this.__tooltipNode.text === this.__oldAnonymous) {\n this.__setTooltip();\n }\n\n this.__oldAnonymous = i18n.anonymous;\n }\n }\n\n /** @private */\n __updateVisibility() {\n this.__imgVisible = !!this.img && !this.__imgFailedToLoad;\n this.__abbrVisible = !this.__imgVisible && !!this.abbr;\n this.__iconVisible = !this.__imgVisible && !this.abbr;\n }\n\n /** @private */\n __setTooltip(tooltip) {\n const tooltipNode = this.__tooltipNode;\n if (tooltipNode) {\n tooltipNode.text = tooltip || this.i18n.anonymous;\n }\n }\n\n /** @protected */\n __onImageLoadError() {\n if (this.img) {\n console.warn(`<vaadin-avatar> The specified image could not be loaded: ${this.img}`);\n this.__imgFailedToLoad = true;\n this.__updateVisibility();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nexport const avatarStyles = css`\n :host {\n display: inline-block;\n flex: none;\n border-radius: 50%;\n overflow: hidden;\n height: var(--vaadin-avatar-size, 64px);\n width: var(--vaadin-avatar-size, 64px);\n border: var(--vaadin-avatar-outline-width) solid transparent;\n margin: calc(var(--vaadin-avatar-outline-width) * -1);\n background-clip: content-box;\n --vaadin-avatar-outline-width: var(--vaadin-focus-ring-width, 2px);\n }\n\n img {\n height: 100%;\n width: 100%;\n object-fit: cover;\n }\n\n [part='icon'] {\n font-size: 5.6em;\n }\n\n [part='abbr'] {\n font-size: 2.2em;\n }\n\n [part='icon'] > text {\n font-family: 'vaadin-avatar-icons';\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n svg[hidden] {\n display: none !important;\n }\n\n :host([has-color-index]) {\n position: relative;\n background-color: var(--vaadin-avatar-user-color);\n }\n\n :host([has-color-index])::before {\n position: absolute;\n content: '';\n inset: 0;\n border-radius: inherit;\n box-shadow: inset 0 0 0 2px var(--vaadin-avatar-user-color);\n }\n`;\n","/**\n * @license\n * Copyright (c) 2020 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport './vaadin-avatar-icons.js';\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { AvatarMixin } from './vaadin-avatar-mixin.js';\nimport { avatarStyles } from './vaadin-avatar-styles.js';\n\nregisterStyles('vaadin-avatar', avatarStyles, { moduleId: 'vaadin-avatar-styles' });\n\n/**\n * `<vaadin-avatar>` is a Web Component providing avatar displaying functionality.\n *\n * ```html\n * <vaadin-avatar img=\"avatars/avatar-1.jpg\"></vaadin-avatar>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are exposed for styling:\n *\n * Part name | Description\n * --------- | ---------------\n * `abbr` | The abbreviation element\n * `icon` | The icon element\n *\n * The following state attributes are available for styling:\n *\n * Attribute | Description\n * ------------------|-------------\n * `focus-ring` | Set when the avatar is focused using the keyboard.\n * `focused` | Set when the avatar is focused.\n * `has-color-index` | Set when the avatar has `colorIndex` and the corresponding custom CSS property exists.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes AvatarMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Avatar extends AvatarMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get template() {\n return html`\n <img hidden$=\"[[!__imgVisible]]\" src$=\"[[img]]\" aria-hidden=\"true\" on-error=\"__onImageLoadError\" />\n <svg\n part=\"icon\"\n hidden$=\"[[!__iconVisible]]\"\n id=\"avatar-icon\"\n viewBox=\"-50 -50 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n aria-hidden=\"true\"\n >\n <text dy=\".35em\" text-anchor=\"middle\">&#xea01;</text>\n </svg>\n <svg\n part=\"abbr\"\n hidden$=\"[[!__abbrVisible]]\"\n id=\"avatar-abbr\"\n viewBox=\"-50 -50 100 100\"\n preserveAspectRatio=\"xMidYMid meet\"\n aria-hidden=\"true\"\n >\n <text dy=\".35em\" text-anchor=\"middle\">[[abbr]]</text>\n </svg>\n\n <slot name=\"tooltip\"></slot>\n `;\n }\n\n static get is() {\n return 'vaadin-avatar';\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(Avatar);\n\nexport { Avatar };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { css } from 'lit';\n\nexport const buttonStyles = css`\n :host {\n display: inline-block;\n position: relative;\n outline: none;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n\n :host([hidden]) {\n display: none !important;\n }\n\n /* Aligns the button with form fields when placed on the same line.\n Note, to make it work, the form fields should have the same \"::before\" pseudo-element. */\n .vaadin-button-container::before {\n content: '\\\\2003';\n display: inline-block;\n width: 0;\n max-height: 100%;\n }\n\n .vaadin-button-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n height: 100%;\n min-height: inherit;\n text-shadow: inherit;\n }\n\n [part='prefix'],\n [part='suffix'] {\n flex: none;\n }\n\n [part='label'] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n @media (forced-colors: active) {\n :host {\n outline: 1px solid;\n outline-offset: -1px;\n }\n\n :host([focused]) {\n outline-width: 2px;\n }\n\n :host([disabled]) {\n outline-color: GrayText;\n }\n }\n`;\n\nexport const buttonTemplate = (html) => html`\n <div class=\"vaadin-button-container\">\n <span part=\"prefix\" aria-hidden=\"true\">\n <slot name=\"prefix\"></slot>\n </span>\n <span part=\"label\">\n <slot></slot>\n </span>\n <span part=\"suffix\" aria-hidden=\"true\">\n <slot name=\"suffix\"></slot>\n </span>\n </div>\n <slot name=\"tooltip\"></slot>\n`;\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { ActiveMixin } from '@vaadin/a11y-base/src/active-mixin.js';\nimport { FocusMixin } from '@vaadin/a11y-base/src/focus-mixin.js';\nimport { TabindexMixin } from '@vaadin/a11y-base/src/tabindex-mixin.js';\n\n/**\n * A mixin providing common button functionality.\n *\n * @polymerMixin\n * @mixes ActiveMixin\n * @mixes FocusMixin\n * @mixes TabindexMixin\n */\nexport const ButtonMixin = (superClass) =>\n class ButtonMixinClass extends ActiveMixin(TabindexMixin(FocusMixin(superClass))) {\n static get properties() {\n return {\n /**\n * Indicates whether the element can be focused and where it participates in sequential keyboard navigation.\n *\n * @override\n * @protected\n */\n tabindex: {\n type: Number,\n value: 0,\n reflectToAttribute: true,\n },\n };\n }\n\n /**\n * By default, `Space` is the only possible activation key for a focusable HTML element.\n * Nonetheless, the button is an exception as it can be also activated by pressing `Enter`.\n * See the \"Keyboard Support\" section in https://www.w3.org/TR/wai-aria-practices/examples/button/button.html.\n *\n * @protected\n * @override\n */\n get _activeKeys() {\n return ['Enter', ' '];\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n // By default, if the user hasn't provided a custom role,\n // the role attribute is set to \"button\".\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n }\n\n /**\n * Since the button component is designed on the base of the `[role=button]` attribute,\n * and doesn't have a native <button> inside, in order to be fully accessible from the keyboard,\n * it should manually fire the `click` event once an activation key is pressed,\n * as it follows from the WAI-ARIA specifications:\n * https://www.w3.org/TR/wai-aria-practices-1.1/#button\n *\n * According to the UI Events specifications,\n * the `click` event should be fired exactly on `keydown`:\n * https://www.w3.org/TR/uievents/#event-type-keydown\n *\n * @param {KeyboardEvent} event\n * @protected\n * @override\n */\n _onKeyDown(event) {\n super._onKeyDown(event);\n\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (this._activeKeys.includes(event.key)) {\n event.preventDefault();\n\n // `DisabledMixin` overrides the standard `click()` method\n // so that it doesn't fire the `click` event when the element is disabled.\n this.click();\n }\n }\n };\n","/**\n * @license\n * Copyright (c) 2017 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { html, PolymerElement } from '@polymer/polymer/polymer-element.js';\nimport { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';\nimport { defineCustomElement } from '@vaadin/component-base/src/define.js';\nimport { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';\nimport { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';\nimport { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\nimport { buttonStyles, buttonTemplate } from './vaadin-button-base.js';\nimport { ButtonMixin } from './vaadin-button-mixin.js';\n\nregisterStyles('vaadin-button', buttonStyles, { moduleId: 'vaadin-button-styles' });\n\n/**\n * `<vaadin-button>` is an accessible and customizable button that allows users to perform actions.\n *\n * ```html\n * <vaadin-button>Press me</vaadin-button>\n * ```\n *\n * ### Styling\n *\n * The following shadow DOM parts are available for styling:\n *\n * Part name | Description\n * ----------|-------------\n * `label` | The label (text) inside the button.\n * `prefix` | A slot for content before the label (e.g. an icon).\n * `suffix` | A slot for content after the label (e.g. an icon).\n *\n * The following attributes are available for styling:\n *\n * Attribute | Description\n * -------------|-------------\n * `active` | Set when the button is pressed down, either with mouse, touch or the keyboard.\n * `disabled` | Set when the button is disabled.\n * `focus-ring` | Set when the button is focused using the keyboard.\n * `focused` | Set when the button is focused.\n *\n * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.\n *\n * @customElement\n * @extends HTMLElement\n * @mixes ButtonMixin\n * @mixes ControllerMixin\n * @mixes ElementMixin\n * @mixes ThemableMixin\n */\nclass Button extends ButtonMixin(ElementMixin(ThemableMixin(ControllerMixin(PolymerElement)))) {\n static get is() {\n return 'vaadin-button';\n }\n\n static get template() {\n return buttonTemplate(html);\n }\n\n /** @protected */\n ready() {\n super.ready();\n\n this._tooltipController = new TooltipController(this);\n this.addController(this._tooltipController);\n }\n}\n\ndefineCustomElement(Button);\n\nexport { Button };\n","import '@vaadin/vaadin-lumo-styles/color.js';\nimport '@vaadin/vaadin-lumo-styles/sizing.js';\nimport '@vaadin/vaadin-lumo-styles/spacing.js';\nimport '@vaadin/vaadin-lumo-styles/style.js';\nimport '@vaadin/vaadin-lumo-styles/typography.js';\nimport { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';\n\nconst button = css`\n :host {\n /* Sizing */\n --lumo-button-size: var(--lumo-size-m);\n min-width: var(--vaadin-button-min-width, calc(var(--_button-size) * 2));\n height: var(--_button-size);\n padding: var(--vaadin-button-padding, 0 calc(var(--_button-size) / 3 + var(--lumo-border-radius-m) / 2));\n margin: var(--vaadin-button-margin, var(--lumo-space-xs) 0);\n box-sizing: border-box;\n /* Style */\n font-family: var(--lumo-font-family);\n font-size: var(--vaadin-button-font-size, var(--lumo-font-size-m));\n font-weight: var(--vaadin-button-font-weight, 500);\n color: var(--_lumo-button-text-color);\n background: var(--_lumo-button-background);\n border: var(--vaadin-button-border, none);\n border-radius: var(--vaadin-button-border-radius, var(--lumo-border-radius-m));\n cursor: var(--lumo-clickable-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n flex-shrink: 0;\n --_button-size: var(--vaadin-button-height, var(--lumo-button-size));\n --_focus-ring-color: var(--vaadin-focus-ring-color, var(--lumo-primary-color-50pct));\n --_focus-ring-width: var(--vaadin-focus-ring-width, 2px);\n /* Used by notification */\n --_lumo-button-background: var(--vaadin-button-background, var(--lumo-contrast-5pct));\n --_lumo-button-text-color: var(--vaadin-button-text-color, var(--lumo-primary-text-color));\n --_lumo-button-primary-background: var(--vaadin-button-primary-background, var(--lumo-primary-color));\n --_lumo-button-primary-text-color: var(--vaadin-button-primary-text-color, var(--lumo-primary-contrast-color));\n }\n\n /* Set only for the internal parts so we don't affect the host vertical alignment */\n [part='label'],\n [part='prefix'],\n [part='suffix'] {\n line-height: var(--lumo-line-height-xs);\n }\n\n [part='label'] {\n padding: calc(var(--lumo-button-size) / 6) 0;\n }\n\n :host([theme~='small']) {\n font-size: var(--lumo-font-size-s);\n --lumo-button-size: var(--lumo-size-s);\n }\n\n :host([theme~='large']) {\n font-size: var(--lumo-font-size-l);\n --lumo-button-size: var(--lumo-size-l);\n }\n\n /* For interaction states */\n :host::before,\n :host::after {\n content: '';\n /* We rely on the host always being relative */\n position: absolute;\n z-index: 1;\n inset: 0;\n background-color: currentColor;\n border-radius: inherit;\n opacity: 0;\n pointer-events: none;\n }\n\n /* Hover */\n\n @media (any-hover: hover) {\n :host(:hover)::before {\n opacity: 0.02;\n }\n }\n\n /* Active */\n\n :host::after {\n transition: opacity 1.4s, transform 0.1s;\n filter: blur(8px);\n }\n\n :host([active])::before {\n opacity: 0.05;\n transition-duration: 0s;\n }\n\n :host([active])::after {\n opacity: 0.1;\n transition-duration: 0s, 0s;\n transform: scale(0);\n }\n\n /* Keyboard focus */\n\n :host([focus-ring]) {\n box-shadow: 0 0 0 var(--_focus-ring-width) var(--_focus-ring-color);\n }\n\n :host([theme~='primary'][focus-ring]) {\n box-shadow: 0 0 0 1px var(--lumo-base-color), 0 0 0 3px var(--lumo-primary-color-50pct);\n }\n\n /* Types (primary, tertiary, tertiary-inline */\n\n :host([theme~='tertiary']),\n :host([theme~='tertiary-inline']) {\n --_background: transparent !important;\n background: var(--vaadin-button-tertiary-background, var(--_background));\n min-width: 0;\n }\n\n :host([theme~='tertiary']) {\n border: var(--vaadin-button-tertiary-border, none);\n color: var(--vaadin-button-tertiary-text-color, var(--lumo-primary-text-color));\n font-weight: var(--vaadin-button-tertiary-font-weight, 500);\n padding: var(--vaadin-button-tertiary-padding, 0 calc(var(--_button-size) / 6));\n }\n\n :host([theme~='tertiary-inline'])::before {\n display: none;\n }\n\n :host([theme~='tertiary-inline']) {\n margin: 0;\n height: auto;\n padding: 0;\n line-height: inherit;\n font-size: inherit;\n }\n\n :host([theme~='tertiary-inline']) [part='label'] {\n padding: 0;\n overflow: visible;\n line-height: inherit;\n }\n\n :host([theme~='primary']) {\n background: var(--_lumo-button-primary-background);\n border: var(--vaadin-button-primary-border, none);\n color: var(--_lumo-button-primary-text-color);\n font-weight: var(--vaadin-button-primary-font-weight, 600);\n min-width: calc(var(--lumo-button-size) * 2.5);\n }\n\n :host([theme~='primary'])::before {\n background-color: black;\n }\n\n @media (any-hover: hover) {\n :host([theme~='primary']:hover)::before {\n opacity: 0.05;\n }\n }\n\n :host([theme~='primary'][active])::before {\n opacity: 0.1;\n }\n\n :host([theme~='primary'][active])::after {\n opacity: 0.2;\n }\n\n /* Colors (success, error, contrast) */\n\n :host([theme~='success']) {\n color: var(--lumo-success-text-color);\n }\n\n :host([theme~='success'][theme~='primary']) {\n background-color: var(--lumo-success-color);\n color: var(--lumo-success-contrast-color);\n }\n\n :host([theme~='error']) {\n color: var(--lumo-error-text-color);\n }\n\n :host([theme~='error'][theme~='primary']) {\n background-color: var(--lumo-error-color);\n color: var(--lumo-error-contrast-color);\n }\n\n :host([theme~='contrast']) {\n color: var(--lumo-contrast);\n }\n\n :host([theme~='contrast'][theme~='primary']) {\n background-color: var(--lumo-contrast);\n color: var(--lumo-base-color);\n }\n\n /* Disabled state. Keep selectors after other color variants. */\n\n :host([disabled]) {\n pointer-events: none;\n color: var(--lumo-disabled-text-color);\n }\n\n :host([theme~='primary'][disabled]) {\n background-color: var(--lumo-contrast-30pct);\n color: var(--lumo-base-color);\n }\n\n :host([theme~='primary'][disabled]) [part] {\n opacity: 0.7;\n }\n\n /* Icons */\n\n [part] ::slotted(vaadin-icon) {\n display: inline-block;\n width: var(--lumo-icon-size-m);\n height: var(--lumo-icon-size-m);\n }\n\n /* Vaadin icons are based on a 16x16 grid (unlike Lumo and Material icons with 24x24), so they look too big by default */\n [part] ::slotted(vaadin-icon[icon^='vaadin:']) {\n padding: 0.25em;\n box-sizing: border-box !important;\n }\n\n [part='prefix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n [part='suffix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n /* Icon-only */\n\n :host([theme~='icon']:not([theme~='tertiary-inline'])) {\n min-width: var(--lumo-button-size);\n padding-left: calc(var(--lumo-button-size) / 4);\n padding-right: calc(var(--lumo-button-size) / 4);\n }\n\n :host([theme~='icon']) [part='prefix'],\n :host([theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n\n /* RTL specific styles */\n\n :host([dir='rtl']) [part='prefix'] {\n margin-left: 0.25em;\n margin-right: -0.25em;\n }\n\n :host([dir='rtl']) [part='suffix'] {\n margin-left: -0.25em;\n margin-right: 0.25em;\n }\n\n :host([dir='rtl'][theme~='icon']) [part='prefix'],\n :host([dir='rtl'][theme~='icon']) [part='suffix'] {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nregisterStyles('vaadin-button', button, { moduleId: 'lumo-button' });\n\nexport { button };\n","/**\n * @license\n * Copyright (c) 2021 - 2023 Vaadin Ltd.\n * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/\n */\nimport { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';\n\nconst stylesMap = new WeakMap();\n\n/**\n * Get all the styles inserted into root.\n * @param {DocumentOrShadowRoot} root\n * @return {Set<string>}\n */\nfunction getRootStyles(root) {\n if (!stylesMap.has(root)) {\n stylesMap.set(root, new Set());\n }\n\n return stylesMap.get(root);\n}\n\n/**\n * Insert styles into the root.\n * @param {string} styles\n * @param {DocumentOrShadowRoot} root\n */\nfunction insertStyles(styles, root) {\n const style = document.createElement('style');\n if(window.DESCOPE_NONCE){\n style.setAttribute('nonce', window.DESCOPE_NONCE);\n }\n style.textContent = styles;\n\n if (root === document) {\n document.head.appendChild(style);\n } else {\n root.insertBefore(style, root.firstChild);\n }\n}\n\n/**\n * Mixin to insert styles into the outer scope to handle slotted components.\n * This is useful e.g. to hide native `<input type=\"number\">` controls.\n *\n * @polymerMixin\n */\nexport const SlotStylesMixin = dedupingMixin(\n (superclass) =>\n class SlotStylesMixinClass extends superclass {\n /**\n * List of styles to insert into root.\n * @protected\n */\n get slotStyles() {\n return {};\n }\n\n /** @protected */\n connectedCallback() {\n super.connectedCallback();\n\n this.__applySlotStyles();\n }\n\n /** @private */\n __applySlotStyles() {\n const root = this.getRootNode();\n const rootStyles = getRootStyles(root);\n\n this.slotStyles.forEach((styles) => {\n if (!rootStyles.has(styles)) {\n insertStyles(styles, root);\n rootStyles.add(styles);\n }\n });\n }\n },\n);\n"],"names":["DisabledMixin","y","superclass","properties","disabled","type","Boolean","value","observer","reflectToAttribute","_disabledChanged","this","_setAriaDisabled","setAttribute","removeAttribute","click","super","KeyboardMixin","ready","addEventListener","event","_onKeyDown","_onKeyUp","key","_onEnter","_onEscape","_event","TabindexMixin","_disabled_mixin_js__WEBPACK_IMPORTED_MODULE_0__","i","tabindex","Number","_lastTabIndex","oldDisabled","undefined","_tabindexChanged","userColors","vaadin_themable_mixin","AH","global","q","SF","moduleId","template","document","createElement","innerHTML","window","DESCOPE_NONCE","__webpack_require__","p","head","appendChild","content","AvatarMixin","superClass","focus_mixin","img","String","abbr","name","colorIndex","i18n","Object","anonymous","withTooltip","__imgVisible","__iconVisible","__abbrVisible","__tooltipNode","observers","__updateVisibility","hasAttribute","__setTooltip","__colorIndexChanged","index","prop","getComputedStyle","documentElement","getPropertyValue","style","setProperty","console","warn","__imgChanged","__imgFailedToLoad","__imgOrAbbrOrNameChanged","__generatedAbbr","split","map","word","charAt","join","__tooltipChanged","tooltipNode","__withTooltipChanged","oldWithTooltip","target","remove","__i18nChanged","__oldAnonymous","text","tooltip","__onImageLoadError","avatarStyles","Avatar","element_mixin","cp","controller_mixin","w","polymer_element","Pu","qy","is","_tooltipController","tooltip_controller","I","addController","src_define","X","buttonStyles","ButtonMixin","active_mixin","e","tabindex_mixin","l","_activeKeys","altKey","shiftKey","ctrlKey","metaKey","includes","preventDefault","Button","button","_vaadin_vaadin_themable_mixin_vaadin_themable_mixin_js__WEBPACK_IMPORTED_MODULE_5__","stylesMap","WeakMap","SlotStylesMixin","_polymer_polymer_lib_utils_mixin_js__WEBPACK_IMPORTED_MODULE_0__","slotStyles","connectedCallback","__applySlotStyles","root","getRootNode","rootStyles","has","set","Set","get","getRootStyles","forEach","styles","textContent","insertBefore","firstChild","insertStyles","add"],"sourceRoot":""}