@birdactyl/plugin-ui 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.
@@ -0,0 +1,344 @@
1
+ import type { ComponentType, ReactNode } from 'react';
2
+ export interface PluginAPI {
3
+ pluginId: string;
4
+ get: <T = unknown>(path: string) => Promise<T>;
5
+ post: <T = unknown>(path: string, body?: unknown) => Promise<T>;
6
+ put: <T = unknown>(path: string, body?: unknown) => Promise<T>;
7
+ delete: <T = unknown>(path: string) => Promise<T>;
8
+ notify: (title: string, message: string, type?: 'success' | 'error' | 'info') => void;
9
+ getUser: () => {
10
+ id: string;
11
+ username: string;
12
+ email: string;
13
+ is_admin: boolean;
14
+ } | null;
15
+ isAdmin: () => boolean;
16
+ navigate: (path: string) => void;
17
+ }
18
+ export interface PluginUser {
19
+ id: string;
20
+ username: string;
21
+ email: string;
22
+ is_admin: boolean;
23
+ }
24
+ export type GuardEvaluator = (guard: string, user: PluginUser | null) => boolean;
25
+ export interface EventMap {
26
+ 'server:status': {
27
+ serverId: string;
28
+ status: string;
29
+ previousStatus: string;
30
+ };
31
+ 'server:stats': {
32
+ serverId: string;
33
+ memory: number;
34
+ memoryLimit: number;
35
+ cpu: number;
36
+ disk: number;
37
+ };
38
+ 'server:log': {
39
+ serverId: string;
40
+ line: string;
41
+ };
42
+ 'server:start': {
43
+ serverId: string;
44
+ };
45
+ 'server:stop': {
46
+ serverId: string;
47
+ };
48
+ 'server:restart': {
49
+ serverId: string;
50
+ };
51
+ 'server:kill': {
52
+ serverId: string;
53
+ };
54
+ 'file:created': {
55
+ serverId: string;
56
+ path: string;
57
+ };
58
+ 'file:deleted': {
59
+ serverId: string;
60
+ path: string;
61
+ };
62
+ 'file:moved': {
63
+ serverId: string;
64
+ from: string;
65
+ to: string;
66
+ };
67
+ 'file:uploaded': {
68
+ serverId: string;
69
+ path: string;
70
+ };
71
+ 'file:saved': {
72
+ serverId: string;
73
+ path: string;
74
+ };
75
+ 'navigation': {
76
+ path: string;
77
+ previousPath: string;
78
+ };
79
+ 'user:login': {
80
+ userId: string;
81
+ username: string;
82
+ };
83
+ 'user:logout': {};
84
+ [key: `plugin:${string}`]: unknown;
85
+ }
86
+ export type EventName = keyof EventMap;
87
+ export type EventCallback<T = unknown> = (data: T) => void;
88
+ export declare const events: {
89
+ on<K extends EventName>(event: K, callback: EventCallback<EventMap[K]>): () => void;
90
+ off<K extends EventName>(event: K, callback: EventCallback<EventMap[K]>): void;
91
+ once<K extends EventName>(event: K, callback: EventCallback<EventMap[K]>): () => void;
92
+ emit<K extends EventName>(event: K, data: EventMap[K]): void;
93
+ };
94
+ export declare function useEvent<K extends EventName>(event: K, callback: EventCallback<EventMap[K]>): void;
95
+ export declare function usePluginAPI(): PluginAPI;
96
+ export declare const useState: <T>(initial: T | (() => T)) => [T, import("react").Dispatch<import("react").SetStateAction<T>>];
97
+ export declare const useEffect: typeof import("react").useEffect;
98
+ export declare const useCallback: typeof import("react").useCallback;
99
+ export declare const useMemo: typeof import("react").useMemo;
100
+ export declare const useRef: typeof import("react").useRef;
101
+ export declare const useContext: typeof import("react").useContext;
102
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
103
+ children: ReactNode;
104
+ loading?: boolean;
105
+ variant?: 'primary' | 'secondary' | 'ghost' | 'text' | 'danger';
106
+ }
107
+ export interface CardProps {
108
+ title?: string;
109
+ description?: string;
110
+ children: ReactNode;
111
+ className?: string;
112
+ }
113
+ export interface StatCardProps {
114
+ label: string;
115
+ value: string | number;
116
+ max?: string;
117
+ percent?: number;
118
+ icon?: string;
119
+ }
120
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
121
+ label?: string;
122
+ disableAutofill?: boolean;
123
+ hideable?: boolean;
124
+ }
125
+ export interface ModalProps {
126
+ open: boolean;
127
+ onClose: () => void;
128
+ title: string;
129
+ description?: string;
130
+ children: ReactNode;
131
+ className?: string;
132
+ }
133
+ export interface Column<T> {
134
+ key: string;
135
+ header: ReactNode;
136
+ align?: 'left' | 'right' | 'center';
137
+ render: (item: T) => ReactNode;
138
+ className?: string;
139
+ }
140
+ export interface TableProps<T> {
141
+ columns: Column<T>[];
142
+ data: T[];
143
+ keyField: keyof T;
144
+ loading?: boolean;
145
+ emptyText?: string;
146
+ onRowClick?: (item: T) => void;
147
+ rowClassName?: (item: T) => string;
148
+ }
149
+ export interface CheckboxProps {
150
+ checked: boolean;
151
+ onChange: (checked?: boolean) => void;
152
+ indeterminate?: boolean;
153
+ label?: string;
154
+ }
155
+ export interface DatePickerProps {
156
+ label?: string;
157
+ value: string;
158
+ onChange: (value: string) => void;
159
+ className?: string;
160
+ }
161
+ export interface PaginationProps {
162
+ page: number;
163
+ totalPages: number;
164
+ total: number;
165
+ perPage: number;
166
+ perPageOptions?: number[];
167
+ onPageChange: (page: number) => void;
168
+ onPerPageChange: (perPage: number) => void;
169
+ loading?: boolean;
170
+ }
171
+ export interface BulkActionBarProps {
172
+ count: number;
173
+ children: ReactNode;
174
+ onClear: () => void;
175
+ }
176
+ export interface DropdownMenuProps {
177
+ children: ReactNode;
178
+ className?: string;
179
+ }
180
+ export interface DropdownMenuTriggerProps {
181
+ children: ReactNode;
182
+ asChild?: boolean;
183
+ className?: string;
184
+ }
185
+ export interface DropdownMenuContentProps {
186
+ children: ReactNode;
187
+ align?: 'start' | 'center' | 'end';
188
+ side?: 'top' | 'bottom';
189
+ sideOffset?: number;
190
+ className?: string;
191
+ }
192
+ export interface DropdownMenuItemProps {
193
+ children: ReactNode;
194
+ disabled?: boolean;
195
+ destructive?: boolean;
196
+ onSelect?: () => void;
197
+ shortcut?: string;
198
+ className?: string;
199
+ }
200
+ export declare const Button: ComponentType<ButtonProps>;
201
+ export declare const Card: ComponentType<CardProps>;
202
+ export declare const StatCard: ComponentType<StatCardProps>;
203
+ export declare const Input: ComponentType<InputProps>;
204
+ export declare const Modal: ComponentType<ModalProps>;
205
+ export declare function Table<T>(props: TableProps<T>): import("react").ReactElement<TableProps<any>, string | import("react").JSXElementConstructor<any>>;
206
+ export declare const Checkbox: ComponentType<CheckboxProps>;
207
+ export declare const DatePicker: ComponentType<DatePickerProps>;
208
+ export declare const Pagination: ComponentType<PaginationProps>;
209
+ export declare const BulkActionBar: ComponentType<BulkActionBarProps>;
210
+ export declare const DropdownMenu: ComponentType<DropdownMenuProps>;
211
+ export declare const DropdownMenuTrigger: ComponentType<DropdownMenuTriggerProps>;
212
+ export declare const DropdownMenuContent: ComponentType<DropdownMenuContentProps>;
213
+ export declare const DropdownMenuItem: ComponentType<DropdownMenuItemProps>;
214
+ export declare const DropdownMenuLabel: ComponentType<{
215
+ children: ReactNode;
216
+ className?: string;
217
+ }>;
218
+ export declare const DropdownMenuSeparator: ComponentType<{}>;
219
+ export declare const DropdownMenuGroup: ComponentType<{
220
+ children: ReactNode;
221
+ }>;
222
+ export declare const DropdownMenuSub: ComponentType<{
223
+ children: ReactNode;
224
+ }>;
225
+ export declare const DropdownMenuSubTrigger: ComponentType<{
226
+ children: ReactNode;
227
+ }>;
228
+ export declare const DropdownMenuSubContent: ComponentType<{
229
+ children: ReactNode;
230
+ }>;
231
+ export declare const Icons: Record<string, ComponentType<{
232
+ className?: string;
233
+ }>>;
234
+ declare global {
235
+ interface Window {
236
+ BIRDACTYL: {
237
+ React: typeof import('react');
238
+ ReactDOM: typeof import('react-dom');
239
+ ReactRouterDOM: typeof import('react-router-dom');
240
+ UI: {
241
+ Button: ComponentType<ButtonProps>;
242
+ Card: ComponentType<CardProps>;
243
+ StatCard: ComponentType<StatCardProps>;
244
+ Input: ComponentType<InputProps>;
245
+ Modal: ComponentType<ModalProps>;
246
+ Table: ComponentType<TableProps<any>>;
247
+ Checkbox: ComponentType<CheckboxProps>;
248
+ DatePicker: ComponentType<DatePickerProps>;
249
+ Pagination: ComponentType<PaginationProps>;
250
+ BulkActionBar: ComponentType<BulkActionBarProps>;
251
+ DropdownMenu: ComponentType<DropdownMenuProps>;
252
+ DropdownMenuTrigger: ComponentType<DropdownMenuTriggerProps>;
253
+ DropdownMenuContent: ComponentType<DropdownMenuContentProps>;
254
+ DropdownMenuItem: ComponentType<DropdownMenuItemProps>;
255
+ DropdownMenuLabel: ComponentType<{
256
+ children: ReactNode;
257
+ className?: string;
258
+ }>;
259
+ DropdownMenuSeparator: ComponentType<{}>;
260
+ DropdownMenuGroup: ComponentType<{
261
+ children: ReactNode;
262
+ }>;
263
+ DropdownMenuSub: ComponentType<{
264
+ children: ReactNode;
265
+ }>;
266
+ DropdownMenuSubTrigger: ComponentType<{
267
+ children: ReactNode;
268
+ }>;
269
+ DropdownMenuSubContent: ComponentType<{
270
+ children: ReactNode;
271
+ }>;
272
+ Icons: Record<string, ComponentType<{
273
+ className?: string;
274
+ }>>;
275
+ [key: string]: any;
276
+ };
277
+ hooks: {
278
+ usePluginAPI: () => PluginAPI;
279
+ useState: typeof import('react').useState;
280
+ useEffect: typeof import('react').useEffect;
281
+ useCallback: typeof import('react').useCallback;
282
+ useMemo: typeof import('react').useMemo;
283
+ useRef: typeof import('react').useRef;
284
+ useContext: typeof import('react').useContext;
285
+ };
286
+ events: {
287
+ on: <K extends EventName>(event: K, callback: EventCallback<EventMap[K]>) => () => void;
288
+ off: <K extends EventName>(event: K, callback: EventCallback<EventMap[K]>) => void;
289
+ once: <K extends EventName>(event: K, callback: EventCallback<EventMap[K]>) => () => void;
290
+ emit: <K extends EventName>(event: K, data: EventMap[K]) => void;
291
+ };
292
+ };
293
+ BIRDACTYL_SDK: {
294
+ usePluginAPI: () => PluginAPI;
295
+ useState: typeof import('react').useState;
296
+ useEffect: typeof import('react').useEffect;
297
+ useCallback: typeof import('react').useCallback;
298
+ useMemo: typeof import('react').useMemo;
299
+ useRef: typeof import('react').useRef;
300
+ useContext: typeof import('react').useContext;
301
+ events: {
302
+ on: (event: string, callback: (data: any) => void) => () => void;
303
+ off: (event: string, callback: (data: any) => void) => void;
304
+ once: (event: string, callback: (data: any) => void) => () => void;
305
+ emit: (event: string, data: any) => void;
306
+ };
307
+ Button: ComponentType<ButtonProps>;
308
+ Card: ComponentType<CardProps>;
309
+ StatCard: ComponentType<StatCardProps>;
310
+ Input: ComponentType<InputProps>;
311
+ Modal: ComponentType<ModalProps>;
312
+ Table: ComponentType<TableProps<any>>;
313
+ Checkbox: ComponentType<CheckboxProps>;
314
+ DatePicker: ComponentType<DatePickerProps>;
315
+ Pagination: ComponentType<PaginationProps>;
316
+ BulkActionBar: ComponentType<BulkActionBarProps>;
317
+ DropdownMenu: ComponentType<DropdownMenuProps>;
318
+ DropdownMenuTrigger: ComponentType<DropdownMenuTriggerProps>;
319
+ DropdownMenuContent: ComponentType<DropdownMenuContentProps>;
320
+ DropdownMenuItem: ComponentType<DropdownMenuItemProps>;
321
+ DropdownMenuLabel: ComponentType<{
322
+ children: ReactNode;
323
+ className?: string;
324
+ }>;
325
+ DropdownMenuSeparator: ComponentType<{}>;
326
+ DropdownMenuGroup: ComponentType<{
327
+ children: ReactNode;
328
+ }>;
329
+ DropdownMenuSub: ComponentType<{
330
+ children: ReactNode;
331
+ }>;
332
+ DropdownMenuSubTrigger: ComponentType<{
333
+ children: ReactNode;
334
+ }>;
335
+ DropdownMenuSubContent: ComponentType<{
336
+ children: ReactNode;
337
+ }>;
338
+ Icons: Record<string, ComponentType<{
339
+ className?: string;
340
+ }>>;
341
+ };
342
+ }
343
+ }
344
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,123 @@
1
+ export const events = {
2
+ on(event, callback) {
3
+ return window.BIRDACTYL.events.on(event, callback);
4
+ },
5
+ off(event, callback) {
6
+ window.BIRDACTYL.events.off(event, callback);
7
+ },
8
+ once(event, callback) {
9
+ return window.BIRDACTYL.events.once(event, callback);
10
+ },
11
+ emit(event, data) {
12
+ window.BIRDACTYL.events.emit(event, data);
13
+ },
14
+ };
15
+ export function useEvent(event, callback) {
16
+ const useEffect = window.BIRDACTYL_SDK.useEffect;
17
+ const useRef = window.BIRDACTYL_SDK.useRef;
18
+ const callbackRef = useRef(callback);
19
+ callbackRef.current = callback;
20
+ useEffect(() => {
21
+ const handler = (data) => callbackRef.current(data);
22
+ return window.BIRDACTYL_SDK.events.on(event, handler);
23
+ }, [event]);
24
+ }
25
+ export function usePluginAPI() {
26
+ return window.BIRDACTYL.hooks.usePluginAPI();
27
+ }
28
+ export const useState = (initial) => window.BIRDACTYL.React.useState(initial);
29
+ export const useEffect = window.BIRDACTYL.React.useEffect;
30
+ export const useCallback = window.BIRDACTYL.React.useCallback;
31
+ export const useMemo = window.BIRDACTYL.React.useMemo;
32
+ export const useRef = window.BIRDACTYL.React.useRef;
33
+ export const useContext = window.BIRDACTYL.React.useContext;
34
+ export const Button = (props) => {
35
+ const Comp = window.BIRDACTYL.UI.Button;
36
+ return window.BIRDACTYL.React.createElement(Comp, props);
37
+ };
38
+ export const Card = (props) => {
39
+ const Comp = window.BIRDACTYL.UI.Card;
40
+ return window.BIRDACTYL.React.createElement(Comp, props);
41
+ };
42
+ export const StatCard = (props) => {
43
+ const Comp = window.BIRDACTYL.UI.StatCard;
44
+ return window.BIRDACTYL.React.createElement(Comp, props);
45
+ };
46
+ export const Input = (props) => {
47
+ const Comp = window.BIRDACTYL.UI.Input;
48
+ return window.BIRDACTYL.React.createElement(Comp, props);
49
+ };
50
+ export const Modal = (props) => {
51
+ const Comp = window.BIRDACTYL.UI.Modal;
52
+ return window.BIRDACTYL.React.createElement(Comp, props);
53
+ };
54
+ export function Table(props) {
55
+ const Comp = window.BIRDACTYL.UI.Table;
56
+ return window.BIRDACTYL.React.createElement(Comp, props);
57
+ }
58
+ export const Checkbox = (props) => {
59
+ const Comp = window.BIRDACTYL.UI.Checkbox;
60
+ return window.BIRDACTYL.React.createElement(Comp, props);
61
+ };
62
+ export const DatePicker = (props) => {
63
+ const Comp = window.BIRDACTYL.UI.DatePicker;
64
+ return window.BIRDACTYL.React.createElement(Comp, props);
65
+ };
66
+ export const Pagination = (props) => {
67
+ const Comp = window.BIRDACTYL.UI.Pagination;
68
+ return window.BIRDACTYL.React.createElement(Comp, props);
69
+ };
70
+ export const BulkActionBar = (props) => {
71
+ const Comp = window.BIRDACTYL.UI.BulkActionBar;
72
+ return window.BIRDACTYL.React.createElement(Comp, props);
73
+ };
74
+ export const DropdownMenu = (props) => {
75
+ const Comp = window.BIRDACTYL.UI.DropdownMenu;
76
+ return window.BIRDACTYL.React.createElement(Comp, props);
77
+ };
78
+ export const DropdownMenuTrigger = (props) => {
79
+ const Comp = window.BIRDACTYL.UI.DropdownMenuTrigger;
80
+ return window.BIRDACTYL.React.createElement(Comp, props);
81
+ };
82
+ export const DropdownMenuContent = (props) => {
83
+ const Comp = window.BIRDACTYL.UI.DropdownMenuContent;
84
+ return window.BIRDACTYL.React.createElement(Comp, props);
85
+ };
86
+ export const DropdownMenuItem = (props) => {
87
+ const Comp = window.BIRDACTYL.UI.DropdownMenuItem;
88
+ return window.BIRDACTYL.React.createElement(Comp, props);
89
+ };
90
+ export const DropdownMenuLabel = (props) => {
91
+ const Comp = window.BIRDACTYL.UI.DropdownMenuLabel;
92
+ return window.BIRDACTYL.React.createElement(Comp, props);
93
+ };
94
+ export const DropdownMenuSeparator = (props) => {
95
+ const Comp = window.BIRDACTYL.UI.DropdownMenuSeparator;
96
+ return window.BIRDACTYL.React.createElement(Comp, props);
97
+ };
98
+ export const DropdownMenuGroup = (props) => {
99
+ const Comp = window.BIRDACTYL.UI.DropdownMenuGroup;
100
+ return window.BIRDACTYL.React.createElement(Comp, props);
101
+ };
102
+ export const DropdownMenuSub = (props) => {
103
+ const Comp = window.BIRDACTYL.UI.DropdownMenuSub;
104
+ return window.BIRDACTYL.React.createElement(Comp, props);
105
+ };
106
+ export const DropdownMenuSubTrigger = (props) => {
107
+ const Comp = window.BIRDACTYL.UI.DropdownMenuSubTrigger;
108
+ return window.BIRDACTYL.React.createElement(Comp, props);
109
+ };
110
+ export const DropdownMenuSubContent = (props) => {
111
+ const Comp = window.BIRDACTYL.UI.DropdownMenuSubContent;
112
+ return window.BIRDACTYL.React.createElement(Comp, props);
113
+ };
114
+ export const Icons = new Proxy({}, {
115
+ get: (_, name) => {
116
+ return (props) => {
117
+ const IconComp = window.BIRDACTYL.UI.Icons[name];
118
+ if (!IconComp)
119
+ return null;
120
+ return window.BIRDACTYL.React.createElement(IconComp, props);
121
+ };
122
+ },
123
+ });
package/dist/vite.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { Plugin, UserConfig } from 'vite';
2
+ export interface BirdactylPluginOptions {
3
+ pluginId: string;
4
+ }
5
+ export declare function birdactylPlugin(options: BirdactylPluginOptions): Plugin;
6
+ export declare function createViteConfig(options: BirdactylPluginOptions): UserConfig;
7
+ //# sourceMappingURL=vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAqCvE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CA4B5E"}
package/dist/vite.js ADDED
@@ -0,0 +1,67 @@
1
+ export function birdactylPlugin(options) {
2
+ return {
3
+ name: 'birdactyl-plugin-ui',
4
+ config() {
5
+ return {
6
+ build: {
7
+ lib: {
8
+ entry: 'src/index.tsx',
9
+ formats: ['es'],
10
+ fileName: () => 'bundle.js',
11
+ },
12
+ rollupOptions: {
13
+ external: [
14
+ 'react',
15
+ 'react-dom',
16
+ 'react-router-dom',
17
+ 'react/jsx-runtime',
18
+ '@birdactyl/plugin-ui',
19
+ ],
20
+ output: {
21
+ globals: {
22
+ 'react': 'window.BIRDACTYL.React',
23
+ 'react-dom': 'window.BIRDACTYL.ReactDOM',
24
+ 'react-router-dom': 'window.BIRDACTYL.ReactRouterDOM',
25
+ 'react/jsx-runtime': 'window.BIRDACTYL.React',
26
+ },
27
+ },
28
+ },
29
+ minify: true,
30
+ sourcemap: false,
31
+ },
32
+ define: {
33
+ 'process.env.PLUGIN_ID': JSON.stringify(options.pluginId),
34
+ },
35
+ };
36
+ },
37
+ };
38
+ }
39
+ export function createViteConfig(options) {
40
+ return {
41
+ plugins: [birdactylPlugin(options)],
42
+ build: {
43
+ lib: {
44
+ entry: 'src/index.tsx',
45
+ formats: ['es'],
46
+ fileName: () => 'bundle.js',
47
+ },
48
+ rollupOptions: {
49
+ external: [
50
+ 'react',
51
+ 'react-dom',
52
+ 'react-router-dom',
53
+ 'react/jsx-runtime',
54
+ '@birdactyl/plugin-ui',
55
+ ],
56
+ output: {
57
+ globals: {
58
+ 'react': 'window.BIRDACTYL.React',
59
+ 'react-dom': 'window.BIRDACTYL.ReactDOM',
60
+ 'react-router-dom': 'window.BIRDACTYL.ReactRouterDOM',
61
+ 'react/jsx-runtime': 'window.BIRDACTYL.React',
62
+ },
63
+ },
64
+ },
65
+ },
66
+ };
67
+ }
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@birdactyl/plugin-ui",
3
+ "version": "1.0.0",
4
+ "description": "SDK for building Birdactyl plugin UIs",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./vite": {
14
+ "types": "./dist/vite.d.ts",
15
+ "import": "./dist/vite.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "peerDependencies": {
26
+ "react": "^18.0.0",
27
+ "react-dom": "^18.0.0",
28
+ "react-router-dom": "^6.0.0"
29
+ },
30
+ "devDependencies": {
31
+ "@types/react": "^18.2.0",
32
+ "@types/react-dom": "^18.2.0",
33
+ "typescript": "^5.0.0",
34
+ "vite": "^5.0.0"
35
+ },
36
+ "keywords": [
37
+ "birdactyl",
38
+ "plugin",
39
+ "ui",
40
+ "react"
41
+ ],
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/Birdactyl/Birdactyl-UI-SDK"
45
+ },
46
+ "author": "Birdactyl",
47
+ "homepage": "https://github.com/Birdactyl/Birdactyl-UI-SDK",
48
+ "license": "MIT"
49
+ }