+ export default cssVars
+}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_ads.scss b/packages/docs/.vuepress/src/client/styles/_ads.scss
similarity index 55%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_ads.scss
rename to packages/docs/.vuepress/src/client/styles/_ads.scss
index 6135a5e3..b2b942f0 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_ads.scss
+++ b/packages/docs/.vuepress/src/client/styles/_ads.scss
@@ -1,3 +1,12 @@
+// stylelint-disable declaration-no-important, selector-max-id
+@use "@coreui/coreui/scss/mixins/border-radius" as *;
+@use "@coreui/coreui/scss/mixins/breakpoints" as *;
+@use "@coreui/coreui/scss/vendor/rfs" as *;
+
+//
+// Carbon ads
+//
+
#carbonads {
position: static;
display: block;
@@ -8,10 +17,10 @@
@include font-size(.8125rem);
line-height: 1.4;
text-align: left;
- background-color: $gray-100;
+ background-color: var(--cui-tertiary-bg);
a {
- color: $gray-800;
+ color: var(--cui-body-color);
text-decoration: none;
}
@@ -28,5 +37,5 @@
.carbon-poweredby {
display: block;
margin-top: .75rem;
- color: $gray-700 !important;
-}
\ No newline at end of file
+ color: var(--cui-body-color) !important;
+}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_anchor.scss b/packages/docs/.vuepress/src/client/styles/_anchor.scss
similarity index 78%
rename from packages/docs/.vuepress/theme-coreui/src/client/styles/_anchor.scss
rename to packages/docs/.vuepress/src/client/styles/_anchor.scss
index 3f9ade89..5098ac5a 100644
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_anchor.scss
+++ b/packages/docs/.vuepress/src/client/styles/_anchor.scss
@@ -1,3 +1,6 @@
+@use "@coreui/coreui/scss/mixins/transition" as *;
+@use "@coreui/coreui/scss/variables" as *;
+
.anchor-link {
font-weight: 400;
color: rgba($link-color, .5);
diff --git a/packages/docs/.vuepress/src/client/styles/_callouts.scss b/packages/docs/.vuepress/src/client/styles/_callouts.scss
new file mode 100644
index 00000000..9c29d8b1
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_callouts.scss
@@ -0,0 +1,42 @@
+@use "@coreui/coreui/scss/variables" as *;
+@use "variables" as *;
+
+//
+// Callouts
+//
+
+.docs-callout {
+ --#{$prefix}link-color-rgb: var(--cd-callout-link);
+ --#{$prefix}code-color: var(--cd-callout-code-color);
+
+ padding: 1.25rem;
+ margin-top: 1.25rem;
+ margin-bottom: 1.25rem;
+ background-color: var(--cd-callout-bg, var(--cui-gray-100));
+ border-left: .25rem solid var(--cd-callout-border, var(--cui-gray-300));
+
+ h4 {
+ margin-bottom: .25rem;
+ }
+
+ > :last-child {
+ margin-bottom: 0;
+ }
+
+ + .docs-callout {
+ margin-top: -.25rem;
+ }
+
+ .highlight {
+ background-color: rgba($black, .05);
+ }
+}
+
+// Variations
+@each $variant in $cd-callout-variants {
+ .docs-callout-#{$variant} {
+ --cd-callout-color: var(--cui-#{$variant}-text-emphasis);
+ --cd-callout-bg: rgba(var(--cui-#{$variant}-rgb), .1);
+ --cd-callout-border: var(--cui-#{$variant});
+ }
+}
diff --git a/packages/docs/.vuepress/src/client/styles/_component-examples.scss b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
new file mode 100644
index 00000000..e5c07161
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_component-examples.scss
@@ -0,0 +1,480 @@
+@use "@coreui/coreui/scss/mixins/border-radius" as *;
+@use "@coreui/coreui/scss/mixins/breakpoints" as *;
+@use "@coreui/coreui/scss/mixins/clearfix" as *;
+@use "@coreui/coreui/scss/mixins/container" as *;
+@use "@coreui/coreui/scss/mixins/grid" as *;
+@use "@coreui/coreui/scss/vendor/rfs" as *;
+@use "@coreui/coreui/scss/variables" as *;
+@use "variables" as *;
+
+//
+// Docs examples
+//
+
+.docs-code-tabs {
+ padding: 0 ($cd-gutter-x * .5);
+ margin: 0 ($cd-gutter-x * -.5);
+
+ @include media-breakpoint-up(md) {
+ padding: 0;
+ margin: 0;
+ }
+}
+
+.docs-code-tab-content {
+ .tab-pane 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;
+
+ @include media-breakpoint-up(md) {
+ border-width: 1px;
+ }
+}
+
+.docs-example {
+ --cd-example-padding: 1rem;
+
+ position: relative;
+ padding: var(--cd-example-padding);
+ margin: 0 ($cd-gutter-x * -.5);
+ border: solid var(--cui-border-color);
+ border-width: 1px 0;
+ @include clearfix();
+
+ @include media-breakpoint-up(md) {
+ --cd-example-padding: 1.5rem;
+
+ margin-right: 0;
+ margin-left: 0;
+ border-width: 1px;
+ @include border-top-radius(var(--cui-border-radius));
+ }
+
+ + .docs-code-snippet {
+ @include border-top-radius(0);
+ border: solid var(--cui-border-color);
+ border-width: 0 1px 1px;
+ }
+
+ + p {
+ margin-top: 2rem;
+ }
+
+ > .form-control {
+ + .form-control {
+ margin-top: .5rem;
+ }
+ }
+
+ > .nav + .nav,
+ > .alert + .alert,
+ > .navbar + .navbar,
+ > .progress + .progress {
+ margin-top: $spacer;
+ }
+
+ > .dropdown-menu {
+ position: static;
+ display: block;
+ }
+
+ > :last-child,
+ > nav:last-child .breadcrumb {
+ margin-bottom: 0;
+ }
+
+ > hr:last-child {
+ margin-bottom: $spacer;
+ }
+
+ // Images
+ > svg + svg,
+ > img + img {
+ margin-left: .5rem;
+ }
+
+ // Avatars
+ > .avatar + .avatar {
+ margin-left: .25rem;
+ }
+
+ // Badges
+ > .badge + .badge {
+ margin-left: .25rem;
+ }
+
+ // Buttons
+ > .btn,
+ > .btn-group {
+ margin: .25rem .125rem;
+ }
+ > .btn-toolbar + .btn-toolbar {
+ margin-top: .5rem;
+ }
+
+ // List groups
+ > .list-group {
+ max-width: 400px;
+ }
+
+ > [class*="list-group-horizontal"] {
+ max-width: 100%;
+ }
+
+ // Navbars
+ .fixed-top,
+ .sticky-top {
+ position: static;
+ margin: calc(var(--cd-example-padding) * -1) calc(var(--cd-example-padding) * -1) var(--cd-example-padding); // stylelint-disable-line function-disallowed-list
+ }
+
+ .fixed-bottom,
+ .sticky-bottom {
+ position: static;
+ margin: var(--cd-example-padding) calc(var(--cd-example-padding) * -1) calc(var(--cd-example-padding) * -1); // stylelint-disable-line function-disallowed-list
+
+ }
+
+ // Pagination
+ .pagination {
+ margin-bottom: 0;
+ }
+
+ // Sidebar
+ .sidebar-narrow,
+ .sidebar-narrow-unfoldable {
+ position: static;
+ }
+
+ .sidebar-narrow-unfoldable {
+ min-height: 550px;
+ }
+
+ // Spinners
+ > .spinner-grow + .spinner-border,
+ > .spinner-border + .spinner-grow,
+ > .spinner-border + .spinner-border,
+ > .spinner-grow + .spinner-grow {
+ margin-left: .25rem;
+ }
+}
+
+//
+// Grid examples
+//
+
+.docs-example-row [class^="col"],
+.docs-example-cols [class^="col"] > *,
+.docs-example-cssgrid [class*="grid"] > * {
+ padding-top: .75rem;
+ padding-bottom: .75rem;
+ background-color: rgba(var(--cd-violet-rgb), .15);
+ border: 1px solid rgba(var(--cd-violet-rgb), .3);
+}
+
+.docs-example-row .row + .row,
+.docs-example-cssgrid .grid + .grid {
+ margin-top: 1rem;
+}
+
+.docs-example-row-flex-cols .row {
+ min-height: 10rem;
+ background-color: rgba(var(--cd-violet-rgb), .15);
+}
+
+.docs-example-flex div:not(.vr) {
+ background-color: rgba(var(--cd-violet-rgb), .15);
+ border: 1px solid rgba(var(--cd-violet-rgb), .3);
+}
+
+// Grid mixins
+.example-container {
+ width: 800px;
+ @include make-container();
+}
+
+.example-row {
+ @include make-row();
+}
+
+.example-content-main {
+ @include make-col-ready();
+
+ @include media-breakpoint-up(sm) {
+ @include make-col(6);
+ }
+
+ @include media-breakpoint-up(lg) {
+ @include make-col(8);
+ }
+}
+
+.example-content-secondary {
+ @include make-col-ready();
+
+ @include media-breakpoint-up(sm) {
+ @include make-col(6);
+ }
+
+ @include media-breakpoint-up(lg) {
+ @include make-col(4);
+ }
+}
+
+// Ratio helpers
+.docs-example-ratios {
+ .ratio {
+ display: inline-block;
+ width: 10rem;
+ color: var(--cui-secondary-color);
+ background-color: var(--cui-tertiary-bg);
+ border: var(--cui-border-width) solid var(--cui-border-color);
+
+ > div {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
+.docs-example-ratios-breakpoint {
+ .ratio-4x3 {
+ width: 16rem;
+
+ @include media-breakpoint-up(md) {
+ --cui-aspect-ratio: 50%; // 2x1
+ }
+ }
+}
+
+.docs-example-offcanvas {
+ .offcanvas {
+ position: static;
+ display: block;
+ height: 200px;
+ visibility: visible;
+ transform: translate(0);
+ }
+}
+
+// Tooltips
+.tooltip-demo {
+ a {
+ white-space: nowrap;
+ }
+
+ .btn {
+ margin: .25rem .125rem;
+ }
+}
+
+// scss-docs-start custom-tooltip
+.custom-tooltip {
+ --cui-tooltip-bg: var(--cui-primary);
+}
+// scss-docs-end custom-tooltip
+
+// scss-docs-start custom-popovers
+.custom-popover {
+ --cui-popover-max-width: 200px;
+ --cui-popover-border-color: var(--cui-primary);
+ --cui-popover-header-bg: var(--cui-primary);
+ --cui-popover-header-color: var(--cui-white);
+ --cui-popover-body-padding-x: 1rem;
+ --cui-popover-body-padding-y: .5rem;
+}
+// scss-docs-end custom-popovers
+
+// Scrollspy demo on fixed height div
+.scrollspy-example {
+ height: 200px;
+ margin-top: .5rem;
+ overflow: auto;
+}
+
+.scrollspy-example-2 {
+ height: 350px;
+ overflow: auto;
+}
+
+.simple-list-example-scrollspy {
+ .active {
+ background-color: rgba(var(--cd-violet-rgb), .15);
+ }
+}
+
+.docs-example-border-utils {
+ [class^="border"] {
+ display: inline-block;
+ width: 5rem;
+ height: 5rem;
+ margin: .25rem;
+ background-color: var(--cui-tertiary-bg);
+ }
+}
+
+.docs-example-rounded-utils {
+ [class*="rounded"] {
+ margin: .25rem;
+ }
+}
+
+.docs-example-position-utils {
+ position: relative;
+ padding: 2rem;
+
+ .position-relative {
+ height: 200px;
+ background-color: var(--cui-tertiary-bg);
+ }
+
+ .position-absolute {
+ width: 2rem;
+ height: 2rem;
+ background-color: var(--cui-body-color);
+ @include border-radius();
+ }
+}
+
+.docs-example-position-examples {
+ &::after {
+ content: none;
+ }
+}
+
+// Placeholders
+.docs-example-placeholder-cards {
+ &::after {
+ display: none;
+ }
+
+ .card {
+ width: 18rem;
+ }
+}
+
+// Toasts
+.docs-example-toasts {
+ min-height: 240px;
+}
+
+.docs-example-zindex-levels {
+ min-height: 15rem;
+
+ > div {
+ color: var(--cui-body-bg);
+ background-color: var(--cd-violet);
+ border: 1px solid var(--cd-purple);
+
+ > span {
+ position: absolute;
+ right: 5px;
+ bottom: 0;
+ }
+ }
+
+ > :nth-child(2) {
+ top: 3rem;
+ left: 3rem;
+ }
+ > :nth-child(3) {
+ top: 4.5rem;
+ left: 4.5rem;
+ }
+ > :nth-child(4) {
+ top: 6rem;
+ left: 6rem;
+ }
+ > :nth-child(5) {
+ top: 7.5rem;
+ left: 7.5rem;
+ }
+}
+
+//
+// Code snippets
+//
+
+div[class^="language-"],
+.highlight {
+ position: relative;
+ padding: .75rem ($cd-gutter-x * .5);
+ 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-bottom: 0;
+ overflow: overlay;
+ white-space: pre;
+ background-color: transparent;
+ border: 0;
+ }
+
+ pre code {
+ @include font-size(inherit);
+ color: var(--cui-body-color); // Effectively the base text color
+ word-wrap: normal;
+ }
+}
+
+.docs-code-snippet {
+ margin: 0 ($cd-gutter-x * -.5) $spacer;
+
+ div[class^="language-"],
+ .highlight {
+ margin-bottom: 0;
+ }
+
+ .docs-example ~ div[class^="language-"],
+ .docs-example ~ .highlight {
+ border: 0;
+ @include border-top-radius(0);
+ }
+
+ .docs-example {
+ margin: 0;
+ border: 0;
+ }
+
+ @include media-breakpoint-up(md) {
+ margin-right: 0;
+ margin-left: 0;
+ @include border-radius($border-radius);
+ }
+}
+
+.highlight-toolbar {
+ background-color: var(--cd-pre-bg);
+}
+
+.docs-scss-docs {
+ .highlight-toolbar {
+ @include border-top-radius(calc(var(--cui-border-radius) + 1px));
+ }
+}
+
+.docs-example {
+ border-bottom-width: 0;
+}
+
+.docs-example + div[class^="language-"],
+.docs-example + .highlight {
+ border-top-width: 0;
+ @include border-top-radius(0);
+}
diff --git a/packages/docs/.vuepress/src/client/styles/_footer.scss b/packages/docs/.vuepress/src/client/styles/_footer.scss
new file mode 100644
index 00000000..d7edfce1
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_footer.scss
@@ -0,0 +1,21 @@
+@use "@coreui/coreui/scss/vendor/rfs" as *;
+@use "@coreui/coreui/scss/variables" as *;
+
+//
+// Footer
+//
+
+.footer {
+ --cui-footer-bg: var(--cui-tertiary-bg);
+ @include font-size(.875rem);
+
+ a {
+ color: var(--#{$prefix}secondary-color);
+ // text-decoration: none;
+
+ &:hover,
+ &:focus {
+ color: var(--cui-link-hover-color);
+ }
+ }
+}
diff --git a/packages/docs/.vuepress/src/client/styles/_layout.scss b/packages/docs/.vuepress/src/client/styles/_layout.scss
new file mode 100644
index 00000000..7b4740de
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_layout.scss
@@ -0,0 +1,57 @@
+@use "@coreui/coreui/scss/mixins/breakpoints" as *;
+@use "@coreui/coreui/scss/mixins/transition" as *;
+@use "@coreui/coreui/scss/variables" as *;
+
+.wrapper {
+ width: 100%;
+ padding-inline-start: var(--cui-sidebar-occupy-start, 0);
+ will-change: auto;
+ @include transition(padding .15s);
+}
+
+.docs-sidebar {
+ grid-area: sidebar;
+}
+
+.docs-main {
+ grid-area: main;
+ display: grid;
+ grid-template-areas:
+ "header"
+ "intro"
+ "toc"
+ "content";
+ grid-template-rows: auto auto 1fr;
+ gap: .5rem;
+
+ @include media-breakpoint-down(lg) {
+ max-width: 760px;
+ margin-inline: auto;
+ }
+
+ @include media-breakpoint-up(xl) {
+ grid-template-areas:
+ "intro toc"
+ "content toc";
+ grid-template-rows: auto auto;
+ grid-template-columns: 4fr 1fr;
+ gap: $grid-gutter-width;
+ }
+}
+
+.docs-header {
+ grid-area: header;
+}
+
+.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/src/client/styles/_prism.scss b/packages/docs/.vuepress/src/client/styles/_prism.scss
new file mode 100644
index 00000000..8e6bc187
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_prism.scss
@@ -0,0 +1,176 @@
+@use "sass:color";
+@use "@coreui/coreui/scss/mixins/color-mode" as *;
+@use "@coreui/coreui/scss/variables" as *;
+
+/* PrismJS 1.24.1
+https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript */
+/**
+ * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
+ * Based on https://github.com/chriskempson/tomorrow-theme
+ * @author Rose Pritchard
+ */
+
+:root,
+[data-coreui-theme="light"] {
+ // --base00: #fff;
+ // --base01: #f5f5f5;
+ --base02: #c8c8fa;
+ --base03: #565c64;
+ --base04: #666;
+ --base05: #333;
+ --base06: #fff;
+ --base07: #{$teal-700}; // #9a6700
+ --base08: #{color.mix($red-500, $red-600, 50%)}; // #bc4c00
+ --base09: #{$cyan-700}; // #087990
+ --base0A: #{$purple-500}; // #795da3
+ --base0B: #{$blue-700}; // #183691
+ --base0C: #{$blue-700}; // #183691
+ --base0D: #{$purple-500}; // #795da3
+ --base0E: #{$pink-600}; // #a71d5d
+ --base0F: #333;
+ }
+
+@include color-mode(dark, true) {
+ // --base00: #282c34;
+ // --base01: #353b45;
+ --base02: #3e4451;
+ --base03: #868e96;
+ --base04: #868e96;
+ --base05: #abb2bf;
+ --base06: #b6bdca;
+ --base07: #{$orange-300}; // #d19a66
+ --base08: #{$cyan-300};
+ --base09: #{$orange-300}; // #d19a66
+ --base0A: #{$yellow-200}; // #e5c07b
+ --base0B: #{$teal-300}; // #98c379
+ --base0C: #{$teal-300}; // #56b6c2
+ --base0D: #{$blue-300}; // #61afef
+ --base0E: #{$indigo-200}; // #c678dd
+ --base0F: #{$red-300}; // #be5046
+
+ .language-diff .gd {
+ color: $red-400;
+ }
+ .language-diff .gi {
+ color: $green-400;
+ }
+}
+
+code[class*='language-'],
+pre[class*='language-'] {
+ background: none;
+ font-family: var(--cui-font-monospace);
+ font-size: .875em;
+ text-align: left;
+ white-space: pre;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+pre[class*='language-']:not(.language-sass):not(.language-scss):not(.language-text):not(.language-css) {
+ overflow: scroll;
+ max-height: 500px;
+}
+
+.token.comment,
+.token.block-comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: var(--base03);
+}
+
+.token.tag {
+ color: var(--base08);
+}
+
+.token.attr-name,
+.token.namespace,
+.token.deleted {
+ color: var(--base0A);
+}
+
+.token.punctuation {
+ color: var(--base05);
+}
+
+.token.function-name {
+ color: var(--base0A);
+}
+
+.token.boolean,
+.token.number,
+.token.function {
+ color: var(--base09);
+}
+
+.token.class-name,
+.token.maybe-class-name {
+ color: var(--base08);
+}
+
+.token.property,
+.token.constant,
+.token.symbol {
+ color: var(--base0A);
+}
+
+.token.selector,
+.token.important,
+.token.atrule,
+.token.keyword,
+.token.builtin {
+ color: var(--base0E);
+}
+
+.token.string,
+.token.char,
+.token.attr-value,
+.token.regex,
+.token.variable {
+ color: var(--base0C);
+}
+
+.token.operator,
+.token.entity,
+.token.url {
+ color: var(--base05);
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
+
+.token.inserted {
+ color: green;
+}
+
+.language-bash,
+.language-sh {
+ .token-line::before {
+ color: var(--base03);
+ content: "$ ";
+ user-select: none;
+ }
+}
+
+.language-powershell::before {
+ color: var(--base0C);
+ content: "PM> ";
+ user-select: none;
+}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/src/client/styles/_scrolling.scss b/packages/docs/.vuepress/src/client/styles/_scrolling.scss
new file mode 100644
index 00000000..20179600
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_scrolling.scss
@@ -0,0 +1,13 @@
+// When navigating with the keyboard, prevent focus from landing behind the sticky header
+
+main {
+ a,
+ button,
+ h2,
+ h3,
+ h4,
+ [tabindex="0"] {
+ scroll-margin-top: 80px;
+ scroll-margin-bottom: 100px;
+ }
+}
diff --git a/packages/docs/.vuepress/src/client/styles/_search.scss b/packages/docs/.vuepress/src/client/styles/_search.scss
new file mode 100644
index 00000000..16fa476c
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_search.scss
@@ -0,0 +1,168 @@
+/*!
+ * CoreUI Docs (https://coreui.io/bootstrap/docs/)
+ * Copyright 2025 creativeLabs Łukasz Holeczek
+ * Licensed under the Creative Commons Attribution 3.0 Unported License.
+ * For details, see https://creativecommons.org/licenses/by/3.0/.
+ */
+
+@use "@coreui/coreui/scss/mixins/border-radius" as *;
+@use "@coreui/coreui/scss/mixins/box-shadow" as *;
+@use "@coreui/coreui/scss/mixins/breakpoints" as *;
+@use "@coreui/coreui/scss/mixins/color-mode" as *;
+@use "@coreui/coreui/scss/mixins/transition" as *;
+@use "@coreui/coreui/scss/vendor/rfs" as *;
+@use "@coreui/coreui/scss/variables" as *;
+
+@forward "@docsearch/css/dist/style";
+
+
+// stylelint-disable selector-class-pattern
+:root {
+ --docsearch-primary-color: var(--cui-primary);
+ --docsearch-muted-color: var(--cui-secondary-color);
+ --docsearch-logo-color: var(--cui-primary);
+ --docsearch-key-color: var(--cui-secondary-color);
+}
+
+@include color-mode(dark, true) {
+ // From here, the values are copied from https://cdn.jsdelivr.net/npm/@docsearch/css@3
+ // in html[data-theme="dark"] selector
+ // and are slightly modified for formatting purpose
+ --docsearch-text-color: #f5f6f7;
+ --docsearch-container-background: rgba(9, 10, 17, .8);
+ --docsearch-modal-background: #15172a;
+ --docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
+ --docsearch-searchbox-background: #090a11;
+ --docsearch-searchbox-focus-background: #000;
+ --docsearch-hit-color: #bec3c9;
+ --docsearch-hit-shadow: none;
+ --docsearch-hit-background: #090a11;
+ --docsearch-key-gradient: linear-gradient(-26.5deg, #565872, #31355b);
+ --docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgba(3, 4, 9, .3);
+ --docsearch-footer-background: #1e2136;
+ --docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, .5), 0 -4px 8px 0 rgba(0, 0, 0, .2);
+ --docsearch-muted-color: #7f8497;
+}
+
+.DocSearch-Container {
+ --docsearch-hit-shadow: none;
+
+ position: fixed;
+ z-index: 2000; // Make sure to be over all components showcased in the documentation
+ cursor: auto; // Needed because of [role="button"] in Algolia search modal. Remove once https://github.com/algolia/docsearch/issues/1370 is tackled.
+
+ @include media-breakpoint-up(lg) {
+ padding-top: 4rem;
+ }
+}
+
+.DocSearch-Button {
+ --docsearch-searchbox-background: #{rgba($black, .1)};
+ --docsearch-searchbox-focus-background: #{rgba($black, .25)};
+
+ margin: 0;
+ font-family: $input-font-family;
+ font-weight: $input-font-weight;
+ line-height: $input-line-height;
+ @include font-size($input-font-size);
+ color: $input-color;
+ background-color: $input-bg;
+ background-clip: padding-box;
+ border: $input-border-width solid $input-border-color;
+
+ // Note: This has no effect on s in some browsers, due to the limited stylability of ``s in CSS.
+ @include border-radius($btn-border-radius);
+ @include box-shadow($input-box-shadow);
+ @include transition($input-transition);
+
+ &:focus,
+ &:hover {
+ color: $input-focus-color;
+ background-color: $input-focus-bg;
+ border-color: $input-focus-border-color;
+ outline: 0;
+ @if $enable-shadows {
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
+ } @else {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+
+ @include media-breakpoint-down(md) {
+ &,
+ &:hover,
+ &:focus {
+ background: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ }
+
+ .DocSearch-Search-Icon {
+ opacity: .65;
+ }
+}
+
+.DocSearch-Button-Keys {
+ min-width: 0;
+ padding: 0 .25rem;
+ background: var(--cui-secondary-bg);
+ @include border-radius(.25rem);
+}
+
+.DocSearch-Button-Key {
+ width: auto;
+ padding: 0;
+ background: none;
+ border: 0;
+ box-shadow: none;
+
+ &:first-child {
+ margin-right: 0;
+ }
+}
+
+// .DocSearch-Commands-Key {
+// padding-left: 1px;
+// font-size: .875rem;
+// background-color: rgba($black, .1);
+// background-image: none;
+// box-shadow: none;
+// }
+
+.DocSearch-Hits {
+ mark {
+ padding: 0;
+ }
+}
+
+.DocSearch-Hit {
+ padding-bottom: 0;
+ @include border-radius(0);
+
+ a {
+ @include border-radius(0);
+ border: solid var(--cui-border-color);
+ border-width: 0 1px 1px;
+ }
+
+ &:first-child a {
+ @include border-top-radius(var(--cui-border-radius));
+ border-top-width: 1px;
+ }
+ &:last-child a {
+ @include border-bottom-radius(var(--cui-border-radius));
+ }
+}
+
+.DocSearch-Hit-icon {
+ display: flex;
+ align-items: center;
+}
+
+// Fix --docsearch-logo-color that doesn't do anything
+.DocSearch-Logo svg .cls-1,
+.DocSearch-Logo svg .cls-2 {
+ fill: var(--docsearch-logo-color);
+}
diff --git a/packages/docs/.vuepress/src/client/styles/_sidebar.scss b/packages/docs/.vuepress/src/client/styles/_sidebar.scss
new file mode 100755
index 00000000..d8cfb716
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_sidebar.scss
@@ -0,0 +1,32 @@
+@use "@coreui/coreui/scss/mixins/color-mode" as *;
+
+.docs-sidebar {
+ --cui-sidebar-bg: var(--cui-tertiary-bg);
+ --cui-sidebar-brand-bg: transparent;
+ --cui-sidebar-brand-color: var(--cui-body-color);
+
+ .sidebar-nav {
+ --cui-sidebar-nav-link-color: var(--cui-body-color);
+ --cui-sidebar-nav-link-active-bg: transparent;
+ --cui-sidebar-nav-link-active-color: var(--cui-primary);
+ --cui-sidebar-nav-link-hover-bg: transparent;
+ --cui-sidebar-nav-link-hover-color: var(--cui-primary);
+ --cui-sidebar-nav-link-icon-margin: 1rem;
+ --cui-sidebar-nav-group-bg: transparent;
+ --cui-sidebar-nav-group-toggle-show-color: var(--cui-primary);
+
+ .compact .nav-link {
+ --cui-sidebar-nav-link-padding-y: .375rem;
+ }
+
+ .nav-group-items {
+ --cui-sidebar-nav-link-color: var(--cui-body-color);
+ }
+ }
+}
+
+@include color-mode(dark) {
+ .docs-sidebar {
+ --cui-sidebar-bg: var(--cui-body-bg);
+ }
+}
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/src/client/styles/_toc.scss b/packages/docs/.vuepress/src/client/styles/_toc.scss
new file mode 100644
index 00000000..255c69f1
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_toc.scss
@@ -0,0 +1,93 @@
+// stylelint-disable selector-max-type
+
+@use "@coreui/coreui/scss/functions/math" as *;
+@use "@coreui/coreui/scss/mixins/border-radius" as *;
+@use "@coreui/coreui/scss/mixins/breakpoints" as *;
+@use "@coreui/coreui/scss/vendor/rfs" as *;
+
+.docs-toc {
+ @include media-breakpoint-up(xl) {
+ position: sticky;
+ top: 5rem;
+ right: 0;
+ z-index: 2;
+ height: subtract(100vh, 7rem);
+ overflow-y: auto;
+ }
+
+ nav {
+ @include font-size(.875rem);
+
+ ul {
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+
+ ul {
+ padding-left: 1rem;
+ margin-top: .25rem;
+ }
+ }
+
+ li {
+ margin-bottom: .25rem;
+ }
+
+ a {
+ color: inherit;
+
+ &:not(:hover) {
+ text-decoration: none;
+ }
+
+ code {
+ font: inherit;
+ }
+ }
+ }
+}
+
+.docs-toc-toggle {
+ display: flex;
+ align-items: center;
+
+ @include media-breakpoint-down(sm) {
+ justify-content: space-between;
+ width: 100%;
+ }
+
+ @include media-breakpoint-down(lg) {
+ 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(lg) {
+ 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(lg) {
+ display: block !important; // stylelint-disable-line declaration-no-important
+ }
+}
diff --git a/packages/docs/.vuepress/src/client/styles/_variables.scss b/packages/docs/.vuepress/src/client/styles/_variables.scss
new file mode 100755
index 00000000..ba0ee56c
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/_variables.scss
@@ -0,0 +1,26 @@
+@use "sass:color";
+@use "@coreui/coreui/scss/variables" as *;
+// Local docs variables
+
+$cd-purple: #4c0bce;
+$cd-violet: color.scale($cd-purple, $saturation: 10%, $lightness: 25%); // stylelint-disable-line scss/at-function-named-arguments
+$cd-accent: #ffe484;
+
+$cd-gutter-x: 3rem;
+$cd-callout-variants: info, warning, danger !default;
+
+:root {
+ --cd-purple: #{$cd-purple};
+ --cd-violet: #{$cd-violet};
+ --cd-accent: #{$cd-accent};
+ --cd-violet-rgb: #{to-rgb($cd-violet)};
+ --cd-accent-rgb: #{to-rgb($cd-accent)};
+ --cd-pink-rgb: #{to-rgb($pink-500)};
+ --cd-teal-rgb: #{to-rgb($teal-500)};
+ --cd-violet-bg: var(--cd-violet);
+ --cd-toc-color: var(--cd-violet);
+ --cd-sidebar-link-bg: rgba(var(--cd-violet-rgb), .1);
+ --cd-callout-link: #{to-rgb($blue-600)};
+ --cd-callout-code-color: #{$pink-600};
+ --cd-pre-bg: var(--cui-tertiary-bg);
+}
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/src/client/styles/index.scss b/packages/docs/.vuepress/src/client/styles/index.scss
new file mode 100755
index 00000000..4376c666
--- /dev/null
+++ b/packages/docs/.vuepress/src/client/styles/index.scss
@@ -0,0 +1,24 @@
+@use "@coreui/coreui/scss/coreui" with (
+ $enable-deprecation-messages: false
+);
+
+@forward "ads";
+@forward "anchor";
+@forward "callouts";
+@forward "component-examples";
+@forward "footer";
+@forward "layout";
+@forward "prism";
+@forward "scrolling";
+@forward "search";
+@forward "sidebar";
+@forward "table-api";
+@forward "toc";
+@forward "custom-container";
+
+.back-to-top {
+--c-brand: #3eaf7c;
+--c-brand-light: #4abf8a;
+--back-to-top-color: var(--c-brand);
+--back-to-top-color-hover: var(--c-brand-light);
+}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/src/node/defaultTheme.ts b/packages/docs/.vuepress/src/node/defaultTheme.ts
new file mode 100755
index 00000000..0fe8ca5f
--- /dev/null
+++ b/packages/docs/.vuepress/src/node/defaultTheme.ts
@@ -0,0 +1,43 @@
+import type { Page, Theme } from '@vuepress/core'
+
+import { themeDataPlugin } from '@vuepress/plugin-theme-data'
+import { fs, getDirname, path } from '@vuepress/utils'
+import type {
+ DefaultThemeLocaleOptions,
+ DefaultThemePageData,
+ DefaultThemePluginsOptions,
+} from '../shared'
+import { assignDefaultLocaleOptions } from './utils'
+
+const __dirname = getDirname(import.meta.url)
+
+export interface DefaultThemeOptions extends DefaultThemeLocaleOptions {
+ /**
+ * To avoid confusion with the root `plugins` option,
+ * we use `themePlugins`
+ */
+ themePlugins?: DefaultThemePluginsOptions
+}
+export const defaultTheme = ({
+ themePlugins = {},
+ ...localeOptions
+}: DefaultThemeOptions = {}): Theme => {
+ assignDefaultLocaleOptions(localeOptions)
+
+ return {
+ name: '@vuepress/coreui-docs-theme',
+
+ templateBuild: path.resolve(__dirname, '../templates/build.html'),
+
+ clientConfigFile: path.resolve(__dirname, '../client/config.ts'),
+
+ extendsPage: (page: Page>) => {
+ // save relative file path into page data to generate edit link
+ page.data.filePathRelative = page.filePathRelative
+ // save title into route meta to generate navbar and sidebar
+ page.routeMeta.title = page.title
+ },
+
+ plugins: [themeDataPlugin({ themeData: localeOptions })],
+ }
+}
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/src/node/utils/index.ts b/packages/docs/.vuepress/src/node/utils/index.ts
new file mode 100755
index 00000000..8f378cef
--- /dev/null
+++ b/packages/docs/.vuepress/src/node/utils/index.ts
@@ -0,0 +1 @@
+export * from './assignDefaultLocaleOptions'
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 52%
rename from packages/docs/.vuepress/theme-coreui/src/shared/page.ts
rename to packages/docs/.vuepress/src/shared/page.ts
index 9feed30c..40007b84 100755
--- a/packages/docs/.vuepress/theme-coreui/src/shared/page.ts
+++ b/packages/docs/.vuepress/src/shared/page.ts
@@ -9,30 +9,13 @@ export interface DefaultThemePageFrontmatter {
home?: boolean
navbar?: boolean
pageClass?: string
+ name?: string
+ preview_component?: boolean
+ pro_component?: boolean
+ other_frameworks?: string
}
-export interface DefaultThemeHomePageFrontmatter
- extends DefaultThemePageFrontmatter {
- home: true
- heroImage?: string
- heroAlt?: string
- heroText?: string | null
- tagline?: string | null
- actions?: {
- text: string
- link: string
- type?: 'primary' | 'secondary'
- }[]
- features?: {
- title: string
- details: string
- }[]
- footer?: string
- footerHtml?: boolean
-}
-
-export interface DefaultThemeNormalPageFrontmatter
- extends DefaultThemePageFrontmatter {
+export interface DefaultThemeNormalPageFrontmatter extends DefaultThemePageFrontmatter {
home?: false
editLink?: boolean
lastUpdated?: boolean
@@ -41,6 +24,4 @@ export interface DefaultThemeNormalPageFrontmatter
sidebarDepth?: number
prev?: string | NavLink
next?: string | NavLink
- pro_component: boolean
- other_frameworks?: string
}
diff --git a/packages/docs/.vuepress/src/templates/build.html b/packages/docs/.vuepress/src/templates/build.html
new file mode 100644
index 00000000..8198c3ac
--- /dev/null
+++ b/packages/docs/.vuepress/src/templates/build.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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"
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/assets/brand/coreui-vue.svg b/packages/docs/.vuepress/theme-coreui/src/assets/brand/coreui-vue.svg
deleted file mode 100755
index 4eecb11e..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/assets/brand/coreui-vue.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
- coreui vue
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/clientAppEnhance.ts b/packages/docs/.vuepress/theme-coreui/src/client/clientAppEnhance.ts
deleted file mode 100755
index 5e42ab07..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/clientAppEnhance.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { h } from 'vue'
-import { defineClientAppEnhance } from '@vuepress/client'
-import CodeGroup from './components/global/CodeGroup'
-import CodeGroupItem from './components/global/CodeGroupItem.vue'
-// import OutboundLink from './components/global/OutboundLink.vue'
-import { useScrollPromise } from './composables'
-
-import './styles/index.scss'
-
-export default defineClientAppEnhance(({ app, router }) => {
- app.component('CodeGroup', CodeGroup)
- app.component('CodeGroupItem', CodeGroupItem)
-
- app.component('NavbarSearch', () => {
- const SearchComponent = app.component('Docsearch') || app.component('SearchBox')
- if (SearchComponent) {
- return h(SearchComponent)
- }
- return null
- })
-
- // handle scrollBehavior with transition
- const scrollBehavior = router.options.scrollBehavior!
- ;(router.options.scrollBehavior = async (...args) => {
- await useScrollPromise().wait()
- return scrollBehavior(...args)
- }),
- router.addRoute({ path: '/', redirect: '/getting-started/introduction.html' })
-})
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/clientAppSetup.ts b/packages/docs/.vuepress/theme-coreui/src/client/clientAppSetup.ts
deleted file mode 100755
index 6cea984d..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/clientAppSetup.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { computed, provide } from 'vue'
-import { defineClientAppSetup, usePageFrontmatter } from '@vuepress/client'
-import {
- resolveSidebarItems,
- sidebarItemsSymbol,
- useThemeLocaleData,
-} from './composables'
-import type { DefaultThemeNormalPageFrontmatter } from '../shared'
-
-export default defineClientAppSetup(() => {
- // we need to access sidebar items in multiple components
- // so we make it global computed
- const themeLocale = useThemeLocaleData()
- const frontmatter = usePageFrontmatter()
- const sidebarItems = computed(() =>
- resolveSidebarItems(frontmatter.value, themeLocale.value)
- )
- provide(sidebarItemsSymbol, sidebarItems)
-})
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Header.vue b/packages/docs/.vuepress/theme-coreui/src/client/components/Header.vue
deleted file mode 100644
index 8e548abf..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/Header.vue
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Download
-
-
- Get CoreUI PRO
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Home.vue b/packages/docs/.vuepress/theme-coreui/src/client/components/Home.vue
deleted file mode 100755
index 4c69d855..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/Home.vue
+++ /dev/null
@@ -1,133 +0,0 @@
-
-
-
-
-
-
- {{ heroText }}
-
-
-
- {{ tagline }}
-
-
-
-
-
-
-
-
-
-
{{ feature.title }}
-
{{ feature.details }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Page.vue b/packages/docs/.vuepress/theme-coreui/src/client/components/Page.vue
deleted file mode 100755
index 8beadbf2..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/Page.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
CoreUI PRO Component
-
- To use this component you must have a CoreUI PRO license. Buy the
- CoreUI PRO
- and get access to all PRO components, features, templates, and dedicated support.
-
-
-
-
Support CoreUI Development
-
- CoreUI is an MIT-licensed open source project and is completely free to use. However, the
- amount of effort needed to maintain and develop new features for the project is not
- sustainable without proper financial backing.
-
-
You can support our Open Source software development in the following ways:
-
-
- Buy the
- CoreUI PRO ,
- and get access to PRO components, and dedicated support.
-
-
- Became a sponsor , and get
- your logo on BACKERS.md/README.md files or each site of this documentation
-
-
- Give us a star ⭐️ on
- Github .
-
-
-
-
-
-
{{ title }}
-
{{ description }}
-
-
- Other frameworks
-
- CoreUI components are available as native Angular, Bootstrap (Vanilla JS), and React
- components. To learn more please visit the following pages.
-
-
-
-
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/Sidebar.vue b/packages/docs/.vuepress/theme-coreui/src/client/components/Sidebar.vue
deleted file mode 100755
index d9fba4ea..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/Sidebar.vue
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/global/CodeGroup.ts b/packages/docs/.vuepress/theme-coreui/src/client/components/global/CodeGroup.ts
deleted file mode 100755
index f7d22994..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/global/CodeGroup.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-import { defineComponent, h, ref } from 'vue'
-import type { Component, VNode } from 'vue'
-
-export default defineComponent({
- name: 'CodeGroup',
-
- setup(_, { slots }) {
- // index of current active item
- const activeIndex = ref(-1)
-
- // refs of the tab buttons
- const tabRefs = ref([])
-
- // activate next tab
- const activateNext = (i = activeIndex.value): void => {
- if (i < tabRefs.value.length - 1) {
- activeIndex.value = i + 1
- } else {
- activeIndex.value = 0
- }
- tabRefs.value[activeIndex.value].focus()
- }
-
- // activate previous tab
- const activatePrev = (i = activeIndex.value): void => {
- if (i > 0) {
- activeIndex.value = i - 1
- } else {
- activeIndex.value = tabRefs.value.length - 1
- }
- tabRefs.value[activeIndex.value].focus()
- }
-
- // handle keyboard event
- const keyboardHandler = (event: KeyboardEvent, i: number): void => {
- if (event.key === ' ' || event.key === 'Enter') {
- event.preventDefault()
- activeIndex.value = i
- } else if (event.key === 'ArrowRight') {
- event.preventDefault()
- activateNext(i)
- } else if (event.key === 'ArrowLeft') {
- event.preventDefault()
- activatePrev(i)
- }
- }
-
- return () => {
- // NOTICE: here we put the `slots.default()` inside the render function to make
- // the slots reactive, otherwise the slot content won't be changed once the
- // `setup()` function of current component is called
-
- // get children code-group-item
- const items = (slots.default?.() || [])
- .filter((vnode) => (vnode.type as Component).name === 'CodeGroupItem')
- .map((vnode) => {
- if (vnode.props === null) {
- vnode.props = {}
- }
- return vnode as VNode & { props: Exclude }
- })
-
- // clear tabRefs for HMR
- tabRefs.value = []
-
- // do not render anything if there is no code-group-item
- if (items.length === 0) {
- return null
- }
-
- if (activeIndex.value < 0 || activeIndex.value > items.length - 1) {
- // if `activeIndex` is invalid
-
- // find the index of the code-group-item with `active` props
- activeIndex.value = items.findIndex(
- (vnode) => vnode.props.active === '' || vnode.props.active === true
- )
-
- // if there is no `active` props on code-group-item, set the first item active
- if (activeIndex.value === -1) {
- activeIndex.value = 0
- }
- } else {
- // set the active item
- items.forEach((vnode, i) => {
- vnode.props.active = i === activeIndex.value
- })
- }
-
- return h('div', { class: 'code-group' }, [
- h(
- 'div',
- { class: 'code-group__nav' },
- h(
- 'ul',
- { class: 'code-group__ul' },
- items.map((vnode, i) => {
- const isActive = i === activeIndex.value
-
- return h(
- 'li',
- { class: 'code-group__li' },
- h(
- 'button',
- {
- ref: (element) => {
- if (element) {
- tabRefs.value[i] = element as HTMLButtonElement
- }
- },
- class: {
- 'code-group__nav-tab': true,
- 'code-group__nav-tab-active': isActive,
- },
- ariaPressed: isActive,
- ariaExpanded: isActive,
- onClick: () => (activeIndex.value = i),
- onKeydown: (e) => keyboardHandler(e, i),
- },
- vnode.props.title
- )
- )
- })
- )
- ),
- items,
- ])
- }
- },
-})
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/global/CodeGroupItem.vue b/packages/docs/.vuepress/theme-coreui/src/client/components/global/CodeGroupItem.vue
deleted file mode 100755
index f22b7370..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/global/CodeGroupItem.vue
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/components/global/_Badge.vue b/packages/docs/.vuepress/theme-coreui/src/client/components/global/_Badge.vue
deleted file mode 100755
index 392aa4d8..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/components/global/_Badge.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- {{ text }}
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/index.ts b/packages/docs/.vuepress/theme-coreui/src/client/composables/index.ts
deleted file mode 100755
index ce3616fa..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/composables/index.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export * from './useDarkMode'
-export * from './useNavLink'
-export * from './useResolveRouteWithRedirect'
-export * from './useScrollPromise'
-export * from './useSidebarItems'
-export * from './useThemeData'
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useDarkMode.ts b/packages/docs/.vuepress/theme-coreui/src/client/composables/useDarkMode.ts
deleted file mode 100755
index 2e734fdd..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/composables/useDarkMode.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { onMounted, onUnmounted, ref, watch } from 'vue'
-import type { Ref } from 'vue'
-
-export const useDarkMode = (): Ref => {
- const isDarkMode = ref(false)
-
- const updateDarkModeClass = (value = isDarkMode.value): void => {
- // set `class="dark"` on `` element
- const htmlEl = window?.document.querySelector('html')
- htmlEl?.classList.toggle('dark', value)
- }
-
- const mediaQuery = ref(null)
- const onMediaQueryChange = (event: MediaQueryListEvent): void => {
- isDarkMode.value = event.matches
- }
-
- onMounted(() => {
- // get `prefers-color-scheme` media query and set the initial mode
- mediaQuery.value = window.matchMedia('(prefers-color-scheme: dark)')
- isDarkMode.value = mediaQuery.value.matches
-
- // watch changes
- mediaQuery.value.addEventListener('change', onMediaQueryChange)
- watch(isDarkMode, updateDarkModeClass, { immediate: true })
- })
-
- onUnmounted(() => {
- mediaQuery.value?.removeEventListener('change', onMediaQueryChange)
- updateDarkModeClass(false)
- })
-
- return isDarkMode
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/composables/useNavLink.ts b/packages/docs/.vuepress/theme-coreui/src/client/composables/useNavLink.ts
deleted file mode 100755
index ec1bdaf2..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/composables/useNavLink.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type { NavLink } from '../../shared'
-import { useResolveRouteWithRedirect } from './useResolveRouteWithRedirect'
-
-/**
- * Resolve NavLink props from string
- *
- * @example
- * - Input: '/README.md'
- * - Output: { text: 'Home', link: '/' }
- */
-export const useNavLink = (item: string): NavLink => {
- const resolved = useResolveRouteWithRedirect(item)
- return {
- text: resolved.meta.title || item,
- link: resolved.name === '404' ? item : resolved.fullPath,
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/index.ts b/packages/docs/.vuepress/theme-coreui/src/client/index.ts
deleted file mode 100755
index 27f6c206..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/index.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import type {
- NavItem,
- NavGroup,
- NavLink,
- NavbarItem,
- NavbarGroup,
- NavbarConfig,
- ResolvedNavbarItem,
- SidebarItem,
- SidebarConfigArray,
- SidebarConfigObject,
- SidebarConfig,
- ResolvedSidebarItem,
- DefaultThemePluginsOptions,
- DefaultThemeLocaleOptions,
- DefaultThemeData,
- DefaultThemeLocaleData,
- DefaultThemePageData,
- DefaultThemePageFrontmatter,
- DefaultThemeHomePageFrontmatter,
- DefaultThemeNormalPageFrontmatter,
-} from '../shared'
-
-export type {
- NavItem,
- NavGroup,
- NavLink,
- NavbarItem,
- NavbarGroup,
- NavbarConfig,
- ResolvedNavbarItem,
- SidebarItem,
- SidebarConfigArray,
- SidebarConfigObject,
- SidebarConfig,
- ResolvedSidebarItem,
- DefaultThemePluginsOptions,
- DefaultThemeLocaleOptions,
- DefaultThemeData,
- DefaultThemeLocaleData,
- DefaultThemePageData,
- DefaultThemePageFrontmatter,
- DefaultThemeHomePageFrontmatter,
- DefaultThemeNormalPageFrontmatter,
-}
-export * from './composables'
-export * from './utils'
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/layouts/404.vue b/packages/docs/.vuepress/theme-coreui/src/client/layouts/404.vue
deleted file mode 100755
index 1066e78c..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/layouts/404.vue
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
404
-
-
{{ getMsg() }}
-
-
{{ homeText }}
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/layouts/Layout.vue b/packages/docs/.vuepress/theme-coreui/src/client/layouts/Layout.vue
deleted file mode 100755
index bd13c446..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/layouts/Layout.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
(isSidebarOpen = event)" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- On this page
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_code-group.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_code-group.scss
deleted file mode 100755
index e975bed7..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_code-group.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * code-group
- */
-.code-group__nav {
- margin-top: 0.85rem;
- // 2 * margin + border-radius of tag
- margin-bottom: calc(-1.7rem - 6px);
- padding-bottom: calc(1.7rem - 6px);
- padding-left: 10px;
- padding-top: 10px;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px;
- background-color: var(--code-bg-color);
-}
-
-.code-group__ul {
- margin: auto 0;
- padding-left: 0;
- display: inline-flex;
- list-style: none;
-}
-
-.code-group__nav-tab {
- border: 0;
- padding: 5px;
- cursor: pointer;
- background-color: transparent;
- font-size: 0.85em;
- line-height: 1.4;
- color: rgba(255, 255, 255, 0.9);
- font-weight: 600;
-}
-
-.code-group__nav-tab:focus {
- outline: none;
-}
-
-.code-group__nav-tab:focus-visible {
- outline: 1px solid rgba(255, 255, 255, 0.9);
-}
-
-.code-group__nav-tab-active {
- border-bottom: var(--c-brand) 1px solid;
-}
-
-@media (max-width: $MQMobileNarrow) {
- .code-group__nav {
- margin-left: -1.5rem;
- margin-right: -1.5rem;
- border-radius: 0;
- }
-}
-
-/**
- * code-group-item
- */
-.code-group-item {
- display: none;
-}
-
-.code-group-item__active {
- display: block;
-}
-
-.code-group-item > pre {
- background-color: orange;
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_code.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_code.scss
deleted file mode 100755
index f494e9b7..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_code.scss
+++ /dev/null
@@ -1,267 +0,0 @@
-@import '_variables';
-
-// ===============================
-// Forked and modified from prismjs/themes/prism-tomorrow.css
-
-code[class*='language-'],
-pre[class*='language-'] {
- color: #ccc;
- background: none;
- font-family: var(--font-family-code);
- font-size: .875em;
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- line-height: 1.5;
-
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
-
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
-}
-
-/* Code blocks */
-pre[class*='language-'] {
- padding: 1em;
- margin: 0.5em 0;
- overflow: auto;
-}
-
-:not(pre) > code[class*='language-'],
-pre[class*='language-'] {
- background: #2d2d2d;
-}
-
-/* Inline code */
-:not(pre) > code[class*='language-'] {
- padding: 0.1em;
- border-radius: 0.3em;
- white-space: normal;
-}
-
-.token.comment,
-.token.block-comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
- color: #999;
-}
-
-.token.punctuation {
- color: #ccc;
-}
-
-.token.tag,
-.token.attr-name,
-.token.namespace,
-.token.deleted {
- color: #ec5975;
-}
-
-.token.function-name {
- color: #6196cc;
-}
-
-.token.boolean,
-.token.number,
-.token.function {
- color: #f08d49;
-}
-
-.token.property,
-.token.class-name,
-.token.constant,
-.token.symbol {
- color: #f8c555;
-}
-
-.token.selector,
-.token.important,
-.token.atrule,
-.token.keyword,
-.token.builtin {
- color: #cc99cd;
-}
-
-.token.string,
-.token.char,
-.token.attr-value,
-.token.regex,
-.token.variable {
- color: #7ec699;
-}
-
-.token.operator,
-.token.entity,
-.token.url {
- color: #67cdcc;
-}
-
-.token.important,
-.token.bold {
- font-weight: bold;
-}
-.token.italic {
- font-style: italic;
-}
-
-.token.entity {
- cursor: help;
-}
-
-.token.inserted {
- color: var(--c-text-accent);
-}
-
-// ===============================
-
-.theme-default-content {
- pre,
- pre[class*='language-'] {
- line-height: 1.4;
- padding: 1.25rem 1.5rem;
- margin: 0.85rem 0;
- border-radius: 6px;
- overflow: auto;
-
- code {
- color: #fff;
- padding: 0;
- background-color: transparent;
- border-radius: 0;
- -webkit-font-smoothing: auto;
- -moz-osx-font-smoothing: auto;
- }
- }
-
- .line-number {
- font-family: var(--font-family-code);
- }
-}
-
-div[class*='language-'] {
- position: relative;
- background-color: var(--code-bg-color);
- border-radius: 6px;
-
- &::before {
- position: absolute;
- z-index: 3;
- top: 0.8em;
- right: 1em;
- font-size: 0.75rem;
- color: var(--code-ln-color);
- }
-
- pre,
- pre[class*='language-'] {
- // force override the background color to be compatible with shiki
- background: transparent !important;
- position: relative;
- z-index: 1;
- }
-
- .highlight-lines {
- user-select: none;
- padding-top: 1.3rem;
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- line-height: 1.4;
-
- .highlight-line {
- background-color: var(--code-hl-bg-color);
- }
- }
-
- &:not(.line-numbers-mode) {
- .line-numbers {
- display: none;
- }
- }
-
- &.line-numbers-mode {
- .highlight-lines .highlight-line {
- position: relative;
-
- &::before {
- content: ' ';
- position: absolute;
- z-index: 2;
- left: 0;
- top: 0;
- display: block;
- width: var(--code-ln-wrapper-width);
- height: 100%;
- }
- }
-
- pre {
- margin-left: var(--code-ln-wrapper-width);
- padding-left: 1rem;
- vertical-align: middle;
- }
-
- .line-numbers {
- position: absolute;
- top: 0;
- width: var(--code-ln-wrapper-width);
- text-align: center;
- color: var(--code-ln-color);
- // padding-top: 1.09375rem;
- // padding-top: 1.25rem;
- padding-top: 1.25rem;
- line-height: 1.225;
- // line-height: 1.4;
-//225
-
- br {
- user-select: none;
- }
-
- .line-number {
- position: relative;
- z-index: 3;
- user-select: none;
- font-size: 0.85em;
- // font-size: 0.74375em;
- }
- }
-
- &::after {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- width: var(--code-ln-wrapper-width);
- height: 100%;
- border-radius: 6px 0 0 6px;
- border-right: 1px solid var(--code-hl-bg-color);
- }
- }
-}
-
-@each $lang in $codeLang {
- div[class*='language-'].ext-#{$lang} {
- &:before {
- content: '' + $lang;
- }
- }
-}
-
-// narrow mobile
-@media (max-width: $MQMobileNarrow) {
- .theme-default-content {
- div[class*='language-'] {
- margin: 0.85rem -1.5rem;
- border-radius: 0;
- }
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_demo.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_demo.scss
deleted file mode 100644
index f604d7e7..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_demo.scss
+++ /dev/null
@@ -1,314 +0,0 @@
-
-.docs-example {
-
- + div[class*='language-'] {
- padding-top: 0;
- margin-top: 0;
- margin-bottom: 1.5rem;
- border-radius: 0 0 6px 6px;
- max-height: 500px;
- overflow: scroll;
-
- pre {
- margin-top: 0;
- }
- }
-
- .rtl .input-group > :not(:last-child),
- .rtl .input-group > .dropdown-toggle:nth-last-child(n+3) {
- border-right: 0 !important;
- @include border-end-radius($input-border-radius !important);
- }
-
- .rtl .input-group > :not(:first-child) {
- @include border-start-radius($input-border-radius !important);
- @include border-end-radius(0 !important);
- }
-
- .rtl .picker .input-group .form-control:first-child {
- border-right : $input-border-width solid var(--#{$variable-prefix}input-border-color, $input-border-color) !important;
- }
-
- .rtl .picker .input-group > * + *:not(:last-child) {
- @include border-start-radius(0 !important);
- }
-}
-
-.docs-example-offcanvas .offcanvas {
- position: static;
- display: block;
- height: 200px;
- visibility: visible;
- transform: translate(0) !important;
-}
-
-//
-// Grid examples
-//
-
-.docs-example-row {
- .row {
- > .col,
- > [class^="col-"] {
- padding-top: .75rem;
- padding-bottom: .75rem;
- background-color: rgba(39, 41, 43, .03);
- border: 1px solid rgba(39, 41, 43, .1);
- }
- }
-
- .row + .row {
- margin-top: 1rem;
- }
-}
-
-.docs-example-row-flex-cols .row {
- min-height: 10rem;
- background-color: rgba(255, 0, 0, .1);
-}
-
-.docs-example-cssgrid {
- text-align: center;
-
- .grid + .grid {
- margin-top: 1rem;
- }
-
- .grid > * {
- padding-top: .75rem;
- padding-bottom: .75rem;
- background-color: rgba(255, 0, 255, .1);
- border: 1px solid rgba(255, 0, 255, .25);
- }
-}
-
-// Grid mixins
-// .example-container {
-// width: 800px;
-// @include make-container();
-// }
-
-// .example-row {
-// @include make-row();
-// }
-
-// .example-content-main {
-// @include make-col-ready();
-
-// @include media-breakpoint-up(sm) {
-// @include make-col(6);
-// }
-
-// @include media-breakpoint-up(lg) {
-// @include make-col(8);
-// }
-// }
-
-// .example-content-secondary {
-// @include make-col-ready();
-
-// @include media-breakpoint-up(sm) {
-// @include make-col(6);
-// }
-
-// @include media-breakpoint-up(lg) {
-// @include make-col(4);
-// }
-// }
-
-
-//
-// Docs examples
-//
-
-.docs-example {
- // position: relative;
- // padding: 1rem;
- // margin: 1rem (-$grid-gutter-width * .5) 0;
- // border: solid $gray-200;
- // border-width: 1px 0 0;
- // @include clearfix();
-
- // @include media-breakpoint-up(sm) {
- // padding: 1.5rem;
- // margin-right: 0;
- // margin-left: 0;
- // border-width: 1px;
- // @include border-top-radius(.25rem);
-
- // + .docs-clipboard + .highlight {
- // @include border-bottom-radius(.25rem);
- // }
- // }
-
- + p {
- margin-top: 2rem;
- }
-
- > .form-control {
- + .form-control {
- margin-top: .5rem;
- }
- }
-
- > .nav + .nav,
- > .alert + .alert,
- > .navbar + .navbar,
- > .progress + .progress {
- margin-top: 1rem;
- }
-
- > .dropdown-menu {
- position: static;
- display: block;
- }
-
- > :last-child {
- margin-bottom: 0;
- }
-
- // Images
- > svg + svg,
- > img + img {
- margin-left: .5rem;
- }
-
- // Buttons
- > .btn,
- > .btn-group {
- margin: .25rem .125rem;
- }
- > .btn-toolbar + .btn-toolbar {
- margin-top: .5rem;
- }
-
- // List groups
- > .list-group {
- max-width: 400px;
- }
-
- > [class*="list-group-horizontal"] {
- max-width: 100%;
- }
-
- // Navbars
- .fixed-top,
- .sticky-top {
- position: static;
- margin: -1rem -1rem 1rem;
- }
-
- .fixed-bottom {
- position: static;
- margin: 1rem -1rem -1rem;
- }
-
- // @include media-breakpoint-up(sm) {
- // .fixed-top,
- // .sticky-top {
- // margin: -1.5rem -1.5rem 1rem;
- // }
- // .fixed-bottom {
- // margin: 1rem -1.5rem -1.5rem;
- // }
- // }
-
- // Pagination
- .pagination {
- margin-top: .5rem;
- margin-bottom: .5rem;
- }
-}
-
-// // Ratio helpers
-// .docs-example-ratios {
-// .ratio {
-// display: inline-block;
-// width: 10rem;
-// color: $gray-600;
-// background-color: $gray-100;
-// border: $border-width solid $border-color;
-
-// > div {
-// display: flex;
-// align-items: center;
-// justify-content: center;
-// }
-// }
-// }
-// .docs-example-ratios-breakpoint {
-// .ratio-4x3 {
-// width: 16rem;
-
-// // @include media-breakpoint-up(md) {
-// // aspect-ratio: 50%; // 2x1
-// // }
-// }
-// }
-
-.docs-example-modal {
- background-color: #fafafa;
-
- .modal {
- position: static;
- display: block;
- }
-}
-
-.docs-example-offcanvas {
- // @include border-start-radius(0);
-
- .offcanvas {
- position: static;
- display: block;
- height: 200px;
- visibility: visible;
- transform: translate(0);
- }
-}
-
-// Tooltips
-.tooltip-demo a {
- white-space: nowrap;
-}
-
-// Scrollspy demo on fixed height div
-.scrollspy-example {
- position: relative;
- height: 200px;
- margin-top: .5rem;
- overflow: auto;
-}
-
-.scrollspy-example-2 {
- position: relative;
- height: 350px;
- overflow: auto;
-}
-
-// .docs-example-position-utils {
-// position: relative;
-// padding: 3em;
-
-// .position-relative {
-// height: 200px;
-// background-color: #f5f5f5;
-// }
-
-// .position-absolute {
-// width: 2em;
-// height: 2em;
-// background-color: $dark;
-// }
-// }
-
-.docs-example-position-examples {
- &::after {
- content: none;
- }
-}
-
-// Toasts
-.docs-example-toasts {
- min-height: 240px;
-}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_footer.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_footer.scss
deleted file mode 100644
index 37e2a195..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_footer.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.footer.docs-footer {
- --cui-footer-bg: #f0f4f7;
- font-size: 0.875rem;
-
- a {
- color: #768192;
- text-decoration: none;
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss
deleted file mode 100644
index 284eae98..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_layout.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-.wrapper {
- width: 100%;
- @include ltr-rtl("padding-left", var(--cui-sidebar-occupy-start, 0));
- will-change: auto;
- @include transition(padding .15s);
-}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_search.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_search.scss
deleted file mode 100644
index 645cb20b..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_search.scss
+++ /dev/null
@@ -1,114 +0,0 @@
-// stylelint-disable selector-class-pattern
-
-.DocSearch-Container {
- --docsearch-muted-color: #{$text-muted};
- --docsearch-hit-shadow: none;
-
- z-index: 2000; // Make sure to be over all components showcased in the documentation
- cursor: auto; // Needed because of [role="button"] in Algolia search modal. Remove once https://github.com/algolia/docsearch/issues/1370 is tackled.
-
- @include media-breakpoint-up(lg) {
- padding-top: 4rem;
- }
-}
-
-.DocSearch-Button {
- min-width: 200px;
- min-height: 38px;
- font-family: $input-font-family;
- font-weight: $input-font-weight;
- line-height: $input-line-height;
- @include font-size($input-font-size);
- color: $input-color;
- background-color: $input-bg;
- background-clip: padding-box;
- border: $input-border-width solid $input-border-color;
-
- // Note: This has no effect on s in some browsers, due to the limited stylability of ``s in CSS.
- @include border-radius($btn-border-radius);
-
- @include box-shadow($input-box-shadow);
- @include transition($input-transition);
-
- &:focus {
- color: $input-focus-color;
- background-color: $input-focus-bg;
- border-color: $input-focus-border-color;
- outline: 0;
- @if $enable-shadows {
- @include box-shadow($input-box-shadow, $input-focus-box-shadow);
- } @else {
- // Avoid using mixin so we can pass custom focus shadow properly
- box-shadow: $input-focus-box-shadow;
- }
- }
-
- &:hover:not(:disabled):not([readonly])::file-selector-button {
- background-color: $form-file-button-hover-bg;
- }
-
- .DocSearch-Search-Icon {
- opacity: .65;
- }
-}
-
-
-.DocSearch-Button-Keys {
- min-width: 0;
- padding: 0 .25rem;
- background: rgba($black, .125);
- @include border-radius(.25rem);
-}
-
-.DocSearch-Button-Key {
- top: 0;
- width: auto;
- height: 1.5rem;
- padding: 0 .125rem;
- margin-right: 0;
- font-size: .875rem;
- background: none;
- box-shadow: none;
-}
-
-.DocSearch-Commands-Key {
- padding-left: 1px;
- font-size: .875rem;
- background-color: rgba($black, .1);
- background-image: none;
- box-shadow: none;
-}
-
-.DocSearch-Form {
- @include border-radius(var(--cui-border-radius));
-}
-
-.DocSearch-Hits {
- mark {
- padding: 0;
- }
-}
-
-.DocSearch-Hit {
- padding-bottom: 0;
- @include border-radius(0);
-
- a {
- @include border-radius(0);
- border: solid var(--cui-border-color);
- border-width: 0 1px 1px;
- }
-
- &:first-child a {
- @include border-top-radius(var(--cui-border-radius));
- border-top-width: 1px;
- }
- &:last-child a {
- @include border-bottom-radius(var(--cui-border-radius));
- }
-}
-
-.DocSearch-Hit-icon {
- display: flex;
- align-items: center;
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_sidebar.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_sidebar.scss
deleted file mode 100755
index 61cfb58f..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_sidebar.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-.sidebar.docs-sidebar {
- --cui-sidebar-bg: #f0f4f7;
- --cui-sidebar-brand-bg: transparent;
- --cui-sidebar-brand-color: rgba(44,56,74,0.87);
- --cui-sidebar-nav-link-color: rgba(44,56,74,0.87);
- --cui-sidebar-nav-link-active-color: #321fdb;
- --cui-sidebar-nav-link-hover-color: #321fdb;
- --cui-sidebar-nav-group-bg: transparent;
- --cui-sidebar-nav-group-toggle-show-color: #321fdb;
- --cui-sidebar-nav-link-disabled-color: #{$text-disabled};
-}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss
deleted file mode 100644
index fc1f0fee..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_toc.scss
+++ /dev/null
@@ -1,40 +0,0 @@
-.docs-toc {
- @include media-breakpoint-up(lg) {
- position: sticky;
- top: 5rem;
- right: 0;
- z-index: 2;
- height: subtract(100vh, 7rem);
- overflow-y: auto;
- }
-
- nav {
- @include font-size(.875rem);
-
- ul {
- padding-left: 0;
- list-style: none;
-
- ul {
- padding-left: 1rem;
- margin-top: .25rem;
- }
- }
-
- li {
- margin-bottom: .25rem;
- }
-
- a {
- color: inherit;
-
- &:not(:hover) {
- text-decoration: none;
- }
-
- code {
- font: inherit;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/_variables.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/_variables.scss
deleted file mode 100755
index e3350532..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/_variables.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-@import '@vuepress/plugin-palette/palette';
-
-// responsive breakpoints
-$MQNarrow: 959px !default;
-$MQMobile: 719px !default;
-$MQMobileNarrow: 419px !default;
-
-// code languages
-$codeLang: 'c' 'cpp' 'cs' 'css' 'dart' 'docker' 'fs' 'go' 'html' 'java' 'js'
- 'json' 'kt' 'less' 'makefile' 'md' 'php' 'py' 'rb' 'rs' 'sass' 'scss' 'sh'
- 'styl' 'ts' 'toml' 'vue' 'yml' !default;
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/index.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/index.scss
deleted file mode 100755
index d2e72339..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/index.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-@import '@coreui/coreui/scss/coreui.scss';
-@import '@docsearch/css/dist/style.css';
-
-@import 'ads';
-@import 'anchor';
-@import 'demo';
-@import 'footer';
-@import 'layout';
-@import 'search';
-@import 'sidebar';
-@import 'table-api';
-@import 'toc';
-
-@import 'vars';
-@import 'vars-dark';
-
-@import 'code';
-@import 'code-group';
-@import 'custom-container';
-@import 'page';
-@import 'transitions';
-
-@import '@vuepress/plugin-palette/style';
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/page.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/page.scss
deleted file mode 100755
index da7cec05..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/page.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-@import '_variables';
-
-.page {
- padding-bottom: 2rem;
- display: block;
-}
-
-.page-meta { padding-top: 1rem;
- padding-bottom: 1rem;
- overflow: auto;
-
- .meta-item {
- cursor: default;
- margin-top: 0.8rem;
-
- .meta-item-label {
- font-weight: 500;
- color: var(--c-text-lighter);
- }
-
- .meta-item-info {
- font-weight: 400;
- color: var(--c-text-quote);
- }
- }
-
- .edit-link {
- display: inline-block;
- margin-right: 0.25rem;
- }
-
- .last-updated {
- float: right;
- }
-}
-
-@media (max-width: $MQMobile) {
- .page-meta {
- .last-updated {
- font-size: 0.8em;
- float: none;
- }
-
- .contributors {
- font-size: 0.8em;
- }
- }
-}
-
-.page-nav {
- padding-top: 1rem;
- padding-bottom: 0;
-
- .inner {
- min-height: 2rem;
- margin-top: 0;
- border-top: 1px solid var(--c-border);
- padding-top: 1rem;
- overflow: auto;
- }
-
- .next {
- float: right;
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/transitions.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/transitions.scss
deleted file mode 100755
index fda62674..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/transitions.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-.fade-slide-y-enter-active {
- transition: all 0.3s ease;
-}
-
-.fade-slide-y-leave-active {
- transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
-}
-
-.fade-slide-y-enter-from,
-.fade-slide-y-leave-to {
- transform: translateY(10px);
- opacity: 0;
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/vars-dark.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/vars-dark.scss
deleted file mode 100755
index 58e02fc5..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/vars-dark.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-html.dark {
- // brand colors
- --c-brand: #3aa675;
- --c-brand-light: #349469;
-
- // background colors
- --c-bg: #22272e;
- --c-bg-light: #2b313a;
- --c-bg-lighter: #262c34;
-
- // text colors
- --c-text: #adbac7;
- --c-text-light: #96a7b7;
- --c-text-lighter: #8b9eb0;
- --c-text-lightest: #8094a8;
-
- // border colors
- --c-border: #3e4c5a;
- --c-border-dark: #34404c;
-
- // custom container colors
- --c-tip: #318a62;
- --c-warning: #ceab00;
- --c-warning-bg: #7e755b;
- --c-warning-title: #ceac03;
- --c-warning-text: #362e00;
- --c-danger: #940000;
- --c-danger-bg: #806161;
- --c-danger-title: #610000;
- --c-danger-text: #3a0000;
- --c-details-bg: #323843;
-
- // code blocks vars
- --code-hl-bg-color: #363b46;
-}
-
-// plugin-docsearch
-html.dark .DocSearch {
- --docsearch-logo-color: var(--c-text);
- --docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
- --docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d,
- 0 2px 2px 0 rgba(3, 4, 9, 0.3);
- --docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);
- --docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5),
- 0 -4px 8px 0 rgba(0, 0, 0, 0.2);
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/styles/vars.scss b/packages/docs/.vuepress/theme-coreui/src/client/styles/vars.scss
deleted file mode 100755
index 5e791a43..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/styles/vars.scss
+++ /dev/null
@@ -1,124 +0,0 @@
-:root {
- // brand colors
- --c-brand: #3eaf7c;
- --c-brand-light: #4abf8a;
-
- // background colors
- --c-bg: #ffffff;
- --c-bg-light: #f3f4f5;
- --c-bg-lighter: #eeeeee;
- --c-bg-navbar: var(--c-bg);
- --c-bg-sidebar: var(--c-bg);
- --c-bg-arrow: #cccccc;
-
- // text colors
- --c-text: #2c3e50;
- --c-text-accent: var(--c-brand);
- --c-text-light: #3a5169;
- --c-text-lighter: #4e6e8e;
- --c-text-lightest: #6a8bad;
- --c-text-quote: #999999;
-
- // border colors
- --c-border: #eaecef;
- --c-border-dark: #dfe2e5;
-
- // custom container colors
- --c-tip: #42b983;
- --c-tip-bg: var(--c-bg-light);
- --c-tip-title: var(--c-text);
- --c-tip-text: var(--c-text);
- --c-tip-text-accent: var(--c-text-accent);
- --c-warning: #e7c000;
- --c-warning-bg: #fffae3;
- --c-warning-title: #ad9000;
- --c-warning-text: #746000;
- --c-warning-text-accent: var(--c-text);
- --c-danger: #cc0000;
- --c-danger-bg: #ffe0e0;
- --c-danger-title: #990000;
- --c-danger-text: #660000;
- --c-danger-text-accent: var(--c-text);
- --c-details-bg: #eeeeee;
-
- // badge component colors
- --c-badge-tip: var(--c-tip);
- --c-badge-warning: var(--c-warning);
- --c-badge-danger: var(--c-danger);
-
- // code blocks vars
- --code-bg-color: #282c34;
- --code-hl-bg-color: rgba(0, 0, 0, 0.66);
- --code-ln-color: #9e9e9e;
- --code-ln-wrapper-width: 3.5rem;
-
- // font vars
- --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
- Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
- --font-family-code: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
-
- // layout vars
- --navbar-height: 3.6rem;
- --navbar-padding-v: 0.7rem;
- --navbar-padding-h: 1.5rem;
- --sidebar-width: 20rem;
- --sidebar-width-mobile: calc(var(--sidebar-width) * 0.82);
- --content-width: 960px;
- --homepage-width: 960px;
-}
-
-// plugin-back-to-top
-.back-to-top {
- --back-to-top-color: var(--c-brand);
- --back-to-top-color-hover: var(--c-brand-light);
-}
-
-// plugin-docsearch
-.DocSearch {
- --docsearch-primary-color: var(--c-brand);
- --docsearch-text-color: var(--c-text);
- --docsearch-highlight-color: var(--c-brand);
- --docsearch-muted-color: var(--c-text-quote);
- --docsearch-container-background: rgba(9, 10, 17, 0.8);
- --docsearch-modal-background: var(--c-bg-light);
- --docsearch-searchbox-background: var(--c-bg-lighter);
- --docsearch-searchbox-focus-background: var(--c-bg);
- --docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);
- --docsearch-hit-color: var(--c-text-light);
- --docsearch-hit-active-color: var(--c-bg);
- --docsearch-hit-background: var(--c-bg);
- --docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);
- --docsearch-footer-background: var(--c-bg);
-}
-
-// plugin-medium-zoom
-.medium-zoom-overlay {
- --medium-zoom-bg-color: var(--c-bg);
-}
-
-// plugin-nprogress
-#nprogress {
- --nprogress-color: var(--c-brand);
-}
-
-// plugin-pwa-popup
-.pwa-popup {
- --pwa-popup-text-color: var(--c-text);
- --pwa-popup-bg-color: var(--c-bg);
- --pwa-popup-border-color: var(--c-brand);
- --pwa-popup-shadow: 0 4px 16px var(--c-brand);
- --pwa-popup-btn-text-color: var(--c-bg);
- --pwa-popup-btn-bg-color: var(--c-brand);
- --pwa-popup-btn-hover-bg-color: var(--c-brand-light);
-}
-
-// plugin-search
-.search-box {
- --search-bg-color: var(--c-bg);
- --search-accent-color: var(--c-brand);
- --search-text-color: var(--c-text);
- --search-border-color: var(--c-border);
-
- --search-item-text-color: var(--c-text-lighter);
- --search-item-focus-bg-color: var(--c-bg-light);
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/utils/index.ts b/packages/docs/.vuepress/theme-coreui/src/client/utils/index.ts
deleted file mode 100755
index 93f94a89..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/utils/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './resolveEditLink'
-export * from './resolveRepoType'
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/utils/resolveEditLink.ts b/packages/docs/.vuepress/theme-coreui/src/client/utils/resolveEditLink.ts
deleted file mode 100755
index 58381d4b..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/utils/resolveEditLink.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import {
- isLinkHttp,
- removeLeadingSlash,
- removeEndingSlash,
-} from '@vuepress/shared'
-import { resolveRepoType } from './resolveRepoType'
-import type { RepoType } from './resolveRepoType'
-
-export const editLinkPatterns: Record, string> = {
- GitHub: ':repo/edit/:branch/:path',
- GitLab: ':repo/-/edit/:branch/:path',
- Gitee: ':repo/edit/:branch/:path',
- Bitbucket:
- ':repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default',
-}
-
-export const resolveEditLink = ({
- docsRepo,
- docsBranch,
- docsDir,
- filePathRelative,
- editLinkPattern,
-}: {
- docsRepo: string
- docsBranch: string
- docsDir: string
- filePathRelative: string
- editLinkPattern?: string
-}): string | null => {
- const repoType = resolveRepoType(docsRepo)
-
- let pattern: string | undefined
-
- if (editLinkPattern) {
- pattern = editLinkPattern
- } else if (repoType !== null) {
- pattern = editLinkPatterns[repoType]
- }
-
- if (!pattern) return null
-
- return pattern
- .replace(
- /:repo/,
- isLinkHttp(docsRepo) ? docsRepo : `https://github.com/${docsRepo}`
- )
- .replace(/:branch/, docsBranch)
- .replace(
- /:path/,
- removeLeadingSlash(`${removeEndingSlash(docsDir)}/${filePathRelative}`)
- )
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/client/utils/resolveRepoType.ts b/packages/docs/.vuepress/theme-coreui/src/client/utils/resolveRepoType.ts
deleted file mode 100755
index c63b5d22..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/client/utils/resolveRepoType.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { isLinkHttp } from '@vuepress/shared'
-
-export type RepoType = 'GitHub' | 'GitLab' | 'Gitee' | 'Bitbucket' | null
-
-export const resolveRepoType = (repo: string): RepoType => {
- if (!isLinkHttp(repo) || /github\.com/.test(repo)) return 'GitHub'
- if (/bitbucket\.org/.test(repo)) return 'Bitbucket'
- if (/gitlab\.com/.test(repo)) return 'GitLab'
- if (/gitee\.com/.test(repo)) return 'Gitee'
- return null
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/defaultTheme.ts b/packages/docs/.vuepress/theme-coreui/src/node/defaultTheme.ts
deleted file mode 100755
index 004caec3..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/node/defaultTheme.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import type { Theme, ThemeConfig } from '@vuepress/core'
-import { path } from '@vuepress/utils'
-import type { DefaultThemeLocaleOptions, DefaultThemePluginsOptions } from '../shared'
-import {
- assignDefaultLocaleOptions,
- // resolveActiveHeaderLinksPluginOptions,
- // resolveContainerPluginOptions,
- // resolveContainerPluginOptionsForDetails,
- // resolveContainerPluginOptionsForCodeGroup,
- // resolveContainerPluginOptionsForCodeGroupItem,
- resolveGitPluginOptions,
- // resolveMediumZoomPluginOptions,
-} from './utils'
-
-export interface DefaultThemeOptions extends ThemeConfig, DefaultThemeLocaleOptions {
- /**
- * To avoid confusion with the root `plugins` option,
- * we use `themePlugins`
- */
- themePlugins?: DefaultThemePluginsOptions
-}
-
-export const defaultTheme: Theme = ({
- themePlugins = {},
- ...localeOptions
-}) => {
- assignDefaultLocaleOptions(localeOptions)
-
- return {
- name: '@vuepress/theme-default',
-
- layouts: path.resolve(__dirname, '../client/layouts'),
-
- clientAppEnhanceFiles: path.resolve(__dirname, '../client/clientAppEnhance.ts'),
-
- clientAppSetupFiles: path.resolve(__dirname, '../client/clientAppSetup.ts'),
-
- // use the relative file path to generate edit link
- extendsPageData: ({ filePathRelative }) => ({ filePathRelative }),
-
- plugins: [
- [
- '@vuepress/active-header-links',
- {
- headerLinkSelector: 'a.sidebar-item',
- headerAnchorSelector: '.anchor-link',
- },
- ],
- ['@vuepress/back-to-top', themePlugins.backToTop !== false],
- // ['@vuepress/container', resolveContainerPluginOptions(themePlugins, localeOptions, 'tip')],
- // [
- // '@vuepress/container',
- // resolveContainerPluginOptions(themePlugins, localeOptions, 'warning'),
- // ],
- // ['@vuepress/container', resolveContainerPluginOptions(themePlugins, localeOptions, 'danger')],
- // ['@vuepress/container', resolveContainerPluginOptionsForDetails(themePlugins)],
- // ['@vuepress/container', resolveContainerPluginOptionsForCodeGroup(themePlugins)],
- // ['@vuepress/container', resolveContainerPluginOptionsForCodeGroupItem(themePlugins)],
- ['@vuepress/git', resolveGitPluginOptions(themePlugins, localeOptions)],
- // ['@vuepress/medium-zoom', resolveMediumZoomPluginOptions(themePlugins)],
- // ['@vuepress/nprogress', themePlugins.nprogress !== false],
- ['@vuepress/palette', { preset: 'sass' }],
- ['@vuepress/prismjs', themePlugins.prismjs !== false],
- ['@vuepress/theme-data', { themeData: localeOptions }],
- ],
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/index.ts b/packages/docs/.vuepress/theme-coreui/src/node/utils/index.ts
deleted file mode 100755
index 17cd5b4e..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/node/utils/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './assignDefaultLocaleOptions'
-export * from './resolveActiveHeaderLinksPluginOptions'
-export * from './resolveContainerPluginOptions'
-export * from './resolveGitPluginOptions'
-export * from './resolveMediumZoomPluginOptions'
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts b/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts
deleted file mode 100755
index ed52e8f9..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import type { ActiveHeaderLinksPluginOptions } from '@vuepress/plugin-active-header-links'
-import type { DefaultThemePluginsOptions } from '../../shared'
-
-/**
- * Resolve options for @vuepress/plugin-active-header-links
- */
-export const resolveActiveHeaderLinksPluginOptions = (
- themePlugins: DefaultThemePluginsOptions
-): ActiveHeaderLinksPluginOptions | boolean => {
- if (themePlugins?.activeHeaderLinks === false) {
- return false
- }
-
- return {
- headerLinkSelector: 'a.sidebar-item',
- headerAnchorSelector: '.anchor-link',
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveContainerPluginOptions.ts b/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveContainerPluginOptions.ts
deleted file mode 100755
index 5d6ec139..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveContainerPluginOptions.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import type { ContainerPluginOptions } from '@vuepress/plugin-container'
-import type { DefaultThemePluginsOptions, DefaultThemeData } from '../../shared'
-
-/**
- * Resolve options for @vuepress/plugin-container
- *
- * For custom containers default title
- */
-export const resolveContainerPluginOptions = (
- themePlugins: DefaultThemePluginsOptions,
- localeOptions: DefaultThemeData,
- type: 'tip' | 'warning' | 'danger'
-): ContainerPluginOptions | boolean => {
- if (themePlugins?.container?.[type] === false) {
- return false
- }
-
- const locales = Object.entries(localeOptions.locales || {}).reduce(
- (result, [key, value]) => {
- result[key] = {
- defaultInfo: value?.[type] ?? localeOptions[type],
- }
- return result
- },
- {}
- )
-
- return {
- type,
- locales,
- }
-}
-
-/**
- * Resolve options for @vuepress/plugin-container
- *
- * For details container
- */
-export const resolveContainerPluginOptionsForDetails = (
- themePlugins: DefaultThemePluginsOptions
-): ContainerPluginOptions | boolean => {
- if (themePlugins?.container?.details === false) {
- return false
- }
-
- return {
- type: 'details',
- before: (info) =>
- `${
- info ? `${info} ` : ''
- }\n`,
- after: () => ' \n',
- }
-}
-
-/**
- * Resolve options for @vuepress/plugin-container
- *
- * For code-group container
- */
-export const resolveContainerPluginOptionsForCodeGroup = (
- themePlugins: DefaultThemePluginsOptions
-): ContainerPluginOptions | boolean => {
- if (themePlugins?.container?.codeGroup === false) {
- return false
- }
-
- return {
- type: 'code-group',
- before: () => `\n`,
- after: () => ' \n',
- }
-}
-
-/**
- * Resolve options for @vuepress/plugin-container
- *
- * For code-group-item block
- */
-export const resolveContainerPluginOptionsForCodeGroupItem = (
- themePlugins: DefaultThemePluginsOptions
-): ContainerPluginOptions | boolean => {
- if (themePlugins?.container?.codeGroupItem === false) {
- return false
- }
-
- return {
- type: 'code-group-item',
- before: (info) => `\n`,
- after: () => ' \n',
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveGitPluginOptions.ts b/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveGitPluginOptions.ts
deleted file mode 100755
index a7348e3c..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveGitPluginOptions.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import type { GitPluginOptions } from '@vuepress/plugin-git'
-import type {
- DefaultThemePluginsOptions,
- DefaultThemeLocaleOptions,
-} from '../../shared'
-
-/**
- * Resolve options for @vuepress/plugin-git
- */
-export const resolveGitPluginOptions = (
- themePlugins: DefaultThemePluginsOptions,
- localeOptions: DefaultThemeLocaleOptions
-): GitPluginOptions | boolean => {
- if (themePlugins?.git === false) {
- return false
- }
-
- const enableUpdatedTime = localeOptions.lastUpdated !== false
- const enableContributors = localeOptions.contributors !== false
-
- if (!enableUpdatedTime && !enableContributors) {
- return false
- }
-
- return {
- createdTime: false,
- updatedTime: enableUpdatedTime,
- contributors: enableContributors,
- }
-}
diff --git a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveMediumZoomPluginOptions.ts b/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveMediumZoomPluginOptions.ts
deleted file mode 100755
index e8fe2e35..00000000
--- a/packages/docs/.vuepress/theme-coreui/src/node/utils/resolveMediumZoomPluginOptions.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import type { MediumZoomPluginOptions } from '@vuepress/plugin-medium-zoom'
-import type { DefaultThemePluginsOptions } from '../../shared'
-
-/**
- * Resolve options for @vuepress/plugin-medium-zoom
- */
-export const resolveMediumZoomPluginOptions = (
- themePlugins: DefaultThemePluginsOptions
-): MediumZoomPluginOptions | boolean => {
- if (themePlugins?.mediumZoom === false) {
- return false
- }
-
- return {
- selector:
- '.theme-default-content > img, .theme-default-content :not(a) > img',
- zoomOptions: {},
- // should greater than page transition duration
- delay: 400,
- }
-}
diff --git a/packages/docs/README.md b/packages/docs/README.md
deleted file mode 100644
index 54e0c48e..00000000
--- a/packages/docs/README.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: Redirect
-lang: en-US
-title: Title of this page
-description: Description of this page
----
-### Components:
-
-[ CAccordion ](./4.0/components/accordion.md)
-
-[ CAlert ](./4.0/components/alert.md)
-
-[ CAvatar ](./4.0/components/avatar.md)
-
-[ CBackdrop ](./4.0/components/backdrop.md)
-
-[ CBadge ](./4.0/components/badge.md)
-
-[ CBreadcrumb ](./4.0/components/breadcrumb.md)
-
-[ CButton ](./4.0/components/button.md)
-
-[ CButtonGroup ](./4.0/components/button-group.md)
-
-[ CCallout ](./4.0/components/callout.md)
-
-[ CCard ](./4.0/components/card.md)
-
-[ CCollapse ](./4.0/components/collapse.md)
-
-[ CDropdown ](./4.0/components/dropdown.md)
-
-[ CDropdown ](./4.0/components/dropdown.md)
-
-[ CFooter ](./4.0/components/footer.md)
-
-[ CForm ](./4.0/components/form.md)
-
-[ CGrid ](./4.0/components/grid.md)
-
-[ CHeader ](./4.0/components/header.md)
-
-[ CLink ](./4.0/components/link.md)
-
-[ CListGroup ](./4.0/components/list-group.md)
-
-[ CLoadingButton ](./4.0/components/loading-button.md)
-
-[ CModal ](./4.0/components/modal.md)
-
-[ CMultiSelect ](./4.0/components/multi-select.md)
-
-[ CNav ](./4.0/components/nav.md)
-
-[ CNavBar ](./4.0/components/navbar.md)
-
-[ COffcanvas ](./4.0/components/offcanvas.md)
-
-[ CPagination ](./4.0/components/pagination.md)
-
-[ CPopover ](./4.0/components/popover.md)
-
-[ CProgress ](./4.0/components/progress.md)
-
-[ CSidebar ](./4.0/components/sidebar.md)
-
-[ CSpinner ](./4.0/components/spinner.md)
-
-[ CTable ](./4.0/components/table.md)
-
-[ CTabs ](./4.0/components/tabs.md)
-
-[ CToast ](./4.0/components/toast.md)
-
-### Directives:
-
-
-[ CTooltip ](./4.0/directives/tooltip.md)
-
-[ CPopover ](./4.0/directives/popover.md)
\ No newline at end of file
diff --git a/packages/docs/api/CChart.api.md b/packages/docs/api/CChart.api.md
index 22ddea1a..e997de50 100644
--- a/packages/docs/api/CChart.api.md
+++ b/packages/docs/api/CChart.api.md
@@ -14,7 +14,7 @@ import CChart from '@coreui/vue-chartjs/src/CChart'
| **data** | The data object that is passed into the Chart.js chart (more info). | ChartData \| ((canvas: HTMLCanvasElement) => ChartData) | - | - |
| **height** | Height attribute applied to the rendered canvas. `@default` 150 | number | - | 150 |
| **id** | ID attribute applied to the rendered canvas. | string | - | - |
-| **options** | The options object that is passed into the Chart.js chart. {@link https://www.chartjs.org/docs/latest/general/options.html More Info} | ChartOptions | - | - |
+| **options** | The options object that is passed into the Chart.js chartRef.value. {@link https://www.chartjs.org/docs/latest/general/options.html More Info} | ChartOptions | - | - |
| **plugins** | The plugins array that is passed into the Chart.js chart (more info) {@link https://www.chartjs.org/docs/latest/developers/plugins.html More Info} | Plugin[] | - | - |
| **redraw** | If true, will tear down and redraw chart on all updates. | boolean | - | - |
| **type** | Chart.js chart type. `@type` 'line' \| 'bar' \| 'radar' \| 'doughnut' \| 'polarArea' \| 'bubble' \| 'pie' \| 'scatter' | ChartType | - | 'bar' |
diff --git a/packages/docs/api/accordion/CAccordionItem.api.md b/packages/docs/api/accordion/CAccordionItem.api.md
index 753acd83..3e07d5aa 100644
--- a/packages/docs/api/accordion/CAccordionItem.api.md
+++ b/packages/docs/api/accordion/CAccordionItem.api.md
@@ -8,6 +8,7 @@ import CAccordionItem from '@coreui/vue/src/components/accordion/CAccordionItem'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------ | ------------- | -------------- | ------ | ------- |
-| **item-key** | The item key. | number\|string | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------------- | -------------- | ------ | ------- |
+| **id** | The id global attribute defines an identifier (ID) that must be unique in the whole document. | string | - | - |
+| **item-key** | The item key. | number\|string | - | - |
diff --git a/packages/docs/api/alert/CAlertHeading.api.md b/packages/docs/api/alert/CAlertHeading.api.md
index 30262600..da1acd2d 100644
--- a/packages/docs/api/alert/CAlertHeading.api.md
+++ b/packages/docs/api/alert/CAlertHeading.api.md
@@ -8,6 +8,6 @@ import CAlertHeading from '@coreui/vue/src/components/alert/CAlertHeading'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h4' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h4' |
diff --git a/packages/docs/api/avatar/CAvatar.api.md b/packages/docs/api/avatar/CAvatar.api.md
index 51491b27..eb80cc30 100644
--- a/packages/docs/api/avatar/CAvatar.api.md
+++ b/packages/docs/api/avatar/CAvatar.api.md
@@ -8,11 +8,11 @@ import CAvatar from '@coreui/vue/src/components/avatar/CAvatar'
#### Props
-| Prop name | Description | Type | Values | Default |
-| -------------- | -------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
-| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **shape** | Select the shape of the component. | string | `'rounded'`, `'rounded-top'`, `'rounded-end'`, `'rounded-bottom'`, `'rounded-start'`, `'rounded-circle'`, `'rounded-pill'`, `'rounded-0'`, `'rounded-1'`, `'rounded-2'`, `'rounded-3'` | - |
-| **size** | Size the component small, large, or extra large. | string | `'sm'`, `'md'`, `'lg'`, `'xl'` | - |
-| **src** | The src attribute for the img element. | string | - | - |
-| **status** | Sets the color context of the status indicator to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **text-color** | Sets the text color of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `'white'`, `'muted'`, `'high-emphasis'`, `'medium-emphasis'`, `'disabled'`, `'high-emphasis-inverse'`, `'medium-emphasis-inverse'`, `'disabled-inverse'` | - |
+| Prop name | Description | Type | Values | Default |
+| -------------- | -------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **shape** | Select the shape of the component. | string | `'rounded'`, `'rounded-top'`, `'rounded-end'`, `'rounded-bottom'`, `'rounded-start'`, `'rounded-circle'`, `'rounded-pill'`, `'rounded-0'`, `'rounded-1'`, `'rounded-2'`, `'rounded-3'` | - |
+| **size** | Size the component small, large, or extra large. | string | `'sm'`, `'md'`, `'lg'`, `'xl'` | - |
+| **src** | The src attribute for the img element. | string | - | - |
+| **status** | Sets the color context of the status indicator to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **text-color** | Sets the text color of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `'primary-emphasis'`, `'secondary-emphasis'`, `'success-emphasis'`, `'danger-emphasis'`, `'warning-emphasis'`, `'info-emphasis'`, `'light-emphasis'`, `'body'`, `'body-emphasis'`, `'body-secondary'`, `'body-tertiary'`, `'black'`, `'black-50'`, `'white'`, `'white-50'` | - |
diff --git a/packages/docs/api/badge/CBadge.api.md b/packages/docs/api/badge/CBadge.api.md
index b9fd90b0..4d763c88 100644
--- a/packages/docs/api/badge/CBadge.api.md
+++ b/packages/docs/api/badge/CBadge.api.md
@@ -8,11 +8,12 @@ import CBadge from '@coreui/vue/src/components/badge/CBadge'
#### Props
-| Prop name | Description | Type | Values | Default |
-| -------------- | --------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
-| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' |
-| **position** | Position badge in one of the corners of a link or button. | string | `'top-start'`, `'top-end'`, `'bottom-end'`, `'bottom-start'` | - |
-| **shape** | Select the shape of the component. | string | `'rounded'`, `'rounded-top'`, `'rounded-end'`, `'rounded-bottom'`, `'rounded-start'`, `'rounded-circle'`, `'rounded-pill'`, `'rounded-0'`, `'rounded-1'`, `'rounded-2'`, `'rounded-3'` | - |
-| **size** | Size the component small. | string | `'sm'` | - |
-| **text-color** | Sets the text color of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `'white'`, `'muted'`, `'high-emphasis'`, `'medium-emphasis'`, `'disabled'`, `'high-emphasis-inverse'`, `'medium-emphasis-inverse'`, `'disabled-inverse'` | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **position** | Position badge in one of the corners of a link or button. | string | `'top-start'`, `'top-end'`, `'bottom-end'`, `'bottom-start'` | - |
+| **shape** | Select the shape of the component. | string | `'rounded'`, `'rounded-top'`, `'rounded-end'`, `'rounded-bottom'`, `'rounded-start'`, `'rounded-circle'`, `'rounded-pill'`, `'rounded-0'`, `'rounded-1'`, `'rounded-2'`, `'rounded-3'` | - |
+| **size** | Size the component small. | string | `'sm'` | - |
+| **text-bg-color** 5.0.0+
| Sets the component's color scheme to one of CoreUI's themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **text-color** | Sets the text color of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `'primary-emphasis'`, `'secondary-emphasis'`, `'success-emphasis'`, `'danger-emphasis'`, `'warning-emphasis'`, `'info-emphasis'`, `'light-emphasis'`, `'body'`, `'body-emphasis'`, `'body-secondary'`, `'body-tertiary'`, `'black'`, `'black-50'`, `'white'`, `'white-50'` | - |
diff --git a/packages/docs/api/button/CButton.api.md b/packages/docs/api/button/CButton.api.md
index 8f8f11ee..47adf340 100644
--- a/packages/docs/api/button/CButton.api.md
+++ b/packages/docs/api/button/CButton.api.md
@@ -8,17 +8,17 @@ import CButton from '@coreui/vue/src/components/button/CButton'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'button' |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
-| **shape** | Select the shape of the component. | string | `'rounded'`, `'rounded-top'`, `'rounded-end'`, `'rounded-bottom'`, `'rounded-start'`, `'rounded-circle'`, `'rounded-pill'`, `'rounded-0'`, `'rounded-1'`, `'rounded-2'`, `'rounded-3'` | - |
-| **size** | Size the component small or large. | string | `'sm'`, `'lg'` | - |
-| **type** | Specifies the type of button. Always specify the type attribute for the `` element. Different browsers may use different default types for the `` element. | string | `'button'`, `'submit'`, `'reset'` | 'button' |
-| **variant** | Set the button variant to an outlined button or a ghost button. | string | `'ghost'`, `'outline'` | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'button' |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
+| **shape** | Select the shape of the component. | string | `'rounded'`, `'rounded-top'`, `'rounded-end'`, `'rounded-bottom'`, `'rounded-start'`, `'rounded-circle'`, `'rounded-pill'`, `'rounded-0'`, `'rounded-1'`, `'rounded-2'`, `'rounded-3'` | - |
+| **size** | Size the component small or large. | string | `'sm'`, `'lg'` | - |
+| **type** | Specifies the type of button. Always specify the type attribute for the `` element. Different browsers may use different default types for the `` element. | string | `'button'`, `'submit'`, `'reset'` | 'button' |
+| **variant** | Set the button variant to an outlined button or a ghost button. | string | `'ghost'`, `'outline'` | - |
#### Events
diff --git a/packages/docs/api/card/CCard.api.md b/packages/docs/api/card/CCard.api.md
index 4db75e45..49c792f9 100644
--- a/packages/docs/api/card/CCard.api.md
+++ b/packages/docs/api/card/CCard.api.md
@@ -8,7 +8,8 @@ import CCard from '@coreui/vue/src/components/card/CCard'
#### Props
-| Prop name | Description | Type | Values | Default |
-| -------------- | ------------------------------------------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
-| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **text-color** | Sets the text color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `'white'`, `'muted'`, `'high-emphasis'`, `'medium-emphasis'`, `'disabled'`, `'high-emphasis-inverse'`, `'medium-emphasis-inverse'`, `'disabled-inverse'` | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **text-bg-color** 5.0.0+
| Sets the component's color scheme to one of CoreUI's themed colors, ensuring the text color contrast adheres to the WCAG 4.5:1 contrast ratio standard for accessibility. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **text-color** | Sets the text color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `'primary-emphasis'`, `'secondary-emphasis'`, `'success-emphasis'`, `'danger-emphasis'`, `'warning-emphasis'`, `'info-emphasis'`, `'light-emphasis'`, `'body'`, `'body-emphasis'`, `'body-secondary'`, `'body-tertiary'`, `'black'`, `'black-50'`, `'white'`, `'white-50'` | - |
diff --git a/packages/docs/api/card/CCardHeader.api.md b/packages/docs/api/card/CCardHeader.api.md
index fb314279..a04ae736 100644
--- a/packages/docs/api/card/CCardHeader.api.md
+++ b/packages/docs/api/card/CCardHeader.api.md
@@ -8,6 +8,6 @@ import CCardHeader from '@coreui/vue/src/components/card/CCardHeader'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
diff --git a/packages/docs/api/card/CCardImage.api.md b/packages/docs/api/card/CCardImage.api.md
index 117d906b..880ccab1 100644
--- a/packages/docs/api/card/CCardImage.api.md
+++ b/packages/docs/api/card/CCardImage.api.md
@@ -10,5 +10,5 @@ import CCardImage from '@coreui/vue/src/components/card/CCardImage'
| Prop name | Description | Type | Values | Default |
| --------------- | --------------------------------------------------------------------------------------- | ------ | ------------------- | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'img' |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'img' |
| **orientation** | Optionally orientate the image to the top, bottom. | string | `'top'`, `'bottom'` | - |
diff --git a/packages/docs/api/card/CCardSubtitle.api.md b/packages/docs/api/card/CCardSubtitle.api.md
index 92ebf44e..8961c4d0 100644
--- a/packages/docs/api/card/CCardSubtitle.api.md
+++ b/packages/docs/api/card/CCardSubtitle.api.md
@@ -8,6 +8,6 @@ import CCardSubtitle from '@coreui/vue/src/components/card/CCardSubtitle'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h6' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h6' |
diff --git a/packages/docs/api/card/CCardText.api.md b/packages/docs/api/card/CCardText.api.md
index 6dc7aaae..b2550fb6 100644
--- a/packages/docs/api/card/CCardText.api.md
+++ b/packages/docs/api/card/CCardText.api.md
@@ -8,6 +8,6 @@ import CCardText from '@coreui/vue/src/components/card/CCardText'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'p' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'p' |
diff --git a/packages/docs/api/card/CCardTitle.api.md b/packages/docs/api/card/CCardTitle.api.md
index e2cb5eb4..6fe87e17 100644
--- a/packages/docs/api/card/CCardTitle.api.md
+++ b/packages/docs/api/card/CCardTitle.api.md
@@ -8,6 +8,6 @@ import CCardTitle from '@coreui/vue/src/components/card/CCardTitle'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' |
diff --git a/packages/docs/api/close-button/CCloseButton.api.md b/packages/docs/api/close-button/CCloseButton.api.md
index f6da7a9a..631cdaf2 100644
--- a/packages/docs/api/close-button/CCloseButton.api.md
+++ b/packages/docs/api/close-button/CCloseButton.api.md
@@ -10,6 +10,7 @@ import CCloseButton from '@coreui/vue/src/components/close-button/CCloseButton'
| Prop name | Description | Type | Values | Default |
| ------------ | -------------------------------------------- | ------- | ------ | ------- |
+| **dark** | Invert the default color. | boolean | - | - |
| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
| **white** | Change the default color to white. | boolean | - | - |
diff --git a/packages/docs/api/conditional-teleport/CConditionalTeleport.api.md b/packages/docs/api/conditional-teleport/CConditionalTeleport.api.md
new file mode 100644
index 00000000..79b60043
--- /dev/null
+++ b/packages/docs/api/conditional-teleport/CConditionalTeleport.api.md
@@ -0,0 +1,14 @@
+### CConditionalTeleport
+
+```jsx
+import { CConditionalTeleport } from '@coreui/vue'
+// or
+import CConditionalTeleport from '@coreui/vue/src/components/conditional-teleport/CConditionalTeleport'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | -------------------------------------------- | ------ | ------- |
+| **container** 5.0.0+
| An HTML element or function that returns a single element, with `document.body` as the default. | HTMLElement \| (() => HTMLElement) \| string | - | 'body' |
+| **teleport** | Render some children into a different part of the DOM | boolean | - | true |
diff --git a/packages/docs/api/coreui-icons-vue/src/CIcon.api.md b/packages/docs/api/coreui-icons-vue/src/CIcon.api.md
new file mode 100644
index 00000000..2811502c
--- /dev/null
+++ b/packages/docs/api/coreui-icons-vue/src/CIcon.api.md
@@ -0,0 +1,19 @@
+### CIcon
+
+```jsx
+import { CIcon } from '@coreui/icons-vue'
+// or
+import CIcon from '@coreui/icons-vue/src/CIcon'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| --------------------- | ------------------------------------------------------------------------------------------------- | --------------------- | ------ | ------- |
+| **content** | Use `:icon="..."` instead of `@deprecated` since version 3.0 | string\|array | - | - |
+| **custom-class-name** | Use for replacing default CIcon component classes. Prop is overriding the 'size' prop. | string\|array\|object | - | - |
+| **icon** | Name of the icon placed in React object or SVG content. | string \| string[] | - | - |
+| **name** | Use `icon="..."` instead of `@deprecated` since version 3.0 | string | - | - |
+| **size** | Size of the icon. Available sizes: 'sm', 'lg', 'xl', 'xxl', '3xl...9xl', 'custom', 'custom-size'. | string | - | - |
+| **title** | Title tag content. | string | - | - |
+| **use** | If defined component will be rendered using 'use' tag. | string | - | - |
diff --git a/packages/docs/api/coreui-icons-vue/src/CIconSvg.api.md b/packages/docs/api/coreui-icons-vue/src/CIconSvg.api.md
new file mode 100644
index 00000000..1984a5a7
--- /dev/null
+++ b/packages/docs/api/coreui-icons-vue/src/CIconSvg.api.md
@@ -0,0 +1,17 @@
+### CIconSvg
+
+```jsx
+import { CIconSvg } from '@coreui/icons-vue'
+// or
+import CIconSvg from '@coreui/icons-vue/src/CIconSvg'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| --------------------- | ------------------------------------------------------------------------------------------------- | --------------------- | ------ | ------- |
+| **custom-class-name** | Use for replacing default CIconSvg component classes. Prop is overriding the 'size' prop. | string\|array\|object | - | - |
+| **height** | The height attribute defines the vertical length of an icon. | number | - | - |
+| **size** | Size of the icon. Available sizes: 'sm', 'lg', 'xl', 'xxl', '3xl...9xl', 'custom', 'custom-size'. | string | - | - |
+| **title** | Title tag content. | string | - | - |
+| **width** | The width attribute defines the horizontal length of an icon. | number | - | - |
diff --git a/packages/docs/api/dropdown/CDropdown.api.md b/packages/docs/api/dropdown/CDropdown.api.md
index 71f0905c..ed5fa645 100644
--- a/packages/docs/api/dropdown/CDropdown.api.md
+++ b/packages/docs/api/dropdown/CDropdown.api.md
@@ -8,18 +8,22 @@ import CDropdown from '@coreui/vue/src/components/dropdown/CDropdown'
#### Props
-| Prop name | Description | Type | Values | Default |
-| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
-| **alignment** | Set aligment of dropdown menu. | string\|object | `{ 'start' \| 'end' \| { xs: 'start' \| 'end' } \| { sm: 'start' \| 'end' } \| { md: 'start' \| 'end' } \| { lg: 'start' \| 'end' } \| { xl: 'start' \| 'end'} \| { xxl: 'start' \| 'end'} }` | - |
-| **auto-close** | Configure the auto close behavior of the dropdown: - `true` - the dropdown will be closed by clicking outside or inside the dropdown menu. - `false` - the dropdown will be closed by clicking the toggle button and manually calling hide or toggle method. (Also will not be closed by pressing esc key) - `'inside'` - the dropdown will be closed (only) by clicking inside the dropdown menu. - `'outside'` - the dropdown will be closed (only) by clicking outside the dropdown menu. | boolean\|string | - | true |
-| **dark** | Sets a darker color scheme to match a dark navbar. | boolean | - | - |
-| **direction** | Sets a specified direction and location of the dropdown menu. | string | `'center'`, `'dropup'`, `'dropup-center'`, `'dropend'`, `'dropstart'` | - |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **placement** | Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property. | Placement | `'auto'`, `'top-end'`, `'top'`, `'top-start'`, `'bottom-end'`, `'bottom'`, `'bottom-start'`, `'right-start'`, `'right'`, `'right-end'`, `'left-start'`, `'left'`, `'left-end'` | 'bottom-start' |
-| **popper** | If you want to disable dynamic positioning set this property to `true`. | boolean | - | true |
-| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. | string\|array | - | 'click' |
-| **variant** | Set the dropdown variant to an btn-group, dropdown, input-group, and nav-item. | string | `'btn-group'`, `'dropdown'`, `'input-group'`, `'nav-item'` | 'btn-group' |
-| **visible** | Toggle the visibility of dropdown menu component. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
+| **alignment** | Set aligment of dropdown menu. | string \| Alignments | `{ 'start' \| 'end' \| { xs: 'start' \| 'end' } \| { sm: 'start' \| 'end' } \| { md: 'start' \| 'end' } \| { lg: 'start' \| 'end' } \| { xl: 'start' \| 'end'} \| { xxl: 'start' \| 'end'} }` | - |
+| **auto-close** | Configure the auto close behavior of the dropdown: - `true` - the dropdown will be closed by clicking outside or inside the dropdown menu. - `false` - the dropdown will be closed by clicking the toggle button and manually calling hide or toggle method. (Also will not be closed by pressing esc key) - `'inside'` - the dropdown will be closed (only) by clicking inside the dropdown menu. - `'outside'` - the dropdown will be closed (only) by clicking outside the dropdown menu. | boolean \| 'inside' \| 'outside' | - | true |
+| **container** 5.0.0+
| Appends the vue dropdown menu to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`. | HTMLElement \| (() => HTMLElement) \| string | - | 'body' |
+| **dark** | Sets a darker color scheme to match a dark navbar. | boolean | - | - |
+| **direction** | Sets a specified direction and location of the dropdown menu. | string | `'center'`, `'dropup'`, `'dropup-center'`, `'dropend'`, `'dropstart'` | - |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| **offset** 4.9.0+
| Offset of the dropdown menu relative to its target. | array | - | [0, 2] |
+| **placement** | Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property. | Placement | `'auto'`, `'top-end'`, `'top'`, `'top-start'`, `'bottom-end'`, `'bottom'`, `'bottom-start'`, `'right-start'`, `'right'`, `'right-end'`, `'left-start'`, `'left'`, `'left-end'` | 'bottom-start' |
+| **popper** | If you want to disable dynamic positioning set this property to `true`. | boolean | - | true |
+| **reference** 5.7.0+
| Sets the reference element for positioning the Vue Dropdown Menu. - `toggle` - The Vue Dropdown Toggle button (default). - `parent` - The Vue Dropdown wrapper element. - `HTMLElement` - A custom HTML element. - `Ref` - A custom reference element. | 'parent' \| 'toggle' \| HTMLElement \| Ref | - | 'toggle' |
+| **teleport** 5.0.0+
| Generates dropdown menu using Teleport. | boolean | - | false |
+| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. | Triggers | - | 'click' |
+| **variant** | Set the dropdown variant to an btn-group, dropdown, input-group, and nav-item. | string | `'btn-group'`, `'dropdown'`, `'input-group'`, `'nav-item'` | 'btn-group' |
+| **visible** | Toggle the visibility of dropdown menu component. | boolean | - | - |
#### Events
diff --git a/packages/docs/api/dropdown/CDropdownHeader.api.md b/packages/docs/api/dropdown/CDropdownHeader.api.md
index ce854682..97d237e2 100644
--- a/packages/docs/api/dropdown/CDropdownHeader.api.md
+++ b/packages/docs/api/dropdown/CDropdownHeader.api.md
@@ -8,6 +8,6 @@ import CDropdownHeader from '@coreui/vue/src/components/dropdown/CDropdownHeader
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h6' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h6' |
diff --git a/packages/docs/api/dropdown/CDropdownItem.api.md b/packages/docs/api/dropdown/CDropdownItem.api.md
index d3739469..c9d88766 100644
--- a/packages/docs/api/dropdown/CDropdownItem.api.md
+++ b/packages/docs/api/dropdown/CDropdownItem.api.md
@@ -8,9 +8,9 @@ import CDropdownItem from '@coreui/vue/src/components/dropdown/CDropdownItem'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
diff --git a/packages/docs/api/dropdown/CDropdownMenu.api.md b/packages/docs/api/dropdown/CDropdownMenu.api.md
index d283ed5c..2c7c07b0 100644
--- a/packages/docs/api/dropdown/CDropdownMenu.api.md
+++ b/packages/docs/api/dropdown/CDropdownMenu.api.md
@@ -8,6 +8,6 @@ import CDropdownMenu from '@coreui/vue/src/components/dropdown/CDropdownMenu'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | --------------- | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | `'div'`, `'ul'` | 'div' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | --------------- | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | `'div'`, `'ul'` | 'div' |
diff --git a/packages/docs/api/dropdown/CDropdownToggle.api.md b/packages/docs/api/dropdown/CDropdownToggle.api.md
index 14987eae..587b216f 100644
--- a/packages/docs/api/dropdown/CDropdownToggle.api.md
+++ b/packages/docs/api/dropdown/CDropdownToggle.api.md
@@ -8,15 +8,16 @@ import CDropdownToggle from '@coreui/vue/src/components/dropdown/CDropdownToggle
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------- | -------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **caret** | Enables pseudo element caret on toggler. | boolean | - | true |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'button' |
-| **custom** | Create a custom toggler which accepts any content. | boolean | - | - |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **size** | Size the component small or large. | string | `'sm'`, `'lg'` | - |
-| **split** | Similarly, create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` className for proper spacing around the dropdown caret. | boolean | - | - |
-| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. `@type` 'hover' \| 'focus' \| 'click' | Triggers | - | 'click' |
-| **variant** | Set the button variant to an outlined button or a ghost button. | string | `'ghost'`, `'outline'` | - |
+| Prop name | Description | Type | Values | Default |
+| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------- | ----------------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'button' |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **caret** | Enables pseudo element caret on toggler. | boolean | - | true |
+| **custom** | Create a custom toggler which accepts any content. | boolean | - | - |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| **nav-link** 5.0.0+
| If a dropdown `variant` is set to `nav-item` then render the toggler as a link instead of a button. | boolean | - | true |
+| **size** | Size the component small or large. | string | `'sm'`, `'lg'` | - |
+| **split** | Similarly, create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` className for proper spacing around the dropdown caret. | boolean | - | - |
+| **split-label** 5.7.0+
| Screen reader label for split button dropdown toggle. | string | - | 'Toggle Dropdown' |
+| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. `@type` 'hover' \| 'focus' \| 'click' | Triggers | - | 'click' |
+| **variant** | Set the button variant to an outlined button or a ghost button. | string | `'ghost'`, `'outline'` | - |
diff --git a/packages/docs/api/focus-trap/CFocusTrap.api.md b/packages/docs/api/focus-trap/CFocusTrap.api.md
new file mode 100644
index 00000000..1028153f
--- /dev/null
+++ b/packages/docs/api/focus-trap/CFocusTrap.api.md
@@ -0,0 +1,23 @@
+### CFocusTrap
+
+```jsx
+import { CFocusTrap } from '@coreui/vue'
+// or
+import CFocusTrap from '@coreui/vue/src/components/focus-trap/CFocusTrap'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------ | ------ | ------- |
+| **active** | Controls whether the focus trap is active or inactive. When `true`, focus will be trapped within the child element. When `false`, normal focus behavior is restored. | boolean | - | true |
+| **additional-container** | Additional container elements to include in the focus trap. Useful for floating elements like tooltips or popovers that are rendered outside the main container but should be part of the trap. | Ref | - | - |
+| **focus-first-element** | Controls whether to focus the first selectable element or the container itself. When `true`, focuses the first tabbable element within the container. When `false`, focuses the container element directly. This is useful for containers that should receive focus themselves, such as scrollable regions or custom interactive components. | boolean | - | false |
+| **restore-focus** | Automatically restores focus to the previously focused element when the trap is deactivated. This is crucial for accessibility as it maintains the user's place in the document when returning from modal dialogs or overlay components. Recommended to be `true` for modal dialogs and popover components. | boolean | - | true |
+
+#### Events
+
+| Event name | Description | Properties |
+| -------------- | ------------------------------------------------------------------------------------------------------------------------- | ---------- |
+| **activate** | Emitted when the focus trap becomes active. Useful for triggering additional accessibility announcements or analytics. |
+| **deactivate** | Emitted when the focus trap is deactivated. Can be used for cleanup, analytics, or triggering state changes. |
diff --git a/packages/docs/api/footer/CFooter.api.md b/packages/docs/api/footer/CFooter.api.md
index b1eedef2..bc9337fe 100644
--- a/packages/docs/api/footer/CFooter.api.md
+++ b/packages/docs/api/footer/CFooter.api.md
@@ -8,6 +8,7 @@ import CFooter from '@coreui/vue/src/components/footer/CFooter'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------ | ------------------------------------- | ------ | --------------------- | ------- |
-| **position** | Place footer in non-static positions. | string | `'fixed'`, `'sticky'` | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------ | --------------------- | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
+| **position** | Place footer in non-static positions. | string | `'fixed'`, `'sticky'` | - |
diff --git a/packages/docs/api/form/CFormCheck.api.md b/packages/docs/api/form/CFormCheck.api.md
index e6fd5f77..1d906212 100644
--- a/packages/docs/api/form/CFormCheck.api.md
+++ b/packages/docs/api/form/CFormCheck.api.md
@@ -8,23 +8,26 @@ import CFormCheck from '@coreui/vue/src/components/form/CFormCheck'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | ----------------------- | ---------- |
-| **button** | Create button-like checkboxes and radio buttons. `@see` http://coreui.io/vue/docs/components/button.html | object | - | - |
-| **feedback** 4.3.0+
| Provide valuable, actionable feedback. | string | - | - |
-| **feedback-invalid** 4.3.0+
| Provide valuable, actionable feedback. | string | - | - |
-| **feedback-valid** 4.3.0+
| Provide valuable, actionable invalid feedback when using standard HTML form validation which applied two CSS pseudo-classes, `:invalid` and `:valid`. | string | - | - |
-| **hit-area** | Sets hit area to the full area of the component. | string | - | - |
-| **id** | The id global attribute defines an identifier (ID) that must be unique in the whole document. | string | - | - |
-| **indeterminate** | Input Checkbox indeterminate Property | boolean | - | - |
-| **inline** | Group checkboxes or radios on the same horizontal row by adding. | boolean | - | - |
-| **invalid** | Set component validation state to invalid. | boolean | - | - |
-| **label** | The element represents a caption for a component. | string | - | - |
-| **model-value** | The default name for a value passed using v-model. | boolean\|string | - | - |
-| **reverse** | Put checkboxes or radios on the opposite side. `@since` 4.8.0 | boolean | - | - |
-| **tooltip-feedback** 4.3.0+
| Display validation feedback in a styled tooltip. | boolean | - | - |
-| **type** | Specifies the type of component. | string | `'checkbox'`, `'radio'` | 'checkbox' |
-| **valid** | Set component validation state to valid. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------------------- | ---------- |
+| **button** | Create button-like checkboxes and radio buttons. `@see` http://coreui.io/vue/docs/components/button.html | object | - | - |
+| **false-value** 4.10.0+
| Use in conjunction with the v-model directive to specify the value that should be assigned to the bound variable when the checkbox is in the `false` state. | string | - | - |
+| **feedback** 4.3.0+
| Provide valuable, actionable feedback. | string | - | - |
+| **feedback-invalid** 4.3.0+
| Provide valuable, actionable feedback. | string | - | - |
+| **feedback-valid** 4.3.0+
| Provide valuable, actionable invalid feedback when using standard HTML form validation which applied two CSS pseudo-classes, `:invalid` and `:valid`. | string | - | - |
+| **hit-area** | Sets hit area to the full area of the component. | string | - | - |
+| **id** | The id global attribute defines an identifier (ID) that must be unique in the whole document. | string | - | - |
+| **indeterminate** | Input Checkbox indeterminate Property | boolean | - | - |
+| **inline** | Group checkboxes or radios on the same horizontal row by adding. | boolean | - | - |
+| **invalid** | Set component validation state to invalid. | boolean | - | - |
+| **label** | The element represents a caption for a component. | string | - | - |
+| **model-value** | The default name for a value passed using v-model. | array\|boolean\|string | - | - |
+| **reverse** 4.8.0+
| Put checkboxes or radios on the opposite side. | boolean | - | - |
+| **tooltip-feedback** 4.3.0+
| Display validation feedback in a styled tooltip. | boolean | - | - |
+| **true-value** 4.10.0+
| Use in conjunction with the v-model directive to specify the value that should be assigned to the bound variable when the checkbox is in the `true` state. | string | - | - |
+| **type** | Specifies the type of component. | string | `'checkbox'`, `'radio'` | 'checkbox' |
+| **valid** | Set component validation state to valid. | boolean | - | - |
+| **value** | The value attribute of component. | string | - | - |
#### Events
diff --git a/packages/docs/api/form/CFormControlWrapper.api.md b/packages/docs/api/form/CFormControlWrapper.api.md
index c4d97891..ebce3a46 100644
--- a/packages/docs/api/form/CFormControlWrapper.api.md
+++ b/packages/docs/api/form/CFormControlWrapper.api.md
@@ -8,8 +8,9 @@ import CFormControlWrapper from '@coreui/vue/src/components/form/CFormControlWra
#### Props
-| Prop name | Description | Type | Values | Default |
-| ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **floating-label** 4.3.0+
| Provide valuable, actionable valid feedback when using standard HTML form validation which applied two CSS pseudo-classes, `:invalid` and `:valid`. | string | - | - |
-| **label** 4.3.0+
| Add a caption for a component. | string | - | - |
-| **text** 4.3.0+
| Add helper text to the component. | string | - | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **floating-class-name** 5.5.0+
| A string of all className you want applied to the floating label wrapper. | string | - | - |
+| **floating-label** 4.3.0+
| Provide valuable, actionable valid feedback when using standard HTML form validation which applied two CSS pseudo-classes, `:invalid` and `:valid`. | string | - | - |
+| **label** 4.3.0+
| Add a caption for a component. | string | - | - |
+| **text** 4.3.0+
| Add helper text to the component. | string | - | - |
diff --git a/packages/docs/api/form/CFormFeedback.api.md b/packages/docs/api/form/CFormFeedback.api.md
index bc45a57d..3ab11d05 100644
--- a/packages/docs/api/form/CFormFeedback.api.md
+++ b/packages/docs/api/form/CFormFeedback.api.md
@@ -8,9 +8,9 @@ import CFormFeedback from '@coreui/vue/src/components/form/CFormFeedback'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
-| **invalid** | Method called immediately after the `value` prop changes. | boolean | - | - |
-| **tooltip** | If your form layout allows it, you can display validation feedback in a styled tooltip. | boolean | - | - |
-| **valid** | Set component validation state to valid. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ----------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
+| **invalid** | Method called immediately after the `value` prop changes. | boolean | - | - |
+| **tooltip** | If your form layout allows it, you can display validation feedback in a styled tooltip. | boolean | - | - |
+| **valid** | Set component validation state to valid. | boolean | - | - |
diff --git a/packages/docs/api/form/CFormSwitch.api.md b/packages/docs/api/form/CFormSwitch.api.md
index ede39558..fc2864c1 100644
--- a/packages/docs/api/form/CFormSwitch.api.md
+++ b/packages/docs/api/form/CFormSwitch.api.md
@@ -8,16 +8,16 @@ import CFormSwitch from '@coreui/vue/src/components/form/CFormSwitch'
#### Props
-| Prop name | Description | Type | Values | Default |
-| --------------- | -------------------------------------------------------------------------------------------- | --------------- | ----------------------- | ---------- |
-| **id** | The id global attribute defines an identifier (ID) that must be unique in the whole document | string | - | - |
-| **invalid** | Set component validation state to invalid. | boolean | - | - |
-| **label** | The element represents a caption for a component. | string | - | - |
-| **model-value** | The default name for a value passed using v-model. | boolean\|string | - | - |
-| **reverse** | Put checkboxes or radios on the opposite side. `@since` 4.8.0 | boolean | - | - |
-| **size** | Size the component large or extra large. Works only with `switch`. | string | `'lg' \| 'xl'` | - |
-| **type** | Specifies the type of component. | string | `'checkbox'`, `'radio'` | 'checkbox' |
-| **valid** | Set component validation state to valid. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------- | ----------------------- | ---------- |
+| **id** | The id global attribute defines an identifier (ID) that must be unique in the whole document | string | - | - |
+| **invalid** | Set component validation state to invalid. | boolean | - | - |
+| **label** | The element represents a caption for a component. | string | - | - |
+| **model-value** | The default name for a value passed using v-model. | boolean\|string | - | - |
+| **reverse** 4.8.0+
| Put checkboxes or radios on the opposite side. | boolean | - | - |
+| **size** | Size the component large or extra large. Works only with `switch`. | string | `'lg' \| 'xl'` | - |
+| **type** | Specifies the type of component. | string | `'checkbox'`, `'radio'` | 'checkbox' |
+| **valid** | Set component validation state to valid. | boolean | - | - |
#### Events
diff --git a/packages/docs/api/form/CFormText.api.md b/packages/docs/api/form/CFormText.api.md
index 939772da..33cdc019 100644
--- a/packages/docs/api/form/CFormText.api.md
+++ b/packages/docs/api/form/CFormText.api.md
@@ -8,6 +8,6 @@ import CFormText from '@coreui/vue/src/components/form/CFormText'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
diff --git a/packages/docs/api/form/CInputGroupText.api.md b/packages/docs/api/form/CInputGroupText.api.md
index a3ad985f..09998a59 100644
--- a/packages/docs/api/form/CInputGroupText.api.md
+++ b/packages/docs/api/form/CInputGroupText.api.md
@@ -8,6 +8,6 @@ import CInputGroupText from '@coreui/vue/src/components/form/CInputGroupText'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' |
diff --git a/packages/docs/api/header/CHeader.api.md b/packages/docs/api/header/CHeader.api.md
index 0416d9ee..f47ab627 100644
--- a/packages/docs/api/header/CHeader.api.md
+++ b/packages/docs/api/header/CHeader.api.md
@@ -8,7 +8,8 @@ import CHeader from '@coreui/vue/src/components/header/CHeader'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | ------------------------------------------------------ | --------------- | ------------------------------------------------------------- | ------- |
-| **container** | Defines optional container wrapping children elements. | boolean\|string | `boolean`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'xxl'`, `'fluid'` | - |
-| **position** | Place header in non-static positions. | string | `'fixed'`, `'sticky'` | - |
+| Prop name | Description | Type | Values | Default |
+| ------------- | --------------------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------- | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
+| **container** | Defines optional container wrapping children elements. | boolean\|string | `boolean`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'xxl'`, `'fluid'` | - |
+| **position** | Place header in non-static positions. | string | `'fixed'`, `'sticky'` | - |
diff --git a/packages/docs/api/header/CHeaderBrand.api.md b/packages/docs/api/header/CHeaderBrand.api.md
index a87636c5..9249d0a0 100644
--- a/packages/docs/api/header/CHeaderBrand.api.md
+++ b/packages/docs/api/header/CHeaderBrand.api.md
@@ -8,6 +8,6 @@ import CHeaderBrand from '@coreui/vue/src/components/header/CHeaderBrand'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
diff --git a/packages/docs/api/header/CHeaderNav.api.md b/packages/docs/api/header/CHeaderNav.api.md
index 1ceb45e3..dde286f0 100644
--- a/packages/docs/api/header/CHeaderNav.api.md
+++ b/packages/docs/api/header/CHeaderNav.api.md
@@ -8,6 +8,6 @@ import CHeaderNav from '@coreui/vue/src/components/header/CHeaderNav'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
diff --git a/packages/docs/api/link/CLink.api.md b/packages/docs/api/link/CLink.api.md
index 5404dffa..ddf93047 100644
--- a/packages/docs/api/link/CLink.api.md
+++ b/packages/docs/api/link/CLink.api.md
@@ -8,12 +8,12 @@ import CLink from '@coreui/vue/src/components/link/CLink'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
#### Events
diff --git a/packages/docs/api/list-group/CListGroup.api.md b/packages/docs/api/list-group/CListGroup.api.md
index 005ead80..2a88b9d3 100644
--- a/packages/docs/api/list-group/CListGroup.api.md
+++ b/packages/docs/api/list-group/CListGroup.api.md
@@ -8,8 +8,8 @@ import CListGroup from '@coreui/vue/src/components/list-group/CListGroup'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | ----------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
-| **flush** | Remove some borders and rounded corners to render list group items edge-to-edge in a parent component (e.g., ``) | boolean | - | - |
-| **layout** | Specify a layout type. | string | `'horizontal'`, `'horizontal-sm'`, `'horizontal-md'`, `'horizontal-lg'`, `'horizontal-xl'`, `'horizontal-xxl'`, `` | - |
+| Prop name | Description | Type | Values | Default |
+| ---------- | ----------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
+| **flush** | Remove some borders and rounded corners to render list group items edge-to-edge in a parent component (e.g., ``) | boolean | - | - |
+| **layout** | Specify a layout type. | string | `'horizontal'`, `'horizontal-sm'`, `'horizontal-md'`, `'horizontal-lg'`, `'horizontal-xl'`, `'horizontal-xxl'`, `` | - |
diff --git a/packages/docs/api/list-group/CListGroupItem.api.md b/packages/docs/api/list-group/CListGroupItem.api.md
index 3cfe1132..a5eddd7a 100644
--- a/packages/docs/api/list-group/CListGroupItem.api.md
+++ b/packages/docs/api/list-group/CListGroupItem.api.md
@@ -8,9 +8,9 @@ import CListGroupItem from '@coreui/vue/src/components/list-group/CListGroupItem
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------- | ------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | - |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'li' |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------- | ------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'li' |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | - |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
diff --git a/packages/docs/api/modal/CModal.api.md b/packages/docs/api/modal/CModal.api.md
index 7485e03c..31a0e728 100644
--- a/packages/docs/api/modal/CModal.api.md
+++ b/packages/docs/api/modal/CModal.api.md
@@ -8,18 +8,21 @@ import CModal from '@coreui/vue/src/components/modal/CModal'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------- | ------- |
-| **alignment** | Align the modal in the center or top of the screen. | string | `'top'`, `'center'` | 'top' |
-| **backdrop** | Apply a backdrop on body while offcanvas is open. | boolean\|string | `boolean \| 'static'` | true |
-| **content-class-name** | A string of all className you want applied to the modal content component. | string | - | - |
-| **fullscreen** | Set modal to covers the entire user viewport | boolean\|string | `boolean`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'xxl'` | - |
-| **keyboard** | Closes the modal when escape key is pressed. | boolean | - | true |
-| **scrollable** | Create a scrollable modal that allows scrolling the modal body. | boolean | - | - |
-| **size** | Size the component small, large, or extra large. | string | `'sm'`, `'lg'`, `'xl'` | - |
-| **transition** | Remove animation to create modal that simply appear rather than fade in to view. | boolean | - | true |
-| **unmount-on-close** | By default the component is unmounted after close animation, if you want to keep the component mounted set this property to false. | boolean | - | true |
-| **visible** | Toggle the visibility of alert component. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | -------------------------------------------------- | ------- |
+| **alignment** | Align the modal in the center or top of the screen. | string | `'top'`, `'center'` | 'top' |
+| **backdrop** | Apply a backdrop on body while modal is open. | boolean\|string | `boolean \| 'static'` | true |
+| **container** 5.3.0+
| Appends the vue popover to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`. | HTMLElement \| (() => HTMLElement) \| string | - | 'body' |
+| **content-class-name** | A string of all className you want applied to the modal content component. | string | - | - |
+| **focus** 5.0.0+
| Puts the focus on the modal when shown. | boolean | - | true |
+| **fullscreen** | Set modal to covers the entire user viewport | boolean\|string | `boolean`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'xxl'` | - |
+| **keyboard** | Closes the modal when escape key is pressed. | boolean | - | true |
+| **scrollable** | Create a scrollable modal that allows scrolling the modal body. | boolean | - | - |
+| **size** | Size the component small, large, or extra large. | string | `'sm'`, `'lg'`, `'xl'` | - |
+| **teleport** 5.3.0+
| Generates modal using Teleport. | boolean | - | false |
+| **transition** | Remove animation to create modal that simply appear rather than fade in to view. | boolean | - | true |
+| **unmount-on-close** | By default the component is unmounted after close animation, if you want to keep the component mounted set this property to false. | boolean | - | true |
+| **visible** | Toggle the visibility of alert component. | boolean | - | - |
#### Events
diff --git a/packages/docs/api/modal/CModalTitle.api.md b/packages/docs/api/modal/CModalTitle.api.md
index 81ba100e..93d9891a 100644
--- a/packages/docs/api/modal/CModalTitle.api.md
+++ b/packages/docs/api/modal/CModalTitle.api.md
@@ -8,6 +8,6 @@ import CModalTitle from '@coreui/vue/src/components/modal/CModalTitle'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' |
diff --git a/packages/docs/api/nav/CNav.api.md b/packages/docs/api/nav/CNav.api.md
index 249b3f6b..37c9f02c 100644
--- a/packages/docs/api/nav/CNav.api.md
+++ b/packages/docs/api/nav/CNav.api.md
@@ -8,8 +8,8 @@ import CNav from '@coreui/vue/src/components/nav/CNav'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ----------------------- | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
-| **layout** | Specify a layout type for component. | string | `'fill'`, `'justified'` | - |
-| **variant** | Set the nav variant to tabs or pills. | string | `'tabs'`, `'pills'` | - |
+| Prop name | Description | Type | Values | Default |
+| ----------- | --------------------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
+| **layout** | Specify a layout type for component. | string | `'fill'`, `'justified'` | - |
+| **variant** | Set the nav variant to tabs or pills. | string | `'enclosed'`, `'enclosed-pills'`, `'pills'`, `'tabs'`, `'underline'`, `'underline-border'` | - |
diff --git a/packages/docs/api/nav/CNavGroup.api.md b/packages/docs/api/nav/CNavGroup.api.md
index 3d826283..309a55c4 100644
--- a/packages/docs/api/nav/CNavGroup.api.md
+++ b/packages/docs/api/nav/CNavGroup.api.md
@@ -8,10 +8,11 @@ import CNavGroup from '@coreui/vue/src/components/nav/CNavGroup'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ----------- | ------------------------------------------------------------- | ------- | ------ | ------- |
-| **compact** | Make nav group more compact by cutting all `padding` in half. | boolean | - | - |
-| **visible** | Show nav group items. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ----------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'li' |
+| **compact** | Make nav group more compact by cutting all `padding` in half. | boolean | - | - |
+| **visible** | Show nav group items. | boolean | - | - |
#### Events
diff --git a/packages/docs/api/nav/CNavItem.api.md b/packages/docs/api/nav/CNavItem.api.md
index 0be3893c..788b3792 100644
--- a/packages/docs/api/nav/CNavItem.api.md
+++ b/packages/docs/api/nav/CNavItem.api.md
@@ -5,3 +5,12 @@ import { CNavItem } from '@coreui/vue'
// or
import CNavItem from '@coreui/vue/src/components/nav/CNavItem'
```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'li' |
+| **class** | A string of all className you want applied to the component. | string | - | - |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
diff --git a/packages/docs/api/nav/CNavLink.api.md b/packages/docs/api/nav/CNavLink.api.md
index 748b5bea..7e17ce27 100644
--- a/packages/docs/api/nav/CNavLink.api.md
+++ b/packages/docs/api/nav/CNavLink.api.md
@@ -8,8 +8,8 @@ import CNavLink from '@coreui/vue/src/components/nav/CNavLink'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
diff --git a/packages/docs/api/nav/CNavTitle.api.md b/packages/docs/api/nav/CNavTitle.api.md
index 856e314b..ce56c9b1 100644
--- a/packages/docs/api/nav/CNavTitle.api.md
+++ b/packages/docs/api/nav/CNavTitle.api.md
@@ -5,3 +5,9 @@ import { CNavTitle } from '@coreui/vue'
// or
import CNavTitle from '@coreui/vue/src/components/nav/CNavTitle'
```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'li' |
diff --git a/packages/docs/api/navbar/CNavbar.api.md b/packages/docs/api/navbar/CNavbar.api.md
index d907f3fc..bc8d5c8b 100644
--- a/packages/docs/api/navbar/CNavbar.api.md
+++ b/packages/docs/api/navbar/CNavbar.api.md
@@ -10,9 +10,9 @@ import CNavbar from '@coreui/vue/src/components/navbar/CNavbar'
| Prop name | Description | Type | Values | Default |
| ---------------- | --------------------------------------------------------------------------------------- | --------------- | --------------------------------------------------------------------------------------------------------- | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'nav' |
| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | - |
| **color-scheme** | Sets if the color of text should be colored for a light or dark dark background. | string | `'dark'`, `'light'` | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'nav' |
| **container** | Defines optional container wrapping children elements. | boolean\|string | `boolean`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'xxl'`, `'fluid'` | - |
| **expand** | Defines the responsive breakpoint to determine when content collapses. | boolean\|string | `boolean`, `'sm'`, `'md'`, `'lg'`, `'xl'`, `'xxl'` | - |
| **placement** | Place component in non-static positions. | string | `'fixed-top'`, `'fixed-bottom'`, `'sticky-top'` | - |
diff --git a/packages/docs/api/navbar/CNavbarBrand.api.md b/packages/docs/api/navbar/CNavbarBrand.api.md
index 5d24b0e8..de415ed5 100644
--- a/packages/docs/api/navbar/CNavbarBrand.api.md
+++ b/packages/docs/api/navbar/CNavbarBrand.api.md
@@ -8,7 +8,7 @@ import CNavbarBrand from '@coreui/vue/src/components/navbar/CNavbarBrand'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
-| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' |
+| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
diff --git a/packages/docs/api/navbar/CNavbarNav.api.md b/packages/docs/api/navbar/CNavbarNav.api.md
index d71b96fc..ce7da6a2 100644
--- a/packages/docs/api/navbar/CNavbarNav.api.md
+++ b/packages/docs/api/navbar/CNavbarNav.api.md
@@ -8,6 +8,6 @@ import CNavbarNav from '@coreui/vue/src/components/navbar/CNavbarNav'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' |
diff --git a/packages/docs/api/offcanvas/COffcanvas.api.md b/packages/docs/api/offcanvas/COffcanvas.api.md
index ec04f04e..130ab67f 100644
--- a/packages/docs/api/offcanvas/COffcanvas.api.md
+++ b/packages/docs/api/offcanvas/COffcanvas.api.md
@@ -11,6 +11,7 @@ import COffcanvas from '@coreui/vue/src/components/offcanvas/COffcanvas'
| Prop name | Description | Type | Values | Default |
| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | --------------- | -------------------------------------------------- | ------- |
| **backdrop** | Apply a backdrop on body while offcanvas is open. | boolean\|string | `boolean \| 'static'` | true |
+| **dark** | Sets a darker color scheme. | boolean | - | - |
| **keyboard** | Closes the offcanvas when escape key is pressed. | boolean | - | true |
| **placement** | Components placement, there’s no default placement. | string | `'start'`, `'end'`, `'top'`, `'bottom'` | - |
| **responsive** 4.7.0+
| Responsive offcanvas property hide content outside the viewport from a specified breakpoint and down. | boolean\|string | `boolean \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'xxl'` | true |
diff --git a/packages/docs/api/offcanvas/COffcanvasTitle.api.md b/packages/docs/api/offcanvas/COffcanvasTitle.api.md
index 48fff654..f920006c 100644
--- a/packages/docs/api/offcanvas/COffcanvasTitle.api.md
+++ b/packages/docs/api/offcanvas/COffcanvasTitle.api.md
@@ -8,6 +8,6 @@ import COffcanvasTitle from '@coreui/vue/src/components/offcanvas/COffcanvasTitl
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' |
diff --git a/packages/docs/api/pagination/CPaginationItem.api.md b/packages/docs/api/pagination/CPaginationItem.api.md
index fced0268..ce607b0b 100644
--- a/packages/docs/api/pagination/CPaginationItem.api.md
+++ b/packages/docs/api/pagination/CPaginationItem.api.md
@@ -8,9 +8,9 @@ import CPaginationItem from '@coreui/vue/src/components/pagination/CPaginationIt
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
-| **active** | Toggle the active state for the component. | boolean | - | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | - |
-| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
-| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
+| Prop name | Description | Type | Values | Default |
+| ------------ | --------------------------------------------------------------------------------------- | ------- | ------ | ------- |
+| **active** | Toggle the active state for the component. | boolean | - | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | - |
+| **disabled** | Toggle the disabled state for the component. | boolean | - | - |
+| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
diff --git a/packages/docs/api/placeholder/CPlaceholder.api.md b/packages/docs/api/placeholder/CPlaceholder.api.md
index e229a9dc..074a0c57 100644
--- a/packages/docs/api/placeholder/CPlaceholder.api.md
+++ b/packages/docs/api/placeholder/CPlaceholder.api.md
@@ -11,8 +11,8 @@ import CPlaceholder from '@coreui/vue/src/components/placeholder/CPlaceholder'
| Prop name | Description | Type | Values | Default |
| ------------- | --------------------------------------------------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------- | ------- |
| **animation** | Set animation type to better convey the perception of something being actively loaded. | string | `'glow'`, `'wave'` | - |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' |
| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' |
| **size** | Size the component extra small, small, or large. | string | `'xs'`, `'sm'`, `'lg'` | - |
| **xs** | The number of columns on extra small devices (<576px). | number | - | - |
| **sm** | The number of columns on small devices (<768px). | number | - | - |
diff --git a/packages/docs/api/popover/CPopover.api.md b/packages/docs/api/popover/CPopover.api.md
index 3c4917d6..725e4846 100644
--- a/packages/docs/api/popover/CPopover.api.md
+++ b/packages/docs/api/popover/CPopover.api.md
@@ -8,14 +8,18 @@ import CPopover from '@coreui/vue/src/components/popover/CPopover'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ------------------------------- | ------- |
-| **content** | Content for your component. If you want to pass non-string value please use dedicated slot `... ` | string | - | - |
-| **offset** | Offset of the popover relative to its target. | array | - | [0, 8] |
-| **placement** | Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property. | Placement | - | 'top' |
-| **title** | Title for your component. If you want to pass non-string value please use dedicated slot `... ` | string | - | - |
-| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. | string \| string[] | `'click'`, `'focus'`, `'hover'` | 'click' |
-| **visible** | Toggle the visibility of popover component. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ------------------------------- | ---------------------------------------- |
+| **animation** 4.9.0+
| Apply a CSS fade transition to the popover. | boolean | - | true |
+| **container** 5.0.0+
| Appends the vue popover to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`. | HTMLElement \| (() => HTMLElement) \| string | - | 'body' |
+| **content** | Content for your component. If you want to pass non-string value please use dedicated slot `... ` | string | - | - |
+| **delay** 4.9.0+
| The delay for displaying and hiding the popover (in milliseconds). When a numerical value is provided, the delay applies to both the hide and show actions. The object structure for specifying the delay is as follows: delay: `{ 'show': 500, 'hide': 100 }`. | number \| { show: number; hide: number } | - | 0 |
+| **fallback-placements** 4.9.0+
| Specify the desired order of fallback placements by providing a list of placements as an array. The placements should be prioritized based on preference. | Placements \| Placements[] | - | () => ['top', 'right', 'bottom', 'left'] |
+| **offset** | Offset of the popover relative to its target. | array | - | [0, 8] |
+| **placement** | Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property. | Placement | - | 'top' |
+| **title** | Title for your component. If you want to pass non-string value please use dedicated slot `... ` | string | - | - |
+| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. | Triggers \| Triggers[] | `'click'`, `'focus'`, `'hover'` | 'click' |
+| **visible** | Toggle the visibility of popover component. | boolean | - | - |
#### Events
diff --git a/packages/docs/api/progress/CProgress.api.md b/packages/docs/api/progress/CProgress.api.md
index 3621fe13..1236b6ba 100644
--- a/packages/docs/api/progress/CProgress.api.md
+++ b/packages/docs/api/progress/CProgress.api.md
@@ -8,8 +8,13 @@ import CProgress from '@coreui/vue/src/components/progress/CProgress'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ---------- | ------------------------------------------------------------------------------------------------------------------------- | ------- | ------ | ------- |
-| **height** | Sets the height of the component. If you set that value the inner `` will automatically resize accordingly. | number | - | - |
-| **thin** | Makes progress bar thinner. | boolean | - | - |
-| **white** | Change the default color to white. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------- | ------- |
+| **animated** | Use to animate the stripes right to left via CSS3 animations. | boolean | - | - |
+| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
+| **height** | Sets the height of the component. If you set that value the inner `` will automatically resize accordingly. | number | - | - |
+| **progress-bar-class-name** 5.0.0+
| A string of all className you want applied to the component. | string | - | - |
+| **thin** | Makes progress bar thinner. | boolean | - | - |
+| **value** | The percent to progress the ProgressBar. | number | - | 0 |
+| **variant** | Set the progress bar variant to optional striped. | string | `'striped'` | - |
+| **white** | Change the default color to white. | boolean | - | - |
diff --git a/packages/docs/api/progress/CProgressStacked.api.md b/packages/docs/api/progress/CProgressStacked.api.md
new file mode 100644
index 00000000..8faf5158
--- /dev/null
+++ b/packages/docs/api/progress/CProgressStacked.api.md
@@ -0,0 +1,7 @@
+### CProgressStacked
+
+```jsx
+import { CProgressStacked } from '@coreui/vue'
+// or
+import CProgressStacked from '@coreui/vue/src/components/progress/CProgressStacked'
+```
diff --git a/packages/docs/api/sidebar/CSidebar.api.md b/packages/docs/api/sidebar/CSidebar.api.md
index 37e6f9ee..94a678d8 100644
--- a/packages/docs/api/sidebar/CSidebar.api.md
+++ b/packages/docs/api/sidebar/CSidebar.api.md
@@ -8,14 +8,16 @@ import CSidebar from '@coreui/vue/src/components/sidebar/CSidebar'
#### Props
-| Prop name | Description | Type | Values | Default |
-| -------------- | ------------------------------------------------ | ------- | ------ | ------- |
-| **narrow** | Make sidebar narrow. | boolean | - | - |
-| **overlaid** | Set sidebar to overlaid variant. | boolean | - | - |
-| **position** | Place sidebar in non-static positions. | string | - | - |
-| **size** | Size the component small, large, or extra large. | string | - | - |
-| **unfoldable** | Expand narrowed sidebar on hover. | boolean | - | - |
-| **visible** | Toggle the visibility of sidebar component. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------- | -------------------------------------------------------------------------------- | ------- | ------------------ | ------- |
+| **color-scheme** | Sets if the color of text should be colored for a light or dark dark background. | string | `'dark'`, `light'` | - |
+| **narrow** | Make sidebar narrow. | boolean | - | - |
+| **overlaid** | Set sidebar to overlaid variant. | boolean | - | - |
+| **placement** | Components placement, there’s no default placement. | string | `'start'`, `'end'` | - |
+| **position** | Place sidebar in non-static positions. | string | - | - |
+| **size** | Size the component small, large, or extra large. | string | - | - |
+| **unfoldable** | Expand narrowed sidebar on hover. | boolean | - | - |
+| **visible** | Toggle the visibility of sidebar component. | boolean | - | - |
#### Events
diff --git a/packages/docs/api/sidebar/CSidebarBrand.api.md b/packages/docs/api/sidebar/CSidebarBrand.api.md
index 79d69d44..9819a335 100644
--- a/packages/docs/api/sidebar/CSidebarBrand.api.md
+++ b/packages/docs/api/sidebar/CSidebarBrand.api.md
@@ -5,3 +5,10 @@ import { CSidebarBrand } from '@coreui/vue'
// or
import CSidebarBrand from '@coreui/vue/src/components/sidebar/CSidebarBrand'
```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
+| **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - |
diff --git a/packages/docs/api/sidebar/CSidebarNav.api.md b/packages/docs/api/sidebar/CSidebarNav.api.md
index 30558957..fdfa8a1c 100644
--- a/packages/docs/api/sidebar/CSidebarNav.api.md
+++ b/packages/docs/api/sidebar/CSidebarNav.api.md
@@ -5,3 +5,9 @@ import { CSidebarNav } from '@coreui/vue'
// or
import CSidebarNav from '@coreui/vue/src/components/sidebar/CSidebarNav'
```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------------------- | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string \| Component | - | 'ul' |
diff --git a/packages/docs/api/spinner/CSpinner.api.md b/packages/docs/api/spinner/CSpinner.api.md
index df9d77ed..2ff979b7 100644
--- a/packages/docs/api/spinner/CSpinner.api.md
+++ b/packages/docs/api/spinner/CSpinner.api.md
@@ -10,8 +10,8 @@ import CSpinner from '@coreui/vue/src/components/spinner/CSpinner'
| Prop name | Description | Type | Values | Default |
| ------------------------- | --------------------------------------------------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------- | ------------ |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
| **color** | Sets the color context of the component to one of CoreUI’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'` | - |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' |
| **size** | Size the component small. | string | `'sm'` | - |
| **variant** | Set the button variant to an outlined button or a ghost button. | string | `'border'`, `'grow'` | 'border' |
| **visually-hidden-label** | Set visually hidden label for accessibility purposes. | string | - | 'Loading...' |
diff --git a/packages/docs/api/stepper/CStepper.api.md b/packages/docs/api/stepper/CStepper.api.md
new file mode 100644
index 00000000..e13e9c9a
--- /dev/null
+++ b/packages/docs/api/stepper/CStepper.api.md
@@ -0,0 +1,22 @@
+### CStepper
+
+```jsx
+import { CStepper } from '@coreui/vue'
+// or
+import CStepper from '@coreui/vue/src/components/stepper/CStepper'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| --------- | ----------- | ---- | ------ | ------- |
+
+#### Events
+
+| Event name | Description | Properties |
+| ---------------------------- | ----------- | ---------- |
+| **update:modelValue** | |
+| **finish** | |
+| **reset** | |
+| **step-change** | |
+| **step-validation-complete** | |
diff --git a/packages/docs/api/tabs/CTab.api.md b/packages/docs/api/tabs/CTab.api.md
new file mode 100644
index 00000000..7cdff394
--- /dev/null
+++ b/packages/docs/api/tabs/CTab.api.md
@@ -0,0 +1,14 @@
+### CTab
+
+```jsx
+import { CTab } from '@coreui/vue'
+// or
+import CTab from '@coreui/vue/src/components/tabs/CTab'
+```
+
+#### Props
+
+| Prop name | Description | Type | Values | Default |
+| ----------------------------------------------------------- | -------------------------------------------- | -------------- | ------ | ------- |
+| **disabled** 5.4.0+
| Toggle the disabled state for the component. | boolean | - | - |
+| **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..c12138af
--- /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 | `'enclosed'`, `'enclosed-pills'`, `'pills'`, `'tabs'`, `'underline'`, `'underline-border'` | - |
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
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/api/toast/CToastClose.api.md b/packages/docs/api/toast/CToastClose.api.md
index beab2765..c1b0f388 100644
--- a/packages/docs/api/toast/CToastClose.api.md
+++ b/packages/docs/api/toast/CToastClose.api.md
@@ -8,9 +8,9 @@ import CToastClose from '@coreui/vue/src/components/toast/CToastClose'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
-| **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | - |
+| Prop name | Description | Type | Values | Default |
+| --------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- |
+| **as** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | - |
#### Events
diff --git a/packages/docs/api/toast/CToastHeader.api.md b/packages/docs/api/toast/CToastHeader.api.md
index fdd97dc8..a8ff8638 100644
--- a/packages/docs/api/toast/CToastHeader.api.md
+++ b/packages/docs/api/toast/CToastHeader.api.md
@@ -11,9 +11,3 @@ import CToastHeader from '@coreui/vue/src/components/toast/CToastHeader'
| Prop name | Description | Type | Values | Default |
| ---------------- | ----------------------------------------------- | ------- | ------ | ------- |
| **close-button** | Automatically add a close button to the header. | boolean | - | - |
-
-#### Events
-
-| Event name | Description | Properties |
-| ---------- | --------------------------------------------- | ---------- |
-| **close** | Event called after clicking the close button. |
diff --git a/packages/docs/api/tooltip/CTooltip.api.md b/packages/docs/api/tooltip/CTooltip.api.md
index 66bf91ce..3b0cac97 100644
--- a/packages/docs/api/tooltip/CTooltip.api.md
+++ b/packages/docs/api/tooltip/CTooltip.api.md
@@ -8,13 +8,17 @@ import CTooltip from '@coreui/vue/src/components/tooltip/CTooltip'
#### Props
-| Prop name | Description | Type | Values | Default |
-| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ------------------------------- | ------- |
-| **content** | Content for your component. If you want to pass non-string value please use dedicated slot `... ` | string | - | - |
-| **offset** | Offset of the tooltip relative to its target. | array | - | [0, 0] |
-| **placement** | Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property. | Placement | - | 'top' |
-| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. | string \| string[] | `'click'`, `'focus'`, `'hover'` | 'hover' |
-| **visible** | Toggle the visibility of tooltip component. | boolean | - | - |
+| Prop name | Description | Type | Values | Default |
+| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ------------------------------- | ---------------------------------------- |
+| **animation** 4.9.0+
| Apply a CSS fade transition to the tooltip. | boolean | - | true |
+| **container** 5.0.0+
| Appends the vue tooltip to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`. | HTMLElement \| (() => HTMLElement) \| string | - | 'body' |
+| **content** | Content for your component. If you want to pass non-string value please use dedicated slot `... ` | string | - | - |
+| **delay** 4.9.0+
| The delay for displaying and hiding the popover (in milliseconds). When a numerical value is provided, the delay applies to both the hide and show actions. The object structure for specifying the delay is as follows: delay: `{ 'show': 500, 'hide': 100 }`. | number \| { show: number; hide: number } | - | 0 |
+| **fallback-placements** 4.9.0+
| Specify the desired order of fallback placements by providing a list of placements as an array. The placements should be prioritized based on preference. | Placements \| Placements[] | - | () => ['top', 'right', 'bottom', 'left'] |
+| **offset** | Offset of the tooltip relative to its target. | array | - | [0, 6] |
+| **placement** | Describes the placement of your component after Popper.js has applied all the modifiers that may have flipped or altered the originally provided placement property. | Placement | - | 'top' |
+| **trigger** | Sets which event handlers you’d like provided to your toggle prop. You can specify one trigger or an array of them. | Triggers \| Triggers[] | `'click'`, `'focus'`, `'hover'` | () => ['hover', 'focus'] |
+| **visible** | Toggle the visibility of tooltip component. | boolean | - | - |
#### Events
diff --git a/packages/docs/build/.eslintrc.json b/packages/docs/build/.eslintrc.json
deleted file mode 100644
index b890edff..00000000
--- a/packages/docs/build/.eslintrc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "env": {
- "browser": false,
- "node": true
- },
- "parserOptions": {
- "sourceType": "script"
- },
- "extends": "../../../.eslintrc.js",
- "rules": {
- "no-console": "off",
- "strict": "error"
- }
-}
\ No newline at end of file
diff --git a/packages/docs/build/buildVscodeHints.js b/packages/docs/build/buildVscodeHints.js
deleted file mode 100644
index 38c627c6..00000000
--- a/packages/docs/build/buildVscodeHints.js
+++ /dev/null
@@ -1,119 +0,0 @@
-// TODO: refactor this component
-// const fs = require('fs-extra')
-// const types = fs.readFileSync('src/components/index.d.ts', 'utf-8')
-// const classes = getTypesClasses(types)
-
-// function getTypesClasses (types) {
-// let classes = {}
-// const rawClasses = types.replace(/(\n|\r)/ig, '')
-// .split('declare')
-// .filter(rawClass => rawClass.includes('class'))
-
-// rawClasses.forEach(rawClass => {
-// const name = rawClass.match(/(?<=class\s+).*?(?=\s+)/gs)[0]
-
-// const propsRaw = rawClass
-// .substring(rawClass.indexOf('{') + 1, rawClass.lastIndexOf('}'))
-// .replace(/{(()([^}]))+}/ig, 'custom')
-
-
-// let props = propsRaw.match(/([a-zA-Z?]+:).*?(?=[a-zA-Z?]+:|$)/g)
-
-// if (props) {
-// props = props.map(prop => prop.trim().replace('?', ''))
-// }
-
-// classes[name] = {
-// isExported: rawClass.includes('export'),
-// extend: rawClass.match(/(?<=extends\s+).*?(?=\s+{)/gs)[0],
-// props,
-// }
-// })
-// Object.entries(classes).forEach(([key, value]) => {
-// if (value.extend !== 'Vue') {
-// const props = classes[key].props || []
-// const extend = classes[value.extend].props || []
-// classes[key].props = [...props, ...extend]
-// }
-// })
-// return classes
-// }
-
-// const components = {}
-// Object.entries(classes).forEach(([key,value]) => {
-// if (value.isExported) {
-// components[key] = value
-// }
-// })
-
-// generateVeturFiles(components)
-
-// function generateVeturFiles (content) {
-// const dir = 'dist/vetur'
-// if (!fs.existsSync(dir)) {
-// fs.mkdirSync(dir)
-// }
-
-// const attributes = generateAttributes(content)
-// fs.writeFile(
-// `dist/vetur/coreui-attributes.json`,
-// attributes,
-// () => ''
-// )
-
-// const tags = generateTags(content)
-// fs.writeFile(
-// `dist/vetur/coreui-tags.json`,
-// tags,
-// () => ''
-// )
-// }
-
-// function generateTags (content) {
-// let tags = {}
-// Object.entries(content).forEach(([name, component]) => {
-// let attributes = []
-// if (component.props) {
-// attributes = component.props.map(prop => toKebabCase(prop.split(':')[0]))
-// }
-// tags[name] = {
-// attributes,
-// description: ''
-// }
-// tags[toKebabCase(name)] = {
-// attributes,
-// description: ''
-// }
-// })
-// return JSON.stringify(tags, null, 2)
-// }
-
-// function generateAttributes (content) {
-// let attributes = {}
-// Object.entries(content).forEach(([name, component]) => {
-// if (component.props) {
-// component.props.forEach(prop => {
-// const propName = toKebabCase(prop.split(':')[0])
-// const key = name + '/' + propName
-// const kebabKey = toKebabCase(name) + '/' + propName
-// const type = prop.split(':')[1].trim()
-// const description = 'For API documentation please visit https://coreui.io/vue/docs'
-
-// attributes[kebabKey] = {
-// description,
-// type,
-// }
-// attributes[key] = {
-// description,
-// type,
-// }
-// })
-// }
-// })
-// return JSON.stringify(attributes, null, 2)
-// }
-
-// function toKebabCase (str) {
-// const camelCase = str.charAt(0).toLowerCase() + str.slice(1)
-// return camelCase.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()
-// }
\ No newline at end of file
diff --git a/packages/docs/build/changelog-template.hbs b/packages/docs/build/changelog-template.hbs
deleted file mode 100644
index 1f66e38c..00000000
--- a/packages/docs/build/changelog-template.hbs
+++ /dev/null
@@ -1,34 +0,0 @@
-# Changelog
-
-{{#each releases}}
-{{#if href}}
-## {{#unless major}}{{/unless}}[{{title}}]({{href}})
-{{else}}
-## {{title}}
-{{/if}}
-
-{{#if tag}}
-> {{niceDate}}
-{{/if}}
-{{#if summary}}
-
-{{summary}}
-{{/if}}
-{{#if commits}}
-
-### Changed
-
-{{#each commits}}
-- {{#if breaking}}**Breaking change:** {{/if}}{{subject}}{{#if href}} [`{{shorthash}}`]({{href}}){{/if}}
-{{/each}}
-
-{{/if}}
-{{#if fixes}}
-
-### Fixed
-
-{{#each fixes}}
-- {{commit.subject}}{{#each fixes}}{{#if href}} [`#{{id}}`]({{href}}){{/if}}{{/each}}
-{{/each}}
-{{/if}}
-{{/each}}
\ No newline at end of file
diff --git a/packages/docs/build/docgen.config.js b/packages/docs/build/docgen.config.js
index 67b35dee..7d654712 100644
--- a/packages/docs/build/docgen.config.js
+++ b/packages/docs/build/docgen.config.js
@@ -2,14 +2,14 @@
'use strict'
const path = require('path')
-// const pkg = require('./../package.json')
module.exports = {
componentsRoot: './../../packages', // the folder where CLI will start searching for components.
components: [
'**/[A-Z]*.ts',
'!**/[A-Z]*.d.ts',
- '!**/[A-Z]*.spec.ts'
+ '!**/[A-Z]*.spec.ts',
+ '!**/ComponentProps.ts',
],
outDir: 'api', // folder to save components docs in (relative to the current working directry)
getDocFileName: (componentPath) =>
diff --git a/packages/docs/build/webpack.config.js b/packages/docs/build/webpack.config.js
deleted file mode 100644
index 0ddbf9f5..00000000
--- a/packages/docs/build/webpack.config.js
+++ /dev/null
@@ -1,11 +0,0 @@
-module.exports = {
- rules: {
- test: /\.(js|vue)$/,
- loader: 'eslint-loader',
- enforce: "pre",
- include: [resolve('src'), resolve('test')],
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- }
-}
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapBasicExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapBasicExample.vue
new file mode 100644
index 00000000..807df9b0
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapBasicExample.vue
@@ -0,0 +1,38 @@
+
+
+
+ {{ trapActive ? 'Deactivate' : 'Activate' }} Focus Trap
+
+
+
+
+
+
Focus Trapped Area
+
Tab and Shift+Tab will cycle within this area when active.
+
+
+
+ Button
+
+
+
+
+
+
+
Outside Trapped Area
+
These elements are not accessible via Tab when focus trap is active.
+
+
Outside Button
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapConditionalExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapConditionalExample.vue
new file mode 100644
index 00000000..2beb241c
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapConditionalExample.vue
@@ -0,0 +1,229 @@
+
+
+
+
Conditional Focus Trap Demo
+
+ This example shows how focus traps can be conditionally activated based on application
+ state.
+
+
+
+
+
+
+
+
+
+ User Role
+
+ Guest
+ Authenticated User
+ Administrator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Main Panel: {{ mainPanelTrapActive ? 'Active' : 'Inactive' }}
+
+
+
+
+ Sidebar: {{ sidebarTrapActive ? 'Active' : 'Inactive' }}
+
+
+
+
+ Toolbar: {{ toolbarTrapActive ? 'Active' : 'Inactive' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Content Editor
+
+
+
+
+
+
+
+ Save
+
+ Preview
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dashboard
+
+
+ My Documents
+
+
+ Admin Panel
+
+
+ Settings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ New Document
+
+ Help
+
+ Keyboard Shortcuts
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapDropdownExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapDropdownExample.vue
new file mode 100644
index 00000000..2f0ada5d
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapDropdownExample.vue
@@ -0,0 +1,51 @@
+
+
+
+
+ Enhanced Dropdown with Focus Trap
+
+
+
+
+
Search Options
+
+
+
+
+
Action 1
+
Action 2
+
Action 3
+
+
+ Apply
+ Cancel
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapEventsExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapEventsExample.vue
new file mode 100644
index 00000000..870bab12
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapEventsExample.vue
@@ -0,0 +1,180 @@
+
+
+
+
+ {{ trapActive ? 'Deactivate' : 'Activate' }} Focus Trap
+
+
+ Clear Log
+
+
+
+
+
+
+
+
+
+
+
Interactive Content
+
This area demonstrates focus trap event handling.
+
+
+ Username
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No events logged yet.
+
+
+ {{ event.timestamp }}: {{ event.message }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapFocusControlExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapFocusControlExample.vue
new file mode 100644
index 00000000..f8864f6f
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapFocusControlExample.vue
@@ -0,0 +1,104 @@
+
+
+
+
+ Focus First Element
+
+
+ Focus Container
+
+
+ Deactivate
+
+
+
+
+ Instructions: Click one of the activation buttons above, then use Tab to see the difference in initial focus behavior.
+
+
+
+
+
+
+
+
+
+
Container with tabindex="-1"
+
+
+
+
+
+
+
Submit
+
+
+
+
+
+
+
+
+
+
+
+
+
Container receives focus first
+
+
+
+
+
+
+
Submit
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapModalExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapModalExample.vue
new file mode 100644
index 00000000..e8699883
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapModalExample.vue
@@ -0,0 +1,56 @@
+
+
+
+ Open Modal with Focus Trap
+
+
+
+
+ Modal with Built-in Focus Trap
+
+
+
+ This modal includes built-in focus trapping. Try using Tab to navigate -
+ focus will stay within this modal dialog.
+
+
+ First Field
+
+
+
+ Second Field
+
+
+
+
+
+ Close
+
+
+ Save Changes
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapRestoreFocusExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapRestoreFocusExample.vue
new file mode 100644
index 00000000..bc7c238f
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapRestoreFocusExample.vue
@@ -0,0 +1,119 @@
+
+
+
+
Instructions: Focus on one of the buttons below, then activate a focus trap. When you deactivate the trap, notice where focus returns based on the restore-focus setting.
+
+
+
+
+
+ Activate with Restore Focus
+
+
+ Activate without Restore Focus
+
+
+ Another Focusable Button
+
+
+
+
+
+
+
+
+
+
+
+
Focus will return to the triggering button when deactivated.
+
+
+
+
+ Save
+ Close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Focus will not automatically return when deactivated.
+
+
+
+
+ Save
+ Close
+
+
+
+
+
+
+
+
+
+ Last Event: {{ lastEvent }}
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/code-examples/focus-trap/FocusTrapSidebarExample.vue b/packages/docs/code-examples/focus-trap/FocusTrapSidebarExample.vue
new file mode 100644
index 00000000..00d212c3
--- /dev/null
+++ b/packages/docs/code-examples/focus-trap/FocusTrapSidebarExample.vue
@@ -0,0 +1,62 @@
+
+
+
+ Open Sidebar with Focus Trap
+
+
+
+
+ Navigation Sidebar
+
+
+
+
+ This sidebar includes built-in focus trapping. Tab navigation will stay within this panel
+ while it's open.
+
+
+
+
+
+
+
+
+ Dashboard
+
+
+ Users
+
+
+ Products
+
+
+ Settings
+
+
+
+
+ Quick Action
+ Help
+
+
+
+
+
+
+
diff --git a/packages/docs/components/accordion.md b/packages/docs/components/accordion.md
index ac4ddb49..def460c1 100644
--- a/packages/docs/components/accordion.md
+++ b/packages/docs/components/accordion.md
@@ -52,7 +52,7 @@ Click the accordions below to expand/collapse the accordion content.
:::
-```vue
+```markup
@@ -143,7 +143,7 @@ Add `flush` to remove the default `background-color`, some borders, and some rou
:::
-```vue
+```markup
@@ -234,7 +234,7 @@ Add `always-open` property to make accordion items stay open when another item i
:::
-```vue
+```markup
@@ -284,30 +284,7 @@ Add `always-open` property to make accordion items stay open when another item i
Vue accordions use local CSS variables on `.accordion` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-accordion-color: #{color-contrast($accordion-bg)};
---cui-accordion-bg: #{$accordion-bg};
---cui-accordion-transition: #{$accordion-transition};
---cui-accordion-border-color: #{$accordion-border-color};
---cui-accordion-border-width: #{$accordion-border-width};
---cui-accordion-border-radius: #{$accordion-border-radius};
---cui-accordion-inner-border-radius: #{$accordion-inner-border-radius};
---cui-accordion-btn-padding-x: #{$accordion-button-padding-x};
---cui-accordion-btn-padding-y: #{$accordion-button-padding-y};
---cui-accordion-btn-color: #{$accordion-color};
---cui-accordion-btn-bg: #{$accordion-button-bg};
---cui-accordion-btn-icon: #{escape-svg($accordion-button-icon)};
---cui-accordion-btn-icon-width: #{$accordion-icon-width};
---cui-accordion-btn-icon-transform: #{$accordion-icon-transform};
---cui-accordion-btn-icon-transition: #{$accordion-icon-transition};
---cui-accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)};
---cui-accordion-btn-focus-border-color: #{$accordion-button-focus-border-color};
---cui-accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow};
---cui-accordion-body-padding-x: #{$accordion-body-padding-x};
---cui-accordion-body-padding-y: #{$accordion-body-padding-y};
---cui-accordion-active-color: #{$accordion-button-active-color};
---cui-accordion-active-bg: #{$accordion-button-active-bg};
-```
+
#### How to use CSS variables
@@ -321,39 +298,7 @@ return ...
### SASS variables
-```sass
-$accordion-padding-y: 1rem;
-$accordion-padding-x: 1.25rem;
-$accordion-color: var(--cui-body-color);
-$accordion-bg: $body-bg;
-$accordion-border-width: $border-width;
-$accordion-border-color: var(--cui-border-color);
-$accordion-border-radius: $border-radius;
-$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width);
-
-$accordion-body-padding-y: $accordion-padding-y;
-$accordion-body-padding-x: $accordion-padding-x;
-
-$accordion-button-padding-y: $accordion-padding-y;
-$accordion-button-padding-x: $accordion-padding-x;
-$accordion-button-color: $accordion-color;
-$accordion-button-bg: var(--cui-accordion-bg);
-$accordion-transition: $btn-transition, border-radius .15s ease;
-$accordion-button-active-bg: tint-color($component-active-bg, 90%);
-$accordion-button-active-color: shade-color($primary, 10%);
-
-$accordion-button-focus-border-color: $input-focus-border-color;
-$accordion-button-focus-box-shadow: $btn-focus-box-shadow;
-
-$accordion-icon-width: 1.25rem;
-$accordion-icon-color: $accordion-button-color;
-$accordion-icon-active-color: $accordion-button-active-color;
-$accordion-icon-transition: transform .2s ease-in-out;
-$accordion-icon-transform: rotate(-180deg);
-
-$accordion-button-icon: url("data:image/svg+xml, ");
-$accordion-button-active-icon: url("data:image/svg+xml, ");
-```
+
## API
diff --git a/packages/docs/components/alert.md b/packages/docs/components/alert.md
index bdb25ea0..96091ca9 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
---
@@ -38,9 +39,16 @@ Click the button below to show an alert (hidden with inline styles to start), th
{ liveExampleVisible = false }">A simple primary alert—check it out!
{ liveExampleVisible = true }">Show live alert
:::
+
```vue
- { liveExampleVisible = false }">A simple primary alert—check it out!
- { liveExampleVisible = true }">Show live alert
+
+
+ { liveExampleVisible = false }">A simple primary alert—check it out!
+ { liveExampleVisible = true }">Show live alert
+
```
### Link color
@@ -48,28 +56,28 @@ Click the button below to show an alert (hidden with inline styles to start), th
Use the `` component to immediately give matching colored links inside any alert.
::: demo
- A simple primary alert with an example link . Give it a click if you like.
+A simple primary alert with an example link . Give it a click if you like.
- A simple secondary alert with an example link . Give it a click if you like.
+A simple secondary alert with an example link . Give it a click if you like.
- A simple success alert with an example link . Give it a click if you like.
+A simple success alert with an example link . Give it a click if you like.
- A simple danger alert with an example link . Give it a click if you like.
+A simple danger alert with an example link . Give it a click if you like.
- A simple warning alert with an example link . Give it a click if you like.
+A simple warning alert with an example link . Give it a click if you like.
- A simple info alert with an example link . Give it a click if you like.
+A simple info alert with an example link . Give it a click if you like.
- A simple light alert with an example link . Give it a click if you like.
+A simple light alert with an example link . Give it a click if you like.
- A simple dark alert with an example link . Give it a click if you like.
+A simple dark alert with an example link . Give it a click if you like.
:::
@@ -106,7 +114,8 @@ Alert can also incorporate supplementary HTML elements like heading, paragraph,
::: demo
- Well done!
+Well done!
+
Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.
Whenever you need to, be sure to use margin utilities to keep things nice and tidy.
@@ -121,15 +130,17 @@ Alert can also incorporate supplementary HTML elements like heading, paragraph,
Whenever you need to, be sure to use margin utilities to keep things nice and tidy.
```
+
### Icons
Similarly, you can use [flexbox utilities](https//coreui.io/docs/4.0/utilities/flex") and [CoreUI Icons](https://icons.coreui.io) to create alerts with icons. Depending on your icons and content, you may want to add more utilities or custom styles.
::: demo
-
-
-
+
+
+
+
An example alert with an icon
@@ -150,7 +161,8 @@ Need more than one icon for your alerts? Consider using [CoreUI Icons](https://i
::: demo
-
+
+
An example alert with an icon
@@ -232,85 +244,56 @@ Use `variant="solid"` to change contextual colors to solid.
Alerts can also be easily dismissed. Just add the `dismissible` prop.
::: demo
-
+
Go right ahead and click that dimiss over there on the right.
:::
```vue
-
- Go right ahead and click that dimiss over there on the right.
-
-
-
+
+
+ Go right ahead and click that dimiss over there on the right.
+
+
```
-
-
## Customizing
### CSS variables
Vue alerts use local CSS variables on `.alert` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-alert-bg: transparent;
---cui-alert-padding-x: #{$alert-padding-x};
---cui-alert-padding-y: #{$alert-padding-y};
---cui-alert-margin-bottom: #{$alert-margin-bottom};
---cui-alert-color: inherit;
---cui-alert-border-color: transparent;
---cui-alert-border: #{$alert-border-width} solid var(--cui-alert-border-color);
---cui-alert-border-radius: #{$alert-border-radius};
-```
+
#### How to use CSS variables
```js
-const vars = {
+const vars = {
'--my-css-var': 10,
- '--my-another-css-var': "red"
+ '--my-another-css-var': "red"
}
return ...
```
### SASS variables
-```sass
-$alert-padding-y: $spacer;
-$alert-padding-x: $spacer;
-$alert-margin-bottom: 1rem;
-$alert-border-radius: $border-radius;
-$alert-link-font-weight: $font-weight-bold;
-$alert-border-width: $border-width;
-$alert-bg-scale: -80%;
-$alert-border-scale: -70%;
-$alert-color-scale: 40%;
-$alert-dismissible-padding-r: $alert-padding-x * 3; // 3x covers width of x plus default padding on either side
-```
+
+
## API
!!!include(./api/alert/CAlert.api.md)!!!
-!!!include(./api/alert/CAlertHeading.api.md)!!!
\ No newline at end of file
+!!!include(./api/alert/CAlertHeading.api.md)!!!
+
+
diff --git a/packages/docs/components/avatar.md b/packages/docs/components/avatar.md
index e94d7e27..02fb3b37 100644
--- a/packages/docs/components/avatar.md
+++ b/packages/docs/components/avatar.md
@@ -1,12 +1,14 @@
---
title: Vue Avatar Component
name: Avatar
-description: Vue avatar component can be used to display circular user profile pictures. Avatar can be used to portray people or objects. It supports images, icons, or letters.
+description: The Vue Avatar component is used to display circular user profile pictures. Vue avatars can portray people or objects and support images, icons, or letters.
other_frameworks: avatar
---
## Image avatars
+Showcase Vue avatars using images. These avatars are typically circular and can display user profile pictures.
+
::: demo
@@ -17,8 +19,11 @@ other_frameworks: avatar
```
+
## Letter avatars
+Use letters inside avatars to represent users or objects when images are not available. This can be useful for displaying initials.
+
::: demo
CUI
CUI
@@ -30,6 +35,45 @@ other_frameworks: avatar
CUI
```
+## Icons avatars
+
+Incorporate icons within Vue avatars, allowing for a visual representation using scalable vector graphics (SVG).
+
+::: demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:::
+```vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
## Rounded avatars
Use the `shape="rounded"` prop to make avatars squared with rounded corners.
@@ -66,20 +110,23 @@ Fancy larger or smaller avatar? Add `size="xl"`, `size="lg"` or `size="sm"` for
::: demo
CUI
CUI
+CUI
CUI
CUI
:::
```vue
CUI
CUI
+CUI
CUI
CUI
```
## Avatars with status
-::: demo
+Add a status indicator to avatars using the `status` property to show online or offline status.
+::: demo
CUI
:::
@@ -88,6 +135,28 @@ Fancy larger or smaller avatar? Add `size="xl"`, `size="lg"` or `size="sm"` for
CUI
```
+## Customizing
+
+### CSS variables
+
+Vue avatars use local CSS variables on `.avatar` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
+
+
+
+#### How to use CSS variables
+
+```jsx
+const vars = {
+ '--my-css-var': 10,
+ '--my-another-css-var': 'red',
+}
+return ...
+```
+
+### SASS variables
+
+
+
## API
!!!include(./api/avatar/CAvatar.api.md)!!!
\ No newline at end of file
diff --git a/packages/docs/components/badge.md b/packages/docs/components/badge.md
index 3b72ad5d..6d46e501 100644
--- a/packages/docs/components/badge.md
+++ b/packages/docs/components/badge.md
@@ -145,7 +145,7 @@ Add any of the below-mentioned `color` props to modify the presentation of a bad
danger
warning
info
-light
+light
dark
:::
```vue
@@ -154,10 +154,32 @@ Add any of the below-mentioned `color` props to modify the presentation of a bad
danger
warning
info
-light
+light
dark
```
+You can also apply contextual variations with the `textBgColor` property, which automatically sets the text color to ensure compliance with the WCAG 4.5:1 contrast ratio standard for enhanced accessibility.
+
+::: demo
+primary
+success
+danger
+warning
+info
+light
+dark
+:::
+```vue
+primary
+success
+danger
+warning
+info
+light
+dark
+```
+
+
## Pill badges
Apply the `shape="rounded-pill"` prop to make badges rounded.
@@ -168,7 +190,7 @@ Apply the `shape="rounded-pill"` prop to make badges rounded.
danger
warning
info
-light
+light
dark
:::
```vue
@@ -177,7 +199,7 @@ Apply the `shape="rounded-pill"` prop to make badges rounded.
danger
warning
info
-light
+light
dark
```
@@ -187,14 +209,7 @@ Apply the `shape="rounded-pill"` prop to make badges rounded.
Vue badges use local CSS variables on `.badges` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-badge-padding-x: #{$badge-padding-x};
---cui-badge-padding-y: #{$badge-padding-y};
---cui-badge-font-size: #{$badge-font-size};
---cui-badge-font-weight: #{$badge-font-weight};
---cui-badge-color: #{$badge-color};
---cui-badge-border-radius: #{$badge-border-radius};
-```
+
#### How to use CSS variables
@@ -208,18 +223,7 @@ return ...
### SASS variables
-```sass
-$badge-font-size: .75em;
-$badge-font-weight: $font-weight-bold;
-$badge-color: $high-emphasis-inverse;
-$badge-padding-y: .35em;
-$badge-padding-x: .65em;
-$badge-border-radius: $border-radius;
-
-$badge-font-size-sm: .65em;
-$badge-padding-y-sm: .3em;
-$badge-padding-x-sm: .5em;
-```
+
## API
diff --git a/packages/docs/components/breadcrumb.md b/packages/docs/components/breadcrumb.md
index 597e4170..02f50c53 100644
--- a/packages/docs/components/breadcrumb.md
+++ b/packages/docs/components/breadcrumb.md
@@ -113,17 +113,7 @@ For more information, see the [WAI-ARIA Authoring Practices for the breadcrumb p
Vue breadcrumbs use local CSS variables on `.breadcrumb` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-breadcrumb-padding-x: #{$breadcrumb-padding-x};
---cui-breadcrumb-padding-y: #{$breadcrumb-padding-y};
---cui-breadcrumb-margin-bottom: #{$breadcrumb-margin-bottom};
---cui-breadcrumb-font-size: #{$breadcrumb-font-size};
---cui-breadcrumb-bg: #{$breadcrumb-bg};
---cui-breadcrumb-border-radius: #{$breadcrumb-border-radius};
---cui-breadcrumb-divider-color: #{$breadcrumb-divider-color};
---cui-breadcrumb-item-padding-x: #{$breadcrumb-item-padding-x};
---cui-breadcrumb-item-active-color: #{$breadcrumb-active-color};
-```
+
#### How to use CSS variables
@@ -137,19 +127,7 @@ return ...
### SASS variables
-```sass
-$breadcrumb-font-size: null;
-$breadcrumb-padding-y: 0;
-$breadcrumb-padding-x: 0;
-$breadcrumb-item-padding-x: .5rem;
-$breadcrumb-margin-bottom: 1rem;
-$breadcrumb-bg: unset;
-$breadcrumb-divider-color: $gray-600;
-$breadcrumb-active-color: $gray-600;
-$breadcrumb-divider: quote("/");
-$breadcrumb-divider-flipped: $breadcrumb-divider;
-$breadcrumb-border-radius: null;
-```
+
## API
diff --git a/packages/docs/components/button-group.md b/packages/docs/components/button-group.md
index 1a601e67..64d66009 100644
--- a/packages/docs/components/button-group.md
+++ b/packages/docs/components/button-group.md
@@ -217,40 +217,40 @@ Alternatively, of implementing button sizing classes to each button in a group,
::: demo
- Left
- Middle
- Right
+ Left
+ Middle
+ Right
- Left
- Middle
- Right
+ Left
+ Middle
+ Right
- Left
- Middle
- Right
+ Left
+ Middle
+ Right
:::
```vue
- Left
- Middle
- Right
+ Left
+ Middle
+ Right
- Left
- Middle
- Right
+ Left
+ Middle
+ Right
- Left
- Middle
- Right
+ Left
+ Middle
+ Right
```
diff --git a/packages/docs/components/button.md b/packages/docs/components/button.md
index 5fb92d48..fe592e77 100644
--- a/packages/docs/components/button.md
+++ b/packages/docs/components/button.md
@@ -32,12 +32,9 @@ CoreUI includes a bunch of predefined buttons components, each serving its own s
Link
```
-
-
Conveying meaning to assistive technologies
-
- Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the `.visually-hidden` class.
-
-
+
+ Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the .visually-hidden class.
+
## Disable text wrapping
@@ -50,23 +47,43 @@ The `` component are designed for `` , `` or ` ` el
If you're using `` component as `` elements that are used to trigger functionality ex. collapsing content, these links should be given a `role="button"` to adequately communicate their meaning to assistive technologies such as screen readers.
::: demo
-Link
+Link
Button
-
-
-
+
+
+
:::
```vue
-Link
+Link
Button
-
-
-
+
+
+
```
## Outline buttons
-If you need a button, but without the strong background colors. Set `variant="outline"` prop to remove all background colors.
+### Base outline style
+
+The `variant="outline` property provides a neutral outline button style without any color modifiers. It’s useful as a foundation for minimal buttons without background color or strong visual emphasis.
+
+::: demo
+Base outline button
+Active state
+Disabled state
+:::
+```vue
+Base outline button
+Active state
+Disabled state
+```
+
+These Vue buttons use a transparent background, subtle border, and inherit text color from the parent context. They’re best suited for minimalist UI elements like modals, toolbars, or secondary actions.
+
+
+### Themed outline variants
+
+If you need a button, but without the strong background colors, set `color` and `variant=" outline"` props to remove all background colors.
::: demo
Primary
@@ -89,10 +106,31 @@ If you need a button, but without the strong background colors. Set `variant="ou
Dark
```
+These outline variants of our Vue.js buttons retain transparent backgrounds by default, but display a background tint on hover or focus to indicate interactivity. They’re ideal for secondary actions when you want to differentiate from the standard buttons visually.
+
## Ghost buttons
+### Base ghost style
+
+Use the `variant="ghost"` property to create ultra-minimalist buttons with no borders and a fully transparent background. These Vue buttons rely solely on text color for visibility and apply a background highlight when hovered over or in an active state.
+
+They’re perfect for interfaces where you want buttons to be present but visually unobtrusive—such as action buttons in modals, cards, or toolbars.
+
If you need a ghost variant of button, set `variant="ghost"` prop to remove all background colors.
+::: demo
+Base ghost button
+Active state
+Disabled state
+:::
+```vue
+Base ghost button
+Active state
+Disabled state
+```
+
+To apply theme colors to Vue ghost buttons, use the `color` and `variant="ghost"` properties. By default, these variants color only the text. On hover or focus, they add a background that corresponds to the theme color.
+
::: demo
Primary
Secondary
@@ -115,7 +153,7 @@ If you need a ghost variant of button, set `variant="ghost"` prop to remove all
```
-Some of the button styles use a relatively light foreground color, and should only be used on a dark background in order to have sufficient contrast.
+Some of the button styles use a relatively light foreground color, and should only be used on a dark background in order to have sufficient contrast.
## Sizes
@@ -200,12 +238,12 @@ Disabled buttons using the ` ` component act a little different:
` `s don't support the `disabled` attribute, so CoreUI has to add `.disabled` class to make buttons look inactive. CoreUI also has to add to the disabled button component `aria-disabled="true"` attribute to show the state of the component to assistive technologies.
::: demo
-Primary link
-Link
+Primary link
+Link
:::
```vue
-Primary link
-Link
+Primary link
+Link
```
The `.disabled` class uses `pointer-events: none` to try to disable the link functionality of ` `s, but that CSS property is not yet standardized. Besides, even in browsers that do support `pointer-events: none`, keyboard navigation remains unaffected, meaning that sighted keyboard users and users of assistive technologies will still be able to activate these links. So to be safe, we automatically add a `tabindex="-1"` attribute on disabled links (to prevent them from receiving keyboard focus) and use custom JavaScript to disable their functionality.
@@ -278,22 +316,8 @@ Additional utilities can be used to adjust the alignment of buttons when horizon
Vue buttons use local CSS variables on `.btn` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-btn-padding-x: #{$btn-padding-x};
---cui-btn-padding-y: #{$btn-padding-y};
---cui-btn-font-family: #{$btn-font-family};
---cui-btn-font-size: #{$btn-font-size};
---cui-btn-font-weight: #{$btn-font-weight};
---cui-btn-line-height: #{$btn-line-height};
---cui-btn-color: #{$body-color};
---cui-btn-bg: transparent;
---cui-btn-border-width: #{$btn-border-width};
---cui-btn-border-color: transparent;
---cui-btn-border-radius: #{$btn-border-radius};
---cui-btn-box-shadow: #{$btn-box-shadow};
---cui-btn-disabled-opacity: #{$btn-disabled-opacity};
---cui-btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--cui-btn-focus-shadow-rgb), .5);
-```
+
+
#### How to use CSS variables
@@ -307,75 +331,7 @@ return ...
### SASS variables
-```sass
-$btn-padding-y: $input-btn-padding-y;
-$btn-padding-x: $input-btn-padding-x;
-$btn-font-family: $input-btn-font-family;
-$btn-font-size: $input-btn-font-size;
-$btn-line-height: $input-btn-line-height;
-$btn-white-space: null; // Set to `nowrap` to prevent text wrapping
-
-$btn-padding-y-sm: $input-btn-padding-y-sm;
-$btn-padding-x-sm: $input-btn-padding-x-sm;
-$btn-font-size-sm: $input-btn-font-size-sm;
-
-$btn-padding-y-lg: $input-btn-padding-y-lg;
-$btn-padding-x-lg: $input-btn-padding-x-lg;
-$btn-font-size-lg: $input-btn-font-size-lg;
-
-$btn-border-width: $input-btn-border-width;
-
-$btn-font-weight: $font-weight-normal;
-$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075);
-$btn-focus-width: $input-btn-focus-width;
-$btn-focus-box-shadow: $input-btn-focus-box-shadow;
-$btn-disabled-opacity: .65;
-$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125);
-
-$btn-link-color: var(--cui-link-color);
-$btn-link-hover-color: var(--cui-link-hover-color);
-$btn-link-disabled-color: $gray-600;
-
-// Allows for customizing button radius independently from global border radius
-$btn-border-radius: $border-radius;
-$btn-border-radius-sm: $border-radius-sm;
-$btn-border-radius-lg: $border-radius-lg;
-
-$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
-
-$btn-hover-bg-shade-amount: 15%;
-$btn-hover-bg-tint-amount: 15%;
-$btn-hover-border-shade-amount: 20%;
-$btn-hover-border-tint-amount: 10%;
-$btn-active-bg-shade-amount: 20%;
-$btn-active-bg-tint-amount: 20%;
-$btn-active-border-shade-amount: 25%;
-$btn-active-border-tint-amount: 10%;
-
-// scss-docs-start button-variants
-$button-variants: (
- "primary": btn-color-map($primary, $primary),
- "secondary": btn-color-map($secondary, $secondary),
- "success": btn-color-map($success, $success),
- "danger": btn-color-map($danger, $danger),
- "warning": btn-color-map($warning, $warning),
- "info": btn-color-map($info, $info),
- "light": btn-color-map($light, $light),
- "dark": btn-color-map($dark, $dark)
-);
-
-$button-outline-ghost-variants: (
- "primary": btn-outline-color-map($primary),
- "secondary": btn-outline-color-map($secondary),
- "success": btn-outline-color-map($success),
- "danger": btn-outline-color-map($danger),
- "warning": btn-outline-color-map($warning),
- "info": btn-outline-color-map($info),
- "light": btn-outline-color-map($light),
- "dark": btn-outline-color-map($dark)
-);
-// scss-docs-end button-variants
-```
+
## API
diff --git a/packages/docs/components/callout.md b/packages/docs/components/callout.md
index 69bbf970..5066f13f 100644
--- a/packages/docs/components/callout.md
+++ b/packages/docs/components/callout.md
@@ -75,16 +75,7 @@ Callout component is prepared for any length of text, as well as an optional ele
Vue callouts use local CSS variables on `.callout` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-callout-padding-x: #{$callout-padding-x};
---cui-callout-padding-y: #{$callout-padding-y};
---cui-callout-margin-x: #{$callout-margin-x};
---cui-callout-margin-y: #{$callout-margin-y};
---cui-callout-border-width: #{$callout-border-width};
---cui-callout-border-color: #{$callout-border-color};
---cui-callout-border-left-width: #{$callout-border-left-width};
---cui-callout-border-radius: #{$callout-border-radius};
-```
+
#### How to use CSS variables
@@ -98,27 +89,7 @@ return ...
### SASS variables
-```sass
-$callout-padding-y: $spacer;
-$callout-padding-x: $spacer;
-$callout-margin-y: $spacer;
-$callout-margin-x: 0;
-$callout-border-radius: $border-radius;
-$callout-border-width: $border-width;
-$callout-border-color: $border-color;
-$callout-border-left-width: (4 * $callout-border-width);
-
-$callout-variants: (
- "primary": $primary,
- "secondary": $secondary,
- "success": $success,
- "danger": $danger,
- "warning": $warning,
- "info": $info,
- "light": $light,
- "dark": $dark
-);
-```
+
## API
diff --git a/packages/docs/components/card.md b/packages/docs/components/card.md
index f89dc2ea..57562d86 100644
--- a/packages/docs/components/card.md
+++ b/packages/docs/components/card.md
@@ -24,7 +24,7 @@ Below is an example of a basic card with mixed content and a fixed width. Cards
Card title
Some quick example text to build on the card title and make up the bulk of the card's content.
- Go somewhere
+ Go somewhere
:::
@@ -34,7 +34,7 @@ Below is an example of a basic card with mixed content and a fixed width. Cards
Card title
Some quick example text to build on the card title and make up the bulk of the card's content.
- Go somewhere
+ Go somewhere
```
@@ -71,7 +71,7 @@ Subtitles are managed by `` component. If the `` also
Card title
- Card subtitle
+ Card subtitle
Some quick example text to build on the card title and make up the bulk of the card's content.
Card link
Another link
@@ -82,7 +82,7 @@ Subtitles are managed by `` component. If the `` also
Card title
- Card subtitle
+ Card subtitle
Some quick example text to build on the card title and make up the bulk of the card's content.
Card link
Another link
@@ -226,7 +226,7 @@ Add an optional header and/or footer within a card.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
@@ -236,30 +236,30 @@ Add an optional header and/or footer within a card.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
-Card headers can be styled by adding ex. `component="h5"`.
+Card headers can be styled by adding ex. `as="h5"`.
::: demo
- Header
+ Header
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
```vue
- Header
+ Header
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
@@ -293,9 +293,9 @@ Card headers can be styled by adding ex. `component="h5"`.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
- 2 days ago
+ 2 days ago
:::
```vue
@@ -304,9 +304,9 @@ Card headers can be styled by adding ex. `component="h5"`.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
- 2 days ago
+ 2 days ago
```
@@ -325,7 +325,7 @@ Using the grid, wrap cards in columns and rows as needed.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
@@ -334,7 +334,7 @@ Using the grid, wrap cards in columns and rows as needed.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
@@ -347,7 +347,7 @@ Using the grid, wrap cards in columns and rows as needed.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
@@ -356,7 +356,7 @@ Using the grid, wrap cards in columns and rows as needed.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
@@ -372,14 +372,14 @@ Use some of [available sizing utilities](https://coreui.io/docs/utilities/sizing
Card title
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
Card title
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
@@ -388,14 +388,14 @@ Use some of [available sizing utilities](https://coreui.io/docs/utilities/sizing
Card title
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
Card title
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
@@ -409,7 +409,7 @@ Use custom CSS in your stylesheets or as inline styles to set a width.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
@@ -418,7 +418,7 @@ Use custom CSS in your stylesheets or as inline styles to set a width.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
@@ -432,21 +432,21 @@ You can instantly change the text arrangement of any card—in its whole or spec
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
@@ -455,21 +455,21 @@ You can instantly change the text arrangement of any card—in its whole or spec
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
@@ -510,7 +510,7 @@ Add some navigation to a `` with our `` component.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
@@ -546,7 +546,7 @@ Add some navigation to a `` with our `` component.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
@@ -583,7 +583,7 @@ Add some navigation to a `` with our `` component.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
:::
@@ -619,7 +619,7 @@ Add some navigation to a `` with our `` component.
Special title treatment
With supporting text below as a natural lead-in to additional content.
- Go somewhere
+ Go somewhere
```
@@ -638,14 +638,14 @@ Similar to headers and footers, cards can include top and bottom "image caps"—
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -656,14 +656,14 @@ Similar to headers and footers, cards can include top and bottom "image caps"—
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -708,7 +708,7 @@ Using a combination of grid and utility classes, cards can be made horizontal in
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -724,7 +724,7 @@ Using a combination of grid and utility classes, cards can be made horizontal in
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -780,12 +780,52 @@ Use `color` property to change the appearance of a card.
```
-
- Conveying meaning to assistive technologies
-
- Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the `.visually-hidden` class.
-
-
+You can also apply contextual variations with the `textBgColor` property, which automatically sets the text color to ensure compliance with the WCAG 4.5:1 contrast ratio standard for enhanced accessibility.
+
+::: demo
+
+
+ Header
+
+ {{item.color}} card title
+ Some quick example text to build on the card title and make up the bulk of the card's content.
+
+
+
+:::
+```vue
+
+
+ Header
+
+ {{item.color}} card title
+ Some quick example text to build on the card title and make up the bulk of the card's content.
+
+
+
+```
+
+
+ Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the .visually-hidden class.
+
### Border
@@ -890,7 +930,7 @@ Use card groups to render cards as a single, attached element with equal width a
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -898,7 +938,7 @@ Use card groups to render cards as a single, attached element with equal width a
Card title
This card has supporting text below as a natural lead-in to additional content.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -906,7 +946,7 @@ Use card groups to render cards as a single, attached element with equal width a
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -918,7 +958,7 @@ Use card groups to render cards as a single, attached element with equal width a
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -926,7 +966,7 @@ Use card groups to render cards as a single, attached element with equal width a
Card title
This card has supporting text below as a natural lead-in to additional content.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -934,7 +974,7 @@ Use card groups to render cards as a single, attached element with equal width a
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -950,7 +990,7 @@ When using card groups with footers, their content will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -958,7 +998,7 @@ When using card groups with footers, their content will automatically line up.
Card title
This card has supporting text below as a natural lead-in to additional content.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -966,7 +1006,7 @@ When using card groups with footers, their content will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
- Last updated 3 mins ago
+ Last updated 3 mins ago
:::
@@ -978,7 +1018,7 @@ When using card groups with footers, their content will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -986,7 +1026,7 @@ When using card groups with footers, their content will automatically line up.
Card title
This card has supporting text below as a natural lead-in to additional content.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -994,7 +1034,7 @@ When using card groups with footers, their content will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
- Last updated 3 mins ago
+ Last updated 3 mins ago
```
@@ -1012,7 +1052,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1022,7 +1062,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1032,7 +1072,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1042,7 +1082,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1056,7 +1096,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1066,7 +1106,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1076,7 +1116,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1086,7 +1126,7 @@ Use the `CRow` component and set `:xs|sm|md|lg|xl|xxl="{ cols: * }"` property to
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1103,7 +1143,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1113,7 +1153,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1123,7 +1163,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1133,7 +1173,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1147,7 +1187,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1157,7 +1197,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1167,7 +1207,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1177,7 +1217,7 @@ Change it to `:md="{ cols: 3}"` and you'll see the fourth card wrap.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1277,7 +1317,7 @@ Just like with card groups, card footers will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1287,7 +1327,7 @@ Just like with card groups, card footers will automatically line up.
Card title
This card has supporting text below as a natural lead-in to additional content.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1297,7 +1337,7 @@ Just like with card groups, card footers will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1311,7 +1351,7 @@ Just like with card groups, card footers will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1321,7 +1361,7 @@ Just like with card groups, card footers will automatically line up.
Card title
This card has supporting text below as a natural lead-in to additional content.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1331,7 +1371,7 @@ Just like with card groups, card footers will automatically line up.
Card title
This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
- Last updated 3 mins ago
+ Last updated 3 mins ago
@@ -1343,25 +1383,7 @@ Just like with card groups, card footers will automatically line up.
Vue cards use local CSS variables on `.card` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
-```sass
---cui-card-spacer-y: #{$card-spacer-y};
---cui-card-spacer-x: #{$card-spacer-x};
---cui-card-title-spacer-y: #{$card-title-spacer-y};
---cui-card-border-width: #{$card-border-width};
---cui-card-border-color: #{$card-border-color};
---cui-card-border-radius: #{$card-border-radius};
---cui-card-box-shadow: #{$card-box-shadow};
---cui-card-inner-border-radius: #{$card-inner-border-radius};
---cui-card-cap-padding-y: #{$card-cap-padding-y};
---cui-card-cap-padding-x: #{$card-cap-padding-x};
---cui-card-cap-bg: #{$card-cap-bg};
---cui-card-cap-color: #{$card-cap-color};
---cui-card-height: #{$card-height};
---cui-card-color: #{$card-color};
---cui-card-bg: #{$card-bg};
---cui-card-img-overlay-padding: #{$card-img-overlay-padding};
---cui-card-group-margin: #{$card-group-margin};
-```
+
#### How to use CSS variables
@@ -1375,25 +1397,7 @@ return ...
### SASS variables
-```sass
-$card-spacer-y: $spacer;
-$card-spacer-x: $spacer;
-$card-title-spacer-y: $spacer * .5;
-$card-border-width: $border-width;
-$card-border-color: var(--cui-border-color-translucent);
-$card-border-radius: $border-radius;
-$card-box-shadow: null;
-$card-inner-border-radius: subtract($card-border-radius, $card-border-width);
-$card-cap-padding-y: $card-spacer-y * .5;
-$card-cap-padding-x: $card-spacer-x;
-$card-cap-bg: rgba($black, .03);
-$card-cap-color: unset;
-$card-height: null;
-$card-color: unset;
-$card-bg: $white;
-$card-img-overlay-padding: $spacer;
-$card-group-margin: $grid-gutter-width * .5;
-```
+
## API
diff --git a/packages/docs/components/carousel.md b/packages/docs/components/carousel.md
index 311fa89b..10b207e4 100644
--- a/packages/docs/components/carousel.md
+++ b/packages/docs/components/carousel.md
@@ -228,39 +228,7 @@ Add `dark` property to the `CCarousel` for darker controls, indicators, and capt
### SASS variables
-```sass
-$carousel-control-color: $high-emphasis-inverse;
-$carousel-control-width: 15%;
-$carousel-control-opacity: .5;
-$carousel-control-hover-opacity: .9;
-$carousel-control-transition: opacity .15s ease;
-
-$carousel-indicator-width: 30px;
-$carousel-indicator-height: 3px;
-$carousel-indicator-hit-area-height: 10px;
-$carousel-indicator-spacer: 3px;
-$carousel-indicator-opacity: .5;
-$carousel-indicator-active-bg: $white;
-$carousel-indicator-active-opacity: 1;
-$carousel-indicator-transition: opacity .6s ease;
-
-$carousel-caption-width: 70%;
-$carousel-caption-color: $high-emphasis-inverse;
-$carousel-caption-padding-y: 1.25rem;
-$carousel-caption-spacer: 1.25rem;
-
-$carousel-control-icon-width: 2rem;
-
-$carousel-control-prev-icon-bg: url("data:image/svg+xml, ");
-$carousel-control-next-icon-bg: url("data:image/svg+xml, ");
-
-$carousel-transition-duration: .6s;
-$carousel-transition: transform $carousel-transition-duration ease-in-out; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
-
-$carousel-dark-indicator-active-bg: $black;
-$carousel-dark-caption-color: $high-emphasis;
-$carousel-dark-control-icon-filter: invert(1) grayscale(100);
-```
+
## API
diff --git a/packages/docs/components/chart.md b/packages/docs/components/chart.md
index 2d9ab1f1..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.
---
@@ -27,33 +28,61 @@ A line chart is a way of plotting data points on a line. Often, it is used to sh
[Line Chart properties](https://www.chartjs.org/docs/latest/charts/line.html#dataset-properties)
::: demo
-
+ }
+ },
+ scales: {
+ x: {
+ grid: {
+ color: getStyle('--cui-border-color-translucent'),
+ },
+ ticks: {
+ color: getStyle('--cui-body-color'),
+ },
+ },
+ y: {
+ grid: {
+ color: getStyle('--cui-border-color-translucent'),
+ },
+ ticks: {
+ color: getStyle('--cui-body-color'),
+ },
+ },
+ },
+ }"
+/>
:::
```vue
-
:::
```vue
-
:::
```vue
-
-
:::
```vue
-
:::
```vue
-
:::
```vue
-
:::
```vue
-
:::
@@ -401,16 +564,106 @@ A bubble chart is used to display three dimensions of data at the same time. The
}],
}"
:options="{
+ plugins: {
+ legend: {
+ labels: {
+ color: getStyle('--cui-body-color'),
+ }
+ }
+ },
scales: {
x: {
+ grid: {
+ color: getStyle('--cui-border-color-translucent'),
+ },
+ position: 'bottom',
+ ticks: {
+ color: getStyle('--cui-body-color'),
+ },
type: 'linear',
- position: 'bottom'
- }
- }
+ },
+ y: {
+ grid: {
+ color: getStyle('--cui-border-color-translucent'),
+ },
+ ticks: {
+ color: getStyle('--cui-body-color'),
+ },
+ },
+ },
}"
/>
```
+
+
## API
!!!include(./api/CChart.api.md)!!!
\ No newline at end of file
diff --git a/packages/docs/components/close-button.md b/packages/docs/components/close-button.md
index d6c71301..3bc5b38a 100644
--- a/packages/docs/components/close-button.md
+++ b/packages/docs/components/close-button.md
@@ -27,17 +27,17 @@ Disabled close buttons change their `opacity`. We've also applied `pointer-event
```
-## White variant
+## Dark variant
-Change the default `` to be white with the `white` boolean property.
+Add `dark` boolean property to the ``, to invert the close button. This uses the filter property to invert the background-image without overriding its value.
::: demo-dark
-
-
+
+
:::
```vue
-
-
+
+
```
## API
diff --git a/packages/docs/components/collapse.md b/packages/docs/components/collapse.md
index 50d879bc..0dffb5d0 100644
--- a/packages/docs/components/collapse.md
+++ b/packages/docs/components/collapse.md
@@ -15,7 +15,7 @@ The collapse component is used to show and hide content. Buttons or anchors are
You can use a link or a button component.
::: demo
-Link
+Link
Button
@@ -28,8 +28,12 @@ You can use a link or a button component.
:::
```vue
+
- Link
+ Link
Button
@@ -41,15 +45,6 @@ You can use a link or a button component.
-
```
## Horizontal
@@ -69,6 +64,10 @@ The collapse plugin also supports horizontal collapsing. Add the `horizontal` pr
:::
```vue
+
Button
@@ -81,15 +80,6 @@ The collapse plugin also supports horizontal collapsing. Add the `horizontal` pr
-
```
## Multiple targets
@@ -132,6 +122,11 @@ A `` can show and hide multiple elements.
:::
```vue
+
Toggle first element
Toggle second element
@@ -166,32 +161,17 @@ A `` can show and hide multiple elements.
-
-
+
```
-
-
## API
-!!!include(./api/collapse/CCollapse.api.md)!!!
\ No newline at end of file
+!!!include(./api/collapse/CCollapse.api.md)!!!
+
+
\ No newline at end of file
diff --git a/packages/docs/components/dropdown.md b/packages/docs/components/dropdown.md
index e5cfefc6..e6ad7933 100644
--- a/packages/docs/components/dropdown.md
+++ b/packages/docs/components/dropdown.md
@@ -43,7 +43,7 @@ And with `` elements:
::: demo
- Dropdown Button
+ Dropdown Button
Action
Another action
@@ -53,7 +53,7 @@ And with `` elements:
:::
```vue
- Dropdown Button
+ Dropdown Button
Action
Another action
@@ -65,7 +65,7 @@ And with `` elements:
The best part is you can do this with any button variant, too:
::: demo
-
+
{{item}}
@@ -77,7 +77,7 @@ The best part is you can do this with any button variant, too:
:::
```vue
-
+
{{togglerText}}
@@ -96,7 +96,7 @@ Similarly, create split button dropdowns with virtually the same markup as singl
We use this extra class to reduce the horizontal `padding` on either side of the caret by 25% and remove the `margin-left` that's attached for normal button dropdowns. Those additional changes hold the caret centered in the split button and implement a more properly sized hit area next to the main button.
::: demo
-
+
{{ item }}
{{item}}
@@ -109,7 +109,7 @@ We use this extra class to reduce the horizontal `padding` on either side of the
:::
```vue
-
+
{{ item }}
{{item}}
@@ -257,7 +257,7 @@ And putting it to use in a navbar:
Navbar
- Dropdown Button
+ Dropdown Button
Action
Another action
@@ -276,7 +276,7 @@ And putting it to use in a navbar:
Navbar
- Dropdown Button
+ Dropdown Button
Action
Another action
@@ -292,12 +292,9 @@ And putting it to use in a navbar:
## Directions
-
- RTL
-
- Directions are mirrored when using CoreUI in RTL, meaning `.dropstart` will appear on the right side.
-
-
+
+ Directions are mirrored when using CoreUI in RTL, meaning `.dropstart` will appear on the right side.
+
### Centered
@@ -408,7 +405,7 @@ Make the dropup menu centered above the toggle by adding `direction="dropup-cent
```
-### Dropright
+### Dropend
Trigger dropdown menus at the right of the elements by adding `direction="dropend"` to the `` component.
@@ -425,7 +422,7 @@ Trigger dropdown menus at the right of the elements by adding `direction="dropen
Split dropend
-
+
Action
Another action
@@ -448,7 +445,7 @@ Trigger dropdown menus at the right of the elements by adding `direction="dropen
Split dropend
-
+
Action
Another action
@@ -459,7 +456,7 @@ Trigger dropdown menus at the right of the elements by adding `direction="dropen
```
-### Dropleft
+### Dropstart
Trigger dropdown menus at the left of the elements by adding `direction="dropstart"` to the `` component.
@@ -476,7 +473,7 @@ Trigger dropdown menus at the left of the elements by adding `direction="dropsta
-
+
Action
Another action
@@ -501,7 +498,7 @@ Trigger dropdown menus at the left of the elements by adding `direction="dropsta
-
+
Action
Another action
@@ -581,7 +578,7 @@ Add a header to label sections of actions in any dropdown menu.
In the following example we use `div` instead of `` to show `` content.
::: demo
-
+