solid-ui 3.0.6 → 3.1.1-test.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/README.md +146 -2
  2. package/dist/acl/access-groups.js +1 -1
  3. package/dist/components/button/index.d.ts +1 -0
  4. package/dist/components/button/index.esm.js +546 -0
  5. package/dist/components/button/index.esm.js.map +1 -0
  6. package/dist/components/button/index.esm.min.js +268 -0
  7. package/dist/components/button/index.esm.min.js.map +1 -0
  8. package/dist/components/button/index.js +428 -0
  9. package/dist/components/button/index.js.map +1 -0
  10. package/dist/components/button/index.min.js +257 -0
  11. package/dist/components/button/index.min.js.map +1 -0
  12. package/dist/components/combobox/index.d.ts +1 -0
  13. package/dist/components/combobox/index.esm.js +953 -0
  14. package/dist/components/combobox/index.esm.js.map +1 -0
  15. package/dist/components/combobox/index.esm.min.js +339 -0
  16. package/dist/components/combobox/index.esm.min.js.map +1 -0
  17. package/dist/components/combobox/index.js +782 -0
  18. package/dist/components/combobox/index.js.map +1 -0
  19. package/dist/components/combobox/index.min.js +328 -0
  20. package/dist/components/combobox/index.min.js.map +1 -0
  21. package/dist/components/footer/index.d.ts +1 -0
  22. package/dist/components/footer/index.esm.js +24406 -0
  23. package/dist/components/footer/index.esm.js.map +1 -0
  24. package/dist/components/footer/index.esm.min.js +137 -0
  25. package/dist/components/footer/index.esm.min.js.map +1 -0
  26. package/dist/components/footer/index.js +23303 -0
  27. package/dist/components/footer/index.js.map +1 -0
  28. package/dist/components/footer/index.min.js +125 -0
  29. package/dist/components/footer/index.min.js.map +1 -0
  30. package/dist/components/header/index.d.ts +1 -0
  31. package/dist/components/header/index.esm.js +1936 -0
  32. package/dist/components/header/index.esm.js.map +1 -0
  33. package/dist/components/header/index.esm.min.js +1125 -0
  34. package/dist/components/header/index.esm.min.js.map +1 -0
  35. package/dist/components/header/index.js +1897 -0
  36. package/dist/components/header/index.js.map +1 -0
  37. package/dist/components/header/index.min.js +1126 -0
  38. package/dist/components/header/index.min.js.map +1 -0
  39. package/dist/components/loginButton/index.d.ts +1 -0
  40. package/dist/components/loginButton/index.esm.js +761 -0
  41. package/dist/components/loginButton/index.esm.js.map +1 -0
  42. package/dist/components/loginButton/index.esm.min.js +444 -0
  43. package/dist/components/loginButton/index.esm.min.js.map +1 -0
  44. package/dist/components/loginButton/index.js +743 -0
  45. package/dist/components/loginButton/index.js.map +1 -0
  46. package/dist/components/loginButton/index.min.js +444 -0
  47. package/dist/components/loginButton/index.min.js.map +1 -0
  48. package/dist/components/photoCapture/index.d.ts +1 -0
  49. package/dist/components/photoCapture/index.esm.js +966 -0
  50. package/dist/components/photoCapture/index.esm.js.map +1 -0
  51. package/dist/components/photoCapture/index.esm.min.js +304 -0
  52. package/dist/components/photoCapture/index.esm.min.js.map +1 -0
  53. package/dist/components/photoCapture/index.js +848 -0
  54. package/dist/components/photoCapture/index.js.map +1 -0
  55. package/dist/components/photoCapture/index.min.js +293 -0
  56. package/dist/components/photoCapture/index.min.js.map +1 -0
  57. package/dist/components/select/index.d.ts +1 -0
  58. package/dist/components/select/index.esm.js +939 -0
  59. package/dist/components/select/index.esm.js.map +1 -0
  60. package/dist/components/select/index.esm.min.js +370 -0
  61. package/dist/components/select/index.esm.min.js.map +1 -0
  62. package/dist/components/select/index.js +771 -0
  63. package/dist/components/select/index.js.map +1 -0
  64. package/dist/components/select/index.min.js +359 -0
  65. package/dist/components/select/index.min.js.map +1 -0
  66. package/dist/components/signupButton/index.d.ts +1 -0
  67. package/dist/components/signupButton/index.esm.js +270 -0
  68. package/dist/components/signupButton/index.esm.js.map +1 -0
  69. package/dist/components/signupButton/index.esm.min.js +82 -0
  70. package/dist/components/signupButton/index.esm.min.js.map +1 -0
  71. package/dist/components/signupButton/index.js +264 -0
  72. package/dist/components/signupButton/index.js.map +1 -0
  73. package/dist/components/signupButton/index.min.js +82 -0
  74. package/dist/components/signupButton/index.min.js.map +1 -0
  75. package/dist/footer/index.d.ts.map +1 -1
  76. package/dist/footer/index.js +8 -4
  77. package/dist/footer/index.js.map +1 -1
  78. package/dist/icons/v2/icons-svg/contactIcons.d.ts +3 -0
  79. package/dist/icons/v2/icons-svg/contactIcons.d.ts.map +1 -0
  80. package/dist/icons/v2/icons-svg/contactIcons.js +27 -0
  81. package/dist/icons/v2/icons-svg/contactIcons.js.map +1 -0
  82. package/dist/icons/v2/icons-svg/headerIcons.d.ts +18 -0
  83. package/dist/icons/v2/icons-svg/headerIcons.d.ts.map +1 -0
  84. package/dist/icons/v2/icons-svg/headerIcons.js +245 -0
  85. package/dist/icons/v2/icons-svg/headerIcons.js.map +1 -0
  86. package/dist/icons/v2/icons-svg/pngIcons.d.ts +3 -0
  87. package/dist/icons/v2/icons-svg/pngIcons.d.ts.map +1 -0
  88. package/dist/icons/v2/icons-svg/pngIcons.js +4 -0
  89. package/dist/icons/v2/icons-svg/pngIcons.js.map +1 -0
  90. package/dist/icons/v2/icons-svg/profileIcons.d.ts +23 -0
  91. package/dist/icons/v2/icons-svg/profileIcons.d.ts.map +1 -0
  92. package/dist/icons/v2/icons-svg/profileIcons.js +317 -0
  93. package/dist/icons/v2/icons-svg/profileIcons.js.map +1 -0
  94. package/dist/login/login.d.ts.map +1 -1
  95. package/dist/login/login.js +12 -2
  96. package/dist/login/login.js.map +1 -1
  97. package/dist/matrix/matrix.js.map +1 -1
  98. package/dist/pad.d.ts.map +1 -1
  99. package/dist/pad.js +13 -13
  100. package/dist/pad.js.map +1 -1
  101. package/dist/solid-ui.esm.js +9627 -12206
  102. package/dist/solid-ui.esm.js.map +1 -1
  103. package/dist/solid-ui.esm.min.js +15 -14
  104. package/dist/solid-ui.esm.min.js.map +1 -1
  105. package/dist/solid-ui.js +12621 -14833
  106. package/dist/solid-ui.js.map +1 -1
  107. package/dist/solid-ui.min.js +23 -22
  108. package/dist/solid-ui.min.js.map +1 -1
  109. package/dist/tabs.js +2 -2
  110. package/dist/tabs.js.map +1 -1
  111. package/dist/utils/headerFooterHelpers.d.ts.map +1 -1
  112. package/dist/utils/headerFooterHelpers.js +11 -2
  113. package/dist/utils/headerFooterHelpers.js.map +1 -1
  114. package/dist/v2/components/actions/button/Button.d.ts +97 -0
  115. package/dist/v2/components/actions/button/Button.d.ts.map +1 -0
  116. package/dist/v2/components/actions/button/Button.js +325 -0
  117. package/dist/v2/components/actions/button/Button.js.map +1 -0
  118. package/dist/v2/components/actions/button/Button.test.d.ts +2 -0
  119. package/dist/v2/components/actions/button/Button.test.d.ts.map +1 -0
  120. package/dist/v2/components/actions/button/Button.test.js +117 -0
  121. package/dist/v2/components/actions/button/Button.test.js.map +1 -0
  122. package/dist/v2/components/actions/button/index.d.ts +8 -0
  123. package/dist/v2/components/actions/button/index.d.ts.map +1 -0
  124. package/dist/v2/components/actions/button/index.js +7 -0
  125. package/dist/v2/components/actions/button/index.js.map +1 -0
  126. package/dist/v2/components/auth/loginButton/LoginButton.d.ts +62 -0
  127. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -0
  128. package/dist/v2/components/auth/loginButton/LoginButton.js +539 -0
  129. package/dist/v2/components/auth/loginButton/LoginButton.js.map +1 -0
  130. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts +2 -0
  131. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts.map +1 -0
  132. package/dist/v2/components/auth/loginButton/LoginButton.test.js +53 -0
  133. package/dist/v2/components/auth/loginButton/LoginButton.test.js.map +1 -0
  134. package/dist/v2/components/auth/loginButton/downArrow.d.ts +2 -0
  135. package/dist/v2/components/auth/loginButton/downArrow.d.ts.map +1 -0
  136. package/dist/v2/components/auth/loginButton/downArrow.js +10 -0
  137. package/dist/v2/components/auth/loginButton/downArrow.js.map +1 -0
  138. package/dist/v2/components/auth/loginButton/index.d.ts +3 -0
  139. package/dist/v2/components/auth/loginButton/index.d.ts.map +1 -0
  140. package/dist/v2/components/auth/loginButton/index.js +7 -0
  141. package/dist/v2/components/auth/loginButton/index.js.map +1 -0
  142. package/dist/v2/components/auth/signupButton/SignupButton.d.ts +36 -0
  143. package/dist/v2/components/auth/signupButton/SignupButton.d.ts.map +1 -0
  144. package/dist/v2/components/auth/signupButton/SignupButton.js +84 -0
  145. package/dist/v2/components/auth/signupButton/SignupButton.js.map +1 -0
  146. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts +2 -0
  147. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts.map +1 -0
  148. package/dist/v2/components/auth/signupButton/SignupButton.test.js +49 -0
  149. package/dist/v2/components/auth/signupButton/SignupButton.test.js.map +1 -0
  150. package/dist/v2/components/auth/signupButton/index.d.ts +3 -0
  151. package/dist/v2/components/auth/signupButton/index.d.ts.map +1 -0
  152. package/dist/v2/components/auth/signupButton/index.js +7 -0
  153. package/dist/v2/components/auth/signupButton/index.js.map +1 -0
  154. package/dist/v2/components/forms/combobox/Combobox.d.ts +82 -0
  155. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +1 -0
  156. package/dist/v2/components/forms/combobox/Combobox.js +506 -0
  157. package/dist/v2/components/forms/combobox/Combobox.js.map +1 -0
  158. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +2 -0
  159. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +1 -0
  160. package/dist/v2/components/forms/combobox/Combobox.test.js +201 -0
  161. package/dist/v2/components/forms/combobox/Combobox.test.js.map +1 -0
  162. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +6 -0
  163. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +1 -0
  164. package/dist/v2/components/forms/combobox/comboboxTypes.js +2 -0
  165. package/dist/v2/components/forms/combobox/comboboxTypes.js.map +1 -0
  166. package/dist/v2/components/forms/combobox/index.d.ts +3 -0
  167. package/dist/v2/components/forms/combobox/index.d.ts.map +1 -0
  168. package/dist/v2/components/forms/combobox/index.js +7 -0
  169. package/dist/v2/components/forms/combobox/index.js.map +1 -0
  170. package/dist/v2/components/forms/select/Select.d.ts +68 -0
  171. package/dist/v2/components/forms/select/Select.d.ts.map +1 -0
  172. package/dist/v2/components/forms/select/Select.js +499 -0
  173. package/dist/v2/components/forms/select/Select.js.map +1 -0
  174. package/dist/v2/components/forms/select/Select.test.d.ts +2 -0
  175. package/dist/v2/components/forms/select/Select.test.d.ts.map +1 -0
  176. package/dist/v2/components/forms/select/Select.test.js +168 -0
  177. package/dist/v2/components/forms/select/Select.test.js.map +1 -0
  178. package/dist/v2/components/forms/select/index.d.ts +3 -0
  179. package/dist/v2/components/forms/select/index.d.ts.map +1 -0
  180. package/dist/v2/components/forms/select/index.js +7 -0
  181. package/dist/v2/components/forms/select/index.js.map +1 -0
  182. package/dist/v2/components/forms/shared/downArrow.d.ts +2 -0
  183. package/dist/v2/components/forms/shared/downArrow.d.ts.map +1 -0
  184. package/dist/v2/components/forms/shared/downArrow.js +10 -0
  185. package/dist/v2/components/forms/shared/downArrow.js.map +1 -0
  186. package/dist/v2/components/forms/shared/keyboard.d.ts +7 -0
  187. package/dist/v2/components/forms/shared/keyboard.d.ts.map +1 -0
  188. package/dist/v2/components/forms/shared/keyboard.js +56 -0
  189. package/dist/v2/components/forms/shared/keyboard.js.map +1 -0
  190. package/dist/v2/components/forms/shared/listboxStyles.d.ts +2 -0
  191. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +1 -0
  192. package/dist/v2/components/forms/shared/listboxStyles.js +96 -0
  193. package/dist/v2/components/forms/shared/listboxStyles.js.map +1 -0
  194. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +11 -0
  195. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +1 -0
  196. package/dist/v2/components/forms/shared/listboxTemplate.js +37 -0
  197. package/dist/v2/components/forms/shared/listboxTemplate.js.map +1 -0
  198. package/dist/v2/components/forms/shared/optionTypes.d.ts +6 -0
  199. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +1 -0
  200. package/dist/v2/components/forms/shared/optionTypes.js +2 -0
  201. package/dist/v2/components/forms/shared/optionTypes.js.map +1 -0
  202. package/dist/v2/components/layout/footer/Footer.d.ts +60 -0
  203. package/dist/v2/components/layout/footer/Footer.d.ts.map +1 -0
  204. package/dist/v2/components/layout/footer/Footer.js +148 -0
  205. package/dist/v2/components/layout/footer/Footer.js.map +1 -0
  206. package/dist/v2/components/layout/footer/Footer.test.d.ts +2 -0
  207. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +1 -0
  208. package/dist/v2/components/layout/footer/Footer.test.js +53 -0
  209. package/dist/v2/components/layout/footer/Footer.test.js.map +1 -0
  210. package/dist/v2/components/layout/footer/index.d.ts +3 -0
  211. package/dist/v2/components/layout/footer/index.d.ts.map +1 -0
  212. package/dist/v2/components/layout/footer/index.js +7 -0
  213. package/dist/v2/components/layout/footer/index.js.map +1 -0
  214. package/dist/v2/components/layout/header/Header.d.ts +155 -0
  215. package/dist/v2/components/layout/header/Header.d.ts.map +1 -0
  216. package/dist/v2/components/layout/header/Header.js +845 -0
  217. package/dist/v2/components/layout/header/Header.js.map +1 -0
  218. package/dist/v2/components/layout/header/header.test.d.ts +2 -0
  219. package/dist/v2/components/layout/header/header.test.d.ts.map +1 -0
  220. package/dist/v2/components/layout/header/header.test.js +242 -0
  221. package/dist/v2/components/layout/header/header.test.js.map +1 -0
  222. package/dist/v2/components/layout/header/index.d.ts +4 -0
  223. package/dist/v2/components/layout/header/index.d.ts.map +1 -0
  224. package/dist/v2/components/layout/header/index.js +7 -0
  225. package/dist/v2/components/layout/header/index.js.map +1 -0
  226. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +200 -0
  227. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +1 -0
  228. package/dist/v2/components/media/photoCapture/PhotoCapture.js +723 -0
  229. package/dist/v2/components/media/photoCapture/PhotoCapture.js.map +1 -0
  230. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +2 -0
  231. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +1 -0
  232. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js +157 -0
  233. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js.map +1 -0
  234. package/dist/v2/components/media/photoCapture/index.d.ts +3 -0
  235. package/dist/v2/components/media/photoCapture/index.d.ts.map +1 -0
  236. package/dist/v2/components/media/photoCapture/index.js +7 -0
  237. package/dist/v2/components/media/photoCapture/index.js.map +1 -0
  238. package/dist/versionInfo.js +15 -15
  239. package/dist/widgets/buttons.d.ts +10 -3
  240. package/dist/widgets/buttons.d.ts.map +1 -1
  241. package/dist/widgets/buttons.js +81 -7
  242. package/dist/widgets/buttons.js.map +1 -1
  243. package/package.json +139 -46
@@ -0,0 +1,148 @@
1
+ import { LitElement, html, css } from 'lit';
2
+ import { authSession, authn } from 'solid-logic';
3
+ import { getName } from '../../../../utils/headerFooterHelpers';
4
+ export class Footer extends LitElement {
5
+ constructor() {
6
+ super();
7
+ this.theme = 'light';
8
+ this.layout = 'desktop';
9
+ this.position = 'static';
10
+ this.top = 'auto';
11
+ this.right = 'auto';
12
+ this.bottom = 'auto';
13
+ this.left = 'auto';
14
+ this.store = null;
15
+ this._user = null;
16
+ this._updateFooter = this._updateFooter.bind(this);
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback();
20
+ authSession.events.on('login', this._updateFooter);
21
+ authSession.events.on('logout', this._updateFooter);
22
+ this._updateFooter();
23
+ }
24
+ disconnectedCallback() {
25
+ if (typeof authSession.events.off === 'function') {
26
+ authSession.events.off('login', this._updateFooter);
27
+ authSession.events.off('logout', this._updateFooter);
28
+ }
29
+ else if (typeof authSession.events.removeListener === 'function') {
30
+ authSession.events.removeListener('login', this._updateFooter);
31
+ authSession.events.removeListener('logout', this._updateFooter);
32
+ }
33
+ super.disconnectedCallback();
34
+ }
35
+ updated(changedProperties) {
36
+ if (changedProperties.has('position') ||
37
+ changedProperties.has('top') ||
38
+ changedProperties.has('right') ||
39
+ changedProperties.has('bottom') ||
40
+ changedProperties.has('left')) {
41
+ this._updatePositionStyles();
42
+ }
43
+ }
44
+ _updatePositionStyles() {
45
+ this.style.setProperty('--footer-position', this.position);
46
+ this.style.setProperty('--footer-top', this.top);
47
+ this.style.setProperty('--footer-right', this.right);
48
+ this.style.setProperty('--footer-bottom', this.bottom);
49
+ this.style.setProperty('--footer-left', this.left);
50
+ }
51
+ _updateFooter() {
52
+ this._user = authn.currentUser();
53
+ }
54
+ render() {
55
+ return html `
56
+ <footer class="footer">
57
+ ${this._renderFooterContent()}
58
+ </footer>
59
+ `;
60
+ }
61
+ _renderFooterContent() {
62
+ if (!this._user) {
63
+ return html `
64
+ <div>
65
+ <strong>Public View</strong>
66
+ <div>You are viewing this profile as a guest.</div>
67
+ </div>
68
+ `;
69
+ }
70
+ const userName = this.store ? getName(this.store, this._user) : this._user.uri;
71
+ return html `
72
+ <div>
73
+ <strong>Logged in View</strong>
74
+ <div>
75
+ You are logged in as
76
+ <a href=${this._user.uri} target="_blank" rel="noopener noreferrer">${userName}</a>.
77
+ </div>
78
+ </div>
79
+ `;
80
+ }
81
+ }
82
+ Footer.properties = {
83
+ theme: { type: String, reflect: true },
84
+ layout: { type: String, reflect: true },
85
+ position: { type: String, reflect: true },
86
+ top: { type: String, reflect: true },
87
+ right: { type: String, reflect: true },
88
+ bottom: { type: String, reflect: true },
89
+ left: { type: String, reflect: true },
90
+ store: { type: Object, attribute: false },
91
+ _user: { state: true }
92
+ };
93
+ Footer.styles = css `
94
+ :host {
95
+ display: block;
96
+ position: var(--footer-position, static);
97
+ top: var(--footer-top, auto);
98
+ right: var(--footer-right, auto);
99
+ bottom: var(--footer-bottom, auto);
100
+ left: var(--footer-left, auto);
101
+ width: auto;
102
+ max-width: var(--footer-max-width, none);
103
+ margin: var(--footer-margin, 0);
104
+ box-sizing: border-box;
105
+ color: var(--footer-text, #4f4f4f);
106
+ background: transparent;
107
+ border: 1px solid var(--footer-border, rgba(0, 0, 0, 0.12));
108
+ border-radius: var(--footer-border-radius, 1rem);
109
+ box-shadow: var(--footer-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.08));
110
+ font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);
111
+ }
112
+
113
+ .footer {
114
+ display: flex;
115
+ justify-content: flex-start;
116
+ align-items: flex-start;
117
+ gap: 0.25rem;
118
+ font-size: 0.75rem;
119
+ line-height: 1.5;
120
+ text-align: left;
121
+ }
122
+
123
+ .footer a {
124
+ color: var(--footer-link, #4b32a8);
125
+ text-decoration: none;
126
+ font-weight: 600;
127
+ }
128
+
129
+ .footer a:hover {
130
+ text-decoration: underline;
131
+ }
132
+
133
+ .footer span {
134
+ color: inherit;
135
+ }
136
+
137
+ .footer div > strong {
138
+ display: block;
139
+ margin-bottom: 0.5rem;
140
+ }
141
+
142
+ :host([layout='mobile']) {
143
+ border: none;
144
+ box-shadow: none;
145
+ border-radius: 0;
146
+ }
147
+ `;
148
+ //# sourceMappingURL=Footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../../src/v2/components/layout/footer/Footer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import './index';
2
+ //# sourceMappingURL=Footer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.test.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/layout/footer/Footer.test.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { Footer } from './Footer';
2
+ import './index';
3
+ import { authn } from 'solid-logic';
4
+ describe('SolidUIFooterElement', () => {
5
+ it('is defined as a custom element', () => {
6
+ const defined = customElements.get('solid-ui-footer');
7
+ expect(defined).toBe(Footer);
8
+ });
9
+ it('renders a public view when not logged in', async () => {
10
+ const footer = new Footer();
11
+ document.body.appendChild(footer);
12
+ await footer.updateComplete;
13
+ const shadow = footer.shadowRoot;
14
+ expect(shadow).not.toBeNull();
15
+ expect(shadow === null || shadow === void 0 ? void 0 : shadow.textContent).toContain('Public View');
16
+ expect(shadow === null || shadow === void 0 ? void 0 : shadow.textContent).toContain('You are viewing this profile as a guest.');
17
+ });
18
+ it('renders a logged in view when the user is authenticated', async () => {
19
+ const currentUser = { uri: 'https://alice.example/profile/card#me', equals: jest.fn(() => true) };
20
+ const currentUserSpy = jest.spyOn(authn, 'currentUser').mockReturnValue(currentUser);
21
+ const footer = new Footer();
22
+ document.body.appendChild(footer);
23
+ await footer.updateComplete;
24
+ const shadow = footer.shadowRoot;
25
+ expect(shadow).not.toBeNull();
26
+ expect(shadow === null || shadow === void 0 ? void 0 : shadow.textContent).toContain('Logged in View');
27
+ expect(shadow === null || shadow === void 0 ? void 0 : shadow.textContent).toContain('You are logged in as');
28
+ const link = shadow === null || shadow === void 0 ? void 0 : shadow.querySelector('a');
29
+ expect(link === null || link === void 0 ? void 0 : link.getAttribute('href')).toBe('https://alice.example/profile/card#me');
30
+ expect(link === null || link === void 0 ? void 0 : link.textContent).toBe('https://alice.example/profile/card#me');
31
+ currentUserSpy.mockRestore();
32
+ });
33
+ it('defaults layout to desktop', async () => {
34
+ const footer = new Footer();
35
+ document.body.appendChild(footer);
36
+ await footer.updateComplete;
37
+ expect(footer.layout).toBe('desktop');
38
+ expect(footer.getAttribute('layout')).toBe('desktop');
39
+ });
40
+ it('applies mobile layout styles by removing border, box-shadow and border-radius', async () => {
41
+ var _a, _b;
42
+ const footer = new Footer();
43
+ footer.layout = 'mobile';
44
+ document.body.appendChild(footer);
45
+ await footer.updateComplete;
46
+ const style = (_b = (_a = footer.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('style')) === null || _b === void 0 ? void 0 : _b.textContent;
47
+ expect(style).toContain(':host([layout=\'mobile\'])');
48
+ expect(style).toContain('border: none;');
49
+ expect(style).toContain('box-shadow: none;');
50
+ expect(footer.getAttribute('layout')).toBe('mobile');
51
+ });
52
+ });
53
+ //# sourceMappingURL=Footer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.test.js","sourceRoot":"","sources":["../../../../../src/v2/components/layout/footer/Footer.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Footer } from './Footer';
2
+ export { Footer };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/layout/footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Footer } from './Footer';
2
+ export { Footer };
3
+ const FOOTER_TAG_NAME = 'solid-ui-footer';
4
+ if (!customElements.get(FOOTER_TAG_NAME)) {
5
+ customElements.define(FOOTER_TAG_NAME, Footer);
6
+ }
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/v2/components/layout/footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;IACzC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,155 @@
1
+ import { LitElement } from 'lit';
2
+ import '../../auth/loginButton/index';
3
+ import '../../auth/signupButton/index';
4
+ export type HeaderAuthState = 'logged-out' | 'logged-in';
5
+ export type HeaderMenuItem = {
6
+ label: string;
7
+ url?: string;
8
+ target?: string;
9
+ action?: string;
10
+ icon?: string;
11
+ };
12
+ export type HeaderAccountMenuItem = HeaderMenuItem & {
13
+ avatar?: string;
14
+ webid?: string;
15
+ };
16
+ export declare class Header extends LitElement {
17
+ static properties: {
18
+ logo: {
19
+ type: StringConstructor;
20
+ reflect: boolean;
21
+ };
22
+ helpIcon: {
23
+ type: StringConstructor;
24
+ attribute: string;
25
+ reflect: boolean;
26
+ };
27
+ layout: {
28
+ type: StringConstructor;
29
+ reflect: boolean;
30
+ };
31
+ theme: {
32
+ type: StringConstructor;
33
+ reflect: boolean;
34
+ };
35
+ brandLink: {
36
+ type: StringConstructor;
37
+ attribute: string;
38
+ reflect: boolean;
39
+ };
40
+ authState: {
41
+ type: StringConstructor;
42
+ attribute: string;
43
+ reflect: boolean;
44
+ };
45
+ loginAction: {
46
+ type: ObjectConstructor;
47
+ attribute: boolean;
48
+ };
49
+ signUpAction: {
50
+ type: ObjectConstructor;
51
+ attribute: boolean;
52
+ };
53
+ accountMenu: {
54
+ type: ArrayConstructor;
55
+ attribute: boolean;
56
+ };
57
+ logoutLabel: {
58
+ type: StringConstructor;
59
+ attribute: string;
60
+ reflect: boolean;
61
+ };
62
+ logoutIcon: {
63
+ type: StringConstructor;
64
+ attribute: string;
65
+ reflect: boolean;
66
+ };
67
+ accountIcon: {
68
+ type: StringConstructor;
69
+ attribute: string;
70
+ reflect: boolean;
71
+ };
72
+ accountAvatar: {
73
+ type: StringConstructor;
74
+ attribute: string;
75
+ reflect: boolean;
76
+ };
77
+ accountAvatarFallback: {
78
+ type: StringConstructor;
79
+ attribute: string;
80
+ reflect: boolean;
81
+ };
82
+ loginIcon: {
83
+ type: StringConstructor;
84
+ attribute: string;
85
+ reflect: boolean;
86
+ };
87
+ signUpIcon: {
88
+ type: StringConstructor;
89
+ attribute: string;
90
+ reflect: boolean;
91
+ };
92
+ helpMenuList: {
93
+ type: ArrayConstructor;
94
+ };
95
+ accountMenuOpen: {
96
+ state: boolean;
97
+ };
98
+ helpMenuOpen: {
99
+ state: boolean;
100
+ };
101
+ hasSlottedAccountMenu: {
102
+ state: boolean;
103
+ };
104
+ hasSlottedHelpMenu: {
105
+ state: boolean;
106
+ };
107
+ };
108
+ static styles: import("lit").CSSResult;
109
+ logo: string;
110
+ helpIcon: string;
111
+ layout: 'desktop' | 'mobile';
112
+ theme: 'light' | 'dark';
113
+ brandLink: string;
114
+ authState: HeaderAuthState;
115
+ loginAction: HeaderMenuItem;
116
+ signUpAction: HeaderMenuItem;
117
+ accountMenu: HeaderAccountMenuItem[];
118
+ logoutLabel: string | null;
119
+ logoutIcon: string;
120
+ accountIcon: string;
121
+ accountAvatar: string;
122
+ accountAvatarFallback: string;
123
+ loginIcon: string;
124
+ signUpIcon: string;
125
+ helpMenuList: HeaderMenuItem[];
126
+ accountMenuOpen: boolean;
127
+ helpMenuOpen: boolean;
128
+ hasSlottedAccountMenu: boolean;
129
+ hasSlottedHelpMenu: boolean;
130
+ constructor();
131
+ connectedCallback(): void;
132
+ disconnectedCallback(): void;
133
+ private handleHelpMenuClick;
134
+ private handleAccountMenuClick;
135
+ private readonly handleDocumentClick;
136
+ private readonly handleWindowKeydown;
137
+ private handleAccountSlotChange;
138
+ private handleHelpSlotChange;
139
+ private toggleAccountMenu;
140
+ private toggleHelpMenu;
141
+ private hasAccountMenuItems;
142
+ private hasHelpMenuItems;
143
+ private shouldRenderHelpMenu;
144
+ private renderLoggedInAvatar;
145
+ private renderLoggedOutActions;
146
+ private handleLoginSuccess;
147
+ private handleLogout;
148
+ private renderAccountMenuItem;
149
+ private renderLoggedInActions;
150
+ private renderUserArea;
151
+ protected firstUpdated(): void;
152
+ protected updated(changedProperties: Map<string, unknown>): void;
153
+ render(): import("lit-html").TemplateResult<1>;
154
+ }
155
+ //# sourceMappingURL=Header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/layout/header/Header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAA;AAG3C,OAAO,8BAA8B,CAAA;AACrC,OAAO,+BAA+B,CAAA;AAQtC,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,CAAA;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAsBhB;IAED,MAAM,CAAC,MAAM,0BAqbZ;IAEO,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC5B,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,eAAe,CAAA;IAC1B,WAAW,EAAE,cAAc,CAAA;IAC3B,YAAY,EAAE,cAAc,CAAA;IAC5B,WAAW,EAAE,qBAAqB,EAAE,CAAA;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,cAAc,EAAE,CAAA;IAC9B,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,kBAAkB,EAAE,OAAO,CAAA;;IA2BnC,iBAAiB;IAMjB,oBAAoB;IAMpB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAKnC;IAED,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAKnC;IAED,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,kBAAkB;YASZ,YAAY;IAe1B,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,qBAAqB;IAgE7B,OAAO,CAAC,cAAc;IAQtB,SAAS,CAAC,YAAY;IAOtB,SAAS,CAAC,OAAO,CAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAS1D,MAAM;CA0FP"}