[{"data":1,"prerenderedAt":1113},["ShallowReactive",2],{"locale-alternates":3,"docs-nav-en":134,"api-none":377,"page-en-\u002Fcomponents\u002Fbb-tag":378,"pt-showcase-BbTag":760},{"\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":227,"body":380,"component":227,"description":747,"extension":748,"group":199,"meta":749,"navigation":750,"order":229,"path":228,"sections":751,"seo":757,"stem":758,"__hash__":759},"docs_en\u002Fcomponents\u002Fbb-tag.md",{"type":381,"value":382,"toc":740},"minimark",[383,417,423,431,438,442,465,483,514,520,529,532,541,551,557,560,563,566,572,599,602,653,665,671,693,696,711],[384,385,386,394],"when",{},[387,388,389,390,393],"p",{},"Use ",[391,392,227],"code",{}," when users invent the values, such as recipients, skills, or issue labels.",[395,396,398],"template",{"v-slot:else":397},"",[399,400,401,410],"ul",{},[402,403,404,409],"li",{},[405,406,407],"a",{"href":70},[391,408,261],{}," in multiple mode, when values come from a known set",[402,411,412,416],{},[405,413,414],{"href":12},[391,415,339],{},", when tokens are only displayed",[387,418,419,420,422],{},"Also see: ",[405,421,175],{"href":132},".",[424,425,427],"h2",{"id":426},"default",[428,429,430],"span",{},"Invite recipients with feedback",[387,432,433,434,437],{},"Seed a ",[391,435,436],{},"string[]"," model and show feedback for values rejected by the cap or duplicate check.",[439,440],"demo",{"name":441},"BbTag\u002FRecipients",[387,443,444,450,451,457,458,464],{},[405,445,447],{"href":446},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#event-duplicate",[391,448,449],{},"duplicate"," and ",[405,452,454],{"href":453},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#event-max",[391,455,456],{},"max"," report the refused string but render no message. Put application wording in ",[405,459,461],{"href":460},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-warnings",[391,462,463],{},"warnings"," or a toast.",[387,466,467,468,474,475,478,479,482],{},"A function on ",[405,469,471],{"href":470},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-pt:%3Cpart%3E",[391,472,473],{},"pt:badge"," runs once per tag and receives ",[391,476,477],{},"{ item, highlighted }",", with ",[391,480,481],{},"item"," the tag string. One chip can then stand out by its value, as the guest addresses do here. Say it in text too: colour alone is not a signal.",[484,485,486],"migration",{},[387,487,488,491,492,494,495,498,499,502,503,506,507,509,510,513],{},[391,489,490],{},"modelValue"," is now strictly ",[391,493,436],{},"; object arrays no longer compile. The removed ",[391,496,497],{},"multiple"," prop was always true, so delete it. Duplicates matched exactly in v2 and now ignore case: ",[391,500,501],{},"'Vue'"," then ",[391,504,505],{},"'vue'"," fires ",[391,508,449],{},". Add ",[391,511,512],{},"case-sensitive"," to keep the old matching.",[424,515,517],{"id":516},"entry",[428,518,519],{},"Commit and normalize entries",[387,521,522,528],{},[405,523,525],{"href":524},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-divider",[391,526,527],{},"divider"," chooses the commit key. Add comma only when commas cannot belong inside a valid token.",[439,530],{"name":531},"BbTag\u002FCommaDivider",[387,533,534,535,540],{},"Entries are trimmed. Duplicate matching ignores case; use ",[405,536,538],{"href":537},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-caseSensitive",[391,539,512],{}," only when case changes identity.",[387,542,543,544,547,548,550],{},"Committing splits the text on every single-character divider, so with comma among them a pasted ",[391,545,546],{},"a, b, c"," becomes three chips on the next Enter. Each piece is trimmed and meets the duplicate and ",[391,549,456],{}," checks on its own; pieces that do not fit under the cap stay in the field.",[424,552,554],{"id":553},"keyboard",[428,555,556],{},"Edit tokens without a pointer",[387,558,559],{},"With an empty input, Backspace highlights then removes, arrows move between chips, Home\u002FEnd jump, and Escape returns to typing.",[439,561],{"name":562},"BbTag\u002FKeyboardEditing",[387,564,565],{},"Keep instructions in a hint when the workflow depends on keyboard editing. The input retains DOM focus and announces the highlighted chip.",[424,567,569],{"id":568},"states",[428,570,571],{},"Validate and lock the field",[387,573,574,575,579,580,583,584,590,591,594,595,598],{},"A field joined to a ",[405,576,577],{"href":46},[391,578,220],{}," by its ",[391,581,582],{},"name"," is validated through ",[405,585,587],{"href":586},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-rules",[391,588,589],{},"rules",", which see the whole array. Write the requirement there, as ",[391,592,593],{},"rules=\"required\""," for at least one tag or a function for a larger minimum; the asterisk follows. The ",[391,596,597],{},"required"," prop on a joined field is a hint: it marks the field and checks nothing.",[439,600],{"name":601},"BbTag\u002FFieldStates",[387,603,604,605,611,612,617,618,624,625,631,632,638,639,645,646,652],{},"Outside a form, compute the message yourself and pass it through ",[405,606,608],{"href":607},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-errors",[391,609,610],{},"errors","; there ",[405,613,615],{"href":614},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-required",[391,616,597],{}," marks the field. ",[405,619,621],{"href":620},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-loading",[391,622,623],{},"loading"," is only status and does not lock editing. Use ",[405,626,628],{"href":627},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-readonly",[391,629,630],{},"readonly"," for a set people may copy, adding ",[405,633,635],{"href":634},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-formless",[391,636,637],{},"formless"," when the form should not own it. ",[405,640,642],{"href":641},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-disabled",[391,643,644],{},"disabled"," removes the field from the tab order. Add ",[405,647,649],{"href":648},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-clearable",[391,650,651],{},"clearable"," only when deleting the whole array is expected.",[387,654,655,661,662,664],{},[405,656,658],{"href":657},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-comma",[391,659,660],{},"comma"," is a compact display mode with no per-chip remove buttons. For read-only tokens outside a field, render ",[391,663,339],{}," instead.",[424,666,668],{"id":667},"appearance",[428,669,670],{},"Look and density",[387,672,673,679,680,450,686,692],{},[405,674,676],{"href":675},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-variant",[391,677,678],{},"variant",", ",[405,681,683],{"href":682},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-labelMode",[391,684,685],{},"label-mode",[405,687,689],{"href":688},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#prop-compact",[391,690,691],{},"compact"," change how the field looks, never how it behaves; pick them to match the text fields around it.",[439,694],{"name":695},"BbTag\u002FAppearance",[387,697,698,703,704,708,709,422],{},[405,699,700],{"href":675},[391,701,702],{},"variant=\"none\""," drops every colour, focus ring included, for a field you style yourself, like ",[405,705,707],{"href":706},"\u002Fen\u002Fcomponents\u002Fbb-text-input#layout","the flat search field"," on ",[391,710,235],{},[387,712,713,714,450,720,726,727,450,733,739],{},"The slots match the text fields too: ",[405,715,717],{"href":716},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#slot-prepend",[391,718,719],{},"prepend",[405,721,723],{"href":722},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#slot-append",[391,724,725],{},"append"," sit inside the box, ",[405,728,730],{"href":729},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#slot-prepend:outer",[391,731,732],{},"prepend:outer",[405,734,736],{"href":735},"\u002Fen\u002Fcomponents\u002Fbb-tag\u002Fapi#slot-append:outer",[391,737,738],{},"append:outer"," beside it, for a button such as \"Import list\" that belongs to the field but not to the chips.",{"title":397,"searchDepth":149,"depth":149,"links":741},[742,743,744,745,746],{"id":426,"depth":145,"text":430},{"id":516,"depth":145,"text":519},{"id":553,"depth":145,"text":556},{"id":568,"depth":145,"text":571},{"id":667,"depth":145,"text":670},"A field where people type their own values (recipients, labels, skills) and each one becomes a removable chip.","md",{},true,[752,753,754,755,756],{"id":426,"title":430},{"id":516,"title":519},{"id":553,"title":556},{"id":568,"title":571},{"id":667,"title":670},{"title":227,"description":747},"components\u002Fbb-tag","qFBML0ROdWnFvCQtyVxVpZrLiKPxsm2CjRAME1adQRY",{"name":227,"slug":761,"group":199,"description":762,"entrypoint":763,"docs":764,"props":767,"models":910,"events":913,"slots":974,"exposed":996,"pt":997,"validated":377,"migration":1060},"bb-tag","Captures and displays tag-like token values.","bitboss-ui",{"contract":765,"source":766},"ai\u002FBbTag.md","ai\u002Fsource\u002FBbTag.md",[768,773,777,781,787,790,793,796,799,802,807,810,813,816,819,822,825,828,832,836,839,844,848,853,856,860,863,865,868,871,874,878,883,886,889,892,896,899,903,908],{"name":769,"type":770,"required":771,"default":377,"description":772,"note":377,"demo":377},"append:icon","string | undefined",false,"Name of the icon to be added at the end of the input.",{"name":774,"type":770,"required":771,"default":775,"description":776,"note":377,"demo":377},"autocomplete","\"off\"","Guides to the browser as to the type of information expected in the field.",{"name":778,"type":779,"required":771,"default":377,"description":780,"note":377,"demo":377},"autofocus","Booleanish | undefined","Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field.",{"name":782,"type":783,"required":771,"default":784,"description":785,"note":786,"demo":426},"caseSensitive","boolean | undefined","false","Compares tags case-sensitively when rejecting duplicates (`Vue` and `vue` both allowed); by default case folds. A tag keeps the casing typed either way, and entries are trimmed first.","Restores v2 matching. By default v3 folds case, so `Vue` typed after `vue` emits `duplicate` instead of adding a second chip. Either way the tag is stored with the casing that was typed — only the comparison folds.",{"name":651,"type":783,"required":771,"default":784,"description":788,"note":789,"demo":667},"Displays a clear button when the input has a value and is being interacted with.","Empties the whole field, not one chip. In `comma` mode it is the only remaining button, since that mode renders no per-chip close.",{"name":660,"type":783,"required":771,"default":784,"description":791,"note":792,"demo":667},"Sets the display model for selected values to a list of comma separated string. In this mode the user cannot deselect an option by pressing the close button.","A display mode: the tags render as one comma-separated string and lose their individual close buttons. Use it where the set is set-and-forget, never where people prune a list.",{"name":691,"type":783,"required":771,"default":784,"description":794,"note":795,"demo":667},"Compact density: the field uses the `-compact` twins of `--bb-input-h`, `--bb-input-py` and `--bb-label-spacing-y`, so a `--bb-input-h` set on the component is ignored while it is on. Size a compact field with `--bb-input-h-compact` (and `--bb-input-py-compact`).","A property of a screen rather than of a field. Two densities in one form is a visible seam.",{"name":797,"type":770,"required":771,"default":377,"description":798,"note":377,"demo":377},"description","Text between the label and the input. Unlike the hint it is always visible; it joins the input's `aria-describedby` after any `errors` \u002F `warnings`, before the `hint`.",{"name":644,"type":783,"required":771,"default":784,"description":800,"note":801,"demo":568},"Disables the component.","Leaves the tab order entirely, chips included. Prefer `readonly` for an inherited set someone may need to read or copy.",{"name":527,"type":803,"required":771,"default":804,"description":805,"note":806,"demo":516},"string | string[] | undefined","\"Enter\"","The divider key used to separate values from one another. By default it is \"Enter\". Accepts a single key or an array of keys (e.g. `['Enter', ',']`) — any of them commits the current text, split on every single-character divider in the set into one tag per trimmed, non-empty piece.","A single-character divider also splits text that already contains it, so a pasted `bug, regression, docs` becomes three chips. The cost is exact: a comma divider makes a comma impossible to type inside a tag. Do not add keys speculatively.",{"name":610,"type":803,"required":771,"default":377,"description":808,"note":809,"demo":568},"Error messages under the field, a string or array, in an `aria-live=\"polite\"` region and first in the control's `aria-describedby`, so they are re-read when it regains focus.","The channel for a rule the component does not enforce — \"at least three tags\", a value your server rejected. A refused duplicate or a capped entry is better placed in `warnings`: nothing is wrong with the field.",{"name":637,"type":783,"required":771,"default":784,"description":811,"note":812,"demo":568},"Keep this control out of the enclosing `BbForm` entirely: not submitted, not dirty, not reset, not validated. For a control that is not form data (a filter, a \"show advanced\" switch).","For a tags field inside a `BbForm` that is not form data, like an inherited, read-only set.",{"name":814,"type":783,"required":771,"default":784,"description":815,"note":377,"demo":377},"hasErrors","Define if the component should be in an error state. It usually attaches a CSS class for styling purposes.",{"name":817,"type":783,"required":771,"default":784,"description":818,"note":377,"demo":377},"hasWarnings","Define if the component should be in a warning state. Same chrome as errors with `--bb-warn`; errors take priority.",{"name":820,"type":783,"required":771,"default":784,"description":821,"note":377,"demo":377},"hideLabel","Visually hides the label of the input while maintaining accessibility.",{"name":823,"type":770,"required":771,"default":377,"description":824,"note":377,"demo":377},"hint","Text box to be displayed near the input, usually to indicate instructions.",{"name":826,"type":770,"required":771,"default":377,"description":827,"note":377,"demo":377},"id","The `id` of the native control; the label's `for` and the description and message ids derive from it. Generated when omitted.",{"name":829,"type":830,"required":771,"default":377,"description":831,"note":377,"demo":377},"inputAlign","FieldCrossAlign | undefined","Vertical position of the control in a side-by-side row; not `inputPosition`, the horizontal one. Omitted, the control's first line meets the label's.",{"name":833,"type":834,"required":750,"default":377,"description":835,"note":377,"demo":377},"label","string","Text content of the label of the element.",{"name":837,"type":830,"required":771,"default":377,"description":838,"note":377,"demo":377},"labelAlign","Vertical position of the label block in a side-by-side row; not `labelPosition`, the horizontal one. Omitted, the label's first line meets the control's.",{"name":840,"type":841,"required":771,"default":377,"description":842,"note":843,"demo":667},"labelMode","\"outside\" | \"floating\" | \"inside\" | undefined","Where the label sits relative to the field: `outside` above it, `inside` within the control, or `floating` (starts inside, lifts on focus\u002Fvalue). Defaults to `config.defaultInputLabelMode`, like the other inputs.","All three modes work here, unlike on `BbSlider`. Unset, the value comes from `defaultInputLabelMode` in the plugin config, so a tags field matches the rest of a form without being configured.",{"name":845,"type":846,"required":771,"default":377,"description":847,"note":377,"demo":377},"labelPosition","\"left\" | \"center\" | \"right\" | undefined","Sets the text alignment of the label.",{"name":849,"type":850,"required":771,"default":377,"description":851,"note":852,"demo":568},"layout","Responsive\u003CFieldLayout> | undefined","How label and input sit together: `'vertical'`, `'horizontal'` (50\u002F50), `'auto'`, `'label-fill'`, `'input-fill'`, a ratio like `'xx xxxxx'`, or a per-breakpoint map (`{ default: 'vertical', md: 'xx xxxxx' }`).","Applies only while the resolved label mode is `outside`. `floating` and `inside` embed the label in the field and force the vertical layout, ignoring this silently.",{"name":623,"type":783,"required":771,"default":784,"description":854,"note":855,"demo":568},"Sets the component in a loading state, usually triggering some visual styles.","A status light, not a lock: the field stays editable while it shows. Guard the value yourself if a server-side check has to settle first.",{"name":456,"type":857,"required":771,"default":377,"description":858,"note":859,"demo":426},"number | undefined","Maximum number of selected items.","Checked against `undefined`, so `:max=\"0\"` is a real quota of zero rather than \"unlimited\". Past the cap the entry is refused and the `max` event carries it — do not mutate the array from that handler to make room.",{"name":490,"type":861,"required":771,"default":377,"description":862,"note":377,"demo":377},"string[] | undefined","Used by v-model. Contains all selected tags.",{"name":582,"type":770,"required":771,"default":377,"description":864,"note":377,"demo":377},"Defines the name of the input.",{"name":866,"type":783,"required":771,"default":784,"description":867,"note":377,"demo":377},"persistentHint","Keeps the hint displayed.",{"name":869,"type":770,"required":771,"default":377,"description":870,"note":377,"demo":377},"placeholder","Text shown while the field is empty.",{"name":872,"type":770,"required":771,"default":377,"description":873,"note":377,"demo":377},"prepend:icon","Name of the icon to be added at the start of the input.",{"name":875,"type":876,"required":771,"default":377,"description":877,"note":377,"demo":377},"pt","(PtMap\u003CTextControlPtPart, FormControlPtState> & { \"badge:loading\"?: PtValue | undefined; \"badge:disabled\"?: PtValue | undefined; \"badge:errors\"?: PtValue | undefined; \"badge:warnings\"?: PtValue | undefined; \"badge:readonly\"?: PtValue | undefined; \"badge:hasValue\"?: PtValue | undefined; \"comma:loading\"?: PtValue | undefined; \"comma:disabled\"?: PtValue | undefined; \"comma:errors\"?: PtValue | undefined; \"comma:warnings\"?: PtValue | undefined; \"comma:readonly\"?: PtValue | undefined; \"comma:hasValue\"?: PtValue | undefined; \"badge:highlighted\"?: PtValue | undefined; \"comma:highlighted\"?: PtValue | undefined; } & { badge?: PtValue | PtItemFn\u003Cstring, BbTagPtState> | undefined; comma?: PtValue | PtItemFn\u003Cstring, BbTagPtState> | undefined; } & { \"root:outline\"?: PtValue | undefined; \"icon:outline\"?: PtValue | undefined; \"root:secondary\"?: PtValue | undefined; \"icon:secondary\"?: PtValue | undefined; \"spinner:outline\"?: PtValue | undefined; \"spinner:secondary\"?: PtValue | undefined; \"clear:outline\"?: PtValue | undefined; \"clear:secondary\"?: PtValue | undefined; \"root:ghost\"?: PtValue | undefined; \"icon:ghost\"?: PtValue | undefined; \"spinner:ghost\"?: PtValue | undefined; \"clear:ghost\"?: PtValue | undefined; \"label:outline\"?: PtValue | undefined; \"label:secondary\"?: PtValue | undefined; \"label:ghost\"?: PtValue | undefined; \"description:outline\"?: PtValue | undefined; \"description:secondary\"?: PtValue | undefined; \"description:ghost\"?: PtValue | undefined; \"message:outline\"?: PtValue | undefined; \"message:secondary\"?: PtValue | undefined; \"message:ghost\"?: PtValue | undefined; \"hint:outline\"?: PtValue | undefined; \"hint:secondary\"?: PtValue | undefined; \"hint:ghost\"?: PtValue | undefined; \"input:outline\"?: PtValue | undefined; \"input:secondary\"?: PtValue | undefined; \"input:ghost\"?: PtValue | undefined; \"box:outline\"?: PtValue | undefined; \"box:secondary\"?: PtValue | undefined; \"box:ghost\"?: PtValue | undefined; \"prefix:outline\"?: PtValue | undefined; \"prefix:secondary\"?: PtValue | undefined; \"prefix:ghost\"?: PtValue | undefined; \"suffix:outline\"?: PtValue | undefined; \"suffix:secondary\"?: PtValue | undefined; \"suffix:ghost\"?: PtValue | undefined; }) | undefined","Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":879,"type":880,"required":771,"default":377,"description":881,"note":882,"demo":426},"pt:\u003Cpart>","PtValue | ((ctx: PtItemCtx\u003Cstring, BbTagPtState>) => PtItemResult) | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `badge`, `box`, `clear`, `comma`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `disabled`, `errors`, `ghost`, `hasValue`, `highlighted`, `loading`, `outline`, `readonly`, `secondary`, `warnings`.","Each chip is `pt:badge` and each entry in `comma` mode is `pt:comma` (they replace `pt:item`). Both also take a function called once per tag, `({ item, highlighted }) => …`, where `item` is the tag string.",{"name":630,"type":783,"required":771,"default":784,"description":884,"note":885,"demo":568},"Sets the input in a readonly state.","Locks this input field. It is not a way to render tags elsewhere in the interface — a table cell or a card wants `BbBadge`, which is the same chip without the field chrome.",{"name":597,"type":783,"required":771,"default":784,"description":887,"note":888,"demo":568},"Sets the input as required.","Satisfied by the first tag: the underlying input drops its `required` attribute as soon as the array is non-empty. Any other threshold is a function in `rules` inside a `BbForm`, or a message you compute and pass through `errors` outside one.",{"name":890,"type":783,"required":771,"default":784,"description":891,"note":377,"demo":377},"reverse","Reverses the layout. Applicable in every direction the order of the label and the input is swapped.",{"name":589,"type":893,"required":771,"default":377,"description":894,"note":895,"demo":568},"RuleExpression\u003Cstring[]>","vee-validate rules for this field. Only inside a `BbForm`.","Validates the whole array as one value, so a function over it covers a minimum or a maximum: `(tags) => (tags?.length ?? 0) >= 3 || 'Add at least three keywords.'`.",{"name":897,"type":770,"required":771,"default":377,"description":898,"note":377,"demo":377},"validationLabel","The field's name in validation messages (`{field}`): \"Email is not valid\". Defaults to the `label` (or `legend`), then \"This field\"; never the `name`. Set it when the label is hidden or reads badly in a sentence (icon-only, a question). `BbForm` only.",{"name":900,"type":901,"required":771,"default":377,"description":902,"note":377,"demo":377},"validationMode","ValidationMode | undefined","When the field validates: `aggressive` (each change), `balanced` (on leave, then live while in error), `lazy` (on leave), `submit-only`, `submit-live`. Unset: the `BbForm`'s `validation-mode`, then `formControls.validationMode` (`'balanced'`). `BbForm` only.",{"name":678,"type":904,"required":771,"default":905,"description":906,"note":907,"demo":667},"InputVariantType | undefined","'outline'","The field box's look, with `BbButton`'s names and tokens. Colours only, so a form never reflows; `'ghost'` has no border in any state, `'none'` no look at all (you own hover, focus and the states). Register more with the plugin's `inputVariants`.","The field box only: `outline` (default), `secondary` and `ghost` keep the same height, padding and border width, so swapping one never shifts a layout.",{"name":463,"type":803,"required":771,"default":377,"description":909,"note":377,"demo":377},"Warning messages under the field, a string or array: amber, in their own `aria-live` region and in the control's `aria-describedby` after the errors. Non-empty turns on the warning state; errors win when both are set.",[911],{"name":490,"type":861,"note":912,"demo":426},"Strictly `string[]` in v3. Outside a `BbForm` it must already be an array on the first render: a scalar or an `undefined` model throws at mount. Inside a form you can leave `v-model` off and the form starts the field at `[]`. A model of objects no longer compiles: keep the objects in your own state and bind a mapped `string[]`. If the strings come from a list you already have, the component you want is `BbSelect` in multiple mode.",[914,918,922,926,930,934,937,941,944,947,950,954,957,960,963,966,970],{"name":915,"signature":916,"description":917,"note":377,"demo":377},"active","(): void","Emitted when the tag input becomes active (focus\u002Fclick enters it).",{"name":919,"signature":920,"description":921,"note":377,"demo":377},"blur","(event: FocusEvent): void","Emitted when the native input loses focus. Forwards the original DOM `FocusEvent`.",{"name":923,"signature":924,"description":925,"note":377,"demo":377},"change","(event: Event): void","Emitted when the native input fires a change event. Forwards the original DOM `Event`.",{"name":927,"signature":928,"description":929,"note":377,"demo":377},"click","(event: MouseEvent): void","Emitted when the input receives a click interaction. Forwards the original DOM `MouseEvent`.",{"name":931,"signature":932,"description":933,"note":377,"demo":377},"compositionend","(event: CompositionEvent): void","An IME composition ended. Forwards the DOM `CompositionEvent`.",{"name":935,"signature":932,"description":936,"note":377,"demo":377},"compositionstart","An IME composition started. Forwards the DOM `CompositionEvent`.",{"name":449,"signature":938,"description":939,"note":940,"demo":426},"(string: string): void","Emitted when an attempt is made to add a tag that already exists.","Carries the rejected string. Nothing is shown to the user unless you show it — the component refuses the entry and says nothing on screen.",{"name":942,"signature":920,"description":943,"note":377,"demo":377},"focus","Emitted when the native input gains focus. Forwards the original DOM `FocusEvent`.",{"name":945,"signature":916,"description":946,"note":377,"demo":377},"inactive","Emitted when focus\u002Fclick moves outside the tag input after it was active.",{"name":948,"signature":924,"description":949,"note":377,"demo":377},"input","Emitted on native input events. Forwards the original DOM `Event`.",{"name":951,"signature":952,"description":953,"note":377,"demo":377},"keydown","(event: KeyboardEvent): void","Emitted for keyboard interaction. Forwards the original DOM `KeyboardEvent`.",{"name":955,"signature":952,"description":956,"note":377,"demo":377},"keyup","Emitted when a key is released. Forwards the original DOM `KeyboardEvent`.",{"name":456,"signature":938,"description":958,"note":959,"demo":426},"Emitted when an attempt is made to add a tag while the `max` limit is already reached.","The cap counterpart of `duplicate`, and it carries the rejected string for the same reason: so the message can name it.",{"name":961,"signature":928,"description":962,"note":377,"demo":377},"mousedown","A pointer button was pressed on the text field. Forwards the DOM `MouseEvent`.",{"name":964,"signature":928,"description":965,"note":377,"demo":377},"mouseup","A pointer button was released on the text field. Forwards the DOM `MouseEvent`.",{"name":967,"signature":968,"description":969,"note":377,"demo":377},"paste","(event: ClipboardEvent): void","Native clipboard paste. Forwards the DOM `ClipboardEvent`.",{"name":971,"signature":972,"description":973,"note":377,"demo":377},"update:modelValue","(value: string[]): void","Emitted when the tag array changes.",[975,978,980,983,986,989,991,993],{"name":725,"type":976,"description":977,"note":377,"demo":377},"Record\u003Cstring, never>","Content appended inside the input field wrapper, after the tag chips.",{"name":738,"type":976,"description":979,"note":377,"demo":377},"Content appended outside the input field wrapper.",{"name":797,"type":981,"description":982,"note":377,"demo":377},"BbTagDescriptionSlotProps","Replaces the description text. Provided alone (no `description` prop) it still renders the description region and wires it into `aria-describedby`.",{"name":833,"type":984,"description":985,"note":377,"demo":377},"BbTagLabelSlotProps","Replaces the default label text rendered above the input.",{"name":987,"type":976,"description":988,"note":377,"demo":377},"prefix","Content rendered as an inline prefix inside the input field.",{"name":719,"type":976,"description":990,"note":377,"demo":377},"Content prepended inside the input field wrapper, before the tag chips.",{"name":732,"type":976,"description":992,"note":377,"demo":377},"Content prepended outside the input field wrapper.",{"name":994,"type":976,"description":995,"note":377,"demo":377},"suffix","Content rendered as an inline suffix inside the input field.",[],{"parts":998,"states":1034},[999,1002,1004,1006,1009,1011,1014,1016,1019,1022,1024,1026,1029,1032],{"name":1000,"description":1001},"root","The field's outer container: the label, the box and the lines under it.",{"name":833,"description":1003},"The label text above the box (the `label` prop).",{"name":797,"description":1005},"The muted line under the label (the `description` prop).",{"name":1007,"description":1008},"message","The errors \u002F warnings line under the box. A node of its own: it can show at the same time as `hint`.",{"name":823,"description":1010},"The helper line (the `hint` prop), shown on focus, or always with `persistent-hint`.",{"name":1012,"description":1013},"box","The bordered box around the input — border, background and radius; the `variant` paints here.",{"name":948,"description":1015},"The native input a new tag is typed into.",{"name":1017,"description":1018},"icon","The content icons, prepend and append — a broadcast. Chrome (the clear ✕, a chevron, the error \u002F warning glyph) is never in it.",{"name":1020,"description":1021},"spinner","The spinner inside the box while `loading`.",{"name":987,"description":1023},"The `#prefix` slot's wrapper, inside the box before the input.",{"name":994,"description":1025},"The `#suffix` slot's wrapper, inside the box after the input.",{"name":1027,"description":1028},"clear","The ✕ that empties this control (`clearable`) — one node, never a chip's own ✕.",{"name":1030,"description":1031},"badge","Each tag's `BbBadge` root — a broadcast resolved per tag. The badge's own ✕ is chrome, never `clear`. Not rendered in `comma` mode.",{"name":660,"description":1033},"Each tag in `comma` mode — a broadcast resolved per tag. Not rendered in chips mode.",[1035,1037,1039,1042,1045,1048,1050,1053,1055,1058],{"name":644,"description":1036},"Component-wide: the control is `disabled`.",{"name":610,"description":1038},"Component-wide: the control is in its error state (`errors` \u002F `has-errors`, or its validation) — the message line and the box turn red.",{"name":1040,"description":1041},"ghost","On the field's parts: `variant: 'ghost'`. Below the real states, like every variant.",{"name":1043,"description":1044},"hasValue","Component-wide: the control holds a value, by its own rule (`0` counts on `BbNumberInput`, `''` on `BbColorInput`).",{"name":1046,"description":1047},"highlighted","Per node, on `badge` \u002F `comma`: the tag the arrow keys are on (`bb-badge--highlighted` \u002F `bb-tag__comma--highlighted`). A cursor, not focus: focus stays in the text input.",{"name":623,"description":1049},"Component-wide: `loading` is on; the box shows its `spinner`.",{"name":1051,"description":1052},"outline","On the field's parts: `variant: 'outline'`. Merged after the part's base entry and before its states, so the real states still win.",{"name":630,"description":1054},"Component-wide: the control is `readonly` — shown, focusable, not editable.",{"name":1056,"description":1057},"secondary","On the field's parts: `variant: 'secondary'`. Below the real states, like every variant.",{"name":463,"description":1059},"Component-wide: the control is in its warning state (`warnings` \u002F `has-warnings`) and not in an error state — errors win, so the two are never on together.",{"removed":1061,"renamed":1102},[1062,1069,1075,1079,1083,1086,1093,1097],{"name":1063,"surface":1064,"replacedBy":738,"hint":377,"since":1065,"migration":1066,"silent":750,"fix":1067},"append-outer","slot","3.0.0-beta.41","ai\u002Fguides\u002Fmigration\u002Fv2-to-v3.md",{"kind":1068},"rename",{"name":1070,"surface":1071,"replacedBy":849,"hint":377,"since":1072,"migration":1073,"silent":750,"fix":1074},"direction","prop","3.0.0-beta.33","ai\u002Fguides\u002Fmigration\u002Fcomponents\u002Fbb-tag.md",{"kind":1068},{"name":1076,"surface":1071,"replacedBy":817,"hint":377,"since":1077,"migration":1066,"silent":750,"fix":1078},"hasWarning","3.0.0-beta.26",{"kind":1068},{"name":497,"surface":1071,"replacedBy":377,"hint":377,"since":1080,"migration":1073,"silent":750,"fix":1081},"3.0.0-alpha.1",{"kind":1082},"remove",{"name":1084,"surface":1064,"replacedBy":732,"hint":377,"since":1065,"migration":1066,"silent":750,"fix":1085},"prepend-outer",{"kind":1068},{"name":1087,"surface":875,"replacedBy":377,"hint":1088,"since":1089,"migration":1090,"silent":750,"fix":1091},"pt:item","each chip is `pt:badge`; in `comma` mode each entry is `pt:comma` (same states)","3.0.0-beta.36","ai\u002Fguides\u002Fmigration\u002Fv3-beta-css-classes.md",{"kind":1092},"manual",{"name":1094,"surface":1071,"replacedBy":900,"hint":1095,"since":1065,"migration":1066,"silent":750,"fix":1096},"validateOn","an array of events became one mode (`aggressive` | `balanced` | `lazy` | `submit-only` | `submit-live`). The old defaults (`['blur']`, `['inactive']`, a toggle's `['update:modelValue', 'change', 'blur']`) are `balanced`, the new default: delete the prop. A text field on `['update:modelValue']` is `validation-mode=\"aggressive\"`. Set it once on `\u003CBbForm validation-mode>` instead of per field",{"kind":1092},{"name":1098,"surface":1071,"replacedBy":377,"hint":1099,"since":1065,"migration":1066,"silent":750,"fix":1100},"vid","a display name (v2: `vid=\"Email address\"`) is now `validation-label`; a field path (3.0 betas: `vid=\"address.city\"`) is now `name` (brackets for a native post: `address[city]`). `check --fix` picks by the value",{"kind":1101,"display":897,"key":582},"byValue",[1103,1105,1107,1109,1111],{"from":1063,"to":738,"surface":1064,"since":1065,"migration":1066,"fix":1104},{"kind":1068},{"from":1070,"to":849,"surface":1071,"since":1072,"migration":1073,"fix":1106},{"kind":1068},{"from":1076,"to":817,"surface":1071,"since":1077,"migration":1066,"fix":1108},{"kind":1068},{"from":1084,"to":732,"surface":1064,"since":1065,"migration":1066,"fix":1110},{"kind":1068},{"from":1094,"to":900,"surface":1071,"since":1065,"migration":1066,"fix":1112},{"kind":1092},1793055145624]