Skip to content
This repository was archived by the owner on Mar 27, 2025. It is now read-only.

Commit a04563e

Browse files
committed
fix: build issues
feat: start nuxt package
1 parent e712a5c commit a04563e

File tree

17 files changed

+3421
-761
lines changed

17 files changed

+3421
-761
lines changed

.npmrc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
#shamefully-hoist=true
2-
#strict-peer-dependencies=false
1+
shamefully-hoist=true
2+
strict-peer-dependencies=false

apps/docs/package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@
88
},
99
"devDependencies": {
1010
"@popperjs/core": "2.11.6",
11+
"@vue/tsconfig": "^0.1.3",
1112
"@vuepress/client": "2.0.0-beta.49",
1213
"@vuepress/plugin-register-components": "2.0.0-beta.49",
1314
"@vuepress/plugin-search": "2.0.0-beta.49",
15+
"@vuepress/shared": "2.0.0-beta.49",
1416
"@vuepress/utils": "2.0.0-beta.49",
1517
"bootstrap": "5.2.3",
1618
"bootstrap-vue-next": "workspace:*",
17-
"@vue/tsconfig": "^0.1.3",
19+
"vite": "^2.0.0",
1820
"vue": "3.2.45",
19-
"vuepress": "2.0.0-beta.49",
20-
"@vuepress/shared": "2.0.0-beta.49"
21+
"vuepress": "2.0.0-beta.49"
2122
}
2223
}
+22-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
11
<template>
2-
<b-container>
3-
<b-row>
4-
<b-col> Hello world </b-col>
5-
</b-row>
6-
</b-container>
2+
<div>
3+
<b-form-radio-group v-model="selected" label="Individual radios">
4+
<b-form-radio name="some-radios" value="A">Option A</b-form-radio>
5+
<b-form-radio name="some-radios" value="B">Option B</b-form-radio>
6+
</b-form-radio-group>
7+
<b-form-radio v-model="selected2" value="A">Option A</b-form-radio>
8+
<div class="mt-3">
9+
Selected: <strong>{{ selected }}</strong>
10+
</div>
11+
<div class="mt-3">
12+
Selected2: <strong>{{ selected2 }}</strong>
13+
</div>
14+
</div>
715
</template>
816

9-
<script setup lang="ts">
10-
// You can use this file as a development spot to test your changes
11-
// Please do not commit this file
17+
<script lang="ts">
18+
export default {
19+
data() {
20+
return {
21+
selected: 'A',
22+
selected2: '',
23+
}
24+
},
25+
}
1226
</script>

packages/bootstrap-vue-next/src/components/BAlert/BAlert.vue

+5-1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ const noHoverPauseBoolean = useBooleanish(toRef(props, 'noHoverPause'))
7979
8080
const hasCloseSlot = computed<boolean>(() => !isEmptySlot(slots.close))
8181
82+
const countdownLength = computed(() =>
83+
typeof modelValue.value === 'boolean' ? 0 : modelValue.value
84+
)
85+
8286
const computedClasses = computed(() => [
8387
[`alert-${props.variant}`],
8488
{
@@ -94,7 +98,7 @@ const {
9498
stop,
9599
isPaused,
96100
value: remainingMs,
97-
} = useCountdown(typeof modelValue.value === 'boolean' ? 0 : modelValue, toRef(props, 'interval'), {
101+
} = useCountdown(countdownLength, toRef(props, 'interval'), {
98102
immediate: typeof modelValue.value === 'number' && immediateBoolean.value,
99103
})
100104

packages/bootstrap-vue-next/src/components/BDropdown/BDropdown.vue

+4-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,10 @@ const noShiftBoolean = useBooleanish(toRef(props, 'noShift'))
163163
const lazyBoolean = useBooleanish(toRef(props, 'lazy'))
164164
const splitDisabledBoolean = useBooleanish(toRef(props, 'splitDisabled'))
165165
166-
const offsetToNumber = useToNumber(toRef(props, 'offset'), {method: 'parseInt', nanToZero: true})
166+
const computedOffset = computed(() =>
167+
typeof props.offset === 'string' || typeof props.offset === 'number' ? props.offset : NaN
168+
)
169+
const offsetToNumber = useToNumber(computedOffset, {method: 'parseInt', nanToZero: true})
167170
168171
const floating = ref<HTMLElement | null>(null)
169172
const button = ref<HTMLElement | null>(null)

packages/bootstrap-vue-next/src/components/BPlaceholder/BPlaceholderTable.vue

+4-2
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,13 @@ const props = withDefaults(defineProps<BPlaceholderTableProps>(), {
7171
7272
const columnsToNumber = useToNumber(toRef(props, 'columns'), {nanToZero: true, method: 'parseInt'})
7373
const rowsToNumber = useToNumber(toRef(props, 'rows'), {nanToZero: true, method: 'parseInt'})
74-
const headerColumns = useToNumber(toRef(props, 'headerColumns'), {
74+
const computedHeaderColumns = computed(() => props.headerColumns ?? NaN)
75+
const computedFooterColumns = computed(() => props.footerColumns ?? NaN)
76+
const headerColumns = useToNumber(computedHeaderColumns, {
7577
nanToZero: true,
7678
method: 'parseInt',
7779
})
78-
const footerColumns = useToNumber(toRef(props, 'footerColumns'), {
80+
const footerColumns = useToNumber(computedFooterColumns, {
7981
nanToZero: true,
8082
method: 'parseInt',
8183
})

packages/nuxt/.eslintrc

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"root": true,
3+
"extends": ["@nuxt/eslint-config"]
4+
}

packages/nuxt/.gitignore

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Dependencies
2+
node_modules
3+
4+
# Logs
5+
*.log*
6+
7+
# Temp directories
8+
.temp
9+
.tmp
10+
.cache
11+
12+
# Yarn
13+
**/.yarn/cache
14+
**/.yarn/*state*
15+
16+
# Generated dirs
17+
dist
18+
19+
# Nuxt
20+
.nuxt
21+
.output
22+
.vercel_build_output
23+
.build-*
24+
.env
25+
.netlify
26+
27+
# Env
28+
.env
29+
30+
# Testing
31+
reports
32+
coverage
33+
*.lcov
34+
.nyc_output
35+
36+
# VSCode
37+
.vscode/*
38+
!.vscode/settings.json
39+
!.vscode/tasks.json
40+
!.vscode/launch.json
41+
!.vscode/extensions.json
42+
!.vscode/*.code-snippets
43+
44+
# Intellij idea
45+
*.iml
46+
.idea
47+
48+
# OSX
49+
.DS_Store
50+
.AppleDouble
51+
.LSOverride
52+
.AppleDB
53+
.AppleDesktop
54+
Network Trash Folder
55+
Temporary Items
56+
.apdisk

packages/nuxt/.nuxtrc

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
imports.autoImport=false
2+
typescript.includeWorkspace=true

packages/nuxt/README.md

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
<!--
2+
Get your module up and running quickly.
3+
4+
Find and replace all on all files (CMD+SHIFT+F):
5+
- Name: My Module
6+
- Package name: my-module
7+
- Description: My new Nuxt module
8+
-->
9+
10+
# My Module
11+
12+
[![npm version][npm-version-src]][npm-version-href]
13+
[![npm downloads][npm-downloads-src]][npm-downloads-href]
14+
[![License][license-src]][license-href]
15+
[![Nuxt][nuxt-src]][nuxt-href]
16+
17+
My new Nuxt module for doing amazing things.
18+
19+
- [&nbsp;Release Notes](/CHANGELOG.md)
20+
<!-- - [🏀 Online playground](https://stackblitz.com/github/your-org/my-module?file=playground%2Fapp.vue) -->
21+
<!-- - [📖 &nbsp;Documentation](https://example.com) -->
22+
23+
## Features
24+
25+
<!-- Highlight some of the features your module provide here -->
26+
-&nbsp;Foo
27+
- 🚠 &nbsp;Bar
28+
- 🌲 &nbsp;Baz
29+
30+
## Quick Setup
31+
32+
1. Add `my-module` dependency to your project
33+
34+
```bash
35+
# Using pnpm
36+
pnpm add -D my-module
37+
38+
# Using yarn
39+
yarn add --dev my-module
40+
41+
# Using npm
42+
npm install --save-dev my-module
43+
```
44+
45+
2. Add `my-module` to the `modules` section of `nuxt.config.ts`
46+
47+
```js
48+
export default defineNuxtConfig({
49+
modules: [
50+
'my-module'
51+
]
52+
})
53+
```
54+
55+
That's it! You can now use My Module in your Nuxt app ✨
56+
57+
## Development
58+
59+
```bash
60+
# Install dependencies
61+
npm install
62+
63+
# Generate type stubs
64+
npm run dev:prepare
65+
66+
# Develop with the playground
67+
npm run dev
68+
69+
# Build the playground
70+
npm run dev:build
71+
72+
# Run ESLint
73+
npm run lint
74+
75+
# Run Vitest
76+
npm run test
77+
npm run test:watch
78+
79+
# Release new version
80+
npm run release
81+
```
82+
83+
<!-- Badges -->
84+
[npm-version-src]: https://img.shields.io/npm/v/my-module/latest.svg?style=flat&colorA=18181B&colorB=28CF8D
85+
[npm-version-href]: https://npmjs.com/package/my-module
86+
87+
[npm-downloads-src]: https://img.shields.io/npm/dm/my-module.svg?style=flat&colorA=18181B&colorB=28CF8D
88+
[npm-downloads-href]: https://npmjs.com/package/my-module
89+
90+
[license-src]: https://img.shields.io/npm/l/my-module.svg?style=flat&colorA=18181B&colorB=28CF8D
91+
[license-href]: https://npmjs.com/package/my-module
92+
93+
[nuxt-src]: https://img.shields.io/badge/Nuxt-18181B?logo=nuxt.js
94+
[nuxt-href]: https://nuxt.com

packages/nuxt/package.json

+32-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,41 @@
11
{
22
"name": "@bootstrap-vue-next/nuxt",
33
"description": "",
4-
"version": "0.0.0",
4+
"version": "0.0.1",
55
"license": "MIT",
66
"author": {
77
"name": "Issayah",
88
"url": "https://github.com/VividLemon"
99
},
10-
"main": "index.js",
11-
"private": false,
12-
"keywords": []
10+
"type": "module",
11+
"exports": {
12+
".": {
13+
"types": "./dist/types.d.ts",
14+
"import": "./dist/module.mjs",
15+
"require": "./dist/module.cjs"
16+
}
17+
},
18+
"main": "./dist/module.cjs",
19+
"types": "./dist/types.d.ts",
20+
"files": [
21+
"dist"
22+
],
23+
"scripts": {
24+
"prepack": "nuxt-module-build",
25+
"dev": "nuxi dev playground",
26+
"dev:build": "nuxi build playground",
27+
"dev:prepare": "nuxt-module-build --stub && nuxi prepare playground",
28+
"lint": "eslint ."
29+
},
30+
"dependencies": {
31+
"bootstrap-vue-next": "workspace:*",
32+
"@nuxt/kit": "^3.3.2"
33+
},
34+
"devDependencies": {
35+
"@nuxt/eslint-config": "^0.1.1",
36+
"@nuxt/module-builder": "^0.2.1",
37+
"@nuxt/schema": "^3.3.2",
38+
"eslint": "^8.36.0",
39+
"nuxt": "^3.3.2"
40+
}
1341
}
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export default defineNuxtConfig({
2+
modules: ['../src/module'],
3+
myModule: {}
4+
})

packages/nuxt/playground/package.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"private": true,
3+
"name": "my-module-playground"
4+
}

packages/nuxt/src/module.ts

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { defineNuxtModule, addPlugin, createResolver } from '@nuxt/kit'
2+
3+
// Module options TypeScript interface definition
4+
export interface ModuleOptions {}
5+
6+
export default defineNuxtModule<ModuleOptions>({
7+
meta: {
8+
name: 'my-module',
9+
configKey: 'myModule'
10+
},
11+
// Default configuration options of the Nuxt module
12+
defaults: {},
13+
setup (options, nuxt) {
14+
const resolver = createResolver(import.meta.url)
15+
16+
// Do not add the extension since the `.ts` will be transpiled to `.mjs` after `npm run prepack`
17+
addPlugin(resolver.resolve('./runtime/plugin'))
18+
}
19+
})

packages/nuxt/src/runtime/plugin.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { defineNuxtPlugin } from '#app'
2+
3+
export default defineNuxtPlugin((nuxtApp) => {
4+
console.log('Plugin injected by my-module!')
5+
})

packages/nuxt/tsconfig.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "./playground/.nuxt/tsconfig.json"
3+
}

0 commit comments

Comments
 (0)