[{"data":1,"prerenderedAt":1332},["ShallowReactive",2],{"api-none":3,"docs-nav-en":4,"locale-alternates":232,"page-en-\u002Fcomponents\u002Fbb-base-button":353,"pt-showcase-BbBaseButton":1139},null,[5,16,25,46,58,100,133,166,187,208,220,226],{"label":6,"entries":7},"Getting started",[8,12],{"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,{"label":17,"entries":18},"Design system",[19,22],{"title":20,"path":21,"component":-1,"order":11},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":23,"path":24,"component":-1,"order":15},"Design language","\u002Fguides\u002Fdesign-language",{"label":26,"entries":27},"Playbooks",[28,31,34,38,42],{"title":29,"path":30,"component":-1,"order":11},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":32,"path":33,"component":-1,"order":15},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":35,"path":36,"component":-1,"order":37},"Coherence","\u002Fguides\u002Fcoherence",3,{"title":39,"path":40,"component":-1,"order":41},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":43,"path":44,"component":-1,"order":45},"Icons","\u002Fguides\u002Ficons",5,{"label":47,"entries":48},"Ecosystem",[49,52,55],{"title":50,"path":51,"component":-1,"order":11},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":53,"path":54,"component":-1,"order":15},"Nuxt","\u002Fguides\u002Fnuxt",{"title":56,"path":57,"component":-1,"order":37},"AI agents","\u002Fguides\u002Fai-agents",{"label":59,"entries":60},"Inputs",[61,64,67,70,73,76,80,84,88,92,96],{"title":62,"path":63,"component":62,"order":11},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":65,"path":66,"component":65,"order":15},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":68,"path":69,"component":68,"order":37},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":71,"path":72,"component":71,"order":41},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":74,"path":75,"component":74,"order":45},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":77,"path":78,"component":77,"order":79},"BbForm","\u002Fcomponents\u002Fbb-form",6,{"title":81,"path":82,"component":81,"order":83},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":85,"path":86,"component":85,"order":87},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":89,"path":90,"component":89,"order":91},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":93,"path":94,"component":93,"order":95},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":97,"path":98,"component":97,"order":99},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":101,"entries":102},"Selection",[103,106,109,112,115,118,121,124,127,130],{"title":104,"path":105,"component":104,"order":11},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":107,"path":108,"component":107,"order":15},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":110,"path":111,"component":110,"order":37},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":113,"path":114,"component":113,"order":41},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":116,"path":117,"component":116,"order":45},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":119,"path":120,"component":119,"order":79},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":122,"path":123,"component":122,"order":83},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":125,"path":126,"component":125,"order":87},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":128,"path":129,"component":128,"order":91},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":131,"path":132,"component":131,"order":95},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":134,"entries":135},"Overlay",[136,139,142,145,148,151,154,157,160,163],{"title":137,"path":138,"component":137,"order":11},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":140,"path":141,"component":140,"order":15},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":143,"path":144,"component":143,"order":37},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":146,"path":147,"component":146,"order":41},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":149,"path":150,"component":149,"order":45},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":152,"path":153,"component":152,"order":79},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":155,"path":156,"component":155,"order":83},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":158,"path":159,"component":158,"order":87},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":161,"path":162,"component":161,"order":91},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":164,"path":165,"component":164,"order":95},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":167,"entries":168},"Navigation",[169,172,175,178,181,184],{"title":170,"path":171,"component":170,"order":11},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":173,"path":174,"component":173,"order":15},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":176,"path":177,"component":176,"order":37},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":179,"path":180,"component":179,"order":41},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":182,"path":183,"component":182,"order":45},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":185,"path":186,"component":185,"order":79},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":188,"entries":189},"Feedback",[190,193,196,199,202,205],{"title":191,"path":192,"component":191,"order":11},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":194,"path":195,"component":194,"order":15},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":197,"path":198,"component":197,"order":37},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":200,"path":201,"component":200,"order":41},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":203,"path":204,"component":203,"order":45},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":206,"path":207,"component":206,"order":79},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":209,"entries":210},"Data Display",[211,214,217],{"title":212,"path":213,"component":212,"order":11},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":215,"path":216,"component":215,"order":15},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":218,"path":219,"component":218,"order":37},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":221,"entries":222},"Layout & Utility",[223],{"title":224,"path":225,"component":224,"order":11},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":227,"entries":228},"Other",[229],{"title":230,"path":231,"component":230,"order":11},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",{"\u002Fit\u002Fcomponenti\u002Fbb-accordion":233,"\u002Fen\u002Fcomponents\u002Fbb-accordion":234,"\u002Fit\u002Fcomponenti\u002Fbb-alert":235,"\u002Fen\u002Fcomponents\u002Fbb-alert":236,"\u002Fit\u002Fcomponenti\u002Fbb-asterisk":237,"\u002Fen\u002Fcomponents\u002Fbb-asterisk":238,"\u002Fit\u002Fcomponenti\u002Fbb-avatar":239,"\u002Fen\u002Fcomponents\u002Fbb-avatar":240,"\u002Fit\u002Fcomponenti\u002Fbb-badge":241,"\u002Fen\u002Fcomponents\u002Fbb-badge":242,"\u002Fit\u002Fcomponenti\u002Fbb-base-button":243,"\u002Fen\u002Fcomponents\u002Fbb-base-button":244,"\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs":245,"\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs":246,"\u002Fit\u002Fcomponenti\u002Fbb-button":247,"\u002Fen\u002Fcomponents\u002Fbb-button":248,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox":249,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":250,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":251,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":252,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":253,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":254,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":255,"\u002Fen\u002Fcomponents\u002Fbb-color-input":256,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":257,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":258,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":259,"\u002Fen\u002Fcomponents\u002Fbb-confirm":260,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":261,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":262,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":263,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":264,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":265,"\u002Fen\u002Fcomponents\u002Fbb-dialog":266,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":267,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":268,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":269,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":270,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":271,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":272,"\u002Fit\u002Fcomponenti\u002Fbb-form":273,"\u002Fen\u002Fcomponents\u002Fbb-form":274,"\u002Fit\u002Fcomponenti\u002Fbb-icon":275,"\u002Fen\u002Fcomponents\u002Fbb-icon":276,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":277,"\u002Fen\u002Fcomponents\u002Fbb-indicator":278,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":279,"\u002Fen\u002Fcomponents\u002Fbb-number-input":280,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":281,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":282,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":283,"\u002Fen\u002Fcomponents\u002Fbb-pagination":284,"\u002Fit\u002Fcomponenti\u002Fbb-popover":285,"\u002Fen\u002Fcomponents\u002Fbb-popover":286,"\u002Fit\u002Fcomponenti\u002Fbb-progress":287,"\u002Fen\u002Fcomponents\u002Fbb-progress":288,"\u002Fit\u002Fcomponenti\u002Fbb-radio":289,"\u002Fen\u002Fcomponents\u002Fbb-radio":290,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":291,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":292,"\u002Fit\u002Fcomponenti\u002Fbb-rating":293,"\u002Fen\u002Fcomponents\u002Fbb-rating":294,"\u002Fit\u002Fcomponenti\u002Fbb-select":295,"\u002Fen\u002Fcomponents\u002Fbb-select":296,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":297,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":298,"\u002Fit\u002Fcomponenti\u002Fbb-slider":299,"\u002Fen\u002Fcomponents\u002Fbb-slider":300,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":301,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":302,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":303,"\u002Fen\u002Fcomponents\u002Fbb-spinner":304,"\u002Fit\u002Fcomponenti\u002Fbb-switch":305,"\u002Fen\u002Fcomponents\u002Fbb-switch":306,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":307,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":308,"\u002Fit\u002Fcomponenti\u002Fbb-table":309,"\u002Fen\u002Fcomponents\u002Fbb-table":310,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":311,"\u002Fen\u002Fcomponents\u002Fbb-tabs":312,"\u002Fit\u002Fcomponenti\u002Fbb-tag":313,"\u002Fen\u002Fcomponents\u002Fbb-tag":314,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":315,"\u002Fen\u002Fcomponents\u002Fbb-text-input":316,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":317,"\u002Fen\u002Fcomponents\u002Fbb-textarea":318,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":319,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":320,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":321,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":322,"\u002Fit\u002Fcomponenti\u002Fbb-toast":323,"\u002Fen\u002Fcomponents\u002Fbb-toast":324,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":325,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":326,"\u002Fit\u002Fcomponenti\u002Fbb-tree":327,"\u002Fen\u002Fcomponents\u002Fbb-tree":328,"\u002Fit\u002Fguide\u002Fai-agents":329,"\u002Fen\u002Fguides\u002Fai-agents":330,"\u002Fit\u002Fguide\u002Fcoherence":331,"\u002Fen\u002Fguides\u002Fcoherence":332,"\u002Fit\u002Fguide\u002Fdesign-language":333,"\u002Fen\u002Fguides\u002Fdesign-language":334,"\u002Fit\u002Fguide\u002Fdesign-tokens":335,"\u002Fen\u002Fguides\u002Fdesign-tokens":336,"\u002Fit\u002Fguide\u002Ffetching-data":337,"\u002Fen\u002Fguides\u002Ffetching-data":338,"\u002Fit\u002Fguide\u002Ficons":339,"\u002Fen\u002Fguides\u002Ficons":340,"\u002Fit\u002Fguide\u002Finertia":341,"\u002Fen\u002Fguides\u002Finertia":342,"\u002Fit\u002Fguide\u002Finstallation":343,"\u002Fen\u002Fguides\u002Finstallation":344,"\u002Fit\u002Fguide\u002Fmigration":345,"\u002Fen\u002Fguides\u002Fmigration":346,"\u002Fit\u002Fguide\u002Fnuxt":347,"\u002Fen\u002Fguides\u002Fnuxt":348,"\u002Fit\u002Fguide\u002Foptions-and-items":349,"\u002Fen\u002Fguides\u002Foptions-and-items":350,"\u002Fit\u002Fguide\u002Fvalidated-forms":351,"\u002Fen\u002Fguides\u002Fvalidated-forms":352},"\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-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-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\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\u002Fvalidated-forms","\u002Fit\u002Fguide\u002Fvalidated-forms",{"id":354,"title":62,"body":355,"component":62,"description":1124,"extension":1125,"group":59,"meta":1126,"navigation":616,"order":11,"path":63,"sections":1127,"seo":1136,"stem":1137,"__hash__":1138},"docs_en\u002Fcomponents\u002Fbb-base-button.md",{"type":356,"value":357,"toc":1114},"minimark",[358,396,403,411,422,426,433,439,442,505,508,522,528,544,547,654,708,823,848,854,869,937,968,974,980,983,986,992,995,998,1014,1020,1027,1030,1056,1062,1072,1075,1110],[359,360,361,377],"when",{},[362,363,364,365,368,369,372,373,376],"p",{},"Use ",[366,367,62],"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 ",[366,370,371],{},"href"," or ",[366,374,375],{},"to"," for navigation.",[378,379,381],"template",{"v-slot:else":380},"",[382,383,384],"ul",{},[385,386,387,392,393],"li",{},[388,389,390],"a",{"href":247},[366,391,65],{},", if you want something that looks like a\nbutton, including a quiet one: that is ",[366,394,395],{},"variant=\"ghost\"",[362,397,398,402],{},[388,399,400],{"href":247},[366,401,65],{}," and other components are built on this.",[404,405,407],"h2",{"id":406},"default",[408,409,410],"span",{},"No chrome, your class",[362,412,413,414,417,418,421],{},"No styles included: padding, background, border and colour come from your own\nclasses. The one thing to add is a visible focus style: ",[366,415,416],{},"bb-base-button"," ships\nthe ",[366,419,420],{},"box-shadow"," transition, not the ring.",[423,424],"demo",{"name":425},"BbBaseButton\u002FBasic",[362,427,428,429,432],{},"The label is the default slot. ",[366,430,431],{},"text"," is a string-only fallback for loops that\nspread a config object.",[404,434,436],{"id":435},"elements",[408,437,438],{},"What it renders",[362,440,441],{},"The props pick the tag, in this order:",[443,444,445,474,496],"ol",{},[385,446,447,451,452,454,455,457,458,461,462,465,466,469,470,473],{},[448,449,450],"strong",{},"A router link",": ",[366,453,375],{}," is set, or an Inertia app gets a same-origin ",[366,456,371],{},"\nwith no ",[366,459,460],{},"target",". Which component (",[366,463,464],{},"RouterLink",", ",[366,467,468],{},"NuxtLink",", Inertia's\n",[366,471,472],{},"Link",") depends on the framework.",[385,475,476,479,480,482,483,485,486,372,489,492,493,495],{},[448,477,478],{},"An anchor",": any other ",[366,481,371],{},": external URLs, anything with ",[366,484,460],{},",\n",[366,487,488],{},"download",[366,490,491],{},"external",", and a disabled ",[366,494,375],{}," link.",[385,497,498,504],{},[448,499,500,501],{},"A native ",[366,502,503],{},"\u003Cbutton>",": no destination.",[423,506],{"name":507},"BbBaseButton\u002FElementResolution",[362,509,510,511,513,514,517,518,521],{},"Any ",[366,512,460],{}," other than ",[366,515,516],{},"_self"," gets ",[366,519,520],{},"rel=\"noopener noreferrer\"",", named windows\nincluded.",[404,523,525],{"id":524},"navigation",[408,526,527],{},"Destinations are props, not handlers",[362,529,530,531,372,533,535,536,539,540,543],{},"If a click goes somewhere, put that destination on ",[366,532,371],{},[366,534,375],{},". An ",[366,537,538],{},"@click","\nthat calls ",[366,541,542],{},"router.push"," cannot open in a new tab and is not a link to assistive\ntechnology.",[362,545,546],{},"Which prop you use depends on the framework:",[548,549,553],"pre",{"className":550,"code":551,"language":552,"meta":380,"style":380},"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",[366,554,555,562,598,603,612,618,623,628],{"__ignoreMap":380},[408,556,558],{"class":557,"line":11},"line",[408,559,561],{"class":560},"sLBg1","\u003C!-- Vue Router or Nuxt: `to` keeps the navigation inside the app. -->\n",[408,563,564,568,571,574,577,580,583,586,590,593,595],{"class":557,"line":15},[408,565,567],{"class":566},"suds8","\u003C",[408,569,62],{"class":570},"sne4z",[408,572,573],{"class":566}," :",[408,575,375],{"class":576},"s-5SL",[408,578,579],{"class":566},"=",[408,581,582],{"class":566},"\"",[408,584,585],{"class":566},"{ name: ",[408,587,589],{"class":588},"sT6z2","'orders.show'",[408,591,592],{"class":566},", params: { id: order.id } }",[408,594,582],{"class":566},[408,596,597],{"class":566},">\n",[408,599,600],{"class":557,"line":37},[408,601,602],{"class":566},"    {{ order.reference }}\n",[408,604,605,608,610],{"class":557,"line":41},[408,606,607],{"class":566},"\u003C\u002F",[408,609,62],{"class":570},[408,611,597],{"class":566},[408,613,614],{"class":557,"line":45},[408,615,617],{"emptyLinePlaceholder":616},true,"\n",[408,619,620],{"class":557,"line":79},[408,621,622],{"class":560},"\u003C!-- The same destination as an href (`\u002Forders`) is a real document\n",[408,624,625],{"class":557,"line":83},[408,626,627],{"class":560},"     navigation in that app: a full page load. -->\n",[408,629,630,632,634,636,638,640,642,645,647,650,652],{"class":557,"line":87},[408,631,567],{"class":566},[408,633,62],{"class":570},[408,635,573],{"class":566},[408,637,371],{"class":576},[408,639,579],{"class":566},[408,641,582],{"class":566},[408,643,644],{"class":566},"ordersPath",[408,646,582],{"class":566},[408,648,649],{"class":566},">All orders\u003C\u002F",[408,651,62],{"class":570},[408,653,597],{"class":566},[362,655,656,657,659,660,662,663,465,666,465,669,465,672,465,675,678,679,485,682,465,685,688,689,465,692,485,695,465,698,465,701,465,704,707],{},"Under Inertia the rule flips: a same-origin ",[366,658,371],{}," without a ",[366,661,460],{}," becomes an\nInertia visit. Configure the visit with props, not listeners: request shape\n(",[366,664,665],{},"method",[366,667,668],{},"data",[366,670,671],{},"headers",[366,673,674],{},"only",[366,676,677],{},"except","), history and scroll (",[366,680,681],{},"replace",[366,683,684],{},"preserve-scroll",[366,686,687],{},"preserve-state","), lifecycle hooks (",[366,690,691],{},"on-before",[366,693,694],{},"on-start",[366,696,697],{},"on-progress",[366,699,700],{},"on-success",[366,702,703],{},"on-error",[366,705,706],{},"on-finish",").",[548,709,711],{"className":550,"code":710,"language":552,"meta":380,"style":380},"\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",[366,712,713,718,723,730,747,762,772,801,806,810,815],{"__ignoreMap":380},[408,714,715],{"class":557,"line":11},[408,716,717],{"class":560},"\u003C!-- Inertia: the href (`\u002Finvoices`) is the visit; everything else rides\n",[408,719,720],{"class":557,"line":15},[408,721,722],{"class":560},"     along as props. -->\n",[408,724,725,727],{"class":557,"line":37},[408,726,567],{"class":566},[408,728,729],{"class":570},"BbBaseButton\n",[408,731,732,735,737,739,741,744],{"class":557,"line":41},[408,733,734],{"class":566},"    :",[408,736,668],{"class":576},[408,738,579],{"class":566},[408,740,582],{"class":566},[408,742,743],{"class":566},"{ customerId }",[408,745,746],{"class":566},"\"\n",[408,748,749,751,753,755,757,760],{"class":557,"line":45},[408,750,734],{"class":566},[408,752,371],{"class":576},[408,754,579],{"class":566},[408,756,582],{"class":566},[408,758,759],{"class":566},"invoicesPath",[408,761,746],{"class":566},[408,763,764,767,769],{"class":557,"line":79},[408,765,766],{"class":576},"    method",[408,768,579],{"class":566},[408,770,771],{"class":588},"\"post\"\n",[408,773,774,776,778,780,782,785,789,792,796,799],{"class":557,"line":83},[408,775,734],{"class":566},[408,777,700],{"class":576},[408,779,579],{"class":566},[408,781,582],{"class":566},[408,783,784],{"class":566},"() ",[408,786,788],{"class":787},"sHUrx","=>",[408,790,791],{"class":566}," drawer.",[408,793,795],{"class":794},"sKwhi","close",[408,797,798],{"class":566},"()",[408,800,746],{"class":566},[408,802,803],{"class":557,"line":87},[408,804,805],{"class":576},"    preserve-scroll\n",[408,807,808],{"class":557,"line":91},[408,809,597],{"class":566},[408,811,812],{"class":557,"line":95},[408,813,814],{"class":566},"    Create invoice\n",[408,816,817,819,821],{"class":557,"line":99},[408,818,607],{"class":566},[408,820,62],{"class":570},[408,822,597],{"class":566},[362,824,825,826,465,828,830,831,834,835,838,839,841,842,844,845,847],{},"Three props force a plain anchor and skip routing: ",[366,827,460],{},[366,829,488],{},"\n(including ",[366,832,833],{},"blob:"," and ",[366,836,837],{},"data:"," URLs) and ",[366,840,491],{},". ",[366,843,681],{}," swaps the history\nentry instead of pushing one, under both Vue Router and Inertia. Without a\nrouter, only ",[366,846,371],{}," works.",[404,849,851],{"id":850},"active",[408,852,853],{},"The link that points here",[362,855,856,857,860,861,864,865,868],{},"When the link points at the current location the component adds a class and, on\nan exact match, ",[366,858,859],{},"aria-current"," (",[366,862,863],{},"page"," unless ",[366,866,867],{},"aria-current-value"," says\notherwise). It applies no styling: you write the highlight against the class you\nnamed.",[548,870,872],{"className":550,"code":871,"language":552,"meta":380,"style":380},"\u003CBbBaseButton\n    class=\"nav-item\"\n    exact-active-class=\"nav-item--current\"\n    :to=\"{ name: 'settings.members' }\"\n>\n    Members\n\u003C\u002FBbBaseButton>\n",[366,873,874,880,890,900,920,924,929],{"__ignoreMap":380},[408,875,876,878],{"class":557,"line":11},[408,877,567],{"class":566},[408,879,729],{"class":570},[408,881,882,885,887],{"class":557,"line":15},[408,883,884],{"class":576},"    class",[408,886,579],{"class":566},[408,888,889],{"class":588},"\"nav-item\"\n",[408,891,892,895,897],{"class":557,"line":37},[408,893,894],{"class":576},"    exact-active-class",[408,896,579],{"class":566},[408,898,899],{"class":588},"\"nav-item--current\"\n",[408,901,902,904,906,908,910,912,915,918],{"class":557,"line":41},[408,903,734],{"class":566},[408,905,375],{"class":576},[408,907,579],{"class":566},[408,909,582],{"class":566},[408,911,585],{"class":566},[408,913,914],{"class":588},"'settings.members'",[408,916,917],{"class":566}," }",[408,919,746],{"class":566},[408,921,922],{"class":557,"line":45},[408,923,597],{"class":566},[408,925,926],{"class":557,"line":79},[408,927,928],{"class":566},"    Members\n",[408,930,931,933,935],{"class":557,"line":83},[408,932,607],{"class":566},[408,934,62],{"class":570},[408,936,597],{"class":566},[362,938,939,942,943,946,947,834,950,953,954,957,958,961,962,860,964,967],{},[366,940,941],{},"active-class"," matches a path prefix (a section link that stays lit on child\npages). ",[366,944,945],{},"exact-active-class"," only matches exactly. Without them you get the\ndefaults, ",[366,948,949],{},"router-link-active",[366,951,952],{},"router-link-exact-active",", or whatever\n",[366,955,956],{},"linkActiveClass"," \u002F ",[366,959,960],{},"linkExactActiveClass"," set on the plugin. A fragment-only\n",[366,963,371],{},[366,965,966],{},"#section",") is the page you are already on, so it never matches.",[404,969,971],{"id":970},"surfaces",[408,972,973],{},"A whole region as one link",[362,975,976,977,979],{},"A simple row can be the link itself. For a richer card, keep the content in a\nplain container and stretch one ",[366,978,62],{}," overlay across it. The overlay\ngets a short accessible name while badges, metadata and secondary controls stay\noutside the link.",[423,981],{"name":982},"BbBaseButton\u002FClickableCard",[362,984,985],{},"Keep the overlay's label specific: “Open Acme workspace” 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.",[404,987,989],{"id":988},"inline-links",[408,990,991],{},"Links that flow in text",[362,993,994],{},"A record identity in a table cell, a reference in a sentence, a value in a\nproperty grid: links without a button box.",[423,996],{"name":997},"BbBaseButton\u002FPlainLink",[362,999,1000,1002,1003,1006,1007,1009,1010,1013],{},[366,1001,65],{},"'s ",[366,1004,1005],{},"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",[366,1008,62],{}," use a project class (for example ",[366,1011,1012],{},".plain-link","), defined once and\nreused on identity cells.",[404,1015,1017],{"id":1016},"disabled",[408,1018,1019],{},"Disabled adapts to the element",[362,1021,1022,1023,1026],{},"One prop, two behaviours: the platform has no disabled ",[366,1024,1025],{},"\u003Ca>",".",[423,1028],{"name":1029},"BbBaseButton\u002FDisabled",[362,1031,1032,1033,1035,1036,1038,1039,465,1042,834,1045,1048,1049,1052,1053,1055],{},"On a button it sets the native ",[366,1034,1016],{}," attribute. On a link it drops the\n",[366,1037,371],{}," and sets ",[366,1040,1041],{},"role=\"link\"",[366,1043,1044],{},"aria-disabled=\"true\"",[366,1046,1047],{},"tabindex=\"-1\"",":\nunfollowable and unfocusable, still in the layout. Both get\n",[366,1050,1051],{},"bb-base-button--disabled",", so one rule styles either. Prefer that to a dead\n",[366,1054,371],{}," that 404s.",[404,1057,1059],{"id":1058},"form",[408,1060,1061],{},"Inside a form, and full width",[362,1063,1064,1067,1068,1071],{},[366,1065,1066],{},"type"," defaults to ",[366,1069,1070],{},"button",", so nothing submits by accident. The one that should\nsubmit says so.",[423,1073],{"name":1074},"BbBaseButton\u002FSubmitAndBlock",[362,1076,1077,1080,1081,1084,1085,1088,1089,465,1092,372,1094,1097,1098,1101,1102,1104,1105,834,1107,1109],{},[366,1078,1079],{},"block"," adds ",[366,1082,1083],{},"bb-base-button--block"," for a full-width control: stacked nav\nitems, list rows, a mobile call to action. ",[366,1086,1087],{},"tag"," renders the non-link case as a\n",[366,1090,1091],{},"div",[366,1093,408],{},[366,1095,1096],{},"label"," (for example a ",[366,1099,1100],{},"\u003Clabel>"," wrapping a hidden file input,\nor where a nested ",[366,1103,503],{}," would be invalid markup). You lose the native\n",[366,1106,1066],{},[366,1108,1016],{}," attributes and keyboard activation: use it only when you\nhave no alternative, then restore the missing focus and keyboard behaviour.",[1111,1112,1113],"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":380,"searchDepth":37,"depth":37,"links":1115},[1116,1117,1118,1119,1120,1121,1122,1123],{"id":406,"depth":15,"text":410},{"id":435,"depth":15,"text":438},{"id":524,"depth":15,"text":527},{"id":850,"depth":15,"text":853},{"id":970,"depth":15,"text":973},{"id":988,"depth":15,"text":991},{"id":1016,"depth":15,"text":1019},{"id":1058,"depth":15,"text":1061},"Build custom action and navigation primitives on a native button, anchor, or router link.","md",{},[1128,1129,1130,1131,1132,1133,1134,1135],{"id":406,"title":410},{"id":435,"title":438},{"id":524,"title":527},{"id":850,"title":853},{"id":970,"title":973},{"id":988,"title":991},{"id":1016,"title":1019},{"id":1058,"title":1061},{"title":62,"description":1124},"components\u002Fbb-base-button","AaXmOnM5bVDaWs0oUXS62Ua633a5D2KvBF54HwoiXj8",{"name":62,"slug":416,"group":59,"description":1140,"entrypoint":1141,"docs":1142,"props":1145,"models":1313,"events":1314,"slots":1315,"exposed":1320,"pt":1321,"validated":3,"migration":1329},"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":1143,"source":1144},"ai\u002FBbBaseButton.md","ai\u002Fsource\u002FBbBaseButton.md",[1146,1153,1159,1164,1167,1171,1175,1178,1182,1185,1189,1194,1197,1200,1202,1205,1208,1212,1216,1219,1223,1228,1231,1233,1236,1239,1243,1246,1249,1253,1257,1262,1266,1269,1273,1276,1278,1283,1287,1290,1295,1298,1301,1305,1310],{"name":1147,"type":1148,"required":1149,"default":1150,"description":1151,"note":1152,"demo":850},"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.\nPorted 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":1154,"type":1155,"required":1149,"default":1156,"description":1157,"note":1158,"demo":850},"ariaCurrentValue","\"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | undefined","'page'","Value forwarded to the `aria-current` attribute when the component renders\nas 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":1160,"type":1161,"required":1149,"default":1162,"description":1163,"note":3,"demo":3},"async","boolean | undefined","false","Inertia: runs the visit without blocking — the page stays interactive and\nseveral async visits can be in flight at once.",{"name":1079,"type":1161,"required":1149,"default":1162,"description":1165,"note":1166,"demo":1058},"Makes the component take the full available width (block-level layout).\nAdds 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":1168,"type":1169,"required":1149,"default":3,"description":1170,"note":3,"demo":3},"cacheFor","string | number | (string | number)[] | undefined","Inertia: how long a prefetched response stays fresh before it is\nre-fetched. A single duration, or `[staleAfter, expiresAfter]`.\n\nTyped platform-agnostically (matching BbButton) so the library's types\nnever require `@inertiajs\u002Fvue3` to be installed.",{"name":1172,"type":1173,"required":1149,"default":3,"description":1174,"note":3,"demo":3},"cacheTags","string | string[] | undefined","Inertia: tags to file this visit's prefetch cache under, so a later\nrequest can invalidate the whole tagged group.",{"name":1176,"type":1148,"required":1149,"default":3,"description":1177,"note":3,"demo":3},"component","Inertia: the page component this visit resolves to. Rarely set by hand —\nthe server normally decides it.",{"name":668,"type":1179,"required":1149,"default":3,"description":1180,"note":1181,"demo":524},"object | undefined","Request payload forwarded to Inertia when navigating via `href` in an\nInertia-enabled app. Ignored when not using Inertia.","Inertia only: the payload sent with the visit. Ignored outside Inertia.",{"name":1016,"type":1161,"required":1149,"default":1162,"description":1183,"note":1184,"demo":1016},"Disables user interaction.\n\n- When rendering as a native button, sets the `disabled` attribute.\n- When rendering as a link (anchor\u002FInertia), removes `href`, adds\n  `aria-disabled=\"true\"`, and prevents navigation while keeping focusable\n  semantics consistent.","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":488,"type":1186,"required":1149,"default":3,"description":1187,"note":1188,"demo":524},"string | boolean | undefined","Marks an `href` link as a download. Renders a plain `\u003Ca download>` doing a\nnative navigation — never an Inertia\u002Frouter visit — so file downloads\n(including same-origin, `blob:` and `data:` URLs) work. Pass a string to\nset the suggested filename. One of the native-anchor signals alongside\n`target` and `external`.","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":1190,"type":1148,"required":1149,"default":1191,"description":1192,"note":1193,"demo":850},"exactActiveClass","'router-link-exact-active'","CSS class applied when the component renders as a link and the target of the link\nand the url matches exactly.\nPorted 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":677,"type":1195,"required":1149,"default":3,"description":1196,"note":3,"demo":3},"string[] | undefined","Inertia: the inverse of `only` — properties to EXCLUDE from a partial\nreload. Pass one or the other, not both.",{"name":491,"type":1161,"required":1149,"default":1162,"description":1198,"note":1199,"demo":524},"Forces an `href` link to render as a plain `\u003Ca>` (native navigation),\nbypassing Inertia\u002Frouter interception — the same intent as Nuxt's\n`NuxtLink` `external`. Use for links outside the SPA. One of the\nnative-anchor signals 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":671,"type":1179,"required":1149,"default":3,"description":1201,"note":3,"demo":3},"Additional HTTP headers forwarded to Inertia when navigating via `href`\nin an Inertia-enabled app.",{"name":371,"type":1148,"required":1149,"default":3,"description":1203,"note":1204,"demo":435},"Hyperlink reference used when rendering as an anchor (or as an Inertia\nlink in Inertia-enabled apps). If provided and not disabled, the component\nrenders 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":1206,"type":1161,"required":1149,"default":1162,"description":1207,"note":3,"demo":3},"instant","Inertia: navigate optimistically on click and reconcile when the response\nlands, instead of waiting for the round trip.",{"name":665,"type":1209,"required":1149,"default":3,"description":1210,"note":1211,"demo":524},"\"get\" | \"post\" | \"put\" | \"patch\" | \"delete\" | undefined","HTTP method used for Inertia navigation when `href` is provided in an\nInertia-enabled app. Ignored otherwise.","Inertia only, and it turns a link into a non-GET visit. In a Vue Router or plain application it is ignored — an `href` is always a GET.",{"name":1213,"type":1214,"required":1149,"default":3,"description":1215,"note":3,"demo":3},"onBefore","(() => void) | undefined","Lifecycle hook invoked by Inertia right before the request is sent.",{"name":1217,"type":1214,"required":1149,"default":3,"description":1218,"note":3,"demo":3},"onCancel","Lifecycle hook invoked by Inertia when a request is cancelled.",{"name":1220,"type":1221,"required":1149,"default":3,"description":1222,"note":3,"demo":3},"onCancelToken","((cancelToken: unknown) => void) | undefined","Receives the Inertia cancel token source when a request is initiated.\nCan be used to cancel the request.\n\nTyped platform-agnostically (matching BbButton) so the library's types\nnever require `@inertiajs\u002Fvue3` to be installed.",{"name":1224,"type":1225,"required":1149,"default":3,"description":1226,"note":1227,"demo":3},"onError","((errors: Record\u003Cstring, string>) => void) | undefined","Lifecycle hook invoked by Inertia when the server responds with\nVALIDATION errors — the ordinary 422 path.\n\nThis is the only failure callback Inertia's `Link` accepts.\n`onHttpException` (server answered 5xx) and `onNetworkError` (the request\nnever arrived) are `router.visit()` \u002F `useForm()` options, NOT Link\nprops — declaring them here would only paste bogus listeners onto the\nanchor. Use a form or an explicit visit when you need to tell them apart.","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":1229,"type":1214,"required":1149,"default":3,"description":1230,"note":3,"demo":3},"onFinish","Lifecycle hook invoked by Inertia after the request has finished\n(regardless of success or error).",{"name":674,"type":1195,"required":1149,"default":3,"description":1232,"note":3,"demo":3},"Limits the properties that are preserved in Inertia partial reloads.",{"name":1234,"type":1214,"required":1149,"default":3,"description":1235,"note":3,"demo":3},"onPrefetched","Lifecycle hook invoked by Inertia when a prefetch for this link has\ncompleted and is cached.",{"name":1237,"type":1214,"required":1149,"default":3,"description":1238,"note":3,"demo":3},"onPrefetching","Lifecycle hook invoked by Inertia when a prefetch for this link starts.",{"name":1240,"type":1241,"required":1149,"default":3,"description":1242,"note":3,"demo":3},"onProgress","((progress: { percentage: number | undefined; }) => void) | undefined","Progress callback invoked by Inertia with the upload\u002Fdownload percentage\nwhen available.",{"name":1244,"type":1214,"required":1149,"default":3,"description":1245,"note":3,"demo":3},"onStart","Lifecycle hook invoked by Inertia when a request starts.",{"name":1247,"type":1214,"required":1149,"default":3,"description":1248,"note":3,"demo":3},"onSuccess","Lifecycle hook invoked by Inertia when a request succeeds.",{"name":1250,"type":1251,"required":1149,"default":3,"description":1252,"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\nserver responds. Either an object or a function of the current props.\n\nTyped platform-agnostically (matching BbButton) so the library's types\nnever require `@inertiajs\u002Fvue3` to be installed.",{"name":1254,"type":1255,"required":1149,"default":3,"description":1256,"note":3,"demo":3},"prefetch","string | boolean | string[] | undefined","Inertia: fetch and cache this link's page ahead of the click. `true` uses\nthe default trigger; a string or list of strings picks them\n(`'mount'`, `'hover'`, `'click'`).",{"name":1258,"type":1259,"required":1149,"default":1162,"description":1260,"note":1261,"demo":524},"preserveScroll","boolean | ((props: Record\u003Cstring, unknown>) => boolean) | undefined","Controls whether Inertia should preserve the current scroll position after\nnavigation. 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":1263,"type":1264,"required":1149,"default":1162,"description":1265,"note":3,"demo":3},"preserveState","boolean | ((props: Record\u003Cstring, unknown>) => boolean) | null | undefined","Controls whether Inertia should preserve the current state after navigation.\nCan be a boolean or a predicate receiving the visit props.",{"name":1267,"type":1161,"required":1149,"default":1162,"description":1268,"note":3,"demo":3},"preserveUrl","Inertia: keep the current URL in the address bar even though the page\ncontent changes.",{"name":1270,"type":1271,"required":1149,"default":3,"description":1272,"note":3,"demo":3},"pt","PtMap\u003C\"root\", \"disabled\"> | undefined","Passthrough, object form: the same keys as the `pt:*` attributes\nwithout the prefix. See the `pt:\u003Cpart>` row.",{"name":1274,"type":1275,"required":1149,"default":3,"description":3,"note":3,"demo":3},"pt:root","PtValue | undefined",{"name":1277,"type":1275,"required":1149,"default":3,"description":3,"note":3,"demo":3},"pt:root:disabled",{"name":1279,"type":1280,"required":1149,"default":1281,"description":1282,"note":3,"demo":3},"queryStringArrayFormat","\"brackets\" | \"indices\" | undefined","'brackets'","Format to use when serializing array values into the query string for\nInertia requests.",{"name":1284,"type":1148,"required":1149,"default":3,"description":1285,"note":1286,"demo":3},"rel","Relationship between the current document and the linked resource.\nUseful 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":681,"type":1161,"required":1149,"default":1162,"description":1288,"note":1289,"demo":524},"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":1087,"type":1291,"required":1149,"default":1292,"description":1293,"note":1294,"demo":1058},"ButtonTag | undefined","'button'","Element to render for the plain (non-link, non-router) button:\n\n- `'button'` (default) — real button semantics and keyboard behavior\n- `'div'` \u002F `'span'` — a clickable box nested inside another button or\n  link, where a nested `\u003Cbutton>` would be invalid markup\n- `'label'` — a file-upload trigger wrapping a visually hidden `\u003Cinput>`\n\nIgnored when the component renders as a link\u002Frouter (`href`\u002F`to`) — those\nalways render `\u003Ca>`\u002Frouter-link. When set to a non-`button` tag the native\n`type`\u002F`disabled` attributes are dropped (they're invalid off a\n`\u003Cbutton>`); disabled state is still conveyed via the\n`bb-base-button--disabled` 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":460,"type":1148,"required":1149,"default":3,"description":1296,"note":1297,"demo":435},"Target browsing context for anchor\u002FInertia links (e.g. `_self`, `_blank`).\nIgnored 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":431,"type":1148,"required":1149,"default":3,"description":1299,"note":1300,"demo":406},"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":375,"type":1302,"required":1149,"default":3,"description":1303,"note":1304,"demo":524},"string | wt | bt | undefined","Route location to navigate to. When provided (and not disabled), the\ncomponent 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":1066,"type":1306,"required":1149,"default":1307,"description":1308,"note":1309,"demo":1058},"\"button\" | \"submit\" | \"reset\" | undefined","\"button\"","Native `type` attribute used when rendering as a button (e.g. `button`,\n`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":1311,"type":1161,"required":1149,"default":1162,"description":1312,"note":3,"demo":3},"viewTransition","Inertia: run the page swap inside a View Transition, where the browser\nsupports one.",[],[],[1316],{"name":406,"type":1317,"description":1318,"note":1319,"demo":970},"object","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":1322,"states":1326},[1323],{"name":1324,"description":1325},"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.",[1327],{"name":1016,"description":1328},"Component-wide: the button is `disabled`.",{"removed":1330,"renamed":1331},[],[],1790005160720]