@e280/quay 0.0.0-1
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/LICENSE +23 -0
- package/README.md +117 -0
- package/package.json +57 -0
- package/s/cellar/cask.ts +18 -0
- package/s/cellar/cellar.test.ts +100 -0
- package/s/cellar/cellar.ts +53 -0
- package/s/cellar/forklift.ts +9 -0
- package/s/cellar/index.ts +7 -0
- package/s/cellar/memory-forklift.ts +29 -0
- package/s/cellar/opfs-forklift.ts +49 -0
- package/s/demo/main.bundle.ts +39 -0
- package/s/demo/main.css +126 -0
- package/s/dom/components/breadcrumb/component.ts +29 -0
- package/s/dom/components/browser/component.ts +75 -0
- package/s/dom/components/browser/style.css.ts +118 -0
- package/s/dom/components/dropzone/component.ts +33 -0
- package/s/dom/components/dropzone/style.css.ts +54 -0
- package/s/dom/components/filter/component.ts +44 -0
- package/s/dom/components/outliner/component.ts +16 -0
- package/s/dom/components/searchbar/component.ts +29 -0
- package/s/dom/components/sort/component.ts +48 -0
- package/s/dom/components.ts +15 -0
- package/s/dom/context.ts +5 -0
- package/s/dom/theme.css.ts +11 -0
- package/s/dom/utils/find-group-name.ts +12 -0
- package/s/dom/utils/find-local-group.ts +9 -0
- package/s/dom/views/tree/component.ts +64 -0
- package/s/dom/views/tree/style.css.ts +64 -0
- package/s/genius/folio.md +29 -0
- package/s/genius/parts/hy-tree.ts +142 -0
- package/s/genius/quay.md +13 -0
- package/s/genius/turbo.md +21 -0
- package/s/genius/twig.ts +34 -0
- package/s/index.html.ts +89 -0
- package/s/index.ts +14 -0
- package/s/logic/aspects/codex/codex.ts +46 -0
- package/s/logic/aspects/codex/example.ts +65 -0
- package/s/logic/aspects/codex/parts/clade.ts +28 -0
- package/s/logic/aspects/codex/parts/codex-item.ts +94 -0
- package/s/logic/aspects/codex/parts/hierarchy.ts +82 -0
- package/s/logic/aspects/codex/parts/taxonomy.ts +18 -0
- package/s/logic/aspects/codex/parts/types.ts +23 -0
- package/s/logic/aspects/codex/utils/generate-id.ts +7 -0
- package/s/logic/aspects/dropzone.ts +77 -0
- package/s/logic/aspects/tree-trail.ts +33 -0
- package/s/logic/brain.ts +22 -0
- package/s/logic/group.ts +104 -0
- package/s/logic/permissions.ts +34 -0
- package/s/logic/presets/media/group.ts +94 -0
- package/s/logic/presets/media/schema.ts +22 -0
- package/s/logic/presets/opfs/schema.ts +21 -0
- package/s/logic/presets/plain/group.ts +44 -0
- package/s/logic/presets/plain/schema.ts +15 -0
- package/s/logic/types.ts +33 -0
- package/s/tests.test.ts +8 -0
- package/x/cellar/cask.d.ts +8 -0
- package/x/cellar/cask.js +19 -0
- package/x/cellar/cask.js.map +1 -0
- package/x/cellar/cellar.d.ts +22 -0
- package/x/cellar/cellar.js +47 -0
- package/x/cellar/cellar.js.map +1 -0
- package/x/cellar/cellar.test.d.ts +11 -0
- package/x/cellar/cellar.test.js +79 -0
- package/x/cellar/cellar.test.js.map +1 -0
- package/x/cellar/forklift.d.ts +7 -0
- package/x/cellar/forklift.js +2 -0
- package/x/cellar/forklift.js.map +1 -0
- package/x/cellar/index.d.ts +5 -0
- package/x/cellar/index.js +6 -0
- package/x/cellar/index.js.map +1 -0
- package/x/cellar/memory-forklift.d.ts +9 -0
- package/x/cellar/memory-forklift.js +21 -0
- package/x/cellar/memory-forklift.js.map +1 -0
- package/x/cellar/opfs-forklift.d.ts +11 -0
- package/x/cellar/opfs-forklift.js +44 -0
- package/x/cellar/opfs-forklift.js.map +1 -0
- package/x/demo/main.bundle.d.ts +1 -0
- package/x/demo/main.bundle.js +30 -0
- package/x/demo/main.bundle.js.map +1 -0
- package/x/demo/main.bundle.min.js +471 -0
- package/x/demo/main.css +126 -0
- package/x/dom/components/breadcrumb/component.d.ts +1 -0
- package/x/dom/components/breadcrumb/component.js +21 -0
- package/x/dom/components/breadcrumb/component.js.map +1 -0
- package/x/dom/components/browser/component.d.ts +1 -0
- package/x/dom/components/browser/component.js +65 -0
- package/x/dom/components/browser/component.js.map +1 -0
- package/x/dom/components/browser/style.css.d.ts +2 -0
- package/x/dom/components/browser/style.css.js +117 -0
- package/x/dom/components/browser/style.css.js.map +1 -0
- package/x/dom/components/dropzone/component.d.ts +1 -0
- package/x/dom/components/dropzone/component.js +27 -0
- package/x/dom/components/dropzone/component.js.map +1 -0
- package/x/dom/components/dropzone/style.css.d.ts +2 -0
- package/x/dom/components/dropzone/style.css.js +53 -0
- package/x/dom/components/dropzone/style.css.js.map +1 -0
- package/x/dom/components/filter/component.d.ts +1 -0
- package/x/dom/components/filter/component.js +40 -0
- package/x/dom/components/filter/component.js.map +1 -0
- package/x/dom/components/outliner/component.d.ts +1 -0
- package/x/dom/components/outliner/component.js +13 -0
- package/x/dom/components/outliner/component.js.map +1 -0
- package/x/dom/components/searchbar/component.d.ts +1 -0
- package/x/dom/components/searchbar/component.js +24 -0
- package/x/dom/components/searchbar/component.js.map +1 -0
- package/x/dom/components/sort/component.d.ts +1 -0
- package/x/dom/components/sort/component.js +44 -0
- package/x/dom/components/sort/component.js.map +1 -0
- package/x/dom/components.d.ts +18 -0
- package/x/dom/components.js +13 -0
- package/x/dom/components.js.map +1 -0
- package/x/dom/context.d.ts +2 -0
- package/x/dom/context.js +3 -0
- package/x/dom/context.js.map +1 -0
- package/x/dom/theme.css.d.ts +2 -0
- package/x/dom/theme.css.js +11 -0
- package/x/dom/theme.css.js.map +1 -0
- package/x/dom/utils/find-group-name.d.ts +1 -0
- package/x/dom/utils/find-group-name.js +9 -0
- package/x/dom/utils/find-group-name.js.map +1 -0
- package/x/dom/utils/find-local-group.d.ts +1 -0
- package/x/dom/utils/find-local-group.js +7 -0
- package/x/dom/utils/find-local-group.js.map +1 -0
- package/x/dom/views/tree/component.d.ts +7 -0
- package/x/dom/views/tree/component.js +52 -0
- package/x/dom/views/tree/component.js.map +1 -0
- package/x/dom/views/tree/style.css.d.ts +2 -0
- package/x/dom/views/tree/style.css.js +63 -0
- package/x/dom/views/tree/style.css.js.map +1 -0
- package/x/genius/folio.md +29 -0
- package/x/genius/parts/hy-tree.d.ts +44 -0
- package/x/genius/parts/hy-tree.js +116 -0
- package/x/genius/parts/hy-tree.js.map +1 -0
- package/x/genius/quay.md +13 -0
- package/x/genius/turbo.md +21 -0
- package/x/genius/twig.d.ts +34 -0
- package/x/genius/twig.js +2 -0
- package/x/genius/twig.js.map +1 -0
- package/x/importmap.json +47 -0
- package/x/index.d.ts +11 -0
- package/x/index.html +170 -0
- package/x/index.html.d.ts +3 -0
- package/x/index.html.js +87 -0
- package/x/index.html.js.map +1 -0
- package/x/index.js +9 -0
- package/x/index.js.map +1 -0
- package/x/logic/aspects/codex/codex.d.ts +17 -0
- package/x/logic/aspects/codex/codex.js +39 -0
- package/x/logic/aspects/codex/codex.js.map +1 -0
- package/x/logic/aspects/codex/example.d.ts +13 -0
- package/x/logic/aspects/codex/example.js +42 -0
- package/x/logic/aspects/codex/example.js.map +1 -0
- package/x/logic/aspects/codex/parts/clade.d.ts +16 -0
- package/x/logic/aspects/codex/parts/clade.js +23 -0
- package/x/logic/aspects/codex/parts/clade.js.map +1 -0
- package/x/logic/aspects/codex/parts/codex-item.d.ts +33 -0
- package/x/logic/aspects/codex/parts/codex-item.js +74 -0
- package/x/logic/aspects/codex/parts/codex-item.js.map +1 -0
- package/x/logic/aspects/codex/parts/hierarchy.d.ts +23 -0
- package/x/logic/aspects/codex/parts/hierarchy.js +69 -0
- package/x/logic/aspects/codex/parts/hierarchy.js.map +1 -0
- package/x/logic/aspects/codex/parts/taxonomy.d.ts +7 -0
- package/x/logic/aspects/codex/parts/taxonomy.js +13 -0
- package/x/logic/aspects/codex/parts/taxonomy.js.map +1 -0
- package/x/logic/aspects/codex/parts/types.d.ts +22 -0
- package/x/logic/aspects/codex/parts/types.js +2 -0
- package/x/logic/aspects/codex/parts/types.js.map +1 -0
- package/x/logic/aspects/codex/utils/generate-id.d.ts +1 -0
- package/x/logic/aspects/codex/utils/generate-id.js +5 -0
- package/x/logic/aspects/codex/utils/generate-id.js.map +1 -0
- package/x/logic/aspects/dropzone.d.ts +16 -0
- package/x/logic/aspects/dropzone.js +60 -0
- package/x/logic/aspects/dropzone.js.map +1 -0
- package/x/logic/aspects/tree-trail.d.ts +8 -0
- package/x/logic/aspects/tree-trail.js +24 -0
- package/x/logic/aspects/tree-trail.js.map +1 -0
- package/x/logic/brain.d.ts +11 -0
- package/x/logic/brain.js +17 -0
- package/x/logic/brain.js.map +1 -0
- package/x/logic/group.d.ts +51 -0
- package/x/logic/group.js +79 -0
- package/x/logic/group.js.map +1 -0
- package/x/logic/permissions.d.ts +18 -0
- package/x/logic/permissions.js +26 -0
- package/x/logic/permissions.js.map +1 -0
- package/x/logic/presets/media/group.d.ts +7 -0
- package/x/logic/presets/media/group.js +75 -0
- package/x/logic/presets/media/group.js.map +1 -0
- package/x/logic/presets/media/schema.d.ts +18 -0
- package/x/logic/presets/media/schema.js +2 -0
- package/x/logic/presets/media/schema.js.map +1 -0
- package/x/logic/presets/opfs/schema.d.ts +18 -0
- package/x/logic/presets/opfs/schema.js +2 -0
- package/x/logic/presets/opfs/schema.js.map +1 -0
- package/x/logic/presets/plain/group.d.ts +7 -0
- package/x/logic/presets/plain/group.js +33 -0
- package/x/logic/presets/plain/group.js.map +1 -0
- package/x/logic/presets/plain/schema.d.ts +12 -0
- package/x/logic/presets/plain/schema.js +2 -0
- package/x/logic/presets/plain/schema.js.map +1 -0
- package/x/logic/types.d.ts +20 -0
- package/x/logic/types.js +11 -0
- package/x/logic/types.js.map +1 -0
- package/x/tests.test.d.ts +1 -0
- package/x/tests.test.js +6 -0
- package/x/tests.test.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.css.js","sourceRoot":"","sources":["../../s/dom/theme.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAA;AAChC,eAAe,GAAG,CAAA;;;;;;;;EAQhB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findGroupName(el: HTMLElement): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-group-name.js","sourceRoot":"","sources":["../../../s/dom/utils/find-group-name.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,EAAe;IAC5C,KACC,IAAI,OAAO,GAAuB,EAAE,EACpC,OAAO,EACP,OAAO,GAAG,OAAO,CAAC,aAAa,EAC9B,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,KAAK;YACR,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findLocalGroup(element: HTMLElement): import("../../logic/group.js").Group<any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-local-group.js","sourceRoot":"","sources":["../../../s/dom/utils/find-local-group.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAA;AAElD,MAAM,UAAU,cAAc,CAAC,OAAoB;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplateResult } from "@benev/slate";
|
|
2
|
+
import { Group } from "../../../logic/group.js";
|
|
3
|
+
export declare const Tree: (props: [group: Group<any>], meta?: Partial<{
|
|
4
|
+
content: import("lit-html").TemplateResult;
|
|
5
|
+
auto_exportparts: boolean;
|
|
6
|
+
attrs: import("@benev/slate").ShadowAttrs;
|
|
7
|
+
}>) => import("lit-html/directive.js").DirectiveResult<any>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { html, shadowView } from "@benev/slate";
|
|
2
|
+
import styleCss from "./style.css.js";
|
|
3
|
+
import themeCss from "../../theme.css.js";
|
|
4
|
+
export const Tree = shadowView(use => (group) => {
|
|
5
|
+
use.styles(themeCss, styleCss);
|
|
6
|
+
const { config } = group;
|
|
7
|
+
const { dropzone, trail, config: { root } } = group;
|
|
8
|
+
use.mount(() => {
|
|
9
|
+
const dispose = group.on.upload.sub(() => use.rerender());
|
|
10
|
+
return () => dispose();
|
|
11
|
+
});
|
|
12
|
+
const renderFolderItem = (item) => html `
|
|
13
|
+
<input
|
|
14
|
+
@dragenter=${(e) => dropzone.dragenter(e, item)}
|
|
15
|
+
@dragleave=${dropzone.dragleave}
|
|
16
|
+
@dragover=${(e) => dropzone.dragover(e, item)}
|
|
17
|
+
@drop=${(e) => dropzone.drop(e, item)}
|
|
18
|
+
@click=${(e) => e.preventDefault()}
|
|
19
|
+
id="file-import"
|
|
20
|
+
class="file-import folder-hover"
|
|
21
|
+
>
|
|
22
|
+
<span class="folder" slot="expand-icon">${config.renderIcon(item, false)}</span>
|
|
23
|
+
<span class="folder" slot="collapse-icon">${config.renderIcon(item, true)}</span>
|
|
24
|
+
${config.renderLabel(item)}
|
|
25
|
+
`;
|
|
26
|
+
const renderItem = (item) => html `
|
|
27
|
+
${config.renderIcon(item, false)}
|
|
28
|
+
${config.renderLabel(item)}
|
|
29
|
+
`;
|
|
30
|
+
const render = (item) => {
|
|
31
|
+
return html `
|
|
32
|
+
<sl-tree-item
|
|
33
|
+
draggable="true"
|
|
34
|
+
@dragstart=${(e) => dropzone.dragstart(e, item)}
|
|
35
|
+
@dragend=${dropzone.dragend}
|
|
36
|
+
@click=${(e) => trail.setTrail(e, item)}
|
|
37
|
+
data-type=${item.kind}
|
|
38
|
+
?data-hover=${dropzone.hovering?.id === item.id}
|
|
39
|
+
>
|
|
40
|
+
${item.kind === "folder"
|
|
41
|
+
? renderFolderItem(item)
|
|
42
|
+
: renderItem(item)}
|
|
43
|
+
${group.sort(item.children).map((item) => group.matches(item) ? render(item) : null)}
|
|
44
|
+
</sl-tree-item>
|
|
45
|
+
`;
|
|
46
|
+
};
|
|
47
|
+
return html `
|
|
48
|
+
<sl-tree selection=leaf>
|
|
49
|
+
${render(root)}
|
|
50
|
+
</sl-tree>`;
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../s/dom/views/tree/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,UAAU,EAAiB,MAAM,cAAc,CAAA;AAE7D,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,QAAQ,MAAM,oBAAoB,CAAA;AAKzC,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAY,EAAE,EAAE;IACtD,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE9B,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAA;IACtB,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAC,IAAI,EAAC,EAAC,GAAG,KAAK,CAAA;IAE/C,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QACd,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzD,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAA;;gBAEnC,CAAC,CAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;gBAC7C,QAAQ,CAAC,SAAS;eACnB,CAAC,CAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;WAChD,CAAC,CAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;YACvC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE;;;;4CAIA,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;8CAC5B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;IACvE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;EAC1B,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAA;IACzC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;IAC9B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;EAC1B,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,IAAe,EAAkB,EAAE;QAClD,OAAO,IAAI,CAAA;;;iBAGI,CAAC,CAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;eAC/C,QAAQ,CAAC,OAAO;aAClB,CAAC,CAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;gBAClC,IAAI,CAAC,IAAI;kBACP,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;;MAE7C,IAAI,CAAC,IAAI,KAAK,QAAQ;YACvB,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;MACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;;GAErF,CAAA;IACF,CAAC,CAAA;IAED,OAAO,IAAI,CAAA;;KAEP,MAAM,CAAC,IAAI,CAAC;aACJ,CAAA;AACb,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { css } from "@benev/slate";
|
|
2
|
+
export default css `
|
|
3
|
+
|
|
4
|
+
sl-tree-item::part(expand-button) {
|
|
5
|
+
rotate: none;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
sl-tree-item::part(base) {
|
|
9
|
+
min-height: 30px;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
sl-icon:is(.item) {
|
|
14
|
+
padding: 0.5em;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
sl-tree-item:not([data-type=folder])::part(expand-button) {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.file-import {
|
|
22
|
+
position: absolute;
|
|
23
|
+
opacity: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.folder-hover {
|
|
29
|
+
position: absolute;
|
|
30
|
+
width: 100%;
|
|
31
|
+
height: 100%;
|
|
32
|
+
left: 0;
|
|
33
|
+
bottom: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
sl-tree-item {
|
|
37
|
+
min-height: 30px;
|
|
38
|
+
transition: background 0.2s ease, border-radius 0.2s ease;
|
|
39
|
+
|
|
40
|
+
::part(label) {
|
|
41
|
+
gap: 0.5em;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.folder {
|
|
45
|
+
display: flex;
|
|
46
|
+
justify-content: center;
|
|
47
|
+
align-items: center;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
::part(item--selected) {
|
|
51
|
+
background: rgba(0, 0, 0, 0.4);
|
|
52
|
+
min-height: 30px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
sl-tree-item[data-hover] {
|
|
58
|
+
border-radius: 5px;
|
|
59
|
+
background: rgba(0, 0, 0, 0.4);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
`;
|
|
63
|
+
//# sourceMappingURL=style.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.css.js","sourceRoot":"","sources":["../../../../s/dom/views/tree/style.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAA;AAChC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DjB,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
# ๐๏ธ Folio
|
|
3
|
+
|
|
4
|
+
A virtual filesystem for the web.
|
|
5
|
+
|
|
6
|
+
Folio provides primitives for building intuitive file browsing experiences on the web.
|
|
7
|
+
- Agnostic about where data is actually stored
|
|
8
|
+
- For local, best to use [Turbo](./turbo.md) as an OPFS turbocharger
|
|
9
|
+
|
|
10
|
+
> ๐คท **Why not just use OPFS?**
|
|
11
|
+
> OPFS doesn't have cross-browser support for efficient move or rename operations.
|
|
12
|
+
> Folio is like a souped-up extended opfs.
|
|
13
|
+
|
|
14
|
+
Folio stores two kinds of data:
|
|
15
|
+
- **Blob storage**
|
|
16
|
+
Stores the binary payloads for files.
|
|
17
|
+
Usually, blob storage will target *opfs* โ though localstorage, indexeddb, or cloud storage are options.
|
|
18
|
+
sha256 hashes are the identifiers, thus binary payloads are thus de-duplicated.
|
|
19
|
+
- **Index storage**
|
|
20
|
+
Stores metadata and directory hierarchy.
|
|
21
|
+
Usually, index storage will target *indexeddb* โ though localstorage or cloud storage are options.
|
|
22
|
+
|
|
23
|
+
<br/>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
> ### Wip: implementation plan
|
|
28
|
+
> - Folio implements the `Twig` interface
|
|
29
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Kv } from "@e280/kv";
|
|
2
|
+
export type HyId = string;
|
|
3
|
+
export type HyItem = {
|
|
4
|
+
parent: HyId | null;
|
|
5
|
+
children: HyId[];
|
|
6
|
+
};
|
|
7
|
+
type HyRecord = [parent: HyId | null, children: HyId[]];
|
|
8
|
+
/**
|
|
9
|
+
* Async hierarchy of nestable items.
|
|
10
|
+
* - items can have multiple children.
|
|
11
|
+
* - items can only have one parent.
|
|
12
|
+
* - items can be orphans (bring your own concept of a "root").
|
|
13
|
+
*/
|
|
14
|
+
export declare class HyTree {
|
|
15
|
+
private records;
|
|
16
|
+
constructor(records: Kv<HyRecord>);
|
|
17
|
+
has(id: HyId): Promise<boolean>;
|
|
18
|
+
get(id: HyId): Promise<HyItem | undefined>;
|
|
19
|
+
gets(...ids: HyId[]): Promise<(HyItem | undefined)[]>;
|
|
20
|
+
require(id: HyId): Promise<HyItem>;
|
|
21
|
+
requires(...ids: HyId[]): Promise<HyItem[]>;
|
|
22
|
+
/** establish an id as a root with no parents, but ready to accept children */
|
|
23
|
+
establishRoot(root: HyId): Promise<void>;
|
|
24
|
+
/** give a parent some children */
|
|
25
|
+
attach(parent: HyId, ...children: HyId[]): Promise<void>;
|
|
26
|
+
/** detach this id from its parent in the hierarchy */
|
|
27
|
+
detach(id: HyId): Promise<undefined>;
|
|
28
|
+
/** destroy all relations associated with this id, and all its descendants */
|
|
29
|
+
destroy(id: HyId): Promise<void>;
|
|
30
|
+
/** delete absolutely everything */
|
|
31
|
+
clear(): Promise<void>;
|
|
32
|
+
/** iterate over all root items */
|
|
33
|
+
roots(): AsyncGenerator<{
|
|
34
|
+
id: HyId;
|
|
35
|
+
item: HyItem;
|
|
36
|
+
}, void, unknown>;
|
|
37
|
+
/** iterate over this id and all its descendants */
|
|
38
|
+
crawl(id: HyId, predicate?: (id: HyId, path: HyId[]) => Promise<boolean>): AsyncGenerator<{
|
|
39
|
+
id: HyId;
|
|
40
|
+
item: HyItem;
|
|
41
|
+
path: HyId[];
|
|
42
|
+
}, void, unknown>;
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { collect } from "@e280/kv";
|
|
2
|
+
/**
|
|
3
|
+
* Async hierarchy of nestable items.
|
|
4
|
+
* - items can have multiple children.
|
|
5
|
+
* - items can only have one parent.
|
|
6
|
+
* - items can be orphans (bring your own concept of a "root").
|
|
7
|
+
*/
|
|
8
|
+
export class HyTree {
|
|
9
|
+
records;
|
|
10
|
+
constructor(records) {
|
|
11
|
+
this.records = records;
|
|
12
|
+
}
|
|
13
|
+
async has(id) {
|
|
14
|
+
return this.records.has(id);
|
|
15
|
+
}
|
|
16
|
+
async get(id) {
|
|
17
|
+
const record = await this.records.get(id);
|
|
18
|
+
if (record) {
|
|
19
|
+
const [parent, children] = record;
|
|
20
|
+
return { parent, children };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async gets(...ids) {
|
|
24
|
+
const records = await this.records.gets(...ids);
|
|
25
|
+
return records.map(r => {
|
|
26
|
+
if (!r)
|
|
27
|
+
return undefined;
|
|
28
|
+
const [parent, children] = r;
|
|
29
|
+
return { parent, children };
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async require(id) {
|
|
33
|
+
const record = await this.records.require(id);
|
|
34
|
+
const [parent, children] = record;
|
|
35
|
+
return { parent, children };
|
|
36
|
+
}
|
|
37
|
+
async requires(...ids) {
|
|
38
|
+
const records = await this.records.requires(...ids);
|
|
39
|
+
return records.map(([parent, children]) => ({ parent, children }));
|
|
40
|
+
}
|
|
41
|
+
/** establish an id as a root with no parents, but ready to accept children */
|
|
42
|
+
async establishRoot(root) {
|
|
43
|
+
return this.records.set(root, [null, []]);
|
|
44
|
+
}
|
|
45
|
+
/** give a parent some children */
|
|
46
|
+
async attach(parent, ...children) {
|
|
47
|
+
children = [...new Set(children)];
|
|
48
|
+
const parentItem = await this.require(parent);
|
|
49
|
+
const siblings = new Set(parentItem.children);
|
|
50
|
+
const childItems = await this.gets(...children);
|
|
51
|
+
const newcomers = [];
|
|
52
|
+
for (const [index, id] of children.entries()) {
|
|
53
|
+
const item = childItems.at(index);
|
|
54
|
+
// child already in tree
|
|
55
|
+
if (item && item.parent)
|
|
56
|
+
throw new Error(`child already has parent`);
|
|
57
|
+
// child not in tree yet, remember to save it
|
|
58
|
+
else
|
|
59
|
+
newcomers.push([id, [parent, []]]);
|
|
60
|
+
// add to siblings set
|
|
61
|
+
siblings.add(id);
|
|
62
|
+
}
|
|
63
|
+
// save all new children
|
|
64
|
+
await this.records.sets(...newcomers);
|
|
65
|
+
// save updated parent item
|
|
66
|
+
await this.records.set(parent, [parentItem.parent, [...siblings]]);
|
|
67
|
+
}
|
|
68
|
+
/** detach this id from its parent in the hierarchy */
|
|
69
|
+
async detach(id) {
|
|
70
|
+
const item = await this.get(id);
|
|
71
|
+
if (!item)
|
|
72
|
+
return undefined;
|
|
73
|
+
if (item.parent) {
|
|
74
|
+
const parentItem = await this.require(item.parent);
|
|
75
|
+
const siblings = new Set(parentItem.children);
|
|
76
|
+
siblings.delete(id);
|
|
77
|
+
// save the parent item with removed child
|
|
78
|
+
await this.records.set(item.parent, [parentItem.parent, [...siblings]]);
|
|
79
|
+
// save the child with null parent
|
|
80
|
+
await this.records.set(id, [null, item.children]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** destroy all relations associated with this id, and all its descendants */
|
|
84
|
+
async destroy(id) {
|
|
85
|
+
await this.detach(id);
|
|
86
|
+
const tree = await collect(this.crawl(id));
|
|
87
|
+
const ids = tree.map(({ id }) => id);
|
|
88
|
+
await this.records.del(...ids);
|
|
89
|
+
}
|
|
90
|
+
/** delete absolutely everything */
|
|
91
|
+
async clear() {
|
|
92
|
+
await this.records.clear();
|
|
93
|
+
}
|
|
94
|
+
/** iterate over all root items */
|
|
95
|
+
async *roots() {
|
|
96
|
+
for await (const [id, [parent, children]] of this.records.entries())
|
|
97
|
+
if (parent === null)
|
|
98
|
+
yield { id, item: { parent, children } };
|
|
99
|
+
}
|
|
100
|
+
/** iterate over this id and all its descendants */
|
|
101
|
+
async *crawl(id, predicate = async () => true) {
|
|
102
|
+
const todo = [[id, []]];
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
while (todo.length) {
|
|
105
|
+
const [id, path] = todo.shift();
|
|
106
|
+
if (seen.has(id) || !await predicate(id, path))
|
|
107
|
+
continue;
|
|
108
|
+
seen.add(id);
|
|
109
|
+
const item = await this.require(id);
|
|
110
|
+
yield { id, item, path };
|
|
111
|
+
for (const childId of item.children)
|
|
112
|
+
todo.push([childId, [...path, id]]);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=hy-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hy-tree.js","sourceRoot":"","sources":["../../../s/genius/parts/hy-tree.ts"],"names":[],"mappings":"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"}
|
package/x/genius/quay.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
# โก Turbo
|
|
3
|
+
|
|
4
|
+
**Turbo** is a turbocharger for reading and writing files in [OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system).
|
|
5
|
+
|
|
6
|
+
It provides high-performance multithreaded low-level read/write access by automatically scheduling parallel tasks across a pool of web workers.
|
|
7
|
+
|
|
8
|
+
- ๐ **OPFS** โ files stay local on the user's device
|
|
9
|
+
- ๐งต **Multithreaded** โ goes fast with no ui jank
|
|
10
|
+
- โ๏ธ **Low-level** โ streaming byte-level access
|
|
11
|
+
- ๐ **Smart** โ prevents funky race conditions
|
|
12
|
+
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
> ### Wip: implementation plan
|
|
18
|
+
> - use comrade for worker pooling
|
|
19
|
+
> - workers use opfs createSyncAccessHandle, make TransformStream readable/writable pair, wire it to the file stream, transfer the other end to the main thread, voila, connected
|
|
20
|
+
> - we have to do some big-brain horseshit to schedule tasks in a way to maximize parallelism while respecting ongoing locks
|
|
21
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ๐ฟ Async source for loading items into Quay.
|
|
3
|
+
* - crawlable and callable by the ui
|
|
4
|
+
* - the functions provided are available for the ui user
|
|
5
|
+
* - as we crawl, every item we see is cached for sync rendering
|
|
6
|
+
* - minimal so as to be compatible even with raw opfs
|
|
7
|
+
* - Opfs, Cellar, etc, will literally provide Twig implementations
|
|
8
|
+
*/
|
|
9
|
+
export type Twig<T extends Twig = any> = {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
parent: T | null;
|
|
13
|
+
rename?: (name: string) => Promise<void>;
|
|
14
|
+
delete?: () => Promise<void>;
|
|
15
|
+
move?: (o: {
|
|
16
|
+
parent: T;
|
|
17
|
+
}) => Promise<void>;
|
|
18
|
+
copy?: (o: {
|
|
19
|
+
parent: T;
|
|
20
|
+
name: string;
|
|
21
|
+
}) => Promise<void>;
|
|
22
|
+
container?: {
|
|
23
|
+
create(o: CreationOptions): Promise<T>;
|
|
24
|
+
children(o?: ListingOptions): Promise<T[]>;
|
|
25
|
+
crawl(predicate: (item: T, ancestors: T[]) => Promise<boolean>): AsyncIterable<T>;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export type Lens<T extends Twig = any> = (item: T) => boolean;
|
|
29
|
+
export type WritingOptions = {};
|
|
30
|
+
export type ReadingOptions = {};
|
|
31
|
+
export type CreationOptions = {};
|
|
32
|
+
export type ListingOptions<T extends Twig = any> = {
|
|
33
|
+
lens?: Lens<T>;
|
|
34
|
+
};
|
package/x/genius/twig.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twig.js","sourceRoot":"","sources":["../../s/genius/twig.ts"],"names":[],"mappings":""}
|
package/x/importmap.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"imports": {
|
|
3
|
+
"@benev/slate/": "/node_modules/@benev/slate/",
|
|
4
|
+
"@benev/slate": "/node_modules/@benev/slate/x/index.js",
|
|
5
|
+
"@e280/kv/": "/node_modules/@e280/kv/",
|
|
6
|
+
"@e280/kv": "/node_modules/@e280/kv/x/index.js",
|
|
7
|
+
"@e280/stz/": "/node_modules/@e280/stz/",
|
|
8
|
+
"@e280/stz": "/node_modules/@e280/stz/x/index.js",
|
|
9
|
+
"@lit-labs/ssr-dom-shim/": "/node_modules/@lit-labs/ssr-dom-shim/",
|
|
10
|
+
"@lit-labs/ssr-dom-shim": "/node_modules/@lit-labs/ssr-dom-shim/index.js",
|
|
11
|
+
"@lit/reactive-element/": "/node_modules/@lit/reactive-element/",
|
|
12
|
+
"@lit/reactive-element": "/node_modules/@lit/reactive-element/reactive-element.js",
|
|
13
|
+
"@types/trusted-types/": "/node_modules/@types/trusted-types/",
|
|
14
|
+
"abstract-level/": "/node_modules/abstract-level/",
|
|
15
|
+
"abstract-level": "/node_modules/abstract-level/index.js",
|
|
16
|
+
"base64-js/": "/node_modules/base64-js/",
|
|
17
|
+
"base64-js": "/node_modules/base64-js/index.js",
|
|
18
|
+
"browser-level/": "/node_modules/browser-level/",
|
|
19
|
+
"browser-level": "/node_modules/browser-level/index.js",
|
|
20
|
+
"buffer/": "/node_modules/buffer/",
|
|
21
|
+
"buffer": "/node_modules/buffer/index.js",
|
|
22
|
+
"classic-level/": "/node_modules/classic-level/",
|
|
23
|
+
"classic-level": "/node_modules/classic-level/index.js",
|
|
24
|
+
"ieee754/": "/node_modules/ieee754/",
|
|
25
|
+
"ieee754": "/node_modules/ieee754/index.js",
|
|
26
|
+
"is-buffer/": "/node_modules/is-buffer/",
|
|
27
|
+
"is-buffer": "/node_modules/is-buffer/index.js",
|
|
28
|
+
"level/": "/node_modules/level/",
|
|
29
|
+
"level": "/node_modules/level/index.js",
|
|
30
|
+
"level-supports/": "/node_modules/level-supports/",
|
|
31
|
+
"level-transcoder/": "/node_modules/level-transcoder/",
|
|
32
|
+
"level-transcoder": "/node_modules/level-transcoder/index.js",
|
|
33
|
+
"lit/": "/node_modules/lit/",
|
|
34
|
+
"lit": "/node_modules/lit/index.js",
|
|
35
|
+
"lit-element/": "/node_modules/lit-element/",
|
|
36
|
+
"lit-element": "/node_modules/lit-element/index.js",
|
|
37
|
+
"lit-html/": "/node_modules/lit-html/",
|
|
38
|
+
"lit-html": "/node_modules/lit-html/lit-html.js",
|
|
39
|
+
"maybe-combine-errors/": "/node_modules/maybe-combine-errors/",
|
|
40
|
+
"module-error/": "/node_modules/module-error/",
|
|
41
|
+
"napi-macros/": "/node_modules/napi-macros/",
|
|
42
|
+
"napi-macros": "/node_modules/napi-macros/index.js",
|
|
43
|
+
"node-gyp-build/": "/node_modules/node-gyp-build/",
|
|
44
|
+
"node-gyp-build": "/node_modules/node-gyp-build/index.js"
|
|
45
|
+
},
|
|
46
|
+
"scopes": {}
|
|
47
|
+
}
|
package/x/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { register, css } from "@benev/slate";
|
|
2
|
+
export * from "./cellar/index.js";
|
|
3
|
+
export * from "./dom/components.js";
|
|
4
|
+
declare const Quay: {
|
|
5
|
+
permissions: {
|
|
6
|
+
all: import("./logic/permissions.js").Permission;
|
|
7
|
+
readOnly: import("./logic/permissions.js").Permission;
|
|
8
|
+
none: import("./logic/permissions.js").Permission;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default Quay;
|