@pod-os/elements 0.34.1-rc.11e4e07.0 → 0.34.1-rc.4cc8792.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.
- package/dist/cjs/elements.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pos-add-new-thing_31.cjs.entry.js +1 -1
- package/dist/cjs/pos-app-document-viewer.cjs.entry.js +1 -1
- package/dist/cjs/pos-app-document-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/pos-app-image-viewer.cjs.entry.js +1 -1
- package/dist/cjs/pos-app-image-viewer.entry.cjs.js.map +1 -1
- package/dist/cjs/pos-app-ldp-container.cjs.entry.js +1 -1
- package/dist/cjs/pos-app-ldp-container.entry.cjs.js.map +1 -1
- package/dist/cjs/pos-app-rdf-document.cjs.entry.js +1 -1
- package/dist/cjs/pos-app-rdf-document.entry.cjs.js.map +1 -1
- package/dist/cjs/pos-attachments.cjs.entry.js +13 -4
- package/dist/cjs/pos-attachments.entry.cjs.js.map +1 -1
- package/dist/cjs/pos-tool-attachments.cjs.entry.js +1 -18
- package/dist/cjs/pos-tool-attachments.entry.cjs.js.map +1 -1
- package/dist/collection/apps/styles/default-app-layout.css +2 -4
- package/dist/collection/components/pos-attachments/pos-attachments.js +0 -11
- package/dist/collection/components/pos-attachments/pos-attachments.js.map +1 -1
- package/dist/collection/components/pos-tool-select/pos-tool-select.css +0 -1
- package/dist/collection/tools/pos-tool-attachments/pos-tool-attachments.js +2 -29
- package/dist/collection/tools/pos-tool-attachments/pos-tool-attachments.js.map +1 -1
- package/dist/components/pos-app-document-viewer.js +1 -1
- package/dist/components/pos-app-document-viewer.js.map +1 -1
- package/dist/components/pos-app-image-viewer.js +1 -1
- package/dist/components/pos-app-image-viewer.js.map +1 -1
- package/dist/components/pos-app-ldp-container.js +1 -1
- package/dist/components/pos-app-ldp-container.js.map +1 -1
- package/dist/components/pos-app-rdf-document.js +1 -1
- package/dist/components/pos-app-rdf-document.js.map +1 -1
- package/dist/components/pos-attachments2.js +2 -6
- package/dist/components/pos-attachments2.js.map +1 -1
- package/dist/components/pos-tool-attachments.js +13 -39
- package/dist/components/pos-tool-attachments.js.map +1 -1
- package/dist/components/pos-tool-select2.js +1 -1
- package/dist/components/pos-tool-select2.js.map +1 -1
- package/dist/elements/elements.esm.js +1 -1
- package/dist/elements/{p-801e201f.entry.js → p-39c4bcd5.entry.js} +2 -2
- package/dist/elements/{p-801e201f.entry.js.map → p-39c4bcd5.entry.js.map} +1 -1
- package/dist/elements/p-5423da3f.entry.js +2 -0
- package/dist/elements/p-5423da3f.entry.js.map +1 -0
- package/dist/elements/p-5a97b2ec.entry.js +2 -0
- package/dist/elements/{p-80278ad4.entry.js.map → p-5a97b2ec.entry.js.map} +1 -1
- package/dist/elements/p-659b128e.entry.js +2 -0
- package/dist/elements/{p-3ac829ce.entry.js.map → p-659b128e.entry.js.map} +1 -1
- package/dist/elements/p-b6bd2c13.entry.js +2 -0
- package/dist/elements/{p-5d824704.entry.js.map → p-b6bd2c13.entry.js.map} +1 -1
- package/dist/elements/p-c7a53ee1.entry.js +2 -0
- package/dist/elements/p-c7a53ee1.entry.js.map +1 -0
- package/dist/elements/p-d03f9b42.entry.js +2 -0
- package/dist/elements/{p-02ccc4a2.entry.js.map → p-d03f9b42.entry.js.map} +1 -1
- package/dist/elements/pos-app-document-viewer.entry.esm.js.map +1 -1
- package/dist/elements/pos-app-image-viewer.entry.esm.js.map +1 -1
- package/dist/elements/pos-app-ldp-container.entry.esm.js.map +1 -1
- package/dist/elements/pos-app-rdf-document.entry.esm.js.map +1 -1
- package/dist/elements/pos-attachments.entry.esm.js.map +1 -1
- package/dist/elements/pos-tool-attachments.entry.esm.js.map +1 -1
- package/dist/esm/elements.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pos-add-new-thing_31.entry.js +1 -1
- package/dist/esm/pos-app-document-viewer.entry.js +1 -1
- package/dist/esm/pos-app-document-viewer.entry.js.map +1 -1
- package/dist/esm/pos-app-image-viewer.entry.js +1 -1
- package/dist/esm/pos-app-image-viewer.entry.js.map +1 -1
- package/dist/esm/pos-app-ldp-container.entry.js +1 -1
- package/dist/esm/pos-app-ldp-container.entry.js.map +1 -1
- package/dist/esm/pos-app-rdf-document.entry.js +1 -1
- package/dist/esm/pos-app-rdf-document.entry.js.map +1 -1
- package/dist/esm/pos-attachments.entry.js +12 -3
- package/dist/esm/pos-attachments.entry.js.map +1 -1
- package/dist/esm/pos-tool-attachments.entry.js +2 -19
- package/dist/esm/pos-tool-attachments.entry.js.map +1 -1
- package/dist/types/tools/pos-tool-attachments/pos-tool-attachments.d.ts +0 -5
- package/package.json +1 -1
- package/dist/cjs/useResource-IN7KmaP3.js +0 -19
- package/dist/cjs/useResource-IN7KmaP3.js.map +0 -1
- package/dist/collection/components/pos-attachments/pos-attachments.css +0 -25
- package/dist/collection/tools/pos-tool-attachments/pos-tool-attachments.css +0 -10
- package/dist/elements/p-02ccc4a2.entry.js +0 -2
- package/dist/elements/p-3ac829ce.entry.js +0 -2
- package/dist/elements/p-5d824704.entry.js +0 -2
- package/dist/elements/p-80278ad4.entry.js +0 -2
- package/dist/elements/p-a1b49411.entry.js +0 -2
- package/dist/elements/p-a1b49411.entry.js.map +0 -1
- package/dist/elements/p-b20c2baf.entry.js +0 -2
- package/dist/elements/p-b20c2baf.entry.js.map +0 -1
- package/dist/elements/p-yVO4JQ9P.js +0 -2
- package/dist/elements/p-yVO4JQ9P.js.map +0 -1
- package/dist/esm/useResource-yVO4JQ9P.js +0 -17
- package/dist/esm/useResource-yVO4JQ9P.js.map +0 -1
|
@@ -17,15 +17,12 @@ function useResource(el) {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
const posAttachmentsCss = ":host {\n --background-base-color: color-mix(in srgb, var(--pos-background-color), var(--color-grey-800) 10%);\n --background-color-even: hsl(from var(--background-base-color) h s calc(l + 7));\n --background-color-odd: hsl(from var(--background-base-color) h s calc(l + 10));\n --border-color: var(--background-base-color);\n\n ul {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: var(--size-1);\n\n li {\n padding: var(--size-1);\n &:nth-child(even) {\n background-color: var(--background-color-even);\n }\n &:nth-child(odd) {\n background-color: var(--background-color-odd);\n }\n }\n }\n}\n";
|
|
21
|
-
|
|
22
20
|
const PosAttachments = /*@__PURE__*/ proxyCustomElement(class PosAttachments extends HTMLElement {
|
|
23
21
|
constructor(registerHost) {
|
|
24
22
|
super();
|
|
25
23
|
if (registerHost !== false) {
|
|
26
24
|
this.__registerHost();
|
|
27
25
|
}
|
|
28
|
-
this.__attachShadow();
|
|
29
26
|
}
|
|
30
27
|
async componentWillLoad() {
|
|
31
28
|
this.resource = await useResource(this.el);
|
|
@@ -38,8 +35,7 @@ const PosAttachments = /*@__PURE__*/ proxyCustomElement(class PosAttachments ext
|
|
|
38
35
|
return (h("ul", null, this.attachments.map(it => (h("li", null, h("pos-rich-link", { uri: it.uri }))))));
|
|
39
36
|
}
|
|
40
37
|
get el() { return this; }
|
|
41
|
-
|
|
42
|
-
}, [257, "pos-attachments", {
|
|
38
|
+
}, [256, "pos-attachments", {
|
|
43
39
|
"resource": [32],
|
|
44
40
|
"attachments": [32]
|
|
45
41
|
}]);
|
|
@@ -77,7 +73,7 @@ function defineCustomElement() {
|
|
|
77
73
|
} });
|
|
78
74
|
}
|
|
79
75
|
|
|
80
|
-
export { PosAttachments as P, defineCustomElement as d
|
|
76
|
+
export { PosAttachments as P, defineCustomElement as d };
|
|
81
77
|
//# sourceMappingURL=pos-attachments2.js.map
|
|
82
78
|
|
|
83
79
|
//# sourceMappingURL=pos-attachments2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"pos-attachments2.js","mappings":";;;;;;AAEM,SAAU,WAAW,CAAC,EAAe,EAAA;AACzC,IAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,QAAA,EAAE,CAAC,aAAa,CACd,IAAI,WAAW,CAAC,iBAAiB,EAAE;AACjC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,MAAM,EAAE,CAAC,KAAY,KAAI;gBACvB,OAAO,CAAC,KAAK,CAAC;aACf;AACF,SAAA,CAAC,CACH;AACH,KAAC,CAAC;AACJ;;
|
|
1
|
+
{"file":"pos-attachments2.js","mappings":";;;;;;AAEM,SAAU,WAAW,CAAC,EAAe,EAAA;AACzC,IAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC3B,QAAA,EAAE,CAAC,aAAa,CACd,IAAI,WAAW,CAAC,iBAAiB,EAAE;AACjC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,MAAM,EAAE,CAAC,KAAY,KAAI;gBACvB,OAAO,CAAC,KAAK,CAAC;aACf;AACF,SAAA,CAAC,CACH;AACH,KAAC,CAAC;AACJ;;MCLa,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAA,WAAA,CAAA;;;;;;;AAMzB,IAAA,MAAM,iBAAiB,GAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;;IAGhD,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YACjC,OAAO,CAAA,CAAC,IAAI,EAAA,IAAA,EAAA,uBAAA,CAA6B;;AAG3C,QAAA,QACE,CAAA,CAAA,IAAA,EAAA,IAAA,EACG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,KACtB,CAAA,CAAA,IAAA,EAAA,IAAA,EACE,CAAe,CAAA,eAAA,EAAA,EAAA,GAAG,EAAE,EAAE,CAAC,GAAG,EAAkB,CAAA,CACzC,CACN,CAAC,CACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/components/events/useResource.ts","src/components/pos-attachments/pos-attachments.tsx"],"sourcesContent":["import { Thing } from '@pod-os/core';\n\nexport function useResource(el: HTMLElement): Promise<Thing> {\n return new Promise(resolve => {\n el.dispatchEvent(\n new CustomEvent('pod-os:resource', {\n bubbles: true,\n composed: true,\n cancelable: true,\n detail: (thing: Thing) => {\n resolve(thing);\n },\n }),\n );\n });\n}\n","import { Component, Element, h, Host, State } from '@stencil/core';\nimport { Attachment, Thing } from '@pod-os/core';\nimport { useResource } from '../events/useResource';\n\n/**\n * Lists whatever is attached to the current thing\n */\n@Component({\n tag: 'pos-attachments',\n})\nexport class PosAttachments {\n @Element() el: HTMLElement;\n\n @State() resource: Thing;\n @State() attachments: Attachment[];\n\n async componentWillLoad() {\n this.resource = await useResource(this.el);\n this.attachments = this.resource.attachments();\n }\n\n render() {\n if (this.attachments.length === 0) {\n return <Host>No attachments found.</Host>;\n }\n\n return (\n <ul>\n {this.attachments.map(it => (\n <li>\n <pos-rich-link uri={it.uri}></pos-rich-link>\n </li>\n ))}\n </ul>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, h
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { d as defineCustomElement$
|
|
5
|
-
import { d as defineCustomElement$
|
|
6
|
-
import { d as defineCustomElement$
|
|
7
|
-
import { d as defineCustomElement$3 } from './pos-rich-link2.js';
|
|
8
|
-
import { d as defineCustomElement$2 } from './pos-upload2.js';
|
|
9
|
-
|
|
10
|
-
const posToolAttachmentsCss = ":host {\n display: flex;\n flex-direction: column;\n gap: var(--size-1);\n h2 {\n margin: 0;\n padding: 0;\n font-size: var(--scale-2);\n }\n}\n";
|
|
11
|
-
|
|
12
|
-
const defaultAppLayoutCss = ":host {\n --gap-size: var(--size-1);\n display: flex;\n flex-direction: column;\n gap: var(--gap-size);\n margin: var(--gap-size);\n}\n\nsection {\n display: flex;\n flex-direction: column;\n gap: var(--gap-size);\n}\n\n@media (min-width: 640px) {\n :host {\n --gap-size: var(--size-4);\n flex-direction: row;\n flex-wrap: wrap;\n\n section {\n &:first-of-type {\n flex: 1;\n }\n }\n\n section:not(:first-of-type) {\n flex: 0 0 30%;\n }\n }\n}\n";
|
|
13
|
-
|
|
14
|
-
const articleCardCss = "article {\n padding: var(--size-2);\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n outline: var(--pos-border-solid);\n border-radius: var(--radius-sm);\n box-shadow: var(--shadow-md);\n background-color: var(--pos-card-background);\n\n header {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n h1 {\n margin: 0;\n }\n }\n}\n";
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$6 } from './pos-attachments2.js';
|
|
3
|
+
import { d as defineCustomElement$5 } from './pos-description2.js';
|
|
4
|
+
import { d as defineCustomElement$4 } from './pos-label2.js';
|
|
5
|
+
import { d as defineCustomElement$3 } from './pos-resource2.js';
|
|
6
|
+
import { d as defineCustomElement$2 } from './pos-rich-link2.js';
|
|
15
7
|
|
|
16
8
|
const PosToolAttachments$1 = /*@__PURE__*/ proxyCustomElement(class PosToolAttachments extends HTMLElement {
|
|
17
9
|
constructor(registerHost) {
|
|
@@ -19,29 +11,16 @@ const PosToolAttachments$1 = /*@__PURE__*/ proxyCustomElement(class PosToolAttac
|
|
|
19
11
|
if (registerHost !== false) {
|
|
20
12
|
this.__registerHost();
|
|
21
13
|
}
|
|
22
|
-
this.__attachShadow();
|
|
23
|
-
}
|
|
24
|
-
async componentWillLoad() {
|
|
25
|
-
this.os = await usePodOS(this.el);
|
|
26
|
-
this.resource = await useResource(this.el);
|
|
27
14
|
}
|
|
28
15
|
render() {
|
|
29
|
-
|
|
30
|
-
return (h(Host, { key: '68d1638d8f3d32768c9bb9fd5ec306e2e5cfcedf' }, h("section", { key: '12e66c5122bf0150c877317026325acb0ee0e998' }, h("article", { key: '502da4a6148d2c3d7c8180dedda9368d8e887fb9' }, h("h2", { key: '4a6eb2de72675bbc59644be1c1d926065b3ac618' }, "Attachments"), h("pos-attachments", { key: '9dfefe674075e96c6c6c1f9df55fe82840cf0c1e' }))), h("section", { key: '70bede1ab47113bd9c1d6321e1dfc8dd1d266503' }, ((_a = this.resource) === null || _a === void 0 ? void 0 : _a.editable) ? (h("pos-upload", { accept: ['*/*'], uploader: file => {
|
|
31
|
-
return this.os.attachments().uploadAndAddAttachment(this.resource, file);
|
|
32
|
-
} })) : null)));
|
|
16
|
+
return h("pos-attachments", { key: '58f67b724517cfe6eb67b4e3d675aff8da5fa749' });
|
|
33
17
|
}
|
|
34
|
-
|
|
35
|
-
static get style() { return posToolAttachmentsCss + (defaultAppLayoutCss + articleCardCss); }
|
|
36
|
-
}, [257, "pos-tool-attachments", {
|
|
37
|
-
"os": [32],
|
|
38
|
-
"resource": [32]
|
|
39
|
-
}]);
|
|
18
|
+
}, [256, "pos-tool-attachments"]);
|
|
40
19
|
function defineCustomElement$1() {
|
|
41
20
|
if (typeof customElements === "undefined") {
|
|
42
21
|
return;
|
|
43
22
|
}
|
|
44
|
-
const components = ["pos-tool-attachments", "pos-attachments", "pos-description", "pos-label", "pos-resource", "pos-rich-link"
|
|
23
|
+
const components = ["pos-tool-attachments", "pos-attachments", "pos-description", "pos-label", "pos-resource", "pos-rich-link"];
|
|
45
24
|
components.forEach(tagName => { switch (tagName) {
|
|
46
25
|
case "pos-tool-attachments":
|
|
47
26
|
if (!customElements.get(tagName)) {
|
|
@@ -49,31 +28,26 @@ function defineCustomElement$1() {
|
|
|
49
28
|
}
|
|
50
29
|
break;
|
|
51
30
|
case "pos-attachments":
|
|
52
|
-
if (!customElements.get(tagName)) {
|
|
53
|
-
defineCustomElement$7();
|
|
54
|
-
}
|
|
55
|
-
break;
|
|
56
|
-
case "pos-description":
|
|
57
31
|
if (!customElements.get(tagName)) {
|
|
58
32
|
defineCustomElement$6();
|
|
59
33
|
}
|
|
60
34
|
break;
|
|
61
|
-
case "pos-
|
|
35
|
+
case "pos-description":
|
|
62
36
|
if (!customElements.get(tagName)) {
|
|
63
37
|
defineCustomElement$5();
|
|
64
38
|
}
|
|
65
39
|
break;
|
|
66
|
-
case "pos-
|
|
40
|
+
case "pos-label":
|
|
67
41
|
if (!customElements.get(tagName)) {
|
|
68
42
|
defineCustomElement$4();
|
|
69
43
|
}
|
|
70
44
|
break;
|
|
71
|
-
case "pos-
|
|
45
|
+
case "pos-resource":
|
|
72
46
|
if (!customElements.get(tagName)) {
|
|
73
47
|
defineCustomElement$3();
|
|
74
48
|
}
|
|
75
49
|
break;
|
|
76
|
-
case "pos-
|
|
50
|
+
case "pos-rich-link":
|
|
77
51
|
if (!customElements.get(tagName)) {
|
|
78
52
|
defineCustomElement$2();
|
|
79
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"pos-tool-attachments.js","mappings":"
|
|
1
|
+
{"file":"pos-tool-attachments.js","mappings":";;;;;;;MAQaA,oBAAkB,iBAAAC,kBAAA,CAAA,MAAA,kBAAA,SAAA,WAAA,CAAA;;;;;;;IAC7B,MAAM,GAAA;QACJ,OAAO,yEAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PosToolAttachments","__stencil_proxyCustomElement"],"sources":["src/tools/pos-tool-attachments/pos-tool-attachments.tsx"],"sourcesContent":["import { Component, h } from '@stencil/core';\n\n/**\n * A tool to manage attachments of a thing.\n */\n@Component({\n tag: 'pos-tool-attachments',\n})\nexport class PosToolAttachments {\n render() {\n return <pos-attachments></pos-attachments>;\n }\n}\n"],"version":3}
|
|
@@ -3,7 +3,7 @@ import './chunk.ZGGPD2XJ.js';
|
|
|
3
3
|
import './chunk.YHLNUJ7P.js';
|
|
4
4
|
import './chunk.4TUIT776.js';
|
|
5
5
|
|
|
6
|
-
const posToolSelectCss = ":host {\n --button-size: var(--size-16);\n display: block;\n position: sticky;\n align-self: flex-start;\n top: 0;\n overflow: auto;\n min-width: var(--button-size);\n z-index: var(--layer-1);\n}\n\n[role='tablist'] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n border-right: var(--size-px) solid var(--pos-border-color);\n\n button {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n font-size: var(--size-6);\n position: relative;\n overflow: hidden;\n outline: none;\n border: none;\n width: var(--button-size);\n min-width: var(--button-size);\n height: var(--button-size);\n min-height: var(--button-size);\n
|
|
6
|
+
const posToolSelectCss = ":host {\n --button-size: var(--size-16);\n display: block;\n position: sticky;\n align-self: flex-start;\n top: 0;\n overflow: auto;\n min-width: var(--button-size);\n z-index: var(--layer-1);\n}\n\n[role='tablist'] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n border-right: var(--size-px) solid var(--pos-border-color);\n\n button {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n font-size: var(--size-6);\n position: relative;\n overflow: hidden;\n outline: none;\n border: none;\n width: var(--button-size);\n min-width: var(--button-size);\n height: var(--button-size);\n min-height: var(--button-size);\n background-color: var(--pos-background-color);\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border-radius: 100%;\n background: color-mix(in srgb, var(--pos-primary-color), transparent 50%);\n transform: translate(-50%, -50%);\n opacity: 1;\n }\n\n &:active::after,\n &:focus::after {\n width: calc(var(--button-size) * 1.5);\n height: calc(var(--button-size) * 1.5);\n opacity: 0;\n transition:\n width 0.5s ease-out,\n height 0.5s ease-out,\n opacity 1s ease-out;\n }\n\n &:focus-visible {\n border: var(--size-px) solid var(--pos-primary-color);\n }\n\n @media (min-width: 640px) {\n &[aria-selected] {\n border-right: var(--size-1) solid var(--pos-primary-color);\n }\n }\n\n .text {\n font-size: var(--size-3);\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n overflow: hidden;\n }\n }\n}\n\n@media (max-width: 640px) {\n :host {\n position: fixed;\n top: unset;\n bottom: 0;\n width: 100dvw;\n }\n [role='tablist'] {\n flex-direction: row;\n background-color: var(--pos-background-color);\n\n border-top: var(--size-px) solid var(--pos-border-color);\n\n button {\n &[aria-selected] {\n border-top: var(--size-1) solid var(--pos-primary-color);\n }\n }\n }\n}\n";
|
|
7
7
|
|
|
8
8
|
const PosToolSelect = /*@__PURE__*/ proxyCustomElement(class PosToolSelect extends HTMLElement {
|
|
9
9
|
constructor(registerHost) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"pos-tool-select2.js","mappings":";;;;;AAAA,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"file":"pos-tool-select2.js","mappings":";;;;;AAAA,MAAM,gBAAgB,GAAG,8qEAA8qE;;MCa1rE,aAAa,iBAAAA,kBAAA,CAAA,MAAA,aAAA,SAAA,WAAA,CAAA;AAL1B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAYE;;AAEG;AAEH,QAAA,IAAK,CAAA,KAAA,GAAiB,EAAE;AAwBzB;IAnBC,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,SAAS,EAAA,YAAA,EAAY,OAAO,EAAsB,sBAAA,EAAA,OAAO,EAChE,EAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAG;;AAAC,gBAAA,QACpB,CAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,MAAK,EAAE,CAAC,OAAO,EACpD,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA,EAEzC,CAAA,CAAA,SAAA,EAAA,EAAS,IAAI,EAAE,EAAE,CAAC,IAAI,EAAY,CAAA,EAClC,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,MAAM,EAAE,EAAA,EAAE,CAAC,KAAK,CAAQ,CAC7B;aACV,CAAC,CACE;;AAGV,QAAA,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement"],"sources":["src/components/pos-tool-select/pos-tool-select.css?tag=pos-tool-select&encapsulation=shadow","src/components/pos-tool-select/pos-tool-select.tsx"],"sourcesContent":[":host {\n --button-size: var(--size-16);\n display: block;\n position: sticky;\n align-self: flex-start;\n top: 0;\n overflow: auto;\n min-width: var(--button-size);\n z-index: var(--layer-1);\n}\n\n[role='tablist'] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n border-right: var(--size-px) solid var(--pos-border-color);\n\n button {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n font-size: var(--size-6);\n position: relative;\n overflow: hidden;\n outline: none;\n border: none;\n width: var(--button-size);\n min-width: var(--button-size);\n height: var(--button-size);\n min-height: var(--button-size);\n background-color: var(--pos-background-color);\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border-radius: 100%;\n background: color-mix(in srgb, var(--pos-primary-color), transparent 50%);\n transform: translate(-50%, -50%);\n opacity: 1;\n }\n\n &:active::after,\n &:focus::after {\n width: calc(var(--button-size) * 1.5);\n height: calc(var(--button-size) * 1.5);\n opacity: 0;\n transition:\n width 0.5s ease-out,\n height 0.5s ease-out,\n opacity 1s ease-out;\n }\n\n &:focus-visible {\n border: var(--size-px) solid var(--pos-primary-color);\n }\n\n @media (min-width: 640px) {\n &[aria-selected] {\n border-right: var(--size-1) solid var(--pos-primary-color);\n }\n }\n\n .text {\n font-size: var(--size-3);\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n overflow: hidden;\n }\n }\n}\n\n@media (max-width: 640px) {\n :host {\n position: fixed;\n top: unset;\n bottom: 0;\n width: 100dvw;\n }\n [role='tablist'] {\n flex-direction: row;\n background-color: var(--pos-background-color);\n\n border-top: var(--size-px) solid var(--pos-border-color);\n\n button {\n &[aria-selected] {\n border-top: var(--size-1) solid var(--pos-primary-color);\n }\n }\n }\n}\n","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { ToolConfig } from '../pos-type-router/selectToolsForTypes';\n\nimport './shoelace';\n\n/**\n * Allows selecting a tool from within a set of available tools\n */\n@Component({\n tag: 'pos-tool-select',\n styleUrl: 'pos-tool-select.css',\n shadow: true,\n})\nexport class PosToolSelect {\n /**\n * The tool that is currently selected\n */\n @Prop()\n selected: ToolConfig;\n\n /**\n * All tools that are available\n */\n @Prop()\n tools: ToolConfig[] = [];\n\n @Event({ eventName: 'pod-os:tool-selected' })\n toolSelected: EventEmitter<ToolConfig>;\n\n render() {\n if (this.tools.length > 1) {\n return (\n <div role=\"tablist\" aria-label=\"Tools\" aria-multiselectable=\"false\">\n {this.tools.map(it => (\n <button\n role=\"tab\"\n aria-selected={this.selected?.element === it.element}\n onClick={() => this.toolSelected.emit(it)}\n >\n <sl-icon name={it.icon}></sl-icon>\n <span class=\"text\">{it.label}</span>\n </button>\n ))}\n </div>\n );\n }\n return null;\n }\n}\n"],"version":3}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,g as o,b as r}from"./p-CTyMYUsB.js";export{s as setNonce}from"./p-CTyMYUsB.js";var t=()=>{const o=import.meta.url;const s={};if(o!==""){s.resourcesUrl=new URL(".",o).href}return e(s)};t().then((async e=>{await o();return r([["p-
|
|
1
|
+
import{p as e,g as o,b as r}from"./p-CTyMYUsB.js";export{s as setNonce}from"./p-CTyMYUsB.js";var t=()=>{const o=import.meta.url;const s={};if(o!==""){s.resourcesUrl=new URL(".",o).href}return e(s)};t().then((async e=>{await o();return r([["p-39c4bcd5",[[256,"pos-app-browser",{restorePreviousSession:[4,"restore-previous-session"],mode:[1],uri:[32]}],[256,"pos-internal-router",{uri:[1]}],[257,"pos-login",{os:[32],customLoggedInComponent:[32]},[[4,"pod-os:logout","logout"],[4,"pod-os:login","onLogin"]]],[257,"pos-navigation",{uri:[1],os:[32],inputValue:[32],searchIndex:[32],suggestions:[32],selectedIndex:[32],resource:[32]},[[0,"pod-os:search:index-created","buildSearchIndex"],[0,"pod-os:search:index-updated","rebuildSearchIndex"],[0,"pod-os:navigate","openNavigationDialog"],[4,"click","closeDialog"],[0,"pod-os:link","clearSuggestions"],[0,"click","onClickSelf"],[0,"keydown","handleKeyDown"]],{uri:["updateResource"],os:["updateResource"]}],[257,"pos-user-menu",{webId:[1,"web-id"]},[[0,"sl-select","onSelect"]]],[257,"pos-add-new-thing",{referenceUri:[1,"reference-uri"]}],[257,"pos-type-router",{initialTool:[32],availableTools:[32],oldTool:[32],currentTool:[32],transitioning:[32]},[[0,"pod-os:tool-selected","handleToolSelected"]]],[257,"pos-app",{restorePreviousSession:[4,"restore-previous-session"],os:[32],unsubscribeSettings:[32],loading:[32]},[[0,"pod-os:init","initializeOs"],[0,"pod-os:module","loadModule"]]],[257,"pos-error-toast",{title:[32],message:[32]},[[8,"unhandledrejection","unhandledRejection"],[0,"pod-os:error","catchError"]]],[260,"pos-router",{mode:[1],uri:[32]},[[0,"pod-os:link","linkClicked"],[8,"pod-os:session-restored","sessionRestored"]]],[257,"pos-app-dashboard"],[257,"pos-navigation-bar",{current:[16],searchIndexReady:[4,"search-index-ready"]},[[4,"keydown","activate"]]],[257,"pos-app-settings"],[273,"pos-new-thing-form",{referenceUri:[1,"reference-uri"],os:[32],newUri:[32],name:[32],selectedTypeUri:[32],canSubmit:[32]},null,{name:["validate"],selectedTypeUri:["validate"]}],[273,"pos-login-form",{idpUrl:[32],canSubmit:[32]},null,{idpUrl:["validate"]}],[257,"pos-tool-select",{selected:[16],tools:[16]}],[257,"pos-type-index-entries",{uri:[1],entries:[32]}],[257,"pos-example-resources"],[257,"pos-make-findable",{uri:[1],os:[32],thing:[32],indexes:[32],unsubscribeSessionChange:[32],showOptions:[32],isIndexed:[32]},[[0,"sl-select","onSelect"]],{uri:["updateUri"]}],[260,"pos-dialog",{showModal:[64],close:[64]}],[257,"pos-getting-started"],[257,"pos-setting-offline-cache"],[257,"pos-picture",{blurredBackground:[4,"blurred-background"],noUpload:[4,"no-upload"],resource:[32],os:[32],isUploading:[32]}],[257,"pos-upload",{accept:[16],uploader:[16]}],[257,"pos-image",{src:[1],alt:[1],blurredBackground:[4,"blurred-background"],os:[32],dataUri:[32],brokenFile:[32],networkError:[32],imageError:[32],loading:[32]},null,{os:["fetchBlob"],src:["fetchBlob"]}],[273,"pos-select-term",{placeholder:[1],value:[1],os:[32],terms:[32]},null,{os:["setTerms"]}],[257,"pos-predicate",{uri:[1],label:[1],expanded:[32]}],[257,"pos-rich-link",{uri:[1],rel:[1],rev:[1],link:[32],followPredicate:[32],error:[32],showCustomContent:[32]}],[257,"pos-description",{resource:[32]}],[257,"pos-label",{resource:[32]}],[257,"pos-resource",{uri:[1],lazy:[4],os:[32],resource:[32],consumers:[32],error:[32],loading:[32],fetch:[64]},[[0,"pod-os:resource","provideResource"]],{os:["loadResource"],uri:["loadResource"]}]]],["p-c3f423e3",[[257,"pos-app-generic"]]],["p-b6bd2c13",[[257,"pos-app-ldp-container"]]],["p-659b128e",[[257,"pos-app-rdf-document"]]],["p-5a97b2ec",[[257,"pos-app-image-viewer",{resource:[32]}]]],["p-5423da3f",[[256,"pos-tool-attachments"]]],["p-d03f9b42",[[257,"pos-app-document-viewer",{resource:[32]}]]],["p-af50630f",[[256,"pos-list",{rel:[1],ifTypeof:[1,"if-typeof"],fetch:[4],error:[32],os:[32],resource:[32],items:[32],templateString:[32]}]]],["p-e1e9503f",[[257,"pos-value",{predicate:[1],resource:[32]}]]],["p-c7a53ee1",[[256,"pos-attachments",{resource:[32],attachments:[32]}]]],["p-26835fca",[[257,"pos-container-contents",{container:[32],contents:[32],loading:[32],createNewItem:[32]},[[0,"keydown","handleKeyDown"]]]]],["p-563b8fb7",[[257,"pos-document",{src:[1],alt:[1],os:[32],file:[32],brokenFile:[32],error:[32],saveStatus:[32],loading:[32],isEditable:[32]},[[0,"pod-os:document-modified","handleDocumentModified"]],{os:["fetchBlob"],src:["fetchBlob"]}]]],["p-e845e649",[[257,"pos-relations",{data:[32]}],[257,"pos-reverse-relations",{data:[32]}]]],["p-a34f4df2",[[257,"pos-subjects",{data:[32]}]]],["p-37711fd4",[[257,"pos-markdown-document",{file:[16],saveStatus:[1,"save-status"],editable:[4],markdown:[32],isModified:[32],isEditing:[32],startEditing:[64],stopEditing:[64]}]]],["p-8b7ff04f",[[257,"pos-container-item",{resource:[32]}],[257,"pos-container-toolbar"],[257,"pos-create-new-container-item",{type:[1],container:[16],os:[32],name:[32]}]]],["p-6e65daa0",[[257,"pos-literals",{data:[32]}],[257,"pos-type-badges",{data:[32],typeLabels:[32],isExpanded:[32]}],[257,"pos-add-literal-value",{os:[32],resource:[32],currentValue:[32],selectedTermUri:[32]},null,{os:["setName"]}]]]],e)}));
|
|
2
2
|
//# sourceMappingURL=elements.esm.js.map
|
|
@@ -726,7 +726,7 @@ import{r as e,h as t,H as i,c as s,a as r,d as o,f as n}from"./p-CTyMYUsB.js";im
|
|
|
726
726
|
${this.submenuController.renderSubmenu()}
|
|
727
727
|
${this.loading?f` <sl-spinner part="spinner" exportparts="base:spinner__base"></sl-spinner> `:""}
|
|
728
728
|
</div>
|
|
729
|
-
`}};fr.styles=[c,qs];fr.dependencies={"sl-icon":m,"sl-popup":I,"sl-spinner":hr};p([R("slot:not([name])")],fr.prototype,"defaultSlot",2);p([R(".menu-item")],fr.prototype,"menuItem",2);p([u()],fr.prototype,"type",2);p([u({type:Boolean,reflect:true})],fr.prototype,"checked",2);p([u()],fr.prototype,"value",2);p([u({type:Boolean,reflect:true})],fr.prototype,"loading",2);p([u({type:Boolean,reflect:true})],fr.prototype,"disabled",2);p([b("checked")],fr.prototype,"handleCheckedChange",1);p([b("disabled")],fr.prototype,"handleDisabledChange",1);p([b("type")],fr.prototype,"handleTypeChange",1);fr.define("sl-menu-item");const mr="button.main {\n display: flex;\n transition:\n width 200ms,\n background-color 500ms,\n color 500ms,\n border-color 500ms;\n max-width: var(--size-40);\n flex-direction: row;\n overflow: hidden;\n height: var(--pos-navigation-bar-height);\n width: var(--pos-navigation-bar-height);\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-md);\n color: var(--pos-subtle-text-color);\n border: var(--size-px) dashed var(--pos-subtle-text-color);\n background-color: var(--pos-background-color);\n\n p {\n padding: 0;\n margin: 0;\n display: none;\n white-space: nowrap;\n }\n\n &.success {\n color: var(--color-green-700);\n border-color: var(--color-green-700);\n border-style: solid;\n background-color: var(--color-green-100);\n }\n\n &:active {\n transform: scale(0.99);\n filter: brightness(90%);\n }\n &:focus {\n outline: var(--pos-input-focus-outline);\n }\n}\n\nsvg {\n display: inline-block;\n height: var(--size-6);\n flex-shrink: 0;\n flex-grow: 0;\n width: var(--size-6);\n}\n\nbutton.main:hover,\nsl-dropdown[open] button {\n &.success {\n background: var(--color-green-200);\n color: var(--color-green-700);\n }\n width: var(--size-full);\n height: var(--pos-navigation-bar-height);\n background: var(--pos-background-color);\n color: var(--pos-normal-text-color);\n\n p {\n display: inline-block;\n }\n}\n";const Qr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.errorEmitter=s(this,"pod-os:error");this.indexUpdatedEmitter=s(this,"pod-os:search:index-updated");this.indexCreatedEmitter=s(this,"pod-os:search:index-created");this.indexes=[];this.showOptions=false;this.isIndexed=false;this.receivePodOs=async e=>{this.os=e;this.thing=this.os.store.get(this.uri);this.getLabelIndexes(U.state.profile);this.unsubscribeSessionChange=U.onChange("profile",(e=>{this.getLabelIndexes(e)}))}}componentWillLoad(){M(this)}disconnectedCallback(){this.unsubscribeSessionChange&&this.unsubscribeSessionChange()}updateUri(e){this.thing=this.os.store.get(e);this.isIndexed=this.checkIfIndexed(e)}checkIfIndexed(e){return this.indexes.some((t=>t.contains(e)))}getLabelIndexes(e){if(e){this.indexes=e.getPrivateLabelIndexes().map((e=>this.os.store.get(e).assume(E)));this.showOptions=this.indexes.length>1;this.isIndexed=this.checkIfIndexed(this.uri)}}async onClick(e){e.preventDefault();if(this.indexes.length===1){const e=this.indexes[0];await this.addToLabelIndex(e);this.indexUpdatedEmitter.emit(e)}else if(this.indexes.length===0){const e=await this.createDefaultLabelIndex();await this.addToLabelIndex(e);this.indexCreatedEmitter.emit(e)}}async addToLabelIndex(e){try{await this.os.addToLabelIndex(this.thing,e);this.isIndexed=true}catch(e){this.errorEmitter.emit(e)}}async createDefaultLabelIndex(){try{return await this.os.createDefaultLabelIndex(U.state.profile)}catch(e){this.errorEmitter.emit(e)}}render(){if(!U.state.isLoggedIn||!this.uri){return null}const e="Make this findable";const s=t("button",{type:"button",slot:"trigger","aria-label":e,class:{main:true,success:this.isIndexed},onClick:e=>this.onClick(e),title:""},this.isIndexed?t(yr,null):t(br,null),t("p",null,e));if(this.showOptions){return t(i,null,t("sl-dropdown",null,s,t("sl-menu",{role:"listbox"},this.indexes.map((e=>t("sl-menu-item",{role:"option",value:e,type:"checkbox",checked:e.contains(this.uri)},t("pos-resource",{uri:e.uri,lazy:true},t("pos-label",null))))))))}else{return s}}async onSelect(e){const t=e.detail.item.value;e.preventDefault();await this.addToLabelIndex(t);this.indexUpdatedEmitter.emit(t)}get el(){return r(this)}static get watchers(){return{uri:["updateUri"]}}};const br=()=>t("svg",{role:"presentation",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Zm3.75 11.625a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"}));const yr=()=>t("svg",{role:"presentation",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375M9 15l2.25 2.25L15 12"}));Qr.style=mr;const gr=":host {\n --pos-navigation-bar-height: var(--size-10);\n}\n\nsearch {\n position: relative;\n}\n\n.suggestions ol {\n border: 1px solid var(--pos-border-color);\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.suggestions {\n width: 100%;\n overflow-y: auto;\n max-height: 90dvh;\n li {\n padding: 1rem;\n background-color: var(--pos-background-color);\n pos-rich-link {\n --background-color: inherit;\n }\n &[aria-selected='true'] {\n background-color: var(--pos-primary-color);\n &:hover {\n background-color: var(--pos-primary-color);\n }\n }\n &:hover {\n background-color: var(--pos-border-color);\n }\n }\n}\n\n.suggestions li.selected pos-rich-link {\n --label-color: white;\n --description-color: var(--pos-border-color);\n --uri-color: var(--pos-subtle-text-color);\n}\n\ndialog {\n position: absolute;\n margin-top: calc(-1 * var(--pos-navigation-bar-height));\n padding: 0;\n width: 100%;\n max-width: 100%;\n min-width: 100%;\n overflow: hidden;\n max-height: 100dvh;\n background-color: var(--pos-background-color);\n color: var(--pos-normal-text-color);\n border: var(--pos-border-color);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-md);\n form {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n align-items: center;\n input {\n display: flex;\n font-size: var(--scale-1);\n height: var(--pos-navigation-bar-height);\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n padding-left: var(--size-2);\n width: 100%;\n border: none;\n outline: none;\n color: var(--pos-normal-text-color);\n background-color: var(--pos-input-background-color);\n box-sizing: border-box;\n }\n }\n}\n\ndialog[open] {\n display: flex;\n z-index: var(--layer-top);\n animation: slideIn 100ms ease-out;\n}\n\n@media (max-width: 640px) {\n search {\n position: unset;\n }\n dialog {\n margin-top: var(--size-1);\n top: 0;\n width: 95dvw;\n max-width: unset;\n min-width: unset;\n form {\n input {\n height: var(--size-12);\n font-size: var(--scale-fluid-3);\n }\n }\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n";const xr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.linkEmitter=s(this,"pod-os:link");this.uri="";this.inputValue=this.uri;this.searchIndex=undefined;this.suggestions=[];this.selectedIndex=-1;this.resource=null;this.changeEvents=new S.Subject;this.debouncedSearch=null;this.receivePodOs=async e=>{this.os=e}}updateResource(){var e;try{this.resource=this.uri?(e=this.os)===null||e===void 0?void 0:e.store.get(this.uri):null}catch(e){this.resource=null}}componentWillLoad(){M(this);this.updateResource();U.onChange("isLoggedIn",(async e=>{if(e){await this.buildSearchIndex()}else{this.clearSearchIndex()}}));this.debouncedSearch=this.changeEvents.pipe(S.debounceTime(300)).subscribe((()=>this.search()))}disconnectedCallback(){var e;(e=this.debouncedSearch)===null||e===void 0?void 0:e.unsubscribe()}async buildSearchIndex(){this.searchIndex=await this.os.buildSearchIndex(U.state.profile)}rebuildSearchIndex(){this.searchIndex.rebuild()}openNavigationDialog(e){var t,i;this.resource=e.detail;if(e.detail){this.inputValue=e.detail.uri;this.search()}(t=this.inputRef)===null||t===void 0?void 0:t.select();(i=this.dialogRef)===null||i===void 0?void 0:i.show()}clearSearchIndex(){var e;(e=this.searchIndex)===null||e===void 0?void 0:e.clear()}onChange(e){this.inputValue=e.target.value;this.changeEvents.next()}closeDialog(){var e;(e=this.dialogRef)===null||e===void 0?void 0:e.close();this.selectedIndex=-1}clearSuggestions(){var e;this.suggestions=[];(e=this.dialogRef)===null||e===void 0?void 0:e.close();this.selectedIndex=-1}onClickSelf(e){e.stopPropagation()}handleKeyDown(e){if(e.key==="Escape"){this.closeDialog()}else if(e.key==="ArrowDown"){e.preventDefault();this.selectedIndex=Math.min(this.selectedIndex+1,this.suggestions.length-1)}else if(e.key==="ArrowUp"){e.preventDefault();this.selectedIndex=Math.max(this.selectedIndex-1,0)}}search(){if(this.searchIndex){this.suggestions=this.inputValue?this.searchIndex.search(this.inputValue):[]}}onSubmit(){if(this.suggestions&&this.selectedIndex>-1){this.linkEmitter.emit(this.suggestions[this.selectedIndex].ref)}else{this.linkEmitter.emit(this.inputValue)}}render(){return t("nav",{key:"d5ad4841674cf172e9401a63fc50e58900ca5b1f"},t("search",{key:"8daf86774c49234d10637160fd983681ac483b44"},t("pos-navigation-bar",{key:"200137643dbc0aa1f120c231dc70a0d3f71b596a",searchIndexReady:this.searchIndex!==undefined,current:this.resource}),t("dialog",{key:"f2fb1d3e4a38d17efb6bd80ca791e8a30fafab66",ref:e=>this.dialogRef=e},t("form",{key:"e54698d8fb968a5ee6007cc4d5644fec36bf74f3",method:"dialog",onSubmit:()=>this.onSubmit()},t("input",{key:"633a4030c6296b5c94e2661bd73168afc1e04438",ref:e=>this.inputRef=e,enterkeyhint:"search","aria-label":"Search or enter URI",placeholder:"Search or enter URI",value:this.uri,onChange:e=>this.onChange(e),onInput:e=>this.onChange(e),role:"combobox","aria-autocomplete":"list","aria-expanded":this.suggestions.length>0,"aria-controls":"suggestions-list","aria-activedescendant":this.selectedIndex>=0?`option-${this.selectedIndex}`:null}),this.suggestions.length>0?t("div",{class:"suggestions"},t("ol",{id:"suggestions-list",role:"listbox","aria-label":"Search results"},this.suggestions.map(((e,i)=>t("li",{id:`option-${i}`,role:"option","aria-selected":i===this.selectedIndex?"true":"false"},t("pos-rich-link",{uri:e.ref})))))):null))))}static get watchers(){return{uri:["updateResource"],os:["updateResource"]}}};xr.style=gr;const Ur="section.current {\n display: flex;\n height: var(--pos-navigation-bar-height);\n flex-grow: 1;\n gap: 0;\n background-color: var(--pos-input-background-color);\n border-radius: var(--radius-md);\n width: 100%;\n &:focus-within {\n outline: var(--pos-input-focus-outline);\n }\n}\n\nsection.current button {\n cursor: pointer;\n font-size: var(--scale-1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n background: none;\n color: var(--pos-normal-text-color);\n outline: none;\n border: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n &:focus {\n text-decoration: underline;\n }\n :first-child {\n flex-grow: 1;\n }\n svg {\n width: var(--size-6);\n color: var(--pos-subtle-text-color);\n }\n}\n";const Br=class{constructor(t){e(this,t);this.navigate=s(this,"pod-os:navigate")}onClick(){this.navigate.emit(this.current)}activate(e){if((e.ctrlKey||e.metaKey)&&e.key==="k"){e.preventDefault();this.navigate.emit(this.current)}}render(){const e=this.current?`${this.current.label()} (Click to search or enter URI)`:"Search or enter URI";return t("section",{key:"5f49aa9dad9d07550ee8ffbee90036cbc1efda55",class:"current"},this.current&&this.searchIndexReady&&t("pos-make-findable",{key:"85974a4772aaf8cad3a11cdcd49e6df10141bfe3",uri:this.current.uri}),t("button",{key:"40660a3455b0f3392c68d7aea0075b102a1762a2","aria-label":e,onClick:()=>this.onClick()},t("div",{key:"9ab8922175d701f714f72aefb95745cf5ae4bb95"},this.current?this.current.label():"Search or enter URI"),this.icon()))}icon(){return t("svg",{"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}};Br.style=Ur;const vr=":host{display:block}form{display:grid;grid-template-columns:var(--size-16) 1fr;grid-gap:var(--scale-0)}label{grid-column:1 / 2;display:flex;align-items:center;justify-content:flex-end}input,pos-select-term,button{grid-column:2 / 3}input,pos-select-term::part(input){outline:var(--pos-input-outline);padding:var(--scale-000);border:none;border-radius:var(--radius-xs);width:var(--size-full);box-sizing:border-box;background:var(--pos-input-background-color);color:var(--pos-normal-text-color)}input:focus-within,pos-select-term::part(input):focus-within{outline:var(--pos-input-focus-outline)}#new-uri{grid-column:1/3;cursor:default;word-break:break-all;color:var(--pos-normal-text-color);font-weight:var(--weight-light);background:var(--pos-disabled-color);padding:var(--scale-000);border-radius:var(--radius-xs)}input#create{outline:none;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--pos-primary-text-color);background-color:var(--pos-primary-color)}input#create:disabled{cursor:default;color:var(--pos-disabled-text-color);background-color:var(--pos-disabled-color);box-shadow:none}input#create:hover:not(:disabled),input#create:focus{filter:brightness(110%);box-shadow:var(--shadow-md)}";const Fr=class{constructor(t){e(this,t);this.linkEmitter=s(this,"pod-os:link");this.errorEmitter=s(this,"pod-os:error");this.subscribePodOs=s(this,"pod-os:init");this.canSubmit=false;this.receivePodOs=async e=>{this.os=e}}validate(){this.canSubmit=Boolean(this.name&&this.selectedTypeUri)}componentWillLoad(){M(this)}render(){return t("form",{key:"a362c5b749dd744123973987ff8b0291485b465e",method:"dialog",onSubmit:e=>this.handleSubmit(e)},t("label",{key:"45c78b0b48955cc157d04f547285b4ae4c19c38f",htmlFor:"type"},"Type"),t("pos-select-term",{key:"e3c3ab9abdbbb585916d95ba1aa14a066dbc5bd0",id:"type",placeholder:"",value:this.selectedTypeUri,"onPod-os:term-selected":e=>this.onTermSelected(e)}),t("label",{key:"c696f8ed862d40d3c366ef0ede5e88e574928db3",htmlFor:"name"},"Name"),t("input",{key:"89e6289e24ca9d3969da97c7aeb22224db1c376c",id:"name",type:"text",value:this.name,onInput:e=>this.handleChange(e)}),this.newUri?t("div",{id:"new-uri",title:"This will be the URI of the new thing"},this.newUri):null,t("input",{key:"b9520afef34177c6f14ab0798c045536d5661a2a",id:"create",type:"submit",value:"Create",disabled:!this.canSubmit}))}handleChange(e){this.name=e.target.value;this.newUri=this.os.proposeUriForNewThing(this.referenceUri,this.name)}onTermSelected(e){this.selectedTypeUri=e.detail.uri}async handleSubmit(e){try{await this.os.addNewThing(this.newUri,this.name,this.selectedTypeUri);this.linkEmitter.emit(this.newUri);this.reset()}catch(t){e.preventDefault();this.errorEmitter.emit(t)}}reset(){this.name="";this.newUri="";this.selectedTypeUri=""}static get delegatesFocus(){return true}static get watchers(){return{name:["validate"],selectedTypeUri:["validate"]}}};Fr.style=vr;const Er=":host {\n /**\n * @prop --width: Width of the picture\n * @prop --height: Height of the picture\n * @prop --border-radius: Border radius of the picture\n * @prop --object-fit: CSS object-fit of the picture\n */\n --width: 300px;\n --height: 300px;\n --border-radius: var(--border-radius, 0);\n --object-fit: var(--object-fit, cover);\n\n display: block;\n position: relative;\n}\n\nbutton.add {\n display: none;\n align-items: center;\n gap: var(--size-1);\n padding: var(--size-1);\n position: absolute;\n bottom: var(--size-2);\n right: var(--size-2);\n z-index: var(--layer-top);\n}\n\n:host(:hover) button.add {\n display: flex;\n}\n\n@media (pointer: coarse) {\n button.add {\n display: flex;\n }\n}\n\n.no-picture {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: var(--height);\n width: var(--width);\n position: relative;\n}\n\n.no-picture button.add {\n position: static;\n margin-top: var(--size-2);\n display: flex;\n}\n\n.upload-container {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n padding: var(--size-2);\n button.close {\n display: flex;\n align-items: center;\n gap: var(--size-1);\n padding: var(--size-1);\n }\n}\n";const wr=class{constructor(t){e(this,t);this.subscribeResource=s(this,"pod-os:resource");this.blurredBackground=false;this.noUpload=false;this.isUploading=false;this.receiveResource=e=>{this.resource=e};this.enterUploadMode=()=>{this.isUploading=true};this.exitUploadMode=()=>{this.isUploading=false}}async componentWillLoad(){G(this);this.os=await A(this.el)}renderUpload(){return t("div",{class:"upload-container"},t("button",{class:"close",onClick:()=>this.exitUploadMode()},t("sl-icon",{name:"x-circle"}),"Close upload"),t("pos-upload",{uploader:e=>this.os.uploadAndAddPicture(this.resource,e)}))}shouldShowUploadButton(){var e;return((e=this.resource)===null||e===void 0?void 0:e.editable)===true&&!this.noUpload}renderUploadButton(){if(!this.shouldShowUploadButton()){return null}return t("button",{class:"add",onClick:this.enterUploadMode},t("sl-icon",{name:"cloud-plus"}),"Upload picture")}renderPicture(){var e;const i=(e=this.resource)===null||e===void 0?void 0:e.picture();if(!i){return t("div",{class:"no-picture"},t("slot",null),this.renderUploadButton())}return[t("pos-image",{blurredBackground:this.blurredBackground,src:i.url,alt:this.resource.label()}),this.renderUploadButton()]}render(){return this.isUploading?this.renderUpload():this.renderPicture()}get el(){return r(this)}};wr.style=Er;const Sr=":host{--text-color:var(--pos-primary-color);font-family:var(--font-sans)}button{line-height:var(--scale-0);font-family:inherit;margin:0;padding:0;display:flex;background:none;border:none;cursor:pointer}button,a{color:var(--text-color);font-weight:var(--weight-light);line-height:var(--scale-0);font-size:var(--scale-0);font-family:inherit}.container{display:flex;gap:var(--size-1);flex-direction:row;align-items:center;line-height:var(--scale-0)}";const Dr=class{constructor(t){e(this,t);this.expanded=false}render(){if(this.expanded){return t("div",{class:"container"},t("a",{href:this.uri},this.uri),t("sl-tooltip",{content:`Collapse URI`},t("button",{"aria-label":`collapse URI to ${this.label}`,onClick:()=>this.expanded=false},t("sl-icon",{name:"arrow-left-circle"}))))}else{return t("sl-tooltip",{content:`${this.uri}`},t("button",{onClick:()=>this.expanded=true},this.label))}}};Dr.style=Sr;const Rr="details.error {\n margin: var(--size-2);\n background-color: var(--pos-error-background-color);\n border: var(--size-px) solid var(--pos-error-border-color);\n padding: var(--size-2);\n border-radius: var(--radius-md);\n\n a {\n color: var(--pos-normal-text-color);\n }\n}\n\nsl-progress-bar {\n --height: var(--size-1);\n}\n";const kr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.resourceLoadedEmitter=s(this,"pod-os:resource-loaded");this.consumers=[];this.lazy=false;this.loading=true;this.receivePodOs=async e=>{this.os=e}}componentWillLoad(){U.onChange("isLoggedIn",(()=>this.loadResource()));M(this)}async provideResource(e){e.stopPropagation();if(this.resource){e.detail(this.resource)}this.consumers.push(e)}async loadResource(){await this.getResource(!this.lazy)}async fetch(){await this.getResource(true)}async getResource(e=false){try{if(e){this.loading=true;await this.os.fetch(this.uri);this.resourceLoadedEmitter.emit(this.uri)}this.resource=this.os.store.get(this.uri);this.error=null;this.consumers.forEach((e=>{e.detail(this.resource)}))}catch(e){this.error=e}finally{this.loading=false}}render(){if(this.loading){return t("sl-progress-bar",{indeterminate:true})}if(this.error){return t("details",{class:"error"},t("summary",{title:"Click to expand"},"⚠ Sorry, something went wrong"),t("p",null,"Status:",this.error.status),t("p",null,this.error.message),t("p",null,"You can try to open the link outside PodOS: ",t("a",{href:this.uri},this.uri)))}return t("slot",null)}static get watchers(){return{os:["loadResource"],uri:["loadResource"]}}};kr.style=Rr;const Lr=":host {\n --background-color: inherit;\n --label-color: var(--pos-normal-text-color);\n --description-color: var(--pos-normal-text-color);\n --uri-color: var(--pos-subtle-text-color);\n --font-family: var(--font-sans);\n}\n\np.content {\n background-color: var(--background-color);\n line-height: var(--line-xs);\n margin: 0;\n display: flex;\n flex-direction: column;\n align-items: baseline;\n gap: var(--size-1);\n\n .url {\n font-size: var(--scale-fluid-1);\n color: var(--pos-subtle-text-color);\n }\n}\n\na {\n color: var(--label-color);\n max-width: min(100%, var(--prose-lg));\n text-decoration: underline;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-decoration-thickness: var(--size-px);\n}\n\npos-label {\n color: var(--label-color);\n font-size: var(--scale-fluid-2);\n margin-bottom: var(--size-1);\n}\n\npos-description {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n font-weight: var(--weight-light);\n color: var(--description-color);\n font-size: var(--scale-fluid-2);\n}\n\n@media (min-width: 640px) {\n pos-label {\n font-size: var(--scale-fluid-0);\n }\n pos-description {\n font-size: var(--scale-fluid-1);\n }\n\n p.content {\n .url {\n font-size: var(--scale-fluid-000);\n }\n }\n}\n";const Nr=class{constructor(t){e(this,t);this.linkEmitter=s(this,"pod-os:link");this.subscribeResource=s(this,"pod-os:resource");this.errorEmitter=s(this,"pod-os:error");this.followPredicate=false;this.error=null;this.showCustomContent=false;this.receiveResource=e=>{const t=(e,t,i,s)=>{if(e.length==0){this.error="No matching link found";this.errorEmitter.emit(new Error(`pos-rich-link: No matching link found from ${t.uri} ${s}=${i}`))}else if(e[0].uris.length>1){this.error="More than one matching link found";this.errorEmitter.emit(new Error(`pos-rich-link: More than one matching link found from ${t.uri} ${s}=${i}`))}else{this.link=e[0].uris[0];this.followPredicate=true}};if(this.rel){t(e.relations(this.rel),e,this.rel,"rel")}else if(this.rev){t(e.reverseRelations(this.rev),e,this.rev,"rev")}else{this.link=e.uri}}}componentWillLoad(){this.showCustomContent=!!this.host.lastElementChild||this.host.textContent.trim()!="";if(!this.uri)G(this)}render(){const e=e=>this.showCustomContent?t("a",{href:e,onClick:t=>{t.preventDefault();this.linkEmitter.emit(e)}},t("slot",null)):t("p",{class:"content"},t("a",{href:e,onClick:t=>{t.preventDefault();this.linkEmitter.emit(e)}},t("pos-label",null)),t("span",{class:"url"},new URL(e).host),t("pos-description",null));if(this.error){return this.error}else if(this.followPredicate){return t("pos-resource",{lazy:true,uri:this.link},e(this.link))}else if(this.link){return e(this.link)}else if(this.uri){return t("pos-resource",{lazy:true,uri:this.uri},e(this.uri))}else{return null}}get host(){return r(this)}};Nr.style=Lr;const Cr=(e,t,i)=>{const s=e.get(t);if(!s){e.set(t,[i])}else if(!s.includes(i)){s.push(i)}};const Vr=(e,t)=>{let i;return(...s)=>{if(i){clearTimeout(i)}i=setTimeout((()=>{i=0;e(...s)}),t)}};const Ir=e=>!("isConnected"in e)||e.isConnected;const Tr=Vr((e=>{for(let t of e.keys()){e.set(t,e.get(t).filter(Ir))}}),2e3);const zr=()=>{if(typeof o!=="function"){return{}}const e=new Map;return{dispose:()=>e.clear(),get:t=>{const i=o();if(i){Cr(e,t,i)}},set:t=>{const i=e.get(t);if(i){e.set(t,i.filter(n))}Tr(e)},reset:()=>{e.forEach((e=>e.forEach(n)));Tr(e)}}};const Pr=(e,t=(e,t)=>e!==t)=>{let i=new Map(Object.entries(e!==null&&e!==void 0?e:{}));const s={dispose:[],get:[],set:[],reset:[]};const r=()=>{i=new Map(Object.entries(e!==null&&e!==void 0?e:{}));s.reset.forEach((e=>e()))};const o=()=>{s.dispose.forEach((e=>e()));r()};const n=e=>{s.get.forEach((t=>t(e)));return i.get(e)};const a=(e,r)=>{const o=i.get(e);if(t(r,o,e)){i.set(e,r);s.set.forEach((t=>t(e,r,o)))}};const l=typeof Proxy==="undefined"?{}:new Proxy(e,{get(e,t){return n(t)},ownKeys(e){return Array.from(i.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(e,t){return i.has(t)},set(e,t,i){a(t,i);return true}});const d=(e,t)=>{s[e].push(t);return()=>{Jr(s[e],t)}};const c=(t,i)=>{const s=d("set",((e,s)=>{if(e===t){i(s)}}));const r=d("reset",(()=>i(e[t])));return()=>{s();r()}};const p=(...e)=>{const t=e.reduce(((e,t)=>{if(t.set){e.push(d("set",t.set))}if(t.get){e.push(d("get",t.get))}if(t.reset){e.push(d("reset",t.reset))}if(t.dispose){e.push(d("dispose",t.dispose))}return e}),[]);return()=>t.forEach((e=>e()))};const u=e=>{const t=i.get(e);s.set.forEach((i=>i(e,t,t)))};return{state:l,get:n,set:a,on:d,onChange:c,use:p,dispose:o,reset:r,forceUpdate:u}};const Jr=(e,t)=>{const i=e.indexOf(t);if(i>=0){e[i]=e[e.length-1];e.length--}};const Gr=(e,t)=>{const i=Pr(e,t);i.use(zr());return i};const Mr=e=>{var t;const i=window;const s=new URL(i.location.href);const r=(t=void 0)!==null&&t!==void 0?t:Hr;const{state:o,onChange:n,dispose:a}=Gr({url:s,activePath:r(s)},((e,t,i)=>{if(i==="url"){return e.href!==t.href}return e!==t}));const l=e=>{history.pushState(null,null,e);const t=new URL(e,document.baseURI);o.url=t;o.activePath=r(t)};const d=e=>{const{activePath:t}=o;for(let i of e){const s=Ar(t,i.path);if(s){if(i.to!=null){const s=typeof i.to==="string"?i.to:i.to(t);l(s);return d(e)}else{return{params:s,route:i}}}}return undefined};const c=()=>{const e=new URL(i.location.href);o.url=e;o.activePath=r(e)};const p=(e,t)=>{const i=d(t);if(i){if(typeof i.route.jsx==="function"){return i.route.jsx(i.params)}else{return i.route.jsx}}};const u=()=>{i.removeEventListener("popstate",c);a()};const h={Switch:p,get url(){return o.url},get activePath(){return o.activePath},push:l,onChange:n,dispose:u};c();i.addEventListener("popstate",c);return h};const Ar=(e,t)=>{if(typeof t==="string"){if(t===e){return{}}}else if(typeof t==="function"){const i=t(e);if(i){return i===true?{}:{...i}}}else{const i=t.exec(e);if(i){t.lastIndex=0;return{...i}}}return undefined};const Hr=e=>e.pathname.toLowerCase();const Zr=".toolbar{display:flex;flex-direction:row;gap:0;align-items:center;margin-left:0.5rem}pos-navigation{flex-grow:1}";const Wr=Mr();const _r=class{constructor(t){e(this,t);this.routeChanged=s(this,"pod-os:route-changed");this.mode="standalone"}linkClicked(e){this.navigate(e.detail)}sessionRestored(e){Wr.push(e.detail.url)}componentWillLoad(){this.updateUri();Wr.onChange("url",(()=>{this.updateUri()}))}navigate(e){Wr.push("?uri="+encodeURIComponent(e))}updateUri(){this.uri=new URLSearchParams(window.location.search).get("uri")||(this.mode==="standalone"?"pod-os:dashboard":window.location.href);this.routeChanged.emit(this.uri)}render(){return t("slot",{key:"8b09de3dbbd253665cd541b9f264b0dcdc774354"})}};_r.style=Zr;const Or=":host{display:block}input{background-color:transparent;color:var(--pos-normal-text-color);border:none;padding-top:1rem;padding-bottom:1rem}input:focus{outline:none}";const jr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.termSelected=s(this,"pod-os:term-selected");this.placeholder="Type to search...";this.value="";this.terms=[];this.receivePodOs=async e=>{this.os=e}}componentWillLoad(){M(this)}setTerms(){this.terms=this.os.listKnownTerms()}handleChange(e){this.termSelected.emit({uri:e.target.value})}render(){return t(i,{key:"2e995b15a3b76a13cd7e11d09670121a6191b5ce"},t("input",{key:"ad79f1b410312790d4f5cd1f398b2eec3c04aad7",part:"input",list:"terms",placeholder:this.placeholder,value:this.value,onChange:e=>this.handleChange(e)}),t("datalist",{key:"e3cc9ce85b75033bac29a32ca8e55c57535a9659",part:"terms",id:"terms"},this.terms.map((e=>t("option",{value:e.uri},e.shorthand)))))}static get delegatesFocus(){return true}static get watchers(){return{os:["setTerms"]}}};jr.style=Or;const Yr=":host{border:var(--size-px) solid var(--pos-border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--size-8);max-width:var(--size-96);background:var(--pos-card-background)}svg{width:var(--size-8)}h2{display:flex;align-items:center}p{padding:var(--size-2)}.info{color:var(--color-grey-900);background-color:var(--color-blue-200)}.warn{color:var(--color-grey-900);background-color:var(--color-yellow-200)}";const $r=class{constructor(t){e(this,t)}render(){return t(i,{key:"7417274658af9e41cf662b9ab20d4b5a6236586f"},t("div",{key:"e92a78a1d2b1d067ffd10a68d78a386208d629d8"},t("h2",{key:"7be5f2cf380363e824519fc24fd1e07f0651334b"},t("svg",{key:"d2aa35c987e12836cf665b2574ae0c42a1574e97",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{key:"562e3432799cb8111e543080722b6f20867f4b46","stroke-linecap":"round","stroke-linejoin":"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"})),"Cache Settings"),t("p",{key:"002eed9e13146d25cc9e52a68c8d9e030f1dd775",class:"info"},"ℹ Enable offline cache to be able to access previously loaded data while offline."),t("p",{key:"b5a1f45ed9fec335a43ecbb6573a31ed29e0692e",class:"warn"},"⚠ Private data may be stored on this device. Only enable it, if you trust this device."),t("label",{key:"49ab529db0b9d1bd4f216f6c54e78ed30a43be41"},t("input",{key:"e764d1a106906059c7c5286d13b9b8c7a6c01cce",type:"checkbox",checked:O.state.offlineCache,onChange:e=>O.state.offlineCache=e.target.checked}),"Enable offline cache")))}};$r.style=Yr;const Kr=":host {\n --button-size: var(--size-16);\n display: block;\n position: sticky;\n align-self: flex-start;\n top: 0;\n overflow: auto;\n min-width: var(--button-size);\n z-index: var(--layer-1);\n}\n\n[role='tablist'] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n border-right: var(--size-px) solid var(--pos-border-color);\n\n button {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n font-size: var(--size-6);\n position: relative;\n overflow: hidden;\n outline: none;\n border: none;\n width: var(--button-size);\n min-width: var(--button-size);\n height: var(--button-size);\n min-height: var(--button-size);\n color: var(--pos-normal-text-color);\n background-color: var(--pos-background-color);\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border-radius: 100%;\n background: color-mix(in srgb, var(--pos-primary-color), transparent 50%);\n transform: translate(-50%, -50%);\n opacity: 1;\n }\n\n &:active::after,\n &:focus::after {\n width: calc(var(--button-size) * 1.5);\n height: calc(var(--button-size) * 1.5);\n opacity: 0;\n transition:\n width 0.5s ease-out,\n height 0.5s ease-out,\n opacity 1s ease-out;\n }\n\n &:focus-visible {\n border: var(--size-px) solid var(--pos-primary-color);\n }\n\n @media (min-width: 640px) {\n &[aria-selected] {\n border-right: var(--size-1) solid var(--pos-primary-color);\n }\n }\n\n .text {\n font-size: var(--size-3);\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n overflow: hidden;\n }\n }\n}\n\n@media (max-width: 640px) {\n :host {\n position: fixed;\n top: unset;\n bottom: 0;\n width: 100dvw;\n }\n [role='tablist'] {\n flex-direction: row;\n background-color: var(--pos-background-color);\n\n border-top: var(--size-px) solid var(--pos-border-color);\n\n button {\n &[aria-selected] {\n border-top: var(--size-1) solid var(--pos-primary-color);\n }\n }\n }\n}\n";const Xr=class{constructor(t){e(this,t);this.toolSelected=s(this,"pod-os:tool-selected");this.tools=[]}render(){if(this.tools.length>1){return t("div",{role:"tablist","aria-label":"Tools","aria-multiselectable":"false"},this.tools.map((e=>{var i;return t("button",{role:"tab","aria-selected":((i=this.selected)===null||i===void 0?void 0:i.element)===e.element,onClick:()=>this.toolSelected.emit(e)},t("sl-icon",{name:e.icon}),t("span",{class:"text"},e.label))})))}return null}};Xr.style=Kr;const qr="dl {\n > * {\n display: flex;\n flex-direction: column;\n gap: var(--size-1);\n }\n\n display: flex;\n flex-direction: column;\n gap: var(--size-4);\n dd {\n margin: 0;\n }\n}\n";const eo=class{constructor(t){e(this,t)}async componentWillLoad(){const e=await A(this.el);e.store.get(this.uri);const t=e.store.get(this.uri).assume(w);this.entries=t.listAll()}render(){if(this.entries.length===0)return null;const e=this.entries.map((e=>t("div",null,t("dt",null,t("pos-predicate",{uri:e.forClass,label:e.label})),e.targets.map((e=>t("dd",null,t("pos-rich-link",{uri:e.uri})))))));return t("dl",null,e)}get el(){return r(this)}};eo.style=qr;const to={Generic:{element:"pos-app-generic",label:"Data",icon:"list-ul",types:[]},Attachments:{element:"pos-tool-attachments",label:"Attach",icon:"paperclip",types:[]},RdfDocument:{element:"pos-app-rdf-document",label:"Things",icon:"diagram-2",types:[{uri:"http://www.w3.org/2007/ont/link#RDFDocument",priority:20}]},DocumentViewer:{element:"pos-app-document-viewer",label:"Doc",icon:"file-text",types:[{uri:io("application/pdf"),priority:30},{uri:"http://www.w3.org/2007/ont/link#Document",priority:10}]},ImageViewer:{element:"pos-app-image-viewer",label:"Pic",icon:"file-image",types:[{uri:"http://purl.org/dc/terms/Image",priority:20}]},LdpContainer:{element:"pos-app-ldp-container",label:"Content",icon:"folder",types:[{uri:"http://www.w3.org/ns/ldp#Container",priority:30}]}};function io(e){return"http://www.w3.org/ns/iana/media-types/"+e+"#Resource"}function so(e){const t=new Set(e.map((e=>e.uri)));return Object.values(to).map(ro(t)).filter(no).toSorted(ao).map((e=>e.tool)).concat(to.Generic).concat(to.Attachments)}const ro=e=>t=>({tool:t,priority:oo(t.types,e)});function oo(e,t){return e.filter((e=>t.has(e.uri))).reduce(((e,t)=>Math.max(e,t.priority)),0)}const no=e=>e.priority>0;const ao=(e,t)=>t.priority-e.priority;const lo="section {\n display: flex;\n flex-direction: row;\n}\n\n.tools {\n flex-grow: 1;\n &.transition {\n position: relative;\n .tool {\n position: absolute;\n }\n }\n}\n\n.tool {\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n &.visible {\n animation: fadeIn 300ms ease-in;\n }\n &.hidden {\n animation: fadeOut 300ms ease-in;\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@media (max-width: 640px) {\n section {\n --toolbar-size: var(--size-16);\n flex-direction: column-reverse;\n padding-bottom: var(--toolbar-size);\n pos-tool-select {\n --button-size: var(--toolbar-size);\n }\n }\n}\n";const co=class{constructor(t){e(this,t);this.subscribeResource=s(this,"pod-os:resource");this.transitioning=false;this.receiveResource=e=>{var t;const i=e.types();this.availableTools=so(i);this.currentTool=(t=this.availableTools.find((e=>e.element===this.initialTool)))!==null&&t!==void 0?t:this.availableTools[0]}}componentWillLoad(){G(this);const e=new URLSearchParams(window.location.search);const t=e.get("tool");if(t){this.initialTool=t}}handleToolSelected(e){this.oldTool=this.currentTool;this.currentTool=e.detail;this.transitioning=true;const t=new URL(window.location.href);t.searchParams.set("tool",e.detail.element);window.history.replaceState({},"",t.toString())}render(){return this.availableTools?this.renderApp():null}renderApp(){var e;const i=this.currentTool.element;const s=(e=this.oldTool)===null||e===void 0?void 0:e.element;return t("section",null,t("pos-tool-select",{selected:this.currentTool,tools:this.availableTools}),t("div",{class:{tools:true,transition:this.transitioning},onAnimationEnd:()=>this.removeOldTool()},s&&t(s,{class:"tool hidden"}),t(i,{class:"tool visible"})))}removeOldTool(){this.oldTool=null;this.transitioning=false}};co.style=lo;function po(e,t,i){return new Promise((s=>{e.toBlob(s,t,i)}))}const uo=/^data:([^/]+\/[^,;]+(?:[^,]*?))(;base64)?,([\s\S]*)$/;function ho(e,t,i){const s=uo.exec(e);const r=t.mimeType??s?.[1]??"plain/text";let o;if(s?.[2]!=null){const e=atob(decodeURIComponent(s[3]));const t=new Uint8Array(e.length);for(let i=0;i<e.length;i++){t[i]=e.charCodeAt(i)}o=[t]}else if(s?.[3]!=null){o=[decodeURIComponent(s[3])]}return new Blob(o,{type:r})}function fo(e,t,i,s){if(e===t)return e;if(s===0)return t;return e+(t-e)*2**(-s/i)}var mo=['a[href]:not([tabindex^="-"]):not([inert]):not([aria-hidden])','area[href]:not([tabindex^="-"]):not([inert]):not([aria-hidden])',"input:not([disabled]):not([inert]):not([aria-hidden])","select:not([disabled]):not([inert]):not([aria-hidden])","textarea:not([disabled]):not([inert]):not([aria-hidden])","button:not([disabled]):not([inert]):not([aria-hidden])",'iframe:not([tabindex^="-"]):not([inert]):not([aria-hidden])','object:not([tabindex^="-"]):not([inert]):not([aria-hidden])','embed:not([tabindex^="-"]):not([inert]):not([aria-hidden])','[contenteditable]:not([tabindex^="-"]):not([inert]):not([aria-hidden])','[tabindex]:not([tabindex^="-"]):not([inert]):not([aria-hidden])'];function Qo(e){if(typeof e!=="object"||e===null)return false;if(!("nodeType"in e))return false;return e.nodeType===Node.ELEMENT_NODE}function bo(e){if(typeof e==="string"){const t=document.querySelectorAll(e);return t.length===0?null:Array.from(t)}if(typeof e==="object"&&Qo(e)){return[e]}return null}function yo(e,t=document){if(typeof e==="string"){return t.querySelector(e)}if(Qo(e)){return e}return null}function go(e){const t=e.lastIndexOf(".");if(t===-1||t===e.length-1){return{name:e,extension:undefined}}return{name:e.slice(0,t),extension:e.slice(t+1)}}var xo={__proto__:null,md:"text/markdown",markdown:"text/markdown",mp4:"video/mp4",mp3:"audio/mp3",svg:"image/svg+xml",jpg:"image/jpeg",png:"image/png",webp:"image/webp",gif:"image/gif",heic:"image/heic",heif:"image/heif",yaml:"text/yaml",yml:"text/yaml",csv:"text/csv",tsv:"text/tab-separated-values",tab:"text/tab-separated-values",avi:"video/x-msvideo",mks:"video/x-matroska",mkv:"video/x-matroska",mov:"video/quicktime",dicom:"application/dicom",doc:"application/msword",msg:"application/vnd.ms-outlook",docm:"application/vnd.ms-word.document.macroenabled.12",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",dot:"application/msword",dotm:"application/vnd.ms-word.template.macroenabled.12",dotx:"application/vnd.openxmlformats-officedocument.wordprocessingml.template",xla:"application/vnd.ms-excel",xlam:"application/vnd.ms-excel.addin.macroenabled.12",xlc:"application/vnd.ms-excel",xlf:"application/x-xliff+xml",xlm:"application/vnd.ms-excel",xls:"application/vnd.ms-excel",xlsb:"application/vnd.ms-excel.sheet.binary.macroenabled.12",xlsm:"application/vnd.ms-excel.sheet.macroenabled.12",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xlt:"application/vnd.ms-excel",xltm:"application/vnd.ms-excel.template.macroenabled.12",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template",xlw:"application/vnd.ms-excel",txt:"text/plain",text:"text/plain",conf:"text/plain",log:"text/plain",pdf:"application/pdf",zip:"application/zip","7z":"application/x-7z-compressed",rar:"application/x-rar-compressed",tar:"application/x-tar",gz:"application/gzip",dmg:"application/x-apple-diskimage"};function Uo(e){if(e.type)return e.type;const t=e.name?go(e.name).extension?.toLowerCase():null;if(t&&t in xo){return xo[t]}return"application/octet-stream"}function Bo(e){return e.charCodeAt(0).toString(32)}function vo(e){let t="";return e.replace(/[^A-Z0-9]/gi,(e=>{t+=`-${Bo(e)}`;return"/"}))+t}function Fo(e,t){let i=t||"uppy";if(typeof e.name==="string"){i+=`-${vo(e.name.toLowerCase())}`}if(e.type!==undefined){i+=`-${e.type}`}if(e.meta&&typeof e.meta.relativePath==="string"){i+=`-${vo(e.meta.relativePath.toLowerCase())}`}if(e.data?.size!==undefined){i+=`-${e.data.size}`}if(e.data.lastModified!==undefined){i+=`-${e.data.lastModified}`}return i}function Eo(e){if(!e.isRemote||!e.remote)return false;const t=new Set(["box","dropbox","drive","facebook","unsplash"]);return t.has(e.remote.provider)}function wo(e,t){if(Eo(e))return e.id;const i=Uo(e);return Fo({...e,type:i},t)}var So=Array.from;function Do(e){const t=So(e.files);return Promise.resolve(t)}function Ro(e,t,i,{onSuccess:s}){e.readEntries((r=>{const o=[...t,...r];if(r.length){queueMicrotask((()=>{Ro(e,o,i,{onSuccess:s})}))}else{s(o)}}),(e=>{i(e);s(t)}))}function ko(e,t){if(e==null)return e;return{kind:e.isFile?"file":e.isDirectory?"directory":undefined,name:e.name,getFile(){return new Promise(((t,i)=>e.file(t,i)))},async*values(){const i=e.createReader();const s=await new Promise((e=>{Ro(i,[],t,{onSuccess:i=>e(i.map((e=>ko(e,t))))})}));yield*s},isSameEntry:undefined}}async function*Lo(e,t,i=undefined){const s=()=>`${t}/${e.name}`;if(e.kind==="file"){const r=await e.getFile();if(r!=null){r.relativePath=t?s():null;yield r}else if(i!=null)yield i}else if(e.kind==="directory"){for await(const i of e.values()){yield*Lo(i,t?s():e.name)}}else if(i!=null)yield i}async function*No(e,t){const i=await Promise.all(Array.from(e.items,(async e=>{let i;const s=()=>typeof e.getAsEntry==="function"?e.getAsEntry():e.webkitGetAsEntry();i??=ko(s(),t);return{fileSystemHandle:i,lastResortFile:e.getAsFile()}})));for(const{lastResortFile:e,fileSystemHandle:s}of i){if(s!=null){try{yield*Lo(s,"",e)}catch(i){if(e!=null){yield e}else{t(i)}}}else if(e!=null)yield e}}async function Co(e,t){const i=t?.logDropError??Function.prototype;try{const t=[];for await(const s of No(e,i)){t.push(s)}return t}catch{return Do(e)}}const Vo={__proto__:null,"audio/mp3":"mp3","audio/mp4":"mp4","audio/ogg":"ogg","audio/webm":"webm","image/gif":"gif","image/heic":"heic","image/heif":"heif","image/jpeg":"jpg","image/webp":"webp","image/png":"png","image/svg+xml":"svg","video/mp4":"mp4","video/ogg":"ogv","video/quicktime":"mov","video/webm":"webm","video/x-matroska":"mkv","video/x-msvideo":"avi"};function Io(e){[e]=e.split(";",1);return Vo[e]||null}function To(e){while(e&&!e.dir){e=e.parentNode}return e?.dir}function zo(e){return e<10?`0${e}`:e.toString()}function Po(){const e=new Date;const t=zo(e.getHours());const i=zo(e.getMinutes());const s=zo(e.getSeconds());return`${t}:${i}:${s}`}function Jo(){if(typeof window==="undefined"){return false}const e=document.body;if(e==null||window==null){return false}if(!("draggable"in e)||!("ondragstart"in e)||!("ondrop"in e)){return false}if(!("FormData"in window)){return false}if(!("FileReader"in window)){return false}return true}function Go(e){return e.startsWith("blob:")}function Mo(e){if(!e)return false;return/^[^/]+\/(jpe?g|gif|png|svg|svg\+xml|bmp|webp|avif)$/.test(e)}function Ao(e){const t=Math.floor(e/3600)%24;const i=Math.floor(e/60)%60;const s=Math.floor(e%60);return{hours:t,minutes:i,seconds:s}}function Ho(e){const t=Ao(e);const i=t.hours===0?"":`${t.hours}h`;const s=t.minutes===0?"":`${t.hours===0?t.minutes:` ${t.minutes.toString(10).padStart(2,"0")}`}m`;const r=t.hours!==0?"":`${t.minutes===0?t.seconds:` ${t.seconds.toString(10).padStart(2,"0")}`}s`;return`${i}${s}${r}`}function Zo(e,t,i){const s=[];e.forEach((e=>{if(typeof e!=="string"){return s.push(e)}return t[Symbol.split](e).forEach(((e,t,r)=>{if(e!==""){s.push(e)}if(t<r.length-1){s.push(i)}}))}));return s}
|
|
729
|
+
`}};fr.styles=[c,qs];fr.dependencies={"sl-icon":m,"sl-popup":I,"sl-spinner":hr};p([R("slot:not([name])")],fr.prototype,"defaultSlot",2);p([R(".menu-item")],fr.prototype,"menuItem",2);p([u()],fr.prototype,"type",2);p([u({type:Boolean,reflect:true})],fr.prototype,"checked",2);p([u()],fr.prototype,"value",2);p([u({type:Boolean,reflect:true})],fr.prototype,"loading",2);p([u({type:Boolean,reflect:true})],fr.prototype,"disabled",2);p([b("checked")],fr.prototype,"handleCheckedChange",1);p([b("disabled")],fr.prototype,"handleDisabledChange",1);p([b("type")],fr.prototype,"handleTypeChange",1);fr.define("sl-menu-item");const mr="button.main {\n display: flex;\n transition:\n width 200ms,\n background-color 500ms,\n color 500ms,\n border-color 500ms;\n max-width: var(--size-40);\n flex-direction: row;\n overflow: hidden;\n height: var(--pos-navigation-bar-height);\n width: var(--pos-navigation-bar-height);\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-md);\n color: var(--pos-subtle-text-color);\n border: var(--size-px) dashed var(--pos-subtle-text-color);\n background-color: var(--pos-background-color);\n\n p {\n padding: 0;\n margin: 0;\n display: none;\n white-space: nowrap;\n }\n\n &.success {\n color: var(--color-green-700);\n border-color: var(--color-green-700);\n border-style: solid;\n background-color: var(--color-green-100);\n }\n\n &:active {\n transform: scale(0.99);\n filter: brightness(90%);\n }\n &:focus {\n outline: var(--pos-input-focus-outline);\n }\n}\n\nsvg {\n display: inline-block;\n height: var(--size-6);\n flex-shrink: 0;\n flex-grow: 0;\n width: var(--size-6);\n}\n\nbutton.main:hover,\nsl-dropdown[open] button {\n &.success {\n background: var(--color-green-200);\n color: var(--color-green-700);\n }\n width: var(--size-full);\n height: var(--pos-navigation-bar-height);\n background: var(--pos-background-color);\n color: var(--pos-normal-text-color);\n\n p {\n display: inline-block;\n }\n}\n";const Qr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.errorEmitter=s(this,"pod-os:error");this.indexUpdatedEmitter=s(this,"pod-os:search:index-updated");this.indexCreatedEmitter=s(this,"pod-os:search:index-created");this.indexes=[];this.showOptions=false;this.isIndexed=false;this.receivePodOs=async e=>{this.os=e;this.thing=this.os.store.get(this.uri);this.getLabelIndexes(U.state.profile);this.unsubscribeSessionChange=U.onChange("profile",(e=>{this.getLabelIndexes(e)}))}}componentWillLoad(){M(this)}disconnectedCallback(){this.unsubscribeSessionChange&&this.unsubscribeSessionChange()}updateUri(e){this.thing=this.os.store.get(e);this.isIndexed=this.checkIfIndexed(e)}checkIfIndexed(e){return this.indexes.some((t=>t.contains(e)))}getLabelIndexes(e){if(e){this.indexes=e.getPrivateLabelIndexes().map((e=>this.os.store.get(e).assume(E)));this.showOptions=this.indexes.length>1;this.isIndexed=this.checkIfIndexed(this.uri)}}async onClick(e){e.preventDefault();if(this.indexes.length===1){const e=this.indexes[0];await this.addToLabelIndex(e);this.indexUpdatedEmitter.emit(e)}else if(this.indexes.length===0){const e=await this.createDefaultLabelIndex();await this.addToLabelIndex(e);this.indexCreatedEmitter.emit(e)}}async addToLabelIndex(e){try{await this.os.addToLabelIndex(this.thing,e);this.isIndexed=true}catch(e){this.errorEmitter.emit(e)}}async createDefaultLabelIndex(){try{return await this.os.createDefaultLabelIndex(U.state.profile)}catch(e){this.errorEmitter.emit(e)}}render(){if(!U.state.isLoggedIn||!this.uri){return null}const e="Make this findable";const s=t("button",{type:"button",slot:"trigger","aria-label":e,class:{main:true,success:this.isIndexed},onClick:e=>this.onClick(e),title:""},this.isIndexed?t(yr,null):t(br,null),t("p",null,e));if(this.showOptions){return t(i,null,t("sl-dropdown",null,s,t("sl-menu",{role:"listbox"},this.indexes.map((e=>t("sl-menu-item",{role:"option",value:e,type:"checkbox",checked:e.contains(this.uri)},t("pos-resource",{uri:e.uri,lazy:true},t("pos-label",null))))))))}else{return s}}async onSelect(e){const t=e.detail.item.value;e.preventDefault();await this.addToLabelIndex(t);this.indexUpdatedEmitter.emit(t)}get el(){return r(this)}static get watchers(){return{uri:["updateUri"]}}};const br=()=>t("svg",{role:"presentation",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Zm3.75 11.625a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"}));const yr=()=>t("svg",{role:"presentation",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375M9 15l2.25 2.25L15 12"}));Qr.style=mr;const gr=":host {\n --pos-navigation-bar-height: var(--size-10);\n}\n\nsearch {\n position: relative;\n}\n\n.suggestions ol {\n border: 1px solid var(--pos-border-color);\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\n.suggestions {\n width: 100%;\n overflow-y: auto;\n max-height: 90dvh;\n li {\n padding: 1rem;\n background-color: var(--pos-background-color);\n pos-rich-link {\n --background-color: inherit;\n }\n &[aria-selected='true'] {\n background-color: var(--pos-primary-color);\n &:hover {\n background-color: var(--pos-primary-color);\n }\n }\n &:hover {\n background-color: var(--pos-border-color);\n }\n }\n}\n\n.suggestions li.selected pos-rich-link {\n --label-color: white;\n --description-color: var(--pos-border-color);\n --uri-color: var(--pos-subtle-text-color);\n}\n\ndialog {\n position: absolute;\n margin-top: calc(-1 * var(--pos-navigation-bar-height));\n padding: 0;\n width: 100%;\n max-width: 100%;\n min-width: 100%;\n overflow: hidden;\n max-height: 100dvh;\n background-color: var(--pos-background-color);\n color: var(--pos-normal-text-color);\n border: var(--pos-border-color);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-md);\n form {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n align-items: center;\n input {\n display: flex;\n font-size: var(--scale-1);\n height: var(--pos-navigation-bar-height);\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n padding-left: var(--size-2);\n width: 100%;\n border: none;\n outline: none;\n color: var(--pos-normal-text-color);\n background-color: var(--pos-input-background-color);\n box-sizing: border-box;\n }\n }\n}\n\ndialog[open] {\n display: flex;\n z-index: var(--layer-top);\n animation: slideIn 100ms ease-out;\n}\n\n@media (max-width: 640px) {\n search {\n position: unset;\n }\n dialog {\n margin-top: var(--size-1);\n top: 0;\n width: 95dvw;\n max-width: unset;\n min-width: unset;\n form {\n input {\n height: var(--size-12);\n font-size: var(--scale-fluid-3);\n }\n }\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n";const xr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.linkEmitter=s(this,"pod-os:link");this.uri="";this.inputValue=this.uri;this.searchIndex=undefined;this.suggestions=[];this.selectedIndex=-1;this.resource=null;this.changeEvents=new S.Subject;this.debouncedSearch=null;this.receivePodOs=async e=>{this.os=e}}updateResource(){var e;try{this.resource=this.uri?(e=this.os)===null||e===void 0?void 0:e.store.get(this.uri):null}catch(e){this.resource=null}}componentWillLoad(){M(this);this.updateResource();U.onChange("isLoggedIn",(async e=>{if(e){await this.buildSearchIndex()}else{this.clearSearchIndex()}}));this.debouncedSearch=this.changeEvents.pipe(S.debounceTime(300)).subscribe((()=>this.search()))}disconnectedCallback(){var e;(e=this.debouncedSearch)===null||e===void 0?void 0:e.unsubscribe()}async buildSearchIndex(){this.searchIndex=await this.os.buildSearchIndex(U.state.profile)}rebuildSearchIndex(){this.searchIndex.rebuild()}openNavigationDialog(e){var t,i;this.resource=e.detail;if(e.detail){this.inputValue=e.detail.uri;this.search()}(t=this.inputRef)===null||t===void 0?void 0:t.select();(i=this.dialogRef)===null||i===void 0?void 0:i.show()}clearSearchIndex(){var e;(e=this.searchIndex)===null||e===void 0?void 0:e.clear()}onChange(e){this.inputValue=e.target.value;this.changeEvents.next()}closeDialog(){var e;(e=this.dialogRef)===null||e===void 0?void 0:e.close();this.selectedIndex=-1}clearSuggestions(){var e;this.suggestions=[];(e=this.dialogRef)===null||e===void 0?void 0:e.close();this.selectedIndex=-1}onClickSelf(e){e.stopPropagation()}handleKeyDown(e){if(e.key==="Escape"){this.closeDialog()}else if(e.key==="ArrowDown"){e.preventDefault();this.selectedIndex=Math.min(this.selectedIndex+1,this.suggestions.length-1)}else if(e.key==="ArrowUp"){e.preventDefault();this.selectedIndex=Math.max(this.selectedIndex-1,0)}}search(){if(this.searchIndex){this.suggestions=this.inputValue?this.searchIndex.search(this.inputValue):[]}}onSubmit(){if(this.suggestions&&this.selectedIndex>-1){this.linkEmitter.emit(this.suggestions[this.selectedIndex].ref)}else{this.linkEmitter.emit(this.inputValue)}}render(){return t("nav",{key:"d5ad4841674cf172e9401a63fc50e58900ca5b1f"},t("search",{key:"8daf86774c49234d10637160fd983681ac483b44"},t("pos-navigation-bar",{key:"200137643dbc0aa1f120c231dc70a0d3f71b596a",searchIndexReady:this.searchIndex!==undefined,current:this.resource}),t("dialog",{key:"f2fb1d3e4a38d17efb6bd80ca791e8a30fafab66",ref:e=>this.dialogRef=e},t("form",{key:"e54698d8fb968a5ee6007cc4d5644fec36bf74f3",method:"dialog",onSubmit:()=>this.onSubmit()},t("input",{key:"633a4030c6296b5c94e2661bd73168afc1e04438",ref:e=>this.inputRef=e,enterkeyhint:"search","aria-label":"Search or enter URI",placeholder:"Search or enter URI",value:this.uri,onChange:e=>this.onChange(e),onInput:e=>this.onChange(e),role:"combobox","aria-autocomplete":"list","aria-expanded":this.suggestions.length>0,"aria-controls":"suggestions-list","aria-activedescendant":this.selectedIndex>=0?`option-${this.selectedIndex}`:null}),this.suggestions.length>0?t("div",{class:"suggestions"},t("ol",{id:"suggestions-list",role:"listbox","aria-label":"Search results"},this.suggestions.map(((e,i)=>t("li",{id:`option-${i}`,role:"option","aria-selected":i===this.selectedIndex?"true":"false"},t("pos-rich-link",{uri:e.ref})))))):null))))}static get watchers(){return{uri:["updateResource"],os:["updateResource"]}}};xr.style=gr;const Ur="section.current {\n display: flex;\n height: var(--pos-navigation-bar-height);\n flex-grow: 1;\n gap: 0;\n background-color: var(--pos-input-background-color);\n border-radius: var(--radius-md);\n width: 100%;\n &:focus-within {\n outline: var(--pos-input-focus-outline);\n }\n}\n\nsection.current button {\n cursor: pointer;\n font-size: var(--scale-1);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n background: none;\n color: var(--pos-normal-text-color);\n outline: none;\n border: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n &:focus {\n text-decoration: underline;\n }\n :first-child {\n flex-grow: 1;\n }\n svg {\n width: var(--size-6);\n color: var(--pos-subtle-text-color);\n }\n}\n";const Br=class{constructor(t){e(this,t);this.navigate=s(this,"pod-os:navigate")}onClick(){this.navigate.emit(this.current)}activate(e){if((e.ctrlKey||e.metaKey)&&e.key==="k"){e.preventDefault();this.navigate.emit(this.current)}}render(){const e=this.current?`${this.current.label()} (Click to search or enter URI)`:"Search or enter URI";return t("section",{key:"5f49aa9dad9d07550ee8ffbee90036cbc1efda55",class:"current"},this.current&&this.searchIndexReady&&t("pos-make-findable",{key:"85974a4772aaf8cad3a11cdcd49e6df10141bfe3",uri:this.current.uri}),t("button",{key:"40660a3455b0f3392c68d7aea0075b102a1762a2","aria-label":e,onClick:()=>this.onClick()},t("div",{key:"9ab8922175d701f714f72aefb95745cf5ae4bb95"},this.current?this.current.label():"Search or enter URI"),this.icon()))}icon(){return t("svg",{"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}};Br.style=Ur;const vr=":host{display:block}form{display:grid;grid-template-columns:var(--size-16) 1fr;grid-gap:var(--scale-0)}label{grid-column:1 / 2;display:flex;align-items:center;justify-content:flex-end}input,pos-select-term,button{grid-column:2 / 3}input,pos-select-term::part(input){outline:var(--pos-input-outline);padding:var(--scale-000);border:none;border-radius:var(--radius-xs);width:var(--size-full);box-sizing:border-box;background:var(--pos-input-background-color);color:var(--pos-normal-text-color)}input:focus-within,pos-select-term::part(input):focus-within{outline:var(--pos-input-focus-outline)}#new-uri{grid-column:1/3;cursor:default;word-break:break-all;color:var(--pos-normal-text-color);font-weight:var(--weight-light);background:var(--pos-disabled-color);padding:var(--scale-000);border-radius:var(--radius-xs)}input#create{outline:none;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--pos-primary-text-color);background-color:var(--pos-primary-color)}input#create:disabled{cursor:default;color:var(--pos-disabled-text-color);background-color:var(--pos-disabled-color);box-shadow:none}input#create:hover:not(:disabled),input#create:focus{filter:brightness(110%);box-shadow:var(--shadow-md)}";const Fr=class{constructor(t){e(this,t);this.linkEmitter=s(this,"pod-os:link");this.errorEmitter=s(this,"pod-os:error");this.subscribePodOs=s(this,"pod-os:init");this.canSubmit=false;this.receivePodOs=async e=>{this.os=e}}validate(){this.canSubmit=Boolean(this.name&&this.selectedTypeUri)}componentWillLoad(){M(this)}render(){return t("form",{key:"a362c5b749dd744123973987ff8b0291485b465e",method:"dialog",onSubmit:e=>this.handleSubmit(e)},t("label",{key:"45c78b0b48955cc157d04f547285b4ae4c19c38f",htmlFor:"type"},"Type"),t("pos-select-term",{key:"e3c3ab9abdbbb585916d95ba1aa14a066dbc5bd0",id:"type",placeholder:"",value:this.selectedTypeUri,"onPod-os:term-selected":e=>this.onTermSelected(e)}),t("label",{key:"c696f8ed862d40d3c366ef0ede5e88e574928db3",htmlFor:"name"},"Name"),t("input",{key:"89e6289e24ca9d3969da97c7aeb22224db1c376c",id:"name",type:"text",value:this.name,onInput:e=>this.handleChange(e)}),this.newUri?t("div",{id:"new-uri",title:"This will be the URI of the new thing"},this.newUri):null,t("input",{key:"b9520afef34177c6f14ab0798c045536d5661a2a",id:"create",type:"submit",value:"Create",disabled:!this.canSubmit}))}handleChange(e){this.name=e.target.value;this.newUri=this.os.proposeUriForNewThing(this.referenceUri,this.name)}onTermSelected(e){this.selectedTypeUri=e.detail.uri}async handleSubmit(e){try{await this.os.addNewThing(this.newUri,this.name,this.selectedTypeUri);this.linkEmitter.emit(this.newUri);this.reset()}catch(t){e.preventDefault();this.errorEmitter.emit(t)}}reset(){this.name="";this.newUri="";this.selectedTypeUri=""}static get delegatesFocus(){return true}static get watchers(){return{name:["validate"],selectedTypeUri:["validate"]}}};Fr.style=vr;const Er=":host {\n /**\n * @prop --width: Width of the picture\n * @prop --height: Height of the picture\n * @prop --border-radius: Border radius of the picture\n * @prop --object-fit: CSS object-fit of the picture\n */\n --width: 300px;\n --height: 300px;\n --border-radius: var(--border-radius, 0);\n --object-fit: var(--object-fit, cover);\n\n display: block;\n position: relative;\n}\n\nbutton.add {\n display: none;\n align-items: center;\n gap: var(--size-1);\n padding: var(--size-1);\n position: absolute;\n bottom: var(--size-2);\n right: var(--size-2);\n z-index: var(--layer-top);\n}\n\n:host(:hover) button.add {\n display: flex;\n}\n\n@media (pointer: coarse) {\n button.add {\n display: flex;\n }\n}\n\n.no-picture {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: var(--height);\n width: var(--width);\n position: relative;\n}\n\n.no-picture button.add {\n position: static;\n margin-top: var(--size-2);\n display: flex;\n}\n\n.upload-container {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n padding: var(--size-2);\n button.close {\n display: flex;\n align-items: center;\n gap: var(--size-1);\n padding: var(--size-1);\n }\n}\n";const wr=class{constructor(t){e(this,t);this.subscribeResource=s(this,"pod-os:resource");this.blurredBackground=false;this.noUpload=false;this.isUploading=false;this.receiveResource=e=>{this.resource=e};this.enterUploadMode=()=>{this.isUploading=true};this.exitUploadMode=()=>{this.isUploading=false}}async componentWillLoad(){G(this);this.os=await A(this.el)}renderUpload(){return t("div",{class:"upload-container"},t("button",{class:"close",onClick:()=>this.exitUploadMode()},t("sl-icon",{name:"x-circle"}),"Close upload"),t("pos-upload",{uploader:e=>this.os.uploadAndAddPicture(this.resource,e)}))}shouldShowUploadButton(){var e;return((e=this.resource)===null||e===void 0?void 0:e.editable)===true&&!this.noUpload}renderUploadButton(){if(!this.shouldShowUploadButton()){return null}return t("button",{class:"add",onClick:this.enterUploadMode},t("sl-icon",{name:"cloud-plus"}),"Upload picture")}renderPicture(){var e;const i=(e=this.resource)===null||e===void 0?void 0:e.picture();if(!i){return t("div",{class:"no-picture"},t("slot",null),this.renderUploadButton())}return[t("pos-image",{blurredBackground:this.blurredBackground,src:i.url,alt:this.resource.label()}),this.renderUploadButton()]}render(){return this.isUploading?this.renderUpload():this.renderPicture()}get el(){return r(this)}};wr.style=Er;const Sr=":host{--text-color:var(--pos-primary-color);font-family:var(--font-sans)}button{line-height:var(--scale-0);font-family:inherit;margin:0;padding:0;display:flex;background:none;border:none;cursor:pointer}button,a{color:var(--text-color);font-weight:var(--weight-light);line-height:var(--scale-0);font-size:var(--scale-0);font-family:inherit}.container{display:flex;gap:var(--size-1);flex-direction:row;align-items:center;line-height:var(--scale-0)}";const Dr=class{constructor(t){e(this,t);this.expanded=false}render(){if(this.expanded){return t("div",{class:"container"},t("a",{href:this.uri},this.uri),t("sl-tooltip",{content:`Collapse URI`},t("button",{"aria-label":`collapse URI to ${this.label}`,onClick:()=>this.expanded=false},t("sl-icon",{name:"arrow-left-circle"}))))}else{return t("sl-tooltip",{content:`${this.uri}`},t("button",{onClick:()=>this.expanded=true},this.label))}}};Dr.style=Sr;const Rr="details.error {\n margin: var(--size-2);\n background-color: var(--pos-error-background-color);\n border: var(--size-px) solid var(--pos-error-border-color);\n padding: var(--size-2);\n border-radius: var(--radius-md);\n\n a {\n color: var(--pos-normal-text-color);\n }\n}\n\nsl-progress-bar {\n --height: var(--size-1);\n}\n";const kr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.resourceLoadedEmitter=s(this,"pod-os:resource-loaded");this.consumers=[];this.lazy=false;this.loading=true;this.receivePodOs=async e=>{this.os=e}}componentWillLoad(){U.onChange("isLoggedIn",(()=>this.loadResource()));M(this)}async provideResource(e){e.stopPropagation();if(this.resource){e.detail(this.resource)}this.consumers.push(e)}async loadResource(){await this.getResource(!this.lazy)}async fetch(){await this.getResource(true)}async getResource(e=false){try{if(e){this.loading=true;await this.os.fetch(this.uri);this.resourceLoadedEmitter.emit(this.uri)}this.resource=this.os.store.get(this.uri);this.error=null;this.consumers.forEach((e=>{e.detail(this.resource)}))}catch(e){this.error=e}finally{this.loading=false}}render(){if(this.loading){return t("sl-progress-bar",{indeterminate:true})}if(this.error){return t("details",{class:"error"},t("summary",{title:"Click to expand"},"⚠ Sorry, something went wrong"),t("p",null,"Status:",this.error.status),t("p",null,this.error.message),t("p",null,"You can try to open the link outside PodOS: ",t("a",{href:this.uri},this.uri)))}return t("slot",null)}static get watchers(){return{os:["loadResource"],uri:["loadResource"]}}};kr.style=Rr;const Lr=":host {\n --background-color: inherit;\n --label-color: var(--pos-normal-text-color);\n --description-color: var(--pos-normal-text-color);\n --uri-color: var(--pos-subtle-text-color);\n --font-family: var(--font-sans);\n}\n\np.content {\n background-color: var(--background-color);\n line-height: var(--line-xs);\n margin: 0;\n display: flex;\n flex-direction: column;\n align-items: baseline;\n gap: var(--size-1);\n\n .url {\n font-size: var(--scale-fluid-1);\n color: var(--pos-subtle-text-color);\n }\n}\n\na {\n color: var(--label-color);\n max-width: min(100%, var(--prose-lg));\n text-decoration: underline;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-decoration-thickness: var(--size-px);\n}\n\npos-label {\n color: var(--label-color);\n font-size: var(--scale-fluid-2);\n margin-bottom: var(--size-1);\n}\n\npos-description {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n overflow: hidden;\n font-weight: var(--weight-light);\n color: var(--description-color);\n font-size: var(--scale-fluid-2);\n}\n\n@media (min-width: 640px) {\n pos-label {\n font-size: var(--scale-fluid-0);\n }\n pos-description {\n font-size: var(--scale-fluid-1);\n }\n\n p.content {\n .url {\n font-size: var(--scale-fluid-000);\n }\n }\n}\n";const Nr=class{constructor(t){e(this,t);this.linkEmitter=s(this,"pod-os:link");this.subscribeResource=s(this,"pod-os:resource");this.errorEmitter=s(this,"pod-os:error");this.followPredicate=false;this.error=null;this.showCustomContent=false;this.receiveResource=e=>{const t=(e,t,i,s)=>{if(e.length==0){this.error="No matching link found";this.errorEmitter.emit(new Error(`pos-rich-link: No matching link found from ${t.uri} ${s}=${i}`))}else if(e[0].uris.length>1){this.error="More than one matching link found";this.errorEmitter.emit(new Error(`pos-rich-link: More than one matching link found from ${t.uri} ${s}=${i}`))}else{this.link=e[0].uris[0];this.followPredicate=true}};if(this.rel){t(e.relations(this.rel),e,this.rel,"rel")}else if(this.rev){t(e.reverseRelations(this.rev),e,this.rev,"rev")}else{this.link=e.uri}}}componentWillLoad(){this.showCustomContent=!!this.host.lastElementChild||this.host.textContent.trim()!="";if(!this.uri)G(this)}render(){const e=e=>this.showCustomContent?t("a",{href:e,onClick:t=>{t.preventDefault();this.linkEmitter.emit(e)}},t("slot",null)):t("p",{class:"content"},t("a",{href:e,onClick:t=>{t.preventDefault();this.linkEmitter.emit(e)}},t("pos-label",null)),t("span",{class:"url"},new URL(e).host),t("pos-description",null));if(this.error){return this.error}else if(this.followPredicate){return t("pos-resource",{lazy:true,uri:this.link},e(this.link))}else if(this.link){return e(this.link)}else if(this.uri){return t("pos-resource",{lazy:true,uri:this.uri},e(this.uri))}else{return null}}get host(){return r(this)}};Nr.style=Lr;const Cr=(e,t,i)=>{const s=e.get(t);if(!s){e.set(t,[i])}else if(!s.includes(i)){s.push(i)}};const Vr=(e,t)=>{let i;return(...s)=>{if(i){clearTimeout(i)}i=setTimeout((()=>{i=0;e(...s)}),t)}};const Ir=e=>!("isConnected"in e)||e.isConnected;const Tr=Vr((e=>{for(let t of e.keys()){e.set(t,e.get(t).filter(Ir))}}),2e3);const zr=()=>{if(typeof o!=="function"){return{}}const e=new Map;return{dispose:()=>e.clear(),get:t=>{const i=o();if(i){Cr(e,t,i)}},set:t=>{const i=e.get(t);if(i){e.set(t,i.filter(n))}Tr(e)},reset:()=>{e.forEach((e=>e.forEach(n)));Tr(e)}}};const Pr=(e,t=(e,t)=>e!==t)=>{let i=new Map(Object.entries(e!==null&&e!==void 0?e:{}));const s={dispose:[],get:[],set:[],reset:[]};const r=()=>{i=new Map(Object.entries(e!==null&&e!==void 0?e:{}));s.reset.forEach((e=>e()))};const o=()=>{s.dispose.forEach((e=>e()));r()};const n=e=>{s.get.forEach((t=>t(e)));return i.get(e)};const a=(e,r)=>{const o=i.get(e);if(t(r,o,e)){i.set(e,r);s.set.forEach((t=>t(e,r,o)))}};const l=typeof Proxy==="undefined"?{}:new Proxy(e,{get(e,t){return n(t)},ownKeys(e){return Array.from(i.keys())},getOwnPropertyDescriptor(){return{enumerable:true,configurable:true}},has(e,t){return i.has(t)},set(e,t,i){a(t,i);return true}});const d=(e,t)=>{s[e].push(t);return()=>{Jr(s[e],t)}};const c=(t,i)=>{const s=d("set",((e,s)=>{if(e===t){i(s)}}));const r=d("reset",(()=>i(e[t])));return()=>{s();r()}};const p=(...e)=>{const t=e.reduce(((e,t)=>{if(t.set){e.push(d("set",t.set))}if(t.get){e.push(d("get",t.get))}if(t.reset){e.push(d("reset",t.reset))}if(t.dispose){e.push(d("dispose",t.dispose))}return e}),[]);return()=>t.forEach((e=>e()))};const u=e=>{const t=i.get(e);s.set.forEach((i=>i(e,t,t)))};return{state:l,get:n,set:a,on:d,onChange:c,use:p,dispose:o,reset:r,forceUpdate:u}};const Jr=(e,t)=>{const i=e.indexOf(t);if(i>=0){e[i]=e[e.length-1];e.length--}};const Gr=(e,t)=>{const i=Pr(e,t);i.use(zr());return i};const Mr=e=>{var t;const i=window;const s=new URL(i.location.href);const r=(t=void 0)!==null&&t!==void 0?t:Hr;const{state:o,onChange:n,dispose:a}=Gr({url:s,activePath:r(s)},((e,t,i)=>{if(i==="url"){return e.href!==t.href}return e!==t}));const l=e=>{history.pushState(null,null,e);const t=new URL(e,document.baseURI);o.url=t;o.activePath=r(t)};const d=e=>{const{activePath:t}=o;for(let i of e){const s=Ar(t,i.path);if(s){if(i.to!=null){const s=typeof i.to==="string"?i.to:i.to(t);l(s);return d(e)}else{return{params:s,route:i}}}}return undefined};const c=()=>{const e=new URL(i.location.href);o.url=e;o.activePath=r(e)};const p=(e,t)=>{const i=d(t);if(i){if(typeof i.route.jsx==="function"){return i.route.jsx(i.params)}else{return i.route.jsx}}};const u=()=>{i.removeEventListener("popstate",c);a()};const h={Switch:p,get url(){return o.url},get activePath(){return o.activePath},push:l,onChange:n,dispose:u};c();i.addEventListener("popstate",c);return h};const Ar=(e,t)=>{if(typeof t==="string"){if(t===e){return{}}}else if(typeof t==="function"){const i=t(e);if(i){return i===true?{}:{...i}}}else{const i=t.exec(e);if(i){t.lastIndex=0;return{...i}}}return undefined};const Hr=e=>e.pathname.toLowerCase();const Zr=".toolbar{display:flex;flex-direction:row;gap:0;align-items:center;margin-left:0.5rem}pos-navigation{flex-grow:1}";const Wr=Mr();const _r=class{constructor(t){e(this,t);this.routeChanged=s(this,"pod-os:route-changed");this.mode="standalone"}linkClicked(e){this.navigate(e.detail)}sessionRestored(e){Wr.push(e.detail.url)}componentWillLoad(){this.updateUri();Wr.onChange("url",(()=>{this.updateUri()}))}navigate(e){Wr.push("?uri="+encodeURIComponent(e))}updateUri(){this.uri=new URLSearchParams(window.location.search).get("uri")||(this.mode==="standalone"?"pod-os:dashboard":window.location.href);this.routeChanged.emit(this.uri)}render(){return t("slot",{key:"8b09de3dbbd253665cd541b9f264b0dcdc774354"})}};_r.style=Zr;const Or=":host{display:block}input{background-color:transparent;color:var(--pos-normal-text-color);border:none;padding-top:1rem;padding-bottom:1rem}input:focus{outline:none}";const jr=class{constructor(t){e(this,t);this.subscribePodOs=s(this,"pod-os:init");this.termSelected=s(this,"pod-os:term-selected");this.placeholder="Type to search...";this.value="";this.terms=[];this.receivePodOs=async e=>{this.os=e}}componentWillLoad(){M(this)}setTerms(){this.terms=this.os.listKnownTerms()}handleChange(e){this.termSelected.emit({uri:e.target.value})}render(){return t(i,{key:"2e995b15a3b76a13cd7e11d09670121a6191b5ce"},t("input",{key:"ad79f1b410312790d4f5cd1f398b2eec3c04aad7",part:"input",list:"terms",placeholder:this.placeholder,value:this.value,onChange:e=>this.handleChange(e)}),t("datalist",{key:"e3cc9ce85b75033bac29a32ca8e55c57535a9659",part:"terms",id:"terms"},this.terms.map((e=>t("option",{value:e.uri},e.shorthand)))))}static get delegatesFocus(){return true}static get watchers(){return{os:["setTerms"]}}};jr.style=Or;const Yr=":host{border:var(--size-px) solid var(--pos-border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--size-8);max-width:var(--size-96);background:var(--pos-card-background)}svg{width:var(--size-8)}h2{display:flex;align-items:center}p{padding:var(--size-2)}.info{color:var(--color-grey-900);background-color:var(--color-blue-200)}.warn{color:var(--color-grey-900);background-color:var(--color-yellow-200)}";const $r=class{constructor(t){e(this,t)}render(){return t(i,{key:"7417274658af9e41cf662b9ab20d4b5a6236586f"},t("div",{key:"e92a78a1d2b1d067ffd10a68d78a386208d629d8"},t("h2",{key:"7be5f2cf380363e824519fc24fd1e07f0651334b"},t("svg",{key:"d2aa35c987e12836cf665b2574ae0c42a1574e97",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},t("path",{key:"562e3432799cb8111e543080722b6f20867f4b46","stroke-linecap":"round","stroke-linejoin":"round",d:"M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 0v3.75m-16.5-3.75v3.75m16.5 0v3.75C20.25 16.153 16.556 18 12 18s-8.25-1.847-8.25-4.125v-3.75m16.5 0c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125"})),"Cache Settings"),t("p",{key:"002eed9e13146d25cc9e52a68c8d9e030f1dd775",class:"info"},"ℹ Enable offline cache to be able to access previously loaded data while offline."),t("p",{key:"b5a1f45ed9fec335a43ecbb6573a31ed29e0692e",class:"warn"},"⚠ Private data may be stored on this device. Only enable it, if you trust this device."),t("label",{key:"49ab529db0b9d1bd4f216f6c54e78ed30a43be41"},t("input",{key:"e764d1a106906059c7c5286d13b9b8c7a6c01cce",type:"checkbox",checked:O.state.offlineCache,onChange:e=>O.state.offlineCache=e.target.checked}),"Enable offline cache")))}};$r.style=Yr;const Kr=":host {\n --button-size: var(--size-16);\n display: block;\n position: sticky;\n align-self: flex-start;\n top: 0;\n overflow: auto;\n min-width: var(--button-size);\n z-index: var(--layer-1);\n}\n\n[role='tablist'] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n border-right: var(--size-px) solid var(--pos-border-color);\n\n button {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n font-size: var(--size-6);\n position: relative;\n overflow: hidden;\n outline: none;\n border: none;\n width: var(--button-size);\n min-width: var(--button-size);\n height: var(--button-size);\n min-height: var(--button-size);\n background-color: var(--pos-background-color);\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n border-radius: 100%;\n background: color-mix(in srgb, var(--pos-primary-color), transparent 50%);\n transform: translate(-50%, -50%);\n opacity: 1;\n }\n\n &:active::after,\n &:focus::after {\n width: calc(var(--button-size) * 1.5);\n height: calc(var(--button-size) * 1.5);\n opacity: 0;\n transition:\n width 0.5s ease-out,\n height 0.5s ease-out,\n opacity 1s ease-out;\n }\n\n &:focus-visible {\n border: var(--size-px) solid var(--pos-primary-color);\n }\n\n @media (min-width: 640px) {\n &[aria-selected] {\n border-right: var(--size-1) solid var(--pos-primary-color);\n }\n }\n\n .text {\n font-size: var(--size-3);\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n overflow: hidden;\n }\n }\n}\n\n@media (max-width: 640px) {\n :host {\n position: fixed;\n top: unset;\n bottom: 0;\n width: 100dvw;\n }\n [role='tablist'] {\n flex-direction: row;\n background-color: var(--pos-background-color);\n\n border-top: var(--size-px) solid var(--pos-border-color);\n\n button {\n &[aria-selected] {\n border-top: var(--size-1) solid var(--pos-primary-color);\n }\n }\n }\n}\n";const Xr=class{constructor(t){e(this,t);this.toolSelected=s(this,"pod-os:tool-selected");this.tools=[]}render(){if(this.tools.length>1){return t("div",{role:"tablist","aria-label":"Tools","aria-multiselectable":"false"},this.tools.map((e=>{var i;return t("button",{role:"tab","aria-selected":((i=this.selected)===null||i===void 0?void 0:i.element)===e.element,onClick:()=>this.toolSelected.emit(e)},t("sl-icon",{name:e.icon}),t("span",{class:"text"},e.label))})))}return null}};Xr.style=Kr;const qr="dl {\n > * {\n display: flex;\n flex-direction: column;\n gap: var(--size-1);\n }\n\n display: flex;\n flex-direction: column;\n gap: var(--size-4);\n dd {\n margin: 0;\n }\n}\n";const eo=class{constructor(t){e(this,t)}async componentWillLoad(){const e=await A(this.el);e.store.get(this.uri);const t=e.store.get(this.uri).assume(w);this.entries=t.listAll()}render(){if(this.entries.length===0)return null;const e=this.entries.map((e=>t("div",null,t("dt",null,t("pos-predicate",{uri:e.forClass,label:e.label})),e.targets.map((e=>t("dd",null,t("pos-rich-link",{uri:e.uri})))))));return t("dl",null,e)}get el(){return r(this)}};eo.style=qr;const to={Generic:{element:"pos-app-generic",label:"Data",icon:"list-ul",types:[]},Attachments:{element:"pos-tool-attachments",label:"Attach",icon:"paperclip",types:[]},RdfDocument:{element:"pos-app-rdf-document",label:"Things",icon:"diagram-2",types:[{uri:"http://www.w3.org/2007/ont/link#RDFDocument",priority:20}]},DocumentViewer:{element:"pos-app-document-viewer",label:"Doc",icon:"file-text",types:[{uri:io("application/pdf"),priority:30},{uri:"http://www.w3.org/2007/ont/link#Document",priority:10}]},ImageViewer:{element:"pos-app-image-viewer",label:"Pic",icon:"file-image",types:[{uri:"http://purl.org/dc/terms/Image",priority:20}]},LdpContainer:{element:"pos-app-ldp-container",label:"Content",icon:"folder",types:[{uri:"http://www.w3.org/ns/ldp#Container",priority:30}]}};function io(e){return"http://www.w3.org/ns/iana/media-types/"+e+"#Resource"}function so(e){const t=new Set(e.map((e=>e.uri)));return Object.values(to).map(ro(t)).filter(no).toSorted(ao).map((e=>e.tool)).concat(to.Generic).concat(to.Attachments)}const ro=e=>t=>({tool:t,priority:oo(t.types,e)});function oo(e,t){return e.filter((e=>t.has(e.uri))).reduce(((e,t)=>Math.max(e,t.priority)),0)}const no=e=>e.priority>0;const ao=(e,t)=>t.priority-e.priority;const lo="section {\n display: flex;\n flex-direction: row;\n}\n\n.tools {\n flex-grow: 1;\n &.transition {\n position: relative;\n .tool {\n position: absolute;\n }\n }\n}\n\n.tool {\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n &.visible {\n animation: fadeIn 300ms ease-in;\n }\n &.hidden {\n animation: fadeOut 300ms ease-in;\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n@media (max-width: 640px) {\n section {\n --toolbar-size: var(--size-16);\n flex-direction: column-reverse;\n padding-bottom: var(--toolbar-size);\n pos-tool-select {\n --button-size: var(--toolbar-size);\n }\n }\n}\n";const co=class{constructor(t){e(this,t);this.subscribeResource=s(this,"pod-os:resource");this.transitioning=false;this.receiveResource=e=>{var t;const i=e.types();this.availableTools=so(i);this.currentTool=(t=this.availableTools.find((e=>e.element===this.initialTool)))!==null&&t!==void 0?t:this.availableTools[0]}}componentWillLoad(){G(this);const e=new URLSearchParams(window.location.search);const t=e.get("tool");if(t){this.initialTool=t}}handleToolSelected(e){this.oldTool=this.currentTool;this.currentTool=e.detail;this.transitioning=true;const t=new URL(window.location.href);t.searchParams.set("tool",e.detail.element);window.history.replaceState({},"",t.toString())}render(){return this.availableTools?this.renderApp():null}renderApp(){var e;const i=this.currentTool.element;const s=(e=this.oldTool)===null||e===void 0?void 0:e.element;return t("section",null,t("pos-tool-select",{selected:this.currentTool,tools:this.availableTools}),t("div",{class:{tools:true,transition:this.transitioning},onAnimationEnd:()=>this.removeOldTool()},s&&t(s,{class:"tool hidden"}),t(i,{class:"tool visible"})))}removeOldTool(){this.oldTool=null;this.transitioning=false}};co.style=lo;function po(e,t,i){return new Promise((s=>{e.toBlob(s,t,i)}))}const uo=/^data:([^/]+\/[^,;]+(?:[^,]*?))(;base64)?,([\s\S]*)$/;function ho(e,t,i){const s=uo.exec(e);const r=t.mimeType??s?.[1]??"plain/text";let o;if(s?.[2]!=null){const e=atob(decodeURIComponent(s[3]));const t=new Uint8Array(e.length);for(let i=0;i<e.length;i++){t[i]=e.charCodeAt(i)}o=[t]}else if(s?.[3]!=null){o=[decodeURIComponent(s[3])]}return new Blob(o,{type:r})}function fo(e,t,i,s){if(e===t)return e;if(s===0)return t;return e+(t-e)*2**(-s/i)}var mo=['a[href]:not([tabindex^="-"]):not([inert]):not([aria-hidden])','area[href]:not([tabindex^="-"]):not([inert]):not([aria-hidden])',"input:not([disabled]):not([inert]):not([aria-hidden])","select:not([disabled]):not([inert]):not([aria-hidden])","textarea:not([disabled]):not([inert]):not([aria-hidden])","button:not([disabled]):not([inert]):not([aria-hidden])",'iframe:not([tabindex^="-"]):not([inert]):not([aria-hidden])','object:not([tabindex^="-"]):not([inert]):not([aria-hidden])','embed:not([tabindex^="-"]):not([inert]):not([aria-hidden])','[contenteditable]:not([tabindex^="-"]):not([inert]):not([aria-hidden])','[tabindex]:not([tabindex^="-"]):not([inert]):not([aria-hidden])'];function Qo(e){if(typeof e!=="object"||e===null)return false;if(!("nodeType"in e))return false;return e.nodeType===Node.ELEMENT_NODE}function bo(e){if(typeof e==="string"){const t=document.querySelectorAll(e);return t.length===0?null:Array.from(t)}if(typeof e==="object"&&Qo(e)){return[e]}return null}function yo(e,t=document){if(typeof e==="string"){return t.querySelector(e)}if(Qo(e)){return e}return null}function go(e){const t=e.lastIndexOf(".");if(t===-1||t===e.length-1){return{name:e,extension:undefined}}return{name:e.slice(0,t),extension:e.slice(t+1)}}var xo={__proto__:null,md:"text/markdown",markdown:"text/markdown",mp4:"video/mp4",mp3:"audio/mp3",svg:"image/svg+xml",jpg:"image/jpeg",png:"image/png",webp:"image/webp",gif:"image/gif",heic:"image/heic",heif:"image/heif",yaml:"text/yaml",yml:"text/yaml",csv:"text/csv",tsv:"text/tab-separated-values",tab:"text/tab-separated-values",avi:"video/x-msvideo",mks:"video/x-matroska",mkv:"video/x-matroska",mov:"video/quicktime",dicom:"application/dicom",doc:"application/msword",msg:"application/vnd.ms-outlook",docm:"application/vnd.ms-word.document.macroenabled.12",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",dot:"application/msword",dotm:"application/vnd.ms-word.template.macroenabled.12",dotx:"application/vnd.openxmlformats-officedocument.wordprocessingml.template",xla:"application/vnd.ms-excel",xlam:"application/vnd.ms-excel.addin.macroenabled.12",xlc:"application/vnd.ms-excel",xlf:"application/x-xliff+xml",xlm:"application/vnd.ms-excel",xls:"application/vnd.ms-excel",xlsb:"application/vnd.ms-excel.sheet.binary.macroenabled.12",xlsm:"application/vnd.ms-excel.sheet.macroenabled.12",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xlt:"application/vnd.ms-excel",xltm:"application/vnd.ms-excel.template.macroenabled.12",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template",xlw:"application/vnd.ms-excel",txt:"text/plain",text:"text/plain",conf:"text/plain",log:"text/plain",pdf:"application/pdf",zip:"application/zip","7z":"application/x-7z-compressed",rar:"application/x-rar-compressed",tar:"application/x-tar",gz:"application/gzip",dmg:"application/x-apple-diskimage"};function Uo(e){if(e.type)return e.type;const t=e.name?go(e.name).extension?.toLowerCase():null;if(t&&t in xo){return xo[t]}return"application/octet-stream"}function Bo(e){return e.charCodeAt(0).toString(32)}function vo(e){let t="";return e.replace(/[^A-Z0-9]/gi,(e=>{t+=`-${Bo(e)}`;return"/"}))+t}function Fo(e,t){let i=t||"uppy";if(typeof e.name==="string"){i+=`-${vo(e.name.toLowerCase())}`}if(e.type!==undefined){i+=`-${e.type}`}if(e.meta&&typeof e.meta.relativePath==="string"){i+=`-${vo(e.meta.relativePath.toLowerCase())}`}if(e.data?.size!==undefined){i+=`-${e.data.size}`}if(e.data.lastModified!==undefined){i+=`-${e.data.lastModified}`}return i}function Eo(e){if(!e.isRemote||!e.remote)return false;const t=new Set(["box","dropbox","drive","facebook","unsplash"]);return t.has(e.remote.provider)}function wo(e,t){if(Eo(e))return e.id;const i=Uo(e);return Fo({...e,type:i},t)}var So=Array.from;function Do(e){const t=So(e.files);return Promise.resolve(t)}function Ro(e,t,i,{onSuccess:s}){e.readEntries((r=>{const o=[...t,...r];if(r.length){queueMicrotask((()=>{Ro(e,o,i,{onSuccess:s})}))}else{s(o)}}),(e=>{i(e);s(t)}))}function ko(e,t){if(e==null)return e;return{kind:e.isFile?"file":e.isDirectory?"directory":undefined,name:e.name,getFile(){return new Promise(((t,i)=>e.file(t,i)))},async*values(){const i=e.createReader();const s=await new Promise((e=>{Ro(i,[],t,{onSuccess:i=>e(i.map((e=>ko(e,t))))})}));yield*s},isSameEntry:undefined}}async function*Lo(e,t,i=undefined){const s=()=>`${t}/${e.name}`;if(e.kind==="file"){const r=await e.getFile();if(r!=null){r.relativePath=t?s():null;yield r}else if(i!=null)yield i}else if(e.kind==="directory"){for await(const i of e.values()){yield*Lo(i,t?s():e.name)}}else if(i!=null)yield i}async function*No(e,t){const i=await Promise.all(Array.from(e.items,(async e=>{let i;const s=()=>typeof e.getAsEntry==="function"?e.getAsEntry():e.webkitGetAsEntry();i??=ko(s(),t);return{fileSystemHandle:i,lastResortFile:e.getAsFile()}})));for(const{lastResortFile:e,fileSystemHandle:s}of i){if(s!=null){try{yield*Lo(s,"",e)}catch(i){if(e!=null){yield e}else{t(i)}}}else if(e!=null)yield e}}async function Co(e,t){const i=t?.logDropError??Function.prototype;try{const t=[];for await(const s of No(e,i)){t.push(s)}return t}catch{return Do(e)}}const Vo={__proto__:null,"audio/mp3":"mp3","audio/mp4":"mp4","audio/ogg":"ogg","audio/webm":"webm","image/gif":"gif","image/heic":"heic","image/heif":"heif","image/jpeg":"jpg","image/webp":"webp","image/png":"png","image/svg+xml":"svg","video/mp4":"mp4","video/ogg":"ogv","video/quicktime":"mov","video/webm":"webm","video/x-matroska":"mkv","video/x-msvideo":"avi"};function Io(e){[e]=e.split(";",1);return Vo[e]||null}function To(e){while(e&&!e.dir){e=e.parentNode}return e?.dir}function zo(e){return e<10?`0${e}`:e.toString()}function Po(){const e=new Date;const t=zo(e.getHours());const i=zo(e.getMinutes());const s=zo(e.getSeconds());return`${t}:${i}:${s}`}function Jo(){if(typeof window==="undefined"){return false}const e=document.body;if(e==null||window==null){return false}if(!("draggable"in e)||!("ondragstart"in e)||!("ondrop"in e)){return false}if(!("FormData"in window)){return false}if(!("FileReader"in window)){return false}return true}function Go(e){return e.startsWith("blob:")}function Mo(e){if(!e)return false;return/^[^/]+\/(jpe?g|gif|png|svg|svg\+xml|bmp|webp|avif)$/.test(e)}function Ao(e){const t=Math.floor(e/3600)%24;const i=Math.floor(e/60)%60;const s=Math.floor(e%60);return{hours:t,minutes:i,seconds:s}}function Ho(e){const t=Ao(e);const i=t.hours===0?"":`${t.hours}h`;const s=t.minutes===0?"":`${t.hours===0?t.minutes:` ${t.minutes.toString(10).padStart(2,"0")}`}m`;const r=t.hours!==0?"":`${t.minutes===0?t.seconds:` ${t.seconds.toString(10).padStart(2,"0")}`}s`;return`${i}${s}${r}`}function Zo(e,t,i){const s=[];e.forEach((e=>{if(typeof e!=="string"){return s.push(e)}return t[Symbol.split](e).forEach(((e,t,r)=>{if(e!==""){s.push(e)}if(t<r.length-1){s.push(i)}}))}));return s}
|
|
730
730
|
/**
|
|
731
731
|
* Takes a string with placeholder variables like `%{smart_count} file selected`
|
|
732
732
|
* and replaces it with values from options `{smart_count: 5}`
|
|
@@ -857,4 +857,4 @@ import{r as e,h as t,H as i,c as s,a as r,d as o,f as n}from"./p-CTyMYUsB.js";im
|
|
|
857
857
|
margin: 0 var(--spacing);
|
|
858
858
|
}
|
|
859
859
|
`;var Qh=class extends h{constructor(){super(...arguments);this.vertical=false}connectedCallback(){super.connectedCallback();this.setAttribute("role","separator")}handleVerticalChange(){this.setAttribute("aria-orientation",this.vertical?"vertical":"horizontal")}};Qh.styles=[c,mh];p([u({type:Boolean,reflect:true})],Qh.prototype,"vertical",2);p([b("vertical")],Qh.prototype,"handleVerticalChange",1);Qh.define("sl-divider");const bh="button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n border: none;\n background: none;\n cursor: pointer;\n border-radius: 50%;\n pos-picture {\n --width: 40px;\n --height: 40px;\n --border-radius: 50%;\n }\n sl-avatar {\n --size: 40px;\n }\n}\n\nsl-dropdown {\n display: block;\n}\n";const yh=class{constructor(t){e(this,t);this.logout=s(this,"pod-os:logout");this.link=s(this,"pod-os:link")}onSelect(e){const{value:t}=e.detail.item;if(t==="logout"){this.logout.emit()}else if(t==="profile"){this.link.emit(this.webId)}else if(t==="dashboard"){this.link.emit("pod-os:dashboard")}else if(t==="settings"){this.link.emit("pod-os:settings")}}render(){if(!this.webId)return null;return t("pos-resource",{uri:this.webId},t("sl-dropdown",null,t("button",{slot:"trigger","aria-label":"User menu"},t("pos-picture",{"no-upload":true},t("sl-avatar",null))),t("sl-menu",null,t("sl-menu-item",{value:"dashboard"},"Dashboard"),t("sl-menu-item",{value:"profile"},t("pos-label",null)),t("sl-menu-item",{value:"settings"},"Settings"),t("sl-divider",null),t("sl-menu-item",{value:"logout"},"Logout"))))}};yh.style=bh;export{Z as pos_add_new_thing,es as pos_app,is as pos_app_browser,os as pos_app_dashboard,ls as pos_app_settings,ds as pos_description,ps as pos_dialog,ws as pos_error_toast,Ds as pos_example_resources,ks as pos_getting_started,Ns as pos_image,Cs as pos_internal_router,Vs as pos_label,Ts as pos_login,Ps as pos_login_form,Qr as pos_make_findable,xr as pos_navigation,Br as pos_navigation_bar,Fr as pos_new_thing_form,wr as pos_picture,Dr as pos_predicate,kr as pos_resource,Nr as pos_rich_link,_r as pos_router,jr as pos_select_term,$r as pos_setting_offline_cache,Xr as pos_tool_select,eo as pos_type_index_entries,co as pos_type_router,uh as pos_upload,yh as pos_user_menu};
|
|
860
|
-
//# sourceMappingURL=p-
|
|
860
|
+
//# sourceMappingURL=p-39c4bcd5.entry.js.map
|