[{"data":1,"prerenderedAt":1454},["ShallowReactive",2],{"locale-alternates":3,"docs-nav-en":134,"api-none":377,"page-en-\u002Fcomponents\u002Fbb-dropdown":378,"pt-showcase-BbDropdown":1163},{"\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",null,{"id":379,"title":291,"body":380,"component":291,"description":1147,"extension":1148,"group":276,"meta":1149,"navigation":1150,"order":181,"path":292,"sections":1151,"seo":1160,"stem":1161,"__hash__":1162},"docs_en\u002Fcomponents\u002Fbb-dropdown.md",{"type":381,"value":382,"toc":1130},"minimark",[383,428,434,442,458,462,495,500,514,517,534,579,587,603,606,613,619,622,625,630,636,650,653,661,667,673,676,704,710,726,729,751,796,803,818,821,830,837,846,849,874,897,903,918,921,944,951,968,992,997,1023,1046,1067,1113,1126],[384,385,386,398],"when",{},[387,388,389,390,393,394,397],"p",{},"Use ",[391,392,291],"code",{}," to put several commands or navigation links behind one trigger:\nrow actions, an account menu or a context menu. Describe rows with ",[391,395,396],{},"items","; the\ncomponent owns ARIA, focus and keyboard behaviour.",[399,400,402],"template",{"v-slot:else":401},"",[403,404,405,414,421],"ul",{},[406,407,408,413],"li",{},[409,410,411],"a",{"href":18},[391,412,205],{},": there is one action",[406,415,416,420],{},[409,417,418],{"href":42},[391,419,294],{},": one action dominates\nand the rest are close alternatives",[406,422,423,427],{},[409,424,425],{"href":70},[391,426,261],{},": the user chooses a form value",[387,429,430,431,433],{},"Also see: ",[409,432,166],{"href":126},".",[435,436,438],"h2",{"id":437},"default",[439,440,441],"span",{},"Build a row actions menu",[387,443,444,445,449,450,453,454,433],{},"Spread the ",[409,446,448],{"href":447},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#slot-activator","activator"," ",[391,451,452],{},"props"," onto a focusable trigger and pass the actions as\n",[409,455,457],{"href":456},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-items","data",[459,460],"demo",{"name":461},"BbDropdown\u002FBasic",[387,463,464,465,468,469,472,473,476,477,483,484,490,491,494],{},"Use a real button and name icon-only triggers. Style the trigger inside\n",[391,466,467],{},"#activator",": a ",[391,470,471],{},"class"," on ",[391,474,475],{},"\u003CBbDropdown>"," lands on the menu. There is no open\nstate to bind; ",[409,478,480],{"href":479},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#event-show",[391,481,482],{},"@show"," and\n",[409,485,487],{"href":486},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#event-hide",[391,488,489],{},"@hide"," tell you when it opens and\ncloses. The default slot is only for ",[391,492,493],{},"\u003CBbDropdownGroup>"," companions: a trigger\nplaced there opens nothing.",[435,496,497],{"id":396},[439,498,499],{},"Choose the right item type",[387,501,389,502,505,506,509,510,513],{},[391,503,504],{},"onClick"," for commands and ",[391,507,508],{},"href"," or ",[391,511,512],{},"to"," for navigation, so links keep\nnative browser behaviour.",[459,515],{"name":516},"BbDropdown\u002FFileActions",[387,518,519,522,523,526,527,530,531,433],{},[391,520,521],{},"label"," is what the row says and ",[391,524,525],{},"description"," adds a second line. A plain\naction or link needs no ",[391,528,529],{},"value","; give one to any row something outside the menu\nreads, such as a selectable row or a row with its own slot. Gate destructive actions with\n",[391,532,533],{},"useConfirm",[535,536,537],"migration",{},[387,538,539,540,542,543,546,547,542,549,552,553,556,557,559,560,563,564,567,568,571,572,574,575,578],{},"Rows read ",[391,541,521],{}," (v2 ",[391,544,545],{},"text",") and ",[391,548,529],{},[391,550,551],{},"key","); groups, new in v3, are\nnamed by ",[391,554,555],{},"id"," (",[391,558,551],{}," in early v3 betas). ",[391,561,562],{},"npx bitboss-ui check --fix"," and the\nESLint rule rewrite literal rows. Destructive rows use\n",[391,565,566],{},"variant: 'destructive'",". In fetched groups, map extra row fields through\n",[391,569,570],{},"itemProps","; raw ",[391,573,508],{},", icons and ",[391,576,577],{},"disabled"," fields are otherwise ignored.",[580,581,583],"h3",{"id":582},"an-account-menu",[439,584,586],{"id":585},"account-menu","An account menu",[387,588,589,590,596,597,433],{},"Split rows into sections with nested arrays, pin the signed-in user in the\n",[409,591,593],{"href":592},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#slot-header",[391,594,595],{},"header"," slot and put shortcut hints in ",[409,598,600],{"href":599},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#slot-item:append",[391,601,602],{},"item:append",[459,604],{"name":605},"BbDropdown\u002FAccountMenu",[387,607,608,609,612],{},"Carry the shortcut in ",[391,610,611],{},"meta",". The menu only displays it; binding the keys is up to you.",[435,614,616],{"id":615},"directive",[439,617,618],{},"Use the directive for simple menus",[387,620,621],{},"When the trigger already exists and the menu is a flat items array, use the\nglobally registered directive.",[459,623],{"name":624},"BbDropdown\u002FDirective",[387,626,627,628,433],{},"Use the component when you need slots, sections or a ",[391,629,493],{},[435,631,633],{"id":632},"async",[439,634,635],{},"Track async actions",[387,637,638,639,641,642,645,646,649],{},"Return a promise from an item's ",[391,640,504],{},": the ",[409,643,644],{"href":447},"activator slot","'s ",[391,647,648],{},"loading","\nstays true until it settles, and repeat clicks on that item are ignored.",[459,651],{"name":652},"BbDropdown\u002FAsyncAction",[535,654,655],{},[387,656,657,658,660],{},"The exposed template-ref ",[391,659,648],{}," member is removed. Read the flag from the\nactivator slot.",[435,662,664],{"id":663},"submenus",[439,665,666],{},"Add submenus",[387,668,669,670,672],{},"Give an item its own ",[391,671,396],{}," array. Keep nesting shallow: the parent row opens\nthe submenu and cannot also run an action or navigate.",[459,674],{"name":675},"BbDropdown\u002FSubmenus",[387,677,678,679,682,683,682,686,689,690,693,694,697,698,700,701,703],{},"Desktop uses flyouts; the mobile sheet drills down one level at a time.\nSubmenus follow the ARIA menu keyboard model. ",[391,680,681],{},"ArrowRight",", ",[391,684,685],{},"Enter",[391,687,688],{},"Space"," or a\nclick open one with focus inside (its search box first, when it has one), and\n",[391,691,692],{},"Escape"," closes one level and puts focus back on the row that opened it. A\nsubmenu that closes under the pointer hands focus to its row too. Under\n",[391,695,696],{},"dir=\"rtl\""," submenus open to the left and the two inline arrows swap. On the\nsheet, ",[391,699,692],{}," and the back control go back one level, focus on the row that\nopened it; at the top level ",[391,702,692],{}," closes the sheet.",[435,705,707],{"id":706},"selection",[439,708,709],{},"Build selectable groups",[387,711,712,713,716,717,719,720,722,723,725],{},"Mark a group ",[391,714,715],{},"selectable",", then bind its state with ",[391,718,493],{}," using the\ngroup's ",[391,721,555],{},". The model holds the picked row's ",[391,724,529],{},". A single group is a\nradio group: clicking the picked row again keeps it, so \"Sort by\" can never end\nup empty.",[459,727],{"name":728},"BbDropdown\u002FSelectableGroups",[387,730,731,732,735,736,742,743,746,747,750],{},"A pick in a single group closes the menu, wherever the group sits (in a\nsubmenu, beside other groups) and whatever else the menu holds; a ",[391,733,734],{},"multiple","\ngroup stays open while you toggle. ",[409,737,739],{"href":738},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-closeOnSelect",[391,740,741],{},"close-on-select","\noverrides both: ",[391,744,745],{},"false"," keeps a settings menu of several radios open, ",[391,748,749],{},"true","\ncloses after every change.",[387,752,753,754,757,758,764,765,767,768,771,772,774,775,777,778,780,781,783,784,777,789,792,793,433],{},"Add ",[391,755,756],{},"clearable: true"," when \"none\" is a valid answer, as on \"Channel\": that\nclick then empties the group and fires ",[409,759,761],{"href":760},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#event-item:unselected",[391,762,763],{},"item:unselected",".\nA row whose ",[391,766,529],{}," is ",[391,769,770],{},"null"," is the other way to offer \"none\": while the model\nis ",[391,773,770],{}," that row shows as checked, as in ",[391,776,261],{}," and ",[391,779,255],{},".\nAdd ",[391,782,734],{}," for checkbox semantics. Give the dropdown an\n",[409,785,787],{"href":786},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-id",[391,788,555],{},[391,790,791],{},"useBbDropdownContext(id)","\nreads its picks anywhere, as the chips above do; it is read-only, so change a\npick through the group's ",[391,794,795],{},"v-model",[580,797,799],{"id":798},"rows-that-represent-records",[439,800,802],{"id":801},"row-slots","Rows that represent records",[387,804,805,806,808,809,811,812,767,815,433],{},"Carry application data in ",[391,807,611],{}," and target one group's rows with its named slot.\nSlot names are the row values in kebab-case: the row whose ",[391,810,529],{}," is\n",[391,813,814],{},"currentWorkspace",[391,816,817],{},"#current-workspace",[459,819],{"name":820},"BbDropdown\u002FWorkspaceSwitcher",[387,822,389,823,829],{},[409,824,826],{"href":825},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#slot-%3CgroupId%3E:item:prepend",[391,827,828],{},"#\u003CgroupId>:item:prepend"," for an avatar or logo. A slot replaces the icon on\nthat edge; the selected check still wins on the trailing edge.",[580,831,833],{"id":832},"search-a-long-group",[439,834,836],{"id":835},"searchable","Search a long group",[387,838,839,840,842,843,845],{},"Mark a long group ",[391,841,835],{}," and it gets its own search field that filters its\nrows. To fetch per query instead, pass a function as its ",[391,844,396],{},"; it runs when\nthe group is first shown.",[459,847],{"name":848},"BbDropdown\u002FSearchableGroup",[387,850,851,852,855,856,858,859,862,863,866,867,869,870,873],{},"The function receives one object, ",[391,853,854],{},"{ query, reason, modelValue, signal }",", the\nsame as a ",[391,857,261],{}," provider, so one fetcher serves both. A fetcher that\nmatches the query itself takes ",[391,860,861],{},"filterBy: false"," on the group, so its answer is\nnot filtered again. Set ",[391,864,865],{},"stash: true"," on a ",[391,868,734],{}," group so\nearlier picks survive a new search, and ",[391,871,872],{},"prefill: false"," to load nothing until\nthe user types.",[387,875,876,879,880,882,883,886,887,645,889,892,893,896],{},[391,877,878],{},"groupBy"," on a group lists its rows under section headings and keeps it one\ngroup: one ",[391,881,795],{},", one search field. It takes a field path (",[391,884,885],{},"'sector'",") or a\nfunction of the row, and reads the raw item on a fetched group. Rows with no\nsection are listed first, as ",[391,888,261],{},[391,890,891],{},"group-by"," does. Use separate\n",[391,894,895],{},"group: true"," sections instead when each answers its own question.",[435,898,900],{"id":899},"placement",[439,901,902],{},"Place and size the panel",[387,904,905,906,777,911,917],{},"Choose ",[409,907,909],{"href":908},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-placement",[391,910,899],{},[409,912,914],{"href":913},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-width",[391,915,916],{},"width"," for the surrounding layout.",[459,919],{"name":920},"BbDropdown\u002FPlacementAndWidth",[387,922,923,926,927,933,934,940,941,433],{},[391,924,925],{},"width=\"100%\""," matches the trigger's width; a number keeps repeated menus aligned.\nAdd ",[409,928,930],{"href":929},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-compact",[391,931,932],{},"compact"," for denser rows beside a compact select.\nFor a context menu, pair ",[409,935,937],{"href":936},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-trigger",[391,938,939],{},"trigger=\"contextMenu\""," with ",[391,942,943],{},"placement=\"cursor\"",[580,945,947],{"id":946},"on-a-phone",[439,948,950],{"id":949},"adaptive","On a phone",[387,952,953,954,960,961,967],{},"On small screens the menu opens as a bottom sheet, with the same rows, slots and\nselection. Pass ",[409,955,957],{"href":956},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-adaptive",[391,958,959],{},":adaptive=\"false\"","\nonly when the menu must stay a flyout; ",[409,962,964],{"href":963},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-offCanvasProps",[391,965,966],{},"off-canvas-props","\nconfigures the sheet.",[535,969,970],{},[387,971,972,975,976,979,980,983,984,556,987,991],{},[391,973,974],{},"arrowPadding"," is removed: dropdowns draw no arrow. The phone sheet is new and on\nby default. An item's ",[391,977,978],{},"data-*"," \u002F ",[391,981,982],{},"aria-*"," keys no longer reach its row: move them\nto ",[391,985,986],{},"pt:item",[409,988,990],{"href":989},"#styling","Style items",").",[435,993,995],{"id":994},"styling",[439,996,990],{},[387,998,999,1002,1003,1006,1007,1010,1011,682,1017,483,1019,1022],{},[391,1000,1001],{},"destructive"," is the only styled item variant. Register additional names through\n",[391,1004,1005],{},"dropdownItemVariants",", then style ",[391,1008,1009],{},".bb-dropdown__item--variant-\u003Cname>"," yourself. Prefer\n",[409,1012,1014],{"href":1013},"\u002Fen\u002Fcomponents\u002Fbb-dropdown\u002Fapi#prop-pt:%3Cpart%3E",[391,1015,1016],{},"pt:panel",[391,1018,986],{},[391,1020,1021],{},"pt:input"," (every search field in the menu) for instance-level changes.",[387,1024,1025,1026,1028,1029,1031,1032,1034,1035,1038,1039,509,1042,1045],{},"An item takes only the fields the menu reads. An attribute for its row, such as\na ",[391,1027,978],{}," test hook or an ",[391,1030,982],{},", goes through ",[391,1033,986],{},", per row with the\nfunction form: ",[391,1036,1037],{},":pt:item=\"({ item }) => ({ attrs: { 'data-test': item.value } })\"",".\nAn ",[391,1040,1041],{},"aria-label",[391,1043,1044],{},"aria-describedby"," set there names or describes the row.",[387,1047,1048,1049,1051,1052,1055,1056,546,1059,1062,1063,1066],{},"Two custom properties on the menu size the desktop rows, with ",[391,1050,205],{},"'s\nnames: ",[391,1053,1054],{},"--fs"," the label (default ",[391,1057,1058],{},"var(--bb-fs)",[391,1060,1061],{},"--icon-size"," the\nleading and trailing icons (default ",[391,1064,1065],{},"1rem","). Submenus follow them; the phone\nsheet keeps its touch sizes.",[1068,1069,1073],"pre",{"className":1070,"code":1071,"language":1072,"meta":401,"style":401},"language-vue shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003CBbDropdown class=\"[--fs:13px] [--icon-size:14px]\" :items=\"items\" \u002F>\n","vue",[391,1074,1075],{"__ignoreMap":401},[439,1076,1078,1082,1085,1089,1092,1096,1099,1101,1103,1106,1108,1110],{"class":1077,"line":141},"line",[439,1079,1081],{"class":1080},"suds8","\u003C",[439,1083,291],{"class":1084},"sne4z",[439,1086,1088],{"class":1087},"s-5SL"," class",[439,1090,1091],{"class":1080},"=",[439,1093,1095],{"class":1094},"sT6z2","\"[--fs:13px] [--icon-size:14px]\"",[439,1097,1098],{"class":1080}," :",[439,1100,396],{"class":1087},[439,1102,1091],{"class":1080},[439,1104,1105],{"class":1080},"\"",[439,1107,396],{"class":1080},[439,1109,1105],{"class":1080},[439,1111,1112],{"class":1080}," \u002F>\n",[535,1114,1115],{},[387,1116,1117,1118,1121,1122,1125],{},"The floating wrapper is now a ",[391,1119,1120],{},"\u003Cdiv>",", not a ",[391,1123,1124],{},"\u003Cspan>",". Class hooks remain; only\nelement-specific selectors stop matching.",[1127,1128,1129],"style",{},"html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sne4z, html code.shiki .sne4z{--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":401,"searchDepth":149,"depth":149,"links":1131},[1132,1133,1136,1137,1138,1139,1143,1146],{"id":437,"depth":145,"text":441},{"id":396,"depth":145,"text":499,"children":1134},[1135],{"id":582,"depth":149,"text":586},{"id":615,"depth":145,"text":618},{"id":632,"depth":145,"text":635},{"id":663,"depth":145,"text":666},{"id":706,"depth":145,"text":709,"children":1140},[1141,1142],{"id":798,"depth":149,"text":802},{"id":832,"depth":149,"text":836},{"id":899,"depth":145,"text":902,"children":1144},[1145],{"id":946,"depth":149,"text":950},{"id":994,"depth":145,"text":990},"An accessible action menu behind any trigger, including links, submenus and selectable groups.","md",{},true,[1152,1153,1154,1155,1156,1157,1158,1159],{"id":437,"title":441},{"id":396,"title":499},{"id":615,"title":618},{"id":632,"title":635},{"id":663,"title":666},{"id":706,"title":709},{"id":899,"title":902},{"id":994,"title":990},{"title":291,"description":1147},"components\u002Fbb-dropdown","iKeHdo0rnTBoRuYdozf-5sTY9I_LVgkZEMukwy3bYrA",{"name":291,"slug":1164,"group":276,"description":1165,"entrypoint":1166,"docs":1167,"props":1170,"models":1274,"events":1275,"slots":1297,"exposed":1357,"pt":1358,"validated":377,"migration":1410},"bb-dropdown","Displays contextual action menus and menu content (includes the co-located BbDropdownGroup export, which is how a selectable group is bound).","bitboss-ui",{"contract":1168,"source":1169},"ai\u002FBbDropdown.md","ai\u002Fsource\u002FBbDropdown.md",[1171,1176,1181,1186,1190,1194,1196,1199,1202,1207,1211,1214,1217,1222,1226,1231,1236,1240,1245,1249,1254,1259,1263,1269],{"name":448,"type":1172,"required":1173,"default":377,"description":1174,"note":1175,"demo":437},"Record\u003Cstring, any> | HTMLElement | null | undefined",false,"An external activator element or component ref: the activator slot is not rendered, and the listeners and ARIA (`aria-haspopup` \u002F `aria-expanded` \u002F `aria-controls`) are attached to it; don't add your own.","The no-wrapper alternative to the `activator` slot, for when you already hold an element or component ref. It gets the same `aria-haspopup` \u002F `aria-expanded` \u002F `aria-controls` attached programmatically — so do not hand-write those on the referenced element either.",{"name":949,"type":1177,"required":1173,"default":1178,"description":1179,"note":1180,"demo":949},"boolean | undefined","`config.adaptive` (`true`)","On mobile (below `config.mobileMaxWidth`), renders the menu as a bottom sheet that drills into submenus one level at a time instead of hover flyouts; slots and selection are unchanged. Unset: the global `config.adaptive`.","Unset resolves to the global `adaptive` config, which is `true`: on a small viewport the menu is a bottom sheet, not a flyout. Pin it `false` for a desktop-only dense tool, or for a test that asserts against one surface.",{"name":1182,"type":1172,"required":1173,"default":1183,"description":1184,"note":1185,"demo":899},"anchor","the activator element","The element the panel positions against when it should differ from the activator (a wrapper the activator is part of); an HTMLElement or component ref. It also drives a percentage `width`. Ignored with `placement=\"cursor\"`.","Positions the panel against something other than the trigger — the case being a control whose trigger is only part of it, like the toggle half of a split button. A percentage `width` then resolves against the anchor too. Ignored when `placement` is `cursor`.",{"name":1187,"type":1188,"required":1173,"default":377,"description":1189,"note":377,"demo":377},"boundary","string | Record\u003Cstring, any> | HTMLElement | null | undefined","Keeps the panel inside this element alongside its trigger (sideways for a menu above or below); away from the trigger it may pass the edge, and only the viewport flips it. An HTMLElement, a component ref or a CSS selector: a `useTemplateRef`, never `$refs.x` (not reactive).",{"name":1191,"type":1177,"required":1173,"default":1192,"description":1193,"note":377,"demo":377},"closeOnSelect","unset (close after a single-choice change)","Whether a selection closes the menu. Unset: a change in a single-choice group closes it (an untick too, at any depth); a `multiple` group stays open. `true`: every selection change closes it. `false`: none does.",{"name":932,"type":1177,"required":1173,"default":745,"description":1195,"note":377,"demo":899},"Compact density, the `BbSelect` ladder: flyout rows 28px → 24px, sheet rows 44px → 36px (a sheet row stays a touch target). The label size does not change.",{"name":577,"type":1177,"required":1173,"default":745,"description":1197,"note":1198,"demo":377},"Disables the component","Freezes the whole component, trigger included. It is not the same as disabling every item: a disabled item is skipped by keyboard navigation while the menu still opens.",{"name":1200,"type":1177,"required":1173,"default":745,"description":1201,"note":377,"demo":377},"eager","Renders the menu panel at mount instead of on the first open (the phone sheet's too), and keeps its rows after a close. Without it the rows mount on each open and go once the menu has closed.",{"name":1203,"type":1204,"required":1173,"default":377,"description":1205,"note":1206,"demo":835},"emptyText","string | undefined","Default placeholder text shown when a pipeline group resolves to no items. A group's own `emptyText` overrides this; both fall back to the localized `common.emptyText` (`'No data to display'`).","The empty-result counterpart of `loadingText`, with the same per-group override and the same locale fallback.",{"name":1208,"type":1177,"required":1173,"default":745,"description":1209,"note":1210,"demo":377},"enforceCoherence","Default for pipeline groups: drop selections that are no longer present in a group's current items (e.g. after a `dependencies` re-fetch) from the selection and `v-model`. A group's own `enforceCoherence` overrides this.","The dropdown-level default for pipeline groups, overridable per group. It stays lazy: a group nobody opened never fetches and never prunes, and pruning never runs against an empty or still-loading item set.",{"name":1212,"type":1204,"required":1173,"default":377,"description":1213,"note":377,"demo":377},"failedText","Default placeholder text shown when a pipeline group's latest load FAILED (its `items` getter threw). A group's own `failedText` overrides this; both fall back to the localized `common.failedText` (`\"Couldn't load items\"`).",{"name":555,"type":1204,"required":1173,"default":377,"description":1215,"note":1216,"demo":706},"Names this dropdown: the activator's id (unless it already has one), the menu's `menu_\u003Cid>`, and the key `useBbDropdownContext(id)` and a companion `BbDropdownGroup` pair by. Generated when omitted.","Name the dropdown when something outside it reads its state: `useBbDropdownContext(id)` returns each selectable group with its picks, read-only.",{"name":396,"type":1218,"required":1150,"default":1219,"description":1220,"note":1221,"demo":396},"BbDropdownItem[]","[]","The menu rows, each a `BbBaseButton` (`button`, `a` or `router-link`): a flat array for one group, nested arrays for divider-separated groups, or `InternalGroup` objects for titled \u002F selectable sections. A row's own `items` opens a submenu.","Three shapes, mixable: an item, a nested array (a divider-separated section), or a group object. `label` is what a row says and a group's heading; a row is identified by `value` and a group by `id` (rows were `{ key, text }` in v2 and early v3 betas). `value` is optional on a plain action or link row; a selectable row and a row with its own slot need one, and a selectable or bound group needs an `id`.",{"name":1223,"type":1204,"required":1173,"default":377,"description":1224,"note":1225,"demo":835},"loadingText","Default placeholder text shown while a pipeline group's async items load. A group's own `loadingText` overrides this; both fall back to the localized `common.loadingText` (`'Loading...'`).","Pipeline groups only, and the default for all of them; a group can override it with its own `loadingText`. Unset, it is the plugin locale’s \"Loading…\" string.",{"name":1227,"type":1228,"required":1173,"default":377,"description":1229,"note":1230,"demo":949},"offCanvasProps","Partial\u003CBbOffCanvasProps> | undefined","Props for the phone sheet (the `BbOffCanvas` that `adaptive` renders on mobile), spread over its defaults. A `pt` inside it styles only the sheet (passthrough guide § Inside the sheet). The sheet hides its ✕; `{ hideClose: false }` brings it back.","Merged over the sheet’s own `side: \"bottom\"`, `size: \"auto\"`, `draggable: true`. Ignored entirely when `adaptive` resolves to `false`, so it is not a way to configure the desktop panel.",{"name":1232,"type":1233,"required":1173,"default":1234,"description":1235,"note":377,"demo":377},"offset","number | undefined","4","Space the floating container will maintain from the activator.",{"name":1237,"type":1233,"required":1173,"default":1238,"description":1239,"note":377,"demo":377},"padding","10","Minimum empty space to keep from the edge of the page",{"name":899,"type":1241,"required":1173,"default":1242,"description":1243,"note":1244,"demo":899},"Placement | \"cursor\" | undefined","\"bottom\"","Position of the dropdown relative to the activator. Use `'cursor'` to anchor at the mouse\u002Ftouch coordinates. (No arrow is drawn either way — arrows are tooltip-only in v3.)","Every floating placement, plus `cursor` — which anchors the panel at the pointer and is what you pair with `trigger: \"contextMenu\"` for an OS-style menu. The panel flips on its own when there is no room.",{"name":1246,"type":1247,"required":1173,"default":377,"description":1248,"note":377,"demo":377},"pt","PtItemMap\u003CBbDropdownPtPart, BbDropdownItemPtPart, BbDropdownPtState, InternalItem, \"default\" | \"destructive\"> | undefined","Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":1250,"type":1251,"required":1173,"default":377,"description":1252,"note":377,"demo":1253},"pt:\u003Cpart>","PtValue | ((ctx: PtItemCtx\u003CInternalItem, BbDropdownPtState, \"default\" | \"destructive\">) => PtItemResult) | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `footer`, `header`, `input`, `item`, `itemDescription`, `itemIcon`, `itemText`, `list`, `panel`, `root`, `sheet`. States: `activeLink`, `default`, `destructive`, `disabled`, `exactActiveLink`, `open`, `selected`.","passthrough",{"name":1255,"type":1233,"required":1173,"default":1256,"description":1257,"note":1258,"demo":835},"queryDebounceTime","300","Debounce (ms) applied to the async re-fetch a `searchable` group fires as the user types. Applies to every searchable group in the menu.","Applies to a `searchable` group’s own search field, debouncing the query before it reaches that group’s async getter. Nothing else on the component reads it.",{"name":1260,"type":1233,"required":1173,"default":1261,"description":1262,"note":377,"demo":377},"transitionDuration","150","How long the transition has to last in milliseconds. Menus use the fast transition (150) rather than the medium one (250) the other popovers default to: a menu is opened to pick one command and is gone again, so it answers faster than a panel the user reads or edits in.",{"name":1264,"type":1265,"required":1173,"default":1266,"description":1267,"note":1268,"demo":899},"trigger","DropdownTrigger | DropdownTrigger[] | undefined","\"click\"","Interaction(s) that open the dropdown. Accepts a single trigger or an array to combine them.\n- `'click'` — left-click \u002F tap (default)\n- `'contextMenu'` — right-click on desktop, long-press on mobile","Takes an array to combine them (`[\"click\", \"contextMenu\"]`). On touch devices the `contextMenu` gesture is a long press, and right-clicking again while open moves the menu rather than closing it.",{"name":916,"type":1270,"required":1173,"default":1271,"description":1272,"note":1273,"demo":899},"string | number | undefined","\"auto\"","Width of the dropdown in pixels, percentage, or 'auto' to fit content.","Content-sized by default with a 128px floor — not a fixed width. Pass a number when menus have to line up across the rows of a table, and a percentage when the panel should match its trigger.",[],[1276,1280,1283,1288,1291,1294],{"name":1277,"signature":1278,"description":1279,"note":377,"demo":377},"hidden","(): void","Emitted once the menu has finished closing.",{"name":1281,"signature":1278,"description":1282,"note":377,"demo":377},"hide","Emitted as soon as the menu starts to close.",{"name":1284,"signature":1285,"description":1286,"note":1287,"demo":706},"item:selected","(value: any): void","The user selected a row in a selectable group, at the click — also when a controlled companion's app then refuses the value. The payload is the row's value (its `item-value` for pipeline groups, else its `value`) — symmetric with `BbTable`'s `item:selected`.","Fires for any selectable group with the changed item’s value — its `itemValue` in a pipeline group, otherwise its `value`. Bind the companion’s `v-model` when you want the state; use this when you want the moment.",{"name":763,"signature":1285,"description":1289,"note":1290,"demo":706},"The user unselected a row (a multiple toggle, a `clearable` re-click, a chip ×, or the old value a single pick replaces). Payload is the item's resolved value, matching `item:selected`.","Fires when a row of a `multiple` group is unticked, or when the picked row of a `clearable` single group is clicked again. A plain single group is a radio group: re-clicking its pick changes nothing, so neither event fires (the row’s `onClick` still runs).",{"name":1292,"signature":1278,"description":1293,"note":377,"demo":377},"show","Emitted as soon as the menu (the popover, or the sheet on a phone) starts to open.",{"name":1295,"signature":1278,"description":1296,"note":377,"demo":377},"shown","Emitted once the menu is open and its open transition has finished.",[1298,1302,1305,1308,1311,1315,1318,1322,1326,1329,1333,1336,1340,1345,1348,1351,1355],{"name":1299,"type":1300,"description":1301,"note":377,"demo":377},"\u003CgroupId>","BbDropdownItemSlotProps","That group's title line (the group is passed as `item`, `groupTitle` is `true`).",{"name":1303,"type":1300,"description":1304,"note":377,"demo":377},"\u003CgroupId>:append","The trailing region of that group's title line.",{"name":1306,"type":1300,"description":1307,"note":377,"demo":801},"\u003CgroupId>:item","The content of every row of that group, and no other; a row's own `#\u003Cvalue>` still wins.",{"name":1309,"type":1300,"description":1310,"note":377,"demo":801},"\u003CgroupId>:item:append","The trailing region of every row of that group; replaces their `append:icon`. The check takes its place on the selected row.",{"name":1312,"type":1300,"description":1313,"note":1314,"demo":801},"\u003CgroupId>:item:prepend","The leading region of every row of that group — e.g. an avatar per record, drawn from `item.meta`, while other rows keep their `prepend:icon`.","The switcher slot: draw each record (an avatar, a logo) from `item.meta` on this group’s rows while every other row keeps its `prepend:icon`. Set `meta` on each item, or through `itemProps` in a fetched group.",{"name":1316,"type":1300,"description":1317,"note":377,"demo":377},"\u003CgroupId>:prepend","The leading region of that group's title line.",{"name":1319,"type":1300,"description":1320,"note":1321,"demo":801},"\u003Cvalue>","One row's content (label and description), by its value; in a fetched group, by its resolved `itemValue`.","Named after the row’s `value` in kebab-case: `billingInfo`, `billing_info` and `Billing info` are all `#billing-info`. For a value with accents or punctuation, write `#[slotKey(value)]` (`slotKey` is exported from `bitboss-ui`) rather than spelling it by hand.",{"name":1323,"type":1300,"description":1324,"note":1325,"demo":801},"\u003Cvalue>:append","One row's trailing region; replaces its `append:icon` and its submenu chevron. The check takes its place on the selected row.","The only slot that can replace a row’s submenu chevron. On the selected row of a selectable group the check still wins.",{"name":1327,"type":1300,"description":1328,"note":377,"demo":801},"\u003Cvalue>:prepend","One row's leading region; replaces its `prepend:icon`.",{"name":448,"type":1330,"description":1331,"note":1332,"demo":437},"BbDropdownActivatorSlotProps","The element that triggers the dropdown to open. Spread `props` onto your trigger element.","Spread its `props` onto a real focusable element or the menu has nothing to attach ARIA and keyboard handling to. The scope also carries `loading`, true while any item’s async `onClick` is still running — this replaces the exposed `loading` a v2 template ref read.",{"name":437,"type":1334,"description":1335,"note":377,"demo":377},"any","Hosts `\u003CBbDropdownGroup>` companions. They register their group with the dropdown and render nothing themselves.",{"name":1337,"type":1338,"description":1339,"note":377,"demo":377},"empty","BbDropdownPlaceholderSlotProps","Replaces the default \"no data\" placeholder row shown in a pipeline group that resolved to no items. Rendered once per empty group.",{"name":1341,"type":1342,"description":1343,"note":1344,"demo":377},"footer","BbDropdownEdgeSlotProps","Content pinned to the bottom of the dropdown panel, outside the scroll area. Stays visible while the items scroll and is separated from them by a divider — for action buttons.","The pinned counterpart below the items, for one persistent action that must stay reachable while the list scrolls.",{"name":595,"type":1342,"description":1346,"note":1347,"demo":377},"Content pinned to the top of the dropdown panel, outside the scroll area. Stays visible while the items scroll and is separated from them by a divider — for a title or a filter field.","Pinned above the scrolling items and separated by a divider — a title, or a field that filters the list you build. On the adaptive sheet it becomes the sheet’s pinned header.",{"name":602,"type":1300,"description":1349,"note":1350,"demo":801},"The trailing region of every row (and group title line), replacing its `append:icon`. A named slot wins over it; the submenu chevron and the check on a selected row take its place.","Replaces the rows’ `append:icon`. It never replaces a submenu chevron, the check takes its place on the selected row, and a group’s or a row’s own named slot beats it.",{"name":1352,"type":1300,"description":1353,"note":1354,"demo":801},"item:prepend","The leading region of every row (and group title line), replacing its `prepend:icon`. A row's own or its group's named slot wins over it.","Rendered before every row’s content, group titles included — there `groupTitle` is `true` and `item` is the group. It replaces the rows’ `prepend:icon`, and a group’s or a row’s own named slot beats it. The payload is read-only: keep slot content presentational and leave clicks to the dropdown.",{"name":648,"type":1338,"description":1356,"note":377,"demo":377},"Replaces the default loading placeholder row shown in a pipeline group while its async items load. Rendered once per loading group.",[],{"parts":1359,"states":1391},[1360,1363,1366,1369,1371,1373,1376,1379,1382,1385,1388],{"name":1361,"description":1362},"root","The floating element — an invisible positioning wrapper; a `class` on the component lands here. No node on the phone sheet: style what you see with `panel`.",{"name":1364,"description":1365},"panel","The menu surface you see — the bordered flyout box on desktop, the sheet itself on a phone.",{"name":1367,"description":1368},"sheet","The bottom sheet the menu becomes on a phone (the `BbOffCanvas` root) — never the desktop surface. Applied after `panel`, so it wins a conflict there.",{"name":595,"description":1370},"The menu's header band.",{"name":1341,"description":1372},"The menu's footer band.",{"name":1374,"description":1375},"input","A searchable group's search field — a broadcast: it lands on every searchable group's field, desktop and phone alike. Its magnifier glyph is chrome.",{"name":1377,"description":1378},"list","The top-level items container between the bands — the node that lays the entries out (a flex column with a 1px gap; on a phone, the sheet's items container). A submenu's list is not reached. Groups, headings and dividers are not parts.",{"name":1380,"description":1381},"item","One menu entry, submenus included — a broadcast resolved per entry. Also takes a per-item function, called with the entry.",{"name":1383,"description":1384},"itemText","An entry's label (its `label`) — resolved with that entry's states. A per-entry `#\u003Cvalue>` slot replaces it. Also takes a per-item function.",{"name":1386,"description":1387},"itemIcon","An entry's prepend \u002F append icons — resolved with that entry's states. Also takes a per-item function.",{"name":1389,"description":1390},"itemDescription","An entry's muted second line (its `description`) — resolved with that entry's states. A per-entry `#\u003Cvalue>` slot replaces it. Also takes a per-item function.",[1392,1395,1397,1399,1401,1404,1407],{"name":1393,"description":1394},"activeLink","Per node, on the entry parts: an entry whose link (`to` \u002F `href`) points at the current page or one of its ancestors — exactly when its `activeClass` is on. The weakest state.",{"name":437,"description":1396},"Per entry, on the entry parts: an entry with `variant: 'default'` or none. Merged after the part's base entry and before its states, so the real states still win.",{"name":1001,"description":1398},"Per entry, on the entry parts: `variant: 'destructive'`. Below the real states, like every variant.",{"name":577,"description":1400},"Per node, on the entry parts: an entry that is disabled.",{"name":1402,"description":1403},"exactActiveLink","Per node, on the entry parts: an entry whose link points at the current page itself — its `exactActiveClass` is on.",{"name":1405,"description":1406},"open","Component-wide: the menu is open.",{"name":1408,"description":1409},"selected","Per node, on the entry parts: a selectable group's checked entry.",{"removed":1411,"renamed":1449},[1412,1418,1425,1430,1435,1440,1446],{"name":974,"surface":1413,"replacedBy":377,"hint":377,"since":1414,"migration":1415,"silent":1150,"fix":1416},"prop","3.0.0-alpha.1","ai\u002Fguides\u002Fmigration\u002Fcomponents\u002Fbb-dropdown.md",{"kind":1417},"remove",{"name":1419,"surface":1380,"replacedBy":1420,"hint":1421,"since":1422,"migration":1415,"silent":1150,"fix":1423},"items[].key","items[].value","a row's identity: its `v-model` value (any type, compared by hash) and its `#\u003Cvalue>` slots; `check --fix` renames it","3.0.0-beta.49",{"kind":1424},"rename",{"name":1426,"surface":1380,"replacedBy":1427,"hint":1428,"since":1422,"migration":1415,"silent":1150,"fix":1429},"items[].text","items[].label","a row's text; `check --fix` renames it",{"kind":1424},{"name":1431,"surface":1380,"replacedBy":1432,"hint":1433,"since":1422,"migration":1415,"silent":1150,"fix":1434},"items[group].key","items[group].id","a group's identity, the same word as `\u003CBbDropdownGroup id>`; `check --fix` renames it",{"kind":1424},{"name":648,"surface":1436,"replacedBy":377,"hint":1437,"since":1414,"migration":1415,"silent":1150,"fix":1438},"method","read `loading` from the activator slot scope (`#activator=\"{ loading }\"`) instead of a template ref",{"kind":1439},"manual",{"name":1441,"surface":1442,"replacedBy":1337,"hint":377,"since":1443,"migration":1444,"silent":1150,"fix":1445},"no-data","slot","3.0.0-beta.41","ai\u002Fguides\u002Fmigration\u002Fv2-to-v3.md",{"kind":1424},{"name":1447,"surface":1413,"replacedBy":1203,"hint":377,"since":1443,"migration":1444,"silent":1150,"fix":1448},"noDataText",{"kind":1424},[1450,1452],{"from":1441,"to":1337,"surface":1442,"since":1443,"migration":1444,"fix":1451},{"kind":1424},{"from":1447,"to":1203,"surface":1413,"since":1443,"migration":1444,"fix":1453},{"kind":1424},1793055141477]