Skip to content

Commit 3bc5ed2

Browse files
feat splitpanes components
1 parent 75f0781 commit 3bc5ed2

File tree

5 files changed

+59
-21
lines changed

5 files changed

+59
-21
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
"test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
3030
},
3131
"dependencies": {
32-
"@nuxt/kit": "^3.14.1592"
32+
"@nuxt/kit": "^3.14.1592",
33+
"splitpanes": "^3.1.5"
3334
},
3435
"devDependencies": {
3536
"@nuxt/devtools": "^1.6.3",

playground/app.vue

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
<template>
2-
<div>
3-
Nuxt module playground!
4-
</div>
2+
<Splitpanes
3+
class="default-theme"
4+
horizontal
5+
style="height: 400px"
6+
>
7+
<Pane
8+
min-size="20"
9+
max-size="70"
10+
>
11+
<span>1</span>
12+
</Pane>
13+
<Pane>
14+
<span>2</span>
15+
</Pane>
16+
<Pane max-size="70">
17+
<span>3</span>
18+
</Pane>
19+
</Splitpanes>
520
</template>
6-
7-
<script setup>
8-
</script>

pnpm-lock.yaml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/module.ts

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,40 @@
1-
import { defineNuxtModule, addPlugin, createResolver } from '@nuxt/kit'
1+
import { defineNuxtModule, addComponent } from '@nuxt/kit'
22

3-
export default defineNuxtModule({
3+
export type { Splitpanes, Pane } from 'splitpanes'
4+
5+
export interface SplitpanesOption {
6+
prefix: string
7+
}
8+
9+
export default defineNuxtModule<SplitpanesOption>({
410
meta: {
511
name: 'splitpanes-nuxt',
612
configKey: 'splitpanes',
13+
compatibility: {
14+
nuxt: '>=3.0.0',
15+
},
716
},
8-
defaults: {},
9-
setup(_options, _nuxt) {
10-
const { resolve } = createResolver(import.meta.url)
11-
12-
const runtimeDir = resolve('./runtime')
17+
setup(options, nuxt) {
18+
const prefix = options.prefix || nuxt.options.splitpanes?.prefix || '';
1319

14-
addPlugin({
15-
src: resolve(runtimeDir, 'plugin'),
20+
(['Splitpanes', 'Pane'] as string[]).map(c => ({
21+
name: `${prefix}${c}`,
22+
filePath: 'splitpanes/dist/splitpanes.es.js',
23+
export: c,
24+
})).forEach((c) => {
25+
addComponent(c)
1626
})
27+
28+
// Add slider css
29+
nuxt.options.css.unshift('splitpanes/dist/splitpanes.css')
1730
},
1831
})
32+
33+
declare module '@nuxt/schema' {
34+
interface NuxtConfig {
35+
splitpanes?: SplitpanesOption
36+
}
37+
interface NuxtConfig {
38+
splitpanes?: SplitpanesOption
39+
}
40+
}

src/runtime/plugin.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)