@timelinekit/vue 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,163 @@
1
+ # @timelinekit/vue
2
+
3
+ Vue 3 components for [TimelineKit](https://timelinekit.com) — high-performance, canvas-rendered scheduling components.
4
+
5
+ For a full feature overview, themes, localization, and export options, see the [`@timelinekit/core` README](https://www.npmjs.com/package/@timelinekit/core).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @timelinekit/vue @timelinekit/core
11
+ ```
12
+
13
+ Requires Vue 3.3 or later.
14
+
15
+ ## Components
16
+
17
+ | Component | Import | Ref Type | Styles Import |
18
+ |-----------|--------|----------|---------------|
19
+ | Gantt Chart | `GanttChart` | `GanttChartRef` | `@timelinekit/core/styles` |
20
+ | Resource Scheduler | `ResourceScheduler` | `ResourceSchedulerRef` | `@timelinekit/core/styles/rs` |
21
+ | Event Calendar | `EventCalendar` | `EventCalendarRef` | `@timelinekit/core/styles/ec` |
22
+
23
+ All types from `@timelinekit/core` are re-exported from this package for convenience.
24
+
25
+ ## Quick Start
26
+
27
+ ### Gantt Chart
28
+
29
+ ```vue
30
+ <script setup lang="ts">
31
+ import { ref, onMounted } from 'vue';
32
+ import { GanttChart, type GanttChartRef, Task, TaskLink } from '@timelinekit/vue';
33
+ import '@timelinekit/core/styles';
34
+
35
+ const ganttRef = ref<GanttChartRef>();
36
+
37
+ onMounted(() => {
38
+ const gantt = ganttRef.value!;
39
+ const taskA = gantt.list.addTask(new Task({ id: '1', name: 'Design', startTime: '2027-01-05', endTime: '2027-01-09' }));
40
+ const taskB = gantt.list.addTask(new Task({ id: '2', name: 'Development', startTime: '2027-01-12', endTime: '2027-01-23' }));
41
+ gantt.list.addLink(new TaskLink({ id: 'l1', from: taskA, to: taskB, type: 'finishToStart' }));
42
+ gantt.zoomToFit();
43
+ });
44
+ </script>
45
+
46
+ <template>
47
+ <GanttChart ref="ganttRef" style="height: 600px" />
48
+ </template>
49
+ ```
50
+
51
+ ### Resource Scheduler
52
+
53
+ ```vue
54
+ <script setup lang="ts">
55
+ import { ref, onMounted } from 'vue';
56
+ import { ResourceScheduler, type ResourceSchedulerRef, SchedulerResource, SchedulerEvent } from '@timelinekit/vue';
57
+ import '@timelinekit/core/styles/rs';
58
+
59
+ const schedulerRef = ref<ResourceSchedulerRef>();
60
+
61
+ onMounted(() => {
62
+ const scheduler = schedulerRef.value!;
63
+ const resource = scheduler.data.addResource(new SchedulerResource({ id: '1', name: 'Room A' }));
64
+ scheduler.data.addEvent(new SchedulerEvent({
65
+ id: 'e1',
66
+ resourceId: resource.id,
67
+ name: 'Meeting',
68
+ startTime: '2027-01-05T09:00',
69
+ endTime: '2027-01-05T10:30',
70
+ }));
71
+ });
72
+ </script>
73
+
74
+ <template>
75
+ <ResourceScheduler ref="schedulerRef" style="height: 600px" />
76
+ </template>
77
+ ```
78
+
79
+ ### Event Calendar
80
+
81
+ ```vue
82
+ <script setup lang="ts">
83
+ import { ref, onMounted } from 'vue';
84
+ import { EventCalendar, type EventCalendarRef, CalendarItem } from '@timelinekit/vue';
85
+ import '@timelinekit/core/styles/ec';
86
+
87
+ const calendarRef = ref<EventCalendarRef>();
88
+
89
+ onMounted(() => {
90
+ const calendar = calendarRef.value!;
91
+ calendar.data.addItem(new CalendarItem({
92
+ id: '1',
93
+ name: 'Team Standup',
94
+ startTime: '2027-01-05T09:00',
95
+ endTime: '2027-01-05T09:30',
96
+ type: 'Meeting',
97
+ }));
98
+ });
99
+ </script>
100
+
101
+ <template>
102
+ <EventCalendar ref="calendarRef" style="height: 600px" />
103
+ </template>
104
+ ```
105
+
106
+ ## API Access
107
+
108
+ Each component exposes its API through a template ref:
109
+
110
+ ```vue
111
+ <script setup lang="ts">
112
+ import { ref } from 'vue';
113
+ import { GanttChart, type GanttChartRef } from '@timelinekit/vue';
114
+
115
+ const ganttRef = ref<GanttChartRef>();
116
+
117
+ function handleReady() {
118
+ ganttRef.value!.list.addTask(...);
119
+ ganttRef.value!.zoomIn();
120
+ ganttRef.value!.undo();
121
+ ganttRef.value!.exportToImage();
122
+ }
123
+ </script>
124
+
125
+ <template>
126
+ <GanttChart ref="ganttRef" @ready="handleReady" />
127
+ </template>
128
+ ```
129
+
130
+ ## Styling
131
+
132
+ Import the required CSS for each component you use:
133
+
134
+ ```typescript
135
+ import '@timelinekit/core/styles'; // Gantt Chart
136
+ import '@timelinekit/core/styles/rs'; // Resource Scheduler
137
+ import '@timelinekit/core/styles/ec'; // Event Calendar
138
+ ```
139
+
140
+ SCSS sources are also available (`@timelinekit/core/styles/scss`, `styles/rs/scss`, `styles/ec/scss`).
141
+
142
+ ## Licensing
143
+
144
+ TimelineKit is free to use with a watermark. Purchase a license to remove it:
145
+
146
+ ```typescript
147
+ import { setLicense } from '@timelinekit/vue';
148
+
149
+ setLicense('your-license-key');
150
+ ```
151
+
152
+ See [pricing](https://timelinekit.com/pricing) for details.
153
+
154
+ ## Resources
155
+
156
+ - [Documentation](https://timelinekit.com/docs)
157
+ - [Live Demos](https://timelinekit.com/gantt-chart/demo)
158
+ - [Examples](https://github.com/timelinekit/examples)
159
+ - [Support](mailto:support@timelinekit.com)
160
+
161
+ ## License
162
+
163
+ See [LICENSE](./LICENSE) for details.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ import { EventCalendarEngine, CalendarData, CalendarEntry, EventCalendarEvents, EventCalendarSettings } from '@timelinekit/core';
2
+ import type { ViewMode, EntryRenderFn, EntryTooltipFn, CalendarImageExportOptions, CalendarPdfExportOptions, CalendarIcsExportOptions, CalendarIcsImportOptions, CalendarIcsImportResult, CalendarCsvExportOptions, CalendarExcelExportOptions } from '@timelinekit/core';
3
+ export interface EventCalendarRef {
4
+ readonly data: CalendarData;
5
+ readonly events: EventCalendarEvents;
6
+ readonly settings: EventCalendarSettings;
7
+ readonly canUndo$: EventCalendarEngine['canUndo$'];
8
+ readonly canRedo$: EventCalendarEngine['canRedo$'];
9
+ viewMode: ViewMode;
10
+ currentDate: Date;
11
+ selectedEntries: CalendarEntry[];
12
+ selectedEntry: CalendarEntry | null;
13
+ canEdit: boolean;
14
+ sidebarVisible: boolean;
15
+ entryRendering: EntryRenderFn | null;
16
+ entryTooltip: EntryTooltipFn | null;
17
+ today(): void;
18
+ next(): void;
19
+ previous(): void;
20
+ goToDate(date: Date): void;
21
+ undo(): void;
22
+ redo(): void;
23
+ save(): string;
24
+ load(text: string): void;
25
+ copyEntries(entries?: CalendarEntry[]): Promise<void>;
26
+ cutEntries(entries?: CalendarEntry[]): Promise<void>;
27
+ pasteEntries(): Promise<void>;
28
+ exportToImage(options?: CalendarImageExportOptions): Promise<Blob>;
29
+ exportToPdf(options?: CalendarPdfExportOptions): Promise<Blob>;
30
+ exportToIcs(options?: CalendarIcsExportOptions): Blob;
31
+ exportToIcsText(options?: CalendarIcsExportOptions): string;
32
+ importFromIcs(text: string, options?: CalendarIcsImportOptions): CalendarIcsImportResult;
33
+ exportToCsv(options?: CalendarCsvExportOptions): string;
34
+ exportToExcel(options?: CalendarExcelExportOptions): Promise<Blob>;
35
+ }
36
+ export declare const EventCalendar: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
37
+ [key: string]: any;
38
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "ready"[], "ready", import("vue").PublicProps, Readonly<{}> & Readonly<{
39
+ onReady?: ((...args: any[]) => any) | undefined;
40
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,58 @@
1
+ import { GanttChartEngine, TaskList, ResourceList, WorkingCalendar, GanttSheet, DateRange, GanttChartEvents, GanttChartSettings, Task } from '@timelinekit/core';
2
+ import type { Marker, GanttCsvExportOptions, GanttPdfExportOptions, GanttExcelExportOptions, TaskFilterFn, TasksPastedEventArgs, ColumnState, TimelineKitLocale } from '@timelinekit/core';
3
+ export interface GanttChartRef {
4
+ readonly list: TaskList;
5
+ readonly resources: ResourceList;
6
+ workingCalendar: WorkingCalendar;
7
+ canEdit: boolean;
8
+ autoZoomToFit: boolean;
9
+ showGridLines: boolean;
10
+ showCriticalPath: boolean;
11
+ showBaseline: boolean;
12
+ showTodayLine: boolean;
13
+ markers: Marker[];
14
+ filter: TaskFilterFn | null;
15
+ readonly hasBaseline: boolean;
16
+ readonly selectedTasks: Task[];
17
+ projectTimeline: DateRange;
18
+ locale: TimelineKitLocale;
19
+ readonly settings: GanttChartSettings;
20
+ readonly sheet: GanttSheet;
21
+ readonly events: GanttChartEvents;
22
+ readonly canUndo$: GanttChartEngine['canUndo$'];
23
+ readonly canRedo$: GanttChartEngine['canRedo$'];
24
+ zoomIn(): boolean;
25
+ zoomOut(): boolean;
26
+ indent(): void;
27
+ outdent(): void;
28
+ moveUp(): void;
29
+ moveDown(): void;
30
+ goToProjectStart(): void;
31
+ scrollToDate(date: Date): void;
32
+ scrollToTask(task: Task): void;
33
+ zoomToFit(tasks?: Task[]): void;
34
+ addMarker(marker: Marker): void;
35
+ removeMarker(marker: Marker): void;
36
+ clearMarkers(): void;
37
+ clearFilter(): void;
38
+ saveColumns(): ColumnState[];
39
+ loadColumns(states: ColumnState[]): void;
40
+ undo(): void;
41
+ redo(): void;
42
+ saveBaseline(): void;
43
+ clearBaseline(): void;
44
+ save(): string;
45
+ load(text: string): void;
46
+ exportToImage(): Promise<Blob>;
47
+ exportToCsv(options?: GanttCsvExportOptions): string;
48
+ exportToPdf(options?: GanttPdfExportOptions): Promise<Blob>;
49
+ exportToExcel(options?: GanttExcelExportOptions): Promise<Blob>;
50
+ copy(): Promise<void>;
51
+ cut(): Promise<void>;
52
+ paste(): Promise<TasksPastedEventArgs | null>;
53
+ }
54
+ export declare const GanttChart: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
55
+ [key: string]: any;
56
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "ready"[], "ready", import("vue").PublicProps, Readonly<{}> & Readonly<{
57
+ onReady?: ((...args: any[]) => any) | undefined;
58
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,7 @@
1
+ export { GanttChart } from './ganttchart.component';
2
+ export type { GanttChartRef } from './ganttchart.component';
3
+ export { ResourceScheduler } from './resourcescheduler.component';
4
+ export type { ResourceSchedulerRef } from './resourcescheduler.component';
5
+ export { EventCalendar } from './eventcalendar.component';
6
+ export type { EventCalendarRef } from './eventcalendar.component';
7
+ export * from '@timelinekit/core';
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as t,onMounted as r,onBeforeUnmount as o,h as n}from"vue";import{GanttChartEngine as s,ResourceSchedulerEngine as a,EventCalendarEngine as i}from"@timelinekit/core";export*from"@timelinekit/core";const l=e({name:"GanttChart",emits:["ready"],setup(e,{emit:a,expose:i}){const l=t();let d=null;return r(()=>{d=new s(l.value),a("ready")}),o(()=>{d?.destroy(),d=null}),i({get list(){return d.list},get resources(){return d.resources},get workingCalendar(){return d.calendar$.getValue()},set workingCalendar(e){d.calendar$.next(e)},get canEdit(){return d.canEdit},set canEdit(e){d.canEdit=e},get autoZoomToFit(){return d.autoZoomToFit},set autoZoomToFit(e){d.autoZoomToFit=e},get showGridLines(){return d.showGridLines},set showGridLines(e){d.showGridLines=e},get showCriticalPath(){return d.showCriticalPath},set showCriticalPath(e){d.showCriticalPath=e},get showBaseline(){return d.showBaseline},set showBaseline(e){d.showBaseline=e},get showTodayLine(){return d.showTodayLine},set showTodayLine(e){d.showTodayLine=e},get markers(){return d.markers},set markers(e){d.markers=e},get filter(){return d.filter},set filter(e){d.filter=e},get hasBaseline(){return d.hasBaseline},get selectedTasks(){return d.selectedTasks},get projectTimeline(){return d.projectTimeline},set projectTimeline(e){d.projectTimeline=e},get locale(){return d.settings.locale},set locale(e){d.settings.locale=e},get settings(){return d.settings},get sheet(){return d.sheet},get events(){return d.events},get canUndo$(){return d.canUndo$},get canRedo$(){return d.canRedo$},zoomIn:()=>d.zoomIn(),zoomOut:()=>d.zoomOut(),indent:()=>d.indent(),outdent:()=>d.outdent(),moveUp:()=>d.moveUp(),moveDown:()=>d.moveDown(),goToProjectStart:()=>d.goToProjectStart(),scrollToDate:e=>d.scrollToDate(e),scrollToTask:e=>d.scrollToTask(e),zoomToFit:e=>d.zoomToFit(e),addMarker:e=>d.addMarker(e),removeMarker:e=>d.removeMarker(e),clearMarkers:()=>d.clearMarkers(),clearFilter:()=>d.clearFilter(),saveColumns:()=>d.saveColumns(),loadColumns:e=>d.loadColumns(e),undo:()=>d.undo(),redo:()=>d.redo(),saveBaseline:()=>d.saveBaseline(),clearBaseline:()=>d.clearBaseline(),save:()=>d.save(),load:e=>d.load(e),exportToImage:()=>d.exportToImage(),exportToCsv:e=>d.exportToCsv(e),exportToPdf:e=>d.exportToPdf(e),exportToExcel:e=>d.exportToExcel(e),copy:()=>d.copy(),cut:()=>d.cut(),paste:()=>d.paste()}),()=>n("div",{ref:l,style:{width:"100%",height:"100%"}})}}),d=e({name:"ResourceScheduler",emits:["ready"],setup(e,{emit:s,expose:i}){const l=t();let d=null;return r(()=>{d=new a(l.value),s("ready")}),o(()=>{d?.destroy(),d=null}),i({get data(){return d.data},get workingCalendar(){return d.calendar$.getValue()},set workingCalendar(e){d.calendar$.next(e)},get canEdit(){return d.canEdit},set canEdit(e){d.canEdit=e},get autoZoomToFit(){return d.autoZoomToFit},set autoZoomToFit(e){d.autoZoomToFit=e},get showGridLines(){return d.showGridLines},set showGridLines(e){d.showGridLines=e},get showTodayLine(){return d.showTodayLine},set showTodayLine(e){d.showTodayLine=e},get markers(){return d.markers},set markers(e){d.markers=e},get filter(){return d.filter},set filter(e){d.filter=e},get eventRendering(){return d.eventRendering},set eventRendering(e){d.eventRendering=e},get eventTooltip(){return d.eventTooltip},set eventTooltip(e){d.eventTooltip=e},get projectTimeline(){return d.projectTimeline},set projectTimeline(e){d.projectTimeline=e},get selectedEvents(){return d.selectedEvents},set selectedEvents(e){d.selectedEvents=e},get selectedEvent(){return d.selectedEvent},set selectedEvent(e){d.selectedEvent=e},get selectedResources(){return d.selectedResources},get settings(){return d.settings},get sheet(){return d.sheet},get events(){return d.events},get canUndo$(){return d.canUndo$},get canRedo$(){return d.canRedo$},undo:()=>d.undo(),redo:()=>d.redo(),copy:()=>d.copy(),cut:()=>d.cut(),paste:()=>d.paste(),zoomIn:()=>d.zoomIn(),zoomOut:()=>d.zoomOut(),goToProjectStart:()=>d.goToProjectStart(),scrollToDate:e=>d.scrollToDate(e),scrollToResource:e=>d.scrollToResource(e),scrollToEvent:e=>d.scrollToEvent(e),zoomToFit:e=>d.zoomToFit(e),addMarker:e=>d.addMarker(e),removeMarker:e=>d.removeMarker(e),clearMarkers:()=>d.clearMarkers(),clearFilter:()=>d.clearFilter(),saveColumns:()=>d.saveColumns(),loadColumns:e=>d.loadColumns(e),sortResources:e=>d.sortResources(e),freezeResource:e=>d.freezeResource(e),unfreezeResource:e=>d.unfreezeResource(e),isResourceFrozen:e=>d.isResourceFrozen(e),exportToImage:()=>d.exportToImage(),exportToCsv:e=>d.exportToCsv(e),exportToExcel:e=>d.exportToExcel(e),exportToPdf:e=>d.exportToPdf(e),save:()=>d.save(),load:e=>d.load(e)}),()=>n("div",{ref:l,style:{width:"100%",height:"100%"}})}}),c=e({name:"EventCalendar",emits:["ready"],setup(e,{emit:s,expose:a}){const l=t();let d=null;return r(()=>{d=new i(l.value),s("ready")}),o(()=>{d?.destroy(),d=null}),a({get data(){return d.data},get events(){return d.events},get settings(){return d.settings},get canUndo$(){return d.canUndo$},get canRedo$(){return d.canRedo$},get viewMode(){return d.viewMode},set viewMode(e){d.viewMode=e},get currentDate(){return d.currentDate},set currentDate(e){d.currentDate=e},get selectedEntries(){return d.selectedEntries},set selectedEntries(e){d.selectedEntries=e},get selectedEntry(){return d.selectedEntry},set selectedEntry(e){d.selectedEntry=e},get canEdit(){return d.canEdit},set canEdit(e){d.canEdit=e},get sidebarVisible(){return d.sidebarVisible},set sidebarVisible(e){d.sidebarVisible=e},get entryRendering(){return d.entryRendering},set entryRendering(e){d.entryRendering=e},get entryTooltip(){return d.entryTooltip},set entryTooltip(e){d.entryTooltip=e},today:()=>d.today(),next:()=>d.next(),previous:()=>d.previous(),goToDate:e=>d.goToDate(e),undo:()=>d.undo(),redo:()=>d.redo(),save:()=>d.save(),load:e=>d.load(e),copyEntries:e=>d.copyEntries(e),cutEntries:e=>d.cutEntries(e),pasteEntries:()=>d.pasteEntries(),exportToImage:e=>d.exportToImage(e),exportToPdf:e=>d.exportToPdf(e),exportToIcs:e=>d.exportToIcs(e),exportToIcsText:e=>d.exportToIcsText(e),importFromIcs:(e,t)=>d.importFromIcs(e,t),exportToCsv:e=>d.exportToCsv(e),exportToExcel:e=>d.exportToExcel(e)}),()=>n("div",{ref:l,style:{width:"100%",height:"100%"}})}});export{c as EventCalendar,l as GanttChart,d as ResourceScheduler};
@@ -0,0 +1,56 @@
1
+ import { ResourceSchedulerEngine, SchedulerData, SchedulerResource, SchedulerEvent, WorkingCalendar, SchedulerSheet, DateRange, ResourceSchedulerEvents, ResourceSchedulerSettings } from '@timelinekit/core';
2
+ import type { Marker, ColumnState, SchedulerResourceFilterFn, SchedulerEventRenderFn, SchedulerEventTooltipFn, SchedulerCsvExportOptions, SchedulerExcelExportOptions, SchedulerPdfExportOptions, SchedulerEventsPastedEventArgs } from '@timelinekit/core';
3
+ export interface ResourceSchedulerRef {
4
+ readonly data: SchedulerData;
5
+ workingCalendar: WorkingCalendar;
6
+ canEdit: boolean;
7
+ autoZoomToFit: boolean;
8
+ showGridLines: boolean;
9
+ showTodayLine: boolean;
10
+ markers: Marker[];
11
+ filter: SchedulerResourceFilterFn | null;
12
+ eventRendering: SchedulerEventRenderFn | null;
13
+ eventTooltip: SchedulerEventTooltipFn | null;
14
+ projectTimeline: DateRange;
15
+ selectedEvents: SchedulerEvent[];
16
+ selectedEvent: SchedulerEvent | null;
17
+ readonly selectedResources: SchedulerResource[];
18
+ readonly settings: ResourceSchedulerSettings;
19
+ readonly sheet: SchedulerSheet;
20
+ readonly events: ResourceSchedulerEvents;
21
+ readonly canUndo$: ResourceSchedulerEngine['canUndo$'];
22
+ readonly canRedo$: ResourceSchedulerEngine['canRedo$'];
23
+ undo(): void;
24
+ redo(): void;
25
+ copy(): Promise<void>;
26
+ cut(): Promise<void>;
27
+ paste(): Promise<SchedulerEventsPastedEventArgs | null>;
28
+ zoomIn(): boolean;
29
+ zoomOut(): boolean;
30
+ goToProjectStart(): void;
31
+ scrollToDate(date: Date): void;
32
+ scrollToResource(resource: SchedulerResource): void;
33
+ scrollToEvent(event: SchedulerEvent): void;
34
+ zoomToFit(events?: SchedulerEvent[]): void;
35
+ addMarker(marker: Marker): void;
36
+ removeMarker(marker: Marker): void;
37
+ clearMarkers(): void;
38
+ clearFilter(): void;
39
+ saveColumns(): ColumnState[];
40
+ loadColumns(states: ColumnState[]): void;
41
+ sortResources(compareFn: (a: SchedulerResource, b: SchedulerResource) => number): void;
42
+ freezeResource(resource: SchedulerResource): void;
43
+ unfreezeResource(resource: SchedulerResource): void;
44
+ isResourceFrozen(resource: SchedulerResource): boolean;
45
+ exportToImage(): Promise<Blob>;
46
+ exportToCsv(options?: SchedulerCsvExportOptions): string;
47
+ exportToExcel(options?: SchedulerExcelExportOptions): Promise<Blob>;
48
+ exportToPdf(options?: SchedulerPdfExportOptions): Promise<Blob>;
49
+ save(): string;
50
+ load(text: string): void;
51
+ }
52
+ export declare const ResourceScheduler: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
53
+ [key: string]: any;
54
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "ready"[], "ready", import("vue").PublicProps, Readonly<{}> & Readonly<{
55
+ onReady?: ((...args: any[]) => any) | undefined;
56
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@timelinekit/vue",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "scripts": {
14
+ "build": "rollup -c",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest"
17
+ },
18
+ "peerDependencies": {
19
+ "vue": ">=3.3.0",
20
+ "@timelinekit/core": "workspace:*"
21
+ },
22
+ "dependencies": {
23
+ "@timelinekit/core": "workspace:*"
24
+ },
25
+ "devDependencies": {
26
+ "vue": "^3.5.0",
27
+ "vitest": "^4.0.8",
28
+ "jsdom": "^26.1.0"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md",
33
+ "LICENSE"
34
+ ]
35
+ }