Customization

Suggestion chips

Give a suggestion a tourSlug to launch a saved authored tour. Suggestions without a slug send the label as an assistant request, which may produce an answer and an appropriate guide offer.

<NavieoNextProvider
  suggestions={[
    { label: "Billing settings", tag: "Popular", tourSlug: "billing-settings" },
    { label: "Product tour", tourSlug: "product-tour" },
  ]}
>
  {children}
</NavieoNextProvider>

Framework navigation

Use NavieoNextProvider for Next.js App Router. It owns pathname observation and router.push() integration.

For another React SPA, use the generic provider and pass the router:

import { NavieoProvider } from "@navieo/react";
import { useNavigate } from "react-router-dom";

function Providers({ children }) {
  const navigate = useNavigate();
  return (
    <NavieoProvider onNavigate={(route) => navigate(route)}>
      {children}
    </NavieoProvider>
  );
}

Without onNavigate, the generic provider uses window.location.href.

Widget visibility

Use showWidget={false} for a host-controlled visibility decision. Dashboard configuration also supports a global enabled switch and scanner-derived hidden routes.

Hook controls

Use playTour(slug) for a saved authored tour. Use startTour(query) to send an assistant request; it does not directly play authored steps or guarantee a guide offer.

const {
  openChat,
  closeChat,
  playTour,
  endTour,
  nextStep,
  prevStep,
  goToStep,
} = useNavieo();

await playTour("first-project");

Step controls affect the currently active authored tour. They do not turn an assistant answer into authored steps.

Theming

Use theme="light", theme="dark", or a custom theme object. Explicit provider values win over remote dashboard appearance. See Themes.

Selector and product-code boundary

Navieo derives selectors from ordinary application semantics such as accessible names, existing IDs, links, roles, and form relationships. Build accessible product markup for users and tests, not Navieo-specific targeting attributes.

The scanner supplies indexed destinations and approved metadata; a live link can be eligible even without a scanner edge. Missing identity or policy evidence must not be repaired with site-specific selectors, labels, route exceptions, or targeting attributes just to make one integration pass.

The supported owner-denial annotation, data-navieo-navigation-intent="exclude", is different: it declares an action unsafe for dynamic guidance and never grants authority. See Live Guidance & Privacy.