@ui0/nuxt 0.0.0-stage → 0.1.1
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/dist/module.d.mts +20 -0
- package/dist/module.d.mts.map +1 -0
- package/dist/module.mjs +100 -0
- package/dist/module.mjs.map +1 -0
- package/dist/runtime/components.d.mts +3 -0
- package/dist/runtime/components.d.mts.map +1 -0
- package/dist/runtime/components.mjs +12 -0
- package/dist/runtime/components.mjs.map +1 -0
- package/dist/runtime/plugin.d.mts +3 -0
- package/dist/runtime/plugin.d.mts.map +1 -0
- package/dist/runtime/plugin.mjs +13 -0
- package/dist/runtime/plugin.mjs.map +1 -0
- package/package.json +46 -4
- package/README.md +0 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NuxtModule } from "@nuxt/schema";
|
|
2
|
+
interface Ui0NuxtModuleOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Explicit path to the theme config, relative to the nuxt root (same
|
|
5
|
+
* convention as the vite plugin / cli: a default export holding either a
|
|
6
|
+
* `ThemePluginConfig` or a core-config wrapper `{ theme: ThemePluginConfig }`).
|
|
7
|
+
* Omitted: the module looks for `ui0.config.ts` / `ui0.theme.ts` at the root;
|
|
8
|
+
* when none is found the built-in default theme ships alone.
|
|
9
|
+
*/
|
|
10
|
+
config?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Auto-register the ui0 components (`Flex`, `Button`, `Icon`,
|
|
13
|
+
* `ThemeProvider`) for Nuxt auto-import, and add their built styles to the
|
|
14
|
+
* ssr css pipeline. Default `true`.
|
|
15
|
+
*/
|
|
16
|
+
components?: boolean;
|
|
17
|
+
}
|
|
18
|
+
declare const module: NuxtModule<Ui0NuxtModuleOptions>;
|
|
19
|
+
export { module as default };
|
|
20
|
+
//# sourceMappingURL=module.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.mts","names":[],"sources":["../src/types.ts","../src/module.ts"],"mappings":";UACiB;;;;;;;;EAQf;;;;;;EAOA;;cCsBI,QAAQ,WAAW"}
|
package/dist/module.mjs
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { addComponent, addPlugin, addTemplate, addTypeTemplate, createResolver, defineNuxtModule, useLogger } from "@nuxt/kit";
|
|
4
|
+
import ui0Theme from "@ui0/theme/vite";
|
|
5
|
+
// src/module.ts
|
|
6
|
+
const CONFIG_NAMES = ["ui0.config.ts", "ui0.theme.ts"];
|
|
7
|
+
const module = defineNuxtModule({
|
|
8
|
+
meta: {
|
|
9
|
+
name: "@ui0/nuxt",
|
|
10
|
+
configKey: "ui0",
|
|
11
|
+
compatibility: { nuxt: "^4.0.0" }
|
|
12
|
+
},
|
|
13
|
+
defaults: { components: true },
|
|
14
|
+
setup(options, nuxt) {
|
|
15
|
+
const logger = useLogger("@ui0/nuxt");
|
|
16
|
+
const resolver = createResolver(import.meta.url);
|
|
17
|
+
let configPath;
|
|
18
|
+
if (options.config) {
|
|
19
|
+
configPath = path.resolve(nuxt.options.rootDir, options.config);
|
|
20
|
+
if (!existsSync(configPath)) throw new Error(`@ui0/nuxt: theme config not found at ${configPath}`);
|
|
21
|
+
} else configPath = CONFIG_NAMES.map((name) => path.join(nuxt.options.rootDir, name)).find((p) => existsSync(p));
|
|
22
|
+
nuxt.hooks.hook("vite:extendConfig", (config) => {
|
|
23
|
+
Object.assign(config, { plugins: [...config.plugins ?? [], ui0Theme(configPath ? { config: configPath } : {})] });
|
|
24
|
+
});
|
|
25
|
+
nuxt.options.css.push("virtual:ui0-theme.css");
|
|
26
|
+
nuxt.options.css.push("@ui0/core/style.css");
|
|
27
|
+
if (options.components) {
|
|
28
|
+
nuxt.options.css.push("@ui0/flex/style.css");
|
|
29
|
+
nuxt.options.css.push("@ui0/button/style.css");
|
|
30
|
+
nuxt.options.css.push("@ui0/icon/style.css");
|
|
31
|
+
nuxt.options.css.push("@ui0/icons/style.css");
|
|
32
|
+
nuxt.options.css.push("@ui0/theme/theme-provider/style.css");
|
|
33
|
+
}
|
|
34
|
+
nuxt.hooks.hook("nitro:config", (nitroConfig) => {
|
|
35
|
+
const externals = nitroConfig.externals ?? {};
|
|
36
|
+
externals.inline = [
|
|
37
|
+
...externals.inline ?? [],
|
|
38
|
+
"@ui0/core",
|
|
39
|
+
"@ui0/theme",
|
|
40
|
+
"@ui0/composable",
|
|
41
|
+
"@ui0/util",
|
|
42
|
+
"@ui0/flex",
|
|
43
|
+
"@ui0/button",
|
|
44
|
+
"@ui0/icon",
|
|
45
|
+
"@ui0/icons"
|
|
46
|
+
];
|
|
47
|
+
nitroConfig.externals = externals;
|
|
48
|
+
});
|
|
49
|
+
addTemplate({
|
|
50
|
+
filename: "ui0-config.mjs",
|
|
51
|
+
getContents: () => configPath ? [
|
|
52
|
+
`import config from ${JSON.stringify(configPath)}`,
|
|
53
|
+
"export default config",
|
|
54
|
+
`export const themeConfig = 'theme' in config ? config.theme : config`
|
|
55
|
+
].join("\n") : [
|
|
56
|
+
`import defaults from '@ui0/theme/config.default'`,
|
|
57
|
+
"export default {}",
|
|
58
|
+
"export const themeConfig = defaults"
|
|
59
|
+
].join("\n")
|
|
60
|
+
});
|
|
61
|
+
addTypeTemplate({
|
|
62
|
+
filename: "types/ui0-config.d.ts",
|
|
63
|
+
getContents: () => [
|
|
64
|
+
"declare module '#build/ui0-config.mjs' {",
|
|
65
|
+
" const config: any",
|
|
66
|
+
" export default config",
|
|
67
|
+
" export const themeConfig: any",
|
|
68
|
+
"}"
|
|
69
|
+
].join("\n")
|
|
70
|
+
});
|
|
71
|
+
addPlugin({ src: resolver.resolve("./runtime/plugin.mjs") });
|
|
72
|
+
if (options.components) {
|
|
73
|
+
addPlugin({ src: resolver.resolve("./runtime/components.mjs") });
|
|
74
|
+
addComponent({
|
|
75
|
+
name: "Flex",
|
|
76
|
+
filePath: "@ui0/flex",
|
|
77
|
+
export: "Flex"
|
|
78
|
+
});
|
|
79
|
+
addComponent({
|
|
80
|
+
name: "Button",
|
|
81
|
+
filePath: "@ui0/button",
|
|
82
|
+
export: "Button"
|
|
83
|
+
});
|
|
84
|
+
addComponent({
|
|
85
|
+
name: "Icon",
|
|
86
|
+
filePath: "@ui0/icon",
|
|
87
|
+
export: "Icon"
|
|
88
|
+
});
|
|
89
|
+
addComponent({
|
|
90
|
+
name: "ThemeProvider",
|
|
91
|
+
filePath: "@ui0/theme/theme-provider",
|
|
92
|
+
export: "ThemeProvider"
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
logger.info(configPath ? `ui0: theme config at ${path.relative(nuxt.options.rootDir, configPath)}` : "ui0: built-in default theme");
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
export { module as default };
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.mjs","names":[],"sources":["../src/module.ts"],"sourcesContent":["// The ui0 Nuxt module. Everything a Nuxt host needs to render ui0 on the\n// server and hydrate it on the client, in one install:\n//\n// modules: ['@ui0/nuxt']\n//\n// Setup steps:\n// 1. wire the theme vite plugin into every nuxt vite config, so the\n// generated theme css is served as `virtual:ui0-theme.css` (config\n// discovery + watch + HMR come free);\n// 2. push the css through nuxt's own pipeline - theme css + the built\n// package styles land in the <head> of every SSR response, so there is\n// no client-side-only injection and no fouc on hydration;\n// 3. expose the consumer's theme config to the build as a template module\n// (single source of truth for server + client);\n// 4. install the runtime plugin creating the core instance + theme on both\n// sides (createUi0 + createUi0Theme are SSR-safe);\n// 5. auto-register the ui0 components for nuxt auto-import.\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\n\nimport {\n addComponent,\n addPlugin,\n addTemplate,\n addTypeTemplate,\n createResolver,\n defineNuxtModule,\n useLogger,\n} from '@nuxt/kit'\nimport type { NuxtModule } from '@nuxt/schema'\nimport ui0Theme from '@ui0/theme/vite'\n\nimport type { Ui0NuxtModuleOptions } from './types'\n\n// same convention the vite plugin / cli use: the theme config default-exports\n// a ThemePluginConfig (or a core-config wrapper) at the project root\nconst CONFIG_NAMES = ['ui0.config.ts', 'ui0.theme.ts']\n\nconst module: NuxtModule<Ui0NuxtModuleOptions> = defineNuxtModule<Ui0NuxtModuleOptions>({\n meta: {\n name: '@ui0/nuxt',\n configKey: 'ui0',\n compatibility: { nuxt: '^4.0.0' }\n },\n defaults: {\n components: true\n },\n setup(options, nuxt) {\n const logger = useLogger('@ui0/nuxt')\n const resolver = createResolver(import.meta.url)\n\n let configPath: string | undefined\n if (options.config) {\n configPath = path.resolve(nuxt.options.rootDir, options.config)\n if (!existsSync(configPath)) {\n throw new Error(`@ui0/nuxt: theme config not found at ${configPath}`)\n }\n } else {\n configPath = CONFIG_NAMES.map((name) => path.join(nuxt.options.rootDir, name)).find((p) => existsSync(p))\n }\n\n // 1. the theme css pipeline, in every vite config nuxt composes\n nuxt.hooks.hook('vite:extendConfig', (config) => {\n Object.assign(config, { plugins: [...(config.plugins ?? []), ui0Theme(configPath ? { config: configPath } : {})] })\n })\n\n // 2. ssr-safe css: the virtual theme module + the built package styles\n // ship in the head of every response\n nuxt.options.css.push('virtual:ui0-theme.css')\n nuxt.options.css.push('@ui0/core/style.css')\n if (options.components) {\n nuxt.options.css.push('@ui0/flex/style.css')\n nuxt.options.css.push('@ui0/button/style.css')\n nuxt.options.css.push('@ui0/icon/style.css')\n nuxt.options.css.push('@ui0/icons/style.css')\n nuxt.options.css.push('@ui0/theme/theme-provider/style.css')\n }\n\n // The component packages ship a side-effect style import in their entry\n // (auto-styles for bundler consumers). Node ESM cannot load css, so a\n // nitro server externalizing them crashes at runtime - inline the ui0\n // runtime scope into the nitro build instead, where vite transforms the\n // css imports away.\n nuxt.hooks.hook('nitro:config', (nitroConfig) => {\n // the fallback hook type omits `externals` (it exists on NitroConfig at runtime)\n const externals = (nitroConfig as { externals?: { inline?: Array<string | RegExp | ((id: string) => boolean)> } }).externals ?? {}\n externals.inline = [...(externals.inline ?? []), '@ui0/core', '@ui0/theme', '@ui0/composable', '@ui0/util', '@ui0/flex', '@ui0/button', '@ui0/icon', '@ui0/icons']\n ;(nitroConfig as { externals?: unknown }).externals = externals\n })\n\n // 3. the config as a build module - the runtime plugin imports it on the\n // server and the client from the single source of truth\n addTemplate({\n filename: 'ui0-config.mjs',\n getContents: () =>\n configPath\n ? [\n `import config from ${JSON.stringify(configPath)}`,\n 'export default config',\n // accept both shapes the vite plugin accepts: a bare\n // ThemePluginConfig or a core-config wrapper\n `export const themeConfig = 'theme' in config ? config.theme : config`\n ].join('\\n')\n : [\n // no config at all: the built-in default theme ships alone\n `import defaults from '@ui0/theme/config.default'`,\n 'export default {}',\n 'export const themeConfig = defaults'\n ].join('\\n')\n })\n addTypeTemplate({\n filename: 'types/ui0-config.d.ts',\n getContents: () =>\n [\n \"declare module '#build/ui0-config.mjs' {\",\n ' const config: any',\n ' export default config',\n ' export const themeConfig: any',\n '}'\n ].join('\\n')\n })\n\n // 4. the ui0 runtime: core + theme install, on the server and the client\n addPlugin({ src: resolver.resolve('./runtime/plugin.mjs') })\n\n // 5. component auto-registration (+ the icon wiring)\n if (options.components) {\n addPlugin({ src: resolver.resolve('./runtime/components.mjs') })\n addComponent({ name: 'Flex', filePath: '@ui0/flex', export: 'Flex' })\n addComponent({ name: 'Button', filePath: '@ui0/button', export: 'Button' })\n addComponent({ name: 'Icon', filePath: '@ui0/icon', export: 'Icon' })\n addComponent({ name: 'ThemeProvider', filePath: '@ui0/theme/theme-provider', export: 'ThemeProvider' })\n }\n\n logger.info(configPath ? `ui0: theme config at ${path.relative(nuxt.options.rootDir, configPath)}` : 'ui0: built-in default theme')\n }\n})\n\nexport default module\n"],"mappings":";;;;;AAoCA,MAAM,eAAe,CAAC,iBAAiB,cAAc;AAErD,MAAM,SAA2C,iBAAuC;CACtF,MAAM;EACJ,MAAM;EACN,WAAW;EACX,eAAe,EAAE,MAAM,SAAS;CAClC;CACA,UAAU,EACR,YAAY,KACd;CACA,MAAM,SAAS,MAAM;EACnB,MAAM,SAAS,UAAU,WAAW;EACpC,MAAM,WAAW,eAAe,YAAY,GAAG;EAE/C,IAAI;EACJ,IAAI,QAAQ,QAAQ;GAClB,aAAa,KAAK,QAAQ,KAAK,QAAQ,SAAS,QAAQ,MAAM;GAC9D,IAAI,CAAC,WAAW,UAAU,GACxB,MAAM,IAAI,MAAM,wCAAwC,YAAY;EAExE,OACE,aAAa,aAAa,KAAK,SAAS,KAAK,KAAK,KAAK,QAAQ,SAAS,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,WAAW,CAAC,CAAC;EAI1G,KAAK,MAAM,KAAK,sBAAsB,WAAW;GAC/C,OAAO,OAAO,QAAQ,EAAE,SAAS,CAAC,GAAI,OAAO,WAAW,CAAC,GAAI,SAAS,aAAa,EAAE,QAAQ,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;EACpH,CAAC;EAID,KAAK,QAAQ,IAAI,KAAK,uBAAuB;EAC7C,KAAK,QAAQ,IAAI,KAAK,qBAAqB;EAC3C,IAAI,QAAQ,YAAY;GACtB,KAAK,QAAQ,IAAI,KAAK,qBAAqB;GAC3C,KAAK,QAAQ,IAAI,KAAK,uBAAuB;GAC7C,KAAK,QAAQ,IAAI,KAAK,qBAAqB;GAC3C,KAAK,QAAQ,IAAI,KAAK,sBAAsB;GAC5C,KAAK,QAAQ,IAAI,KAAK,qCAAqC;EAC7D;EAOA,KAAK,MAAM,KAAK,iBAAiB,gBAAgB;GAE/C,MAAM,YAAa,YAAgG,aAAa,CAAC;GACjI,UAAU,SAAS;IAAC,GAAI,UAAU,UAAU,CAAC;IAAI;IAAa;IAAc;IAAmB;IAAa;IAAa;IAAe;IAAa;GAAY;GAChK,YAAyC,YAAY;EACxD,CAAC;EAID,YAAY;GACV,UAAU;GACV,mBACE,aACI;IACE,sBAAsB,KAAK,UAAU,UAAU;IAC/C;IAGA;GACF,CAAC,CAAC,KAAK,IAAI,IACX;IAEE;IACA;IACA;GACF,CAAC,CAAC,KAAK,IAAI;EACnB,CAAC;EACD,gBAAgB;GACd,UAAU;GACV,mBACE;IACE;IACA;IACA;IACA;IACA;GACF,CAAC,CAAC,KAAK,IAAI;EACf,CAAC;EAGD,UAAU,EAAE,KAAK,SAAS,QAAQ,sBAAsB,EAAE,CAAC;EAG3D,IAAI,QAAQ,YAAY;GACtB,UAAU,EAAE,KAAK,SAAS,QAAQ,0BAA0B,EAAE,CAAC;GAC/D,aAAa;IAAE,MAAM;IAAQ,UAAU;IAAa,QAAQ;GAAO,CAAC;GACpE,aAAa;IAAE,MAAM;IAAU,UAAU;IAAe,QAAQ;GAAS,CAAC;GAC1E,aAAa;IAAE,MAAM;IAAQ,UAAU;IAAa,QAAQ;GAAO,CAAC;GACpE,aAAa;IAAE,MAAM;IAAiB,UAAU;IAA6B,QAAQ;GAAgB,CAAC;EACxG;EAEA,OAAO,KAAK,aAAa,wBAAwB,KAAK,SAAS,KAAK,QAAQ,SAAS,UAAU,MAAM,6BAA6B;CACpI;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.d.mts","names":[],"sources":["../../src/runtime/components.ts"],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { defineNuxtPlugin } from "#app";
|
|
2
|
+
import { createIcon } from "@ui0/icon";
|
|
3
|
+
import { createUi0IconFramework } from "@ui0/icon/ui0";
|
|
4
|
+
import Icons from "@ui0/icons";
|
|
5
|
+
// src/runtime/components.ts
|
|
6
|
+
var components_default = defineNuxtPlugin((nuxtApp) => {
|
|
7
|
+
nuxtApp.vueApp.use(createIcon({ framework: createUi0IconFramework() }));
|
|
8
|
+
nuxtApp.vueApp.use(Icons);
|
|
9
|
+
});
|
|
10
|
+
export { components_default as default };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=components.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components.mjs","names":[],"sources":["../../src/runtime/components.ts"],"sourcesContent":["import { createIcon } from '@ui0/icon'\nimport { createUi0IconFramework } from '@ui0/icon/ui0'\nimport Icons from '@ui0/icons'\nimport { defineNuxtPlugin } from '#app'\n\n// The icon wiring, added only when the module's `components` option is on\n// (same flag as the Icon component auto-registration). The ui0 bridge feeds\n// the icon theme contracts + configured defaults from the instances the\n// core plugin installed; the pack registers the IconUi0* components the\n// Icon component resolves at render.\nexport default defineNuxtPlugin((nuxtApp) => {\n nuxtApp.vueApp.use(createIcon({ framework: createUi0IconFramework() }))\n nuxtApp.vueApp.use(Icons)\n})\n"],"mappings":";;;;;AAUA,IAAA,qBAAe,kBAAkB,YAAY;CAC3C,QAAQ,OAAO,IAAI,WAAW,EAAE,WAAW,uBAAuB,EAAE,CAAC,CAAC;CACtE,QAAQ,OAAO,IAAI,KAAK;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.mts","names":[],"sources":["../../src/runtime/plugin.ts"],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createUi0 } from "@ui0/core";
|
|
2
|
+
import { createUi0Theme } from "@ui0/theme";
|
|
3
|
+
import { defineNuxtPlugin } from "#app";
|
|
4
|
+
import ui0Config, { themeConfig } from "#build/ui0-config.mjs";
|
|
5
|
+
// src/runtime/plugin.ts
|
|
6
|
+
var plugin_default = defineNuxtPlugin((nuxtApp) => {
|
|
7
|
+
const ui0 = createUi0(ui0Config);
|
|
8
|
+
ui0.use(createUi0Theme(themeConfig));
|
|
9
|
+
nuxtApp.vueApp.use(ui0);
|
|
10
|
+
});
|
|
11
|
+
export { plugin_default as default };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.mjs","names":[],"sources":["../../src/runtime/plugin.ts"],"sourcesContent":["import { createUi0 } from '@ui0/core'\nimport { createUi0Theme } from '@ui0/theme'\nimport { defineNuxtPlugin } from '#app'\n\nimport ui0Config, { themeConfig } from '#build/ui0-config.mjs'\n\n// The ui0 runtime on both sides of the nuxt app. The core instance + theme\n// are created per app (nuxt calls plugins on the server for SSR and again on\n// the client for hydration), so inject/provide resolve identically in both\n// renders. Style delivery stays with the module's css pipeline - the install\n// is a no-op without a DOM.\nexport default defineNuxtPlugin((nuxtApp) => {\n const ui0 = createUi0(ui0Config)\n ui0.use(createUi0Theme(themeConfig))\n nuxtApp.vueApp.use(ui0)\n})\n\n"],"mappings":";;;;;AAWA,IAAA,iBAAe,kBAAkB,YAAY;CAC3C,MAAM,MAAM,UAAU,SAAS;CAC/B,IAAI,IAAI,eAAe,WAAW,CAAC;CACnC,QAAQ,OAAO,IAAI,GAAG;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ui0/nuxt",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Nuxt module for ui0: theme css pipeline, core+theme plugin install, component auto-registration - SSR-safe out of the box",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
8
|
+
"type": "module",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/module.d.mts",
|
|
12
|
+
"import": "./dist/module.mjs"
|
|
13
|
+
},
|
|
14
|
+
"./runtime/plugin": {
|
|
15
|
+
"types": "./dist/runtime/plugin.d.mts",
|
|
16
|
+
"import": "./dist/runtime/plugin.mjs"
|
|
17
|
+
},
|
|
18
|
+
"./runtime/components": {
|
|
19
|
+
"types": "./dist/runtime/components.d.mts",
|
|
20
|
+
"import": "./dist/runtime/components.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./package.json": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"nuxt:build": "tsdown",
|
|
26
|
+
"nuxt:dev": "tsdown --watch",
|
|
27
|
+
"nuxt:typecheck": "tsc -p tsconfig.json --noEmit",
|
|
28
|
+
"nuxt:test": "vitest run --passWithNoTests",
|
|
29
|
+
"nuxt:publish": "node ../../scripts/publish-packages.ts"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@nuxt/kit": "^4.6.4",
|
|
33
|
+
"@ui0/button": "^0.1.3",
|
|
34
|
+
"@ui0/core": "^0.1.4",
|
|
35
|
+
"@ui0/flex": "^0.1.3",
|
|
36
|
+
"@ui0/icon": "^0.1.3",
|
|
37
|
+
"@ui0/icons": "^0.1.3",
|
|
38
|
+
"@ui0/theme": "^0.1.4"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@nuxt/schema": "^4.6.4",
|
|
42
|
+
"@types/node": "^22.0.0"
|
|
43
|
+
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"nuxt": "^4.0.0",
|
|
46
|
+
"vue": "^3.5.45"
|
|
47
|
+
}
|
|
48
|
+
}
|
package/README.md
DELETED