[{"data":1,"prerenderedAt":2722},["ShallowReactive",2],{"locale-alternates":3,"docs-nav-en":134,"api-none":377,"page-en-\u002Fguides\u002Finstallation":378},{"\u002Fit\u002Fcomponenti\u002Fbb-accordion":4,"\u002Fen\u002Fcomponents\u002Fbb-accordion":5,"\u002Fit\u002Fcomponenti\u002Fbb-alert":6,"\u002Fen\u002Fcomponents\u002Fbb-alert":7,"\u002Fit\u002Fcomponenti\u002Fbb-asterisk":8,"\u002Fen\u002Fcomponents\u002Fbb-asterisk":9,"\u002Fit\u002Fcomponenti\u002Fbb-avatar":10,"\u002Fen\u002Fcomponents\u002Fbb-avatar":11,"\u002Fit\u002Fcomponenti\u002Fbb-badge":12,"\u002Fen\u002Fcomponents\u002Fbb-badge":13,"\u002Fit\u002Fcomponenti\u002Fbb-base-button":14,"\u002Fen\u002Fcomponents\u002Fbb-base-button":15,"\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs":16,"\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs":17,"\u002Fit\u002Fcomponenti\u002Fbb-button":18,"\u002Fen\u002Fcomponents\u002Fbb-button":19,"\u002Fit\u002Fcomponenti\u002Fbb-calendar":20,"\u002Fen\u002Fcomponents\u002Fbb-calendar":21,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox":22,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":23,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":24,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":25,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":26,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":27,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":28,"\u002Fen\u002Fcomponents\u002Fbb-color-input":29,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":30,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":31,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":32,"\u002Fen\u002Fcomponents\u002Fbb-confirm":33,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":34,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":35,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":36,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":37,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":38,"\u002Fen\u002Fcomponents\u002Fbb-dialog":39,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":40,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":41,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":42,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":43,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":44,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":45,"\u002Fit\u002Fcomponenti\u002Fbb-form":46,"\u002Fen\u002Fcomponents\u002Fbb-form":47,"\u002Fit\u002Fcomponenti\u002Fbb-hover-card":48,"\u002Fen\u002Fcomponents\u002Fbb-hover-card":49,"\u002Fit\u002Fcomponenti\u002Fbb-icon":50,"\u002Fen\u002Fcomponents\u002Fbb-icon":51,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":52,"\u002Fen\u002Fcomponents\u002Fbb-indicator":53,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":54,"\u002Fen\u002Fcomponents\u002Fbb-number-input":55,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":56,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":57,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":58,"\u002Fen\u002Fcomponents\u002Fbb-pagination":59,"\u002Fit\u002Fcomponenti\u002Fbb-popover":60,"\u002Fen\u002Fcomponents\u002Fbb-popover":61,"\u002Fit\u002Fcomponenti\u002Fbb-progress":62,"\u002Fen\u002Fcomponents\u002Fbb-progress":63,"\u002Fit\u002Fcomponenti\u002Fbb-radio":64,"\u002Fen\u002Fcomponents\u002Fbb-radio":65,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":66,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":67,"\u002Fit\u002Fcomponenti\u002Fbb-rating":68,"\u002Fen\u002Fcomponents\u002Fbb-rating":69,"\u002Fit\u002Fcomponenti\u002Fbb-select":70,"\u002Fen\u002Fcomponents\u002Fbb-select":71,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":72,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":73,"\u002Fit\u002Fcomponenti\u002Fbb-slider":74,"\u002Fen\u002Fcomponents\u002Fbb-slider":75,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":76,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":77,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":78,"\u002Fen\u002Fcomponents\u002Fbb-spinner":79,"\u002Fit\u002Fcomponenti\u002Fbb-switch":80,"\u002Fen\u002Fcomponents\u002Fbb-switch":81,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":82,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":83,"\u002Fit\u002Fcomponenti\u002Fbb-table":84,"\u002Fen\u002Fcomponents\u002Fbb-table":85,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":86,"\u002Fen\u002Fcomponents\u002Fbb-tabs":87,"\u002Fit\u002Fcomponenti\u002Fbb-tag":88,"\u002Fen\u002Fcomponents\u002Fbb-tag":89,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":90,"\u002Fen\u002Fcomponents\u002Fbb-text-input":91,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":92,"\u002Fen\u002Fcomponents\u002Fbb-textarea":93,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":94,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":95,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":96,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":97,"\u002Fit\u002Fcomponenti\u002Fbb-toast":98,"\u002Fen\u002Fcomponents\u002Fbb-toast":99,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":100,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":101,"\u002Fit\u002Fcomponenti\u002Fbb-tree":102,"\u002Fen\u002Fcomponents\u002Fbb-tree":103,"\u002Fit\u002Fguide\u002Fadoption-checklist":104,"\u002Fen\u002Fguides\u002Fadoption-checklist":105,"\u002Fit\u002Fguide\u002Fai-agents":106,"\u002Fen\u002Fguides\u002Fai-agents":107,"\u002Fit\u002Fguide\u002Fcoherence":108,"\u002Fen\u002Fguides\u002Fcoherence":109,"\u002Fit\u002Fguide\u002Fdesign-language":110,"\u002Fen\u002Fguides\u002Fdesign-language":111,"\u002Fit\u002Fguide\u002Fdesign-tokens":112,"\u002Fen\u002Fguides\u002Fdesign-tokens":113,"\u002Fit\u002Fguide\u002Ffetching-data":114,"\u002Fen\u002Fguides\u002Ffetching-data":115,"\u002Fit\u002Fguide\u002Ficons":116,"\u002Fen\u002Fguides\u002Ficons":117,"\u002Fit\u002Fguide\u002Finertia":118,"\u002Fen\u002Fguides\u002Finertia":119,"\u002Fit\u002Fguide\u002Finstallation":120,"\u002Fen\u002Fguides\u002Finstallation":121,"\u002Fit\u002Fguide\u002Fmigration":122,"\u002Fen\u002Fguides\u002Fmigration":123,"\u002Fit\u002Fguide\u002Fnuxt":124,"\u002Fen\u002Fguides\u002Fnuxt":125,"\u002Fit\u002Fguide\u002Foptions-and-items":126,"\u002Fen\u002Fguides\u002Foptions-and-items":127,"\u002Fit\u002Fguide\u002Fpassthrough":128,"\u002Fen\u002Fguides\u002Fpassthrough":129,"\u002Fit\u002Fguide\u002Fpreset-components":130,"\u002Fen\u002Fguides\u002Fpreset-components":131,"\u002Fit\u002Fguide\u002Fvalidated-forms":132,"\u002Fen\u002Fguides\u002Fvalidated-forms":133},"\u002Fen\u002Fcomponents\u002Fbb-accordion","\u002Fit\u002Fcomponenti\u002Fbb-accordion","\u002Fen\u002Fcomponents\u002Fbb-alert","\u002Fit\u002Fcomponenti\u002Fbb-alert","\u002Fen\u002Fcomponents\u002Fbb-asterisk","\u002Fit\u002Fcomponenti\u002Fbb-asterisk","\u002Fen\u002Fcomponents\u002Fbb-avatar","\u002Fit\u002Fcomponenti\u002Fbb-avatar","\u002Fen\u002Fcomponents\u002Fbb-badge","\u002Fit\u002Fcomponenti\u002Fbb-badge","\u002Fen\u002Fcomponents\u002Fbb-base-button","\u002Fit\u002Fcomponenti\u002Fbb-base-button","\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs","\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs","\u002Fen\u002Fcomponents\u002Fbb-button","\u002Fit\u002Fcomponenti\u002Fbb-button","\u002Fen\u002Fcomponents\u002Fbb-calendar","\u002Fit\u002Fcomponenti\u002Fbb-calendar","\u002Fen\u002Fcomponents\u002Fbb-checkbox","\u002Fit\u002Fcomponenti\u002Fbb-checkbox","\u002Fen\u002Fcomponents\u002Fbb-checkbox-group","\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group","\u002Fen\u002Fcomponents\u002Fbb-collapsible","\u002Fit\u002Fcomponenti\u002Fbb-collapsible","\u002Fen\u002Fcomponents\u002Fbb-color-input","\u002Fit\u002Fcomponenti\u002Fbb-color-input","\u002Fen\u002Fcomponents\u002Fbb-color-palette","\u002Fit\u002Fcomponenti\u002Fbb-color-palette","\u002Fen\u002Fcomponents\u002Fbb-confirm","\u002Fit\u002Fcomponenti\u002Fbb-confirm","\u002Fen\u002Fcomponents\u002Fbb-date-picker","\u002Fit\u002Fcomponenti\u002Fbb-date-picker","\u002Fen\u002Fcomponents\u002Fbb-date-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input","\u002Fen\u002Fcomponents\u002Fbb-dialog","\u002Fit\u002Fcomponenti\u002Fbb-dialog","\u002Fen\u002Fcomponents\u002Fbb-dropdown","\u002Fit\u002Fcomponenti\u002Fbb-dropdown","\u002Fen\u002Fcomponents\u002Fbb-dropdown-button","\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button","\u002Fen\u002Fcomponents\u002Fbb-dropzone","\u002Fit\u002Fcomponenti\u002Fbb-dropzone","\u002Fen\u002Fcomponents\u002Fbb-form","\u002Fit\u002Fcomponenti\u002Fbb-form","\u002Fen\u002Fcomponents\u002Fbb-hover-card","\u002Fit\u002Fcomponenti\u002Fbb-hover-card","\u002Fen\u002Fcomponents\u002Fbb-icon","\u002Fit\u002Fcomponenti\u002Fbb-icon","\u002Fen\u002Fcomponents\u002Fbb-indicator","\u002Fit\u002Fcomponenti\u002Fbb-indicator","\u002Fen\u002Fcomponents\u002Fbb-number-input","\u002Fit\u002Fcomponenti\u002Fbb-number-input","\u002Fen\u002Fcomponents\u002Fbb-off-canvas","\u002Fit\u002Fcomponenti\u002Fbb-off-canvas","\u002Fen\u002Fcomponents\u002Fbb-pagination","\u002Fit\u002Fcomponenti\u002Fbb-pagination","\u002Fen\u002Fcomponents\u002Fbb-popover","\u002Fit\u002Fcomponenti\u002Fbb-popover","\u002Fen\u002Fcomponents\u002Fbb-progress","\u002Fit\u002Fcomponenti\u002Fbb-progress","\u002Fen\u002Fcomponents\u002Fbb-radio","\u002Fit\u002Fcomponenti\u002Fbb-radio","\u002Fen\u002Fcomponents\u002Fbb-radio-group","\u002Fit\u002Fcomponenti\u002Fbb-radio-group","\u002Fen\u002Fcomponents\u002Fbb-rating","\u002Fit\u002Fcomponenti\u002Fbb-rating","\u002Fen\u002Fcomponents\u002Fbb-select","\u002Fit\u002Fcomponenti\u002Fbb-select","\u002Fen\u002Fcomponents\u002Fbb-select-popover","\u002Fit\u002Fcomponenti\u002Fbb-select-popover","\u002Fen\u002Fcomponents\u002Fbb-slider","\u002Fit\u002Fcomponenti\u002Fbb-slider","\u002Fen\u002Fcomponents\u002Fbb-smooth-height","\u002Fit\u002Fcomponenti\u002Fbb-smooth-height","\u002Fen\u002Fcomponents\u002Fbb-spinner","\u002Fit\u002Fcomponenti\u002Fbb-spinner","\u002Fen\u002Fcomponents\u002Fbb-switch","\u002Fit\u002Fcomponenti\u002Fbb-switch","\u002Fen\u002Fcomponents\u002Fbb-switch-group","\u002Fit\u002Fcomponenti\u002Fbb-switch-group","\u002Fen\u002Fcomponents\u002Fbb-table","\u002Fit\u002Fcomponenti\u002Fbb-table","\u002Fen\u002Fcomponents\u002Fbb-tabs","\u002Fit\u002Fcomponenti\u002Fbb-tabs","\u002Fen\u002Fcomponents\u002Fbb-tag","\u002Fit\u002Fcomponenti\u002Fbb-tag","\u002Fen\u002Fcomponents\u002Fbb-text-input","\u002Fit\u002Fcomponenti\u002Fbb-text-input","\u002Fen\u002Fcomponents\u002Fbb-textarea","\u002Fit\u002Fcomponenti\u002Fbb-textarea","\u002Fen\u002Fcomponents\u002Fbb-time-picker","\u002Fit\u002Fcomponenti\u002Fbb-time-picker","\u002Fen\u002Fcomponents\u002Fbb-time-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input","\u002Fen\u002Fcomponents\u002Fbb-toast","\u002Fit\u002Fcomponenti\u002Fbb-toast","\u002Fen\u002Fcomponents\u002Fbb-tooltip","\u002Fit\u002Fcomponenti\u002Fbb-tooltip","\u002Fen\u002Fcomponents\u002Fbb-tree","\u002Fit\u002Fcomponenti\u002Fbb-tree","\u002Fen\u002Fguides\u002Fadoption-checklist","\u002Fit\u002Fguide\u002Fadoption-checklist","\u002Fen\u002Fguides\u002Fai-agents","\u002Fit\u002Fguide\u002Fai-agents","\u002Fen\u002Fguides\u002Fcoherence","\u002Fit\u002Fguide\u002Fcoherence","\u002Fen\u002Fguides\u002Fdesign-language","\u002Fit\u002Fguide\u002Fdesign-language","\u002Fen\u002Fguides\u002Fdesign-tokens","\u002Fit\u002Fguide\u002Fdesign-tokens","\u002Fen\u002Fguides\u002Ffetching-data","\u002Fit\u002Fguide\u002Ffetching-data","\u002Fen\u002Fguides\u002Ficons","\u002Fit\u002Fguide\u002Ficons","\u002Fen\u002Fguides\u002Finertia","\u002Fit\u002Fguide\u002Finertia","\u002Fen\u002Fguides\u002Finstallation","\u002Fit\u002Fguide\u002Finstallation","\u002Fen\u002Fguides\u002Fmigration","\u002Fit\u002Fguide\u002Fmigration","\u002Fen\u002Fguides\u002Fnuxt","\u002Fit\u002Fguide\u002Fnuxt","\u002Fen\u002Fguides\u002Foptions-and-items","\u002Fit\u002Fguide\u002Foptions-and-items","\u002Fen\u002Fguides\u002Fpassthrough","\u002Fit\u002Fguide\u002Fpassthrough","\u002Fen\u002Fguides\u002Fpreset-components","\u002Fit\u002Fguide\u002Fpreset-components","\u002Fen\u002Fguides\u002Fvalidated-forms","\u002Fit\u002Fguide\u002Fvalidated-forms",[135,150,162,186,198,242,275,311,332,353,365,371],{"label":136,"entries":137},"Getting started",[138,142,146],{"title":139,"path":140,"order":141},"Installation","\u002Fguides\u002Finstallation",1,{"title":143,"path":144,"order":145},"Migrating from v2","\u002Fguides\u002Fmigration",2,{"title":147,"path":148,"order":149},"Adoption checklist","\u002Fguides\u002Fadoption-checklist",3,{"label":151,"entries":152},"Design system",[153,156,159],{"title":154,"path":155,"order":141},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":157,"path":158,"order":145},"Design language","\u002Fguides\u002Fdesign-language",{"title":160,"path":161,"order":149},"Passthrough","\u002Fguides\u002Fpassthrough",{"label":163,"entries":164},"Playbooks",[165,168,171,174,178,182],{"title":166,"path":167,"order":141},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":169,"path":170,"order":145},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":172,"path":173,"order":149},"Coherence","\u002Fguides\u002Fcoherence",{"title":175,"path":176,"order":177},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":179,"path":180,"order":181},"Icons","\u002Fguides\u002Ficons",5,{"title":183,"path":184,"order":185},"Preset components","\u002Fguides\u002Fpreset-components",6,{"label":187,"entries":188},"Ecosystem",[189,192,195],{"title":190,"path":191,"order":141},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":193,"path":194,"order":145},"Nuxt","\u002Fguides\u002Fnuxt",{"title":196,"path":197,"order":149},"AI agents","\u002Fguides\u002Fai-agents",{"label":199,"entries":200},"Inputs",[201,204,207,210,213,216,219,222,226,230,234,238],{"title":202,"path":203,"component":202,"order":141},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":205,"path":206,"component":205,"order":145},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":208,"path":209,"component":208,"order":149},"BbCalendar","\u002Fcomponents\u002Fbb-calendar",{"title":211,"path":212,"component":211,"order":149},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":214,"path":215,"component":214,"order":177},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":217,"path":218,"component":217,"order":181},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":220,"path":221,"component":220,"order":185},"BbForm","\u002Fcomponents\u002Fbb-form",{"title":223,"path":224,"component":223,"order":225},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":227,"path":228,"component":227,"order":229},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":231,"path":232,"component":231,"order":233},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":235,"path":236,"component":235,"order":237},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":239,"path":240,"component":239,"order":241},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":243,"entries":244},"Selection",[245,248,251,254,257,260,263,266,269,272],{"title":246,"path":247,"component":246,"order":141},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":249,"path":250,"component":249,"order":145},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":252,"path":253,"component":252,"order":149},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":255,"path":256,"component":255,"order":177},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":258,"path":259,"component":258,"order":181},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":261,"path":262,"component":261,"order":185},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":264,"path":265,"component":264,"order":225},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":267,"path":268,"component":267,"order":229},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":270,"path":271,"component":270,"order":233},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":273,"path":274,"component":273,"order":237},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":276,"entries":277},"Overlay",[278,281,284,287,290,293,296,299,302,305,308],{"title":279,"path":280,"component":279,"order":141},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":282,"path":283,"component":282,"order":145},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":285,"path":286,"component":285,"order":149},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":288,"path":289,"component":288,"order":177},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":291,"path":292,"component":291,"order":181},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":294,"path":295,"component":294,"order":185},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":297,"path":298,"component":297,"order":225},"BbHoverCard","\u002Fcomponents\u002Fbb-hover-card",{"title":300,"path":301,"component":300,"order":225},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":303,"path":304,"component":303,"order":229},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":306,"path":307,"component":306,"order":233},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":309,"path":310,"component":309,"order":237},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":312,"entries":313},"Navigation",[314,317,320,323,326,329],{"title":315,"path":316,"component":315,"order":141},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":318,"path":319,"component":318,"order":145},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":321,"path":322,"component":321,"order":149},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":324,"path":325,"component":324,"order":177},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":327,"path":328,"component":327,"order":181},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":330,"path":331,"component":330,"order":185},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":333,"entries":334},"Feedback",[335,338,341,344,347,350],{"title":336,"path":337,"component":336,"order":141},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":339,"path":340,"component":339,"order":145},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":342,"path":343,"component":342,"order":149},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":345,"path":346,"component":345,"order":177},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":348,"path":349,"component":348,"order":181},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":351,"path":352,"component":351,"order":185},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":354,"entries":355},"Data Display",[356,359,362],{"title":357,"path":358,"component":357,"order":141},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":360,"path":361,"component":360,"order":145},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":363,"path":364,"component":363,"order":149},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":366,"entries":367},"Layout & Utility",[368],{"title":369,"path":370,"component":369,"order":141},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":372,"entries":373},"Other",[374],{"title":375,"path":376,"component":375,"order":141},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",null,{"id":379,"title":139,"body":380,"component":377,"description":2706,"extension":2707,"group":136,"meta":2708,"navigation":722,"order":141,"path":140,"sections":2709,"seo":2719,"stem":2720,"__hash__":2721},"docs_en\u002Fguides\u002Finstallation.md",{"type":381,"value":382,"toc":2691},"minimark",[383,396,404,431,467,477,498,542,552,558,568,601,607,617,662,668,760,793,807,834,840,858,864,942,962,997,1024,1117,1127,1159,1162,1209,1223,1227,1244,1278,1294,1305,1308,1311,1327,1350,1363,1431,1469,1477,1488,1492,1495,1504,1510,1543,1563,1569,1585,1590,1605,1640,1654,1659,1668,1671,1720,1723,1756,1759,1855,1858,1901,1904,1935,1938,1960,1993,2003,2008,2018,2046,2299,2327,2369,2427,2433,2436,2478,2488,2539,2571,2582,2588,2591,2595,2623,2629,2632,2687],[384,385,386,387,391,392,395],"p",{},"v3 is a plugin, not a bag of exports. You always install two pieces. The ",[388,389,390],"strong",{},"build\nplugin"," generates the config, the icon registry and the typed variant lists. The\n",[388,393,394],{},"runtime plugin"," injects the styles and registers the directives. Without the\nbuild plugin the app does not build; without the runtime plugin components\nrender unstyled.",[397,398,400],"h2",{"id":399},"install",[401,402,403],"span",{},"Install the package",[405,406,407],"warning",{},[384,408,409,410,414,415,418,419,422,423,426,427,430],{},"v3 is a prerelease, so you need the dist-tag. A bare ",[411,412,413],"code",{},"npm install bitboss-ui","\ngets you ",[388,416,417],{},"v2",", which has no build plugin and no ",[411,420,421],{},"dist\u002Fai"," knowledge base, so\nthe ",[411,424,425],{},"bitboss-ui\u002Fvite"," and ",[411,428,429],{},"bitboss-ui\u002Fnuxt"," imports below do not resolve.",[432,433,438],"pre",{"className":434,"code":435,"language":436,"meta":437,"style":437},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","npm install bitboss-ui@beta\nnpm install -D @iconify-json\u002Flucide\n","bash","",[411,439,440,454],{"__ignoreMap":437},[401,441,443,447,451],{"class":442,"line":141},"line",[401,444,446],{"class":445},"soyes","npm",[401,448,450],{"class":449},"sT6z2"," install",[401,452,453],{"class":449}," bitboss-ui@beta\n",[401,455,456,458,460,464],{"class":442,"line":145},[401,457,446],{"class":445},[401,459,450],{"class":449},[401,461,463],{"class":462},"s-5SL"," -D",[401,465,466],{"class":449}," @iconify-json\u002Flucide\n",[384,468,469,470,473,474,476],{},"Confirm what you got before going further. ",[411,471,472],{},"@latest"," is the ",[388,475,417],{}," line until\nv3 goes stable.",[432,478,480],{"className":434,"code":479,"language":436,"meta":437,"style":437},"# must report 3.0.0-*\nnpm ls bitboss-ui\n",[411,481,482,488],{"__ignoreMap":437},[401,483,484],{"class":442,"line":141},[401,485,487],{"class":486},"sLBg1","# must report 3.0.0-*\n",[401,489,490,492,495],{"class":442,"line":145},[401,491,446],{"class":445},[401,493,494],{"class":449}," ls",[401,496,497],{"class":449}," bitboss-ui\n",[384,499,500,503,504,507,508,511,512,515,516,521,522,525,526,529,530,534,535,538,539,541],{},[388,501,502],{},"Peers."," Vue ",[411,505,506],{},"^3.5.12"," is the only required one. The optional ones you may\nmeet: ",[411,509,510],{},"@inertiajs\u002Fvue3"," in Inertia apps, ",[411,513,514],{},"vee-validate"," (4.10 or later, below 5)\nfor ",[517,518,519],"a",{"href":46},[411,520,220],{},", and ",[411,523,524],{},"@modelcontextprotocol\u002Fsdk"," plus\n",[411,527,528],{},"zod"," for the ",[517,531,533],{"href":532},"\u002Fen\u002Fguides\u002Fai-agents#mcp","MCP server",", which ",[411,536,537],{},"ai-init"," installs.\nA build that meets ",[411,540,220],{}," without vee-validate stops and prints the install\ncommand.",[384,543,544,547,548,551],{},[388,545,546],{},"Node."," 20.19 or later, or 22.12 or later on the 22 line. The ",[411,549,550],{},"bitboss-ui","\ncommand line needs the same.",[384,553,554,557],{},[388,555,556],{},"Browsers."," Evergreen only, with no polyfills. Every floating surface\n(select, dropdown, popover, tooltip) uses the native Popover API, so the floor\nis Chrome and Edge 114, Safari 17 and Firefox 125. Below it those surfaces do\nnot render.",[384,559,560,563,564,567],{},[388,561,562],{},"Upgrading."," Restart the dev server after installing a new version, and\ndelete ",[411,565,566],{},"node_modules\u002F.vite"," (inside the container under Docker or Sail). A\nserver left running keeps serving the old JavaScript next to the new CSS, which\nlooks like a regression; the console warns when the two disagree. The first\nstart prints the command that lists what broke since your previous version:",[432,569,571],{"className":434,"code":570,"language":436,"meta":437,"style":437},"npx bitboss-ui changelog --since \u003Cprevious-version>\n",[411,572,573],{"__ignoreMap":437},[401,574,575,578,581,584,587,591,594,598],{"class":442,"line":141},[401,576,577],{"class":445},"npx",[401,579,580],{"class":449}," bitboss-ui",[401,582,583],{"class":449}," changelog",[401,585,586],{"class":462}," --since",[401,588,590],{"class":589},"sHUrx"," \u003C",[401,592,593],{"class":449},"previous-versio",[401,595,597],{"class":596},"suds8","n",[401,599,600],{"class":589},">\n",[397,602,604],{"id":603},"build-plugin",[401,605,606],{},"The build plugin",[384,608,609,612,613,616],{},[388,610,611],{},"Nuxt."," The module wraps the Vite plugin and registers the runtime plugin for\nyou, so you write no ",[411,614,615],{},"app.use",":",[432,618,623],{"className":619,"code":620,"filename":621,"language":622,"meta":437,"style":437},"language-ts shiki shiki-themes github-light-high-contrast github-dark-high-contrast","export default defineNuxtConfig({\n    modules: ['bitboss-ui\u002Fnuxt'],\n});\n","nuxt.config.ts","ts",[411,624,625,640,654],{"__ignoreMap":437},[401,626,627,630,633,637],{"class":442,"line":141},[401,628,629],{"class":589},"export",[401,631,632],{"class":589}," default",[401,634,636],{"class":635},"sKwhi"," defineNuxtConfig",[401,638,639],{"class":445},"({\n",[401,641,642,645,648,651],{"class":442,"line":145},[401,643,644],{"class":596},"    modules: [",[401,646,647],{"class":449},"'bitboss-ui\u002Fnuxt'",[401,649,650],{"class":596},"]",[401,652,653],{"class":445},",\n",[401,655,656,659],{"class":442,"line":149},[401,657,658],{"class":445},"})",[401,660,661],{"class":596},";\n",[384,663,664,667],{},[388,665,666],{},"Vite"," (Vue, Laravel with Inertia). Add the plugin, then install the runtime\nplugin yourself in the next section:",[432,669,672],{"className":619,"code":670,"filename":671,"language":622,"meta":437,"style":437},"import { defineConfig } from 'vite';\nimport vue from '@vitejs\u002Fplugin-vue';\nimport { bitbossUi } from 'bitboss-ui\u002Fvite';\n\nexport default defineConfig({\n    plugins: [vue(), bitbossUi()],\n});\n","vite.config.ts",[411,673,674,690,704,718,724,735,754],{"__ignoreMap":437},[401,675,676,679,682,685,688],{"class":442,"line":141},[401,677,678],{"class":589},"import",[401,680,681],{"class":596}," { defineConfig } ",[401,683,684],{"class":589},"from",[401,686,687],{"class":449}," 'vite'",[401,689,661],{"class":596},[401,691,692,694,697,699,702],{"class":442,"line":145},[401,693,678],{"class":589},[401,695,696],{"class":596}," vue ",[401,698,684],{"class":589},[401,700,701],{"class":449}," '@vitejs\u002Fplugin-vue'",[401,703,661],{"class":596},[401,705,706,708,711,713,716],{"class":442,"line":149},[401,707,678],{"class":589},[401,709,710],{"class":596}," { bitbossUi } ",[401,712,684],{"class":589},[401,714,715],{"class":449}," 'bitboss-ui\u002Fvite'",[401,717,661],{"class":596},[401,719,720],{"class":442,"line":177},[401,721,723],{"emptyLinePlaceholder":722},true,"\n",[401,725,726,728,730,733],{"class":442,"line":181},[401,727,629],{"class":589},[401,729,632],{"class":589},[401,731,732],{"class":635}," defineConfig",[401,734,639],{"class":445},[401,736,737,740,743,746,749,752],{"class":442,"line":185},[401,738,739],{"class":596},"    plugins: [",[401,741,742],{"class":635},"vue",[401,744,745],{"class":596},"(), ",[401,747,748],{"class":635},"bitbossUi",[401,750,751],{"class":596},"()]",[401,753,653],{"class":445},[401,755,756,758],{"class":442,"line":225},[401,757,658],{"class":445},[401,759,661],{"class":596},[384,761,762,763,766,767,770,771,775,776,779,780,521,783,786,787,426,789,792],{},"You configure everything here, at build time: the Nuxt ",[411,764,765],{},"bitboss"," key and\n",[411,768,769],{},"bitbossUi({ … })"," take the same ",[517,772,774],{"href":773},"#options","options",". Two exceptions: ",[411,777,778],{},"locale","\ncan change at runtime through ",[411,781,782],{},"useBbConfig()",[411,784,785],{},"app.use(bitbossUiPlugin, { … })","\ntakes ",[411,788,778],{},[411,790,791],{},"formControls"," per app.",[384,794,795,796,798,799,802,803,806],{},"The library's own strings (empty states, close buttons, pagination) are English\nunless you set ",[411,797,778],{},". An app in another language names it:\n",[411,800,801],{},"bitbossUi({ locale: 'it' })",", or ",[411,804,805],{},"bitboss: { locale: 'it' }"," in Nuxt.",[384,808,809,810,813,814,817,818,821,822,825,826,829,830,833],{},"The plugin writes ",[411,811,812],{},"bitboss-ui.d.ts"," into your project the first time the dev\nserver starts or you build. It lands next to your first script entry\n(",[411,815,816],{},"resources\u002Fjs\u002F"," in a Laravel app), else in ",[411,819,820],{},"src\u002F",", and in ",[411,823,824],{},"app\u002F"," under Nuxt 4.\nThe ",[411,827,828],{},"dts"," option moves it. The file types your custom variants, enabled locales\nand passthrough scopes. ",[388,831,832],{},"Commit it",", so a teammate's or CI's typecheck agrees\nwithout running Vite.",[397,835,837],{"id":836},"runtime",[401,838,839],{},"Styles and the runtime plugin",[384,841,842,843,849,850,853,854,857],{},"The runtime plugin injects the library stylesheet for you. ",[388,844,845,846],{},"Do not also import\n",[411,847,848],{},"bitboss-ui\u002Fstyles.css"," while injection is on. The second copy loads\nunlayered and beats your Tailwind utilities again. ",[411,851,852],{},"npx bitboss-ui check","\nreports it as ",[411,855,856],{},"hand-imported-styles",".",[384,859,860,863],{},[388,861,862],{},"Vite."," Install the runtime plugin at the entry point, with no CSS import:",[432,865,868],{"className":619,"code":866,"filename":867,"language":622,"meta":437,"style":437},"import { createApp } from 'vue';\nimport { bitbossUiPlugin } from 'bitboss-ui';\nimport App from '.\u002FApp.vue';\n\ncreateApp(App).use(bitbossUiPlugin).mount('#app');\n","main.ts",[411,869,870,884,898,912,916],{"__ignoreMap":437},[401,871,872,874,877,879,882],{"class":442,"line":141},[401,873,678],{"class":589},[401,875,876],{"class":596}," { createApp } ",[401,878,684],{"class":589},[401,880,881],{"class":449}," 'vue'",[401,883,661],{"class":596},[401,885,886,888,891,893,896],{"class":442,"line":145},[401,887,678],{"class":589},[401,889,890],{"class":596}," { bitbossUiPlugin } ",[401,892,684],{"class":589},[401,894,895],{"class":449}," 'bitboss-ui'",[401,897,661],{"class":596},[401,899,900,902,905,907,910],{"class":442,"line":149},[401,901,678],{"class":589},[401,903,904],{"class":596}," App ",[401,906,684],{"class":589},[401,908,909],{"class":449}," '.\u002FApp.vue'",[401,911,661],{"class":596},[401,913,914],{"class":442,"line":177},[401,915,723],{"emptyLinePlaceholder":722},[401,917,918,921,924,927,930,933,936,939],{"class":442,"line":181},[401,919,920],{"class":635},"createApp",[401,922,923],{"class":596},"(App).",[401,925,926],{"class":635},"use",[401,928,929],{"class":596},"(bitbossUiPlugin).",[401,931,932],{"class":635},"mount",[401,934,935],{"class":596},"(",[401,937,938],{"class":449},"'#app'",[401,940,941],{"class":596},");\n",[384,943,944,945,948,949,952,953,956,957,961],{},"In an Inertia app the same ",[411,946,947],{},".use(bitbossUiPlugin)"," goes in ",[411,950,951],{},"createInertiaApp","'s\n",[411,954,955],{},"setup",", after Inertia's own plugin (see ",[517,958,960],{"href":959},"\u002Fen\u002Fguides\u002Finertia#install","Inertia",").",[384,963,964,966,967,970,971,970,974,970,977,653,980,970,983,970,986,970,989,992,993,996],{},[388,965,611],{}," The module installs the runtime plugin. The runtime plugin is also\nwhat registers ",[411,968,969],{},"v-bb-tooltip",", ",[411,972,973],{},"v-bb-dropdown",[411,975,976],{},"v-bb-color",[411,978,979],{},"v-bb-date",[411,981,982],{},"v-bb-time",[411,984,985],{},"v-bb-hover-card",[411,987,988],{},"v-bb-popover",[411,990,991],{},"v-bb-dialog"," and\n",[411,994,995],{},"v-bb-off-canvas","; without it those directives throw.",[384,998,999,1002,1003,970,1006,426,1009,1013,1014,1017,1018,1021,1022,961],{},[388,1000,1001],{},"The host."," ",[411,1004,1005],{},"confirm()",[411,1007,1008],{},"toast()",[517,1010,1012],{"href":1011},"\u002Fen\u002Fcomponents\u002Fbb-dialog#on-demand","on-demand dialogs"," render in one\n",[411,1015,1016],{},"\u003CBbHost \u002F>",", mounted once at the app root beside the router outlet. It takes\nno props and renders nothing on the server. In Nuxt it goes in ",[411,1019,1020],{},"app.vue",", in\nInertia in the render root (see ",[517,1023,960],{"href":959},[432,1025,1029],{"className":1026,"code":1027,"filename":1028,"language":742,"meta":437,"style":437},"language-vue shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003Ctemplate>\n    \u003CRouterView \u002F>\n    \u003CBbHost \u002F>\n\u003C\u002Ftemplate>\n\n\u003Cscript setup lang=\"ts\">\nimport { BbHost } from 'bitboss-ui';\n\u003C\u002Fscript>\n","App.vue",[411,1030,1031,1042,1053,1062,1071,1075,1096,1109],{"__ignoreMap":437},[401,1032,1033,1036,1040],{"class":442,"line":141},[401,1034,1035],{"class":596},"\u003C",[401,1037,1039],{"class":1038},"sne4z","template",[401,1041,600],{"class":596},[401,1043,1044,1047,1050],{"class":442,"line":145},[401,1045,1046],{"class":596},"    \u003C",[401,1048,1049],{"class":1038},"RouterView",[401,1051,1052],{"class":596}," \u002F>\n",[401,1054,1055,1057,1060],{"class":442,"line":149},[401,1056,1046],{"class":596},[401,1058,1059],{"class":1038},"BbHost",[401,1061,1052],{"class":596},[401,1063,1064,1067,1069],{"class":442,"line":177},[401,1065,1066],{"class":596},"\u003C\u002F",[401,1068,1039],{"class":1038},[401,1070,600],{"class":596},[401,1072,1073],{"class":442,"line":181},[401,1074,723],{"emptyLinePlaceholder":722},[401,1076,1077,1079,1082,1085,1088,1091,1094],{"class":442,"line":185},[401,1078,1035],{"class":596},[401,1080,1081],{"class":1038},"script",[401,1083,1084],{"class":462}," setup",[401,1086,1087],{"class":462}," lang",[401,1089,1090],{"class":596},"=",[401,1092,1093],{"class":449},"\"ts\"",[401,1095,600],{"class":596},[401,1097,1098,1100,1103,1105,1107],{"class":442,"line":225},[401,1099,678],{"class":589},[401,1101,1102],{"class":596}," { BbHost } ",[401,1104,684],{"class":589},[401,1106,895],{"class":449},[401,1108,661],{"class":596},[401,1110,1111,1113,1115],{"class":442,"line":229},[401,1112,1066],{"class":596},[401,1114,1081],{"class":1038},[401,1116,600],{"class":596},[384,1118,1119,1120,1122,1123,1126],{},"With no host, a ",[411,1121,1005],{}," resolves ",[411,1124,1125],{},"false"," after a second and toasts wait in a\nqueue. A second host renders nothing. A dev build warns about both.",[384,1128,1129,1132,1133,1136,1137,1140,1141,1144,1145,1148,1149,1152,1153,1155,1156,1158],{},[388,1130,1131],{},"Reset."," The components expect a reset underneath them: sizes are written for\n",[411,1134,1135],{},"border-box",", and native controls must arrive without browser chrome. Tailwind's\nPreflight is one. If you run none, add the library's with ",[411,1138,1139],{},"resetCss: true",". It\nalso sets a ",[411,1142,1143],{},"system-ui"," font stack on ",[411,1146,1147],{},"body"," at zero specificity, so any\n",[411,1150,1151],{},"font-family"," of yours wins. The library has no font token and inherits your\nfont, so set ",[411,1154,1151],{}," on ",[411,1157,1147],{}," either way.",[384,1160,1161],{},"Who wins a tie between your CSS and the library depends on how your CSS loads:",[1163,1164,1165,1176,1184,1197],"ul",{},[1166,1167,1168,1171,1172,1175],"li",{},[388,1169,1170],{},"Plain CSS",": leave ",[411,1173,1174],{},"cssLayers"," unset. Source order decides: the library loads first, so your CSS wins.",[1166,1177,1178,1171,1181,1183],{},[388,1179,1180],{},"Tailwind v3",[411,1182,1174],{}," unset and turn injection off (below). The source order you set decides.",[1166,1185,1186,1189,1190,1192,1193,1196],{},[388,1187,1188],{},"Tailwind v4",": set ",[411,1191,1174],{}," to ",[411,1194,1195],{},"TAILWIND_V4_LAYERS",". Your utilities win, always.",[1166,1198,1199,1189,1202,1204,1205,1208],{},[388,1200,1201],{},"Other layered CSS",[411,1203,1174],{}," to your full layer order, with ",[411,1206,1207],{},"'bitboss-ui'"," in it. Your layer order decides.",[384,1210,1211,1212,1215,1216,1218,1219,1222],{},"With other layers, put ",[411,1213,1214],{},"'bitboss-ui-reset'"," directly before ",[411,1217,1207],{}," when\n",[411,1220,1221],{},"resetCss"," is on.",[1224,1225,1188],"h3",{"id":1226},"tailwind-v4",[384,1228,1229,1230,1233,1234,1237,1238,1240,1241,1243],{},"Tailwind v4 puts its utilities in a cascade layer, and layered CSS loses to the\nlibrary's unlayered CSS on every property the library sets. ",[411,1231,1232],{},"px-6"," or\n",[411,1235,1236],{},"rounded-lg"," on a ",[411,1239,205],{}," then does nothing. Set ",[411,1242,1174],{}," to slot the\nlibrary in below the utilities:",[432,1245,1247],{"className":619,"code":1246,"filename":671,"language":622,"meta":437,"style":437},"import { bitbossUi, TAILWIND_V4_LAYERS } from 'bitboss-ui\u002Fvite';\n\nbitbossUi({ cssLayers: TAILWIND_V4_LAYERS });\n",[411,1248,1249,1262,1266],{"__ignoreMap":437},[401,1250,1251,1253,1256,1258,1260],{"class":442,"line":141},[401,1252,678],{"class":589},[401,1254,1255],{"class":596}," { bitbossUi, TAILWIND_V4_LAYERS } ",[401,1257,684],{"class":589},[401,1259,715],{"class":449},[401,1261,661],{"class":596},[401,1263,1264],{"class":442,"line":145},[401,1265,723],{"emptyLinePlaceholder":722},[401,1267,1268,1270,1273,1275],{"class":442,"line":149},[401,1269,748],{"class":635},[401,1271,1272],{"class":596},"({ cssLayers: ",[401,1274,1195],{"class":462},[401,1276,1277],{"class":596}," });\n",[384,1279,1280,1281,1283,1284,1286,1287,1289,1290,1293],{},"In Nuxt the same line goes in the ",[411,1282,765],{}," block, with the constant imported\nfrom ",[411,1285,429],{}," at the top of ",[411,1288,621],{},". You add no ",[411,1291,1292],{},"@layer"," line to\nyour own CSS.",[384,1295,1296,1297,1300,1301,1304],{},"One rule stays yours to keep: your own element resets, such as\n",[411,1298,1299],{},"a { color: inherit }",", beat the library too when they sit outside a layer.\nWrite them inside ",[411,1302,1303],{},"@layer base",", where the library outranks them.",[1224,1306,1180],{"id":1307},"tailwind-v3",[384,1309,1310],{},"Preflight is ordinary unlayered CSS that loads after the injected library\nsheet, so its element resets win ties against the components. Turn injection\noff and import the sheet after your Tailwind entry:",[432,1312,1314],{"className":619,"code":1313,"filename":671,"language":622,"meta":437,"style":437},"bitbossUi({ injectStyles: false });\n",[411,1315,1316],{"__ignoreMap":437},[401,1317,1318,1320,1323,1325],{"class":442,"line":141},[401,1319,748],{"class":635},[401,1321,1322],{"class":596},"({ injectStyles: ",[401,1324,1125],{"class":462},[401,1326,1277],{"class":596},[432,1328,1330],{"className":619,"code":1329,"filename":867,"language":622,"meta":437,"style":437},"import '.\u002Fapp.css';\nimport 'bitboss-ui\u002Fstyles.css';\n",[411,1331,1332,1341],{"__ignoreMap":437},[401,1333,1334,1336,1339],{"class":442,"line":141},[401,1335,678],{"class":589},[401,1337,1338],{"class":449}," '.\u002Fapp.css'",[401,1340,661],{"class":596},[401,1342,1343,1345,1348],{"class":442,"line":145},[401,1344,678],{"class":589},[401,1346,1347],{"class":449}," 'bitboss-ui\u002Fstyles.css'",[401,1349,661],{"class":596},[384,1351,1352,1353,1355,1356,1359,1360,1362],{},"The library now also wins ties against your utilities. To have utilities win on\nv3, wrap Tailwind's output in layers and list the same layers in ",[411,1354,1174],{},".\nBoth halves must agree. Injection goes back on, so drop ",[411,1357,1358],{},"injectStyles: false","\nand the ",[411,1361,848],{}," import: the runtime plugin layers the sheet\nitself.",[432,1364,1369],{"className":1365,"code":1366,"filename":1367,"language":1368,"meta":437,"style":437},"language-css shiki shiki-themes github-light-high-contrast github-dark-high-contrast","@layer tailwind-base, bitboss-ui-reset, bitboss-ui, tailwind-utilities;\n\n@layer tailwind-base {\n    @tailwind base;\n}\n\n@layer tailwind-utilities {\n    @tailwind components;\n    @tailwind utilities;\n}\n","app.css","css",[411,1370,1371,1378,1382,1389,1397,1402,1406,1413,1420,1427],{"__ignoreMap":437},[401,1372,1373,1375],{"class":442,"line":141},[401,1374,1292],{"class":589},[401,1376,1377],{"class":596}," tailwind-base, bitboss-ui-reset, bitboss-ui, tailwind-utilities;\n",[401,1379,1380],{"class":442,"line":145},[401,1381,723],{"emptyLinePlaceholder":722},[401,1383,1384,1386],{"class":442,"line":149},[401,1385,1292],{"class":589},[401,1387,1388],{"class":596}," tailwind-base {\n",[401,1390,1391,1394],{"class":442,"line":177},[401,1392,1393],{"class":589},"    @tailwind",[401,1395,1396],{"class":596}," base;\n",[401,1398,1399],{"class":442,"line":181},[401,1400,1401],{"class":596},"}\n",[401,1403,1404],{"class":442,"line":185},[401,1405,723],{"emptyLinePlaceholder":722},[401,1407,1408,1410],{"class":442,"line":225},[401,1409,1292],{"class":589},[401,1411,1412],{"class":596}," tailwind-utilities {\n",[401,1414,1415,1417],{"class":442,"line":229},[401,1416,1393],{"class":589},[401,1418,1419],{"class":596}," components;\n",[401,1421,1422,1424],{"class":442,"line":233},[401,1423,1393],{"class":589},[401,1425,1426],{"class":596}," utilities;\n",[401,1428,1429],{"class":442,"line":237},[401,1430,1401],{"class":596},[432,1432,1434],{"className":619,"code":1433,"filename":671,"language":622,"meta":437,"style":437},"import { bitbossUi, TAILWIND_V3_LAYERS } from 'bitboss-ui\u002Fvite';\n\n\u002F\u002F ['tailwind-base', 'bitboss-ui-reset', 'bitboss-ui', 'tailwind-utilities']\nbitbossUi({ cssLayers: TAILWIND_V3_LAYERS });\n",[411,1435,1436,1449,1453,1458],{"__ignoreMap":437},[401,1437,1438,1440,1443,1445,1447],{"class":442,"line":141},[401,1439,678],{"class":589},[401,1441,1442],{"class":596}," { bitbossUi, TAILWIND_V3_LAYERS } ",[401,1444,684],{"class":589},[401,1446,715],{"class":449},[401,1448,661],{"class":596},[401,1450,1451],{"class":442,"line":145},[401,1452,723],{"emptyLinePlaceholder":722},[401,1454,1455],{"class":442,"line":149},[401,1456,1457],{"class":486},"\u002F\u002F ['tailwind-base', 'bitboss-ui-reset', 'bitboss-ui', 'tailwind-utilities']\n",[401,1459,1460,1462,1464,1467],{"class":442,"line":177},[401,1461,748],{"class":635},[401,1463,1272],{"class":596},[401,1465,1466],{"class":462},"TAILWIND_V3_LAYERS",[401,1468,1277],{"class":596},[384,1470,1471,1472,1474,1475,857],{},"Use the constant rather than retyping the order: a list that drifts from the\n",[411,1473,1292],{}," line loses every tie in silence. In Nuxt, import it from\n",[411,1476,429],{},[384,1478,1479,1480,1483,1484,1487],{},"On v3, also set ",[411,1481,1482],{},"passthroughDeduper: false",", or point it at a module using\n",[411,1485,1486],{},"tailwind-merge@2",": the bundled merger speaks Tailwind v4 class names.",[1224,1489,1491],{"id":1490},"server-rendering","Server rendering",[384,1493,1494],{},"Injection runs in the browser, so a server-rendered page needs the stylesheet\nfrom somewhere else, or it shows unstyled components until the JavaScript loads.",[384,1496,1497,1500,1501,1503],{},[388,1498,1499],{},"Nuxt: nothing to do."," The module adds the stylesheet to the server render\nitself, ahead of your own CSS and layered when ",[411,1502,1174],{}," is set, and turns the\nbrowser injection off.",[384,1505,1506,1509],{},[388,1507,1508],{},"Vite SSR and Inertia SSR"," with Tailwind v4: import the stylesheet into its\nlayer from your CSS entry, and turn injection off.",[432,1511,1514],{"className":1365,"code":1512,"filename":1513,"language":1368,"meta":437,"style":437},"@layer theme, base,\n    bitboss-ui-reset, bitboss-ui,\n    components, utilities;\n@import 'tailwindcss';\n@import 'bitboss-ui\u002Fstyles.css' layer(bitboss-ui);\n","resources\u002Fcss\u002Fapp.css",[411,1515,1516,1523,1528,1533,1538],{"__ignoreMap":437},[401,1517,1518,1520],{"class":442,"line":141},[401,1519,1292],{"class":589},[401,1521,1522],{"class":596}," theme, base,\n",[401,1524,1525],{"class":442,"line":145},[401,1526,1527],{"class":596},"    bitboss-ui-reset, bitboss-ui,\n",[401,1529,1530],{"class":442,"line":149},[401,1531,1532],{"class":596},"    components, utilities;\n",[401,1534,1535],{"class":442,"line":177},[401,1536,1537],{"class":596},"@import 'tailwindcss';\n",[401,1539,1540],{"class":442,"line":181},[401,1541,1542],{"class":596},"@import 'bitboss-ui\u002Fstyles.css' layer(bitboss-ui);\n",[432,1544,1546],{"className":619,"code":1545,"filename":671,"language":622,"meta":437,"style":437},"bitbossUi({ cssLayers: TAILWIND_V4_LAYERS, injectStyles: false });\n",[411,1547,1548],{"__ignoreMap":437},[401,1549,1550,1552,1554,1556,1559,1561],{"class":442,"line":141},[401,1551,748],{"class":635},[401,1553,1272],{"class":596},[401,1555,1195],{"class":462},[401,1557,1558],{"class":596},", injectStyles: ",[401,1560,1125],{"class":462},[401,1562,1277],{"class":596},[384,1564,1565,1566,1568],{},"The ",[411,1567,1292],{}," line comes first: it fixes the order before Tailwind declares its\nown layers, and with injection off nothing else declares the library's.",[384,1570,1571,1574,1575,1577,1578,1581,1582,857],{},[388,1572,1573],{},"Nuxt without layers"," (plain CSS, Tailwind v3): list the stylesheet in ",[411,1576,1368],{},",\nafter your Tailwind entry, and turn injection off:\n",[411,1579,1580],{},"css: ['~\u002Fassets\u002Fcss\u002Fmain.css', 'bitboss-ui\u002Fstyles.css']"," with\n",[411,1583,1584],{},"bitboss: { injectStyles: false }",[397,1586,1588],{"id":1587},"icons",[401,1589,179],{},[384,1591,1592,1593,1596,1597,1600,1601,1604],{},"Icon names are provider-first: ",[411,1594,1595],{},"lucide:plus"," resolves from the installed\n",[411,1598,1599],{},"@iconify-json\u002F*"," package, and ",[411,1602,1603],{},"local:logo"," resolves from your own SVG directory.",[384,1606,1607,1610,1611,970,1614,1617,1618,1620,1621,1624,1625,1627,1628,1631,1632,1635,1636,1639],{},[411,1608,1609],{},"iconDir"," defaults to ",[411,1612,1613],{},".\u002Fassets\u002Ficons",[388,1615,1616],{},"resolved from the Vite root",". In a\nVite app that is the project root, so icons under ",[411,1619,820],{}," need\n",[411,1622,1623],{},"iconDir: '.\u002Fsrc\u002Fassets\u002Ficons'",". In Nuxt 4 the root is ",[411,1626,824],{},", so the default\nalready means ",[411,1629,1630],{},"app\u002Fassets\u002Ficons",". Writing ",[411,1633,1634],{},".\u002Fapp\u002Fassets\u002Ficons"," points one level\ntoo deep, and every ",[411,1637,1638],{},"local:*"," icon then renders as a question mark, in\nproduction too.",[384,1641,1642,1643,1646,1647,1650,1651,1653],{},"Drop an SVG in that directory and it is available as ",[411,1644,1645],{},"local:\u003Cfilename>",".\nProvider names built at runtime, which the build cannot see as literals, go in\n",[411,1648,1649],{},"iconWhitelist",". ",[517,1652,179],{"href":116}," has the rest.",[397,1655,1656],{"id":774},[401,1657,1658],{},"Options most apps set",[384,1660,1661,1662,1664,1665,1667],{},"The same options go in ",[411,1663,769],{}," and in Nuxt's ",[411,1666,765],{}," key. The ones\nmost apps touch, by what they control:",[384,1669,1670],{},"Language and icons:",[1163,1672,1673,1686,1697,1708],{},[1166,1674,1675,1677,1678,1681,1682,857],{},[411,1676,778],{},": the language of the library's own strings, and the formats around them. Default ",[411,1679,1680],{},"'en'",". It is the one option you can change at runtime. See ",[517,1683,1685],{"href":1684},"#locales","Locales",[1166,1687,1688,1691,1692,1694,1695,857],{},[411,1689,1690],{},"enabledLocales",": which of the 38 built-in locales enter the bundle. Default: your ",[411,1693,778],{}," plus ",[411,1696,1680],{},[1166,1698,1699,1701,1702,1704,1705,857],{},[411,1700,1609],{},": the folder of SVG files for ",[411,1703,1638],{}," icons, from the Vite root. Default ",[411,1706,1707],{},"'.\u002Fassets\u002Ficons'",[1166,1709,1710,1712,1713,1716,1717,857],{},[411,1711,1649],{},": provider icons that always ship, for names built at runtime, such as ",[411,1714,1715],{},"'lucide:flag'"," or ",[411,1718,1719],{},"'tabler:calendar-*'",[384,1721,1722],{},"Styles:",[1163,1724,1725,1733,1746],{},[1166,1726,1727,1729,1730,1732],{},[411,1728,1174],{},": places the library in your cascade layer order, ",[411,1731,1195],{}," for Tailwind v4. Unset by default.",[1166,1734,1735,1738,1739,1742,1743,1745],{},[411,1736,1737],{},"injectStyles",": injects the stylesheet in the browser. Default ",[411,1740,1741],{},"true","; set it ",[411,1744,1125],{}," when you import the stylesheet yourself.",[1166,1747,1748,1750,1751,1753,1754,857],{},[411,1749,1221],{},": adds the library reset, ",[411,1752,1143],{}," body font included. Default ",[411,1755,1125],{},[384,1757,1758],{},"Forms and selects:",[1163,1760,1761,1789,1826,1842],{},[1166,1762,1763,1765,1766,1716,1768,1770,1771,1773,1774,1777,1778,1781,1782,1785,1786,857],{},[411,1764,791],{},": what an emptied ",[411,1767,235],{},[411,1769,231],{}," emits, and when fields in a ",[411,1772,220],{}," validate. Default ",[411,1775,1776],{},"textInputNullValue: 'null'"," (",[411,1779,1780],{},"'string'"," emits ",[411,1783,1784],{},"''","), ",[411,1787,1788],{},"validationMode: 'balanced'",[1166,1790,1791,1794,1795,1798,1799,1802,1803,1805,1806,1809,1810,1812,1813,1816,1817,1819,1820,1822,1823,1825],{},[411,1792,1793],{},"requiredAsterisk",": a red ",[411,1796,1797],{},"*"," beside the label of required fields. Outside a form that is a field with ",[411,1800,1801],{},"required","; in a ",[411,1804,220],{}," it is a field whose ",[411,1807,1808],{},"rules"," include ",[411,1811,1801],{}," or whose ",[411,1814,1815],{},"schema"," key is required, or that carries the ",[411,1818,1801],{}," hint. Default ",[411,1821,1741],{},"; ",[411,1824,1125],{}," hides the marker everywhere.",[1166,1827,1828,1831,1832,1835,1836,1716,1839,857],{},[411,1829,1830],{},"defaultInputLabelMode",": where field labels sit, ",[411,1833,1834],{},"'outside'"," (the default), ",[411,1837,1838],{},"'floating'",[411,1840,1841],{},"'inside'",[1166,1843,1844,1847,1848,1822,1851,1854],{},[411,1845,1846],{},"autoDisableWritingThreshold",": a select with fewer options than this opens with no search field. Default ",[411,1849,1850],{},"6",[411,1852,1853],{},"0"," keeps the search field on every select.",[384,1856,1857],{},"Every instance of a component:",[1163,1859,1860,1868,1877],{},[1166,1861,1862,1865,1866,857],{},[411,1863,1864],{},"pt",": the classes and attributes each instance starts from, keyed by component and part. See ",[517,1867,160],{"href":128},[1166,1869,1870,1873,1874,857],{},[411,1871,1872],{},"toastPosition",": the corner toasts stack in, unless a toast names its own. Default ",[411,1875,1876],{},"'bottom-right'",[1166,1878,1879,1882,1883,1886,1887,1192,1890,1893,1894,1897,1898,857],{},[411,1880,1881],{},"confirm",": ",[411,1884,1885],{},"{ defaultSize }",", the maximum width of every confirm, from ",[411,1888,1889],{},"'xs'",[411,1891,1892],{},"'2xl'",", unless a call passes its own ",[411,1895,1896],{},"size",". Unset leaves ",[411,1899,1900],{},"'sm'",[384,1902,1903],{},"Phones and the server render:",[1163,1905,1906,1918,1926],{},[1166,1907,1908,1911,1912,1915,1916,857],{},[411,1909,1910],{},"adaptive",": dialogs, popovers, dropdowns and selects open as bottom sheets below ",[411,1913,1914],{},"mobileMaxWidth",". Default ",[411,1917,1741],{},[1166,1919,1920,1922,1923,857],{},[411,1921,1914],{},": the width in pixels below which the mobile layouts apply. Default ",[411,1924,1925],{},"768",[1166,1927,1928,1931,1932,857],{},[411,1929,1930],{},"ssrViewportWidth",": the screen width the server renders for, since it cannot measure one. Default ",[411,1933,1934],{},"1024",[384,1936,1937],{},"The dev server:",[1163,1939,1940,1948],{},[1166,1941,1942,1945,1946,857],{},[411,1943,1944],{},"mcp",": registers the MCP server in the project's agent configs when dev starts. Default ",[411,1947,1125],{},[1166,1949,1950,1953,1954,1957,1958,857],{},[411,1951,1952],{},"vscodeSettings",": writes editor hints to ",[411,1955,1956],{},".vscode\u002Fsettings.json"," when dev starts. Default ",[411,1959,1741],{},[384,1961,1962,1963,1966,1967,1970,1971,970,1973,970,1976,1979,1980,970,1983,970,1986,1989,1990,857],{},"The options are typed, so your editor lists the rest. They are the variant\nregistries (see ",[517,1964,157],{"href":1965},"\u002Fen\u002Fguides\u002Fdesign-language#custom-variant","),\n",[411,1968,1969],{},"injectDirectives",", the size scales, ",[411,1972,828],{},[411,1974,1975],{},"iconsScanner",[411,1977,1978],{},"passthroughDeduper","\nand the link settings (",[411,1981,1982],{},"inertiaLinkName",[411,1984,1985],{},"nuxtLinkName",[411,1987,1988],{},"linkActiveClass",").\nThe complete reference ships in the package, at\n",[411,1991,1992],{},"node_modules\u002Fbitboss-ui\u002Fdist\u002Fai\u002Fguides\u002Finstallation-and-plugin-setup.md",[384,1994,1995,426,1997,1999,2000,857],{},[411,1996,791],{},[411,1998,1881],{}," can also be set per app, merged key by key, with\n",[411,2001,2002],{},"app.use(bitbossUiPlugin, { formControls: { textInputNullValue: 'string' } })",[397,2004,2006],{"id":2005},"locales",[401,2007,1685],{},[384,2009,2010,2012,2013,2017],{},[411,2011,778],{}," sets more than the words. It sets the formats around them: the long\ndate, the first day of the week, the order of a date field's parts, the AM \u002F PM\nwords, and how a ",[517,2014,2016],{"href":2015},"\u002Fen\u002Fcomponents\u002Fbb-number-input#locale","number field"," groups\nwhat the user types.",[384,2019,2020,2021,2024,2025,970,2028,2031,2032,970,2035,2031,2037,426,2040,2031,2043,857],{},"The list is fixed and typed. A bare language is its default region: ",[411,2022,2023],{},"en"," is\n",[411,2026,2027],{},"en-US",[411,2029,2030],{},"it"," is ",[411,2033,2034],{},"it-IT",[411,2036,1864],{},[411,2038,2039],{},"pt-BR",[411,2041,2042],{},"zh",[411,2044,2045],{},"zh-CN",[2047,2048,2049,2068],"table",{},[2050,2051,2052],"thead",{},[2053,2054,2055,2059,2062,2065],"tr",{},[2056,2057,2058],"th",{},"Language",[2056,2060,2061],{},"Default",[2056,2063,2064],{},"Regions, same words",[2056,2066,2067],{},"Own dictionary",[2069,2070,2071,2098,2118,2141,2157,2174,2191,2210,2228,2250],"tbody",{},[2053,2072,2073,2077,2082,2096],{},[2074,2075,2076],"td",{},"English",[2074,2078,2079,2081],{},[411,2080,2023],{}," (US)",[2074,2083,2084,970,2087,970,2090,970,2093],{},[411,2085,2086],{},"en-GB",[411,2088,2089],{},"en-AU",[411,2091,2092],{},"en-CA",[411,2094,2095],{},"en-IE",[2074,2097],{},[2053,2099,2100,2103,2108,2113],{},[2074,2101,2102],{},"German",[2074,2104,2105],{},[411,2106,2107],{},"de",[2074,2109,2110],{},[411,2111,2112],{},"de-AT",[2074,2114,2115],{},[411,2116,2117],{},"de-CH",[2053,2119,2120,2123,2128,2139],{},[2074,2121,2122],{},"French",[2074,2124,2125],{},[411,2126,2127],{},"fr",[2074,2129,2130,970,2133,970,2136],{},[411,2131,2132],{},"fr-BE",[411,2134,2135],{},"fr-CA",[411,2137,2138],{},"fr-CH",[2074,2140],{},[2053,2142,2143,2146,2150,2155],{},[2074,2144,2145],{},"Italian",[2074,2147,2148],{},[411,2149,2030],{},[2074,2151,2152],{},[411,2153,2154],{},"it-CH",[2074,2156],{},[2053,2158,2159,2162,2167,2172],{},[2074,2160,2161],{},"Dutch",[2074,2163,2164],{},[411,2165,2166],{},"nl",[2074,2168,2169],{},[411,2170,2171],{},"nl-BE",[2074,2173],{},[2053,2175,2176,2179,2184,2189],{},[2074,2177,2178],{},"Swedish",[2074,2180,2181],{},[411,2182,2183],{},"sv",[2074,2185,2186],{},[411,2187,2188],{},"sv-FI",[2074,2190],{},[2053,2192,2193,2196,2202,2204],{},[2074,2194,2195],{},"Spanish",[2074,2197,2198,2201],{},[411,2199,2200],{},"es"," (Spain)",[2074,2203],{},[2074,2205,2206,2209],{},[411,2207,2208],{},"es-MX"," (Mexico)",[2053,2211,2212,2215,2220,2222],{},[2074,2213,2214],{},"Portuguese",[2074,2216,2217,2219],{},[411,2218,2039],{}," (Brazil)",[2074,2221],{},[2074,2223,2224,2227],{},[411,2225,2226],{},"pt-PT"," (Portugal)",[2053,2229,2230,2233,2238,2240],{},[2074,2231,2232],{},"Chinese",[2074,2234,2235,2237],{},[411,2236,2045],{}," (Simplified)",[2074,2239],{},[2074,2241,2242,2245,2246,2249],{},[411,2243,2244],{},"zh-TW"," (Taiwan), ",[411,2247,2248],{},"zh-HK"," (Hong Kong): Traditional",[2053,2251,2252,2255,2295,2297],{},[2074,2253,2254],{},"One region each",[2074,2256,2257,1002,2260,1002,2263,1002,2266,1002,2269,1002,2272,1002,2275,1002,2278,1002,2281,1002,2284,1002,2287,1002,2290,1002,2292],{},[411,2258,2259],{},"cs",[411,2261,2262],{},"da",[411,2264,2265],{},"el",[411,2267,2268],{},"fi",[411,2270,2271],{},"hu",[411,2273,2274],{},"ja",[411,2276,2277],{},"ko",[411,2279,2280],{},"nb",[411,2282,2283],{},"pl",[411,2285,2286],{},"ro",[411,2288,2289],{},"ru",[411,2291,2053],{},[411,2293,2294],{},"uk",[2074,2296],{},[2074,2298],{},[384,2300,2301,2302,2304,2305,970,2308,2310,2311,653,2314,2316,2317,2319,2320,2323,2324,2326],{},"A region reads its language's words and keeps its own formats: ",[411,2303,2117],{}," groups\n",[411,2306,2307],{},"1’234.5",[411,2309,2086],{}," starts the week on Monday and orders dates ",[411,2312,2313],{},"DD\u002FMM\u002FYYYY",[411,2315,2092],{}," starts it on Sunday, and ",[411,2318,2135],{}," orders them ",[411,2321,2322],{},"AAAA-MM-JJ",". The English\nregions spell the British way (colour), and ",[411,2325,2117],{}," writes ss for ß. Where the\nwords themselves differ, the region has a dictionary of its own: Mexican\nSpanish, European Portuguese (its week starts on Sunday, as CLDR has it), and\nTraditional Chinese for Taiwan and Hong Kong.",[432,2328,2330],{"className":619,"code":2329,"filename":671,"language":622,"meta":437,"style":437},"bitbossUi({\n    locale: 'en-GB',\n    enabledLocales: ['fr-CA', 'de-CH'],\n});\n",[411,2331,2332,2338,2348,2364],{"__ignoreMap":437},[401,2333,2334,2336],{"class":442,"line":141},[401,2335,748],{"class":635},[401,2337,639],{"class":596},[401,2339,2340,2343,2346],{"class":442,"line":145},[401,2341,2342],{"class":596},"    locale: ",[401,2344,2345],{"class":449},"'en-GB'",[401,2347,653],{"class":596},[401,2349,2350,2353,2356,2358,2361],{"class":442,"line":149},[401,2351,2352],{"class":596},"    enabledLocales: [",[401,2354,2355],{"class":449},"'fr-CA'",[401,2357,970],{"class":596},[401,2359,2360],{"class":449},"'de-CH'",[401,2362,2363],{"class":596},"],\n",[401,2365,2366],{"class":442,"line":177},[401,2367,2368],{"class":596},"});\n",[1163,2370,2371,2389,2404,2421],{},[1166,2372,2373,2380,2381,2384,2385,2031,2387,961],{},[388,2374,2375,426,2377,2379],{},[411,2376,2039],{},[411,2378,2045],{}," are the canonical spellings."," Codes are\ncase-insensitive, so ",[411,2382,2383],{},"zh-cn"," still works, and a default region's full code is\nthe same locale (",[411,2386,2034],{},[411,2388,2030],{},[1166,2390,2391,2394,2395,2397,2398,2401,2402,857],{},[388,2392,2393],{},"A code that is not on the list is a type error."," In a component,\n",[411,2396,852],{}," also flags it and names the nearest one: for\n",[411,2399,2400],{},"setConfig({ locale: 'en-UK' })"," it asks whether you meant ",[411,2403,2086],{},[1166,2405,2406,2409,2410,2412,2413,2416,2417,2420],{},[388,2407,2408],{},"Selecting a locale you did not enable is a compile error",", not a runtime\nfallback. ",[411,2411,1690],{}," decides what ships; at runtime\n",[411,2414,2415],{},"useBbConfig().setConfig({ locale })"," switches among those only. There is\ndeliberately no ",[411,2418,2419],{},"'all'",": each dictionary is a bundle cost you should see in\nthe config.",[1166,2422,2423,2426],{},[388,2424,2425],{},"There is no way to add your own."," A language or region that is missing is\na request for the library, not a dictionary in your app.",[397,2428,2430],{"id":2429},"imports",[401,2431,2432],{},"Imports and the type gate",[384,2434,2435],{},"Import components explicitly:",[432,2437,2439],{"className":1026,"code":2438,"language":742,"meta":437,"style":437},"\u003Cscript setup lang=\"ts\">\nimport { BbButton, BbSelect } from 'bitboss-ui';\n\u003C\u002Fscript>\n",[411,2440,2441,2457,2470],{"__ignoreMap":437},[401,2442,2443,2445,2447,2449,2451,2453,2455],{"class":442,"line":141},[401,2444,1035],{"class":596},[401,2446,1081],{"class":1038},[401,2448,1084],{"class":462},[401,2450,1087],{"class":462},[401,2452,1090],{"class":596},[401,2454,1093],{"class":449},[401,2456,600],{"class":596},[401,2458,2459,2461,2464,2466,2468],{"class":442,"line":145},[401,2460,678],{"class":589},[401,2462,2463],{"class":596}," { BbButton, BbSelect } ",[401,2465,684],{"class":589},[401,2467,895],{"class":449},[401,2469,661],{"class":596},[401,2471,2472,2474,2476],{"class":442,"line":149},[401,2473,1066],{"class":596},[401,2475,1081],{"class":1038},[401,2477,600],{"class":596},[384,2479,2480,2481,2484,2485,2487],{},"The Nuxt module can auto-import them instead, with ",[411,2482,2483],{},"autoImport: true"," in the\n",[411,2486,765],{}," block. Leave it off, which is the default. Explicit imports are what\nlet the next setting catch a mistyped or removed component at type-check time:",[432,2489,2494],{"className":2490,"code":2491,"filename":2492,"language":2493,"meta":437,"style":437},"language-json shiki shiki-themes github-light-high-contrast github-dark-high-contrast","{\n    \"vueCompilerOptions\": {\n        \"checkUnknownComponents\": true,\n        \"strictTemplates\": true\n    }\n}\n","tsconfig.json","json",[411,2495,2496,2501,2509,2520,2530,2535],{"__ignoreMap":437},[401,2497,2498],{"class":442,"line":141},[401,2499,2500],{"class":596},"{\n",[401,2502,2503,2506],{"class":442,"line":145},[401,2504,2505],{"class":1038},"    \"vueCompilerOptions\"",[401,2507,2508],{"class":596},": {\n",[401,2510,2511,2514,2516,2518],{"class":442,"line":149},[401,2512,2513],{"class":1038},"        \"checkUnknownComponents\"",[401,2515,1882],{"class":596},[401,2517,1741],{"class":462},[401,2519,653],{"class":596},[401,2521,2522,2525,2527],{"class":442,"line":177},[401,2523,2524],{"class":1038},"        \"strictTemplates\"",[401,2526,1882],{"class":596},[401,2528,2529],{"class":462},"true\n",[401,2531,2532],{"class":442,"line":181},[401,2533,2534],{"class":596},"    }\n",[401,2536,2537],{"class":442,"line":185},[401,2538,1401],{"class":596},[384,2540,2541,2544,2545,1002,2548,2551,2552,653,2554,970,2556,970,2558,970,2560,970,2563,970,2565,2567,2568,2570],{},[411,2542,2543],{},"strictTemplates"," does the same for a misspelled prop. Run both through\n",[411,2546,2547],{},"vue-tsc",[388,2549,2550],{},"3",". Under 2.x, the props of the generic components (",[411,2553,261],{},[411,2555,264],{},[411,2557,363],{},[411,2559,327],{},[411,2561,2562],{},"BbTabsRoot",[411,2564,330],{},[411,2566,220],{}," and\nthe checkbox, radio and switch groups) go unchecked while everything else still\nerrors, so the gate looks healthy. Keep TypeScript at 5.x or 6.x: ",[411,2569,2547],{},"\ncannot load TypeScript 7 yet.",[384,2572,2573,2574,2577,2578,2581],{},"With auto-imports on, every ",[411,2575,2576],{},"Bb*"," tag resolves, so this check and the\n",[411,2579,2580],{},"bitboss-ui\u002Fno-unimported-component"," ESLint rule both go quiet.",[397,2583,2585],{"id":2584},"first-component",[401,2586,2587],{},"Your first component",[384,2589,2590],{},"A select of team members, from the objects your API returns:",[2592,2593],"demo",{"name":2594},"Guides\u002FFirstSelect",[384,2596,2597,2600,2601,2604,2605,2608,2609,2612,2613,2616,2617,426,2619,2622],{},[411,2598,2599],{},"label"," is required: it is the accessible name. Pass your domain objects to\n",[411,2602,2603],{},"items"," as they are, then name the display field (",[411,2606,2607],{},"item-text",") and the stored\nvalue (",[411,2610,2611],{},"item-value","). You never map them to ",[411,2614,2615],{},"{ label, value }"," pairs first.\nObjects that already carry ",[411,2618,2599],{},[411,2620,2621],{},"value"," need neither prop.",[397,2624,2626],{"id":2625},"next",[401,2627,2628],{},"Where to go next",[384,2630,2631],{},"Choose the next page by task:",[1163,2633,2634,2640,2646,2651,2659,2670,2681],{},[1166,2635,2636,2637,2639],{},"Upgrading from 2.x: read ",[517,2638,143],{"href":122}," before\nchanging call sites. Several boolean defaults changed without a type error.",[1166,2641,2642,2643,857],{},"Building with Nuxt: continue with the ",[517,2644,2645],{"href":124},"Nuxt module",[1166,2647,2648,2649,857],{},"Building with Laravel: continue with ",[517,2650,190],{"href":118},[1166,2652,2653,2654,2656,2657,857],{},"Loading choices from an API: start with\n",[517,2655,166],{"href":126},", then\n",[517,2658,169],{"href":114},[1166,2660,2661,2662,2666,2667,2669],{},"Adding validation: wrap the fields in a ",[517,2663,2664],{"href":46},[411,2665,220],{},",\nas ",[517,2668,175],{"href":132}," shows.",[1166,2671,2672,2673,2677,2678,2680],{},"Theming: generate the first CSS block in the\n",[517,2674,2676],{"href":2675},"\u002Fen\u002Ftheme-builder","theme builder",", then use\n",[517,2679,154],{"href":112}," to review each value.",[1166,2682,2683,2684,2686],{},"Using a coding agent: run the setup in ",[517,2685,196],{"href":106},", then\nadd the markup check to CI.",[2688,2689,2690],"style",{},"html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}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 .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}html pre.shiki code .sne4z, html code.shiki .sne4z{--shiki-default:#024C1A;--shiki-dark:#72F088}",{"title":437,"searchDepth":149,"depth":149,"links":2692},[2693,2694,2695,2700,2701,2702,2703,2704,2705],{"id":399,"depth":145,"text":403},{"id":603,"depth":145,"text":606},{"id":836,"depth":145,"text":839,"children":2696},[2697,2698,2699],{"id":1226,"depth":149,"text":1188},{"id":1307,"depth":149,"text":1180},{"id":1490,"depth":149,"text":1491},{"id":1587,"depth":145,"text":179},{"id":774,"depth":145,"text":1658},{"id":2005,"depth":145,"text":1685},{"id":2429,"depth":145,"text":2432},{"id":2584,"depth":145,"text":2587},{"id":2625,"depth":145,"text":2628},"Install bitboss-ui 3, wire up the two plugins, choose how the styles load, and render your first component.","md",{},[2710,2711,2712,2713,2714,2715,2716,2717,2718],{"id":399,"title":403},{"id":603,"title":606},{"id":836,"title":839},{"id":1587,"title":179},{"id":774,"title":1658},{"id":2005,"title":1685},{"id":2429,"title":2432},{"id":2584,"title":2587},{"id":2625,"title":2628},{"title":139,"description":2706},"guides\u002Finstallation","sYy7Al8l3WKax27O5DczOzdeV-40L49Kwr_fxzboi1k",1793055148822]