diff --git a/hugo/content/components/pivot.md b/hugo/content/components/pivot.md
index 84f31614..77b0b274 100644
--- a/hugo/content/components/pivot.md
+++ b/hugo/content/components/pivot.md
@@ -85,17 +85,3 @@ You can also alter the color of only 1 pivot item.
Disabled
{{}}
-
-## Tabs
-{{}}
-
- Home
- Profile
- Contact
-
-
-
Home
-
Profile
-
Contact
-
-{{ }}
diff --git a/js/index.js b/js/index.js
index f53281ea..9a5682dd 100644
--- a/js/index.js
+++ b/js/index.js
@@ -1,2 +1 @@
export { default as OffCanvas } from './src/offCanvas';
-export { default as Tab } from './src/tab';
diff --git a/js/src/tab.js b/js/src/tab.js
deleted file mode 100644
index b4430dbd..00000000
--- a/js/src/tab.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * Based on Boostrap v5.1.3 - tab.js - MIT
- */
-
-import { defineJQueryPlugin, getElementFromSelector, isDisabled, reflow } from './util/index';
-import EventHandler from './dom/event-handler';
-import SelectorEngine from './dom/selector-engine';
-import BaseComponent from './baseComponent';
-
-/**
- * Constants
- */
-
-const NAME = 'tab';
-const DATA_KEY = 'mellow.tab';
-const EVENT_KEY = `.${DATA_KEY}`;
-const DATA_API_KEY = '.data-api';
-
-const EVENT_HIDE = `hide${EVENT_KEY}`;
-const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
-const EVENT_SHOW = `show${EVENT_KEY}`;
-const EVENT_SHOWN = `shown${EVENT_KEY}`;
-const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
-
-const CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';
-const CLASS_NAME_ACTIVE = 'active';
-const CLASS_NAME_FADE = 'fade';
-const CLASS_NAME_SHOW = 'show';
-
-const SELECTOR_DROPDOWN = '.dropdown';
-const SELECTOR_NAV_LIST_GROUP = '.pivot, .list-group';
-const SELECTOR_ACTIVE = '.active';
-const SELECTOR_ACTIVE_UL = ':scope > li > .active';
-const SELECTOR_DATA_TOGGLE = '[data-mellow-toggle="tab"], [data-mellow-toggle="pill"], [data-mellow-toggle="list"]';
-const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
-const SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
-
-/**
- * Class definition
- */
-
-class Tab extends BaseComponent {
- // Getters
- static get NAME() {
- return NAME;
- }
-
- // Public
- show() {
- if (this._element.parentNode &&
- this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
- this._element.classList.contains(CLASS_NAME_ACTIVE)) {
- return;
- }
-
- const target = getElementFromSelector(this._element);
- const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
- let previous;
-
- if (listElement) {
- const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
- previous = SelectorEngine.find(itemSelector, listElement);
- previous = previous[previous.length - 1];
- }
-
- const hideEvent = previous ?
- EventHandler.trigger(previous, EVENT_HIDE, { relatedTarget: this._element }) :
- null;
-
- const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget: previous });
-
- if (showEvent.defaultPrevented || (hideEvent !== null && hideEvent.defaultPrevented)) {
- return;
- }
-
- this._activate(this._element, listElement);
-
- const complete = () => {
- EventHandler.trigger(previous, EVENT_HIDDEN, { relatedTarget: this._element });
- EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget: previous });
- };
-
- if (target) {
- this._activate(target, target.parentNode, complete);
- } else {
- complete();
- }
- }
-
- // Private
- _activate(element, container, callback) {
- const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?
- SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :
- SelectorEngine.children(container, SELECTOR_ACTIVE);
-
- const active = activeElements[0];
- const isTransitioning = callback && (active && active.classList.contains(CLASS_NAME_FADE));
-
- const complete = () => this._transitionComplete(element, active, callback);
-
- if (active && isTransitioning) {
- active.classList.remove(CLASS_NAME_SHOW);
- this._queueCallback(complete, element, true);
- } else {
- complete();
- }
- }
-
- _transitionComplete(element, active, callback) {
- if (active) {
- active.classList.remove(CLASS_NAME_ACTIVE);
-
- const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
-
- if (dropdownChild) {
- dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
- }
-
- if (active.getAttribute('role') === 'tab') {
- active.setAttribute('aria-selected', false);
- }
- }
-
- element.classList.add(CLASS_NAME_ACTIVE);
- if (element.getAttribute('role') === 'tab') {
- element.setAttribute('aria-selected', true);
- }
-
- reflow(element);
-
- if (element.classList.contains(CLASS_NAME_FADE)) {
- element.classList.add(CLASS_NAME_SHOW);
- }
-
- let parent = element.parentNode;
- if (parent && parent.nodeName === 'LI') {
- parent = parent.parentNode;
- }
-
- if (parent && parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
- const dropdownElement = element.closest(SELECTOR_DROPDOWN);
-
- if (dropdownElement) {
- for (const dropdown of SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement)) {
- dropdown.classList.add(CLASS_NAME_ACTIVE);
- }
- }
-
- element.setAttribute('aria-expanded', true);
- }
-
- if (callback) {
- callback();
- }
- }
-
- // Static
- static jQueryInterface(config) {
- return this.each(function () {
- const data = Tab.getOrCreateInstance(this);
-
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError(`No method named "${config}"`);
- }
-
- data[config]();
- }
- });
- }
-}
-
-/**
- * Data API implementation
- */
-
-EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
- if (['A', 'AREA'].includes(this.tagName)) {
- event.preventDefault();
- }
-
- if (isDisabled(this)) {
- return;
- }
-
- const data = Tab.getOrCreateInstance(this);
- data.show();
-});
-
-/**
- * jQuery
- */
-
-defineJQueryPlugin(Tab);
-
-export default Tab;