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
@@ -1,625 +0,0 @@
1
- const e=require("../../../../lib/iconBase.cjs.js");require("../../../../components/account/index.cjs.js"),require("../../auth/loginButton/index.cjs.js"),require("../../auth/signupButton/index.cjs.js"),require("../../../../components/provider/index.cjs.js");const t=require("../../../../lib/features.cjs.js");let n=require("solid-logic"),r=require("lit"),i=require("lit/directives/if-defined.js");var a=``,o=`https://solidproject.org/assets/img/solid-emblem.svg`,s=`https://solidproject.org/get_a_pod`,c=e.icons.iconBase+`emptyProfileAvatar.png`;async function l(){if(!(typeof window>`u`)){for(let e of[`loginIssuer`,`preLoginRedirectHash`])window.localStorage.removeItem(e),window.sessionStorage.removeItem(e);if(!(typeof indexedDB>`u`))for(let e of[`soidc`,`solid-client-authn-store`,`solid-client-authn`])await new Promise(t=>{try{let n=indexedDB.deleteDatabase(e);n.onsuccess=()=>t(),n.onerror=()=>t(),n.onblocked=()=>t()}catch{t()}})}}var u=class extends r.LitElement{static properties={logo:{type:String,reflect:!0},helpIcon:{type:String,attribute:`help-icon`,reflect:!0},layout:{type:String,reflect:!0},theme:{type:String,reflect:!0},brandLink:{type:String,attribute:`brand-link`,reflect:!0},authState:{type:String,attribute:`auth-state`,reflect:!0},loginAction:{type:Object,attribute:!1},signUpAction:{type:Object,attribute:!1},accountMenu:{type:Array,attribute:!1},logoutLabel:{type:String,attribute:`logout-label`,reflect:!0},logoutIcon:{type:String,attribute:`logout-icon`,reflect:!0},accountIcon:{type:String,attribute:`account-icon`,reflect:!0},accountAvatar:{type:String,attribute:`account-avatar`,reflect:!0},accountAvatarFallback:{type:String,attribute:`account-avatar-fallback`,reflect:!0},loginIcon:{type:String,attribute:`login-icon`,reflect:!0},signUpIcon:{type:String,attribute:`sign-up-icon`,reflect:!0},helpMenuList:{type:Array},accountMenuOpen:{state:!0},helpMenuOpen:{state:!0},hasSlottedAccountMenu:{state:!0},hasSlottedHelpMenu:{state:!0},authResolved:{state:!0}};static styles=r.css`
2
- :host { /* default theme */
3
- display: block;
4
- --header-bg: var(--color-header-row-bg, #332746);
5
- --header-text: var(--color-header-text, #ffffff);
6
- --header-border: var(--color-border, #efecf3);
7
- --header-line: var(--color-header-menu-separator-line, #5e546d);
8
- --header-link: var(--color-text-heading, #000000);
9
- --header-menu-item-hover: var(--color-header-menu-item-hover, #e6dcff);
10
- --header-menu-item-selected: var(--color-header-menu-item-selected, #cbb9ff);
11
- --header-menu-bg: var(--color-menu-bg, #f6f5f9);
12
- --header-menu-loggedin-bg: var(--color-header-menu-loggedin-bg, #5e546d);
13
- --header-menu-text: var(--color-menu-item-text, #654d6c);
14
- --header-border-radius: var(--border-radius-sm, 0.2rem);
15
- --header-button-bg: var(--color-menu-bg, #ffffff);
16
- --header-button-text: var(--color-header-button-text, #0F172B);
17
- --header-button-detail-text: var(--color-header-button-detail-text, #99A1AF);
18
- --header-shadow: var(--color-header-shadow, 2px 6px 10px 0 rgba(0, 0, 0, 0.4), 2px 8px 24px 0 rgba(0, 0, 0, 0.19));
19
- font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);
20
- }
21
-
22
- /* for now light and dark are the same */
23
- :host([theme='dark']) {
24
- display: block;
25
- --header-bg: var(--color-header-row-bg, #332746);
26
- --header-text: var(--color-header-text, #ffffff);
27
- --header-border: var(--color-border, #efecf3);
28
- --header-line: var(--color-header-menu-separator-line, #5e546d);
29
- --header-link: var(--color-text-heading, #000000);
30
- --header-menu-item-hover: var(--color-header-menu-item-hover, #e6dcff);
31
- --header-menu-item-selected: var(--color-header-menu-item-selected, #cbb9ff);
32
- --header-menu-bg: var(--color-menu-bg, #f6f5f9);
33
- --header-menu-loggedin-bg: var(--color-header-menu-loggedin-bg, #5e546d);
34
- --header-menu-text: var(--color-menu-item-text, #654d6c);
35
- --header-border-radius: var(--border-radius-sm, 0.2rem);
36
- --header-button-bg: var(--color-menu-bg, #ffffff);
37
- --header-button-text: var(--color-header-button-text, #0f172a);
38
- --header-button-detail-text: var(--color-header-button-detail-text, #878192);
39
- --header-icon-filter: invert(1) brightness(1.3); /* special way to invert SVG color of icons, from white to black */
40
- --header-shadow: var(--color-header-shadow, 2px 6px 10px 0 rgba(0, 0, 0, 0.4), 2px 8px 24px 0 rgba(0, 0, 0, 0.19));
41
- font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);
42
- }
43
-
44
- :host([layout='mobile']) .headerInner {
45
- flex-wrap: wrap;
46
- text-align: center;
47
- gap: 0.5rem;
48
- }
49
-
50
- .headerInner {
51
- display: flex;
52
- align-items: center;
53
- justify-content: space-between;
54
- background: var(--header-bg);
55
- color: var(--header-text);
56
- padding: 0 1.5rem;
57
- height: 3.75rem;
58
- }
59
-
60
- ::slotted([slot='navigation-toggle']) {
61
- display: inline-flex;
62
- align-items: center;
63
- justify-content: center;
64
- flex-shrink: 0;
65
- margin-right: 0.75rem;
66
- }
67
-
68
- :host([layout='desktop']) ::slotted([slot='navigation-toggle']) {
69
- display: none !important;
70
- }
71
-
72
- .brand {
73
- display: flex;
74
- align-items: center;
75
- gap: 0.5rem;
76
- text-decoration: none;
77
- color: inherit;
78
- }
79
-
80
- .brand-not-displayed {
81
- display: none;
82
- }
83
-
84
- .brand img {
85
- height: 50px;
86
- width: 55px;
87
- object-fit: contain;
88
- }
89
-
90
- .menu {
91
- display: flex;
92
- align-items: center;
93
- gap: 0.625rem;
94
- margin-left: auto;
95
- }
96
-
97
- .auth-actions {
98
- display: flex;
99
- align-items: center;
100
- gap: 0.625rem;
101
- }
102
-
103
- .auth-button {
104
- display: inline-flex;
105
- align-items: center;
106
- justify-content: center;
107
- gap: 0.5rem;
108
- min-height: 2.25rem;
109
- padding: 0.5rem 0.875rem;
110
- border: 1px solid var(--header-border);
111
- border-radius: 999px;
112
- background: var(--header-menu-bg);
113
- color: var(--header-button-text);
114
- cursor: pointer;
115
- font: inherit;
116
- line-height: 1;
117
- text-decoration: none;
118
- box-sizing: border-box;
119
- transition: border-color 0.2s ease, transform 0.2s ease;
120
- }
121
-
122
- .auth-button:hover {
123
- border-color: var(--header-menu-item-hover);
124
- }
125
-
126
- .auth-button:active {
127
- transform: translateY(1px);
128
- }
129
-
130
- .auth-button-sign-up {
131
- background: color-mix(in srgb, var(--header-menu-bg) 78%, var(--header-menu-item-selected) 22%);
132
- }
133
-
134
- .header-menu-separator {
135
- background: var(--header-line);
136
- width: 1px;
137
- height: 2.3rem;
138
- }
139
-
140
- .account-menu-container {
141
- position: relative;
142
- display: flex;
143
- align-items: center;
144
- }
145
-
146
- .account-menu-trigger {
147
- display: inline-flex;
148
- align-items: center;
149
- gap: 0.625rem;
150
- min-height: 2.5rem;
151
- border: 1px solid var(--header-menu-loggedin-bg);
152
- border-radius: 999px;
153
- background: var(--header-menu-loggedin-bg);
154
- color: var(--header-button-text);
155
- cursor: pointer;
156
- font: inherit;
157
- line-height: 1;
158
- }
159
-
160
- :host([layout='mobile']) .account-menu-trigger {
161
- gap: 0;
162
- min-height: auto;
163
- padding: 0;
164
- border: 1.5px solid var(--header-border);
165
- background: var(--header-menu-loggedin-bg);
166
- }
167
-
168
- :host([layout='mobile']) .account-menu-trigger-label {
169
- display: none;
170
- }
171
-
172
- .account-menu-trigger:disabled {
173
- cursor: default;
174
- opacity: 0.7;
175
- }
176
-
177
- .account-menu-trigger-icon {
178
- width: 1rem;
179
- height: 1rem;
180
- object-fit: contain;
181
- flex-shrink: 0;
182
- }
183
-
184
- .account-avatar,
185
- .account-menu-avatar {
186
- display: inline-flex;
187
- align-items: center;
188
- justify-content: center;
189
- flex-shrink: 0;
190
- overflow: hidden;
191
- background: color-mix(in srgb, var(--header-bg) 18%, #ded8e7 82%);
192
- color: var(--header-button-text);
193
- font-size: 0.75rem;
194
- font-weight: 600;
195
- text-transform: uppercase;
196
- }
197
-
198
- .account-avatar {
199
- width: 1.75rem;
200
- height: 1.75rem;
201
- border-radius: 999px;
202
- border: 1.5px solid var(--header-border);
203
- }
204
-
205
- .account-menu-avatar {
206
- width: 2rem;
207
- height: 2rem;
208
- border-radius: 0.5rem;
209
- }
210
-
211
- .account-avatar img,
212
- .account-menu-avatar img {
213
- width: 100%;
214
- height: 100%;
215
- object-fit: cover;
216
- }
217
-
218
- .account-avatar-img {
219
- width: 1.75rem;
220
- height: 1.75rem;
221
- border-radius: 999px;
222
- object-fit: cover;
223
- background-color: var(--header-border);
224
- }
225
-
226
- .account-dropdown {
227
- position: absolute;
228
- top: calc(100% + 0.9rem);
229
- right: 0;
230
- min-width: 15rem;
231
- padding: 0.5rem;
232
- background: var(--header-button-bg);
233
- border: 1px solid var(--header-border);
234
- border-radius: var(--header-border-radius);
235
- box-shadow: var(--header-shadow);
236
- z-index: 10;
237
- }
238
-
239
- .account-dropdown[hidden] {
240
- display: none;
241
- }
242
-
243
- .account-menu-list {
244
- list-style: none;
245
- margin: 0;
246
- padding: 0;
247
- display: flex;
248
- flex-direction: column;
249
- gap: 0.25rem;
250
- }
251
-
252
- .account-menu-item-link,
253
- .account-menu-item-button,
254
- ::slotted([slot='account-menu']) {
255
- display: flex;
256
- align-items: center;
257
- gap: 0.625rem;
258
- width: 100%;
259
- box-sizing: border-box;
260
- color: var(--header-link);
261
- text-decoration: none;
262
- background: transparent;
263
- border: 1px solid transparent;
264
- border-radius: 10px;
265
- padding: 0.5rem;
266
- cursor: pointer;
267
- font: inherit;
268
- text-align: left;
269
- }
270
-
271
- .account-menu-item-link:hover,
272
- .account-menu-item-button:hover {
273
- color: var(--header-link);
274
- background: var(--header-menu-item-hover);
275
- border-color: var(--header-menu-item-hover);
276
- }
277
-
278
- .account-menu-item-link:active,
279
- .account-menu-item-button:active {
280
- color: var(--header-link);
281
- background: var(--header-menu-item-selected);
282
- border-color: var(--header-menu-item-selected);
283
- transform: translateY(1px);
284
- }
285
-
286
- .account-switch {
287
- display: block;
288
- width: 100%;
289
- color: var(--header-menu-text);
290
- text-align: left;
291
- text-transform: uppercase;
292
- font-size: 80%;
293
- }
294
-
295
- .dropdown-menu-separator {
296
- display: block;
297
- width: calc(100% + 1rem);
298
- margin: 0.5rem -0.5rem;
299
- border: 0;
300
- border-top: 1px solid var(--header-border);
301
- }
302
-
303
- .account-menu-copy {
304
- display: flex;
305
- flex-direction: column;
306
- min-width: 0;
307
- }
308
-
309
- .account-menu-label {
310
- color: var(--header-button-text);
311
- overflow: hidden;
312
- text-overflow: ellipsis;
313
- white-space: nowrap;
314
- }
315
-
316
- .account-menu-webid {
317
- color: var(--header-button-detail-text);
318
- font-size: 0.5rem;
319
- overflow: hidden;
320
- text-overflow: ellipsis;
321
- white-space: nowrap;
322
- }
323
-
324
- .help-menu-container {
325
- position: relative;
326
- display: flex;
327
- align-items: center;
328
- background: transparent;
329
- }
330
-
331
- .help-menu-trigger {
332
- display: inline-flex;
333
- align-items: center;
334
- justify-content: center;
335
- padding: 0;
336
- border: 0;
337
- background: transparent;
338
- cursor: pointer;
339
- }
340
-
341
- .help-menu-trigger:disabled {
342
- cursor: default;
343
- }
344
-
345
- .help-dropdown {
346
- position: absolute;
347
- top: calc(100% + 0.9rem);
348
- right: 0;
349
- min-width: 12rem;
350
- padding: 0.5rem;
351
- background: var(--header-button-bg);
352
- border: 1px solid var(--header-border);
353
- border-radius: var(--header-border-radius);
354
- box-shadow: var(--header-shadow);
355
- z-index: 10;
356
- }
357
-
358
- .help-dropdown[hidden] {
359
- display: none;
360
- }
361
-
362
- .help-dropdown-content {
363
- display: flex;
364
- flex-direction: column;
365
- gap: 0.25rem;
366
- }
367
-
368
- .help-menu-list {
369
- list-style: none;
370
- margin: 0;
371
- padding: 0;
372
- display: flex;
373
- flex-direction: column;
374
- gap: 0.25rem;
375
- }
376
-
377
- .help-menu-list a,
378
- .help-menu-list button,
379
- ::slotted([slot='help-menu']) {
380
- display: block;
381
- width: 100%;
382
- box-sizing: border-box;
383
- color: var(--header-link);
384
- text-decoration: none;
385
- background: transparent;
386
- border: 1px solid transparent;
387
- border-radius: 4px;
388
- padding: 0.375rem 0.5rem;
389
- cursor: pointer;
390
- font: inherit;
391
- text-align: left;
392
- }
393
-
394
- .help-menu-list a:hover,
395
- .help-menu-list button:hover {
396
- color: var(--header-link);
397
- background: var(--header-menu-item-hover);
398
- border-color: var(--header-menu-item-hover);
399
- }
400
-
401
- .help-menu-list a:active,
402
- .help-menu-list button:active {
403
- color: var(--header-link);
404
- background: var(--header-menu-item-selected);
405
- border-color: var(--header-menu-item-selected);
406
- transform: translateY(1px);
407
- }
408
-
409
- ::slotted(a), ::slotted(button) {
410
- color: var(--header-link);
411
- text-decoration: none;
412
- background: var(--header-button-bg);
413
- border: 1px solid var(--header-border);
414
- border-radius: 4px;
415
- padding: 0.25rem 0.5rem;
416
- cursor: pointer;
417
- font: inherit;
418
- }
419
-
420
- .help-icon {
421
- width: 35px;
422
- height: 35px;
423
- cursor: pointer;
424
- }
425
-
426
- .help-text {
427
- color: var(--header-text, #ffffff);
428
- font: inherit;
429
- }
430
-
431
- .logout-action-icon {
432
- width: 16px;
433
- height: 16px;
434
- display: inline-block;
435
- object-fit: contain;
436
- margin-right: 0.5rem;
437
- }
438
- `;_refreshPromise=null;handleAuthSessionChange=()=>{this.refreshAuthStateFromSession().catch(()=>{})};constructor(){super(),this.logo=o,this.helpIcon=a,this.layout=`desktop`,this.theme=`light`,this.brandLink=`#`,this.authState=`logged-out`,this.loginAction={label:`Log In`,action:`login`},this.signUpAction={label:`Sign Up`,action:`sign-up`,url:s},this.accountMenu=[],this.logoutLabel=`Log Out`,this.logoutIcon=``,this.accountIcon=`▼`,this.accountAvatar=``,this.accountAvatarFallback=``,this.loginIcon=``,this.signUpIcon=``,this.helpMenuList=[],this.accountMenuOpen=!1,this.helpMenuOpen=!1,this.hasSlottedAccountMenu=!1,this.hasSlottedHelpMenu=!1,this.authResolved=!1}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this.handleDocumentClick),window.addEventListener(`keydown`,this.handleWindowKeydown),typeof n.authSession.events?.on==`function`&&(n.authSession.events.on(`login`,this.handleAuthSessionChange),n.authSession.events.on(`logout`,this.handleAuthSessionChange),n.authSession.events.on(`sessionRestore`,this.handleAuthSessionChange)),this.refreshAuthStateFromSession().catch(()=>{})}disconnectedCallback(){document.removeEventListener(`click`,this.handleDocumentClick),window.removeEventListener(`keydown`,this.handleWindowKeydown),typeof n.authSession.events?.off==`function`&&(n.authSession.events.off(`login`,this.handleAuthSessionChange),n.authSession.events.off(`logout`,this.handleAuthSessionChange),n.authSession.events.off(`sessionRestore`,this.handleAuthSessionChange)),super.disconnectedCallback()}async refreshAuthStateFromSession(){this._refreshPromise||=(async()=>{try{await n.authn.checkUser(),n.authn.currentUser()||await n.authn.checkUser()}catch{}})();try{await this._refreshPromise}finally{this._refreshPromise=null}this.authState=n.authn.currentUser()?`logged-in`:`logged-out`,this.authResolved=!0}handleHelpMenuClick(e,t){if(t.preventDefault(),this.helpMenuOpen=!1,this.dispatchEvent(new CustomEvent(`help-menu-select`,{detail:e,bubbles:!0,composed:!0})),e.url){let t=e.target||`_blank`,n=t===`_blank`?`noopener,noreferrer`:void 0;window.open(e.url,t,n)}}handleAccountMenuClick(e){this.accountMenuOpen=!1,this.dispatchEvent(new CustomEvent(`account-menu-select`,{detail:e,bubbles:!0,composed:!0}))}handleDocumentClick=e=>{e.composedPath().includes(this)||(this.accountMenuOpen=!1,this.helpMenuOpen=!1)};handleWindowKeydown=e=>{e.key===`Escape`&&(this.accountMenuOpen||this.helpMenuOpen)&&(this.accountMenuOpen=!1,this.helpMenuOpen=!1)};handleAccountSlotChange(e){let t=e.target;this.hasSlottedAccountMenu=t.assignedElements({flatten:!0}).length>0}handleHelpSlotChange(e){let t=e.target;this.hasSlottedHelpMenu=t.assignedElements({flatten:!0}).length>0}toggleAccountMenu(e){e.preventDefault(),this.hasAccountMenuItems()&&(this.helpMenuOpen=!1,this.accountMenuOpen=!this.accountMenuOpen)}toggleHelpMenu(e){e.preventDefault(),this.hasHelpMenuItems()&&(this.accountMenuOpen=!1,this.helpMenuOpen=!this.helpMenuOpen)}hasAccountMenuItems(){return!!(this.accountMenu?.length||this.hasSlottedAccountMenu||this.logoutLabel)}hasHelpMenuItems(){return!!(this.helpMenuList?.length||this.hasSlottedHelpMenu)}shouldRenderHelpMenu(){return this.layout!==`mobile`&&this.hasHelpMenuItems()}renderLoggedInAvatar(e,t=`account-avatar`){let n=!!e,i=n?e:this.accountAvatarFallback||c,a=n?`Profile Avatar`:`Default Avatar`;return this.layout===`mobile`&&t===`account-avatar`?r.html`<img class="account-avatar-img" src="${i}" alt="${a}" />`:r.html`
439
- <span class="${t}" aria-hidden="true">
440
- <img src="${i}" alt="${a}" />
441
- </span>
442
- `}renderLoggedOutActions(){return r.html`
443
- <div class="auth-actions" part="auth-actions">
444
- <slot name="login-action">
445
- <solid-ui-login-button
446
- label="${this.loginAction.label}"
447
- icon=${(0,i.ifDefined)(this.layout===`mobile`?void 0:this.loginIcon||this.loginAction.icon)}
448
- layout="${this.layout}"
449
- theme="${this.theme}"
450
- part="login-action"
451
- @login-success="${()=>this.handleLoginSuccess()}"
452
- ></solid-ui-login-button>
453
- </slot>
454
- <slot name="sign-up-action">
455
- <solid-ui-signup-button
456
- label="${this.signUpAction.label}"
457
- signup-url="${(0,i.ifDefined)(this.signUpAction.url)}"
458
- layout="${this.layout}"
459
- .icon=${(0,i.ifDefined)(this.layout===`mobile`?void 0:this.signUpIcon||this.signUpAction.icon)}
460
- theme="${this.theme}"
461
- part="sign-up-action"
462
- ></solid-ui-signup-button>
463
- </slot>
464
- </div>
465
- `}async handleLoginSuccess(){await this.refreshAuthStateFromSession(),this.dispatchEvent(new CustomEvent(`auth-action-select`,{detail:{role:`login`},bubbles:!0,composed:!0}))}async handleLogout(){this.accountMenuOpen=!1;let e=window.localStorage.getItem(`loginIssuer`)||``;try{await n.authSession.logout()}catch{}await l(),!await(0,n.performServerSideLogout)({issuer:e,postLogoutRedirectPath:`/`})&&(await this.refreshAuthStateFromSession(),this.dispatchEvent(new CustomEvent(`logout-select`,{detail:{role:`logout`},bubbles:!0,composed:!0})))}renderAccountMenuItem(e){let t=r.html`
466
- ${this.renderLoggedInAvatar(e.avatar,`account-menu-avatar`)}
467
- <span class="account-menu-copy">
468
- <span class="account-menu-label">${e.label}</span>
469
- ${e.webid&&this.layout!==`mobile`?r.html`<span class="account-menu-webid">${e.webid}</span>`:``}
470
- </span>
471
- `;return e.url?r.html`
472
- <a
473
- class="account-menu-item-link"
474
- href="${e.url}"
475
- @click="${()=>this.handleAccountMenuClick(e)}"
476
- part="account-menu-item"
477
- role="menuitem"
478
- >
479
- ${t}
480
- </a>
481
- `:r.html`
482
- <button
483
- class="account-menu-item-button"
484
- type="button"
485
- @click="${()=>this.handleAccountMenuClick(e)}"
486
- part="account-menu-item"
487
- role="menuitem"
488
- >
489
- ${t}
490
- </button>
491
- `}renderLoggedInActions(){return r.html`
492
- <div class="account-menu-container" part="account-menu-container">
493
- <slot name="account-trigger">
494
- <button
495
- id="accountMenuTrigger"
496
- class="account-menu-trigger"
497
- type="button"
498
- aria-haspopup="menu"
499
- aria-expanded="${this.accountMenuOpen?`true`:`false`}"
500
- ?disabled="${!this.hasAccountMenuItems()}"
501
- @click="${e=>this.toggleAccountMenu(e)}"
502
- part="account-menu-trigger"
503
- >
504
- ${this.renderLoggedInAvatar(this.accountAvatar)}
505
- ${this.layout!==`mobile`&&this.accountIcon?r.html`
506
- <img class="account-menu-trigger-icon" src="${this.accountIcon}" alt="" aria-hidden="true" />`:``}
507
- </button>
508
- </slot>
509
-
510
- <nav
511
- id="accountMenu"
512
- class="account-dropdown"
513
- role="menu"
514
- ?inert="${!this.accountMenuOpen||!this.hasAccountMenuItems()}"
515
- ?hidden="${!this.accountMenuOpen||!this.hasAccountMenuItems()}"
516
- part="account-dropdown"
517
- >
518
- <slot name="account-switch" class="account-switch">Switch account</slot>
519
- <hr class="dropdown-menu-separator" />
520
- <slot name="account-menu" @slotchange="${e=>this.handleAccountSlotChange(e)}"></slot>
521
- ${this.accountMenu&&this.accountMenu.length?r.html`
522
- <ul class="account-menu-list">
523
- ${this.accountMenu.map(e=>r.html`
524
- <li>${this.renderAccountMenuItem(e)}</li>
525
- `)}
526
- </ul>
527
- `:``}
528
- ${this.logoutLabel?r.html`
529
- <hr class="dropdown-menu-separator" />
530
- <button
531
- class="account-menu-item-button"
532
- type="button"
533
- @click="${()=>this.handleLogout()}"
534
- part="logout-action"
535
- role="menuitem"
536
- >
537
- ${this.logoutIcon&&this.layout!==`mobile`?r.html`<img class="logout-action-icon" src="${this.logoutIcon}" alt="" aria-hidden="true" part="logout-action-icon" />`:``}
538
- ${this.logoutLabel}
539
- </button>
540
- `:``}
541
- </nav>
542
- </div>
543
- `}renderUserArea(){return t.default.DESIGN_SYSTEM_HEADER_ACCOUNT?r.html`
544
- <solid-ui-provider>
545
- <solid-ui-account></solid-ui-account>
546
- </solid-ui-provider>
547
- `:this.authResolved?this.authState===`logged-out`?this.renderLoggedOutActions():this.renderLoggedInActions():r.html`<div class="auth-actions" part="auth-actions"></div>`}firstUpdated(){let e=this.shadowRoot?.getElementById(`brandLink`);e&&e.classList.toggle(`brand-not-displayed`,this.layout===`mobile`)}updated(e){if(e.has(`layout`)){let e=this.shadowRoot?.getElementById(`brandLink`);e&&e.classList.toggle(`brand-not-displayed`,this.layout===`mobile`)}}render(){return r.html`
548
- <div class="headerInner">
549
- <slot name="navigation-toggle"></slot>
550
- <a
551
- id="brandLink"
552
- class="brand"
553
- href="${this.brandLink}"
554
- part="brand"
555
- >
556
- <img id="brandImg" src="${this.logo}" alt="Logo" part="logo" />
557
- </a>
558
-
559
- <div class="menu" part="menu">
560
- ${this.renderUserArea()}
561
-
562
- ${this.shouldRenderHelpMenu()?r.html`
563
- <div class="header-menu-separator" />`:``}
564
-
565
- ${this.shouldRenderHelpMenu()?r.html`
566
- <div class="help-menu-container" part="help-menu-container">
567
- <button
568
- id="helpMenuTrigger"
569
- class="help-menu-trigger"
570
- type="button"
571
- aria-haspopup="menu"
572
- aria-expanded="${this.helpMenuOpen?`true`:`false`}"
573
- ?disabled="${!this.hasHelpMenuItems()}"
574
- @click="${e=>this.toggleHelpMenu(e)}"
575
- part="help-menu-trigger"
576
- >
577
- ${this.helpIcon?r.html`<img id="helpIcon" class="help-icon" src="${this.helpIcon}" alt="Help" part="help-icon" />`:r.html`<span class="help-text" part="help-text">Help</span>`}
578
- </button>
579
-
580
- <nav
581
- id="helpMenu"
582
- class="help-dropdown"
583
- role="menu"
584
- ?inert="${!this.helpMenuOpen||!this.hasHelpMenuItems()}"
585
- ?hidden="${!this.helpMenuOpen||!this.hasHelpMenuItems()}"
586
- part="help-dropdown"
587
- >
588
- <div class="help-dropdown-content" @click="${()=>{this.helpMenuOpen=!1}}">
589
- <slot name="help-menu" @slotchange="${e=>this.handleHelpSlotChange(e)}"></slot>
590
- ${this.helpMenuList&&this.helpMenuList.length?r.html`
591
- <ul class="help-menu-list">
592
- ${this.helpMenuList.map(e=>r.html`
593
- <li>
594
- ${e.url?r.html`
595
- <a
596
- href="${e.url}"
597
- target="${e.target||`_blank`}"
598
- rel="${(0,i.ifDefined)((e.target||`_blank`)===`_blank`?`noopener noreferrer`:void 0)}"
599
- @click="${t=>this.handleHelpMenuClick(e,t)}"
600
- part="help-menu-item"
601
- role="menuitem"
602
- >
603
- ${e.label}
604
- </a>
605
- `:r.html`
606
- <button
607
- type="button"
608
- @click="${t=>this.handleHelpMenuClick(e,t)}"
609
- part="help-menu-item"
610
- role="menuitem"
611
- >
612
- ${e.label}
613
- </button>
614
- `}
615
- </li>
616
- `)}
617
- </ul>
618
- `:``}
619
- </div>
620
- </nav>
621
- </div>`:``}
622
- </div>
623
- </div>
624
- `}};exports.Header=u;
625
- //# sourceMappingURL=Header.cjs.js.map