// AUTO-GENERATED by scripts/generate-react-bindings.mjs — do not edit by hand. Source: src/web-components/components.config.ts
import { defineCustomElement } from 'vue'
import ButtonBridge from '../canonical/ButtonBridge.vue'
import InputBoxLine from '../canonical/InputBoxLine.vue'
import FormItem from '../canonical/FormItem.vue'
import Badge from '../canonical/Badge.vue'
import PillStatus from '../canonical/PillStatus.vue'
import Progress from '../canonical/Progress.vue'
import Rating from '../canonical/Rating.vue'
import BreadcrumbItem from '../canonical/BreadcrumbItem.vue'
import TopBar from '../canonical/TopBar.vue'
import Switch from '../canonical/Switch.vue'
import CheckBox from '../canonical/CheckBox.vue'
import Radio from '../canonical/Radio.vue'
import PillCounter from '../canonical/PillCounter.vue'
import Breadcrumb from '../canonical/Breadcrumb.vue'
import InputBoxFilled from '../canonical/InputBoxFilled.vue'
import InputNumber from '../canonical/InputNumber.vue'
import Slider from '../canonical/Slider.vue'
import Pagination from '../canonical/Pagination.vue'
import Tab from '../canonical/Tab.vue'
import TabList from '../canonical/TabList.vue'
import TabItem from '../canonical/TabItem.vue'
import Steps from '../canonical/Steps.vue'
import StepItem from '../canonical/StepItem.vue'
import PopupBox from '../canonical/PopupBox.vue'
import SelectBoxLine from '../canonical/SelectBoxLine.vue'
import SelectBoxFilled from '../canonical/SelectBoxFilled.vue'
import DropDownListSelect from '../canonical/DropDownListSelect.vue'
import Tooltip from '../canonical/Tooltip.vue'
import Notification from '../canonical/Notification.vue'
import Message from '../canonical/Message.vue'
import Table from '../canonical/Table.vue'
import Chart from '../canonical/Chart.vue'
import Logo from '../canonical/Logo.vue'
import MenuList from '../canonical/MenuList.vue'
import UserMenu from '../canonical/UserMenu.vue'
import NestedStyle_src_components_Pagination_Pagination from '../components/Pagination/Pagination.vue'
import NestedStyle_src_components_Button_Button from '../components/Button/Button.vue'
import NestedStyle_src_components_Icon_Icon from '../components/Icon/Icon.vue'
import NestedStyle_src_components_Input_Input from '../components/Input/Input.vue'
import NestedStyle_src_canonical_SelectBoxBase from '../canonical/SelectBoxBase.vue'
import NestedStyle_src_components_Checkbox_Checkbox from '../components/Checkbox/Checkbox.vue'
import BasePopupBox from '../components/PopupBox/PopupBox.vue'

// Tokens live at document.documentElement (:root), provided by the consumer
// importing tokens/variables.css at the document level. CSS custom properties
// defined on :root inherit across the shadow-DOM boundary into these elements,
// so no per-element style injection is needed for default (shadow-DOM) components.
export const TvuButton = defineCustomElement(ButtonBridge)
export const TvuInput = defineCustomElement(InputBoxLine)
export const TvuFormItem = defineCustomElement(FormItem)
export const TvuBadge = defineCustomElement(Badge)
export const TvuPillStatus = defineCustomElement(PillStatus)
export const TvuProgress = defineCustomElement(Progress)
export const TvuRating = defineCustomElement(Rating)
export const TvuBreadcrumbItem = defineCustomElement(BreadcrumbItem)
export const TvuTopBar = defineCustomElement(TopBar)
export const TvuSwitch = defineCustomElement(Switch)
export const TvuCheckBox = defineCustomElement(CheckBox)
export const TvuRadio = defineCustomElement(Radio)
export const TvuPillCounter = defineCustomElement(PillCounter)
export const TvuBreadcrumb = defineCustomElement(Breadcrumb)
export const TvuInputBoxFilled = defineCustomElement(InputBoxFilled)
export const TvuInputNumber = defineCustomElement(InputNumber)
export const TvuSlider = defineCustomElement(Slider)
export const TvuPagination = defineCustomElement(Pagination, { shadowRoot: false })
export const TvuTab = defineCustomElement(Tab)
export const TvuTabList = defineCustomElement(TabList)
export const TvuTabItem = defineCustomElement(TabItem)
export const TvuSteps = defineCustomElement(Steps)
export const TvuStepItem = defineCustomElement(StepItem)
export const TvuPopupBox = defineCustomElement(PopupBox, { shadowRoot: false })
export const TvuSelectBoxLine = defineCustomElement(SelectBoxLine, { shadowRoot: false })
export const TvuSelectBoxFilled = defineCustomElement(SelectBoxFilled, { shadowRoot: false })
export const TvuDropDownListSelect = defineCustomElement(DropDownListSelect, { shadowRoot: false })
export const TvuTooltip = defineCustomElement(Tooltip)
export const TvuNotification = defineCustomElement(Notification)
export const TvuMessage = defineCustomElement(Message)
export const TvuTable = defineCustomElement(Table)
export const TvuChart = defineCustomElement(Chart)
export const TvuLogo = defineCustomElement(Logo)
export const TvuMenuList = defineCustomElement(MenuList)
export const TvuUserMenu = defineCustomElement(UserMenu)

// shadowRoot:false components render in LIGHT DOM, where Vue 3.5 deliberately does NOT
// inject the SFC's compiled <style> (it emits a warning instead — see runtime-dom
// `_applyStyles` guard). Inject them into the document head manually so light-DOM nodes
// AND <Teleport to="body"> content are styled. The compiled `styles` array carries the
// SAME scoped data-v selectors as the rendered nodes, so this is scope-safe. A missing
// source surfaces as A_TRUE_DRIFT in the render gate (unstyled content).
function injectLightDomStyles(id: string, comp: any) {
  if (typeof document === 'undefined') return
  const styles: string[] | undefined = comp && comp.styles
  if (!styles || !styles.length) return
  const markerId = `tvu-ce-light-styles-${id}`
  if (document.getElementById(markerId)) return
  const styleEl = document.createElement('style')
  styleEl.id = markerId
  styleEl.textContent = styles.join('\n')
  document.head.appendChild(styleEl)
}
injectLightDomStyles('pagination', Pagination)
injectLightDomStyles('pagination-NestedStyle_src_components_Pagination_Pagination', NestedStyle_src_components_Pagination_Pagination)
injectLightDomStyles('pagination-NestedStyle_src_components_Button_Button', NestedStyle_src_components_Button_Button)
injectLightDomStyles('pagination-NestedStyle_src_components_Icon_Icon', NestedStyle_src_components_Icon_Icon)
injectLightDomStyles('pagination-NestedStyle_src_components_Input_Input', NestedStyle_src_components_Input_Input)
injectLightDomStyles('pagination-NestedStyle_src_canonical_SelectBoxBase', NestedStyle_src_canonical_SelectBoxBase)
injectLightDomStyles('pagination-NestedStyle_src_components_Checkbox_Checkbox', NestedStyle_src_components_Checkbox_Checkbox)
injectLightDomStyles('popup-box', PopupBox)
injectLightDomStyles('popup-box-BasePopupBox', BasePopupBox)
injectLightDomStyles('popup-box-NestedStyle_src_components_Button_Button', NestedStyle_src_components_Button_Button)
injectLightDomStyles('popup-box-NestedStyle_src_components_Icon_Icon', NestedStyle_src_components_Icon_Icon)
injectLightDomStyles('select-box-line', SelectBoxLine)
injectLightDomStyles('select-box-line-NestedStyle_src_canonical_SelectBoxBase', NestedStyle_src_canonical_SelectBoxBase)
injectLightDomStyles('select-box-line-NestedStyle_src_components_Icon_Icon', NestedStyle_src_components_Icon_Icon)
injectLightDomStyles('select-box-line-NestedStyle_src_components_Checkbox_Checkbox', NestedStyle_src_components_Checkbox_Checkbox)
injectLightDomStyles('select-box-filled', SelectBoxFilled)
injectLightDomStyles('select-box-filled-NestedStyle_src_canonical_SelectBoxBase', NestedStyle_src_canonical_SelectBoxBase)
injectLightDomStyles('select-box-filled-NestedStyle_src_components_Icon_Icon', NestedStyle_src_components_Icon_Icon)
injectLightDomStyles('select-box-filled-NestedStyle_src_components_Checkbox_Checkbox', NestedStyle_src_components_Checkbox_Checkbox)
injectLightDomStyles('drop-down-list-select', DropDownListSelect)
injectLightDomStyles('drop-down-list-select-NestedStyle_src_components_Checkbox_Checkbox', NestedStyle_src_components_Checkbox_Checkbox)
injectLightDomStyles('drop-down-list-select-NestedStyle_src_components_Icon_Icon', NestedStyle_src_components_Icon_Icon)

export function registerTvuElements() {
  if (!customElements.get('tvu-button')) customElements.define('tvu-button', TvuButton)
  if (!customElements.get('tvu-input')) customElements.define('tvu-input', TvuInput)
  if (!customElements.get('tvu-form-item')) customElements.define('tvu-form-item', TvuFormItem)
  if (!customElements.get('tvu-badge')) customElements.define('tvu-badge', TvuBadge)
  if (!customElements.get('tvu-pill-status')) customElements.define('tvu-pill-status', TvuPillStatus)
  if (!customElements.get('tvu-progress')) customElements.define('tvu-progress', TvuProgress)
  if (!customElements.get('tvu-rating')) customElements.define('tvu-rating', TvuRating)
  if (!customElements.get('tvu-breadcrumb-item')) customElements.define('tvu-breadcrumb-item', TvuBreadcrumbItem)
  if (!customElements.get('tvu-top-bar')) customElements.define('tvu-top-bar', TvuTopBar)
  if (!customElements.get('tvu-switch')) customElements.define('tvu-switch', TvuSwitch)
  if (!customElements.get('tvu-check-box')) customElements.define('tvu-check-box', TvuCheckBox)
  if (!customElements.get('tvu-radio')) customElements.define('tvu-radio', TvuRadio)
  if (!customElements.get('tvu-pill-counter')) customElements.define('tvu-pill-counter', TvuPillCounter)
  if (!customElements.get('tvu-breadcrumb')) customElements.define('tvu-breadcrumb', TvuBreadcrumb)
  if (!customElements.get('tvu-input-box-filled')) customElements.define('tvu-input-box-filled', TvuInputBoxFilled)
  if (!customElements.get('tvu-input-number')) customElements.define('tvu-input-number', TvuInputNumber)
  if (!customElements.get('tvu-slider')) customElements.define('tvu-slider', TvuSlider)
  if (!customElements.get('tvu-pagination')) customElements.define('tvu-pagination', TvuPagination)
  if (!customElements.get('tvu-tab')) customElements.define('tvu-tab', TvuTab)
  if (!customElements.get('tvu-tab-list')) customElements.define('tvu-tab-list', TvuTabList)
  if (!customElements.get('tvu-tab-item')) customElements.define('tvu-tab-item', TvuTabItem)
  if (!customElements.get('tvu-steps')) customElements.define('tvu-steps', TvuSteps)
  if (!customElements.get('tvu-step-item')) customElements.define('tvu-step-item', TvuStepItem)
  if (!customElements.get('tvu-popup-box')) customElements.define('tvu-popup-box', TvuPopupBox)
  if (!customElements.get('tvu-select-box-line')) customElements.define('tvu-select-box-line', TvuSelectBoxLine)
  if (!customElements.get('tvu-select-box-filled')) customElements.define('tvu-select-box-filled', TvuSelectBoxFilled)
  if (!customElements.get('tvu-drop-down-list-select')) customElements.define('tvu-drop-down-list-select', TvuDropDownListSelect)
  if (!customElements.get('tvu-tooltip')) customElements.define('tvu-tooltip', TvuTooltip)
  if (!customElements.get('tvu-notification')) customElements.define('tvu-notification', TvuNotification)
  if (!customElements.get('tvu-message')) customElements.define('tvu-message', TvuMessage)
  if (!customElements.get('tvu-table')) customElements.define('tvu-table', TvuTable)
  if (!customElements.get('tvu-chart')) customElements.define('tvu-chart', TvuChart)
  if (!customElements.get('tvu-logo')) customElements.define('tvu-logo', TvuLogo)
  if (!customElements.get('tvu-menu-list')) customElements.define('tvu-menu-list', TvuMenuList)
  if (!customElements.get('tvu-user-menu')) customElements.define('tvu-user-menu', TvuUserMenu)
}

registerTvuElements()
