solid-ui 3.1.3-7 → 3.1.3-8

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 (178) hide show
  1. package/dist/_virtual/~icons/app/solid-emblem.cjs.js +3 -0
  2. package/dist/_virtual/~icons/app/solid-emblem.cjs.js.map +1 -0
  3. package/dist/_virtual/~icons/app/solid-emblem.esm.js +11 -0
  4. package/dist/_virtual/~icons/app/solid-emblem.esm.js.map +1 -0
  5. package/dist/breakpoints.css +1 -0
  6. package/dist/breakpoints.css.d.ts +1 -0
  7. package/dist/chunks/{account-BZ2rYQhV.js → account-jSZP2tZ5.js} +72 -56
  8. package/dist/chunks/account-jSZP2tZ5.js.map +1 -0
  9. package/dist/chunks/{auth-RHyQ2iIl.js → auth-CZOEEeJ8.js} +15 -15
  10. package/dist/chunks/{auth-RHyQ2iIl.js.map → auth-CZOEEeJ8.js.map} +1 -1
  11. package/dist/chunks/{avatar-Jx8xm2Op.js → avatar-BugsRJZg.js} +2 -2
  12. package/dist/chunks/{avatar-Jx8xm2Op.js.map → avatar-BugsRJZg.js.map} +1 -1
  13. package/dist/chunks/{footer-D64T6XLO.js → footer-kVa_uMeQ.js} +3 -3
  14. package/dist/chunks/{footer-D64T6XLO.js.map → footer-kVa_uMeQ.js.map} +1 -1
  15. package/dist/chunks/{guard-CjUBGVDk.js → guard-Cml6dHTv.js} +2 -2
  16. package/dist/chunks/{guard-CjUBGVDk.js.map → guard-Cml6dHTv.js.map} +1 -1
  17. package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js → headerFooterHelpers-BiZ6X10e.js} +15 -15
  18. package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js.map → headerFooterHelpers-BiZ6X10e.js.map} +1 -1
  19. package/dist/chunks/{jsonld-DRZuoyoU.js → jsonld-Cd-ZhJmZ.js} +2 -2
  20. package/dist/chunks/{jsonld-DRZuoyoU.js.map → jsonld-Cd-ZhJmZ.js.map} +1 -1
  21. package/dist/chunks/{login-button-DPeMi00d.js → login-button-pe1-DVNZ.js} +2 -2
  22. package/dist/chunks/{login-button-DPeMi00d.js.map → login-button-pe1-DVNZ.js.map} +1 -1
  23. package/dist/chunks/{logout-button-CbiLE7jO.js → logout-button-C5dtQiBB.js} +2 -2
  24. package/dist/chunks/{logout-button-CbiLE7jO.js.map → logout-button-C5dtQiBB.js.map} +1 -1
  25. package/dist/chunks/{menu-item-Ck0l-uEI.js → menu-item-CWg-eS4V.js} +7 -5
  26. package/dist/chunks/menu-item-CWg-eS4V.js.map +1 -0
  27. package/dist/chunks/{provider-C4eSzopG.js → provider-DRxSExO6.js} +2 -2
  28. package/dist/chunks/{provider-C4eSzopG.js.map → provider-DRxSExO6.js.map} +1 -1
  29. package/dist/chunks/{signup-button-BfIxbpwa.js → signup-button-QvYELqb6.js} +2 -2
  30. package/dist/chunks/{signup-button-BfIxbpwa.js.map → signup-button-QvYELqb6.js.map} +1 -1
  31. package/dist/chunks/solid-emblem-BDzhMTjL.js +185 -0
  32. package/dist/chunks/solid-emblem-BDzhMTjL.js.map +1 -0
  33. package/dist/chunks/{solid-logic.esm-T70qfHAr.js → solid-logic.esm-BhVcNu8u.js} +7 -28
  34. package/dist/chunks/{solid-logic.esm-T70qfHAr.js.map → solid-logic.esm-BhVcNu8u.js.map} +1 -1
  35. package/dist/chunks/{src-Bx4GAnWq.js → src-DYvSns7X.js} +2375 -2351
  36. package/dist/chunks/src-DYvSns7X.js.map +1 -0
  37. package/dist/components/account/Account.cjs.js +7 -2
  38. package/dist/components/account/Account.cjs.js.map +1 -1
  39. package/dist/components/account/Account.d.ts +8 -1
  40. package/dist/components/account/Account.d.ts.map +1 -1
  41. package/dist/components/account/Account.esm.js +64 -48
  42. package/dist/components/account/Account.esm.js.map +1 -1
  43. package/dist/components/account/Account.stories.d.ts +3 -8
  44. package/dist/components/account/Account.stories.d.ts.map +1 -1
  45. package/dist/components/account/index.cjs.js.map +1 -1
  46. package/dist/components/account/index.d.ts +2 -2
  47. package/dist/components/account/index.d.ts.map +1 -1
  48. package/dist/components/account/index.esm.js.map +1 -1
  49. package/dist/components/account.js +1 -1
  50. package/dist/components/avatar.js +1 -1
  51. package/dist/components/footer.js +1 -1
  52. package/dist/components/guard.js +1 -1
  53. package/dist/components/index.cjs.js +1 -1
  54. package/dist/components/index.esm.js +2 -2
  55. package/dist/components/login-button.js +1 -1
  56. package/dist/components/login-modal.js +1 -1
  57. package/dist/components/logout-button.js +1 -1
  58. package/dist/components/menu-item/MenuItem.cjs.js +5 -3
  59. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  60. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  61. package/dist/components/menu-item/MenuItem.esm.js +5 -3
  62. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  63. package/dist/components/menu-item/MenuItem.styles.cjs.js +1 -1
  64. package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
  65. package/dist/components/menu-item/MenuItem.styles.esm.js +1 -1
  66. package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
  67. package/dist/components/menu-item.js +1 -1
  68. package/dist/components/provider.js +1 -1
  69. package/dist/components/signup-button.js +1 -1
  70. package/dist/components/solid-emblem/SolidEmblem.cjs.js +2 -0
  71. package/dist/components/solid-emblem/SolidEmblem.cjs.js.map +1 -0
  72. package/dist/components/solid-emblem/SolidEmblem.d.ts +6 -0
  73. package/dist/components/solid-emblem/SolidEmblem.d.ts.map +1 -0
  74. package/dist/components/solid-emblem/SolidEmblem.esm.js +178 -0
  75. package/dist/components/solid-emblem/SolidEmblem.esm.js.map +1 -0
  76. package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js +2 -0
  77. package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js.map +1 -0
  78. package/dist/components/solid-emblem/SolidEmblem.styles.esm.js +7 -0
  79. package/dist/components/solid-emblem/SolidEmblem.styles.esm.js.map +1 -0
  80. package/dist/components/solid-emblem/index.cjs.js +2 -0
  81. package/dist/components/solid-emblem/index.cjs.js.map +1 -0
  82. package/dist/components/solid-emblem/index.d.ts +4 -0
  83. package/dist/components/solid-emblem/index.d.ts.map +1 -0
  84. package/dist/components/solid-emblem/index.esm.js +7 -0
  85. package/dist/components/solid-emblem/index.esm.js.map +1 -0
  86. package/dist/components/solid-emblem.js +2 -0
  87. package/dist/components.js +11 -11
  88. package/dist/index.js +4 -5
  89. package/dist/lib/forms/rdfHelper.d.ts +4 -0
  90. package/dist/lib/forms/rdfHelper.d.ts.map +1 -0
  91. package/dist/loader.js +4 -5
  92. package/dist/solid-ui.js +78 -1169
  93. package/dist/solid-ui.min.js +78 -1169
  94. package/dist/solid-ui.min.js.map +1 -1
  95. package/dist/theme.css +1 -1
  96. package/package.json +7 -2
  97. package/dist/chunks/account-BZ2rYQhV.js.map +0 -1
  98. package/dist/chunks/header-COBaJDdB.js +0 -1486
  99. package/dist/chunks/header-COBaJDdB.js.map +0 -1
  100. package/dist/chunks/iconBase-DJ0zbNSL.js +0 -31
  101. package/dist/chunks/iconBase-DJ0zbNSL.js.map +0 -1
  102. package/dist/chunks/menu-item-Ck0l-uEI.js.map +0 -1
  103. package/dist/chunks/src-Bx4GAnWq.js.map +0 -1
  104. package/dist/components/header/index.cjs.js +0 -1
  105. package/dist/components/header/index.d.ts +0 -2
  106. package/dist/components/header/index.d.ts.map +0 -1
  107. package/dist/components/header/index.esm.js +0 -3
  108. package/dist/components/header.js +0 -2
  109. package/dist/lib/features.cjs.js +0 -2
  110. package/dist/lib/features.cjs.js.map +0 -1
  111. package/dist/lib/features.d.ts +0 -8
  112. package/dist/lib/features.d.ts.map +0 -1
  113. package/dist/lib/features.esm.js +0 -6
  114. package/dist/lib/features.esm.js.map +0 -1
  115. package/dist/v2/components/actions/button/Button.d.ts +0 -97
  116. package/dist/v2/components/actions/button/Button.d.ts.map +0 -1
  117. package/dist/v2/components/actions/button/Button.test.d.ts +0 -1
  118. package/dist/v2/components/actions/button/Button.test.d.ts.map +0 -1
  119. package/dist/v2/components/actions/button/index.d.ts +0 -8
  120. package/dist/v2/components/actions/button/index.d.ts.map +0 -1
  121. package/dist/v2/components/auth/loginButton/LoginButton.cjs.js +0 -414
  122. package/dist/v2/components/auth/loginButton/LoginButton.cjs.js.map +0 -1
  123. package/dist/v2/components/auth/loginButton/LoginButton.esm.js +0 -519
  124. package/dist/v2/components/auth/loginButton/LoginButton.esm.js.map +0 -1
  125. package/dist/v2/components/auth/loginButton/downArrow.cjs.js +0 -9
  126. package/dist/v2/components/auth/loginButton/downArrow.cjs.js.map +0 -1
  127. package/dist/v2/components/auth/loginButton/downArrow.esm.js +0 -14
  128. package/dist/v2/components/auth/loginButton/downArrow.esm.js.map +0 -1
  129. package/dist/v2/components/auth/loginButton/index.cjs.js +0 -2
  130. package/dist/v2/components/auth/loginButton/index.cjs.js.map +0 -1
  131. package/dist/v2/components/auth/loginButton/index.esm.js +0 -8
  132. package/dist/v2/components/auth/loginButton/index.esm.js.map +0 -1
  133. package/dist/v2/components/auth/signupButton/SignupButton.cjs.js +0 -59
  134. package/dist/v2/components/auth/signupButton/SignupButton.cjs.js.map +0 -1
  135. package/dist/v2/components/auth/signupButton/SignupButton.esm.js +0 -98
  136. package/dist/v2/components/auth/signupButton/SignupButton.esm.js.map +0 -1
  137. package/dist/v2/components/auth/signupButton/index.cjs.js +0 -2
  138. package/dist/v2/components/auth/signupButton/index.cjs.js.map +0 -1
  139. package/dist/v2/components/auth/signupButton/index.esm.js +0 -8
  140. package/dist/v2/components/auth/signupButton/index.esm.js.map +0 -1
  141. package/dist/v2/components/forms/combobox/Combobox.d.ts +0 -82
  142. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +0 -1
  143. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +0 -1
  144. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +0 -1
  145. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +0 -6
  146. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +0 -1
  147. package/dist/v2/components/forms/combobox/index.d.ts +0 -3
  148. package/dist/v2/components/forms/combobox/index.d.ts.map +0 -1
  149. package/dist/v2/components/forms/select/Select.d.ts +0 -68
  150. package/dist/v2/components/forms/select/Select.d.ts.map +0 -1
  151. package/dist/v2/components/forms/select/Select.test.d.ts +0 -1
  152. package/dist/v2/components/forms/select/Select.test.d.ts.map +0 -1
  153. package/dist/v2/components/forms/select/index.d.ts +0 -3
  154. package/dist/v2/components/forms/select/index.d.ts.map +0 -1
  155. package/dist/v2/components/forms/shared/downArrow.d.ts +0 -2
  156. package/dist/v2/components/forms/shared/downArrow.d.ts.map +0 -1
  157. package/dist/v2/components/forms/shared/keyboard.d.ts +0 -7
  158. package/dist/v2/components/forms/shared/keyboard.d.ts.map +0 -1
  159. package/dist/v2/components/forms/shared/listboxStyles.d.ts +0 -2
  160. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +0 -1
  161. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +0 -11
  162. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +0 -1
  163. package/dist/v2/components/forms/shared/optionTypes.d.ts +0 -6
  164. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +0 -1
  165. package/dist/v2/components/layout/header/Header.cjs.js +0 -625
  166. package/dist/v2/components/layout/header/Header.cjs.js.map +0 -1
  167. package/dist/v2/components/layout/header/Header.d.ts +0 -160
  168. package/dist/v2/components/layout/header/Header.d.ts.map +0 -1
  169. package/dist/v2/components/layout/header/Header.esm.js +0 -873
  170. package/dist/v2/components/layout/header/Header.esm.js.map +0 -1
  171. package/dist/v2/components/layout/header/header.test.d.ts +0 -1
  172. package/dist/v2/components/layout/header/header.test.d.ts.map +0 -1
  173. package/dist/v2/components/layout/header/index.cjs.js +0 -2
  174. package/dist/v2/components/layout/header/index.cjs.js.map +0 -1
  175. package/dist/v2/components/layout/header/index.d.ts +0 -4
  176. package/dist/v2/components/layout/header/index.d.ts.map +0 -1
  177. package/dist/v2/components/layout/header/index.esm.js +0 -8
  178. package/dist/v2/components/layout/header/index.esm.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ var e=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:`open`}).innerHTML=`<style>:host { display: inline-flex; }</style><svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 322"><g fill="none"><path fill="#fff" d="m87.973 282.353-60.732-105.33a31.6 31.6 0 0 1 0-31.538L87.973 40.233c5.646-9.784 16.08-15.795 27.321-15.795H236.68c11.266 0 21.727 6.011 27.321 15.795l60.758 105.304a31.6 31.6 0 0 1 0 31.537l-60.732 105.33c-5.646 9.784-16.08 15.795-27.321 15.795H115.372a31.85 31.85 0 0 1-27.4-15.846"/><path fill="#7c4dff" d="m93.151 275.197-57.115-99.06c-5.308-9.185-5.308-20.504 0-29.663l57.115-99.086a29.74 29.74 0 0 1 25.734-14.857h114.23c10.59 0 20.426 5.646 25.734 14.857l57.167 99.034c5.308 9.185 5.308 20.504 0 29.663l-57.141 99.138a29.74 29.74 0 0 1-25.734 14.858H118.937a29.79 29.79 0 0 1-25.786-14.884"/><path fill="#f7f7f7" d="M118.469 142.233h117.534a2.65 2.65 0 0 0 2.654-2.654v-22.04c0-14.65-11.891-26.54-26.54-26.54h-70.568c-20.53-.026-37.157 16.6-37.157 37.13-.026 7.833 6.27 14.104 14.077 14.104m11.527 97.368h70.229c21.207 0 38.432-17.225 38.432-38.432 0-7.078-5.724-12.828-12.828-12.828H106.942a2.537 2.537 0 0 0-2.55 2.55v23.054c-.026 14.181 11.475 25.656 25.604 25.656"/><path fill="#f7f7f7" d="m109.596 139.319 87.663 87.662c5.802 5.803 15.196 5.803 20.998 0l15.196-15.196c5.803-5.802 5.803-15.196 0-20.998l-87.637-87.663c-5.802-5.802-15.196-5.802-20.998 0l-15.196 15.196c-5.855 5.803-5.855 15.222-.026 20.999"/><path fill="#444" d="m198.69 228.464-51.495-40.123h11.397zm-54.33-126.797 40.565 40.566h13.765z" opacity=".3"/></g><script/></svg>
2
+ `}};customElements.get(`icon-app-solid-emblem`)||customElements.define(`icon-app-solid-emblem`,e),exports.default=e;
3
+ //# sourceMappingURL=solid-emblem.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-emblem.cjs.js","names":[],"sources":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ //#region ~icons/app/solid-emblem
2
+ var e = class extends HTMLElement {
3
+ constructor() {
4
+ super(), this.attachShadow({ mode: "open" }).innerHTML = "<style>:host { display: inline-flex; }</style><svg width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 352 322\"><g fill=\"none\"><path fill=\"#fff\" d=\"m87.973 282.353-60.732-105.33a31.6 31.6 0 0 1 0-31.538L87.973 40.233c5.646-9.784 16.08-15.795 27.321-15.795H236.68c11.266 0 21.727 6.011 27.321 15.795l60.758 105.304a31.6 31.6 0 0 1 0 31.537l-60.732 105.33c-5.646 9.784-16.08 15.795-27.321 15.795H115.372a31.85 31.85 0 0 1-27.4-15.846\"/><path fill=\"#7c4dff\" d=\"m93.151 275.197-57.115-99.06c-5.308-9.185-5.308-20.504 0-29.663l57.115-99.086a29.74 29.74 0 0 1 25.734-14.857h114.23c10.59 0 20.426 5.646 25.734 14.857l57.167 99.034c5.308 9.185 5.308 20.504 0 29.663l-57.141 99.138a29.74 29.74 0 0 1-25.734 14.858H118.937a29.79 29.79 0 0 1-25.786-14.884\"/><path fill=\"#f7f7f7\" d=\"M118.469 142.233h117.534a2.65 2.65 0 0 0 2.654-2.654v-22.04c0-14.65-11.891-26.54-26.54-26.54h-70.568c-20.53-.026-37.157 16.6-37.157 37.13-.026 7.833 6.27 14.104 14.077 14.104m11.527 97.368h70.229c21.207 0 38.432-17.225 38.432-38.432 0-7.078-5.724-12.828-12.828-12.828H106.942a2.537 2.537 0 0 0-2.55 2.55v23.054c-.026 14.181 11.475 25.656 25.604 25.656\"/><path fill=\"#f7f7f7\" d=\"m109.596 139.319 87.663 87.662c5.802 5.803 15.196 5.803 20.998 0l15.196-15.196c5.803-5.802 5.803-15.196 0-20.998l-87.637-87.663c-5.802-5.802-15.196-5.802-20.998 0l-15.196 15.196c-5.855 5.803-5.855 15.222-.026 20.999\"/><path fill=\"#444\" d=\"m198.69 228.464-51.495-40.123h11.397zm-54.33-126.797 40.565 40.566h13.765z\" opacity=\".3\"/></g><script/></svg>\n";
5
+ }
6
+ };
7
+ customElements.get("icon-app-solid-emblem") || customElements.define("icon-app-solid-emblem", e);
8
+ //#endregion
9
+ export { e as default };
10
+
11
+ //# sourceMappingURL=solid-emblem.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solid-emblem.esm.js","names":[],"sources":[],"mappings":""}
@@ -0,0 +1 @@
1
+ @custom-media --solid-ui-mobile (max-width: 48rem); /* 768px */
@@ -0,0 +1 @@
1
+ export {}
@@ -1,66 +1,67 @@
1
- import { c as e, s as t } from "./auth-RHyQ2iIl.js";
1
+ import { c as e, s as t } from "./auth-CZOEEeJ8.js";
2
2
  import { r as n } from "./dialog-BAzrHJ8w.js";
3
3
  import { a as r, i } from "./components-C1LEhsaK.js";
4
- import { c as a, i as o } from "./lit-C4H1jI4q.js";
4
+ import { c as a, i as o, n as s } from "./lit-C4H1jI4q.js";
5
+ import { r as c } from "./decorators-BiCkPd_3.js";
5
6
  import "./chevron-down-ujxRg3MD.js";
6
7
  import "./button-0s0lZdxm.js";
7
- import "./avatar-Jx8xm2Op.js";
8
- import "./login-button-DPeMi00d.js";
9
- import "./logout-button-CbiLE7jO.js";
10
- import "./menu-item-Ck0l-uEI.js";
8
+ import "./avatar-BugsRJZg.js";
9
+ import "./login-button-pe1-DVNZ.js";
10
+ import "./logout-button-C5dtQiBB.js";
11
+ import "./menu-item-CWg-eS4V.js";
11
12
  import "./menu-DNcuV-1J.js";
12
- import "./signup-button-BfIxbpwa.js";
13
+ import "./signup-button-QvYELqb6.js";
13
14
  //#region ~icons/lucide/log-in
14
- var s = class extends HTMLElement {
15
+ var l = class extends HTMLElement {
15
16
  constructor() {
16
17
  super(), this.attachShadow({ mode: "open" }).innerHTML = "<style>:host { display: inline-flex; }</style><svg viewBox=\"0 0 24 24\" width=\"100%\" height=\"100%\" ><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m10 17l5-5l-5-5m5 5H3m12-9h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"/></svg>";
17
18
  }
18
19
  };
19
- customElements.get("icon-lucide-log-in") || customElements.define("icon-lucide-log-in", s);
20
+ customElements.get("icon-lucide-log-in") || customElements.define("icon-lucide-log-in", l);
20
21
  //#endregion
21
22
  //#region ~icons/lucide/log-out
22
- var c = class extends HTMLElement {
23
+ var u = class extends HTMLElement {
23
24
  constructor() {
24
25
  super(), this.attachShadow({ mode: "open" }).innerHTML = "<style>:host { display: inline-flex; }</style><svg viewBox=\"0 0 24 24\" width=\"100%\" height=\"100%\" ><path fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 17l5-5l-5-5m5 5H9m0 9H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"/></svg>";
25
26
  }
26
27
  };
27
- customElements.get("icon-lucide-log-out") || customElements.define("icon-lucide-log-out", c);
28
+ customElements.get("icon-lucide-log-out") || customElements.define("icon-lucide-log-out", u);
28
29
  //#endregion
29
30
  //#region ~icons/lucide/user
30
- var l = class extends HTMLElement {
31
+ var d = class extends HTMLElement {
31
32
  constructor() {
32
33
  super(), this.attachShadow({ mode: "open" }).innerHTML = "<style>:host { display: inline-flex; }</style><svg viewBox=\"0 0 24 24\" width=\"100%\" height=\"100%\" ><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"/><circle cx=\"12\" cy=\"7\" r=\"4\"/></g></svg>";
33
34
  }
34
35
  };
35
- customElements.get("icon-lucide-user") || customElements.define("icon-lucide-user", l);
36
+ customElements.get("icon-lucide-user") || customElements.define("icon-lucide-user", d);
36
37
  //#endregion
37
38
  //#region src/components/account/Account.styles.css
38
- var u = a`:host{flex-direction:row;gap:10px;display:inline-flex}:host([data-state-loggedIn]){--padding:4px;--border-width:1px;--image-size:1.875rem;& button{background-color:var(--solid-ui-color-body-grey);padding:var(--padding);border-radius:calc((var(--image-size) + 2 * var(--padding) + 2 * var(--border-width)) / 2);color:var(--solid-ui-color-white);justify-content:center;align-items:center;gap:5px;display:inline-flex;& solid-ui-avatar{width:var(--image-size);height:var(--image-size);border:var(--border-width) solid var(--solid-ui-color-white);border-radius:50%}& icon-lucide-chevron-down{width:16px;height:16px}}}`, d, f, p, m, h, g, _, v, y, b;
39
- function x(e, t, n) {
40
- S(e, t), t.set(e, n);
39
+ var f = a`:host{flex-direction:row;gap:10px;display:inline-flex}:host([data-state-loggedIn]){--padding:4px;--border-width:1px;--image-size:1.875rem;& button{background-color:var(--solid-ui-color-body-grey);padding:var(--padding);border-radius:calc((var(--image-size) + 2 * var(--padding) + 2 * var(--border-width)) / 2);color:var(--solid-ui-color-white);justify-content:center;align-items:center;gap:5px;display:inline-flex;& solid-ui-avatar{width:var(--image-size);height:var(--image-size);border:var(--border-width) solid var(--solid-ui-color-white);border-radius:50%}& icon-lucide-chevron-down{width:16px;height:16px}}}`, p, m, h, g, _, v, y, b, x, S, C, w, T;
40
+ function E(e, t, n) {
41
+ D(e, t), t.set(e, n);
41
42
  }
42
- function S(e, t) {
43
+ function D(e, t) {
43
44
  if (t.has(e)) throw TypeError("Cannot initialize the same private elements twice on an object");
44
45
  }
45
- function C(e, t, n) {
46
- return e.set(T(e, t), n), n;
46
+ function O(e, t, n) {
47
+ return e.set(A(e, t), n), n;
47
48
  }
48
- function w(e, t) {
49
- return e.get(T(e, t));
49
+ function k(e, t) {
50
+ return e.get(A(e, t));
50
51
  }
51
- function T(e, t, n) {
52
+ function A(e, t, n) {
52
53
  if (typeof e == "function" ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
53
54
  throw TypeError("Private element is not present on this object");
54
55
  }
55
- function E(e, t, n) {
56
- return (t = O(t)) in e ? Object.defineProperty(e, t, {
56
+ function j(e, t, n) {
57
+ return (t = N(t)) in e ? Object.defineProperty(e, t, {
57
58
  value: n,
58
59
  enumerable: !0,
59
60
  configurable: !0,
60
61
  writable: !0
61
62
  }) : e[t] = n, e;
62
63
  }
63
- function D(e, t, n, r, i, a) {
64
+ function M(e, t, n, r, i, a) {
64
65
  function o(e, t, n) {
65
66
  return function(r, i) {
66
67
  return n && n(r), e[t].call(r, i);
@@ -83,13 +84,13 @@ function D(e, t, n, r, i, a) {
83
84
  n || Array.isArray(_) || (_ = [_]);
84
85
  var b = {}, x = [], S = i === 3 ? "get" : i === 4 || p ? "set" : "value";
85
86
  d ? (f || p ? b = {
86
- get: A(function() {
87
+ get: F(function() {
87
88
  return v(this);
88
89
  }, r, "get"),
89
90
  set: function(e) {
90
91
  t[4](this, e);
91
92
  }
92
- } : b[S] = v, f || A(b[S], r, i === 2 ? "" : S)) : f || (b = Object.getOwnPropertyDescriptor(e, r));
93
+ } : b[S] = v, f || F(b[S], r, i === 2 ? "" : S)) : f || (b = Object.getOwnPropertyDescriptor(e, r));
93
94
  }
94
95
  for (var C = e, w = _.length - 1; w >= 0; w -= n ? 2 : 1) {
95
96
  var T = _[w], E = n ? _[w - 1] : void 0, D = {}, O = {
@@ -111,18 +112,18 @@ function D(e, t, n, r, i, a) {
111
112
  try {
112
113
  if (y) (g = c(T.call(E, C, O), "class decorators", "return")) && (C = g);
113
114
  else {
114
- var k, j;
115
+ var k, A;
115
116
  O.static = u, O.private = d, d ? i === 2 ? k = function(e) {
116
117
  return h(e), b.value;
117
- } : (i < 4 && (k = o(b, "get", h)), i !== 3 && (j = o(b, "set", h))) : (k = function(e) {
118
+ } : (i < 4 && (k = o(b, "get", h)), i !== 3 && (A = o(b, "set", h))) : (k = function(e) {
118
119
  return e[r];
119
- }, (i < 2 || i === 4) && (j = function(e, t) {
120
+ }, (i < 2 || i === 4) && (A = function(e, t) {
120
121
  e[r] = t;
121
122
  }));
122
- var M = O.access = { has: d ? m.bind() : function(e) {
123
+ var j = O.access = { has: d ? m.bind() : function(e) {
123
124
  return r in e;
124
125
  } };
125
- if (k && (M.get = k), j && (M.set = j), C = T.call(E, p ? {
126
+ if (k && (j.get = k), A && (j.set = A), C = T.call(E, p ? {
126
127
  get: b.get,
127
128
  set: b.set
128
129
  } : b[S], O), p) {
@@ -149,7 +150,7 @@ function D(e, t, n, r, i, a) {
149
150
  if (arguments.length >= 6) var d = a[Symbol.metadata || Symbol.for("Symbol.metadata")];
150
151
  var f = Object.create(d ?? null), p = function(e, t, n, r) {
151
152
  var i, a, o = [], c = function(t) {
152
- return j(t) === e;
153
+ return I(t) === e;
153
154
  }, u = /* @__PURE__ */ new Map();
154
155
  function d(e) {
155
156
  e && o.push(s.bind(null, e));
@@ -163,7 +164,7 @@ function D(e, t, n, r, i, a) {
163
164
  if (!0 === x || x === 3 && m !== 4 || x === 4 && m !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h);
164
165
  u.set(b, !(m > 2) || m);
165
166
  }
166
- l(v ? e : e.prototype, p, _, g ? "#" + h : O(h), m, r, v ? a ||= [] : i ||= [], o, v, g, y, m === 1, v && g ? c : n);
167
+ l(v ? e : e.prototype, p, _, g ? "#" + h : N(h), m, r, v ? a ||= [] : i ||= [], o, v, g, y, m === 1, v && g ? c : n);
167
168
  }
168
169
  }
169
170
  return d(i), d(a), o;
@@ -176,11 +177,11 @@ function D(e, t, n, r, i, a) {
176
177
  }
177
178
  };
178
179
  }
179
- function O(e) {
180
- var t = k(e, "string");
180
+ function N(e) {
181
+ var t = P(e, "string");
181
182
  return typeof t == "symbol" ? t : t + "";
182
183
  }
183
- function k(e, t) {
184
+ function P(e, t) {
184
185
  if (typeof e != "object" || !e) return e;
185
186
  var n = e[Symbol.toPrimitive];
186
187
  if (n !== void 0) {
@@ -190,7 +191,7 @@ function k(e, t) {
190
191
  }
191
192
  return (t === "string" ? String : Number)(e);
192
193
  }
193
- function A(e, t, n) {
194
+ function F(e, t, n) {
194
195
  typeof t == "symbol" && (t = (t = t.description) ? "[" + t + "]" : "");
195
196
  try {
196
197
  Object.defineProperty(e, "name", {
@@ -200,27 +201,33 @@ function A(e, t, n) {
200
201
  } catch {}
201
202
  return e;
202
203
  }
203
- function j(e) {
204
+ function I(e) {
204
205
  if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (e === null ? "null" : typeof e));
205
206
  return e;
206
207
  }
207
- function M(e) {
208
+ function L(e) {
208
209
  return e;
209
210
  }
210
- g = [r("solid-ui-account")];
211
- var N;
212
- new (y = (p = /*#__PURE__*/ new WeakMap(), b = (_ = n({
211
+ y = [r("solid-ui-account")];
212
+ var R;
213
+ new (w = (h = /*#__PURE__*/ new WeakMap(), g = /*#__PURE__*/ new WeakMap(), T = (b = c({ type: Array }), S = n({
213
214
  context: e,
214
215
  subscribe: !0
215
- }), "auth"), f = class extends i {
216
+ }), "menuItems"), m = class extends i {
216
217
  constructor(...e) {
217
- super(...e), x(this, p, (m(this), v(this, t))), E(this, "unsubscribeSessionUpdated", void 0);
218
+ super(...e), E(this, h, (_(this), x(this, []))), E(this, g, C(this, t)), j(this, "unsubscribeSessionUpdated", void 0);
219
+ }
220
+ get [T]() {
221
+ return k(h, this);
218
222
  }
219
- get [b]() {
220
- return w(p, this);
223
+ set menuItems(e) {
224
+ O(h, this, e);
225
+ }
226
+ get auth() {
227
+ return k(g, this);
221
228
  }
222
229
  set auth(e) {
223
- C(p, this, e);
230
+ O(g, this, e);
224
231
  }
225
232
  connectedCallback() {
226
233
  super.connectedCallback(), this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate());
@@ -236,6 +243,11 @@ new (y = (p = /*#__PURE__*/ new WeakMap(), b = (_ = n({
236
243
  <icon-lucide-chevron-down slot="right-icon"></icon-lucide-chevron-down>
237
244
  </button>
238
245
 
246
+ ${this.menuItems.map((e) => o`
247
+ <solid-ui-menu-item .href=${e.href ?? s} @solid-ui-select=${() => e.onSelected?.()}>
248
+ ${e.label}
249
+ </solid-ui-menu-item>
250
+ `)}
239
251
  <solid-ui-logout-button>
240
252
  <solid-ui-menu-item slot="trigger">
241
253
  <icon-lucide-log-out slot="left-icon"></icon-lucide-log-out>
@@ -258,19 +270,23 @@ new (y = (p = /*#__PURE__*/ new WeakMap(), b = (_ = n({
258
270
  </solid-ui-signup-button>
259
271
  `;
260
272
  }
261
- }, {e: [v, m], c: [N, h]} = D(f, [[
262
- _,
273
+ }, {e: [x, C, _], c: [R, v]} = M(m, [[
274
+ b,
275
+ 1,
276
+ "menuItems"
277
+ ], [
278
+ S,
263
279
  1,
264
280
  "auth"
265
- ]], g, 0, void 0, i), f), d = class extends M {
281
+ ]], y, 0, void 0, i), m), p = class extends L {
266
282
  constructor() {
267
- super(N), E(this, "styles", u), E(this, "states", { loggedIn: (e) => !!e.auth.account }), h();
283
+ super(R), j(this, "styles", f), j(this, "states", { loggedIn: (e) => !!e.auth.account }), v();
268
284
  }
269
- }, E(d, y, void 0), d)();
285
+ }, j(p, w, void 0), p)();
270
286
  //#endregion
271
287
  //#region src/components/account/index.ts
272
- var P = N;
288
+ var z = R;
273
289
  //#endregion
274
- export { N as n, P as t };
290
+ export { R as n, z as t };
275
291
 
276
- //# sourceMappingURL=account-BZ2rYQhV.js.map
292
+ //# sourceMappingURL=account-jSZP2tZ5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-jSZP2tZ5.js","names":["consume","html","nothing","property","customElement","WebComponent","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Account","_Account2","_A","WeakMap","_B","_ref","_menuItemsDecs","type","Array","_authDecs","context","subscribe","_Account3","Account","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_menuItems","_init_auth","_defineProperty","_classPrivateFieldGet","menuItems","v","_classPrivateFieldSet","auth","connectedCallback","unsubscribeSessionUpdated","onSessionUpdated","requestUpdate","disconnectedCallback","render","account","map","menuItem","href","onSelected","label","e","c","_initClass","_applyDecs","_Class","_identity","loggedIn","component","default","Account"],"sources":["../../src/components/account/Account.styles.css","../../src/components/account/Account.ts","../../src/components/account/index.ts"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: row;\n gap: 10px;\n}\n\n:host([data-state-loggedIn]) {\n --padding: 4px;\n --border-width: 1px;\n --image-size: 1.875rem; /* 30px */\n\n button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n background-color: var(--solid-ui-color-body-grey);\n padding: var(--padding);\n border-radius: calc((var(--image-size) + 2 * var(--padding) + 2 * var(--border-width)) / 2);\n color: var(--solid-ui-color-white);\n\n solid-ui-avatar {\n width: var(--image-size);\n height: var(--image-size);\n border: var(--border-width) solid var(--solid-ui-color-white);\n border-radius: 50%;\n }\n\n icon-lucide-chevron-down {\n width: 16px;\n height: 16px;\n }\n }\n}\n","import { consume } from '@lit/context'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { customElement, WebComponent } from '@/lib/components'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '@/components/avatar'\nimport '@/components/button'\nimport '@/components/login-button'\nimport '@/components/logout-button'\nimport '@/components/menu-item'\nimport '@/components/menu'\nimport '@/components/signup-button'\nimport '~icons/lucide/chevron-down'\nimport '~icons/lucide/log-in'\nimport '~icons/lucide/log-out'\nimport '~icons/lucide/user'\n\nimport styles from './Account.styles.css'\n\nexport interface AccountMenuItem {\n label: string | TemplateResult\n href?: string\n onSelected?(): void\n}\n\n@customElement('solid-ui-account')\nexport default class Account extends WebComponent {\n static styles = styles\n static states = {\n loggedIn: (component: Account) => !!component.auth.account,\n }\n\n @property({ type: Array })\n accessor menuItems: AccountMenuItem[] = []\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n private unsubscribeSessionUpdated?: () => void\n\n connectedCallback () {\n super.connectedCallback()\n\n this.unsubscribeSessionUpdated = this.auth.onSessionUpdated(() => this.requestUpdate())\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.unsubscribeSessionUpdated?.()\n }\n\n protected render () {\n if (!this.auth.account) {\n return html`\n <solid-ui-login-button>\n <solid-ui-button slot=\"trigger\">\n <icon-lucide-user slot=\"left-icon\"></icon-lucide-user>\n Log In\n </solid-ui-button>\n </solid-ui-login-button>\n <solid-ui-signup-button>\n <solid-ui-button slot=\"trigger\" variant=\"outline\">\n <icon-lucide-log-in slot=\"left-icon\"></icon-lucide-log-in>\n Sign Up\n </solid-ui-button>\n </solid-ui-signup-button>\n `\n }\n\n return html`\n <solid-ui-menu placement=\"bottom-end\" distance=\"5\">\n <button type=\"button\" slot=\"trigger\">\n <solid-ui-avatar></solid-ui-avatar>\n <icon-lucide-chevron-down slot=\"right-icon\"></icon-lucide-chevron-down>\n </button>\n\n ${this.menuItems.map(menuItem => html`\n <solid-ui-menu-item .href=${menuItem.href ?? nothing} @solid-ui-select=${() => menuItem.onSelected?.()}>\n ${menuItem.label}\n </solid-ui-menu-item>\n `)}\n <solid-ui-logout-button>\n <solid-ui-menu-item slot=\"trigger\">\n <icon-lucide-log-out slot=\"left-icon\"></icon-lucide-log-out>\n Sign out\n </solid-ui-menu-item>\n </solid-ui-logout-button>\n </solid-ui-menu>\n `\n }\n}\n","import Account, { type AccountMenuItem } from './Account'\n\nexport { Account, type AccountMenuItem }\nexport default Account\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkByCS,IAAA,CAQxCL,EAAc,kBAAkB,CAAC;AAAA,IAAAM;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,KAAAC,IAO/Bb,EAAS,EAAEc,MAAMC,MAAM,CAAC,GAACC,IAGzBnB,EAAQ;CAAEoB,SAASd;CAAae,WAAW;AAAK,CAAC,GAAC,cAAAC,IAVrD,cACqCjB,EAAa;CAAAmB,YAAA,GAAAC,GAAA;EAUSK,AAVT,MAAA,GAAAL,CAAA,GAAAC,EAAA,MAAAd,IAAAe,EAAA,IAAA,GAAAC,EAAA,MAOR,CAAA,CAAE,EAAA,GAAAF,EAAA,MAAAZ,GAAAe,EAAA,MAGLtB,CAAoB,CAAA,GAAAuB,EAAA,MAAA,6BAAA,KAAA,CAAA;CAAA;CAAA,KAAAf,KAAA;EAAA,OAAAgB,EAAAnB,GAAA,IAAA;CAAA;CAAA,IAHhDoB,UAASC,GAAA;EAAAC,EAAAtB,GAAA,MAAAqB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAAJqB,KAAIF,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAIrBG,oBAAqB;EAGnB,AAFA,MAAMA,kBAAkB,GAExB,KAAKC,4BAA4B,KAAKF,KAAKG,uBAAuB,KAAKC,cAAc,CAAC;CACxF;CAEAC,uBAAwB;EAGtB,AAFA,MAAMA,qBAAqB,GAE3B,KAAKH,4BAA4B;CACnC;CAEUI,SAAU;EAkBlB,OAjBK,KAAKN,KAAKO,UAiBRzC,CAAI;;;;;;;cAOD,KAAK+B,UAAUW,KAAIC,MAAY3C,CAAI;4CACL2C,EAASC,QAAQ3C,EAAO,0BAA2B0C,EAASE,aAAa,EAAC;sBAChGF,EAASG,MAAK;;aAEvB,EAAC;;;;;;;;QA3BD9C,CAAI;;;;;;;;;;;;;;CAoCf;AACF,GAAC,CAAA+C,GAAA,CAAApB,GAAAC,GAAAF,IAAAsB,GAAA,CAAAvC,GAAAwC,MAAAC,EAAA7B,GAAA,CAAA;CAAAN;CAAA;CAAA;AAAA,GAAA;CAAAG;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GAjEoCJ,CAAY,GAAAiB,IAAA8B,IAAA,cAAAC,EAAA;CAAA7B,cAAA;EAAA,MAAAd,CAAA,GAAAoB,EAAA,MAAA,UAC/BtB,CAAM,GAAAsB,EAAA,MAAA,UACN,EACdwB,WAAWC,MAAuB,CAAC,CAACA,EAAUpB,KAAKO,QACrD,CAAC,GAAAQ,EAAA;CAAA;AAAA,GAAApB,EAAAsB,GAAAzC,GAAA,KAAA,CAAA,GAAAyC,GAAA;;;AC5BH,IAAA,IAAeK"}
@@ -1,4 +1,4 @@
1
- import { g as e, m as t, p as n, u as r } from "./solid-logic.esm-T70qfHAr.js";
1
+ import { f as e, h as t, p as n, u as r } from "./solid-logic.esm-BhVcNu8u.js";
2
2
  import { r as i } from "./context-uE5jJlS0.js";
3
3
  import { r as a } from "./dialog-BAzrHJ8w.js";
4
4
  import { a as o, i as s, o as c } from "./components-C1LEhsaK.js";
@@ -369,8 +369,8 @@ new (G = (T = /*#__PURE__*/ new WeakMap(), E = /*#__PURE__*/ new WeakMap(), D =
369
369
  //#endregion
370
370
  //#region src/components/login-modal/index.ts
371
371
  var se = $, ce = "https://solidproject.org/get_a_pod";
372
- function le(t) {
373
- let r = n.store, i = r.sym(t), a = r.any(i, e.sioc("avatar")) || r.any(i, e.foaf("img")) || r.any(i, e.vcard("logo")) || r.any(i, e.vcard("hasPhoto")) || r.any(i, e.vcard("photo")) || r.any(i, e.foaf("depiction"));
372
+ function le(n) {
373
+ let r = e.store, i = r.sym(n), a = r.any(i, t.sioc("avatar")) || r.any(i, t.foaf("img")) || r.any(i, t.vcard("logo")) || r.any(i, t.vcard("hasPhoto")) || r.any(i, t.vcard("photo")) || r.any(i, t.foaf("depiction"));
374
374
  return a ? a.value : void 0;
375
375
  }
376
376
  var ue = class {
@@ -378,36 +378,36 @@ var ue = class {
378
378
  this.signupUrl = e;
379
379
  }
380
380
  get account() {
381
- let e = t.webId ?? t.info?.webId;
382
- return !(t.isActive ?? t.info?.isLoggedIn ?? !!e) || !e ? null : new g(e, le(e));
381
+ let e = n.webId ?? n.info?.webId;
382
+ return !(n.isActive ?? n.info?.isLoggedIn ?? !!e) || !e ? null : new g(e, le(e));
383
383
  }
384
- async login(e) {
385
- if (!e) {
384
+ async login(t) {
385
+ if (!t) {
386
386
  x(u`<solid-ui-login-modal></solid-ui-login-modal>`);
387
387
  return;
388
388
  }
389
- n.store.updater.flagAuthorizationMetadata();
389
+ e.store.updater.flagAuthorizationMetadata();
390
390
  let r = new URL(window.location.href).hash;
391
- r && window.localStorage.setItem("preLoginRedirectHash", r), window.localStorage.setItem("loginIssuer", e);
391
+ r && window.localStorage.setItem("preLoginRedirectHash", r), window.localStorage.setItem("loginIssuer", t);
392
392
  let i = new URL(window.location.href);
393
- i.hash = "", await t.login(e, i.href);
393
+ i.hash = "", await n.login(t, i.href);
394
394
  }
395
395
  async signup() {
396
396
  window.open(this.signupUrl, "_blank", "noopener,noreferrer");
397
397
  }
398
398
  async logout() {
399
- await t.logout();
399
+ await n.logout();
400
400
  }
401
401
  onSessionUpdated(e) {
402
- let n = t, r = () => {
402
+ let t = n, r = () => {
403
403
  e();
404
404
  };
405
- return typeof n.addEventListener == "function" ? n.addEventListener("sessionStateChange", r) : (t.events.on("login", e), t.events.on("logout", e), t.events.on("sessionRestore", e)), () => {
406
- typeof n.removeEventListener == "function" ? n.removeEventListener("sessionStateChange", r) : (t.events.off("login", e), t.events.off("logout", e), t.events.off("sessionRestore", e));
405
+ return typeof t.addEventListener == "function" ? t.addEventListener("sessionStateChange", r) : (n.events.on("login", e), n.events.on("logout", e), n.events.on("sessionRestore", e)), () => {
406
+ typeof t.removeEventListener == "function" ? t.removeEventListener("sessionStateChange", r) : (n.events.off("login", e), n.events.off("logout", e), n.events.off("sessionRestore", e));
407
407
  };
408
408
  }
409
409
  };
410
410
  //#endregion
411
411
  export { x as a, y as c, $ as i, _ as l, ue as n, b as o, se as r, v as s, ce as t, g as u };
412
412
 
413
- //# sourceMappingURL=auth-RHyQ2iIl.js.map
413
+ //# sourceMappingURL=auth-CZOEEeJ8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-RHyQ2iIl.js","names":["Account","webId","avatarUrl","constructor","NoopAuth","account","login","Error","signup","logout","onSessionUpdated","undefined","createContext","NoopAuth","DEFAULT_AUTH_CONTEXT","authContext","Symbol","generateId","Dialog","id","template","element","config","_resolveElement","constructor","Promise","resolve","setElement","closed","data","onClose","ShowDialogEvent","Dialog","showDialog","template","config","dialog","document","dispatchEvent","element","customElement","WebComponent","html","nothing","consume","property","query","state","authContext","DEFAULT_AUTH_CONTEXT","getSuggestedIssuers","styles","_classDecs","_LoginModal","_LoginModal2","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_issuerUrlDecs","type","String","reflect","_issuerInputValueDecs","_failedDecs","_submittingDecs","_authDecs","context","subscribe","_dialogDecs","_LoginModal3","LoginModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_issuerUrl","_init_issuerInputValue","_init_failed","_init_submitting","_init_auth","_init_dialog","_classPrivateFieldGet","issuerUrl","v","_classPrivateFieldSet","issuerInputValue","failed","submitting","auth","dialog","connectedCallback","localStorage","getItem","render","suggestedIssuers","onSubmit","onIssuerInputChange","map","issuer","uri","name","close","e","target","value","preventDefault","login","error","console","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","LoginModal","authSession","solidLogicSingleton","Account","showDialog","html","ns","DEFAULT_SIGNUP_URL","findAccountImage","webId","store","me","sym","image","any","sioc","foaf","vcard","value","undefined","SolidAuth","constructor","signupUrl","account","info","isActive","isLoggedIn","Boolean","avatarUrl","login","loginUrl","updater","flagAuthorizationMetadata","preLoginRedirectHash","URL","window","location","href","hash","localStorage","setItem","locationUrl","signup","open","logout","onSessionUpdated","callback","sessionEventTarget","listener","addEventListener","events","on","removeEventListener","off"],"sources":["../../src/lib/auth/Account.ts","../../src/lib/auth/NoopAuth.ts","../../src/lib/auth/context.ts","../../src/lib/dialogs/Dialog.ts","../../src/lib/dialogs/helpers.ts","../../src/components/login-modal/LoginModal.styles.css","../../src/components/login-modal/LoginModal.ts","../../src/components/login-modal/index.ts","../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n","import { AuthContext } from './context'\nimport Account from './Account'\n\nexport default class NoopAuth implements AuthContext {\n get account (): Account | null {\n return null\n }\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n","import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n","import { TemplateResult } from 'lit'\nimport { generateId } from '@/lib/components'\n\nexport interface DialogConfig {\n onClose?(data?: unknown): void\n}\n\nexport default class Dialog {\n public readonly id: string\n public readonly template: TemplateResult\n public readonly element: Promise<HTMLElement>\n public readonly config: DialogConfig\n private _resolveElement!: (element: HTMLElement) => void\n\n constructor (template: TemplateResult, config: DialogConfig = {}) {\n this.id = generateId()\n this.template = template\n this.config = config\n this.element = new Promise(resolve => {\n this._resolveElement = resolve\n })\n }\n\n setElement (element: HTMLElement) {\n this._resolveElement(element)\n }\n\n closed (data?: unknown) {\n this.config.onClose?.(data)\n }\n}\n","import { TemplateResult } from 'lit'\nimport { ShowDialogEvent } from './events/show-dialog'\nimport Dialog, { DialogConfig } from './Dialog'\n\nexport function showDialog<T extends HTMLElement = HTMLElement> (template: TemplateResult, config: DialogConfig = {}): Promise<T> {\n const dialog = new Dialog(template, config)\n\n document.dispatchEvent(new ShowDialogEvent(dialog))\n\n return dialog.element as Promise<T>\n}\n",".error-message {\n color: var(--solid-ui-color-error);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 500;\n text-align: center;\n width: 100%;\n}\n\nsolid-ui-combobox {\n width: 100%;\n}\n\nsolid-ui-button {\n flex: 1;\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { consume } from '@lit/context'\nimport { property, query, state } from 'lit/decorators.js'\nimport { AuthContext, authContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\nimport { getSuggestedIssuers } from 'solid-logic'\nimport type Dialog from '@/components/dialog'\nimport type Combobox from '@/components/combobox'\n\nimport '~icons/lucide/chevron-down'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './LoginModal.styles.css'\n\n@customElement('solid-ui-login-modal')\nexport default class LoginModal extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor issuerUrl = ''\n\n @state()\n private accessor issuerInputValue = ''\n\n @state()\n private accessor failed: boolean = false\n\n @state()\n private accessor submitting: boolean = false\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n @query('solid-ui-dialog')\n private accessor dialog: Dialog | null = null\n\n connectedCallback () {\n super.connectedCallback()\n\n this.issuerInputValue = (typeof localStorage !== 'undefined' && localStorage.getItem('loginIssuer')) || this.issuerUrl || ''\n }\n\n protected render () {\n const suggestedIssuers = getSuggestedIssuers()\n\n return html`\n <solid-ui-dialog title=\"Select an identity provider\">\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n <solid-ui-combobox label=\"Solid Identity Provider\" .value=${this.issuerInputValue} @input=${this.onIssuerInputChange}>\n ${suggestedIssuers.map(issuer => html`<solid-ui-combobox-option value=\"${issuer.uri}\">${issuer.name}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n\n ${this.failed ? html`<p class=\"error-message\">Something went wrong</p>` : nothing}\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <solid-ui-button\n variant=\"secondary\"\n @click=\"${() => this.dialog?.close()}\"\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.issuerInputValue || this.submitting}\n ?loading=${this.submitting}\n type=\"submit\"\n >\n Login\n </solid-ui-button>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private onIssuerInputChange (e: Event) {\n this.issuerInputValue = (e.target as Combobox).value\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n this.failed = false\n\n if (!this.issuerInputValue) {\n return\n }\n\n this.submitting = true\n\n try {\n await this.auth.login(this.issuerInputValue)\n } catch (error) {\n console.error(error)\n\n this.failed = true\n } finally {\n this.submitting = false\n }\n }\n}\n","import LoginModal from './LoginModal'\n\nexport { LoginModal }\nexport default LoginModal\n","import { authSession, solidLogicSingleton } from 'solid-logic'\nimport Account from '@/lib/auth/Account'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\nimport { html } from 'lit'\nimport ns from '@/lib/ns'\n\nimport '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(html`<solid-ui-login-modal></solid-ui-login-modal>`)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', callback)\n authSession.events.on('logout', callback)\n authSession.events.on('sessionRestore', callback)\n }\n\n return () => {\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', callback)\n authSession.events.off('logout', callback)\n authSession.events.off('sessionRestore', callback)\n }\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"auth-CZOEEeJ8.js","names":["Account","webId","avatarUrl","constructor","NoopAuth","account","login","Error","signup","logout","onSessionUpdated","undefined","createContext","NoopAuth","DEFAULT_AUTH_CONTEXT","authContext","Symbol","generateId","Dialog","id","template","element","config","_resolveElement","constructor","Promise","resolve","setElement","closed","data","onClose","ShowDialogEvent","Dialog","showDialog","template","config","dialog","document","dispatchEvent","element","customElement","WebComponent","html","nothing","consume","property","query","state","authContext","DEFAULT_AUTH_CONTEXT","getSuggestedIssuers","styles","_classDecs","_LoginModal","_LoginModal2","_A","WeakMap","_B","_C","_D","_E","_F","_ref","_issuerUrlDecs","type","String","reflect","_issuerInputValueDecs","_failedDecs","_submittingDecs","_authDecs","context","subscribe","_dialogDecs","_LoginModal3","LoginModal","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_issuerUrl","_init_issuerInputValue","_init_failed","_init_submitting","_init_auth","_init_dialog","_classPrivateFieldGet","issuerUrl","v","_classPrivateFieldSet","issuerInputValue","failed","submitting","auth","dialog","connectedCallback","localStorage","getItem","render","suggestedIssuers","onSubmit","onIssuerInputChange","map","issuer","uri","name","close","e","target","value","preventDefault","login","error","console","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","LoginModal","authSession","solidLogicSingleton","Account","showDialog","html","ns","DEFAULT_SIGNUP_URL","findAccountImage","webId","store","me","sym","image","any","sioc","foaf","vcard","value","undefined","SolidAuth","constructor","signupUrl","account","info","isActive","isLoggedIn","Boolean","avatarUrl","login","loginUrl","updater","flagAuthorizationMetadata","preLoginRedirectHash","URL","window","location","href","hash","localStorage","setItem","locationUrl","signup","open","logout","onSessionUpdated","callback","sessionEventTarget","listener","addEventListener","events","on","removeEventListener","off"],"sources":["../../src/lib/auth/Account.ts","../../src/lib/auth/NoopAuth.ts","../../src/lib/auth/context.ts","../../src/lib/dialogs/Dialog.ts","../../src/lib/dialogs/helpers.ts","../../src/components/login-modal/LoginModal.styles.css","../../src/components/login-modal/LoginModal.ts","../../src/components/login-modal/index.ts","../../src/lib/auth/SolidAuth.ts"],"sourcesContent":["export default class Account {\n public readonly webId: string\n public readonly avatarUrl?: string\n\n constructor (webId: string, avatarUrl?: string) {\n this.webId = webId\n this.avatarUrl = avatarUrl\n }\n}\n","import { AuthContext } from './context'\nimport Account from './Account'\n\nexport default class NoopAuth implements AuthContext {\n get account (): Account | null {\n return null\n }\n\n async login () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async signup () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n async logout () {\n throw new Error('Can\\'t use auth, missing context provider')\n }\n\n onSessionUpdated () {\n return () => undefined\n }\n}\n","import { createContext } from '@lit/context'\nimport NoopAuth from './NoopAuth'\nimport Account from './Account'\n\nexport interface AuthContext {\n account: Account | null;\n login(loginUrl?: string): Promise<void>;\n signup(): Promise<void>;\n logout(): Promise<void>;\n onSessionUpdated(callback: () => unknown): () => void;\n}\n\nexport const DEFAULT_AUTH_CONTEXT = new NoopAuth()\nexport const authContext = createContext<AuthContext>(Symbol('auth'))\n","import { TemplateResult } from 'lit'\nimport { generateId } from '@/lib/components'\n\nexport interface DialogConfig {\n onClose?(data?: unknown): void\n}\n\nexport default class Dialog {\n public readonly id: string\n public readonly template: TemplateResult\n public readonly element: Promise<HTMLElement>\n public readonly config: DialogConfig\n private _resolveElement!: (element: HTMLElement) => void\n\n constructor (template: TemplateResult, config: DialogConfig = {}) {\n this.id = generateId()\n this.template = template\n this.config = config\n this.element = new Promise(resolve => {\n this._resolveElement = resolve\n })\n }\n\n setElement (element: HTMLElement) {\n this._resolveElement(element)\n }\n\n closed (data?: unknown) {\n this.config.onClose?.(data)\n }\n}\n","import { TemplateResult } from 'lit'\nimport { ShowDialogEvent } from './events/show-dialog'\nimport Dialog, { DialogConfig } from './Dialog'\n\nexport function showDialog<T extends HTMLElement = HTMLElement> (template: TemplateResult, config: DialogConfig = {}): Promise<T> {\n const dialog = new Dialog(template, config)\n\n document.dispatchEvent(new ShowDialogEvent(dialog))\n\n return dialog.element as Promise<T>\n}\n",".error-message {\n color: var(--solid-ui-color-error);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 500;\n text-align: center;\n width: 100%;\n}\n\nsolid-ui-combobox {\n width: 100%;\n}\n\nsolid-ui-button {\n flex: 1;\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { consume } from '@lit/context'\nimport { property, query, state } from 'lit/decorators.js'\nimport { AuthContext, authContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\nimport { getSuggestedIssuers } from 'solid-logic'\nimport type Dialog from '@/components/dialog'\nimport type Combobox from '@/components/combobox'\n\nimport '~icons/lucide/chevron-down'\nimport '@/components/dialog'\nimport '@/components/dialog-content'\nimport '@/components/dialog-footer'\nimport '@/components/button'\nimport '@/components/combobox'\nimport '@/components/combobox-option'\n\nimport styles from './LoginModal.styles.css'\n\n@customElement('solid-ui-login-modal')\nexport default class LoginModal extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor issuerUrl = ''\n\n @state()\n private accessor issuerInputValue = ''\n\n @state()\n private accessor failed: boolean = false\n\n @state()\n private accessor submitting: boolean = false\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n @query('solid-ui-dialog')\n private accessor dialog: Dialog | null = null\n\n connectedCallback () {\n super.connectedCallback()\n\n this.issuerInputValue = (typeof localStorage !== 'undefined' && localStorage.getItem('loginIssuer')) || this.issuerUrl || ''\n }\n\n protected render () {\n const suggestedIssuers = getSuggestedIssuers()\n\n return html`\n <solid-ui-dialog title=\"Select an identity provider\">\n <form @submit=${this.onSubmit}>\n <solid-ui-dialog-content>\n <solid-ui-combobox label=\"Solid Identity Provider\" .value=${this.issuerInputValue} @input=${this.onIssuerInputChange}>\n ${suggestedIssuers.map(issuer => html`<solid-ui-combobox-option value=\"${issuer.uri}\">${issuer.name}</solid-ui-combobox-option>`)}\n </solid-ui-combobox>\n\n ${this.failed ? html`<p class=\"error-message\">Something went wrong</p>` : nothing}\n </solid-ui-dialog-content>\n\n <solid-ui-dialog-footer>\n <solid-ui-button\n variant=\"secondary\"\n @click=\"${() => this.dialog?.close()}\"\n >\n Cancel\n </solid-ui-button>\n <solid-ui-button\n ?disabled=${!this.issuerInputValue || this.submitting}\n ?loading=${this.submitting}\n type=\"submit\"\n >\n Login\n </solid-ui-button>\n </solid-ui-dialog-footer>\n </form>\n </solid-ui-dialog>\n `\n }\n\n private onIssuerInputChange (e: Event) {\n this.issuerInputValue = (e.target as Combobox).value\n }\n\n private async onSubmit (e: Event) {\n e.preventDefault()\n\n this.failed = false\n\n if (!this.issuerInputValue) {\n return\n }\n\n this.submitting = true\n\n try {\n await this.auth.login(this.issuerInputValue)\n } catch (error) {\n console.error(error)\n\n this.failed = true\n } finally {\n this.submitting = false\n }\n }\n}\n","import LoginModal from './LoginModal'\n\nexport { LoginModal }\nexport default LoginModal\n","import { authSession, solidLogicSingleton } from 'solid-logic'\nimport Account from '@/lib/auth/Account'\nimport { AuthContext } from '@/lib/auth'\nimport { showDialog } from '@/lib/dialogs'\nimport { html } from 'lit'\nimport ns from '@/lib/ns'\n\nimport '@/components/login-modal'\n\nexport const DEFAULT_SIGNUP_URL = 'https://solidproject.org/get_a_pod'\n\nfunction findAccountImage (webId: string): string | undefined {\n const store = solidLogicSingleton.store\n const me = store.sym(webId)\n const image =\n store.any(me, ns.sioc('avatar')) ||\n store.any(me, ns.foaf('img')) ||\n store.any(me, ns.vcard('logo')) ||\n store.any(me, ns.vcard('hasPhoto')) ||\n store.any(me, ns.vcard('photo')) ||\n store.any(me, ns.foaf('depiction'))\n\n return image ? (image as any).value : undefined\n}\n\nexport default class SolidAuth implements AuthContext {\n constructor (public signupUrl: string = DEFAULT_SIGNUP_URL) {}\n\n get account (): Account | null {\n const webId: string | undefined = authSession.webId ?? authSession.info?.webId\n const isActive: boolean = authSession.isActive ?? authSession.info?.isLoggedIn ?? Boolean(webId)\n if (!isActive || !webId) {\n return null\n }\n\n const avatarUrl = findAccountImage(webId)\n\n return new Account(webId, avatarUrl)\n }\n\n async login (loginUrl?: string) {\n if (!loginUrl) {\n showDialog(html`<solid-ui-login-modal></solid-ui-login-modal>`)\n\n return\n }\n\n // clear authorization metadata from store\n ;(solidLogicSingleton.store.updater as any).flagAuthorizationMetadata()\n\n const preLoginRedirectHash = new URL(window.location.href).hash\n if (preLoginRedirectHash) {\n window.localStorage.setItem('preLoginRedirectHash', preLoginRedirectHash)\n }\n window.localStorage.setItem('loginIssuer', loginUrl)\n\n const locationUrl = new URL(window.location.href)\n\n locationUrl.hash = ''\n\n await authSession.login(loginUrl, locationUrl.href)\n }\n\n async signup () {\n window.open(this.signupUrl, '_blank', 'noopener,noreferrer')\n }\n\n async logout () {\n await authSession.logout()\n }\n\n onSessionUpdated (callback: () => unknown) {\n const sessionEventTarget = authSession as unknown as EventTarget\n const listener = () => {\n callback()\n }\n if (typeof sessionEventTarget.addEventListener === 'function') {\n sessionEventTarget.addEventListener('sessionStateChange', listener)\n } else {\n authSession.events.on('login', callback)\n authSession.events.on('logout', callback)\n authSession.events.on('sessionRestore', callback)\n }\n\n return () => {\n if (typeof sessionEventTarget.removeEventListener === 'function') {\n sessionEventTarget.removeEventListener('sessionStateChange', listener)\n } else {\n authSession.events.off('login', callback)\n authSession.events.off('logout', callback)\n authSession.events.off('sessionRestore', callback)\n }\n }\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { c as e, s as t } from "./auth-RHyQ2iIl.js";
1
+ import { c as e, s as t } from "./auth-CZOEEeJ8.js";
2
2
  import { r as n } from "./dialog-BAzrHJ8w.js";
3
3
  import { a as r, i } from "./components-C1LEhsaK.js";
4
4
  import { c as a, i as o } from "./lit-C4H1jI4q.js";
@@ -220,4 +220,4 @@ var M = j;
220
220
  //#endregion
221
221
  export { j as n, M as t };
222
222
 
223
- //# sourceMappingURL=avatar-Jx8xm2Op.js.map
223
+ //# sourceMappingURL=avatar-BugsRJZg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-Jx8xm2Op.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","fallback","component","default","Avatar"],"sources":["../../src/components/avatar/Avatar.styles.css","../../src/components/avatar/Avatar.ts","../../src/components/avatar/index.ts"],"sourcesContent":[":host {\n --size: 150px;\n\n display: inline-flex;\n overflow: hidden;\n width: var(--size);\n height: var(--size);\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n:host([data-state-fallback]) {\n background: var(--solid-ui-color-gray-100);\n justify-content: center;\n align-items: center;\n\n icon-lucide-circle-user {\n color: var(--solid-ui-color-gray-200);\n width: 50%;\n height: 50%;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n","import Avatar from './Avatar'\n\nexport { Avatar }\nexport default Avatar\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOwCO,IAAA,CAEvCP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,KAAAC,IAO9BX,EAAQ;CAAEY,SAASV;CAAaW,WAAW;AAAK,CAAC,GAAC,SAAAC,IAPrD,cACoCf,EAAa;CAAAiB,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAV,IAAAW,EAAA,IAAA,GAAAC,EAAA,MAOVjB,CAAoB,EAAA;CAAA;CAAA,KAAAO,KAAA;EAAA,OAAAW,EAAAb,GAAA,IAAA;CAAA;CAAA,IAAxCc,KAAIC,GAAA;EAAAC,EAAAhB,GAAA,MAAAe,CAAA;CAAA;CAEXE,SAAU;EAOlB,OANK,KAAKH,KAAKI,SAASC,YAMjB1B,CAAI;oBACK,KAAKqB,KAAKI,SAASC,UAAS;QANnC1B,CAAI;;;CAQf;AACF,GAAC,CAAA2B,GAAA,CAAAR,GAAAD,IAAAU,GAAA,CAAAvB,GAAAwB,MAAAC,EAAAjB,GAAA,CAAA;CAAAH;CAAA;CAAA;AAAA,CAAA,GAAAN,GAAA,GAAA,KAAA,GApBmCN,CAAY,GAAAe,IAAAkB,IAAA,cAAAC,EAAA;CAAAjB,cAAA;EAAA,MAAAV,CAAA,GAAA4B,EAAA,MAAA,UAC9B9B,CAAM,GAAA8B,EAAA,MAAA,UACN,EACdC,WAAWC,MAAsB,CAACA,EAAUd,KAAKI,SAASC,UAC5D,CAAC,GAAAG,EAAA;CAAA;AAAA,GAAAI,EAAAF,GAAAzB,GAAA,KAAA,CAAA,GAAAyB,GAAA;;;ACXH,IAAA,IAAeM"}
1
+ {"version":3,"file":"avatar-BugsRJZg.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","styles","_classDecs","_Avatar","_Avatar2","_A","WeakMap","_ref","_authDecs","context","subscribe","_Avatar3","Avatar","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","render","account","avatarUrl","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","fallback","component","default","Avatar"],"sources":["../../src/components/avatar/Avatar.styles.css","../../src/components/avatar/Avatar.ts","../../src/components/avatar/index.ts"],"sourcesContent":[":host {\n --size: 150px;\n\n display: inline-flex;\n overflow: hidden;\n width: var(--size);\n height: var(--size);\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n}\n\n:host([data-state-fallback]) {\n background: var(--solid-ui-color-gray-100);\n justify-content: center;\n align-items: center;\n\n icon-lucide-circle-user {\n color: var(--solid-ui-color-gray-200);\n width: 50%;\n height: 50%;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\nimport '~icons/lucide/circle-user'\n\nimport styles from './Avatar.styles.css'\n\n@customElement('solid-ui-avatar')\nexport default class Avatar extends WebComponent {\n static styles = styles\n static states = {\n fallback: (component: Avatar) => !component.auth.account?.avatarUrl,\n }\n\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n protected render () {\n if (!this.auth.account?.avatarUrl) {\n return html`\n <icon-lucide-circle-user></icon-lucide-circle-user>\n `\n }\n\n return html`\n <img src=\"${this.auth.account?.avatarUrl}\" alt=\"\" />\n `\n }\n}\n","import Avatar from './Avatar'\n\nexport { Avatar }\nexport default Avatar\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOwCO,IAAA,CAEvCP,EAAc,iBAAiB,CAAC;AAAA,IAAAQ;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,KAAAC,IAO9BX,EAAQ;CAAEY,SAASV;CAAaW,WAAW;AAAK,CAAC,GAAC,SAAAC,IAPrD,cACoCf,EAAa;CAAAiB,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAV,IAAAW,EAAA,IAAA,GAAAC,EAAA,MAOVjB,CAAoB,EAAA;CAAA;CAAA,KAAAO,KAAA;EAAA,OAAAW,EAAAb,GAAA,IAAA;CAAA;CAAA,IAAxCc,KAAIC,GAAA;EAAAC,EAAAhB,GAAA,MAAAe,CAAA;CAAA;CAEXE,SAAU;EAOlB,OANK,KAAKH,KAAKI,SAASC,YAMjB1B,CAAI;oBACK,KAAKqB,KAAKI,SAASC,UAAS;QANnC1B,CAAI;;;CAQf;AACF,GAAC,CAAA2B,GAAA,CAAAR,GAAAD,IAAAU,GAAA,CAAAvB,GAAAwB,MAAAC,EAAAjB,GAAA,CAAA;CAAAH;CAAA;CAAA;AAAA,CAAA,GAAAN,GAAA,GAAA,KAAA,GApBmCN,CAAY,GAAAe,IAAAkB,IAAA,cAAAC,EAAA;CAAAjB,cAAA;EAAA,MAAAV,CAAA,GAAA4B,EAAA,MAAA,UAC9B9B,CAAM,GAAA8B,EAAA,MAAA,UACN,EACdC,WAAWC,MAAsB,CAACA,EAAUd,KAAKI,SAASC,UAC5D,CAAC,GAAAG,EAAA;CAAA;AAAA,GAAAI,EAAAF,GAAAzB,GAAA,KAAA,CAAA,GAAAyB,GAAA;;;ACXH,IAAA,IAAeM"}
@@ -1,5 +1,5 @@
1
- import { c as e, m as t } from "./solid-logic.esm-T70qfHAr.js";
2
- import { t as n } from "./headerFooterHelpers-7O_ln1QD.js";
1
+ import { c as e, p as t } from "./solid-logic.esm-BhVcNu8u.js";
2
+ import { t as n } from "./headerFooterHelpers-BiZ6X10e.js";
3
3
  import { c as r, i, t as a } from "./lit-C4H1jI4q.js";
4
4
  //#region src/v2/components/layout/footer/Footer.ts
5
5
  var o = class extends a {
@@ -141,4 +141,4 @@ customElements.get(s) || customElements.define(s, o);
141
141
  //#endregion
142
142
  export { o as t };
143
143
 
144
- //# sourceMappingURL=footer-D64T6XLO.js.map
144
+ //# sourceMappingURL=footer-kVa_uMeQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"footer-D64T6XLO.js","names":["LitElement","html","css","authSession","authn","getName","Footer","properties","theme","type","String","reflect","layout","position","top","right","bottom","left","store","Object","attribute","_user","state","styles","constructor","_updateFooter","bind","connectedCallback","events","on","disconnectedCallback","off","updated","changedProperties","has","_updatePositionStyles","style","setProperty","currentUser","render","_renderFooterContent","userName","uri","Footer","FOOTER_TAG_NAME","customElements","get","define"],"sources":["../../src/v2/components/layout/footer/Footer.ts","../../src/v2/components/layout/footer/index.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit'\nimport type { LiveStore, NamedNode } from 'rdflib'\nimport { authSession, authn } from 'solid-logic'\nimport { getName } from '../../../../utils/headerFooterHelpers'\n\nexport class Footer extends LitElement {\n static properties = {\n theme: { type: String, reflect: true },\n layout: { type: String, reflect: true },\n position: { type: String, reflect: true },\n top: { type: String, reflect: true },\n right: { type: String, reflect: true },\n bottom: { type: String, reflect: true },\n left: { type: String, reflect: true },\n store: { type: Object, attribute: false },\n _user: { state: true }\n }\n\n static styles = css`\n :host {\n display: block;\n position: var(--footer-position, static);\n top: var(--footer-top, auto);\n right: var(--footer-right, auto);\n bottom: var(--footer-bottom, auto);\n left: var(--footer-left, auto);\n width: auto;\n max-width: var(--footer-max-width, none);\n margin: var(--footer-margin, 0);\n box-sizing: border-box;\n color: var(--footer-text, #4f4f4f);\n background: transparent;\n border: 1px solid var(--footer-border, rgba(0, 0, 0, 0.12));\n border-radius: var(--footer-border-radius, 1rem);\n box-shadow: var(--footer-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.08));\n font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);\n }\n\n .footer {\n display: flex;\n justify-content: flex-start;\n align-items: flex-start;\n gap: 0.25rem;\n font-size: 0.75rem;\n line-height: 1.5;\n text-align: left;\n }\n\n .footer a {\n color: var(--footer-link, #4b32a8);\n text-decoration: none;\n font-weight: 600;\n }\n\n .footer a:hover {\n text-decoration: underline;\n }\n\n .footer span {\n color: inherit;\n }\n\n .footer div > strong {\n display: block;\n margin-bottom: 0.5rem;\n }\n\n :host([layout='mobile']) {\n border: none;\n box-shadow: none;\n border-radius: 0;\n }\n `\n\n declare theme: 'light' | 'dark'\n declare layout: 'desktop' | 'mobile'\n declare position: 'static' | 'absolute' | 'relative' | 'fixed' | 'sticky'\n declare top: string\n declare right: string\n declare bottom: string\n declare left: string\n declare store: LiveStore | null\n declare _user: NamedNode | null\n\n constructor () {\n super()\n this.theme = 'light'\n this.layout = 'desktop'\n this.position = 'static'\n this.top = 'auto'\n this.right = 'auto'\n this.bottom = 'auto'\n this.left = 'auto'\n this.store = null\n this._user = null\n this._updateFooter = this._updateFooter.bind(this)\n }\n\n connectedCallback () {\n super.connectedCallback()\n authSession.events.on('login', this._updateFooter)\n authSession.events.on('logout', this._updateFooter)\n this._updateFooter()\n }\n\n disconnectedCallback () {\n if (typeof authSession.events.off === 'function') {\n authSession.events.off('login', this._updateFooter)\n authSession.events.off('logout', this._updateFooter)\n }\n super.disconnectedCallback()\n }\n\n updated (changedProperties: Map<string, unknown>) {\n if (\n changedProperties.has('position') ||\n changedProperties.has('top') ||\n changedProperties.has('right') ||\n changedProperties.has('bottom') ||\n changedProperties.has('left')\n ) {\n this._updatePositionStyles()\n }\n }\n\n private _updatePositionStyles () {\n this.style.setProperty('--footer-position', this.position)\n this.style.setProperty('--footer-top', this.top)\n this.style.setProperty('--footer-right', this.right)\n this.style.setProperty('--footer-bottom', this.bottom)\n this.style.setProperty('--footer-left', this.left)\n }\n\n private _updateFooter () {\n this._user = authn.currentUser()\n }\n\n render () {\n return html`\n <footer class=\"footer\">\n ${this._renderFooterContent()}\n </footer>\n `\n }\n\n private _renderFooterContent () {\n if (!this._user) {\n return html`\n <div>\n <strong>Public View</strong>\n <div>You are viewing this profile as a guest.</div>\n </div>\n `\n }\n\n const userName = this.store ? getName(this.store, this._user) : this._user.uri\n\n return html`\n <div>\n <strong>Logged in View</strong>\n <div>\n You are logged in as\n <a href=${this._user.uri} target=\"_blank\" rel=\"noopener noreferrer\">${userName}</a>.\n </div>\n </div>\n `\n }\n}\n","import { Footer } from './Footer'\n\nexport { Footer }\n\nconst FOOTER_TAG_NAME = 'solid-ui-footer'\n\nif (!customElements.get(FOOTER_TAG_NAME)) {\n customElements.define(FOOTER_TAG_NAME, Footer)\n}\n"],"mappings":";;;;AAKA,IAAaM,IAAb,cAA4BN,EAAW;CACrC,OAAOO,aAAa;EAClBC,OAAO;GAAEC,MAAMC;GAAQC,SAAS;EAAK;EACrCC,QAAQ;GAAEH,MAAMC;GAAQC,SAAS;EAAK;EACtCE,UAAU;GAAEJ,MAAMC;GAAQC,SAAS;EAAK;EACxCG,KAAK;GAAEL,MAAMC;GAAQC,SAAS;EAAK;EACnCI,OAAO;GAAEN,MAAMC;GAAQC,SAAS;EAAK;EACrCK,QAAQ;GAAEP,MAAMC;GAAQC,SAAS;EAAK;EACtCM,MAAM;GAAER,MAAMC;GAAQC,SAAS;EAAK;EACpCO,OAAO;GAAET,MAAMU;GAAQC,WAAW;EAAM;EACxCC,OAAO,EAAEC,OAAO,GAAK;CACvB;CAEA,OAAOC,SAASrB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEnBsB,cAAe;EAWb,AAVA,MAAM,GACN,KAAKhB,QAAQ,SACb,KAAKI,SAAS,WACd,KAAKC,WAAW,UAChB,KAAKC,MAAM,QACX,KAAKC,QAAQ,QACb,KAAKC,SAAS,QACd,KAAKC,OAAO,QACZ,KAAKC,QAAQ,MACb,KAAKG,QAAQ,MACb,KAAKI,gBAAgB,KAAKA,cAAcC,KAAK,IAAI;CACnD;CAEAC,oBAAqB;EAInB,AAHA,MAAMA,kBAAkB,GACxBxB,EAAYyB,OAAOC,GAAG,SAAS,KAAKJ,aAAa,GACjDtB,EAAYyB,OAAOC,GAAG,UAAU,KAAKJ,aAAa,GAClD,KAAKA,cAAc;CACrB;CAEAK,uBAAwB;EAKtB,AAJI,OAAO3B,EAAYyB,OAAOG,OAAQ,eACpC5B,EAAYyB,OAAOG,IAAI,SAAS,KAAKN,aAAa,GAClDtB,EAAYyB,OAAOG,IAAI,UAAU,KAAKN,aAAa,IAErD,MAAMK,qBAAqB;CAC7B;CAEAE,QAASC,GAAyC;EAChD,CACEA,EAAkBC,IAAI,UAAU,KAChCD,EAAkBC,IAAI,KAAK,KAC3BD,EAAkBC,IAAI,OAAO,KAC7BD,EAAkBC,IAAI,QAAQ,KAC9BD,EAAkBC,IAAI,MAAM,MAE5B,KAAKC,sBAAsB;CAE/B;CAEQA,wBAAyB;EAK/B,AAJA,KAAKC,MAAMC,YAAY,qBAAqB,KAAKxB,QAAQ,GACzD,KAAKuB,MAAMC,YAAY,gBAAgB,KAAKvB,GAAG,GAC/C,KAAKsB,MAAMC,YAAY,kBAAkB,KAAKtB,KAAK,GACnD,KAAKqB,MAAMC,YAAY,mBAAmB,KAAKrB,MAAM,GACrD,KAAKoB,MAAMC,YAAY,iBAAiB,KAAKpB,IAAI;CACnD;CAEQQ,gBAAiB;EACvB,KAAKJ,QAAQjB,EAAMkC,YAAY;CACjC;CAEAC,SAAU;EACR,OAAOtC,CAAI;;UAEL,KAAKuC,qBAAqB,EAAC;;;CAGnC;CAEQA,uBAAwB;EAC9B,IAAI,CAAC,KAAKnB,OACR,OAAOpB,CAAI;;;;;;EAQb,IAAMwC,IAAW,KAAKvB,QAAQb,EAAQ,KAAKa,OAAO,KAAKG,KAAK,IAAI,KAAKA,MAAMqB;EAE3E,OAAOzC,CAAI;;;;;oBAKK,KAAKoB,MAAMqB,IAAG,6CAA8CD,EAAQ;;;;CAItF;AACF,GCnKMG,IAAkB;AAEnBC,eAAeC,IAAIF,CAAe,KACrCC,eAAeE,OAAOH,GAAiBD,CAAM"}
1
+ {"version":3,"file":"footer-kVa_uMeQ.js","names":["LitElement","html","css","authSession","authn","getName","Footer","properties","theme","type","String","reflect","layout","position","top","right","bottom","left","store","Object","attribute","_user","state","styles","constructor","_updateFooter","bind","connectedCallback","events","on","disconnectedCallback","off","updated","changedProperties","has","_updatePositionStyles","style","setProperty","currentUser","render","_renderFooterContent","userName","uri","Footer","FOOTER_TAG_NAME","customElements","get","define"],"sources":["../../src/v2/components/layout/footer/Footer.ts","../../src/v2/components/layout/footer/index.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit'\nimport type { LiveStore, NamedNode } from 'rdflib'\nimport { authSession, authn } from 'solid-logic'\nimport { getName } from '../../../../utils/headerFooterHelpers'\n\nexport class Footer extends LitElement {\n static properties = {\n theme: { type: String, reflect: true },\n layout: { type: String, reflect: true },\n position: { type: String, reflect: true },\n top: { type: String, reflect: true },\n right: { type: String, reflect: true },\n bottom: { type: String, reflect: true },\n left: { type: String, reflect: true },\n store: { type: Object, attribute: false },\n _user: { state: true }\n }\n\n static styles = css`\n :host {\n display: block;\n position: var(--footer-position, static);\n top: var(--footer-top, auto);\n right: var(--footer-right, auto);\n bottom: var(--footer-bottom, auto);\n left: var(--footer-left, auto);\n width: auto;\n max-width: var(--footer-max-width, none);\n margin: var(--footer-margin, 0);\n box-sizing: border-box;\n color: var(--footer-text, #4f4f4f);\n background: transparent;\n border: 1px solid var(--footer-border, rgba(0, 0, 0, 0.12));\n border-radius: var(--footer-border-radius, 1rem);\n box-shadow: var(--footer-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.08));\n font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);\n }\n\n .footer {\n display: flex;\n justify-content: flex-start;\n align-items: flex-start;\n gap: 0.25rem;\n font-size: 0.75rem;\n line-height: 1.5;\n text-align: left;\n }\n\n .footer a {\n color: var(--footer-link, #4b32a8);\n text-decoration: none;\n font-weight: 600;\n }\n\n .footer a:hover {\n text-decoration: underline;\n }\n\n .footer span {\n color: inherit;\n }\n\n .footer div > strong {\n display: block;\n margin-bottom: 0.5rem;\n }\n\n :host([layout='mobile']) {\n border: none;\n box-shadow: none;\n border-radius: 0;\n }\n `\n\n declare theme: 'light' | 'dark'\n declare layout: 'desktop' | 'mobile'\n declare position: 'static' | 'absolute' | 'relative' | 'fixed' | 'sticky'\n declare top: string\n declare right: string\n declare bottom: string\n declare left: string\n declare store: LiveStore | null\n declare _user: NamedNode | null\n\n constructor () {\n super()\n this.theme = 'light'\n this.layout = 'desktop'\n this.position = 'static'\n this.top = 'auto'\n this.right = 'auto'\n this.bottom = 'auto'\n this.left = 'auto'\n this.store = null\n this._user = null\n this._updateFooter = this._updateFooter.bind(this)\n }\n\n connectedCallback () {\n super.connectedCallback()\n authSession.events.on('login', this._updateFooter)\n authSession.events.on('logout', this._updateFooter)\n this._updateFooter()\n }\n\n disconnectedCallback () {\n if (typeof authSession.events.off === 'function') {\n authSession.events.off('login', this._updateFooter)\n authSession.events.off('logout', this._updateFooter)\n }\n super.disconnectedCallback()\n }\n\n updated (changedProperties: Map<string, unknown>) {\n if (\n changedProperties.has('position') ||\n changedProperties.has('top') ||\n changedProperties.has('right') ||\n changedProperties.has('bottom') ||\n changedProperties.has('left')\n ) {\n this._updatePositionStyles()\n }\n }\n\n private _updatePositionStyles () {\n this.style.setProperty('--footer-position', this.position)\n this.style.setProperty('--footer-top', this.top)\n this.style.setProperty('--footer-right', this.right)\n this.style.setProperty('--footer-bottom', this.bottom)\n this.style.setProperty('--footer-left', this.left)\n }\n\n private _updateFooter () {\n this._user = authn.currentUser()\n }\n\n render () {\n return html`\n <footer class=\"footer\">\n ${this._renderFooterContent()}\n </footer>\n `\n }\n\n private _renderFooterContent () {\n if (!this._user) {\n return html`\n <div>\n <strong>Public View</strong>\n <div>You are viewing this profile as a guest.</div>\n </div>\n `\n }\n\n const userName = this.store ? getName(this.store, this._user) : this._user.uri\n\n return html`\n <div>\n <strong>Logged in View</strong>\n <div>\n You are logged in as\n <a href=${this._user.uri} target=\"_blank\" rel=\"noopener noreferrer\">${userName}</a>.\n </div>\n </div>\n `\n }\n}\n","import { Footer } from './Footer'\n\nexport { Footer }\n\nconst FOOTER_TAG_NAME = 'solid-ui-footer'\n\nif (!customElements.get(FOOTER_TAG_NAME)) {\n customElements.define(FOOTER_TAG_NAME, Footer)\n}\n"],"mappings":";;;;AAKA,IAAaM,IAAb,cAA4BN,EAAW;CACrC,OAAOO,aAAa;EAClBC,OAAO;GAAEC,MAAMC;GAAQC,SAAS;EAAK;EACrCC,QAAQ;GAAEH,MAAMC;GAAQC,SAAS;EAAK;EACtCE,UAAU;GAAEJ,MAAMC;GAAQC,SAAS;EAAK;EACxCG,KAAK;GAAEL,MAAMC;GAAQC,SAAS;EAAK;EACnCI,OAAO;GAAEN,MAAMC;GAAQC,SAAS;EAAK;EACrCK,QAAQ;GAAEP,MAAMC;GAAQC,SAAS;EAAK;EACtCM,MAAM;GAAER,MAAMC;GAAQC,SAAS;EAAK;EACpCO,OAAO;GAAET,MAAMU;GAAQC,WAAW;EAAM;EACxCC,OAAO,EAAEC,OAAO,GAAK;CACvB;CAEA,OAAOC,SAASrB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEnBsB,cAAe;EAWb,AAVA,MAAM,GACN,KAAKhB,QAAQ,SACb,KAAKI,SAAS,WACd,KAAKC,WAAW,UAChB,KAAKC,MAAM,QACX,KAAKC,QAAQ,QACb,KAAKC,SAAS,QACd,KAAKC,OAAO,QACZ,KAAKC,QAAQ,MACb,KAAKG,QAAQ,MACb,KAAKI,gBAAgB,KAAKA,cAAcC,KAAK,IAAI;CACnD;CAEAC,oBAAqB;EAInB,AAHA,MAAMA,kBAAkB,GACxBxB,EAAYyB,OAAOC,GAAG,SAAS,KAAKJ,aAAa,GACjDtB,EAAYyB,OAAOC,GAAG,UAAU,KAAKJ,aAAa,GAClD,KAAKA,cAAc;CACrB;CAEAK,uBAAwB;EAKtB,AAJI,OAAO3B,EAAYyB,OAAOG,OAAQ,eACpC5B,EAAYyB,OAAOG,IAAI,SAAS,KAAKN,aAAa,GAClDtB,EAAYyB,OAAOG,IAAI,UAAU,KAAKN,aAAa,IAErD,MAAMK,qBAAqB;CAC7B;CAEAE,QAASC,GAAyC;EAChD,CACEA,EAAkBC,IAAI,UAAU,KAChCD,EAAkBC,IAAI,KAAK,KAC3BD,EAAkBC,IAAI,OAAO,KAC7BD,EAAkBC,IAAI,QAAQ,KAC9BD,EAAkBC,IAAI,MAAM,MAE5B,KAAKC,sBAAsB;CAE/B;CAEQA,wBAAyB;EAK/B,AAJA,KAAKC,MAAMC,YAAY,qBAAqB,KAAKxB,QAAQ,GACzD,KAAKuB,MAAMC,YAAY,gBAAgB,KAAKvB,GAAG,GAC/C,KAAKsB,MAAMC,YAAY,kBAAkB,KAAKtB,KAAK,GACnD,KAAKqB,MAAMC,YAAY,mBAAmB,KAAKrB,MAAM,GACrD,KAAKoB,MAAMC,YAAY,iBAAiB,KAAKpB,IAAI;CACnD;CAEQQ,gBAAiB;EACvB,KAAKJ,QAAQjB,EAAMkC,YAAY;CACjC;CAEAC,SAAU;EACR,OAAOtC,CAAI;;UAEL,KAAKuC,qBAAqB,EAAC;;;CAGnC;CAEQA,uBAAwB;EAC9B,IAAI,CAAC,KAAKnB,OACR,OAAOpB,CAAI;;;;;;EAQb,IAAMwC,IAAW,KAAKvB,QAAQb,EAAQ,KAAKa,OAAO,KAAKG,KAAK,IAAI,KAAKA,MAAMqB;EAE3E,OAAOzC,CAAI;;;;;oBAKK,KAAKoB,MAAMqB,IAAG,6CAA8CD,EAAQ;;;;CAItF;AACF,GCnKMG,IAAkB;AAEnBC,eAAeC,IAAIF,CAAe,KACrCC,eAAeE,OAAOH,GAAiBD,CAAM"}
@@ -1,4 +1,4 @@
1
- import { c as e, s as t } from "./auth-RHyQ2iIl.js";
1
+ import { c as e, s as t } from "./auth-CZOEEeJ8.js";
2
2
  import { r as n } from "./dialog-BAzrHJ8w.js";
3
3
  import { a as r, i } from "./components-C1LEhsaK.js";
4
4
  import { i as a } from "./lit-C4H1jI4q.js";
@@ -197,4 +197,4 @@ var T = C;
197
197
  //#endregion
198
198
  export { C as n, T as t };
199
199
 
200
- //# sourceMappingURL=guard-CjUBGVDk.js.map
200
+ //# sourceMappingURL=guard-Cml6dHTv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard-CjUBGVDk.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","_classDecs","_Guard","_A","WeakMap","_ref","_authDecs","context","subscribe","Guard","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","render","account","_Guard2","e","c","_initClass","_applyDecs","default","Guard"],"sources":["../../src/components/guard/Guard.ts","../../src/components/guard/index.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\n@customElement('solid-guard')\nexport default class Guard extends WebComponent {\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n protected render () {\n if (!this.auth.account) {\n return html`\n <slot name=\"guest\"></slot>\n `\n }\n\n return html`\n <slot></slot>\n `\n }\n}\n","import Guard from './Guard'\n\nexport { Guard }\nexport default Guard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG2EM,IAAA,CAE1EN,EAAc,aAAa,CAAC;AAAA,IAAAO,GAAAC,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAE1BT,EAAQ;CAAEU,SAASR;CAAaS,WAAW;AAAK,CAAC,GAAC,SAcpDa,IAAAZ,cAfkCb,EAAa;CAAAc,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAT,IAAAU,EAAA,IAAA,GAAAC,EAAA,MAETd,CAAoB,EAAA;CAAA;CAAA,KAAAK,KAAA;EAAA,OAAAU,EAAAZ,GAAA,IAAA;CAAA;CAAA,IAAxCa,KAAIC,GAAA;EAAAC,EAAAf,GAAA,MAAAc,CAAA;CAAA;CAEXE,SAAU;EAOlB,OANK,KAAKH,KAAKI,UAMRtB,CAAI;;QALFA,CAAI;;;CAQf;AACF,GAAC,CAAAwB,GAAA,CAAAR,GAAAD,IAAAU,GAAA,CAAArB,GAAAsB,MAAAC,EAAAJ,GAAA,CAAA;CAAAf;CAAA;CAAA;AAAA,CAAA,GAAAL,GAAA,GAAA,KAAA,GAfkCL,CAAY,GAAA4B,EAAA;;;ACH/C,IAAA,IAAeG"}
1
+ {"version":3,"file":"guard-Cml6dHTv.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","_classDecs","_Guard","_A","WeakMap","_ref","_authDecs","context","subscribe","Guard","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","render","account","_Guard2","e","c","_initClass","_applyDecs","default","Guard"],"sources":["../../src/components/guard/Guard.ts","../../src/components/guard/index.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\n@customElement('solid-guard')\nexport default class Guard extends WebComponent {\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n protected render () {\n if (!this.auth.account) {\n return html`\n <slot name=\"guest\"></slot>\n `\n }\n\n return html`\n <slot></slot>\n `\n }\n}\n","import Guard from './Guard'\n\nexport { Guard }\nexport default Guard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG2EM,IAAA,CAE1EN,EAAc,aAAa,CAAC;AAAA,IAAAO,GAAAC,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAE1BT,EAAQ;CAAEU,SAASR;CAAaS,WAAW;AAAK,CAAC,GAAC,SAcpDa,IAAAZ,cAfkCb,EAAa;CAAAc,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAT,IAAAU,EAAA,IAAA,GAAAC,EAAA,MAETd,CAAoB,EAAA;CAAA;CAAA,KAAAK,KAAA;EAAA,OAAAU,EAAAZ,GAAA,IAAA;CAAA;CAAA,IAAxCa,KAAIC,GAAA;EAAAC,EAAAf,GAAA,MAAAc,CAAA;CAAA;CAEXE,SAAU;EAOlB,OANK,KAAKH,KAAKI,UAMRtB,CAAI;;QALFA,CAAI;;;CAQf;AACF,GAAC,CAAAwB,GAAA,CAAAR,GAAAD,IAAAU,GAAA,CAAArB,GAAAsB,MAAAC,EAAAJ,GAAA,CAAA;CAAAf;CAAA;CAAA;AAAA,CAAA,GAAAL,GAAA,GAAA,KAAA,GAfkCL,CAAY,GAAA4B,EAAA;;;ACH/C,IAAA,IAAeG"}