diff --git a/package.json b/package.json
index 2251e0b0..3c636940 100644
--- a/package.json
+++ b/package.json
@@ -19,21 +19,21 @@
     "test:unit": "vue-cli-service test:unit"
   },
   "dependencies": {
-    "@coreui/chartjs": "^3.0.0",
-    "@coreui/coreui": "^4.2.3",
-    "@coreui/icons": "^2.1.0",
+    "@coreui/chartjs": "^3.1.2",
+    "@coreui/coreui": "^4.2.6",
+    "@coreui/icons": "^3.0.1",
     "@coreui/icons-vue": "2.0.0",
-    "@coreui/utils": "^1.3.1",
-    "@coreui/vue": "^4.5.0",
-    "@coreui/vue-chartjs": "2.0.1",
-    "core-js": "^3.26.1",
-    "vue": "^3.2.45",
-    "vue-router": "^4.1.6",
+    "@coreui/utils": "^2.0.2",
+    "@coreui/vue": "^4.10.0",
+    "@coreui/vue-chartjs": "2.1.0",
+    "core-js": "^3.31.1",
+    "vue": "^3.3.4",
+    "vue-router": "^4.2.4",
     "vuex": "^4.1.0"
   },
   "devDependencies": {
-    "@babel/core": "^7.20.2",
-    "@babel/eslint-parser": "^7.19.1",
+    "@babel/core": "^7.22.9",
+    "@babel/eslint-parser": "^7.22.9",
     "@vue/cli-plugin-babel": "~5.0.8",
     "@vue/cli-plugin-e2e-cypress": "~5.0.8",
     "@vue/cli-plugin-eslint": "~5.0.8",
@@ -41,17 +41,17 @@
     "@vue/cli-plugin-unit-jest": "~5.0.8",
     "@vue/cli-plugin-vuex": "~5.0.8",
     "@vue/cli-service": "~5.0.8",
-    "@vue/test-utils": "^2.2.4",
+    "@vue/test-utils": "^2.4.0",
     "@vue/vue3-jest": "^27.0.0",
     "babel-jest": "^27.5.1",
-    "cypress": "^8.7.0",
-    "eslint": "^7.32.0",
-    "eslint-config-prettier": "^8.3.0",
-    "eslint-plugin-prettier": "^4.0.0",
-    "eslint-plugin-vue": "^8.0.3",
+    "cypress": "^12.17.1",
+    "eslint": "^8.45.0",
+    "eslint-config-prettier": "^8.8.0",
+    "eslint-plugin-prettier": "^5.0.0",
+    "eslint-plugin-vue": "^9.15.1",
     "jest": "^27.5.1",
-    "prettier": "^2.8.0",
-    "sass": "^1.56.1",
-    "sass-loader": "^12.0.0"
+    "prettier": "^3.0.0",
+    "sass": "^1.63.6",
+    "sass-loader": "^13.3.2"
   }
 }
diff --git a/public/index.html b/public/index.html
index fa900d69..a1ae9be5 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <!--
-* CoreUI Vue.js Admin Template
+* CoreUI Free Vue.js Admin Template
 * @version v4.2.0
-* @link https://coreui.io/vue/
-* Copyright (c) 2021 creativeLabs Łukasz Holeczek
-* License (https://coreui.io/pro/license)
+* @link https://coreui.io/product/free-vue-admin-template/
+* Copyright (c) 2023 creativeLabs Łukasz Holeczek
+* Licensed under MIT (https://github.com/coreui/coreui-free-vue-admin-template/blob/main/LICENSE)
 -->
 <html>
   <head>
@@ -32,9 +32,22 @@
     <meta name="msapplication-TileColor" content="#ffffff">
     <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
     <meta name="theme-color" content="#ffffff">
+    <!-- Google Tag Manager -->
+    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+    })(window,document,'script','dataLayer','GTM-KX4JH47');</script>
+    <!-- End Google Tag Manager -->
   </head>
   <body>
     <noscript>
+      <iframe
+        src="https://www.googletagmanager.com/ns.html?id=GTM-KX4JH47"
+        height="0"
+        width="0"
+        style="display: none; visibility: hidden"
+      ></iframe>
       <strong>We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
     </noscript>
       <div id="app"></div>
diff --git a/src/router/index.js b/src/router/index.js
index 0a195eac..30e33cc9 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -304,4 +304,13 @@ const router = createRouter({
   },
 })
 
+router.beforeResolve(() => {
+  // Google Tag Manager
+  window.dataLayer = window.dataLayer || []
+  window.dataLayer.push({
+    event: 'pageview',
+    page_location: window.location.href,
+  })
+})
+
 export default router
diff --git a/src/views/base/Progress.vue b/src/views/base/Progress.vue
index 257cbbe1..363203bc 100644
--- a/src/views/base/Progress.vue
+++ b/src/views/base/Progress.vue
@@ -206,6 +206,6 @@
 
 <script>
 export default {
-  name: 'Progress',
+  name: 'ProgressView',
 }
 </script>
diff --git a/src/views/charts/Charts.vue b/src/views/charts/Charts.vue
index a7fb838f..eff0304f 100644
--- a/src/views/charts/Charts.vue
+++ b/src/views/charts/Charts.vue
@@ -1,12 +1,5 @@
 <template>
   <CRow>
-    <CCol :xs="12">
-      <DocsCallout
-        name="Chart"
-        href="components/chart"
-        content="React wrapper component for Chart.js 3.0, the most popular charting library."
-      />
-    </CCol>
     <CCol :md="6" class="mb-4">
       <CCard>
         <CCardHeader> Line Chart </CCardHeader>
diff --git a/src/views/charts/MainChartExample.vue b/src/views/charts/MainChartExample.vue
index 1105749f..b1f42cc6 100644
--- a/src/views/charts/MainChartExample.vue
+++ b/src/views/charts/MainChartExample.vue
@@ -11,7 +11,7 @@
 
 <script>
 import { CChart } from '@coreui/vue-chartjs'
-import { getStyle, hexToRgba } from '@coreui/utils/src'
+import { getStyle, hexToRgba } from '@coreui/utils'
 
 function random(min, max) {
   return Math.floor(Math.random() * (max - min + 1) + min)
diff --git a/src/views/forms/Range.vue b/src/views/forms/Range.vue
index cdabaf71..53115f90 100644
--- a/src/views/forms/Range.vue
+++ b/src/views/forms/Range.vue
@@ -47,7 +47,7 @@
           </p>
           <DocsExample href="forms/range.html#min-and-max">
             <CFormLabel for="customRange2">Example range</CFormLabel>
-            <CFormRange id="customRange2" :min="0" :max="5" value="3" />
+            <CFormRange id="customRange2" :min="0" :max="5" :value="3" />
           </DocsExample>
         </CCardBody>
       </CCard>
@@ -71,7 +71,7 @@
               :min="0"
               :max="5"
               :step="0.5"
-              value="3"
+              :value="3"
             />
           </DocsExample>
         </CCardBody>
diff --git a/src/views/forms/Select.vue b/src/views/forms/Select.vue
index d256949a..fa7fc29a 100644
--- a/src/views/forms/Select.vue
+++ b/src/views/forms/Select.vue
@@ -108,6 +108,6 @@
 
 <script>
 export default {
-  name: 'Select',
+  name: 'SelectView',
 }
 </script>
diff --git a/src/views/icons/Brands.vue b/src/views/icons/Brands.vue
index 39e243e2..df35ed2a 100644
--- a/src/views/icons/Brands.vue
+++ b/src/views/icons/Brands.vue
@@ -1,11 +1,6 @@
 <template>
   <CRow>
     <CCol>
-      <DocsCallout
-        name="CoreUI Brand Icons"
-        href="components/icon"
-        content="CoreUI Brand Icons. CoreUI Icons package is delivered with more than 1500 icons in multiple formats SVG, PNG, and Webfonts. CoreUI Icons are beautifully crafted symbols for common actions and items. You can use them in your digital products for web or mobile app."
-      />
       <CCard>
         <CCardHeader>CoreUI Icons - Brand</CCardHeader>
         <CCardBody>
diff --git a/src/views/icons/CoreUIIcons.vue b/src/views/icons/CoreUIIcons.vue
index daa30f3e..db217630 100644
--- a/src/views/icons/CoreUIIcons.vue
+++ b/src/views/icons/CoreUIIcons.vue
@@ -1,11 +1,6 @@
 <template>
   <CRow>
     <CCol>
-      <DocsCallout
-        name="CoreUI Icons"
-        href="components/icon"
-        content="CoreUI Icons. CoreUI Icons package is delivered with more than 1500 icons in multiple formats SVG, PNG, and Webfonts. CoreUI Icons are beautifully crafted symbols for common actions and items. You can use them in your digital products for web or mobile app."
-      />
       <CCard>
         <CCardHeader>CoreUI Icons Free</CCardHeader>
         <CCardBody>
diff --git a/src/views/icons/Flags.vue b/src/views/icons/Flags.vue
index 0d08d66d..eff0320f 100644
--- a/src/views/icons/Flags.vue
+++ b/src/views/icons/Flags.vue
@@ -1,11 +1,6 @@
 <template>
   <CRow>
     <CCol>
-      <DocsCallout
-        name="CoreUI Flag Icons"
-        href="components/icon"
-        content="CoreUI Flag Icons. CoreUI Icons package is delivered with more than 1500 icons in multiple formats SVG, PNG, and Webfonts. CoreUI Icons are beautifully crafted symbols for common actions and items. You can use them in your digital products for web or mobile app."
-      />
       <CCard>
         <CCardHeader>CoreUI Icons - Flag</CCardHeader>
         <CCardBody>
diff --git a/src/views/notifications/Modals.vue b/src/views/notifications/Modals.vue
index cffc5a92..4a506168 100644
--- a/src/views/notifications/Modals.vue
+++ b/src/views/notifications/Modals.vue
@@ -1030,6 +1030,7 @@ export default {
     const visibleScrollableDemo = ref(false)
     const visibleVerticallyCenteredDemo = ref(false)
     const visibleVerticallyCenteredScrollableDemo = ref(false)
+    const tooltipsAndPopoversDemo = ref(false)
     const xlDemo = ref(false)
     const lgDemo = ref(false)
     const smDemo = ref(false)
@@ -1047,6 +1048,7 @@ export default {
       visibleScrollableDemo,
       visibleVerticallyCenteredDemo,
       visibleVerticallyCenteredScrollableDemo,
+      tooltipsAndPopoversDemo,
       xlDemo,
       lgDemo,
       smDemo,
diff --git a/vue.config.js b/vue.config.js
index 523a634b..d9310209 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,4 +1,6 @@
 const { defineConfig } = require('@vue/cli-service')
 module.exports = defineConfig({
+  publicPath:
+    process.env.NODE_ENV === 'production' ? '/demos/vue/4.2/free/' : '/',
   transpileDependencies: true,
 })
