solid-ui 3.0.6 → 3.1.1-test.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 (243) hide show
  1. package/README.md +146 -2
  2. package/dist/acl/access-groups.js +1 -1
  3. package/dist/components/button/index.d.ts +1 -0
  4. package/dist/components/button/index.esm.js +546 -0
  5. package/dist/components/button/index.esm.js.map +1 -0
  6. package/dist/components/button/index.esm.min.js +268 -0
  7. package/dist/components/button/index.esm.min.js.map +1 -0
  8. package/dist/components/button/index.js +428 -0
  9. package/dist/components/button/index.js.map +1 -0
  10. package/dist/components/button/index.min.js +257 -0
  11. package/dist/components/button/index.min.js.map +1 -0
  12. package/dist/components/combobox/index.d.ts +1 -0
  13. package/dist/components/combobox/index.esm.js +953 -0
  14. package/dist/components/combobox/index.esm.js.map +1 -0
  15. package/dist/components/combobox/index.esm.min.js +339 -0
  16. package/dist/components/combobox/index.esm.min.js.map +1 -0
  17. package/dist/components/combobox/index.js +782 -0
  18. package/dist/components/combobox/index.js.map +1 -0
  19. package/dist/components/combobox/index.min.js +328 -0
  20. package/dist/components/combobox/index.min.js.map +1 -0
  21. package/dist/components/footer/index.d.ts +1 -0
  22. package/dist/components/footer/index.esm.js +24406 -0
  23. package/dist/components/footer/index.esm.js.map +1 -0
  24. package/dist/components/footer/index.esm.min.js +137 -0
  25. package/dist/components/footer/index.esm.min.js.map +1 -0
  26. package/dist/components/footer/index.js +23303 -0
  27. package/dist/components/footer/index.js.map +1 -0
  28. package/dist/components/footer/index.min.js +125 -0
  29. package/dist/components/footer/index.min.js.map +1 -0
  30. package/dist/components/header/index.d.ts +1 -0
  31. package/dist/components/header/index.esm.js +1936 -0
  32. package/dist/components/header/index.esm.js.map +1 -0
  33. package/dist/components/header/index.esm.min.js +1125 -0
  34. package/dist/components/header/index.esm.min.js.map +1 -0
  35. package/dist/components/header/index.js +1897 -0
  36. package/dist/components/header/index.js.map +1 -0
  37. package/dist/components/header/index.min.js +1126 -0
  38. package/dist/components/header/index.min.js.map +1 -0
  39. package/dist/components/loginButton/index.d.ts +1 -0
  40. package/dist/components/loginButton/index.esm.js +761 -0
  41. package/dist/components/loginButton/index.esm.js.map +1 -0
  42. package/dist/components/loginButton/index.esm.min.js +444 -0
  43. package/dist/components/loginButton/index.esm.min.js.map +1 -0
  44. package/dist/components/loginButton/index.js +743 -0
  45. package/dist/components/loginButton/index.js.map +1 -0
  46. package/dist/components/loginButton/index.min.js +444 -0
  47. package/dist/components/loginButton/index.min.js.map +1 -0
  48. package/dist/components/photoCapture/index.d.ts +1 -0
  49. package/dist/components/photoCapture/index.esm.js +966 -0
  50. package/dist/components/photoCapture/index.esm.js.map +1 -0
  51. package/dist/components/photoCapture/index.esm.min.js +304 -0
  52. package/dist/components/photoCapture/index.esm.min.js.map +1 -0
  53. package/dist/components/photoCapture/index.js +848 -0
  54. package/dist/components/photoCapture/index.js.map +1 -0
  55. package/dist/components/photoCapture/index.min.js +293 -0
  56. package/dist/components/photoCapture/index.min.js.map +1 -0
  57. package/dist/components/select/index.d.ts +1 -0
  58. package/dist/components/select/index.esm.js +939 -0
  59. package/dist/components/select/index.esm.js.map +1 -0
  60. package/dist/components/select/index.esm.min.js +370 -0
  61. package/dist/components/select/index.esm.min.js.map +1 -0
  62. package/dist/components/select/index.js +771 -0
  63. package/dist/components/select/index.js.map +1 -0
  64. package/dist/components/select/index.min.js +359 -0
  65. package/dist/components/select/index.min.js.map +1 -0
  66. package/dist/components/signupButton/index.d.ts +1 -0
  67. package/dist/components/signupButton/index.esm.js +270 -0
  68. package/dist/components/signupButton/index.esm.js.map +1 -0
  69. package/dist/components/signupButton/index.esm.min.js +82 -0
  70. package/dist/components/signupButton/index.esm.min.js.map +1 -0
  71. package/dist/components/signupButton/index.js +264 -0
  72. package/dist/components/signupButton/index.js.map +1 -0
  73. package/dist/components/signupButton/index.min.js +82 -0
  74. package/dist/components/signupButton/index.min.js.map +1 -0
  75. package/dist/footer/index.d.ts.map +1 -1
  76. package/dist/footer/index.js +8 -4
  77. package/dist/footer/index.js.map +1 -1
  78. package/dist/icons/v2/icons-svg/contactIcons.d.ts +3 -0
  79. package/dist/icons/v2/icons-svg/contactIcons.d.ts.map +1 -0
  80. package/dist/icons/v2/icons-svg/contactIcons.js +27 -0
  81. package/dist/icons/v2/icons-svg/contactIcons.js.map +1 -0
  82. package/dist/icons/v2/icons-svg/headerIcons.d.ts +18 -0
  83. package/dist/icons/v2/icons-svg/headerIcons.d.ts.map +1 -0
  84. package/dist/icons/v2/icons-svg/headerIcons.js +245 -0
  85. package/dist/icons/v2/icons-svg/headerIcons.js.map +1 -0
  86. package/dist/icons/v2/icons-svg/pngIcons.d.ts +3 -0
  87. package/dist/icons/v2/icons-svg/pngIcons.d.ts.map +1 -0
  88. package/dist/icons/v2/icons-svg/pngIcons.js +4 -0
  89. package/dist/icons/v2/icons-svg/pngIcons.js.map +1 -0
  90. package/dist/icons/v2/icons-svg/profileIcons.d.ts +23 -0
  91. package/dist/icons/v2/icons-svg/profileIcons.d.ts.map +1 -0
  92. package/dist/icons/v2/icons-svg/profileIcons.js +317 -0
  93. package/dist/icons/v2/icons-svg/profileIcons.js.map +1 -0
  94. package/dist/login/login.d.ts.map +1 -1
  95. package/dist/login/login.js +12 -2
  96. package/dist/login/login.js.map +1 -1
  97. package/dist/matrix/matrix.js.map +1 -1
  98. package/dist/pad.d.ts.map +1 -1
  99. package/dist/pad.js +13 -13
  100. package/dist/pad.js.map +1 -1
  101. package/dist/solid-ui.esm.js +9627 -12206
  102. package/dist/solid-ui.esm.js.map +1 -1
  103. package/dist/solid-ui.esm.min.js +15 -14
  104. package/dist/solid-ui.esm.min.js.map +1 -1
  105. package/dist/solid-ui.js +12621 -14833
  106. package/dist/solid-ui.js.map +1 -1
  107. package/dist/solid-ui.min.js +23 -22
  108. package/dist/solid-ui.min.js.map +1 -1
  109. package/dist/tabs.js +2 -2
  110. package/dist/tabs.js.map +1 -1
  111. package/dist/utils/headerFooterHelpers.d.ts.map +1 -1
  112. package/dist/utils/headerFooterHelpers.js +11 -2
  113. package/dist/utils/headerFooterHelpers.js.map +1 -1
  114. package/dist/v2/components/actions/button/Button.d.ts +97 -0
  115. package/dist/v2/components/actions/button/Button.d.ts.map +1 -0
  116. package/dist/v2/components/actions/button/Button.js +325 -0
  117. package/dist/v2/components/actions/button/Button.js.map +1 -0
  118. package/dist/v2/components/actions/button/Button.test.d.ts +2 -0
  119. package/dist/v2/components/actions/button/Button.test.d.ts.map +1 -0
  120. package/dist/v2/components/actions/button/Button.test.js +117 -0
  121. package/dist/v2/components/actions/button/Button.test.js.map +1 -0
  122. package/dist/v2/components/actions/button/index.d.ts +8 -0
  123. package/dist/v2/components/actions/button/index.d.ts.map +1 -0
  124. package/dist/v2/components/actions/button/index.js +7 -0
  125. package/dist/v2/components/actions/button/index.js.map +1 -0
  126. package/dist/v2/components/auth/loginButton/LoginButton.d.ts +62 -0
  127. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -0
  128. package/dist/v2/components/auth/loginButton/LoginButton.js +539 -0
  129. package/dist/v2/components/auth/loginButton/LoginButton.js.map +1 -0
  130. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts +2 -0
  131. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts.map +1 -0
  132. package/dist/v2/components/auth/loginButton/LoginButton.test.js +53 -0
  133. package/dist/v2/components/auth/loginButton/LoginButton.test.js.map +1 -0
  134. package/dist/v2/components/auth/loginButton/downArrow.d.ts +2 -0
  135. package/dist/v2/components/auth/loginButton/downArrow.d.ts.map +1 -0
  136. package/dist/v2/components/auth/loginButton/downArrow.js +10 -0
  137. package/dist/v2/components/auth/loginButton/downArrow.js.map +1 -0
  138. package/dist/v2/components/auth/loginButton/index.d.ts +3 -0
  139. package/dist/v2/components/auth/loginButton/index.d.ts.map +1 -0
  140. package/dist/v2/components/auth/loginButton/index.js +7 -0
  141. package/dist/v2/components/auth/loginButton/index.js.map +1 -0
  142. package/dist/v2/components/auth/signupButton/SignupButton.d.ts +36 -0
  143. package/dist/v2/components/auth/signupButton/SignupButton.d.ts.map +1 -0
  144. package/dist/v2/components/auth/signupButton/SignupButton.js +84 -0
  145. package/dist/v2/components/auth/signupButton/SignupButton.js.map +1 -0
  146. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts +2 -0
  147. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts.map +1 -0
  148. package/dist/v2/components/auth/signupButton/SignupButton.test.js +49 -0
  149. package/dist/v2/components/auth/signupButton/SignupButton.test.js.map +1 -0
  150. package/dist/v2/components/auth/signupButton/index.d.ts +3 -0
  151. package/dist/v2/components/auth/signupButton/index.d.ts.map +1 -0
  152. package/dist/v2/components/auth/signupButton/index.js +7 -0
  153. package/dist/v2/components/auth/signupButton/index.js.map +1 -0
  154. package/dist/v2/components/forms/combobox/Combobox.d.ts +82 -0
  155. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +1 -0
  156. package/dist/v2/components/forms/combobox/Combobox.js +506 -0
  157. package/dist/v2/components/forms/combobox/Combobox.js.map +1 -0
  158. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +2 -0
  159. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +1 -0
  160. package/dist/v2/components/forms/combobox/Combobox.test.js +201 -0
  161. package/dist/v2/components/forms/combobox/Combobox.test.js.map +1 -0
  162. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +6 -0
  163. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +1 -0
  164. package/dist/v2/components/forms/combobox/comboboxTypes.js +2 -0
  165. package/dist/v2/components/forms/combobox/comboboxTypes.js.map +1 -0
  166. package/dist/v2/components/forms/combobox/index.d.ts +3 -0
  167. package/dist/v2/components/forms/combobox/index.d.ts.map +1 -0
  168. package/dist/v2/components/forms/combobox/index.js +7 -0
  169. package/dist/v2/components/forms/combobox/index.js.map +1 -0
  170. package/dist/v2/components/forms/select/Select.d.ts +68 -0
  171. package/dist/v2/components/forms/select/Select.d.ts.map +1 -0
  172. package/dist/v2/components/forms/select/Select.js +499 -0
  173. package/dist/v2/components/forms/select/Select.js.map +1 -0
  174. package/dist/v2/components/forms/select/Select.test.d.ts +2 -0
  175. package/dist/v2/components/forms/select/Select.test.d.ts.map +1 -0
  176. package/dist/v2/components/forms/select/Select.test.js +168 -0
  177. package/dist/v2/components/forms/select/Select.test.js.map +1 -0
  178. package/dist/v2/components/forms/select/index.d.ts +3 -0
  179. package/dist/v2/components/forms/select/index.d.ts.map +1 -0
  180. package/dist/v2/components/forms/select/index.js +7 -0
  181. package/dist/v2/components/forms/select/index.js.map +1 -0
  182. package/dist/v2/components/forms/shared/downArrow.d.ts +2 -0
  183. package/dist/v2/components/forms/shared/downArrow.d.ts.map +1 -0
  184. package/dist/v2/components/forms/shared/downArrow.js +10 -0
  185. package/dist/v2/components/forms/shared/downArrow.js.map +1 -0
  186. package/dist/v2/components/forms/shared/keyboard.d.ts +7 -0
  187. package/dist/v2/components/forms/shared/keyboard.d.ts.map +1 -0
  188. package/dist/v2/components/forms/shared/keyboard.js +56 -0
  189. package/dist/v2/components/forms/shared/keyboard.js.map +1 -0
  190. package/dist/v2/components/forms/shared/listboxStyles.d.ts +2 -0
  191. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +1 -0
  192. package/dist/v2/components/forms/shared/listboxStyles.js +96 -0
  193. package/dist/v2/components/forms/shared/listboxStyles.js.map +1 -0
  194. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +11 -0
  195. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +1 -0
  196. package/dist/v2/components/forms/shared/listboxTemplate.js +37 -0
  197. package/dist/v2/components/forms/shared/listboxTemplate.js.map +1 -0
  198. package/dist/v2/components/forms/shared/optionTypes.d.ts +6 -0
  199. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +1 -0
  200. package/dist/v2/components/forms/shared/optionTypes.js +2 -0
  201. package/dist/v2/components/forms/shared/optionTypes.js.map +1 -0
  202. package/dist/v2/components/layout/footer/Footer.d.ts +60 -0
  203. package/dist/v2/components/layout/footer/Footer.d.ts.map +1 -0
  204. package/dist/v2/components/layout/footer/Footer.js +148 -0
  205. package/dist/v2/components/layout/footer/Footer.js.map +1 -0
  206. package/dist/v2/components/layout/footer/Footer.test.d.ts +2 -0
  207. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +1 -0
  208. package/dist/v2/components/layout/footer/Footer.test.js +53 -0
  209. package/dist/v2/components/layout/footer/Footer.test.js.map +1 -0
  210. package/dist/v2/components/layout/footer/index.d.ts +3 -0
  211. package/dist/v2/components/layout/footer/index.d.ts.map +1 -0
  212. package/dist/v2/components/layout/footer/index.js +7 -0
  213. package/dist/v2/components/layout/footer/index.js.map +1 -0
  214. package/dist/v2/components/layout/header/Header.d.ts +155 -0
  215. package/dist/v2/components/layout/header/Header.d.ts.map +1 -0
  216. package/dist/v2/components/layout/header/Header.js +845 -0
  217. package/dist/v2/components/layout/header/Header.js.map +1 -0
  218. package/dist/v2/components/layout/header/header.test.d.ts +2 -0
  219. package/dist/v2/components/layout/header/header.test.d.ts.map +1 -0
  220. package/dist/v2/components/layout/header/header.test.js +242 -0
  221. package/dist/v2/components/layout/header/header.test.js.map +1 -0
  222. package/dist/v2/components/layout/header/index.d.ts +4 -0
  223. package/dist/v2/components/layout/header/index.d.ts.map +1 -0
  224. package/dist/v2/components/layout/header/index.js +7 -0
  225. package/dist/v2/components/layout/header/index.js.map +1 -0
  226. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +200 -0
  227. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +1 -0
  228. package/dist/v2/components/media/photoCapture/PhotoCapture.js +723 -0
  229. package/dist/v2/components/media/photoCapture/PhotoCapture.js.map +1 -0
  230. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +2 -0
  231. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +1 -0
  232. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js +157 -0
  233. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js.map +1 -0
  234. package/dist/v2/components/media/photoCapture/index.d.ts +3 -0
  235. package/dist/v2/components/media/photoCapture/index.d.ts.map +1 -0
  236. package/dist/v2/components/media/photoCapture/index.js +7 -0
  237. package/dist/v2/components/media/photoCapture/index.js.map +1 -0
  238. package/dist/versionInfo.js +15 -15
  239. package/dist/widgets/buttons.d.ts +10 -3
  240. package/dist/widgets/buttons.d.ts.map +1 -1
  241. package/dist/widgets/buttons.js +81 -7
  242. package/dist/widgets/buttons.js.map +1 -1
  243. package/package.json +139 -46
@@ -0,0 +1,1125 @@
1
+ import*as e from"solid-logic";var t={7423(e,t,o){function r(...e){console.log(...e)}o.d(t,{Rm:()=>r})},3378(e,t,o){o.d(t,{Pt:()=>i});var r=o(7423);const n="https://solidos.github.io/solid-ui/src",i=(e=o.hmd(e)).scriptURI?{iconBase:e.scriptURI.slice(0,e.scriptURI.lastIndexOf("/"))+"/icons/",originalIconBase:e.scriptURI.slice(0,e.scriptURI.lastIndexOf("/"))+"/originalIcons/"}:"undefined"!=typeof $SolidTestEnvironment&&$SolidTestEnvironment.iconBase?{iconBase:$SolidTestEnvironment.iconBase,originalIconBase:$SolidTestEnvironment.originalIconBase}:{iconBase:n+"/icons/",originalIconBase:n+"/originalIcons/"};(0,r.Rm)(" icons.iconBase is set to : "+i.iconBase);i.iconBase,i.originalIconBase},4614(e,t,o){o.d(t,{M:()=>s});var r=o(6161),n=o(3138),i=o(6454);class s extends r.WF{static properties={label:{type:String,reflect:!0},theme:{type:String,reflect:!0},issuerUrl:{type:String,attribute:"issuer-url",reflect:!0},icon:{type:String,reflect:!0},layout:{type:String,reflect:!0},_popupOpen:{state:!0},_issuerInputValue:{state:!0},_dropdownOpen:{state:!0}};static styles=r.AH`
2
+ :host { /* default theme */
3
+ display: inline-block;
4
+ position: relative;
5
+ z-index: 400;
6
+ --login-button-background: var(--lavender-900, #7c4cff);
7
+ --login-button-text: var(--color-header-text, #ffffff);
8
+ --popup-background: var(--color-background, #F8F9FB);
9
+ --popup-text: var(--color-text, #1A1A1A);
10
+ --popup-border: var(--color-border, #E5E7EB);
11
+ --popup-shadow: var(--box-shadow-sm, 0 1px 4px rgba(124,77,255,0.12));
12
+ --popup-overlay-background: rgba(0, 0, 0, 0.6);
13
+ --issuer-input-background: var(--color-background, #F8F9FB);
14
+ --issuer-input-text: var(--color-text, #1A1A1A);
15
+ --issuer-input-border: var(--color-text, #1A1A1A);
16
+ --issuer-button-background: var(--color-background, #F8F9FB);
17
+ --issuer-button-text: var(--color-text, #1A1A1A);
18
+ --issuer-button-border: var(--color-border, #E5E7EB);
19
+ --issuer-button-hover-background: var(--lavender-900, #7c4cff);
20
+ --issuer-label-color: var(--grey-purple-700, #1A1A1A);
21
+ --issuer-placeholder-color: var(--grey-purple-700, #5e546d);;
22
+ --error-text-color: var(--color-error, #B00020);
23
+ }
24
+
25
+ :host([theme='dark']) {
26
+ display: inline-block;
27
+ position: relative;
28
+ z-index: 900;
29
+ --login-button-background: var(--lavender-900, #7c4cff);
30
+ --login-button-text: var(--color-header-text, #ffffff);
31
+ --popup-background: var(--color-background, #F8F9FB);
32
+ --popup-text: var(--color-text, #1A1A1A);
33
+ --popup-border: var(--color-border, #E5E7EB);
34
+ --popup-shadow: var(--box-shadow-sm, 0 1px 4px rgba(124,77,255,0.12));
35
+ --popup-overlay-background: rgba(0, 0, 0, 0.6);
36
+ --issuer-input-background: var(--color-background, #F8F9FB);
37
+ --issuer-input-text: var(--color-text, #1A1A1A);
38
+ --issuer-input-border: var(--color-text, #1A1A1A);
39
+ --issuer-button-background: var(--color-background, #F8F9FB);
40
+ --issuer-button-text: var(--color-text, #1A1A1A);
41
+ --issuer-button-border: var(--color-text, #1A1A1A);
42
+ --issuer-button-hover-background: var(--lavender-900, #7c4cff);
43
+ --issuer-label-color: var(--grey-purple-700, #1A1A1A);
44
+ --issuer-placeholder-color: var(--grey-purple-700, #5e546d);;
45
+ --error-text-color: var(--color-error, #B00020);
46
+ }
47
+
48
+ .login-button {
49
+ display: flex;
50
+ height: 35px;
51
+ padding: var(--spacing-xxs, 0.3125rem) var(--spacing-xs, 0.75rem);
52
+ align-items: center;
53
+ gap: var(--spacing-xxs, 0.3125rem);
54
+ border-radius: var(--border-radius-base, 0.3125rem);
55
+ background: var(--login-button-background);
56
+ border: none;
57
+ color: var(--login-button-text);
58
+ cursor: pointer;
59
+ font: inherit;
60
+ line-height: 1;
61
+ white-space: nowrap;
62
+ text-decoration: none;
63
+ box-sizing: border-box;
64
+ transition: transform 0.2s ease;
65
+ }
66
+
67
+ .login-button-icon {
68
+ width: 16px;
69
+ height: 16px;
70
+ display: inline-block;
71
+ object-fit: contain;
72
+ }
73
+
74
+ .login-button:active {
75
+ transform: translateY(1px);
76
+ }
77
+
78
+ .popup-dialog {
79
+ border: none;
80
+ padding: 0;
81
+ background: transparent;
82
+ outline: none;
83
+ overflow: visible;
84
+ width: min(30rem, calc(100vw - 2rem));
85
+ max-width: calc(100vw - 2rem);
86
+ max-height: calc(100dvh - 2rem);
87
+ }
88
+
89
+ .popup-dialog::backdrop {
90
+ background: var(--popup-overlay-background, rgba(0, 0, 0, 0.6));
91
+ }
92
+
93
+ .popup-box {
94
+ background: var(--popup-background);
95
+ color: var(--popup-text);
96
+ box-shadow: var(--popup-shadow);
97
+ border: 1px solid var(--popup-border);
98
+ border-radius: var(--border-radius-md, 0.5rem);
99
+ width: min(30rem, calc(100vw - 2rem));
100
+ min-width: min(30rem, calc(100vw - 2rem));
101
+ max-width: calc(100vw - 2rem);
102
+ max-height: calc(100dvh - 2rem);
103
+ overflow: auto;
104
+ z-index: 1001;
105
+ }
106
+
107
+ .popup-top-menu {
108
+ border-bottom: 1px solid #DDD;
109
+ display: flex;
110
+ flex-direction: row;
111
+ align-items: center;
112
+ justify-content: space-between;
113
+ padding-bottom: 8px;
114
+ margin-bottom: 8px;
115
+ padding: 1rem;
116
+ background: var(--gray-200, #E5E7EB);
117
+ }
118
+
119
+ .popup-title {
120
+ font-weight: 800;
121
+ }
122
+
123
+ .popup-close {
124
+ background: transparent;
125
+ border: none;
126
+ cursor: pointer;
127
+ font-size: 1.25rem;
128
+ line-height: 1;
129
+ padding: 0 0.25rem;
130
+ }
131
+
132
+ .issuer-text-section {
133
+ display: flex;
134
+ flex-direction: column;
135
+ padding: 1rem 1rem 1.75rem;
136
+ }
137
+
138
+ .issuer-text-label {
139
+ color: var(--issuer-label-color);
140
+ margin-bottom: 6px;
141
+ }
142
+
143
+ .issuer-text-row {
144
+ display: flex;
145
+ flex-direction: row;
146
+ gap: 6px;
147
+ align-items: flex-start;
148
+ }
149
+
150
+ .issuer-input-wrapper {
151
+ flex: 1;
152
+ display: flex;
153
+ flex-direction: column;
154
+ min-width: 0;
155
+ position: relative;
156
+ }
157
+
158
+ .issuer-input-field-row {
159
+ display: flex;
160
+ flex-direction: row;
161
+ position: relative;
162
+ }
163
+
164
+ .issuer-text-input {
165
+ flex: 1;
166
+ padding: 0.375rem 2.75rem 0.375rem 0.5rem;
167
+ border: 1px solid var(--issuer-input-border);
168
+ border-radius: var(--border-radius-base, 0.3125rem);
169
+ background: var(--issuer-input-background);
170
+ color: var(--issuer-input-text);
171
+ font: inherit;
172
+ min-width: 0;
173
+ }
174
+
175
+ .issuer-text-input::placeholder {
176
+ color: var(--issuer-placeholder-color);
177
+ }
178
+
179
+ .issuer-dropdown-toggle {
180
+ position: absolute;
181
+ right: 6px;
182
+ top: 50%;
183
+ transform: translateY(-50%);
184
+ width: 26px;
185
+ height: 26px;
186
+ padding: 0;
187
+ border: none;
188
+ background: transparent;
189
+ cursor: pointer;
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ flex-shrink: 0;
194
+ border-radius: var(--border-radius-base, 0.3125rem);
195
+ }
196
+
197
+ .issuer-dropdown-toggle:hover {
198
+ background: var(--color-header-menu-item-hover, #e6dcff);
199
+ }
200
+
201
+ .issuer-dropdown-toggle svg {
202
+ width: 14px;
203
+ height: 14px;
204
+ display: block;
205
+ }
206
+
207
+ .issuer-dropdown-list {
208
+ position: absolute;
209
+ top: calc(100% + 6px);
210
+ left: 0;
211
+ right: 0;
212
+ border: 1px solid var(--color-border, #E5E7EB);
213
+ border-top: none;
214
+ border-radius: 0 0 var(--border-radius-base, 0.3125rem) var(--border-radius-base, 0.3125rem);
215
+ background: var(--issuer-input-background);
216
+ overflow: visible;
217
+ z-index: 10;
218
+ box-shadow: 0 4px 12px rgba(124, 77, 255, 0.12);
219
+ }
220
+
221
+ .issuer-dropdown-item {
222
+ display: block;
223
+ width: 100%;
224
+ padding: 0.625rem 0.75rem;
225
+ border: none;
226
+ border-bottom: 1px solid var(--color-border, #E5E7EB);
227
+ background: transparent;
228
+ color: var(--issuer-button-text);
229
+ cursor: pointer;
230
+ font: inherit;
231
+ text-align: left;
232
+ box-sizing: border-box;
233
+ }
234
+
235
+ .issuer-dropdown-item:last-child {
236
+ border-bottom: none;
237
+ }
238
+
239
+ .issuer-dropdown-item:hover {
240
+ background: var(--color-header-menu-item-hover, #e6dcff);
241
+ border-radius: var(--border-radius-base-md, 0.5rem);
242
+ }
243
+
244
+ .popup-footer {
245
+ display: flex;
246
+ flex-direction: row;
247
+ justify-content: center;
248
+ gap: 8px;
249
+ padding: 0.75rem 1rem 1rem;
250
+ }
251
+
252
+ .popup-footer-hr {
253
+ margin: 0;
254
+ border: none;
255
+ border-top: 1px solid var(--popup-border, #E5E7EB);
256
+ }
257
+
258
+ .popup-cancel-button {
259
+ padding: 0.5rem 1.25rem;
260
+ border: 1px solid #C0BFC7;
261
+ border-radius: var(--border-radius-base, 0.3125rem);
262
+ background: var(--popup-background);
263
+ color: #314158;
264
+ cursor: pointer;
265
+ font: inherit;
266
+ }
267
+
268
+ .popup-cancel-button:hover {
269
+ background: #D1D5DB;
270
+ }
271
+
272
+ .popup-login-button {
273
+ padding: 0.5rem 1.25rem;
274
+ border: none;
275
+ border-radius: var(--border-radius-base, 0.3125rem);
276
+ background: var(--lavender-900, #7c4cff);
277
+ color: #ffffff;
278
+ cursor: pointer;
279
+ font: inherit;
280
+ }
281
+
282
+ .popup-login-button:hover {
283
+ background: #6a3de8;
284
+ }
285
+
286
+ .popup-login-button:disabled {
287
+ opacity: 0.5;
288
+ cursor: not-allowed;
289
+ }
290
+
291
+ .error-msg {
292
+ color: var(--error-text-color);
293
+ font-size: 0.875rem;
294
+ margin-top: 8px;
295
+ }
296
+
297
+ @media (max-width: 40rem) {
298
+ .popup-dialog {
299
+ width: calc(100vw - 1rem);
300
+ max-width: calc(100vw - 1rem);
301
+ max-height: calc(100dvh - 1rem);
302
+ }
303
+
304
+ .popup-box {
305
+ width: calc(100vw - 1rem);
306
+ min-width: 0;
307
+ max-width: calc(100vw - 1rem);
308
+ max-height: calc(100dvh - 1rem);
309
+ border-radius: var(--border-radius-base, 0.3125rem);
310
+ }
311
+
312
+ .popup-top-menu,
313
+ .issuer-text-section,
314
+ .popup-footer {
315
+ padding-left: 0.75rem;
316
+ padding-right: 0.75rem;
317
+ }
318
+
319
+ .popup-footer {
320
+ flex-wrap: wrap;
321
+ gap: 0.625rem;
322
+ }
323
+
324
+ .popup-footer > button {
325
+ flex: 1 1 100%;
326
+ }
327
+
328
+ .issuer-text-row,
329
+ .issuer-input-field-row {
330
+ width: 100%;
331
+ }
332
+ }
333
+ `;_issuerInputId=`issuer-url-input-${Math.random().toString(36).slice(2,10)}`;_errorMsg="";constructor(){super(),this.label="Log In",this.theme="light",this.issuerUrl="",this.icon="",this.layout="desktop",this._popupOpen=!1,this._issuerInputValue="",this._dropdownOpen=!1}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback()}_openPopup(){const e=(0,n.offlineTestID)();e?this._loginComplete(e.uri):(this._issuerInputValue="undefined"!=typeof localStorage&&localStorage.getItem("loginIssuer")||this.issuerUrl||"",this._errorMsg="",this._popupOpen=!0)}_closePopup(){this._popupOpen=!1}updated(){const e=this.shadowRoot?.querySelector("dialog");e&&(this._popupOpen&&!e.open?e.showModal():!this._popupOpen&&e.open&&e.close())}async _loginToIssuer(e){if(e)try{n.solidLogicSingleton.store.updater.flagAuthorizationMetadata();const t=new URL(window.location.href).hash;t&&window.localStorage.setItem("preLoginRedirectHash",t),window.localStorage.setItem("loginIssuer",e);const o=new URL(window.location.href);o.hash="",await n.authSession.login({redirectUrl:o.href,oidcIssuer:e})}catch(e){this._errorMsg=e.message||String(e),this.requestUpdate()}}_loginComplete(e){n.authn.saveUser(e),this.dispatchEvent(new CustomEvent("login-success",{detail:{webId:e},bubbles:!0,composed:!0}))}_handleGoClick(){this._dropdownOpen=!1,this._loginToIssuer(this._issuerInputValue)}_toggleDropdown(){this._dropdownOpen=!this._dropdownOpen}_selectIssuerFromDropdown(e){this._issuerInputValue=e,this._dropdownOpen=!1}_handleInputChange(e){this._issuerInputValue=e.target.value}_handleInputKeydown(e){"Enter"===e.key&&this._loginToIssuer(this._issuerInputValue),"Escape"===e.key&&this._closePopup()}_renderPopup(){const e=(0,n.getSuggestedIssuers)();return r.qy`
334
+ <div class="popup-box">
335
+ <div class="popup-top-menu">
336
+ <span class="popup-title">Select an identity provider</span>
337
+ <button class="popup-close" type="button" aria-label="Close" @click="${()=>this._closePopup()}">&#x2715;</button>
338
+ </div>
339
+
340
+ <div class="issuer-text-section">
341
+ <label class="issuer-text-label" for="${this._issuerInputId}">Solid Identity Provider</label>
342
+ <div class="issuer-text-row">
343
+ <div class="issuer-input-wrapper">
344
+ <div class="issuer-input-field-row">
345
+ <input
346
+ id="${this._issuerInputId}"
347
+ class="issuer-text-input"
348
+ type="text"
349
+ placeholder="https://example.com"
350
+ .value="${this._issuerInputValue}"
351
+ @input="${this._handleInputChange}"
352
+ @keydown="${this._handleInputKeydown}"
353
+ autocomplete="url"
354
+ />
355
+ ${e.length?r.qy`
356
+ <button
357
+ class="issuer-dropdown-toggle"
358
+ type="button"
359
+ aria-label="Show identity provider suggestions"
360
+ aria-expanded="${this._dropdownOpen}"
361
+ @click="${()=>this._toggleDropdown()}"
362
+ >${i.S}</button>
363
+ `:""}
364
+ </div>
365
+ ${this._dropdownOpen&&e.length?r.qy`
366
+ <div class="issuer-dropdown-list" role="listbox">
367
+ ${e.map(e=>r.qy`
368
+ <button
369
+ class="issuer-dropdown-item"
370
+ type="button"
371
+ role="option"
372
+ @click="${()=>this._selectIssuerFromDropdown(e.uri)}"
373
+ >${e.name}</button>
374
+ `)}
375
+ </div>
376
+ `:""}
377
+ </div>
378
+ </div>
379
+ ${this._errorMsg?r.qy`<div class="error-msg">${this._errorMsg}</div>`:""}
380
+ </div>
381
+ <hr class="popup-footer-hr" />
382
+ <div class="popup-footer">
383
+ <button class="popup-cancel-button" type="button" @click="${()=>this._closePopup()}">Cancel</button>
384
+ <button
385
+ class="popup-login-button"
386
+ type="button"
387
+ ?disabled="${!this._issuerInputValue}"
388
+ @click="${()=>this._handleGoClick()}"
389
+ >Log In</button>
390
+ </div>
391
+ </div>
392
+ `}render(){return r.qy`
393
+ <button
394
+ class="login-button"
395
+ type="button"
396
+ part="login-button"
397
+ @click="${()=>this._openPopup()}"
398
+ >
399
+ ${this.icon?r.qy`<img class="login-button-icon" src="${this.icon}" alt="" aria-hidden="true" part="login-button-icon" />`:""}
400
+ <slot>${this.label}</slot>
401
+ </button>
402
+
403
+ <dialog
404
+ class="popup-dialog"
405
+ role="dialog"
406
+ aria-modal="true"
407
+ aria-label="Select an identity provider"
408
+ @cancel="${e=>{e.preventDefault(),this._closePopup()}}"
409
+ @click="${e=>{e.target===e.currentTarget&&this._closePopup()}}"
410
+ >
411
+ ${this._popupOpen?this._renderPopup():""}
412
+ </dialog>
413
+ `}}},6454(e,t,o){o.d(t,{S:()=>r});const r=o(6752).qy`
414
+ <svg xmlns="http://www.w3.org/2000/svg"
415
+ viewBox="0 0 12 7"
416
+ fill="none"
417
+ >
418
+ <path d="M0.679688 0.678955L5.50729 5.50656L10.3349 0.678955" stroke="#6A7282" stroke-width="1.35776" stroke-linecap="round" stroke-linejoin="round"/>
419
+ </svg>
420
+ `},2167(e,t,o){var r=o(4614);const n="solid-ui-login-button";customElements.get(n)||customElements.define(n,r.M)},8228(e,t,o){o.d(t,{X:()=>n});var r=o(6161);class n extends r.WF{static properties={label:{type:String,reflect:!0},theme:{type:String,reflect:!0},signupUrl:{type:String,attribute:"signup-url",reflect:!0},icon:{type:String,reflect:!0},layout:{type:String,reflect:!0}};static styles=r.AH`
421
+ :host {
422
+ display: inline-block;
423
+ --signup-button-background: transparent;
424
+ --signup-button-border: var(--color-border, #E5E7EB);
425
+ --signup-button-text: var(--color-header-text, #ffffff);
426
+ }
427
+
428
+ :host([theme='dark']) {
429
+ --signup-button-background: transparent;
430
+ --signup-button-border: var(--color-border, #E5E7EB);
431
+ --signup-button-text: var(--color-header-text, #ffffff);
432
+ }
433
+
434
+ .signup-button {
435
+ display: flex;
436
+ height: 35px;
437
+ padding: var(--spacing-xxs, 0.3125rem) var(--spacing-xs, 0.75rem);
438
+ align-items: center;
439
+ gap: var(--spacing-xxs, 0.3125rem);
440
+ border-radius: var(--border-radius-base, 0.3125rem);
441
+ background: var(--signup-button-background);
442
+ border: 1px solid var(--signup-button-border);
443
+ color: var(--signup-button-text);
444
+ cursor: pointer;
445
+ font: inherit;
446
+ line-height: 1;
447
+ white-space: nowrap;
448
+ text-decoration: none;
449
+ box-sizing: border-box;
450
+ transition: transform 0.2s ease;
451
+ }
452
+
453
+ :host([layout='mobile']) .signup-button {
454
+ border: none;
455
+ }
456
+
457
+ .signup-button-icon {
458
+ width: 16px;
459
+ height: 16px;
460
+ display: inline-block;
461
+ object-fit: contain;
462
+ }
463
+
464
+ .signup-button:active {
465
+ transform: translateY(1px);
466
+ }
467
+ `;constructor(){super(),this.label="Sign Up",this.signupUrl="https://solidproject.org/get_a_pod",this.theme="light",this.icon="",this.layout="desktop"}_handleClick(){window.open(this.signupUrl,"_blank","noopener,noreferrer")}render(){return r.qy`
468
+ <button
469
+ class="signup-button"
470
+ type="button"
471
+ part="signup-button"
472
+ @click="${()=>this._handleClick()}"
473
+ >
474
+ ${this.icon?r.qy`<img class="signup-button-icon" src="${this.icon}" alt="" aria-hidden="true" part="signup-button-icon" />`:""}
475
+ <slot>${this.label}</slot>
476
+ </button>
477
+ `}}},8005(e,t,o){var r=o(8228);const n="solid-ui-signup-button";customElements.get(n)||customElements.define(n,r.X)},1166(e,t,o){o.d(t,{Y:()=>l});var r=o(6161),n=o(3378),i=o(3138),s=(o(2167),o(8005),o(1413));const a=n.Pt.iconBase+"emptyProfileAvatar.png";class l extends r.WF{static properties={logo:{type:String,reflect:!0},helpIcon:{type:String,attribute:"help-icon",reflect:!0},layout:{type:String,reflect:!0},theme:{type:String,reflect:!0},brandLink:{type:String,attribute:"brand-link",reflect:!0},authState:{type:String,attribute:"auth-state",reflect:!0},loginAction:{type:Object,attribute:!1},signUpAction:{type:Object,attribute:!1},accountMenu:{type:Array,attribute:!1},logoutLabel:{type:String,attribute:"logout-label",reflect:!0},logoutIcon:{type:String,attribute:"logout-icon",reflect:!0},accountIcon:{type:String,attribute:"account-icon",reflect:!0},accountAvatar:{type:String,attribute:"account-avatar",reflect:!0},accountAvatarFallback:{type:String,attribute:"account-avatar-fallback",reflect:!0},loginIcon:{type:String,attribute:"login-icon",reflect:!0},signUpIcon:{type:String,attribute:"sign-up-icon",reflect:!0},helpMenuList:{type:Array},accountMenuOpen:{state:!0},helpMenuOpen:{state:!0},hasSlottedAccountMenu:{state:!0},hasSlottedHelpMenu:{state:!0}};static styles=r.AH`
478
+ :host { /* default theme */
479
+ display: block;
480
+ --header-bg: var(--color-header-row-bg, #332746);
481
+ --header-text: var(--color-header-text, #ffffff);
482
+ --header-border: var(--color-border, #efecf3);
483
+ --header-line: var(--color-header-menu-separator-line, #5e546d);
484
+ --header-link: var(--color-text-heading, #000000);
485
+ --header-menu-item-hover: var(--color-header-menu-item-hover, #e6dcff);
486
+ --header-menu-item-selected: var(--color-header-menu-item-selected, #cbb9ff);
487
+ --header-menu-bg: var(--color-menu-bg, #f6f5f9);
488
+ --header-menu-loggedin-bg: var(--color-header-menu-loggedin-bg, #5e546d);
489
+ --header-menu-text: var(--color-menu-item-text, #654d6c);
490
+ --header-border-radius: var(--border-radius-sm, 0.2rem);
491
+ --header-button-bg: var(--color-menu-bg, #ffffff);
492
+ --header-button-text: var(--color-header-button-text, #0F172B);
493
+ --header-button-detail-text: var(--color-header-button-detail-text, #99A1AF);
494
+ --header-shadow: var(--color-header-shadow, 2px 6px 10px 0 rgba(0, 0, 0, 0.4), 2px 8px 24px 0 rgba(0, 0, 0, 0.19));
495
+ font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);
496
+ }
497
+
498
+ /* for now light and dark are the same */
499
+ :host([theme='dark']) {
500
+ display: block;
501
+ --header-bg: var(--color-header-row-bg, #332746);
502
+ --header-text: var(--color-header-text, #ffffff);
503
+ --header-border: var(--color-border, #efecf3);
504
+ --header-line: var(--color-header-menu-separator-line, #5e546d);
505
+ --header-link: var(--color-text-heading, #000000);
506
+ --header-menu-item-hover: var(--color-header-menu-item-hover, #e6dcff);
507
+ --header-menu-item-selected: var(--color-header-menu-item-selected, #cbb9ff);
508
+ --header-menu-bg: var(--color-menu-bg, #f6f5f9);
509
+ --header-menu-loggedin-bg: var(--color-header-menu-loggedin-bg, #5e546d);
510
+ --header-menu-text: var(--color-menu-item-text, #654d6c);
511
+ --header-border-radius: var(--border-radius-sm, 0.2rem);
512
+ --header-button-bg: var(--color-menu-bg, #ffffff);
513
+ --header-button-text: var(--color-header-button-text, #0f172a);
514
+ --header-button-detail-text: var(--color-header-button-detail-text, #878192);
515
+ --header-icon-filter: invert(1) brightness(1.3); /* special way to invert SVG color of icons, from white to black */
516
+ --header-shadow: var(--color-header-shadow, 2px 6px 10px 0 rgba(0, 0, 0, 0.4), 2px 8px 24px 0 rgba(0, 0, 0, 0.19));
517
+ font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);
518
+ }
519
+
520
+ :host([layout='mobile']) .headerInner {
521
+ flex-wrap: wrap;
522
+ text-align: center;
523
+ gap: 0.5rem;
524
+ }
525
+
526
+ .headerInner {
527
+ display: flex;
528
+ align-items: center;
529
+ justify-content: space-between;
530
+ background: var(--header-bg);
531
+ color: var(--header-text);
532
+ padding: 0 1.5rem;
533
+ height: 3.75rem;
534
+ }
535
+
536
+ ::slotted([slot='navigation-toggle']) {
537
+ display: inline-flex;
538
+ align-items: center;
539
+ justify-content: center;
540
+ flex-shrink: 0;
541
+ margin-right: 0.75rem;
542
+ }
543
+
544
+ :host([layout='desktop']) ::slotted([slot='navigation-toggle']) {
545
+ display: none !important;
546
+ }
547
+
548
+ .brand {
549
+ display: flex;
550
+ align-items: center;
551
+ gap: 0.5rem;
552
+ text-decoration: none;
553
+ color: inherit;
554
+ }
555
+
556
+ .brand-not-displayed {
557
+ display: none;
558
+ }
559
+
560
+ .brand img {
561
+ height: 50px;
562
+ width: 55px;
563
+ object-fit: contain;
564
+ }
565
+
566
+ .menu {
567
+ display: flex;
568
+ align-items: center;
569
+ gap: 0.625rem;
570
+ margin-left: auto;
571
+ }
572
+
573
+ .auth-actions {
574
+ display: flex;
575
+ align-items: center;
576
+ gap: 0.625rem;
577
+ }
578
+
579
+ .auth-button {
580
+ display: inline-flex;
581
+ align-items: center;
582
+ justify-content: center;
583
+ gap: 0.5rem;
584
+ min-height: 2.25rem;
585
+ padding: 0.5rem 0.875rem;
586
+ border: 1px solid var(--header-border);
587
+ border-radius: 999px;
588
+ background: var(--header-menu-bg);
589
+ color: var(--header-button-text);
590
+ cursor: pointer;
591
+ font: inherit;
592
+ line-height: 1;
593
+ text-decoration: none;
594
+ box-sizing: border-box;
595
+ transition: border-color 0.2s ease, transform 0.2s ease;
596
+ }
597
+
598
+ .auth-button:hover {
599
+ border-color: var(--header-menu-item-hover);
600
+ }
601
+
602
+ .auth-button:active {
603
+ transform: translateY(1px);
604
+ }
605
+
606
+ .auth-button-sign-up {
607
+ background: color-mix(in srgb, var(--header-menu-bg) 78%, var(--header-menu-item-selected) 22%);
608
+ }
609
+
610
+ .header-menu-separator {
611
+ background: var(--header-line);
612
+ width: 1px;
613
+ height: 2.3rem;
614
+ }
615
+
616
+ .account-menu-container {
617
+ position: relative;
618
+ display: flex;
619
+ align-items: center;
620
+ }
621
+
622
+ .account-menu-trigger {
623
+ display: inline-flex;
624
+ align-items: center;
625
+ gap: 0.625rem;
626
+ min-height: 2.5rem;
627
+ border: 1px solid var(--header-menu-loggedin-bg);
628
+ border-radius: 999px;
629
+ background: var(--header-menu-loggedin-bg);
630
+ color: var(--header-button-text);
631
+ cursor: pointer;
632
+ font: inherit;
633
+ line-height: 1;
634
+ }
635
+
636
+ :host([layout='mobile']) .account-menu-trigger {
637
+ gap: 0;
638
+ min-height: auto;
639
+ padding: 0;
640
+ border: 1.5px solid var(--header-border);
641
+ background: var(--header-menu-loggedin-bg);
642
+ }
643
+
644
+ :host([layout='mobile']) .account-menu-trigger-label {
645
+ display: none;
646
+ }
647
+
648
+ .account-menu-trigger:disabled {
649
+ cursor: default;
650
+ opacity: 0.7;
651
+ }
652
+
653
+ .account-menu-trigger-icon {
654
+ width: 1rem;
655
+ height: 1rem;
656
+ object-fit: contain;
657
+ flex-shrink: 0;
658
+ }
659
+
660
+ .account-avatar,
661
+ .account-menu-avatar {
662
+ display: inline-flex;
663
+ align-items: center;
664
+ justify-content: center;
665
+ flex-shrink: 0;
666
+ overflow: hidden;
667
+ background: color-mix(in srgb, var(--header-bg) 18%, #ded8e7 82%);
668
+ color: var(--header-button-text);
669
+ font-size: 0.75rem;
670
+ font-weight: 600;
671
+ text-transform: uppercase;
672
+ }
673
+
674
+ .account-avatar {
675
+ width: 1.75rem;
676
+ height: 1.75rem;
677
+ border-radius: 999px;
678
+ border: 1.5px solid var(--header-border);
679
+ }
680
+
681
+ .account-menu-avatar {
682
+ width: 2rem;
683
+ height: 2rem;
684
+ border-radius: 0.5rem;
685
+ }
686
+
687
+ .account-avatar img,
688
+ .account-menu-avatar img {
689
+ width: 100%;
690
+ height: 100%;
691
+ object-fit: cover;
692
+ }
693
+
694
+ .account-avatar-img {
695
+ width: 1.75rem;
696
+ height: 1.75rem;
697
+ border-radius: 999px;
698
+ object-fit: cover;
699
+ background-color: var(--header-border);
700
+ }
701
+
702
+ .account-dropdown {
703
+ position: absolute;
704
+ top: calc(100% + 0.9rem);
705
+ right: 0;
706
+ min-width: 15rem;
707
+ padding: 0.5rem;
708
+ background: var(--header-button-bg);
709
+ border: 1px solid var(--header-border);
710
+ border-radius: var(--header-border-radius);
711
+ box-shadow: var(--header-shadow);
712
+ z-index: 10;
713
+ }
714
+
715
+ .account-dropdown[hidden] {
716
+ display: none;
717
+ }
718
+
719
+ .account-menu-list {
720
+ list-style: none;
721
+ margin: 0;
722
+ padding: 0;
723
+ display: flex;
724
+ flex-direction: column;
725
+ gap: 0.25rem;
726
+ }
727
+
728
+ .account-menu-item-link,
729
+ .account-menu-item-button,
730
+ ::slotted([slot='account-menu']) {
731
+ display: flex;
732
+ align-items: center;
733
+ gap: 0.625rem;
734
+ width: 100%;
735
+ box-sizing: border-box;
736
+ color: var(--header-link);
737
+ text-decoration: none;
738
+ background: transparent;
739
+ border: 1px solid transparent;
740
+ border-radius: 10px;
741
+ padding: 0.5rem;
742
+ cursor: pointer;
743
+ font: inherit;
744
+ text-align: left;
745
+ }
746
+
747
+ .account-menu-item-link:hover,
748
+ .account-menu-item-button:hover {
749
+ color: var(--header-link);
750
+ background: var(--header-menu-item-hover);
751
+ border-color: var(--header-menu-item-hover);
752
+ }
753
+
754
+ .account-menu-item-link:active,
755
+ .account-menu-item-button:active {
756
+ color: var(--header-link);
757
+ background: var(--header-menu-item-selected);
758
+ border-color: var(--header-menu-item-selected);
759
+ transform: translateY(1px);
760
+ }
761
+
762
+ .account-switch {
763
+ display: block;
764
+ width: 100%;
765
+ color: var(--header-menu-text);
766
+ text-align: left;
767
+ text-transform: uppercase;
768
+ font-size: 80%;
769
+ }
770
+
771
+ .dropdown-menu-separator {
772
+ display: block;
773
+ width: calc(100% + 1rem);
774
+ margin: 0.5rem -0.5rem;
775
+ border: 0;
776
+ border-top: 1px solid var(--header-border);
777
+ }
778
+
779
+ .account-menu-copy {
780
+ display: flex;
781
+ flex-direction: column;
782
+ min-width: 0;
783
+ }
784
+
785
+ .account-menu-label {
786
+ color: var(--header-button-text);
787
+ overflow: hidden;
788
+ text-overflow: ellipsis;
789
+ white-space: nowrap;
790
+ }
791
+
792
+ .account-menu-webid {
793
+ color: var(--header-button-detail-text);
794
+ font-size: 0.5rem;
795
+ overflow: hidden;
796
+ text-overflow: ellipsis;
797
+ white-space: nowrap;
798
+ }
799
+
800
+ .help-menu-container {
801
+ position: relative;
802
+ display: flex;
803
+ align-items: center;
804
+ background: transparent;
805
+ }
806
+
807
+ .help-menu-trigger {
808
+ display: inline-flex;
809
+ align-items: center;
810
+ justify-content: center;
811
+ padding: 0;
812
+ border: 0;
813
+ background: transparent;
814
+ cursor: pointer;
815
+ }
816
+
817
+ .help-menu-trigger:disabled {
818
+ cursor: default;
819
+ }
820
+
821
+ .help-dropdown {
822
+ position: absolute;
823
+ top: calc(100% + 0.9rem);
824
+ right: 0;
825
+ min-width: 12rem;
826
+ padding: 0.5rem;
827
+ background: var(--header-button-bg);
828
+ border: 1px solid var(--header-border);
829
+ border-radius: var(--header-border-radius);
830
+ box-shadow: var(--header-shadow);
831
+ z-index: 10;
832
+ }
833
+
834
+ .help-dropdown[hidden] {
835
+ display: none;
836
+ }
837
+
838
+ .help-dropdown-content {
839
+ display: flex;
840
+ flex-direction: column;
841
+ gap: 0.25rem;
842
+ }
843
+
844
+ .help-menu-list {
845
+ list-style: none;
846
+ margin: 0;
847
+ padding: 0;
848
+ display: flex;
849
+ flex-direction: column;
850
+ gap: 0.25rem;
851
+ }
852
+
853
+ .help-menu-list a,
854
+ .help-menu-list button,
855
+ ::slotted([slot='help-menu']) {
856
+ display: block;
857
+ width: 100%;
858
+ box-sizing: border-box;
859
+ color: var(--header-link);
860
+ text-decoration: none;
861
+ background: transparent;
862
+ border: 1px solid transparent;
863
+ border-radius: 4px;
864
+ padding: 0.375rem 0.5rem;
865
+ cursor: pointer;
866
+ font: inherit;
867
+ text-align: left;
868
+ }
869
+
870
+ .help-menu-list a:hover,
871
+ .help-menu-list button:hover {
872
+ color: var(--header-link);
873
+ background: var(--header-menu-item-hover);
874
+ border-color: var(--header-menu-item-hover);
875
+ }
876
+
877
+ .help-menu-list a:active,
878
+ .help-menu-list button:active {
879
+ color: var(--header-link);
880
+ background: var(--header-menu-item-selected);
881
+ border-color: var(--header-menu-item-selected);
882
+ transform: translateY(1px);
883
+ }
884
+
885
+ ::slotted(a), ::slotted(button) {
886
+ color: var(--header-link);
887
+ text-decoration: none;
888
+ background: var(--header-button-bg);
889
+ border: 1px solid var(--header-border);
890
+ border-radius: 4px;
891
+ padding: 0.25rem 0.5rem;
892
+ cursor: pointer;
893
+ font: inherit;
894
+ }
895
+
896
+ .help-icon {
897
+ width: 35px;
898
+ height: 35px;
899
+ cursor: pointer;
900
+ }
901
+
902
+ .help-text {
903
+ color: var(--header-text, #ffffff);
904
+ font: inherit;
905
+ }
906
+
907
+ .logout-action-icon {
908
+ width: 16px;
909
+ height: 16px;
910
+ display: inline-block;
911
+ object-fit: contain;
912
+ margin-right: 0.5rem;
913
+ }
914
+ `;constructor(){super(),this.logo="https://solidproject.org/assets/img/solid-emblem.svg",this.helpIcon="",this.layout="desktop",this.theme="light",this.brandLink="#",this.authState="logged-out",this.loginAction={label:"Log In",action:"login"},this.signUpAction={label:"Sign Up",action:"sign-up",url:"https://solidproject.org/get_a_pod"},this.accountMenu=[],this.logoutLabel="Log Out",this.logoutIcon="",this.accountIcon="▼",this.accountAvatar="",this.accountAvatarFallback="",this.loginIcon="",this.signUpIcon="",this.helpMenuList=[],this.accountMenuOpen=!1,this.helpMenuOpen=!1,this.hasSlottedAccountMenu=!1,this.hasSlottedHelpMenu=!1}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.handleDocumentClick),window.addEventListener("keydown",this.handleWindowKeydown)}disconnectedCallback(){document.removeEventListener("click",this.handleDocumentClick),window.removeEventListener("keydown",this.handleWindowKeydown),super.disconnectedCallback()}handleHelpMenuClick(e,t){if(t.preventDefault(),this.helpMenuOpen=!1,this.dispatchEvent(new CustomEvent("help-menu-select",{detail:e,bubbles:!0,composed:!0})),e.url){const t=e.target||"_blank",o="_blank"===t?"noopener,noreferrer":void 0;window.open(e.url,t,o)}}handleAccountMenuClick(e){this.accountMenuOpen=!1,this.dispatchEvent(new CustomEvent("account-menu-select",{detail:e,bubbles:!0,composed:!0}))}handleDocumentClick=e=>{e.composedPath().includes(this)||(this.accountMenuOpen=!1,this.helpMenuOpen=!1)};handleWindowKeydown=e=>{"Escape"===e.key&&(this.accountMenuOpen||this.helpMenuOpen)&&(this.accountMenuOpen=!1,this.helpMenuOpen=!1)};handleAccountSlotChange(e){const t=e.target;this.hasSlottedAccountMenu=t.assignedElements({flatten:!0}).length>0}handleHelpSlotChange(e){const t=e.target;this.hasSlottedHelpMenu=t.assignedElements({flatten:!0}).length>0}toggleAccountMenu(e){e.preventDefault(),this.hasAccountMenuItems()&&(this.helpMenuOpen=!1,this.accountMenuOpen=!this.accountMenuOpen)}toggleHelpMenu(e){e.preventDefault(),this.hasHelpMenuItems()&&(this.accountMenuOpen=!1,this.helpMenuOpen=!this.helpMenuOpen)}hasAccountMenuItems(){return Boolean(this.accountMenu?.length||this.hasSlottedAccountMenu||this.logoutLabel)}hasHelpMenuItems(){return Boolean(this.helpMenuList?.length||this.hasSlottedHelpMenu)}shouldRenderHelpMenu(){return"mobile"!==this.layout&&this.hasHelpMenuItems()}renderLoggedInAvatar(e,t="account-avatar"){const o=Boolean(e),n=o?e:this.accountAvatarFallback||a,i=o?"Profile Avatar":"Default Avatar";return"mobile"===this.layout&&"account-avatar"===t?r.qy`<img class="account-avatar-img" src="${n}" alt="${i}" />`:r.qy`
915
+ <span class="${t}" aria-hidden="true">
916
+ <img src="${n}" alt="${i}" />
917
+ </span>
918
+ `}renderLoggedOutActions(){return r.qy`
919
+ <div class="auth-actions" part="auth-actions">
920
+ <slot name="login-action">
921
+ <solid-ui-login-button
922
+ label="${this.loginAction.label}"
923
+ icon=${(0,s.J)("mobile"!==this.layout?this.loginIcon||this.loginAction.icon:void 0)}
924
+ layout="${this.layout}"
925
+ theme="${this.theme}"
926
+ part="login-action"
927
+ @login-success="${()=>this.handleLoginSuccess()}"
928
+ ></solid-ui-login-button>
929
+ </slot>
930
+ <slot name="sign-up-action">
931
+ <solid-ui-signup-button
932
+ label="${this.signUpAction.label}"
933
+ signup-url="${(0,s.J)(this.signUpAction.url)}"
934
+ layout="${this.layout}"
935
+ .icon=${(0,s.J)("mobile"!==this.layout?this.signUpIcon||this.signUpAction.icon:void 0)}
936
+ theme="${this.theme}"
937
+ part="sign-up-action"
938
+ ></solid-ui-signup-button>
939
+ </slot>
940
+ </div>
941
+ `}handleLoginSuccess(){this.authState="logged-in",this.dispatchEvent(new CustomEvent("auth-action-select",{detail:{role:"login"},bubbles:!0,composed:!0}))}async handleLogout(){this.accountMenuOpen=!1;try{await i.authSession.logout()}catch(e){}this.authState="logged-out",this.dispatchEvent(new CustomEvent("logout-select",{detail:{role:"logout"},bubbles:!0,composed:!0}))}renderAccountMenuItem(e){const t=r.qy`
942
+ ${this.renderLoggedInAvatar(e.avatar,"account-menu-avatar")}
943
+ <span class="account-menu-copy">
944
+ <span class="account-menu-label">${e.label}</span>
945
+ ${e.webid&&"mobile"!==this.layout?r.qy`<span class="account-menu-webid">${e.webid}</span>`:""}
946
+ </span>
947
+ `;return e.url?r.qy`
948
+ <a
949
+ class="account-menu-item-link"
950
+ href="${e.url}"
951
+ @click="${()=>this.handleAccountMenuClick(e)}"
952
+ part="account-menu-item"
953
+ role="menuitem"
954
+ >
955
+ ${t}
956
+ </a>
957
+ `:r.qy`
958
+ <button
959
+ class="account-menu-item-button"
960
+ type="button"
961
+ @click="${()=>this.handleAccountMenuClick(e)}"
962
+ part="account-menu-item"
963
+ role="menuitem"
964
+ >
965
+ ${t}
966
+ </button>
967
+ `}renderLoggedInActions(){return r.qy`
968
+ <div class="account-menu-container" part="account-menu-container">
969
+ <slot name="account-trigger">
970
+ <button
971
+ id="accountMenuTrigger"
972
+ class="account-menu-trigger"
973
+ type="button"
974
+ aria-haspopup="menu"
975
+ aria-expanded="${this.accountMenuOpen?"true":"false"}"
976
+ ?disabled="${!this.hasAccountMenuItems()}"
977
+ @click="${e=>this.toggleAccountMenu(e)}"
978
+ part="account-menu-trigger"
979
+ >
980
+ ${this.renderLoggedInAvatar(this.accountAvatar)}
981
+ ${"mobile"!==this.layout&&this.accountIcon?r.qy`
982
+ <img class="account-menu-trigger-icon" src="${this.accountIcon}" alt="" aria-hidden="true" />`:""}
983
+ </button>
984
+ </slot>
985
+
986
+ <nav
987
+ id="accountMenu"
988
+ class="account-dropdown"
989
+ role="menu"
990
+ ?inert="${!this.accountMenuOpen||!this.hasAccountMenuItems()}"
991
+ ?hidden="${!this.accountMenuOpen||!this.hasAccountMenuItems()}"
992
+ part="account-dropdown"
993
+ >
994
+ <slot name="account-switch" class="account-switch">Switch account</slot>
995
+ <hr class="dropdown-menu-separator" />
996
+ <slot name="account-menu" @slotchange="${e=>this.handleAccountSlotChange(e)}"></slot>
997
+ ${this.accountMenu&&this.accountMenu.length?r.qy`
998
+ <ul class="account-menu-list">
999
+ ${this.accountMenu.map(e=>r.qy`
1000
+ <li>${this.renderAccountMenuItem(e)}</li>
1001
+ `)}
1002
+ </ul>
1003
+ `:""}
1004
+ ${this.logoutLabel?r.qy`
1005
+ <hr class="dropdown-menu-separator" />
1006
+ <button
1007
+ class="account-menu-item-button"
1008
+ type="button"
1009
+ @click="${()=>this.handleLogout()}"
1010
+ part="logout-action"
1011
+ role="menuitem"
1012
+ >
1013
+ ${this.logoutIcon&&"mobile"!==this.layout?r.qy`<img class="logout-action-icon" src="${this.logoutIcon}" alt="" aria-hidden="true" part="logout-action-icon" />`:""}
1014
+ ${this.logoutLabel}
1015
+ </button>
1016
+ `:""}
1017
+ </nav>
1018
+ </div>
1019
+ `}renderUserArea(){return"logged-out"===this.authState?this.renderLoggedOutActions():this.renderLoggedInActions()}firstUpdated(){const e=this.shadowRoot?.getElementById("brandLink");e&&e.classList.toggle("brand-not-displayed","mobile"===this.layout)}updated(e){if(e.has("layout")){const e=this.shadowRoot?.getElementById("brandLink");e&&e.classList.toggle("brand-not-displayed","mobile"===this.layout)}}render(){return r.qy`
1020
+ <div class="headerInner">
1021
+ <slot name="navigation-toggle"></slot>
1022
+ <a
1023
+ id="brandLink"
1024
+ class="brand"
1025
+ href="${this.brandLink}"
1026
+ part="brand"
1027
+ >
1028
+ <img id="brandImg" src="${this.logo}" alt="Logo" part="logo" />
1029
+ </a>
1030
+
1031
+ <div class="menu" part="menu">
1032
+ ${this.renderUserArea()}
1033
+
1034
+ ${this.shouldRenderHelpMenu()?r.qy`
1035
+ <div class="header-menu-separator" />`:""}
1036
+
1037
+ ${this.shouldRenderHelpMenu()?r.qy`
1038
+ <div class="help-menu-container" part="help-menu-container">
1039
+ <button
1040
+ id="helpMenuTrigger"
1041
+ class="help-menu-trigger"
1042
+ type="button"
1043
+ aria-haspopup="menu"
1044
+ aria-expanded="${this.helpMenuOpen?"true":"false"}"
1045
+ ?disabled="${!this.hasHelpMenuItems()}"
1046
+ @click="${e=>this.toggleHelpMenu(e)}"
1047
+ part="help-menu-trigger"
1048
+ >
1049
+ ${this.helpIcon?r.qy`<img id="helpIcon" class="help-icon" src="${this.helpIcon}" alt="Help" part="help-icon" />`:r.qy`<span class="help-text" part="help-text">Help</span>`}
1050
+ </button>
1051
+
1052
+ <nav
1053
+ id="helpMenu"
1054
+ class="help-dropdown"
1055
+ role="menu"
1056
+ ?inert="${!this.helpMenuOpen||!this.hasHelpMenuItems()}"
1057
+ ?hidden="${!this.helpMenuOpen||!this.hasHelpMenuItems()}"
1058
+ part="help-dropdown"
1059
+ >
1060
+ <div class="help-dropdown-content" @click="${()=>{this.helpMenuOpen=!1}}">
1061
+ <slot name="help-menu" @slotchange="${e=>this.handleHelpSlotChange(e)}"></slot>
1062
+ ${this.helpMenuList&&this.helpMenuList.length?r.qy`
1063
+ <ul class="help-menu-list">
1064
+ ${this.helpMenuList.map(e=>r.qy`
1065
+ <li>
1066
+ ${e.url?r.qy`
1067
+ <a
1068
+ href="${e.url}"
1069
+ target="${e.target||"_blank"}"
1070
+ rel="${(0,s.J)("_blank"===(e.target||"_blank")?"noopener noreferrer":void 0)}"
1071
+ @click="${t=>this.handleHelpMenuClick(e,t)}"
1072
+ part="help-menu-item"
1073
+ role="menuitem"
1074
+ >
1075
+ ${e.label}
1076
+ </a>
1077
+ `:r.qy`
1078
+ <button
1079
+ type="button"
1080
+ @click="${t=>this.handleHelpMenuClick(e,t)}"
1081
+ part="help-menu-item"
1082
+ role="menuitem"
1083
+ >
1084
+ ${e.label}
1085
+ </button>
1086
+ `}
1087
+ </li>
1088
+ `)}
1089
+ </ul>
1090
+ `:""}
1091
+ </div>
1092
+ </nav>
1093
+ </div>`:""}
1094
+ </div>
1095
+ </div>
1096
+ `}}},3138(t,o,r){t.exports=(e=>{var t={};return r.d(t,e),t})({authSession:()=>e.authSession,authn:()=>e.authn,getSuggestedIssuers:()=>e.getSuggestedIssuers,offlineTestID:()=>e.offlineTestID,solidLogicSingleton:()=>e.solidLogicSingleton})},3826(e,t,o){o.d(t,{AH:()=>l,Rf:()=>c,sk:()=>d});
1097
+ /**
1098
+ * @license
1099
+ * Copyright 2019 Google LLC
1100
+ * SPDX-License-Identifier: BSD-3-Clause
1101
+ */
1102
+ const r=globalThis,n=r.ShadowRoot&&(void 0===r.ShadyCSS||r.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,i=Symbol(),s=new WeakMap;class a{constructor(e,t,o){if(this._$cssResult$=!0,o!==i)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(n&&void 0===e){const o=void 0!==t&&1===t.length;o&&(e=s.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&s.set(t,e))}return e}toString(){return this.cssText}}const l=(e,...t)=>{const o=1===e.length?e[0]:t.reduce((t,o,r)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(o)+e[r+1],e[0]);return new a(o,e,i)},c=(e,t)=>{if(n)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const o of t){const t=document.createElement("style"),n=r.litNonce;void 0!==n&&t.setAttribute("nonce",n),t.textContent=o.cssText,e.appendChild(t)}},d=n?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const o of e.cssRules)t+=o.cssText;return(e=>new a("string"==typeof e?e:e+"",void 0,i))(t)})(e):e},8760(e,t,o){o.d(t,{AH:()=>r.AH,mN:()=>f});var r=o(3826);
1103
+ /**
1104
+ * @license
1105
+ * Copyright 2017 Google LLC
1106
+ * SPDX-License-Identifier: BSD-3-Clause
1107
+ */const{is:n,defineProperty:i,getOwnPropertyDescriptor:s,getOwnPropertyNames:a,getOwnPropertySymbols:l,getPrototypeOf:c}=Object,d=globalThis,u=d.trustedTypes,h=u?u.emptyScript:"",p=d.reactiveElementPolyfillSupport,g=(e,t)=>e,b={toAttribute(e,t){switch(t){case Boolean:e=e?h:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let o=e;switch(t){case Boolean:o=null!==e;break;case Number:o=null===e?null:Number(e);break;case Object:case Array:try{o=JSON.parse(e)}catch(e){o=null}}return o}},m=(e,t)=>!n(e,t),v={attribute:!0,type:String,converter:b,reflect:!1,useDefault:!1,hasChanged:m};Symbol.metadata??=Symbol("metadata"),d.litPropertyMetadata??=new WeakMap;class f extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=v){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const o=Symbol(),r=this.getPropertyDescriptor(e,o,t);void 0!==r&&i(this.prototype,e,r)}}static getPropertyDescriptor(e,t,o){const{get:r,set:n}=s(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:r,set(t){const i=r?.call(this);n?.call(this,t),this.requestUpdate(e,i,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??v}static _$Ei(){if(this.hasOwnProperty(g("elementProperties")))return;const e=c(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(g("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(g("properties"))){const e=this.properties,t=[...a(e),...l(e)];for(const o of t)this.createProperty(o,e[o])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,o]of t)this.elementProperties.set(e,o)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const o=this._$Eu(e,t);void 0!==o&&this._$Eh.set(o,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const o=new Set(e.flat(1/0).reverse());for(const e of o)t.unshift((0,r.sk)(e))}else void 0!==e&&t.push((0,r.sk)(e));return t}static _$Eu(e,t){const o=t.attribute;return!1===o?void 0:"string"==typeof o?o:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return(0,r.Rf)(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){const o=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,o);if(void 0!==r&&!0===o.reflect){const n=(void 0!==o.converter?.toAttribute?o.converter:b).toAttribute(t,o.type);this._$Em=e,null==n?this.removeAttribute(r):this.setAttribute(r,n),this._$Em=null}}_$AK(e,t){const o=this.constructor,r=o._$Eh.get(e);if(void 0!==r&&this._$Em!==r){const e=o.getPropertyOptions(r),n="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:b;this._$Em=r;const i=n.fromAttribute(t,e.type);this[r]=i??this._$Ej?.get(r)??i,this._$Em=null}}requestUpdate(e,t,o,r=!1,n){if(void 0!==e){const i=this.constructor;if(!1===r&&(n=this[e]),o??=i.getPropertyOptions(e),!((o.hasChanged??m)(n,t)||o.useDefault&&o.reflect&&n===this._$Ej?.get(e)&&!this.hasAttribute(i._$Eu(e,o))))return;this.C(e,t,o)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:r,wrapped:n},i){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,i??t??this[e]),!0!==n||void 0!==i)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),!0===r&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,o]of e){const{wrapped:e}=o,r=this[t];!0!==e||this._$AL.has(t)||void 0===r||this.C(t,void 0,o,r)}}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}}f.elementStyles=[],f.shadowRootOptions={mode:"open"},f[g("elementProperties")]=new Map,f[g("finalized")]=new Map,p?.({ReactiveElement:f}),(d.reactiveElementVersions??=[]).push("2.1.2")},5228(e,t,o){o.d(t,{AH:()=>r.AH,WF:()=>s,qy:()=>n.qy});var r=o(8760),n=o(6752);
1108
+ /**
1109
+ * @license
1110
+ * Copyright 2017 Google LLC
1111
+ * SPDX-License-Identifier: BSD-3-Clause
1112
+ */
1113
+ const i=globalThis;class s extends r.mN{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=(0,n.XX)(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return n.c0}}s._$litElement$=!0,s.finalized=!0,i.litElementHydrateSupport?.({LitElement:s});const a=i.litElementPolyfillSupport;a?.({LitElement:s});(i.litElementVersions??=[]).push("4.2.2")},4765(e,t,o){o.d(t,{J:()=>n});var r=o(6752);
1114
+ /**
1115
+ * @license
1116
+ * Copyright 2018 Google LLC
1117
+ * SPDX-License-Identifier: BSD-3-Clause
1118
+ */const n=e=>e??r.s6},6752(e,t,o){o.d(t,{XX:()=>N,c0:()=>S,qy:()=>k,s6:()=>E});
1119
+ /**
1120
+ * @license
1121
+ * Copyright 2017 Google LLC
1122
+ * SPDX-License-Identifier: BSD-3-Clause
1123
+ */
1124
+ const r=globalThis,n=e=>e,i=r.trustedTypes,s=i?i.createPolicy("lit-html",{createHTML:e=>e}):void 0,a="$lit$",l=`lit$${Math.random().toFixed(9).slice(2)}$`,c="?"+l,d=`<${c}>`,u=document,h=()=>u.createComment(""),p=e=>null===e||"object"!=typeof e&&"function"!=typeof e,g=Array.isArray,b=e=>g(e)||"function"==typeof e?.[Symbol.iterator],m="[ \t\n\f\r]",v=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,f=/-->/g,y=/>/g,x=RegExp(`>|${m}(?:([^\\s"'>=/]+)(${m}*=${m}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),$=/'/g,w=/"/g,_=/^(?:script|style|textarea|title)$/i,A=e=>(t,...o)=>({_$litType$:e,strings:t,values:o}),k=A(1),S=(A(2),A(3),Symbol.for("lit-noChange")),E=Symbol.for("lit-nothing"),M=new WeakMap,I=u.createTreeWalker(u,129);function C(e,t){if(!g(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==s?s.createHTML(t):t}const O=(e,t)=>{const o=e.length-1,r=[];let n,i=2===t?"<svg>":3===t?"<math>":"",s=v;for(let t=0;t<o;t++){const o=e[t];let c,u,h=-1,p=0;for(;p<o.length&&(s.lastIndex=p,u=s.exec(o),null!==u);)p=s.lastIndex,s===v?"!--"===u[1]?s=f:void 0!==u[1]?s=y:void 0!==u[2]?(_.test(u[2])&&(n=RegExp("</"+u[2],"g")),s=x):void 0!==u[3]&&(s=x):s===x?">"===u[0]?(s=n??v,h=-1):void 0===u[1]?h=-2:(h=s.lastIndex-u[2].length,c=u[1],s=void 0===u[3]?x:'"'===u[3]?w:$):s===w||s===$?s=x:s===f||s===y?s=v:(s=x,n=void 0);const g=s===x&&e[t+1].startsWith("/>")?" ":"";i+=s===v?o+d:h>=0?(r.push(c),o.slice(0,h)+a+o.slice(h)+l+g):o+l+(-2===h?t:g)}return[C(e,i+(e[o]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),r]};class U{constructor({strings:e,_$litType$:t},o){let r;this.parts=[];let n=0,s=0;const d=e.length-1,u=this.parts,[p,g]=O(e,t);if(this.el=U.createElement(p,o),I.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(r=I.nextNode())&&u.length<d;){if(1===r.nodeType){if(r.hasAttributes())for(const e of r.getAttributeNames())if(e.endsWith(a)){const t=g[s++],o=r.getAttribute(e).split(l),i=/([.?@])?(.*)/.exec(t);u.push({type:1,index:n,name:i[2],strings:o,ctor:"."===i[1]?R:"?"===i[1]?T:"@"===i[1]?q:B}),r.removeAttribute(e)}else e.startsWith(l)&&(u.push({type:6,index:n}),r.removeAttribute(e));if(_.test(r.tagName)){const e=r.textContent.split(l),t=e.length-1;if(t>0){r.textContent=i?i.emptyScript:"";for(let o=0;o<t;o++)r.append(e[o],h()),I.nextNode(),u.push({type:2,index:++n});r.append(e[t],h())}}}else if(8===r.nodeType)if(r.data===c)u.push({type:2,index:n});else{let e=-1;for(;-1!==(e=r.data.indexOf(l,e+1));)u.push({type:7,index:n}),e+=l.length-1}n++}}static createElement(e,t){const o=u.createElement("template");return o.innerHTML=e,o}}function H(e,t,o=e,r){if(t===S)return t;let n=void 0!==r?o._$Co?.[r]:o._$Cl;const i=p(t)?void 0:t._$litDirective$;return n?.constructor!==i&&(n?._$AO?.(!1),void 0===i?n=void 0:(n=new i(e),n._$AT(e,o,r)),void 0!==r?(o._$Co??=[])[r]=n:o._$Cl=n),void 0!==n&&(t=H(e,n._$AS(e,t.values),n,r)),t}class P{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:o}=this._$AD,r=(e?.creationScope??u).importNode(t,!0);I.currentNode=r;let n=I.nextNode(),i=0,s=0,a=o[0];for(;void 0!==a;){if(i===a.index){let t;2===a.type?t=new L(n,n.nextSibling,this,e):1===a.type?t=new a.ctor(n,a.name,a.strings,this,e):6===a.type&&(t=new j(n,this,e)),this._$AV.push(t),a=o[++s]}i!==a?.index&&(n=I.nextNode(),i++)}return I.currentNode=u,r}p(e){let t=0;for(const o of this._$AV)void 0!==o&&(void 0!==o.strings?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}}class L{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,r){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=H(this,e,t),p(e)?e===E||null==e||""===e?(this._$AH!==E&&this._$AR(),this._$AH=E):e!==this._$AH&&e!==S&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):b(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==E&&p(this._$AH)?this._$AA.nextSibling.data=e:this.T(u.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:o}=e,r="number"==typeof o?this._$AC(e):(void 0===o.el&&(o.el=U.createElement(C(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===r)this._$AH.p(t);else{const e=new P(r,this),o=e.u(this.options);e.p(t),this.T(o),this._$AH=e}}_$AC(e){let t=M.get(e.strings);return void 0===t&&M.set(e.strings,t=new U(e)),t}k(e){g(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let o,r=0;for(const n of e)r===t.length?t.push(o=new L(this.O(h()),this.O(h()),this,this.options)):o=t[r],o._$AI(n),r++;r<t.length&&(this._$AR(o&&o._$AB.nextSibling,r),t.length=r)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){const t=n(e).nextSibling;n(e).remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}}class B{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,r,n){this.type=1,this._$AH=E,this._$AN=void 0,this.element=e,this.name=t,this._$AM=r,this.options=n,o.length>2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=E}_$AI(e,t=this,o,r){const n=this.strings;let i=!1;if(void 0===n)e=H(this,e,t,0),i=!p(e)||e!==this._$AH&&e!==S,i&&(this._$AH=e);else{const r=e;let s,a;for(e=n[0],s=0;s<n.length-1;s++)a=H(this,r[o+s],t,s),a===S&&(a=this._$AH[s]),i||=!p(a)||a!==this._$AH[s],a===E?e=E:e!==E&&(e+=(a??"")+n[s+1]),this._$AH[s]=a}i&&!r&&this.j(e)}j(e){e===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class R extends B{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===E?void 0:e}}class T extends B{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==E)}}class q extends B{constructor(e,t,o,r,n){super(e,t,o,r,n),this.type=5}_$AI(e,t=this){if((e=H(this,e,t,0)??E)===S)return;const o=this._$AH,r=e===E&&o!==E||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,n=e!==E&&(o===E||r);r&&this.element.removeEventListener(this.name,this,o),n&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class j{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){H(this,e)}}const D=r.litHtmlPolyfillSupport;D?.(U,L),(r.litHtmlVersions??=[]).push("3.3.2");const N=(e,t,o)=>{const r=o?.renderBefore??t;let n=r._$litPart$;if(void 0===n){const e=o?.renderBefore??null;r._$litPart$=n=new L(t.insertBefore(h(),e),e,void 0,o??{})}return n._$AI(e),n}},1413(e,t,o){o.d(t,{J:()=>r.J});var r=o(4765)},6161(e,t,o){o.d(t,{AH:()=>r.AH,WF:()=>r.WF,qy:()=>r.qy});o(8760),o(6752);var r=o(5228)}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={id:e,loaded:!1,exports:{}};return t[e](i,i.exports,r),i.loaded=!0,i.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};r.d(n,{Y:()=>i.Y});var i=r(1166);const s="solid-ui-header";customElements.get(s)||customElements.define(s,i.Y);const a=n.Y;export{a as Header};
1125
+ //# sourceMappingURL=index.esm.min.js.map