@francofantomius/material-components 0.1.0

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 (148) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +192 -0
  3. package/custom-elements.json +5448 -0
  4. package/dist/chunks/base-component-DQTjlEVL.js +34 -0
  5. package/dist/chunks/base-component-DQTjlEVL.js.map +1 -0
  6. package/dist/chunks/focus-ring-Dl-XoEKK.js +71 -0
  7. package/dist/chunks/focus-ring-Dl-XoEKK.js.map +1 -0
  8. package/dist/chunks/form-associated-fKbeX_2P.js +74 -0
  9. package/dist/chunks/form-associated-fKbeX_2P.js.map +1 -0
  10. package/dist/chunks/theme.css-DV3DRha-.js +263 -0
  11. package/dist/chunks/theme.css-DV3DRha-.js.map +1 -0
  12. package/dist/components/badge/badge.css.d.ts +2 -0
  13. package/dist/components/badge/badge.css.d.ts.map +1 -0
  14. package/dist/components/badge/badge.d.ts +16 -0
  15. package/dist/components/badge/badge.d.ts.map +1 -0
  16. package/dist/components/badge/badge.js +93 -0
  17. package/dist/components/badge/badge.js.map +1 -0
  18. package/dist/components/button/button.css.d.ts +2 -0
  19. package/dist/components/button/button.css.d.ts.map +1 -0
  20. package/dist/components/button/button.d.ts +25 -0
  21. package/dist/components/button/button.d.ts.map +1 -0
  22. package/dist/components/button/button.js +263 -0
  23. package/dist/components/button/button.js.map +1 -0
  24. package/dist/components/card/card.css.d.ts +2 -0
  25. package/dist/components/card/card.css.d.ts.map +1 -0
  26. package/dist/components/card/card.d.ts +18 -0
  27. package/dist/components/card/card.d.ts.map +1 -0
  28. package/dist/components/card/card.js +169 -0
  29. package/dist/components/card/card.js.map +1 -0
  30. package/dist/components/checkbox/checkbox.css.d.ts +2 -0
  31. package/dist/components/checkbox/checkbox.css.d.ts.map +1 -0
  32. package/dist/components/checkbox/checkbox.d.ts +24 -0
  33. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  34. package/dist/components/checkbox/checkbox.js +188 -0
  35. package/dist/components/checkbox/checkbox.js.map +1 -0
  36. package/dist/components/chip/chip.css.d.ts +3 -0
  37. package/dist/components/chip/chip.css.d.ts.map +1 -0
  38. package/dist/components/chip/chip.d.ts +27 -0
  39. package/dist/components/chip/chip.d.ts.map +1 -0
  40. package/dist/components/chip/chip.js +174 -0
  41. package/dist/components/chip/chip.js.map +1 -0
  42. package/dist/components/dialog/dialog.css.d.ts +2 -0
  43. package/dist/components/dialog/dialog.css.d.ts.map +1 -0
  44. package/dist/components/dialog/dialog.d.ts +22 -0
  45. package/dist/components/dialog/dialog.d.ts.map +1 -0
  46. package/dist/components/dialog/dialog.js +167 -0
  47. package/dist/components/dialog/dialog.js.map +1 -0
  48. package/dist/components/divider/divider.css.d.ts +2 -0
  49. package/dist/components/divider/divider.css.d.ts.map +1 -0
  50. package/dist/components/divider/divider.d.ts +16 -0
  51. package/dist/components/divider/divider.d.ts.map +1 -0
  52. package/dist/components/divider/divider.js +81 -0
  53. package/dist/components/divider/divider.js.map +1 -0
  54. package/dist/components/fab/fab.css.d.ts +2 -0
  55. package/dist/components/fab/fab.css.d.ts.map +1 -0
  56. package/dist/components/fab/fab.d.ts +19 -0
  57. package/dist/components/fab/fab.d.ts.map +1 -0
  58. package/dist/components/fab/fab.js +155 -0
  59. package/dist/components/fab/fab.js.map +1 -0
  60. package/dist/components/icon/icon.css.d.ts +2 -0
  61. package/dist/components/icon/icon.css.d.ts.map +1 -0
  62. package/dist/components/icon/icon.d.ts +15 -0
  63. package/dist/components/icon/icon.d.ts.map +1 -0
  64. package/dist/components/icon/icon.js +70 -0
  65. package/dist/components/icon/icon.js.map +1 -0
  66. package/dist/components/icon-button/icon-button.css.d.ts +2 -0
  67. package/dist/components/icon-button/icon-button.css.d.ts.map +1 -0
  68. package/dist/components/icon-button/icon-button.d.ts +22 -0
  69. package/dist/components/icon-button/icon-button.d.ts.map +1 -0
  70. package/dist/components/icon-button/icon-button.js +192 -0
  71. package/dist/components/icon-button/icon-button.js.map +1 -0
  72. package/dist/components/list/list.css.d.ts +3 -0
  73. package/dist/components/list/list.css.d.ts.map +1 -0
  74. package/dist/components/list/list.d.ts +25 -0
  75. package/dist/components/list/list.d.ts.map +1 -0
  76. package/dist/components/list/list.js +190 -0
  77. package/dist/components/list/list.js.map +1 -0
  78. package/dist/components/progress/progress.css.d.ts +2 -0
  79. package/dist/components/progress/progress.css.d.ts.map +1 -0
  80. package/dist/components/progress/progress.d.ts +19 -0
  81. package/dist/components/progress/progress.d.ts.map +1 -0
  82. package/dist/components/progress/progress.js +183 -0
  83. package/dist/components/progress/progress.js.map +1 -0
  84. package/dist/components/radio/radio.css.d.ts +3 -0
  85. package/dist/components/radio/radio.css.d.ts.map +1 -0
  86. package/dist/components/radio/radio.d.ts +38 -0
  87. package/dist/components/radio/radio.d.ts.map +1 -0
  88. package/dist/components/radio/radio.js +205 -0
  89. package/dist/components/radio/radio.js.map +1 -0
  90. package/dist/components/snackbar/snackbar.css.d.ts +2 -0
  91. package/dist/components/snackbar/snackbar.css.d.ts.map +1 -0
  92. package/dist/components/snackbar/snackbar.d.ts +24 -0
  93. package/dist/components/snackbar/snackbar.d.ts.map +1 -0
  94. package/dist/components/snackbar/snackbar.js +164 -0
  95. package/dist/components/snackbar/snackbar.js.map +1 -0
  96. package/dist/components/switch/switch.css.d.ts +2 -0
  97. package/dist/components/switch/switch.css.d.ts.map +1 -0
  98. package/dist/components/switch/switch.d.ts +22 -0
  99. package/dist/components/switch/switch.d.ts.map +1 -0
  100. package/dist/components/switch/switch.js +171 -0
  101. package/dist/components/switch/switch.js.map +1 -0
  102. package/dist/components/tabs/tabs.css.d.ts +3 -0
  103. package/dist/components/tabs/tabs.css.d.ts.map +1 -0
  104. package/dist/components/tabs/tabs.d.ts +33 -0
  105. package/dist/components/tabs/tabs.d.ts.map +1 -0
  106. package/dist/components/tabs/tabs.js +200 -0
  107. package/dist/components/tabs/tabs.js.map +1 -0
  108. package/dist/components/text-field/text-field.css.d.ts +2 -0
  109. package/dist/components/text-field/text-field.css.d.ts.map +1 -0
  110. package/dist/components/text-field/text-field.d.ts +40 -0
  111. package/dist/components/text-field/text-field.d.ts.map +1 -0
  112. package/dist/components/text-field/text-field.js +327 -0
  113. package/dist/components/text-field/text-field.js.map +1 -0
  114. package/dist/index.d.ts +23 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +59 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/internal/base-component.d.ts +13 -0
  119. package/dist/internal/base-component.d.ts.map +1 -0
  120. package/dist/internal/focus-ring/focus-ring.css.d.ts +2 -0
  121. package/dist/internal/focus-ring/focus-ring.css.d.ts.map +1 -0
  122. package/dist/internal/focus-ring/focus-ring.d.ts +18 -0
  123. package/dist/internal/focus-ring/focus-ring.d.ts.map +1 -0
  124. package/dist/internal/form-associated.d.ts +26 -0
  125. package/dist/internal/form-associated.d.ts.map +1 -0
  126. package/dist/internal/ripple/ripple.css.d.ts +2 -0
  127. package/dist/internal/ripple/ripple.css.d.ts.map +1 -0
  128. package/dist/internal/ripple/ripple.d.ts +26 -0
  129. package/dist/internal/ripple/ripple.d.ts.map +1 -0
  130. package/dist/internal/ripple/ripple.js +144 -0
  131. package/dist/internal/ripple/ripple.js.map +1 -0
  132. package/dist/tokens/colors.d.ts +42 -0
  133. package/dist/tokens/colors.d.ts.map +1 -0
  134. package/dist/tokens/elevation.d.ts +9 -0
  135. package/dist/tokens/elevation.d.ts.map +1 -0
  136. package/dist/tokens/index.d.ts +7 -0
  137. package/dist/tokens/index.d.ts.map +1 -0
  138. package/dist/tokens/index.js +13 -0
  139. package/dist/tokens/index.js.map +1 -0
  140. package/dist/tokens/motion.d.ts +21 -0
  141. package/dist/tokens/motion.d.ts.map +1 -0
  142. package/dist/tokens/shape.d.ts +10 -0
  143. package/dist/tokens/shape.d.ts.map +1 -0
  144. package/dist/tokens/theme.css.d.ts +4 -0
  145. package/dist/tokens/theme.css.d.ts.map +1 -0
  146. package/dist/tokens/typography.d.ts +101 -0
  147. package/dist/tokens/typography.d.ts.map +1 -0
  148. package/package.json +133 -0
@@ -0,0 +1,16 @@
1
+ import { MdBaseElement } from '../../internal/base-component.js';
2
+ export declare class MdDivider extends MdBaseElement {
3
+ static styles: import('lit').CSSResultGroup[];
4
+ vertical: boolean;
5
+ inset: boolean;
6
+ insetStart: boolean;
7
+ insetEnd: boolean;
8
+ connectedCallback(): void;
9
+ render(): import('lit-html').TemplateResult<1>;
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'md-divider': MdDivider;
14
+ }
15
+ }
16
+ //# sourceMappingURL=divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,qBACa,SAAU,SAAQ,aAAa;IAC1C,OAAgB,MAAM,iCAAyC;IAG/D,QAAQ,UAAS;IAGjB,KAAK,UAAS;IAGd,UAAU,UAAS;IAGnB,QAAQ,UAAS;IAER,iBAAiB;IAMjB,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -0,0 +1,81 @@
1
+ import { css as h, html as d } from "lit";
2
+ import { property as s, customElement as v } from "lit/decorators.js";
3
+ import { M as p } from "../../chunks/base-component-DQTjlEVL.js";
4
+ const m = h`
5
+ :host {
6
+ display: block;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ :host(:not([vertical])) {
11
+ width: 100%;
12
+ height: 1px;
13
+ background-color: var(--md-sys-color-outline-variant, #CAC4D0);
14
+ }
15
+
16
+ :host([vertical]) {
17
+ display: inline-block;
18
+ width: 1px;
19
+ height: 100%;
20
+ vertical-align: middle;
21
+ background-color: var(--md-sys-color-outline-variant, #CAC4D0);
22
+ }
23
+
24
+ :host([inset]:not([vertical])) {
25
+ margin-left: 16px;
26
+ margin-right: 16px;
27
+ width: calc(100% - 32px);
28
+ }
29
+
30
+ :host([inset-start]:not([vertical])) {
31
+ margin-left: 16px;
32
+ width: calc(100% - 16px);
33
+ }
34
+
35
+ :host([inset-end]:not([vertical])) {
36
+ margin-right: 16px;
37
+ width: calc(100% - 16px);
38
+ }
39
+
40
+ :host([inset][vertical]) {
41
+ margin-top: 8px;
42
+ margin-bottom: 8px;
43
+ height: calc(100% - 16px);
44
+ }
45
+ `;
46
+ var u = Object.defineProperty, f = Object.getOwnPropertyDescriptor, r = (c, i, a, o) => {
47
+ for (var t = o > 1 ? void 0 : o ? f(i, a) : i, l = c.length - 1, n; l >= 0; l--)
48
+ (n = c[l]) && (t = (o ? n(i, a, t) : n(t)) || t);
49
+ return o && t && u(i, a, t), t;
50
+ };
51
+ let e = class extends p {
52
+ constructor() {
53
+ super(...arguments), this.vertical = !1, this.inset = !1, this.insetStart = !1, this.insetEnd = !1;
54
+ }
55
+ connectedCallback() {
56
+ super.connectedCallback(), this.setAttribute("role", "separator"), this.setAttribute("aria-orientation", this.vertical ? "vertical" : "horizontal");
57
+ }
58
+ render() {
59
+ return d``;
60
+ }
61
+ };
62
+ e.styles = [p.styles, m];
63
+ r([
64
+ s({ type: Boolean, reflect: !0 })
65
+ ], e.prototype, "vertical", 2);
66
+ r([
67
+ s({ type: Boolean, reflect: !0 })
68
+ ], e.prototype, "inset", 2);
69
+ r([
70
+ s({ type: Boolean, reflect: !0, attribute: "inset-start" })
71
+ ], e.prototype, "insetStart", 2);
72
+ r([
73
+ s({ type: Boolean, reflect: !0, attribute: "inset-end" })
74
+ ], e.prototype, "insetEnd", 2);
75
+ e = r([
76
+ v("md-divider")
77
+ ], e);
78
+ export {
79
+ e as MdDivider
80
+ };
81
+ //# sourceMappingURL=divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.js","sources":["../../../src/components/divider/divider.css.ts","../../../src/components/divider/divider.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const dividerStyles = css`\n :host {\n display: block;\n box-sizing: border-box;\n }\n\n :host(:not([vertical])) {\n width: 100%;\n height: 1px;\n background-color: var(--md-sys-color-outline-variant, #CAC4D0);\n }\n\n :host([vertical]) {\n display: inline-block;\n width: 1px;\n height: 100%;\n vertical-align: middle;\n background-color: var(--md-sys-color-outline-variant, #CAC4D0);\n }\n\n :host([inset]:not([vertical])) {\n margin-left: 16px;\n margin-right: 16px;\n width: calc(100% - 32px);\n }\n\n :host([inset-start]:not([vertical])) {\n margin-left: 16px;\n width: calc(100% - 16px);\n }\n\n :host([inset-end]:not([vertical])) {\n margin-right: 16px;\n width: calc(100% - 16px);\n }\n\n :host([inset][vertical]) {\n margin-top: 8px;\n margin-bottom: 8px;\n height: calc(100% - 16px);\n }\n`;\n\n","import { html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { MdBaseElement } from '../../internal/base-component.js';\nimport { dividerStyles } from './divider.css.js';\n\n@customElement('md-divider')\nexport class MdDivider extends MdBaseElement {\n static override styles = [MdBaseElement.styles, dividerStyles];\n\n @property({ type: Boolean, reflect: true })\n vertical = false;\n\n @property({ type: Boolean, reflect: true })\n inset = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'inset-start' })\n insetStart = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'inset-end' })\n insetEnd = false;\n\n override connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'separator');\n this.setAttribute('aria-orientation', this.vertical ? 'vertical' : 'horizontal');\n }\n\n override render() {\n return html``;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-divider': MdDivider;\n }\n}\n\n"],"names":["dividerStyles","css","MdDivider","MdBaseElement","html","__decorateClass","property","customElement"],"mappings":";;;AAEO,MAAMA,IAAgBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACItB,IAAMC,IAAN,cAAwBC,EAAc;AAAA,EAAtC,cAAA;AAAA,UAAA,GAAA,SAAA,GAIL,KAAA,WAAW,IAGX,KAAA,QAAQ,IAGR,KAAA,aAAa,IAGb,KAAA,WAAW;AAAA,EAAA;AAAA,EAEF,oBAAoB;AAC3B,UAAM,kBAAA,GACN,KAAK,aAAa,QAAQ,WAAW,GACrC,KAAK,aAAa,oBAAoB,KAAK,WAAW,aAAa,YAAY;AAAA,EACjF;AAAA,EAES,SAAS;AAChB,WAAOC;AAAA,EACT;AACF;AAxBaF,EACK,SAAS,CAACC,EAAc,QAAQH,CAAa;AAG7DK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAH/BJ,EAIX,WAAA,YAAA,CAAA;AAGAG,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAN/BJ,EAOX,WAAA,SAAA,CAAA;AAGAG,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM,WAAW,eAAe;AAAA,GATzDJ,EAUX,WAAA,cAAA,CAAA;AAGAG,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM,WAAW,aAAa;AAAA,GAZvDJ,EAaX,WAAA,YAAA,CAAA;AAbWA,IAANG,EAAA;AAAA,EADNE,EAAc,YAAY;AAAA,GACdL,CAAA;"}
@@ -0,0 +1,2 @@
1
+ export declare const fabStyles: import('lit').CSSResult;
2
+ //# sourceMappingURL=fab.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fab.css.d.ts","sourceRoot":"","sources":["../../../src/components/fab/fab.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,yBA6FrB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { MdBaseElement } from '../../internal/base-component.js';
2
+ export type FabSize = 'small' | 'medium' | 'large';
3
+ export declare class MdFab extends MdBaseElement {
4
+ static styles: import('lit').CSSResultGroup[];
5
+ size: FabSize;
6
+ label: string;
7
+ icon: string;
8
+ lowered: boolean;
9
+ disabled: boolean;
10
+ extended: boolean;
11
+ updated(changedProperties: Map<string, unknown>): void;
12
+ render(): import('lit-html').TemplateResult<1>;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'md-fab': MdFab;
17
+ }
18
+ }
19
+ //# sourceMappingURL=fab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fab.d.ts","sourceRoot":"","sources":["../../../src/components/fab/fab.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,iCAAiC,CAAC;AACzC,OAAO,yCAAyC,CAAC;AACjD,OAAO,iBAAiB,CAAC;AAGzB,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEnD,qBACa,KAAM,SAAQ,aAAa;IACtC,OAAgB,MAAM,iCAAqC;IAG3D,IAAI,EAAE,OAAO,CAAY;IAGzB,KAAK,SAAM;IAGX,IAAI,SAAM;IAGV,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,QAAQ,UAAS;IAER,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAO/C,MAAM;CAgBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,KAAK,CAAC;KACjB;CACF"}
@@ -0,0 +1,155 @@
1
+ import { css as b, nothing as h, html as d } from "lit";
2
+ import { property as s, customElement as m } from "lit/decorators.js";
3
+ import { M as c } from "../../chunks/base-component-DQTjlEVL.js";
4
+ import "../../internal/ripple/ripple.js";
5
+ import "../../chunks/focus-ring-Dl-XoEKK.js";
6
+ import "../icon/icon.js";
7
+ const x = b`
8
+ :host {
9
+ display: inline-flex;
10
+ outline: none;
11
+ vertical-align: middle;
12
+ -webkit-tap-highlight-color: transparent;
13
+ }
14
+
15
+ :host([disabled]) {
16
+ pointer-events: none;
17
+ }
18
+
19
+ button {
20
+ position: relative;
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ box-sizing: border-box;
25
+ border: none;
26
+ cursor: pointer;
27
+ user-select: none;
28
+ outline: none;
29
+ background-color: var(--md-sys-color-primary-container, #EADDFF);
30
+ color: var(--md-sys-color-on-primary-container, #21005D);
31
+ box-shadow: var(--md-sys-elevation-level3, 0px 1px 3px 0px rgba(0,0,0,0.30));
32
+ transition: box-shadow 200ms cubic-bezier(0.2, 0, 0, 1),
33
+ background-color 200ms cubic-bezier(0.2, 0, 0, 1);
34
+ overflow: hidden;
35
+ }
36
+
37
+ button:hover {
38
+ box-shadow: var(--md-sys-elevation-level4, 0px 2px 3px 0px rgba(0,0,0,0.30));
39
+ }
40
+
41
+ :host([lowered]) button {
42
+ box-shadow: var(--md-sys-elevation-level1, 0px 1px 3px 1px rgba(0,0,0,0.15));
43
+ }
44
+
45
+ :host([lowered]) button:hover {
46
+ box-shadow: var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0,0,0,0.15));
47
+ }
48
+
49
+ /* --- Sizes --- */
50
+ :host(:not([size])) button,
51
+ :host([size="medium"]) button {
52
+ width: 56px;
53
+ height: 56px;
54
+ border-radius: var(--md-sys-shape-corner-large, 16px);
55
+ }
56
+
57
+ :host([size="small"]) button {
58
+ width: 40px;
59
+ height: 40px;
60
+ border-radius: var(--md-sys-shape-corner-medium, 12px);
61
+ }
62
+
63
+ :host([size="large"]) button {
64
+ width: 96px;
65
+ height: 96px;
66
+ border-radius: var(--md-sys-shape-corner-extra-large, 28px);
67
+ }
68
+
69
+ :host([size="large"]) md-icon {
70
+ --md-icon-size: 36px;
71
+ }
72
+
73
+ /* --- Extended FAB --- */
74
+ :host([extended]) button {
75
+ width: auto;
76
+ min-width: 80px;
77
+ height: 56px;
78
+ padding: 0 20px;
79
+ border-radius: var(--md-sys-shape-corner-large, 16px);
80
+ gap: 12px;
81
+ }
82
+
83
+ .label {
84
+ font-family: var(--md-sys-typescale-font-family, inherit);
85
+ font-size: var(--md-sys-typescale-label-large-size, 14px);
86
+ font-weight: 500;
87
+ line-height: 20px;
88
+ letter-spacing: 0.1px;
89
+ white-space: nowrap;
90
+ }
91
+
92
+ .content {
93
+ display: inline-flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ gap: 12px;
97
+ position: relative;
98
+ z-index: 1;
99
+ }
100
+ `;
101
+ var u = Object.defineProperty, y = Object.getOwnPropertyDescriptor, o = (r, i, a, n) => {
102
+ for (var t = n > 1 ? void 0 : n ? y(i, a) : i, l = r.length - 1, p; l >= 0; l--)
103
+ (p = r[l]) && (t = (n ? p(i, a, t) : p(t)) || t);
104
+ return n && t && u(i, a, t), t;
105
+ };
106
+ let e = class extends c {
107
+ constructor() {
108
+ super(...arguments), this.size = "medium", this.label = "", this.icon = "", this.lowered = !1, this.disabled = !1, this.extended = !1;
109
+ }
110
+ updated(r) {
111
+ super.updated(r), r.has("label") && (this.extended = !!this.label);
112
+ }
113
+ render() {
114
+ return d`
115
+ <button ?disabled=${this.disabled}>
116
+ <md-ripple ?disabled=${this.disabled}></md-ripple>
117
+ <md-focus-ring></md-focus-ring>
118
+ <span class="content">
119
+ <slot name="icon">
120
+ ${this.icon ? d`<md-icon name=${this.icon}></md-icon>` : h}
121
+ </slot>
122
+ <slot>
123
+ ${this.label ? d`<span class="label">${this.label}</span>` : h}
124
+ </slot>
125
+ </span>
126
+ </button>
127
+ `;
128
+ }
129
+ };
130
+ e.styles = [c.styles, x];
131
+ o([
132
+ s({ type: String, reflect: !0 })
133
+ ], e.prototype, "size", 2);
134
+ o([
135
+ s({ type: String })
136
+ ], e.prototype, "label", 2);
137
+ o([
138
+ s({ type: String })
139
+ ], e.prototype, "icon", 2);
140
+ o([
141
+ s({ type: Boolean, reflect: !0 })
142
+ ], e.prototype, "lowered", 2);
143
+ o([
144
+ s({ type: Boolean, reflect: !0 })
145
+ ], e.prototype, "disabled", 2);
146
+ o([
147
+ s({ type: Boolean, reflect: !0 })
148
+ ], e.prototype, "extended", 2);
149
+ e = o([
150
+ m("md-fab")
151
+ ], e);
152
+ export {
153
+ e as MdFab
154
+ };
155
+ //# sourceMappingURL=fab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fab.js","sources":["../../../src/components/fab/fab.css.ts","../../../src/components/fab/fab.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const fabStyles = css`\n :host {\n display: inline-flex;\n outline: none;\n vertical-align: middle;\n -webkit-tap-highlight-color: transparent;\n }\n\n :host([disabled]) {\n pointer-events: none;\n }\n\n button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border: none;\n cursor: pointer;\n user-select: none;\n outline: none;\n background-color: var(--md-sys-color-primary-container, #EADDFF);\n color: var(--md-sys-color-on-primary-container, #21005D);\n box-shadow: var(--md-sys-elevation-level3, 0px 1px 3px 0px rgba(0,0,0,0.30));\n transition: box-shadow 200ms cubic-bezier(0.2, 0, 0, 1),\n background-color 200ms cubic-bezier(0.2, 0, 0, 1);\n overflow: hidden;\n }\n\n button:hover {\n box-shadow: var(--md-sys-elevation-level4, 0px 2px 3px 0px rgba(0,0,0,0.30));\n }\n\n :host([lowered]) button {\n box-shadow: var(--md-sys-elevation-level1, 0px 1px 3px 1px rgba(0,0,0,0.15));\n }\n\n :host([lowered]) button:hover {\n box-shadow: var(--md-sys-elevation-level2, 0px 2px 6px 2px rgba(0,0,0,0.15));\n }\n\n /* --- Sizes --- */\n :host(:not([size])) button,\n :host([size=\"medium\"]) button {\n width: 56px;\n height: 56px;\n border-radius: var(--md-sys-shape-corner-large, 16px);\n }\n\n :host([size=\"small\"]) button {\n width: 40px;\n height: 40px;\n border-radius: var(--md-sys-shape-corner-medium, 12px);\n }\n\n :host([size=\"large\"]) button {\n width: 96px;\n height: 96px;\n border-radius: var(--md-sys-shape-corner-extra-large, 28px);\n }\n\n :host([size=\"large\"]) md-icon {\n --md-icon-size: 36px;\n }\n\n /* --- Extended FAB --- */\n :host([extended]) button {\n width: auto;\n min-width: 80px;\n height: 56px;\n padding: 0 20px;\n border-radius: var(--md-sys-shape-corner-large, 16px);\n gap: 12px;\n }\n\n .label {\n font-family: var(--md-sys-typescale-font-family, inherit);\n font-size: var(--md-sys-typescale-label-large-size, 14px);\n font-weight: 500;\n line-height: 20px;\n letter-spacing: 0.1px;\n white-space: nowrap;\n }\n\n .content {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n position: relative;\n z-index: 1;\n }\n`;\n\n","import { html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { MdBaseElement } from '../../internal/base-component.js';\nimport '../../internal/ripple/ripple.js';\nimport '../../internal/focus-ring/focus-ring.js';\nimport '../icon/icon.js';\nimport { fabStyles } from './fab.css.js';\n\nexport type FabSize = 'small' | 'medium' | 'large';\n\n@customElement('md-fab')\nexport class MdFab extends MdBaseElement {\n static override styles = [MdBaseElement.styles, fabStyles];\n\n @property({ type: String, reflect: true })\n size: FabSize = 'medium';\n\n @property({ type: String })\n label = '';\n\n @property({ type: String })\n icon = '';\n\n @property({ type: Boolean, reflect: true })\n lowered = false;\n\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @property({ type: Boolean, reflect: true })\n extended = false;\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n if (changedProperties.has('label')) {\n this.extended = Boolean(this.label);\n }\n }\n\n override render() {\n return html`\n <button ?disabled=${this.disabled}>\n <md-ripple ?disabled=${this.disabled}></md-ripple>\n <md-focus-ring></md-focus-ring>\n <span class=\"content\">\n <slot name=\"icon\">\n ${this.icon ? html`<md-icon name=${this.icon}></md-icon>` : nothing}\n </slot>\n <slot>\n ${this.label ? html`<span class=\"label\">${this.label}</span>` : nothing}\n </slot>\n </span>\n </button>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-fab': MdFab;\n }\n}\n\n"],"names":["fabStyles","css","MdFab","MdBaseElement","changedProperties","html","nothing","__decorateClass","property","customElement"],"mappings":";;;;;;AAEO,MAAMA,IAAYC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACSlB,IAAMC,IAAN,cAAoBC,EAAc;AAAA,EAAlC,cAAA;AAAA,UAAA,GAAA,SAAA,GAIL,KAAA,OAAgB,UAGhB,KAAA,QAAQ,IAGR,KAAA,OAAO,IAGP,KAAA,UAAU,IAGV,KAAA,WAAW,IAGX,KAAA,WAAW;AAAA,EAAA;AAAA,EAEF,QAAQC,GAAyC;AACxD,UAAM,QAAQA,CAAiB,GAC3BA,EAAkB,IAAI,OAAO,MAC/B,KAAK,WAAW,EAAQ,KAAK;AAAA,EAEjC;AAAA,EAES,SAAS;AAChB,WAAOC;AAAA,0BACe,KAAK,QAAQ;AAAA,+BACR,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,cAI9B,KAAK,OAAOA,kBAAqB,KAAK,IAAI,gBAAgBC,CAAO;AAAA;AAAA;AAAA,cAGjE,KAAK,QAAQD,wBAA2B,KAAK,KAAK,YAAYC,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjF;AACF;AA5CaJ,EACK,SAAS,CAACC,EAAc,QAAQH,CAAS;AAGzDO,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAH9BN,EAIX,WAAA,QAAA,CAAA;AAGAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GANfN,EAOX,WAAA,SAAA,CAAA;AAGAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GATfN,EAUX,WAAA,QAAA,CAAA;AAGAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAZ/BN,EAaX,WAAA,WAAA,CAAA;AAGAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAf/BN,EAgBX,WAAA,YAAA,CAAA;AAGAK,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAlB/BN,EAmBX,WAAA,YAAA,CAAA;AAnBWA,IAANK,EAAA;AAAA,EADNE,EAAc,QAAQ;AAAA,GACVP,CAAA;"}
@@ -0,0 +1,2 @@
1
+ export declare const iconStyles: import('lit').CSSResult;
2
+ //# sourceMappingURL=icon.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.css.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,yBAiCtB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { MdBaseElement } from '../../internal/base-component.js';
2
+ export declare class MdIcon extends MdBaseElement {
3
+ static styles: import('lit').CSSResultGroup[];
4
+ name: string;
5
+ filled: boolean;
6
+ size: string;
7
+ updated(changedProperties: Map<string, unknown>): void;
8
+ render(): import('lit-html').TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'md-icon': MdIcon;
13
+ }
14
+ }
15
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,qBACa,MAAO,SAAQ,aAAa;IACvC,OAAgB,MAAM,iCAAsC;IAG5D,IAAI,SAAM;IAGV,MAAM,UAAS;IAGf,IAAI,SAAM;IAED,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAW/C,MAAM;CAGhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -0,0 +1,70 @@
1
+ import { css as f, html as h } from "lit";
2
+ import { property as p, customElement as c } from "lit/decorators.js";
3
+ import { M as m } from "../../chunks/base-component-DQTjlEVL.js";
4
+ const d = f`
5
+ :host {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ vertical-align: middle;
10
+ width: var(--md-icon-size, 24px);
11
+ height: var(--md-icon-size, 24px);
12
+ font-size: var(--md-icon-size, 24px);
13
+ line-height: 1;
14
+ letter-spacing: normal;
15
+ text-transform: none;
16
+ white-space: nowrap;
17
+ word-wrap: normal;
18
+ direction: ltr;
19
+ font-family: 'Material Symbols Outlined', 'Material Icons', sans-serif;
20
+ font-weight: normal;
21
+ font-style: normal;
22
+ font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
23
+ user-select: none;
24
+ flex-shrink: 0;
25
+ color: inherit;
26
+ }
27
+
28
+ :host([filled]) {
29
+ font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
30
+ }
31
+
32
+ ::slotted(svg) {
33
+ width: 100%;
34
+ height: 100%;
35
+ fill: currentColor;
36
+ }
37
+ `;
38
+ var y = Object.defineProperty, u = Object.getOwnPropertyDescriptor, o = (s, i, n, r) => {
39
+ for (var e = r > 1 ? void 0 : r ? u(i, n) : i, l = s.length - 1, a; l >= 0; l--)
40
+ (a = s[l]) && (e = (r ? a(i, n, e) : a(e)) || e);
41
+ return r && e && y(i, n, e), e;
42
+ };
43
+ let t = class extends m {
44
+ constructor() {
45
+ super(...arguments), this.name = "", this.filled = !1, this.size = "";
46
+ }
47
+ updated(s) {
48
+ super.updated(s), s.has("size") && (this.size ? this.style.setProperty("--md-icon-size", isNaN(Number(this.size)) ? this.size : `${this.size}px`) : this.style.removeProperty("--md-icon-size"));
49
+ }
50
+ render() {
51
+ return h`<slot>${this.name}</slot>`;
52
+ }
53
+ };
54
+ t.styles = [m.styles, d];
55
+ o([
56
+ p({ type: String })
57
+ ], t.prototype, "name", 2);
58
+ o([
59
+ p({ type: Boolean, reflect: !0 })
60
+ ], t.prototype, "filled", 2);
61
+ o([
62
+ p({ type: String })
63
+ ], t.prototype, "size", 2);
64
+ t = o([
65
+ c("md-icon")
66
+ ], t);
67
+ export {
68
+ t as MdIcon
69
+ };
70
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sources":["../../../src/components/icon/icon.css.ts","../../../src/components/icon/icon.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const iconStyles = css`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n width: var(--md-icon-size, 24px);\n height: var(--md-icon-size, 24px);\n font-size: var(--md-icon-size, 24px);\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-family: 'Material Symbols Outlined', 'Material Icons', sans-serif;\n font-weight: normal;\n font-style: normal;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n user-select: none;\n flex-shrink: 0;\n color: inherit;\n }\n\n :host([filled]) {\n font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n }\n\n ::slotted(svg) {\n width: 100%;\n height: 100%;\n fill: currentColor;\n }\n`;\n\n","import { html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { MdBaseElement } from '../../internal/base-component.js';\nimport { iconStyles } from './icon.css.js';\n\n@customElement('md-icon')\nexport class MdIcon extends MdBaseElement {\n static override styles = [MdBaseElement.styles, iconStyles];\n\n @property({ type: String })\n name = '';\n\n @property({ type: Boolean, reflect: true })\n filled = false;\n\n @property({ type: String })\n size = '';\n\n override updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n if (changedProperties.has('size')) {\n if (this.size) {\n this.style.setProperty('--md-icon-size', isNaN(Number(this.size)) ? this.size : `${this.size}px`);\n } else {\n this.style.removeProperty('--md-icon-size');\n }\n }\n }\n\n override render() {\n return html`<slot>${this.name}</slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-icon': MdIcon;\n }\n}\n\n"],"names":["iconStyles","css","MdIcon","MdBaseElement","changedProperties","html","__decorateClass","property","customElement"],"mappings":";;;AAEO,MAAMA,IAAaC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACInB,IAAMC,IAAN,cAAqBC,EAAc;AAAA,EAAnC,cAAA;AAAA,UAAA,GAAA,SAAA,GAIL,KAAA,OAAO,IAGP,KAAA,SAAS,IAGT,KAAA,OAAO;AAAA,EAAA;AAAA,EAEE,QAAQC,GAAyC;AACxD,UAAM,QAAQA,CAAiB,GAC3BA,EAAkB,IAAI,MAAM,MAC1B,KAAK,OACP,KAAK,MAAM,YAAY,kBAAkB,MAAM,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,KAAK,IAAI,IAAI,IAEhG,KAAK,MAAM,eAAe,gBAAgB;AAAA,EAGhD;AAAA,EAES,SAAS;AAChB,WAAOC,UAAa,KAAK,IAAI;AAAA,EAC/B;AACF;AA1BaH,EACK,SAAS,CAACC,EAAc,QAAQH,CAAU;AAG1DM,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAHfL,EAIX,WAAA,QAAA,CAAA;AAGAI,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAN/BL,EAOX,WAAA,UAAA,CAAA;AAGAI,EAAA;AAAA,EADCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GATfL,EAUX,WAAA,QAAA,CAAA;AAVWA,IAANI,EAAA;AAAA,EADNE,EAAc,SAAS;AAAA,GACXN,CAAA;"}
@@ -0,0 +1,2 @@
1
+ export declare const iconButtonStyles: import('lit').CSSResult;
2
+ //# sourceMappingURL=icon-button.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-button.css.d.ts","sourceRoot":"","sources":["../../../src/components/icon-button/icon-button.css.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBAqG5B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { MdBaseElement } from '../../internal/base-component.js';
2
+ export type IconButtonVariant = 'standard' | 'filled' | 'tonal' | 'outlined';
3
+ export declare class MdIconButton extends MdBaseElement {
4
+ static styles: import('lit').CSSResultGroup[];
5
+ variant: IconButtonVariant;
6
+ disabled: boolean;
7
+ toggle: boolean;
8
+ selected: boolean;
9
+ icon: string;
10
+ selectedIcon: string;
11
+ ariaLabelText: string;
12
+ href: string;
13
+ target: string;
14
+ private handleClick;
15
+ render(): import('lit-html').TemplateResult<1>;
16
+ }
17
+ declare global {
18
+ interface HTMLElementTagNameMap {
19
+ 'md-icon-button': MdIconButton;
20
+ }
21
+ }
22
+ //# sourceMappingURL=icon-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../../src/components/icon-button/icon-button.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,iCAAiC,CAAC;AACzC,OAAO,yCAAyC,CAAC;AACjD,OAAO,iBAAiB,CAAC;AAGzB,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7E,qBACa,YAAa,SAAQ,aAAa;IAC7C,OAAgB,MAAM,iCAA4C;IAGlE,OAAO,EAAE,iBAAiB,CAAc;IAGxC,QAAQ,UAAS;IAGjB,MAAM,UAAS;IAGf,QAAQ,UAAS;IAGjB,IAAI,SAAM;IAGV,YAAY,SAAM;IAGlB,aAAa,SAAM;IAGnB,IAAI,SAAM;IAGV,MAAM,SAAM;IAEZ,OAAO,CAAC,WAAW,CAWjB;IAEO,MAAM;CAwChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
@@ -0,0 +1,192 @@
1
+ import { css as b, nothing as a, html as l } from "lit";
2
+ import { property as o, customElement as u } from "lit/decorators.js";
3
+ import { M as p } from "../../chunks/base-component-DQTjlEVL.js";
4
+ import "../../internal/ripple/ripple.js";
5
+ import "../../chunks/focus-ring-Dl-XoEKK.js";
6
+ import "../icon/icon.js";
7
+ const v = b`
8
+ :host {
9
+ display: inline-flex;
10
+ outline: none;
11
+ vertical-align: middle;
12
+ -webkit-tap-highlight-color: transparent;
13
+ }
14
+
15
+ :host([disabled]) {
16
+ pointer-events: none;
17
+ }
18
+
19
+ button, a {
20
+ position: relative;
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ box-sizing: border-box;
25
+ width: 40px;
26
+ height: 40px;
27
+ padding: 0;
28
+ border: none;
29
+ border-radius: var(--md-sys-shape-corner-full, 50%);
30
+ background-color: transparent;
31
+ color: var(--md-sys-color-on-surface-variant, #49454F);
32
+ cursor: pointer;
33
+ user-select: none;
34
+ outline: none;
35
+ text-decoration: none;
36
+ transition: background-color 150ms cubic-bezier(0.2, 0, 0, 1),
37
+ color 150ms cubic-bezier(0.2, 0, 0, 1);
38
+ }
39
+
40
+ /* --- Filled --- */
41
+ :host([variant="filled"]) button,
42
+ :host([variant="filled"]) a {
43
+ background-color: var(--md-sys-color-primary, #6750A4);
44
+ color: var(--md-sys-color-on-primary, #FFFFFF);
45
+ }
46
+
47
+ :host([variant="filled"][selected]) button,
48
+ :host([variant="filled"][selected]) a {
49
+ background-color: var(--md-sys-color-primary, #6750A4);
50
+ color: var(--md-sys-color-on-primary, #FFFFFF);
51
+ }
52
+
53
+ /* --- Tonal --- */
54
+ :host([variant="tonal"]) button,
55
+ :host([variant="tonal"]) a {
56
+ background-color: var(--md-sys-color-secondary-container, #E8DEF8);
57
+ color: var(--md-sys-color-on-secondary-container, #1D192B);
58
+ }
59
+
60
+ /* --- Outlined --- */
61
+ :host([variant="outlined"]) button,
62
+ :host([variant="outlined"]) a {
63
+ border: 1px solid var(--md-sys-color-outline, #79747E);
64
+ color: var(--md-sys-color-on-surface-variant, #49454F);
65
+ }
66
+
67
+ :host([variant="outlined"][selected]) button,
68
+ :host([variant="outlined"][selected]) a {
69
+ background-color: var(--md-sys-color-inverse-surface, #313033);
70
+ color: var(--md-sys-color-inverse-on-surface, #F4EFF4);
71
+ border: none;
72
+ }
73
+
74
+ /* --- Toggle / Selected for Standard --- */
75
+ :host(:not([variant])[selected]) button,
76
+ :host(:not([variant])[selected]) a,
77
+ :host([variant="standard"][selected]) button,
78
+ :host([variant="standard"][selected]) a {
79
+ color: var(--md-sys-color-primary, #6750A4);
80
+ }
81
+
82
+ /* --- Disabled --- */
83
+ :host([disabled]) button,
84
+ :host([disabled]) a {
85
+ cursor: not-allowed;
86
+ color: rgba(29, 27, 32, 0.38);
87
+ }
88
+
89
+ :host([disabled][variant="filled"]) button,
90
+ :host([disabled][variant="filled"]) a,
91
+ :host([disabled][variant="tonal"]) button,
92
+ :host([disabled][variant="tonal"]) a {
93
+ background-color: rgba(29, 27, 32, 0.12);
94
+ }
95
+
96
+ :host([disabled][variant="outlined"]) button,
97
+ :host([disabled][variant="outlined"]) a {
98
+ border-color: rgba(29, 27, 32, 0.12);
99
+ }
100
+
101
+ .content {
102
+ display: inline-flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ position: relative;
106
+ z-index: 1;
107
+ }
108
+ `;
109
+ var m = Object.defineProperty, y = Object.getOwnPropertyDescriptor, e = (r, s, d, n) => {
110
+ for (var i = n > 1 ? void 0 : n ? y(s, d) : s, c = r.length - 1, h; c >= 0; c--)
111
+ (h = r[c]) && (i = (n ? h(s, d, i) : h(i)) || i);
112
+ return n && i && m(s, d, i), i;
113
+ };
114
+ let t = class extends p {
115
+ constructor() {
116
+ super(...arguments), this.variant = "standard", this.disabled = !1, this.toggle = !1, this.selected = !1, this.icon = "", this.selectedIcon = "", this.ariaLabelText = "", this.href = "", this.target = "", this.handleClick = (r) => {
117
+ if (this.disabled) {
118
+ r.preventDefault(), r.stopImmediatePropagation();
119
+ return;
120
+ }
121
+ this.toggle && (this.selected = !this.selected, this.emitEvent("change", { selected: this.selected }));
122
+ };
123
+ }
124
+ render() {
125
+ const r = this.selected && this.selectedIcon ? this.selectedIcon : this.icon, s = l`
126
+ <md-ripple ?disabled=${this.disabled} unbounded></md-ripple>
127
+ <md-focus-ring></md-focus-ring>
128
+ <span class="content">
129
+ <slot>
130
+ ${r ? l`<md-icon name=${r} ?filled=${this.selected}></md-icon>` : a}
131
+ </slot>
132
+ </span>
133
+ `;
134
+ return this.href ? l`
135
+ <a
136
+ href=${this.disabled ? a : this.href}
137
+ target=${this.target || a}
138
+ aria-label=${this.ariaLabelText || a}
139
+ aria-pressed=${this.toggle ? this.selected ? "true" : "false" : a}
140
+ aria-disabled=${this.disabled ? "true" : a}
141
+ tabindex=${this.disabled ? "-1" : "0"}
142
+ @click=${this.handleClick}
143
+ >
144
+ ${s}
145
+ </a>
146
+ ` : l`
147
+ <button
148
+ aria-label=${this.ariaLabelText || a}
149
+ aria-pressed=${this.toggle ? this.selected ? "true" : "false" : a}
150
+ ?disabled=${this.disabled}
151
+ @click=${this.handleClick}
152
+ >
153
+ ${s}
154
+ </button>
155
+ `;
156
+ }
157
+ };
158
+ t.styles = [p.styles, v];
159
+ e([
160
+ o({ type: String, reflect: !0 })
161
+ ], t.prototype, "variant", 2);
162
+ e([
163
+ o({ type: Boolean, reflect: !0 })
164
+ ], t.prototype, "disabled", 2);
165
+ e([
166
+ o({ type: Boolean, reflect: !0 })
167
+ ], t.prototype, "toggle", 2);
168
+ e([
169
+ o({ type: Boolean, reflect: !0 })
170
+ ], t.prototype, "selected", 2);
171
+ e([
172
+ o({ type: String })
173
+ ], t.prototype, "icon", 2);
174
+ e([
175
+ o({ type: String, attribute: "selected-icon" })
176
+ ], t.prototype, "selectedIcon", 2);
177
+ e([
178
+ o({ type: String, attribute: "aria-label" })
179
+ ], t.prototype, "ariaLabelText", 2);
180
+ e([
181
+ o({ type: String })
182
+ ], t.prototype, "href", 2);
183
+ e([
184
+ o({ type: String })
185
+ ], t.prototype, "target", 2);
186
+ t = e([
187
+ u("md-icon-button")
188
+ ], t);
189
+ export {
190
+ t as MdIconButton
191
+ };
192
+ //# sourceMappingURL=icon-button.js.map