[{"data":1,"prerenderedAt":767},["ShallowReactive",2],{"locale-alternates":3,"docs-nav-en":134,"api-BbTextInput":377,"page-en-\u002Fcomponents\u002Fbb-text-input\u002Fapi":389},{"\u002Fit\u002Fcomponenti\u002Fbb-accordion":4,"\u002Fen\u002Fcomponents\u002Fbb-accordion":5,"\u002Fit\u002Fcomponenti\u002Fbb-alert":6,"\u002Fen\u002Fcomponents\u002Fbb-alert":7,"\u002Fit\u002Fcomponenti\u002Fbb-asterisk":8,"\u002Fen\u002Fcomponents\u002Fbb-asterisk":9,"\u002Fit\u002Fcomponenti\u002Fbb-avatar":10,"\u002Fen\u002Fcomponents\u002Fbb-avatar":11,"\u002Fit\u002Fcomponenti\u002Fbb-badge":12,"\u002Fen\u002Fcomponents\u002Fbb-badge":13,"\u002Fit\u002Fcomponenti\u002Fbb-base-button":14,"\u002Fen\u002Fcomponents\u002Fbb-base-button":15,"\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs":16,"\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs":17,"\u002Fit\u002Fcomponenti\u002Fbb-button":18,"\u002Fen\u002Fcomponents\u002Fbb-button":19,"\u002Fit\u002Fcomponenti\u002Fbb-calendar":20,"\u002Fen\u002Fcomponents\u002Fbb-calendar":21,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox":22,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":23,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":24,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":25,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":26,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":27,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":28,"\u002Fen\u002Fcomponents\u002Fbb-color-input":29,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":30,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":31,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":32,"\u002Fen\u002Fcomponents\u002Fbb-confirm":33,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":34,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":35,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":36,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":37,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":38,"\u002Fen\u002Fcomponents\u002Fbb-dialog":39,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":40,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":41,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":42,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":43,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":44,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":45,"\u002Fit\u002Fcomponenti\u002Fbb-form":46,"\u002Fen\u002Fcomponents\u002Fbb-form":47,"\u002Fit\u002Fcomponenti\u002Fbb-hover-card":48,"\u002Fen\u002Fcomponents\u002Fbb-hover-card":49,"\u002Fit\u002Fcomponenti\u002Fbb-icon":50,"\u002Fen\u002Fcomponents\u002Fbb-icon":51,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":52,"\u002Fen\u002Fcomponents\u002Fbb-indicator":53,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":54,"\u002Fen\u002Fcomponents\u002Fbb-number-input":55,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":56,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":57,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":58,"\u002Fen\u002Fcomponents\u002Fbb-pagination":59,"\u002Fit\u002Fcomponenti\u002Fbb-popover":60,"\u002Fen\u002Fcomponents\u002Fbb-popover":61,"\u002Fit\u002Fcomponenti\u002Fbb-progress":62,"\u002Fen\u002Fcomponents\u002Fbb-progress":63,"\u002Fit\u002Fcomponenti\u002Fbb-radio":64,"\u002Fen\u002Fcomponents\u002Fbb-radio":65,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":66,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":67,"\u002Fit\u002Fcomponenti\u002Fbb-rating":68,"\u002Fen\u002Fcomponents\u002Fbb-rating":69,"\u002Fit\u002Fcomponenti\u002Fbb-select":70,"\u002Fen\u002Fcomponents\u002Fbb-select":71,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":72,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":73,"\u002Fit\u002Fcomponenti\u002Fbb-slider":74,"\u002Fen\u002Fcomponents\u002Fbb-slider":75,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":76,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":77,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":78,"\u002Fen\u002Fcomponents\u002Fbb-spinner":79,"\u002Fit\u002Fcomponenti\u002Fbb-switch":80,"\u002Fen\u002Fcomponents\u002Fbb-switch":81,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":82,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":83,"\u002Fit\u002Fcomponenti\u002Fbb-table":84,"\u002Fen\u002Fcomponents\u002Fbb-table":85,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":86,"\u002Fen\u002Fcomponents\u002Fbb-tabs":87,"\u002Fit\u002Fcomponenti\u002Fbb-tag":88,"\u002Fen\u002Fcomponents\u002Fbb-tag":89,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":90,"\u002Fen\u002Fcomponents\u002Fbb-text-input":91,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":92,"\u002Fen\u002Fcomponents\u002Fbb-textarea":93,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":94,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":95,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":96,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":97,"\u002Fit\u002Fcomponenti\u002Fbb-toast":98,"\u002Fen\u002Fcomponents\u002Fbb-toast":99,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":100,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":101,"\u002Fit\u002Fcomponenti\u002Fbb-tree":102,"\u002Fen\u002Fcomponents\u002Fbb-tree":103,"\u002Fit\u002Fguide\u002Fadoption-checklist":104,"\u002Fen\u002Fguides\u002Fadoption-checklist":105,"\u002Fit\u002Fguide\u002Fai-agents":106,"\u002Fen\u002Fguides\u002Fai-agents":107,"\u002Fit\u002Fguide\u002Fcoherence":108,"\u002Fen\u002Fguides\u002Fcoherence":109,"\u002Fit\u002Fguide\u002Fdesign-language":110,"\u002Fen\u002Fguides\u002Fdesign-language":111,"\u002Fit\u002Fguide\u002Fdesign-tokens":112,"\u002Fen\u002Fguides\u002Fdesign-tokens":113,"\u002Fit\u002Fguide\u002Ffetching-data":114,"\u002Fen\u002Fguides\u002Ffetching-data":115,"\u002Fit\u002Fguide\u002Ficons":116,"\u002Fen\u002Fguides\u002Ficons":117,"\u002Fit\u002Fguide\u002Finertia":118,"\u002Fen\u002Fguides\u002Finertia":119,"\u002Fit\u002Fguide\u002Finstallation":120,"\u002Fen\u002Fguides\u002Finstallation":121,"\u002Fit\u002Fguide\u002Fmigration":122,"\u002Fen\u002Fguides\u002Fmigration":123,"\u002Fit\u002Fguide\u002Fnuxt":124,"\u002Fen\u002Fguides\u002Fnuxt":125,"\u002Fit\u002Fguide\u002Foptions-and-items":126,"\u002Fen\u002Fguides\u002Foptions-and-items":127,"\u002Fit\u002Fguide\u002Fpassthrough":128,"\u002Fen\u002Fguides\u002Fpassthrough":129,"\u002Fit\u002Fguide\u002Fpreset-components":130,"\u002Fen\u002Fguides\u002Fpreset-components":131,"\u002Fit\u002Fguide\u002Fvalidated-forms":132,"\u002Fen\u002Fguides\u002Fvalidated-forms":133},"\u002Fen\u002Fcomponents\u002Fbb-accordion","\u002Fit\u002Fcomponenti\u002Fbb-accordion","\u002Fen\u002Fcomponents\u002Fbb-alert","\u002Fit\u002Fcomponenti\u002Fbb-alert","\u002Fen\u002Fcomponents\u002Fbb-asterisk","\u002Fit\u002Fcomponenti\u002Fbb-asterisk","\u002Fen\u002Fcomponents\u002Fbb-avatar","\u002Fit\u002Fcomponenti\u002Fbb-avatar","\u002Fen\u002Fcomponents\u002Fbb-badge","\u002Fit\u002Fcomponenti\u002Fbb-badge","\u002Fen\u002Fcomponents\u002Fbb-base-button","\u002Fit\u002Fcomponenti\u002Fbb-base-button","\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs","\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs","\u002Fen\u002Fcomponents\u002Fbb-button","\u002Fit\u002Fcomponenti\u002Fbb-button","\u002Fen\u002Fcomponents\u002Fbb-calendar","\u002Fit\u002Fcomponenti\u002Fbb-calendar","\u002Fen\u002Fcomponents\u002Fbb-checkbox","\u002Fit\u002Fcomponenti\u002Fbb-checkbox","\u002Fen\u002Fcomponents\u002Fbb-checkbox-group","\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group","\u002Fen\u002Fcomponents\u002Fbb-collapsible","\u002Fit\u002Fcomponenti\u002Fbb-collapsible","\u002Fen\u002Fcomponents\u002Fbb-color-input","\u002Fit\u002Fcomponenti\u002Fbb-color-input","\u002Fen\u002Fcomponents\u002Fbb-color-palette","\u002Fit\u002Fcomponenti\u002Fbb-color-palette","\u002Fen\u002Fcomponents\u002Fbb-confirm","\u002Fit\u002Fcomponenti\u002Fbb-confirm","\u002Fen\u002Fcomponents\u002Fbb-date-picker","\u002Fit\u002Fcomponenti\u002Fbb-date-picker","\u002Fen\u002Fcomponents\u002Fbb-date-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input","\u002Fen\u002Fcomponents\u002Fbb-dialog","\u002Fit\u002Fcomponenti\u002Fbb-dialog","\u002Fen\u002Fcomponents\u002Fbb-dropdown","\u002Fit\u002Fcomponenti\u002Fbb-dropdown","\u002Fen\u002Fcomponents\u002Fbb-dropdown-button","\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button","\u002Fen\u002Fcomponents\u002Fbb-dropzone","\u002Fit\u002Fcomponenti\u002Fbb-dropzone","\u002Fen\u002Fcomponents\u002Fbb-form","\u002Fit\u002Fcomponenti\u002Fbb-form","\u002Fen\u002Fcomponents\u002Fbb-hover-card","\u002Fit\u002Fcomponenti\u002Fbb-hover-card","\u002Fen\u002Fcomponents\u002Fbb-icon","\u002Fit\u002Fcomponenti\u002Fbb-icon","\u002Fen\u002Fcomponents\u002Fbb-indicator","\u002Fit\u002Fcomponenti\u002Fbb-indicator","\u002Fen\u002Fcomponents\u002Fbb-number-input","\u002Fit\u002Fcomponenti\u002Fbb-number-input","\u002Fen\u002Fcomponents\u002Fbb-off-canvas","\u002Fit\u002Fcomponenti\u002Fbb-off-canvas","\u002Fen\u002Fcomponents\u002Fbb-pagination","\u002Fit\u002Fcomponenti\u002Fbb-pagination","\u002Fen\u002Fcomponents\u002Fbb-popover","\u002Fit\u002Fcomponenti\u002Fbb-popover","\u002Fen\u002Fcomponents\u002Fbb-progress","\u002Fit\u002Fcomponenti\u002Fbb-progress","\u002Fen\u002Fcomponents\u002Fbb-radio","\u002Fit\u002Fcomponenti\u002Fbb-radio","\u002Fen\u002Fcomponents\u002Fbb-radio-group","\u002Fit\u002Fcomponenti\u002Fbb-radio-group","\u002Fen\u002Fcomponents\u002Fbb-rating","\u002Fit\u002Fcomponenti\u002Fbb-rating","\u002Fen\u002Fcomponents\u002Fbb-select","\u002Fit\u002Fcomponenti\u002Fbb-select","\u002Fen\u002Fcomponents\u002Fbb-select-popover","\u002Fit\u002Fcomponenti\u002Fbb-select-popover","\u002Fen\u002Fcomponents\u002Fbb-slider","\u002Fit\u002Fcomponenti\u002Fbb-slider","\u002Fen\u002Fcomponents\u002Fbb-smooth-height","\u002Fit\u002Fcomponenti\u002Fbb-smooth-height","\u002Fen\u002Fcomponents\u002Fbb-spinner","\u002Fit\u002Fcomponenti\u002Fbb-spinner","\u002Fen\u002Fcomponents\u002Fbb-switch","\u002Fit\u002Fcomponenti\u002Fbb-switch","\u002Fen\u002Fcomponents\u002Fbb-switch-group","\u002Fit\u002Fcomponenti\u002Fbb-switch-group","\u002Fen\u002Fcomponents\u002Fbb-table","\u002Fit\u002Fcomponenti\u002Fbb-table","\u002Fen\u002Fcomponents\u002Fbb-tabs","\u002Fit\u002Fcomponenti\u002Fbb-tabs","\u002Fen\u002Fcomponents\u002Fbb-tag","\u002Fit\u002Fcomponenti\u002Fbb-tag","\u002Fen\u002Fcomponents\u002Fbb-text-input","\u002Fit\u002Fcomponenti\u002Fbb-text-input","\u002Fen\u002Fcomponents\u002Fbb-textarea","\u002Fit\u002Fcomponenti\u002Fbb-textarea","\u002Fen\u002Fcomponents\u002Fbb-time-picker","\u002Fit\u002Fcomponenti\u002Fbb-time-picker","\u002Fen\u002Fcomponents\u002Fbb-time-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input","\u002Fen\u002Fcomponents\u002Fbb-toast","\u002Fit\u002Fcomponenti\u002Fbb-toast","\u002Fen\u002Fcomponents\u002Fbb-tooltip","\u002Fit\u002Fcomponenti\u002Fbb-tooltip","\u002Fen\u002Fcomponents\u002Fbb-tree","\u002Fit\u002Fcomponenti\u002Fbb-tree","\u002Fen\u002Fguides\u002Fadoption-checklist","\u002Fit\u002Fguide\u002Fadoption-checklist","\u002Fen\u002Fguides\u002Fai-agents","\u002Fit\u002Fguide\u002Fai-agents","\u002Fen\u002Fguides\u002Fcoherence","\u002Fit\u002Fguide\u002Fcoherence","\u002Fen\u002Fguides\u002Fdesign-language","\u002Fit\u002Fguide\u002Fdesign-language","\u002Fen\u002Fguides\u002Fdesign-tokens","\u002Fit\u002Fguide\u002Fdesign-tokens","\u002Fen\u002Fguides\u002Ffetching-data","\u002Fit\u002Fguide\u002Ffetching-data","\u002Fen\u002Fguides\u002Ficons","\u002Fit\u002Fguide\u002Ficons","\u002Fen\u002Fguides\u002Finertia","\u002Fit\u002Fguide\u002Finertia","\u002Fen\u002Fguides\u002Finstallation","\u002Fit\u002Fguide\u002Finstallation","\u002Fen\u002Fguides\u002Fmigration","\u002Fit\u002Fguide\u002Fmigration","\u002Fen\u002Fguides\u002Fnuxt","\u002Fit\u002Fguide\u002Fnuxt","\u002Fen\u002Fguides\u002Foptions-and-items","\u002Fit\u002Fguide\u002Foptions-and-items","\u002Fen\u002Fguides\u002Fpassthrough","\u002Fit\u002Fguide\u002Fpassthrough","\u002Fen\u002Fguides\u002Fpreset-components","\u002Fit\u002Fguide\u002Fpreset-components","\u002Fen\u002Fguides\u002Fvalidated-forms","\u002Fit\u002Fguide\u002Fvalidated-forms",[135,150,162,186,198,242,275,311,332,353,365,371],{"label":136,"entries":137},"Getting started",[138,142,146],{"title":139,"path":140,"order":141},"Installation","\u002Fguides\u002Finstallation",1,{"title":143,"path":144,"order":145},"Migrating from v2","\u002Fguides\u002Fmigration",2,{"title":147,"path":148,"order":149},"Adoption checklist","\u002Fguides\u002Fadoption-checklist",3,{"label":151,"entries":152},"Design system",[153,156,159],{"title":154,"path":155,"order":141},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":157,"path":158,"order":145},"Design language","\u002Fguides\u002Fdesign-language",{"title":160,"path":161,"order":149},"Passthrough","\u002Fguides\u002Fpassthrough",{"label":163,"entries":164},"Playbooks",[165,168,171,174,178,182],{"title":166,"path":167,"order":141},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":169,"path":170,"order":145},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":172,"path":173,"order":149},"Coherence","\u002Fguides\u002Fcoherence",{"title":175,"path":176,"order":177},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":179,"path":180,"order":181},"Icons","\u002Fguides\u002Ficons",5,{"title":183,"path":184,"order":185},"Preset components","\u002Fguides\u002Fpreset-components",6,{"label":187,"entries":188},"Ecosystem",[189,192,195],{"title":190,"path":191,"order":141},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":193,"path":194,"order":145},"Nuxt","\u002Fguides\u002Fnuxt",{"title":196,"path":197,"order":149},"AI agents","\u002Fguides\u002Fai-agents",{"label":199,"entries":200},"Inputs",[201,204,207,210,213,216,219,222,226,230,234,238],{"title":202,"path":203,"component":202,"order":141},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":205,"path":206,"component":205,"order":145},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":208,"path":209,"component":208,"order":149},"BbCalendar","\u002Fcomponents\u002Fbb-calendar",{"title":211,"path":212,"component":211,"order":149},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":214,"path":215,"component":214,"order":177},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":217,"path":218,"component":217,"order":181},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":220,"path":221,"component":220,"order":185},"BbForm","\u002Fcomponents\u002Fbb-form",{"title":223,"path":224,"component":223,"order":225},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":227,"path":228,"component":227,"order":229},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":231,"path":232,"component":231,"order":233},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":235,"path":236,"component":235,"order":237},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":239,"path":240,"component":239,"order":241},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":243,"entries":244},"Selection",[245,248,251,254,257,260,263,266,269,272],{"title":246,"path":247,"component":246,"order":141},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":249,"path":250,"component":249,"order":145},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":252,"path":253,"component":252,"order":149},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":255,"path":256,"component":255,"order":177},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":258,"path":259,"component":258,"order":181},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":261,"path":262,"component":261,"order":185},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":264,"path":265,"component":264,"order":225},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":267,"path":268,"component":267,"order":229},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":270,"path":271,"component":270,"order":233},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":273,"path":274,"component":273,"order":237},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":276,"entries":277},"Overlay",[278,281,284,287,290,293,296,299,302,305,308],{"title":279,"path":280,"component":279,"order":141},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":282,"path":283,"component":282,"order":145},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":285,"path":286,"component":285,"order":149},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":288,"path":289,"component":288,"order":177},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":291,"path":292,"component":291,"order":181},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":294,"path":295,"component":294,"order":185},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":297,"path":298,"component":297,"order":225},"BbHoverCard","\u002Fcomponents\u002Fbb-hover-card",{"title":300,"path":301,"component":300,"order":225},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":303,"path":304,"component":303,"order":229},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":306,"path":307,"component":306,"order":233},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":309,"path":310,"component":309,"order":237},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":312,"entries":313},"Navigation",[314,317,320,323,326,329],{"title":315,"path":316,"component":315,"order":141},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":318,"path":319,"component":318,"order":145},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":321,"path":322,"component":321,"order":149},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":324,"path":325,"component":324,"order":177},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":327,"path":328,"component":327,"order":181},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":330,"path":331,"component":330,"order":185},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":333,"entries":334},"Feedback",[335,338,341,344,347,350],{"title":336,"path":337,"component":336,"order":141},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":339,"path":340,"component":339,"order":145},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":342,"path":343,"component":342,"order":149},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":345,"path":346,"component":345,"order":177},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":348,"path":349,"component":348,"order":181},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":351,"path":352,"component":351,"order":185},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":354,"entries":355},"Data Display",[356,359,362],{"title":357,"path":358,"component":357,"order":141},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":360,"path":361,"component":360,"order":145},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":363,"path":364,"component":363,"order":149},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":366,"entries":367},"Layout & Utility",[368],{"title":369,"path":370,"component":369,"order":141},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":372,"entries":373},"Other",[374],{"title":375,"path":376,"component":375,"order":141},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",{"name":235,"slug":378,"group":199,"description":379,"entrypoint":380,"docs":381,"props":384,"models":568,"events":571,"slots":619,"exposed":648,"pt":649,"validated":389,"migration":712},"bb-text-input","Captures single-line text values.","bitboss-ui",{"contract":382,"source":383},"ai\u002FBbTextInput.md","ai\u002Fsource\u002FBbTextInput.md",[385,393,398,404,411,416,419,424,428,433,439,443,447,451,456,460,463,467,472,477,480,485,489,493,497,501,505,509,513,516,519,522,526,531,535,539,542,547,552,555,559,564],{"name":386,"type":387,"required":388,"default":389,"description":390,"note":391,"demo":392},"append:icon","string | undefined",false,null,"Name of the icon to be added at the end of the input.","The append icon position shows one thing at a time, by priority: clear button, then spinner, then the error or warning icon, then this. On a `clearable` or validated field it disappears as soon as there is a value to clear or an error to show. Put anything that must stay visible in `append:outer`.","affixes",{"name":394,"type":387,"required":388,"default":389,"description":395,"note":396,"demo":397},"autocomplete","Guides to the browser as to the type of information expected in the field.","Set it on every field in an auth or checkout flow. Search and filter boxes need `autocomplete=\"off\"` just as much: they are text inputs on a page that has seen a login, so the browser offers a saved email over the results being filtered.","type",{"name":399,"type":400,"required":388,"default":389,"description":401,"note":402,"demo":403},"autofocus","Booleanish | undefined","Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field.","The replacement for the template-ref API v3 removed: there is no exposed `focus()` \u002F `blur()` \u002F `select()`, and a leftover call is `undefined` at runtime rather than a compile error. Use at most one per view. For anything more, take the native `\u003Cinput>` through `pt:input` (`attrs: { ref }`).","default",{"name":405,"type":406,"required":388,"default":407,"description":408,"note":409,"demo":410},"clearable","boolean | undefined","false","Displays a clear button when the input has a value and is being interacted with.","There is no `clear` event: the button emits `null` through the model, so watch the model instead. Suppressed on `disabled` and `readonly` fields, and never worth rebuilding in an `append` slot.","states",{"name":412,"type":406,"required":388,"default":407,"description":413,"note":414,"demo":415},"compact","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 view, not of a field. Two densities in one form read as a seam.","layout",{"name":417,"type":406,"required":388,"default":407,"description":418,"note":389,"demo":389},"counter","Shows a character count at the end of the hint row: `42`, or `42 \u002F 140` with the native `maxlength` (which also stops input). It brightens from 90 % and takes the warning colour at the limit; screen readers hear it only when it crosses 90 % or the limit.",{"name":420,"type":387,"required":388,"default":389,"description":421,"note":422,"demo":423},"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`.","Always visible, and read before typing: the place for an instruction. `hint` is the one that speaks while the field has focus.","messaging",{"name":425,"type":406,"required":388,"default":407,"description":426,"note":427,"demo":410},"disabled","Disables the component.","Blocks the keyboard too, so a disabled value is unreachable for someone navigating that way. Prefer `readonly` for derived or provisioned values.",{"name":429,"type":406,"required":388,"default":407,"description":430,"note":431,"demo":432},"emitMasked","Emits the masked value of the input.","Off by default, so the model holds the digits while the field shows the separators. Turn it on when the formatted string is the value you store, and do not strip formatting server-side that was never sent.","mask",{"name":434,"type":435,"required":388,"default":389,"description":436,"note":437,"demo":438},"errors","string | string[] | undefined","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.","A non-empty value implies the error state, so `has-errors` is only for when the message lives elsewhere. Rendered in an `aria-live` region and referenced first from `aria-describedby`, so it is announced on change and re-read on focus.","validation",{"name":440,"type":406,"required":388,"default":407,"description":441,"note":442,"demo":389},"formless","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 field inside a `BbForm` that is not form data, such as a filter above a list. Without it, a field with no `name` joins the form under its label slug.",{"name":444,"type":406,"required":388,"default":407,"description":445,"note":446,"demo":438},"hasErrors","Define if the component should be in an error state. It usually attaches a CSS class for styling purposes.","Sets `aria-invalid` and the error chrome without a message, for a field whose error is reported by a form-level summary.",{"name":448,"type":406,"required":388,"default":407,"description":449,"note":450,"demo":438},"hasWarnings","Define if the component should be in a warning state. Same chrome as errors with `--bb-warn`; errors take priority.","The warning counterpart of `has-errors`: amber chrome, no `aria-invalid`. Errors win when both states are set.",{"name":452,"type":406,"required":388,"default":407,"description":453,"note":454,"demo":455},"hideLabel","Visually hides the label of the input while maintaining accessibility.","Keeps the accessible name and removes only the visible text. It is the answer for a search box that shows just a placeholder; omitting `label` is not the same thing and never is.","label",{"name":457,"type":387,"required":388,"default":389,"description":458,"note":459,"demo":423},"hint","Text box to be displayed near the input, usually to indicate instructions.","Shown while the field has focus, unless `persistent-hint` keeps it. A form where every field carries permanent text below it is a form nobody reads.",{"name":461,"type":387,"required":388,"default":389,"description":462,"note":389,"demo":389},"id","The `id` of the native control; the label's `for` and the description and message ids derive from it. Generated when omitted.",{"name":464,"type":465,"required":388,"default":389,"description":466,"note":389,"demo":389},"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":468,"type":469,"required":388,"default":389,"description":470,"note":471,"demo":397},"inputMode","\"text\" | \"none\" | \"search\" | \"tel\" | \"url\" | \"email\" | \"numeric\" | \"decimal\" | undefined","The inputmode of the input.","Steers the mobile keyboard independently of `type`: that is how a masked code field stays `type=\"text\"` and still gets a number pad.",{"name":455,"type":473,"required":474,"default":389,"description":475,"note":476,"demo":403},"string",true,"Text content of the label of the element.","Required, and display and accessibility only: it does not set the `name` attribute. Hide it with `hide-label` rather than dropping it.",{"name":478,"type":465,"required":388,"default":389,"description":479,"note":389,"demo":389},"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":481,"type":482,"required":388,"default":389,"description":483,"note":484,"demo":455},"labelMode","\"outside\" | \"floating\" | \"inside\" | undefined","Label rendering mode.","A bare `floating` attribute is not a prop and never was: it falls through `$attrs` and does nothing. The spelling is `label-mode=\"floating\"`. Unset, the value comes from `defaultInputLabelMode` in the plugin config, so a project can float every field without touching call sites.",{"name":486,"type":487,"required":388,"default":389,"description":488,"note":389,"demo":389},"labelPosition","\"left\" | \"center\" | \"right\" | undefined","Sets the text alignment of the label.",{"name":415,"type":490,"required":388,"default":389,"description":491,"note":492,"demo":415},"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 without a warning. Check `defaultInputLabelMode` before concluding the prop is broken.",{"name":494,"type":406,"required":388,"default":407,"description":495,"note":496,"demo":410},"loading","Sets the component in a loading state, usually triggering some visual styles.","Visual only: the field stays editable. If the value must not change while an async check runs, write that guard yourself and tag requests so a stale response cannot overwrite a newer one.",{"name":432,"type":498,"required":388,"default":389,"description":499,"note":500,"demo":432},"MaskInputOptions | undefined","A maska options object, not a string: `{ mask: '#### #### #### ####' }`. Please visit https:\u002F\u002Fbeholdr.github.io\u002Fmaska\u002Fv3 for syntax examples.","A [maska](https:\u002F\u002Fbeholdr.github.io\u002Fmaska\u002Fv3) config, live-reactive: changing the options reformats the current value. Masks format, they do not validate: a complete-but-wrong value still needs an error.",{"name":502,"type":503,"required":388,"default":389,"description":504,"note":389,"demo":389},"modelValue","string | null | undefined","Used by v-model.",{"name":506,"type":387,"required":388,"default":389,"description":507,"note":508,"demo":403},"name","Defines the name of the input.","Unset, the rendered `\u003Cinput>` carries no name at all, so a native form post or a `FormData` read drops the value silently. `label` does not fill this in.",{"name":510,"type":511,"required":388,"default":389,"description":512,"note":389,"demo":389},"nullValue","E | undefined","What the field emits once emptied (typing, the clear button, an empty mask): `'null'` emits `null`, `'string'` emits `''`. Unset: `formControls.textInputNullValue` (`'null'`). With `'string'`, the `update:modelValue` payload types as `string`.",{"name":514,"type":406,"required":388,"default":407,"description":515,"note":389,"demo":389},"persistentHint","Keeps the hint displayed.",{"name":517,"type":387,"required":388,"default":389,"description":518,"note":389,"demo":389},"placeholder","Text shown while the field is empty.",{"name":520,"type":387,"required":388,"default":389,"description":521,"note":389,"demo":389},"prepend:icon","Name of the icon to be added at the start of the input.",{"name":523,"type":524,"required":388,"default":389,"description":525,"note":389,"demo":389},"pt","(PtMap\u003CBbTextInputPtPart, BbTextInputPtState> & { \"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: `{ box: '…', 'box:errors': '…' }` — the same keys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":527,"type":528,"required":388,"default":389,"description":529,"note":389,"demo":530},"pt:\u003Cpart>","PtValue | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `box`, `clear`, `counter`, `description`, `hint`, `icon`, `input`, `label`, `message`, `prefix`, `root`, `spinner`, `suffix`. States: `atLimit`, `disabled`, `errors`, `ghost`, `hasValue`, `loading`, `nearLimit`, `outline`, `readonly`, `secondary`, `warnings`.","passthrough",{"name":532,"type":406,"required":388,"default":407,"description":533,"note":534,"demo":410},"readonly","Sets the input in a readonly state.","Keeps the value focusable, selectable and copyable while refusing edits: the right choice for a value the user did not set but may need to read or copy.",{"name":536,"type":406,"required":388,"default":407,"description":537,"note":538,"demo":438},"required","Sets the native `required` attribute, for a plain `\u003Cform>`. Inside a `BbForm` it is an error (nothing enforces it): use `rules=\"required\"` or the form `schema` instead.","Forwards to the native input for the browser's own validation. It does not produce a message: `errors` still owns that.",{"name":540,"type":406,"required":388,"default":407,"description":541,"note":389,"demo":389},"reverse","Reverses the layout. Applicable in every direction the order of the label and the input is swapped.",{"name":543,"type":544,"required":388,"default":389,"description":545,"note":546,"demo":438},"rules","RuleExpression\u003Cstring | null>","vee-validate rules for this field. Only inside a `BbForm`.","Read only inside a `BbForm`; outside one the field is plain and the rules do nothing. Whatever you pass to `errors` is merged with the rule messages rather than replaced.",{"name":397,"type":548,"required":388,"default":549,"description":550,"note":551,"demo":397},"\"text\" | \"search\" | \"tel\" | \"url\" | \"email\" | \"password\" | undefined","\"text\"","Type of the input. Restricted to the textual input types this component supports — use `BbNumberInput` for numbers and `BbDatePickerInput` for dates.","Narrowed in v3 to the text-like types. `type=\"number\"` and `type=\"date\"` no longer compile; those values move to `BbNumberInput` and `BbDatePickerInput`. There is no `revealable`: a password toggle is a `type` that changes plus a button in `#append`.",{"name":553,"type":387,"required":388,"default":389,"description":554,"note":389,"demo":389},"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":556,"type":557,"required":388,"default":389,"description":558,"note":389,"demo":438},"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":560,"type":561,"required":388,"default":562,"description":563,"note":389,"demo":389},"variant","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`.",{"name":565,"type":435,"required":388,"default":389,"description":566,"note":567,"demo":438},"warnings","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.","The amber channel, for a value that is accepted and still worth a second look. Unlike `errors` it does not set `aria-invalid`, and it is suppressed entirely when the field also has errors.",[569],{"name":502,"type":503,"note":570,"demo":403},"`string | null`: an emptied field emits `null`, or `''` when the plugin option `formControls.textInputNullValue` says so. Inside a `BbForm` the binding is optional: the form holds the value under `name`.",[572,576,581,585,589,592,595,598,602,605,608,611,615],{"name":573,"signature":574,"description":575,"note":389,"demo":389},"blur","(event: FocusEvent): void","Emitted when the native input loses focus. Forwards the original DOM `FocusEvent`.",{"name":577,"signature":578,"description":579,"note":580,"demo":389},"change","(event: Event): void","Emitted when the native input fires a change event. Forwards the original DOM `Event`.","Fires on commit (blur or Enter), which makes it the right hook for an expensive side effect. `input` fires on every keystroke.",{"name":582,"signature":583,"description":584,"note":389,"demo":389},"click","(event: MouseEvent): void","Emitted when the input receives a click interaction. Forwards the original DOM `MouseEvent`.",{"name":586,"signature":587,"description":588,"note":389,"demo":389},"compositionend","(event: CompositionEvent): void","Emitted when a composition session ends (e.g. CJK IME confirmed). Forwards the original DOM `CompositionEvent`.",{"name":590,"signature":587,"description":591,"note":389,"demo":389},"compositionstart","Emitted when a composition session starts (e.g. CJK IME begins). Forwards the original DOM `CompositionEvent`.",{"name":593,"signature":574,"description":594,"note":389,"demo":389},"focus","Emitted when the native input gains focus. Forwards the original DOM `FocusEvent`.",{"name":596,"signature":578,"description":597,"note":389,"demo":389},"input","Emitted on native input events from the text field. Forwards the original DOM `Event`.",{"name":599,"signature":600,"description":601,"note":389,"demo":389},"keydown","(event: KeyboardEvent): void","Emitted for keyboard interaction on the input. Forwards the original DOM `KeyboardEvent`.",{"name":603,"signature":600,"description":604,"note":389,"demo":389},"keyup","Emitted when a key is released over the input. Forwards the original DOM `KeyboardEvent`.",{"name":606,"signature":583,"description":607,"note":389,"demo":389},"mousedown","Emitted when a pointing device button is pressed over the input. Forwards the original DOM `MouseEvent`.",{"name":609,"signature":583,"description":610,"note":389,"demo":389},"mouseup","Emitted when a pointing device button is released over the input. Forwards the original DOM `MouseEvent`.",{"name":612,"signature":613,"description":614,"note":389,"demo":389},"paste","(event: ClipboardEvent): void","Emitted when content is pasted into the input. Forwards the original DOM `ClipboardEvent`.",{"name":616,"signature":617,"description":618,"note":389,"demo":389},"update:modelValue","(value: string | NullValueOf\u003CE>): void","Emitted when the value changes. Carries the new string, or the empty value (`null-value`, else the app's, `null` by default) when emptied. When `mask` is set, emits the masked or unmasked string depending on `emitMasked`.",[620,624,628,631,635,639,642,645],{"name":621,"type":622,"description":623,"note":389,"demo":389},"append","object","Content rendered after the text input, at the end of the field box.",{"name":625,"type":622,"description":626,"note":627,"demo":392},"append:outer","Content rendered after the entire text input control, outside the input chrome.","Outside the field chrome, and the only affix position that may hold something interactive.",{"name":420,"type":629,"description":630,"note":389,"demo":389},"BbTextInputDescriptionSlotProps","Replaces the description text. Provided alone (no `description` prop) it still renders the description region and wires it into `aria-describedby`.",{"name":455,"type":632,"description":633,"note":634,"demo":455},"BbTextInputLabelSlotProps","Replaces the default label text rendered above the input.","Receives `{ text, hasErrors, hasWarnings }`, plus `showAsterisk` while the required marker shows, so a custom label can react to the field state. Replacing the label also replaces the marker: put it back with `\u003CBbAsterisk v-if=\"showAsterisk\" \u002F>`, or unconditionally on a `required` field in an app that turned `requiredAsterisk` off.",{"name":636,"type":622,"description":637,"note":638,"demo":392},"prefix","Inline content rendered at the start of the input field area, before the typed text.","Short inline text at the inner edge of the box, beside the value. Affixes never take focus, so a click here lands in the input: a small button belongs in `#append`, a larger one in `append:outer`.",{"name":640,"type":622,"description":641,"note":389,"demo":389},"prepend","Content rendered before the text input, at the start of the field box.",{"name":643,"type":622,"description":644,"note":389,"demo":389},"prepend:outer","Content rendered before the entire text input control, outside the input chrome.",{"name":646,"type":622,"description":647,"note":389,"demo":392},"suffix","Inline content rendered at the end of the input field area, after the typed text.",[],{"parts":650,"states":683},[651,654,656,658,661,663,666,668,671,674,676,678,681],{"name":652,"description":653},"root","The field's outer container: the label, the box and the lines under it.",{"name":455,"description":655},"The label text above the box (the `label` prop).",{"name":420,"description":657},"The muted line under the label (the `description` prop).",{"name":659,"description":660},"message","The errors \u002F warnings line under the box. A node of its own: it can show at the same time as `hint`.",{"name":457,"description":662},"The helper line (the `hint` prop), shown on focus, or always with `persistent-hint`.",{"name":664,"description":665},"box","The bordered box around the input — border, background and radius; the `variant` paints here.",{"name":596,"description":667},"The native input element inside the box.",{"name":669,"description":670},"icon","The content icons, prepend and append — a broadcast. Chrome (the clear ✕, a chevron, the error \u002F warning glyph) is never in it.",{"name":672,"description":673},"spinner","The spinner inside the box while `loading`.",{"name":636,"description":675},"The `#prefix` slot's wrapper, inside the box before the input.",{"name":646,"description":677},"The `#suffix` slot's wrapper, inside the box after the input.",{"name":679,"description":680},"clear","The ✕ that empties this control (`clearable`) — one node, never a chip's own ✕.",{"name":417,"description":682},"The character count at the end of the hint row (`counter`): `42`, or `42 \u002F 140` with `maxlength`.",[684,687,689,691,694,697,699,702,705,707,710],{"name":685,"description":686},"atLimit","Component-wide: with `counter` and `maxlength`, the value has reached the limit.",{"name":425,"description":688},"Component-wide: the control is `disabled`.",{"name":434,"description":690},"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":692,"description":693},"ghost","On the field's parts: `variant: 'ghost'`. Below the real states, like every variant.",{"name":695,"description":696},"hasValue","Component-wide: the control holds a value, by its own rule (`0` counts on `BbNumberInput`, `''` on `BbColorInput`).",{"name":494,"description":698},"Component-wide: `loading` is on; the box shows its `spinner`.",{"name":700,"description":701},"nearLimit","Component-wide: with `counter` and `maxlength`, the value is at 90 % of the limit or more, and still below it.",{"name":703,"description":704},"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":532,"description":706},"Component-wide: the control is `readonly` — shown, focusable, not editable.",{"name":708,"description":709},"secondary","On the field's parts: `variant: 'secondary'`. Below the real states, like every variant.",{"name":565,"description":711},"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":713,"renamed":756},[714,721,728,733,736,740,743,747,751],{"name":715,"surface":716,"replacedBy":625,"hint":389,"since":717,"migration":718,"silent":474,"fix":719},"append-outer","slot","3.0.0-beta.41","ai\u002Fguides\u002Fmigration\u002Fv2-to-v3.md",{"kind":720},"rename",{"name":573,"surface":722,"replacedBy":389,"hint":723,"since":724,"migration":725,"silent":474,"fix":726},"method","no template-ref API in v3. Reach the \u003Cinput> through pt: `:pt=\"{ input: { attrs: { ref: (el) => (input = el) } } }\"`, then `input.blur()` on that element; `autofocus` for focus on mount","3.0.0-alpha.1","ai\u002Fguides\u002Fmigration\u002Fcomponents\u002Fbb-text-input.md",{"kind":727},"manual",{"name":729,"surface":730,"replacedBy":415,"hint":389,"since":731,"migration":725,"silent":474,"fix":732},"direction","prop","3.0.0-beta.33",{"kind":720},{"name":593,"surface":722,"replacedBy":389,"hint":734,"since":724,"migration":725,"silent":474,"fix":735},"no template-ref API in v3. Reach the \u003Cinput> through pt: `:pt=\"{ input: { attrs: { ref: (el) => (input = el) } } }\"`, then `input.focus()` on that element; `autofocus` for focus on mount",{"kind":727},{"name":737,"surface":730,"replacedBy":448,"hint":389,"since":738,"migration":718,"silent":474,"fix":739},"hasWarning","3.0.0-beta.26",{"kind":720},{"name":741,"surface":716,"replacedBy":643,"hint":389,"since":717,"migration":718,"silent":474,"fix":742},"prepend-outer",{"kind":720},{"name":744,"surface":722,"replacedBy":389,"hint":745,"since":724,"migration":725,"silent":474,"fix":746},"select","no template-ref API in v3. Reach the \u003Cinput> through pt: `:pt=\"{ input: { attrs: { ref: (el) => (input = el) } } }\"`, then `input.select()` on that element; `autofocus` for focus on mount",{"kind":727},{"name":748,"surface":730,"replacedBy":556,"hint":749,"since":717,"migration":718,"silent":474,"fix":750},"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":727},{"name":752,"surface":730,"replacedBy":389,"hint":753,"since":717,"migration":718,"silent":474,"fix":754},"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":755,"display":553,"key":506},"byValue",[757,759,761,763,765],{"from":715,"to":625,"surface":716,"since":717,"migration":718,"fix":758},{"kind":720},{"from":729,"to":415,"surface":730,"since":731,"migration":725,"fix":760},{"kind":720},{"from":737,"to":448,"surface":730,"since":738,"migration":718,"fix":762},{"kind":720},{"from":741,"to":643,"surface":716,"since":717,"migration":718,"fix":764},{"kind":720},{"from":748,"to":556,"surface":730,"since":717,"migration":718,"fix":766},{"kind":727},1793055154417]