@vertesia/tools-admin-ui 0.9.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.
Files changed (81) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +120 -0
  3. package/lib/AdminApp.d.ts +13 -0
  4. package/lib/AdminApp.d.ts.map +1 -0
  5. package/lib/AdminContext.d.ts +10 -0
  6. package/lib/AdminContext.d.ts.map +1 -0
  7. package/lib/components/CollectionCard.d.ts +5 -0
  8. package/lib/components/CollectionCard.d.ts.map +1 -0
  9. package/lib/components/DetailPage.d.ts +13 -0
  10. package/lib/components/DetailPage.d.ts.map +1 -0
  11. package/lib/components/EndpointPanel.d.ts +5 -0
  12. package/lib/components/EndpointPanel.d.ts.map +1 -0
  13. package/lib/components/HeroSection.d.ts +9 -0
  14. package/lib/components/HeroSection.d.ts.map +1 -0
  15. package/lib/components/ResourceCard.d.ts +5 -0
  16. package/lib/components/ResourceCard.d.ts.map +1 -0
  17. package/lib/components/ResourceSection.d.ts +10 -0
  18. package/lib/components/ResourceSection.d.ts.map +1 -0
  19. package/lib/components/SearchBar.d.ts +10 -0
  20. package/lib/components/SearchBar.d.ts.map +1 -0
  21. package/lib/components/SummaryBadge.d.ts +5 -0
  22. package/lib/components/SummaryBadge.d.ts.map +1 -0
  23. package/lib/components/index.d.ts +9 -0
  24. package/lib/components/index.d.ts.map +1 -0
  25. package/lib/hooks.d.ts +26 -0
  26. package/lib/hooks.d.ts.map +1 -0
  27. package/lib/index.d.ts +7 -0
  28. package/lib/index.d.ts.map +1 -0
  29. package/lib/pages/HomePage.d.ts +2 -0
  30. package/lib/pages/HomePage.d.ts.map +1 -0
  31. package/lib/pages/InteractionCollection.d.ts +2 -0
  32. package/lib/pages/InteractionCollection.d.ts.map +1 -0
  33. package/lib/pages/InteractionDetail.d.ts +2 -0
  34. package/lib/pages/InteractionDetail.d.ts.map +1 -0
  35. package/lib/pages/SkillCollection.d.ts +2 -0
  36. package/lib/pages/SkillCollection.d.ts.map +1 -0
  37. package/lib/pages/SkillDetail.d.ts +2 -0
  38. package/lib/pages/SkillDetail.d.ts.map +1 -0
  39. package/lib/pages/TemplateCollection.d.ts +2 -0
  40. package/lib/pages/TemplateCollection.d.ts.map +1 -0
  41. package/lib/pages/TemplateDetail.d.ts +2 -0
  42. package/lib/pages/TemplateDetail.d.ts.map +1 -0
  43. package/lib/pages/ToolCollection.d.ts +2 -0
  44. package/lib/pages/ToolCollection.d.ts.map +1 -0
  45. package/lib/pages/TypeCollection.d.ts +2 -0
  46. package/lib/pages/TypeCollection.d.ts.map +1 -0
  47. package/lib/pages/TypeDetail.d.ts +2 -0
  48. package/lib/pages/TypeDetail.d.ts.map +1 -0
  49. package/lib/tools-admin-ui.js +935 -0
  50. package/lib/tools-admin-ui.js.map +1 -0
  51. package/lib/types.d.ts +89 -0
  52. package/lib/types.d.ts.map +1 -0
  53. package/package.json +50 -0
  54. package/src/AdminApp.tsx +87 -0
  55. package/src/AdminContext.ts +17 -0
  56. package/src/admin.css +650 -0
  57. package/src/components/CollectionCard.tsx +23 -0
  58. package/src/components/DetailPage.tsx +40 -0
  59. package/src/components/EndpointPanel.tsx +24 -0
  60. package/src/components/HeroSection.tsx +88 -0
  61. package/src/components/ResourceCard.tsx +25 -0
  62. package/src/components/ResourceSection.tsx +31 -0
  63. package/src/components/SearchBar.tsx +35 -0
  64. package/src/components/SummaryBadge.tsx +9 -0
  65. package/src/components/index.ts +8 -0
  66. package/src/dev/env.ts +14 -0
  67. package/src/dev/main.tsx +37 -0
  68. package/src/hooks.ts +36 -0
  69. package/src/index.ts +6 -0
  70. package/src/pages/HomePage.tsx +99 -0
  71. package/src/pages/InteractionCollection.tsx +59 -0
  72. package/src/pages/InteractionDetail.tsx +92 -0
  73. package/src/pages/SkillCollection.tsx +111 -0
  74. package/src/pages/SkillDetail.tsx +112 -0
  75. package/src/pages/TemplateCollection.tsx +54 -0
  76. package/src/pages/TemplateDetail.tsx +68 -0
  77. package/src/pages/ToolCollection.tsx +55 -0
  78. package/src/pages/TypeCollection.tsx +60 -0
  79. package/src/pages/TypeDetail.tsx +63 -0
  80. package/src/types.ts +304 -0
  81. package/src/vite-env.d.ts +1 -0
package/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ Copyright 2024 Composable
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/README.md ADDED
@@ -0,0 +1,120 @@
1
+ # @vertesia/tools-admin-ui
2
+
3
+ Shared admin UI for Vertesia tool servers. Provides a browsable interface for all resources exposed by a plugin: tools, skills, interactions, content types, rendering templates, and MCP providers.
4
+
5
+ ## How it works
6
+
7
+ The admin UI is a React component library that ships as a single ES module (`lib/tools-admin-ui.js`) with CSS inlined into the bundle. It is designed to be embedded in two contexts:
8
+
9
+ 1. **Plugin dev mode** — mounted at the root path (`/`) alongside the plugin app (at `/app/`)
10
+ 2. **Standalone dev mode** — run directly via `pnpm dev` for working on the admin UI itself
11
+
12
+ ### Data flow
13
+
14
+ On load, the admin UI fetches the tool server's API endpoints in parallel:
15
+
16
+ | Endpoint | Returns |
17
+ |----------|---------|
18
+ | `GET /api` | Server info (name, version, endpoints) |
19
+ | `GET /api/interactions` | Interaction collections and refs |
20
+ | `GET /api/tools` | Tool collections and definitions |
21
+ | `GET /api/skills` | Skill collections (exposed as tools) |
22
+ | `GET /api/types` | Content type collections and schemas |
23
+ | `GET /api/templates` | Template collections and refs |
24
+
25
+ MCP providers are derived from the server info (`endpoints.mcp`).
26
+
27
+ ### Pages and routing
28
+
29
+ | Route | Page | Description |
30
+ |-------|------|-------------|
31
+ | `/` | Home | Collection cards grouped by type, or search results |
32
+ | `/tools/:collection` | Tool collection | Lists tools with input schemas |
33
+ | `/skills/:collection` | Skill collection | Lists skills with widgets summary |
34
+ | `/skills/:collection/:name` | Skill detail | Full definition: instructions, schema, related tools |
35
+ | `/interactions/:collection` | Interaction collection | Lists interactions in a collection |
36
+ | `/interactions/:collection/:name` | Interaction detail | Prompts, result schema, agent runner flags |
37
+ | `/types/:collection` | Type collection | Lists content types |
38
+ | `/types/:collection/:name` | Type detail | Object schema, table layout, flags |
39
+ | `/templates/:collection` | Template collection | Lists rendering templates |
40
+ | `/templates/:collection/:name` | Template detail | Instructions, assets, type |
41
+
42
+ The home page has two modes:
43
+ - **Browse** (no search) — shows collection cards grouped by resource type
44
+ - **Search** — filters across all individual resources and shows matching cards
45
+
46
+ ## Development
47
+
48
+ ### Prerequisites
49
+
50
+ A running tool server with the API endpoints above. This is typically a plugin project started from the plugin template.
51
+
52
+ ### Setup
53
+
54
+ ```bash
55
+ # From the monorepo root
56
+ pnpm install
57
+
58
+ # Create your local env file
59
+ cp packages/tools-admin-ui/.env.local.example packages/tools-admin-ui/.env.local
60
+ ```
61
+
62
+ Edit `.env.local` to point to your running tool server:
63
+
64
+ ```
65
+ VITE_API_BASE_URL=http://localhost:3000/api
66
+ ```
67
+
68
+ ### Dev mode
69
+
70
+ ```bash
71
+ cd packages/tools-admin-ui
72
+ pnpm dev
73
+ ```
74
+
75
+ Starts a Vite dev server on `http://localhost:5174`. The dev entry point (`src/dev/main.tsx`) wraps the admin app in `VertesiaShell` for authentication and routing context.
76
+
77
+ The dev environment is configured in `src/dev/env.ts` and connects to Vertesia APIs for auth.
78
+
79
+ ### Build
80
+
81
+ ```bash
82
+ pnpm build
83
+ ```
84
+
85
+ This runs two steps:
86
+ 1. `tsc --build` — emits type declarations to `lib/`
87
+ 2. `vite build --mode lib` — bundles the React components into `lib/tools-admin-ui.js`
88
+
89
+ All external dependencies (React, `@vertesia/*`) are externalized — only the admin UI code and its CSS are bundled.
90
+
91
+ ## Usage in a plugin
92
+
93
+ The plugin template mounts the admin UI at the root path:
94
+
95
+ ```tsx
96
+ import { AdminApp } from '@vertesia/tools-admin-ui'
97
+
98
+ const routes: Route[] = [
99
+ { path: "*", Component: AdminApp },
100
+ { path: "app/*", Component: AppWrapper },
101
+ ]
102
+ ```
103
+
104
+ The `AdminApp` component accepts an optional `baseUrl` prop (defaults to `'/api'`).
105
+
106
+ ## Exports
107
+
108
+ ```ts
109
+ // Components
110
+ export { AdminApp } from './AdminApp'
111
+
112
+ // Context
113
+ export { AdminContext, useAdminContext } from './AdminContext'
114
+
115
+ // Types
116
+ export type { AdminAppProps, AdminContextValue, ServerInfo, ResourceType, ResourceItem, CollectionInfo }
117
+
118
+ // Utilities
119
+ export { buildResourceData, filterResources }
120
+ ```
@@ -0,0 +1,13 @@
1
+ export interface AdminAppProps {
2
+ /**
3
+ * Base URL for the tool server API.
4
+ * @default '/api'
5
+ */
6
+ baseUrl?: string;
7
+ }
8
+ /**
9
+ * Admin app shell — loads data, provides context, and renders nested routes.
10
+ * CSS is inlined into the JS bundle via Vite's `?inline` import.
11
+ */
12
+ export declare function AdminApp({ baseUrl }: AdminAppProps): import("react/jsx-runtime").JSX.Element | null;
13
+ //# sourceMappingURL=AdminApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminApp.d.ts","sourceRoot":"","sources":["../src/AdminApp.tsx"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,OAAgB,EAAE,EAAE,aAAa,kDA6C3D"}
@@ -0,0 +1,10 @@
1
+ import type { CollectionInfo, ResourceItem, ServerInfo } from './types.js';
2
+ export interface AdminContextValue {
3
+ serverInfo: ServerInfo;
4
+ collections: CollectionInfo[];
5
+ resources: ResourceItem[];
6
+ baseUrl: string;
7
+ }
8
+ export declare const AdminContext: import("react").Context<AdminContextValue | undefined>;
9
+ export declare function useAdminContext(): AdminContextValue;
10
+ //# sourceMappingURL=AdminContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminContext.d.ts","sourceRoot":"","sources":["../src/AdminContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,wDAA0D,CAAC;AAEpF,wBAAgB,eAAe,IAAI,iBAAiB,CAInD"}
@@ -0,0 +1,5 @@
1
+ import type { CollectionInfo } from '../types.js';
2
+ export declare function CollectionCard({ collection }: {
3
+ collection: CollectionInfo;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=CollectionCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionCard.d.ts","sourceRoot":"","sources":["../../src/components/CollectionCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,2CAmB5E"}
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ResourceType } from '../types.js';
3
+ interface DetailPageProps {
4
+ type: ResourceType;
5
+ title: string;
6
+ description?: string;
7
+ tags?: string[];
8
+ backHref?: string;
9
+ children?: ReactNode;
10
+ }
11
+ export declare function DetailPage({ type, title, description, tags, backHref, children }: DetailPageProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=DetailPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailPage.d.ts","sourceRoot":"","sources":["../../src/components/DetailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,UAAU,eAAe;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAc,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA0BvG"}
@@ -0,0 +1,5 @@
1
+ export declare function EndpointPanel({ label, path }: {
2
+ label: string;
3
+ path: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=EndpointPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EndpointPanel.d.ts","sourceRoot":"","sources":["../../src/components/EndpointPanel.tsx"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,2CAqB7E"}
@@ -0,0 +1,9 @@
1
+ import type { ResourceItem } from '../types.js';
2
+ interface HeroSectionProps {
3
+ title: string;
4
+ version: string;
5
+ resources: ResourceItem[];
6
+ }
7
+ export declare function HeroSection({ title, version, resources }: HeroSectionProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=HeroSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroSection.d.ts","sourceRoot":"","sources":["../../src/components/HeroSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAI9D,UAAU,gBAAgB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC7B;AAuBD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAwD1E"}
@@ -0,0 +1,5 @@
1
+ import type { ResourceItem } from '../types.js';
2
+ export declare function ResourceCard({ resource }: {
3
+ resource: ResourceItem;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=ResourceCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceCard.d.ts","sourceRoot":"","sources":["../../src/components/ResourceCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,2CAsBpE"}
@@ -0,0 +1,10 @@
1
+ import type { ResourceItem } from '../types.js';
2
+ interface ResourceSectionProps {
3
+ title: string;
4
+ subtitle: string;
5
+ resources: ResourceItem[];
6
+ showDivider?: boolean;
7
+ }
8
+ export declare function ResourceSection({ title, subtitle, resources, showDivider }: ResourceSectionProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
10
+ //# sourceMappingURL=ResourceSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceSection.d.ts","sourceRoot":"","sources":["../../src/components/ResourceSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,UAAU,oBAAoB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,oBAAoB,kDAoBhG"}
@@ -0,0 +1,10 @@
1
+ interface SearchBarProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ placeholder?: string;
5
+ resultCount?: number;
6
+ totalCount?: number;
7
+ }
8
+ export declare function SearchBar({ value, onChange, placeholder, resultCount, totalCount }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=SearchBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchBar.d.ts","sourceRoot":"","sources":["../../src/components/SearchBar.tsx"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,cAAc,2CA0BlG"}
@@ -0,0 +1,5 @@
1
+ export declare function SummaryBadge({ count, label }: {
2
+ count: number;
3
+ label: string;
4
+ }): import("react/jsx-runtime").JSX.Element | null;
5
+ //# sourceMappingURL=SummaryBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryBadge.d.ts","sourceRoot":"","sources":["../../src/components/SummaryBadge.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,kDAQ9E"}
@@ -0,0 +1,9 @@
1
+ export { HeroSection } from './HeroSection.js';
2
+ export { SearchBar } from './SearchBar.js';
3
+ export { ResourceSection } from './ResourceSection.js';
4
+ export { ResourceCard } from './ResourceCard.js';
5
+ export { CollectionCard } from './CollectionCard.js';
6
+ export { EndpointPanel } from './EndpointPanel.js';
7
+ export { SummaryBadge } from './SummaryBadge.js';
8
+ export { DetailPage } from './DetailPage.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
package/lib/hooks.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Data fetching hooks for the admin panel.
3
+ */
4
+ import type { ServerInfo, ResourceData } from './types.js';
5
+ /**
6
+ * Fetches the tool server info (message, version, endpoints).
7
+ */
8
+ export declare function useServerInfo(baseUrl: string): {
9
+ data: ServerInfo | undefined;
10
+ isLoading: boolean;
11
+ error: any;
12
+ setData: import("react").Dispatch<import("react").SetStateAction<ServerInfo | undefined>>;
13
+ refetch: () => Promise<void>;
14
+ };
15
+ /**
16
+ * Fetches all 5 resource endpoints in parallel and builds collections + flat resource list.
17
+ * MCP endpoints are passed separately since they come from serverInfo.
18
+ */
19
+ export declare function useResourceData(baseUrl: string, mcpEndpoints?: string[]): {
20
+ data: ResourceData | undefined;
21
+ isLoading: boolean;
22
+ error: any;
23
+ setData: import("react").Dispatch<import("react").SetStateAction<ResourceData | undefined>>;
24
+ refetch: () => Promise<void>;
25
+ };
26
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG3D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;;;;EAK5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;;;;;;EAavE"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { AdminApp } from './AdminApp.js';
2
+ export type { AdminAppProps } from './AdminApp.js';
3
+ export type { ServerInfo, ResourceType, ResourceItem, CollectionInfo } from './types.js';
4
+ export { buildResourceData, filterResources } from './types.js';
5
+ export { AdminContext, useAdminContext } from './AdminContext.js';
6
+ export type { AdminContextValue } from './AdminContext.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function HomePage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=HomePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomePage.d.ts","sourceRoot":"","sources":["../../src/pages/HomePage.tsx"],"names":[],"mappings":"AAeA,wBAAgB,QAAQ,4CAmFvB"}
@@ -0,0 +1,2 @@
1
+ export declare function InteractionCollection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=InteractionCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionCollection.d.ts","sourceRoot":"","sources":["../../src/pages/InteractionCollection.tsx"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,4CAoDpC"}
@@ -0,0 +1,2 @@
1
+ export declare function InteractionDetail(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=InteractionDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionDetail.d.ts","sourceRoot":"","sources":["../../src/pages/InteractionDetail.tsx"],"names":[],"mappings":"AASA,wBAAgB,iBAAiB,4CAkFhC"}
@@ -0,0 +1,2 @@
1
+ export declare function SkillCollection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SkillCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillCollection.d.ts","sourceRoot":"","sources":["../../src/pages/SkillCollection.tsx"],"names":[],"mappings":"AAiCA,wBAAgB,eAAe,4CA6E9B"}
@@ -0,0 +1,2 @@
1
+ export declare function SkillDetail(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SkillDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillDetail.d.ts","sourceRoot":"","sources":["../../src/pages/SkillDetail.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,WAAW,4CA0F1B"}
@@ -0,0 +1,2 @@
1
+ export declare function TemplateCollection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TemplateCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateCollection.d.ts","sourceRoot":"","sources":["../../src/pages/TemplateCollection.tsx"],"names":[],"mappings":"AAMA,wBAAgB,kBAAkB,4CA+CjC"}
@@ -0,0 +1,2 @@
1
+ export declare function TemplateDetail(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TemplateDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateDetail.d.ts","sourceRoot":"","sources":["../../src/pages/TemplateDetail.tsx"],"names":[],"mappings":"AAeA,wBAAgB,cAAc,4CAoD7B"}
@@ -0,0 +1,2 @@
1
+ export declare function ToolCollection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ToolCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCollection.d.ts","sourceRoot":"","sources":["../../src/pages/ToolCollection.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,cAAc,4CAqC7B"}
@@ -0,0 +1,2 @@
1
+ export declare function TypeCollection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TypeCollection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeCollection.d.ts","sourceRoot":"","sources":["../../src/pages/TypeCollection.tsx"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,4CAqD7B"}
@@ -0,0 +1,2 @@
1
+ export declare function TypeDetail(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TypeDetail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeDetail.d.ts","sourceRoot":"","sources":["../../src/pages/TypeDetail.tsx"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,4CAwDzB"}