@lobb-js/lobb-ext-storage 0.1.28 → 0.1.29
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/CHANGELOG.md +37 -0
- package/components.json +16 -0
- package/package.json +17 -15
- package/src/app.css +124 -0
- package/{studio/src → src}/index.ts +5 -5
- package/{studio/src → src/lib}/components/childrenFileExplorer.svelte +1 -1
- package/{studio/src → src/lib}/components/explorerNotSupported.svelte +1 -1
- package/{studio/src → src/lib}/components/fileExplorer.svelte +5 -10
- package/{studio/src → src/lib}/components/fileIcon.svelte +2 -3
- package/{studio/src → src/lib}/components/fileManagerBreadCrumbs.svelte +1 -1
- package/{studio/src → src/lib/components}/foreignKeyComponent.svelte +4 -4
- package/{studio/src → src/lib/components}/pages/fileExplorerPage.svelte +8 -10
- package/src/lib/index.ts +1 -0
- package/src/lib/utils.ts +13 -0
- package/{studio/src → src}/main.ts +4 -2
- package/{studio/tsconfig.app.json → tsconfig.app.json} +6 -1
- package/vite.config.ts +13 -0
- package/studio/postcss.config.js +0 -6
- package/studio/tailwind.config.ts +0 -92
- package/studio/vite.config.ts +0 -13
- /package/{studio/README.md → README.md} +0 -0
- /package/{studio/index.html → index.html} +0 -0
- /package/{studio → src}/extension.types.ts +0 -0
- /package/{studio/svelte.config.js → svelte.config.js} +0 -0
- /package/{studio/tsconfig.json → tsconfig.json} +0 -0
- /package/{studio/tsconfig.node.json → tsconfig.node.json} +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
|
|
3
|
+
|
|
4
|
+
- - -
|
|
5
|
+
## storage-ext-studio@0.1.29 - 2026-02-17
|
|
6
|
+
#### Bug Fixes
|
|
7
|
+
- fixing the publishing issue - (f4d1641) - Malik Najjar
|
|
8
|
+
|
|
9
|
+
- - -
|
|
10
|
+
|
|
11
|
+
## storage-ext-studio@0.0.1 - 2026-02-17
|
|
12
|
+
#### Miscellaneous Chores
|
|
13
|
+
- (**version**) 0.10.4 - (d0d0474) - Cocogitto Bot
|
|
14
|
+
|
|
15
|
+
- - -
|
|
16
|
+
|
|
17
|
+
## storage-ext-studio@0.0.1 - 2026-02-17
|
|
18
|
+
#### Bug Fixes
|
|
19
|
+
- publishing the storage studio - (d7dd43e) - Malik Najjar
|
|
20
|
+
#### Refactoring
|
|
21
|
+
- restructure storage-ext studio components and remove unused files - (a3e375a) - Malik Najjar
|
|
22
|
+
#### Miscellaneous Chores
|
|
23
|
+
- (**version**) 0.10.2 - (2c92a7d) - Cocogitto Bot
|
|
24
|
+
- (**version**) 0.5.5 - (d4dedeb) - Cocogitto Bot
|
|
25
|
+
- (**version**) 0.5.4 - (1ca3970) - Cocogitto Bot
|
|
26
|
+
- (**version**) 0.5.3 - (dcdb9cb) - Cocogitto Bot
|
|
27
|
+
- (**version**) 0.5.2 - (aa66e29) - Cocogitto Bot
|
|
28
|
+
- (**version**) 0.5.1 - (41b7c35) - Cocogitto Bot
|
|
29
|
+
- (**version**) 0.4.2 - (4395d99) - Cocogitto Bot
|
|
30
|
+
- (**version**) 0.4.1 - (5e9f152) - Cocogitto Bot
|
|
31
|
+
- (**version**) 0.4.0 - (aafd2d6) - Cocogitto Bot
|
|
32
|
+
#### Style
|
|
33
|
+
- Update background color from bg-soft to bg-muted/30 across various components - (ad2240a) - Malik Najjar
|
|
34
|
+
|
|
35
|
+
- - -
|
|
36
|
+
|
|
37
|
+
Changelog generated by [cocogitto](https://github.com/cocogitto/cocogitto).
|
package/components.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://shadcn-svelte.com/schema.json",
|
|
3
|
+
"tailwind": {
|
|
4
|
+
"css": "src/app.css",
|
|
5
|
+
"baseColor": "slate"
|
|
6
|
+
},
|
|
7
|
+
"aliases": {
|
|
8
|
+
"components": "$lib/components",
|
|
9
|
+
"utils": "$lib/utils",
|
|
10
|
+
"ui": "$lib/components/ui",
|
|
11
|
+
"hooks": "$lib/hooks",
|
|
12
|
+
"lib": "$lib"
|
|
13
|
+
},
|
|
14
|
+
"typescript": true,
|
|
15
|
+
"registry": "https://shadcn-svelte.com/registry"
|
|
16
|
+
}
|
package/package.json
CHANGED
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobb-js/lobb-ext-storage",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.29",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"files": [
|
|
9
|
-
"studio"
|
|
10
|
-
],
|
|
11
8
|
"exports": {
|
|
12
|
-
".": "./
|
|
9
|
+
".": "./src/index.ts"
|
|
13
10
|
},
|
|
14
11
|
"scripts": {
|
|
15
|
-
"dev": "
|
|
16
|
-
"build": "
|
|
17
|
-
"preview": "
|
|
18
|
-
"check": "
|
|
12
|
+
"dev": "vite",
|
|
13
|
+
"build": "vite build",
|
|
14
|
+
"preview": "vite preview",
|
|
15
|
+
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
|
|
19
16
|
},
|
|
20
17
|
"dependencies": {
|
|
21
|
-
"@lobb-js/studio": "0.
|
|
22
|
-
"path-browserify": "^1.0.1"
|
|
18
|
+
"@lobb-js/studio": "0.2.10",
|
|
19
|
+
"path-browserify": "^1.0.1",
|
|
20
|
+
"browser-fs-access": "^0.35.0"
|
|
23
21
|
},
|
|
24
22
|
"devDependencies": {
|
|
23
|
+
"@lucide/svelte": "^0.563.1",
|
|
25
24
|
"@sveltejs/vite-plugin-svelte": "6.2.1",
|
|
25
|
+
"@tailwindcss/vite": "^4.1.18",
|
|
26
26
|
"@tsconfig/svelte": "^5.0.6",
|
|
27
27
|
"@types/path-browserify": "^1.0.3",
|
|
28
28
|
"@types/node": "^24.10.1",
|
|
29
|
-
"
|
|
30
|
-
"svelte": "^5.
|
|
29
|
+
"clsx": "^2.1.1",
|
|
30
|
+
"svelte": "^5.49.1",
|
|
31
31
|
"svelte-check": "^4.3.4",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
32
|
+
"tailwind-merge": "^3.4.0",
|
|
33
|
+
"tailwind-variants": "^3.2.2",
|
|
34
|
+
"tailwindcss": "4.1.18",
|
|
35
|
+
"tw-animate-css": "^1.4.0",
|
|
34
36
|
"typescript": "~5.9.3",
|
|
35
37
|
"vite": "6.3.3"
|
|
36
38
|
}
|
package/src/app.css
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@import "tw-animate-css";
|
|
4
|
+
|
|
5
|
+
@source "../../../../packages";
|
|
6
|
+
@source "../node_modules/@lobb-js";
|
|
7
|
+
|
|
8
|
+
@custom-variant dark (&:is(.dark *));
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
--radius: 0.625rem;
|
|
12
|
+
--background: oklch(1 0 0);
|
|
13
|
+
--foreground: oklch(0.129 0.042 264.695);
|
|
14
|
+
--card: oklch(1 0 0);
|
|
15
|
+
--card-foreground: oklch(0.129 0.042 264.695);
|
|
16
|
+
--popover: oklch(1 0 0);
|
|
17
|
+
--popover-foreground: oklch(0.129 0.042 264.695);
|
|
18
|
+
--primary: oklch(0.208 0.042 265.755);
|
|
19
|
+
--primary-foreground: oklch(0.984 0.003 247.858);
|
|
20
|
+
--secondary: oklch(0.968 0.007 247.896);
|
|
21
|
+
--secondary-foreground: oklch(0.208 0.042 265.755);
|
|
22
|
+
--muted: oklch(0.968 0.007 247.896);
|
|
23
|
+
--muted-foreground: oklch(0.554 0.046 257.417);
|
|
24
|
+
--accent: oklch(0.968 0.007 247.896);
|
|
25
|
+
--accent-foreground: oklch(0.208 0.042 265.755);
|
|
26
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
27
|
+
--border: oklch(0.929 0.013 255.508);
|
|
28
|
+
--input: oklch(0.929 0.013 255.508);
|
|
29
|
+
--ring: oklch(0.704 0.04 256.788);
|
|
30
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
31
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
32
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
33
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
34
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
35
|
+
--sidebar: oklch(0.984 0.003 247.858);
|
|
36
|
+
--sidebar-foreground: oklch(0.129 0.042 264.695);
|
|
37
|
+
--sidebar-primary: oklch(0.208 0.042 265.755);
|
|
38
|
+
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
39
|
+
--sidebar-accent: oklch(0.968 0.007 247.896);
|
|
40
|
+
--sidebar-accent-foreground: oklch(0.208 0.042 265.755);
|
|
41
|
+
--sidebar-border: oklch(0.929 0.013 255.508);
|
|
42
|
+
--sidebar-ring: oklch(0.704 0.04 256.788);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.dark {
|
|
46
|
+
--background: oklch(0.129 0.042 264.695);
|
|
47
|
+
--foreground: oklch(0.984 0.003 247.858);
|
|
48
|
+
--card: oklch(0.208 0.042 265.755);
|
|
49
|
+
--card-foreground: oklch(0.984 0.003 247.858);
|
|
50
|
+
--popover: oklch(0.208 0.042 265.755);
|
|
51
|
+
--popover-foreground: oklch(0.984 0.003 247.858);
|
|
52
|
+
--primary: oklch(0.929 0.013 255.508);
|
|
53
|
+
--primary-foreground: oklch(0.208 0.042 265.755);
|
|
54
|
+
--secondary: oklch(0.279 0.041 260.031);
|
|
55
|
+
--secondary-foreground: oklch(0.984 0.003 247.858);
|
|
56
|
+
--muted: oklch(0.279 0.041 260.031);
|
|
57
|
+
--muted-foreground: oklch(0.704 0.04 256.788);
|
|
58
|
+
--accent: oklch(0.279 0.041 260.031);
|
|
59
|
+
--accent-foreground: oklch(0.984 0.003 247.858);
|
|
60
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
61
|
+
--border: oklch(1 0 0 / 10%);
|
|
62
|
+
--input: oklch(1 0 0 / 15%);
|
|
63
|
+
--ring: oklch(0.551 0.027 264.364);
|
|
64
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
65
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
66
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
67
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
68
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
69
|
+
--sidebar: oklch(0.208 0.042 265.755);
|
|
70
|
+
--sidebar-foreground: oklch(0.984 0.003 247.858);
|
|
71
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
72
|
+
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
73
|
+
--sidebar-accent: oklch(0.279 0.041 260.031);
|
|
74
|
+
--sidebar-accent-foreground: oklch(0.984 0.003 247.858);
|
|
75
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
76
|
+
--sidebar-ring: oklch(0.551 0.027 264.364);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@theme inline {
|
|
80
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
81
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
82
|
+
--radius-lg: var(--radius);
|
|
83
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
84
|
+
--color-background: var(--background);
|
|
85
|
+
--color-foreground: var(--foreground);
|
|
86
|
+
--color-card: var(--card);
|
|
87
|
+
--color-card-foreground: var(--card-foreground);
|
|
88
|
+
--color-popover: var(--popover);
|
|
89
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
90
|
+
--color-primary: var(--primary);
|
|
91
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
92
|
+
--color-secondary: var(--secondary);
|
|
93
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
94
|
+
--color-muted: var(--muted);
|
|
95
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
96
|
+
--color-accent: var(--accent);
|
|
97
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
98
|
+
--color-destructive: var(--destructive);
|
|
99
|
+
--color-border: var(--border);
|
|
100
|
+
--color-input: var(--input);
|
|
101
|
+
--color-ring: var(--ring);
|
|
102
|
+
--color-chart-1: var(--chart-1);
|
|
103
|
+
--color-chart-2: var(--chart-2);
|
|
104
|
+
--color-chart-3: var(--chart-3);
|
|
105
|
+
--color-chart-4: var(--chart-4);
|
|
106
|
+
--color-chart-5: var(--chart-5);
|
|
107
|
+
--color-sidebar: var(--sidebar);
|
|
108
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
109
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
110
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
111
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
112
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
113
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
114
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@layer base {
|
|
118
|
+
* {
|
|
119
|
+
@apply border-border outline-ring/50;
|
|
120
|
+
}
|
|
121
|
+
body {
|
|
122
|
+
@apply bg-background text-foreground;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { Extension, ExtensionUtils } from "
|
|
1
|
+
import type { Extension, ExtensionUtils } from "@lobb-js/studio";
|
|
2
2
|
|
|
3
|
-
import FileExplorerPage from "./pages/fileExplorerPage.svelte";
|
|
4
|
-
import ForeignKeyComponent from "./foreignKeyComponent.svelte";
|
|
5
|
-
import ChildrenFileExplorer from "./components/childrenFileExplorer.svelte";
|
|
6
|
-
import ExplorerNotSupported from "./components/explorerNotSupported.svelte";
|
|
3
|
+
import FileExplorerPage from "./lib/components/pages/fileExplorerPage.svelte";
|
|
4
|
+
import ForeignKeyComponent from "./lib/components/foreignKeyComponent.svelte";
|
|
5
|
+
import ChildrenFileExplorer from "./lib/components/childrenFileExplorer.svelte";
|
|
6
|
+
import ExplorerNotSupported from "./lib/components/explorerNotSupported.svelte";
|
|
7
7
|
|
|
8
8
|
export function extension(utils: ExtensionUtils): Extension {
|
|
9
9
|
return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { FolderX } from "lucide-svelte";
|
|
3
|
-
import type { ExtensionProps } from "
|
|
3
|
+
import type { ExtensionProps } from "@lobb-js/studio";
|
|
4
4
|
import FileExplorer from "./fileExplorer.svelte";
|
|
5
5
|
|
|
6
6
|
interface Props extends ExtensionProps {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { FolderX } from "lucide-svelte";
|
|
3
3
|
</script>
|
|
4
4
|
|
|
5
|
-
<div class="border rounded-md p-4 bg-
|
|
5
|
+
<div class="border rounded-md p-4 bg-muted/30 flex items-center flex-col text-muted-foreground gap-2">
|
|
6
6
|
<FolderX size={35} />
|
|
7
7
|
<div class="flex flex-col justify-center items-center">
|
|
8
8
|
<div class="text-sm font-bold">Storage file system is not supported here</div>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type { ExtensionProps } from "
|
|
2
|
+
import type { ExtensionProps } from "@lobb-js/studio";
|
|
3
3
|
import type { Snippet } from "svelte";
|
|
4
4
|
|
|
5
|
+
import { fileOpen } from 'browser-fs-access';
|
|
5
6
|
import path from "path-browserify"
|
|
6
7
|
import FileManagerBreadCrumbs from "./fileManagerBreadCrumbs.svelte";
|
|
7
8
|
import FileIcon from "./fileIcon.svelte";
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
onFileSelect?: (entry: Entry) => void;
|
|
21
22
|
foreignKeyObject?: Record<string, any>;
|
|
22
23
|
topLeftHeader?: Snippet<[]>;
|
|
23
|
-
class
|
|
24
|
+
class?: string;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
let { location = $bindable('/'), onFileSelect, topLeftHeader, foreignKeyObject = {}, class: className, ...props }: Props = $props();
|
|
@@ -115,7 +116,7 @@
|
|
|
115
116
|
await refreshFileExplorer();
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
const file = await
|
|
119
|
+
const file = await fileOpen();
|
|
119
120
|
|
|
120
121
|
utils.toast.promise(
|
|
121
122
|
uploadFile(file),
|
|
@@ -198,7 +199,7 @@
|
|
|
198
199
|
>
|
|
199
200
|
<div class="flex items-center justify-between gap-2">
|
|
200
201
|
{@render topLeftHeader?.()}
|
|
201
|
-
<FileManagerBreadCrumbs bind:location={location} {
|
|
202
|
+
<FileManagerBreadCrumbs bind:location={location} {utils} />
|
|
202
203
|
</div>
|
|
203
204
|
<div class="flex gap-2">
|
|
204
205
|
<!-- entries view toggle -->
|
|
@@ -396,9 +397,3 @@
|
|
|
396
397
|
{/if}
|
|
397
398
|
</div>
|
|
398
399
|
</div>
|
|
399
|
-
|
|
400
|
-
<style>
|
|
401
|
-
.selected {
|
|
402
|
-
background-color: theme("colors.muted.DEFAULT");
|
|
403
|
-
}
|
|
404
|
-
</style>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type { ExtensionProps } from "
|
|
2
|
+
import type { ExtensionProps } from "@lobb-js/studio";
|
|
3
3
|
import type { Entry } from "./fileExplorer.svelte";
|
|
4
|
-
import { ctx } from "$lib/store.svelte";
|
|
5
4
|
|
|
6
5
|
interface Props extends ExtensionProps {
|
|
7
6
|
entry: Entry;
|
|
@@ -17,7 +16,7 @@
|
|
|
17
16
|
class="pointer-events-none flex flex-col items-center gap-2 min-w-28"
|
|
18
17
|
>
|
|
19
18
|
{#if entry.file_mime_type.startsWith("image/")}
|
|
20
|
-
<div class="rounded-md w-24 h-24 bg-center bg-contain bg-no-repeat" style="background-image: url('{
|
|
19
|
+
<div class="rounded-md w-24 h-24 bg-center bg-contain bg-no-repeat" style="background-image: url('{utils.lobb.lobbUrl}/api/collections/storage_fs/{entry.id}?action=view');"></div>
|
|
21
20
|
{:else}
|
|
22
21
|
<div
|
|
23
22
|
class="pointer-events-none relative"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type { ExtensionProps } from "
|
|
3
|
-
import FileExplorer, { type Entry } from "./
|
|
4
|
-
|
|
2
|
+
import type { ExtensionProps } from "@lobb-js/studio";
|
|
3
|
+
import FileExplorer, { type Entry } from "./fileExplorer.svelte";
|
|
4
|
+
import FileIcon from "./fileIcon.svelte";
|
|
5
5
|
|
|
6
6
|
interface Props extends ExtensionProps {
|
|
7
7
|
value: Entry;
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
</script>
|
|
30
30
|
|
|
31
|
-
<button onclick={handleClick} class="flex flex-col items-center gap-2 w-full border p-4 rounded-md bg-
|
|
31
|
+
<button onclick={handleClick} class="flex flex-col items-center gap-2 w-full border p-4 rounded-md bg-muted/30">
|
|
32
32
|
{#if value}
|
|
33
33
|
<FileIcon entry={value} {utils} />
|
|
34
34
|
{:else}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import type { ExtensionProps } from "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import FileExplorer, { type Entry } from "../
|
|
2
|
+
import type { ExtensionProps } from "@lobb-js/studio";
|
|
3
|
+
|
|
4
|
+
import { Sidebar, SidebarTrigger, Icons } from "@lobb-js/studio";
|
|
5
|
+
import FileExplorer, { type Entry } from "../fileExplorer.svelte";
|
|
6
6
|
import path from "path-browserify"
|
|
7
7
|
import { onMount } from "svelte";
|
|
8
8
|
|
|
9
9
|
const props: ExtensionProps = $props();
|
|
10
10
|
let { utils } = props;
|
|
11
|
-
let sidebarData: SideBarData | null = $state(null);
|
|
12
11
|
const { location: routerLocation } = utils;
|
|
13
|
-
|
|
14
|
-
const { Sidebar, SidebarTrigger } = utils.components;
|
|
12
|
+
let sidebarData: any | null = $state(null);
|
|
15
13
|
let location: string = $state("/");
|
|
16
|
-
|
|
14
|
+
|
|
17
15
|
onMount(() => {
|
|
18
16
|
getSidebarData();
|
|
19
17
|
updateExplorerLocationFromRouter(routerLocation);
|
|
@@ -47,10 +45,10 @@
|
|
|
47
45
|
const result = await response.json();
|
|
48
46
|
const entries = result.data;
|
|
49
47
|
|
|
50
|
-
sidebarData = entries.map((el: Entry):
|
|
48
|
+
sidebarData = entries.map((el: Entry): any => {
|
|
51
49
|
return {
|
|
52
50
|
name: el.name,
|
|
53
|
-
icon:
|
|
51
|
+
icon: Icons.Folder,
|
|
54
52
|
onclick: () => {
|
|
55
53
|
location = path.join(el.path, el.name);
|
|
56
54
|
}
|
package/src/lib/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// place files you want to import through the `$lib` alias in this folder.
|
package/src/lib/utils.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { clsx, type ClassValue } from "clsx";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
|
|
4
|
+
export function cn(...inputs: ClassValue[]) {
|
|
5
|
+
return twMerge(clsx(inputs));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
export type WithoutChild<T> = T extends { child?: any } ? Omit<T, "child"> : T;
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
export type WithoutChildren<T> = T extends { children?: any } ? Omit<T, "children"> : T;
|
|
12
|
+
export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;
|
|
13
|
+
export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & { ref?: U | null };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import "./app.css";
|
|
2
|
+
|
|
1
3
|
import { mount } from "svelte";
|
|
2
|
-
import Studio from "@lobb-js/studio";
|
|
3
|
-
import { extension } from "./index
|
|
4
|
+
import { Studio } from "@lobb-js/studio";
|
|
5
|
+
import { extension } from "./index";
|
|
4
6
|
|
|
5
7
|
const app = mount(Studio, {
|
|
6
8
|
target: document.getElementById("app")!,
|
|
@@ -16,7 +16,12 @@
|
|
|
16
16
|
*/
|
|
17
17
|
"allowJs": true,
|
|
18
18
|
"checkJs": true,
|
|
19
|
-
"moduleDetection": "force"
|
|
19
|
+
"moduleDetection": "force",
|
|
20
|
+
"baseUrl": ".",
|
|
21
|
+
"paths": {
|
|
22
|
+
"$lib": ["./src/lib"],
|
|
23
|
+
"$lib/*": ["./src/lib/*"]
|
|
24
|
+
}
|
|
20
25
|
},
|
|
21
26
|
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"]
|
|
22
27
|
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
3
|
+
import { lobbStudioPlugins } from "@lobb-js/studio/vite-plugins";
|
|
4
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
5
|
+
|
|
6
|
+
// https://vite.dev/config/
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
plugins: [
|
|
9
|
+
...lobbStudioPlugins(),
|
|
10
|
+
tailwindcss(),
|
|
11
|
+
svelte(),
|
|
12
|
+
],
|
|
13
|
+
});
|
package/studio/postcss.config.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { fontFamily } from "tailwindcss/defaultTheme";
|
|
2
|
-
import type { Config } from "tailwindcss";
|
|
3
|
-
import tailwindcssAnimate from "tailwindcss-animate";
|
|
4
|
-
|
|
5
|
-
const config: Config = {
|
|
6
|
-
darkMode: ["class"],
|
|
7
|
-
content: [
|
|
8
|
-
"./src/**/*.{html,js,svelte,ts}",
|
|
9
|
-
"../../../packages/studio/src/**/*.{html,js,svelte,ts}",
|
|
10
|
-
],
|
|
11
|
-
safelist: ["dark"],
|
|
12
|
-
theme: {
|
|
13
|
-
container: {
|
|
14
|
-
center: true,
|
|
15
|
-
padding: "2rem",
|
|
16
|
-
screens: {
|
|
17
|
-
"2xl": "1400px",
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
extend: {
|
|
21
|
-
colors: {
|
|
22
|
-
border: "hsl(var(--border) / <alpha-value>)",
|
|
23
|
-
input: "hsl(var(--input) / <alpha-value>)",
|
|
24
|
-
ring: "hsl(var(--ring) / <alpha-value>)",
|
|
25
|
-
background: "hsl(var(--background) / <alpha-value>)",
|
|
26
|
-
foreground: "hsl(var(--foreground) / <alpha-value>)",
|
|
27
|
-
primary: {
|
|
28
|
-
DEFAULT: "hsl(var(--primary) / <alpha-value>)",
|
|
29
|
-
foreground: "hsl(var(--primary-foreground) / <alpha-value>)",
|
|
30
|
-
},
|
|
31
|
-
secondary: {
|
|
32
|
-
DEFAULT: "hsl(var(--secondary) / <alpha-value>)",
|
|
33
|
-
foreground: "hsl(var(--secondary-foreground) / <alpha-value>)",
|
|
34
|
-
},
|
|
35
|
-
destructive: {
|
|
36
|
-
DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
|
|
37
|
-
foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
|
|
38
|
-
},
|
|
39
|
-
soft: {
|
|
40
|
-
DEFAULT: "hsl(var(--soft) / <alpha-value>)",
|
|
41
|
-
},
|
|
42
|
-
muted: {
|
|
43
|
-
DEFAULT: "hsl(var(--muted) / <alpha-value>)",
|
|
44
|
-
foreground: "hsl(var(--muted-foreground) / <alpha-value>)",
|
|
45
|
-
},
|
|
46
|
-
accent: {
|
|
47
|
-
DEFAULT: "hsl(var(--accent) / <alpha-value>)",
|
|
48
|
-
foreground: "hsl(var(--accent-foreground) / <alpha-value>)",
|
|
49
|
-
},
|
|
50
|
-
popover: {
|
|
51
|
-
DEFAULT: "hsl(var(--popover) / <alpha-value>)",
|
|
52
|
-
foreground: "hsl(var(--popover-foreground) / <alpha-value>)",
|
|
53
|
-
},
|
|
54
|
-
card: {
|
|
55
|
-
DEFAULT: "hsl(var(--card) / <alpha-value>)",
|
|
56
|
-
foreground: "hsl(var(--card-foreground) / <alpha-value>)",
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
borderRadius: {
|
|
60
|
-
xl: "calc(var(--radius) + 4px)",
|
|
61
|
-
lg: "var(--radius)",
|
|
62
|
-
md: "calc(var(--radius) - 2px)",
|
|
63
|
-
sm: "calc(var(--radius) - 4px)",
|
|
64
|
-
},
|
|
65
|
-
fontFamily: {
|
|
66
|
-
sans: [...fontFamily.sans],
|
|
67
|
-
},
|
|
68
|
-
keyframes: {
|
|
69
|
-
"accordion-down": {
|
|
70
|
-
from: { height: "0" },
|
|
71
|
-
to: { height: "var(--bits-accordion-content-height)" },
|
|
72
|
-
},
|
|
73
|
-
"accordion-up": {
|
|
74
|
-
from: { height: "var(--bits-accordion-content-height)" },
|
|
75
|
-
to: { height: "0" },
|
|
76
|
-
},
|
|
77
|
-
"caret-blink": {
|
|
78
|
-
"0%,70%,100%": { opacity: "1" },
|
|
79
|
-
"20%,50%": { opacity: "0" },
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
animation: {
|
|
83
|
-
"accordion-down": "accordion-down 0.2s ease-out",
|
|
84
|
-
"accordion-up": "accordion-up 0.2s ease-out",
|
|
85
|
-
"caret-blink": "caret-blink 1.25s ease-out infinite",
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
plugins: [tailwindcssAnimate],
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
export default config;
|
package/studio/vite.config.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "vite";
|
|
2
|
-
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
3
|
-
import path from "path";
|
|
4
|
-
|
|
5
|
-
// https://vite.dev/config/
|
|
6
|
-
export default defineConfig({
|
|
7
|
-
plugins: [svelte()],
|
|
8
|
-
resolve: {
|
|
9
|
-
alias: {
|
|
10
|
-
$lib: path.resolve("../../../packages/studio/src/lib"),
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|