The billing settings tab strip, defined once.
It used to be hand-rolled markup repeated verbatim in four templates —
settings, provider_settings, currencies and subscription_types —
each hardcoding tab-active on its own entry. Adding a fifth page meant
editing four files, any one of which could drift, and it is why a daisyUI
class rename needed four edits in this module alone.
Rendering goes through core's <.nav_tabs>, so the strip picks up the
shared markup, keyboard/ARIA roles and styling rather than restating them.
Summary
Functions
Renders the strip with active_tab marked.
Functions
Renders the strip with active_tab marked.
Paths are passed raw — nav_tabs runs them through the core route helper,
which is what applies the install's URL prefix and locale segment.
The key is :path, not the newer :navigate. This module pins core
~> 2.0 and a conformance test enforces that wide pin, so it has to work
against every 2.x. Tab link keys live in a runtime map, which no attr
declaration can validate, so a :navigate here would not fail to compile
against an older core — it would fall through to the button branch and
render a strip of dead tabs. :path has existed since 1.7.82.
Attributes
active_tab(:string) (required) - Must be one of"general","providers","currencies", or"subscription_types".class(:string) - Defaults to"mb-6".