@francofantomius/material-components 1.0.1 → 1.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 (163) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +41 -9
  3. package/custom-elements.json +19060 -9017
  4. package/dist/chunks/account-menu-Dau0UHTl.js +1290 -0
  5. package/dist/chunks/account-menu-Dau0UHTl.js.map +1 -0
  6. package/dist/chunks/app-drawer-Du1ePzxZ.js +903 -0
  7. package/dist/chunks/app-drawer-Du1ePzxZ.js.map +1 -0
  8. package/dist/chunks/bottom-sheet-q79BBYAj.js +402 -0
  9. package/dist/chunks/bottom-sheet-q79BBYAj.js.map +1 -0
  10. package/dist/chunks/{button-B4TSZ7Sl.js → button-D2vn7kJ8.js} +9 -8
  11. package/dist/chunks/button-D2vn7kJ8.js.map +1 -0
  12. package/dist/chunks/button-group-CNqvJx1n.js +143 -0
  13. package/dist/chunks/button-group-CNqvJx1n.js.map +1 -0
  14. package/dist/chunks/carousel-item-BG6kjjjk.js +371 -0
  15. package/dist/chunks/carousel-item-BG6kjjjk.js.map +1 -0
  16. package/dist/chunks/date-picker-DJeHi4w-.js +777 -0
  17. package/dist/chunks/date-picker-DJeHi4w-.js.map +1 -0
  18. package/dist/chunks/fab-menu.css-3pu930sZ.js +320 -0
  19. package/dist/chunks/fab-menu.css-3pu930sZ.js.map +1 -0
  20. package/dist/chunks/{icon-button-BdSc7eot.js → icon-button-BQz73GLa.js} +2 -2
  21. package/dist/chunks/icon-button-BQz73GLa.js.map +1 -0
  22. package/dist/chunks/loading-indicator-CvWnZr9o.js +193 -0
  23. package/dist/chunks/loading-indicator-CvWnZr9o.js.map +1 -0
  24. package/dist/chunks/menu-item-BBSp5Cqc.js +390 -0
  25. package/dist/chunks/menu-item-BBSp5Cqc.js.map +1 -0
  26. package/dist/chunks/navigation-bar-item-C9DfOEzg.js +397 -0
  27. package/dist/chunks/navigation-bar-item-C9DfOEzg.js.map +1 -0
  28. package/dist/chunks/navigation-rail-item-6pdhNHJK.js +357 -0
  29. package/dist/chunks/navigation-rail-item-6pdhNHJK.js.map +1 -0
  30. package/dist/chunks/segmented-button-B0BvGSQ7.js +265 -0
  31. package/dist/chunks/segmented-button-B0BvGSQ7.js.map +1 -0
  32. package/dist/chunks/side-sheet-S2w081AK.js +360 -0
  33. package/dist/chunks/side-sheet-S2w081AK.js.map +1 -0
  34. package/dist/chunks/slider-D-mnO8yQ.js +450 -0
  35. package/dist/chunks/slider-D-mnO8yQ.js.map +1 -0
  36. package/dist/chunks/split-button-DUfjukQY.js +450 -0
  37. package/dist/chunks/split-button-DUfjukQY.js.map +1 -0
  38. package/dist/chunks/{table-aRTYzDyE.js → table-CqHnneAj.js} +2 -2
  39. package/dist/chunks/{table-aRTYzDyE.js.map → table-CqHnneAj.js.map} +1 -1
  40. package/dist/chunks/time-picker-CZnb2sWz.js +785 -0
  41. package/dist/chunks/time-picker-CZnb2sWz.js.map +1 -0
  42. package/dist/chunks/toolbar-DXVQbQKJ.js +271 -0
  43. package/dist/chunks/toolbar-DXVQbQKJ.js.map +1 -0
  44. package/dist/chunks/tooltip-CE7JMHMu.js +398 -0
  45. package/dist/chunks/tooltip-CE7JMHMu.js.map +1 -0
  46. package/dist/components/account-menu/account-menu.js +8 -0
  47. package/dist/components/app-drawer/app-drawer.js +9 -0
  48. package/dist/components/bottom-sheet/bottom-sheet.css.d.ts +2 -0
  49. package/dist/components/bottom-sheet/bottom-sheet.css.d.ts.map +1 -0
  50. package/dist/components/bottom-sheet/bottom-sheet.d.ts +69 -0
  51. package/dist/components/bottom-sheet/bottom-sheet.d.ts.map +1 -0
  52. package/dist/components/bottom-sheet/bottom-sheet.js +4 -0
  53. package/dist/components/button/button.css.d.ts.map +1 -1
  54. package/dist/components/button/button.js +1 -1
  55. package/dist/components/button-group/button-group.css.d.ts +2 -0
  56. package/dist/components/button-group/button-group.css.d.ts.map +1 -0
  57. package/dist/components/button-group/button-group.d.ts +28 -0
  58. package/dist/components/button-group/button-group.d.ts.map +1 -0
  59. package/dist/components/button-group/button-group.js +4 -0
  60. package/dist/components/carousel/carousel-item.d.ts +33 -0
  61. package/dist/components/carousel/carousel-item.d.ts.map +1 -0
  62. package/dist/components/carousel/carousel-item.js +4 -0
  63. package/dist/components/carousel/carousel.css.d.ts +3 -0
  64. package/dist/components/carousel/carousel.css.d.ts.map +1 -0
  65. package/dist/components/carousel/carousel.d.ts +81 -0
  66. package/dist/components/carousel/carousel.d.ts.map +1 -0
  67. package/dist/components/carousel/carousel.js +284 -0
  68. package/dist/components/carousel/carousel.js.map +1 -0
  69. package/dist/components/date-picker/date-picker.css.d.ts +2 -0
  70. package/dist/components/date-picker/date-picker.css.d.ts.map +1 -0
  71. package/dist/components/date-picker/date-picker.d.ts +59 -0
  72. package/dist/components/date-picker/date-picker.d.ts.map +1 -0
  73. package/dist/components/date-picker/date-picker.js +4 -0
  74. package/dist/components/fab-menu/fab-menu-item.d.ts +35 -0
  75. package/dist/components/fab-menu/fab-menu-item.d.ts.map +1 -0
  76. package/dist/components/fab-menu/fab-menu-item.js +93 -0
  77. package/dist/components/fab-menu/fab-menu-item.js.map +1 -0
  78. package/dist/components/fab-menu/fab-menu.css.d.ts +3 -0
  79. package/dist/components/fab-menu/fab-menu.css.d.ts.map +1 -0
  80. package/dist/components/fab-menu/fab-menu.d.ts +72 -0
  81. package/dist/components/fab-menu/fab-menu.d.ts.map +1 -0
  82. package/dist/components/fab-menu/fab-menu.js +148 -0
  83. package/dist/components/fab-menu/fab-menu.js.map +1 -0
  84. package/dist/components/icon-button/icon-button.js +1 -1
  85. package/dist/components/loading-indicator/loading-indicator.css.d.ts +2 -0
  86. package/dist/components/loading-indicator/loading-indicator.css.d.ts.map +1 -0
  87. package/dist/components/loading-indicator/loading-indicator.d.ts +48 -0
  88. package/dist/components/loading-indicator/loading-indicator.d.ts.map +1 -0
  89. package/dist/components/loading-indicator/loading-indicator.js +4 -0
  90. package/dist/components/menu/menu-item.d.ts +41 -0
  91. package/dist/components/menu/menu-item.d.ts.map +1 -0
  92. package/dist/components/menu/menu-item.js +4 -0
  93. package/dist/components/menu/menu.css.d.ts +3 -0
  94. package/dist/components/menu/menu.css.d.ts.map +1 -0
  95. package/dist/components/menu/menu.d.ts +91 -0
  96. package/dist/components/menu/menu.d.ts.map +1 -0
  97. package/dist/components/menu/menu.js +205 -0
  98. package/dist/components/menu/menu.js.map +1 -0
  99. package/dist/components/navigation-bar/navigation-bar-item.d.ts +49 -0
  100. package/dist/components/navigation-bar/navigation-bar-item.d.ts.map +1 -0
  101. package/dist/components/navigation-bar/navigation-bar-item.js +5 -0
  102. package/dist/components/navigation-bar/navigation-bar.css.d.ts +3 -0
  103. package/dist/components/navigation-bar/navigation-bar.css.d.ts.map +1 -0
  104. package/dist/components/navigation-bar/navigation-bar.d.ts +50 -0
  105. package/dist/components/navigation-bar/navigation-bar.d.ts.map +1 -0
  106. package/dist/components/navigation-bar/navigation-bar.js +150 -0
  107. package/dist/components/navigation-bar/navigation-bar.js.map +1 -0
  108. package/dist/components/navigation-rail/navigation-rail-item.d.ts +36 -0
  109. package/dist/components/navigation-rail/navigation-rail-item.d.ts.map +1 -0
  110. package/dist/components/navigation-rail/navigation-rail-item.js +5 -0
  111. package/dist/components/navigation-rail/navigation-rail.css.d.ts +3 -0
  112. package/dist/components/navigation-rail/navigation-rail.css.d.ts.map +1 -0
  113. package/dist/components/navigation-rail/navigation-rail.d.ts +43 -0
  114. package/dist/components/navigation-rail/navigation-rail.d.ts.map +1 -0
  115. package/dist/components/navigation-rail/navigation-rail.js +121 -0
  116. package/dist/components/navigation-rail/navigation-rail.js.map +1 -0
  117. package/dist/components/segmented-button/segmented-button.css.d.ts +3 -0
  118. package/dist/components/segmented-button/segmented-button.css.d.ts.map +1 -0
  119. package/dist/components/segmented-button/segmented-button.d.ts +40 -0
  120. package/dist/components/segmented-button/segmented-button.d.ts.map +1 -0
  121. package/dist/components/segmented-button/segmented-button.js +5 -0
  122. package/dist/components/side-sheet/side-sheet.css.d.ts +2 -0
  123. package/dist/components/side-sheet/side-sheet.css.d.ts.map +1 -0
  124. package/dist/components/side-sheet/side-sheet.d.ts +57 -0
  125. package/dist/components/side-sheet/side-sheet.d.ts.map +1 -0
  126. package/dist/components/side-sheet/side-sheet.js +4 -0
  127. package/dist/components/slider/slider.css.d.ts +2 -0
  128. package/dist/components/slider/slider.css.d.ts.map +1 -0
  129. package/dist/components/slider/slider.d.ts +51 -0
  130. package/dist/components/slider/slider.d.ts.map +1 -0
  131. package/dist/components/slider/slider.js +4 -0
  132. package/dist/components/split-button/split-button.css.d.ts +2 -0
  133. package/dist/components/split-button/split-button.css.d.ts.map +1 -0
  134. package/dist/components/split-button/split-button.d.ts +89 -0
  135. package/dist/components/split-button/split-button.d.ts.map +1 -0
  136. package/dist/components/split-button/split-button.js +4 -0
  137. package/dist/components/table/table.js +1 -1
  138. package/dist/components/time-picker/time-picker.css.d.ts +2 -0
  139. package/dist/components/time-picker/time-picker.css.d.ts.map +1 -0
  140. package/dist/components/time-picker/time-picker.d.ts +87 -0
  141. package/dist/components/time-picker/time-picker.d.ts.map +1 -0
  142. package/dist/components/time-picker/time-picker.js +4 -0
  143. package/dist/components/toolbar/toolbar.css.d.ts +2 -0
  144. package/dist/components/toolbar/toolbar.css.d.ts.map +1 -0
  145. package/dist/components/toolbar/toolbar.d.ts +53 -0
  146. package/dist/components/toolbar/toolbar.d.ts.map +1 -0
  147. package/dist/components/toolbar/toolbar.js +4 -0
  148. package/dist/components/tooltip/tooltip.css.d.ts +2 -0
  149. package/dist/components/tooltip/tooltip.css.d.ts.map +1 -0
  150. package/dist/components/tooltip/tooltip.d.ts +89 -0
  151. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  152. package/dist/components/tooltip/tooltip.js +4 -0
  153. package/dist/index.d.ts +21 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +148 -2263
  156. package/dist/tokens/index.js +4 -2
  157. package/dist/tokens/index.js.map +1 -1
  158. package/dist/tokens/theme.css.d.ts.map +1 -1
  159. package/llms.txt +2326 -0
  160. package/package.json +99 -2
  161. package/dist/chunks/button-B4TSZ7Sl.js.map +0 -1
  162. package/dist/chunks/icon-button-BdSc7eot.js.map +0 -1
  163. package/dist/index.js.map +0 -1
@@ -0,0 +1,1290 @@
1
+ import { n as p, t as e } from "./decorate-DXuynaiA.js";
2
+ import "./ripple-squbKHhj.js";
3
+ import "./focus-ring-CuiJuM-y.js";
4
+ import "./icon-DrNqcNEL.js";
5
+ import "./icon-button-BQz73GLa.js";
6
+ import { css as u, html as i, nothing as c } from "lit";
7
+ import { customElement as l, property as t, state as b } from "lit/decorators.js";
8
+ var f = u`
9
+ :host {
10
+ display: inline-block;
11
+ position: relative;
12
+ font-family: var(--md-sys-typescale-font-family, inherit);
13
+ }
14
+
15
+ :host([hidden]) {
16
+ display: none;
17
+ }
18
+
19
+ .trigger-container {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ }
24
+
25
+ .avatar-btn {
26
+ position: relative;
27
+ display: inline-flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ width: var(--md-account-trigger-size, 40px);
31
+ height: var(--md-account-trigger-size, 40px);
32
+ border-radius: var(--md-sys-shape-corner-full, 9999px);
33
+ background-color: var(--md-sys-color-primary-container, #EADDFF);
34
+ color: var(--md-sys-color-on-primary-container, #21005D);
35
+ border: 2px solid transparent;
36
+ padding: 0;
37
+ cursor: pointer;
38
+ outline: none;
39
+ font-family: inherit;
40
+ font-size: 16px;
41
+ font-weight: 600;
42
+ user-select: none;
43
+ transition: box-shadow 150ms ease, transform 150ms ease, border-color 150ms ease;
44
+ -webkit-tap-highlight-color: transparent;
45
+ overflow: visible;
46
+ }
47
+
48
+ .avatar-btn:hover {
49
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.3);
50
+ border-color: var(--md-sys-color-outline-variant, #CAC4D0);
51
+ }
52
+
53
+ .avatar-btn:focus-visible {
54
+ border-color: var(--md-sys-color-primary, #6750A4);
55
+ }
56
+
57
+ .avatar-img {
58
+ width: 100%;
59
+ height: 100%;
60
+ border-radius: var(--md-sys-shape-corner-full, 9999px);
61
+ object-fit: cover;
62
+ }
63
+
64
+ .avatar-initials {
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ width: 100%;
69
+ height: 100%;
70
+ text-transform: uppercase;
71
+ letter-spacing: 0.5px;
72
+ }
73
+
74
+ .backdrop {
75
+ display: none;
76
+ position: fixed;
77
+ inset: 0;
78
+ z-index: 990;
79
+ background-color: transparent;
80
+ }
81
+
82
+ :host([modal]) .backdrop {
83
+ background-color: rgba(0, 0, 0, 0.32);
84
+ backdrop-filter: blur(1px);
85
+ }
86
+
87
+ :host([open][modal]) .backdrop {
88
+ display: block;
89
+ }
90
+
91
+ .popover {
92
+ display: none;
93
+ position: absolute;
94
+ top: calc(100% + 8px);
95
+ right: 0;
96
+ z-index: 1000;
97
+ width: var(--md-account-menu-width, 380px);
98
+ max-width: calc(100vw - 24px);
99
+ height: fit-content;
100
+ max-height: var(--md-account-menu-max-height, none);
101
+ box-sizing: border-box;
102
+ padding: 0;
103
+ border-radius: var(--md-sys-shape-corner-extra-large, 28px);
104
+ background-color: var(--md-sys-color-surface-container-high, #ECE6F0);
105
+ color: var(--md-sys-color-on-surface, #1D1B20);
106
+ box-shadow: var(--md-sys-elevation-level3, 0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3));
107
+ overflow-y: auto;
108
+ overflow-x: hidden;
109
+ overscroll-behavior: contain;
110
+ scrollbar-width: thin;
111
+ scrollbar-color: var(--md-sys-color-outline-variant, #CAC4D0) transparent;
112
+ }
113
+
114
+ :host([alignment='start']) .popover,
115
+ :host([pivot='left']) .popover {
116
+ right: auto;
117
+ left: 0;
118
+ }
119
+
120
+ :host([open]) .popover {
121
+ display: flex;
122
+ flex-direction: column;
123
+ animation: md-account-menu-in 150ms cubic-bezier(0.2, 0, 0, 1) forwards;
124
+ }
125
+
126
+ @keyframes md-account-menu-in {
127
+ from {
128
+ opacity: 0;
129
+ transform: scale(0.92) translateY(-8px);
130
+ }
131
+ to {
132
+ opacity: 1;
133
+ transform: scale(1) translateY(0);
134
+ }
135
+ }
136
+
137
+ /* Header Section */
138
+ .popover-header {
139
+ display: flex;
140
+ align-items: center;
141
+ justify-content: flex-end;
142
+ padding: 12px 16px 4px;
143
+ box-sizing: border-box;
144
+ }
145
+
146
+ .header-leading {
147
+ display: flex;
148
+ align-items: center;
149
+ gap: 8px;
150
+ min-width: 0;
151
+ }
152
+
153
+ .back-btn,
154
+ slot[name="back-button"] {
155
+ display: none;
156
+ --md-icon-size: 24px;
157
+ font-size: 24px;
158
+ flex-shrink: 0;
159
+ }
160
+
161
+ .popover-header .headline {
162
+ display: none;
163
+ margin: 0;
164
+ font-size: var(--md-sys-typescale-title-large-size, 20px);
165
+ font-weight: 500;
166
+ line-height: 28px;
167
+ color: var(--md-sys-color-on-surface, #1D1B20);
168
+ white-space: nowrap;
169
+ overflow: hidden;
170
+ text-overflow: ellipsis;
171
+ }
172
+
173
+ .close-btn {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ justify-content: center;
177
+ width: 32px;
178
+ height: 32px;
179
+ border-radius: 50%;
180
+ background: transparent;
181
+ border: none;
182
+ color: var(--md-sys-color-on-surface-variant, #49454F);
183
+ cursor: pointer;
184
+ padding: 0;
185
+ transition: background-color 150ms ease;
186
+ }
187
+
188
+ .close-btn:hover {
189
+ background-color: var(--md-sys-color-surface-container-highest, rgba(0, 0, 0, 0.08));
190
+ color: var(--md-sys-color-on-surface, #1D1B20);
191
+ }
192
+
193
+ /* Profile Card (Account Centerpiece) */
194
+ .profile-card {
195
+ display: flex;
196
+ flex-direction: column;
197
+ align-items: center;
198
+ text-align: center;
199
+ padding: 8px 24px 20px;
200
+ background-color: var(--md-sys-color-surface-container-lowest, #FFFFFF);
201
+ margin: 8px 16px 12px;
202
+ border-radius: var(--md-sys-shape-corner-large, 24px);
203
+ border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
204
+ box-sizing: border-box;
205
+ }
206
+
207
+ .profile-avatar-wrapper {
208
+ position: relative;
209
+ margin: 12px 0 14px;
210
+ }
211
+
212
+ .profile-avatar {
213
+ width: 76px;
214
+ height: 76px;
215
+ border-radius: 50%;
216
+ background-color: var(--md-sys-color-primary, #6750A4);
217
+ color: var(--md-sys-color-on-primary, #FFFFFF);
218
+ display: flex;
219
+ align-items: center;
220
+ justify-content: center;
221
+ font-size: 30px;
222
+ font-weight: 600;
223
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
224
+ overflow: hidden;
225
+ }
226
+
227
+ .profile-avatar img {
228
+ width: 100%;
229
+ height: 100%;
230
+ object-fit: cover;
231
+ }
232
+
233
+ .avatar-edit-badge {
234
+ position: absolute;
235
+ bottom: -2px;
236
+ right: -2px;
237
+ width: 26px;
238
+ height: 26px;
239
+ border-radius: 50%;
240
+ background-color: var(--md-sys-color-surface-container-highest, #E6E0E9);
241
+ border: 2px solid var(--md-sys-color-surface-container-lowest, #FFFFFF);
242
+ color: var(--md-sys-color-on-surface, #1D1B20);
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ cursor: pointer;
247
+ padding: 0;
248
+ transition: background-color 150ms ease;
249
+ }
250
+
251
+ .avatar-edit-badge:hover {
252
+ background-color: var(--md-sys-color-primary-container, #EADDFF);
253
+ color: var(--md-sys-color-on-primary-container, #21005D);
254
+ }
255
+
256
+ .avatar-edit-badge md-icon {
257
+ --md-icon-size: 16px;
258
+ font-size: 16px;
259
+ }
260
+
261
+ .profile-name {
262
+ font-size: 18px;
263
+ font-weight: 600;
264
+ line-height: 24px;
265
+ color: var(--md-sys-color-on-surface, #1D1B20);
266
+ margin: 0 0 4px;
267
+ }
268
+
269
+ .profile-email {
270
+ font-size: 13px;
271
+ color: var(--md-sys-color-on-surface-variant, #49454F);
272
+ margin: 0 0 16px;
273
+ }
274
+
275
+ .manage-btn {
276
+ position: relative;
277
+ display: inline-flex;
278
+ align-items: center;
279
+ justify-content: center;
280
+ gap: 8px;
281
+ padding: 8px 18px;
282
+ border-radius: var(--md-sys-shape-corner-full, 9999px);
283
+ border: 1px solid var(--md-sys-color-outline, #79747E);
284
+ background: transparent;
285
+ color: var(--md-sys-color-primary, #6750A4);
286
+ font-family: inherit;
287
+ font-size: 13px;
288
+ font-weight: 500;
289
+ cursor: pointer;
290
+ text-decoration: none;
291
+ transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
292
+ overflow: hidden;
293
+ -webkit-tap-highlight-color: transparent;
294
+ }
295
+
296
+ .manage-btn:hover {
297
+ background-color: var(--md-sys-color-primary-container, rgba(103, 80, 164, 0.08));
298
+ border-color: var(--md-sys-color-primary, #6750A4);
299
+ }
300
+
301
+ /* Internal Tabs for Account Info */
302
+ .account-tabs {
303
+ display: flex;
304
+ border-bottom: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
305
+ padding: 0 16px;
306
+ margin-bottom: 8px;
307
+ gap: 4px;
308
+ }
309
+
310
+ .tab-btn {
311
+ flex: 1;
312
+ display: flex;
313
+ align-items: center;
314
+ justify-content: center;
315
+ gap: 6px;
316
+ padding: 10px 8px;
317
+ background: transparent;
318
+ border: none;
319
+ border-bottom: 2px solid transparent;
320
+ color: var(--md-sys-color-on-surface-variant, #49454F);
321
+ font-family: inherit;
322
+ font-size: 12px;
323
+ font-weight: 500;
324
+ cursor: pointer;
325
+ transition: color 150ms ease, border-color 150ms ease;
326
+ outline: none;
327
+ }
328
+
329
+ .tab-btn:hover {
330
+ color: var(--md-sys-color-on-surface, #1D1B20);
331
+ }
332
+
333
+ .tab-btn.active {
334
+ color: var(--md-sys-color-primary, #6750A4);
335
+ border-bottom-color: var(--md-sys-color-primary, #6750A4);
336
+ font-weight: 600;
337
+ }
338
+
339
+ .tab-btn md-icon {
340
+ --md-icon-size: 16px;
341
+ font-size: 16px;
342
+ }
343
+
344
+ .tab-panel {
345
+ display: none;
346
+ padding: 8px 16px 14px;
347
+ box-sizing: border-box;
348
+ }
349
+
350
+ .tab-panel.active {
351
+ display: block;
352
+ animation: tabFadeIn 150ms ease forwards;
353
+ }
354
+
355
+ @keyframes tabFadeIn {
356
+ from { opacity: 0; transform: translateY(4px); }
357
+ to { opacity: 1; transform: translateY(0); }
358
+ }
359
+
360
+ /* Info & Detail Rows */
361
+ .info-card {
362
+ background-color: var(--md-sys-color-surface-container-lowest, #FFFFFF);
363
+ border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
364
+ border-radius: var(--md-sys-shape-corner-medium, 16px);
365
+ padding: 12px 16px;
366
+ margin-bottom: 8px;
367
+ box-sizing: border-box;
368
+ }
369
+
370
+ .info-row {
371
+ display: flex;
372
+ align-items: center;
373
+ justify-content: space-between;
374
+ padding: 8px 0;
375
+ border-bottom: 1px solid var(--md-sys-color-surface-container-high, #ECE6F0);
376
+ font-size: 13px;
377
+ }
378
+
379
+ .info-row:last-child {
380
+ border-bottom: none;
381
+ padding-bottom: 0;
382
+ }
383
+
384
+ .info-row:first-child {
385
+ padding-top: 0;
386
+ }
387
+
388
+ .info-label {
389
+ display: flex;
390
+ align-items: center;
391
+ gap: 8px;
392
+ color: var(--md-sys-color-on-surface-variant, #49454F);
393
+ }
394
+
395
+ .info-label md-icon {
396
+ --md-icon-size: 18px;
397
+ font-size: 18px;
398
+ color: var(--md-sys-color-primary, #6750A4);
399
+ }
400
+
401
+ .info-value {
402
+ font-weight: 500;
403
+ color: var(--md-sys-color-on-surface, #1D1B20);
404
+ text-align: right;
405
+ }
406
+
407
+ .badge-chip {
408
+ display: inline-flex;
409
+ align-items: center;
410
+ gap: 4px;
411
+ padding: 2px 8px;
412
+ border-radius: 100px;
413
+ font-size: 11px;
414
+ font-weight: 600;
415
+ background-color: var(--md-sys-color-secondary-container, #E8DEF8);
416
+ color: var(--md-sys-color-on-secondary-container, #1D192B);
417
+ }
418
+
419
+ .badge-chip.success {
420
+ background-color: #E8F5E9;
421
+ color: #2E7D32;
422
+ }
423
+
424
+ /* Storage Section */
425
+ .storage-box {
426
+ background-color: var(--md-sys-color-surface-container-lowest, #FFFFFF);
427
+ border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
428
+ border-radius: var(--md-sys-shape-corner-medium, 16px);
429
+ padding: 16px;
430
+ box-sizing: border-box;
431
+ }
432
+
433
+ .storage-header {
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: space-between;
437
+ margin-bottom: 10px;
438
+ }
439
+
440
+ .storage-title {
441
+ font-size: 14px;
442
+ font-weight: 600;
443
+ color: var(--md-sys-color-on-surface, #1D1B20);
444
+ display: flex;
445
+ align-items: center;
446
+ gap: 8px;
447
+ }
448
+
449
+ .storage-title md-icon {
450
+ --md-icon-size: 20px;
451
+ font-size: 20px;
452
+ color: var(--md-sys-color-primary, #6750A4);
453
+ }
454
+
455
+ .storage-meta {
456
+ font-size: 13px;
457
+ font-weight: 500;
458
+ color: var(--md-sys-color-on-surface-variant, #49454F);
459
+ }
460
+
461
+ .storage-bar-track {
462
+ width: 100%;
463
+ height: 8px;
464
+ border-radius: 4px;
465
+ background-color: var(--md-sys-color-surface-container-highest, #E6E0E9);
466
+ overflow: hidden;
467
+ margin-bottom: 12px;
468
+ }
469
+
470
+ .storage-bar-fill {
471
+ height: 100%;
472
+ border-radius: 4px;
473
+ background: linear-gradient(90deg, var(--md-sys-color-primary, #6750A4), var(--md-sys-color-tertiary, #7D5260));
474
+ transition: width 300ms ease;
475
+ }
476
+
477
+ .storage-breakdown {
478
+ display: grid;
479
+ grid-template-columns: repeat(2, 1fr);
480
+ gap: 8px;
481
+ font-size: 12px;
482
+ color: var(--md-sys-color-on-surface-variant, #49454F);
483
+ }
484
+
485
+ .storage-item {
486
+ display: flex;
487
+ align-items: center;
488
+ gap: 6px;
489
+ }
490
+
491
+ .storage-dot {
492
+ width: 8px;
493
+ height: 8px;
494
+ border-radius: 50%;
495
+ }
496
+
497
+ /* Multi-account switcher list */
498
+ .accounts-list {
499
+ display: flex;
500
+ flex-direction: column;
501
+ gap: 4px;
502
+ box-sizing: border-box;
503
+ }
504
+
505
+ /* Footer */
506
+ .popover-footer {
507
+ display: flex;
508
+ flex-direction: column;
509
+ align-items: center;
510
+ gap: 12px;
511
+ padding: 12px 16px 16px;
512
+ border-top: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
513
+ box-sizing: border-box;
514
+ }
515
+
516
+ .signout-btn {
517
+ position: relative;
518
+ display: inline-flex;
519
+ align-items: center;
520
+ justify-content: center;
521
+ gap: 8px;
522
+ width: 100%;
523
+ padding: 10px 16px;
524
+ border-radius: var(--md-sys-shape-corner-full, 9999px);
525
+ background-color: var(--md-sys-color-surface-container-highest, #E6E0E9);
526
+ border: 1px solid var(--md-sys-color-outline-variant, #CAC4D0);
527
+ color: var(--md-sys-color-on-surface, #1D1B20);
528
+ font-family: inherit;
529
+ font-size: 13px;
530
+ font-weight: 500;
531
+ cursor: pointer;
532
+ transition: background-color 150ms ease, color 150ms ease;
533
+ overflow: hidden;
534
+ -webkit-tap-highlight-color: transparent;
535
+ }
536
+
537
+ .signout-btn:hover {
538
+ background-color: var(--md-sys-color-error-container, #F9DEDC);
539
+ color: var(--md-sys-color-on-error-container, #410E0B);
540
+ border-color: var(--md-sys-color-error, #B3261E);
541
+ }
542
+
543
+ .signout-btn md-icon {
544
+ --md-icon-size: 18px;
545
+ font-size: 18px;
546
+ }
547
+
548
+ .footer-links {
549
+ display: flex;
550
+ align-items: center;
551
+ justify-content: center;
552
+ gap: 12px;
553
+ font-size: 11px;
554
+ color: var(--md-sys-color-on-surface-variant, #49454F);
555
+ }
556
+
557
+ .footer-links a {
558
+ color: inherit;
559
+ text-decoration: none;
560
+ }
561
+
562
+ .footer-links a:hover {
563
+ text-decoration: underline;
564
+ color: var(--md-sys-color-primary, #6750A4);
565
+ }
566
+
567
+ .footer-dot {
568
+ opacity: 0.5;
569
+ }
570
+
571
+ /* Responsive Fullscreen / Mobile Mode */
572
+ @media (max-width: 768px) {
573
+ .back-btn,
574
+ slot[name="back-button"] {
575
+ display: inline-flex;
576
+ }
577
+
578
+ .popover-header .headline {
579
+ display: block;
580
+ }
581
+
582
+ .popover-header {
583
+ justify-content: space-between;
584
+ min-height: 48px;
585
+ padding: 12px 16px 8px;
586
+ }
587
+
588
+ :host([open]) .popover {
589
+ position: fixed;
590
+ top: 0;
591
+ left: 0;
592
+ right: 0;
593
+ bottom: 0;
594
+ width: 100vw;
595
+ max-width: 100vw;
596
+ height: 100vh;
597
+ height: 100dvh;
598
+ max-height: 100vh;
599
+ max-height: 100dvh;
600
+ border-radius: 0;
601
+ box-shadow: none;
602
+ z-index: 10000;
603
+ padding: 0 0 env(safe-area-inset-bottom, 16px) 0;
604
+ margin: 0;
605
+ animation: md-account-menu-mobile-in 200ms cubic-bezier(0.2, 0, 0, 1) forwards;
606
+ }
607
+
608
+ .profile-card {
609
+ margin: 4px 16px 12px;
610
+ }
611
+ }
612
+
613
+ @keyframes md-account-menu-mobile-in {
614
+ from {
615
+ opacity: 0;
616
+ transform: translateY(12px);
617
+ }
618
+ to {
619
+ opacity: 1;
620
+ transform: translateY(0);
621
+ }
622
+ }
623
+
624
+ /* Explicit Fullscreen Mode */
625
+ :host([fullscreen]) .back-btn,
626
+ :host([fullscreen]) slot[name="back-button"] {
627
+ display: inline-flex;
628
+ }
629
+
630
+ :host([fullscreen]) .popover-header .headline {
631
+ display: block;
632
+ }
633
+
634
+ :host([fullscreen]) .popover-header {
635
+ justify-content: space-between;
636
+ min-height: 48px;
637
+ padding: 12px 16px 8px;
638
+ }
639
+
640
+ :host([fullscreen][open]) .popover {
641
+ position: fixed;
642
+ top: 0;
643
+ left: 0;
644
+ right: 0;
645
+ bottom: 0;
646
+ width: 100vw;
647
+ max-width: 100vw;
648
+ height: 100vh;
649
+ height: 100dvh;
650
+ max-height: 100vh;
651
+ max-height: 100dvh;
652
+ border-radius: 0;
653
+ box-shadow: none;
654
+ z-index: 10000;
655
+ padding: 0 0 env(safe-area-inset-bottom, 16px) 0;
656
+ margin: 0;
657
+ }
658
+
659
+ :host([fullscreen]) .profile-card {
660
+ margin: 4px 16px 12px;
661
+ }
662
+ `, y = u`
663
+ :host {
664
+ display: block;
665
+ box-sizing: border-box;
666
+ font-family: var(--md-sys-typescale-font-family, inherit);
667
+ }
668
+
669
+ :host([hidden]) {
670
+ display: none;
671
+ }
672
+
673
+ .item {
674
+ position: relative;
675
+ display: flex;
676
+ align-items: center;
677
+ gap: 12px;
678
+ width: 100%;
679
+ padding: 10px 12px;
680
+ border-radius: var(--md-sys-shape-corner-medium, 14px);
681
+ background: transparent;
682
+ border: none;
683
+ color: var(--md-sys-color-on-surface, #1D1B20);
684
+ text-align: left;
685
+ cursor: pointer;
686
+ font-family: inherit;
687
+ text-decoration: none;
688
+ transition: background-color 150ms ease;
689
+ box-sizing: border-box;
690
+ outline: none;
691
+ -webkit-tap-highlight-color: transparent;
692
+ }
693
+
694
+ .item:hover {
695
+ background-color: var(--md-sys-color-surface-container-highest, rgba(0, 0, 0, 0.06));
696
+ }
697
+
698
+ :host([active]) .item {
699
+ background-color: var(--md-sys-color-secondary-container, #E8DEF8);
700
+ color: var(--md-sys-color-on-secondary-container, #1D192B);
701
+ }
702
+
703
+ :host([disabled]) .item {
704
+ opacity: 0.38;
705
+ cursor: not-allowed;
706
+ pointer-events: none;
707
+ }
708
+
709
+ .item-avatar {
710
+ width: 36px;
711
+ height: 36px;
712
+ border-radius: 50%;
713
+ background-color: var(--md-sys-color-primary-container, #EADDFF);
714
+ color: var(--md-sys-color-on-primary-container, #21005D);
715
+ display: flex;
716
+ align-items: center;
717
+ justify-content: center;
718
+ font-size: 14px;
719
+ font-weight: 600;
720
+ flex-shrink: 0;
721
+ overflow: hidden;
722
+ }
723
+
724
+ .item-avatar img {
725
+ width: 100%;
726
+ height: 100%;
727
+ object-fit: cover;
728
+ }
729
+
730
+ .item-content {
731
+ flex: 1;
732
+ min-width: 0;
733
+ display: flex;
734
+ flex-direction: column;
735
+ }
736
+
737
+ .item-name {
738
+ font-size: 13.5px;
739
+ font-weight: 500;
740
+ color: var(--md-sys-color-on-surface, #1D1B20);
741
+ white-space: nowrap;
742
+ overflow: hidden;
743
+ text-overflow: ellipsis;
744
+ }
745
+
746
+ .item-email {
747
+ font-size: 12px;
748
+ color: var(--md-sys-color-on-surface-variant, #49454F);
749
+ white-space: nowrap;
750
+ overflow: hidden;
751
+ text-overflow: ellipsis;
752
+ }
753
+
754
+ .item-trailing {
755
+ display: flex;
756
+ align-items: center;
757
+ gap: 6px;
758
+ flex-shrink: 0;
759
+ }
760
+
761
+ .check-icon {
762
+ color: var(--md-sys-color-primary, #6750A4);
763
+ font-size: 20px;
764
+ }
765
+
766
+ .action-icon {
767
+ color: var(--md-sys-color-on-surface-variant, #49454F);
768
+ font-size: 20px;
769
+ }
770
+ `, s = class extends p {
771
+ constructor(...r) {
772
+ super(...r), this.name = "", this.email = "", this.avatar = "", this.initials = "", this.icon = "", this.badge = "", this.href = "", this.target = "", this.active = !1, this.disabled = !1, this.action = !1, this.handleClick = (o) => {
773
+ if (this.disabled) {
774
+ o.preventDefault(), o.stopImmediatePropagation();
775
+ return;
776
+ }
777
+ this.emitEvent("account-click", {
778
+ name: this.name,
779
+ email: this.email,
780
+ avatar: this.avatar,
781
+ initials: this.initials,
782
+ active: this.active,
783
+ action: this.action
784
+ });
785
+ };
786
+ }
787
+ static {
788
+ this.styles = [p.styles, y];
789
+ }
790
+ render() {
791
+ const r = this.initials || (this.name ? this.name.charAt(0).toUpperCase() : ""), o = this.avatar ? i`<img class="item-avatar-img" src=${this.avatar} alt=${this.name || "Account avatar"} />` : this.icon ? i`<md-icon name=${this.icon}></md-icon>` : r ? i`<span>${r}</span>` : i`<md-icon name="person"></md-icon>`, n = this.active ? i`<md-icon name="check" class="check-icon"></md-icon>` : this.action ? i`<md-icon name="chevron_right" class="action-icon"></md-icon>` : c, m = i`
792
+ <md-ripple ?disabled=${this.disabled}></md-ripple>
793
+ <md-focus-ring></md-focus-ring>
794
+
795
+ <div class="item-avatar">
796
+ <slot name="icon">${o}</slot>
797
+ </div>
798
+
799
+ <div class="item-content">
800
+ <span class="item-name"><slot name="name">${this.name || "Account"}</slot></span>
801
+ ${this.email ? i`<span class="item-email"><slot name="email">${this.email}</slot></span>` : c}
802
+ </div>
803
+
804
+ <div class="item-trailing">
805
+ <slot name="trailing">${n}</slot>
806
+ </div>
807
+ `;
808
+ return this.href ? i`
809
+ <a
810
+ class="item"
811
+ href=${this.disabled ? c : this.href}
812
+ target=${this.target || c}
813
+ aria-disabled=${this.disabled ? "true" : c}
814
+ tabindex=${this.disabled ? "-1" : "0"}
815
+ @click=${this.handleClick}
816
+ >
817
+ ${m}
818
+ </a>
819
+ ` : i`
820
+ <button
821
+ class="item"
822
+ type="button"
823
+ tabindex=${this.disabled ? "-1" : "0"}
824
+ aria-disabled=${this.disabled ? "true" : c}
825
+ ?disabled=${this.disabled}
826
+ @click=${this.handleClick}
827
+ >
828
+ ${m}
829
+ </button>
830
+ `;
831
+ }
832
+ };
833
+ e([t({ type: String })], s.prototype, "name", void 0);
834
+ e([t({ type: String })], s.prototype, "email", void 0);
835
+ e([t({ type: String })], s.prototype, "avatar", void 0);
836
+ e([t({ type: String })], s.prototype, "initials", void 0);
837
+ e([t({ type: String })], s.prototype, "icon", void 0);
838
+ e([t({ type: String })], s.prototype, "badge", void 0);
839
+ e([t({ type: String })], s.prototype, "href", void 0);
840
+ e([t({ type: String })], s.prototype, "target", void 0);
841
+ e([t({
842
+ type: Boolean,
843
+ reflect: !0
844
+ })], s.prototype, "active", void 0);
845
+ e([t({
846
+ type: Boolean,
847
+ reflect: !0
848
+ })], s.prototype, "disabled", void 0);
849
+ e([t({ type: Boolean })], s.prototype, "action", void 0);
850
+ s = e([l("md-account-item")], s);
851
+ var a = class extends p {
852
+ constructor(...r) {
853
+ super(...r), this.open = !1, this.name = "Franco Fantomius", this.email = "franco.fantomius@example.com", this.avatar = "", this.initials = "", this.icon = "account_circle", this.headline = "Account", this.manageText = "Manage your Account", this.manageUrl = "", this.organization = "Material Components", this.roleTitle = "Lead Architect", this.status = "Active", this.storageUsed = "10.4 GB", this.storageTotal = "15 GB", this.storageProgress = 0.69, this.securityStatus = "Protected", this.ariaLabelText = "Account info", this.noTrigger = !1, this.alignment = "end", this.pivot = "right", this.modal = !1, this.fullscreen = !1, this.showTabs = !0, this.activeTab = "overview", this.handleKeyDown = (o) => {
854
+ o.key === "Escape" && this.open && this.close();
855
+ }, this.handleDocumentClick = (o) => {
856
+ this.open && (o.composedPath().includes(this) || this.close());
857
+ }, this.handleBackdropClick = () => {
858
+ this.close();
859
+ }, this.handleBackClick = (o) => {
860
+ o.stopPropagation(), this.close();
861
+ }, this.handleTriggerClick = (o) => {
862
+ o.stopPropagation(), this.toggle();
863
+ }, this.handleTabClick = (o) => {
864
+ this.activeTab = o, this.emitEvent("tab-change", { tab: o });
865
+ }, this.handleManageClick = (o) => {
866
+ this.emitEvent("manage-click", {
867
+ name: this.name,
868
+ email: this.email,
869
+ manageUrl: this.manageUrl
870
+ });
871
+ }, this.handleSignOutClick = () => {
872
+ this.emitEvent("sign-out", { email: this.email }), this.close();
873
+ }, this.handleEditAvatarClick = (o) => {
874
+ o.stopPropagation(), this.emitEvent("edit-avatar", { email: this.email });
875
+ }, this.handleAccountItemClick = (o) => {
876
+ const n = o.detail;
877
+ !n.action && n.email && (this.name = n.name || this.name, this.email = n.email, n.avatar && (this.avatar = n.avatar), n.initials && (this.initials = n.initials)), this.emitEvent("account-select", n);
878
+ };
879
+ }
880
+ static {
881
+ this.styles = [p.styles, f];
882
+ }
883
+ get trigger() {
884
+ return !this.noTrigger;
885
+ }
886
+ set trigger(r) {
887
+ this.noTrigger = !r, this.requestUpdate("noTrigger");
888
+ }
889
+ connectedCallback() {
890
+ super.connectedCallback(), window.addEventListener("keydown", this.handleKeyDown), document.addEventListener("pointerdown", this.handleDocumentClick), this.addEventListener("account-click", this.handleAccountItemClick);
891
+ }
892
+ disconnectedCallback() {
893
+ super.disconnectedCallback(), window.removeEventListener("keydown", this.handleKeyDown), document.removeEventListener("pointerdown", this.handleDocumentClick), this.removeEventListener("account-click", this.handleAccountItemClick);
894
+ }
895
+ updated(r) {
896
+ super.updated(r), r.has("open") && (this.open ? this.emitEvent("open") : this.emitEvent("close"));
897
+ }
898
+ show() {
899
+ this.open || (this.open = !0);
900
+ }
901
+ close() {
902
+ this.open && (this.open = !1);
903
+ }
904
+ toggle() {
905
+ this.open = !this.open;
906
+ }
907
+ render() {
908
+ const r = this.initials || (this.name ? this.name.charAt(0).toUpperCase() : "G"), o = this.avatar ? i`<img class="avatar-img" src=${this.avatar} alt=${this.name || "User Profile"} />` : r ? i`<span class="avatar-initials">${r}</span>` : i`<md-icon name=${this.icon}></md-icon>`, n = this.noTrigger ? i`<slot name="trigger" @click=${this.handleTriggerClick}></slot>` : i`
909
+ <div class="trigger-container" @click=${this.handleTriggerClick}>
910
+ <slot name="trigger">
911
+ <button
912
+ type="button"
913
+ class="avatar-btn"
914
+ aria-label=${this.ariaLabelText}
915
+ aria-expanded=${this.open ? "true" : "false"}
916
+ aria-haspopup="dialog"
917
+ title="${this.name} (${this.email})"
918
+ >
919
+ <md-ripple></md-ripple>
920
+ <md-focus-ring></md-focus-ring>
921
+ ${o}
922
+ </button>
923
+ </slot>
924
+ </div>
925
+ `;
926
+ return i`
927
+ <div class="backdrop" @click=${this.handleBackdropClick}></div>
928
+
929
+ <div class="trigger-wrapper">
930
+ ${n}
931
+ </div>
932
+
933
+ <div
934
+ class="popover"
935
+ role="dialog"
936
+ aria-modal=${this.modal ? "true" : "false"}
937
+ aria-label=${this.headline || this.ariaLabelText}
938
+ aria-hidden=${this.open ? "false" : "true"}
939
+ >
940
+ <!-- Popover Header -->
941
+ <div class="popover-header">
942
+ <div class="header-leading">
943
+ <slot name="back-button">
944
+ <md-icon-button
945
+ class="back-btn"
946
+ variant="standard"
947
+ icon="arrow_back"
948
+ aria-label="Back"
949
+ title="Back"
950
+ @click=${this.handleBackClick}
951
+ ></md-icon-button>
952
+ </slot>
953
+ ${this.headline ? i`<span class="headline">${this.headline}</span>` : c}
954
+ </div>
955
+ <slot name="header">
956
+ <button
957
+ type="button"
958
+ class="close-btn"
959
+ aria-label="Close account menu"
960
+ @click=${this.close}
961
+ >
962
+ <md-icon name="close"></md-icon>
963
+ </button>
964
+ </slot>
965
+ </div>
966
+
967
+ <!-- Central Profile Card -->
968
+ <div class="profile-card">
969
+ <div class="profile-avatar-wrapper">
970
+ <div class="profile-avatar">
971
+ ${this.avatar ? i`<img src=${this.avatar} alt=${this.name} />` : i`<span>${r}</span>`}
972
+ </div>
973
+ <button
974
+ type="button"
975
+ class="avatar-edit-badge"
976
+ aria-label="Change profile picture"
977
+ title="Change profile picture"
978
+ @click=${this.handleEditAvatarClick}
979
+ >
980
+ <md-icon name="photo_camera"></md-icon>
981
+ </button>
982
+ </div>
983
+
984
+ <h2 class="profile-name">${this.name}</h2>
985
+ <span class="profile-email">${this.email}</span>
986
+
987
+ <a
988
+ class="manage-btn"
989
+ href=${this.manageUrl || "javascript:void(0)"}
990
+ @click=${this.handleManageClick}
991
+ >
992
+ <md-ripple></md-ripple>
993
+ <md-focus-ring></md-focus-ring>
994
+ <md-icon name="manage_accounts"></md-icon>
995
+ <span>${this.manageText}</span>
996
+ </a>
997
+ </div>
998
+
999
+ <!-- Account Info Tabs -->
1000
+ ${this.showTabs ? i`
1001
+ <nav class="account-tabs" role="tablist" aria-label="Account information tabs">
1002
+ <button
1003
+ type="button"
1004
+ class="tab-btn ${this.activeTab === "overview" ? "active" : ""}"
1005
+ role="tab"
1006
+ aria-selected=${this.activeTab === "overview" ? "true" : "false"}
1007
+ @click=${() => this.handleTabClick("overview")}
1008
+ >
1009
+ <md-icon name="badge"></md-icon>
1010
+ <span>Overview</span>
1011
+ </button>
1012
+ <button
1013
+ type="button"
1014
+ class="tab-btn ${this.activeTab === "security" ? "active" : ""}"
1015
+ role="tab"
1016
+ aria-selected=${this.activeTab === "security" ? "true" : "false"}
1017
+ @click=${() => this.handleTabClick("security")}
1018
+ >
1019
+ <md-icon name="shield"></md-icon>
1020
+ <span>Security</span>
1021
+ </button>
1022
+ <button
1023
+ type="button"
1024
+ class="tab-btn ${this.activeTab === "storage" ? "active" : ""}"
1025
+ role="tab"
1026
+ aria-selected=${this.activeTab === "storage" ? "true" : "false"}
1027
+ @click=${() => this.handleTabClick("storage")}
1028
+ >
1029
+ <md-icon name="cloud"></md-icon>
1030
+ <span>Storage</span>
1031
+ </button>
1032
+ <button
1033
+ type="button"
1034
+ class="tab-btn ${this.activeTab === "accounts" ? "active" : ""}"
1035
+ role="tab"
1036
+ aria-selected=${this.activeTab === "accounts" ? "true" : "false"}
1037
+ @click=${() => this.handleTabClick("accounts")}
1038
+ >
1039
+ <md-icon name="people"></md-icon>
1040
+ <span>Accounts</span>
1041
+ </button>
1042
+ </nav>
1043
+ ` : c}
1044
+
1045
+ <!-- Tab Panels -->
1046
+ <!-- 1. Overview Tab Panel -->
1047
+ <div class="tab-panel ${this.activeTab === "overview" ? "active" : ""}" role="tabpanel">
1048
+ <slot name="overview">
1049
+ <div class="info-card">
1050
+ <div class="info-row">
1051
+ <div class="info-label">
1052
+ <md-icon name="apartment"></md-icon>
1053
+ <span>Organization</span>
1054
+ </div>
1055
+ <span class="info-value">${this.organization}</span>
1056
+ </div>
1057
+ <div class="info-row">
1058
+ <div class="info-label">
1059
+ <md-icon name="engineering"></md-icon>
1060
+ <span>Role</span>
1061
+ </div>
1062
+ <span class="info-value">${this.roleTitle}</span>
1063
+ </div>
1064
+ <div class="info-row">
1065
+ <div class="info-label">
1066
+ <md-icon name="verified_user"></md-icon>
1067
+ <span>Status</span>
1068
+ </div>
1069
+ <span class="info-value">
1070
+ <span class="badge-chip success">
1071
+ <md-icon name="check_circle" style="font-size: 13px;"></md-icon>
1072
+ ${this.status}
1073
+ </span>
1074
+ </span>
1075
+ </div>
1076
+ </div>
1077
+ </slot>
1078
+ </div>
1079
+
1080
+ <!-- 2. Security Tab Panel -->
1081
+ <div class="tab-panel ${this.activeTab === "security" ? "active" : ""}" role="tabpanel">
1082
+ <slot name="security">
1083
+ <div class="info-card">
1084
+ <div class="info-row">
1085
+ <div class="info-label">
1086
+ <md-icon name="security"></md-icon>
1087
+ <span>2-Step Verification</span>
1088
+ </div>
1089
+ <span class="info-value">
1090
+ <span class="badge-chip success">Enabled</span>
1091
+ </span>
1092
+ </div>
1093
+ <div class="info-row">
1094
+ <div class="info-label">
1095
+ <md-icon name="devices"></md-icon>
1096
+ <span>Active Sessions</span>
1097
+ </div>
1098
+ <span class="info-value">2 devices (PC, Mobile)</span>
1099
+ </div>
1100
+ <div class="info-row">
1101
+ <div class="info-label">
1102
+ <md-icon name="lock_reset"></md-icon>
1103
+ <span>Password Changed</span>
1104
+ </div>
1105
+ <span class="info-value">3 months ago</span>
1106
+ </div>
1107
+ </div>
1108
+ </slot>
1109
+ </div>
1110
+
1111
+ <!-- 3. Storage Tab Panel -->
1112
+ <div class="tab-panel ${this.activeTab === "storage" ? "active" : ""}" role="tabpanel">
1113
+ <slot name="storage">
1114
+ <div class="storage-box">
1115
+ <div class="storage-header">
1116
+ <div class="storage-title">
1117
+ <md-icon name="cloud"></md-icon>
1118
+ <span>Account Storage</span>
1119
+ </div>
1120
+ <span class="storage-meta">${this.storageUsed} of ${this.storageTotal} used</span>
1121
+ </div>
1122
+ <div class="storage-bar-track">
1123
+ <div
1124
+ class="storage-bar-fill"
1125
+ style="width: ${Math.min(100, Math.max(0, this.storageProgress * 100))}%;"
1126
+ ></div>
1127
+ </div>
1128
+ <div class="storage-breakdown">
1129
+ <div class="storage-item">
1130
+ <span class="storage-dot" style="background-color: var(--md-sys-color-primary, #6750A4);"></span>
1131
+ <span>Files: 6.2 GB</span>
1132
+ <div class="storage-item">
1133
+ <span class="storage-dot" style="background-color: var(--md-sys-color-tertiary, #7D5260);"></span>
1134
+ <span>Mail: 3.1 GB</span>
1135
+ </div>
1136
+ <span class="storage-dot" style="background-color: var(--md-sys-color-secondary, #625B71);"></span>
1137
+ <span>Media: 1.1 GB</span>
1138
+ </div>
1139
+ <div class="storage-item">
1140
+ <span>Free: 4.6 GB</span>
1141
+ </div>
1142
+ </div>
1143
+ </div>
1144
+ </slot>
1145
+ </div>
1146
+
1147
+ <!-- 4. Accounts Multi-switcher Tab Panel -->
1148
+ <div class="tab-panel ${this.activeTab === "accounts" ? "active" : ""}" role="tabpanel">
1149
+ <div class="accounts-list">
1150
+ <slot name="accounts">
1151
+ <md-account-item
1152
+ name=${this.name}
1153
+ email=${this.email}
1154
+ initials=${r}
1155
+ active
1156
+ ></md-account-item>
1157
+ <md-account-item
1158
+ name="Work Workspace"
1159
+ email="franco.dev@work.corp"
1160
+ initials="W"
1161
+ ></md-account-item>
1162
+ <md-account-item
1163
+ name="Add another account"
1164
+ icon="person_add"
1165
+ action
1166
+ ></md-account-item>
1167
+ </slot>
1168
+ </div>
1169
+ </div>
1170
+
1171
+ <!-- Default Slot for Custom Extensions -->
1172
+ <slot></slot>
1173
+
1174
+ <!-- Popover Footer -->
1175
+ <div class="popover-footer">
1176
+ <slot name="footer">
1177
+ <button type="button" class="signout-btn" @click=${this.handleSignOutClick}>
1178
+ <md-ripple></md-ripple>
1179
+ <md-focus-ring></md-focus-ring>
1180
+ <md-icon name="logout"></md-icon>
1181
+ <span>Sign out of all accounts</span>
1182
+ </button>
1183
+ <div class="footer-links">
1184
+ <a href="#/privacy">Privacy Policy</a>
1185
+ <span class="footer-dot">&bull;</span>
1186
+ <a href="#/terms">Terms of Service</a>
1187
+ </div>
1188
+ </slot>
1189
+ </div>
1190
+ </div>
1191
+ `;
1192
+ }
1193
+ };
1194
+ e([t({
1195
+ type: Boolean,
1196
+ reflect: !0
1197
+ })], a.prototype, "open", void 0);
1198
+ e([t({ type: String })], a.prototype, "name", void 0);
1199
+ e([t({ type: String })], a.prototype, "email", void 0);
1200
+ e([t({ type: String })], a.prototype, "avatar", void 0);
1201
+ e([t({ type: String })], a.prototype, "initials", void 0);
1202
+ e([t({ type: String })], a.prototype, "icon", void 0);
1203
+ e([t({
1204
+ type: String,
1205
+ attribute: "headline"
1206
+ })], a.prototype, "headline", void 0);
1207
+ e([t({
1208
+ type: String,
1209
+ attribute: "manage-text"
1210
+ })], a.prototype, "manageText", void 0);
1211
+ e([t({
1212
+ type: String,
1213
+ attribute: "manage-url"
1214
+ })], a.prototype, "manageUrl", void 0);
1215
+ e([t({
1216
+ type: String,
1217
+ attribute: "organization"
1218
+ })], a.prototype, "organization", void 0);
1219
+ e([t({
1220
+ type: String,
1221
+ attribute: "role-title"
1222
+ })], a.prototype, "roleTitle", void 0);
1223
+ e([t({
1224
+ type: String,
1225
+ attribute: "status"
1226
+ })], a.prototype, "status", void 0);
1227
+ e([t({
1228
+ type: String,
1229
+ attribute: "storage-used"
1230
+ })], a.prototype, "storageUsed", void 0);
1231
+ e([t({
1232
+ type: String,
1233
+ attribute: "storage-total"
1234
+ })], a.prototype, "storageTotal", void 0);
1235
+ e([t({
1236
+ type: Number,
1237
+ attribute: "storage-progress"
1238
+ })], a.prototype, "storageProgress", void 0);
1239
+ e([t({
1240
+ type: String,
1241
+ attribute: "security-status"
1242
+ })], a.prototype, "securityStatus", void 0);
1243
+ e([t({
1244
+ type: String,
1245
+ attribute: "aria-label"
1246
+ })], a.prototype, "ariaLabelText", void 0);
1247
+ e([t({
1248
+ type: Boolean,
1249
+ attribute: "no-trigger"
1250
+ })], a.prototype, "noTrigger", void 0);
1251
+ e([t({
1252
+ type: String,
1253
+ reflect: !0
1254
+ })], a.prototype, "alignment", void 0);
1255
+ e([t({
1256
+ type: String,
1257
+ reflect: !0
1258
+ })], a.prototype, "pivot", void 0);
1259
+ e([t({
1260
+ type: Boolean,
1261
+ reflect: !0
1262
+ })], a.prototype, "modal", void 0);
1263
+ e([t({
1264
+ type: Boolean,
1265
+ reflect: !0
1266
+ })], a.prototype, "fullscreen", void 0);
1267
+ e([t({
1268
+ type: Boolean,
1269
+ attribute: "show-tabs"
1270
+ })], a.prototype, "showTabs", void 0);
1271
+ e([b()], a.prototype, "activeTab", void 0);
1272
+ a = e([l("md-account-menu")], a);
1273
+ var h = class extends a {
1274
+ };
1275
+ h = e([l("md-account-drawer")], h);
1276
+ var v = class extends a {
1277
+ };
1278
+ v = e([l("md-account-profile")], v);
1279
+ var g = class extends s {
1280
+ };
1281
+ g = e([l("md-account-profile-item")], g);
1282
+ export {
1283
+ g as a,
1284
+ v as i,
1285
+ s as n,
1286
+ a as r,
1287
+ h as t
1288
+ };
1289
+
1290
+ //# sourceMappingURL=account-menu-Dau0UHTl.js.map