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.
- package/dist/_virtual/~icons/app/solid-emblem.cjs.js +3 -0
- package/dist/_virtual/~icons/app/solid-emblem.cjs.js.map +1 -0
- package/dist/_virtual/~icons/app/solid-emblem.esm.js +11 -0
- package/dist/_virtual/~icons/app/solid-emblem.esm.js.map +1 -0
- package/dist/breakpoints.css +1 -0
- package/dist/breakpoints.css.d.ts +1 -0
- package/dist/chunks/{account-BZ2rYQhV.js → account-CWY924jw.js} +74 -58
- package/dist/chunks/account-CWY924jw.js.map +1 -0
- package/dist/chunks/{auth-RHyQ2iIl.js → auth-DIRGfFle.js} +18 -18
- package/dist/chunks/{auth-RHyQ2iIl.js.map → auth-DIRGfFle.js.map} +1 -1
- package/dist/chunks/{avatar-Jx8xm2Op.js → avatar-CLJz6mOV.js} +3 -3
- package/dist/chunks/{avatar-Jx8xm2Op.js.map → avatar-CLJz6mOV.js.map} +1 -1
- package/dist/chunks/{button-0s0lZdxm.js → button-CBQEwOtX.js} +7 -3
- package/dist/chunks/button-CBQEwOtX.js.map +1 -0
- package/dist/chunks/{combobox-Cxi8xUMn.js → combobox-B7a6BjQr.js} +5 -5
- package/dist/chunks/combobox-B7a6BjQr.js.map +1 -0
- package/dist/chunks/{dialog-BAzrHJ8w.js → dialog-Bn4qiZi-.js} +2 -2
- package/dist/chunks/{dialog-BAzrHJ8w.js.map → dialog-Bn4qiZi-.js.map} +1 -1
- package/dist/chunks/{footer-D64T6XLO.js → footer-kVa_uMeQ.js} +3 -3
- package/dist/chunks/{footer-D64T6XLO.js.map → footer-kVa_uMeQ.js.map} +1 -1
- package/dist/chunks/{guard-CjUBGVDk.js → guard-Cxl9QbaG.js} +3 -3
- package/dist/chunks/{guard-CjUBGVDk.js.map → guard-Cxl9QbaG.js.map} +1 -1
- package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js → headerFooterHelpers-BiZ6X10e.js} +15 -15
- package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js.map → headerFooterHelpers-BiZ6X10e.js.map} +1 -1
- package/dist/chunks/{jsonld-DRZuoyoU.js → jsonld-Cd-ZhJmZ.js} +2 -2
- package/dist/chunks/{jsonld-DRZuoyoU.js.map → jsonld-Cd-ZhJmZ.js.map} +1 -1
- package/dist/chunks/{login-button-DPeMi00d.js → login-button-ChyF_OoC.js} +4 -4
- package/dist/chunks/{login-button-DPeMi00d.js.map → login-button-ChyF_OoC.js.map} +1 -1
- package/dist/chunks/{logout-button-CbiLE7jO.js → logout-button-BRPS8630.js} +4 -4
- package/dist/chunks/{logout-button-CbiLE7jO.js.map → logout-button-BRPS8630.js.map} +1 -1
- package/dist/chunks/{menu-item-Ck0l-uEI.js → menu-item-CWg-eS4V.js} +7 -5
- package/dist/chunks/menu-item-CWg-eS4V.js.map +1 -0
- package/dist/chunks/{provider-C4eSzopG.js → provider-D0RqwRoM.js} +2 -2
- package/dist/chunks/{provider-C4eSzopG.js.map → provider-D0RqwRoM.js.map} +1 -1
- package/dist/chunks/{signup-button-BfIxbpwa.js → signup-button-Df4rYzNO.js} +4 -4
- package/dist/chunks/{signup-button-BfIxbpwa.js.map → signup-button-Df4rYzNO.js.map} +1 -1
- package/dist/chunks/solid-emblem-BDzhMTjL.js +185 -0
- package/dist/chunks/solid-emblem-BDzhMTjL.js.map +1 -0
- package/dist/chunks/{solid-logic.esm-T70qfHAr.js → solid-logic.esm-BhVcNu8u.js} +7 -28
- package/dist/chunks/{solid-logic.esm-T70qfHAr.js.map → solid-logic.esm-BhVcNu8u.js.map} +1 -1
- package/dist/chunks/{src-Bx4GAnWq.js → src-Dxxeu4rj.js} +2375 -2351
- package/dist/chunks/src-Dxxeu4rj.js.map +1 -0
- package/dist/components/account/Account.cjs.js +7 -2
- package/dist/components/account/Account.cjs.js.map +1 -1
- package/dist/components/account/Account.d.ts +8 -1
- package/dist/components/account/Account.d.ts.map +1 -1
- package/dist/components/account/Account.esm.js +64 -48
- package/dist/components/account/Account.esm.js.map +1 -1
- package/dist/components/account/Account.stories.d.ts +3 -8
- package/dist/components/account/Account.stories.d.ts.map +1 -1
- package/dist/components/account/index.cjs.js.map +1 -1
- package/dist/components/account/index.d.ts +2 -2
- package/dist/components/account/index.d.ts.map +1 -1
- package/dist/components/account/index.esm.js.map +1 -1
- package/dist/components/account.js +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.cjs.js +2 -2
- package/dist/components/button/Button.cjs.js.map +1 -1
- package/dist/components/button/Button.d.ts +1 -0
- package/dist/components/button/Button.d.ts.map +1 -1
- package/dist/components/button/Button.esm.js +5 -1
- package/dist/components/button/Button.esm.js.map +1 -1
- package/dist/components/button/Button.styles.cjs.js +1 -1
- package/dist/components/button/Button.styles.cjs.js.map +1 -1
- package/dist/components/button/Button.styles.esm.js +1 -1
- package/dist/components/button/Button.styles.esm.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +2 -2
- package/dist/components/combobox/Combobox.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +1 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.esm.js +4 -4
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/footer.js +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.esm.js +2 -2
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu-item/MenuItem.cjs.js +5 -3
- package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
- package/dist/components/menu-item/MenuItem.esm.js +5 -3
- package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
- package/dist/components/menu-item.js +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem/SolidEmblem.cjs.js +2 -0
- package/dist/components/solid-emblem/SolidEmblem.cjs.js.map +1 -0
- package/dist/components/solid-emblem/SolidEmblem.d.ts +6 -0
- package/dist/components/solid-emblem/SolidEmblem.d.ts.map +1 -0
- package/dist/components/solid-emblem/SolidEmblem.esm.js +178 -0
- package/dist/components/solid-emblem/SolidEmblem.esm.js.map +1 -0
- package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js +2 -0
- package/dist/components/solid-emblem/SolidEmblem.styles.cjs.js.map +1 -0
- package/dist/components/solid-emblem/SolidEmblem.styles.esm.js +7 -0
- package/dist/components/solid-emblem/SolidEmblem.styles.esm.js.map +1 -0
- package/dist/components/solid-emblem/index.cjs.js +2 -0
- package/dist/components/solid-emblem/index.cjs.js.map +1 -0
- package/dist/components/solid-emblem/index.d.ts +4 -0
- package/dist/components/solid-emblem/index.d.ts.map +1 -0
- package/dist/components/solid-emblem/index.esm.js +7 -0
- package/dist/components/solid-emblem/index.esm.js.map +1 -0
- package/dist/components/solid-emblem.js +2 -0
- package/dist/components.js +14 -14
- package/dist/index.js +4 -5
- package/dist/lib/forms/rdfHelper.d.ts +4 -0
- package/dist/lib/forms/rdfHelper.d.ts.map +1 -0
- package/dist/loader.js +4 -5
- package/dist/solid-ui.js +80 -1171
- package/dist/solid-ui.min.js +80 -1171
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/theme.css +1 -1
- package/package.json +7 -2
- package/dist/chunks/account-BZ2rYQhV.js.map +0 -1
- package/dist/chunks/button-0s0lZdxm.js.map +0 -1
- package/dist/chunks/combobox-Cxi8xUMn.js.map +0 -1
- package/dist/chunks/header-COBaJDdB.js +0 -1486
- package/dist/chunks/header-COBaJDdB.js.map +0 -1
- package/dist/chunks/iconBase-DJ0zbNSL.js +0 -31
- package/dist/chunks/iconBase-DJ0zbNSL.js.map +0 -1
- package/dist/chunks/menu-item-Ck0l-uEI.js.map +0 -1
- package/dist/chunks/src-Bx4GAnWq.js.map +0 -1
- package/dist/components/header/index.cjs.js +0 -1
- package/dist/components/header/index.d.ts +0 -2
- package/dist/components/header/index.d.ts.map +0 -1
- package/dist/components/header/index.esm.js +0 -3
- package/dist/components/header.js +0 -2
- package/dist/lib/features.cjs.js +0 -2
- package/dist/lib/features.cjs.js.map +0 -1
- package/dist/lib/features.d.ts +0 -8
- package/dist/lib/features.d.ts.map +0 -1
- package/dist/lib/features.esm.js +0 -6
- package/dist/lib/features.esm.js.map +0 -1
- package/dist/v2/components/actions/button/Button.d.ts +0 -97
- package/dist/v2/components/actions/button/Button.d.ts.map +0 -1
- package/dist/v2/components/actions/button/Button.test.d.ts +0 -1
- package/dist/v2/components/actions/button/Button.test.d.ts.map +0 -1
- package/dist/v2/components/actions/button/index.d.ts +0 -8
- package/dist/v2/components/actions/button/index.d.ts.map +0 -1
- package/dist/v2/components/auth/loginButton/LoginButton.cjs.js +0 -414
- package/dist/v2/components/auth/loginButton/LoginButton.cjs.js.map +0 -1
- package/dist/v2/components/auth/loginButton/LoginButton.esm.js +0 -519
- package/dist/v2/components/auth/loginButton/LoginButton.esm.js.map +0 -1
- package/dist/v2/components/auth/loginButton/downArrow.cjs.js +0 -9
- package/dist/v2/components/auth/loginButton/downArrow.cjs.js.map +0 -1
- package/dist/v2/components/auth/loginButton/downArrow.esm.js +0 -14
- package/dist/v2/components/auth/loginButton/downArrow.esm.js.map +0 -1
- package/dist/v2/components/auth/loginButton/index.cjs.js +0 -2
- package/dist/v2/components/auth/loginButton/index.cjs.js.map +0 -1
- package/dist/v2/components/auth/loginButton/index.esm.js +0 -8
- package/dist/v2/components/auth/loginButton/index.esm.js.map +0 -1
- package/dist/v2/components/auth/signupButton/SignupButton.cjs.js +0 -59
- package/dist/v2/components/auth/signupButton/SignupButton.cjs.js.map +0 -1
- package/dist/v2/components/auth/signupButton/SignupButton.esm.js +0 -98
- package/dist/v2/components/auth/signupButton/SignupButton.esm.js.map +0 -1
- package/dist/v2/components/auth/signupButton/index.cjs.js +0 -2
- package/dist/v2/components/auth/signupButton/index.cjs.js.map +0 -1
- package/dist/v2/components/auth/signupButton/index.esm.js +0 -8
- package/dist/v2/components/auth/signupButton/index.esm.js.map +0 -1
- package/dist/v2/components/forms/combobox/Combobox.d.ts +0 -82
- package/dist/v2/components/forms/combobox/Combobox.d.ts.map +0 -1
- package/dist/v2/components/forms/combobox/Combobox.test.d.ts +0 -1
- package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +0 -1
- package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +0 -6
- package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +0 -1
- package/dist/v2/components/forms/combobox/index.d.ts +0 -3
- package/dist/v2/components/forms/combobox/index.d.ts.map +0 -1
- package/dist/v2/components/forms/select/Select.d.ts +0 -68
- package/dist/v2/components/forms/select/Select.d.ts.map +0 -1
- package/dist/v2/components/forms/select/Select.test.d.ts +0 -1
- package/dist/v2/components/forms/select/Select.test.d.ts.map +0 -1
- package/dist/v2/components/forms/select/index.d.ts +0 -3
- package/dist/v2/components/forms/select/index.d.ts.map +0 -1
- package/dist/v2/components/forms/shared/downArrow.d.ts +0 -2
- package/dist/v2/components/forms/shared/downArrow.d.ts.map +0 -1
- package/dist/v2/components/forms/shared/keyboard.d.ts +0 -7
- package/dist/v2/components/forms/shared/keyboard.d.ts.map +0 -1
- package/dist/v2/components/forms/shared/listboxStyles.d.ts +0 -2
- package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +0 -1
- package/dist/v2/components/forms/shared/listboxTemplate.d.ts +0 -11
- package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +0 -1
- package/dist/v2/components/forms/shared/optionTypes.d.ts +0 -6
- package/dist/v2/components/forms/shared/optionTypes.d.ts.map +0 -1
- package/dist/v2/components/layout/header/Header.cjs.js +0 -625
- package/dist/v2/components/layout/header/Header.cjs.js.map +0 -1
- package/dist/v2/components/layout/header/Header.d.ts +0 -160
- package/dist/v2/components/layout/header/Header.d.ts.map +0 -1
- package/dist/v2/components/layout/header/Header.esm.js +0 -873
- package/dist/v2/components/layout/header/Header.esm.js.map +0 -1
- package/dist/v2/components/layout/header/header.test.d.ts +0 -1
- package/dist/v2/components/layout/header/header.test.d.ts.map +0 -1
- package/dist/v2/components/layout/header/index.cjs.js +0 -2
- package/dist/v2/components/layout/header/index.cjs.js.map +0 -1
- package/dist/v2/components/layout/header/index.d.ts +0 -4
- package/dist/v2/components/layout/header/index.d.ts.map +0 -1
- package/dist/v2/components/layout/header/index.esm.js +0 -8
- package/dist/v2/components/layout/header/index.esm.js.map +0 -1
|
@@ -313,7 +313,7 @@ new (H = (f = /*#__PURE__*/ new WeakMap(), p = /*#__PURE__*/ new WeakMap(), m =
|
|
|
313
313
|
aria-labelledby=${this.label ? this.inputTrait.labelId : a}
|
|
314
314
|
aria-label=${this.label ? a : n}
|
|
315
315
|
?hidden=${!this.open}
|
|
316
|
-
@
|
|
316
|
+
@mousedown=${this.onListboxMouseDown}
|
|
317
317
|
>
|
|
318
318
|
${e.map((e, t) => i`<div
|
|
319
319
|
id=${this.getOptionId(t)}
|
|
@@ -357,7 +357,7 @@ new (H = (f = /*#__PURE__*/ new WeakMap(), p = /*#__PURE__*/ new WeakMap(), m =
|
|
|
357
357
|
t.length !== 0 && (this.open = !0, this.activeIndex = e?.focusLast ? t.length - 1 : this.getInitialActiveIndex(t), this.addOpenListeners(), requestAnimationFrame(() => this.scrollActiveOptionIntoView()));
|
|
358
358
|
}
|
|
359
359
|
hide() {
|
|
360
|
-
this.open && (this.open = !1, this.activeIndex = -1, this.removeOpenListeners());
|
|
360
|
+
this.open && (this.filter = "", this.open = !1, this.activeIndex = -1, this.removeOpenListeners());
|
|
361
361
|
}
|
|
362
362
|
selectOption(e) {
|
|
363
363
|
this.inputTrait.setValue(e), this.hide(), this.inputElement?.focus({ preventScroll: !0 });
|
|
@@ -406,8 +406,8 @@ new (H = (f = /*#__PURE__*/ new WeakMap(), p = /*#__PURE__*/ new WeakMap(), m =
|
|
|
406
406
|
break;
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
|
-
|
|
410
|
-
if (!(e.target instanceof HTMLElement)) return;
|
|
409
|
+
onListboxMouseDown(e) {
|
|
410
|
+
if (e.preventDefault(), !(e.target instanceof HTMLElement)) return;
|
|
411
411
|
let t = e.target.closest("[role=\"option\"]");
|
|
412
412
|
if (!t) return;
|
|
413
413
|
let n = t.id, r = Number.parseInt(n.replace(`${this.listboxId}-option-`, ""), 10), i = this.getFilteredOptions()[r];
|
|
@@ -470,4 +470,4 @@ var re = $;
|
|
|
470
470
|
//#endregion
|
|
471
471
|
export { $ as n, re as t };
|
|
472
472
|
|
|
473
|
-
//# sourceMappingURL=combobox-
|
|
473
|
+
//# sourceMappingURL=combobox-B7a6BjQr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-B7a6BjQr.js","names":["customElement","WebComponent","html","nothing","property","query","state","InputTrait","styles","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_inputElementDecs","_filterDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","label","v","_classPrivateFieldSet","name","value","placeholder","required","inputElement","filter","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_inputElement","_init_filter","_init_open","_init_activeIndex","_defineProperty","event","path","composedPath","includes","hide","inputTrait","addTrait","getInputElement","getInternals","onValueChanged","toLowerCase","options","getFilteredOptions","length","getInitialActiveIndex","listboxId","inputId","disconnectedCallback","removeOpenListeners","render","activeOption","undefined","activeDescendant","getOptionId","accessibleName","renderLabel","onAnchorMouseDown","labelId","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","option","index","setActiveIndex","getOptions","querySelectorAll","Array","from","textContent","selectedIndex","findIndex","getNextIndex","currentIndex","direction","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","selectOption","setValue","focus","preventScroll","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","target","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","replace","e","c","_initClass","_applyDecs","_Class","_identity","default","Combobox"],"sources":["../../src/components/combobox/Combobox.styles.css","../../src/components/combobox/Combobox.ts","../../src/components/combobox/index.ts"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n wa-popup {\n display: block;\n width: 100%;\n }\n\n wa-popup::part(popup) {\n background: white;\n border: 1px solid var(--solid-ui-color-gray-100);\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n overflow: hidden;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n }\n\n icon-lucide-chevron-down {\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--solid-ui-color-gray-500);\n width: var(--solid-ui-font-size-lg);\n height: var(--solid-ui-font-size-lg);\n pointer-events: none;\n }\n }\n\n .listbox {\n display: flex;\n flex-direction: column;\n max-height: inherit;\n overflow: auto;\n\n [role=\"option\"] {\n padding: 12px 8px;\n color: var(--solid-ui-color-gray-700);\n border-bottom: 1px solid var(--solid-ui-color-gray-100);\n cursor: pointer;\n\n &:hover,\n &[data-active] {\n background: rgba(0, 0, 0, 0.05);\n }\n }\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport InputTrait from '@/lib/components/traits/InputTrait'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\ntype ComboboxOptionData = { value: string; label: string }\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property({ type: String })\n accessor value = ''\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @query('input')\n private accessor inputElement: HTMLInputElement | null = null\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private inputTrait: InputTrait\n private openListenersAttached = false\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.inputTrait = this.addTrait(\n new InputTrait(this, {\n getInputElement: () => this.inputElement,\n getInternals: () => this.getInternals(),\n onValueChanged: (value) => {\n this.filter = value.toLowerCase()\n\n const options = this.getFilteredOptions()\n\n if (options.length === 0) {\n this.hide()\n return\n }\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n },\n })\n )\n\n this.listboxId = `listbox-${this.inputTrait.inputId}`\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.inputTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.inputTrait.inputId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.inputTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.value}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.inputTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.inputTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map(\n (option, index) =>\n html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${this.open && index === this.activeIndex\n ? 'true'\n : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.label}\n </div>`\n )}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n return this.getOptions().filter((option) =>\n option.label.toLowerCase().includes(this.filter)\n )\n }\n\n private getOptions (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n }\n\n private selectOption (value: string) {\n this.inputTrait.setValue(value)\n this.hide()\n this.inputElement?.focus({ preventScroll: true })\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n event.preventDefault()\n this.inputElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex].value)\n } else if (!this.open) {\n event.preventDefault()\n this.inputTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.inputElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option.value)\n }\n }\n}\n","import Combobox from './Combobox'\n\nexport { Combobox }\nexport default Combobox\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { a as r, i, n as a } from "./components-C1LEhsaK.js";
|
|
|
3
3
|
import { c as o, i as s, n as c } from "./lit-C4H1jI4q.js";
|
|
4
4
|
import { r as l, t as u } from "./decorators-BiCkPd_3.js";
|
|
5
5
|
import "./dialog-header-CWIAAoDo.js";
|
|
6
|
-
import "./button-
|
|
6
|
+
import "./button-CBQEwOtX.js";
|
|
7
7
|
//#region node_modules/@lit/context/lib/controllers/context-consumer.js
|
|
8
8
|
var d = class {
|
|
9
9
|
constructor(e, t, n, r) {
|
|
@@ -311,4 +311,4 @@ var W = U;
|
|
|
311
311
|
//#endregion
|
|
312
312
|
export { U as n, f as r, W as t };
|
|
313
313
|
|
|
314
|
-
//# sourceMappingURL=dialog-
|
|
314
|
+
//# sourceMappingURL=dialog-Bn4qiZi-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-
|
|
1
|
+
{"version":3,"file":"dialog-Bn4qiZi-.js","names":["t","t","customElement","WebComponent","consume","html","nothing","property","query","dialogContext","DEFAULT_DIALOG_CONTEXT","DialogTrait","styles","_classDecs","_Dialog","_Dialog2","_A","WeakMap","_B","_C","_ref","_titleDecs","type","String","reflect","_nativeDialogDecs","_contextDecs","context","subscribe","_Dialog3","Dialog","_classPrivateFieldGet","title","v","_classPrivateFieldSet","nativeDialog","constructor","_classPrivateFieldInitSpec","_initProto","_init_title","_init_nativeDialog","_init_context","_defineProperty","dialogTrait","addTrait","getContext","close","data","firstUpdated","showModal","show","setAttribute","addEventListener","render","header","e","c","_initClass","_applyDecs","_Class","_identity","default","Dialog"],"sources":["../../node_modules/@lit/context/lib/controllers/context-consumer.js","../../node_modules/@lit/context/lib/decorators/consume.js","../../src/components/dialog/Dialog.styles.css","../../src/components/dialog/Dialog.ts","../../src/components/dialog/index.ts"],"sourcesContent":["import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","import{ContextConsumer as t}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function c({context:c,subscribe:e}){return(o,n)=>{\"object\"==typeof n?n.addInitializer((function(){new t(this,{context:c,callback:t=>{o.set.call(this,t)},subscribe:e})})):o.constructor.addInitializer((o=>{new t(o,{context:c,callback:t=>{o[n]=t},subscribe:e})}))}}export{c as consume};\n//# sourceMappingURL=consume.js.map\n","dialog {\n margin: auto;\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n min-width: 343px;\n\n solid-ui-dialog-header solid-ui-button {\n color: var(--solid-ui-color-gray-600);\n }\n}\n\ndialog:not([open]) {\n display: none;\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html, nothing } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport { DialogContext, dialogContext, DEFAULT_DIALOG_CONTEXT } from '@/lib/dialogs/context'\nimport DialogTrait from '@/lib/components/traits/DialogTrait'\n\nimport '~icons/lucide/x'\nimport '@/components/dialog-header'\nimport '@/components/button'\n\nimport styles from './Dialog.styles.css'\n\n@customElement('solid-ui-dialog')\nexport default class Dialog extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor title = ''\n\n @query('dialog')\n private accessor nativeDialog: HTMLDialogElement | null = null\n\n @consume({ context: dialogContext, subscribe: true })\n private accessor context: DialogContext = DEFAULT_DIALOG_CONTEXT\n\n private dialogTrait: DialogTrait<unknown>\n\n constructor () {\n super()\n\n this.dialogTrait = this.addTrait(new DialogTrait(this, {\n getContext: () => this.context\n }))\n }\n\n public close (data?: unknown) {\n this.dialogTrait.close(data)\n }\n\n protected firstUpdated () {\n if (!this.nativeDialog) {\n return\n }\n\n if (typeof this.nativeDialog.showModal === 'function') {\n this.nativeDialog.showModal()\n } else if (typeof this.nativeDialog.show === 'function') {\n this.nativeDialog.show()\n } else {\n this.nativeDialog.setAttribute('open', '')\n }\n\n this.nativeDialog.addEventListener('close', () => this.close())\n }\n\n protected render () {\n const header = this.title\n ? html`\n <solid-ui-dialog-header>\n <h1>${this.title}</h1>\n\n <solid-ui-button variant=\"ghost\" @click=${this.close}>\n <span class=\"sr-only\">Close</span>\n <icon-lucide-x slot=\"icon\"></icon-lucide-x>\n </solid-ui-button>\n </solid-ui-dialog-header>\n `\n : nothing\n\n return html`\n <dialog>\n <slot name=\"header\">${header}</slot>\n <slot></slot>\n <slot name=\"footer\"></slot>\n </dialog>\n `\n }\n}\n","import Dialog from './Dialog'\n\nexport { Dialog }\nexport default Dialog\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as e,
|
|
2
|
-
import { t as n } from "./headerFooterHelpers-
|
|
1
|
+
import { c as e, p as t } from "./solid-logic.esm-BhVcNu8u.js";
|
|
2
|
+
import { t as n } from "./headerFooterHelpers-BiZ6X10e.js";
|
|
3
3
|
import { c as r, i, t as a } from "./lit-C4H1jI4q.js";
|
|
4
4
|
//#region src/v2/components/layout/footer/Footer.ts
|
|
5
5
|
var o = class extends a {
|
|
@@ -141,4 +141,4 @@ customElements.get(s) || customElements.define(s, o);
|
|
|
141
141
|
//#endregion
|
|
142
142
|
export { o as t };
|
|
143
143
|
|
|
144
|
-
//# sourceMappingURL=footer-
|
|
144
|
+
//# sourceMappingURL=footer-kVa_uMeQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer-
|
|
1
|
+
{"version":3,"file":"footer-kVa_uMeQ.js","names":["LitElement","html","css","authSession","authn","getName","Footer","properties","theme","type","String","reflect","layout","position","top","right","bottom","left","store","Object","attribute","_user","state","styles","constructor","_updateFooter","bind","connectedCallback","events","on","disconnectedCallback","off","updated","changedProperties","has","_updatePositionStyles","style","setProperty","currentUser","render","_renderFooterContent","userName","uri","Footer","FOOTER_TAG_NAME","customElements","get","define"],"sources":["../../src/v2/components/layout/footer/Footer.ts","../../src/v2/components/layout/footer/index.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit'\nimport type { LiveStore, NamedNode } from 'rdflib'\nimport { authSession, authn } from 'solid-logic'\nimport { getName } from '../../../../utils/headerFooterHelpers'\n\nexport class Footer extends LitElement {\n static properties = {\n theme: { type: String, reflect: true },\n layout: { type: String, reflect: true },\n position: { type: String, reflect: true },\n top: { type: String, reflect: true },\n right: { type: String, reflect: true },\n bottom: { type: String, reflect: true },\n left: { type: String, reflect: true },\n store: { type: Object, attribute: false },\n _user: { state: true }\n }\n\n static styles = css`\n :host {\n display: block;\n position: var(--footer-position, static);\n top: var(--footer-top, auto);\n right: var(--footer-right, auto);\n bottom: var(--footer-bottom, auto);\n left: var(--footer-left, auto);\n width: auto;\n max-width: var(--footer-max-width, none);\n margin: var(--footer-margin, 0);\n box-sizing: border-box;\n color: var(--footer-text, #4f4f4f);\n background: transparent;\n border: 1px solid var(--footer-border, rgba(0, 0, 0, 0.12));\n border-radius: var(--footer-border-radius, 1rem);\n box-shadow: var(--footer-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.08));\n font-family: var(--font-family-base, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);\n }\n\n .footer {\n display: flex;\n justify-content: flex-start;\n align-items: flex-start;\n gap: 0.25rem;\n font-size: 0.75rem;\n line-height: 1.5;\n text-align: left;\n }\n\n .footer a {\n color: var(--footer-link, #4b32a8);\n text-decoration: none;\n font-weight: 600;\n }\n\n .footer a:hover {\n text-decoration: underline;\n }\n\n .footer span {\n color: inherit;\n }\n\n .footer div > strong {\n display: block;\n margin-bottom: 0.5rem;\n }\n\n :host([layout='mobile']) {\n border: none;\n box-shadow: none;\n border-radius: 0;\n }\n `\n\n declare theme: 'light' | 'dark'\n declare layout: 'desktop' | 'mobile'\n declare position: 'static' | 'absolute' | 'relative' | 'fixed' | 'sticky'\n declare top: string\n declare right: string\n declare bottom: string\n declare left: string\n declare store: LiveStore | null\n declare _user: NamedNode | null\n\n constructor () {\n super()\n this.theme = 'light'\n this.layout = 'desktop'\n this.position = 'static'\n this.top = 'auto'\n this.right = 'auto'\n this.bottom = 'auto'\n this.left = 'auto'\n this.store = null\n this._user = null\n this._updateFooter = this._updateFooter.bind(this)\n }\n\n connectedCallback () {\n super.connectedCallback()\n authSession.events.on('login', this._updateFooter)\n authSession.events.on('logout', this._updateFooter)\n this._updateFooter()\n }\n\n disconnectedCallback () {\n if (typeof authSession.events.off === 'function') {\n authSession.events.off('login', this._updateFooter)\n authSession.events.off('logout', this._updateFooter)\n }\n super.disconnectedCallback()\n }\n\n updated (changedProperties: Map<string, unknown>) {\n if (\n changedProperties.has('position') ||\n changedProperties.has('top') ||\n changedProperties.has('right') ||\n changedProperties.has('bottom') ||\n changedProperties.has('left')\n ) {\n this._updatePositionStyles()\n }\n }\n\n private _updatePositionStyles () {\n this.style.setProperty('--footer-position', this.position)\n this.style.setProperty('--footer-top', this.top)\n this.style.setProperty('--footer-right', this.right)\n this.style.setProperty('--footer-bottom', this.bottom)\n this.style.setProperty('--footer-left', this.left)\n }\n\n private _updateFooter () {\n this._user = authn.currentUser()\n }\n\n render () {\n return html`\n <footer class=\"footer\">\n ${this._renderFooterContent()}\n </footer>\n `\n }\n\n private _renderFooterContent () {\n if (!this._user) {\n return html`\n <div>\n <strong>Public View</strong>\n <div>You are viewing this profile as a guest.</div>\n </div>\n `\n }\n\n const userName = this.store ? getName(this.store, this._user) : this._user.uri\n\n return html`\n <div>\n <strong>Logged in View</strong>\n <div>\n You are logged in as\n <a href=${this._user.uri} target=\"_blank\" rel=\"noopener noreferrer\">${userName}</a>.\n </div>\n </div>\n `\n }\n}\n","import { Footer } from './Footer'\n\nexport { Footer }\n\nconst FOOTER_TAG_NAME = 'solid-ui-footer'\n\nif (!customElements.get(FOOTER_TAG_NAME)) {\n customElements.define(FOOTER_TAG_NAME, Footer)\n}\n"],"mappings":";;;;AAKA,IAAaM,IAAb,cAA4BN,EAAW;CACrC,OAAOO,aAAa;EAClBC,OAAO;GAAEC,MAAMC;GAAQC,SAAS;EAAK;EACrCC,QAAQ;GAAEH,MAAMC;GAAQC,SAAS;EAAK;EACtCE,UAAU;GAAEJ,MAAMC;GAAQC,SAAS;EAAK;EACxCG,KAAK;GAAEL,MAAMC;GAAQC,SAAS;EAAK;EACnCI,OAAO;GAAEN,MAAMC;GAAQC,SAAS;EAAK;EACrCK,QAAQ;GAAEP,MAAMC;GAAQC,SAAS;EAAK;EACtCM,MAAM;GAAER,MAAMC;GAAQC,SAAS;EAAK;EACpCO,OAAO;GAAET,MAAMU;GAAQC,WAAW;EAAM;EACxCC,OAAO,EAAEC,OAAO,GAAK;CACvB;CAEA,OAAOC,SAASrB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEnBsB,cAAe;EAWb,AAVA,MAAM,GACN,KAAKhB,QAAQ,SACb,KAAKI,SAAS,WACd,KAAKC,WAAW,UAChB,KAAKC,MAAM,QACX,KAAKC,QAAQ,QACb,KAAKC,SAAS,QACd,KAAKC,OAAO,QACZ,KAAKC,QAAQ,MACb,KAAKG,QAAQ,MACb,KAAKI,gBAAgB,KAAKA,cAAcC,KAAK,IAAI;CACnD;CAEAC,oBAAqB;EAInB,AAHA,MAAMA,kBAAkB,GACxBxB,EAAYyB,OAAOC,GAAG,SAAS,KAAKJ,aAAa,GACjDtB,EAAYyB,OAAOC,GAAG,UAAU,KAAKJ,aAAa,GAClD,KAAKA,cAAc;CACrB;CAEAK,uBAAwB;EAKtB,AAJI,OAAO3B,EAAYyB,OAAOG,OAAQ,eACpC5B,EAAYyB,OAAOG,IAAI,SAAS,KAAKN,aAAa,GAClDtB,EAAYyB,OAAOG,IAAI,UAAU,KAAKN,aAAa,IAErD,MAAMK,qBAAqB;CAC7B;CAEAE,QAASC,GAAyC;EAChD,CACEA,EAAkBC,IAAI,UAAU,KAChCD,EAAkBC,IAAI,KAAK,KAC3BD,EAAkBC,IAAI,OAAO,KAC7BD,EAAkBC,IAAI,QAAQ,KAC9BD,EAAkBC,IAAI,MAAM,MAE5B,KAAKC,sBAAsB;CAE/B;CAEQA,wBAAyB;EAK/B,AAJA,KAAKC,MAAMC,YAAY,qBAAqB,KAAKxB,QAAQ,GACzD,KAAKuB,MAAMC,YAAY,gBAAgB,KAAKvB,GAAG,GAC/C,KAAKsB,MAAMC,YAAY,kBAAkB,KAAKtB,KAAK,GACnD,KAAKqB,MAAMC,YAAY,mBAAmB,KAAKrB,MAAM,GACrD,KAAKoB,MAAMC,YAAY,iBAAiB,KAAKpB,IAAI;CACnD;CAEQQ,gBAAiB;EACvB,KAAKJ,QAAQjB,EAAMkC,YAAY;CACjC;CAEAC,SAAU;EACR,OAAOtC,CAAI;;UAEL,KAAKuC,qBAAqB,EAAC;;;CAGnC;CAEQA,uBAAwB;EAC9B,IAAI,CAAC,KAAKnB,OACR,OAAOpB,CAAI;;;;;;EAQb,IAAMwC,IAAW,KAAKvB,QAAQb,EAAQ,KAAKa,OAAO,KAAKG,KAAK,IAAI,KAAKA,MAAMqB;EAE3E,OAAOzC,CAAI;;;;;oBAKK,KAAKoB,MAAMqB,IAAG,6CAA8CD,EAAQ;;;;CAItF;AACF,GCnKMG,IAAkB;AAEnBC,eAAeC,IAAIF,CAAe,KACrCC,eAAeE,OAAOH,GAAiBD,CAAM"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as e, s as t } from "./auth-
|
|
2
|
-
import { r as n } from "./dialog-
|
|
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 { i as a } from "./lit-C4H1jI4q.js";
|
|
5
5
|
//#region src/components/guard/Guard.ts
|
|
@@ -197,4 +197,4 @@ var T = C;
|
|
|
197
197
|
//#endregion
|
|
198
198
|
export { C as n, T as t };
|
|
199
199
|
|
|
200
|
-
//# sourceMappingURL=guard-
|
|
200
|
+
//# sourceMappingURL=guard-Cxl9QbaG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard-
|
|
1
|
+
{"version":3,"file":"guard-Cxl9QbaG.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","_classDecs","_Guard","_A","WeakMap","_ref","_authDecs","context","subscribe","Guard","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","render","account","_Guard2","e","c","_initClass","_applyDecs","default","Guard"],"sources":["../../src/components/guard/Guard.ts","../../src/components/guard/index.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\n@customElement('solid-guard')\nexport default class Guard extends WebComponent {\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n protected render () {\n if (!this.auth.account) {\n return html`\n <slot name=\"guest\"></slot>\n `\n }\n\n return html`\n <slot></slot>\n `\n }\n}\n","import Guard from './Guard'\n\nexport { Guard }\nexport default Guard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG2EM,IAAA,CAE1EN,EAAc,aAAa,CAAC;AAAA,IAAAO,GAAAC,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAE1BT,EAAQ;CAAEU,SAASR;CAAaS,WAAW;AAAK,CAAC,GAAC,SAcpDa,IAAAZ,cAfkCb,EAAa;CAAAc,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAT,IAAAU,EAAA,IAAA,GAAAC,EAAA,MAETd,CAAoB,EAAA;CAAA;CAAA,KAAAK,KAAA;EAAA,OAAAU,EAAAZ,GAAA,IAAA;CAAA;CAAA,IAAxCa,KAAIC,GAAA;EAAAC,EAAAf,GAAA,MAAAc,CAAA;CAAA;CAEXE,SAAU;EAOlB,OANK,KAAKH,KAAKI,UAMRtB,CAAI;;QALFA,CAAI;;;CAQf;AACF,GAAC,CAAAwB,GAAA,CAAAR,GAAAD,IAAAU,GAAA,CAAArB,GAAAsB,MAAAC,EAAAJ,GAAA,CAAA;CAAAf;CAAA;CAAA;AAAA,CAAA,GAAAL,GAAA,GAAA,KAAA,GAfkCL,CAAY,GAAA4B,EAAA;;;ACH/C,IAAA,IAAeG"}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { O as e, S as t, h as n } from "./solid-logic.esm-BhVcNu8u.js";
|
|
2
2
|
//#region src/utils/headerFooterHelpers.ts
|
|
3
3
|
function r() {
|
|
4
|
-
let { origin:
|
|
5
|
-
return r && i.length > 0 && !o ?
|
|
4
|
+
let { origin: e, pathname: n } = document.location, r = document.body?.dataset?.appShell === "databrowser", i = n.split("/").filter(Boolean), a = i[i.length - 1] || "", o = /\.[^/]+$/.test(a);
|
|
5
|
+
return r && i.length > 0 && !o ? t(`${e}/${i[0]}/`) : t(e).site();
|
|
6
6
|
}
|
|
7
7
|
async function i(r, i) {
|
|
8
8
|
try {
|
|
9
|
-
if (!i.any(r, null,
|
|
10
|
-
let
|
|
11
|
-
|
|
9
|
+
if (!i.any(r, null, n.ldp("Container"), r)) {
|
|
10
|
+
let t = (await i.fetcher.webOperation("GET", r.uri, i.fetcher.initFetchOptions(r.uri, { headers: { accept: "text/turtle" } }))).responseText;
|
|
11
|
+
e(t, i, r.uri, "text/turtle");
|
|
12
12
|
}
|
|
13
13
|
} catch (e) {
|
|
14
14
|
return console.error("Error loading pod " + r + ": " + e), null;
|
|
15
15
|
}
|
|
16
|
-
if (!i.holds(r,
|
|
17
|
-
let a = i.any(r,
|
|
16
|
+
if (!i.holds(r, n.rdf("type"), n.space("Storage"), r)) return console.warn("Pod " + r + " does not declare itself as a space:Storage"), null;
|
|
17
|
+
let a = i.any(r, n.solid("owner"), null, r) || i.any(null, n.space("storage"), r, r);
|
|
18
18
|
if (a) {
|
|
19
19
|
try {
|
|
20
20
|
await i.fetcher.load(a.doc());
|
|
21
21
|
} catch {
|
|
22
22
|
return console.warn("Unable to load profile of pod owner " + a), null;
|
|
23
23
|
}
|
|
24
|
-
return i.holds(a,
|
|
24
|
+
return i.holds(a, n.space("storage"), r, a.doc()) || console.warn(`Pod owner ${a} does NOT list pod ${r} as their storage`), a;
|
|
25
25
|
} else {
|
|
26
|
-
let
|
|
26
|
+
let e = t(`${r.uri}profile/card#me`);
|
|
27
27
|
try {
|
|
28
|
-
await i.fetcher.load(
|
|
28
|
+
await i.fetcher.load(e);
|
|
29
29
|
} catch {
|
|
30
30
|
return console.error("Ooops. Guessed wrong pod owner webid {$guess} : can't load it."), null;
|
|
31
31
|
}
|
|
32
|
-
return i.holds(
|
|
32
|
+
return i.holds(e, n.space("storage"), r, e.doc()) ? (console.warn("Using guessed pod owner webid but it links back."), e) : null;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
function a(e,
|
|
36
|
-
return e.anyValue(
|
|
35
|
+
function a(e, t) {
|
|
36
|
+
return e.anyValue(t, n.vcard("fn"), null, t.doc()) || e.anyValue(t, n.foaf("name"), null, t.doc()) || t.uri;
|
|
37
37
|
}
|
|
38
38
|
function o(e, t, n = {}) {
|
|
39
39
|
let r, i, a, o = null, s = 0, c = function() {
|
|
@@ -49,4 +49,4 @@ function o(e, t, n = {}) {
|
|
|
49
49
|
//#endregion
|
|
50
50
|
export { o as i, r as n, i as r, a as t };
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=headerFooterHelpers-
|
|
52
|
+
//# sourceMappingURL=headerFooterHelpers-BiZ6X10e.js.map
|
package/dist/chunks/{headerFooterHelpers-7O_ln1QD.js.map → headerFooterHelpers-BiZ6X10e.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerFooterHelpers-
|
|
1
|
+
{"version":3,"file":"headerFooterHelpers-BiZ6X10e.js","names":["parse","sym","ns","getPod","origin","pathname","document","location","isDatabrowserShell","body","dataset","appShell","segments","split","filter","Boolean","lastSegment","length","looksLikeFile","test","site","getPodOwner","pod","store","any","ldp","response","fetcher","webOperation","uri","initFetchOptions","headers","accept","containerTurtle","responseText","err","console","error","holds","rdf","space","warn","podOwner","solid","load","doc","_err","guess","getName","user","anyValue","vcard","foaf","throttle","func","wait","options","context","args","result","timeout","previous","later","leading","Date","now","apply","remaining","arguments","clearTimeout","trailing","setTimeout"],"sources":["../../src/utils/headerFooterHelpers.ts"],"sourcesContent":["/*\n Copied from mashlib/src/global/metadata.ts\n */\nimport { IndexedFormula, LiveStore, NamedNode, parse, sym } from 'rdflib'\nimport ns from '../lib/ns'\n\n/* @ts-ignore no-console */\ntype ThrottleOptions = {\n leading?: boolean;\n throttling?: boolean;\n trailing?: boolean;\n}\n\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getPod (): NamedNode {\n const { origin, pathname } = document.location\n const isDatabrowserShell = document.body?.dataset?.appShell === 'databrowser'\n const segments = pathname.split('/').filter(Boolean)\n const lastSegment = segments[segments.length - 1] || ''\n const looksLikeFile = /\\.[^/]+$/.test(lastSegment)\n\n if (isDatabrowserShell && segments.length > 0 && !looksLikeFile) {\n return sym(`${origin}/${segments[0]}/`)\n }\n\n // Root-hosted pods and static databrowser pages still use the site root.\n return sym(origin).site()\n}\n/**\n */\nexport async function getPodOwner (pod: NamedNode, store: LiveStore): Promise<NamedNode | null> {\n // This is a massive guess. In future\n // const podOwner = sym(`${pod.uri}profile/card#me`)\n\n try {\n // load turtle Container representation\n if (!store.any(pod, null, ns.ldp('Container'), pod)) {\n const response = await store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, { headers: { accept: 'text/turtle' } }))\n const containerTurtle = response.responseText\n parse(containerTurtle as string, store, pod.uri, 'text/turtle')\n }\n } catch (err) {\n console.error('Error loading pod ' + pod + ': ' + err)\n return null\n }\n if (!store.holds(pod, ns.rdf('type'), ns.space('Storage'), pod)) {\n console.warn('Pod ' + pod + ' does not declare itself as a space:Storage')\n return null\n }\n const podOwner = store.any(pod, ns.solid('owner'), null, pod) ||\n store.any(null, ns.space('storage'), pod, pod)\n if (podOwner) {\n try {\n await store.fetcher.load((podOwner as NamedNode).doc())\n } catch (_err) {\n console.warn('Unable to load profile of pod owner ' + podOwner)\n return null\n }\n if (!store.holds(podOwner, ns.space('storage'), pod, (podOwner as NamedNode).doc())) {\n console.warn(`Pod owner ${podOwner} does NOT list pod ${pod} as their storage`)\n }\n return podOwner as NamedNode// Success!\n } else { // pod owner not declared in pod\n // @@ TODO: This is given the structure that NSS provides\n // This is a massive guess. For old pods which don't have owner link\n const guess = sym(`${pod.uri}profile/card#me`)\n try {\n // @ts-ignore LiveStore always has fetcher\n await store.fetcher.load(guess)\n } catch (_err) {\n console.error('Ooops. Guessed wrong pod owner webid {$guess} : can\\'t load it.')\n return null\n }\n if (store.holds(guess, ns.space('storage'), pod, guess.doc())) {\n console.warn('Using guessed pod owner webid but it links back.')\n return guess\n }\n return null\n }\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function getName (store: IndexedFormula, user: NamedNode): string {\n return store.anyValue(user, ns.vcard('fn'), null, user.doc()) ||\n store.anyValue(user, ns.foaf('name'), null, user.doc()) ||\n user.uri\n}\n/**\n * @ignore exporting this only for the unit test\n */\nexport function throttle (func: Function, wait: number, options: ThrottleOptions = {}): (...args: any[]) => any {\n let context: any,\n args: any,\n result: any\n let timeout: any = null\n let previous = 0\n const later = function () {\n previous = !options.leading ? 0 : Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) context = args = null\n }\n return function () {\n const now = Date.now()\n if (!previous && !options.leading) previous = now\n const remaining = wait - (now - previous)\n // @ts-ignore\n context = this\n args = arguments\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n previous = now\n result = func.apply(context, args)\n if (!timeout) context = args = null\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining)\n }\n return result\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as e } from "./solid-logic.esm-BhVcNu8u.js";
|
|
2
2
|
//#region node_modules/rdf-canonize/lib/IdentifierIssuer.js
|
|
3
3
|
var t = /* @__PURE__ */ e(((e, t) => {
|
|
4
4
|
t.exports = class e {
|
|
@@ -4153,4 +4153,4 @@ var t = /* @__PURE__ */ e(((e, t) => {
|
|
|
4153
4153
|
//#endregion
|
|
4154
4154
|
export default L();
|
|
4155
4155
|
|
|
4156
|
-
//# sourceMappingURL=jsonld-
|
|
4156
|
+
//# sourceMappingURL=jsonld-Cd-ZhJmZ.js.map
|