@frontic/ui 0.5.0 → 0.6.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 +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.js +2 -2
- package/dist/{mcp-CxUIP4Qu.js → mcp-CrpA36mf.js} +12 -12
- package/dist/mcp-CrpA36mf.js.map +1 -0
- package/dist/registry/index.js +1 -1
- package/dist/{registry-CgE-Q6HO.js → registry-B-cUULNn.js} +14 -14
- package/dist/registry-B-cUULNn.js.map +1 -0
- package/package.json +3 -1
- package/dist/mcp-CxUIP4Qu.js.map +0 -1
- package/dist/registry-CgE-Q6HO.js.map +0 -1
package/dist/mcp/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Y as RegistryError, i as getRegistriesConfig, t as searchRegistries, u as getRegistryItems } from "./registry-
|
|
1
|
+
import { Y as RegistryError, i as getRegistriesConfig, t as searchRegistries, u as getRegistryItems } from "./registry-B-cUULNn.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { detectPackageManager } from "nypm";
|
|
4
4
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -7,7 +7,7 @@ import dedent from "dedent";
|
|
|
7
7
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
8
8
|
|
|
9
9
|
//#region src/mcp/utils.ts
|
|
10
|
-
const SHADCN_CLI_COMMAND = "
|
|
10
|
+
const SHADCN_CLI_COMMAND = "@frontic/ui";
|
|
11
11
|
async function npxShadcnVue(command) {
|
|
12
12
|
return `${(await detectPackageManager(process.cwd()))?.name} ${SHADCN_CLI_COMMAND} ${command}`;
|
|
13
13
|
}
|
|
@@ -64,7 +64,7 @@ function formatItemExamples(items, query) {
|
|
|
64
64
|
//#endregion
|
|
65
65
|
//#region src/mcp/index.ts
|
|
66
66
|
const server = new Server({
|
|
67
|
-
name: "
|
|
67
|
+
name: "frontic-ui",
|
|
68
68
|
version: "1.0.0"
|
|
69
69
|
}, { capabilities: {
|
|
70
70
|
resources: {},
|
|
@@ -81,7 +81,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
81
81
|
name: "list_items_in_registries",
|
|
82
82
|
description: "List items from registries (requires components.json - use init_project if missing)",
|
|
83
83
|
inputSchema: zodToJsonSchema(z.object({
|
|
84
|
-
registries: z.array(z.string()).describe("Array of registry names to search (e.g., ['@
|
|
84
|
+
registries: z.array(z.string()).describe("Array of registry names to search (e.g., ['@frontic', '@acme'])"),
|
|
85
85
|
limit: z.number().optional().describe("Maximum number of items to return"),
|
|
86
86
|
offset: z.number().optional().describe("Number of items to skip for pagination")
|
|
87
87
|
}))
|
|
@@ -90,7 +90,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
90
90
|
name: "search_items_in_registries",
|
|
91
91
|
description: "Search for components in registries using fuzzy matching (requires components.json). After finding an item, use get_item_examples_from_registries to see usage examples.",
|
|
92
92
|
inputSchema: zodToJsonSchema(z.object({
|
|
93
|
-
registries: z.array(z.string()).describe("Array of registry names to search (e.g., ['@
|
|
93
|
+
registries: z.array(z.string()).describe("Array of registry names to search (e.g., ['@frontic', '@acme'])"),
|
|
94
94
|
query: z.string().describe("Search query string for fuzzy matching against item names and descriptions"),
|
|
95
95
|
limit: z.number().optional().describe("Maximum number of items to return"),
|
|
96
96
|
offset: z.number().optional().describe("Number of items to skip for pagination")
|
|
@@ -99,20 +99,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
99
99
|
{
|
|
100
100
|
name: "view_items_in_registries",
|
|
101
101
|
description: "View detailed information about specific registry items including the name, description, type and files content. For usage examples, use get_item_examples_from_registries instead.",
|
|
102
|
-
inputSchema: zodToJsonSchema(z.object({ items: z.array(z.string()).describe("Array of item names with registry prefix (e.g., ['@
|
|
102
|
+
inputSchema: zodToJsonSchema(z.object({ items: z.array(z.string()).describe("Array of item names with registry prefix (e.g., ['@frontic/button', '@frontic/card'])") }))
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
105
|
name: "get_item_examples_from_registries",
|
|
106
106
|
description: "Find usage examples and demos with their complete code. Search for patterns like 'accordion-demo', 'button example', 'card-demo', etc. Returns full implementation code with dependencies.",
|
|
107
107
|
inputSchema: zodToJsonSchema(z.object({
|
|
108
|
-
registries: z.array(z.string()).describe("Array of registry names to search (e.g., ['@
|
|
108
|
+
registries: z.array(z.string()).describe("Array of registry names to search (e.g., ['@frontic', '@acme'])"),
|
|
109
109
|
query: z.string().describe("Search query for examples (e.g., 'accordion-demo', 'button demo', 'card example', 'tooltip-demo', 'example-booking-form', 'example-hero'). Common patterns: '{item-name}-demo', '{item-name} example', 'example {item-name}'")
|
|
110
110
|
}))
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
name: "get_add_command_for_items",
|
|
114
|
-
description: "Get the
|
|
115
|
-
inputSchema: zodToJsonSchema(z.object({ items: z.array(z.string()).describe("Array of items to get the add command for prefixed with the registry name (e.g., ['@
|
|
114
|
+
description: "Get the @frontic/ui CLI add command for specific items in a registry. This is useful for adding one or more components to your project.",
|
|
115
|
+
inputSchema: zodToJsonSchema(z.object({ items: z.array(z.string()).describe("Array of items to get the add command for prefixed with the registry name (e.g., ['@frontic/button', '@frontic/card'])") }))
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
name: "get_audit_checklist",
|
|
@@ -144,7 +144,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
144
144
|
You can view the items in a registry by running:
|
|
145
145
|
\`${await npxShadcnVue("view @name-of-registry")}\`
|
|
146
146
|
|
|
147
|
-
For example: \`${await npxShadcnVue("view @
|
|
147
|
+
For example: \`${await npxShadcnVue("view @frontic")}\` or \`${await npxShadcnVue("view @frontic @acme")}\` to view multiple registries.
|
|
148
148
|
`
|
|
149
149
|
}] };
|
|
150
150
|
}
|
|
@@ -206,7 +206,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
206
206
|
type: "text",
|
|
207
207
|
text: dedent`No items found for: ${args.items.join(", ")}
|
|
208
208
|
|
|
209
|
-
Make sure the item names are correct and include the registry prefix (e.g., @
|
|
209
|
+
Make sure the item names are correct and include the registry prefix (e.g., @frontic/button).`
|
|
210
210
|
}] };
|
|
211
211
|
return { content: [{
|
|
212
212
|
type: "text",
|
|
@@ -301,4 +301,4 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
301
301
|
|
|
302
302
|
//#endregion
|
|
303
303
|
export { server as t };
|
|
304
|
-
//# sourceMappingURL=mcp-
|
|
304
|
+
//# sourceMappingURL=mcp-CrpA36mf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-CrpA36mf.js","names":["parts: string[]"],"sources":["../src/mcp/utils.ts","../src/mcp/index.ts"],"sourcesContent":["import type { z } from 'zod'\nimport type { registryItemSchema, searchResultsSchema } from '@/src/schema'\nimport { detectPackageManager } from 'nypm'\nimport { getRegistriesConfig } from '@/src/registry/api'\n\nconst SHADCN_CLI_COMMAND = '@frontic/ui'\n\nexport async function npxShadcnVue(command: string) {\n const packageRunner = await detectPackageManager(process.cwd())\n\n return `${packageRunner?.name} ${SHADCN_CLI_COMMAND} ${command}`\n}\n\nexport async function getMcpConfig(cwd = process.cwd()) {\n const config = await getRegistriesConfig(cwd)\n\n return {\n registries: config.registries,\n }\n}\n\nexport function formatSearchResultsWithPagination(\n results: z.infer<typeof searchResultsSchema>,\n options?: {\n query?: string\n registries?: string[]\n },\n) {\n const { query, registries } = options || {}\n\n const formattedItems = results.items.map((item) => {\n const parts: string[] = [`- ${item.name}`]\n\n if (item.type) {\n parts.push(`(${item.type})`)\n }\n\n if (item.description) {\n parts.push(`- ${item.description}`)\n }\n\n if (item.registry) {\n parts.push(`[${item.registry}]`)\n }\n\n parts.push(\n `\\n Add command: \\`${npxShadcnVue(`add ${item.addCommandArgument}`)}\\``,\n )\n\n return parts.join(' ')\n })\n\n let header = `Found ${results.pagination.total} items`\n if (query) {\n header += ` matching \"${query}\"`\n }\n if (registries && registries.length > 0) {\n header += ` in registries ${registries.join(', ')}`\n }\n header += ':'\n\n const showingRange = `Showing items ${\n results.pagination.offset + 1\n }-${Math.min(\n results.pagination.offset + results.pagination.limit,\n results.pagination.total,\n )} of ${results.pagination.total}:`\n\n let output = `${header}\\n\\n${showingRange}\\n\\n${formattedItems.join('\\n\\n')}`\n\n if (results.pagination.hasMore) {\n output += `\\n\\nMore items available. Use offset: ${\n results.pagination.offset + results.pagination.limit\n } to see the next page.`\n }\n\n return output\n}\n\nexport function formatRegistryItems(\n items: z.infer<typeof registryItemSchema>[],\n) {\n return items.map((item) => {\n const parts: string[] = [\n `## ${item.name}`,\n item.description ? `\\n${item.description}\\n` : '',\n item.type ? `**Type:** ${item.type}` : '',\n item.files && item.files.length > 0\n ? `**Files:** ${item.files.length} file(s)`\n : '',\n item.dependencies && item.dependencies.length > 0\n ? `**Dependencies:** ${item.dependencies.join(', ')}`\n : '',\n item.devDependencies && item.devDependencies.length > 0\n ? `**Dev Dependencies:** ${item.devDependencies.join(', ')}`\n : '',\n ]\n return parts.filter(Boolean).join('\\n')\n })\n}\n\nexport function formatItemExamples(\n items: z.infer<typeof registryItemSchema>[],\n query: string,\n) {\n const sections = items.map((item) => {\n const parts: string[] = [\n `## Example: ${item.name}`,\n item.description ? `\\n${item.description}\\n` : '',\n ]\n\n if (item.files?.length) {\n item.files.forEach((file) => {\n if (file.content) {\n parts.push(`### Code (${file.path}):\\n`)\n parts.push('```tsx')\n parts.push(file.content)\n parts.push('```')\n }\n })\n }\n\n return parts.filter(Boolean).join('\\n')\n })\n\n const header = `# Usage Examples\\n\\nFound ${items.length} example${\n items.length > 1 ? 's' : ''\n } matching \"${query}\":\\n`\n\n return header + sections.join('\\n\\n---\\n\\n')\n}\n","import { Server } from '@modelcontextprotocol/sdk/server/index.js'\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from '@modelcontextprotocol/sdk/types.js'\nimport dedent from 'dedent'\nimport { z } from 'zod'\nimport { zodToJsonSchema } from 'zod-to-json-schema'\nimport { getRegistryItems, searchRegistries } from '@/src/registry'\nimport { RegistryError } from '@/src/registry/errors'\n\nimport {\n formatItemExamples,\n formatRegistryItems,\n formatSearchResultsWithPagination,\n getMcpConfig,\n npxShadcnVue,\n} from './utils'\n\nexport const server = new Server(\n {\n name: 'frontic-ui',\n version: '1.0.0',\n },\n {\n capabilities: {\n resources: {},\n tools: {},\n },\n },\n)\n\nserver.setRequestHandler(ListToolsRequestSchema, async () => {\n return {\n tools: [\n {\n name: 'get_project_registries',\n description:\n 'Get configured registry names from components.json - Returns error if no components.json exists (use init_project to create one)',\n inputSchema: zodToJsonSchema(z.object({})),\n },\n {\n name: 'list_items_in_registries',\n description:\n 'List items from registries (requires components.json - use init_project if missing)',\n inputSchema: zodToJsonSchema(\n z.object({\n registries: z\n .array(z.string())\n .describe(\n 'Array of registry names to search (e.g., [\\'@frontic\\', \\'@acme\\'])',\n ),\n limit: z\n .number()\n .optional()\n .describe('Maximum number of items to return'),\n offset: z\n .number()\n .optional()\n .describe('Number of items to skip for pagination'),\n }),\n ),\n },\n {\n name: 'search_items_in_registries',\n description:\n 'Search for components in registries using fuzzy matching (requires components.json). After finding an item, use get_item_examples_from_registries to see usage examples.',\n inputSchema: zodToJsonSchema(\n z.object({\n registries: z\n .array(z.string())\n .describe(\n 'Array of registry names to search (e.g., [\\'@frontic\\', \\'@acme\\'])',\n ),\n query: z\n .string()\n .describe(\n 'Search query string for fuzzy matching against item names and descriptions',\n ),\n limit: z\n .number()\n .optional()\n .describe('Maximum number of items to return'),\n offset: z\n .number()\n .optional()\n .describe('Number of items to skip for pagination'),\n }),\n ),\n },\n {\n name: 'view_items_in_registries',\n description:\n 'View detailed information about specific registry items including the name, description, type and files content. For usage examples, use get_item_examples_from_registries instead.',\n inputSchema: zodToJsonSchema(\n z.object({\n items: z\n .array(z.string())\n .describe(\n 'Array of item names with registry prefix (e.g., [\\'@frontic/button\\', \\'@frontic/card\\'])',\n ),\n }),\n ),\n },\n {\n name: 'get_item_examples_from_registries',\n description:\n 'Find usage examples and demos with their complete code. Search for patterns like \\'accordion-demo\\', \\'button example\\', \\'card-demo\\', etc. Returns full implementation code with dependencies.',\n inputSchema: zodToJsonSchema(\n z.object({\n registries: z\n .array(z.string())\n .describe(\n 'Array of registry names to search (e.g., [\\'@frontic\\', \\'@acme\\'])',\n ),\n query: z\n .string()\n .describe(\n 'Search query for examples (e.g., \\'accordion-demo\\', \\'button demo\\', \\'card example\\', \\'tooltip-demo\\', \\'example-booking-form\\', \\'example-hero\\'). Common patterns: \\'{item-name}-demo\\', \\'{item-name} example\\', \\'example {item-name}\\'',\n ),\n }),\n ),\n },\n {\n name: 'get_add_command_for_items',\n description:\n 'Get the @frontic/ui CLI add command for specific items in a registry. This is useful for adding one or more components to your project.',\n inputSchema: zodToJsonSchema(\n z.object({\n items: z\n .array(z.string())\n .describe(\n 'Array of items to get the add command for prefixed with the registry name (e.g., [\\'@frontic/button\\', \\'@frontic/card\\'])',\n ),\n }),\n ),\n },\n {\n name: 'get_audit_checklist',\n description:\n 'After creating new components or generating new code files, use this tool for a quick checklist to verify that everything is working as expected. Make sure to run the tool after all required steps have been completed.',\n inputSchema: zodToJsonSchema(z.object({})),\n },\n ],\n }\n})\n\nserver.setRequestHandler(CallToolRequestSchema, async (request) => {\n try {\n if (!request.params.arguments) {\n throw new Error('No tool arguments provided.')\n }\n\n switch (request.params.name) {\n case 'get_project_registries': {\n const config = await getMcpConfig(process.cwd())\n\n if (!config?.registries) {\n return {\n content: [\n {\n type: 'text',\n text: dedent`No components.json found or no registries configured.\n\n To fix this:\n 1. Use the \\`init\\` command to create a components.json file\n 2. Or manually create components.json with a registries section`,\n },\n ],\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: dedent`The following registries are configured in the current project:\n\n ${Object.keys(config.registries)\n .map(registry => `- ${registry}`)\n .join('\\n')}\n\n You can view the items in a registry by running:\n \\`${await npxShadcnVue('view @name-of-registry')}\\`\n\n For example: \\`${await npxShadcnVue(\n 'view @frontic',\n )}\\` or \\`${await npxShadcnVue(\n 'view @frontic @acme',\n )}\\` to view multiple registries.\n `,\n },\n ],\n }\n }\n\n case 'search_items_in_registries': {\n const inputSchema = z.object({\n registries: z.array(z.string()),\n query: z.string(),\n limit: z.number().optional(),\n offset: z.number().optional(),\n })\n\n const args = inputSchema.parse(request.params.arguments)\n const results = await searchRegistries(args.registries, {\n query: args.query,\n limit: args.limit,\n offset: args.offset,\n config: await getMcpConfig(process.cwd()),\n useCache: false,\n })\n\n if (results.items.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: dedent`No items found matching \"${\n args.query\n }\" in registries ${args.registries.join(\n ', ',\n )}, Try searching with a different query or registry.`,\n },\n ],\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: formatSearchResultsWithPagination(results, {\n query: args.query,\n registries: args.registries,\n }),\n },\n ],\n }\n }\n\n case 'list_items_in_registries': {\n const inputSchema = z.object({\n registries: z.array(z.string()),\n limit: z.number().optional(),\n offset: z.number().optional(),\n cwd: z.string().optional(),\n })\n\n const args = inputSchema.parse(request.params.arguments)\n const results = await searchRegistries(args.registries, {\n limit: args.limit,\n offset: args.offset,\n config: await getMcpConfig(process.cwd()),\n useCache: false,\n })\n\n if (results.items.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: dedent`No items found in registries ${args.registries.join(\n ', ',\n )}.`,\n },\n ],\n }\n }\n\n return {\n content: [\n {\n type: 'text',\n text: formatSearchResultsWithPagination(results, {\n registries: args.registries,\n }),\n },\n ],\n }\n }\n\n case 'view_items_in_registries': {\n const inputSchema = z.object({\n items: z.array(z.string()),\n })\n\n const args = inputSchema.parse(request.params.arguments)\n const registryItems = await getRegistryItems(args.items, {\n config: await getMcpConfig(process.cwd()),\n useCache: false,\n })\n\n if (registryItems?.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: dedent`No items found for: ${args.items.join(', ')}\n\n Make sure the item names are correct and include the registry prefix (e.g., @frontic/button).`,\n },\n ],\n }\n }\n\n const formattedItems = formatRegistryItems(registryItems)\n\n return {\n content: [\n {\n type: 'text',\n text: dedent`Item Details:\n\n ${formattedItems.join('\\n\\n---\\n\\n')}`,\n },\n ],\n }\n }\n\n case 'get_item_examples_from_registries': {\n const inputSchema = z.object({\n query: z.string(),\n registries: z.array(z.string()),\n })\n\n const args = inputSchema.parse(request.params.arguments)\n const config = await getMcpConfig()\n\n const results = await searchRegistries(args.registries, {\n query: args.query,\n config,\n useCache: false,\n })\n\n if (results.items.length === 0) {\n return {\n content: [\n {\n type: 'text',\n text: dedent`No examples found for query \"${args.query}\".\n\n Try searching with patterns like:\n - \"accordion-demo\" for accordion examples\n - \"button demo\" or \"button example\"\n - Component name followed by \"-demo\" or \"example\"\n\n You can also:\n 1. Use search_items_in_registries to find all items matching your query\n 2. View the main component with view_items_in_registries for inline usage documentation`,\n },\n ],\n }\n }\n\n const itemNames = results.items.map(item => item.addCommandArgument)\n const fullItems = await getRegistryItems(itemNames, {\n config,\n useCache: false,\n })\n\n return {\n content: [\n {\n type: 'text',\n text: formatItemExamples(fullItems, args.query),\n },\n ],\n }\n }\n\n case 'get_add_command_for_items': {\n const args = z\n .object({\n items: z.array(z.string()),\n })\n .parse(request.params.arguments)\n\n return {\n content: [\n {\n type: 'text',\n text: await npxShadcnVue(`add ${args.items.join(' ')}`),\n },\n ],\n }\n }\n\n case 'get_audit_checklist': {\n return {\n content: [\n {\n type: 'text',\n text: dedent`## Component Audit Checklist\n\n After adding or generating components, check the following common issues:\n\n - [ ] Ensure imports are correct i.e named vs default imports\n - [ ] If using next/image, ensure images.remotePatterns next.config.js is configured correctly.\n - [ ] Ensure all dependencies are installed.\n - [ ] Check for linting errors or warnings\n - [ ] Check for TypeScript errors\n - [ ] Use the Playwright MCP if available.\n `,\n },\n ],\n }\n }\n\n default:\n throw new Error(`Tool ${request.params.name} not found`)\n }\n }\n catch (error) {\n if (error instanceof z.ZodError) {\n return {\n content: [\n {\n type: 'text',\n text: dedent`Invalid input parameters:\n ${error.errors\n .map(e => `- ${e.path.join('.')}: ${e.message}`)\n .join('\\n')}\n `,\n },\n ],\n isError: true,\n }\n }\n\n if (error instanceof RegistryError) {\n let errorMessage = error.message\n\n if (error.suggestion) {\n errorMessage += `\\n\\n💡 ${error.suggestion}`\n }\n\n if (error.context) {\n errorMessage += `\\n\\nContext: ${JSON.stringify(error.context, null, 2)}`\n }\n\n return {\n content: [\n {\n type: 'text',\n text: dedent`Error (${error.code}): ${errorMessage}`,\n },\n ],\n isError: true,\n }\n }\n\n const errorMessage = error instanceof Error ? error.message : String(error)\n return {\n content: [\n {\n type: 'text',\n text: dedent`Error: ${errorMessage}`,\n },\n ],\n isError: true,\n }\n }\n})\n"],"mappings":"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"}
|
package/dist/registry/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as RegistryLocalFileError, J as RegistriesIndexParseError, Q as RegistryInvalidNamespaceError, X as RegistryFetchError, Y as RegistryError, Z as RegistryForbiddenError, a as getRegistriesIndex, et as RegistryMissingEnvironmentVariablesError, it as RegistryUnauthorizedError, nt as RegistryNotFoundError, o as getRegistry, p as resolveRegistryItems, rt as RegistryParseError, t as searchRegistries, tt as RegistryNotConfiguredError, u as getRegistryItems } from "../registry-
|
|
1
|
+
import { $ as RegistryLocalFileError, J as RegistriesIndexParseError, Q as RegistryInvalidNamespaceError, X as RegistryFetchError, Y as RegistryError, Z as RegistryForbiddenError, a as getRegistriesIndex, et as RegistryMissingEnvironmentVariablesError, it as RegistryUnauthorizedError, nt as RegistryNotFoundError, o as getRegistry, p as resolveRegistryItems, rt as RegistryParseError, t as searchRegistries, tt as RegistryNotConfiguredError, u as getRegistryItems } from "../registry-B-cUULNn.js";
|
|
2
2
|
import "../schema-DgHN-d0T.js";
|
|
3
3
|
|
|
4
4
|
export { RegistriesIndexParseError, RegistryError, RegistryFetchError, RegistryForbiddenError, RegistryInvalidNamespaceError, RegistryLocalFileError, RegistryMissingEnvironmentVariablesError, RegistryNotConfiguredError, RegistryNotFoundError, RegistryParseError, RegistryUnauthorizedError, getRegistriesIndex, getRegistry, getRegistryItems, resolveRegistryItems, searchRegistries };
|
|
@@ -28,7 +28,7 @@ const FRAMEWORKS = {
|
|
|
28
28
|
name: "vite",
|
|
29
29
|
label: "Vite",
|
|
30
30
|
links: {
|
|
31
|
-
installation: "https://
|
|
31
|
+
installation: "https://frontic.io/docs/installation/vite",
|
|
32
32
|
tailwind: "https://tailwindcss.com/docs/guides/vite"
|
|
33
33
|
}
|
|
34
34
|
},
|
|
@@ -36,7 +36,7 @@ const FRAMEWORKS = {
|
|
|
36
36
|
name: "nuxt3",
|
|
37
37
|
label: "Nuxt 3",
|
|
38
38
|
links: {
|
|
39
|
-
installation: "https://
|
|
39
|
+
installation: "https://frontic.io/docs/installation/nuxt",
|
|
40
40
|
tailwind: "https://tailwindcss.com/docs/guides/nuxtjs"
|
|
41
41
|
}
|
|
42
42
|
},
|
|
@@ -44,7 +44,7 @@ const FRAMEWORKS = {
|
|
|
44
44
|
name: "nuxt4",
|
|
45
45
|
label: "Nuxt 4",
|
|
46
46
|
links: {
|
|
47
|
-
installation: "https://
|
|
47
|
+
installation: "https://frontic.io/docs/installation/nuxt",
|
|
48
48
|
tailwind: "https://tailwindcss.com/docs/guides/nuxtjs"
|
|
49
49
|
}
|
|
50
50
|
},
|
|
@@ -52,7 +52,7 @@ const FRAMEWORKS = {
|
|
|
52
52
|
name: "astro",
|
|
53
53
|
label: "Astro",
|
|
54
54
|
links: {
|
|
55
|
-
installation: "https://
|
|
55
|
+
installation: "https://frontic.io/docs/installation/astro",
|
|
56
56
|
tailwind: "https://tailwindcss.com/docs/guides/astro"
|
|
57
57
|
}
|
|
58
58
|
},
|
|
@@ -60,7 +60,7 @@ const FRAMEWORKS = {
|
|
|
60
60
|
name: "laravel",
|
|
61
61
|
label: "Laravel",
|
|
62
62
|
links: {
|
|
63
|
-
installation: "https://
|
|
63
|
+
installation: "https://frontic.io/docs/installation/laravel",
|
|
64
64
|
tailwind: "https://tailwindcss.com/docs/guides/laravel"
|
|
65
65
|
}
|
|
66
66
|
},
|
|
@@ -68,7 +68,7 @@ const FRAMEWORKS = {
|
|
|
68
68
|
name: "manual",
|
|
69
69
|
label: "Manual",
|
|
70
70
|
links: {
|
|
71
|
-
installation: "https://
|
|
71
|
+
installation: "https://frontic.io/docs/installation/manual",
|
|
72
72
|
tailwind: "https://tailwindcss.com/docs/installation"
|
|
73
73
|
}
|
|
74
74
|
},
|
|
@@ -76,7 +76,7 @@ const FRAMEWORKS = {
|
|
|
76
76
|
name: "inertia",
|
|
77
77
|
label: "Inertia",
|
|
78
78
|
links: {
|
|
79
|
-
installation: "https://
|
|
79
|
+
installation: "https://frontic.io/docs/installation/manual",
|
|
80
80
|
tailwind: "https://tailwindcss.com/docs/installation"
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -108,7 +108,7 @@ const BASE_COLORS = [
|
|
|
108
108
|
label: "Slate"
|
|
109
109
|
}
|
|
110
110
|
];
|
|
111
|
-
const BUILTIN_REGISTRIES = { "@
|
|
111
|
+
const BUILTIN_REGISTRIES = { "@frontic": `${REGISTRY_URL}/styles/{style}/{name}.json` };
|
|
112
112
|
const DEPRECATED_COMPONENTS = [{
|
|
113
113
|
name: "toast",
|
|
114
114
|
deprecatedBy: "sonner",
|
|
@@ -278,7 +278,7 @@ var RegistryParseError = class extends RegistryError {
|
|
|
278
278
|
code: RegistryErrorCode.PARSE_ERROR,
|
|
279
279
|
cause: parseError,
|
|
280
280
|
context: { item },
|
|
281
|
-
suggestion: "The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object. See https://
|
|
281
|
+
suggestion: "The registry item may be corrupted or have an invalid format. Please make sure it returns a valid JSON object. See https://schema.frontic.io/schema/registry-item.json."
|
|
282
282
|
});
|
|
283
283
|
this.item = item;
|
|
284
284
|
this.parseError = parseError;
|
|
@@ -303,7 +303,7 @@ var RegistryMissingEnvironmentVariablesError = class extends RegistryError {
|
|
|
303
303
|
};
|
|
304
304
|
var RegistryInvalidNamespaceError = class extends RegistryError {
|
|
305
305
|
constructor(name) {
|
|
306
|
-
const message = `Invalid registry namespace: "${name}". Registry names must start with @ (e.g., @
|
|
306
|
+
const message = `Invalid registry namespace: "${name}". Registry names must start with @ (e.g., @frontic, @v0).`;
|
|
307
307
|
super(message, {
|
|
308
308
|
code: RegistryErrorCode.VALIDATION_ERROR,
|
|
309
309
|
context: { name },
|
|
@@ -323,7 +323,7 @@ var ConfigParseError = class extends RegistryError {
|
|
|
323
323
|
code: RegistryErrorCode.INVALID_CONFIG,
|
|
324
324
|
cause: parseError,
|
|
325
325
|
context: { cwd },
|
|
326
|
-
suggestion: "Check your components.json file for syntax errors or invalid configuration. Run 'npx
|
|
326
|
+
suggestion: "Check your components.json file for syntax errors or invalid configuration. Run 'npx @frontic/ui init' to regenerate a valid configuration."
|
|
327
327
|
});
|
|
328
328
|
this.cwd = cwd;
|
|
329
329
|
this.name = "ConfigParseError";
|
|
@@ -342,7 +342,7 @@ var RegistriesIndexParseError = class extends RegistryError {
|
|
|
342
342
|
code: RegistryErrorCode.PARSE_ERROR,
|
|
343
343
|
cause: parseError,
|
|
344
344
|
context: { parseError },
|
|
345
|
-
suggestion: "The registries index may be corrupted or have invalid registry namespace format. Registry names must start with @ (e.g., @
|
|
345
|
+
suggestion: "The registries index may be corrupted or have invalid registry namespace format. Registry names must start with @ (e.g., @frontic, @example)."
|
|
346
346
|
});
|
|
347
347
|
this.parseError = parseError;
|
|
348
348
|
this.name = "RegistriesIndexParseError";
|
|
@@ -632,7 +632,7 @@ async function getProjectConfig(cwd, defaultProjectInfo = null) {
|
|
|
632
632
|
if (existingConfig) return existingConfig;
|
|
633
633
|
if (!projectInfo || !projectInfo.tailwindCssFile || projectInfo.tailwindVersion === "v3" && !projectInfo.tailwindConfigFile) return null;
|
|
634
634
|
return await resolveConfigPaths(cwd, {
|
|
635
|
-
$schema: "https://
|
|
635
|
+
$schema: "https://schema.frontic.io/schema.json",
|
|
636
636
|
typescript: projectInfo.typescript,
|
|
637
637
|
style: "new-york",
|
|
638
638
|
tailwind: {
|
|
@@ -2635,4 +2635,4 @@ function buildRegistryItemNameFromRegistry(name, registry) {
|
|
|
2635
2635
|
|
|
2636
2636
|
//#endregion
|
|
2637
2637
|
export { RegistryLocalFileError as $, mergeEnvContent as A, DEFAULT_TAILWIND_CSS as B, configWithDefaults as C, ICON_LIBRARIES as D, transform$2 as E, getProjectInfo as F, getConfig as G, createConfig as H, getProjectTailwindVersionFromConfig as I, RegistriesIndexParseError as J, getWorkspaceConfig as K, getPackageInfo as L, spinner as M, logger as N, findExistingEnvFile as O, getProjectConfig as P, RegistryInvalidNamespaceError as Q, DEFAULT_COMPONENTS as R, clearRegistryContext as S, updateFiles as T, findCommonRoot$1 as U, DEFAULT_UTILS as V, findPackageRoot as W, RegistryFetchError as X, RegistryError as Y, RegistryForbiddenError as Z, _createSourceFile as _, getRegistriesIndex as a, highlighter as at, handleError as b, getRegistryBaseColors as c, DEPRECATED_COMPONENTS as ct, getRegistryStyles as d, RegistryMissingEnvironmentVariablesError as et, getShadcnRegistryIndex as f, resolveRegistryTree as g, fetchRegistryItems as h, getRegistriesConfig as i, RegistryUnauthorizedError as it, parseRegistryAndItemFromString as j, getNewEnvKeys as k, getRegistryIcons as l, REGISTRY_URL as lt, resolveTree as m, fetchTree as n, RegistryNotFoundError as nt, getRegistry as o, BASE_COLORS as ot, resolveRegistryItems as p, resolveConfigPaths as q, getItemTargetPath as r, RegistryParseError as rt, getRegistryBaseColor as s, BUILTIN_REGISTRIES as st, searchRegistries as t, RegistryNotConfiguredError as tt, getRegistryItems as u, _getQuoteChar as v, isUniversalRegistryItem as w, buildUrlAndHeadersForRegistryItem as x, updateTailwindConfig as y, DEFAULT_TAILWIND_CONFIG as z };
|
|
2638
|
-
//# sourceMappingURL=registry-
|
|
2638
|
+
//# sourceMappingURL=registry-B-cUULNn.js.map
|