[{"data":1,"prerenderedAt":636},["ShallowReactive",2],{"locale-alternates":3,"docs-nav-en":134,"api-BbTabs":377,"page-en-\u002Fcomponents\u002Fbb-tabs\u002Fapi":424},{"\u002Fit\u002Fcomponenti\u002Fbb-accordion":4,"\u002Fen\u002Fcomponents\u002Fbb-accordion":5,"\u002Fit\u002Fcomponenti\u002Fbb-alert":6,"\u002Fen\u002Fcomponents\u002Fbb-alert":7,"\u002Fit\u002Fcomponenti\u002Fbb-asterisk":8,"\u002Fen\u002Fcomponents\u002Fbb-asterisk":9,"\u002Fit\u002Fcomponenti\u002Fbb-avatar":10,"\u002Fen\u002Fcomponents\u002Fbb-avatar":11,"\u002Fit\u002Fcomponenti\u002Fbb-badge":12,"\u002Fen\u002Fcomponents\u002Fbb-badge":13,"\u002Fit\u002Fcomponenti\u002Fbb-base-button":14,"\u002Fen\u002Fcomponents\u002Fbb-base-button":15,"\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs":16,"\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs":17,"\u002Fit\u002Fcomponenti\u002Fbb-button":18,"\u002Fen\u002Fcomponents\u002Fbb-button":19,"\u002Fit\u002Fcomponenti\u002Fbb-calendar":20,"\u002Fen\u002Fcomponents\u002Fbb-calendar":21,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox":22,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":23,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":24,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":25,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":26,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":27,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":28,"\u002Fen\u002Fcomponents\u002Fbb-color-input":29,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":30,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":31,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":32,"\u002Fen\u002Fcomponents\u002Fbb-confirm":33,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":34,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":35,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":36,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":37,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":38,"\u002Fen\u002Fcomponents\u002Fbb-dialog":39,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":40,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":41,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":42,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":43,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":44,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":45,"\u002Fit\u002Fcomponenti\u002Fbb-form":46,"\u002Fen\u002Fcomponents\u002Fbb-form":47,"\u002Fit\u002Fcomponenti\u002Fbb-hover-card":48,"\u002Fen\u002Fcomponents\u002Fbb-hover-card":49,"\u002Fit\u002Fcomponenti\u002Fbb-icon":50,"\u002Fen\u002Fcomponents\u002Fbb-icon":51,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":52,"\u002Fen\u002Fcomponents\u002Fbb-indicator":53,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":54,"\u002Fen\u002Fcomponents\u002Fbb-number-input":55,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":56,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":57,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":58,"\u002Fen\u002Fcomponents\u002Fbb-pagination":59,"\u002Fit\u002Fcomponenti\u002Fbb-popover":60,"\u002Fen\u002Fcomponents\u002Fbb-popover":61,"\u002Fit\u002Fcomponenti\u002Fbb-progress":62,"\u002Fen\u002Fcomponents\u002Fbb-progress":63,"\u002Fit\u002Fcomponenti\u002Fbb-radio":64,"\u002Fen\u002Fcomponents\u002Fbb-radio":65,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":66,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":67,"\u002Fit\u002Fcomponenti\u002Fbb-rating":68,"\u002Fen\u002Fcomponents\u002Fbb-rating":69,"\u002Fit\u002Fcomponenti\u002Fbb-select":70,"\u002Fen\u002Fcomponents\u002Fbb-select":71,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":72,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":73,"\u002Fit\u002Fcomponenti\u002Fbb-slider":74,"\u002Fen\u002Fcomponents\u002Fbb-slider":75,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":76,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":77,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":78,"\u002Fen\u002Fcomponents\u002Fbb-spinner":79,"\u002Fit\u002Fcomponenti\u002Fbb-switch":80,"\u002Fen\u002Fcomponents\u002Fbb-switch":81,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":82,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":83,"\u002Fit\u002Fcomponenti\u002Fbb-table":84,"\u002Fen\u002Fcomponents\u002Fbb-table":85,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":86,"\u002Fen\u002Fcomponents\u002Fbb-tabs":87,"\u002Fit\u002Fcomponenti\u002Fbb-tag":88,"\u002Fen\u002Fcomponents\u002Fbb-tag":89,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":90,"\u002Fen\u002Fcomponents\u002Fbb-text-input":91,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":92,"\u002Fen\u002Fcomponents\u002Fbb-textarea":93,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":94,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":95,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":96,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":97,"\u002Fit\u002Fcomponenti\u002Fbb-toast":98,"\u002Fen\u002Fcomponents\u002Fbb-toast":99,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":100,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":101,"\u002Fit\u002Fcomponenti\u002Fbb-tree":102,"\u002Fen\u002Fcomponents\u002Fbb-tree":103,"\u002Fit\u002Fguide\u002Fadoption-checklist":104,"\u002Fen\u002Fguides\u002Fadoption-checklist":105,"\u002Fit\u002Fguide\u002Fai-agents":106,"\u002Fen\u002Fguides\u002Fai-agents":107,"\u002Fit\u002Fguide\u002Fcoherence":108,"\u002Fen\u002Fguides\u002Fcoherence":109,"\u002Fit\u002Fguide\u002Fdesign-language":110,"\u002Fen\u002Fguides\u002Fdesign-language":111,"\u002Fit\u002Fguide\u002Fdesign-tokens":112,"\u002Fen\u002Fguides\u002Fdesign-tokens":113,"\u002Fit\u002Fguide\u002Ffetching-data":114,"\u002Fen\u002Fguides\u002Ffetching-data":115,"\u002Fit\u002Fguide\u002Ficons":116,"\u002Fen\u002Fguides\u002Ficons":117,"\u002Fit\u002Fguide\u002Finertia":118,"\u002Fen\u002Fguides\u002Finertia":119,"\u002Fit\u002Fguide\u002Finstallation":120,"\u002Fen\u002Fguides\u002Finstallation":121,"\u002Fit\u002Fguide\u002Fmigration":122,"\u002Fen\u002Fguides\u002Fmigration":123,"\u002Fit\u002Fguide\u002Fnuxt":124,"\u002Fen\u002Fguides\u002Fnuxt":125,"\u002Fit\u002Fguide\u002Foptions-and-items":126,"\u002Fen\u002Fguides\u002Foptions-and-items":127,"\u002Fit\u002Fguide\u002Fpassthrough":128,"\u002Fen\u002Fguides\u002Fpassthrough":129,"\u002Fit\u002Fguide\u002Fpreset-components":130,"\u002Fen\u002Fguides\u002Fpreset-components":131,"\u002Fit\u002Fguide\u002Fvalidated-forms":132,"\u002Fen\u002Fguides\u002Fvalidated-forms":133},"\u002Fen\u002Fcomponents\u002Fbb-accordion","\u002Fit\u002Fcomponenti\u002Fbb-accordion","\u002Fen\u002Fcomponents\u002Fbb-alert","\u002Fit\u002Fcomponenti\u002Fbb-alert","\u002Fen\u002Fcomponents\u002Fbb-asterisk","\u002Fit\u002Fcomponenti\u002Fbb-asterisk","\u002Fen\u002Fcomponents\u002Fbb-avatar","\u002Fit\u002Fcomponenti\u002Fbb-avatar","\u002Fen\u002Fcomponents\u002Fbb-badge","\u002Fit\u002Fcomponenti\u002Fbb-badge","\u002Fen\u002Fcomponents\u002Fbb-base-button","\u002Fit\u002Fcomponenti\u002Fbb-base-button","\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs","\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs","\u002Fen\u002Fcomponents\u002Fbb-button","\u002Fit\u002Fcomponenti\u002Fbb-button","\u002Fen\u002Fcomponents\u002Fbb-calendar","\u002Fit\u002Fcomponenti\u002Fbb-calendar","\u002Fen\u002Fcomponents\u002Fbb-checkbox","\u002Fit\u002Fcomponenti\u002Fbb-checkbox","\u002Fen\u002Fcomponents\u002Fbb-checkbox-group","\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group","\u002Fen\u002Fcomponents\u002Fbb-collapsible","\u002Fit\u002Fcomponenti\u002Fbb-collapsible","\u002Fen\u002Fcomponents\u002Fbb-color-input","\u002Fit\u002Fcomponenti\u002Fbb-color-input","\u002Fen\u002Fcomponents\u002Fbb-color-palette","\u002Fit\u002Fcomponenti\u002Fbb-color-palette","\u002Fen\u002Fcomponents\u002Fbb-confirm","\u002Fit\u002Fcomponenti\u002Fbb-confirm","\u002Fen\u002Fcomponents\u002Fbb-date-picker","\u002Fit\u002Fcomponenti\u002Fbb-date-picker","\u002Fen\u002Fcomponents\u002Fbb-date-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input","\u002Fen\u002Fcomponents\u002Fbb-dialog","\u002Fit\u002Fcomponenti\u002Fbb-dialog","\u002Fen\u002Fcomponents\u002Fbb-dropdown","\u002Fit\u002Fcomponenti\u002Fbb-dropdown","\u002Fen\u002Fcomponents\u002Fbb-dropdown-button","\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button","\u002Fen\u002Fcomponents\u002Fbb-dropzone","\u002Fit\u002Fcomponenti\u002Fbb-dropzone","\u002Fen\u002Fcomponents\u002Fbb-form","\u002Fit\u002Fcomponenti\u002Fbb-form","\u002Fen\u002Fcomponents\u002Fbb-hover-card","\u002Fit\u002Fcomponenti\u002Fbb-hover-card","\u002Fen\u002Fcomponents\u002Fbb-icon","\u002Fit\u002Fcomponenti\u002Fbb-icon","\u002Fen\u002Fcomponents\u002Fbb-indicator","\u002Fit\u002Fcomponenti\u002Fbb-indicator","\u002Fen\u002Fcomponents\u002Fbb-number-input","\u002Fit\u002Fcomponenti\u002Fbb-number-input","\u002Fen\u002Fcomponents\u002Fbb-off-canvas","\u002Fit\u002Fcomponenti\u002Fbb-off-canvas","\u002Fen\u002Fcomponents\u002Fbb-pagination","\u002Fit\u002Fcomponenti\u002Fbb-pagination","\u002Fen\u002Fcomponents\u002Fbb-popover","\u002Fit\u002Fcomponenti\u002Fbb-popover","\u002Fen\u002Fcomponents\u002Fbb-progress","\u002Fit\u002Fcomponenti\u002Fbb-progress","\u002Fen\u002Fcomponents\u002Fbb-radio","\u002Fit\u002Fcomponenti\u002Fbb-radio","\u002Fen\u002Fcomponents\u002Fbb-radio-group","\u002Fit\u002Fcomponenti\u002Fbb-radio-group","\u002Fen\u002Fcomponents\u002Fbb-rating","\u002Fit\u002Fcomponenti\u002Fbb-rating","\u002Fen\u002Fcomponents\u002Fbb-select","\u002Fit\u002Fcomponenti\u002Fbb-select","\u002Fen\u002Fcomponents\u002Fbb-select-popover","\u002Fit\u002Fcomponenti\u002Fbb-select-popover","\u002Fen\u002Fcomponents\u002Fbb-slider","\u002Fit\u002Fcomponenti\u002Fbb-slider","\u002Fen\u002Fcomponents\u002Fbb-smooth-height","\u002Fit\u002Fcomponenti\u002Fbb-smooth-height","\u002Fen\u002Fcomponents\u002Fbb-spinner","\u002Fit\u002Fcomponenti\u002Fbb-spinner","\u002Fen\u002Fcomponents\u002Fbb-switch","\u002Fit\u002Fcomponenti\u002Fbb-switch","\u002Fen\u002Fcomponents\u002Fbb-switch-group","\u002Fit\u002Fcomponenti\u002Fbb-switch-group","\u002Fen\u002Fcomponents\u002Fbb-table","\u002Fit\u002Fcomponenti\u002Fbb-table","\u002Fen\u002Fcomponents\u002Fbb-tabs","\u002Fit\u002Fcomponenti\u002Fbb-tabs","\u002Fen\u002Fcomponents\u002Fbb-tag","\u002Fit\u002Fcomponenti\u002Fbb-tag","\u002Fen\u002Fcomponents\u002Fbb-text-input","\u002Fit\u002Fcomponenti\u002Fbb-text-input","\u002Fen\u002Fcomponents\u002Fbb-textarea","\u002Fit\u002Fcomponenti\u002Fbb-textarea","\u002Fen\u002Fcomponents\u002Fbb-time-picker","\u002Fit\u002Fcomponenti\u002Fbb-time-picker","\u002Fen\u002Fcomponents\u002Fbb-time-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input","\u002Fen\u002Fcomponents\u002Fbb-toast","\u002Fit\u002Fcomponenti\u002Fbb-toast","\u002Fen\u002Fcomponents\u002Fbb-tooltip","\u002Fit\u002Fcomponenti\u002Fbb-tooltip","\u002Fen\u002Fcomponents\u002Fbb-tree","\u002Fit\u002Fcomponenti\u002Fbb-tree","\u002Fen\u002Fguides\u002Fadoption-checklist","\u002Fit\u002Fguide\u002Fadoption-checklist","\u002Fen\u002Fguides\u002Fai-agents","\u002Fit\u002Fguide\u002Fai-agents","\u002Fen\u002Fguides\u002Fcoherence","\u002Fit\u002Fguide\u002Fcoherence","\u002Fen\u002Fguides\u002Fdesign-language","\u002Fit\u002Fguide\u002Fdesign-language","\u002Fen\u002Fguides\u002Fdesign-tokens","\u002Fit\u002Fguide\u002Fdesign-tokens","\u002Fen\u002Fguides\u002Ffetching-data","\u002Fit\u002Fguide\u002Ffetching-data","\u002Fen\u002Fguides\u002Ficons","\u002Fit\u002Fguide\u002Ficons","\u002Fen\u002Fguides\u002Finertia","\u002Fit\u002Fguide\u002Finertia","\u002Fen\u002Fguides\u002Finstallation","\u002Fit\u002Fguide\u002Finstallation","\u002Fen\u002Fguides\u002Fmigration","\u002Fit\u002Fguide\u002Fmigration","\u002Fen\u002Fguides\u002Fnuxt","\u002Fit\u002Fguide\u002Fnuxt","\u002Fen\u002Fguides\u002Foptions-and-items","\u002Fit\u002Fguide\u002Foptions-and-items","\u002Fen\u002Fguides\u002Fpassthrough","\u002Fit\u002Fguide\u002Fpassthrough","\u002Fen\u002Fguides\u002Fpreset-components","\u002Fit\u002Fguide\u002Fpreset-components","\u002Fen\u002Fguides\u002Fvalidated-forms","\u002Fit\u002Fguide\u002Fvalidated-forms",[135,150,162,186,198,242,275,311,332,353,365,371],{"label":136,"entries":137},"Getting started",[138,142,146],{"title":139,"path":140,"order":141},"Installation","\u002Fguides\u002Finstallation",1,{"title":143,"path":144,"order":145},"Migrating from v2","\u002Fguides\u002Fmigration",2,{"title":147,"path":148,"order":149},"Adoption checklist","\u002Fguides\u002Fadoption-checklist",3,{"label":151,"entries":152},"Design system",[153,156,159],{"title":154,"path":155,"order":141},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":157,"path":158,"order":145},"Design language","\u002Fguides\u002Fdesign-language",{"title":160,"path":161,"order":149},"Passthrough","\u002Fguides\u002Fpassthrough",{"label":163,"entries":164},"Playbooks",[165,168,171,174,178,182],{"title":166,"path":167,"order":141},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":169,"path":170,"order":145},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":172,"path":173,"order":149},"Coherence","\u002Fguides\u002Fcoherence",{"title":175,"path":176,"order":177},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":179,"path":180,"order":181},"Icons","\u002Fguides\u002Ficons",5,{"title":183,"path":184,"order":185},"Preset components","\u002Fguides\u002Fpreset-components",6,{"label":187,"entries":188},"Ecosystem",[189,192,195],{"title":190,"path":191,"order":141},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":193,"path":194,"order":145},"Nuxt","\u002Fguides\u002Fnuxt",{"title":196,"path":197,"order":149},"AI agents","\u002Fguides\u002Fai-agents",{"label":199,"entries":200},"Inputs",[201,204,207,210,213,216,219,222,226,230,234,238],{"title":202,"path":203,"component":202,"order":141},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":205,"path":206,"component":205,"order":145},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":208,"path":209,"component":208,"order":149},"BbCalendar","\u002Fcomponents\u002Fbb-calendar",{"title":211,"path":212,"component":211,"order":149},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":214,"path":215,"component":214,"order":177},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":217,"path":218,"component":217,"order":181},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":220,"path":221,"component":220,"order":185},"BbForm","\u002Fcomponents\u002Fbb-form",{"title":223,"path":224,"component":223,"order":225},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":227,"path":228,"component":227,"order":229},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":231,"path":232,"component":231,"order":233},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":235,"path":236,"component":235,"order":237},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":239,"path":240,"component":239,"order":241},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":243,"entries":244},"Selection",[245,248,251,254,257,260,263,266,269,272],{"title":246,"path":247,"component":246,"order":141},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":249,"path":250,"component":249,"order":145},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":252,"path":253,"component":252,"order":149},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":255,"path":256,"component":255,"order":177},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":258,"path":259,"component":258,"order":181},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":261,"path":262,"component":261,"order":185},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":264,"path":265,"component":264,"order":225},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":267,"path":268,"component":267,"order":229},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":270,"path":271,"component":270,"order":233},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":273,"path":274,"component":273,"order":237},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":276,"entries":277},"Overlay",[278,281,284,287,290,293,296,299,302,305,308],{"title":279,"path":280,"component":279,"order":141},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":282,"path":283,"component":282,"order":145},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":285,"path":286,"component":285,"order":149},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":288,"path":289,"component":288,"order":177},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":291,"path":292,"component":291,"order":181},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":294,"path":295,"component":294,"order":185},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":297,"path":298,"component":297,"order":225},"BbHoverCard","\u002Fcomponents\u002Fbb-hover-card",{"title":300,"path":301,"component":300,"order":225},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":303,"path":304,"component":303,"order":229},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":306,"path":307,"component":306,"order":233},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":309,"path":310,"component":309,"order":237},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":312,"entries":313},"Navigation",[314,317,320,323,326,329],{"title":315,"path":316,"component":315,"order":141},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":318,"path":319,"component":318,"order":145},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":321,"path":322,"component":321,"order":149},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":324,"path":325,"component":324,"order":177},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":327,"path":328,"component":327,"order":181},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":330,"path":331,"component":330,"order":185},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":333,"entries":334},"Feedback",[335,338,341,344,347,350],{"title":336,"path":337,"component":336,"order":141},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":339,"path":340,"component":339,"order":145},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":342,"path":343,"component":342,"order":149},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":345,"path":346,"component":345,"order":177},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":348,"path":349,"component":348,"order":181},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":351,"path":352,"component":351,"order":185},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":354,"entries":355},"Data Display",[356,359,362],{"title":357,"path":358,"component":357,"order":141},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":360,"path":361,"component":360,"order":145},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":363,"path":364,"component":363,"order":149},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":366,"entries":367},"Layout & Utility",[368],{"title":369,"path":370,"component":369,"order":141},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":372,"entries":373},"Other",[374],{"title":375,"path":376,"component":375,"order":141},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",{"name":327,"slug":378,"group":312,"description":379,"entrypoint":380,"docs":381,"props":384,"models":517,"events":519,"slots":525,"exposed":549,"pt":550,"validated":424,"migration":588},"bb-tabs","Switches between views of one page from a row of tabs. For the tabs and their panels in different places of the layout, use BbTabsRoot with BbTabsList and BbTabsPanels.","bitboss-ui",{"contract":382,"source":383},"ai\u002FBbTabs.md","ai\u002Fsource\u002FBbTabs.md",[385,393,397,403,408,412,417,421,426,432,439,443,448,452,456,460,464,467,471,475,478,481,485,489,493,498,503,507,510],{"name":386,"type":387,"required":388,"default":389,"description":390,"note":391,"demo":392},"block","boolean | undefined",false,"false","Displays the component as full width.","Full width with equal-width triggers, measured from the widest so they stay even once the strip overflows. On a vertical strip it stretches every trigger to the column width instead. It replaces the full-width class most v2 projects wrote for themselves: delete yours, or the two fight over the same declarations with nothing to say which won.","layout",{"name":394,"type":387,"required":388,"default":389,"description":395,"note":396,"demo":392},"compact","Adds a CSS class that applies a compact style to the component.","Drops the whole scale one notch (a 28px strip with smaller text and padding) so it lines up with compact fields.",{"name":398,"type":399,"required":388,"default":400,"description":401,"note":402,"demo":392},"direction","\"horizontal\" | \"vertical\" | undefined","\"horizontal\"","Direction of the tabs component.","A vertical strip becomes a column beside the panels and answers Up\u002FDown as well as Left\u002FRight. Add `block` to stretch every trigger to the column width. It also reads a `--max-w` custom property to cap its width, which is the only knob that works from an ancestor.",{"name":404,"type":387,"required":388,"default":389,"description":405,"note":406,"demo":407},"disableAnimateX","Disables the horizontal slide transition between tab panels (enabled by default).","Inverted from v2's `animateX`, which defaulted to `true`. A leftover `:animate-x=\"false\"` type-checks, falls into `$attrs` and lands on the root as a plain attribute, so the slide comes back; dev warns by name, production does not.","panes",{"name":409,"type":387,"required":388,"default":389,"description":410,"note":411,"demo":407},"disableAnimateY","Disables the smooth height animation when switching between tab panels (enabled by default).","Inverted from v2's `animateY`, the same way as `disableAnimateX`. Reach for it when a panel hosts its own transitions or virtualized content that fights the height measurement.",{"name":413,"type":387,"required":388,"default":389,"description":414,"note":415,"demo":416},"disabled","Disables the component","Disables the whole group: every trigger goes disabled and keyboard navigation is inert. For a single unreachable tab, set `disabled` on its `items` entry instead: it stays visible, is skipped by the arrows, and can never be the default selection.","keyboard",{"name":418,"type":387,"required":388,"default":389,"description":419,"note":420,"demo":407},"eager","Renders every tab's panel at mount and keeps it mounted, hidden while inactive, instead of only the active one. One tab alone: its item's `eager`.","Mounts every panel from the first render and keeps it mounted, hidden while inactive; a lazy panel unmounts on every switch away and loses its state. Prefer the per-item form (`{ value, label, eager: true }`) when only one panel needs it: an eager panel costs its render on every page load. It never leaks to assistive technology: an inactive panel is `display: none` either way.",{"name":422,"type":423,"required":388,"default":424,"description":425,"note":424,"demo":424},"headers","Record\u003Cstring, string> | undefined",null,"Additional HTTP headers forwarded to Inertia when navigation is triggered. Only meaningful in an Inertia context.",{"name":427,"type":428,"required":388,"default":424,"description":429,"note":430,"demo":431},"id","string | undefined","The root's `id`, and the key `useBbTabsContext(id)` pairs by. Generated when omitted.","Also the address for `useBbTabsContext(id)`, which is how a banner or a page header outside the tabs steers them. Generated ids are not addressable, so pass one when anything outside the tree needs to reach the group.","composition",{"name":433,"type":434,"required":435,"default":424,"description":436,"note":437,"demo":438},"items","BbTabsItem\u003CK>[]",true,"Array of items that define the tabs in the component.","Each entry carries its own `disabled`, `eager`, `href`, `server` and Inertia options, and item values always win over the component-level ones. The `value` stays raw everywhere you write it (`v-model`, the item itself), but slot names, DOM ids and the URL all use `slotKey(value)`, the kebab-case slug: `inReview` and `In Review` are both `in-review`.","default",{"name":440,"type":387,"required":388,"default":441,"description":442,"note":424,"demo":424},"manualActivation","`undefined` (on when `server` is set on the strip or an item)","Arrow keys (and Home \u002F End) only move focus; Enter or Space opens the tab (APG manual activation, Radix `activationMode=\"manual\"`). Unset: on when the strip or an item has `server` (else every arrow press is a visit), off elsewhere; `href` alone does not turn it on.",{"name":444,"type":445,"required":388,"default":424,"description":446,"note":447,"demo":438},"modelValue","K | null | undefined","The active tab's `value`. Used by v-model.","The raw item `value`, never the slug. Leave it unbound (or `null`) and the first enabled tab is selected for you; if every tab is disabled the strip renders with no selection rather than throwing.",{"name":449,"type":387,"required":388,"default":389,"description":450,"note":451,"demo":449},"navigation","Synchronizes the current tab with the URL query parameter.\n\nPair it with `replace` unless a tab is genuinely a separate destination — see the `replace` prop.","Makes the strip a writer of the URL query. Pair it with `replace` unless a tab is a destination of its own, and remember that a prerendered page is built with no query at all: the static HTML always carries the fallback tab, and the URL only takes over once the page is in the browser.",{"name":453,"type":454,"required":388,"default":424,"description":455,"note":424,"demo":424},"onBefore","(() => boolean | void) | undefined","Inertia lifecycle hook — fired just before the request is sent. Return `false` to cancel the visit.",{"name":457,"type":458,"required":388,"default":424,"description":459,"note":424,"demo":424},"onCancel","(() => void) | undefined","Inertia lifecycle hook — fired when the request is cancelled.",{"name":461,"type":462,"required":388,"default":424,"description":463,"note":424,"demo":424},"onError","((errors: Record\u003Cstring, string>) => void) | undefined","Inertia lifecycle hook — fired when the server returns validation errors.",{"name":465,"type":458,"required":388,"default":424,"description":466,"note":424,"demo":424},"onFinish","Inertia lifecycle hook — fired after the visit finishes (success or error).",{"name":468,"type":469,"required":388,"default":424,"description":470,"note":424,"demo":424},"only","string[] | undefined","Limits which server-side props are refreshed during a partial Inertia reload. Only meaningful in an Inertia context.",{"name":472,"type":473,"required":388,"default":424,"description":474,"note":424,"demo":424},"onProgress","((progress: { percentage: number | undefined; }) => void) | undefined","Inertia lifecycle hook — fired when upload\u002Fdownload progress is available.",{"name":476,"type":458,"required":388,"default":424,"description":477,"note":424,"demo":424},"onStart","Inertia lifecycle hook — fired when the request starts.",{"name":479,"type":458,"required":388,"default":424,"description":480,"note":424,"demo":424},"onSuccess","Inertia lifecycle hook — fired when the visit completes successfully.",{"name":482,"type":483,"required":388,"default":424,"description":484,"note":424,"demo":424},"preserveScroll","boolean | ((props: Record\u003Cstring, unknown>) => boolean) | undefined","Controls whether Inertia preserves the scroll position after navigation. Only meaningful in an Inertia context.",{"name":486,"type":487,"required":388,"default":424,"description":488,"note":424,"demo":424},"preserveState","boolean | ((props: Record\u003Cstring, unknown>) => boolean) | null | undefined","Controls whether Inertia preserves the current component state after navigation. Only meaningful in an Inertia context.",{"name":490,"type":491,"required":388,"default":424,"description":492,"note":424,"demo":424},"pt","({ root?: PtValue | undefined; panel?: PtValue | undefined; \"root:disabled\"?: PtValue | undefined; \"root:active\"?: PtValue | undefined; \"item:disabled\"?: PtValue | undefined; \"item:active\"?: PtValue | undefined; list?: PtValue | undefined; indicator?: PtValue | undefined; \"list:disabled\"?: PtValue | undefined; \"indicator:disabled\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"panel:disabled\"?: PtValue | undefined; \"panel:active\"?: PtValue | undefined; wrapper?: PtValue | undefined; panels?: PtValue | undefined; \"list:active\"?: PtValue | undefined; \"indicator:active\"?: PtValue | undefined; \"wrapper:disabled\"?: PtValue | undefined; \"wrapper:active\"?: PtValue | undefined; \"panels:disabled\"?: PtValue | undefined; \"panels:active\"?: PtValue | undefined; \"item:none\"?: PtValue | undefined; } & { item?: PtValue | PtItemFn\u003CBbTabsItem\u003CK>, BbTabsPtState, \"none\" | \"pill\" | \"line\", { readonly item: BbTabsItem\u003CK>; }> | undefined; } & { \"indicator:pill\"?: PtValue | undefined; \"indicator:line\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"list:pill\"?: PtValue | undefined; \"list:line\"?: PtValue | undefined; \"item:none\"?: PtValue | undefined; \"list:none\"?: PtValue | undefined; \"indicator:none\"?: PtValue | undefined; \"wrapper:none\"?: PtValue | undefined; \"wrapper:pill\"?: PtValue | undefined; \"wrapper:line\"?: PtValue | undefined; }) | undefined","Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":494,"type":495,"required":388,"default":424,"description":496,"note":424,"demo":497},"pt:\u003Cpart>","PtValue | ((ctx: PtItemCtx\u003CBbTabsItem\u003CK>, BbTabsPtState, \"none\" | \"pill\" | \"line\">) => PtItemResult) | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `indicator`, `item`, `list`, `panel`, `panels`, `root`, `wrapper`. States: `active`, `disabled`, `line`, `none`, `pill`.","passthrough",{"name":499,"type":428,"required":388,"default":500,"description":501,"note":502,"demo":449},"queryKey","\"tab\"","Defines the query key used for URL-based navigation.","Spelled `querykey` in v2. The all-lowercase form type-checks, falls through to `$attrs` and the sync silently moves to the default `?tab=`. The value written is the kebab-case slug (`?tab=in-review` for `inReview`), not the raw value, so anything else reading the parameter (a server, an analytics filter) must compare against `slotKey(value)`.",{"name":504,"type":387,"required":388,"default":389,"description":505,"note":506,"demo":449},"replace","Replaces the history entry instead of pushing one when the tab changes. Recommended with `navigation`: the query keeps the tab while Back leaves the page. Leave it off when a tab is a destination of its own (a `server` visit).","Effectively required alongside `navigation`: without it every tab click is a history entry, so Back walks the reader through their clicks instead of leaving the page.",{"name":508,"type":387,"required":388,"default":389,"description":509,"note":424,"demo":424},"server","When true and in an Inertia context, triggers a real server-side Inertia visit instead of a client-only `history.pushState`.",{"name":511,"type":512,"required":388,"default":513,"description":514,"note":515,"demo":516},"variant","keyof TabsVariantRegistry | undefined","\"pill\"","Look of the tab strip: `pill` (segmented, a sliding raised pill), `line` (a baseline with a sliding underline) or `none` (no chrome). Each is a preset of the strip's tokens; register more with the vite plugin's `tabsVariants` and style `.bb-tabs-list--\u003Cvariant>`.","`none` keeps the behaviour and the structure with no paint. Build a look of your own on it by passing the strip's tokens in `pt.wrapper.style`, which land inline and need no stylesheet.","styling",[518],{"name":444,"type":445,"note":424,"demo":438},[520],{"name":521,"signature":522,"description":523,"note":524,"demo":438},"update:modelValue","(value: K): void","Emitted when the selected tab changes. Used by `v-model`.","The whole event surface. It also fires once on mount when the component resolves a value the parent never set (from the URL query or the first-enabled fallback), so a binding starts aligned.",[526,531,536,540,545],{"name":527,"type":528,"description":529,"note":530,"demo":407},"\u003Cvalue>","BbTabsSlotProps\u003CK>","One tab's content panel, by the tab's `value` through `slotKey`; no fallback (an empty panel).","The panel. Its name is the value in kebab-case (`billingInfo` and `billing_info` are `#billing-info`); with `items` generated, write `#[slotKey(item.value)]` rather than restating the rule. Only the active panel is mounted unless it is `eager`.",{"name":532,"type":528,"description":533,"note":534,"demo":535},"\u003Cvalue>:label","One tab trigger's label, by the tab's `value` through `slotKey`; beats `label`, which beats the item's `label` text.","The value in kebab-case: `inReview` and `In Review` are both `#in-review:label`. Presentation only, like `label`.","labels",{"name":537,"type":528,"description":538,"note":539,"demo":535},"label","Fallback slot used for all tab labels when no per-tab `\u003Cvalue>:label` slot is provided.","The fallback for every trigger; a `\u003Cvalue>:label` slot beats it for that one tab. Keep it presentational: the trigger is already the control, so a nested button or link is invalid and steals the click.",{"name":541,"type":542,"description":543,"note":544,"demo":392},"wrapper:append","BbTabsScrollSlotProps","Content rendered after the scrollable tab label list (e.g. a right scroll arrow).","The trailing counterpart of `wrapper:prepend`. Bind each arrow to `canScrollLeft` \u002F `canScrollRight` so it dims at the ends of the strip.",{"name":546,"type":542,"description":547,"note":548,"demo":392},"wrapper:prepend","Content rendered before the scrollable tab label list (e.g. a left scroll arrow).","Rendered outside the scrollable list, so it stays put while the strip moves. The buttons are your markup, which means an icon-only arrow needs an `aria-label` you write.",[],{"parts":551,"states":573},[552,555,558,561,564,567,570],{"name":553,"description":554},"root","The tabs' outer element, around the strip and the panels.",{"name":556,"description":557},"wrapper","The strip's outer element: the `wrapper:prepend` slot, the triggers, the `wrapper:append` slot. `BbTabsList`'s root in a split layout.",{"name":559,"description":560},"list","The `role=\"tablist\"` row the triggers sit in — it scrolls when they overflow, and the indicator slides inside it.",{"name":562,"description":563},"item","One tab trigger — a broadcast resolved per tab with its own `active` \u002F `disabled`. Also takes a per-item function, called with the tab's descriptor.",{"name":565,"description":566},"indicator","The marker sliding under the active trigger: the pill, or the bar of the `line` variant. Its position and size are measured.",{"name":568,"description":569},"panels","The element around the panels. `BbTabsPanels`'s root in a split layout.",{"name":571,"description":572},"panel","One tab panel — a broadcast; `panel:active` is the panel on show. Takes no function.",[574,577,579,582,585],{"name":575,"description":576},"active","Per node, on `item` and `panel`: the selected tab's trigger and its shown panel.",{"name":413,"description":578},"On every part while the whole tabs is `disabled`; per node on `item`: a tab that is disabled.",{"name":580,"description":581},"line","On the strip's parts: `variant: 'line'`. Below the real states, like every variant.",{"name":583,"description":584},"none","On the strip's parts: `variant: 'none'`. Below the real states, like every variant.",{"name":586,"description":587},"pill","On the strip's parts: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win.",{"removed":589,"renamed":623},[590,597,600,607,610,616,620],{"name":591,"surface":592,"replacedBy":404,"hint":424,"since":593,"migration":594,"silent":435,"fix":595},"animateX","prop","3.0.0-alpha.1","ai\u002Fguides\u002Fmigration\u002Fcomponents\u002Fbb-tabs.md",{"kind":596},"invert",{"name":598,"surface":592,"replacedBy":409,"hint":424,"since":593,"migration":594,"silent":435,"fix":599},"animateY",{"kind":596},{"name":601,"surface":602,"replacedBy":541,"hint":424,"since":603,"migration":604,"silent":435,"fix":605},"header:append","slot","3.0.0-beta.36","ai\u002Fguides\u002Fmigration\u002Fv3-beta-css-classes.md",{"kind":606},"rename",{"name":608,"surface":602,"replacedBy":546,"hint":424,"since":603,"migration":604,"silent":435,"fix":609},"header:prepend",{"kind":606},{"name":611,"surface":562,"replacedBy":612,"hint":613,"since":614,"migration":594,"silent":435,"fix":615},"items[].key","items[].value","a tab's identity: what `v-model` holds and its `#\u003Cvalue>` \u002F `#\u003Cvalue>:label` slots; `check --fix` renames it","3.0.0-beta.49",{"kind":606},{"name":617,"surface":602,"replacedBy":618,"hint":424,"since":424,"migration":594,"silent":435,"fix":619},"label:\u003Cx>","\u003Cx>:label",{"kind":606},{"name":621,"surface":592,"replacedBy":499,"hint":424,"since":593,"migration":594,"silent":435,"fix":622},"querykey",{"kind":606},[624,626,628,630,632,634],{"from":591,"to":404,"surface":592,"since":593,"migration":594,"fix":625},{"kind":596},{"from":598,"to":409,"surface":592,"since":593,"migration":594,"fix":627},{"kind":596},{"from":601,"to":541,"surface":602,"since":603,"migration":604,"fix":629},{"kind":606},{"from":608,"to":546,"surface":602,"since":603,"migration":604,"fix":631},{"kind":606},{"from":617,"to":618,"surface":602,"since":424,"migration":594,"fix":633},{"kind":606},{"from":621,"to":499,"surface":592,"since":593,"migration":594,"fix":635},{"kind":606},1793055154282]