solid-ui 3.1.3-7 → 3.1.3-9

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 (205) 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-CWY924jw.js} +74 -58
  8. package/dist/chunks/account-CWY924jw.js.map +1 -0
  9. package/dist/chunks/{auth-RHyQ2iIl.js → auth-DIRGfFle.js} +18 -18
  10. package/dist/chunks/{auth-RHyQ2iIl.js.map → auth-DIRGfFle.js.map} +1 -1
  11. package/dist/chunks/{avatar-Jx8xm2Op.js → avatar-CLJz6mOV.js} +3 -3
  12. package/dist/chunks/{avatar-Jx8xm2Op.js.map → avatar-CLJz6mOV.js.map} +1 -1
  13. package/dist/chunks/{button-0s0lZdxm.js → button-CBQEwOtX.js} +7 -3
  14. package/dist/chunks/button-CBQEwOtX.js.map +1 -0
  15. package/dist/chunks/{combobox-Cxi8xUMn.js → combobox-B7a6BjQr.js} +5 -5
  16. package/dist/chunks/combobox-B7a6BjQr.js.map +1 -0
  17. package/dist/chunks/{dialog-BAzrHJ8w.js → dialog-Bn4qiZi-.js} +2 -2
  18. package/dist/chunks/{dialog-BAzrHJ8w.js.map → dialog-Bn4qiZi-.js.map} +1 -1
  19. package/dist/chunks/{footer-D64T6XLO.js → footer-kVa_uMeQ.js} +3 -3
  20. package/dist/chunks/{footer-D64T6XLO.js.map → footer-kVa_uMeQ.js.map} +1 -1
  21. package/dist/chunks/{guard-CjUBGVDk.js → guard-Cxl9QbaG.js} +3 -3
  22. package/dist/chunks/{guard-CjUBGVDk.js.map → guard-Cxl9QbaG.js.map} +1 -1
  23. package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js → headerFooterHelpers-BiZ6X10e.js} +15 -15
  24. package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js.map → headerFooterHelpers-BiZ6X10e.js.map} +1 -1
  25. package/dist/chunks/{jsonld-DRZuoyoU.js → jsonld-Cd-ZhJmZ.js} +2 -2
  26. package/dist/chunks/{jsonld-DRZuoyoU.js.map → jsonld-Cd-ZhJmZ.js.map} +1 -1
  27. package/dist/chunks/{login-button-DPeMi00d.js → login-button-ChyF_OoC.js} +4 -4
  28. package/dist/chunks/{login-button-DPeMi00d.js.map → login-button-ChyF_OoC.js.map} +1 -1
  29. package/dist/chunks/{logout-button-CbiLE7jO.js → logout-button-BRPS8630.js} +4 -4
  30. package/dist/chunks/{logout-button-CbiLE7jO.js.map → logout-button-BRPS8630.js.map} +1 -1
  31. package/dist/chunks/{menu-item-Ck0l-uEI.js → menu-item-CWg-eS4V.js} +7 -5
  32. package/dist/chunks/menu-item-CWg-eS4V.js.map +1 -0
  33. package/dist/chunks/{provider-C4eSzopG.js → provider-D0RqwRoM.js} +2 -2
  34. package/dist/chunks/{provider-C4eSzopG.js.map → provider-D0RqwRoM.js.map} +1 -1
  35. package/dist/chunks/{signup-button-BfIxbpwa.js → signup-button-Df4rYzNO.js} +4 -4
  36. package/dist/chunks/{signup-button-BfIxbpwa.js.map → signup-button-Df4rYzNO.js.map} +1 -1
  37. package/dist/chunks/solid-emblem-BDzhMTjL.js +185 -0
  38. package/dist/chunks/solid-emblem-BDzhMTjL.js.map +1 -0
  39. package/dist/chunks/{solid-logic.esm-T70qfHAr.js → solid-logic.esm-BhVcNu8u.js} +7 -28
  40. package/dist/chunks/{solid-logic.esm-T70qfHAr.js.map → solid-logic.esm-BhVcNu8u.js.map} +1 -1
  41. package/dist/chunks/{src-Bx4GAnWq.js → src-Dxxeu4rj.js} +2375 -2351
  42. package/dist/chunks/src-Dxxeu4rj.js.map +1 -0
  43. package/dist/components/account/Account.cjs.js +7 -2
  44. package/dist/components/account/Account.cjs.js.map +1 -1
  45. package/dist/components/account/Account.d.ts +8 -1
  46. package/dist/components/account/Account.d.ts.map +1 -1
  47. package/dist/components/account/Account.esm.js +64 -48
  48. package/dist/components/account/Account.esm.js.map +1 -1
  49. package/dist/components/account/Account.stories.d.ts +3 -8
  50. package/dist/components/account/Account.stories.d.ts.map +1 -1
  51. package/dist/components/account/index.cjs.js.map +1 -1
  52. package/dist/components/account/index.d.ts +2 -2
  53. package/dist/components/account/index.d.ts.map +1 -1
  54. package/dist/components/account/index.esm.js.map +1 -1
  55. package/dist/components/account.js +1 -1
  56. package/dist/components/avatar.js +1 -1
  57. package/dist/components/button/Button.cjs.js +2 -2
  58. package/dist/components/button/Button.cjs.js.map +1 -1
  59. package/dist/components/button/Button.d.ts +1 -0
  60. package/dist/components/button/Button.d.ts.map +1 -1
  61. package/dist/components/button/Button.esm.js +5 -1
  62. package/dist/components/button/Button.esm.js.map +1 -1
  63. package/dist/components/button/Button.styles.cjs.js +1 -1
  64. package/dist/components/button/Button.styles.cjs.js.map +1 -1
  65. package/dist/components/button/Button.styles.esm.js +1 -1
  66. package/dist/components/button/Button.styles.esm.js.map +1 -1
  67. package/dist/components/button.js +1 -1
  68. package/dist/components/combobox/Combobox.cjs.js +2 -2
  69. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  70. package/dist/components/combobox/Combobox.d.ts +1 -1
  71. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  72. package/dist/components/combobox/Combobox.esm.js +4 -4
  73. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  74. package/dist/components/combobox.js +1 -1
  75. package/dist/components/dialog.js +1 -1
  76. package/dist/components/footer.js +1 -1
  77. package/dist/components/guard.js +1 -1
  78. package/dist/components/index.cjs.js +1 -1
  79. package/dist/components/index.esm.js +2 -2
  80. package/dist/components/login-button.js +1 -1
  81. package/dist/components/login-modal.js +1 -1
  82. package/dist/components/logout-button.js +1 -1
  83. package/dist/components/menu-item/MenuItem.cjs.js +5 -3
  84. package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
  85. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  86. package/dist/components/menu-item/MenuItem.esm.js +5 -3
  87. package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
  88. package/dist/components/menu-item/MenuItem.styles.cjs.js +1 -1
  89. package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
  90. package/dist/components/menu-item/MenuItem.styles.esm.js +1 -1
  91. package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
  92. package/dist/components/menu-item.js +1 -1
  93. package/dist/components/provider.js +1 -1
  94. package/dist/components/signup-button.js +1 -1
  95. package/dist/components/solid-emblem/SolidEmblem.cjs.js +2 -0
  96. package/dist/components/solid-emblem/SolidEmblem.cjs.js.map +1 -0
  97. package/dist/components/solid-emblem/SolidEmblem.d.ts +6 -0
  98. package/dist/components/solid-emblem/SolidEmblem.d.ts.map +1 -0
  99. package/dist/components/solid-emblem/SolidEmblem.esm.js +178 -0
  100. package/dist/components/solid-emblem/SolidEmblem.esm.js.map +1 -0
  101. package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js +2 -0
  102. package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js.map +1 -0
  103. package/dist/components/solid-emblem/SolidEmblem.styles.esm.js +7 -0
  104. package/dist/components/solid-emblem/SolidEmblem.styles.esm.js.map +1 -0
  105. package/dist/components/solid-emblem/index.cjs.js +2 -0
  106. package/dist/components/solid-emblem/index.cjs.js.map +1 -0
  107. package/dist/components/solid-emblem/index.d.ts +4 -0
  108. package/dist/components/solid-emblem/index.d.ts.map +1 -0
  109. package/dist/components/solid-emblem/index.esm.js +7 -0
  110. package/dist/components/solid-emblem/index.esm.js.map +1 -0
  111. package/dist/components/solid-emblem.js +2 -0
  112. package/dist/components.js +14 -14
  113. package/dist/index.js +4 -5
  114. package/dist/lib/forms/rdfHelper.d.ts +4 -0
  115. package/dist/lib/forms/rdfHelper.d.ts.map +1 -0
  116. package/dist/loader.js +4 -5
  117. package/dist/solid-ui.js +80 -1171
  118. package/dist/solid-ui.min.js +80 -1171
  119. package/dist/solid-ui.min.js.map +1 -1
  120. package/dist/theme.css +1 -1
  121. package/package.json +7 -2
  122. package/dist/chunks/account-BZ2rYQhV.js.map +0 -1
  123. package/dist/chunks/button-0s0lZdxm.js.map +0 -1
  124. package/dist/chunks/combobox-Cxi8xUMn.js.map +0 -1
  125. package/dist/chunks/header-COBaJDdB.js +0 -1486
  126. package/dist/chunks/header-COBaJDdB.js.map +0 -1
  127. package/dist/chunks/iconBase-DJ0zbNSL.js +0 -31
  128. package/dist/chunks/iconBase-DJ0zbNSL.js.map +0 -1
  129. package/dist/chunks/menu-item-Ck0l-uEI.js.map +0 -1
  130. package/dist/chunks/src-Bx4GAnWq.js.map +0 -1
  131. package/dist/components/header/index.cjs.js +0 -1
  132. package/dist/components/header/index.d.ts +0 -2
  133. package/dist/components/header/index.d.ts.map +0 -1
  134. package/dist/components/header/index.esm.js +0 -3
  135. package/dist/components/header.js +0 -2
  136. package/dist/lib/features.cjs.js +0 -2
  137. package/dist/lib/features.cjs.js.map +0 -1
  138. package/dist/lib/features.d.ts +0 -8
  139. package/dist/lib/features.d.ts.map +0 -1
  140. package/dist/lib/features.esm.js +0 -6
  141. package/dist/lib/features.esm.js.map +0 -1
  142. package/dist/v2/components/actions/button/Button.d.ts +0 -97
  143. package/dist/v2/components/actions/button/Button.d.ts.map +0 -1
  144. package/dist/v2/components/actions/button/Button.test.d.ts +0 -1
  145. package/dist/v2/components/actions/button/Button.test.d.ts.map +0 -1
  146. package/dist/v2/components/actions/button/index.d.ts +0 -8
  147. package/dist/v2/components/actions/button/index.d.ts.map +0 -1
  148. package/dist/v2/components/auth/loginButton/LoginButton.cjs.js +0 -414
  149. package/dist/v2/components/auth/loginButton/LoginButton.cjs.js.map +0 -1
  150. package/dist/v2/components/auth/loginButton/LoginButton.esm.js +0 -519
  151. package/dist/v2/components/auth/loginButton/LoginButton.esm.js.map +0 -1
  152. package/dist/v2/components/auth/loginButton/downArrow.cjs.js +0 -9
  153. package/dist/v2/components/auth/loginButton/downArrow.cjs.js.map +0 -1
  154. package/dist/v2/components/auth/loginButton/downArrow.esm.js +0 -14
  155. package/dist/v2/components/auth/loginButton/downArrow.esm.js.map +0 -1
  156. package/dist/v2/components/auth/loginButton/index.cjs.js +0 -2
  157. package/dist/v2/components/auth/loginButton/index.cjs.js.map +0 -1
  158. package/dist/v2/components/auth/loginButton/index.esm.js +0 -8
  159. package/dist/v2/components/auth/loginButton/index.esm.js.map +0 -1
  160. package/dist/v2/components/auth/signupButton/SignupButton.cjs.js +0 -59
  161. package/dist/v2/components/auth/signupButton/SignupButton.cjs.js.map +0 -1
  162. package/dist/v2/components/auth/signupButton/SignupButton.esm.js +0 -98
  163. package/dist/v2/components/auth/signupButton/SignupButton.esm.js.map +0 -1
  164. package/dist/v2/components/auth/signupButton/index.cjs.js +0 -2
  165. package/dist/v2/components/auth/signupButton/index.cjs.js.map +0 -1
  166. package/dist/v2/components/auth/signupButton/index.esm.js +0 -8
  167. package/dist/v2/components/auth/signupButton/index.esm.js.map +0 -1
  168. package/dist/v2/components/forms/combobox/Combobox.d.ts +0 -82
  169. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +0 -1
  170. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +0 -1
  171. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +0 -1
  172. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +0 -6
  173. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +0 -1
  174. package/dist/v2/components/forms/combobox/index.d.ts +0 -3
  175. package/dist/v2/components/forms/combobox/index.d.ts.map +0 -1
  176. package/dist/v2/components/forms/select/Select.d.ts +0 -68
  177. package/dist/v2/components/forms/select/Select.d.ts.map +0 -1
  178. package/dist/v2/components/forms/select/Select.test.d.ts +0 -1
  179. package/dist/v2/components/forms/select/Select.test.d.ts.map +0 -1
  180. package/dist/v2/components/forms/select/index.d.ts +0 -3
  181. package/dist/v2/components/forms/select/index.d.ts.map +0 -1
  182. package/dist/v2/components/forms/shared/downArrow.d.ts +0 -2
  183. package/dist/v2/components/forms/shared/downArrow.d.ts.map +0 -1
  184. package/dist/v2/components/forms/shared/keyboard.d.ts +0 -7
  185. package/dist/v2/components/forms/shared/keyboard.d.ts.map +0 -1
  186. package/dist/v2/components/forms/shared/listboxStyles.d.ts +0 -2
  187. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +0 -1
  188. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +0 -11
  189. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +0 -1
  190. package/dist/v2/components/forms/shared/optionTypes.d.ts +0 -6
  191. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +0 -1
  192. package/dist/v2/components/layout/header/Header.cjs.js +0 -625
  193. package/dist/v2/components/layout/header/Header.cjs.js.map +0 -1
  194. package/dist/v2/components/layout/header/Header.d.ts +0 -160
  195. package/dist/v2/components/layout/header/Header.d.ts.map +0 -1
  196. package/dist/v2/components/layout/header/Header.esm.js +0 -873
  197. package/dist/v2/components/layout/header/Header.esm.js.map +0 -1
  198. package/dist/v2/components/layout/header/header.test.d.ts +0 -1
  199. package/dist/v2/components/layout/header/header.test.d.ts.map +0 -1
  200. package/dist/v2/components/layout/header/index.cjs.js +0 -2
  201. package/dist/v2/components/layout/header/index.cjs.js.map +0 -1
  202. package/dist/v2/components/layout/header/index.d.ts +0 -4
  203. package/dist/v2/components/layout/header/index.d.ts.map +0 -1
  204. package/dist/v2/components/layout/header/index.esm.js +0 -8
  205. 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";
2
- import { r as n } from "./dialog-BAzrHJ8w.js";
1
+ import { c as e, s as t } from "./auth-DIRGfFle.js";
2
+ import { r as n } from "./dialog-Bn4qiZi-.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
- 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";
7
+ import "./button-CBQEwOtX.js";
8
+ import "./avatar-CLJz6mOV.js";
9
+ import "./login-button-ChyF_OoC.js";
10
+ import "./logout-button-BRPS8630.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-Df4rYzNO.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-CWY924jw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-CWY924jw.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,15 +1,15 @@
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
- import { r as a } from "./dialog-BAzrHJ8w.js";
3
+ import { r as a } from "./dialog-Bn4qiZi-.js";
4
4
  import { a as o, i as s, o as c } from "./components-C1LEhsaK.js";
5
5
  import { c as l, i as u, n as d } from "./lit-C4H1jI4q.js";
6
6
  import { t as f } from "./show-dialog-eEW5yRBv.js";
7
7
  import { n as p, r as m, t as h } from "./decorators-BiCkPd_3.js";
8
8
  import "./chevron-down-ujxRg3MD.js";
9
- import "./button-0s0lZdxm.js";
9
+ import "./button-CBQEwOtX.js";
10
10
  import "./dialog-content-fdJrkCyB.js";
11
11
  import "./dialog-footer-Bs_p2Nn9.js";
12
- import "./combobox-Cxi8xUMn.js";
12
+ import "./combobox-B7a6BjQr.js";
13
13
  import "./combobox-option-DiR3VpyT.js";
14
14
  //#region src/lib/auth/Account.ts
15
15
  var g = class {
@@ -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-DIRGfFle.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-DIRGfFle.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,5 +1,5 @@
1
- import { c as e, s as t } from "./auth-RHyQ2iIl.js";
2
- import { r as n } from "./dialog-BAzrHJ8w.js";
1
+ import { c as e, s as t } from "./auth-DIRGfFle.js";
2
+ import { r as n } from "./dialog-Bn4qiZi-.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";
5
5
  //#region ~icons/lucide/circle-user
@@ -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-CLJz6mOV.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-CLJz6mOV.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"}
@@ -10,7 +10,7 @@ var o = class extends HTMLElement {
10
10
  customElements.get("icon-svg-spinners-180-ring") || customElements.define("icon-svg-spinners-180-ring", o);
11
11
  //#endregion
12
12
  //#region src/components/button/Button.styles.css
13
- var s = n`:host{--text-color:var(--solid-ui-color-white);--border-color:var(--solid-ui-color-primary);--background-color:var(--solid-ui-color-primary);--hover-text-color:var(--text-color);--hover-border-color:var(--solid-ui-color-tertiary);--hover-background-color:var(--solid-ui-color-tertiary);display:inline-flex;& button{font-size:var(--solid-ui-font-size-md);color:var(--text-color);background:var(--background-color);border:1px solid var(--border-color);border-radius:5px;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 12px;font-weight:600;display:flex;position:relative;&:disabled{opacity:.5;cursor:not-allowed}&:hover:not(:disabled){color:var(--hover-text-color);background:var(--hover-background-color);border-color:var(--hover-border-color)}& icon-svg-spinners-180-ring,& ::slotted([slot=left-icon]),& ::slotted([slot=right-icon]){width:var(--solid-ui-font-size-md);height:var(--solid-ui-font-size-md)}&:after{content:\"\";width:var(--solid-ui-clickable-area);height:var(--solid-ui-clickable-area);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}}:host(:has([slot=icon])) button{padding:4px;& ::slotted([slot=icon]){width:var(--solid-ui-font-size-2xl);height:var(--solid-ui-font-size-2xl)}}:host([variant=secondary]) button{--text-color:var(--solid-ui-color-gray-800);--border-color:var(--solid-ui-color-slate-400);--background-color:var(--solid-ui-color-white);--hover-text-color:var(--solid-ui-color-white);--hover-background-color:var(--solid-ui-color-tertiary);--hover-border-color:var(--solid-ui-color-tertiary)}:host([variant=tertiary]) button{--text-color:var(--solid-ui-color-primary);--border-color:transparent;--background-color:transparent;--hover-text-color:var(--solid-ui-color-tertiary);--hover-border-color:var(--solid-ui-color-tertiary);--hover-background-color:transparent;border-width:0 0 1px;border-radius:0;padding:0}:host([variant=outline]) button{--text-color:currentColor;--border-color:currentColor;--background-color:transparent;--hover-text-color:currentColor;--hover-border-color:currentColor;--hover-background-color:color-mix(in srgb, currentColor 25%, transparent)}:host([variant=ghost]) button{--text-color:currentColor;--border-color:transparent;--background-color:transparent;--hover-text-color:currentColor;--hover-border-color:transparent;--hover-background-color:color-mix(in srgb, currentColor 25%, transparent)}`, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E;
13
+ var s = n`:host{--text-color:var(--solid-ui-color-white);--border-color:var(--solid-ui-color-primary);--background-color:var(--solid-ui-color-primary);--hover-text-color:var(--text-color);--hover-border-color:var(--solid-ui-color-tertiary);--hover-background-color:var(--solid-ui-color-tertiary);display:inline-flex;& button{font-size:var(--solid-ui-font-size-md);color:var(--text-color);background:var(--background-color);border:1px solid var(--border-color);border-radius:5px;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 12px;font-weight:600;display:flex;position:relative;&:disabled{opacity:.5;cursor:not-allowed}&:hover:not(:disabled){color:var(--hover-text-color);background:var(--hover-background-color);border-color:var(--hover-border-color)}& icon-svg-spinners-180-ring,& ::slotted([slot=left-icon]),& ::slotted([slot=right-icon]){width:var(--solid-ui-font-size-md);height:var(--solid-ui-font-size-md)}&:after{content:\"\";width:var(--solid-ui-clickable-area);height:var(--solid-ui-clickable-area);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}}:host([data-has-icon-slot]) button{padding:4px;& ::slotted([slot=icon]){width:var(--solid-ui-font-size-2xl);height:var(--solid-ui-font-size-2xl)}}:host([variant=secondary]) button{--text-color:var(--solid-ui-color-gray-800);--border-color:var(--solid-ui-color-slate-400);--background-color:var(--solid-ui-color-white);--hover-text-color:var(--solid-ui-color-white);--hover-background-color:var(--solid-ui-color-tertiary);--hover-border-color:var(--solid-ui-color-tertiary)}:host([variant=tertiary]) button{--text-color:var(--solid-ui-color-primary);--border-color:transparent;--background-color:transparent;--hover-text-color:var(--solid-ui-color-tertiary);--hover-border-color:var(--solid-ui-color-tertiary);--hover-background-color:transparent;border-width:0 0 1px;border-radius:0;padding:0}:host([variant=outline]) button{--text-color:currentColor;--border-color:currentColor;--background-color:transparent;--hover-text-color:currentColor;--hover-border-color:currentColor;--hover-background-color:color-mix(in srgb, currentColor 25%, transparent)}:host([variant=ghost]) button{--text-color:currentColor;--border-color:transparent;--background-color:transparent;--hover-text-color:currentColor;--hover-border-color:transparent;--hover-background-color:color-mix(in srgb, currentColor 25%, transparent)}`, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E;
14
14
  function D(e, t, n) {
15
15
  O(e, t), t.set(e, n);
16
16
  }
@@ -231,12 +231,16 @@ new (T = (u = /*#__PURE__*/ new WeakMap(), d = /*#__PURE__*/ new WeakMap(), f =
231
231
  <button type=${this.type} ?disabled=${e} @click=${this.onClick}>
232
232
  ${this.loading ? r`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : i}
233
233
  <slot name="left-icon"></slot>
234
- <slot name="icon"></slot>
234
+ <slot @slotchange=${this.onIconSlotChange} name="icon"></slot>
235
235
  <slot></slot>
236
236
  <slot name="right-icon"></slot>
237
237
  </button>
238
238
  `;
239
239
  }
240
+ onIconSlotChange(e) {
241
+ let t = e.target;
242
+ this.toggleAttribute("data-has-icon-slot", t.assignedElements().length > 0);
243
+ }
240
244
  onClick() {
241
245
  switch (this.type) {
242
246
  case "submit":
@@ -279,4 +283,4 @@ var V = B;
279
283
  //#endregion
280
284
  export { z as n, B as r, V as t };
281
285
 
282
- //# sourceMappingURL=button-0s0lZdxm.js.map
286
+ //# sourceMappingURL=button-CBQEwOtX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-CBQEwOtX.js","names":["customElement","WebComponent","html","nothing","property","styles","BUTTON_VARIANTS","_classDecs","_Button","_Button2","_A","WeakMap","_B","_C","_D","_ref","_variantDecs","type","String","reflect","_typeDecs","_disabledDecs","Boolean","_loadingDecs","_Button3","Button","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_variant","_init_type","_init_disabled","undefined","_init_loading","_classPrivateFieldGet","variant","v","_classPrivateFieldSet","disabled","loading","render","onClick","onIconSlotChange","e","slot","target","toggleAttribute","assignedElements","length","getInternals","form","requestSubmit","reset","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","Button","BUTTON_VARIANTS"],"sources":["../../src/components/button/Button.styles.css","../../src/components/button/Button.ts","../../src/components/button/index.ts"],"sourcesContent":[":host {\n --text-color: var(--solid-ui-color-white);\n --border-color: var(--solid-ui-color-primary);\n --background-color: var(--solid-ui-color-primary);\n --hover-text-color: var(--text-color);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: var(--solid-ui-color-tertiary);\n\n display: inline-flex;\n\n button {\n position: relative;\n padding: 7px 12px;\n border-radius: 5px;\n font-size: var(--solid-ui-font-size-md);\n font-weight: 600;\n color: var(--text-color);\n background: var(--background-color);\n border: 1px solid var(--border-color);\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex: 1;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &:hover:not(:disabled) {\n color: var(--hover-text-color);\n background: var(--hover-background-color);\n border-color: var(--hover-border-color);\n }\n\n icon-svg-spinners-180-ring, ::slotted([slot=\"left-icon\"]), ::slotted([slot=\"right-icon\"]) {\n width: var(--solid-ui-font-size-md);\n height: var(--solid-ui-font-size-md);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: var(--solid-ui-clickable-area);\n height: var(--solid-ui-clickable-area);\n }\n }\n}\n\n:host([data-has-icon-slot]) button {\n padding: 4px;\n\n ::slotted([slot=\"icon\"]) {\n width: var(--solid-ui-font-size-2xl);\n height: var(--solid-ui-font-size-2xl);\n }\n}\n\n:host([variant='secondary']) button {\n --text-color: var(--solid-ui-color-gray-800);\n --border-color: var(--solid-ui-color-slate-400);\n --background-color: var(--solid-ui-color-white);\n --hover-text-color: var(--solid-ui-color-white);\n --hover-background-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n}\n\n:host([variant='tertiary']) button {\n --text-color: var(--solid-ui-color-primary);\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: var(--solid-ui-color-tertiary);\n --hover-border-color: var(--solid-ui-color-tertiary);\n --hover-background-color: transparent;\n\n padding: 0;\n border-radius: 0;\n border-width: 0;\n border-bottom-width: 1px;\n}\n\n:host([variant='outline']) button {\n --text-color: currentColor;\n --border-color: currentColor;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: currentColor;\n --hover-background-color: color-mix(in srgb, currentColor 25%, transparent);\n}\n\n:host([variant='ghost']) button {\n --text-color: currentColor;\n --border-color: transparent;\n --background-color: transparent;\n --hover-text-color: currentColor;\n --hover-border-color: transparent;\n --hover-background-color: color-mix(in srgb, currentColor 25%, transparent);\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property } from 'lit/decorators.js'\n\nimport '~icons/svg-spinners/180-ring'\n\nimport styles from './Button.styles.css'\n\nexport const BUTTON_VARIANTS = ['primary', 'secondary', 'tertiary', 'outline', 'ghost'] as const\nexport type ButtonVariant = typeof BUTTON_VARIANTS[number]\n\n@customElement('solid-ui-button')\nexport default class Button extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor variant: ButtonVariant = 'primary'\n\n @property({ type: String, reflect: true })\n accessor type = 'button'\n\n @property({ type: Boolean })\n accessor disabled: boolean | undefined = undefined\n\n @property({ type: Boolean })\n accessor loading = false\n\n render () {\n const disabled = this.disabled ?? this.loading\n\n return html`\n <button type=${this.type} ?disabled=${disabled} @click=${this.onClick}>\n ${this.loading ? html`<icon-svg-spinners-180-ring></icon-svg-spinners-180-ring>` : nothing}\n <slot name=\"left-icon\"></slot>\n <slot @slotchange=${this.onIconSlotChange} name=\"icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </button>\n `\n }\n\n private onIconSlotChange (e: Event) {\n const slot = e.target as HTMLSlotElement\n\n this.toggleAttribute('data-has-icon-slot', slot.assignedElements().length > 0)\n }\n\n private onClick () {\n switch (this.type) {\n case 'submit':\n this.getInternals().form?.requestSubmit()\n break\n case 'reset':\n this.getInternals().form?.reset()\n break\n }\n }\n}\n","import Button, { BUTTON_VARIANTS, type ButtonVariant } from './Button'\n\nexport { Button, BUTTON_VARIANTS, type ButtonVariant }\nexport default Button\n"],"mappings":"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"}