@lobb-js/studio 0.1.31 → 0.1.33
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/package.json +24 -14
- package/src/{Studio.svelte → lib/components/Studio.svelte} +8 -8
- package/src/lib/components/dataTable/childRecords.svelte +1 -1
- package/src/lib/components/detailView/create/children.svelte +1 -1
- package/src/lib/components/detailView/create/createDetailView.svelte +1 -1
- package/src/lib/components/detailView/fieldInput.svelte +1 -1
- package/src/lib/components/detailView/update/children.svelte +1 -1
- package/src/lib/components/detailView/update/updateDetailView.svelte +1 -1
- package/src/lib/components/extensionsComponents.svelte +1 -2
- package/src/lib/components/miniSidebar.svelte +1 -1
- package/{vite-plugin-contextual-lib.js → vite-plugins/contextual-lib-alias.js} +2 -7
- package/vite-plugins/index.js +21 -0
- package/vite-plugins/studio-source-resolver.js +41 -0
- package/.env.example +0 -1
- package/.storybook/main.ts +0 -31
- package/.storybook/preview.ts +0 -21
- package/.storybook/vitest.setup.ts +0 -7
- package/components.json +0 -16
- package/docker-entrypoint.sh +0 -7
- package/dockerfile +0 -27
- package/index.html +0 -13
- package/public/lobb.svg +0 -15
- package/src/app.css +0 -121
- package/src/components-export.ts +0 -21
- package/src/extensions/extension.types.ts +0 -93
- package/src/extensions/extensionUtils.ts +0 -192
- package/src/lib/Lobb.ts +0 -241
- package/src/lib/eventSystem.ts +0 -38
- package/src/lib/index.ts +0 -40
- package/src/lib/store.svelte.ts +0 -21
- package/src/lib/store.types.ts +0 -28
- package/src/lib/utils.ts +0 -84
- package/src/main.ts +0 -18
- package/src/routes/collections/collection.svelte +0 -46
- package/src/routes/collections/collections.svelte +0 -43
- package/src/routes/data_model/dataModel.svelte +0 -40
- package/src/routes/data_model/flow.css +0 -22
- package/src/routes/data_model/flow.svelte +0 -82
- package/src/routes/data_model/syncManager.svelte +0 -93
- package/src/routes/data_model/utils.ts +0 -35
- package/src/routes/extensions/extension.svelte +0 -16
- package/src/routes/home.svelte +0 -36
- package/src/routes/workflows/workflows.svelte +0 -135
- package/src/stories/Configure.mdx +0 -364
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +0 -1
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +0 -1
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +0 -1
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +0 -1
- package/src/stories/assets/youtube.svg +0 -1
- package/src/stories/detailView/detailViewForm.stories.svelte +0 -79
- package/src/stories/examples/Button.stories.svelte +0 -31
- package/src/stories/examples/Button.svelte +0 -30
- package/src/stories/examples/Header.stories.svelte +0 -26
- package/src/stories/examples/Header.svelte +0 -45
- package/src/stories/examples/Page.stories.svelte +0 -29
- package/src/stories/examples/Page.svelte +0 -70
- package/src/stories/examples/button.css +0 -30
- package/src/stories/examples/header.css +0 -32
- package/src/stories/examples/page.css +0 -68
- package/src/vite-env.d.ts +0 -2
- package/svelte.config.js +0 -7
- package/todo.md +0 -24
- package/tsconfig.app.json +0 -25
- package/tsconfig.json +0 -14
- package/tsconfig.node.json +0 -24
- package/vite.build.svelte.config.ts +0 -18
- package/vite.config.ts +0 -84
- package/vite.extension.config.ts +0 -81
- package/vite_utils.ts +0 -28
- package/vitest.shims.d.ts +0 -1
package/package.json
CHANGED
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobb-js/studio",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.33",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
+
"files": [
|
|
9
|
+
"src/lib/components",
|
|
10
|
+
"vite-plugins"
|
|
11
|
+
],
|
|
8
12
|
"exports": {
|
|
9
|
-
".": "./src/Studio.svelte",
|
|
10
|
-
"
|
|
13
|
+
".": "./src/lib/components/Studio.svelte",
|
|
14
|
+
"./*": "./src/lib/components/*",
|
|
15
|
+
"./vite-plugins": "./vite-plugins/index.js",
|
|
11
16
|
"./components": "./src/components-export.ts"
|
|
12
17
|
},
|
|
13
18
|
"scripts": {
|
|
14
19
|
"dev": "vite",
|
|
15
20
|
"build": "rm -rf dist && vite build --config vite.build.svelte.config.ts && vite build",
|
|
21
|
+
"package": "svelte-package --input src/lib/components",
|
|
16
22
|
"preview": "vite preview",
|
|
17
23
|
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json",
|
|
18
24
|
"build_extension": "vite build --config vite.extension.config.ts",
|
|
@@ -23,12 +29,12 @@
|
|
|
23
29
|
},
|
|
24
30
|
"devDependencies": {
|
|
25
31
|
"@chromatic-com/storybook": "^4.1.2",
|
|
26
|
-
"@lucide/svelte": "^0.563.1",
|
|
27
32
|
"@storybook/addon-a11y": "^10.0.1",
|
|
28
33
|
"@storybook/addon-docs": "^10.0.1",
|
|
29
34
|
"@storybook/addon-svelte-csf": "^5.0.10",
|
|
30
35
|
"@storybook/addon-vitest": "^10.0.1",
|
|
31
36
|
"@storybook/svelte-vite": "^10.0.1",
|
|
37
|
+
"@sveltejs/package": "^2.5.7",
|
|
32
38
|
"@sveltejs/vite-plugin-svelte": "6.2.1",
|
|
33
39
|
"@tsconfig/svelte": "^5.0.4",
|
|
34
40
|
"@types/lodash": "^4.17.17",
|
|
@@ -39,22 +45,14 @@
|
|
|
39
45
|
"@vitest/browser-playwright": "^4.0.5",
|
|
40
46
|
"@vitest/coverage-v8": "^4.0.5",
|
|
41
47
|
"autoprefixer": "^10.4.20",
|
|
42
|
-
"bits-ui": "^1.6.0",
|
|
43
48
|
"browser-fs-access": "^0.35.0",
|
|
44
|
-
"clsx": "^2.1.1",
|
|
45
49
|
"dts-bundle-generator": "^9.5.1",
|
|
46
|
-
"lucide-svelte": "^0.488.0",
|
|
47
|
-
"mode-watcher": "^0.5.1",
|
|
48
|
-
"monaco-editor": "^0.52.2",
|
|
49
50
|
"playwright": "^1.56.1",
|
|
50
|
-
"qs": "^6.14.
|
|
51
|
+
"qs": "^6.14.1",
|
|
51
52
|
"sortablejs": "^1.15.6",
|
|
52
53
|
"storybook": "^10.0.1",
|
|
53
54
|
"svelte": "5.39.8",
|
|
54
55
|
"svelte-check": "^4.1.4",
|
|
55
|
-
"svelte-sonner": "^0.3.28",
|
|
56
|
-
"tailwind-merge": "^3.4.0",
|
|
57
|
-
"tailwind-variants": "^3.2.2",
|
|
58
56
|
"tailwindcss": "^4.1.18",
|
|
59
57
|
"tailwindcss-animate": "^1.0.7",
|
|
60
58
|
"tw-animate-css": "^1.4.0",
|
|
@@ -63,15 +61,27 @@
|
|
|
63
61
|
"vite-plugin-css-injected-by-js": "^3.5.2",
|
|
64
62
|
"vitest": "^4.0.5"
|
|
65
63
|
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"svelte": "^5.0.0"
|
|
66
|
+
},
|
|
66
67
|
"dependencies": {
|
|
67
68
|
"@andrewbranch/untar.js": "^1.0.3",
|
|
68
69
|
"@dagrejs/dagre": "^1.1.5",
|
|
70
|
+
"@lucide/svelte": "^0.563.1",
|
|
69
71
|
"@tailwindcss/vite": "^4.1.18",
|
|
70
72
|
"@wjfe/n-savant": "^0.3.0",
|
|
71
73
|
"@xyflow/svelte": "^1.2.0",
|
|
74
|
+
"bits-ui": "^1.8.0",
|
|
75
|
+
"clsx": "^2.1.1",
|
|
72
76
|
"fflate": "^0.8.2",
|
|
73
77
|
"json-stable-stringify": "^1.3.0",
|
|
74
78
|
"lodash": "^4.17.21",
|
|
75
|
-
"
|
|
79
|
+
"lucide-svelte": "^0.488.0",
|
|
80
|
+
"mode-watcher": "^0.5.1",
|
|
81
|
+
"monaco-editor": "^0.52.2",
|
|
82
|
+
"mustache": "^4.2.0",
|
|
83
|
+
"svelte-sonner": "^0.3.28",
|
|
84
|
+
"tailwind-merge": "^3.4.0",
|
|
85
|
+
"tailwind-variants": "^3.2.2"
|
|
76
86
|
}
|
|
77
87
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { Toaster } from "
|
|
2
|
+
import { Toaster } from "$lib/components/ui/sonner";
|
|
3
3
|
import { onMount, onDestroy } from "svelte";
|
|
4
4
|
import { ModeWatcher } from "mode-watcher";
|
|
5
5
|
import { ctx } from "$lib/store.svelte";
|
|
6
|
-
import { lobb } from "$lib
|
|
6
|
+
import { lobb } from "$lib";
|
|
7
7
|
import Header from "$lib/components/header.svelte";
|
|
8
8
|
import { LoaderCircle, ServerOff } from "lucide-svelte";
|
|
9
9
|
import Dialog from "$lib/components/confirmationDialog/confirmationDialog.svelte";
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
import {
|
|
15
15
|
executeExtensionsOnStartup,
|
|
16
16
|
loadExtensions,
|
|
17
|
-
} from "
|
|
17
|
+
} from "$lib/extensions/extensionUtils";
|
|
18
18
|
import { mediaQueries } from "$lib/utils";
|
|
19
|
-
import Home from "
|
|
20
|
-
import DataModel from "
|
|
21
|
-
import Collections from "
|
|
22
|
-
import Workflows from "
|
|
23
|
-
import Extension from "
|
|
19
|
+
import Home from "../../routes/home.svelte";
|
|
20
|
+
import DataModel from "../../routes/data_model/dataModel.svelte";
|
|
21
|
+
import Collections from "../../routes/collections/collections.svelte";
|
|
22
|
+
import Workflows from "../../routes/workflows/workflows.svelte";
|
|
23
|
+
import Extension from "../../routes/extensions/extension.svelte";
|
|
24
24
|
|
|
25
25
|
interface StudioProps {
|
|
26
26
|
extensions?: any[];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import DataTable from "./dataTable.svelte";
|
|
5
5
|
import CreateDetailViewButton from "../detailView/create/createDetailViewButton.svelte";
|
|
6
6
|
import ExtensionsComponents from "../extensionsComponents.svelte";
|
|
7
|
-
import { getExtensionUtils } from "
|
|
7
|
+
import { getExtensionUtils } from "$lib/extensions/extensionUtils";
|
|
8
8
|
|
|
9
9
|
interface Props {
|
|
10
10
|
collectionName: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Link } from "lucide-svelte";
|
|
4
4
|
import CreateManyView from "./createManyView.svelte";
|
|
5
5
|
import ExtensionsComponents from "$lib/components/extensionsComponents.svelte";
|
|
6
|
-
import { getExtensionUtils } from "
|
|
6
|
+
import { getExtensionUtils } from "$lib/extensions/extensionUtils";
|
|
7
7
|
|
|
8
8
|
interface LocalProp {
|
|
9
9
|
collectionName: string;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
import { toast } from "svelte-sonner";
|
|
24
24
|
import { ctx } from "$lib/store.svelte";
|
|
25
25
|
import ExtensionsComponents from "../../extensionsComponents.svelte";
|
|
26
|
-
import { getExtensionUtils } from "
|
|
26
|
+
import { getExtensionUtils } from "$lib/extensions/extensionUtils";
|
|
27
27
|
import { getField, getFieldIcon } from "../../dataTable/utils";
|
|
28
28
|
import Children from "./children.svelte";
|
|
29
29
|
import {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import Textarea from "../ui/textarea/textarea.svelte";
|
|
15
15
|
import ForeingKeyInput from "../foreingKeyInput.svelte";
|
|
16
16
|
import ExtensionsComponents from "../extensionsComponents.svelte";
|
|
17
|
-
import { getExtensionUtils } from "
|
|
17
|
+
import { getExtensionUtils } from "$lib/extensions/extensionUtils";
|
|
18
18
|
|
|
19
19
|
interface Props {
|
|
20
20
|
collectionName: string;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Link, Plus, TableIcon } from "lucide-svelte";
|
|
5
5
|
import CreateDetailViewButton from "../create/createDetailViewButton.svelte";
|
|
6
6
|
import ExtensionsComponents from "$lib/components/extensionsComponents.svelte";
|
|
7
|
-
import { getExtensionUtils } from "
|
|
7
|
+
import { getExtensionUtils } from "$lib/extensions/extensionUtils";
|
|
8
8
|
|
|
9
9
|
interface LocalProp {
|
|
10
10
|
collectionName: string;
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import { toast } from "svelte-sonner";
|
|
26
26
|
import { ctx } from "$lib/store.svelte";
|
|
27
27
|
import ExtensionsComponents from "../../extensionsComponents.svelte";
|
|
28
|
-
import { getExtensionUtils } from "
|
|
28
|
+
import { getExtensionUtils } from "$lib/extensions/extensionUtils";
|
|
29
29
|
import { calculateDrawerWidth, getChangedProperties } from "$lib/utils";
|
|
30
30
|
import { getField, getFieldIcon } from "../../dataTable/utils";
|
|
31
31
|
import Children from "../update/children.svelte";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { Snippet } from "svelte";
|
|
3
|
-
import { loadExtensionComponents } from "
|
|
3
|
+
import { loadExtensionComponents } from "$lib/extensions/extensionUtils";
|
|
4
4
|
|
|
5
5
|
interface Props {
|
|
6
6
|
name: string;
|
|
@@ -28,4 +28,3 @@
|
|
|
28
28
|
{:else}
|
|
29
29
|
{@render children?.()}
|
|
30
30
|
{/if}
|
|
31
|
-
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import * as Accordion from "$lib/components/ui/accordion/index.js";
|
|
19
19
|
|
|
20
20
|
import { ctx } from "$lib/store.svelte";
|
|
21
|
-
import { getDashboardNavs } from "
|
|
21
|
+
import { getDashboardNavs } from "$lib/extensions/extensionUtils";
|
|
22
22
|
import { mediaQueries } from "$lib/utils";
|
|
23
23
|
import * as Popover from "./ui/popover";
|
|
24
24
|
import { location } from "@wjfe/n-savant";
|
|
@@ -14,14 +14,12 @@ const __dirname = path.dirname(__filename);
|
|
|
14
14
|
* This allows shadcn components to work in both the Studio package and consuming projects
|
|
15
15
|
* without conflicts.
|
|
16
16
|
*
|
|
17
|
-
* @param {Object} options - Plugin options
|
|
18
|
-
* @param {string} [options.studioLibPath] - The path to the studio's src/lib directory (used for external imports)
|
|
19
17
|
* @returns {import('vite').Plugin}
|
|
20
18
|
*/
|
|
21
|
-
export function contextualLibAlias(
|
|
19
|
+
export function contextualLibAlias() {
|
|
22
20
|
let projectRoot;
|
|
23
21
|
let localLibPath;
|
|
24
|
-
|
|
22
|
+
const studioLibPath = path.resolve(__dirname, "../src/lib");
|
|
25
23
|
|
|
26
24
|
return {
|
|
27
25
|
name: "contextual-lib-alias",
|
|
@@ -30,9 +28,6 @@ export function contextualLibAlias(options = {}) {
|
|
|
30
28
|
configResolved(config) {
|
|
31
29
|
projectRoot = config.root;
|
|
32
30
|
localLibPath = path.resolve(projectRoot, "./src/lib");
|
|
33
|
-
|
|
34
|
-
// Use provided studioLibPath or default to this package's src/lib
|
|
35
|
-
studioLibPath = options.studioLibPath || path.resolve(__dirname, "./src/lib");
|
|
36
31
|
},
|
|
37
32
|
|
|
38
33
|
async resolveId(source, importer, options) {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { contextualLibAlias } from "./contextual-lib-alias.js";
|
|
2
|
+
import { studioSourceResolver } from "./studio-source-resolver.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns an array of Vite plugins needed for Lobb Studio integration.
|
|
6
|
+
*
|
|
7
|
+
* Includes:
|
|
8
|
+
* - contextualLibAlias: Resolves $lib imports contextually
|
|
9
|
+
* - studioSourceResolver: Resolves @lobb-js/studio to source (monorepo) or dist (standalone)
|
|
10
|
+
*
|
|
11
|
+
* @returns {import('vite').Plugin[]}
|
|
12
|
+
*/
|
|
13
|
+
export function lobbStudioPlugins() {
|
|
14
|
+
return [
|
|
15
|
+
studioSourceResolver(),
|
|
16
|
+
contextualLibAlias(),
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Also export individual plugins for advanced usage
|
|
21
|
+
export { contextualLibAlias, studioSourceResolver };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Vite plugin that resolves @lobb-js/studio imports contextually.
|
|
10
|
+
*
|
|
11
|
+
* - Inside monorepo: Resolve to source files (./src/Studio.svelte) for HMR
|
|
12
|
+
* - Outside monorepo (from node_modules): Resolve to built files (./dist/studio.js)
|
|
13
|
+
*
|
|
14
|
+
* This allows lobb-skeleton to work identically both inside and outside the monorepo
|
|
15
|
+
* without any code changes.
|
|
16
|
+
*
|
|
17
|
+
* @returns {import('vite').Plugin}
|
|
18
|
+
*/
|
|
19
|
+
export function studioSourceResolver() {
|
|
20
|
+
const studioSourcePath = path.resolve(__dirname, "../src/lib/Studio.svelte");
|
|
21
|
+
const studioPackagePath = path.resolve(__dirname, "..");
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
name: "studio-source-resolver",
|
|
25
|
+
enforce: "pre",
|
|
26
|
+
|
|
27
|
+
async resolveId(source, importer, options) {
|
|
28
|
+
// Only handle @lobb-js/studio main import
|
|
29
|
+
if (source !== "@lobb-js/studio") return null;
|
|
30
|
+
|
|
31
|
+
// Check if we're in a monorepo context by looking for the source file
|
|
32
|
+
if (fs.existsSync(studioSourcePath)) {
|
|
33
|
+
// We're in monorepo - resolve to source for HMR
|
|
34
|
+
return this.resolve(studioSourcePath, importer, { skipSelf: true, ...options });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Not in monorepo - let default resolution handle it (will use dist/ from node_modules)
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
package/.env.example
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
LOBB_URL=http://localhost:3000
|
package/.storybook/main.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { StorybookConfig } from '@storybook/svelte-vite';
|
|
2
|
-
|
|
3
|
-
import { dirname } from "path"
|
|
4
|
-
|
|
5
|
-
import { fileURLToPath } from "url"
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* This function is used to resolve the absolute path of a package.
|
|
9
|
-
* It is needed in projects that use Yarn PnP or are set up within a monorepo.
|
|
10
|
-
*/
|
|
11
|
-
function getAbsolutePath(value: string): any {
|
|
12
|
-
return dirname(fileURLToPath(import.meta.resolve(`${value}/package.json`)))
|
|
13
|
-
}
|
|
14
|
-
const config: StorybookConfig = {
|
|
15
|
-
"stories": [
|
|
16
|
-
"../src/**/*.mdx",
|
|
17
|
-
"../src/**/*.stories.@(js|ts|svelte)"
|
|
18
|
-
],
|
|
19
|
-
"addons": [
|
|
20
|
-
getAbsolutePath('@storybook/addon-svelte-csf'),
|
|
21
|
-
getAbsolutePath('@chromatic-com/storybook'),
|
|
22
|
-
getAbsolutePath('@storybook/addon-docs'),
|
|
23
|
-
getAbsolutePath("@storybook/addon-a11y"),
|
|
24
|
-
getAbsolutePath("@storybook/addon-vitest")
|
|
25
|
-
],
|
|
26
|
-
"framework": {
|
|
27
|
-
"name": getAbsolutePath('@storybook/svelte-vite'),
|
|
28
|
-
"options": {}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
export default config;
|
package/.storybook/preview.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Preview } from '@storybook/svelte-vite'
|
|
2
|
-
|
|
3
|
-
const preview: Preview = {
|
|
4
|
-
parameters: {
|
|
5
|
-
controls: {
|
|
6
|
-
matchers: {
|
|
7
|
-
color: /(background|color)$/i,
|
|
8
|
-
date: /Date$/i,
|
|
9
|
-
},
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
a11y: {
|
|
13
|
-
// 'todo' - show a11y violations in the test UI only
|
|
14
|
-
// 'error' - fail CI on a11y violations
|
|
15
|
-
// 'off' - skip a11y checks entirely
|
|
16
|
-
test: 'todo'
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export default preview;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as a11yAddonAnnotations from "@storybook/addon-a11y/preview";
|
|
2
|
-
import { setProjectAnnotations } from '@storybook/svelte-vite';
|
|
3
|
-
import * as projectAnnotations from './preview';
|
|
4
|
-
|
|
5
|
-
// This is an important step to apply the right configuration when testing your stories.
|
|
6
|
-
// More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
|
|
7
|
-
setProjectAnnotations([a11yAddonAnnotations, projectAnnotations]);
|
package/components.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
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/docker-entrypoint.sh
DELETED
package/dockerfile
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Stage 1: Build
|
|
2
|
-
FROM node:22-alpine AS builder
|
|
3
|
-
|
|
4
|
-
WORKDIR /app
|
|
5
|
-
|
|
6
|
-
COPY package*.json ./
|
|
7
|
-
RUN npm install
|
|
8
|
-
|
|
9
|
-
COPY . .
|
|
10
|
-
RUN npm run build
|
|
11
|
-
|
|
12
|
-
# Stage 2: Runtime
|
|
13
|
-
FROM node:22-alpine
|
|
14
|
-
|
|
15
|
-
WORKDIR /app
|
|
16
|
-
|
|
17
|
-
RUN npm install -g sirv-cli
|
|
18
|
-
|
|
19
|
-
# Copy only built output
|
|
20
|
-
COPY --from=builder /app/dist ./dist
|
|
21
|
-
|
|
22
|
-
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
|
23
|
-
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
24
|
-
|
|
25
|
-
EXPOSE 3000
|
|
26
|
-
|
|
27
|
-
ENTRYPOINT ["sh", "/usr/local/bin/docker-entrypoint.sh"]
|
package/index.html
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/svg+xml" href="/lobb.svg" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>Lobb Studio</title>
|
|
8
|
-
</head>
|
|
9
|
-
<body>
|
|
10
|
-
<div id="app"></div>
|
|
11
|
-
<script type="module" src="/src/main.ts"></script>
|
|
12
|
-
</body>
|
|
13
|
-
</html>
|
package/public/lobb.svg
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<g clip-path="url(#clip0_2801_3)">
|
|
3
|
-
<mask id="path-1-outside-1_2801_3" maskUnits="userSpaceOnUse" x="7" y="1" width="20" height="28" fill="black">
|
|
4
|
-
<rect fill="white" x="7" y="1" width="20" height="28"/>
|
|
5
|
-
<path d="M25.1389 23.874L24.416 28H11.8439L12.5669 23.874H25.1389ZM17.9977 2.32685L13.5367 28H8.37029L12.8137 2.32685H17.9977Z"/>
|
|
6
|
-
</mask>
|
|
7
|
-
<path d="M25.1389 23.874L24.416 28H11.8439L12.5669 23.874H25.1389ZM17.9977 2.32685L13.5367 28H8.37029L12.8137 2.32685H17.9977Z" fill="black"/>
|
|
8
|
-
<path d="M25.1389 23.874L26.1239 24.0465L26.3294 22.874H25.1389V23.874ZM24.416 28V29H25.256L25.401 28.1726L24.416 28ZM11.8439 28L10.8589 27.8274L10.6535 29H11.8439V28ZM12.5669 23.874V22.874H11.7268L11.5819 23.7014L12.5669 23.874ZM17.9977 2.32685L18.983 2.49805L19.1865 1.32685H17.9977V2.32685ZM13.5367 28V29H14.3779L14.5219 28.1712L13.5367 28ZM8.37029 28L7.38494 27.8295L7.18234 29H8.37029V28ZM12.8137 2.32685V1.32685H11.9719L11.8284 2.15631L12.8137 2.32685ZM24.1539 23.7014L23.431 27.8274L25.401 28.1726L26.1239 24.0465L24.1539 23.7014ZM24.416 27H11.8439V29H24.416V27ZM12.8289 28.1726L13.5519 24.0465L11.5819 23.7014L10.8589 27.8274L12.8289 28.1726ZM12.5669 24.874H25.1389V22.874H12.5669V24.874ZM17.0125 2.15565L12.5514 27.8288L14.5219 28.1712L18.983 2.49805L17.0125 2.15565ZM13.5367 27H8.37029V29H13.5367V27ZM9.35564 28.1705L13.7991 2.49739L11.8284 2.15631L7.38494 27.8295L9.35564 28.1705ZM12.8137 3.32685H17.9977V1.32685H12.8137V3.32685Z" fill="white" mask="url(#path-1-outside-1_2801_3)"/>
|
|
9
|
-
</g>
|
|
10
|
-
<defs>
|
|
11
|
-
<clipPath id="clip0_2801_3">
|
|
12
|
-
<rect width="32" height="32" fill="white"/>
|
|
13
|
-
</clipPath>
|
|
14
|
-
</defs>
|
|
15
|
-
</svg>
|
package/src/app.css
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
|
|
3
|
-
@import "tw-animate-css";
|
|
4
|
-
|
|
5
|
-
@custom-variant dark (&:is(.dark *));
|
|
6
|
-
|
|
7
|
-
:root {
|
|
8
|
-
--radius: 0.625rem;
|
|
9
|
-
--background: oklch(1 0 0);
|
|
10
|
-
--foreground: oklch(0.129 0.042 264.695);
|
|
11
|
-
--card: oklch(1 0 0);
|
|
12
|
-
--card-foreground: oklch(0.129 0.042 264.695);
|
|
13
|
-
--popover: oklch(1 0 0);
|
|
14
|
-
--popover-foreground: oklch(0.129 0.042 264.695);
|
|
15
|
-
--primary: oklch(0.208 0.042 265.755);
|
|
16
|
-
--primary-foreground: oklch(0.984 0.003 247.858);
|
|
17
|
-
--secondary: oklch(0.968 0.007 247.896);
|
|
18
|
-
--secondary-foreground: oklch(0.208 0.042 265.755);
|
|
19
|
-
--muted: oklch(0.968 0.007 247.896);
|
|
20
|
-
--muted-foreground: oklch(0.554 0.046 257.417);
|
|
21
|
-
--accent: oklch(0.968 0.007 247.896);
|
|
22
|
-
--accent-foreground: oklch(0.208 0.042 265.755);
|
|
23
|
-
--destructive: oklch(0.577 0.245 27.325);
|
|
24
|
-
--border: oklch(0.929 0.013 255.508);
|
|
25
|
-
--input: oklch(0.929 0.013 255.508);
|
|
26
|
-
--ring: oklch(0.704 0.04 256.788);
|
|
27
|
-
--chart-1: oklch(0.646 0.222 41.116);
|
|
28
|
-
--chart-2: oklch(0.6 0.118 184.704);
|
|
29
|
-
--chart-3: oklch(0.398 0.07 227.392);
|
|
30
|
-
--chart-4: oklch(0.828 0.189 84.429);
|
|
31
|
-
--chart-5: oklch(0.769 0.188 70.08);
|
|
32
|
-
--sidebar: oklch(0.984 0.003 247.858);
|
|
33
|
-
--sidebar-foreground: oklch(0.129 0.042 264.695);
|
|
34
|
-
--sidebar-primary: oklch(0.208 0.042 265.755);
|
|
35
|
-
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
36
|
-
--sidebar-accent: oklch(0.968 0.007 247.896);
|
|
37
|
-
--sidebar-accent-foreground: oklch(0.208 0.042 265.755);
|
|
38
|
-
--sidebar-border: oklch(0.929 0.013 255.508);
|
|
39
|
-
--sidebar-ring: oklch(0.704 0.04 256.788);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.dark {
|
|
43
|
-
--background: oklch(0.129 0.042 264.695);
|
|
44
|
-
--foreground: oklch(0.984 0.003 247.858);
|
|
45
|
-
--card: oklch(0.208 0.042 265.755);
|
|
46
|
-
--card-foreground: oklch(0.984 0.003 247.858);
|
|
47
|
-
--popover: oklch(0.208 0.042 265.755);
|
|
48
|
-
--popover-foreground: oklch(0.984 0.003 247.858);
|
|
49
|
-
--primary: oklch(0.929 0.013 255.508);
|
|
50
|
-
--primary-foreground: oklch(0.208 0.042 265.755);
|
|
51
|
-
--secondary: oklch(0.279 0.041 260.031);
|
|
52
|
-
--secondary-foreground: oklch(0.984 0.003 247.858);
|
|
53
|
-
--muted: oklch(0.279 0.041 260.031);
|
|
54
|
-
--muted-foreground: oklch(0.704 0.04 256.788);
|
|
55
|
-
--accent: oklch(0.279 0.041 260.031);
|
|
56
|
-
--accent-foreground: oklch(0.984 0.003 247.858);
|
|
57
|
-
--destructive: oklch(0.704 0.191 22.216);
|
|
58
|
-
--border: oklch(1 0 0 / 10%);
|
|
59
|
-
--input: oklch(1 0 0 / 15%);
|
|
60
|
-
--ring: oklch(0.551 0.027 264.364);
|
|
61
|
-
--chart-1: oklch(0.488 0.243 264.376);
|
|
62
|
-
--chart-2: oklch(0.696 0.17 162.48);
|
|
63
|
-
--chart-3: oklch(0.769 0.188 70.08);
|
|
64
|
-
--chart-4: oklch(0.627 0.265 303.9);
|
|
65
|
-
--chart-5: oklch(0.645 0.246 16.439);
|
|
66
|
-
--sidebar: oklch(0.208 0.042 265.755);
|
|
67
|
-
--sidebar-foreground: oklch(0.984 0.003 247.858);
|
|
68
|
-
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
69
|
-
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
|
|
70
|
-
--sidebar-accent: oklch(0.279 0.041 260.031);
|
|
71
|
-
--sidebar-accent-foreground: oklch(0.984 0.003 247.858);
|
|
72
|
-
--sidebar-border: oklch(1 0 0 / 10%);
|
|
73
|
-
--sidebar-ring: oklch(0.551 0.027 264.364);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
@theme inline {
|
|
77
|
-
--radius-sm: calc(var(--radius) - 4px);
|
|
78
|
-
--radius-md: calc(var(--radius) - 2px);
|
|
79
|
-
--radius-lg: var(--radius);
|
|
80
|
-
--radius-xl: calc(var(--radius) + 4px);
|
|
81
|
-
--color-background: var(--background);
|
|
82
|
-
--color-foreground: var(--foreground);
|
|
83
|
-
--color-card: var(--card);
|
|
84
|
-
--color-card-foreground: var(--card-foreground);
|
|
85
|
-
--color-popover: var(--popover);
|
|
86
|
-
--color-popover-foreground: var(--popover-foreground);
|
|
87
|
-
--color-primary: var(--primary);
|
|
88
|
-
--color-primary-foreground: var(--primary-foreground);
|
|
89
|
-
--color-secondary: var(--secondary);
|
|
90
|
-
--color-secondary-foreground: var(--secondary-foreground);
|
|
91
|
-
--color-muted: var(--muted);
|
|
92
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
93
|
-
--color-accent: var(--accent);
|
|
94
|
-
--color-accent-foreground: var(--accent-foreground);
|
|
95
|
-
--color-destructive: var(--destructive);
|
|
96
|
-
--color-border: var(--border);
|
|
97
|
-
--color-input: var(--input);
|
|
98
|
-
--color-ring: var(--ring);
|
|
99
|
-
--color-chart-1: var(--chart-1);
|
|
100
|
-
--color-chart-2: var(--chart-2);
|
|
101
|
-
--color-chart-3: var(--chart-3);
|
|
102
|
-
--color-chart-4: var(--chart-4);
|
|
103
|
-
--color-chart-5: var(--chart-5);
|
|
104
|
-
--color-sidebar: var(--sidebar);
|
|
105
|
-
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
106
|
-
--color-sidebar-primary: var(--sidebar-primary);
|
|
107
|
-
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
108
|
-
--color-sidebar-accent: var(--sidebar-accent);
|
|
109
|
-
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
110
|
-
--color-sidebar-border: var(--sidebar-border);
|
|
111
|
-
--color-sidebar-ring: var(--sidebar-ring);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
@layer base {
|
|
115
|
-
* {
|
|
116
|
-
@apply border-border outline-ring/50;
|
|
117
|
-
}
|
|
118
|
-
body {
|
|
119
|
-
@apply bg-background text-foreground;
|
|
120
|
-
}
|
|
121
|
-
}
|
package/src/components-export.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// Re-export all Studio components for use in extensions and consuming apps
|
|
2
|
-
export { Button } from "$lib/components/ui/button";
|
|
3
|
-
export { Input } from "$lib/components/ui/input";
|
|
4
|
-
export { Separator } from "$lib/components/ui/separator";
|
|
5
|
-
export { Skeleton } from "$lib/components/ui/skeleton";
|
|
6
|
-
export { default as LlmButton } from "$lib/components/LlmButton.svelte";
|
|
7
|
-
export { default as Sidebar } from "$lib/components/sidebar/sidebar.svelte";
|
|
8
|
-
export { default as SidebarTrigger } from "$lib/components/sidebar/sidebarTrigger.svelte";
|
|
9
|
-
export { default as CreateDetailViewButton } from "$lib/components/detailView/create/createDetailViewButton.svelte";
|
|
10
|
-
export { default as UpdateDetailViewButton } from "$lib/components/detailView/update/updateDetailViewButton.svelte";
|
|
11
|
-
export * as Tooltip from "$lib/components/ui/tooltip";
|
|
12
|
-
export * as Breadcrumb from "$lib/components/ui/breadcrumb";
|
|
13
|
-
export { ContextMenu } from "bits-ui";
|
|
14
|
-
export * as Popover from "$lib/components/ui/popover";
|
|
15
|
-
export * as Icons from "lucide-svelte";
|
|
16
|
-
export { default as Table } from "$lib/components/dataTable/table.svelte";
|
|
17
|
-
export { default as RangeCalendarButton } from "$lib/components/rangeCalendarButton.svelte";
|
|
18
|
-
export { default as DataTable } from "$lib/components/dataTable/dataTable.svelte";
|
|
19
|
-
export { default as Drawer } from "$lib/components/drawer.svelte";
|
|
20
|
-
export { default as SelectRecord } from "$lib/components/selectRecord.svelte";
|
|
21
|
-
export { Switch } from "$lib/components/ui/switch";
|