From 06f26b10d510d7f9db545eb2bd562b30f017280c Mon Sep 17 00:00:00 2001
From: Joery <44531907+Joery-M@users.noreply.github.com>
Date: Sun, 7 Apr 2024 16:40:56 +0200
Subject: [PATCH] Made basic layout for editor Removed controllers from
safelight Fixed exports
---
.../src/components/Editor/Library/Library.vue | 42 +++++-
.../src/components/Editor/Monitor.vue | 62 ---------
.../src/components/Editor/Monitor/Monitor.vue | 7 +
.../Editor/Properties/ItemProperties.vue | 5 +
.../components/Editor/Timeline/Timeline.vue | 68 ++++++++++
.../Compiler/EsbuildScriptCompiler.ts | 95 --------------
.../src/controllers/Decoder/AVdecoder.ts | 0
.../safelight/src/controllers/Media/Media.ts | 32 -----
.../src/controllers/Project/SimpleProject.ts | 21 ---
.../src/controllers/Storage/IndexDbStorage.ts | 16 ---
.../Storage/MediaStorage/IdbMediaManager.ts | 121 ------------------
.../safelight/src/controllers/Storage/db.ts | 53 --------
.../controllers/Timeline/SimpleTimeline.ts | 39 ------
.../TimelineItem/AVTimelineItem.ts | 14 --
.../safelight/src/controllers/base/Project.ts | 20 ---
.../src/controllers/base/Renderer.ts | 0
.../safelight/src/controllers/base/Storage.ts | 16 ---
.../src/controllers/base/Timeline.ts | 17 ---
.../src/controllers/base/TimelineItem.ts | 24 ----
packages/safelight/src/style.scss | 1 +
.../safelight/src/views/Editor/Editor.vue | 86 ++++++-------
packages/shared/package.json | 4 +-
packages/shared/src/base/Project.ts | 2 +-
packages/timeline/package.json | 11 +-
packages/timeline/src/Timeline.vue | 1 -
pnpm-lock.yaml | 32 +++--
26 files changed, 182 insertions(+), 607 deletions(-)
delete mode 100644 packages/safelight/src/components/Editor/Monitor.vue
create mode 100644 packages/safelight/src/components/Editor/Monitor/Monitor.vue
create mode 100644 packages/safelight/src/components/Editor/Properties/ItemProperties.vue
create mode 100644 packages/safelight/src/components/Editor/Timeline/Timeline.vue
delete mode 100644 packages/safelight/src/controllers/Compiler/EsbuildScriptCompiler.ts
delete mode 100644 packages/safelight/src/controllers/Decoder/AVdecoder.ts
delete mode 100644 packages/safelight/src/controllers/Media/Media.ts
delete mode 100644 packages/safelight/src/controllers/Project/SimpleProject.ts
delete mode 100644 packages/safelight/src/controllers/Storage/IndexDbStorage.ts
delete mode 100644 packages/safelight/src/controllers/Storage/MediaStorage/IdbMediaManager.ts
delete mode 100644 packages/safelight/src/controllers/Storage/db.ts
delete mode 100644 packages/safelight/src/controllers/Timeline/SimpleTimeline.ts
delete mode 100644 packages/safelight/src/controllers/TimelineItem/AVTimelineItem.ts
delete mode 100644 packages/safelight/src/controllers/base/Project.ts
delete mode 100644 packages/safelight/src/controllers/base/Renderer.ts
delete mode 100644 packages/safelight/src/controllers/base/Storage.ts
delete mode 100644 packages/safelight/src/controllers/base/Timeline.ts
delete mode 100644 packages/safelight/src/controllers/base/TimelineItem.ts
diff --git a/packages/safelight/src/components/Editor/Library/Library.vue b/packages/safelight/src/components/Editor/Library/Library.vue
index dff947e1..5220bcb2 100644
--- a/packages/safelight/src/components/Editor/Library/Library.vue
+++ b/packages/safelight/src/components/Editor/Library/Library.vue
@@ -79,9 +79,11 @@
diff --git a/packages/safelight/src/components/Editor/Monitor/Monitor.vue b/packages/safelight/src/components/Editor/Monitor/Monitor.vue
new file mode 100644
index 00000000..59bb9432
--- /dev/null
+++ b/packages/safelight/src/components/Editor/Monitor/Monitor.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/packages/safelight/src/components/Editor/Properties/ItemProperties.vue b/packages/safelight/src/components/Editor/Properties/ItemProperties.vue
new file mode 100644
index 00000000..c5769be3
--- /dev/null
+++ b/packages/safelight/src/components/Editor/Properties/ItemProperties.vue
@@ -0,0 +1,5 @@
+
+
+
diff --git a/packages/safelight/src/components/Editor/Timeline/Timeline.vue b/packages/safelight/src/components/Editor/Timeline/Timeline.vue
new file mode 100644
index 00000000..04e66b58
--- /dev/null
+++ b/packages/safelight/src/components/Editor/Timeline/Timeline.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/packages/safelight/src/controllers/Compiler/EsbuildScriptCompiler.ts b/packages/safelight/src/controllers/Compiler/EsbuildScriptCompiler.ts
deleted file mode 100644
index 91f031de..00000000
--- a/packages/safelight/src/controllers/Compiler/EsbuildScriptCompiler.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import * as esbuild from 'esbuild-wasm';
-import esbuildWasmUrl from 'esbuild-wasm/esbuild.wasm?url';
-import Path from 'path-browserify';
-
-// https://github.com/evanw/esbuild/issues/1952#issuecomment-1020006960
-function customResolver(tree: Record): esbuild.Plugin {
- const map = new Map(Object.entries(tree));
-
- return {
- name: 'inmemory-plugin-file-resolver',
-
- setup: (build: esbuild.PluginBuild) => {
- build.onResolve({ filter: /.*/ }, (args: esbuild.OnResolveArgs) => {
- if (args.kind === 'entry-point') {
- return { path: '/' + args.path };
- }
-
- if (args.kind === 'import-statement') {
- const dirname = Path.dirname(args.importer);
-
- const path = Path.join(dirname, args.path);
-
- return { path };
- }
-
- throw Error('not resolvable');
- });
-
- build.onLoad({ filter: /.*/ }, (args: esbuild.OnLoadArgs) => {
- if (!map.has(args.path) && !map.has(args.path + '.ts')) {
- throw Error('Could not load ' + args.path);
- }
- const ext = Path.extname(args.path) ?? '.ts';
-
- const contents = map.get(args.path)!;
-
- const loader =
- ext === '.ts'
- ? 'ts'
- : ext === '.tsx'
- ? 'tsx'
- : ext === '.js'
- ? 'js'
- : ext === '.jsx'
- ? 'jsx'
- : 'default';
-
- return { contents, loader };
- });
- }
- };
-}
-
-const esBuildOptions: esbuild.BuildOptions = {
- target: ['es6'],
- jsx: 'automatic',
- minifyIdentifiers: true,
- sourcemap: true
-};
-// const esbuildTransformOptions: esbuild.TransformOptions = {
-// target: ['es6'],
-// loader: 'ts',
-// jsx: 'automatic',
-// minifyIdentifiers: true,
-// sourcemap: true
-// };
-
-export default class EsBuildScriptCompiler {
- private esbuildReady: Promise;
-
- constructor() {
- esbuild.stop();
- this.esbuildReady = esbuild.initialize({
- wasmURL: esbuildWasmUrl
- });
- }
-
- async compile(source: { title: string; content: string }[]) {
- await this.esbuildReady;
-
- const tree: { [key: string]: string } = {};
-
- source.forEach((file) => {
- tree['/' + file.title] = file.content;
- });
-
- return await esbuild.build({
- ...esBuildOptions,
- entryPoints: ['index.ts'],
- bundle: false,
- write: false,
- plugins: [customResolver(tree)]
- });
- }
-}
diff --git a/packages/safelight/src/controllers/Decoder/AVdecoder.ts b/packages/safelight/src/controllers/Decoder/AVdecoder.ts
deleted file mode 100644
index e69de29b..00000000
diff --git a/packages/safelight/src/controllers/Media/Media.ts b/packages/safelight/src/controllers/Media/Media.ts
deleted file mode 100644
index 87a00ac3..00000000
--- a/packages/safelight/src/controllers/Media/Media.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { type FileInfo } from 'ffprobe-wasm';
-
-export default class Media {
- public id = ref();
- public name = ref('Untitled Media');
- public previewImage = ref();
- public loaded = ref(false);
-
- /**
- * @description The duration of this media item. By default it is set to 5 seconds, which will apply to images
- * @default 5000
- */
- public duration = ref(0);
- public fileInfo = ref();
-
- constructor(mediaId: string) {
- this.id.value = mediaId;
- db.media.get({ id: mediaId }).then((med) => {
- if (med) {
- this.name.value = med.name;
-
- if (med.fileInfo)
- this.duration.value = parseFloat(med.fileInfo.format.duration) * 1000;
- if (med.previewImage)
- this.previewImage.value = URL.createObjectURL(med.previewImage);
-
- this.id.value = med.id;
- this.loaded.value = true;
- }
- });
- }
-}
diff --git a/packages/safelight/src/controllers/Project/SimpleProject.ts b/packages/safelight/src/controllers/Project/SimpleProject.ts
deleted file mode 100644
index 208bb38c..00000000
--- a/packages/safelight/src/controllers/Project/SimpleProject.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import Media from '../Media/Media';
-import SimpleTimeline from '../Timeline/SimpleTimeline';
-import BaseProject, { type ProjectType } from '../base/Project';
-
-export default class SimpleProject extends BaseProject {
- public name = 'Untitled';
- public type: ProjectType = 'Simple';
-
- public media: Media[] = reactive([]);
- public timelines: SimpleTimeline[] = [];
- public activeTimeline: SimpleTimeline;
-
- constructor() {
- super();
-
- const tl = new SimpleTimeline();
-
- this.timelines = [tl];
- this.activeTimeline = tl;
- }
-}
diff --git a/packages/safelight/src/controllers/Storage/IndexDbStorage.ts b/packages/safelight/src/controllers/Storage/IndexDbStorage.ts
deleted file mode 100644
index a47b6047..00000000
--- a/packages/safelight/src/controllers/Storage/IndexDbStorage.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-/* eslint-disable @typescript-eslint/no-unused-vars */
-import BaseProject from '../base/Project';
-import type { SaveResults, StorageControllerType } from '../base/Storage';
-import BaseStorageController from '../base/Storage';
-
-export default class IndexedDbStorageController extends BaseStorageController {
- public type: StorageControllerType = 'IndexedDB';
- public version = '0.0.1';
-
- public async Save(timeline: BaseProject): Promise {
- return 'Error';
- }
- public async Load(id: string): Promise {
- return 'Not implemented';
- }
-}
diff --git a/packages/safelight/src/controllers/Storage/MediaStorage/IdbMediaManager.ts b/packages/safelight/src/controllers/Storage/MediaStorage/IdbMediaManager.ts
deleted file mode 100644
index 16ddffcb..00000000
--- a/packages/safelight/src/controllers/Storage/MediaStorage/IdbMediaManager.ts
+++ /dev/null
@@ -1,121 +0,0 @@
-import { generateMediaThumbnail } from '@/helpers/Video/GenerateMediaThumbnail';
-import { getVideoInfo } from '@/helpers/Video/GetVideoInfo';
-import { createMD5 } from 'hash-wasm';
-import { Observable } from 'rxjs';
-import { v4 as uuidv4 } from 'uuid';
-import type { StoredMedia } from '../db';
-
-const chunkSize = 64 * 1024 * 1024;
-
-export default class IdbMediaManager {
- static storedMedia = shallowRef([]);
-
- static storeMedia(file: File) {
- return new Observable((subscriber) => {
- // Thanks RxJs, makes sense
- (async () => {
- // Hash file
- const reader = new FileReader();
-
- const hasher = await createMD5();
-
- function hashChunk(chunk: Blob) {
- return new Promise((resolve) => {
- reader.onload = async (e) => {
- const view = new Uint8Array(e.target!.result! as ArrayBuffer);
- hasher.update(view);
- resolve();
- };
-
- reader.readAsArrayBuffer(chunk);
- });
- }
-
- const chunkNumber = Math.ceil(file.size / chunkSize);
-
- for (let i = 0; i <= chunkNumber; i++) {
- const chunk = file.slice(
- chunkSize * i,
- Math.min(chunkSize * (i + 1), file.size)
- );
- await hashChunk(chunk);
- subscriber.next({
- hashProgress: Math.min(i / chunkNumber, 1),
- type: 'hash'
- });
- }
-
- const hash = hasher.digest();
-
- // Check if a file with the same has already is stored, if so, use it
- const existingMedia = await db.media.get({
- contentHash: hash
- });
-
- if (existingMedia) {
- subscriber.next({
- type: 'done',
- id: existingMedia.id,
- hashProgress: 1
- });
- } else {
- // Generate fileInfo
- subscriber.next({
- type: 'fileInfo',
- hashProgress: 1
- });
- const fileInfo = await getVideoInfo(file).catch(() => {
- return undefined;
- });
-
- // Get thumbnail
- subscriber.next({
- hashProgress: 1,
- type: 'thumbnail'
- });
- const thumbnail = (await generateMediaThumbnail(file)) ?? undefined; // Typescript shenanigans
-
- const uuid = uuidv4();
-
- db.media.add({
- id: uuid,
- name: file.name,
- contentHash: hash,
- data: file,
- fileInfo: fileInfo,
- previewImage: thumbnail
- });
- subscriber.next({
- type: 'done',
- id: uuid,
- hashProgress: 1
- });
- }
-
- subscriber.complete();
- })();
- });
- }
-}
-
-interface LoadMediaProgress {
- type: 'fileInfo' | 'thumbnail' | 'hash' | 'done';
- id?: string;
- hashProgress: number;
-}
-
-db.media.hook.creating.subscribe(async () => {
- IdbMediaManager.storedMedia.value = await db.media.toArray();
- triggerRef(IdbMediaManager.storedMedia);
-});
-db.media.hook.deleting.subscribe(async () => {
- IdbMediaManager.storedMedia.value = await db.media.toArray();
- triggerRef(IdbMediaManager.storedMedia);
-});
-db.media.hook.updating.subscribe(async () => {
- IdbMediaManager.storedMedia.value = await db.media.toArray();
- triggerRef(IdbMediaManager.storedMedia);
-});
-db.media.toArray().then((media) => {
- IdbMediaManager.storedMedia.value = media;
-});
diff --git a/packages/safelight/src/controllers/Storage/db.ts b/packages/safelight/src/controllers/Storage/db.ts
deleted file mode 100644
index 8d229e60..00000000
--- a/packages/safelight/src/controllers/Storage/db.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import Dexie, { type Table } from 'dexie';
-import type { FileInfo } from 'ffprobe-wasm';
-import type { ProjectType } from '../base/Project';
-import type { TimelineItemType } from '../base/TimelineItem';
-
-export class SafelightIndexedDB extends Dexie {
- media!: Table;
- project!: Table;
-
- constructor() {
- super('SafelightIdb');
- this.version(1).stores({
- media: 'id, name, contentHash',
- project: 'id, name, type'
- });
- }
-}
-
-export interface StoredMedia {
- id: string;
- name: string;
- contentHash: string;
- fileInfo?: FileInfo;
- previewImage?: Blob;
- data: Blob;
-}
-
-export interface StoredProject {
- id: string;
- name: string;
- type: ProjectType;
- media: Pick[];
- timelines: Pick[];
-}
-
-// TODO
-export interface StoredTimeline {
- id: string;
-}
-export interface StoredTimelineItem {
- id: string;
- type: TimelineItemType;
- /**
- * The ID of a stored media item.
- *
- * Media has to be a part of the project to be used.
- */
- media?: Pick;
- start?: number;
- end?: number;
-}
-
-export const db = new SafelightIndexedDB();
diff --git a/packages/safelight/src/controllers/Timeline/SimpleTimeline.ts b/packages/safelight/src/controllers/Timeline/SimpleTimeline.ts
deleted file mode 100644
index f96a69db..00000000
--- a/packages/safelight/src/controllers/Timeline/SimpleTimeline.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { v4 as uuidv4 } from 'uuid';
-import type Media from '../Media/Media';
-import AVTimelineItem from '../TimelineItem/AVTimelineItem';
-import BaseTimeline, { type TimelineType } from '../base/Timeline';
-import type BaseTimelineItem from '../base/TimelineItem';
-
-export default class SimpleTimeline extends BaseTimeline {
- public name = 'Untitled';
- public id = uuidv4();
- public type: TimelineType = 'Simple';
-
- public items: BaseTimelineItem[] = reactive([]);
-
- public duration = 0;
- public viewportWidth = 1920;
- public viewportWeight = 1080;
- public framerate = 60;
-
- constructor() {
- super();
- this.duration = 0;
- this.width = 1920;
- this.height = 1080;
- this.framerate = 60;
- }
-
- createTimelineItem(media: Media) {
- console.log(media);
- const ti = new AVTimelineItem(this);
-
- ti.media.value = media;
- ti.layer = this.items.length;
- this.items.push(ti);
-
- return ti;
- }
-
- updateDuration() {}
-}
diff --git a/packages/safelight/src/controllers/TimelineItem/AVTimelineItem.ts b/packages/safelight/src/controllers/TimelineItem/AVTimelineItem.ts
deleted file mode 100644
index 532ba866..00000000
--- a/packages/safelight/src/controllers/TimelineItem/AVTimelineItem.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import Media from '../Media/Media';
-import type SimpleTimeline from '../Timeline/SimpleTimeline';
-import type { TimelineItemType } from '../base/TimelineItem';
-
-export default class AVTimelineItem extends TimelineItem {
- public type: TimelineItemType = 'AudioVideo';
- public media = ref();
-
- constructor(public parentTimeline: SimpleTimeline) {
- super();
- }
-
- public RenderVideoFrame() {}
-}
diff --git a/packages/safelight/src/controllers/base/Project.ts b/packages/safelight/src/controllers/base/Project.ts
deleted file mode 100644
index 60a65485..00000000
--- a/packages/safelight/src/controllers/base/Project.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import type SimpleProject from '../Project/SimpleProject';
-import type Media from '../Media/Media';
-import type BaseTimeline from './Timeline';
-
-export default abstract class BaseProject {
- public abstract name: string;
- public type: ProjectType = 'Base';
-
- public abstract media: Media[];
- public abstract timelines: BaseTimeline[];
-
- isBaseProject(): this is BaseProject {
- return this.type == 'Base';
- }
- isBaseSimpleProject(): this is SimpleProject {
- return this.type == 'Simple';
- }
-}
-
-export type ProjectType = 'Base' | 'Simple';
diff --git a/packages/safelight/src/controllers/base/Renderer.ts b/packages/safelight/src/controllers/base/Renderer.ts
deleted file mode 100644
index e69de29b..00000000
diff --git a/packages/safelight/src/controllers/base/Storage.ts b/packages/safelight/src/controllers/base/Storage.ts
deleted file mode 100644
index 71bab20e..00000000
--- a/packages/safelight/src/controllers/base/Storage.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import type IndexedDbStorageController from '../Storage/IndexDbStorage';
-import type BaseProject from './Project';
-
-export default abstract class BaseStorageController {
- public abstract type: StorageControllerType;
- public version: string = '0.0.0';
-
- abstract Save(project: BaseProject): Promise | SaveResults;
-
- abstract Load(projectId: string): Promise | (BaseProject | string);
-
- isIndexDBstorage = (): this is IndexedDbStorageController => this.type == 'IndexedDB';
-}
-
-export type StorageControllerType = 'IndexedDB';
-export type SaveResults = 'Success' | 'Cancelled' | (string & {});
diff --git a/packages/safelight/src/controllers/base/Timeline.ts b/packages/safelight/src/controllers/base/Timeline.ts
deleted file mode 100644
index b1979d20..00000000
--- a/packages/safelight/src/controllers/base/Timeline.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type SimpleTimeline from '../Timeline/SimpleTimeline';
-
-export default abstract class BaseTimeline {
- public abstract name: string;
- public abstract id: string;
- public type: TimelineType = 'Base';
-
- public width = 1920;
- public height = 1080;
-
- public abstract duration: number;
-
- isBaseTimeline = (): this is BaseTimeline => this.type == 'Base';
- isSimpleTimeline = (): this is SimpleTimeline => this.type == 'Simple';
-}
-
-export type TimelineType = 'Base' | 'Simple';
diff --git a/packages/safelight/src/controllers/base/TimelineItem.ts b/packages/safelight/src/controllers/base/TimelineItem.ts
deleted file mode 100644
index f63bc9ca..00000000
--- a/packages/safelight/src/controllers/base/TimelineItem.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import Timecode, { type TimecodeRef } from '@safelight/shared/timecode';
-import { v4 as uuidv4 } from 'uuid';
-import type AVTimelineItem from '../TimelineItem/AVTimelineItem';
-import type BaseTimeline from './Timeline';
-
-export default abstract class BaseTimelineItem {
- public id = uuidv4();
- public layer = 0;
- public abstract type: TimelineItemType;
- public abstract parentTimeline: BaseTimeline;
-
- public start = Timecode.from(0);
- public end = Timecode.from(0);
-
- public onMove(newStart: TimecodeRef) {
- this.start = newStart;
-
- if (this.parentTimeline.isSimpleTimeline()) this.parentTimeline.updateDuration();
- }
-
- isAudioVideo = (): this is AVTimelineItem => this.type == 'AudioVideo';
-}
-
-export type TimelineItemType = 'AudioVideo' | 'EffectLayer';
diff --git a/packages/safelight/src/style.scss b/packages/safelight/src/style.scss
index d56fdc37..cf60635c 100644
--- a/packages/safelight/src/style.scss
+++ b/packages/safelight/src/style.scss
@@ -57,6 +57,7 @@
body {
// color: var(--color-text);
// background: var(--color-background);
+ margin: 0;
transition: color 0.5s, background-color 0.5s;
line-height: 1.6;
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
diff --git a/packages/safelight/src/views/Editor/Editor.vue b/packages/safelight/src/views/Editor/Editor.vue
index 4fdbdd14..5363bb15 100644
--- a/packages/safelight/src/views/Editor/Editor.vue
+++ b/packages/safelight/src/views/Editor/Editor.vue
@@ -1,60 +1,46 @@
-
- Just drop it gently
-
-
-
-
-
-
-
-
-
-
- {{ media.name }}
- |
-
-
- |
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
"path": "/editor",
diff --git a/packages/shared/package.json b/packages/shared/package.json
index 80b4954e..bb73eb95 100644
--- a/packages/shared/package.json
+++ b/packages/shared/package.json
@@ -4,9 +4,7 @@
"private": "true",
"type": "module",
"exports": {
- "./timecode": {
- "default": "./src/Timecode.ts"
- }
+ "./*": "./src/*.ts"
},
"dependencies": {
"@vueuse/core": "^10.9.0",
diff --git a/packages/shared/src/base/Project.ts b/packages/shared/src/base/Project.ts
index 60a65485..d9559281 100644
--- a/packages/shared/src/base/Project.ts
+++ b/packages/shared/src/base/Project.ts
@@ -12,7 +12,7 @@ export default abstract class BaseProject {
isBaseProject(): this is BaseProject {
return this.type == 'Base';
}
- isBaseSimpleProject(): this is SimpleProject {
+ isSimpleProject(): this is SimpleProject {
return this.type == 'Simple';
}
}
diff --git a/packages/timeline/package.json b/packages/timeline/package.json
index f9debc47..d7e85549 100644
--- a/packages/timeline/package.json
+++ b/packages/timeline/package.json
@@ -11,15 +11,12 @@
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
"exports": {
+ "./style.css": "./dist/style.css",
".": {
"import": "./dist/index.mjs",
- "require": "./dist/index.cjs"
- },
- "./*": [
- "./packages/timeline/src/*",
- "./src/*"
- ],
- "./style.css": "./dist/style.css"
+ "require": "./dist/index.cjs",
+ "types": "./dist/index.d.ts"
+ }
},
"types": "./dist/index.d.ts",
"scripts": {
diff --git a/packages/timeline/src/Timeline.vue b/packages/timeline/src/Timeline.vue
index 317bd609..85ff4d7a 100644
--- a/packages/timeline/src/Timeline.vue
+++ b/packages/timeline/src/Timeline.vue
@@ -192,7 +192,6 @@ function endResize(ev: MouseEvent) {
#horizontalContainer {
display: flex;
- height: 250px;
}
#verticalContainer {
flex-grow: 1;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 581ad797..b929802f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -427,8 +427,8 @@ packages:
picocolors: 1.0.0
dev: false
- /@babel/generator@7.24.1:
- resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==}
+ /@babel/generator@7.24.4:
+ resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.0
@@ -482,8 +482,8 @@ packages:
picocolors: 1.0.0
dev: false
- /@babel/parser@7.24.1:
- resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==}
+ /@babel/parser@7.24.4:
+ resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
@@ -494,7 +494,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
dev: false
@@ -503,12 +503,12 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.2
- '@babel/generator': 7.24.1
+ '@babel/generator': 7.24.4
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/types': 7.24.0
debug: 4.3.4
globals: 11.12.0
@@ -622,7 +622,7 @@ packages:
resolution: {integrity: sha512-uOuWqxRv0OB9mV4x+dPGkAEw4P5oPtzcqqldM1VN9nXjLAp5K+3rq3dE6pOgOvUxO7pzJ4GVm2fs+XIUKTXBCQ==}
dependencies:
'@agoric/babel-generator': 7.17.6
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@babel/traverse': 7.24.1
'@babel/types': 7.24.0
ses: 1.4.0
@@ -1855,7 +1855,7 @@ packages:
'@vitest/utils': 1.4.0
magic-string: 0.30.8
sirv: 2.0.4
- vitest: 1.4.0(@types/node@20.12.3)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)(jsdom@24.0.0)
+ vitest: 1.4.0(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)
webdriverio: 8.35.1(typescript@5.4.3)
dev: true
@@ -1901,7 +1901,7 @@ packages:
pathe: 1.1.2
picocolors: 1.0.0
sirv: 2.0.4
- vitest: 1.4.0(@types/node@20.12.3)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)(jsdom@24.0.0)
+ vitest: 1.4.0(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)
dev: true
/@vitest/utils@1.4.0:
@@ -1974,7 +1974,7 @@ packages:
/@vue/compiler-core@3.4.21:
resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@vue/shared': 3.4.21
entities: 4.5.0
estree-walker: 2.0.2
@@ -1989,7 +1989,7 @@ packages:
/@vue/compiler-sfc@3.4.21:
resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@vue/compiler-core': 3.4.21
'@vue/compiler-dom': 3.4.21
'@vue/compiler-ssr': 3.4.21
@@ -2432,7 +2432,7 @@ packages:
resolution: {integrity: sha512-qdwwKEhckRk0XE22/xDdmU3v/60E8Edu4qFhgTLIhGGDs/PAJwLw9pQn8Rj99PitlbBZbYpx0k/lbir4kg0SuA==}
engines: {node: '>=16.14.0'}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
'@rollup/pluginutils': 5.1.0
pathe: 1.1.2
transitivePeerDependencies:
@@ -2443,7 +2443,7 @@ packages:
resolution: {integrity: sha512-O+33g7x6irsESUcd47KdfWUrS2F6aGp9KeVJFGj0YjIznfXpBxVGjA0w+y/1OKqX4mFOfmZ9Xpf1ixPT4n9xxw==}
engines: {node: '>=16.14.0'}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
pathe: 1.1.2
dev: true
@@ -2458,7 +2458,7 @@ packages:
resolution: {integrity: sha512-0ZdQEsSfH3mX4BFbRCc3xOBjx5bDbm73+aAdQOHerPQNf8K0XFMAv79ucd2BpnSc4UMyvBDixiroT8yjm2Y6bw==}
engines: {node: '>=16.14.0'}
dependencies:
- '@babel/parser': 7.24.1
+ '@babel/parser': 7.24.4
ast-kit: 0.12.1
dev: true
@@ -2836,7 +2836,6 @@ packages:
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
- requiresBuild: true
dev: true
/compress-commons@6.0.2:
@@ -5824,7 +5823,6 @@ packages:
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
- requiresBuild: true
dev: true
/source-map@0.7.4: