Skip to content

Docs site restructure v3#376

Merged
JakeSCahill merged 86 commits into
mainfrom
feature/badge-byoc-only
May 26, 2026
Merged

Docs site restructure v3#376
JakeSCahill merged 86 commits into
mainfrom
feature/badge-byoc-only

Conversation

@JakeSCahill
Copy link
Copy Markdown
Contributor

@JakeSCahill JakeSCahill commented Apr 23, 2026

Implements unified navigation system for Redpanda documentation with Data Platform hierarchy, component-themed navigation buckets, and enhanced user experience features.

Overview

This PR introduces a complete redesign of the documentation navigation to support a unified sidebar for Data Platform that combines Streaming and Connect navigation in a single, collapsible bucket structure. The implementation includes 77 files with 9,046 additions across templates, styles, and JavaScript.

Major Features

1. Unified Navigation System

  • Bucket-based sidebar - Navigation organized into expandable/collapsible buckets (Streaming, Connect)
  • Component theming - Each bucket styled with its own color theme
  • Per-bucket version selectors - Independent version switching for each component
  • Bucket icons - Tabler icons (activity, plug-connected, database, etc.) for visual distinction
  • Automatic bucket expansion - Current bucket auto-expands, others collapse by default

New files:

  • src/partials/bucket-header.hbs - Bucket header with icon, title, version selector
  • src/partials/nav-menu-scroll.hbs - Unified navigation rendering logic
  • src/js/23-nav-bucket.js - Bucket expand/collapse and version selector interactions
  • src/css/nav.css - Updated with bucket theming styles

2. Product Switcher

  • Three top-level destinations - Data Platform, Cloud, ADP
  • Modern dropdown design - Clean, accessible destination selector
  • Component-aware - Highlights current destination

New files:

  • src/partials/product-switcher.hbs - Product switching UI
  • src/js/20-product-switcher.js - Dropdown interactions
  • src/css/product-switcher.css - Product switcher styling

3. Version Selector

  • Redesigned dropdown - Modern, pill-style version selector in sticky header
  • EOL indication - Shows end-of-life status for deprecated versions
  • Release dates - Displays release dates for each version
  • Show/hide older versions - Toggle to reveal full version history

New files:

  • src/partials/version-selector.hbs - Version selector UI
  • src/js/22-version-selector.js - Version selector logic
  • src/css/version-selector.css - Version selector styling

4. Component Home Pages (v3 Layout)

  • Three-column card grid - Deployment options, popular topics
  • Dynamic component colors - Headers themed by component color
  • Responsive design - Mobile-optimized layouts

New files:

  • src/layouts/component-home-v3.hbs - New home page layout
  • src/partials/component-home-v3.hbs - Component home partial
  • src/css/component-home-v3.css - Component home styling

5. Data Platform Landing Page

  • Hero section - Large, colored hero with component branding
  • Product cards - Visual cards for child components (Streaming, Connect)
  • Guides matrix - Categorized guide links

New files:

  • src/layouts/data-platform.hbs - Data Platform layout
  • src/partials/data-platform.hbs - Data Platform content partial
  • src/css/data-platform.css - Data Platform page styling

6. Labs Home Page

  • Filter-based navigation - Category and product filters
  • Card grid layout - Browse labs by category or product
  • Search integration - Global search for labs content

New files:

  • src/layouts/labs-home.hbs - Labs landing page layout
  • src/css/labs-home.css - Labs home styling

7. Ask AI Chat Panel

  • Right-side drawer - Persistent Kapa AI integration
  • Cmd+K shortcut - Quick access keyboard shortcut
  • Cross-page persistence - Chat stays open across navigation
  • React-based UI - Using Kapa AI React SDK

New files:

  • src/partials/chat-panel.hbs - Chat panel structure
  • src/js/19-chat-panel.js - Chat panel interactions
  • src/js/react/AskAI.jsx - React chat interface (updated)
  • src/css/chat-panel.css - Chat panel styling

8. Enhanced Header Features

  • Breadcrumb collapse - Responsive breadcrumbs with ellipsis at narrow widths
  • Page options dropdown - Eyebrow-positioned markdown/edit options in sticky header
  • Improved sticky header - Better layout with version selector and page options

New files:

  • src/js/21-breadcrumb-collapse.js - Breadcrumb collapse logic
  • src/css/markdown-dropdown.css - Page options dropdown styling (updated)

9. Typography Improvements

  • Inter Display font - New display font for headers and UI elements
  • Better font hierarchy - Improved readability across the site

New files:

  • src/css/typeface-inter-display.css - Inter Display font definitions
  • src/font/inter-display/ - Inter Display font files (24 .ttf files)

Design System

Component Colors

Each component has a defined color used across the UI:

  • Data Platform: #4b44ff (purple) - Umbrella component
  • Streaming: #107569 (teal) - Self-Managed docs
  • Connect: #54478C (purple) - Connect docs
  • Cloud: #0ea5e9 (blue) - Cloud docs
  • ADP: #e24328 (orange) - ADP docs

Dark Mode

All new features include full dark mode support with appropriate contrast adjustments.

Accessibility

  • Keyboard navigation support for all interactive elements
  • ARIA labels and roles for screen readers
  • Focus management for modals and dropdowns
  • Reduced motion support

Updated Files

Templates

  • src/partials/header-content.hbs - Updated header structure
  • src/partials/nav.hbs - Updated for unified navigation
  • src/partials/home.hbs - Updated home page links

Helpers

  • src/helpers/get-component-color.js - Component color lookup
  • src/helpers/get-header-data.js - Header data extraction
  • src/helpers/get-component-header-data.js - Component-specific header data
  • src/helpers/get-page-info.js - Updated page info extraction
  • src/helpers/add-suggested-labs.js - Updated component references
  • src/helpers/list-related-labs.js - Updated component references

Styles

  • src/css/doc.css - Article page improvements
  • src/css/home.css - Home page styling updates
  • src/css/nav.css - Unified navigation bucket styles
  • src/css/vars.css - New component color variables

Scripts

  • src/js/06-copy-to-clipboard.js - Updated for new layouts
  • src/js/16-bloblang-interactive.js - Updated for chat panel

Breaking Changes

Component Renames (Anticipated)

This UI is designed to work with renamed components:

  • ROOTstreaming
  • redpanda-cloudcloud-data-platform
  • redpanda-connectconnect
  • redpanda-labslabs

The UI bundle includes fallback logic to handle both old and new component names during transition.

Related PRs

Antora Extension

Content Repository Updates

docs-site Playbook

Playbook updates needed to:

  1. Reference unified-navigation extension from docs-extensions-and-macros
  2. Add data-platform umbrella component
  3. Reference feature branches for testing

Testing

Local Testing

# Build UI bundle
cd docs-ui && gulp bundle

# Build docs with unified navigation
cd docs-site && npx antora local-antora-playbook.yml

# Preview
npx http-server build/site -p 8080

Test Scenarios

  • Unified navigation displays with both buckets
  • Bucket expand/collapse works
  • Per-bucket version selectors function correctly
  • Product switcher shows three destinations
  • Component home pages render with v3 layout
  • Data Platform landing page displays correctly
  • Labs home page with filters works
  • Ask AI chat panel opens/closes correctly
  • Breadcrumb collapse works at narrow widths
  • Page options dropdown positions correctly in sticky header
  • Dark mode works for all new features
  • Mobile responsive design functions properly

Deployment Notes

This UI bundle is compatible with existing Antora content but requires:

  1. Unified navigation extension registered in playbook
  2. Component page-header-data attributes (section, color, order, icon)
  3. data-platform umbrella component in docs-site

The bundle can be deployed independently for visual testing before content/extension PRs are merged.

JakeSCahill and others added 2 commits April 22, 2026 12:39
- Add badge--byoc CSS class with blue styling for BYOC-only features
- Add badge--cloud CSS class with purple styling for Cloud features
- Define CSS variables for badge colors and backgrounds

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add availability block showing Cloud/BYOC support on ADP pages
- Add info icon with Tippy.js tooltip explaining availability
- Add BYOC and Cloud badge CSS variables for light/dark modes
- Update article.hbs to render availability block for ADP pages
- Minor fixes to header, nav, and TOC styling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 23, 2026

Deploy Preview for docs-ui ready!

Name Link
🔨 Latest commit 3e65410
🔍 Latest deploy log https://app.netlify.com/projects/docs-ui/deploys/6a15f17d8106410008f7b86d
😎 Deploy Preview https://deploy-preview-376--docs-ui.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 36 (🟢 up 2 from production)
Accessibility: 89 (🔴 down 4 from production)
Best Practices: 100 (🟢 up 8 from production)
SEO: 89 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 23, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5d8bb61f-5f9c-4071-b9b7-d85b7cd6da40

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR makes large coordinated changes across styling, templates, helpers, and client scripts: it introduces new landing-page styles and nav/topbar redesign, adds BYOC/Cloud badges and availability UI, refactors doc styling and code/listing presentation, enhances Bloblang tooling and playground UX, replaces Kapa modal triggers with a chat-panel API, adds a persistent chat drawer script and React chat mounting updates, and includes multiple helper utilities and build adjustments.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Page as Page script / partials
  participant Drawer as Chat panel (chat-panel.js + React)
  participant ChatSvc as Chat backend / Kapa SDK

  User->>Page: Click "Ask AI" or submit ask form
  Page->>Page: Build aiPromptText from context (selection, snippet, page metadata)
  Page->>Drawer: call window.openChatWithQuery(aiPromptText, true)
  Drawer->>Drawer: open panel, focus textarea (restore persisted state)
  Drawer->>ChatSvc: submit query (autoSubmit=true)
  ChatSvc-->>Drawer: returns AI response
  Drawer-->>User: render response (toasts, messages)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • paulohtb6
  • Feediver1
  • kbatuigas
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/badge-byoc-only

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (2)
src/css/doc.css (1)

1012-1018: Add the same fallback for the info icon color.

Line 1017 uses --availability-block-border without the fallback used on Line 993, so the icon color can become invalid if a theme omits that variable.

🎨 Proposed fallback
 .doc .availability-block .availability-info {
   display: inline-flex;
   align-items: center;
   margin-left: 0.5rem;
   cursor: help;
-  color: var(--availability-block-border);
+  color: var(--availability-block-border, var(--note-border-color));
   vertical-align: middle;
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/css/doc.css` around lines 1012 - 1018, The color declaration inside the
.doc .availability-block .availability-info rule uses
var(--availability-block-border) without a fallback; update the color property
to use the same fallback pattern as earlier (e.g.
var(--availability-block-border, var(--availability-border))) so the info icon
color remains valid when --availability-block-border is not defined. Locate the
.doc .availability-block .availability-info selector and replace the color value
to include the fallback variable.
src/partials/article.hbs (1)

80-96: Consider attribute-driving the tooltip content and consolidating the init script.

Two small consistency nits for this new inline block:

  1. The tooltip copy is hardcoded in the template, whereas the existing BYOC/Cloud/beta/limited-availability tooltips read from page attributes (e.g., page.attributes.byoc-text at Line 170, page.attributes.cloud-only-text at Line 196). Using something like page.attributes.availability-text with a sensible default keeps content editable without a UI rebuild and matches the pattern already established in this file.
  2. Initialization is split across two DOMContentLoaded handlers (here and the one starting at Line 103). Folding this tippy init into the existing handler reduces duplicate listeners and keeps all tooltip setup in one place. Note that the existing handler bails early at Line 107–109 if .metadata--main/.metadata--nav are missing, so if you consolidate, initialize the availability-info tooltip before that early return (or adjust the guard) so ADP pages still get it.

Both are optional; leaving as-is is functional.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/partials/article.hbs` around lines 80 - 96, Replace the hardcoded tooltip
text and separate listener by reading content from
page.attributes.availability-text (with the current hardcoded string as a
sensible default) when creating the tooltip for the element selected as
availabilityInfo, and move the tippy initialization into the existing
DOMContentLoaded handler that already sets up other tooltips; ensure you
reference availabilityInfo and call tippy(...) with the same options but
initialize it before the early return that checks for
.metadata--main/.metadata--nav (or adjust that guard) so ADP pages still get the
availability tooltip.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/css/header.css`:
- Around line 153-155: The desktop override for right-side nav items still uses
var(--navbar-font-color) so custom header text colors from --nav-text-color
aren't applied; update the selector .navbar-end > .navbar-item and .navbar-end
.navbar-link to use color: var(--nav-text-color, var(--navbar-menu-font-color))
(matching the other .navbar-item/.navbar-link rule) so desktop right-side nav
items inherit the custom header text color.

In `@src/css/vars.css`:
- Around line 185-195: Override the badge label text color variables in the
dark-theme block so the bright BYOC/Cloud backgrounds keep good contrast:
add/override --byoc-label-color and --cloud-label-color inside
html[data-theme=dark] (matching the existing --byoc-label-background and
--cloud-label-background variables) and set them to a dark, high-contrast color
instead of inheriting `#fff`; update any usages of these badges that read the
label color variable (e.g., the BYOC/Cloud badge styles that reference
--byoc-label-color / --cloud-label-color) to ensure the new variables are
applied.

In `@src/partials/article.hbs`:
- Around line 55-71: The availability block (class "availability-block" in
article.hbs) fails to render any platform when both page.attributes.byoc and
page.attributes.cloud-only are true; change the conditional logic to explicitly
handle all four states (both true, only byoc, only cloud-only, neither) so the
both-true case emits a sensible label (e.g., "Cloud, BYOC"); implement this by
replacing the nested if/unless chain with an explicit sequence: if both
page.attributes.byoc and page.attributes.cloud-only => "Cloud, BYOC", else if
page.attributes.byoc => "BYOC", else if page.attributes.cloud-only => "Cloud",
else => "Cloud, BYOC" (or equivalent join of computed platforms) so the
availability-block always shows a value.

In `@src/partials/header-content.hbs`:
- Line 18: The anchor element rendering the navbar item currently injects an
inline style for non-standalone pages (using
`@root.page.component.latest.asciidoc.attributes.page-header-data.text-color`),
which overrides stylesheet hover/current states; update the template so the
inline style is only applied for standalone widgets (keep the existing
`@root.isStandaloneWidget` branch that sets style="color: white;") and remove the
else-if branch that sets color from page-header-data.text-color, relying on the
existing --nav-text-color set elsewhere to control non-standalone link color and
hover/is-current states; locate the anchor with class "navbar-item {{`#if` (eq
this.title `@root.page.component.title`)}}is-current{{/if}}" and remove the
non-standalone inline color injection.

In `@src/partials/nav-tree.hbs`:
- Line 8: Add two new helpers is-byoc-feature.js and is-cloud-feature.js in
src/helpers modeled after is-beta-feature.js and is-enterprise.js that use
contentCatalog to look up the target page by URL and return true when target
page attributes include page-byoc and page-cloud-only respectively; then update
the ADP guard logic used in nav-tree.hbs so it checks the target nav item's
attributes (via the same helper/lookup) rather than `@root.page.attributes.adp`,
ensuring BYOC/Cloud badge classes are suppressed only when the target page is an
ADP page.

---

Nitpick comments:
In `@src/css/doc.css`:
- Around line 1012-1018: The color declaration inside the .doc
.availability-block .availability-info rule uses
var(--availability-block-border) without a fallback; update the color property
to use the same fallback pattern as earlier (e.g.
var(--availability-block-border, var(--availability-border))) so the info icon
color remains valid when --availability-block-border is not defined. Locate the
.doc .availability-block .availability-info selector and replace the color value
to include the fallback variable.

In `@src/partials/article.hbs`:
- Around line 80-96: Replace the hardcoded tooltip text and separate listener by
reading content from page.attributes.availability-text (with the current
hardcoded string as a sensible default) when creating the tooltip for the
element selected as availabilityInfo, and move the tippy initialization into the
existing DOMContentLoaded handler that already sets up other tooltips; ensure
you reference availabilityInfo and call tippy(...) with the same options but
initialize it before the early return that checks for
.metadata--main/.metadata--nav (or adjust that guard) so ADP pages still get the
availability tooltip.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2920838c-1e2e-46cf-b4e4-3cf4e6cf2378

📥 Commits

Reviewing files that changed from the base of the PR and between 6941e66 and 37bacc1.

📒 Files selected for processing (10)
  • src/css/doc.css
  • src/css/header.css
  • src/css/metadata.css
  • src/css/nav.css
  • src/css/vars.css
  • src/js/vendor/prism/prism-bloblang.js
  • src/partials/article.hbs
  • src/partials/header-content.hbs
  • src/partials/nav-tree.hbs
  • src/partials/toc.hbs

Comment thread src/css/header.css
Comment thread src/css/vars.css
Comment thread src/partials/article.hbs Outdated
Comment thread src/partials/header-content.hbs Outdated
Comment thread src/partials/nav-tree.hbs
- Add is-byoc-feature.js helper to detect page-byoc attribute
- Add is-cloud-feature.js helper to detect page-cloud-only attribute
- These helpers enable nav badge display for ADP documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@JakeSCahill JakeSCahill marked this pull request as draft April 24, 2026 12:02
JakeSCahill and others added 5 commits April 24, 2026 13:07
- Fix header.css: Use --nav-text-color for navbar-end items
- Fix vars.css: Add dark mode label color overrides for BYOC/Cloud badges
- Fix article.hbs: Handle case when both byoc and cloud-only attributes are true
- Fix header-content.hbs: Remove inline color that overrides CSS hover states
- Fix doc.css: Add fallback for availability info icon color

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ADP Cloud is descoped from the 2026-06-15 GA. With BYOC as the only
deployment shape, the "Available in: Cloud, BYOC" / "Available in:
BYOC" admonition no longer informs the reader and adds visual noise
on every ADP page.

Drop the entire `page.attributes.adp` availability block from
src/partials/article.hbs. Other badges (beta, limited-availability,
context-switcher, BYOC/Cloud labels for non-ADP pages) keep working
unchanged.

Companion PR: redpanda-data/adp-docs#13 ships the same change locally
via Antora's supplemental_files mechanism so the deploy preview is fixed
immediately. Once a new docs-ui release tag is cut from this branch and
the adp-docs / docs-site playbooks are bumped to it, the supplemental
override in adp-docs becomes redundant and can be deleted.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@JakeSCahill JakeSCahill force-pushed the feature/badge-byoc-only branch from 699c046 to 2a4cff4 Compare May 7, 2026 14:46
Adds inline status badges in the sticky header for ADP pages when
features are limited to specific platforms:
- "Only in BYOC" badge when :page-byoc-only: true is set
- "Only in Cloud" badge when :page-cloud-only: true is set

Both attributes require :adp: true (set in ADP component antora.yml).
Badges are mutually exclusive - set only one.

Also includes:
- Version dropdown alignment fix (aligns left with button)
- Removed the availability block in favor of compact inline badges
@JakeSCahill
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
src/partials/nav-explore.hbs (1)

16-33: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

The default-version path renders an empty dropdown.

When the current version is 'default' and page.versions.length > 1, line 6 still makes this a dropdown, but lines 19-32 skip rendering every option. That leaves a visible chevron with an empty menu. Remove that inner guard or render the default-version alternatives there as well.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/partials/nav-explore.hbs` around lines 16 - 33, The dropdown shows a
chevron but no items because the inner guard "{{`#if` (ne
page.componentVersion.displayVersion 'default')}}" prevents rendering when the
current displayVersion is 'default'; remove that guard (or change the logic to
always iterate page.versions) so the template always runs the "{{`#each`
page.versions}}" block and emits version links (still skipping the current
version via "{{`#if` (ne ./version `@root.page.version`)}}" and using "{{`#with`
(resolve-resource ./url) as |targetPage|}}", the "{{{relativize ../url}}}" href,
and the existing "{{../displayVersion}}"/"{{`#if` (is-eol
../asciidoc.attributes)}}" handling).
src/partials/article.hbs (1)

95-220: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: undefined metadataContainer breaks all tooltip/observer setup.

metadataContainer is used on Line 154, Line 180, and Line 219 but never defined. This will throw at runtime and abort the entire DOMContentLoaded handler. Also, navMetadataContainer.querySelector(...) is called without guarding null.

💡 Suggested fix
   document.addEventListener("DOMContentLoaded", () => {
     const stickyHeader = document.querySelector(".component-indicator-sticky");
+    const metadataContainer = document.querySelector(".metadata--main");
     const navMetadataContainer = document.querySelector(".metadata--nav");
@@
-    const topByocBadge = metadataContainer.querySelector(".byoc-label p");
-    const navByocBadge = navMetadataContainer.querySelector(".nav-byoc-label");
+    const topByocBadge = metadataContainer?.querySelector(".byoc-label p");
+    const navByocBadge = navMetadataContainer?.querySelector(".nav-byoc-label");
@@
-    const topCloudBadge = metadataContainer.querySelector(".cloud-label p");
-    const navCloudBadge = navMetadataContainer.querySelector(".nav-cloud-label");
+    const topCloudBadge = metadataContainer?.querySelector(".cloud-label p");
+    const navCloudBadge = navMetadataContainer?.querySelector(".nav-cloud-label");
@@
-    observer.observe(metadataContainer);
+    if (metadataContainer && navMetadataContainer) {
+      observer.observe(metadataContainer);
+    }
   });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/partials/article.hbs` around lines 95 - 220, The handler uses an
undefined metadataContainer and calls querySelector on navMetadataContainer
without null checks, causing runtime failures; define and assign
metadataContainer at the top of the DOMContentLoaded block (e.g., const
metadataContainer = document.querySelector(".metadata") or the actual selector
used elsewhere), guard uses of navMetadataContainer (and metadataContainer)
before calling .querySelector or accessing properties (wrap tippy
initializations for topByocBadge/topCloudBadge and nav*Badge initializations in
if (metadataContainer) / if (navMetadataContainer) checks), and only call
observer.observe(metadataContainer) when metadataContainer is non-null to avoid
errors. Ensure you update references to topByocBadge/topCloudBadge to query from
metadataContainer only after that null check.
🧹 Nitpick comments (1)
src/partials/head-scripts.hbs (1)

117-128: 💤 Low value

Consider extracting theme toggle logic to reduce duplication.

The sidebar theme toggle handler (lines 118-128) duplicates the logic from the main theme toggle handler (lines 71-77). Both handlers toggle between light and dark themes, update localStorage, and call setTheme.

♻️ Optional refactor to share toggle logic
+  function toggleTheme() {
+    const currentTheme = document.documentElement.getAttribute('data-theme') || 'light';
+    const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
+    localStorage.setItem('theme', newTheme);
+    setTheme(newTheme);
+  }
+
   window.addEventListener('DOMContentLoaded', function() {
     const switchButton = document.getElementById('switch-theme');
     // ... existing code ...
     if (switchButton) {
       setTheme(initialTheme);  // Apply initial theme on load
       switchButton.addEventListener('click', function() {
-        // Toggle theme on button click
-        const currentTheme = document.body.getAttribute('data-theme');
-        const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
-        localStorage.setItem('theme', newTheme);
-        setTheme(newTheme);
+        toggleTheme();
       });
     }
     // ... existing code ...
   });
   
   // Connect sidebar theme toggle to main theme switcher
   window.addEventListener('DOMContentLoaded', function() {
     const sidebarThemeToggle = document.getElementById('sidebar-theme-toggle');
     if (sidebarThemeToggle) {
-      sidebarThemeToggle.addEventListener('click', function() {
-        const currentTheme = document.documentElement.getAttribute('data-theme') || 'light';
-        const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
-        localStorage.setItem('theme', newTheme);
-        setTheme(newTheme);
-      });
+      sidebarThemeToggle.addEventListener('click', toggleTheme);
     }
   });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/partials/head-scripts.hbs` around lines 117 - 128, Extract the duplicated
toggle logic into a reusable function (e.g., toggleTheme) and call it from both
the sidebar handler and the main theme handler: move the code that reads
data-theme from document.documentElement, computes newTheme, sets
localStorage('theme'), and calls setTheme into a single function (referencing
setTheme and the new toggleTheme helper), then replace the inline click
callbacks on the sidebarThemeToggle element and the main theme toggle element to
just call toggleTheme; keep the DOMContentLoaded listener but update it to
attach the click handlers to their elements (sidebar-theme-toggle and the main
toggle) which both invoke toggleTheme.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/css/bloblang-playground.css`:
- Around line 1203-1209: The CSS rule .bloblang-playground .validation-error
uses the deprecated property value `word-break: break-word`; remove that
declaration and replace it with the modern wrapping rule `overflow-wrap:
anywhere` (keeping existing properties like `white-space: normal` and
`word-break` entirely removed) so lint no longer flags it and text still wraps
correctly. Ensure you update the .bloblang-playground .validation-error block to
drop `word-break: break-word` and add `overflow-wrap: anywhere`.

In `@src/css/header.css`:
- Around line 209-213: Rename the keyframe identifier bcDropdownIn to a
kebab-case name (e.g., bc-dropdown-in) wherever it appears: update the
`@keyframes` rule name and all references to it (for example the animation
property that currently uses bcDropdownIn) to match the kebab-case name so
linting passes; ensure both the declaration (`@keyframes` bc-dropdown-in { ... })
and uses (animation: bc-dropdown-in 0.15s ease-out;) are updated consistently.

In `@src/css/home.css`:
- Around line 394-400: The CSS has stylelint failures: the keyframe name casing
(toastSlideIn) and keyword case in color-mix usage (in sRGB). Rename the
keyframes to follow the configured pattern (e.g., toast-slide-in or other
project keyframes convention) wherever referenced (look for toastSlideIn usage
in `@keyframes` and animation names) and change all occurrences of "in sRGB"
inside color-mix(...) to "in srgb" (apply to the shown block and the other
reported locations) so value-keyword-case passes; run gulp lint to verify.

In `@src/css/nav.css`:
- Around line 329-342: Rename the keyframes and their animation references from
camelCase to kebab-case to satisfy stylelint: change `@keyframes` versionMenuIn
and `@keyframes` statusPulse to `@keyframes` version-menu-in and `@keyframes`
status-pulse, and update every corresponding animation: versionMenuIn ... and
animation: statusPulse ... usages to animation: version-menu-in ... and
animation: status-pulse ... (also apply the same changes in the other occurrence
around lines 721-755).

In `@src/css/toc.css`:
- Line 245: The CSS uses the deprecated property word-wrap: break-word; —
replace that declaration with the modern equivalent overflow-wrap: break-word;
(remove or replace the word-wrap line in src/css/toc.css so the selector that
currently contains "word-wrap" instead uses "overflow-wrap: break-word;") to
clear the Stylelint failure.

In `@src/css/typeface-inter.css`:
- Line 8: The six `@font-face` blocks in src/css/typeface-inter.css use quoted
font-family values (e.g., font-family: "Inter") which triggers stylelint errors;
update each `@font-face` block to use an unquoted identifier (font-family: Inter)
for all occurrences in the file (the font-family declarations inside the
`@font-face` rules at the six blocks) so gulp lint passes.

In `@src/helpers/is-byoc-feature.js`:
- Line 20: The BYOC detection uses the wrong page attribute key; update the
check in the urlCache.set call (currently using the expression
urlCache.set(p.pub.url, !!p.asciidoc?.attributes?.['page-byoc'])) to use the
documented attribute 'page-byoc-only' instead so BYOC-only pages are detected
(i.e., replace 'page-byoc' with 'page-byoc-only' in that expression).

In `@src/js/react/AskAI.jsx`:
- Around line 49-59: The code currently calls createRoot(...).render(<App />)
for both element queries (homeEl and panelEl), which can mount two App instances
if both `#kapa-chat-root` and `#chat-panel-kapa-root` exist; change the logic to
mount to exactly one target by selecting a single element (for example prefer
panelEl over homeEl or use the first non-null) and only call
createRoot(...).render(<App />) once — update the block that references homeEl,
panelEl, createRoot, and App to use an if/else (or a single chosenEl variable)
so only one App is rendered.

In `@src/partials/bloblang-playground.hbs`:
- Around line 1643-1648: The "Ask AI" button still appears when
window.openChatWithQuery isn't available — instead of merely console.warn-ing in
the click handlers (the block that checks typeof window.openChatWithQuery ===
'function'), proactively disable or hide the CTA at render/time and update the
two click-handler locations to not show a non-functional button; specifically,
check typeof window.openChatWithQuery !== 'function' early and either add a
disabled attribute/class and aria-disabled to the Ask AI button (querySelector
for the button element or template variable controlling visibility) or call the
previous modal fallback if you want to preserve behavior; apply this change to
both places where window.openChatWithQuery is checked so the button is never
visible/active when the chat API is absent.

In `@src/partials/head-scripts.hbs`:
- Around line 23-28: The JS sets CSS variable --announcement-bar-height to
'50px' for mobile when announcementType !== 'bloblang' but the CSS for
.announcement-bar.is-active uses max-height: 60px, causing a 10px mismatch and
potential layout shift; fix by making the reserved height match the actual
animated max height — either change the JS assignment for mobile in the if block
where announcementType is checked (the code that sets --announcement-bar-height
and --announcement-bar-height--desktop) to '60px', or change the CSS max-height
in the announcement banner stylesheet (.announcement-bar.is-active) from 60px to
50px so both values are identical.

In `@src/partials/nav-explore.hbs`:
- Around line 6-17: The version selector is currently rendered as non-focusable
spans (container with class "container" and the span "current-version" plus the
material-symbols icon), which prevents keyboard users from opening the versions
menu; replace the clickable trigger (the span.current-version and the adjacent
material icon) with a real <button> element that is focusable and toggles an
aria-expanded attribute and references the menu via aria-controls, ensure the
button keeps the existing classes/markup semantics (e.g., "current-version"
styling) and that the dropdown container retains the "has-dropdown" behavior,
and update any JS that toggles the menu to read/write aria-expanded on that
button and to open/close the element with the matching id used by aria-controls.

In `@src/partials/nav.hbs`:
- Around line 22-28: Replace the non-semantic div used as the search trigger
with a native button element: change the element with class "sb-search" and
data-action="open-search" from <div> to <button type="button">, remove the
redundant tabindex and role attributes, keep the aria-label="Search docs" and
the inner SVG and span.sb-search-text intact, and ensure any JS that queries
".sb-search" still works (or update selectors to target the button) so keyboard
activation and accessibility work correctly.

---

Outside diff comments:
In `@src/partials/article.hbs`:
- Around line 95-220: The handler uses an undefined metadataContainer and calls
querySelector on navMetadataContainer without null checks, causing runtime
failures; define and assign metadataContainer at the top of the DOMContentLoaded
block (e.g., const metadataContainer = document.querySelector(".metadata") or
the actual selector used elsewhere), guard uses of navMetadataContainer (and
metadataContainer) before calling .querySelector or accessing properties (wrap
tippy initializations for topByocBadge/topCloudBadge and nav*Badge
initializations in if (metadataContainer) / if (navMetadataContainer) checks),
and only call observer.observe(metadataContainer) when metadataContainer is
non-null to avoid errors. Ensure you update references to
topByocBadge/topCloudBadge to query from metadataContainer only after that null
check.

In `@src/partials/nav-explore.hbs`:
- Around line 16-33: The dropdown shows a chevron but no items because the inner
guard "{{`#if` (ne page.componentVersion.displayVersion 'default')}}" prevents
rendering when the current displayVersion is 'default'; remove that guard (or
change the logic to always iterate page.versions) so the template always runs
the "{{`#each` page.versions}}" block and emits version links (still skipping the
current version via "{{`#if` (ne ./version `@root.page.version`)}}" and using
"{{`#with` (resolve-resource ./url) as |targetPage|}}", the "{{{relativize
../url}}}" href, and the existing "{{../displayVersion}}"/"{{`#if` (is-eol
../asciidoc.attributes)}}" handling).

---

Nitpick comments:
In `@src/partials/head-scripts.hbs`:
- Around line 117-128: Extract the duplicated toggle logic into a reusable
function (e.g., toggleTheme) and call it from both the sidebar handler and the
main theme handler: move the code that reads data-theme from
document.documentElement, computes newTheme, sets localStorage('theme'), and
calls setTheme into a single function (referencing setTheme and the new
toggleTheme helper), then replace the inline click callbacks on the
sidebarThemeToggle element and the main theme toggle element to just call
toggleTheme; keep the DOMContentLoaded listener but update it to attach the
click handlers to their elements (sidebar-theme-toggle and the main toggle)
which both invoke toggleTheme.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0ae3d5c1-a924-44aa-96d1-a2cc63b9835e

📥 Commits

Reviewing files that changed from the base of the PR and between 37bacc1 and 30917d0.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (51)
  • gulp.d/tasks/build.js
  • preview-src/ui-model.yml
  • src/css/announcement-banner.css
  • src/css/bloblang-playground.css
  • src/css/body.css
  • src/css/breadcrumbs.css
  • src/css/dark-mode.css
  • src/css/doc.css
  • src/css/footer.css
  • src/css/header.css
  • src/css/home.css
  • src/css/main.css
  • src/css/markdown-dropdown.css
  • src/css/nav.css
  • src/css/pagination.css
  • src/css/search-bump.css
  • src/css/search.css
  • src/css/site.css
  • src/css/toc.css
  • src/css/toolbar.css
  • src/css/typeface-inter.css
  • src/css/vars.css
  • src/helpers/is-byoc-feature.js
  • src/helpers/is-cloud-feature.js
  • src/helpers/is-eol.js
  • src/helpers/resolve-resource.js
  • src/js/01-nav.js
  • src/js/06-copy-to-clipboard.js
  • src/js/11-editable-placeholders.js
  • src/js/14-markdown-dropdown.js
  • src/js/react/AskAI.jsx
  • src/js/react/components/ChatInterface.jsx
  • src/layouts/default.hbs
  • src/layouts/index.hbs
  • src/layouts/lab.hbs
  • src/layouts/labs-search.hbs
  • src/layouts/search.hbs
  • src/partials/algolia-script.hbs
  • src/partials/article.hbs
  • src/partials/bloblang-playground.hbs
  • src/partials/body.hbs
  • src/partials/breadcrumbs.hbs
  • src/partials/footer.hbs
  • src/partials/head-scripts.hbs
  • src/partials/head-styles.hbs
  • src/partials/header-content.hbs
  • src/partials/home.hbs
  • src/partials/nav-explore.hbs
  • src/partials/nav-menu.hbs
  • src/partials/nav.hbs
  • src/partials/toc.hbs
✅ Files skipped from review due to trivial changes (5)
  • src/partials/footer.hbs
  • src/partials/head-styles.hbs
  • src/layouts/search.hbs
  • src/css/dark-mode.css
  • src/css/site.css

Comment thread src/css/bloblang-playground.css
Comment thread src/css/header.css
Comment thread src/css/home.css
Comment thread src/css/nav.css
Comment thread src/css/toc.css Outdated
Comment thread src/js/react/AskAI.jsx Outdated
Comment thread src/partials/bloblang-playground.hbs
Comment thread src/partials/head-scripts.hbs
Comment thread src/partials/nav-explore.hbs Outdated
Comment thread src/partials/nav.hbs Outdated
Major UI updates for hierarchical navigation system:

Navigation System:
- Add unified navigation with bucket structure (Self-Managed → Streaming/Connect)
- New bucket-header.hbs partial with icons, titles, and per-bucket version selectors
- nav-bucket.js for expand/collapse and version selector interactions
- Bucket theming with custom CSS properties for colors

Layouts & Templates:
- component-home-v3.hbs layout for new landing page design
- data-platform.hbs layout for umbrella pages
- labs-home.hbs layout for labs directory
- Updated article.hbs to move page options to sticky header eyebrow
- Updated nav-menu-scroll.hbs for unified navigation rendering

Styling:
- chat-panel.css for Ask AI sidebar
- component-home-v3.css for new landing page layouts
- data-platform.css for umbrella page styling
- labs-home.css for labs directory
- product-switcher.css for top-level destination switcher
- Updated nav.css with bucket theming
- Updated markdown-dropdown.css for eyebrow positioning
- Inter Display font for landing pages

Components:
- product-switcher.hbs partial for three-destination switcher
- version-selector.hbs partial for per-bucket version dropdowns
- chat-panel.hbs with correct sparkle icon
- status-footer.hbs for version status information

Helpers:
- get-component-color.js, get-header-color.js, get-header-data.js
- get-component-header-data.js, get-home-navigation.js
- format-release-date.js, support-end-date.js, version-status.js
- Utility helpers: gte.js, lt.js, split.js, subtract.js

JavaScript:
- 19-chat-panel.js for Ask AI interactions
- 20-product-switcher.js for destination switching
- 21-breadcrumb-collapse.js for responsive breadcrumbs
- 22-version-selector.js for version dropdown
- 23-nav-bucket.js for bucket interactions
- Updated 14-markdown-dropdown.js to remove positioning logic

Fixes:
- Page options font consistency (11px, 600 weight)
- Focus outline visibility with proper padding
- Dropdown menu alignment
- Icon consistency (Connect plug-connected, Ask AI sparkle)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@JakeSCahill
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 12, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

JakeSCahill and others added 2 commits May 21, 2026 07:50
- Changed padding-left from 0 to 16px for .prev button
- Changed padding-right from 0 to 16px for .next button
- Text no longer sits flush against the border
- Provides better visual balance in the pagination cells

Fixes issue where PREV and NEXT text appeared scrunched up against the borders despite having large empty cells.
- Converted 358+ hardcoded pixel font sizes to rem-based calculations
- Increased all font sizes by 1-2px for improved readability
- Pattern: font-size: calc(px / var(--rem-base) * 1rem)
- Files affected: all CSS, templates, and helper files
- Sizes 10px and below increased by 2px
- Sizes 11px and above increased by 1px

This ensures consistent font scaling across all breakpoints and improves
accessibility while maintaining design proportions.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@JakeSCahill JakeSCahill changed the title Add BYOC and Cloud platform badges for ADP documentation Docs site restructure v3 May 22, 2026
JakeSCahill and others added 3 commits May 22, 2026 08:15
Font Size Improvements:
- Increased font sizes across all landing pages for better legibility
- Product selector: 19px → 22px (names), 14px → 16px (taglines)
- Intent cards: 20px → 23px (titles), 16px → 17px (descriptions)
- Deploy cards: 17px → 19px (titles), 13px → 15px (descriptions)
- Popular topics: 15px → 17px (titles), 12px → 14px (descriptions)

Home Page Enhancements:
- Made intent cards clickable (Build agentic workflows → ADP home, Stream and process data → Data Platform home)
- JavaScript-based click handling preserves nested link functionality
- Added data-href attributes to card elements

Bug Fixes:
- Fixed sticky header content bleed-through (removed negative margin)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove What's New sections from all landing pages
- Add component cards section with Streaming, Connect, SQL
- Add deployment cards section with Serverless, BYOC, Dedicated
- SQL component shows NEW badge and Cloud BYOC badge
- Use dynamic component colors from antora.yml metadata
- Fix z-index stacking for sticky component indicator
- Clean up code comments and fix CSS linting errors

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@micheleRP micheleRP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

Highest-stakes PR in the 14-PR rollout. Builds the entire relaunch chrome — but ships scratch/debug files, has lint-blocking CSS in 8+ files that will fail gulp bundle, has internal contradictions in the component-rename "fallback" story, and carries a11y regressions on the version selector and search trigger. None hard to fix, but the volume is high enough that a single dedicated sweep is needed before merge.

Critical

  1. The "fallback for old and new component names" claim in the PR body is not consistently implemented. Several helpers/partials hard-switch with no || fallback:

    • src/helpers/get-page-info.js:52 — flipped ROOT check to 'streaming' with no fallback. Any not-yet-renamed content repo will produce wrong isCurrentComponent results.
    • src/partials/algolia-script.hbs — every site.components.ROOT.* was flipped to site.components.streaming.* with no fallback. Search initial-tag / latest-enterprise renders empty if rename PRs haven't merged.
    • src/helpers/get-home-navigation.js looks up redpanda-adp then redpanda (old names), but product-switcher.hbs, aggregate-whats-new.js, and every other new helper use agentic-data-plane / streaming. Two files contradict each other.

    Fix: Pick one naming scheme and add real old-name fallbacks across the board, or strip the "fallback" claim from the PR body and gate this PR on the rename PRs landing first.

  2. CodeRabbit-confirmed lint failures will fail gulp bundle. Per CLAUDE.md, lint must pass:

    • src/css/header.css@keyframes bcDropdownIn
    • src/css/home.css@keyframes toastSlideIn + color-mix(in sRGB,...) (needs in srgb)
    • src/css/nav.cssversionMenuIn, statusPulse, bucketVersionMenuIn
    • src/css/product-switcher.csssbProductMenuIn
    • src/css/chat-panel.csstoastSlideIn, deprecated clip:, word-break: break-word
    • src/css/bloblang-playground.css:1229 and src/css/toc.css:236 — deprecated word-break / word-wrap
    • src/css/component-home-v3.css:402currentColor casing
    • src/css/typeface-inter.css — quoted simple font-family identifiers
  3. A11y — non-button interactive triggers.

    • src/partials/nav.hbs uses <div role="button"> for search
    • src/partials/nav-explore.hbs and src/partials/version-selector.hbs use <div>/<span> for the version selector with no aria-expanded and no focusability

    Keyboard users can't open either menu today. Fix: use real <button> elements.

  4. src/partials/nav-explore.hbs lines 16-33: empty dropdown bug. When displayVersion === 'default' and versions.length > 1, the chevron renders but the inner guard skips every option. Visible regression.

  5. src/partials/article.hbs lines 95-220: undefined metadataContainer. CodeRabbit flagged this critical — variable referenced from tooltip/observer init script but never declared. Verify; if real, this throws on every article page.

  6. Availability block renders empty in src/partials/article.hbs when both byoc and cloud-only are set. Either render "Cloud, BYOC" for that combination or guard the "Available in:" label.

  7. src/helpers/is-byoc-feature.js checks wrong attribute key (page-byoc vs the documented page-byoc-only). BYOC nav classification silently broken.

  8. src/js/react/AskAI.jsx mounts two App instances if a page has both #kapa-chat-root and #chat-panel-kapa-root. Duplicate Kapa providers / double-firing callbacks. Mount to exactly one target.

Suggestions

  1. Inter Display ships 18 .ttf files; only 4 are referenced from typeface-inter-display.css (Regular, Medium, SemiBold, Bold). Drop the unused 14 (Black, ExtraBold, ExtraLight, all Italic variants, Light, Thin) — straight bundle bloat.
  2. Convert the 4 used Inter Display weights to .woff2 — same for any remaining Inter .ttf files. Evergreen browser support, much smaller.
  3. src/js/22-version-selector.js — document-level mousedown/keydown listeners are attached inside the forEach, creating N duplicates. Hoist them out.
  4. src/helpers/format-release-date.js — use getUTCMonth() / getUTCFullYear() to avoid PST off-by-one.
  5. src/helpers/has-markdown.js — dedupe excludedRoles (defined twice).
  6. src/js/16-bloblang-interactive.js:704 — reset wasmLoading / wasmLoadPromise on init failure, otherwise every later "Try It" fails until page reload.
  7. src/js/21-breadcrumb-collapse.js — use <span> not <a href="#"> for non-link breadcrumbs to avoid scroll-to-top.
  8. src/css/doc.css:1017 — add , var(--note-border-color) fallback to --availability-block-border.

Files that should NOT ship

  1. debug-snapshot.md (292 lines, new) — Playwright accessibility-tree snapshot (generic [ref=e1], listitem [ref=e6]...). Pure scratch artifact. Delete.
  2. WHATS-NEW-SYSTEM.md (194 lines, new) — Internal design doc for the What's New attribute system. Useful but not appropriate at the UI repo root; move to docs-extensions-and-macros README, internal Confluence, or docs/ subdir.
  3. 14 of 18 Inter Display .ttf files are shipped but never referenced from CSS (only Regular/Medium/SemiBold/Bold are loaded). Delete the unused weights.

CodeRabbit triage (~30 findings across 3 batches)

Keep (valid; post or fix in same sweep):

  • All 8 CSS lint failures listed in Critical #2
  • src/partials/article.hbs:95-220 undefined metadataContainer (Critical #5)
  • src/partials/article.hbs availability empty state (Critical #6)
  • src/partials/nav-explore.hbs:16-33 empty version dropdown (Critical #4)
  • src/partials/nav-explore.hbs + nav.hbs non-button keyboard-inaccessible triggers (Critical #3)
  • src/partials/nav-tree.hbs:8 ADP per-target-URL check vs page attribute
  • src/helpers/is-byoc-feature.js wrong attribute key (Critical #7)
  • src/helpers/format-release-date.js UTC methods (Suggestion #4)
  • src/helpers/has-markdown.js dedupe excludedRoles (Suggestion #5)
  • src/js/react/AskAI.jsx single mount target (Critical #8)
  • src/js/22-version-selector.js listener leak (Suggestion #3)
  • src/js/16-bloblang-interactive.js:704 WASM loader reset (Suggestion #6)
  • src/js/19-chat-panel.js toggle all triggers not first
  • src/css/bloblang-playground.css:614 overflow: hidden clips Ace scrollbar
  • src/js/16-bloblang-interactive.js:715 Ace minLines: 5

Skip (pedantic / conflicts with conventions):

  • src/partials/header-content.hbs inline style="color: white" on standalone widget — intentional rendering path; defer to widget redesign
  • src/css/header.css:438 --nav-text-color on .navbar-end — minor consistency, not blocking

Defer (worth doing, not blocking):

  • src/css/vars.css:205 dark-mode BYOC/Cloud badge contrast — real but cosmetic
  • src/css/doc.css:1012-1018 availability info icon CSS fallback
  • src/js/16-bloblang-interactive.js:805 preserve metadata in mini-playground
  • src/partials/bloblang-playground.hbs:1657 dead "Ask AI" CTA
  • src/partials/head-scripts.hbs:29 announcement bar height comment
  • src/js/17-bloblang-yaml.js:43-53 hyphenated YAML key detection

Coordination risk

  • Hard dependency on content-repo rename PRs (docs redpanda-data/docs#1698-redpanda-data/docs#1705, cloud-docs redpanda-data/cloud-docs#578, rp-connect-docs redpanda-data/rp-connect-docs#427, redpanda-labs redpanda-data/redpanda-labs#285) landing before this UI bundle deploys. algolia-script.hbs and get-page-info.js both hard-switch to new component names with no fallback.
  • Hard dependency on docs-extensions-and-macros redpanda-data/docs-extensions-and-macros#197nav-menu-scroll.hbs uses page.attributes.has-custom-nav and parse-json page.attributes.custom-navigation, both produced by that extension.
  • Hard dependency on docs-site redpanda-data/docs-site#173 playbook adding all umbrella components (agentic-data-plane, data-platform, self-managed, streaming, connect, cloud-data-platform, labs). product-switcher.hbs assumes the fixed hierarchy exists.
  • Naming inconsistency to resolve BEFORE merging the rename PRs: align get-home-navigation.js (redpanda-adp/redpanda) with the rest of the UI (agentic-data-plane/streaming) and with whatever name the ADP content repo's antora.yml actually uses. Right now they disagree.

See docs-site redpanda-data/docs-site#173 for cross-rollout notes (suggested approval order + verification steps).

Copy link
Copy Markdown
Contributor

@micheleRP micheleRP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved on the assumption that all 8 Critical items in the review comment above are addressed before merge: component-name fallbacks (or correct the 'fallback' claim in the PR body), the 8 CSS lint failures, the 5 a11y regressions on nav/search/version-selector triggers, the empty-dropdown bug in nav-explore.hbs, the undefined metadataContainer in article.hbs, the availability empty-state, the page-byoc vs page-byoc-only attribute key in is-byoc-feature.js, the AskAI double-mount. Plus delete debug-snapshot.md + WHATS-NEW-SYSTEM.md and the 14 unused Inter Display .ttf weights. Highest-stakes PR in the rollout — please run gulp bundle locally to confirm lint passes before merging.

Automatic formatting improvements applied by ESLint to Ace editor and
WASM exec vendor files. Changes are purely stylistic (line breaks, brace
placement) for consistency with project linting rules.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
JakeSCahill added a commit to redpanda-data/cloud-docs that referenced this pull request May 26, 2026
Migrates Cloud docs landing page to use the new component-home-v3 layout
with configurable content via page attributes.

## Deploy Section
- :page-deploy-title: Section heading
- :page-deploy-N-title/desc/link/icon: Card content (up to 3)

## Popular Topics Section
- :page-popular-title: Section heading
- :page-popular-N-title/desc/link/icon: Card content (up to 4)

## Labs Section
- :page-labs-title: Section heading
- :page-labs-link: Link to all labs
- :page-labs-N-title/link: Individual lab links

## Stats Bar
- :page-stats: Pipe-separated stats with ;; delimiter

Related: redpanda-data/docs-ui#376
JakeSCahill added a commit to redpanda-data/cloud-docs that referenced this pull request May 26, 2026
* Update Cloud docs landing page to component-home-v3

Migrates Cloud docs landing page to use the new component-home-v3 layout
with configurable content via page attributes.

## Deploy Section
- :page-deploy-title: Section heading
- :page-deploy-N-title/desc/link/icon: Card content (up to 3)

## Popular Topics Section
- :page-popular-title: Section heading
- :page-popular-N-title/desc/link/icon: Card content (up to 4)

## Labs Section
- :page-labs-title: Section heading
- :page-labs-link: Link to all labs
- :page-labs-N-title/link: Individual lab links

## Stats Bar
- :page-stats: Pipe-separated stats with ;; delimiter

Related: redpanda-data/docs-ui#376

* Update component xrefs for unified navigation

- Updated xrefs and includes: ROOT → streaming
- Updated xrefs: redpanda-connect → connect

This allows cloud-docs to correctly include single-sourced content
from the renamed streaming component.

* Rename Redpanda Self-Managed to Redpanda Streaming

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix cloud landing page hero - add missing page-layout and hero-description

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add product-name attribute for single-sourced content

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Update product-name attributes with clear naming

- product-name: Redpanda Streaming (for self-managed references)
- cloud-product-name: Redpanda Cloud (for cloud references)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Remove local product-name attributes (now in shared branch)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Rename page-header-data to component-metadata and remove section field

- More accurate name: component-level metadata, not page-level
- Remove section field (deprecated - breadcrumbs use page-navigation config)
- Update Cloud component configuration

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Update Cloud landing page: hero text, remove deploy section, update labs

- Hero: Add "Streaming, Connect, and SQL built in" to clarify offerings
- Remove "Get started with Redpanda Cloud" deploy section per PM feedback
- Update labs links to use Antora resource IDs (labs:ai-agents:langchain-agent.adoc, etc.)
- All labs are Cloud-compatible (have page-cloud: true attribute)
- Decision matrix remains for Serverless vs BYOC choice

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix mcp-setup xref to use correct module

Change xref:home:streaming:mcp-setup.adoc to xref:home:ROOT:mcp-setup.adoc

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Migrate SQL docs (#521)

* Add converted SQL reference files

* Duplicate file

* Add index files

* Add SQL reference to Cloud nav

* Move reference pages to reference module

* Convert remaining docs

* Add placeholder index files

* Cleanup

* Move SQL section after RPCN

* Continue cleanup using plugin audit and review

* External links open in new window

* Minor edit to trigger deploy preview

* Migrate degraded state doc

* Minor style edits

* Address drift from Oxla changes since mid-Oct 2025

* Include CREATE TABLE and DROP changes

* Update existing pages with placeholders for pages to be created

* Another pass at style fixes

* Missing TODO

* Add remaining new reference pages to address doc drift

* Remove Oxla storage compression references

* Remove INSERT/UPDATE/DELETE from psycopg2 supported features

* Remove Oxla-specific reasons from java-jdbc unsupported list

* Remove DELETE/UPDATE references from php-pdo rowCount

* Remove CREATE TABLE/INSERT example from select.adoc

Assume that a student_data table is already created and populated with data

* Remove table duplication TIP

* Fix clumped "SELECTstatement"

* Add missing Venn diagrams to JOIN pages

* Inconsistent formatting with function names and parentheses

* Incorrect COUNT logic with HAVING

* Add NULLS FIRST/LAST, fix interval sorting

* Replace CREATE TABLE oxlafunctions example in offset.adoc

Redpanda SQL does not support CREATE TABLE without an external catalog

Example assumes precreated salaryemp table

* Unrelated "employees" text

* Move column compatibility note to set-operations index

Column type compatibility and flexible ordering
applies to all set operations (UNION, INTERSECT, EXCEPT)

* Both ROWS and RANGE frame modes are supported

* Add GEOMETRY/GEOGRAPHY

* Create sql-operators section with full operator list

* timestamp-with-time-zone formatting

* Remove internal memory representation for date type

* Add month and day conversion note

* Remove internal memory representation from bool type

* System catalogs disambiguation note and 7 new pg_* pages

* Fix nav

* Move bitwise operators

* Double check SQL examples and outputs

* Remove unix_macros

* Reorganize math and trig function pages

* Implement some deferred fixes related to old Oxla examples

* Fix anchors in xrefs

* Apply QA checklist first pass across SQL reference docs

Run 11-point QA checklist against all migrated SQL pages (148 files).
Fixes applied: remove "Please note" phrasing, fix "here" link text,
replace future tense output descriptions with present tense, simplify
"allows/enables you to" constructions, remove minimizing language,
fix wordy instructions, add missing admonition punctuation, replace
verbose output lead-ins, remove "etc.", normalize positional references,
and update stale PostgreSQL doc links to /docs/current/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Person 4 edits, including future tense, passive voice

* more Person 4 edits

* Person 4 edits

* Parallelize :description: metadata for SQL language client pages

Standardize the Java, PHP, and Python connector pages on the same
imperative "Connect to Redpanda SQL from <language> using <tool>"
template already used by the C# page and the parent index page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply Feediver1 review suggestions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Apply pending PR suggestion comments

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Minor edit - statements index

* keywords.adoc - move in nav tree, make table more scannable

* alter-table minor edit

* create-redpanda-catalog: Improve Options section

* create-storage minor edit

* Improve CREATE TABLE reference page clarity

Clarify NOTE about CREATE TABLE behavior, convert multi-value option
descriptions to lists for scannability, and rename ambiguous example
heading.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* select: review fixes

* set-show: review fixes

* show-tables minor edit

* show-nodes: review fixes

* describe: review fixes

* sql-statements review pass

* from - review pass

* Minor edit

* set-operations: review fixes

* More review fixes for sql-clauses

* other-functions review fixes

* Normalize QA fixes

* Apply edits based on doc team review

* Standardize "To do X, run:"

* Structural improvements

* Sweep for passive voice

* Person 2 style review: aggregate, window, JSON functions

Style fixes across 31 files:
- Future tense → present tense ("will return" → "returns")
- Wordy instructions ("lets you" → direct verb)
- Awkward phrasing ("Here's how" → cleaner alternatives)
- First person ("we're going to" → "This example")
- Passive "It" patterns in tables → active voice
- Positional references ("the above query" → "Output:")
- Typo fix ("ouput" → "output")

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Pass to standardize QA

* Apply suggestions from review

* Minor edits

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: micheleRP <michele@redpanda.com>
Co-authored-by: Joyce Fee <joyce@redpanda.com>
Co-authored-by: JakeSCahill <jake@redpanda.com>

* SQL GA nav (#572)

* SQL GA nav

* DOC-1993: Move Redpanda Catalogs page to sql module under Query data

Relocates redpanda-catalogs.adoc from modules/reference/pages/sql/ to
modules/sql/pages/query-data/, adds the entry under SQL > Query data in
nav.adoc, removes the old entry from Reference > Redpanda SQL Reference,
and updates the cross-link in system-catalogs/index.adoc. Structural-only;
no content changes (content rewrite is in DOC-2049).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add component-whats-new attributes for SQL feature

* Fix SQL What's New link to use full component prefix

* Add page-level What's New attributes for cloud home page

- Duplicate component-whats-new attributes as page-whats-new
- page-whats-new displays on cloud home page
- component-whats-new displays on data-platform aggregation page
- Both point to same SQL content

* Remove duplicate page-role attribute from cloud home page

Only page-layout is needed; page-role is redundant as the layout
automatically sets the correct role class.

* Add component-specific AI suggestions for chat drawer

Defines 4 cloud-specific AI suggestion questions that appear in the Ask AI chat drawer when viewing Cloud documentation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Restructure cloud landing page and fix SQL nav xrefs

- Add component cards section (Streaming, Connect, SQL) with NEW and
  BYOC badges
- Add deployment cards section (Serverless, BYOC, Dedicated)
- Remove What's New, Features, Labs, and Path comparison sections
- Comment out SQL nav items for pages that don't exist yet
- Keep only existing SQL pages active in navigation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix component name from ROOT to streaming in includes

* Fix broken includes: salesforce inputs path and cloud-topics placeholder

* Add stub pages for salesforce_cdc and salesforce_graphql inputs

* Add page-aliases to salesforce stub pages for xref resolution

* Enable parent context navigation cards

Add page-use-parent-context flag to enable hierarchical navigation
with parent context cards in the UI. This shows the Data Platform
umbrella in the product selector and the Cloud card in navigation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Remove unused page-use-parent-context flag

* Update component color to match design system

Changed from #0ea5e9 to #1D4ED8 (Cloud blue from color wheel).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix home page review feedback

- Replace em dashes with commas in descriptions
- Change lock icon to book (supported v3 icon)
- Use active voice in component and popular descriptions
- Soften marketing claims (10x faster → high-performance, 99.99% SLA → enterprise SLA)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix unescaped attributes in AsciiDoc files

Escape curly braces to prevent AsciiDoc from interpreting them as
attribute references:
- concepts.adoc: {server-id}
- disable-kc.adoc: {id}, {operation.id}
- whats-new-cloud.adoc: {subject}

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add Salesforce connector pages to navigation

Added salesforce_cdc and salesforce_graphql input pages to the navigation
in alphabetical order.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Remove conflicting page-alias from overview.adoc

The alias pointed to what-is-redpanda-sql.adoc which exists as a
separate file, causing Antora build failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Revert "Remove conflicting page-alias from overview.adoc"

This reverts commit e20dd61.

* Remove conflicting page-alias from SQL overview

The alias pointed to what-is-redpanda-sql.adoc which exists as a
separate file, causing Antora build failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Remove conflicting page-alias from substring.adoc

The alias pointed to substr.adoc which exists as a separate file.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Remove unlisted SQL pages not in rp-sql branch

These files were introduced during rebase but don't exist in the
authoritative rp-sql branch:
- substr.adoc (duplicate of substring.adoc)
- what-is-redpanda-sql.adoc (replaced by overview.adoc)
- numeric-type/index.adoc
- time-type/index.adoc

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Kat Batuigas <36839689+kbatuigas@users.noreply.github.com>
Co-authored-by: micheleRP <michele@redpanda.com>
Co-authored-by: Joyce Fee <joyce@redpanda.com>
JakeSCahill and others added 8 commits May 26, 2026 15:42
…elector xrefs

- Fix Bloblang playground Ace editor race condition by dispatching aceReady event
  when all scripts load and waiting for it before initializing editors
- Increase all .doc heading font sizes by 2px (h1: 34/42, h2: 26, h3: 22, h4: 19, h5: 18, h6: 17)
- Fix version selector xref resolution by converting module-relative xrefs to
  fully qualified format (version@component:module:page.adoc)
- Ensure Bloblang playground title visible on mobile with explicit styles
- Align bump integration fonts with main site (JetBrains Mono)
- Remove unused Inter Display font files
- Various CSS and template cleanups

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Notification text: 14px → 16px
- Validation indicator: 12px → 14px

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Search Ask AI button now opens chat drawer instead of Kapa modal
- Add missing #labs-results-num container for Algolia stats widget

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use purple gradient background matching .tb-ai-btn
- Add light/dark mode support with hover effects
- SVG icon uses currentColor for proper color inheritance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Include .tb-ai-btn, .tb-btn, .tb-link, and .tb-dropdown styles
for the standalone header widget used in API docs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Include compact footer styles used by API docs and embedded pages.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add click handlers to TOC links that immediately set the correct active
state, preventing the wrong item from being highlighted during scroll
animations. The fix also temporarily skips scroll-based updates for 100ms
after a click to prevent flicker.

Applies to both sidebar TOC and embedded dropdown TOC (mobile).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Simplified beta badge to show only text without the SVG icon.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
JakeSCahill added a commit to redpanda-data/cloud-docs that referenced this pull request May 26, 2026
* Migrate SQL docs (#521)

* Add converted SQL reference files

* Duplicate file

* Add index files

* Add SQL reference to Cloud nav

* Move reference pages to reference module

* Convert remaining docs

* Add placeholder index files

* Cleanup

* Move SQL section after RPCN

* Continue cleanup using plugin audit and review

* External links open in new window

* Minor edit to trigger deploy preview

* Migrate degraded state doc

* Minor style edits

* Address drift from Oxla changes since mid-Oct 2025

* Include CREATE TABLE and DROP changes

* Update existing pages with placeholders for pages to be created

* Another pass at style fixes

* Missing TODO

* Add remaining new reference pages to address doc drift

* Remove Oxla storage compression references

* Remove INSERT/UPDATE/DELETE from psycopg2 supported features

* Remove Oxla-specific reasons from java-jdbc unsupported list

* Remove DELETE/UPDATE references from php-pdo rowCount

* Remove CREATE TABLE/INSERT example from select.adoc

Assume that a student_data table is already created and populated with data

* Remove table duplication TIP

* Fix clumped "SELECTstatement"

* Add missing Venn diagrams to JOIN pages

* Inconsistent formatting with function names and parentheses

* Incorrect COUNT logic with HAVING

* Add NULLS FIRST/LAST, fix interval sorting

* Replace CREATE TABLE oxlafunctions example in offset.adoc

Redpanda SQL does not support CREATE TABLE without an external catalog

Example assumes precreated salaryemp table

* Unrelated "employees" text

* Move column compatibility note to set-operations index

Column type compatibility and flexible ordering
applies to all set operations (UNION, INTERSECT, EXCEPT)

* Both ROWS and RANGE frame modes are supported

* Add GEOMETRY/GEOGRAPHY

* Create sql-operators section with full operator list

* timestamp-with-time-zone formatting

* Remove internal memory representation for date type

* Add month and day conversion note

* Remove internal memory representation from bool type

* System catalogs disambiguation note and 7 new pg_* pages

* Fix nav

* Move bitwise operators

* Double check SQL examples and outputs

* Remove unix_macros

* Reorganize math and trig function pages

* Implement some deferred fixes related to old Oxla examples

* Fix anchors in xrefs

* Apply QA checklist first pass across SQL reference docs

Run 11-point QA checklist against all migrated SQL pages (148 files).
Fixes applied: remove "Please note" phrasing, fix "here" link text,
replace future tense output descriptions with present tense, simplify
"allows/enables you to" constructions, remove minimizing language,
fix wordy instructions, add missing admonition punctuation, replace
verbose output lead-ins, remove "etc.", normalize positional references,
and update stale PostgreSQL doc links to /docs/current/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Person 4 edits, including future tense, passive voice

* more Person 4 edits

* Person 4 edits

* Parallelize :description: metadata for SQL language client pages

Standardize the Java, PHP, and Python connector pages on the same
imperative "Connect to Redpanda SQL from <language> using <tool>"
template already used by the C# page and the parent index page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply Feediver1 review suggestions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Apply pending PR suggestion comments

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Minor edit - statements index

* keywords.adoc - move in nav tree, make table more scannable

* alter-table minor edit

* create-redpanda-catalog: Improve Options section

* create-storage minor edit

* Improve CREATE TABLE reference page clarity

Clarify NOTE about CREATE TABLE behavior, convert multi-value option
descriptions to lists for scannability, and rename ambiguous example
heading.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* select: review fixes

* set-show: review fixes

* show-tables minor edit

* show-nodes: review fixes

* describe: review fixes

* sql-statements review pass

* from - review pass

* Minor edit

* set-operations: review fixes

* More review fixes for sql-clauses

* other-functions review fixes

* Normalize QA fixes

* Apply edits based on doc team review

* Standardize "To do X, run:"

* Structural improvements

* Sweep for passive voice

* Person 2 style review: aggregate, window, JSON functions

Style fixes across 31 files:
- Future tense → present tense ("will return" → "returns")
- Wordy instructions ("lets you" → direct verb)
- Awkward phrasing ("Here's how" → cleaner alternatives)
- First person ("we're going to" → "This example")
- Passive "It" patterns in tables → active voice
- Positional references ("the above query" → "Output:")
- Typo fix ("ouput" → "output")

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Pass to standardize QA

* Apply suggestions from review

* Minor edits

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: micheleRP <michele@redpanda.com>
Co-authored-by: Joyce Fee <joyce@redpanda.com>
Co-authored-by: JakeSCahill <jake@redpanda.com>

* SQL GA nav (#572)

* SQL GA nav

* DOC-1993: Move Redpanda Catalogs page to sql module under Query data

Relocates redpanda-catalogs.adoc from modules/reference/pages/sql/ to
modules/sql/pages/query-data/, adds the entry under SQL > Query data in
nav.adoc, removes the old entry from Reference > Redpanda SQL Reference,
and updates the cross-link in system-catalogs/index.adoc. Structural-only;
no content changes (content rewrite is in DOC-2049).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add stub pages to nav

* Names sweep

* Minor style edit for list items

* Revert default_redpanda_catalog rename

* SQL: bytea support (#585)

* Add bytea reference

* Apply suggestions from SME review

* Update modules/reference/pages/sql/sql-data-types/bytea.adoc

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Apply suggestions from doc review

* Reorganize SQL reference nav

---------

Co-authored-by: Michele Cyran <michele@redpanda.com>

* SQL overview (#573)

* Draft SQL overview rewrite

* DOC-2049: Apply v1 Iceberg scope and Postgres positioning to overview and catalogs

Tightens the PostgreSQL framing in the overview (compatible query engine
implementing the Postgres wire protocol and a Postgres-based dialect, not
a full Postgres database). Aligns Iceberg references with the v1 product
scope: only Iceberg tables created from Iceberg-enabled Redpanda topics
are queryable; no external Iceberg lakehouses or REST catalogs. Collapses
the overview's "Query Iceberg tables" and "Bridge queries" sections into
"Query Iceberg topics".

Rewrites the Redpanda Catalogs page with the named-collection-of-source-data
framing, leads with default_redpanda_connection auto-creation, and adds a
storage > catalog > tables hierarchy. Replaces the prior CREATE-flow
walkthrough with a smaller demo using default_redpanda_connection.

Per PM SME 2026-05-07.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add TODO to flesh out sql v pg

* Move why RP SQL up

* Minor edits

* Review pass

* Change to default_redpanda_catalog

* Tweak overview learning objectives

* Review pass

* Intro rephrase

* Remove tables not describing meaningful differences with Postgres

* Clarify Iceberg benefit of querying data outside of topic retention

* Minor edit

* Apply suggestions from SME feedback

* Apply suggestions from PM review

* Minor edit

* Apply suggestions from code review

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Apply suggestions from review

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Michele Cyran <michele@redpanda.com>

* SQL GA - Get started (#571)

* Add quickstart draft

* Add deploy doc (use case 1)

* Add to nav

* Remove create kafka source

* Move show/inspect statements to deploy doc

* DOC-1856: Apply 9-node scale cap, admin framing, and GRANT mini-step

Updates the Enable Redpanda SQL page so the horizontal-scaling range is
1 to 9 nodes (down from 1 to 12) per the PM SME 2026-05-07. Adds a TODO
on the Disable Redpanda SQL section listing the specific behaviors to
confirm with engineering before publication: what state is purged, what
is deleted from object storage, the effect on topic and Schema Registry
data, in-flight query error behavior, and re-enable semantics.

Updates the quickstart so it explicitly targets an admin who can view the
SQL connection details in the Cloud Console, and adds an optional
admin-run mini-section showing how to grant a non-admin user SELECT
access on a Redpanda SQL table. Includes a TODO referencing
qa-questions.md #21 to refine the role/grant example once engineering
confirms whether the SQL GRANT statement alone enforces per-user table
access or whether an additional ACL/Kafka-side step is required.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Update modules/sql/pages/get-started/sql-quickstart.adoc

Co-authored-by: Andrew Hsu <xuzuan@gmail.com>

* Change quickstart path to use UI to produce instead of rpk

* Add deployment/connection UI updates

* Apply suggestions from SME

* Review pass

* Add wire protocol option when producing via Console

* Edits per SME input

* Apply suggestions from SME review

* Use JSON in quickstart

* Add SQL deployment UI changes

* schema subject is optional (default to topic name strategy)

* Apply suggestions from code review

Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Andrew Hsu <xuzuan@gmail.com>
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>

* SQL: OIDC and access management (#580)

* Draft OIDC content

* Update draft with source findings and TODO

* Review pass

* Review pass

* Add reference docs for GRANT, REVOKE, ROLE/USER

* Preference for USER instead of ROLE

* Review pass

* Move Connect with OIDC up in nav

* Clarify "deny-all"

* Change name and title to broaden scope

* Update user names

* Add learning objectives

* Apply suggestions from SME review

* Apply suggestions from SME review

* Review pass

* SQL: Query topics (#574)

* Start query RP topics doc

* DOC-1990: Move query directory and rewrite streaming-topics how-to

Renames modules/sql/pages/query/ to modules/sql/pages/query-data/ and
renames the streaming-topic how-to from query-redpanda-topics.adoc to
query-streaming-topics.adoc to match the SQL GA IA. Retitles the page
"Query streaming topics" and reframes the description and learning
objectives around live streaming data; bridge-query and Iceberg content
stays out of this page (DOC-2006 owns the Iceberg-topics how-to).

Adds a pointer to the Iceberg topics how-to under the intro and lists
it under Next steps. Updates the enable-prereq xref to point to the
Enable Redpanda SQL page. Drops the CREATE REDPANDA CATALOG link from
Next steps to align with the v1 framing that users do not typically
create their own Redpanda catalog. Reframes the Query data index page
description for v1 Iceberg scope (live and historical data in Redpanda
topics; no external Iceberg lakehouse).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Change rp connection to catalog

* Add wire protocol option

* schema_subject required

* Review pass

* Review pass

* Address review comments

* Add info on redpanda and redpanda_raw structs

* Review pass

* Adjust column widths

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* SQL: Auto union Iceberg and Redpanda topic (#575)

* Start reference update for SQL / Iceberg catalog

* Draft bridge queries doc

* Update query-iceberg-topics per SME feedback

* Add new iceberg catalog statements

* Clarify Iceberg benefit of querying data aged out of topic retention

* Links to Iceberg catalog docs

* Update example names

* Update based on new-features list

* Sync options from source

* Apply suggestions from SME feedback

* Apply suggestions

* Note about default schema

* Update page title

* Reframe per SME input

* Remove TODO

* SQL: struct support (#586)

* Draft struct support reference

* How to query structs/nested fields

* Review pass

* Apply suggestions from SME review

* Apply suggestions from SME review

* Apply suggestions from code review

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Review pass

* Apply suggestions from code review

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Apply suggestions

---------

Co-authored-by: Michele Cyran <michele@redpanda.com>

* SQL: OOM (#584)

* Start OOM doc draft

* Review pass

* Capitalization

* Rename file

* Update page attributes

* Rename and structure doc per SME feedback

* Apply suggestions from review

* Apply suggestions from code review

Co-authored-by: Michele Cyran <michele@redpanda.com>

---------

Co-authored-by: Michele Cyran <michele@redpanda.com>

* SQL: Expand virtual tables reference, add SHOW/DESCRIBE for new objects (#590)

* Expand virtual tables reference, add SHOW/DESCRIBE for new objects

* Title case

* Review pass

* Apply suggestions from SME review

* Fix nav

* Apply suggestion from @micheleRP

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Apply suggestions from review

* Update modules/reference/pages/sql/information-schema.adoc

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Apply suggestions from review

---------

Co-authored-by: Michele Cyran <michele@redpanda.com>

* SQL: What's New + landing page + style sweep (#597)

* Built out SQL landing page

* Add SQL to What's New in Cloud

* Page title capitalization

* Add catalog qualifier

* Backticks pass

* Edit landing page

* Remove index auto page layout

* Apply suggestions from code review

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Apply suggestions from review; sweep

* Update modules/get-started/pages/whats-new-cloud.adoc

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Lowercase subsection headings and xref labels per PG convention

- numeric.adoc: H2 subsections use backticked-lowercase type names
  (`int` type, `bigint` type, etc.) to match numeric-data-type-aliases.adoc.
- create-table.adoc, query-nested-fields.adoc: xref labels for type
  pages (ROW, JSON) now use lowercase backticked form.
- aggregate-functions/index.adoc, aggregate-functions/statistics/index.adoc,
  window-functions/index.adoc: function-name xref labels lowercased to
  backticked function-call form (sum() instead of SUM, regr_avgx()
  instead of REGR_AVGX, etc.). DISTINCT xref label preserved as
  uppercase (SQL keyword, not a function).
- substring.adoc, position.adoc: cross-reference labels for substr and
  strpos lowercased.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* DOC-2207: Document SELECT DISTINCT

Add a SELECT DISTINCT section to select.adoc covering the supported
form and the unsupported PostgreSQL-specific DISTINCT ON form.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Minor edit

* Consolidate substr and substring

* Uppercase keyword-syntax and conditional functions per PG/CockroachDB convention

Function-like operators that use SQL keyword syntax (EXTRACT, POSITION,
SUBSTRING, SUBSTR) and conditional expressions (COALESCE, NULLIF,
GREATEST, LEAST) get UPPERCASE in H1, body prose, and xref labels,
matching how PostgreSQL and CockroachDB docs classify them.

Regular call-syntax functions (sum, count, avg, abs, log, concat,
length, etc.) stay lowercase. SQL keyword DISTINCT stays uppercase.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add missing index page

---------

Co-authored-by: Michele Cyran <michele@redpanda.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: Michele Cyran <michele@redpanda.com>

* Address PR 570 review comments

- sql/index.adoc: rewrite with AsciiDoc list-continuation format and
  align order/contents with nav.adoc, adding Operators, System Catalogs,
  System Virtual Tables, and Transactions entries (per micheleRP).
- starts-with.adoc: reconcile the prose, INSERT, and results table for
  the empty-string-second-argument case. The example uses '' (not an
  omitted argument or NULL), so update the special-case bullet,
  section heading, intro, and results-table empty-string row to match
  (per coderabbitai).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Suggestions from auto review

* Audit pass

* Apply nav order suggestion

* Add new gloss terms

* SQL schema reference page rewrite

* Minor edit

* Nav title case

* Update Cloud docs landing page to component-home-v3 (#578)

* Update Cloud docs landing page to component-home-v3

Migrates Cloud docs landing page to use the new component-home-v3 layout
with configurable content via page attributes.

## Deploy Section
- :page-deploy-title: Section heading
- :page-deploy-N-title/desc/link/icon: Card content (up to 3)

## Popular Topics Section
- :page-popular-title: Section heading
- :page-popular-N-title/desc/link/icon: Card content (up to 4)

## Labs Section
- :page-labs-title: Section heading
- :page-labs-link: Link to all labs
- :page-labs-N-title/link: Individual lab links

## Stats Bar
- :page-stats: Pipe-separated stats with ;; delimiter

Related: redpanda-data/docs-ui#376

* Update component xrefs for unified navigation

- Updated xrefs and includes: ROOT → streaming
- Updated xrefs: redpanda-connect → connect

This allows cloud-docs to correctly include single-sourced content
from the renamed streaming component.

* Rename Redpanda Self-Managed to Redpanda Streaming

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix cloud landing page hero - add missing page-layout and hero-description

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add product-name attribute for single-sourced content

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Update product-name attributes with clear naming

- product-name: Redpanda Streaming (for self-managed references)
- cloud-product-name: Redpanda Cloud (for cloud references)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Remove local product-name attributes (now in shared branch)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Rename page-header-data to component-metadata and remove section field

- More accurate name: component-level metadata, not page-level
- Remove section field (deprecated - breadcrumbs use page-navigation config)
- Update Cloud component configuration

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Update Cloud landing page: hero text, remove deploy section, update labs

- Hero: Add "Streaming, Connect, and SQL built in" to clarify offerings
- Remove "Get started with Redpanda Cloud" deploy section per PM feedback
- Update labs links to use Antora resource IDs (labs:ai-agents:langchain-agent.adoc, etc.)
- All labs are Cloud-compatible (have page-cloud: true attribute)
- Decision matrix remains for Serverless vs BYOC choice

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix mcp-setup xref to use correct module

Change xref:home:streaming:mcp-setup.adoc to xref:home:ROOT:mcp-setup.adoc

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Migrate SQL docs (#521)

* Add converted SQL reference files

* Duplicate file

* Add index files

* Add SQL reference to Cloud nav

* Move reference pages to reference module

* Convert remaining docs

* Add placeholder index files

* Cleanup

* Move SQL section after RPCN

* Continue cleanup using plugin audit and review

* External links open in new window

* Minor edit to trigger deploy preview

* Migrate degraded state doc

* Minor style edits

* Address drift from Oxla changes since mid-Oct 2025

* Include CREATE TABLE and DROP changes

* Update existing pages with placeholders for pages to be created

* Another pass at style fixes

* Missing TODO

* Add remaining new reference pages to address doc drift

* Remove Oxla storage compression references

* Remove INSERT/UPDATE/DELETE from psycopg2 supported features

* Remove Oxla-specific reasons from java-jdbc unsupported list

* Remove DELETE/UPDATE references from php-pdo rowCount

* Remove CREATE TABLE/INSERT example from select.adoc

Assume that a student_data table is already created and populated with data

* Remove table duplication TIP

* Fix clumped "SELECTstatement"

* Add missing Venn diagrams to JOIN pages

* Inconsistent formatting with function names and parentheses

* Incorrect COUNT logic with HAVING

* Add NULLS FIRST/LAST, fix interval sorting

* Replace CREATE TABLE oxlafunctions example in offset.adoc

Redpanda SQL does not support CREATE TABLE without an external catalog

Example assumes precreated salaryemp table

* Unrelated "employees" text

* Move column compatibility note to set-operations index

Column type compatibility and flexible ordering
applies to all set operations (UNION, INTERSECT, EXCEPT)

* Both ROWS and RANGE frame modes are supported

* Add GEOMETRY/GEOGRAPHY

* Create sql-operators section with full operator list

* timestamp-with-time-zone formatting

* Remove internal memory representation for date type

* Add month and day conversion note

* Remove internal memory representation from bool type

* System catalogs disambiguation note and 7 new pg_* pages

* Fix nav

* Move bitwise operators

* Double check SQL examples and outputs

* Remove unix_macros

* Reorganize math and trig function pages

* Implement some deferred fixes related to old Oxla examples

* Fix anchors in xrefs

* Apply QA checklist first pass across SQL reference docs

Run 11-point QA checklist against all migrated SQL pages (148 files).
Fixes applied: remove "Please note" phrasing, fix "here" link text,
replace future tense output descriptions with present tense, simplify
"allows/enables you to" constructions, remove minimizing language,
fix wordy instructions, add missing admonition punctuation, replace
verbose output lead-ins, remove "etc.", normalize positional references,
and update stale PostgreSQL doc links to /docs/current/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Person 4 edits, including future tense, passive voice

* more Person 4 edits

* Person 4 edits

* Parallelize :description: metadata for SQL language client pages

Standardize the Java, PHP, and Python connector pages on the same
imperative "Connect to Redpanda SQL from <language> using <tool>"
template already used by the C# page and the parent index page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply Feediver1 review suggestions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Apply pending PR suggestion comments

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Minor edit - statements index

* keywords.adoc - move in nav tree, make table more scannable

* alter-table minor edit

* create-redpanda-catalog: Improve Options section

* create-storage minor edit

* Improve CREATE TABLE reference page clarity

Clarify NOTE about CREATE TABLE behavior, convert multi-value option
descriptions to lists for scannability, and rename ambiguous example
heading.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* select: review fixes

* set-show: review fixes

* show-tables minor edit

* show-nodes: review fixes

* describe: review fixes

* sql-statements review pass

* from - review pass

* Minor edit

* set-operations: review fixes

* More review fixes for sql-clauses

* other-functions review fixes

* Normalize QA fixes

* Apply edits based on doc team review

* Standardize "To do X, run:"

* Structural improvements

* Sweep for passive voice

* Person 2 style review: aggregate, window, JSON functions

Style fixes across 31 files:
- Future tense → present tense ("will return" → "returns")
- Wordy instructions ("lets you" → direct verb)
- Awkward phrasing ("Here's how" → cleaner alternatives)
- First person ("we're going to" → "This example")
- Passive "It" patterns in tables → active voice
- Positional references ("the above query" → "Output:")
- Typo fix ("ouput" → "output")

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Pass to standardize QA

* Apply suggestions from review

* Minor edits

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: micheleRP <michele@redpanda.com>
Co-authored-by: Joyce Fee <joyce@redpanda.com>
Co-authored-by: JakeSCahill <jake@redpanda.com>

* SQL GA nav (#572)

* SQL GA nav

* DOC-1993: Move Redpanda Catalogs page to sql module under Query data

Relocates redpanda-catalogs.adoc from modules/reference/pages/sql/ to
modules/sql/pages/query-data/, adds the entry under SQL > Query data in
nav.adoc, removes the old entry from Reference > Redpanda SQL Reference,
and updates the cross-link in system-catalogs/index.adoc. Structural-only;
no content changes (content rewrite is in DOC-2049).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add component-whats-new attributes for SQL feature

* Fix SQL What's New link to use full component prefix

* Add page-level What's New attributes for cloud home page

- Duplicate component-whats-new attributes as page-whats-new
- page-whats-new displays on cloud home page
- component-whats-new displays on data-platform aggregation page
- Both point to same SQL content

* Remove duplicate page-role attribute from cloud home page

Only page-layout is needed; page-role is redundant as the layout
automatically sets the correct role class.

* Add component-specific AI suggestions for chat drawer

Defines 4 cloud-specific AI suggestion questions that appear in the Ask AI chat drawer when viewing Cloud documentation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Restructure cloud landing page and fix SQL nav xrefs

- Add component cards section (Streaming, Connect, SQL) with NEW and
  BYOC badges
- Add deployment cards section (Serverless, BYOC, Dedicated)
- Remove What's New, Features, Labs, and Path comparison sections
- Comment out SQL nav items for pages that don't exist yet
- Keep only existing SQL pages active in navigation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix component name from ROOT to streaming in includes

* Fix broken includes: salesforce inputs path and cloud-topics placeholder

* Add stub pages for salesforce_cdc and salesforce_graphql inputs

* Add page-aliases to salesforce stub pages for xref resolution

* Enable parent context navigation cards

Add page-use-parent-context flag to enable hierarchical navigation
with parent context cards in the UI. This shows the Data Platform
umbrella in the product selector and the Cloud card in navigation.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Remove unused page-use-parent-context flag

* Update component color to match design system

Changed from #0ea5e9 to #1D4ED8 (Cloud blue from color wheel).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix home page review feedback

- Replace em dashes with commas in descriptions
- Change lock icon to book (supported v3 icon)
- Use active voice in component and popular descriptions
- Soften marketing claims (10x faster → high-performance, 99.99% SLA → enterprise SLA)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix unescaped attributes in AsciiDoc files

Escape curly braces to prevent AsciiDoc from interpreting them as
attribute references:
- concepts.adoc: {server-id}
- disable-kc.adoc: {id}, {operation.id}
- whats-new-cloud.adoc: {subject}

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Add Salesforce connector pages to navigation

Added salesforce_cdc and salesforce_graphql input pages to the navigation
in alphabetical order.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Remove conflicting page-alias from overview.adoc

The alias pointed to what-is-redpanda-sql.adoc which exists as a
separate file, causing Antora build failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Revert "Remove conflicting page-alias from overview.adoc"

This reverts commit e20dd61.

* Remove conflicting page-alias from SQL overview

The alias pointed to what-is-redpanda-sql.adoc which exists as a
separate file, causing Antora build failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Remove conflicting page-alias from substring.adoc

The alias pointed to substr.adoc which exists as a separate file.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Remove unlisted SQL pages not in rp-sql branch

These files were introduced during rebase but don't exist in the
authoritative rp-sql branch:
- substr.adoc (duplicate of substring.adoc)
- what-is-redpanda-sql.adoc (replaced by overview.adoc)
- numeric-type/index.adoc
- time-type/index.adoc

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Kat Batuigas <36839689+kbatuigas@users.noreply.github.com>
Co-authored-by: micheleRP <michele@redpanda.com>
Co-authored-by: Joyce Fee <joyce@redpanda.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: micheleRP <michele@redpanda.com>
Co-authored-by: Joyce Fee <joyce@redpanda.com>
Co-authored-by: JakeSCahill <jake@redpanda.com>
Co-authored-by: Andrew Hsu <xuzuan@gmail.com>
Co-authored-by: Joyce Fee <102751339+Feediver1@users.noreply.github.com>
Co-authored-by: Jake Cahill <45230295+JakeSCahill@users.noreply.github.com>
JakeSCahill and others added 8 commits May 26, 2026 19:04
These elements don't work in the bump widget context since the chat
functionality and main site JavaScript aren't available on API pages.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updated filter on .theme-image to show dark icon in light mode and
light icon in dark mode, matching the main site styling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add search button (DocSearch) for standalone API widget
- Restore Ask AI button (was incorrectly hidden in widget)
- Restore mobile overflow menu (was incorrectly hidden in widget)
- Add CSS styles for new search button with light/dark mode support

The search button only appears in the standalone widget context
(isStandaloneWidget=true) as regular pages have search elsewhere.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Ask AI button with data-action="open-chat" now works in the
standalone widget context (API pages) by directly opening Kapa
when no chat panel element exists.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add CSS to hide .tb-overflow-menu by default (desktop) and only
show it on mobile (max-width: 480px).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Breadcrumbs are not needed in API docs since Bump.sh has its own
navigation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace navbar-brand with sb-head structure for standalone widget
  (shows "Redpanda / Documentation" with logo)
- Exclude Ask AI button from standalone widget (not working in that context)
- Keep breadcrumbs excluded from standalone widget
- Keep Search button for standalone widget
- Add CSS styles for sb-head component in header-bump.css

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@JakeSCahill JakeSCahill merged commit 02429bb into main May 26, 2026
8 checks passed
@JakeSCahill JakeSCahill deleted the feature/badge-byoc-only branch May 26, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants