You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2023/05/04 09:26:23 UTC

[camel-website] 01/02: Added support for tabs in asciidoc files

This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit 9d1bf3b313a5930ca1f8375fe776321cc1173ee7
Author: iMashtak <de...@yandex.ru>
AuthorDate: Tue Apr 25 04:33:12 2023 +0300

    Added support for tabs in asciidoc files
---
 .pnp.cjs                                           |  12 +++
 ...tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip | Bin 0 -> 10676 bytes
 antora-playbook-snippets/antora-playbook.yml       |   1 +
 antora-ui-camel/.pnp.cjs                           |  11 +++
 ...tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip | Bin 0 -> 10676 bytes
 antora-ui-camel/package.json                       |   1 +
 .../{site-00b7d111da.css => site-66db361433.css}   |   3 +-
 antora-ui-camel/public/_/data/rev-manifest.json    |   5 +-
 antora-ui-camel/public/_/helpers/asset.js          |   5 +-
 .../public/_/js/vendor/tabs-5aea11bcf5.js          |   2 +
 .../public/_/partials/footer-scripts.hbs           |   1 +
 antora-ui-camel/public/_/partials/head-styles.hbs  |   3 +-
 antora-ui-camel/public/_/rev-manifest              |   5 +-
 antora-ui-camel/src/css/site.css                   |   1 +
 antora-ui-camel/src/css/tabs.css                   |  98 +++++++++++++++++++++
 antora-ui-camel/src/js/vendor/tabs.bundle.js       |   1 +
 antora-ui-camel/src/partials/footer-scripts.hbs    |   1 +
 antora-ui-camel/src/partials/head-styles.hbs       |   1 +
 antora-ui-camel/yarn.lock                          |   8 ++
 package.json                                       |   1 +
 yarn.lock                                          |   9 ++
 21 files changed, 161 insertions(+), 8 deletions(-)

diff --git a/.pnp.cjs b/.pnp.cjs
index 6f54a2b6..50350076 100755
--- a/.pnp.cjs
+++ b/.pnp.cjs
@@ -45,6 +45,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "packageDependencies": [\
             ["@antora/cli", "npm:3.0.0"],\
             ["@antora/site-generator", "npm:3.0.0"],\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"],\
             ["@deadlinks/cargo-deadlinks", "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux"],\
             ["@djencks/antora-aggregate-collector", "npm:0.1.0-beta.1"],\
             ["@djencks/antora-site-manifest", "npm:0.0.3-rc.2"],\
@@ -462,6 +463,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "linkType": "HARD"\
         }]\
       ]],\
+      ["@asciidoctor/tabs", [\
+        ["npm:1.0.0-beta.3", {\
+          "packageLocation": "./.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip/node_modules/@asciidoctor/tabs/",\
+          "packageDependencies": [\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"]\
+          ],\
+          "linkType": "HARD"\
+        }]\
+      ]],\
       ["@babel/code-frame", [\
         ["npm:7.12.13", {\
           "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-d0491bb59f.zip/node_modules/@babel/code-frame/",\
@@ -4792,6 +4802,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "packageLocation": "./antora-ui-camel/",\
           "packageDependencies": [\
             ["antora-ui-camel", "workspace:antora-ui-camel"],\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"],\
             ["@openfonts/open-sans_latin-ext", "npm:1.44.2"],\
             ["algoliasearch", "npm:4.5.1"],\
             ["asciidoctor.js", "npm:1.5.9"],\
@@ -4908,6 +4919,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
             ["apache-camel-website", "workspace:."],\
             ["@antora/cli", "npm:3.0.0"],\
             ["@antora/site-generator", "npm:3.0.0"],\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"],\
             ["@deadlinks/cargo-deadlinks", "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux"],\
             ["@djencks/antora-aggregate-collector", "npm:0.1.0-beta.1"],\
             ["@djencks/antora-site-manifest", "npm:0.0.3-rc.2"],\
diff --git a/.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip b/.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip
new file mode 100644
index 00000000..61d990b7
Binary files /dev/null and b/.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip differ
diff --git a/antora-playbook-snippets/antora-playbook.yml b/antora-playbook-snippets/antora-playbook.yml
index 0a07af51..07d8bf60 100644
--- a/antora-playbook-snippets/antora-playbook.yml
+++ b/antora-playbook-snippets/antora-playbook.yml
@@ -126,6 +126,7 @@ asciidoc:
   extensions:
     - ./extensions/table.js
     - ./extensions/inline-styles.js
+    - "@asciidoctor/tabs"
 
 runtime:
   log:
diff --git a/antora-ui-camel/.pnp.cjs b/antora-ui-camel/.pnp.cjs
index c910bda1..48d1b3d1 100755
--- a/antora-ui-camel/.pnp.cjs
+++ b/antora-ui-camel/.pnp.cjs
@@ -33,6 +33,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
         [null, {\
           "packageLocation": "./",\
           "packageDependencies": [\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"],\
             ["@openfonts/open-sans_latin-ext", "npm:1.44.0"],\
             ["algoliasearch", "npm:4.0.3"],\
             ["asciidoctor.js", "npm:1.5.9"],\
@@ -236,6 +237,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "linkType": "HARD"\
         }]\
       ]],\
+      ["@asciidoctor/tabs", [\
+        ["npm:1.0.0-beta.3", {\
+          "packageLocation": "./.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip/node_modules/@asciidoctor/tabs/",\
+          "packageDependencies": [\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"]\
+          ],\
+          "linkType": "HARD"\
+        }]\
+      ]],\
       ["@babel/code-frame", [\
         ["npm:7.10.1", {\
           "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.10.1-97c774762b-060b84203a.zip/node_modules/@babel/code-frame/",\
@@ -1102,6 +1112,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
           "packageLocation": "./",\
           "packageDependencies": [\
             ["antora-ui-camel", "workspace:."],\
+            ["@asciidoctor/tabs", "npm:1.0.0-beta.3"],\
             ["@openfonts/open-sans_latin-ext", "npm:1.44.0"],\
             ["algoliasearch", "npm:4.0.3"],\
             ["asciidoctor.js", "npm:1.5.9"],\
diff --git a/antora-ui-camel/.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip b/antora-ui-camel/.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip
new file mode 100644
index 00000000..61d990b7
Binary files /dev/null and b/antora-ui-camel/.yarn/cache/@asciidoctor-tabs-npm-1.0.0-beta.3-47cb3e60a0-e804b17951.zip differ
diff --git a/antora-ui-camel/package.json b/antora-ui-camel/package.json
index cd7c6fc3..af96c87c 100644
--- a/antora-ui-camel/package.json
+++ b/antora-ui-camel/package.json
@@ -20,6 +20,7 @@
     "preview": "gulp preview"
   },
   "devDependencies": {
+    "@asciidoctor/tabs": "1.0.0-beta.3",
     "@openfonts/open-sans_latin-ext": "^1.44.0",
     "asciidoctor.js": "1.5.9",
     "autoprefixer": "~9.7",
diff --git a/antora-ui-camel/public/_/css/site-00b7d111da.css b/antora-ui-camel/public/_/css/site-66db361433.css
similarity index 97%
rename from antora-ui-camel/public/_/css/site-00b7d111da.css
rename to antora-ui-camel/public/_/css/site-66db361433.css
index 994e9e85..ab99f16c 100644
--- a/antora-ui-camel/public/_/css/site-00b7d111da.css
+++ b/antora-ui-camel/public/_/css/site-66db361433.css
@@ -1,2 +1,3 @@
 @font-face{font-family:Open Sans;font-style:normal;font-display:swap;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(../font/open-sans-latin-ext-300.woff2) format("woff2"),url(../font/open-sans-latin-ext-300.woff) format("woff")}@font-face{font-family:Open Sans;font-style:italic;font-display:swap;font-weight:300;src:local("Open Sans Light Italic"),local("OpenSans-LightItalic"),url(../font/open-sans-latin-ext-300-italic.woff2) format("woff2"),url(../font/open-sans [...]
-/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
\ No newline at end of file
+/*! Adapted from the GitHub style by Vasily Polovnyov <va...@whiteants.net> */.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:500}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:500}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-wei [...]
+/*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */.tabs{margin-top:1.25em;margin-bottom:1.25em}.tablist>ul{-ms-flex-wrap:wrap;flex-wrap:wrap;list-style:none;margin:0;padding:0}.tablist>ul,.tablist>ul li{display:-webkit-box;display:-ms-flexbox;display:flex}.tablist>ul li{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:#fff;cursor:pointer;line-height:1.5;padding:.25em 1em;position:relative;border-bottom:0}.tablist>ul li:focus-vis [...]
\ No newline at end of file
diff --git a/antora-ui-camel/public/_/data/rev-manifest.json b/antora-ui-camel/public/_/data/rev-manifest.json
index fc97aa48..ff86a70f 100644
--- a/antora-ui-camel/public/_/data/rev-manifest.json
+++ b/antora-ui-camel/public/_/data/rev-manifest.json
@@ -1,5 +1,5 @@
 {
-  "css/site.css": "css/site-00b7d111da.css",
+  "css/site.css": "css/site-66db361433.css",
   "img/algolia.svg": "img/algolia-05f7506b2a.svg",
   "img/apache-kafka.svg": "img/apache-kafka-712a1f3ba0.svg",
   "img/apache-karaf.svg": "img/apache-karaf-e55039ae99.svg",
@@ -39,5 +39,6 @@
   "js/site.js": "js/site-c215fb6972.js",
   "js/vendor/algoliasearch.js": "js/vendor/algoliasearch-bad45193e2.js",
   "js/vendor/highlight.js": "js/vendor/highlight-621a10fe1b.js",
-  "js/vendor/svg4everybody.js": "js/vendor/svg4everybody-a0c573f2b9.js"
+  "js/vendor/svg4everybody.js": "js/vendor/svg4everybody-a0c573f2b9.js",
+  "js/vendor/tabs.js": "js/vendor/tabs-5aea11bcf5.js"
 }
\ No newline at end of file
diff --git a/antora-ui-camel/public/_/helpers/asset.js b/antora-ui-camel/public/_/helpers/asset.js
index 5d1a3876..e93de6c8 100644
--- a/antora-ui-camel/public/_/helpers/asset.js
+++ b/antora-ui-camel/public/_/helpers/asset.js
@@ -1,7 +1,7 @@
 'use strict'
 
 const manifest = {
-  "css/site.css": "css/site-00b7d111da.css",
+  "css/site.css": "css/site-66db361433.css",
   "img/algolia.svg": "img/algolia-05f7506b2a.svg",
   "img/apache-kafka.svg": "img/apache-kafka-712a1f3ba0.svg",
   "img/apache-karaf.svg": "img/apache-karaf-e55039ae99.svg",
@@ -41,7 +41,8 @@ const manifest = {
   "js/site.js": "js/site-c215fb6972.js",
   "js/vendor/algoliasearch.js": "js/vendor/algoliasearch-bad45193e2.js",
   "js/vendor/highlight.js": "js/vendor/highlight-621a10fe1b.js",
-  "js/vendor/svg4everybody.js": "js/vendor/svg4everybody-a0c573f2b9.js"
+  "js/vendor/svg4everybody.js": "js/vendor/svg4everybody-a0c573f2b9.js",
+  "js/vendor/tabs.js": "js/vendor/tabs-5aea11bcf5.js"
 }
 
 module.exports = (resource) => {
diff --git a/antora-ui-camel/public/_/js/vendor/tabs-5aea11bcf5.js b/antora-ui-camel/public/_/js/vendor/tabs-5aea11bcf5.js
new file mode 100644
index 00000000..93574462
--- /dev/null
+++ b/antora-ui-camel/public/_/js/vendor/tabs-5aea11bcf5.js
@@ -0,0 +1,2 @@
+!function(){/*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+"use strict";var t,e=(document.currentScript||{}).dataset||{},a=Array.prototype.forEach;function n(t){var n=this.tab,i=this.tabs||(this.tabs=n.closest(".tabs")),s=this.panel||(this.panel=document.getElementById(n.getAttribute("aria-controls")));if(a.call(i.querySelectorAll(".tablist .tab"),(function(t){c(t,t===n)})),a.call(i.querySelectorAll(".tabpanel"),(function(t){l(t,t!==s)})),!this.isSync&&"syncStorageKey"in e&&"syncGroupId"in i.dataset){var o=e.syncStorageKey+"-"+i.dataset.syncGrou [...]
\ No newline at end of file
diff --git a/antora-ui-camel/public/_/partials/footer-scripts.hbs b/antora-ui-camel/public/_/partials/footer-scripts.hbs
index 211f3dce..45527fb3 100644
--- a/antora-ui-camel/public/_/partials/footer-scripts.hbs
+++ b/antora-ui-camel/public/_/partials/footer-scripts.hbs
@@ -2,4 +2,5 @@
 <script src="{{uiRootPath}}/js/site-c215fb6972.js"></script>
 <script async src="{{uiRootPath}}/js/vendor/highlight-621a10fe1b.js"></script>
 <script async src="{{uiRootPath}}/js/vendor/svg4everybody-a0c573f2b9.js"></script>
+<script async src="{{{uiRootPath}}}/js/vendor/tabs-5aea11bcf5.js" data-sync-storage-key="preferred-tab"></script>
 {{> seo-main}}
diff --git a/antora-ui-camel/public/_/partials/head-styles.hbs b/antora-ui-camel/public/_/partials/head-styles.hbs
index 158b962a..c8741115 100644
--- a/antora-ui-camel/public/_/partials/head-styles.hbs
+++ b/antora-ui-camel/public/_/partials/head-styles.hbs
@@ -1 +1,2 @@
-    <link rel="stylesheet" href="{{uiRootPath}}/css/site-00b7d111da.css">
+    <link rel="stylesheet" href="{{uiRootPath}}/css/site-66db361433.css">
+    <link rel="stylesheet" href="{{{uiRootPath}}}/css/tabs.css">
diff --git a/antora-ui-camel/public/_/rev-manifest b/antora-ui-camel/public/_/rev-manifest
index fc97aa48..ff86a70f 100644
--- a/antora-ui-camel/public/_/rev-manifest
+++ b/antora-ui-camel/public/_/rev-manifest
@@ -1,5 +1,5 @@
 {
-  "css/site.css": "css/site-00b7d111da.css",
+  "css/site.css": "css/site-66db361433.css",
   "img/algolia.svg": "img/algolia-05f7506b2a.svg",
   "img/apache-kafka.svg": "img/apache-kafka-712a1f3ba0.svg",
   "img/apache-karaf.svg": "img/apache-karaf-e55039ae99.svg",
@@ -39,5 +39,6 @@
   "js/site.js": "js/site-c215fb6972.js",
   "js/vendor/algoliasearch.js": "js/vendor/algoliasearch-bad45193e2.js",
   "js/vendor/highlight.js": "js/vendor/highlight-621a10fe1b.js",
-  "js/vendor/svg4everybody.js": "js/vendor/svg4everybody-a0c573f2b9.js"
+  "js/vendor/svg4everybody.js": "js/vendor/svg4everybody-a0c573f2b9.js",
+  "js/vendor/tabs.js": "js/vendor/tabs-5aea11bcf5.js"
 }
\ No newline at end of file
diff --git a/antora-ui-camel/src/css/site.css b/antora-ui-camel/src/css/site.css
index 898958e6..4fa04f67 100644
--- a/antora-ui-camel/src/css/site.css
+++ b/antora-ui-camel/src/css/site.css
@@ -29,3 +29,4 @@
 @import 'catalog.css';
 @import 'sharingbuttons.css';
 @import 'security.css';
+@import 'tabs.css'
diff --git a/antora-ui-camel/src/css/tabs.css b/antora-ui-camel/src/css/tabs.css
new file mode 100644
index 00000000..fa304fc1
--- /dev/null
+++ b/antora-ui-camel/src/css/tabs.css
@@ -0,0 +1,98 @@
+/*! Asciidoctor Tabs | Copyright (c) 2018-present Dan Allen | MIT License */
+.tabs {
+  margin-top: 1.25em;
+  margin-bottom: 1.25em;
+}
+
+.tablist > ul {
+  display: flex;
+  flex-wrap: wrap;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+.tablist > ul li {
+  align-items: center;
+  background-color: #fff;
+  cursor: pointer;
+  display: flex;
+  line-height: 1.5;
+  padding: 0.25em 1em;
+  position: relative;
+  border-bottom: 0;
+}
+
+.tablist > ul li:focus-visible {
+  outline: none;
+}
+
+.tablist.ulist,
+.tablist.ulist > ul li {
+  margin: 0;
+}
+
+.tablist.ulist > ul li + li {
+  margin-left: 0.25em;
+}
+
+.tabs.is-loading .tablist li:not(:first-child),
+.tabs:not(.is-loading) .tablist li:not(.is-selected) {
+  background-color: #f5f5f5;
+}
+
+.tabs.is-loading .tablist li:first-child::after,
+.tabs:not(.is-loading) .tablist li.is-selected::after {
+  background-color: inherit;
+  content: "";
+  display: block;
+  height: 3px;
+  /* Chrome doesn't always paint the line accurately, so add a little extra */
+  position: absolute;
+  bottom: -1.5px;
+  left: 0;
+  right: 0;
+}
+
+.tablist > ul p {
+  line-height: inherit;
+  margin: 0;
+}
+
+.tabpanel {
+  background-color: #fff;
+  padding: 0.25em;
+}
+
+.tablist > ul li,
+.tabpanel {
+  border: 1px solid #dcdcdc;
+}
+
+.tabs.is-loading .tabpanel + .tabpanel,
+.tabs:not(.is-loading) .tabpanel.is-hidden {
+  display: none;
+}
+
+.tabpanel > :first-child {
+  margin-top: 0;
+}
+
+/* #content is a signature of the Asciidoctor standalone HTML output */
+#content .tabpanel > :last-child,
+#content .tabpanel > :last-child > :last-child,
+#content .tabpanel > :last-child > :last-child > li:last-child > :last-child {
+  margin-bottom: 0;
+}
+
+.tablecontainer {
+  overflow-x: auto;
+}
+
+#content .tablecontainer {
+  margin-bottom: 1.25em;
+}
+
+#content .tablecontainer > table.tableblock {
+  margin-bottom: 0;
+}
diff --git a/antora-ui-camel/src/js/vendor/tabs.bundle.js b/antora-ui-camel/src/js/vendor/tabs.bundle.js
new file mode 100644
index 00000000..8d1016f8
--- /dev/null
+++ b/antora-ui-camel/src/js/vendor/tabs.bundle.js
@@ -0,0 +1 @@
+require('@asciidoctor/tabs')
diff --git a/antora-ui-camel/src/partials/footer-scripts.hbs b/antora-ui-camel/src/partials/footer-scripts.hbs
index 17849d17..8d80f016 100644
--- a/antora-ui-camel/src/partials/footer-scripts.hbs
+++ b/antora-ui-camel/src/partials/footer-scripts.hbs
@@ -2,4 +2,5 @@
 <script src="{{uiRootPath}}/js/site.js"></script>
 <script async src="{{uiRootPath}}/js/vendor/highlight.js"></script>
 <script async src="{{uiRootPath}}/js/vendor/svg4everybody.js"></script>
+<script async src="{{{uiRootPath}}}/js/vendor/tabs.js" data-sync-storage-key="preferred-tab"></script>
 {{> seo-main}}
diff --git a/antora-ui-camel/src/partials/head-styles.hbs b/antora-ui-camel/src/partials/head-styles.hbs
index c1df1aeb..b64ddf96 100644
--- a/antora-ui-camel/src/partials/head-styles.hbs
+++ b/antora-ui-camel/src/partials/head-styles.hbs
@@ -1 +1,2 @@
     <link rel="stylesheet" href="{{uiRootPath}}/css/site.css">
+    <link rel="stylesheet" href="{{{uiRootPath}}}/css/tabs.css">
diff --git a/antora-ui-camel/yarn.lock b/antora-ui-camel/yarn.lock
index a2ce193c..59b661bf 100644
--- a/antora-ui-camel/yarn.lock
+++ b/antora-ui-camel/yarn.lock
@@ -137,6 +137,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@asciidoctor/tabs@npm:1.0.0-beta.3":
+  version: 1.0.0-beta.3
+  resolution: "@asciidoctor/tabs@npm:1.0.0-beta.3"
+  checksum: e804b1795121883a0aa5efb3229b7e5c77b5b90d97aa4e55f2a890729a10f6ed7e25ec406259ac0f3a5d494b574d6d3c8dfc3862297753a9f4dec7ecf66cdc69
+  languageName: node
+  linkType: hard
+
 "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.1":
   version: 7.10.1
   resolution: "@babel/code-frame@npm:7.10.1"
@@ -846,6 +853,7 @@ __metadata:
   version: 0.0.0-use.local
   resolution: "antora-ui-camel@workspace:."
   dependencies:
+    "@asciidoctor/tabs": 1.0.0-beta.3
     "@openfonts/open-sans_latin-ext": ^1.44.0
     algoliasearch: ^4.0.3
     asciidoctor.js: 1.5.9
diff --git a/package.json b/package.json
index 672bc0f7..0acb966a 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
   "devDependencies": {
     "@antora/cli": "^3.0.0",
     "@antora/site-generator": "^3.0.0",
+    "@asciidoctor/tabs": "1.0.0-beta.3",
     "@deadlinks/cargo-deadlinks": "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux",
     "@djencks/antora-aggregate-collector": "^0.1.0-beta.1",
     "@djencks/antora-site-manifest": "^0.0.3-rc.2",
diff --git a/yarn.lock b/yarn.lock
index 3477367a..d147a8f1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -359,6 +359,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@asciidoctor/tabs@npm:1.0.0-beta.3":
+  version: 1.0.0-beta.3
+  resolution: "@asciidoctor/tabs@npm:1.0.0-beta.3"
+  checksum: e804b1795121883a0aa5efb3229b7e5c77b5b90d97aa4e55f2a890729a10f6ed7e25ec406259ac0f3a5d494b574d6d3c8dfc3862297753a9f4dec7ecf66cdc69
+  languageName: node
+  linkType: hard
+
 "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.11":
   version: 7.12.13
   resolution: "@babel/code-frame@npm:7.12.13"
@@ -3529,6 +3536,7 @@ __metadata:
   version: 0.0.0-use.local
   resolution: "antora-ui-camel@workspace:antora-ui-camel"
   dependencies:
+    "@asciidoctor/tabs": 1.0.0-beta.3
     "@openfonts/open-sans_latin-ext": ^1.44.0
     algoliasearch: ^4.0.3
     asciidoctor.js: 1.5.9
@@ -3625,6 +3633,7 @@ __metadata:
   dependencies:
     "@antora/cli": ^3.0.0
     "@antora/site-generator": ^3.0.0
+    "@asciidoctor/tabs": 1.0.0-beta.3
     "@deadlinks/cargo-deadlinks": "github-release:deadlinks/cargo-deadlinks:0.8.0/deadlinks-linux"
     "@djencks/antora-aggregate-collector": ^0.1.0-beta.1
     "@djencks/antora-site-manifest": ^0.0.3-rc.2