(isSidebarOpen = event)" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- On this page
-
-
-
-
-
+
+
+
+
+
+
+
+
{{ title }}
+
{{ description }}
+
+
+
+
+
-
+
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_component-examples.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_component-examples.scss
index 6561eaee..c0909660 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_component-examples.scss
+++ b/packages/docs/.vuepress/theme-coreui/src/client/styles/_component-examples.scss
@@ -374,19 +374,20 @@ div[class^="language-"],
.highlight {
position: relative;
padding: .75rem ($cd-gutter-x * .5);
- margin-bottom: 1rem;
+ margin: 0 ($cd-gutter-x * -.5) 1rem ($cd-gutter-x * -.5) ;
border: 1px solid var(--cui-border-color);
background-color: var(--cd-pre-bg);
@include media-breakpoint-up(md) {
padding: .75rem 1.25rem;
+ margin-right: 0;
+ margin-left: 0;
@include border-radius(var(--cui-border-radius));
}
pre {
padding: .25rem 0 .875rem;
margin-top: .8125rem;
- margin-right: 1.875rem;
margin-bottom: 0;
overflow: overlay;
white-space: pre;
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss
index 284eae98..2ee63995 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss
+++ b/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss
@@ -3,4 +3,52 @@
@include ltr-rtl("padding-left", var(--cui-sidebar-occupy-start, 0));
will-change: auto;
@include transition(padding .15s);
-}
\ No newline at end of file
+
+ > .container-lg {
+ --cui-gutter-x: 3rem;
+ }
+}
+
+.docs-sidebar {
+ grid-area: sidebar;
+}
+
+.docs-main {
+ grid-area: main;
+
+ @include media-breakpoint-down(lg) {
+ max-width: 760px;
+ margin-inline: auto;
+ }
+
+ @include media-breakpoint-up(md) {
+ display: grid;
+ grid-template-areas:
+ "intro"
+ "toc"
+ "content";
+ grid-template-rows: auto auto 1fr;
+ gap: $grid-gutter-width;
+ }
+
+ @include media-breakpoint-up(lg) {
+ grid-template-areas:
+ "intro toc"
+ "content toc";
+ grid-template-rows: auto 1fr;
+ grid-template-columns: 4fr 1fr;
+ }
+}
+
+.docs-intro {
+ grid-area: intro;
+}
+
+.docs-toc {
+ grid-area: toc;
+}
+
+.docs-content {
+ grid-area: content;
+ min-width: 1px; // Fix width when bd-content contains a `` https://github.com/twbs/bootstrap/issues/25410
+}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss
index fc1f0fee..8f6dc04d 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss
+++ b/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss
@@ -1,3 +1,5 @@
+// stylelint-disable selector-max-type
+
.docs-toc {
@include media-breakpoint-up(lg) {
position: sticky;
@@ -37,4 +39,49 @@
}
}
}
-}
\ No newline at end of file
+}
+
+.docs-toc-toggle {
+ display: flex;
+ align-items: center;
+
+ @include media-breakpoint-down(sm) {
+ justify-content: space-between;
+ width: 100%;
+ }
+
+ @include media-breakpoint-down(md) {
+ color: var(--cui-body-color);
+ border: 1px solid var(--cui-border-color);
+ @include border-radius(var(--cui-border-radius));
+
+ &:hover,
+ &:focus,
+ &:active,
+ &[aria-expanded="true"] {
+ color: var(--cui-primary);
+ background-color: var(--cui-body-bg);
+ border-color: var(--cui-primary);
+ }
+
+ &:focus,
+ &[aria-expanded="true"] {
+ box-shadow: 0 0 0 3px rgba(var(--cui-primary-rgb), .25);
+ }
+ }
+}
+
+.docs-toc-collapse {
+ @include media-breakpoint-down(md) {
+ nav {
+ padding: 1.25rem 1.25rem 1.25rem 1rem;
+ background-color: var(--cui-tertiary-bg);
+ border: 1px solid var(--cui-border-color);
+ @include border-radius(var(--cui-border-radius));
+ }
+ }
+
+ @include media-breakpoint-up(md) {
+ display: block !important; // stylelint-disable-line declaration-no-important
+ }
+}
From fc881ad0474ca57e209b5859f90c46b00feb64f3 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Sun, 26 May 2024 14:23:05 +0200
Subject: [PATCH 277/346] chore: update dependencies and devDependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@coreui/coreui ^5.0.0 → ^5.0.1
@vuepress/plugin-active-header-links 2.0.0-rc.0 → 2.0.0-rc.30
@vuepress/plugin-back-to-top 2.0.0-rc.0 → 2.0.0-rc.30
@vuepress/plugin-container 2.0.0-rc.0 → 2.0.0-rc.28
@vuepress/plugin-prismjs 2.0.0-rc.0 → 2.0.0-rc.30
@vuepress/plugin-register-components 2.0.0-rc.0 → 2.0.0-rc.30
@vuepress/plugin-theme-data 2.0.0-rc.0 → 2.0.0-rc.30
@vuepress/plugin-toc 2.0.0-rc.0 → 2.0.0-rc.30
vuepress 2.0.0-rc.0 → 2.0.0-rc.11
---
packages/docs/package.json | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/packages/docs/package.json b/packages/docs/package.json
index 95f61218..1795fdbe 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -9,17 +9,25 @@
"license": "MIT",
"devDependencies": {
"@coreui/chartjs": "^4.0.0",
- "@coreui/coreui": "^5.0.0",
+ "@coreui/coreui": "^5.0.1",
"@coreui/icons": "^3.0.1",
"@coreui/icons-vue": "^2.0.0",
"@coreui/utils": "^2.0.2",
"@coreui/vue-chartjs": "^3.0.0",
"@docsearch/css": "^3.6.0",
"@docsearch/js": "^3.6.0",
- "@vuepress/plugin-register-components": "2.0.0-rc.0",
- "@vuepress/plugin-toc": "2.0.0-rc.0",
+ "@vuepress/bundler-vite": "2.0.0-rc.11",
+ "@vuepress/plugin-active-header-links": "2.0.0-rc.30",
+ "@vuepress/plugin-back-to-top": "2.0.0-rc.30",
+ "@vuepress/plugin-container": "2.0.0-rc.28",
+ "@vuepress/plugin-git": "2.0.0-rc.30",
+ "@vuepress/plugin-prismjs": "2.0.0-rc.30",
+ "@vuepress/plugin-theme-data": "2.0.0-rc.30",
+ "@vuepress/plugin-register-components": "2.0.0-rc.30",
+ "@vuepress/plugin-toc": "2.0.0-rc.30",
"markdown-it-include": "^2.0.0",
+ "sass": "^1.77.2",
"vue-docgen-cli": "^4.79.0",
- "vuepress": "2.0.0-rc.0"
+ "vuepress": "2.0.0-rc.11"
}
}
From 1912045de18ba79118f0ebed75345ca0b935804d Mon Sep 17 00:00:00 2001
From: mrholek
Date: Sun, 26 May 2024 14:33:04 +0200
Subject: [PATCH 278/346] docs: improve theme
---
packages/docs/.vuepress/config.ts | 11 ++--
.../src/assets/brand/coreui-vue.svg | 0
.../src/client/components/Ads.vue | 0
.../src/client/components/Banner.vue | 0
.../src/client/components/Callout.vue | 0
.../src/client/components/Footer.vue | 3 +-
.../src/client/components/Header.vue | 0
.../src/client/components/OtherFrameworks.vue | 1 +
.../src/client/components/ScssDocs.vue | 0
.../src/client/components/Sidebar.vue | 0
.../src/client/components/SidebarNav.ts | 0
.../src/client/components/Toc.vue | 0
.../client/components/other_frameworks.json | 0
.../src/client/composables/index.ts | 0
.../src/client/composables/useNavLink.ts | 0
.../useResolveRouteWithRedirect.ts | 0
.../client/composables/useScrollPromise.ts | 0
.../src/client/composables/useSidebarItems.ts | 3 +-
.../src/client/composables/useThemeData.ts | 0
.../{theme-coreui => }/src/client/config.ts | 0
.../{theme-coreui => }/src/client/index.ts | 0
.../src/client/layouts/404.vue | 0
.../src/client/layouts/Layout.vue | 0
.../src/client/layouts/Redirect.vue | 0
.../{theme-coreui => }/src/client/shim.d.ts | 0
.../src/client/styles/_ads.scss | 0
.../src/client/styles/_anchor.scss | 0
.../src/client/styles/_callouts.scss | 0
.../client/styles/_component-examples.scss | 0
.../src/client/styles/_footer.scss | 0
.../src/client/styles/_layout.scss | 0
.../src/client/styles/_prism.scss | 0
.../src/client/styles/_scrolling.scss | 0
.../src/client/styles/_search.scss | 0
.../src/client/styles/_sidebar.scss | 0
.../src/client/styles/_table-api.scss | 0
.../src/client/styles/_toc.scss | 0
.../src/client/styles/_variables.scss | 0
.../src/client/styles/custom-container.scss | 0
.../src/client/styles/index.scss | 0
.../src/node/defaultTheme.ts | 0
.../{theme-coreui => }/src/node/index.ts | 0
.../node/utils/assignDefaultLocaleOptions.ts | 0
.../src/node/utils/index.ts | 0
.../{theme-coreui => }/src/shared/index.ts | 0
.../{theme-coreui => }/src/shared/nav.ts | 0
.../{theme-coreui => }/src/shared/options.ts | 0
.../{theme-coreui => }/src/shared/page.ts | 0
.../{theme-coreui => }/templates/build.html | 0
.../docs/.vuepress/theme-coreui/package.json | 52 -------------------
50 files changed, 12 insertions(+), 58 deletions(-)
rename packages/docs/.vuepress/{theme-coreui => }/src/assets/brand/coreui-vue.svg (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Ads.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Banner.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Callout.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Footer.vue (95%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Header.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/OtherFrameworks.vue (98%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/ScssDocs.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Sidebar.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/SidebarNav.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/Toc.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/components/other_frameworks.json (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/composables/index.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/composables/useNavLink.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/composables/useResolveRouteWithRedirect.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/composables/useScrollPromise.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/composables/useSidebarItems.ts (99%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/composables/useThemeData.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/config.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/index.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/layouts/404.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/layouts/Layout.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/layouts/Redirect.vue (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/shim.d.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_ads.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_anchor.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_callouts.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_component-examples.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_footer.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_layout.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_prism.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_scrolling.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_search.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_sidebar.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_table-api.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_toc.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/_variables.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/custom-container.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/client/styles/index.scss (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/node/defaultTheme.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/node/index.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/node/utils/assignDefaultLocaleOptions.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/node/utils/index.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/shared/index.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/shared/nav.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/shared/options.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/src/shared/page.ts (100%)
rename packages/docs/.vuepress/{theme-coreui => }/templates/build.html (100%)
delete mode 100755 packages/docs/.vuepress/theme-coreui/package.json
diff --git a/packages/docs/.vuepress/config.ts b/packages/docs/.vuepress/config.ts
index 4c55aee9..34678fec 100644
--- a/packages/docs/.vuepress/config.ts
+++ b/packages/docs/.vuepress/config.ts
@@ -1,7 +1,8 @@
import { defineUserConfig } from 'vuepress'
+import { viteBundler } from '@vuepress/bundler-vite'
import anchor from 'markdown-it-anchor'
import include_plugin from 'markdown-it-include'
-import { defaultTheme } from './theme-coreui'
+import { defaultTheme } from './src/node/defaultTheme'
import { containerPlugin } from '@vuepress/plugin-container'
import { registerComponentsPlugin } from '@vuepress/plugin-register-components'
@@ -18,6 +19,10 @@ export default defineUserConfig({
head: [
['link', { rel: 'icon', href: `/vue/docs/favicons/favicon-96x96.png` }],
],
+ bundler: viteBundler({
+ viteOptions: {},
+ vuePluginOptions: {},
+ }),
markdown: {
anchor: {
permalink: anchor.permalink.ariaHidden({
@@ -79,8 +84,8 @@ export default defineUserConfig({
tocPlugin({}),
registerComponentsPlugin({
components: {
- Callout: path.resolve(__dirname, './theme-coreui/src/client/components/Callout.vue'),
- ScssDocs: path.resolve(__dirname, './theme-coreui/src/client/components/ScssDocs.vue'),
+ Callout: path.resolve(__dirname, './src/client/components/Callout.vue'),
+ ScssDocs: path.resolve(__dirname, './src/client/components/ScssDocs.vue'),
},
}),
],
diff --git a/packages/docs/.vuepress/theme-coreui/src/assets/brand/coreui-vue.svg b/packages/docs/.vuepress/src/assets/brand/coreui-vue.svg
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/assets/brand/coreui-vue.svg
rename to packages/docs/.vuepress/src/assets/brand/coreui-vue.svg
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Ads.vue b/packages/docs/.vuepress/src/client/components/Ads.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Ads.vue
rename to packages/docs/.vuepress/src/client/components/Ads.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Banner.vue b/packages/docs/.vuepress/src/client/components/Banner.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Banner.vue
rename to packages/docs/.vuepress/src/client/components/Banner.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Callout.vue b/packages/docs/.vuepress/src/client/components/Callout.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Callout.vue
rename to packages/docs/.vuepress/src/client/components/Callout.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Footer.vue b/packages/docs/.vuepress/src/client/components/Footer.vue
similarity index 95%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Footer.vue
rename to packages/docs/.vuepress/src/client/components/Footer.vue
index ca00885f..848a8785 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/Footer.vue
+++ b/packages/docs/.vuepress/src/client/components/Footer.vue
@@ -39,7 +39,7 @@
+../../../../package.json
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Header.vue b/packages/docs/.vuepress/src/client/components/Header.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Header.vue
rename to packages/docs/.vuepress/src/client/components/Header.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/OtherFrameworks.vue b/packages/docs/.vuepress/src/client/components/OtherFrameworks.vue
similarity index 98%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/OtherFrameworks.vue
rename to packages/docs/.vuepress/src/client/components/OtherFrameworks.vue
index 755d7679..f06b9959 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/OtherFrameworks.vue
+++ b/packages/docs/.vuepress/src/client/components/OtherFrameworks.vue
@@ -42,3 +42,4 @@ const humanize = (text: string) => {
return string[0].toUpperCase() + string.slice(1)
}
+./other_frameworks.json
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/ScssDocs.vue b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/ScssDocs.vue
rename to packages/docs/.vuepress/src/client/components/ScssDocs.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Sidebar.vue b/packages/docs/.vuepress/src/client/components/Sidebar.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Sidebar.vue
rename to packages/docs/.vuepress/src/client/components/Sidebar.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/SidebarNav.ts b/packages/docs/.vuepress/src/client/components/SidebarNav.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/SidebarNav.ts
rename to packages/docs/.vuepress/src/client/components/SidebarNav.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Toc.vue b/packages/docs/.vuepress/src/client/components/Toc.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/Toc.vue
rename to packages/docs/.vuepress/src/client/components/Toc.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/other_frameworks.json b/packages/docs/.vuepress/src/client/components/other_frameworks.json
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/components/other_frameworks.json
rename to packages/docs/.vuepress/src/client/components/other_frameworks.json
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/index.ts b/packages/docs/.vuepress/src/client/composables/index.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/composables/index.ts
rename to packages/docs/.vuepress/src/client/composables/index.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useNavLink.ts b/packages/docs/.vuepress/src/client/composables/useNavLink.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/composables/useNavLink.ts
rename to packages/docs/.vuepress/src/client/composables/useNavLink.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useResolveRouteWithRedirect.ts b/packages/docs/.vuepress/src/client/composables/useResolveRouteWithRedirect.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/composables/useResolveRouteWithRedirect.ts
rename to packages/docs/.vuepress/src/client/composables/useResolveRouteWithRedirect.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useScrollPromise.ts b/packages/docs/.vuepress/src/client/composables/useScrollPromise.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/composables/useScrollPromise.ts
rename to packages/docs/.vuepress/src/client/composables/useScrollPromise.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useSidebarItems.ts b/packages/docs/.vuepress/src/client/composables/useSidebarItems.ts
similarity index 99%
rename from packages/docs/.vuepress/theme-coreui/src/client/composables/useSidebarItems.ts
rename to packages/docs/.vuepress/src/client/composables/useSidebarItems.ts
index 0cf89962..d68d9dad 100755
--- a/packages/docs/.vuepress/theme-coreui/src/client/composables/useSidebarItems.ts
+++ b/packages/docs/.vuepress/src/client/composables/useSidebarItems.ts
@@ -1,7 +1,6 @@
import { usePageData, usePageFrontmatter } from '@vuepress/client'
import type { PageHeader } from '@vuepress/client'
import {
- isArray,
isPlainObject,
isString,
resolveLocalePath,
@@ -70,7 +69,7 @@ export const resolveSidebarItems = (
return resolveAutoSidebarItems(sidebarDepth)
}
- if (isArray(sidebarConfig)) {
+ if (Array.isArray(sidebarConfig)) {
return resolveArraySidebarItems(sidebarConfig, sidebarDepth)
}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useThemeData.ts b/packages/docs/.vuepress/src/client/composables/useThemeData.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/composables/useThemeData.ts
rename to packages/docs/.vuepress/src/client/composables/useThemeData.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/config.ts b/packages/docs/.vuepress/src/client/config.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/config.ts
rename to packages/docs/.vuepress/src/client/config.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/index.ts b/packages/docs/.vuepress/src/client/index.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/index.ts
rename to packages/docs/.vuepress/src/client/index.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/layouts/404.vue b/packages/docs/.vuepress/src/client/layouts/404.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/layouts/404.vue
rename to packages/docs/.vuepress/src/client/layouts/404.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/layouts/Layout.vue b/packages/docs/.vuepress/src/client/layouts/Layout.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/layouts/Layout.vue
rename to packages/docs/.vuepress/src/client/layouts/Layout.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/layouts/Redirect.vue b/packages/docs/.vuepress/src/client/layouts/Redirect.vue
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/layouts/Redirect.vue
rename to packages/docs/.vuepress/src/client/layouts/Redirect.vue
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/shim.d.ts b/packages/docs/.vuepress/src/client/shim.d.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/shim.d.ts
rename to packages/docs/.vuepress/src/client/shim.d.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_ads.scss b/packages/docs/.vuepress/src/client/styles/_ads.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_ads.scss
rename to packages/docs/.vuepress/src/client/styles/_ads.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_anchor.scss b/packages/docs/.vuepress/src/client/styles/_anchor.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_anchor.scss
rename to packages/docs/.vuepress/src/client/styles/_anchor.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_callouts.scss b/packages/docs/.vuepress/src/client/styles/_callouts.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_callouts.scss
rename to packages/docs/.vuepress/src/client/styles/_callouts.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_component-examples.scss b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_component-examples.scss
rename to packages/docs/.vuepress/src/client/styles/_component-examples.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_footer.scss b/packages/docs/.vuepress/src/client/styles/_footer.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_footer.scss
rename to packages/docs/.vuepress/src/client/styles/_footer.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss b/packages/docs/.vuepress/src/client/styles/_layout.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss
rename to packages/docs/.vuepress/src/client/styles/_layout.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_prism.scss b/packages/docs/.vuepress/src/client/styles/_prism.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_prism.scss
rename to packages/docs/.vuepress/src/client/styles/_prism.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_scrolling.scss b/packages/docs/.vuepress/src/client/styles/_scrolling.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_scrolling.scss
rename to packages/docs/.vuepress/src/client/styles/_scrolling.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_search.scss b/packages/docs/.vuepress/src/client/styles/_search.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_search.scss
rename to packages/docs/.vuepress/src/client/styles/_search.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_sidebar.scss b/packages/docs/.vuepress/src/client/styles/_sidebar.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_sidebar.scss
rename to packages/docs/.vuepress/src/client/styles/_sidebar.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_table-api.scss b/packages/docs/.vuepress/src/client/styles/_table-api.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_table-api.scss
rename to packages/docs/.vuepress/src/client/styles/_table-api.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss b/packages/docs/.vuepress/src/client/styles/_toc.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss
rename to packages/docs/.vuepress/src/client/styles/_toc.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_variables.scss b/packages/docs/.vuepress/src/client/styles/_variables.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_variables.scss
rename to packages/docs/.vuepress/src/client/styles/_variables.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/custom-container.scss b/packages/docs/.vuepress/src/client/styles/custom-container.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/custom-container.scss
rename to packages/docs/.vuepress/src/client/styles/custom-container.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/index.scss b/packages/docs/.vuepress/src/client/styles/index.scss
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/index.scss
rename to packages/docs/.vuepress/src/client/styles/index.scss
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/defaultTheme.ts b/packages/docs/.vuepress/src/node/defaultTheme.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/node/defaultTheme.ts
rename to packages/docs/.vuepress/src/node/defaultTheme.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/index.ts b/packages/docs/.vuepress/src/node/index.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/node/index.ts
rename to packages/docs/.vuepress/src/node/index.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/assignDefaultLocaleOptions.ts b/packages/docs/.vuepress/src/node/utils/assignDefaultLocaleOptions.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/node/utils/assignDefaultLocaleOptions.ts
rename to packages/docs/.vuepress/src/node/utils/assignDefaultLocaleOptions.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/index.ts b/packages/docs/.vuepress/src/node/utils/index.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/node/utils/index.ts
rename to packages/docs/.vuepress/src/node/utils/index.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/shared/index.ts b/packages/docs/.vuepress/src/shared/index.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/shared/index.ts
rename to packages/docs/.vuepress/src/shared/index.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/shared/nav.ts b/packages/docs/.vuepress/src/shared/nav.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/shared/nav.ts
rename to packages/docs/.vuepress/src/shared/nav.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/shared/options.ts b/packages/docs/.vuepress/src/shared/options.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/shared/options.ts
rename to packages/docs/.vuepress/src/shared/options.ts
diff --git a/packages/docs/.vuepress/theme-coreui/src/shared/page.ts b/packages/docs/.vuepress/src/shared/page.ts
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/src/shared/page.ts
rename to packages/docs/.vuepress/src/shared/page.ts
diff --git a/packages/docs/.vuepress/theme-coreui/templates/build.html b/packages/docs/.vuepress/templates/build.html
similarity index 100%
rename from packages/docs/.vuepress/theme-coreui/templates/build.html
rename to packages/docs/.vuepress/templates/build.html
diff --git a/packages/docs/.vuepress/theme-coreui/package.json b/packages/docs/.vuepress/theme-coreui/package.json
deleted file mode 100755
index 39655fd9..00000000
--- a/packages/docs/.vuepress/theme-coreui/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "name": "@vuepress/theme-coreui",
- "version": "1.0.0",
- "description": "CoreUI for Vue.js docs theme",
- "keywords": [
- "vuepress-theme",
- "vuepress",
- "theme",
- "default"
- ],
- "homepage": "https://github.com/coreui",
- "bugs": {
- "url": "https://github.com/coreui/coreui-vue/issues"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/coreui/coreui-vue.git"
- },
- "license": "MIT",
- "author": "Lukasz Holeczek",
- "main": "src/node/index.ts",
- "files": [
- "lib"
- ],
- "scripts": {
- "build": "tsc -b tsconfig.build.json",
- "clean": "rimraf lib *.tsbuildinfo",
- "copy": "cpx \"src/**/*.{d.ts,vue,scss}\" lib"
- },
- "dependencies": {
- "@vuepress/client": "2.0.0-beta.21",
- "@vuepress/core": "2.0.0-beta.22",
- "@vuepress/plugin-active-header-links": "2.0.0-beta.22",
- "@vuepress/plugin-back-to-top": "2.0.0-beta.22",
- "@vuepress/plugin-container": "2.0.0-beta.22",
- "@vuepress/plugin-git": "2.0.0-beta.22",
- "@vuepress/plugin-medium-zoom": "2.0.0-beta.22",
- "@vuepress/plugin-nprogress": "2.0.0-beta.22",
- "@vuepress/plugin-palette": "2.0.0-beta.22",
- "@vuepress/plugin-prismjs": "2.0.0-beta.22",
- "@vuepress/plugin-theme-data": "2.0.0-beta.22",
- "@vuepress/shared": "2.0.0-beta.21",
- "@vuepress/utils": "2.0.0-beta.21",
- "sass": "^1.35.1",
- "sass-loader": "^12.1.0",
- "vue": "^3.1.4",
- "vue-router": "^4.0.10"
- },
- "publishConfig": {
- "access": "public"
- }
-}
From d787ed5c571245982c38810aaecd70423353cd27 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 13:41:50 +0200
Subject: [PATCH 279/346] feat(CTabs): the initial release of the new react
tabs component
---
.../coreui-vue/src/components/tabs/CTab.ts | 45 ++
.../src/components/tabs/CTabList.ts | 89 +++
.../src/components/tabs/CTabPanel.ts | 129 ++++
.../coreui-vue/src/components/tabs/CTabs.ts | 44 ++
.../coreui-vue/src/components/tabs/index.ts | 10 +-
packages/docs/.vuepress/config.ts | 4 +
packages/docs/api/tabs/CTab.api.md | 13 +
packages/docs/api/tabs/CTabList.api.md | 14 +
packages/docs/api/tabs/CTabPanel.api.md | 22 +
packages/docs/api/tabs/CTabs.api.md | 19 +
packages/docs/components/tabs.md | 579 +++++++++++++++---
11 files changed, 866 insertions(+), 102 deletions(-)
create mode 100644 packages/coreui-vue/src/components/tabs/CTab.ts
create mode 100644 packages/coreui-vue/src/components/tabs/CTabList.ts
create mode 100644 packages/coreui-vue/src/components/tabs/CTabPanel.ts
create mode 100644 packages/coreui-vue/src/components/tabs/CTabs.ts
create mode 100644 packages/docs/api/tabs/CTab.api.md
create mode 100644 packages/docs/api/tabs/CTabList.api.md
create mode 100644 packages/docs/api/tabs/CTabPanel.api.md
create mode 100644 packages/docs/api/tabs/CTabs.api.md
diff --git a/packages/coreui-vue/src/components/tabs/CTab.ts b/packages/coreui-vue/src/components/tabs/CTab.ts
new file mode 100644
index 00000000..c7c54250
--- /dev/null
+++ b/packages/coreui-vue/src/components/tabs/CTab.ts
@@ -0,0 +1,45 @@
+import { defineComponent, h, inject, Ref } from 'vue'
+
+const CTab = defineComponent({
+ name: 'CTab',
+ props: {
+ /**
+ * Item key.
+ */
+ itemKey: {
+ type: [Number, String],
+ required: true,
+ },
+ },
+ setup(props, { slots }) {
+ const activeItemKey = inject('activeItemKey') as Ref
+ const id = inject('id') as Ref
+ const setActiveItemKey = inject('setActiveItemKey') as (key: number | string) => void
+
+ const isActive = () => props.itemKey === activeItemKey.value
+
+ return () =>
+ h(
+ 'button',
+ {
+ class: [
+ 'nav-link',
+ {
+ active: isActive(),
+ },
+ ],
+ id: `${id.value}${props.itemKey}-tab`,
+ role: 'tab',
+ tabindex: isActive() ? 0 : -1,
+ type: 'button',
+ 'aria-controls': `${id.value}${props.itemKey}-tab-pane`,
+ 'aria-selected': isActive(),
+ onClick: () => setActiveItemKey(props.itemKey),
+ onFocus: () => setActiveItemKey(props.itemKey),
+ },
+ slots.default && slots.default(),
+ )
+ },
+})
+
+export { CTab }
diff --git a/packages/coreui-vue/src/components/tabs/CTabList.ts b/packages/coreui-vue/src/components/tabs/CTabList.ts
new file mode 100644
index 00000000..60028cd8
--- /dev/null
+++ b/packages/coreui-vue/src/components/tabs/CTabList.ts
@@ -0,0 +1,89 @@
+import { defineComponent, h, ref } from 'vue'
+import { getNextActiveElement } from '../dropdown/utils'
+
+const CTabList = defineComponent({
+ name: 'CTabList',
+ props: {
+ /**
+ * Specify a layout type for component.
+ *
+ * @values 'fill', 'justified'
+ */
+ layout: {
+ type: String,
+ validator: (value: string) => {
+ return ['fill', 'justified'].includes(value)
+ },
+ },
+ /**
+ * Set the nav variant to tabs or pills.
+ *
+ * @values 'pills', 'tabs', 'underline', 'underline-border'
+ */
+ variant: {
+ type: String,
+ validator: (value: string) => {
+ return ['pills', 'tabs', 'underline', 'underline-border'].includes(value)
+ },
+ },
+ },
+ setup(props, { slots }) {
+ const tabListRef = ref()
+
+ const handleKeydown = (event: KeyboardEvent) => {
+ if (
+ tabListRef.value &&
+ (event.key === 'ArrowDown' ||
+ event.key === 'ArrowUp' ||
+ event.key === 'ArrowLeft' ||
+ event.key === 'ArrowRight' ||
+ event.key === 'Home' ||
+ event.key === 'End')
+ ) {
+ event.preventDefault()
+ const target = event.target as HTMLElement
+ // eslint-disable-next-line unicorn/prefer-spread
+ const items: HTMLElement[] = Array.from(
+ tabListRef.value.querySelectorAll('.nav-link:not(.disabled):not(:disabled)'),
+ )
+
+ let nextActiveElement
+
+ if (event.key === 'Home' || event.key === 'End') {
+ nextActiveElement = event.key === 'End' ? items.at(-1) : items[0]
+ } else {
+ nextActiveElement = getNextActiveElement(
+ items,
+ target,
+ event.key === 'ArrowDown' || event.key === 'ArrowRight',
+ true,
+ )
+ }
+
+ if (nextActiveElement) {
+ nextActiveElement.focus({ preventScroll: true })
+ }
+ }
+ }
+
+ return () =>
+ h(
+ 'div',
+ {
+ class: [
+ 'nav',
+ {
+ [`nav-${props.layout}`]: props.layout,
+ [`nav-${props.variant}`]: props.variant,
+ },
+ ],
+ role: 'tablist',
+ onKeydown: (event) => handleKeydown(event),
+ ref: tabListRef,
+ },
+ slots.default && slots.default(),
+ )
+ },
+})
+
+export { CTabList }
diff --git a/packages/coreui-vue/src/components/tabs/CTabPanel.ts b/packages/coreui-vue/src/components/tabs/CTabPanel.ts
new file mode 100644
index 00000000..5e2609bf
--- /dev/null
+++ b/packages/coreui-vue/src/components/tabs/CTabPanel.ts
@@ -0,0 +1,129 @@
+import {
+ defineComponent,
+ h,
+ inject,
+ ref,
+ Ref,
+ RendererElement,
+ Transition,
+ vShow,
+ watch,
+ withDirectives,
+} from 'vue'
+
+import { executeAfterTransition } from '../../utils/transition'
+
+const CTabPanel = defineComponent({
+ name: 'CTabPanel',
+ props: {
+ /**
+ * Item key.
+ */
+ itemKey: {
+ type: [Number, String],
+ required: true,
+ },
+ /**
+ * Enable fade in and fade out transition.
+ */
+ transition: {
+ type: Boolean,
+ default: true,
+ },
+ /**
+ * Toggle the visibility of component.
+ */
+ visible: {
+ type: Boolean,
+ default: false,
+ },
+ },
+ emits: [
+ /**
+ * Callback fired when the component requests to be hidden.
+ */
+ 'hide',
+ /**
+ * Callback fired when the component requests to be shown.
+ */
+ 'show',
+ ],
+ setup(props, { slots, emit }) {
+ const activeItemKey = inject('activeItemKey') as Ref
+ const id = inject('id') as Ref
+
+ const tabPaneRef = ref()
+ const firstRender = ref(true)
+ const visible = ref()
+
+ watch(
+ () => props.visible,
+ () => {
+ visible.value = props.visible
+ },
+ {
+ immediate: true,
+ },
+ )
+
+ watch(
+ activeItemKey,
+ () => {
+ visible.value = Boolean(activeItemKey.value === props.itemKey)
+ },
+ {
+ immediate: true,
+ },
+ )
+
+ const handleEnter = (el: RendererElement, done: () => void) => {
+ firstRender.value = false
+ emit('show')
+ setTimeout(() => {
+ executeAfterTransition(() => done(), el as HTMLElement)
+ el.classList.add('show')
+ }, 1)
+ }
+
+ const handleLeave = (el: RendererElement, done: () => void) => {
+ firstRender.value = false
+ emit('hide')
+ el.classList.remove('show')
+ executeAfterTransition(() => done(), el as HTMLElement)
+ }
+
+ return () =>
+ h(
+ Transition,
+ {
+ onEnter: (el, done) => handleEnter(el, done),
+ onLeave: (el, done) => handleLeave(el, done),
+ },
+ () =>
+ withDirectives(
+ h(
+ 'div',
+ {
+ class: [
+ 'tab-pane',
+ {
+ active: visible.value,
+ fade: props.transition,
+ show: firstRender.value && visible.value,
+ },
+ ],
+ id: `${id.value}${props.itemKey}-tab-pane`,
+ role: 'tabpanel',
+ 'aria-labelledby': `${id.value}${props.itemKey}-tab`,
+ tabindex: 0,
+ ref: tabPaneRef,
+ },
+ slots.default && slots.default(),
+ ),
+ [[vShow, visible.value]],
+ ),
+ )
+ },
+})
+
+export { CTabPanel }
diff --git a/packages/coreui-vue/src/components/tabs/CTabs.ts b/packages/coreui-vue/src/components/tabs/CTabs.ts
new file mode 100644
index 00000000..e031153d
--- /dev/null
+++ b/packages/coreui-vue/src/components/tabs/CTabs.ts
@@ -0,0 +1,44 @@
+import { defineComponent, h, provide, ref, watch } from 'vue'
+import { getUID } from '../../utils'
+
+const CTabs = defineComponent({
+ name: 'CTabs',
+ props: {
+ /**
+ * The active item key.
+ */
+ activeItemKey: {
+ type: [Number, String],
+ required: true,
+ }
+ },
+ emits: [
+ /**
+ * The callback is fired when the active tab changes.
+ */
+ 'change',
+ ],
+ setup(props, { slots, emit }) {
+ const uID = ref(getUID('t'))
+ const activeItemKey = ref(props.activeItemKey)
+ const setActiveItemKey = (key: string | number) => {
+ activeItemKey.value = key
+ }
+
+ watch(
+ () => props.activeItemKey,
+ (value) => {
+ activeItemKey.value = value
+ emit('change', value)
+ },
+ )
+
+ provide('activeItemKey', activeItemKey)
+ provide('id', uID)
+ provide('setActiveItemKey', setActiveItemKey)
+
+ return () => h('div', { class: 'tabs' }, slots.default && slots.default())
+ },
+})
+
+export { CTabs }
diff --git a/packages/coreui-vue/src/components/tabs/index.ts b/packages/coreui-vue/src/components/tabs/index.ts
index 997480a5..7c848b03 100644
--- a/packages/coreui-vue/src/components/tabs/index.ts
+++ b/packages/coreui-vue/src/components/tabs/index.ts
@@ -1,12 +1,20 @@
import { App } from 'vue'
+import { CTab } from './CTab'
import { CTabContent } from './CTabContent'
+import { CTabList } from './CTabList'
import { CTabPane } from './CTabPane'
+import { CTabPanel } from './CTabPanel'
+import { CTabs } from './CTabs'
const CTabsPlugin = {
install: (app: App): void => {
+ app.component(CTab.name as string, CTab)
app.component(CTabContent.name as string, CTabContent)
+ app.component(CTabList.name as string, CTabList)
app.component(CTabPane.name as string, CTabPane)
+ app.component(CTabPanel.name as string, CTabPanel)
+ app.component(CTabs.name as string, CTabs)
},
}
-export { CTabsPlugin, CTabContent, CTabPane }
+export { CTabsPlugin, CTab, CTabContent, CTabList, CTabPane, CTabPanel, CTabs }
diff --git a/packages/docs/.vuepress/config.ts b/packages/docs/.vuepress/config.ts
index 34678fec..932a5cf2 100644
--- a/packages/docs/.vuepress/config.ts
+++ b/packages/docs/.vuepress/config.ts
@@ -328,6 +328,10 @@ export default defineUserConfig({
text: 'Table',
link: `/components/table.html`,
},
+ {
+ text: 'Tabs',
+ link: `/components/tabs.html`,
+ },
{
text: 'Toast',
link: `/components/toast.html`,
diff --git a/packages/docs/api/tabs/CTab.api.md b/packages/docs/api/tabs/CTab.api.md
new file mode 100644
index 00000000..ed8dc7b0
--- /dev/null
+++ b/packages/docs/api/tabs/CTab.api.md
@@ -0,0 +1,13 @@
+### CTab
+
+```jsx
+import { CTab } from '@coreui/vue'
+// or
+import CTab from '@coreui/vue/src/components/tabs/CTab'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ------------ | ----------- | -------------- | ------ | ------- |
+| **item-key** | Item key. | number\|string | - | - |
diff --git a/packages/docs/api/tabs/CTabList.api.md b/packages/docs/api/tabs/CTabList.api.md
new file mode 100644
index 00000000..68b9ca46
--- /dev/null
+++ b/packages/docs/api/tabs/CTabList.api.md
@@ -0,0 +1,14 @@
+### CTabList
+
+```jsx
+import { CTabList } from '@coreui/vue'
+// or
+import CTabList from '@coreui/vue/src/components/tabs/CTabList'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ----------- | ------------------------------------- | ------ | -------------------------------------------------------- | ------- |
+| **layout** | Specify a layout type for component. | string | `'fill'`, `'justified'` | - |
+| **variant** | Set the nav variant to tabs or pills. | string | `'pills'`, `'tabs'`, `'underline'`, `'underline-border'` | - |
diff --git a/packages/docs/api/tabs/CTabPanel.api.md b/packages/docs/api/tabs/CTabPanel.api.md
new file mode 100644
index 00000000..bf254378
--- /dev/null
+++ b/packages/docs/api/tabs/CTabPanel.api.md
@@ -0,0 +1,22 @@
+### CTabPanel
+
+```jsx
+import { CTabPanel } from '@coreui/vue'
+// or
+import CTabPanel from '@coreui/vue/src/components/tabs/CTabPanel'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| -------------- | --------------------------------------- | -------------- | ------ | ------- |
+| **item-key** | Item key. | number\|string | - | - |
+| **transition** | Enable fade in and fade out transition. | boolean | - | true |
+| **visible** | Toggle the visibility of component. | boolean | - | false |
+
+#### Events
+
+| Event name | Description | Properties |
+| ---------- | -------------------------------------------------------- | ---------- |
+| **hide** | Callback fired when the component requests to be hidden. |
+| **show** | Callback fired when the component requests to be shown. |
diff --git a/packages/docs/api/tabs/CTabs.api.md b/packages/docs/api/tabs/CTabs.api.md
new file mode 100644
index 00000000..4fea4982
--- /dev/null
+++ b/packages/docs/api/tabs/CTabs.api.md
@@ -0,0 +1,19 @@
+### CTabs
+
+```jsx
+import { CTabs } from '@coreui/vue'
+// or
+import CTabs from '@coreui/vue/src/components/tabs/CTabs'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ------------------- | -------------------- | -------------- | ------ | ------- |
+| **active-item-key** | The active item key. | number\|string | - | - |
+
+#### Events
+
+| Event name | Description | Properties |
+| ---------- | -------------------------------------------------- | ---------- |
+| **change** | The callback is fired when the active tab changes. |
diff --git a/packages/docs/components/tabs.md b/packages/docs/components/tabs.md
index 8da4e027..a7c06623 100644
--- a/packages/docs/components/tabs.md
+++ b/packages/docs/components/tabs.md
@@ -1,112 +1,489 @@
---
-title: CTabs
-description:
-activeKey: 1
+title: Vue Tabs Components
+name: Tabs
+description: The CoreUI Vue Tabs component provides a flexible and accessible way to create tabbed navigation in your application. It supports various styles and configurations to meet different design requirements.
+since: 5.1.0
---
-## Examples
-
-{{ $page.activeKey }}
-
-
-
-
-
- Active
-
-
-
-
- Link
-
-
-
-
- Link
-
-
-
-
-
- Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown
- aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan
- helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu
- banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone.
- Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
-
-
- Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid.
- Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson
- artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo
- enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud
- organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia
- yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes
- anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson
- biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente
- accusamus tattooed echo park.
-
-
- Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's
- organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify
- pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy
- hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred
- pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie
- etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl
- craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.
-
-
+## Example
+The basic Vue tabs example uses the `variant="tabs"` props to generate a tabbed interface.
+::: demo
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
```vue
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+
+## Available styles
+
+Change the style of ``'s component with modifiers and utilities. Mix and match as needed, or build your own.
+
+### Unstyled
-
-
-
- Active
-
-
-
-
- Link
-
-
-
-
- Link
-
-
-
-
-
- Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown
- aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan
- helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu
- banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone.
- Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
-
-
- Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid.
- Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson
- artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo
- enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud
- organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia
- yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes
- anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson
- biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente
- accusamus tattooed echo park.
-
-
- Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's
- organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify
- pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy
- hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred
- pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie
- etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl
- craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.
-
-
+If you don’t provide the `variant` prop, the component will default to a basic style.
+::: demo
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
+```vue
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
```
+### Pills
+
+Take that same code, but use `variant="pills"` instead:
+
+::: demo
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
+```vue
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+### Underline
+
+Take that same code, but use `variant="underline"` instead:
+
+::: demo
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
+```vue
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+### Underline border
+
+Take that same code, but use `variant="underline-border"` instead:
+
+::: demo
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
+```vue
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+### Fill and justify
+
+Force your ``'s contents to extend the full available width one of two modifier classes. To proportionately fill all available space use `layout="fill"`. Notice that all horizontal space is occupied, but not every nav item has the same width.
+
+::: demo
+
+
+ Home
+ Profile tab with longer content
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
+```vue
+
+
+ Home
+ Profile tab with longer content
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+For equal-width elements, use `layout="justified"`. All horizontal space will be occupied by nav links, but unlike the `layout="fill"` above, every nav item will be the same width.
+
+::: demo
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+:::
+```vue
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+## Accessibility
+
+Dynamic tabbed interfaces, as described in the [WAI ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices/#tabpanel), require `role="tablist"`, `role="tab"`, `role="tabpanel"`, and additional `aria-` attributes in order to convey their structure, functionality and current state to users of assistive technologies (such as screen readers).
+
+### WAI-ARIA Roles
+
+- The element that serves as the container for the set of tabs has the role `tablist`.
+- Each element that serves as a tab has the role `tab` and is contained within the element with the role `tablist`.
+- Each element that contains the content panel for a tab has the role `tabpanel`.
+- If the tab list has a visible label, the element with the role `tablist` has `aria-labelledby` set to a value that refers to the labeling element. Otherwise, the `tablist` element has a label provided by `aria-label`.
+- Each element with the role `tab` has the property `aria-controls` referring to its associated `tabpanel` element.
+- The active tab element has the state `aria-selected` set to `true`, and all other tab elements have it set to `false`.
+- Each element with the role `tabpanel` has the property `aria-labelledby` referring to its associated `tab` element.
+
+Our Vue Tabs component automatically manages all `role="..."` and `aria-` attributes for accessibility. It also handles the selected state by adding `aria-selected="true"` to the active tab. Additionally, you have the flexibility to manually set these attributes, as shown in the example below:
+
+```jsx
+
+
+ Home
+ Profile
+ Contact
+ Disabled
+
+
+
+ Home tab content
+
+
+ Profile tab content
+
+
+ Contact tab content
+
+
+ Disabled tab content
+
+
+
+```
+
+This example demonstrates how to manually set `aria-selected`, `aria-controls`, and `aria-labelledby` attributes on your ``'s and ``'s.
+
+### Keyboard Interaction
+
+**When focus enters the tab list:**
+
+Tab: It places focus on the active `tab` element.
+
+**When focus is on a tab element:**
+
+Tab: Moves focus to the next element in the tab sequence, typically the tabpanel unless the first focusable element inside the tabpanel is found earlier.
+
+Left Arrow: Moves focus to the previous tab. If on the first tab, it wraps around to the last tab.
+
+Right Arrow: Moves focus to the next tab. If on the last tab, it wraps around to the first tab.
+
+Home: Moves focus to the first tab.
+
+End: Moves focus to the last tab.
+
+## Customizing
+
+### CSS variables
+
+Vue tabs use local CSS variables on `.nav`, `.nav-tabs`, `.nav-pills`, `.nav-underline` and `.nav-underline-border` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
+
+On the `.nav` base class:
+
+
+
+On the `.nav-tabs` modifier class:
+
+
+
+On the `.nav-pills` modifier class:
+
+
+
+On the `.nav-underline` modifier class:
+
+
+
+On the `.nav-underline-border` modifier class:
+
+
+
+#### How to use CSS variables
+
+```jsx
+const vars = {
+ '--my-css-var': 10,
+ '--my-another-css-var': "red"
+}
+return ...
+```
+
+### SASS variables
+
+
+
+## API
-## Additional content
\ No newline at end of file
+!!!include(./api/tabs/CTab.api.md)!!!
+!!!include(./api/tabs/CTabContent.api.md)!!!
+!!!include(./api/tabs/CTabList.api.md)!!!
+!!!include(./api/tabs/CTabPanel.api.md)!!!
+!!!include(./api/tabs/CTabs.api.md)!!!
\ No newline at end of file
From 96cee23488500ba2c9b7a304fcce3c982f89f255 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 13:42:18 +0200
Subject: [PATCH 280/346] chore: add eslint comments
---
packages/coreui-vue/src/components/dropdown/CDropdown.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/packages/coreui-vue/src/components/dropdown/CDropdown.ts b/packages/coreui-vue/src/components/dropdown/CDropdown.ts
index 97ef4fe5..d171f90b 100644
--- a/packages/coreui-vue/src/components/dropdown/CDropdown.ts
+++ b/packages/coreui-vue/src/components/dropdown/CDropdown.ts
@@ -228,6 +228,7 @@ const CDropdown = defineComponent({
) {
event.preventDefault()
const target = event.target as HTMLElement
+ // eslint-disable-next-line unicorn/prefer-spread
const items: HTMLElement[] = Array.from(
dropdownMenuRef.value.querySelectorAll('.dropdown-item:not(.disabled):not(:disabled)'),
)
From 45a515d55c3b04cfedb5bc39261d0dc1439069b5 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 13:44:27 +0200
Subject: [PATCH 281/346] feat(CTabPane): add the `transition` property to
enable control of fade animation on panels
---
packages/coreui-vue/src/components/tabs/CTabPane.ts | 11 ++++++++++-
packages/docs/api/tabs/CTabPane.api.md | 7 ++++---
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/packages/coreui-vue/src/components/tabs/CTabPane.ts b/packages/coreui-vue/src/components/tabs/CTabPane.ts
index 9ff0050f..7614c346 100644
--- a/packages/coreui-vue/src/components/tabs/CTabPane.ts
+++ b/packages/coreui-vue/src/components/tabs/CTabPane.ts
@@ -5,6 +5,15 @@ import { executeAfterTransition } from '../../utils/transition'
const CTabPane = defineComponent({
name: 'CTabPane',
props: {
+ /**
+ * Enable fade in and fade out transition.
+ *
+ * @since 5.1.0
+ */
+ transition: {
+ type: Boolean,
+ default: true,
+ },
/**
* Toggle the visibility of component.
*/
@@ -57,9 +66,9 @@ const CTabPane = defineComponent({
{
class: [
'tab-pane',
- 'fade',
{
active: props.visible,
+ fade: props.transition,
show: firstRender.value && props.visible,
},
],
diff --git a/packages/docs/api/tabs/CTabPane.api.md b/packages/docs/api/tabs/CTabPane.api.md
index 61e1db99..17eb0a59 100644
--- a/packages/docs/api/tabs/CTabPane.api.md
+++ b/packages/docs/api/tabs/CTabPane.api.md
@@ -8,9 +8,10 @@ import CTabPane from '@coreui/vue/src/components/tabs/CTabPane'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ----------- | ----------------------------------- | ------- | ------ | ------- |
-| **visible** | Toggle the visibility of component. | boolean | - | false |
+| Prop name | Description | Type | Values | Default |
+| ------------------------------------------------------------- | --------------------------------------- | ------- | ------ | ------- |
+| **transition**
5.1.0+
| Enable fade in and fade out transition. | boolean | - | true |
+| **visible** | Toggle the visibility of component. | boolean | - | false |
#### Events
From fc6f12bcc7bba1779f92eb4af2d2ad430a0e631c Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 13:45:00 +0200
Subject: [PATCH 282/346] docs: update content
---
packages/docs/getting-started/introduction.md | 66 +++++++++++++++++--
1 file changed, 59 insertions(+), 7 deletions(-)
diff --git a/packages/docs/getting-started/introduction.md b/packages/docs/getting-started/introduction.md
index 369de935..c0a6a0f4 100644
--- a/packages/docs/getting-started/introduction.md
+++ b/packages/docs/getting-started/introduction.md
@@ -9,36 +9,74 @@ menu: Getting started
### Npm
+
+
+ CoreUI
+ CoreUI PRO
+
+
+
+
```bash
npm install @coreui/vue @coreui/coreui
```
-
-If you use CoreUI PRO version.
+
+
```bash
npm install @coreui/vue-pro @coreui/coreui-pro
```
+
+
+
+
### Yarn
+
+
+ CoreUI
+ CoreUI PRO
+
+
+
+
```bash
yarn add @coreui/vue @coreui/coreui
```
-
-If you use CoreUI PRO version.
+
+
```bash
yarn add @coreui/vue-pro @coreui/coreui-pro
```
+
+
+
## Using components
-```ts
+
+
+ CoreUI
+ CoreUI PRO
+
+
+
+
+```js
import { CAlert } from '@coreui/vue';
+```
+
+
-// CoreUI PRO version
+```js
import { CAlert } from '@coreui/vue-pro';
```
+
+
+
+
## Stylesheets
@@ -48,12 +86,26 @@ Vue components are styled using the `@coreui/coreui` or `@coreui/coreui-pro` CSS
###### Basic usage
+
+
+ CoreUI
+ CoreUI PRO
+
+
+
+
```js
import '@coreui/coreui/dist/css/coreui.min.css'
+```
+
+
-// CoreUI PRO version
+```js
import '@coreui/coreui-pro/dist/css/coreui.min.css'
```
+
+
+
### Bootstrap CSS files
From 0b77985f6184876ba6a7d94d35567a92ffe82e45 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 13:45:28 +0200
Subject: [PATCH 283/346] docs: update content
---
.../docs/.vuepress/src/client/components/ScssDocs.vue | 4 ++--
.../.vuepress/src/client/styles/_component-examples.scss | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/packages/docs/.vuepress/src/client/components/ScssDocs.vue b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
index ae622b73..dd9fb126 100644
--- a/packages/docs/.vuepress/src/client/components/ScssDocs.vue
+++ b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
@@ -21,11 +21,11 @@ export default defineComponent({
window.Prism.manual = true;
}
- const files = import.meta.glob(`../../../../../../../node_modules/@coreui/coreui/scss/**/*.scss`, {
+ const files = import.meta.glob(`../../../../../../node_modules/@coreui/coreui/scss/**/*.scss`, {
as: 'raw',
eager: true,
})
- const file = files[`../../../../../../../node_modules/@coreui/coreui/scss/${props.file}`]
+ const file = files[`../../../../../../node_modules/@coreui/coreui/scss/${props.file}`]
const captureStart = `// scss-docs-start ${props.capture}`
const captureEnd = `// scss-docs-end ${props.capture}`
diff --git a/packages/docs/.vuepress/src/client/styles/_component-examples.scss b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
index c0909660..fbe5369c 100644
--- a/packages/docs/.vuepress/src/client/styles/_component-examples.scss
+++ b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
@@ -2,6 +2,15 @@
// Docs examples
//
+.tab-content .tab-pane {
+ @include border-top-radius(0 !important);
+
+ .highlight, div[class^="language-"] {
+ border-top: 0 !important;
+ @include border-top-radius(0 !important);
+ }
+}
+
.docs-example-snippet {
border: solid var(--cui-border-color);
border-width: 1px 0;
From ea7050aaabed47029a64157530e8fee0def3bf3e Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 15:28:28 +0200
Subject: [PATCH 284/346] refactor(Utils): move `getNextActiveElement` from
`CDropdown` utils to utils
---
.../src/components/dropdown/CDropdown.ts | 4 ++--
.../src/components/dropdown/utils.ts | 22 ------------------
.../src/components/tabs/CTabList.ts | 2 +-
.../src/utils/getNextActiveElement.ts | 23 +++++++++++++++++++
packages/coreui-vue/src/utils/index.ts | 3 ++-
5 files changed, 28 insertions(+), 26 deletions(-)
create mode 100644 packages/coreui-vue/src/utils/getNextActiveElement.ts
diff --git a/packages/coreui-vue/src/components/dropdown/CDropdown.ts b/packages/coreui-vue/src/components/dropdown/CDropdown.ts
index d171f90b..32fe1ea0 100644
--- a/packages/coreui-vue/src/components/dropdown/CDropdown.ts
+++ b/packages/coreui-vue/src/components/dropdown/CDropdown.ts
@@ -3,10 +3,10 @@ import type { Placement } from '@popperjs/core'
import { usePopper } from '../../composables'
import type { Triggers } from '../../types'
-import { isRTL } from '../../utils'
+import { getNextActiveElement, isRTL } from '../../utils'
import type { Alignments } from './types'
-import { getNextActiveElement, getPlacement } from './utils'
+import { getPlacement } from './utils'
const CDropdown = defineComponent({
name: 'CDropdown',
diff --git a/packages/coreui-vue/src/components/dropdown/utils.ts b/packages/coreui-vue/src/components/dropdown/utils.ts
index edddb0db..c9659636 100644
--- a/packages/coreui-vue/src/components/dropdown/utils.ts
+++ b/packages/coreui-vue/src/components/dropdown/utils.ts
@@ -19,28 +19,6 @@ export const getAlignmentClassNames = (alignment: Alignments) => {
return classNames
}
-export const getNextActiveElement = (
- list: HTMLElement[],
- activeElement: HTMLElement,
- shouldGetNext: boolean,
- isCycleAllowed: boolean,
-) => {
- const listLength = list.length
- let index = list.indexOf(activeElement)
-
- if (index === -1) {
- return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]
- }
-
- index += shouldGetNext ? 1 : -1
-
- if (isCycleAllowed) {
- index = (index + listLength) % listLength
- }
-
- return list[Math.max(0, Math.min(index, listLength - 1))]
-}
-
export const getPlacement = (
placement: Placement,
direction: string | undefined,
diff --git a/packages/coreui-vue/src/components/tabs/CTabList.ts b/packages/coreui-vue/src/components/tabs/CTabList.ts
index 60028cd8..63b720f2 100644
--- a/packages/coreui-vue/src/components/tabs/CTabList.ts
+++ b/packages/coreui-vue/src/components/tabs/CTabList.ts
@@ -1,5 +1,5 @@
import { defineComponent, h, ref } from 'vue'
-import { getNextActiveElement } from '../dropdown/utils'
+import { getNextActiveElement } from '../../utils'
const CTabList = defineComponent({
name: 'CTabList',
diff --git a/packages/coreui-vue/src/utils/getNextActiveElement.ts b/packages/coreui-vue/src/utils/getNextActiveElement.ts
new file mode 100644
index 00000000..a80293ca
--- /dev/null
+++ b/packages/coreui-vue/src/utils/getNextActiveElement.ts
@@ -0,0 +1,23 @@
+const getNextActiveElement = (
+ list: HTMLElement[],
+ activeElement: HTMLElement,
+ shouldGetNext: boolean,
+ isCycleAllowed: boolean,
+) => {
+ const listLength = list.length
+ let index = list.indexOf(activeElement)
+
+ if (index === -1) {
+ return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]
+ }
+
+ index += shouldGetNext ? 1 : -1
+
+ if (isCycleAllowed) {
+ index = (index + listLength) % listLength
+ }
+
+ return list[Math.max(0, Math.min(index, listLength - 1))]
+}
+
+export default getNextActiveElement
diff --git a/packages/coreui-vue/src/utils/index.ts b/packages/coreui-vue/src/utils/index.ts
index 2bd39724..b478e8c2 100644
--- a/packages/coreui-vue/src/utils/index.ts
+++ b/packages/coreui-vue/src/utils/index.ts
@@ -1,6 +1,7 @@
+import getNextActiveElement from './getNextActiveElement'
import getRTLPlacement from './getRTLPlacement'
import getUID from './getUID'
import isInViewport from './isInViewport'
import isRTL from './isRTL'
-export { getRTLPlacement, getUID, isInViewport, isRTL }
+export { getNextActiveElement, getRTLPlacement, getUID, isInViewport, isRTL }
From 2bfd026198175b4b55c15835c75f6ebbe9594b91 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 15:28:51 +0200
Subject: [PATCH 285/346] docs: improve responsive layout
---
.../src/client/styles/_component-examples.scss | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/packages/docs/.vuepress/src/client/styles/_component-examples.scss b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
index fbe5369c..aee50619 100644
--- a/packages/docs/.vuepress/src/client/styles/_component-examples.scss
+++ b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
@@ -2,10 +2,18 @@
// Docs examples
//
-.tab-content .tab-pane {
- @include border-top-radius(0 !important);
+.docs-code-tabs {
+ padding: 0 ($cd-gutter-x * .5);
+ margin: 0 ($cd-gutter-x * -.5);
+
+ @include media-breakpoint-up(md) {
+ padding: 0;
+ margin: 0;
+ }
+}
- .highlight, div[class^="language-"] {
+.docs-code-tab-content {
+ .tab-pane div[class^="language-"] {
border-top: 0 !important;
@include border-top-radius(0 !important);
}
From b8756f24f64c1821765349aad9c4167ca4be4cae Mon Sep 17 00:00:00 2001
From: mrholek
Date: Mon, 27 May 2024 15:29:01 +0200
Subject: [PATCH 286/346] docs: update content
---
.../client/components/other_frameworks.json | 80 +++++++++----------
packages/docs/getting-started/introduction.md | 16 ++--
2 files changed, 48 insertions(+), 48 deletions(-)
diff --git a/packages/docs/.vuepress/src/client/components/other_frameworks.json b/packages/docs/.vuepress/src/client/components/other_frameworks.json
index df64148b..b9297930 100644
--- a/packages/docs/.vuepress/src/client/components/other_frameworks.json
+++ b/packages/docs/.vuepress/src/client/components/other_frameworks.json
@@ -1,240 +1,240 @@
{
"accordion": {
"angular": "https://coreui.io/angular/docs/components/accordion/",
- "bootstrap": "https://coreui.io/docs/components/accordion/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/accordion/",
"react": "https://coreui.io/react/docs/components/accordion/",
"vue": "https://coreui.io/vue/docs/components/accordion.html"
},
"alert": {
"angular": "https://coreui.io/angular/docs/components/alert/",
- "bootstrap": "https://coreui.io/docs/components/alerts/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/alerts/",
"react": "https://coreui.io/react/docs/components/alert/",
"vue": "https://coreui.io/vue/docs/components/alert.html"
},
"avatar": {
"angular": "https://coreui.io/angular/docs/components/avatar/",
- "bootstrap": "https://coreui.io/docs/components/avatar/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/avatar/",
"react": "https://coreui.io/react/docs/components/avatar/",
"vue": "https://coreui.io/vue/docs/components/avatar.html"
},
"badge": {
"angular": "https://coreui.io/angular/docs/components/badge/",
- "bootstrap": "https://coreui.io/docs/components/badge/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/badge/",
"react": "https://coreui.io/react/docs/components/badge/",
"vue": "https://coreui.io/vue/docs/components/badge.html"
},
"breadcrumb": {
"angular": "https://coreui.io/angular/docs/components/breadcrumb/",
- "bootstrap": "https://coreui.io/docs/components/breadcrumb/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/breadcrumb/",
"react": "https://coreui.io/react/docs/components/breadcrumb/",
"vue": "https://coreui.io/vue/docs/components/breadcrumb.html"
},
"button": {
"angular": "https://coreui.io/angular/docs/components/button/",
- "bootstrap": "https://coreui.io/docs/components/buttons/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/buttons/",
"react": "https://coreui.io/react/docs/components/button/",
"vue": "https://coreui.io/vue/docs/components/button.html"
},
"button-group": {
"angular": "https://coreui.io/angular/docs/components/button-group/",
- "bootstrap": "https://coreui.io/docs/components/button-group/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/button-group/",
"react": "https://coreui.io/react/docs/components/button-group/",
"vue": "https://coreui.io/vue/docs/components/button-group.html"
},
"callout": {
"angular": "https://coreui.io/angular/docs/components/callout/",
- "bootstrap": "https://coreui.io/docs/components/callout/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/callout/",
"react": "https://coreui.io/react/docs/components/callout/",
"vue": "https://coreui.io/vue/docs/components/callout.html"
},
"card": {
"angular": "https://coreui.io/angular/docs/components/card/",
- "bootstrap": "https://coreui.io/docs/components/card/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/card/",
"react": "https://coreui.io/react/docs/components/card/",
"vue": "https://coreui.io/vue/docs/components/card.html"
},
"carousel": {
"angular": "https://coreui.io/angular/docs/components/carousel/",
- "bootstrap": "https://coreui.io/docs/components/carousel/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/carousel/",
"react": "https://coreui.io/react/docs/components/carousel/",
"vue": "https://coreui.io/vue/docs/components/carousel.html"
},
"checkbox": {
"angular": "https://coreui.io/angular/docs/forms/checks-radios/",
- "bootstrap": "https://coreui.io/docs/forms/checks-radios/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/checks-radios/",
"react": "https://coreui.io/react/docs/forms/checkbox/",
"vue": "https://coreui.io/vue/docs/forms/checkbox.html"
},
"close-button": {
"angular": "https://coreui.io/angular/docs/components/close-button/",
- "bootstrap": "https://coreui.io/docs/components/close-button/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/close-button/",
"react": "https://coreui.io/react/docs/components/close-button/",
"vue": "https://coreui.io/vue/docs/components/close-button.html"
},
"collapse": {
"angular": "https://coreui.io/angular/docs/components/collapse/",
- "bootstrap": "https://coreui.io/docs/components/collapse/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/collapse/",
"react": "https://coreui.io/react/docs/components/collapse/",
"vue": "https://coreui.io/vue/docs/components/collapse.html"
},
"dropdown": {
"angular": "https://coreui.io/angular/docs/components/dropdown/",
- "bootstrap": "https://coreui.io/docs/components/dropdowns/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/dropdowns/",
"react": "https://coreui.io/react/docs/components/dropdown/",
"vue": "https://coreui.io/vue/docs/components/dropdown.html"
},
"footer": {
"angular": "https://coreui.io/angular/docs/components/footer/",
- "bootstrap": "https://coreui.io/docs/components/footer/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/footer/",
"react": "https://coreui.io/react/docs/components/footer/",
"vue": "https://coreui.io/vue/docs/components/footer.html"
},
"header": {
"angular": "https://coreui.io/angular/docs/components/header/",
- "bootstrap": "https://coreui.io/docs/components/header/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/header/",
"react": "https://coreui.io/react/docs/components/header/",
"vue": "https://coreui.io/vue/docs/components/header.html"
},
"icon": {
"angular": "https://coreui.io/angular/docs/components/icon/",
- "bootstrap": "https://coreui.io/docs/components/icon/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/icon/",
"react": "https://coreui.io/react/docs/components/icon/",
"vue": "https://coreui.io/vue/docs/components/icon.html"
},
"image": {
"angular": "https://coreui.io/angular/docs/components/image/",
- "bootstrap": "https://coreui.io/docs/content/images/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/content/images/",
"react": "https://coreui.io/react/docs/components/image/",
"vue": "https://coreui.io/vue/docs/components/image.html"
},
"input": {
"angular": "https://coreui.io/angular/docs/forms/input/",
- "bootstrap": "https://coreui.io/docs/forms/form-control/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/form-control/",
"react": "https://coreui.io/react/docs/forms/input/",
"vue": "https://coreui.io/vue/docs/forms/input.html"
},
"input-group": {
"angular": "https://coreui.io/angular/docs/forms/input-group/",
- "bootstrap": "https://coreui.io/docs/forms/input-group/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/input-group/",
"react": "https://coreui.io/react/docs/forms/input-group/",
"vue": "https://coreui.io/vue/docs/forms/input-group.html"
},
"floating-labels": {
"angular": "https://coreui.io/angular/docs/forms/floating-labels/",
- "bootstrap": "https://coreui.io/docs/forms/floating-labels/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/floating-labels/",
"react": "https://coreui.io/react/docs/forms/floating-labels/",
"vue": "https://coreui.io/vue/docs/forms/floating-labels.html"
},
"list-group": {
"angular": "https://coreui.io/angular/docs/components/list-group/",
- "bootstrap": "https://coreui.io/docs/components/list-group/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/list-group/",
"react": "https://coreui.io/react/docs/components/list-group/",
"vue": "https://coreui.io/vue/docs/components/list-group.html"
},
"modal": {
"angular": "https://coreui.io/angular/docs/components/modal/",
- "bootstrap": "https://coreui.io/docs/components/modal/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/modal/",
"react": "https://coreui.io/react/docs/components/modal/",
"vue": "https://coreui.io/vue/docs/components/modal.html"
},
"navbar": {
- "bootstrap": "https://coreui.io/docs/components/navbar/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/navbar/",
"react": "https://coreui.io/react/docs/components/navbar/",
"vue": "https://coreui.io/vue/docs/components/navbar.html"
},
"navs-tabs": {
"angular": "https://coreui.io/angular/docs/components/nav/",
- "bootstrap": "https://coreui.io/docs/components/navs-tabs/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/navs-tabs/",
"react": "https://coreui.io/react/docs/components/navs-tabs/",
"vue": "https://coreui.io/vue/docs/components/navs-tabs.html"
},
"offcanvas": {
"angular": "https://coreui.io/angular/docs/components/offcanvas/",
- "bootstrap": "https://coreui.io/docs/components/offcanvas/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/offcanvas/",
"react": "https://coreui.io/react/docs/components/offcanvas/",
"vue": "https://coreui.io/vue/docs/components/offcanvas.html"
},
"pagination": {
"angular": "https://coreui.io/angular/docs/components/pagination/",
- "bootstrap": "https://coreui.io/docs/components/pagination/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/pagination/",
"react": "https://coreui.io/react/docs/components/pagination/",
"vue": "https://coreui.io/vue/docs/components/pagination.html"
},
"placeholder": {
"angular": "https://coreui.io/angular/docs/components/placeholder/",
- "bootstrap": "https://coreui.io/docs/components/placeholders/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/placeholders/",
"react": "https://coreui.io/react/docs/components/placeholder/",
"vue": "https://coreui.io/vue/docs/components/placeholder.html"
},
"popover": {
"angular": "https://coreui.io/angular/docs/components/popover/",
- "bootstrap": "https://coreui.io/docs/components/popovers/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/popovers/",
"react": "https://coreui.io/react/docs/components/popover/",
"vue": "https://coreui.io/vue/docs/components/popover.html"
},
"progress": {
"angular": "https://coreui.io/angular/docs/components/progress/",
- "bootstrap": "https://coreui.io/docs/components/progress/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/progress/",
"react": "https://coreui.io/react/docs/components/progress/",
"vue": "https://coreui.io/vue/docs/components/progress.html"
},
"radio": {
"angular": "https://coreui.io/angular/docs/forms/checks-radios/",
- "bootstrap": "https://coreui.io/docs/forms/checks-radios/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/checks-radios/",
"react": "https://coreui.io/react/docs/forms/radio/",
"vue": "https://coreui.io/vue/docs/forms/radio.html"
},
"range": {
"angular": "https://coreui.io/angular/docs/forms/range/",
- "bootstrap": "https://coreui.io/docs/forms/range/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/range/",
"react": "https://coreui.io/react/docs/forms/range/",
"vue": "https://coreui.io/vue/docs/forms/range.html"
},
"select": {
"angular": "https://coreui.io/angular/docs/forms/select/",
- "bootstrap": "https://coreui.io/docs/forms/select/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/select/",
"react": "https://coreui.io/react/docs/forms/select/",
"vue": "https://coreui.io/vue/docs/forms/select.html"
},
"sidebar": {
"angular": "https://coreui.io/angular/docs/components/sidebar/",
- "bootstrap": "https://coreui.io/docs/components/sidebar/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/sidebar/",
"react": "https://coreui.io/react/docs/components/sidebar/",
"vue": "https://coreui.io/vue/docs/components/sidebar.html"
},
"spinner": {
"angular": "https://coreui.io/angular/docs/components/spinner/",
- "bootstrap": "https://coreui.io/docs/components/spinners/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/spinners/",
"react": "https://coreui.io/react/docs/components/spinner/",
"vue": "https://coreui.io/vue/docs/components/spinner.html"
},
"switch": {
"angular": "https://coreui.io/angular/docs/forms/checks-radios/",
- "bootstrap": "https://coreui.io/docs/forms/checks-radios/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/checks-radios/",
"react": "https://coreui.io/react/docs/forms/switch/",
"vue": "https://coreui.io/vue/docs/forms/switch.html"
},
"table": {
"angular": "https://coreui.io/angular/docs/components/table/",
- "bootstrap": "https://coreui.io/docs/content/tables/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/content/tables/",
"react": "https://coreui.io/react/docs/components/table/",
"vue": "https://coreui.io/vue/docs/components/table.html"
},
"textarea": {
"angular": "https://coreui.io/angular/docs/forms/form-control/",
- "bootstrap": "https://coreui.io/docs/forms/form-control/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/forms/form-control/",
"react": "https://coreui.io/react/docs/forms/textarea/",
"vue": "https://coreui.io/vue/docs/forms/textarea.html"
},
"toast": {
"angular": "https://coreui.io/angular/docs/components/toast/",
- "bootstrap": "https://coreui.io/docs/components/toasts/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/toasts/",
"react": "https://coreui.io/react/docs/components/toast/",
"vue": "https://coreui.io/vue/docs/components/toast.html"
},
"tooltip": {
"angular": "https://coreui.io/angular/docs/components/tooltip/",
- "bootstrap": "https://coreui.io/docs/components/tooltips/",
+ "bootstrap": "https://coreui.io/bootstrap/docs/components/tooltips/",
"react": "https://coreui.io/react/docs/components/tooltip/",
"vue": "https://coreui.io/vue/docs/components/tooltip.html"
}
diff --git a/packages/docs/getting-started/introduction.md b/packages/docs/getting-started/introduction.md
index c0a6a0f4..911e5bb2 100644
--- a/packages/docs/getting-started/introduction.md
+++ b/packages/docs/getting-started/introduction.md
@@ -10,11 +10,11 @@ menu: Getting started
### Npm
-
+
CoreUI
CoreUI PRO
-
+
```bash
@@ -34,11 +34,11 @@ npm install @coreui/vue-pro @coreui/coreui-pro
### Yarn
-
+
CoreUI
CoreUI PRO
-
+
```bash
@@ -57,11 +57,11 @@ yarn add @coreui/vue-pro @coreui/coreui-pro
## Using components
-
+
CoreUI
CoreUI PRO
-
+
```js
@@ -87,11 +87,11 @@ Vue components are styled using the `@coreui/coreui` or `@coreui/coreui-pro` CSS
###### Basic usage
-
+
CoreUI
CoreUI PRO
-
+
```js
From 37eec0e3a742c33960f87723eba9d194c4fd282c Mon Sep 17 00:00:00 2001
From: mrholek
Date: Tue, 28 May 2024 13:12:14 +0200
Subject: [PATCH 287/346] docs: update layout
---
.../.vuepress/src/client/components/ScssDocs.vue | 2 +-
.../docs/.vuepress/src/client/layouts/Layout.vue | 12 ++++++++++--
packages/docs/.vuepress/src/shared/page.ts | 1 +
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/packages/docs/.vuepress/src/client/components/ScssDocs.vue b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
index dd9fb126..6004d20a 100644
--- a/packages/docs/.vuepress/src/client/components/ScssDocs.vue
+++ b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
@@ -22,7 +22,7 @@ export default defineComponent({
}
const files = import.meta.glob(`../../../../../../node_modules/@coreui/coreui/scss/**/*.scss`, {
- as: 'raw',
+ query: '?raw',
eager: true,
})
const file = files[`../../../../../../node_modules/@coreui/coreui/scss/${props.file}`]
diff --git a/packages/docs/.vuepress/src/client/layouts/Layout.vue b/packages/docs/.vuepress/src/client/layouts/Layout.vue
index 936b31c4..486d0064 100755
--- a/packages/docs/.vuepress/src/client/layouts/Layout.vue
+++ b/packages/docs/.vuepress/src/client/layouts/Layout.vue
@@ -13,8 +13,15 @@
-
{{ title }}
-
{{ description }}
+
+
+ {{ title }}
+
+ {{ name }}
+
+
+ {{ title }}
+
@@ -56,6 +63,7 @@ const scrollPromise = useScrollPromise()
const onBeforeEnter = scrollPromise.resolve
const onBeforeLeave = scrollPromise.pending
+const name = frontmatter.value.name
const title = frontmatter.value.title
const description = frontmatter.value.description
diff --git a/packages/docs/.vuepress/src/shared/page.ts b/packages/docs/.vuepress/src/shared/page.ts
index 9feed30c..7e3bcdf5 100755
--- a/packages/docs/.vuepress/src/shared/page.ts
+++ b/packages/docs/.vuepress/src/shared/page.ts
@@ -9,6 +9,7 @@ export interface DefaultThemePageFrontmatter {
home?: boolean
navbar?: boolean
pageClass?: string
+ name?: string
}
export interface DefaultThemeHomePageFrontmatter
From 897780e086e22d5006475e154c793be2da33f7e8 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Tue, 28 May 2024 13:12:25 +0200
Subject: [PATCH 288/346] docs: update content
---
packages/docs/components/alert.md | 1 +
packages/docs/components/chart.md | 1 +
packages/docs/components/placeholder.md | 1 +
packages/docs/components/sidebar.md | 1 +
packages/docs/getting-started/introduction.md | 2 +-
5 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/packages/docs/components/alert.md b/packages/docs/components/alert.md
index 8575ad96..7a757599 100644
--- a/packages/docs/components/alert.md
+++ b/packages/docs/components/alert.md
@@ -1,5 +1,6 @@
---
title: Vue Alert Component
+name: Alert
description: Vue alert component gives contextual feedback information for common user operations. The alert component is delivered with a bunch of usable and adjustable alert messages.
other_frameworks: alert
---
diff --git a/packages/docs/components/chart.md b/packages/docs/components/chart.md
index 181f6635..d10a26d2 100644
--- a/packages/docs/components/chart.md
+++ b/packages/docs/components/chart.md
@@ -1,5 +1,6 @@
---
title: Vue Chart.js Component
+name: Chart.js
description: Vue wrapper for Chart.js 3.0, the most popular charting library.
---
diff --git a/packages/docs/components/placeholder.md b/packages/docs/components/placeholder.md
index 658ca503..a18b0153 100644
--- a/packages/docs/components/placeholder.md
+++ b/packages/docs/components/placeholder.md
@@ -1,5 +1,6 @@
---
title: Vue Placeholder Component
+name: Placeholder
description: Use loading vue placeholders for your components or pages to indicate something may still be loading.
other_frameworks: placeholder
---
diff --git a/packages/docs/components/sidebar.md b/packages/docs/components/sidebar.md
index 1f32c9c6..b59d1f54 100644
--- a/packages/docs/components/sidebar.md
+++ b/packages/docs/components/sidebar.md
@@ -1,5 +1,6 @@
---
title: Vue Sidebar Component
+name: Sidebar
description: Vue Sidebar is a powerful and customizable responsive navigation component for any type of vertical navigation. Bootstrap Sidebar come with built-in support for branding, navigation, and more.
other_frameworks: sidebar
---
diff --git a/packages/docs/getting-started/introduction.md b/packages/docs/getting-started/introduction.md
index 911e5bb2..405a039e 100644
--- a/packages/docs/getting-started/introduction.md
+++ b/packages/docs/getting-started/introduction.md
@@ -1,5 +1,5 @@
---
-title: Getting Started
+title: Introduction
name: Introduction
description: CoreUI for Vue.js is UI Component library written in TypeScript, and ready for your next Vue.js project. Learn how to include CoreUI for Vue.js in your project.
menu: Getting started
From 18644600476c7088229bcb1f5cb9edff156d50ee Mon Sep 17 00:00:00 2001
From: mrholek
Date: Tue, 28 May 2024 13:18:06 +0200
Subject: [PATCH 289/346] chore: update dependencies and devDependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@coreui/coreui ^5.0.1 → ^5.0.2
@rollup/plugin-commonjs ^25.0.7 → ^25.0.8
@typescript-eslint/eslint-plugin ^7.4.0 → ^7.11.0
@typescript-eslint/parser ^7.4.0 → ^7.11.0
@vue/test-utils ^2.4.5 → ^2.4.6
@vuepress/bundler-vite 2.0.0-rc.11 → 2.0.0-rc.12
@vuepress/plugin-active-header-links 2.0.0-rc.30 → 2.0.0-rc.31
@vuepress/plugin-back-to-top 2.0.0-rc.30 → 2.0.0-rc.31
@vuepress/plugin-git 2.0.0-rc.30 → 2.0.0-rc.31
@vuepress/plugin-prismjs 2.0.0-rc.30 → 2.0.0-rc.32
@vuepress/plugin-register-components 2.0.0-rc.30 → 2.0.0-rc.31
@vuepress/plugin-theme-data 2.0.0-rc.30 → 2.0.0-rc.31
@vuepress/plugin-toc 2.0.0-rc.30 → 2.0.0-rc.31
eslint-plugin-vue ^9.24.0 → ^9.26.0
lerna ^8.1.2 → ^8.1.3
rollup ^4.13.2 → ^4.18.0
ts-jest ^29.1.2 → ^29.1.4
typescript ^5.4.3 → ^5.4.5
vue ^3.4.21 → ^3.4.27
vue-types ^5.1.1 → ^5.1.2
vuepress 2.0.0-rc.11 → 2.0.0-rc.12
---
package.json | 8 ++++----
packages/coreui-vue/package.json | 16 ++++++++--------
packages/docs/package.json | 20 ++++++++++----------
3 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/package.json b/package.json
index b8c9328f..f038380e 100644
--- a/package.json
+++ b/package.json
@@ -22,17 +22,17 @@
"test:update": "npm-run-all charts:test:update icons:test:update lib:test:update"
},
"devDependencies": {
- "@typescript-eslint/eslint-plugin": "^7.4.0",
- "@typescript-eslint/parser": "^7.4.0",
+ "@typescript-eslint/eslint-plugin": "^7.11.0",
+ "@typescript-eslint/parser": "^7.11.0",
"@vue/eslint-config-prettier": "^9.0.0",
"@vue/eslint-config-typescript": "^13.0.0",
"@vue/vue3-jest": "29.2.6",
"eslint": "8.57.0",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-vue": "^9.24.0",
+ "eslint-plugin-vue": "^9.26.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-unicorn": "^51.0.1",
- "lerna": "^8.1.2",
+ "lerna": "^8.1.3",
"npm-run-all": "^4.1.5",
"prettier": "^3.2.5"
}
diff --git a/packages/coreui-vue/package.json b/packages/coreui-vue/package.json
index f4134e45..dad717e6 100644
--- a/packages/coreui-vue/package.json
+++ b/packages/coreui-vue/package.json
@@ -41,25 +41,25 @@
"test:update": "jest --coverage --updateSnapshot"
},
"dependencies": {
- "@coreui/coreui": "^5.0.0",
+ "@coreui/coreui": "^5.0.2",
"@popperjs/core": "^2.11.8"
},
"devDependencies": {
- "@rollup/plugin-commonjs": "^25.0.7",
+ "@rollup/plugin-commonjs": "^25.0.8",
"@rollup/plugin-node-resolve": "^15.2.3",
"@rollup/plugin-typescript": "^11.1.6",
"@types/jest": "^29.5.12",
- "@vue/test-utils": "^2.4.5",
+ "@vue/test-utils": "^2.4.6",
"@vue/vue3-jest": "29.2.6",
"cross-env": "^7.0.3",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
- "rollup": "^4.13.2",
+ "rollup": "^4.18.0",
"rollup-plugin-vue": "^6.0.0",
- "ts-jest": "^29.1.2",
- "typescript": "^5.4.3",
- "vue": "^3.4.21",
- "vue-types": "^5.1.1"
+ "ts-jest": "^29.1.4",
+ "typescript": "^5.4.5",
+ "vue": "^3.4.27",
+ "vue-types": "^5.1.2"
},
"peerDependencies": {
"vue": "^3.2.21"
diff --git a/packages/docs/package.json b/packages/docs/package.json
index 1795fdbe..cd89b42f 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -9,25 +9,25 @@
"license": "MIT",
"devDependencies": {
"@coreui/chartjs": "^4.0.0",
- "@coreui/coreui": "^5.0.1",
+ "@coreui/coreui": "^5.0.2",
"@coreui/icons": "^3.0.1",
"@coreui/icons-vue": "^2.0.0",
"@coreui/utils": "^2.0.2",
"@coreui/vue-chartjs": "^3.0.0",
"@docsearch/css": "^3.6.0",
"@docsearch/js": "^3.6.0",
- "@vuepress/bundler-vite": "2.0.0-rc.11",
- "@vuepress/plugin-active-header-links": "2.0.0-rc.30",
- "@vuepress/plugin-back-to-top": "2.0.0-rc.30",
+ "@vuepress/bundler-vite": "2.0.0-rc.12",
+ "@vuepress/plugin-active-header-links": "2.0.0-rc.31",
+ "@vuepress/plugin-back-to-top": "2.0.0-rc.31",
"@vuepress/plugin-container": "2.0.0-rc.28",
- "@vuepress/plugin-git": "2.0.0-rc.30",
- "@vuepress/plugin-prismjs": "2.0.0-rc.30",
- "@vuepress/plugin-theme-data": "2.0.0-rc.30",
- "@vuepress/plugin-register-components": "2.0.0-rc.30",
- "@vuepress/plugin-toc": "2.0.0-rc.30",
+ "@vuepress/plugin-git": "2.0.0-rc.31",
+ "@vuepress/plugin-prismjs": "2.0.0-rc.32",
+ "@vuepress/plugin-theme-data": "2.0.0-rc.31",
+ "@vuepress/plugin-register-components": "2.0.0-rc.31",
+ "@vuepress/plugin-toc": "2.0.0-rc.31",
"markdown-it-include": "^2.0.0",
"sass": "^1.77.2",
"vue-docgen-cli": "^4.79.0",
- "vuepress": "2.0.0-rc.11"
+ "vuepress": "2.0.0-rc.12"
}
}
From af5303f2722371283de290a4f09f2c688c7e4b99 Mon Sep 17 00:00:00 2001
From: mrholek
Date: Wed, 29 May 2024 11:35:11 +0200
Subject: [PATCH 290/346] docs: update layout
---
.../docs/.vuepress/src/client/components/ScssDocs.vue | 8 ++++----
packages/docs/.vuepress/src/client/layouts/Layout.vue | 1 +
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/packages/docs/.vuepress/src/client/components/ScssDocs.vue b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
index 6004d20a..ba8b8fe6 100644
--- a/packages/docs/.vuepress/src/client/components/ScssDocs.vue
+++ b/packages/docs/.vuepress/src/client/components/ScssDocs.vue
@@ -15,14 +15,14 @@ export default defineComponent({
file: String,
},
setup(props) {
-
if (typeof window !== 'undefined') {
- window.Prism = window.Prism || {};
- window.Prism.manual = true;
+ window.Prism = window.Prism || {}
+ window.Prism.manual = true
}
const files = import.meta.glob(`../../../../../../node_modules/@coreui/coreui/scss/**/*.scss`, {
query: '?raw',
+ import: 'default',
eager: true,
})
const file = files[`../../../../../../node_modules/@coreui/coreui/scss/${props.file}`]
@@ -40,7 +40,7 @@ export default defineComponent({
.replaceAll('\n @', '\n@'),
Prism.languages.scss,
'scss',
- )
+ )
: null
return {
code,
diff --git a/packages/docs/.vuepress/src/client/layouts/Layout.vue b/packages/docs/.vuepress/src/client/layouts/Layout.vue
index 486d0064..672cf9be 100755
--- a/packages/docs/.vuepress/src/client/layouts/Layout.vue
+++ b/packages/docs/.vuepress/src/client/layouts/Layout.vue
@@ -22,6 +22,7 @@
{{ title }}
+ {{ description }}