@francofantomius/material-components 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- import { t as o } from "./decorate-DXuynaiA.js";
1
+ import { t as a } from "./decorate-DXuynaiA.js";
2
2
  import { t as p } from "./form-associated-Cty_ZaS9.js";
3
3
  import "./icon-DrNqcNEL.js";
4
- import { css as m, html as l, nothing as r } from "lit";
5
- import { customElement as u, property as a, query as x, state as f } from "lit/decorators.js";
4
+ import { css as m, html as r, nothing as l } from "lit";
5
+ import { customElement as v, property as s, query as x, state as f } from "lit/decorators.js";
6
6
  var y = m`
7
7
  :host {
8
8
  display: block;
@@ -13,6 +13,42 @@ var y = m`
13
13
  font-family: var(--md-sys-typescale-font-family, inherit);
14
14
  color: var(--md-sys-color-on-surface, #1D1B20);
15
15
  vertical-align: middle;
16
+
17
+ --_height: var(--md-search-bar-height, 56px);
18
+ --_shape: var(--md-search-bar-shape, var(--md-search-bar-border-radius, var(--md-sys-shape-corner-full, 28px)));
19
+ --_shape-active: var(--md-search-bar-shape-active, var(--md-sys-shape-corner-extra-large, 28px 28px 16px 16px));
20
+ --_bg: var(--md-search-bar-container-color, var(--md-search-bar-bg, var(--md-sys-color-surface-container-high, #ECE6F0)));
21
+ --_elevation: var(--md-search-bar-elevation, var(--md-sys-elevation-level1, 0px 1px 3px 1px rgba(0, 0, 0, 0.15)));
22
+ --_elevation-active: var(--md-search-bar-elevation-active, var(--md-sys-elevation-level3, 0px 4px 8px 3px rgba(0, 0, 0, 0.15)));
23
+ --_btn-size: var(--md-search-bar-icon-button-size, 40px);
24
+ --_icon-size: var(--md-search-bar-icon-size, 24px);
25
+ --_font-size: var(--md-search-bar-font-size, var(--md-sys-typescale-body-large-size, 16px));
26
+ --_line-height: var(--md-search-bar-line-height, var(--md-sys-typescale-body-large-line-height, 24px));
27
+ --_padding: var(--md-search-bar-padding, 0 8px 0 16px);
28
+ }
29
+
30
+ :host([size="small"]),
31
+ :host([size="compact"]),
32
+ :host([compact]) {
33
+ --_height: var(--md-search-bar-height, 40px);
34
+ --_shape: var(--md-search-bar-shape, var(--md-search-bar-border-radius, 20px));
35
+ --_shape-active: var(--md-search-bar-shape-active, 20px 20px 12px 12px);
36
+ --_btn-size: var(--md-search-bar-icon-button-size, 32px);
37
+ --_icon-size: var(--md-search-bar-icon-size, 20px);
38
+ --_font-size: var(--md-search-bar-font-size, var(--md-sys-typescale-body-medium-size, 14px));
39
+ --_line-height: var(--md-search-bar-line-height, 20px);
40
+ --_padding: var(--md-search-bar-padding, 0 6px 0 12px);
41
+ }
42
+
43
+ :host([size="large"]) {
44
+ --_height: var(--md-search-bar-height, 64px);
45
+ --_shape: var(--md-search-bar-shape, var(--md-search-bar-border-radius, 32px));
46
+ --_shape-active: var(--md-search-bar-shape-active, 32px 32px 20px 20px);
47
+ --_btn-size: var(--md-search-bar-icon-button-size, 48px);
48
+ --_icon-size: var(--md-search-bar-icon-size, 24px);
49
+ --_font-size: var(--md-search-bar-font-size, 18px);
50
+ --_line-height: var(--md-search-bar-line-height, 26px);
51
+ --_padding: var(--md-search-bar-padding, 0 12px 0 20px);
16
52
  }
17
53
 
18
54
  :host([disabled]) {
@@ -43,9 +79,9 @@ var y = m`
43
79
  flex-direction: column;
44
80
  width: 100%;
45
81
  box-sizing: border-box;
46
- background-color: var(--md-search-bar-container-color, var(--md-sys-color-surface-container-high, #ECE6F0));
47
- border-radius: var(--md-sys-shape-corner-full, 28px);
48
- box-shadow: var(--md-sys-elevation-level1, 0px 1px 3px 1px rgba(0, 0, 0, 0.15));
82
+ background-color: var(--_bg);
83
+ border-radius: var(--_shape);
84
+ box-shadow: var(--_elevation);
49
85
  transition: box-shadow 200ms cubic-bezier(0.2, 0, 0, 1),
50
86
  border-radius 200ms cubic-bezier(0.2, 0, 0, 1),
51
87
  background-color 200ms cubic-bezier(0.2, 0, 0, 1);
@@ -54,9 +90,9 @@ var y = m`
54
90
  .search-bar-header {
55
91
  display: flex;
56
92
  align-items: center;
57
- min-height: 56px;
58
- height: 56px;
59
- padding: 0 8px 0 16px;
93
+ min-height: var(--_height);
94
+ height: var(--_height);
95
+ padding: var(--_padding);
60
96
  box-sizing: border-box;
61
97
  gap: 8px;
62
98
  }
@@ -72,8 +108,8 @@ var y = m`
72
108
  display: inline-flex;
73
109
  align-items: center;
74
110
  justify-content: center;
75
- width: 40px;
76
- height: 40px;
111
+ width: var(--_btn-size);
112
+ height: var(--_btn-size);
77
113
  border: none;
78
114
  background: transparent;
79
115
  border-radius: 50%;
@@ -85,6 +121,11 @@ var y = m`
85
121
  transition: background-color 150ms ease;
86
122
  }
87
123
 
124
+ .icon-btn md-icon {
125
+ font-size: var(--_icon-size);
126
+ --md-icon-size: var(--_icon-size);
127
+ }
128
+
88
129
  .icon-btn:hover {
89
130
  background-color: rgba(73, 69, 79, 0.08);
90
131
  }
@@ -107,8 +148,8 @@ var y = m`
107
148
  background: transparent;
108
149
  outline: none;
109
150
  font-family: inherit;
110
- font-size: var(--md-sys-typescale-body-large-size, 16px);
111
- line-height: var(--md-sys-typescale-body-large-line-height, 24px);
151
+ font-size: var(--_font-size);
152
+ line-height: var(--_line-height);
112
153
  color: var(--md-sys-color-on-surface, #1D1B20);
113
154
  padding: 0 4px;
114
155
  margin: 0;
@@ -141,8 +182,8 @@ var y = m`
141
182
  /* Active Docked Mode */
142
183
  :host([active]) .search-container {
143
184
  z-index: 50;
144
- border-radius: var(--md-sys-shape-corner-extra-large, 28px 28px 16px 16px);
145
- box-shadow: var(--md-sys-elevation-level3, 0px 4px 8px 3px rgba(0, 0, 0, 0.15));
185
+ border-radius: var(--_shape-active);
186
+ box-shadow: var(--_elevation-active);
146
187
  }
147
188
 
148
189
  /* Divider when active */
@@ -202,6 +243,11 @@ var y = m`
202
243
  flex-shrink: 0;
203
244
  }
204
245
 
246
+ .suggestion-icon md-icon {
247
+ font-size: var(--_icon-size);
248
+ --md-icon-size: var(--_icon-size);
249
+ }
250
+
205
251
  .suggestion-text {
206
252
  display: flex;
207
253
  flex-direction: column;
@@ -211,7 +257,7 @@ var y = m`
211
257
  }
212
258
 
213
259
  .suggestion-label {
214
- font-size: var(--md-sys-typescale-body-large-size, 16px);
260
+ font-size: var(--_font-size);
215
261
  line-height: 20px;
216
262
  white-space: nowrap;
217
263
  overflow: hidden;
@@ -265,12 +311,12 @@ var y = m`
265
311
 
266
312
  :host([responsive]:not([active]):not([collapse-on-mobile="false"])) .search-trigger-container.has-trailing,
267
313
  :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile="false"])) .search-trigger-container.has-trailing {
268
- height: 48px;
314
+ height: var(--_height);
269
315
  padding: 0 4px;
270
316
  gap: 2px;
271
- background-color: var(--md-search-bar-container-color, var(--md-sys-color-surface-container-high, #ECE6F0));
272
- border-radius: var(--md-sys-shape-corner-full, 28px);
273
- box-shadow: var(--md-sys-elevation-level1, 0px 1px 3px 1px rgba(0, 0, 0, 0.15));
317
+ background-color: var(--_bg);
318
+ border-radius: var(--_shape);
319
+ box-shadow: var(--_elevation);
274
320
  }
275
321
 
276
322
  :host([responsive]:not([active]):not([collapse-on-mobile="false"])) .search-trigger-container.has-trailing:hover,
@@ -288,10 +334,10 @@ var y = m`
288
334
  display: inline-flex;
289
335
  align-items: center;
290
336
  justify-content: center;
291
- width: 40px;
292
- height: 40px;
293
- min-width: 40px;
294
- min-height: 40px;
337
+ width: var(--_btn-size);
338
+ height: var(--_btn-size);
339
+ min-width: var(--_btn-size);
340
+ min-height: var(--_btn-size);
295
341
  border-radius: 50%;
296
342
  border: none;
297
343
  background: transparent;
@@ -305,6 +351,11 @@ var y = m`
305
351
  -webkit-tap-highlight-color: transparent;
306
352
  }
307
353
 
354
+ .trigger-btn md-icon {
355
+ font-size: var(--_icon-size);
356
+ --md-icon-size: var(--_icon-size);
357
+ }
358
+
308
359
  .trigger-btn:hover {
309
360
  background-color: rgba(73, 69, 79, 0.08);
310
361
  }
@@ -373,7 +424,7 @@ var y = m`
373
424
  border-radius: 0;
374
425
  box-shadow: none;
375
426
  z-index: 99999;
376
- background-color: var(--md-search-bar-container-color, var(--md-sys-color-surface-container-high, #ECE6F0));
427
+ background-color: var(--_bg);
377
428
  }
378
429
 
379
430
  :host([responsive][active]) .suggestions-container,
@@ -421,7 +472,7 @@ var y = m`
421
472
  border-radius: 0;
422
473
  box-shadow: none;
423
474
  z-index: 99999;
424
- background-color: var(--md-search-bar-container-color, var(--md-sys-color-surface-container-high, #ECE6F0));
475
+ background-color: var(--_bg);
425
476
  }
426
477
 
427
478
  :host([fullscreen][active]) .suggestions-container {
@@ -429,17 +480,17 @@ var y = m`
429
480
  max-height: calc(100vh - 57px);
430
481
  max-height: calc(100dvh - 57px);
431
482
  }
432
- `, i = class extends p {
433
- constructor(...t) {
434
- super(...t), this.value = "", this.placeholder = "Search", this.active = !1, this.suggestions = [], this.leadingIcon = "search", this.activeLeadingIcon = "arrow_back", this.trailingIcon = "", this.showBackButton = !0, this.showClearButton = !0, this.responsive = !0, this.collapseOnMobile = !0, this.fullscreen = !1, this.autoDeactivateOnSelect = !0, this.highlightedIndex = -1, this.handleFocus = () => {
483
+ `, t = class extends p {
484
+ constructor(...i) {
485
+ super(...i), this.size = "medium", this.compact = !1, this.value = "", this.placeholder = "Search", this.active = !1, this.suggestions = [], this.leadingIcon = "search", this.activeLeadingIcon = "arrow_back", this.trailingIcon = "", this.showBackButton = !0, this.showClearButton = !0, this.responsive = !0, this.collapseOnMobile = !0, this.fullscreen = !1, this.autoDeactivateOnSelect = !0, this.highlightedIndex = -1, this.handleFocus = () => {
435
486
  this.active || (this.active = !0, this.emitEvent("active-change", { active: !0 }));
436
487
  }, this.handleInput = (e) => {
437
- const s = e.target;
438
- this.value = s.value, this.setFormValue(this.value), this.toggleAttribute("has-value", !!this.value), this.highlightedIndex = -1, this.emitEvent("input", { value: this.value });
488
+ const o = e.target;
489
+ this.value = o.value, this.setFormValue(this.value), this.toggleAttribute("has-value", !!this.value), this.highlightedIndex = -1, this.emitEvent("input", { value: this.value });
439
490
  }, this.handleChange = () => {
440
491
  this.emitEvent("change", { value: this.value });
441
492
  }, this.handleKeyDown = (e) => {
442
- const s = this.suggestions.length;
493
+ const o = this.suggestions.length;
443
494
  if (e.key === "Escape") {
444
495
  e.preventDefault(), this.close(), this.inputElement?.blur();
445
496
  return;
@@ -449,15 +500,15 @@ var y = m`
449
500
  this.show();
450
501
  return;
451
502
  }
452
- s > 0 && (e.preventDefault(), this.highlightedIndex = (this.highlightedIndex + 1) % s);
503
+ o > 0 && (e.preventDefault(), this.highlightedIndex = (this.highlightedIndex + 1) % o);
453
504
  return;
454
505
  }
455
506
  if (e.key === "ArrowUp") {
456
- s > 0 && this.active && (e.preventDefault(), this.highlightedIndex = this.highlightedIndex <= 0 ? s - 1 : this.highlightedIndex - 1);
507
+ o > 0 && this.active && (e.preventDefault(), this.highlightedIndex = this.highlightedIndex <= 0 ? o - 1 : this.highlightedIndex - 1);
457
508
  return;
458
509
  }
459
510
  if (e.key === "Enter")
460
- if (this.active && this.highlightedIndex >= 0 && this.highlightedIndex < s) {
511
+ if (this.active && this.highlightedIndex >= 0 && this.highlightedIndex < o) {
461
512
  const n = this.suggestions[this.highlightedIndex];
462
513
  n !== void 0 && (e.preventDefault(), this.selectSuggestion(n, this.highlightedIndex));
463
514
  } else this.emitEvent("search", { value: this.value });
@@ -481,8 +532,8 @@ var y = m`
481
532
  connectedCallback() {
482
533
  super.connectedCallback(), this.setFormValue(this.value), this.toggleAttribute("has-value", !!this.value), this.toggleAttribute("active", this.active), this.toggleAttribute("collapse-on-mobile", this.collapseOnMobile);
483
534
  }
484
- willUpdate(t) {
485
- super.willUpdate(t), t.has("value") && (this.setFormValue(this.value), this.toggleAttribute("has-value", !!this.value)), t.has("active") && (this.toggleAttribute("active", this.active), this.active || (this.highlightedIndex = -1)), t.has("collapseOnMobile") && this.toggleAttribute("collapse-on-mobile", this.collapseOnMobile);
535
+ willUpdate(i) {
536
+ super.willUpdate(i), i.has("value") && (this.setFormValue(this.value), this.toggleAttribute("has-value", !!this.value)), i.has("active") && (this.toggleAttribute("active", this.active), this.active || (this.highlightedIndex = -1)), i.has("collapseOnMobile") && this.toggleAttribute("collapse-on-mobile", this.collapseOnMobile);
486
537
  }
487
538
  formResetCallback() {
488
539
  this.value = "", this.setFormValue(null), this.toggleAttribute("has-value", !1), this.highlightedIndex = -1;
@@ -510,41 +561,41 @@ var y = m`
510
561
  clear() {
511
562
  this.value = "", this.setFormValue(""), this.toggleAttribute("has-value", !1), this.highlightedIndex = -1, this.emitEvent("input", { value: "" }), this.emitEvent("clear"), this.inputElement?.focus();
512
563
  }
513
- selectSuggestion(t, e) {
514
- const s = typeof t == "string" ? t : t.label, n = typeof t == "string" ? t : t.value ?? t.label;
564
+ selectSuggestion(i, e) {
565
+ const o = typeof i == "string" ? i : i.label, n = typeof i == "string" ? i : i.value ?? i.label;
515
566
  this.value = n, this.setFormValue(this.value), this.toggleAttribute("has-value", !!this.value), this.emitEvent("suggestion-select", {
516
- suggestion: t,
517
- label: s,
567
+ suggestion: i,
568
+ label: o,
518
569
  value: n,
519
570
  index: e
520
571
  }), this.emitEvent("search", {
521
572
  value: this.value,
522
- suggestion: t
573
+ suggestion: i
523
574
  }), this.autoDeactivateOnSelect && this.close();
524
575
  }
525
- renderSuggestionItem(t, e) {
526
- const s = typeof t == "string", n = s ? t : t.label, c = s ? void 0 : t.supportingText, h = s ? void 0 : t.trailingSupportingText, b = !s && t.icon ? t.icon : "history", d = this.highlightedIndex === e;
527
- return l`
576
+ renderSuggestionItem(i, e) {
577
+ const o = typeof i == "string", n = o ? i : i.label, c = o ? void 0 : i.supportingText, h = o ? void 0 : i.trailingSupportingText, b = !o && i.icon ? i.icon : "history", d = this.highlightedIndex === e;
578
+ return r`
528
579
  <div
529
580
  class="suggestion-item ${d ? "highlighted" : ""}"
530
581
  role="option"
531
582
  aria-selected=${d ? "true" : "false"}
532
- @click=${() => this.selectSuggestion(t, e)}
583
+ @click=${() => this.selectSuggestion(i, e)}
533
584
  >
534
585
  <span class="suggestion-icon">
535
586
  <md-icon name=${b}></md-icon>
536
587
  </span>
537
588
  <div class="suggestion-text">
538
589
  <span class="suggestion-label">${n}</span>
539
- ${c ? l`<span class="suggestion-supporting">${c}</span>` : r}
590
+ ${c ? r`<span class="suggestion-supporting">${c}</span>` : l}
540
591
  </div>
541
- ${h ? l`<span class="suggestion-trailing">${h}</span>` : r}
592
+ ${h ? r`<span class="suggestion-trailing">${h}</span>` : l}
542
593
  </div>
543
594
  `;
544
595
  }
545
596
  render() {
546
- const t = this.active && this.showBackButton, e = !!this.trailingIcon;
547
- return l`
597
+ const i = this.active && this.showBackButton, e = !!this.trailingIcon;
598
+ return r`
548
599
  <div
549
600
  class="search-trigger-container ${e ? "has-trailing" : ""}"
550
601
  role="button"
@@ -566,7 +617,7 @@ var y = m`
566
617
  <md-icon name=${this.leadingIcon || "search"}></md-icon>
567
618
  </button>
568
619
 
569
- ${e ? l`
620
+ ${e ? r`
570
621
  <div class="trigger-divider" aria-hidden="true"></div>
571
622
  <button
572
623
  class="trigger-btn trigger-trailing-btn"
@@ -578,7 +629,7 @@ var y = m`
578
629
  >
579
630
  <md-icon name=${this.trailingIcon}></md-icon>
580
631
  </button>
581
- ` : r}
632
+ ` : l}
582
633
  </div>
583
634
 
584
635
  <div class="scrim" @click=${this.handleScrimClick}></div>
@@ -587,7 +638,7 @@ var y = m`
587
638
  <div class="search-bar-header">
588
639
  <span class="leading-slot">
589
640
  <slot name="leading-icon">
590
- ${t ? l`
641
+ ${i ? r`
591
642
  <button
592
643
  class="icon-btn"
593
644
  type="button"
@@ -596,7 +647,7 @@ var y = m`
596
647
  >
597
648
  <md-icon name=${this.activeLeadingIcon}></md-icon>
598
649
  </button>
599
- ` : l`
650
+ ` : r`
600
651
  <span class="icon-btn" style="cursor: default;">
601
652
  <md-icon name=${this.leadingIcon}></md-icon>
602
653
  </span>
@@ -623,7 +674,7 @@ var y = m`
623
674
  </div>
624
675
 
625
676
  <span class="trailing-slot">
626
- ${this.showClearButton && this.value ? l`
677
+ ${this.showClearButton && this.value ? r`
627
678
  <button
628
679
  class="icon-btn clear-btn"
629
680
  type="button"
@@ -632,14 +683,14 @@ var y = m`
632
683
  >
633
684
  <md-icon name="close"></md-icon>
634
685
  </button>
635
- ` : r}
686
+ ` : l}
636
687
 
637
688
  <slot name="trailing-icon">
638
- ${this.trailingIcon ? l`
689
+ ${this.trailingIcon ? r`
639
690
  <span class="icon-btn" style="cursor: default;">
640
691
  <md-icon name=${this.trailingIcon}></md-icon>
641
692
  </span>
642
- ` : r}
693
+ ` : l}
643
694
  </slot>
644
695
  </span>
645
696
  </div>
@@ -648,7 +699,7 @@ var y = m`
648
699
 
649
700
  <div class="suggestions-container" role="listbox" aria-label="Suggestions">
650
701
  <slot name="suggestions">
651
- ${this.suggestions.map((s, n) => this.renderSuggestionItem(s, n))}
702
+ ${this.suggestions.map((o, n) => this.renderSuggestionItem(o, n))}
652
703
  </slot>
653
704
  <div class="extra-content">
654
705
  <slot></slot>
@@ -658,59 +709,67 @@ var y = m`
658
709
  `;
659
710
  }
660
711
  };
661
- o([a({ type: String })], i.prototype, "value", void 0);
662
- o([a({ type: String })], i.prototype, "placeholder", void 0);
663
- o([a({
712
+ a([s({
713
+ type: String,
714
+ reflect: !0
715
+ })], t.prototype, "size", void 0);
716
+ a([s({
717
+ type: Boolean,
718
+ reflect: !0
719
+ })], t.prototype, "compact", void 0);
720
+ a([s({ type: String })], t.prototype, "value", void 0);
721
+ a([s({ type: String })], t.prototype, "placeholder", void 0);
722
+ a([s({
664
723
  type: Boolean,
665
724
  reflect: !0
666
- })], i.prototype, "active", void 0);
667
- o([a({ type: Array })], i.prototype, "suggestions", void 0);
668
- o([a({
725
+ })], t.prototype, "active", void 0);
726
+ a([s({ type: Array })], t.prototype, "suggestions", void 0);
727
+ a([s({
669
728
  type: String,
670
729
  attribute: "leading-icon"
671
- })], i.prototype, "leadingIcon", void 0);
672
- o([a({
730
+ })], t.prototype, "leadingIcon", void 0);
731
+ a([s({
673
732
  type: String,
674
733
  attribute: "active-leading-icon"
675
- })], i.prototype, "activeLeadingIcon", void 0);
676
- o([a({
734
+ })], t.prototype, "activeLeadingIcon", void 0);
735
+ a([s({
677
736
  type: String,
678
737
  attribute: "trailing-icon"
679
- })], i.prototype, "trailingIcon", void 0);
680
- o([a({
738
+ })], t.prototype, "trailingIcon", void 0);
739
+ a([s({
681
740
  type: Boolean,
682
741
  attribute: "show-back-button"
683
- })], i.prototype, "showBackButton", void 0);
684
- o([a({
742
+ })], t.prototype, "showBackButton", void 0);
743
+ a([s({
685
744
  type: Boolean,
686
745
  attribute: "show-clear-button"
687
- })], i.prototype, "showClearButton", void 0);
688
- o([a({
746
+ })], t.prototype, "showClearButton", void 0);
747
+ a([s({
689
748
  type: Boolean,
690
749
  reflect: !0
691
- })], i.prototype, "responsive", void 0);
692
- o([a({
750
+ })], t.prototype, "responsive", void 0);
751
+ a([s({
693
752
  type: Boolean,
694
753
  attribute: "collapse-on-mobile",
695
754
  reflect: !0
696
- })], i.prototype, "collapseOnMobile", void 0);
697
- o([a({
755
+ })], t.prototype, "collapseOnMobile", void 0);
756
+ a([s({
698
757
  type: Boolean,
699
758
  reflect: !0
700
- })], i.prototype, "fullscreen", void 0);
701
- o([a({
759
+ })], t.prototype, "fullscreen", void 0);
760
+ a([s({
702
761
  type: Boolean,
703
762
  attribute: "auto-deactivate-on-select"
704
- })], i.prototype, "autoDeactivateOnSelect", void 0);
705
- o([f()], i.prototype, "highlightedIndex", void 0);
706
- o([x("input")], i.prototype, "inputElement", void 0);
707
- i = o([u("md-search-bar")], i);
708
- var g = class extends i {
763
+ })], t.prototype, "autoDeactivateOnSelect", void 0);
764
+ a([f()], t.prototype, "highlightedIndex", void 0);
765
+ a([x("input")], t.prototype, "inputElement", void 0);
766
+ t = a([v("md-search-bar")], t);
767
+ var g = class extends t {
709
768
  };
710
- g = o([u("md-search")], g);
769
+ g = a([v("md-search")], g);
711
770
  export {
712
- i as n,
771
+ t as n,
713
772
  g as t
714
773
  };
715
774
 
716
- //# sourceMappingURL=search-bar-fUD0qU2P.js.map
775
+ //# sourceMappingURL=search-bar-CfN-emMP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-bar-CfN-emMP.js","names":[],"sources":["../../src/components/search-bar/search-bar.css.ts","../../src/components/search-bar/search-bar.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const searchBarStyles = css`\n :host {\n display: block;\n box-sizing: border-box;\n position: relative;\n width: 100%;\n max-width: var(--md-search-bar-max-width, 100%);\n font-family: var(--md-sys-typescale-font-family, inherit);\n color: var(--md-sys-color-on-surface, #1D1B20);\n vertical-align: middle;\n\n --_height: var(--md-search-bar-height, 56px);\n --_shape: var(--md-search-bar-shape, var(--md-search-bar-border-radius, var(--md-sys-shape-corner-full, 28px)));\n --_shape-active: var(--md-search-bar-shape-active, var(--md-sys-shape-corner-extra-large, 28px 28px 16px 16px));\n --_bg: var(--md-search-bar-container-color, var(--md-search-bar-bg, var(--md-sys-color-surface-container-high, #ECE6F0)));\n --_elevation: var(--md-search-bar-elevation, var(--md-sys-elevation-level1, 0px 1px 3px 1px rgba(0, 0, 0, 0.15)));\n --_elevation-active: var(--md-search-bar-elevation-active, var(--md-sys-elevation-level3, 0px 4px 8px 3px rgba(0, 0, 0, 0.15)));\n --_btn-size: var(--md-search-bar-icon-button-size, 40px);\n --_icon-size: var(--md-search-bar-icon-size, 24px);\n --_font-size: var(--md-search-bar-font-size, var(--md-sys-typescale-body-large-size, 16px));\n --_line-height: var(--md-search-bar-line-height, var(--md-sys-typescale-body-large-line-height, 24px));\n --_padding: var(--md-search-bar-padding, 0 8px 0 16px);\n }\n\n :host([size=\"small\"]),\n :host([size=\"compact\"]),\n :host([compact]) {\n --_height: var(--md-search-bar-height, 40px);\n --_shape: var(--md-search-bar-shape, var(--md-search-bar-border-radius, 20px));\n --_shape-active: var(--md-search-bar-shape-active, 20px 20px 12px 12px);\n --_btn-size: var(--md-search-bar-icon-button-size, 32px);\n --_icon-size: var(--md-search-bar-icon-size, 20px);\n --_font-size: var(--md-search-bar-font-size, var(--md-sys-typescale-body-medium-size, 14px));\n --_line-height: var(--md-search-bar-line-height, 20px);\n --_padding: var(--md-search-bar-padding, 0 6px 0 12px);\n }\n\n :host([size=\"large\"]) {\n --_height: var(--md-search-bar-height, 64px);\n --_shape: var(--md-search-bar-shape, var(--md-search-bar-border-radius, 32px));\n --_shape-active: var(--md-search-bar-shape-active, 32px 32px 20px 20px);\n --_btn-size: var(--md-search-bar-icon-button-size, 48px);\n --_icon-size: var(--md-search-bar-icon-size, 24px);\n --_font-size: var(--md-search-bar-font-size, 18px);\n --_line-height: var(--md-search-bar-line-height, 26px);\n --_padding: var(--md-search-bar-padding, 0 12px 0 20px);\n }\n\n :host([disabled]) {\n pointer-events: none;\n opacity: 0.38;\n }\n\n .scrim {\n display: none;\n }\n\n /* Scrim when active in docked mode to catch outside clicks */\n :host([active]) .scrim {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 40;\n background: transparent;\n }\n\n .search-container {\n position: relative;\n z-index: 1;\n display: flex;\n flex-direction: column;\n width: 100%;\n box-sizing: border-box;\n background-color: var(--_bg);\n border-radius: var(--_shape);\n box-shadow: var(--_elevation);\n transition: box-shadow 200ms cubic-bezier(0.2, 0, 0, 1),\n border-radius 200ms cubic-bezier(0.2, 0, 0, 1),\n background-color 200ms cubic-bezier(0.2, 0, 0, 1);\n }\n\n .search-bar-header {\n display: flex;\n align-items: center;\n min-height: var(--_height);\n height: var(--_height);\n padding: var(--_padding);\n box-sizing: border-box;\n gap: 8px;\n }\n\n .leading-slot, .trailing-slot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .icon-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_btn-size);\n height: var(--_btn-size);\n border: none;\n background: transparent;\n border-radius: 50%;\n color: var(--md-sys-color-on-surface-variant, #49454F);\n cursor: pointer;\n padding: 0;\n outline: none;\n position: relative;\n transition: background-color 150ms ease;\n }\n\n .icon-btn md-icon {\n font-size: var(--_icon-size);\n --md-icon-size: var(--_icon-size);\n }\n\n .icon-btn:hover {\n background-color: rgba(73, 69, 79, 0.08);\n }\n\n .icon-btn:focus-visible {\n background-color: rgba(73, 69, 79, 0.12);\n }\n\n .input-wrapper {\n display: flex;\n flex: 1;\n min-width: 0;\n align-items: center;\n position: relative;\n }\n\n input {\n width: 100%;\n border: none;\n background: transparent;\n outline: none;\n font-family: inherit;\n font-size: var(--_font-size);\n line-height: var(--_line-height);\n color: var(--md-sys-color-on-surface, #1D1B20);\n padding: 0 4px;\n margin: 0;\n box-sizing: border-box;\n -webkit-appearance: none;\n appearance: none;\n }\n\n input::-webkit-search-decoration,\n input::-webkit-search-cancel-button,\n input::-webkit-search-results-button,\n input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n appearance: none;\n display: none;\n }\n\n input::-ms-clear,\n input::-ms-reveal {\n display: none;\n width: 0;\n height: 0;\n }\n\n input::placeholder {\n color: var(--md-sys-color-on-surface-variant, #49454F);\n opacity: 0.8;\n }\n\n /* Active Docked Mode */\n :host([active]) .search-container {\n z-index: 50;\n border-radius: var(--_shape-active);\n box-shadow: var(--_elevation-active);\n }\n\n /* Divider when active */\n .divider {\n display: none;\n height: 1px;\n background-color: var(--md-sys-color-outline-variant, #CAC4D0);\n margin: 0 16px;\n }\n\n :host([active]) .divider {\n display: block;\n }\n\n /* Suggestions / Content Container */\n .suggestions-container {\n display: none;\n flex-direction: column;\n max-height: 360px;\n overflow-y: auto;\n padding: 8px 0;\n box-sizing: border-box;\n }\n\n :host([active]) .suggestions-container {\n display: flex;\n }\n\n .suggestion-item {\n display: flex;\n align-items: center;\n min-height: 48px;\n padding: 0 16px;\n gap: 16px;\n box-sizing: border-box;\n cursor: pointer;\n position: relative;\n user-select: none;\n color: var(--md-sys-color-on-surface, #1D1B20);\n transition: background-color 150ms ease;\n }\n\n .suggestion-item:hover,\n .suggestion-item.highlighted {\n background-color: rgba(73, 69, 79, 0.08);\n }\n\n .suggestion-item.selected {\n background-color: rgba(73, 69, 79, 0.12);\n }\n\n .suggestion-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--md-sys-color-on-surface-variant, #49454F);\n flex-shrink: 0;\n }\n\n .suggestion-icon md-icon {\n font-size: var(--_icon-size);\n --md-icon-size: var(--_icon-size);\n }\n\n .suggestion-text {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n }\n\n .suggestion-label {\n font-size: var(--_font-size);\n line-height: 20px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .suggestion-supporting {\n font-size: var(--md-sys-typescale-body-medium-size, 14px);\n line-height: 16px;\n color: var(--md-sys-color-on-surface-variant, #49454F);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 2px;\n }\n\n .suggestion-trailing {\n font-size: var(--md-sys-typescale-body-medium-size, 14px);\n color: var(--md-sys-color-on-surface-variant, #49454F);\n flex-shrink: 0;\n }\n\n .search-trigger-container {\n display: none;\n }\n\n /* Responsive Fullscreen / Mobile Collapsed Mode */\n @media (max-width: 768px) {\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])),\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) {\n display: inline-flex;\n width: auto;\n max-width: none;\n vertical-align: middle;\n }\n\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container,\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n border-radius: 50%;\n box-shadow: none;\n cursor: pointer;\n user-select: none;\n outline: none;\n transition: background-color 200ms ease, box-shadow 200ms ease;\n -webkit-tap-highlight-color: transparent;\n }\n\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container.has-trailing,\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container.has-trailing {\n height: var(--_height);\n padding: 0 4px;\n gap: 2px;\n background-color: var(--_bg);\n border-radius: var(--_shape);\n box-shadow: var(--_elevation);\n }\n\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container.has-trailing:hover,\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container.has-trailing:hover {\n box-shadow: var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0, 0, 0, 0.15));\n }\n\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container:focus-visible,\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) .search-trigger-container:focus-visible {\n outline: 2px solid var(--md-sys-color-primary, #6750A4);\n outline-offset: 2px;\n }\n\n .trigger-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_btn-size);\n height: var(--_btn-size);\n min-width: var(--_btn-size);\n min-height: var(--_btn-size);\n border-radius: 50%;\n border: none;\n background: transparent;\n color: var(--md-sys-color-on-surface-variant, #49454F);\n cursor: pointer;\n padding: 0;\n margin: 0;\n outline: none;\n position: relative;\n transition: background-color 150ms ease, color 150ms ease;\n -webkit-tap-highlight-color: transparent;\n }\n\n .trigger-btn md-icon {\n font-size: var(--_icon-size);\n --md-icon-size: var(--_icon-size);\n }\n\n .trigger-btn:hover {\n background-color: rgba(73, 69, 79, 0.08);\n }\n\n .trigger-btn:focus-visible {\n background-color: rgba(73, 69, 79, 0.12);\n }\n\n .trigger-divider {\n width: 1px;\n height: 22px;\n background-color: var(--md-sys-color-outline-variant, #CAC4D0);\n margin: 0 2px;\n flex-shrink: 0;\n }\n\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])) .search-container,\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) .search-container {\n display: none;\n }\n\n :host([responsive]:not([active]):not([collapse-on-mobile=\"false\"])) .scrim,\n :host([collapse-on-mobile]:not([active]):not([collapse-on-mobile=\"false\"])) .scrim {\n display: none;\n }\n\n :host([responsive][active]),\n :host([collapse-on-mobile][active]) {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n height: 100dvh;\n max-width: 100vw;\n margin: 0;\n padding: 0;\n z-index: 99999;\n }\n\n :host([responsive][active]) .search-trigger-container,\n :host([collapse-on-mobile][active]) .search-trigger-container {\n display: none;\n }\n\n :host([responsive][active]) .scrim,\n :host([collapse-on-mobile][active]) .scrim {\n display: none;\n }\n\n :host([responsive][active]) .search-container,\n :host([collapse-on-mobile][active]) .search-container {\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n height: 100dvh;\n max-width: 100vw;\n border-radius: 0;\n box-shadow: none;\n z-index: 99999;\n background-color: var(--_bg);\n }\n\n :host([responsive][active]) .suggestions-container,\n :host([collapse-on-mobile][active]) .suggestions-container {\n flex: 1;\n max-height: calc(100vh - 57px);\n max-height: calc(100dvh - 57px);\n }\n }\n\n /* Forced Fullscreen attribute */\n :host([fullscreen][active]) {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n height: 100dvh;\n max-width: 100vw;\n z-index: 99999;\n }\n\n :host([fullscreen][active]) .search-trigger-container {\n display: none;\n }\n\n :host([fullscreen][active]) .scrim {\n display: none;\n }\n\n :host([fullscreen][active]) .search-container {\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n height: 100dvh;\n max-width: 100vw;\n border-radius: 0;\n box-shadow: none;\n z-index: 99999;\n background-color: var(--_bg);\n }\n\n :host([fullscreen][active]) .suggestions-container {\n flex: 1;\n max-height: calc(100vh - 57px);\n max-height: calc(100dvh - 57px);\n }\n`;\n\n","import { html, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { MdFormAssociatedElement } from '../../internal/form-associated.js';\nimport '../icon/icon.js';\nimport { searchBarStyles } from './search-bar.css.js';\n\nexport type SearchBarSize = 'small' | 'compact' | 'medium' | 'large';\n\nexport interface SearchSuggestion {\n id?: string;\n label: string;\n value?: string;\n supportingText?: string;\n trailingSupportingText?: string;\n icon?: string;\n [key: string]: unknown;\n}\n\n@customElement('md-search-bar')\nexport class MdSearchBar extends MdFormAssociatedElement {\n static override styles = [MdFormAssociatedElement.styles, searchBarStyles];\n\n @property({ type: String, reflect: true })\n size: SearchBarSize = 'medium';\n\n @property({ type: Boolean, reflect: true })\n compact = false;\n\n @property({ type: String })\n value = '';\n\n @property({ type: String })\n placeholder = 'Search';\n\n @property({ type: Boolean, reflect: true })\n active = false;\n\n @property({ type: Array })\n suggestions: Array<string | SearchSuggestion> = [];\n\n @property({ type: String, attribute: 'leading-icon' })\n leadingIcon = 'search';\n\n @property({ type: String, attribute: 'active-leading-icon' })\n activeLeadingIcon = 'arrow_back';\n\n @property({ type: String, attribute: 'trailing-icon' })\n trailingIcon = '';\n\n @property({ type: Boolean, attribute: 'show-back-button' })\n showBackButton = true;\n\n @property({ type: Boolean, attribute: 'show-clear-button' })\n showClearButton = true;\n\n @property({ type: Boolean, reflect: true })\n responsive = true;\n\n @property({ type: Boolean, attribute: 'collapse-on-mobile', reflect: true })\n collapseOnMobile = true;\n\n @property({ type: Boolean, reflect: true })\n fullscreen = false;\n\n @property({ type: Boolean, attribute: 'auto-deactivate-on-select' })\n autoDeactivateOnSelect = true;\n\n @state()\n private highlightedIndex = -1;\n\n @query('input')\n private inputElement?: HTMLInputElement;\n\n override connectedCallback() {\n super.connectedCallback();\n this.setFormValue(this.value);\n this.toggleAttribute('has-value', Boolean(this.value));\n this.toggleAttribute('active', this.active);\n this.toggleAttribute('collapse-on-mobile', this.collapseOnMobile);\n }\n\n override willUpdate(changedProperties: Map<string, unknown>) {\n super.willUpdate(changedProperties);\n if (changedProperties.has('value')) {\n this.setFormValue(this.value);\n this.toggleAttribute('has-value', Boolean(this.value));\n }\n if (changedProperties.has('active')) {\n this.toggleAttribute('active', this.active);\n if (!this.active) {\n this.highlightedIndex = -1;\n }\n }\n if (changedProperties.has('collapseOnMobile')) {\n this.toggleAttribute('collapse-on-mobile', this.collapseOnMobile);\n }\n }\n\n override formResetCallback() {\n this.value = '';\n this.setFormValue(null);\n this.toggleAttribute('has-value', false);\n this.highlightedIndex = -1;\n }\n\n /**\n * Focuses the search input field.\n */\n override focus() {\n this.inputElement?.focus();\n }\n\n /**\n * Opens / activates the search view.\n */\n show() {\n if (!this.active) {\n this.active = true;\n this.emitEvent('active-change', { active: true });\n }\n this.updateComplete.then(() => {\n this.inputElement?.focus();\n });\n }\n\n /**\n * Alias for show()\n */\n open() {\n this.show();\n }\n\n /**\n * Closes / deactivates the search view.\n */\n close() {\n if (this.active) {\n this.active = false;\n this.highlightedIndex = -1;\n this.emitEvent('active-change', { active: false });\n }\n }\n\n /**\n * Alias for close()\n */\n collapse() {\n this.close();\n }\n\n /**\n * Toggles the active state of the search bar.\n */\n toggle() {\n if (this.active) {\n this.close();\n } else {\n this.show();\n }\n }\n\n /**\n * Clears the current search input.\n */\n clear() {\n this.value = '';\n this.setFormValue('');\n this.toggleAttribute('has-value', false);\n this.highlightedIndex = -1;\n this.emitEvent('input', { value: '' });\n this.emitEvent('clear');\n this.inputElement?.focus();\n }\n\n private handleFocus = () => {\n if (!this.active) {\n this.active = true;\n this.emitEvent('active-change', { active: true });\n }\n };\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.setFormValue(this.value);\n this.toggleAttribute('has-value', Boolean(this.value));\n this.highlightedIndex = -1;\n this.emitEvent('input', { value: this.value });\n };\n\n private handleChange = () => {\n this.emitEvent('change', { value: this.value });\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const count = this.suggestions.length;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n this.inputElement?.blur();\n return;\n }\n\n if (event.key === 'ArrowDown') {\n if (!this.active) {\n this.show();\n return;\n }\n if (count > 0) {\n event.preventDefault();\n this.highlightedIndex = (this.highlightedIndex + 1) % count;\n }\n return;\n }\n\n if (event.key === 'ArrowUp') {\n if (count > 0 && this.active) {\n event.preventDefault();\n this.highlightedIndex = this.highlightedIndex <= 0 ? count - 1 : this.highlightedIndex - 1;\n }\n return;\n }\n\n if (event.key === 'Enter') {\n if (this.active && this.highlightedIndex >= 0 && this.highlightedIndex < count) {\n const item = this.suggestions[this.highlightedIndex];\n if (item !== undefined) {\n event.preventDefault();\n this.selectSuggestion(item, this.highlightedIndex);\n }\n } else {\n this.emitEvent('search', { value: this.value });\n }\n }\n };\n\n private handleTriggerClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.show();\n };\n\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.show();\n }\n };\n\n private handleTrailingTriggerClick = (event: MouseEvent) => {\n event.stopPropagation();\n const allowed = this.emitEvent('trailing-icon-click', { icon: this.trailingIcon });\n if (allowed) {\n this.show();\n }\n };\n\n private handleBackClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.close();\n };\n\n private handleScrimClick = () => {\n this.close();\n };\n\n private handleClearClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.clear();\n };\n\n private selectSuggestion(suggestion: string | SearchSuggestion, index: number) {\n const label = typeof suggestion === 'string' ? suggestion : suggestion.label;\n const value = typeof suggestion === 'string' ? suggestion : (suggestion.value ?? suggestion.label);\n\n this.value = value;\n this.setFormValue(this.value);\n this.toggleAttribute('has-value', Boolean(this.value));\n this.emitEvent('suggestion-select', { suggestion, label, value, index });\n this.emitEvent('search', { value: this.value, suggestion });\n\n if (this.autoDeactivateOnSelect) {\n this.close();\n }\n }\n\n private renderSuggestionItem(suggestion: string | SearchSuggestion, index: number) {\n const isString = typeof suggestion === 'string';\n const label = isString ? suggestion : suggestion.label;\n const supportingText = !isString ? suggestion.supportingText : undefined;\n const trailingSupportingText = !isString ? suggestion.trailingSupportingText : undefined;\n const iconName = !isString && suggestion.icon ? suggestion.icon : 'history';\n const isHighlighted = this.highlightedIndex === index;\n\n return html`\n <div\n class=\"suggestion-item ${isHighlighted ? 'highlighted' : ''}\"\n role=\"option\"\n aria-selected=${isHighlighted ? 'true' : 'false'}\n @click=${() => this.selectSuggestion(suggestion, index)}\n >\n <span class=\"suggestion-icon\">\n <md-icon name=${iconName}></md-icon>\n </span>\n <div class=\"suggestion-text\">\n <span class=\"suggestion-label\">${label}</span>\n ${supportingText ? html`<span class=\"suggestion-supporting\">${supportingText}</span>` : nothing}\n </div>\n ${trailingSupportingText ? html`<span class=\"suggestion-trailing\">${trailingSupportingText}</span>` : nothing}\n </div>\n `;\n }\n\n override render() {\n const showBack = this.active && this.showBackButton;\n const hasTrailing = Boolean(this.trailingIcon);\n\n return html`\n <div\n class=\"search-trigger-container ${hasTrailing ? 'has-trailing' : ''}\"\n role=\"button\"\n tabindex=\"0\"\n aria-label=${this.placeholder || 'Search'}\n title=${this.placeholder || 'Search'}\n ?disabled=${this.disabled}\n @click=${this.handleTriggerClick}\n @keydown=${this.handleTriggerKeyDown}\n >\n <button\n class=\"trigger-btn\"\n type=\"button\"\n aria-label=${this.placeholder || 'Search'}\n title=${this.placeholder || 'Search'}\n ?disabled=${this.disabled}\n @click=${this.handleTriggerClick}\n >\n <md-icon name=${this.leadingIcon || 'search'}></md-icon>\n </button>\n\n ${hasTrailing\n ? html`\n <div class=\"trigger-divider\" aria-hidden=\"true\"></div>\n <button\n class=\"trigger-btn trigger-trailing-btn\"\n type=\"button\"\n aria-label=${this.trailingIcon}\n title=${this.trailingIcon}\n ?disabled=${this.disabled}\n @click=${this.handleTrailingTriggerClick}\n >\n <md-icon name=${this.trailingIcon}></md-icon>\n </button>\n `\n : nothing}\n </div>\n\n <div class=\"scrim\" @click=${this.handleScrimClick}></div>\n\n <div class=\"search-container\" role=\"search\">\n <div class=\"search-bar-header\">\n <span class=\"leading-slot\">\n <slot name=\"leading-icon\">\n ${showBack\n ? html`\n <button\n class=\"icon-btn\"\n type=\"button\"\n aria-label=\"Back\"\n @click=${this.handleBackClick}\n >\n <md-icon name=${this.activeLeadingIcon}></md-icon>\n </button>\n `\n : html`\n <span class=\"icon-btn\" style=\"cursor: default;\">\n <md-icon name=${this.leadingIcon}></md-icon>\n </span>\n `}\n </slot>\n </span>\n\n <div class=\"input-wrapper\">\n <input\n type=\"search\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded=${this.active ? 'true' : 'false'}\n aria-label=${this.placeholder}\n placeholder=${this.placeholder}\n .value=${this.value}\n ?disabled=${this.disabled}\n @input=${this.handleInput}\n @change=${this.handleChange}\n @keydown=${this.handleKeyDown}\n @focus=${this.handleFocus}\n @click=${this.handleFocus}\n />\n </div>\n\n <span class=\"trailing-slot\">\n ${this.showClearButton && this.value\n ? html`\n <button\n class=\"icon-btn clear-btn\"\n type=\"button\"\n aria-label=\"Clear search\"\n @click=${this.handleClearClick}\n >\n <md-icon name=\"close\"></md-icon>\n </button>\n `\n : nothing}\n\n <slot name=\"trailing-icon\">\n ${this.trailingIcon\n ? html`\n <span class=\"icon-btn\" style=\"cursor: default;\">\n <md-icon name=${this.trailingIcon}></md-icon>\n </span>\n `\n : nothing}\n </slot>\n </span>\n </div>\n\n <div class=\"divider\"></div>\n\n <div class=\"suggestions-container\" role=\"listbox\" aria-label=\"Suggestions\">\n <slot name=\"suggestions\">\n ${this.suggestions.map((item, idx) => this.renderSuggestionItem(item, idx))}\n </slot>\n <div class=\"extra-content\">\n <slot></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\n@customElement('md-search')\nexport class MdSearch extends MdSearchBar {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-search-bar': MdSearchBar;\n 'md-search': MdSearch;\n }\n}\n"],"mappings":";;;;;AAEA,IAAa,IAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}