[{"data":1,"prerenderedAt":1436},["ShallowReactive",2],{"api-none":3,"docs-nav-en":4,"locale-alternates":247,"page-en-\u002Fcomponents\u002Fbb-button":378,"pt-showcase-BbButton":1150},null,[5,20,32,56,68,112,145,181,202,223,235,241],{"label":6,"entries":7},"Getting started",[8,12,16],{"title":9,"path":10,"component":-1,"order":11},"Installation","\u002Fguides\u002Finstallation",1,{"title":13,"path":14,"component":-1,"order":15},"Migrating from v2","\u002Fguides\u002Fmigration",2,{"title":17,"path":18,"component":-1,"order":19},"Adoption checklist","\u002Fguides\u002Fadoption-checklist",3,{"label":21,"entries":22},"Design system",[23,26,29],{"title":24,"path":25,"component":-1,"order":11},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":27,"path":28,"component":-1,"order":15},"Design language","\u002Fguides\u002Fdesign-language",{"title":30,"path":31,"component":-1,"order":19},"Passthrough","\u002Fguides\u002Fpassthrough",{"label":33,"entries":34},"Playbooks",[35,38,41,44,48,52],{"title":36,"path":37,"component":-1,"order":11},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":39,"path":40,"component":-1,"order":15},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":42,"path":43,"component":-1,"order":19},"Coherence","\u002Fguides\u002Fcoherence",{"title":45,"path":46,"component":-1,"order":47},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":49,"path":50,"component":-1,"order":51},"Icons","\u002Fguides\u002Ficons",5,{"title":53,"path":54,"component":-1,"order":55},"Preset components","\u002Fguides\u002Fpreset-components",6,{"label":57,"entries":58},"Ecosystem",[59,62,65],{"title":60,"path":61,"component":-1,"order":11},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":63,"path":64,"component":-1,"order":15},"Nuxt","\u002Fguides\u002Fnuxt",{"title":66,"path":67,"component":-1,"order":19},"AI agents","\u002Fguides\u002Fai-agents",{"label":69,"entries":70},"Inputs",[71,74,77,80,83,86,89,92,96,100,104,108],{"title":72,"path":73,"component":72,"order":11},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":75,"path":76,"component":75,"order":15},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":78,"path":79,"component":78,"order":19},"BbCalendar","\u002Fcomponents\u002Fbb-calendar",{"title":81,"path":82,"component":81,"order":19},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":84,"path":85,"component":84,"order":47},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":87,"path":88,"component":87,"order":51},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":90,"path":91,"component":90,"order":55},"BbForm","\u002Fcomponents\u002Fbb-form",{"title":93,"path":94,"component":93,"order":95},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":97,"path":98,"component":97,"order":99},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":101,"path":102,"component":101,"order":103},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":105,"path":106,"component":105,"order":107},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":109,"path":110,"component":109,"order":111},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":113,"entries":114},"Selection",[115,118,121,124,127,130,133,136,139,142],{"title":116,"path":117,"component":116,"order":11},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":119,"path":120,"component":119,"order":15},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":122,"path":123,"component":122,"order":19},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":125,"path":126,"component":125,"order":47},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":128,"path":129,"component":128,"order":51},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":131,"path":132,"component":131,"order":55},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":134,"path":135,"component":134,"order":95},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":137,"path":138,"component":137,"order":99},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":140,"path":141,"component":140,"order":103},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":143,"path":144,"component":143,"order":107},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":146,"entries":147},"Overlay",[148,151,154,157,160,163,166,169,172,175,178],{"title":149,"path":150,"component":149,"order":11},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":152,"path":153,"component":152,"order":15},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":155,"path":156,"component":155,"order":19},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":158,"path":159,"component":158,"order":47},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":161,"path":162,"component":161,"order":51},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":164,"path":165,"component":164,"order":55},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":167,"path":168,"component":167,"order":95},"BbHoverCard","\u002Fcomponents\u002Fbb-hover-card",{"title":170,"path":171,"component":170,"order":95},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":173,"path":174,"component":173,"order":99},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":176,"path":177,"component":176,"order":103},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":179,"path":180,"component":179,"order":107},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":182,"entries":183},"Navigation",[184,187,190,193,196,199],{"title":185,"path":186,"component":185,"order":11},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":188,"path":189,"component":188,"order":15},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":191,"path":192,"component":191,"order":19},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":194,"path":195,"component":194,"order":47},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":197,"path":198,"component":197,"order":51},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":200,"path":201,"component":200,"order":55},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":203,"entries":204},"Feedback",[205,208,211,214,217,220],{"title":206,"path":207,"component":206,"order":11},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":209,"path":210,"component":209,"order":15},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":212,"path":213,"component":212,"order":19},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":215,"path":216,"component":215,"order":47},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":218,"path":219,"component":218,"order":51},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":221,"path":222,"component":221,"order":55},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":224,"entries":225},"Data Display",[226,229,232],{"title":227,"path":228,"component":227,"order":11},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":230,"path":231,"component":230,"order":15},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":233,"path":234,"component":233,"order":19},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":236,"entries":237},"Layout & Utility",[238],{"title":239,"path":240,"component":239,"order":11},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":242,"entries":243},"Other",[244],{"title":245,"path":246,"component":245,"order":11},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",{"\u002Fit\u002Fcomponenti\u002Fbb-accordion":248,"\u002Fen\u002Fcomponents\u002Fbb-accordion":249,"\u002Fit\u002Fcomponenti\u002Fbb-alert":250,"\u002Fen\u002Fcomponents\u002Fbb-alert":251,"\u002Fit\u002Fcomponenti\u002Fbb-asterisk":252,"\u002Fen\u002Fcomponents\u002Fbb-asterisk":253,"\u002Fit\u002Fcomponenti\u002Fbb-avatar":254,"\u002Fen\u002Fcomponents\u002Fbb-avatar":255,"\u002Fit\u002Fcomponenti\u002Fbb-badge":256,"\u002Fen\u002Fcomponents\u002Fbb-badge":257,"\u002Fit\u002Fcomponenti\u002Fbb-base-button":258,"\u002Fen\u002Fcomponents\u002Fbb-base-button":259,"\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs":260,"\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs":261,"\u002Fit\u002Fcomponenti\u002Fbb-button":262,"\u002Fen\u002Fcomponents\u002Fbb-button":263,"\u002Fit\u002Fcomponenti\u002Fbb-calendar":264,"\u002Fen\u002Fcomponents\u002Fbb-calendar":265,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox":266,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":267,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":268,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":269,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":270,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":271,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":272,"\u002Fen\u002Fcomponents\u002Fbb-color-input":273,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":274,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":275,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":276,"\u002Fen\u002Fcomponents\u002Fbb-confirm":277,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":278,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":279,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":280,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":281,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":282,"\u002Fen\u002Fcomponents\u002Fbb-dialog":283,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":284,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":285,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":286,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":287,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":288,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":289,"\u002Fit\u002Fcomponenti\u002Fbb-form":290,"\u002Fen\u002Fcomponents\u002Fbb-form":291,"\u002Fit\u002Fcomponenti\u002Fbb-hover-card":292,"\u002Fen\u002Fcomponents\u002Fbb-hover-card":293,"\u002Fit\u002Fcomponenti\u002Fbb-icon":294,"\u002Fen\u002Fcomponents\u002Fbb-icon":295,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":296,"\u002Fen\u002Fcomponents\u002Fbb-indicator":297,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":298,"\u002Fen\u002Fcomponents\u002Fbb-number-input":299,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":300,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":301,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":302,"\u002Fen\u002Fcomponents\u002Fbb-pagination":303,"\u002Fit\u002Fcomponenti\u002Fbb-popover":304,"\u002Fen\u002Fcomponents\u002Fbb-popover":305,"\u002Fit\u002Fcomponenti\u002Fbb-progress":306,"\u002Fen\u002Fcomponents\u002Fbb-progress":307,"\u002Fit\u002Fcomponenti\u002Fbb-radio":308,"\u002Fen\u002Fcomponents\u002Fbb-radio":309,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":310,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":311,"\u002Fit\u002Fcomponenti\u002Fbb-rating":312,"\u002Fen\u002Fcomponents\u002Fbb-rating":313,"\u002Fit\u002Fcomponenti\u002Fbb-select":314,"\u002Fen\u002Fcomponents\u002Fbb-select":315,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":316,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":317,"\u002Fit\u002Fcomponenti\u002Fbb-slider":318,"\u002Fen\u002Fcomponents\u002Fbb-slider":319,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":320,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":321,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":322,"\u002Fen\u002Fcomponents\u002Fbb-spinner":323,"\u002Fit\u002Fcomponenti\u002Fbb-switch":324,"\u002Fen\u002Fcomponents\u002Fbb-switch":325,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":326,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":327,"\u002Fit\u002Fcomponenti\u002Fbb-table":328,"\u002Fen\u002Fcomponents\u002Fbb-table":329,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":330,"\u002Fen\u002Fcomponents\u002Fbb-tabs":331,"\u002Fit\u002Fcomponenti\u002Fbb-tag":332,"\u002Fen\u002Fcomponents\u002Fbb-tag":333,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":334,"\u002Fen\u002Fcomponents\u002Fbb-text-input":335,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":336,"\u002Fen\u002Fcomponents\u002Fbb-textarea":337,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":338,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":339,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":340,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":341,"\u002Fit\u002Fcomponenti\u002Fbb-toast":342,"\u002Fen\u002Fcomponents\u002Fbb-toast":343,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":344,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":345,"\u002Fit\u002Fcomponenti\u002Fbb-tree":346,"\u002Fen\u002Fcomponents\u002Fbb-tree":347,"\u002Fit\u002Fguide\u002Fadoption-checklist":348,"\u002Fen\u002Fguides\u002Fadoption-checklist":349,"\u002Fit\u002Fguide\u002Fai-agents":350,"\u002Fen\u002Fguides\u002Fai-agents":351,"\u002Fit\u002Fguide\u002Fcoherence":352,"\u002Fen\u002Fguides\u002Fcoherence":353,"\u002Fit\u002Fguide\u002Fdesign-language":354,"\u002Fen\u002Fguides\u002Fdesign-language":355,"\u002Fit\u002Fguide\u002Fdesign-tokens":356,"\u002Fen\u002Fguides\u002Fdesign-tokens":357,"\u002Fit\u002Fguide\u002Ffetching-data":358,"\u002Fen\u002Fguides\u002Ffetching-data":359,"\u002Fit\u002Fguide\u002Ficons":360,"\u002Fen\u002Fguides\u002Ficons":361,"\u002Fit\u002Fguide\u002Finertia":362,"\u002Fen\u002Fguides\u002Finertia":363,"\u002Fit\u002Fguide\u002Finstallation":364,"\u002Fen\u002Fguides\u002Finstallation":365,"\u002Fit\u002Fguide\u002Fmigration":366,"\u002Fen\u002Fguides\u002Fmigration":367,"\u002Fit\u002Fguide\u002Fnuxt":368,"\u002Fen\u002Fguides\u002Fnuxt":369,"\u002Fit\u002Fguide\u002Foptions-and-items":370,"\u002Fen\u002Fguides\u002Foptions-and-items":371,"\u002Fit\u002Fguide\u002Fpassthrough":372,"\u002Fen\u002Fguides\u002Fpassthrough":373,"\u002Fit\u002Fguide\u002Fpreset-components":374,"\u002Fen\u002Fguides\u002Fpreset-components":375,"\u002Fit\u002Fguide\u002Fvalidated-forms":376,"\u002Fen\u002Fguides\u002Fvalidated-forms":377},"\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",{"id":379,"title":75,"body":380,"component":75,"description":1135,"extension":552,"group":69,"meta":1136,"navigation":1137,"order":15,"path":76,"sections":1138,"seo":1147,"stem":1148,"__hash__":1149},"docs_en\u002Fcomponents\u002Fbb-button.md",{"type":381,"value":382,"toc":1125},"minimark",[383,447,455,463,486,490,496,516,527,530,536,585,588,594,628,631,661,667,681,684,701,721,736,742,756,759,786,792,814,830,842,853,856,862,871,927,948,1052,1069,1083,1086,1098,1121],[384,385,386,409],"when",{},[387,388,389,390,393,394,397,398,401,402,397,405,408],"p",{},"Use ",[391,392,75],"code",{}," for actions the user performs — save, delete, submit — and for\ndestinations that need button styling. Actions use ",[391,395,396],{},"@click"," or ",[391,399,400],{},"type=\"submit\"",";\nnavigation uses ",[391,403,404],{},"href",[391,406,407],{},"to",".",[410,411,413],"template",{"v-slot:else":412},"",[414,415,416,433,440],"ul",{},[417,418,419,424,425,429,430],"li",{},[420,421,422],"a",{"href":286},[391,423,164],{}," — one dominant action\nhas close alternatives: ",[426,427,428],"em",{},"Save"," \u002F ",[426,431,432],{},"Save as draft",[417,434,435,439],{},[420,436,437],{"href":284},[391,438,161],{}," — no action dominates",[417,441,442,446],{},[420,443,444],{"href":258},[391,445,72],{}," — the surface is clickable\nwith no button chrome at all: a table row, a card",[387,448,449,450,452,453,408],{},"Also see: ",[420,451,27],{"href":354},", ",[420,454,49],{"href":360},[456,457,459],"h2",{"id":458},"default",[460,461,462],"span",{},"Only one button submits the form",[387,464,465,467,468,472,473,479,480,483,484,408],{},[391,466,75],{}," is the library's button, and its label is ",[420,469,471],{"href":470},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#slot-default","slot"," content. ",[420,474,476],{"href":475},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-type",[391,477,478],{},"type","\ndefaults to ",[391,481,482],{},"button",", so inside a form the only button that submits is the one\nyou mark ",[391,485,400],{},[487,488],"demo",{"name":489},"BbButton\u002FBasic",[456,491,493],{"id":492},"variants",[460,494,495],{},"The variant ladder",[387,497,498,502,503,506,507,452,510,452,513,408],{},[420,499,501],{"href":500},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-variant","Variants"," are a hierarchy, not a palette: one ",[391,504,505],{},"primary"," per region of the page,\nthen ",[391,508,509],{},"secondary",[391,511,512],{},"outline",[391,514,515],{},"ghost",[387,517,518,519,522,523,526],{},"Keep ",[391,520,521],{},"destructive"," for what cannot be undone. ",[391,524,525],{},"link"," recolors the button without\nchanging its box, so it is the wrong choice for an inline text link.",[487,528],{"name":529},"BbButton\u002FVariants",[456,531,533],{"id":532},"sizes",[460,534,535],{},"Sizes and width",[387,537,538,539,452,542,545,546,549,550,553,554,557,558,561,562,397,565,567,568,571,572,578,579,581,582,408],{},"Six ",[420,540,532],{"href":541},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-size",[391,543,544],{},"xs"," to ",[391,547,548],{},"2xl",". ",[391,551,552],{},"md"," (28px) is the default and has the\nheight of a ",[391,555,556],{},"compact"," field, so leave ",[391,559,560],{},"size"," off. Use ",[391,563,564],{},"sm",[391,566,544],{}," on dense surfaces\nand ",[391,569,570],{},"lg"," or larger for a rare hero action.\n",[420,573,575],{"href":574},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-block",[391,576,577],{},"block"," stretches the button to its container.\n",[391,580,560],{}," also takes a map by breakpoint, such as ",[391,583,584],{},"{ default: 'sm', lg: 'lg' }",[487,586],{"name":587},"BbButton\u002FSizes",[456,589,591],{"id":590},"icons",[460,592,593],{},"Name icon-only buttons",[387,595,596,602,603,609,610,616,617,620,621,624,625,408],{},[420,597,599],{"href":598},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-prepend:icon",[391,600,601],{},"prepend:icon"," and ",[420,604,606],{"href":605},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-append:icon",[391,607,608],{},"append:icon"," put an icon beside the label. For an icon-only\nbutton use ",[420,611,613],{"href":612},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-icon",[391,614,615],{},"icon"," and keep writing the label in the slot — it is hidden visually\nand still announced. Use ",[391,618,619],{},"aria-label"," only when that accessible name must differ\nfrom the slot text. An icon-only button with neither is an error for\n",[391,622,623],{},"bitboss-ui check"," and the ESLint rule ",[391,626,627],{},"bitboss-ui\u002Frequire-accessible-name",[487,629],{"name":630},"BbButton\u002FIcons",[387,632,633,634,452,637,397,640,643,644,646,647,452,650,653,654,657,658,660],{},"To change the glyph with the button's state, use the slot named after the\nprop: ",[391,635,636],{},"#icon",[391,638,639],{},"#prepend:icon",[391,641,642],{},"#append:icon",". It replaces the prop and\nrenders inside the ",[391,645,615],{}," part, so ",[391,648,649],{},"pt:icon",[391,651,652],{},"--icon-size"," and the loading\nspinner work as they do on the prop's glyph. Its scope is the button's states,\n",[391,655,656],{},"{ pressed, loading, disabled, activeLink, exactActiveLink }",": the toggle\nbelow swaps its bell when pressed, and a navigation link can show a solid icon\non the current page. A ",[391,659,230],{}," in the slot takes the part's size.",[456,662,664],{"id":663},"loading",[460,665,666],{},"Async actions",[387,668,669,670,674,675,680],{},"A click handler that ",[671,672,673],"strong",{},"returns"," a promise puts the button into its loading state\nuntil the promise settles and blocks repeat clicks. Fire-and-forget work is not\ntrackable; return the promise or bind ",[420,676,678],{"href":677},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-loading",[391,679,663],{}," to the state that owns it.",[487,682],{"name":683},"BbButton\u002FAsyncAction",[685,686,687],"migration",{},[387,688,689,690,693,694,700],{},"In v2 this was opt-in through ",[391,691,692],{},"auto-loading",". Delete that prop in v3. Use\n",[420,695,697],{"href":696},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-disableAutoLoading",[391,698,699],{},"disable-auto-loading"," only when you intentionally need the old behaviour.",[387,702,703,704,706,707,712,713,716,717,720],{},"A ",[391,705,400],{}," button inside a ",[420,708,710],{"href":709},"\u002Fen\u002Fcomponents\u002Fbb-form#saving",[391,711,90],{},"\nspins by itself while a ",[391,714,715],{},"@submit"," that returned a promise runs. Only the button\nthat submitted spins, and a submit button outside the form that names it with\n",[391,718,719],{},"form=\"\u003Cid>\""," does too. A submit from code spins none.",[387,722,723,725,726,728,729,735],{},[391,724,699],{}," turns off every spin the button starts on its own, the\nform's included; only ",[391,727,663],{}," shows the spinner then. Reach for it on a button\nwhose click awaits a whole dialog\n(",[420,730,732],{"href":731},"\u002Fen\u002Fcomponents\u002Fbb-dialog#results",[391,733,734],{},"await show()","): spinning until the\ndialog closes would read as busy.",[456,737,739],{"id":738},"navigation",[460,740,741],{},"Buttons that navigate",[387,743,744,745,397,750,755],{},"Pass ",[420,746,748],{"href":747},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-href",[391,749,404],{},[420,751,753],{"href":752},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-to",[391,754,407],{}," instead of navigating from a click handler. The result is a\nreal link with middle-click, open-in-new-tab and copy-address behaviour.",[487,757],{"name":758},"BbButton\u002FNavigation",[387,760,761,452,767,773,774,780,781,408],{},[420,762,764],{"href":763},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-target",[391,765,766],{},"target",[420,768,770],{"href":769},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-download",[391,771,772],{},"download","\nand ",[420,775,777],{"href":776},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-external",[391,778,779],{},"external"," make a plain anchor\nthat no router intercepts. The routing rules are on\n",[420,782,784],{"href":783},"\u002Fen\u002Fcomponents\u002Fbb-base-button#navigation",[391,785,72],{},[456,787,789],{"id":788},"toggle",[460,790,791],{},"Toggles and exclusive sets",[387,793,794,800,801,602,807,813],{},[420,795,797],{"href":796},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#model-modelValue",[391,798,799],{},"v-model"," operates the button as a toggle between\n",[420,802,804],{"href":803},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-trueValue",[391,805,806],{},"true-value",[420,808,810],{"href":809},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-falseValue",[391,811,812],{},"false-value",".\nSeed the model — an undefined value swallows the first click.",[387,815,816,817,819,820,822,823,825,826,829],{},"For an exclusive set, share one model and give each button its own ",[391,818,806],{},".\nSet each ",[391,821,812],{}," to that button's own ",[391,824,806],{}," (never a sibling's) and\none choice always stays selected. Set it to ",[391,827,828],{},"null"," instead and a second click\nclears the selection.",[387,831,832,838,839,841],{},[420,833,835],{"href":834},"\u002Fen\u002Fcomponents\u002Fbb-button\u002Fapi#prop-group",[391,836,837],{},"group"," joins adjacent buttons into\none segment. A set of ",[391,840,837],{}," toggles is also one Tab stop: the arrow keys move\nbetween the buttons, and Space or Enter presses one. Keep the buttons side by\nside in one parent, or the set splits.",[387,843,844,845,848,849,852],{},"A pressed toggle carries ",[391,846,847],{},"aria-pressed=\"true\"",". Restyle it with ",[391,850,851],{},"pt:root:pressed",",\nnot a selector of your own.",[487,854],{"name":855},"BbButton\u002FToggle",[456,857,859],{"id":858},"styling",[460,860,861],{},"Register a look, or start blank",[387,863,864,865,870],{},"Register a name in the plugin config and it becomes a typed value of\n",[420,866,867],{"href":500},[391,868,869],{},"variant",":",[872,873,877],"pre",{"className":874,"code":875,"language":876,"meta":412,"style":412},"language-ts shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n    bitboss: { buttonVariants: ['upgrade'] },\n});\n","ts",[391,878,879,886,903,919],{"__ignoreMap":412},[460,880,882],{"class":881,"line":11},"line",[460,883,885],{"class":884},"sLBg1","\u002F\u002F nuxt.config.ts\n",[460,887,888,892,895,899],{"class":881,"line":15},[460,889,891],{"class":890},"sHUrx","export",[460,893,894],{"class":890}," default",[460,896,898],{"class":897},"sKwhi"," defineNuxtConfig",[460,900,902],{"class":901},"soyes","({\n",[460,904,905,909,913,916],{"class":881,"line":19},[460,906,908],{"class":907},"suds8","    bitboss: { buttonVariants: [",[460,910,912],{"class":911},"sT6z2","'upgrade'",[460,914,915],{"class":907},"] }",[460,917,918],{"class":901},",\n",[460,920,921,924],{"class":881,"line":47},[460,922,923],{"class":901},"})",[460,925,926],{"class":907},";\n",[387,928,929,930,933,934,937,938,941,942,452,944,947],{},"The library ships no CSS for registered variants — you style\n",[391,931,932],{},".bb-button--upgrade"," yourself through the same local properties as the built-in\nvariants. The name is also a ",[391,935,936],{},"pt"," state (",[391,939,940],{},"pt:root:upgrade","), so a name the\nbutton already uses as a state (",[391,943,663],{},[391,945,946],{},"pressed",", …) fails the build.",[872,949,953],{"className":950,"code":951,"language":952,"meta":412,"style":412},"language-css shiki shiki-themes github-light-high-contrast github-dark-high-contrast",".bb-button--upgrade {\n    --bg: var(--bb-primary);\n    --bg-hover: var(--bb-primary-hover);\n    --bg-pressed: var(--bb-primary-pressed);\n    --fg: var(--bb-primary-fg);\n    --ring-color: var(--bb-ring);\n}\n","css",[391,954,955,963,983,999,1015,1031,1047],{"__ignoreMap":412},[460,956,957,960],{"class":881,"line":11},[460,958,932],{"class":959},"s-5SL",[460,961,962],{"class":907}," {\n",[460,964,965,968,971,974,977,980],{"class":881,"line":15},[460,966,967],{"class":901},"    --bg",[460,969,970],{"class":907},": ",[460,972,973],{"class":959},"var",[460,975,976],{"class":907},"(",[460,978,979],{"class":901},"--bb-primary",[460,981,982],{"class":907},");\n",[460,984,985,988,990,992,994,997],{"class":881,"line":19},[460,986,987],{"class":901},"    --bg-hover",[460,989,970],{"class":907},[460,991,973],{"class":959},[460,993,976],{"class":907},[460,995,996],{"class":901},"--bb-primary-hover",[460,998,982],{"class":907},[460,1000,1001,1004,1006,1008,1010,1013],{"class":881,"line":47},[460,1002,1003],{"class":901},"    --bg-pressed",[460,1005,970],{"class":907},[460,1007,973],{"class":959},[460,1009,976],{"class":907},[460,1011,1012],{"class":901},"--bb-primary-pressed",[460,1014,982],{"class":907},[460,1016,1017,1020,1022,1024,1026,1029],{"class":881,"line":51},[460,1018,1019],{"class":901},"    --fg",[460,1021,970],{"class":907},[460,1023,973],{"class":959},[460,1025,976],{"class":907},[460,1027,1028],{"class":901},"--bb-primary-fg",[460,1030,982],{"class":907},[460,1032,1033,1036,1038,1040,1042,1045],{"class":881,"line":55},[460,1034,1035],{"class":901},"    --ring-color",[460,1037,970],{"class":907},[460,1039,973],{"class":959},[460,1041,976],{"class":907},[460,1043,1044],{"class":901},"--bb-ring",[460,1046,982],{"class":907},[460,1048,1049],{"class":881,"line":95},[460,1050,1051],{"class":907},"}\n",[387,1053,1054,1057,1058,1061,1062,1064,1065,1068],{},[391,1055,1056],{},"--ring-color"," paints the focus ring and ",[391,1059,1060],{},"--ring-size"," sets its width, drawn\noutside the border. ",[391,1063,1060],{}," defaults to ",[391,1066,1067],{},"var(--bb-ring-size)",": leave it\nout unless the variant needs a heavier ring.",[387,1070,1071,1072,1075,1076,1082],{},"To start a style from scratch, pass ",[391,1073,1074],{},"variant=\"none\"",": the button keeps its size,\npadding, icons and loading, drops every colour, and your classes draw the rest.\nYou own the hover, the focus ring and the disabled look. (On Tailwind v4 your\nclasses win over the button's own rules only with\n",[420,1077,1079],{"href":1078},"\u002Fen\u002Fguides\u002Finstallation#runtime",[391,1080,1081],{},"cssLayers"," set.)",[487,1084],{"name":1085},"BbButton\u002FBlankBase",[387,1087,1088,1089,1093,1094,408],{},"When the same look shows up on a second screen,\n",[420,1090,1092],{"href":1091},"\u002Fen\u002Fguides\u002Fdesign-language#custom-variant","register it as a variant"," so it is\ntyped and styled in one place. When the shape is not a button at all, such as\na card or a table row, start from ",[420,1095,1096],{"href":258},[391,1097,72],{},[685,1099,1101],{"title":1100},"v2 tooltip and theme props",[387,1102,1103,1104,1107,1108,397,1111,1113,1114,1117,1118,1120],{},"Replace ",[391,1105,1106],{},"tooltip*"," props with ",[391,1109,1110],{},"v-bb-tooltip",[391,1112,179],{},". Replace ",[391,1115,1116],{},"theme","\nwith a built-in or registered ",[391,1119,869],{},"; unregistered variant names are now\ntype errors.",[1122,1123,1124],"style",{},"html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}",{"title":412,"searchDepth":19,"depth":19,"links":1126},[1127,1128,1129,1130,1131,1132,1133,1134],{"id":458,"depth":15,"text":462},{"id":492,"depth":15,"text":495},{"id":532,"depth":15,"text":535},{"id":590,"depth":15,"text":593},{"id":663,"depth":15,"text":666},{"id":738,"depth":15,"text":741},{"id":788,"depth":15,"text":791},{"id":858,"depth":15,"text":861},"Build actions and button-shaped links with loading, accessible names, and a consistent visual hierarchy.",{},true,[1139,1140,1141,1142,1143,1144,1145,1146],{"id":458,"title":462},{"id":492,"title":495},{"id":532,"title":535},{"id":590,"title":593},{"id":663,"title":666},{"id":738,"title":741},{"id":788,"title":791},{"id":858,"title":861},{"title":75,"description":1135},"components\u002Fbb-button","Suv0YyYMQHbcVJPgtlhOFKqC7Fv6O8-qz6pyWJZXv5Y",{"name":75,"slug":1151,"group":69,"description":1152,"entrypoint":1153,"docs":1154,"props":1157,"models":1351,"events":1354,"slots":1359,"exposed":1371,"pt":1375,"validated":3,"migration":1412},"bb-button","Button with loading state, tooltip, and icon support.","bitboss-ui",{"contract":1155,"source":1156},"ai\u002FBbButton.md","ai\u002Fsource\u002FBbButton.md",[1158,1163,1165,1170,1175,1177,1181,1185,1188,1192,1196,1199,1202,1205,1209,1211,1215,1217,1220,1223,1226,1229,1232,1235,1240,1243,1247,1250,1254,1258,1261,1264,1267,1270,1274,1277,1280,1284,1288,1290,1294,1298,1301,1304,1309,1314,1317,1321,1326,1328,1331,1335,1339,1343,1348],{"name":1159,"type":1160,"required":1161,"default":3,"description":1162,"note":3,"demo":3},"activeClass","string | undefined",false,"Class to apply when the link is active.",{"name":608,"type":1160,"required":1161,"default":3,"description":1164,"note":3,"demo":590},"Icon to be added on the right of the text.",{"name":1166,"type":1167,"required":1161,"default":1168,"description":1169,"note":3,"demo":3},"ariaCurrentValue","\"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | undefined","'page'","Value passed to the attribute `aria-current` when the link is exact active.",{"name":1171,"type":1172,"required":1161,"default":1173,"description":1174,"note":3,"demo":3},"async","boolean | undefined","false","Inertia: runs the visit without blocking — the page stays interactive and several async visits can be in flight at once.",{"name":577,"type":1172,"required":1161,"default":1173,"description":1176,"note":3,"demo":532},"Displays the component as full width.",{"name":1178,"type":1179,"required":1161,"default":3,"description":1180,"note":3,"demo":3},"cacheFor","string | number | (string | number)[] | undefined","Inertia: how long a prefetched response stays fresh before it is re-fetched. A single duration, or `[staleAfter, expiresAfter]`.\n\nTyped platform-agnostically (matching BbButton) so the library's types never require `@inertiajs\u002Fvue3` to be installed.",{"name":1182,"type":1183,"required":1161,"default":3,"description":1184,"note":3,"demo":3},"cacheTags","string | string[] | undefined","Inertia: tags to file this visit's prefetch cache under, so a later request can invalidate the whole tagged group.",{"name":1186,"type":1160,"required":1161,"default":3,"description":1187,"note":3,"demo":3},"component","Inertia: the page component this visit resolves to. Rarely set by hand — the server normally decides it.",{"name":1189,"type":1190,"required":1161,"default":3,"description":1191,"note":3,"demo":3},"data","object | undefined","Request payload forwarded to Inertia when navigating via `href` in an Inertia-enabled app. Ignored when not using Inertia.",{"name":1193,"type":1172,"required":1161,"default":1173,"description":1194,"note":1195,"demo":663},"disableAutoLoading","Disables every spinner the button starts on its own: the one that tracks an async click handler, and a `type=\"submit\"` button's spin while its `BbForm` saves. Only an explicit `loading` shows the spinner then.","Use only when an async click should intentionally remain interactive without automatic pending state.",{"name":1197,"type":1172,"required":1161,"default":1173,"description":1198,"note":3,"demo":3},"disabled","Disables the component: native `disabled` (or `aria-disabled` on a link), muted paint. Beside `loading`, loading wins the look (spinner and variant colours) and this only adds the native blocking — redundant but harmless.",{"name":772,"type":1200,"required":1161,"default":3,"description":1201,"note":3,"demo":738},"string | boolean | undefined","Marks an `href` link as a download: renders a plain `\u003Ca download>` doing a native navigation (never an Inertia\u002Frouter visit), so file downloads work. Pass a string for the suggested filename. A native-anchor signal alongside `target` and `external`.",{"name":1203,"type":1160,"required":1161,"default":3,"description":1204,"note":3,"demo":3},"exactActiveClass","Class to apply when the link is exact active.",{"name":1206,"type":1207,"required":1161,"default":3,"description":1208,"note":3,"demo":3},"except","string[] | undefined","Inertia: the inverse of `only` — properties to EXCLUDE from a partial reload. Pass one or the other, not both.",{"name":779,"type":1172,"required":1161,"default":1173,"description":1210,"note":3,"demo":738},"Forces an `href` link to render as a plain `\u003Ca>` (native navigation), bypassing Inertia\u002Frouter interception — same intent as Nuxt's `external`. A native-anchor signal alongside `target` and `download`.",{"name":1212,"type":1213,"required":1161,"default":1173,"description":1214,"note":3,"demo":788},"falseValue","any","Value emitted when the toggle is deactivated.",{"name":837,"type":1172,"required":1161,"default":1173,"description":1216,"note":3,"demo":788},"Identifies the button as part of a button group: adjacent `group` buttons fuse into one segment (shared borders and radius). Adjacent `group` toggles (each with a `v-model`) are also one Tab stop, with ArrowLeft \u002F ArrowRight \u002F Home \u002F End moving between them.",{"name":1218,"type":1190,"required":1161,"default":3,"description":1219,"note":3,"demo":3},"headers","Additional HTTP headers forwarded to Inertia when navigating via `href` in an Inertia-enabled app.",{"name":404,"type":1160,"required":1161,"default":3,"description":1221,"note":1222,"demo":738},"Returns the hyperlink's URL.\n\nCan be set, to change the URL.","Use for a destination, not an action. The rendered link keeps browser navigation behaviour.",{"name":615,"type":1160,"required":1161,"default":3,"description":1224,"note":1225,"demo":590},"Used when only an icon with no text should be displayed.","Slot content becomes the visually hidden accessible name. An icon-only button without slot text or an explicit `aria-label` is an error for `bitboss-ui check` and the ESLint rule `bitboss-ui\u002Frequire-accessible-name`.",{"name":1227,"type":1172,"required":1161,"default":1173,"description":1228,"note":3,"demo":3},"instant","Inertia: navigate optimistically on click and reconcile when the response lands, instead of waiting for the round trip.",{"name":1230,"type":1172,"required":1161,"default":1173,"description":1231,"note":3,"demo":3},"interactiveWhileLoading","Keeps the button clickable while it is loading. Buttons are disabled while loading by default; this escape hatch exists for toggles that must stay interactive (e.g. the dropdown-button caret).",{"name":663,"type":1172,"required":1161,"default":1173,"description":1233,"note":1234,"demo":663},"Triggers a loading indicator. A loading button is soft-disabled on its own (`aria-disabled`, out of the tab order, clicks and navigation blocked) and keeps its variant colours; with `disabled` set too, loading still wins the look.","Bind this when pending state is owned outside the click handler, such as a form or store request.",{"name":1236,"type":1237,"required":1161,"default":3,"description":1238,"note":1239,"demo":3},"method","\"get\" | \"post\" | \"put\" | \"patch\" | \"delete\" | undefined","HTTP method used for Inertia navigation when `href` is provided in an Inertia-enabled app. Ignored otherwise.","Only with `href` in an Inertia app. A `to` link is a router link and sends no method; the ESLint rule `bitboss-ui\u002Frequire-partner-prop` flags `method` without `href`.",{"name":1241,"type":1213,"required":1161,"default":3,"description":1242,"note":3,"demo":3},"modelValue","Makes the button a toggle: clicking flips the model between `trueValue` and `falseValue`, and the button reports `aria-pressed`. Leave it unbound for a plain button.",{"name":1244,"type":1245,"required":1161,"default":3,"description":1246,"note":3,"demo":3},"onBefore","(() => void) | undefined","Lifecycle hook invoked by Inertia right before the request is sent.",{"name":1248,"type":1245,"required":1161,"default":3,"description":1249,"note":3,"demo":3},"onCancel","Lifecycle hook invoked by Inertia when a request is cancelled.",{"name":1251,"type":1252,"required":1161,"default":3,"description":1253,"note":3,"demo":3},"onCancelToken","((cancelToken: unknown) => void) | undefined","Receives the Inertia cancel token source when a request is initiated. Can be used to cancel the request.\n\nTyped platform-agnostically (matching BbButton) so the library's types never require `@inertiajs\u002Fvue3` to be installed.",{"name":1255,"type":1256,"required":1161,"default":3,"description":1257,"note":3,"demo":3},"onError","((errors: Record\u003Cstring, string>) => void) | undefined","Inertia's hook for a VALIDATION error answer (the 422 path): the only failure callback `Link` accepts. `onHttpException` (5xx) and `onNetworkError` are `router.visit()` \u002F `useForm()` options, never Link props.",{"name":1259,"type":1245,"required":1161,"default":3,"description":1260,"note":3,"demo":3},"onFinish","Lifecycle hook invoked by Inertia after the request has finished (regardless of success or error).",{"name":1262,"type":1207,"required":1161,"default":3,"description":1263,"note":3,"demo":3},"only","Limits the properties that are preserved in Inertia partial reloads.",{"name":1265,"type":1245,"required":1161,"default":3,"description":1266,"note":3,"demo":3},"onPrefetched","Lifecycle hook invoked by Inertia when a prefetch for this link has completed and is cached.",{"name":1268,"type":1245,"required":1161,"default":3,"description":1269,"note":3,"demo":3},"onPrefetching","Lifecycle hook invoked by Inertia when a prefetch for this link starts.",{"name":1271,"type":1272,"required":1161,"default":3,"description":1273,"note":3,"demo":3},"onProgress","((progress: { percentage: number | undefined; }) => void) | undefined","Progress callback invoked by Inertia with the upload\u002Fdownload percentage when available.",{"name":1275,"type":1245,"required":1161,"default":3,"description":1276,"note":3,"demo":3},"onStart","Lifecycle hook invoked by Inertia when a request starts.",{"name":1278,"type":1245,"required":1161,"default":3,"description":1279,"note":3,"demo":3},"onSuccess","Lifecycle hook invoked by Inertia when a request succeeds.",{"name":1281,"type":1282,"required":1161,"default":3,"description":1283,"note":3,"demo":3},"pageProps","Record\u003Cstring, unknown> | ((currentProps: Record\u003Cstring, unknown>, sharedProps: Record\u003Cstring, unknown>) => Record\u003Cstring, unknown>) | null | undefined","Inertia: props to merge into the next page optimistically, before the server responds. Either an object or a function of the current props.\n\nTyped platform-agnostically (matching BbButton) so the library's types never require `@inertiajs\u002Fvue3` to be installed.",{"name":1285,"type":1286,"required":1161,"default":3,"description":1287,"note":3,"demo":3},"prefetch","string | boolean | string[] | undefined","Inertia: fetch and cache this link's page ahead of the click. `true` uses the default trigger; a string or list of strings picks them (`'mount'`, `'hover'`, `'click'`).",{"name":601,"type":1160,"required":1161,"default":3,"description":1289,"note":3,"demo":590},"Icon to be added on the left of the text.",{"name":1291,"type":1292,"required":1161,"default":1173,"description":1293,"note":3,"demo":3},"preserveScroll","boolean | ((props: Record\u003Cstring, unknown>) => boolean) | undefined","Controls whether Inertia should preserve the current scroll position after navigation. Can be a boolean or a predicate receiving the visit props.",{"name":1295,"type":1296,"required":1161,"default":1173,"description":1297,"note":3,"demo":3},"preserveState","boolean | ((props: Record\u003Cstring, unknown>) => boolean) | null | undefined","Controls whether Inertia should preserve the current state after navigation. Can be a boolean or a predicate receiving the visit props.",{"name":1299,"type":1172,"required":1161,"default":1173,"description":1300,"note":3,"demo":3},"preserveUrl","Inertia: keep the current URL in the address bar even though the page content changes.",{"name":936,"type":1302,"required":1161,"default":3,"description":1303,"note":3,"demo":3},"PtMap\u003CBbButtonPtPart, \"outline\" | \"primary\" | \"destructive\" | \"activeLink\" | \"exactActiveLink\" | \"loading\" | \"secondary\" | \"disabled\" | \"pressed\" | \"ghost\" | \"link\"> | undefined","Passthrough, object form: `{ icon: '…', 'icon:loading': '…' }` — the same keys as the `pt:*` attributes without the prefix. Parts: `root`, `icon`, `spinner`, `text`. States: `loading`, `disabled`, `pressed`, and the registered variants (an app's own included).",{"name":1305,"type":1306,"required":1161,"default":3,"description":1307,"note":3,"demo":1308},"pt:\u003Cpart>","PtValue | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `icon`, `root`, `spinner`, `text`. States: `activeLink`, `destructive`, `disabled`, `exactActiveLink`, `ghost`, `link`, `loading`, `outline`, `pressed`, `primary`, `secondary`.","passthrough",{"name":1310,"type":1311,"required":1161,"default":1312,"description":1313,"note":3,"demo":3},"queryStringArrayFormat","\"brackets\" | \"indices\" | undefined","'brackets'","Format to use when serializing array values into the query string for Inertia requests.",{"name":1315,"type":1172,"required":1161,"default":1173,"description":1316,"note":3,"demo":3},"replace","Calls `router.replace` instead of `router.push`.",{"name":560,"type":1318,"required":1161,"default":1319,"description":1320,"note":3,"demo":532},"Responsive\u003CSizes> | undefined","\"md\"","Sets the size of the button. A single value applies at every breakpoint; a per-breakpoint map (e.g. `{ default: 'sm', lg: 'md' }`) switches responsively. Purely CSS-driven — no runtime breakpoint watching.",{"name":1322,"type":1323,"required":1161,"default":1324,"description":1325,"note":3,"demo":3},"tag","ButtonTag | undefined","'button'","Element to render for the plain (non-link, non-router) button: `'button'` (default), `'div'`\u002F`'span'` when nesting inside another button or link, or `'label'` for a file-upload trigger. Ignored when `href`\u002F`to` make the button render as a link.",{"name":766,"type":1160,"required":1161,"default":3,"description":1327,"note":3,"demo":738},"Sets or retrieves the window or frame at which to target content.",{"name":1329,"type":1160,"required":1161,"default":3,"description":1330,"note":3,"demo":3},"text","Text content of the component.",{"name":407,"type":1332,"required":1161,"default":3,"description":1333,"note":1334,"demo":738},"string | wt | bt | undefined","Route Location the link should navigate to when clicked on.","Use for internal Vue Router or Nuxt navigation instead of calling the router from `@click`.",{"name":1336,"type":1213,"required":1161,"default":1337,"description":1338,"note":3,"demo":788},"trueValue","true","Value emitted when the toggle is activated.",{"name":478,"type":1340,"required":1161,"default":3,"description":1341,"note":1342,"demo":458},"\"button\" | \"submit\" | \"reset\" | undefined","Gets the classification and default behavior of the button.","Defaults to `button`. Set `submit` only when the surrounding form owns the action.",{"name":869,"type":1344,"required":1161,"default":1345,"description":1346,"note":1347,"demo":492},"ButtonVariantType | undefined","\"primary\"","Visual variant of the button: colours and surface only, never spacing or size. `'none'` takes no look (you own hover, focus and disabled); register a real one with the plugin's `buttonVariants` and style `.bb-button--\u003Cname>` (no CSS ships for it).","Choose by hierarchy, not colour. Register recurring project variants; use `BbBaseButton` for a completely custom primitive.",{"name":1349,"type":1172,"required":1161,"default":1173,"description":1350,"note":3,"demo":3},"viewTransition","Inertia: run the page swap inside a View Transition, where the browser supports one.",[1352],{"name":1241,"type":1213,"note":1353,"demo":788},"Binding it is what makes the button a toggle, with `aria-pressed` and the `bb-button--active` class. A hand-bound `aria-pressed` is ignored, with a development warning.",[1355],{"name":1356,"signature":1357,"description":1358,"note":3,"demo":3},"update:modelValue","(value: any): void","Emitted with the new value whenever `v-model` changes.",[1360,1363,1367,1369],{"name":608,"type":1361,"description":1362,"note":3,"demo":3},"BbButtonIconSlotProps","The trailing icon, replacing `append:icon`; inside the `icon` part.",{"name":458,"type":1364,"description":1365,"note":1366,"demo":458},"BbLinkSlotProps","Primary content rendered inside the button. Falls back to the `text` prop when empty. A link's slot gets `{ activeLink, exactActiveLink }`: whether it points at the current page (both `false` on a button).","The visible label, or the accessible name when `icon` makes the text visually hidden.",{"name":615,"type":1361,"description":1368,"note":3,"demo":3},"The icon of an icon-only button, replacing the `icon` prop. Renders inside the `icon` part: `pt:icon`, `--icon-size` and the loading spinner apply.",{"name":601,"type":1361,"description":1370,"note":3,"demo":3},"The leading icon, replacing `prepend:icon`; inside the `icon` part.",[1372],{"name":1373,"type":1374,"note":3,"demo":3},"$el","HTMLElement | undefined",{"parts":1376,"states":1387},[1377,1380,1382,1385],{"name":1378,"description":1379},"root","The button element. The glyph size lives here: `--icon-size` on `pt:root` resizes the icon, the spinner and the gap between them together.",{"name":615,"description":1381},"Every content icon the button renders (`icon`, `prepend:icon`, `append:icon`) — a broadcast; at most two render together. For colour, opacity and attributes — size it through `--icon-size` on `root`, never a size utility here (it breaks the icon \u002F spinner pair).",{"name":1383,"description":1384},"spinner","The loading spinner, parked exactly over the icon. Like `icon`: colour and opacity here, size through `--icon-size` on `root`.",{"name":1329,"description":1386},"The label span. Typography inherits from `root`, so reach for `text` only when a class must apply to the label alone — `truncate` on a long label that must not clip the icons. It carries the margin the label slides by while the spinner is in, so a margin of your own fights the slide.",[1388,1391,1393,1395,1398,1400,1402,1404,1406,1408,1410],{"name":1389,"description":1390},"activeLink","Component-wide: a link to the current page or one of its ancestors (`\u002Fusers` on `\u002Fusers\u002F5`) — exactly when `activeClass` is on. The weakest state: `pressed`, `disabled` and `loading` win a conflict.",{"name":521,"description":1392},"Component-wide: `variant=\"destructive\"`. Keeps the red under a base `pt`: `pt:root:destructive`.",{"name":1197,"description":1394},"Component-wide: the button is `disabled`.",{"name":1396,"description":1397},"exactActiveLink","Component-wide: a link to the current page itself — exactly when `exactActiveClass` is on (`activeLink` is on too, so its entries apply first and these win).",{"name":515,"description":1399},"Component-wide: `variant=\"ghost\"`. Below the real states, like every variant.",{"name":525,"description":1401},"Component-wide: `variant=\"link\"`. Below the real states, like every variant.",{"name":663,"description":1403},"Component-wide: `loading` is on — the spinner shows and the button ignores the pointer.",{"name":512,"description":1405},"Component-wide: `variant=\"outline\"`. Below the real states, like every variant.",{"name":946,"description":1407},"Component-wide: a toggle button (`v-model`) is on — `aria-pressed=\"true\"`, `--pressed` on the root.",{"name":505,"description":1409},"Component-wide: `variant=\"primary\"`. Merged after the part's base entry and before its states, so `disabled` \u002F `loading` still win.",{"name":509,"description":1411},"Component-wide: `variant=\"secondary\"`. Below the real states, like every variant.",{"removed":1413,"renamed":1433},[1414,1421,1424,1427,1430],{"name":1415,"surface":1416,"replacedBy":1230,"hint":3,"since":1417,"migration":1418,"silent":1137,"fix":1419},"enabledWhileLoading","prop","3.0.0-alpha.1","ai\u002Fguides\u002Fmigration\u002Fcomponents\u002Fbb-button.md",{"kind":1420},"rename",{"name":1116,"surface":1416,"replacedBy":3,"hint":3,"since":1417,"migration":1418,"silent":1137,"fix":1422},{"kind":1423},"manual",{"name":1425,"surface":1416,"replacedBy":3,"hint":3,"since":1417,"migration":1418,"silent":1137,"fix":1426},"tooltip",{"kind":1423},{"name":1428,"surface":1416,"replacedBy":3,"hint":3,"since":1417,"migration":1418,"silent":1137,"fix":1429},"tooltipPlacement",{"kind":1423},{"name":1431,"surface":1416,"replacedBy":3,"hint":3,"since":1417,"migration":1418,"silent":1137,"fix":1432},"tooltipTimeout",{"kind":1423},[1434],{"from":1415,"to":1230,"surface":1416,"since":1417,"migration":1418,"fix":1435},{"kind":1420},1793055138214]