[{"data":1,"prerenderedAt":1457},["ShallowReactive",2],{"api-none":3,"docs-nav-en":4,"locale-alternates":247,"page-en-\u002Fcomponents\u002Fbb-base-button":378,"pt-showcase-BbBaseButton":1259},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":72,"body":380,"component":72,"description":1244,"extension":1245,"group":69,"meta":1246,"navigation":674,"order":11,"path":73,"sections":1247,"seo":1256,"stem":1257,"__hash__":1258},"docs_en\u002Fcomponents\u002Fbb-base-button.md",{"type":381,"value":382,"toc":1234},"minimark",[383,421,427,434,442,453,457,471,486,492,495,563,566,580,586,602,605,712,772,887,903,939,945,963,1031,1068,1074,1080,1083,1086,1092,1095,1098,1114,1120,1130,1133,1159,1165,1178,1181,1230],[384,385,386,402],"when",{},[387,388,389,390,393,394,397,398,401],"p",{},"Use ",[391,392,72],"code",{}," when your design is not a button variant: a card overlay,\nlist row, inline link or custom navigation item. Omit a destination for an\naction; pass ",[391,395,396],{},"href"," or ",[391,399,400],{},"to"," for navigation.",[403,404,406],"template",{"v-slot:else":405},"",[407,408,409],"ul",{},[410,411,412,417,418],"li",{},[413,414,415],"a",{"href":262},[391,416,75],{},", if you want something that looks like a\nbutton, including a quiet one: that is ",[391,419,420],{},"variant=\"ghost\"",[387,422,423,424,426],{},"Also see: ",[413,425,60],{"href":362},".",[387,428,429,433],{},[413,430,431],{"href":262},[391,432,75],{}," and other components are built on this.",[435,436,438],"h2",{"id":437},"default",[439,440,441],"span",{},"No chrome, your class",[387,443,444,445,448,449,452],{},"No styles included: padding, background, border and colour come from your own\nclasses. The one thing to add is a visible focus style: ",[391,446,447],{},"bb-base-button"," ships\nthe ",[391,450,451],{},"box-shadow"," transition, not the ring.",[454,455],"demo",{"name":456},"BbBaseButton\u002FBasic",[387,458,459,460,463,464,467,468,426],{},"To style it from a wrapper or a preset, use ",[391,461,462],{},"pt:root"," (it lands on whichever\nelement renders) and ",[391,465,466],{},"pt:root:disabled",": see ",[413,469,470],{"href":372},"passthrough",[387,472,473,474,478,479,485],{},"The label is the ",[413,475,477],{"href":476},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#slot-default","default slot",". ",[413,480,482],{"href":481},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-text",[391,483,484],{},"text"," is a string-only fallback for loops that\nspread a config object.",[435,487,489],{"id":488},"elements",[439,490,491],{},"What it renders",[387,493,494],{},"The props pick the tag, in this order:",[496,497,498,532,554],"ol",{},[410,499,500,504,505,510,511,516,517,520,521,524,525,528,529,426],{},[501,502,503],"strong",{},"A router link",": ",[413,506,508],{"href":507},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-to",[391,509,400],{}," is set, or an Inertia app gets a same-origin ",[413,512,514],{"href":513},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-href",[391,515,396],{},"\nwith no ",[391,518,519],{},"target",". The framework decides whether that is ",[391,522,523],{},"RouterLink",",\n",[391,526,527],{},"NuxtLink"," or Inertia's ",[391,530,531],{},"Link",[410,533,534,537,538,540,541,543,544,397,547,550,551,553],{},[501,535,536],{},"An anchor",": every other ",[391,539,396],{},". That covers external URLs, anything with\n",[391,542,519],{},", ",[391,545,546],{},"download",[391,548,549],{},"external",", and a disabled ",[391,552,400],{}," link.",[410,555,556,562],{},[501,557,558,559],{},"A native ",[391,560,561],{},"\u003Cbutton>",": no destination.",[454,564],{"name":565},"BbBaseButton\u002FElementResolution",[387,567,568,569,571,572,575,576,579],{},"Any ",[391,570,519],{}," other than ",[391,573,574],{},"_self"," gets ",[391,577,578],{},"rel=\"noopener noreferrer\"",", named windows\nincluded.",[435,581,583],{"id":582},"navigation",[439,584,585],{},"Destinations are props, not handlers",[387,587,588,589,397,591,593,594,597,598,601],{},"If a click goes somewhere, put that destination on ",[391,590,396],{},[391,592,400],{},". An ",[391,595,596],{},"@click","\nthat calls ",[391,599,600],{},"router.push"," cannot open in a new tab and is not a link to assistive\ntechnology.",[387,603,604],{},"Which prop you use depends on the framework:",[606,607,611],"pre",{"className":608,"code":609,"language":610,"meta":405,"style":405},"language-vue shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C!-- Vue Router or Nuxt: `to` keeps the navigation inside the app. -->\n\u003CBbBaseButton :to=\"{ name: 'orders.show', params: { id: order.id } }\">\n    {{ order.reference }}\n\u003C\u002FBbBaseButton>\n\n\u003C!-- The same destination as an href (`\u002Forders`) is a real document\n     navigation in that app: a full page load. -->\n\u003CBbBaseButton :href=\"ordersPath\">All orders\u003C\u002FBbBaseButton>\n","vue",[391,612,613,620,656,661,670,676,681,686],{"__ignoreMap":405},[439,614,616],{"class":615,"line":11},"line",[439,617,619],{"class":618},"sLBg1","\u003C!-- Vue Router or Nuxt: `to` keeps the navigation inside the app. -->\n",[439,621,622,626,629,632,635,638,641,644,648,651,653],{"class":615,"line":15},[439,623,625],{"class":624},"suds8","\u003C",[439,627,72],{"class":628},"sne4z",[439,630,631],{"class":624}," :",[439,633,400],{"class":634},"s-5SL",[439,636,637],{"class":624},"=",[439,639,640],{"class":624},"\"",[439,642,643],{"class":624},"{ name: ",[439,645,647],{"class":646},"sT6z2","'orders.show'",[439,649,650],{"class":624},", params: { id: order.id } }",[439,652,640],{"class":624},[439,654,655],{"class":624},">\n",[439,657,658],{"class":615,"line":19},[439,659,660],{"class":624},"    {{ order.reference }}\n",[439,662,663,666,668],{"class":615,"line":47},[439,664,665],{"class":624},"\u003C\u002F",[439,667,72],{"class":628},[439,669,655],{"class":624},[439,671,672],{"class":615,"line":51},[439,673,675],{"emptyLinePlaceholder":674},true,"\n",[439,677,678],{"class":615,"line":55},[439,679,680],{"class":618},"\u003C!-- The same destination as an href (`\u002Forders`) is a real document\n",[439,682,683],{"class":615,"line":95},[439,684,685],{"class":618},"     navigation in that app: a full page load. -->\n",[439,687,688,690,692,694,696,698,700,703,705,708,710],{"class":615,"line":99},[439,689,625],{"class":624},[439,691,72],{"class":628},[439,693,631],{"class":624},[439,695,396],{"class":634},[439,697,637],{"class":624},[439,699,640],{"class":624},[439,701,702],{"class":624},"ordersPath",[439,704,640],{"class":624},[439,706,707],{"class":624},">All orders\u003C\u002F",[439,709,72],{"class":628},[439,711,655],{"class":624},[387,713,714,715,717,718,720,721,543,724,543,727,543,730,543,733,736,737,524,740,543,743,746,747,543,750,524,753,543,756,543,759,543,762,543,765,768,769,771],{},"Under Inertia the rule flips: a same-origin ",[391,716,396],{}," without a ",[391,719,519],{}," becomes an\nInertia visit. Configure the visit with props, not listeners: request shape\n(",[391,722,723],{},"method",[391,725,726],{},"data",[391,728,729],{},"headers",[391,731,732],{},"only",[391,734,735],{},"except","), history and scroll (",[391,738,739],{},"replace",[391,741,742],{},"preserve-scroll",[391,744,745],{},"preserve-state","), lifecycle hooks (",[391,748,749],{},"on-before",[391,751,752],{},"on-start",[391,754,755],{},"on-progress",[391,757,758],{},"on-success",[391,760,761],{},"on-error",[391,763,764],{},"on-cancel",[391,766,767],{},"on-finish","). ",[391,770,761],{},"\nfires on validation errors (the 422 answer) only.",[606,773,775],{"className":608,"code":774,"language":610,"meta":405,"style":405},"\u003C!-- Inertia: the href (`\u002Finvoices`) is the visit; everything else rides\n     along as props. -->\n\u003CBbBaseButton\n    :data=\"{ customerId }\"\n    :href=\"invoicesPath\"\n    method=\"post\"\n    :on-success=\"() => drawer.close()\"\n    preserve-scroll\n>\n    Create invoice\n\u003C\u002FBbBaseButton>\n",[391,776,777,782,787,794,811,826,836,865,870,874,879],{"__ignoreMap":405},[439,778,779],{"class":615,"line":11},[439,780,781],{"class":618},"\u003C!-- Inertia: the href (`\u002Finvoices`) is the visit; everything else rides\n",[439,783,784],{"class":615,"line":15},[439,785,786],{"class":618},"     along as props. -->\n",[439,788,789,791],{"class":615,"line":19},[439,790,625],{"class":624},[439,792,793],{"class":628},"BbBaseButton\n",[439,795,796,799,801,803,805,808],{"class":615,"line":47},[439,797,798],{"class":624},"    :",[439,800,726],{"class":634},[439,802,637],{"class":624},[439,804,640],{"class":624},[439,806,807],{"class":624},"{ customerId }",[439,809,810],{"class":624},"\"\n",[439,812,813,815,817,819,821,824],{"class":615,"line":51},[439,814,798],{"class":624},[439,816,396],{"class":634},[439,818,637],{"class":624},[439,820,640],{"class":624},[439,822,823],{"class":624},"invoicesPath",[439,825,810],{"class":624},[439,827,828,831,833],{"class":615,"line":55},[439,829,830],{"class":634},"    method",[439,832,637],{"class":624},[439,834,835],{"class":646},"\"post\"\n",[439,837,838,840,842,844,846,849,853,856,860,863],{"class":615,"line":95},[439,839,798],{"class":624},[439,841,758],{"class":634},[439,843,637],{"class":624},[439,845,640],{"class":624},[439,847,848],{"class":624},"() ",[439,850,852],{"class":851},"sHUrx","=>",[439,854,855],{"class":624}," drawer.",[439,857,859],{"class":858},"sKwhi","close",[439,861,862],{"class":624},"()",[439,864,810],{"class":624},[439,866,867],{"class":615,"line":99},[439,868,869],{"class":634},"    preserve-scroll\n",[439,871,872],{"class":615,"line":103},[439,873,655],{"class":624},[439,875,876],{"class":615,"line":107},[439,877,878],{"class":624},"    Create invoice\n",[439,880,881,883,885],{"class":615,"line":111},[439,882,665],{"class":624},[439,884,72],{"class":628},[439,886,655],{"class":624},[387,888,889,890,892,893,895,896,898,899,902],{},"The visit props need ",[391,891,396],{},": a ",[391,894,400],{}," link is a router link and sends no\n",[391,897,723],{}," (the ESLint rule ",[391,900,901],{},"bitboss-ui\u002Frequire-partner-prop"," flags it).",[387,904,905,906,543,911,916,917,920,921,924,925,478,930,935,936,938],{},"Three props force a plain anchor and skip routing: ",[413,907,909],{"href":908},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-target",[391,910,519],{},[413,912,914],{"href":913},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-download",[391,915,546],{},"\n(including ",[391,918,919],{},"blob:"," and ",[391,922,923],{},"data:"," URLs) and ",[413,926,928],{"href":927},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-external",[391,929,549],{},[413,931,933],{"href":932},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-replace",[391,934,739],{}," swaps the history\nentry instead of pushing one, under both Vue Router and Inertia. Without a\nrouter, only ",[391,937,396],{}," works.",[435,940,942],{"id":941},"active",[439,943,944],{},"The link that points here",[387,946,947,948,951,952,955,956,962],{},"When the link points at the current location the component adds a class and, on\nan exact match, ",[391,949,950],{},"aria-current"," (",[391,953,954],{},"page"," unless ",[413,957,959],{"href":958},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-ariaCurrentValue",[391,960,961],{},"aria-current-value"," says\notherwise). It applies no styling: you write the highlight against the class you\nnamed.",[606,964,966],{"className":608,"code":965,"language":610,"meta":405,"style":405},"\u003CBbBaseButton\n    class=\"nav-item\"\n    exact-active-class=\"nav-item--current\"\n    :to=\"{ name: 'settings.members' }\"\n>\n    Members\n\u003C\u002FBbBaseButton>\n",[391,967,968,974,984,994,1014,1018,1023],{"__ignoreMap":405},[439,969,970,972],{"class":615,"line":11},[439,971,625],{"class":624},[439,973,793],{"class":628},[439,975,976,979,981],{"class":615,"line":15},[439,977,978],{"class":634},"    class",[439,980,637],{"class":624},[439,982,983],{"class":646},"\"nav-item\"\n",[439,985,986,989,991],{"class":615,"line":19},[439,987,988],{"class":634},"    exact-active-class",[439,990,637],{"class":624},[439,992,993],{"class":646},"\"nav-item--current\"\n",[439,995,996,998,1000,1002,1004,1006,1009,1012],{"class":615,"line":47},[439,997,798],{"class":624},[439,999,400],{"class":634},[439,1001,637],{"class":624},[439,1003,640],{"class":624},[439,1005,643],{"class":624},[439,1007,1008],{"class":646},"'settings.members'",[439,1010,1011],{"class":624}," }",[439,1013,810],{"class":624},[439,1015,1016],{"class":615,"line":51},[439,1017,655],{"class":624},[439,1019,1020],{"class":615,"line":55},[439,1021,1022],{"class":624},"    Members\n",[439,1024,1025,1027,1029],{"class":615,"line":95},[439,1026,665],{"class":624},[439,1028,72],{"class":628},[439,1030,655],{"class":624},[387,1032,1033,1039,1040,1046,1047,920,1050,1053,1054,1057,1058,1061,1062,951,1064,1067],{},[413,1034,1036],{"href":1035},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-activeClass",[391,1037,1038],{},"active-class"," matches a path prefix (a section link that stays lit on child\npages). ",[413,1041,1043],{"href":1042},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-exactActiveClass",[391,1044,1045],{},"exact-active-class"," only matches exactly. Without them you get the\ndefaults, ",[391,1048,1049],{},"router-link-active",[391,1051,1052],{},"router-link-exact-active",", or whatever\n",[391,1055,1056],{},"linkActiveClass"," \u002F ",[391,1059,1060],{},"linkExactActiveClass"," set on the plugin. A fragment-only\n",[391,1063,396],{},[391,1065,1066],{},"#section",") is the page you are already on, so it never matches.",[435,1069,1071],{"id":1070},"surfaces",[439,1072,1073],{},"A whole region as one link",[387,1075,1076,1077,1079],{},"A simple row can be the link itself. For a richer card, keep the content in a\nplain container and stretch one ",[391,1078,72],{}," overlay across it. The overlay\ngets a short accessible name while badges, metadata and secondary controls stay\noutside the link.",[454,1081],{"name":1082},"BbBaseButton\u002FClickableCard",[387,1084,1085],{},"Keep the overlay's label specific: “Open Aeris Ergonomic Task Chair” is better than making a\nscreen reader announce every value in the card. Put secondary controls above\nthe overlay and keep them as separate interactive elements.",[435,1087,1089],{"id":1088},"inline-links",[439,1090,1091],{},"Links that flow in text",[387,1093,1094],{},"A record identity in a table cell, a reference in a sentence, a value in a\nproperty grid: links without a button box.",[454,1096],{"name":1097},"BbBaseButton\u002FPlainLink",[387,1099,1100,1102,1103,1106,1107,1109,1110,1113],{},[391,1101,75],{},"'s ",[391,1104,1105],{},"variant=\"link\""," changes the colour but keeps the button's height\nand padding, so it cannot flow with the text or truncate at cell width. On\n",[391,1108,72],{}," use a project class (for example ",[391,1111,1112],{},".plain-link","), defined once and\nreused on identity cells.",[435,1115,1117],{"id":1116},"disabled",[439,1118,1119],{},"Disabled adapts to the element",[387,1121,1122,1126,1127,426],{},[413,1123,1125],{"href":1124},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-disabled","One prop",", two behaviours: the platform has no disabled ",[391,1128,1129],{},"\u003Ca>",[454,1131],{"name":1132},"BbBaseButton\u002FDisabled",[387,1134,1135,1136,1138,1139,1141,1142,543,1145,920,1148,1151,1152,1155,1156,1158],{},"On a button it sets the native ",[391,1137,1116],{}," attribute. On a link it drops the\n",[391,1140,396],{}," and sets ",[391,1143,1144],{},"role=\"link\"",[391,1146,1147],{},"aria-disabled=\"true\"",[391,1149,1150],{},"tabindex=\"-1\"",":\nunfollowable and unfocusable, still in the layout. Both get\n",[391,1153,1154],{},"bb-base-button--disabled",", so one rule styles either. Prefer that to a dead\n",[391,1157,396],{}," that 404s.",[435,1160,1162],{"id":1161},"form",[439,1163,1164],{},"Inside a form, and full width",[387,1166,1167,1173,1174,1177],{},[413,1168,1170],{"href":1169},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-type",[391,1171,1172],{},"type"," defaults to ",[391,1175,1176],{},"button",", so nothing submits by accident. The one that should\nsubmit says so.",[454,1179],{"name":1180},"BbBaseButton\u002FSubmitAndBlock",[387,1182,1183,1189,1190,1193,1194,920,1197,1200,1201,1207,1208,543,1211,397,1213,1216,1217,1220,1221,1223,1224,1226,1227,1229],{},[413,1184,1186],{"href":1185},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-block",[391,1187,1188],{},"block"," adds ",[391,1191,1192],{},"bb-base-button--block"," for a full-width control: stacked nav\nitems, list rows, a mobile call to action. It centres the label and stretches a\nlink as well; a row laid out with ",[391,1195,1196],{},"flex",[391,1198,1199],{},"text-left",", as in a nav list, keeps\nits own alignment. ",[413,1202,1204],{"href":1203},"\u002Fen\u002Fcomponents\u002Fbb-base-button\u002Fapi#prop-tag",[391,1205,1206],{},"tag"," renders the non-link case as a\n",[391,1209,1210],{},"div",[391,1212,439],{},[391,1214,1215],{},"label",", for a ",[391,1218,1219],{},"\u003Clabel>"," wrapping a hidden file input or where\na nested ",[391,1222,561],{}," would be invalid markup. You lose the native ",[391,1225,1172],{}," and\n",[391,1228,1116],{}," attributes and keyboard activation, so use it only when you have no\nalternative, then restore focus and keyboard behaviour yourself.",[1231,1232,1233],"style",{},"html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sne4z, html code.shiki .sne4z{--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}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}",{"title":405,"searchDepth":19,"depth":19,"links":1235},[1236,1237,1238,1239,1240,1241,1242,1243],{"id":437,"depth":15,"text":441},{"id":488,"depth":15,"text":491},{"id":582,"depth":15,"text":585},{"id":941,"depth":15,"text":944},{"id":1070,"depth":15,"text":1073},{"id":1088,"depth":15,"text":1091},{"id":1116,"depth":15,"text":1119},{"id":1161,"depth":15,"text":1164},"Build custom action and navigation primitives on a native button, anchor, or router link.","md",{},[1248,1249,1250,1251,1252,1253,1254,1255],{"id":437,"title":441},{"id":488,"title":491},{"id":582,"title":585},{"id":941,"title":944},{"id":1070,"title":1073},{"id":1088,"title":1091},{"id":1116,"title":1119},{"id":1161,"title":1164},{"title":72,"description":1244},"components\u002Fbb-base-button","xwkA3U-5sAhmjSOP6W1DY62h1mNBrWIZbhzctPEniGk",{"name":72,"slug":447,"group":69,"description":1260,"entrypoint":1261,"docs":1262,"props":1265,"models":1432,"events":1433,"slots":1434,"exposed":1439,"pt":1440,"validated":3,"migration":1454},"Unstyled button\u002Flink primitive: element resolution (button\u002Fanchor\u002Frouter link) and the full navigation engine, with no visual chrome. Use for any clickable or navigable surface that is not a variant-first BbButton — cards, list rows, custom links.","bitboss-ui",{"contract":1263,"source":1264},"ai\u002FBbBaseButton.md","ai\u002Fsource\u002FBbBaseButton.md",[1266,1273,1279,1284,1287,1291,1295,1298,1302,1305,1309,1314,1317,1320,1322,1325,1328,1332,1336,1339,1343,1348,1351,1353,1356,1359,1363,1366,1369,1373,1377,1382,1386,1389,1393,1397,1402,1406,1409,1414,1417,1420,1424,1429],{"name":1267,"type":1268,"required":1269,"default":1270,"description":1271,"note":1272,"demo":941},"activeClass","string | undefined",false,"'router-link-active'","CSS class applied when the component renders as a link and the target of the link is the current route or the url matches partially. Ported for Inertia compatibility.","Applied on a path-prefix match — the section link that should stay lit on child pages. The component only attaches the name; the highlight is CSS you write.",{"name":1274,"type":1275,"required":1269,"default":1276,"description":1277,"note":1278,"demo":941},"ariaCurrentValue","\"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | undefined","'page'","Value forwarded to the `aria-current` attribute when the component renders as a router link and the target route is an exact match.\n\nUse to communicate the current location to assistive technologies.","Defaults to `page`, which is right for navigation. Reach for `step` or `location` only when the link set is a wizard or a map, not a set of pages.",{"name":1280,"type":1281,"required":1269,"default":1282,"description":1283,"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":1188,"type":1281,"required":1269,"default":1282,"description":1285,"note":1286,"demo":1161},"Makes the component take the full available width (block-level layout) and centres its label; an anchor becomes `display: block` so the width applies. Adds the `bb-base-button--block` modifier class.","Adds `bb-base-button--block` and nothing else. A flex column already stretches its children, so check the parent before reaching for this.",{"name":1288,"type":1289,"required":1269,"default":3,"description":1290,"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":1292,"type":1293,"required":1269,"default":3,"description":1294,"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":1296,"type":1268,"required":1269,"default":3,"description":1297,"note":3,"demo":3},"component","Inertia: the page component this visit resolves to. Rarely set by hand — the server normally decides it.",{"name":726,"type":1299,"required":1269,"default":3,"description":1300,"note":1301,"demo":582},"object | undefined","Request payload forwarded to Inertia when navigating via `href` in an Inertia-enabled app. Ignored when not using Inertia.","Inertia only: the payload sent with the visit. Ignored outside Inertia.",{"name":1116,"type":1281,"required":1269,"default":1282,"description":1303,"note":1304,"demo":1116},"Disables user interaction. A native button gets the `disabled` attribute; a link (anchor\u002FInertia) loses `href`, gets `aria-disabled=\"true\"` and `tabindex=\"-1\"`, and never navigates: still announced as a link, but out of the tab order.","Adapts to the element: the native attribute on a button, and on a link the `href` is dropped for `role=\"link\"` + `aria-disabled=\"true\"` + `tabindex=\"-1\"`. Either way you get the `bb-base-button--disabled` class to style.",{"name":546,"type":1306,"required":1269,"default":3,"description":1307,"note":1308,"demo":582},"string | boolean | undefined","Marks an `href` link as a download: a plain `\u003Ca download>` with a native navigation (never an Inertia or router visit), so `blob:` and `data:` files work too. A string sets the suggested filename.","Always a native anchor navigation, never a router or Inertia visit, which is what makes `blob:` and `data:` URLs work. Pass a string to suggest the filename.",{"name":1310,"type":1268,"required":1269,"default":1311,"description":1312,"note":1313,"demo":941},"exactActiveClass","'router-link-exact-active'","CSS class applied when the component renders as a link and the target of the link and the url matches exactly. Ported for Inertia compatibility.","Applied only on an exact match, and the one that also carries `aria-current`. A fragment-only `href` never matches: it is the page the reader is already on.",{"name":735,"type":1315,"required":1269,"default":3,"description":1316,"note":3,"demo":3},"string[] | undefined","Inertia: the inverse of `only` — properties to EXCLUDE from a partial reload. Pass one or the other, not both.",{"name":549,"type":1281,"required":1269,"default":1282,"description":1318,"note":1319,"demo":582},"Forces an `href` link to render as a plain `\u003Ca>` (native navigation), bypassing Inertia\u002Frouter interception, as Nuxt's `NuxtLink` `external` does. For links outside the SPA; a native-anchor signal alongside `target` and `download`.","The escape hatch for a same-origin URL that is not part of the SPA — a legacy route, another application behind the same domain. Same intent as Nuxt's `NuxtLink` `external`.",{"name":729,"type":1299,"required":1269,"default":3,"description":1321,"note":3,"demo":3},"Additional HTTP headers forwarded to Inertia when navigating via `href` in an Inertia-enabled app.",{"name":396,"type":1268,"required":1269,"default":3,"description":1323,"note":1324,"demo":488},"Hyperlink reference used when rendering as an anchor (or as an Inertia link in Inertia-enabled apps). If provided and not disabled, the component renders as an anchor\u002FInertia link.","Renders an anchor — a real document navigation. Under Inertia a same-origin `href` without `target` becomes a visit instead; under Vue Router or Nuxt it stays a full page load, so `to` is the prop for internal links there.",{"name":1326,"type":1281,"required":1269,"default":1282,"description":1327,"note":3,"demo":3},"instant","Inertia: navigate optimistically on click and reconcile when the response lands, instead of waiting for the round trip.",{"name":723,"type":1329,"required":1269,"default":3,"description":1330,"note":1331,"demo":582},"\"get\" | \"post\" | \"put\" | \"patch\" | \"delete\" | undefined","HTTP method used for Inertia navigation when `href` is provided in an Inertia-enabled app. Ignored otherwise: an Inertia POST visit is `href=\"\u002Forders\u002F5\u002Farchive\" method=\"post\"`, never `to` (a `to` link is a Vue Router link and sends no method).","Inertia only, and only with `href`: it turns that link into a non-GET visit. A `to` link is a router link and sends no method (the ESLint rule `bitboss-ui\u002Frequire-partner-prop` flags it). In a Vue Router or plain application it is ignored — an `href` is always a GET.",{"name":1333,"type":1334,"required":1269,"default":3,"description":1335,"note":3,"demo":3},"onBefore","(() => void) | undefined","Lifecycle hook invoked by Inertia right before the request is sent.",{"name":1337,"type":1334,"required":1269,"default":3,"description":1338,"note":3,"demo":3},"onCancel","Lifecycle hook invoked by Inertia when a request is cancelled.",{"name":1340,"type":1341,"required":1269,"default":3,"description":1342,"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":1344,"type":1345,"required":1269,"default":3,"description":1346,"note":1347,"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.","The only failure callback an Inertia link accepts, and it fires on validation errors (422) — not on 5xx and not on a request that never arrived. Use an explicit visit or a form when you have to tell those apart.",{"name":1349,"type":1334,"required":1269,"default":3,"description":1350,"note":3,"demo":3},"onFinish","Lifecycle hook invoked by Inertia after the request has finished (regardless of success or error).",{"name":732,"type":1315,"required":1269,"default":3,"description":1352,"note":3,"demo":3},"Limits the properties that are preserved in Inertia partial reloads.",{"name":1354,"type":1334,"required":1269,"default":3,"description":1355,"note":3,"demo":3},"onPrefetched","Lifecycle hook invoked by Inertia when a prefetch for this link has completed and is cached.",{"name":1357,"type":1334,"required":1269,"default":3,"description":1358,"note":3,"demo":3},"onPrefetching","Lifecycle hook invoked by Inertia when a prefetch for this link starts.",{"name":1360,"type":1361,"required":1269,"default":3,"description":1362,"note":3,"demo":3},"onProgress","((progress: { percentage: number | undefined; }) => void) | undefined","Progress callback invoked by Inertia with the upload\u002Fdownload percentage when available.",{"name":1364,"type":1334,"required":1269,"default":3,"description":1365,"note":3,"demo":3},"onStart","Lifecycle hook invoked by Inertia when a request starts.",{"name":1367,"type":1334,"required":1269,"default":3,"description":1368,"note":3,"demo":3},"onSuccess","Lifecycle hook invoked by Inertia when a request succeeds.",{"name":1370,"type":1371,"required":1269,"default":3,"description":1372,"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":1374,"type":1375,"required":1269,"default":3,"description":1376,"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":1378,"type":1379,"required":1269,"default":1282,"description":1380,"note":1381,"demo":582},"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.","Inertia only. The usual case is a link inside a long list whose result renders in place — without it the visit lands at the top of the page.",{"name":1383,"type":1384,"required":1269,"default":1282,"description":1385,"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":1387,"type":1281,"required":1269,"default":1282,"description":1388,"note":3,"demo":3},"preserveUrl","Inertia: keep the current URL in the address bar even though the page content changes.",{"name":1390,"type":1391,"required":1269,"default":3,"description":1392,"note":3,"demo":3},"pt","PtMap\u003C\"root\", BbBaseButtonPtState> | undefined","Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":1394,"type":1395,"required":1269,"default":3,"description":1396,"note":3,"demo":470},"pt:\u003Cpart>","PtValue | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `root`. States: `activeLink`, `disabled`, `exactActiveLink`.",{"name":1398,"type":1399,"required":1269,"default":1400,"description":1401,"note":3,"demo":3},"queryStringArrayFormat","\"brackets\" | \"indices\" | undefined","'brackets'","Format to use when serializing array values into the query string for Inertia requests.",{"name":1403,"type":1268,"required":1269,"default":3,"description":1404,"note":1405,"demo":3},"rel","Relationship between the current document and the linked resource. Useful for security when opening new tabs (e.g. `noopener noreferrer`).","Your tokens are preserved; the security ones are added on top whenever a `target` is set. There is rarely a reason to write `noopener` here yourself.",{"name":739,"type":1281,"required":1269,"default":1282,"description":1407,"note":1408,"demo":582},"Uses history replacement instead of push navigation.\n\n- With Vue Router (`to`), calls `router.replace`.\n- With Inertia (`href`), performs a replace visit.","Swaps the current history entry instead of pushing one, under both Vue Router and Inertia. Right for anything that is a view control rather than a step in the user's journey.",{"name":1206,"type":1410,"required":1269,"default":1411,"description":1412,"note":1413,"demo":1161},"ButtonTag | undefined","'button'","Element of the plain (non-link) button: `'button'` (default), `'div'` \u002F `'span'` (a clickable box inside a button or link) or `'label'` (a file-upload trigger). Ignored with `href` \u002F `to`. Off `button`, native `type` \u002F `disabled` drop (disabled stays a class).","A last resort for contexts where a `\u003Cbutton>` is invalid — nested inside another interactive element, or a `\u003Clabel>` wrapping a hidden file input. A non-button tag loses the native `type` and `disabled` attributes and the keyboard semantics that come with them.",{"name":519,"type":1268,"required":1269,"default":3,"description":1415,"note":1416,"demo":488},"Target browsing context for anchor\u002FInertia links (e.g. `_self`, `_blank`). Ignored when rendering as a native button.","Forces a plain anchor even where routing would otherwise apply. Any value other than `_self` gets `rel=\"noopener noreferrer\"` merged in — named windows included, because a named target also leaves `window.opener` pointing back at your page.",{"name":484,"type":1268,"required":1269,"default":3,"description":1418,"note":1419,"demo":437},"Fallback text content rendered when no default slot is provided.","A string-only fallback for loops that spread a config object. Prefer the default slot: slot content wins when both are present.",{"name":400,"type":1421,"required":1269,"default":3,"description":1422,"note":1423,"demo":582},"string | wt | bt | undefined","Route location to navigate to. When provided (and not disabled), the component renders as a Vue Router link.","The router form, and the only one that stays inside a Vue Router or Nuxt application. It needs a router to resolve against: in a router-free page it renders nothing useful, and `href` is the form that works.",{"name":1172,"type":1425,"required":1269,"default":1426,"description":1427,"note":1428,"demo":1161},"\"button\" | \"submit\" | \"reset\" | undefined","\"button\"","Native `type` attribute used when rendering as a button (e.g. `button`, `submit`, `reset`).","Defaults to `button`, so nothing inside a form submits by accident. Dropped entirely when `tag` is not `button`, where the attribute would be invalid.",{"name":1430,"type":1281,"required":1269,"default":1282,"description":1431,"note":3,"demo":3},"viewTransition","Inertia: run the page swap inside a View Transition, where the browser supports one.",[],[],[1435],{"name":437,"type":1436,"description":1437,"note":1438,"demo":1070},"BbLinkSlotProps","Primary content rendered inside the button element. Falls back to the `text` prop when empty.","The label. For a rich card overlay, keep it short and visually hidden (`Open Acme workspace`) instead of making the entire card the link name.",[],{"parts":1441,"states":1445},[1442],{"name":1443,"description":1444},"root","Whichever element renders — the `\u003Cbutton>`, the `\u003Ca>` or the router link. A `class` on the component lands here too. The label is your slot markup.",[1446,1449,1451],{"name":1447,"description":1448},"activeLink","Component-wide: a link to the current page or one of its ancestors (`\u002Fusers` on `\u002Fusers\u002F5`) — exactly when `activeClass` is on. The default slot gets it too, as `activeLink`.",{"name":1116,"description":1450},"Component-wide: the button is `disabled`.",{"name":1452,"description":1453},"exactActiveLink","Component-wide: a link to the current page itself — exactly when `exactActiveClass` is on (`activeLink` is on too). The default slot gets it as `exactActiveLink`.",{"removed":1455,"renamed":1456},[],[],1793055138212]