diff --git a/packages/buefy-next/rollup.config.mjs b/packages/buefy-next/rollup.config.mjs index 5f6565cc6..c69c8b71c 100644 --- a/packages/buefy-next/rollup.config.mjs +++ b/packages/buefy-next/rollup.config.mjs @@ -50,7 +50,6 @@ const JS_COMPONENTS = [ 'menu', 'message', 'modal', - 'navbar', 'notification', 'numberinput', 'pagination', diff --git a/packages/buefy-next/src/components/navbar/NavBar.spec.js b/packages/buefy-next/src/components/navbar/NavBar.spec.ts similarity index 86% rename from packages/buefy-next/src/components/navbar/NavBar.spec.js rename to packages/buefy-next/src/components/navbar/NavBar.spec.ts index 8442b5fae..b3628832b 100644 --- a/packages/buefy-next/src/components/navbar/NavBar.spec.js +++ b/packages/buefy-next/src/components/navbar/NavBar.spec.ts @@ -1,8 +1,10 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' import { mount } from '@vue/test-utils' -import BNavbar from '@components/navbar/Navbar' +import type { VueWrapper } from '@vue/test-utils' +import BNavbar from '@components/navbar/Navbar.vue' describe('BNavbar', () => { - let wrapper + let wrapper: VueWrapper<InstanceType<typeof BNavbar>> beforeEach(() => { wrapper = mount(BNavbar) }) @@ -46,7 +48,7 @@ describe('BNavbar', () => { }) it('manage closing the menu as expected', async () => { - wrapper.vm.emitUpdateParentEvent = jest.fn() + wrapper.vm.emitUpdateParentEvent = vi.fn() await wrapper.setProps({ modelValue: true, @@ -65,7 +67,7 @@ describe('BNavbar', () => { }) it('set body classes as expected', async () => { - wrapper.vm.setBodyClass = jest.fn(() => wrapper.vm.setBodyClass) + wrapper.vm.setBodyClass = vi.fn(() => wrapper.vm.setBodyClass) await wrapper.setProps({ fixedTop: true }) expect(wrapper.vm.setBodyClass).toHaveBeenCalled() diff --git a/packages/buefy-next/src/components/navbar/NavBarBurger.spec.js b/packages/buefy-next/src/components/navbar/NavBarBurger.spec.ts similarity index 76% rename from packages/buefy-next/src/components/navbar/NavBarBurger.spec.js rename to packages/buefy-next/src/components/navbar/NavBarBurger.spec.ts index 97b2e47d2..b2a5a7bea 100644 --- a/packages/buefy-next/src/components/navbar/NavBarBurger.spec.js +++ b/packages/buefy-next/src/components/navbar/NavBarBurger.spec.ts @@ -1,8 +1,10 @@ +import { beforeEach, describe, expect, it } from 'vitest' import { shallowMount, mount } from '@vue/test-utils' -import BNavbarBurger from '@components/navbar/NavbarBurger' +import type { VueWrapper } from '@vue/test-utils' +import BNavbarBurger from '@components/navbar/NavbarBurger.vue' describe('BNavbarBurger', () => { - let wrapper + let wrapper: VueWrapper<InstanceType<typeof BNavbarBurger>> beforeEach(() => { wrapper = shallowMount(BNavbarBurger) }) diff --git a/packages/buefy-next/src/components/navbar/NavBarItem.spec.js b/packages/buefy-next/src/components/navbar/NavBarItem.spec.ts similarity index 71% rename from packages/buefy-next/src/components/navbar/NavBarItem.spec.js rename to packages/buefy-next/src/components/navbar/NavBarItem.spec.ts index 493592f0d..8a8821ba6 100644 --- a/packages/buefy-next/src/components/navbar/NavBarItem.spec.js +++ b/packages/buefy-next/src/components/navbar/NavBarItem.spec.ts @@ -1,19 +1,25 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { defineComponent } from 'vue' import { mount, shallowMount } from '@vue/test-utils' -import BNavbarItem from '@components/navbar/NavbarItem' +import type { VueWrapper } from '@vue/test-utils' +import BNavbarItem from '@components/navbar/NavbarItem.vue' -let wrapper +let wrapper: VueWrapper<InstanceType<typeof BNavbarItem>> -const stubBNavBar = { +const stubBNavBar = defineComponent({ data() { return { _isNavBar: true } }, + methods: { + closeMenu: vi.fn() + }, template: ` <div> <slot /> </div>` -} +}) describe('BNavbarItem', () => { const tag = 'div' @@ -36,7 +42,7 @@ describe('BNavbarItem', () => { }) it('emit event from tag and out', async () => { - const testStub = jest.fn() + const testStub = vi.fn() const emitWrap = shallowMount(BNavbarItem, { props: { @@ -60,11 +66,12 @@ describe('BNavbarItem', () => { default: BNavbarItem } }).findComponent(BNavbarItem) - wrapper.vm.$parent.closeMenu = jest.fn() + stubBNavBar.methods!.closeMenu.mockClear() const event = new KeyboardEvent('keyup', { key: 'Escape' }) wrapper.vm.keyPress({}) wrapper.vm.keyPress(event) - expect(wrapper.vm.$parent.closeMenu).toHaveBeenCalledTimes(1) + expect(stubBNavBar.methods!.closeMenu).toHaveBeenCalledTimes(1) + stubBNavBar.methods!.closeMenu.mockClear() }) it('manage click as expected', () => { @@ -73,12 +80,13 @@ describe('BNavbarItem', () => { default: BNavbarItem } }).findComponent(BNavbarItem) - wrapper.vm.$parent.closeMenu = jest.fn() + stubBNavBar.methods!.closeMenu.mockClear() const event = new MouseEvent('click') wrapper.vm.handleClickEvent({ ...event, target: { localName: 'a' } }) - expect(wrapper.vm.$parent.closeMenu).toHaveBeenCalledTimes(1) + expect(stubBNavBar.methods!.closeMenu).toHaveBeenCalledTimes(1) + stubBNavBar.methods!.closeMenu.mockClear() }) }) diff --git a/packages/buefy-next/src/components/navbar/Navbar.vue b/packages/buefy-next/src/components/navbar/Navbar.vue index f0e8cb3b6..b45fe7bfb 100644 --- a/packages/buefy-next/src/components/navbar/Navbar.vue +++ b/packages/buefy-next/src/components/navbar/Navbar.vue @@ -1,13 +1,16 @@ -<script> +<script lang="ts"> import { + defineComponent, h as createElement, resolveComponent, resolveDirective, withDirectives } from 'vue' +import type { PropType, StyleValue, VNode } from 'vue' import NavbarBurger from './NavbarBurger.vue' import clickOutside from '../../directives/clickOutside' +import type { VueClassAttribute } from '../../utils/config' const FIXED_TOP_CLASS = 'is-fixed-top' const BODY_FIXED_TOP_CLASS = 'has-navbar-fixed-top' @@ -17,9 +20,9 @@ const BODY_FIXED_BOTTOM_CLASS = 'has-navbar-fixed-bottom' const BODY_SPACED_FIXED_BOTTOM_CLASS = 'has-spaced-navbar-fixed-bottom' const BODY_CENTERED_CLASS = 'has-navbar-centered' -const isFilled = (str) => !!str +const isFilled = (str?: StyleValue) => !!str -export default { +export default defineComponent({ name: 'BNavbar', components: { NavbarBurger @@ -28,7 +31,7 @@ export default { clickOutside }, props: { - type: [String, Object], + type: [String, Object] as PropType<VueClassAttribute>, transparent: { type: Boolean, default: false @@ -50,7 +53,7 @@ export default { default: false }, wrapperClass: { - type: [String, Array, Object] + type: [String, Array, Object] as PropType<StyleValue> }, closeOnClick: { type: Boolean, @@ -63,7 +66,10 @@ export default { spaced: Boolean, shadow: Boolean }, - emits: ['update:modelValue'], + emits: { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + 'update:modelValue': (_value: boolean) => true + }, data() { return { internalIsActive: this.modelValue, @@ -118,12 +124,12 @@ export default { emitUpdateParentEvent() { this.$emit('update:modelValue', this.internalIsActive) }, - setBodyClass(className) { + setBodyClass(className: string) { if (typeof window !== 'undefined') { document.body.classList.add(className) } }, - removeBodyClass(className) { + removeBodyClass(className: string) { if (typeof window !== 'undefined') { document.body.classList.remove(className) } @@ -153,7 +159,7 @@ export default { return this.genNavbarSlots([navWrapper]) }, - genNavbarSlots(slots) { + genNavbarSlots(slots: VNode[]) { const vnode = createElement( 'nav', { @@ -184,7 +190,7 @@ export default { { isOpened: this.isOpened, onClick: this.toggleActive, - onKeyup: (event) => { + onKeyup: (event: KeyboardEvent) => { if (event.keyCode !== 13) return this.toggleActive() } @@ -193,7 +199,7 @@ export default { const hasBurgerSlot = !!this.$slots.burger return hasBurgerSlot - ? this.$slots.burger({ + ? this.$slots.burger!({ isOpened: this.isOpened, toggleActive: this.toggleActive }) @@ -210,16 +216,16 @@ export default { ] ) }, - genMenuPosition(positionName) { + genMenuPosition(positionName: 'start' | 'end') { return createElement( 'div', { class: `navbar-${positionName}` }, this.$slots[positionName] != null - ? this.$slots[positionName]() + ? this.$slots[positionName]!() : [] ) }, - setBodyFixedTopClass(isSet) { + setBodyFixedTopClass(isSet: boolean) { this.checkIfFixedPropertiesAreColliding() if (isSet) { // TODO Apply only one of the classes once PR is merged in Bulma: @@ -231,7 +237,7 @@ export default { this.removeBodyClass(BODY_SPACED_FIXED_TOP_CLASS) } }, - setBodyFixedBottomClass(isSet) { + setBodyFixedBottomClass(isSet: boolean) { this.checkIfFixedPropertiesAreColliding() if (isSet) { // TODO Apply only one of the classes once PR is merged in Bulma: @@ -264,5 +270,5 @@ export default { render() { return this.genNavbar() } -} +}) </script> diff --git a/packages/buefy-next/src/components/navbar/NavbarBurger.vue b/packages/buefy-next/src/components/navbar/NavbarBurger.vue index 0c3fa1325..98c9926bc 100644 --- a/packages/buefy-next/src/components/navbar/NavbarBurger.vue +++ b/packages/buefy-next/src/components/navbar/NavbarBurger.vue @@ -14,8 +14,10 @@ </a> </template> -<script> -export default { +<script lang="ts"> +import { defineComponent } from 'vue' + +export default defineComponent({ name: 'NavbarBurger', props: { isOpened: { @@ -23,5 +25,5 @@ export default { default: false } } -} +}) </script> diff --git a/packages/buefy-next/src/components/navbar/NavbarDropdown.spec.js b/packages/buefy-next/src/components/navbar/NavbarDropdown.spec.ts similarity index 91% rename from packages/buefy-next/src/components/navbar/NavbarDropdown.spec.js rename to packages/buefy-next/src/components/navbar/NavbarDropdown.spec.ts index f485a961b..20248c6b9 100644 --- a/packages/buefy-next/src/components/navbar/NavbarDropdown.spec.js +++ b/packages/buefy-next/src/components/navbar/NavbarDropdown.spec.ts @@ -1,7 +1,9 @@ +import { beforeEach, describe, expect, it } from 'vitest' import { shallowMount } from '@vue/test-utils' -import BNavbarDropdown from '@components/navbar/NavbarDropdown' +import type { VueWrapper } from '@vue/test-utils' +import BNavbarDropdown from '@components/navbar/NavbarDropdown.vue' -let wrapper +let wrapper: VueWrapper<InstanceType<typeof BNavbarDropdown>> describe('BNavbarDropdown', () => { beforeEach(() => { diff --git a/packages/buefy-next/src/components/navbar/NavbarDropdown.vue b/packages/buefy-next/src/components/navbar/NavbarDropdown.vue index c4b3f5c9d..eac6bf3e0 100644 --- a/packages/buefy-next/src/components/navbar/NavbarDropdown.vue +++ b/packages/buefy-next/src/components/navbar/NavbarDropdown.vue @@ -40,11 +40,13 @@ </div> </template> -<script> +<script lang="ts"> +import { defineComponent } from 'vue' + import clickOutside from '../../directives/clickOutside' import CompatFallthroughMixin from '../../utils/CompatFallthroughMixin' -export default { +export default defineComponent({ name: 'BNavbarDropdown', directives: { clickOutside @@ -67,7 +69,10 @@ export default { default: 'a' } }, - emits: ['active-change'], + emits: { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + 'active-change': (_active: boolean) => true + }, data() { return { newActive: this.active, @@ -91,7 +96,7 @@ export default { showMenu() { this.newActive = true }, - /** + /* * See naming convetion of navbaritem */ closeMenu() { @@ -106,5 +111,5 @@ export default { } } } -} +}) </script> diff --git a/packages/buefy-next/src/components/navbar/NavbarItem.vue b/packages/buefy-next/src/components/navbar/NavbarItem.vue index efede0887..cda1a0814 100644 --- a/packages/buefy-next/src/components/navbar/NavbarItem.vue +++ b/packages/buefy-next/src/components/navbar/NavbarItem.vue @@ -11,10 +11,29 @@ </component> </template> -<script> +<script lang="ts"> +import { defineComponent } from 'vue' +import type { ComponentPublicInstance } from 'vue' + const clickableWhiteList = ['div', 'span', 'input'] -export default { +/* eslint-disable @typescript-eslint/ban-types */ +type NavbarItemParent = ComponentPublicInstance< + {}, // P(rops) + {}, // B (raw bindings) + { + // to accomodate [`_is${item}`] access + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any + }, // D(ata) + {}, // C(omputed) + { + closeMenu: () => void + } // M(ethods) +> +/* eslint-enable @typescript-eslint/ban-types */ + +export default defineComponent({ name: 'BNavbarItem', inheritAttrs: false, props: { @@ -25,37 +44,41 @@ export default { active: Boolean }, methods: { - /** + /* * Keypress event that is bound to the document */ - keyPress({ key }) { + keyPress({ key }: { key?: KeyboardEvent['key'] }) { if (key === 'Escape' || key === 'Esc') { this.closeMenuRecursive(this, ['NavBar']) } }, - /** + /* * Close parent if clicked outside. */ - handleClickEvent(event) { + handleClickEvent(event: { target: { localName: string } }) { const isOnWhiteList = clickableWhiteList.some((item) => item === event.target.localName) if (!isOnWhiteList) { const parent = this.closeMenuRecursive(this, ['NavbarDropdown', 'NavBar']) if (parent && parent.$data._isNavbarDropdown) this.closeMenuRecursive(parent, ['NavBar']) } }, - /** + /* * Close parent recursively */ - closeMenuRecursive(current, targetComponents) { - if (!current.$parent) return null + closeMenuRecursive( + current: ComponentPublicInstance, + targetComponents: string[] + ): NavbarItemParent | null { + const parent = current.$parent as NavbarItemParent | null + if (!parent) return null const foundItem = targetComponents.reduce((acc, item) => { - if (current.$parent.$data[`_is${item}`]) { - current.$parent.closeMenu() - return current.$parent + if (parent.$data[`_is${item}`]) { + parent.closeMenu() + return parent } return acc - }, null) - return foundItem || this.closeMenuRecursive(current.$parent, targetComponents) + }, null as NavbarItemParent | null) + return foundItem || this.closeMenuRecursive(parent, targetComponents) } }, mounted() { @@ -70,5 +93,5 @@ export default { document.removeEventListener('keyup', this.keyPress) } } -} +}) </script> diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavBar.spec.js.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavBar.spec.js.snap deleted file mode 100644 index a678e3bae..000000000 --- a/packages/buefy-next/src/components/navbar/__snapshots__/NavBar.spec.js.snap +++ /dev/null @@ -1,11 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`BNavbar render correctly 1`] = ` -<nav class="navbar" role="navigation" aria-label="main navigation"> - <div class="navbar-brand"><a role="button" class="navbar-burger burger" aria-label="menu" tabindex="0"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></a></div> - <div class="navbar-menu"> - <div class="navbar-start"></div> - <div class="navbar-end"></div> - </div> -</nav> -`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavBar.spec.ts.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavBar.spec.ts.snap new file mode 100644 index 000000000..ff04e666d --- /dev/null +++ b/packages/buefy-next/src/components/navbar/__snapshots__/NavBar.spec.ts.snap @@ -0,0 +1,11 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`BNavbar > render correctly 1`] = ` +"<nav class=\\"navbar\\" role=\\"navigation\\" aria-label=\\"main navigation\\"> + <div class=\\"navbar-brand\\"><a role=\\"button\\" class=\\"navbar-burger burger\\" aria-label=\\"menu\\" tabindex=\\"0\\"><span aria-hidden=\\"true\\"></span><span aria-hidden=\\"true\\"></span><span aria-hidden=\\"true\\"></span></a></div> + <div class=\\"navbar-menu\\"> + <div class=\\"navbar-start\\"></div> + <div class=\\"navbar-end\\"></div> + </div> +</nav>" +`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavBarBurger.spec.js.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavBarBurger.spec.js.snap deleted file mode 100644 index 272faf3e1..000000000 --- a/packages/buefy-next/src/components/navbar/__snapshots__/NavBarBurger.spec.js.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`BNavbarBurger render correctly 1`] = `<a role="button" class="navbar-burger burger" aria-label="menu" tabindex="0"><span aria-hidden="true"></span><span aria-hidden="true"></span><span aria-hidden="true"></span></a>`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavBarBurger.spec.ts.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavBarBurger.spec.ts.snap new file mode 100644 index 000000000..fdb175b75 --- /dev/null +++ b/packages/buefy-next/src/components/navbar/__snapshots__/NavBarBurger.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`BNavbarBurger > render correctly 1`] = `"<a role=\\"button\\" class=\\"navbar-burger burger\\" aria-label=\\"menu\\" tabindex=\\"0\\"><span aria-hidden=\\"true\\"></span><span aria-hidden=\\"true\\"></span><span aria-hidden=\\"true\\"></span></a>"`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavBarItem.spec.js.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavBarItem.spec.js.snap deleted file mode 100644 index b691c5da3..000000000 --- a/packages/buefy-next/src/components/navbar/__snapshots__/NavBarItem.spec.js.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`BNavbarItem render correctly 1`] = `<a class="navbar-item"></a>`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavBarItem.spec.ts.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavBarItem.spec.ts.snap new file mode 100644 index 000000000..c85463367 --- /dev/null +++ b/packages/buefy-next/src/components/navbar/__snapshots__/NavBarItem.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`BNavbarItem > render correctly 1`] = `"<a class=\\"navbar-item\\"></a>"`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavbarDropdown.spec.js.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavbarDropdown.spec.js.snap deleted file mode 100644 index dfb5ec199..000000000 --- a/packages/buefy-next/src/components/navbar/__snapshots__/NavbarDropdown.spec.js.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`BNavbarDropdown render correctly 1`] = ` -<div class="navbar-item has-dropdown"><a class="navbar-link" aria-haspopup="true" tabindex="0"></a> - <div class="navbar-dropdown"></div> -</div> -`; diff --git a/packages/buefy-next/src/components/navbar/__snapshots__/NavbarDropdown.spec.ts.snap b/packages/buefy-next/src/components/navbar/__snapshots__/NavbarDropdown.spec.ts.snap new file mode 100644 index 000000000..525297b7c --- /dev/null +++ b/packages/buefy-next/src/components/navbar/__snapshots__/NavbarDropdown.spec.ts.snap @@ -0,0 +1,7 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`BNavbarDropdown > render correctly 1`] = ` +"<div class=\\"navbar-item has-dropdown\\"><a class=\\"navbar-link\\" aria-haspopup=\\"true\\" tabindex=\\"0\\"></a> + <div class=\\"navbar-dropdown\\"></div> +</div>" +`; diff --git a/packages/buefy-next/src/components/navbar/index.js b/packages/buefy-next/src/components/navbar/index.ts similarity index 89% rename from packages/buefy-next/src/components/navbar/index.js rename to packages/buefy-next/src/components/navbar/index.ts index 1d1506bbe..d231f5419 100644 --- a/packages/buefy-next/src/components/navbar/index.js +++ b/packages/buefy-next/src/components/navbar/index.ts @@ -1,3 +1,4 @@ +import type { App } from 'vue' import Navbar from './Navbar.vue' import NavbarItem from './NavbarItem.vue' import NavbarDropdown from './NavbarDropdown.vue' @@ -5,7 +6,7 @@ import NavbarDropdown from './NavbarDropdown.vue' import { registerComponent } from '../../utils/plugins' const Plugin = { - install(Vue) { + install(Vue: App) { registerComponent(Vue, Navbar) registerComponent(Vue, NavbarItem) registerComponent(Vue, NavbarDropdown) diff --git a/packages/docs/src/pages/components/navbar/Navbar.vue b/packages/docs/src/pages/components/navbar/Navbar.vue index 49a26180b..6d97979c5 100644 --- a/packages/docs/src/pages/components/navbar/Navbar.vue +++ b/packages/docs/src/pages/components/navbar/Navbar.vue @@ -8,15 +8,26 @@ </template> -<script> +<script lang="ts"> + import { defineComponent } from 'vue' + + import { shallowFields } from '@/utils' + import ApiView from '@/components/ApiView.vue' + import Example from '@/components/Example.vue' + import VariablesView from '@/components/VariablesView.vue' + import api from './api/navbar' import variables from './variables/navbar' - import { shallowFields } from '@/utils' - import ExSimple from './examples/ExSimple' + import ExSimple from './examples/ExSimple.vue' import ExSimpleCode from './examples/ExSimple.vue?raw' - export default { + export default defineComponent({ + components: { + ApiView, + Example, + VariablesView + }, data() { return { api, @@ -27,5 +38,5 @@ ExSimpleCode } }, - } + }) </script> diff --git a/packages/docs/src/pages/components/navbar/api/navbar.js b/packages/docs/src/pages/components/navbar/api/navbar.ts similarity index 100% rename from packages/docs/src/pages/components/navbar/api/navbar.js rename to packages/docs/src/pages/components/navbar/api/navbar.ts diff --git a/packages/docs/src/pages/components/navbar/examples/ExSimple.vue b/packages/docs/src/pages/components/navbar/examples/ExSimple.vue index 4786b7518..9bac417ab 100644 --- a/packages/docs/src/pages/components/navbar/examples/ExSimple.vue +++ b/packages/docs/src/pages/components/navbar/examples/ExSimple.vue @@ -39,3 +39,7 @@ </template> </b-navbar> </template> + +<script setup lang="ts"> +import { BNavbar, BNavbarDropdown, BNavbarItem } from '@ntohq/buefy-next' +</script> diff --git a/packages/docs/src/pages/components/navbar/variables/navbar.js b/packages/docs/src/pages/components/navbar/variables/navbar.ts similarity index 100% rename from packages/docs/src/pages/components/navbar/variables/navbar.js rename to packages/docs/src/pages/components/navbar/variables/navbar.ts