[{"data":1,"prerenderedAt":1815},["ShallowReactive",2],{"api-none":3,"docs-nav-en":4,"locale-alternates":247,"page-en-\u002Fcomponents\u002Fbb-checkbox-group":378,"pt-showcase-BbCheckboxGroup":1408,"bb-items:v-0-2-1-28-1-2":1796},null,[5,20,32,56,68,112,145,181,202,223,235,241],{"label":6,"entries":7},"Getting started",[8,12,16],{"title":9,"path":10,"component":-1,"order":11},"Installation","\u002Fguides\u002Finstallation",1,{"title":13,"path":14,"component":-1,"order":15},"Migrating from v2","\u002Fguides\u002Fmigration",2,{"title":17,"path":18,"component":-1,"order":19},"Adoption checklist","\u002Fguides\u002Fadoption-checklist",3,{"label":21,"entries":22},"Design system",[23,26,29],{"title":24,"path":25,"component":-1,"order":11},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":27,"path":28,"component":-1,"order":15},"Design language","\u002Fguides\u002Fdesign-language",{"title":30,"path":31,"component":-1,"order":19},"Passthrough","\u002Fguides\u002Fpassthrough",{"label":33,"entries":34},"Playbooks",[35,38,41,44,48,52],{"title":36,"path":37,"component":-1,"order":11},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":39,"path":40,"component":-1,"order":15},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":42,"path":43,"component":-1,"order":19},"Coherence","\u002Fguides\u002Fcoherence",{"title":45,"path":46,"component":-1,"order":47},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":49,"path":50,"component":-1,"order":51},"Icons","\u002Fguides\u002Ficons",5,{"title":53,"path":54,"component":-1,"order":55},"Preset components","\u002Fguides\u002Fpreset-components",6,{"label":57,"entries":58},"Ecosystem",[59,62,65],{"title":60,"path":61,"component":-1,"order":11},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":63,"path":64,"component":-1,"order":15},"Nuxt","\u002Fguides\u002Fnuxt",{"title":66,"path":67,"component":-1,"order":19},"AI agents","\u002Fguides\u002Fai-agents",{"label":69,"entries":70},"Inputs",[71,74,77,80,83,86,89,92,96,100,104,108],{"title":72,"path":73,"component":72,"order":11},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":75,"path":76,"component":75,"order":15},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":78,"path":79,"component":78,"order":19},"BbCalendar","\u002Fcomponents\u002Fbb-calendar",{"title":81,"path":82,"component":81,"order":19},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":84,"path":85,"component":84,"order":47},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":87,"path":88,"component":87,"order":51},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":90,"path":91,"component":90,"order":55},"BbForm","\u002Fcomponents\u002Fbb-form",{"title":93,"path":94,"component":93,"order":95},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":97,"path":98,"component":97,"order":99},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":101,"path":102,"component":101,"order":103},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":105,"path":106,"component":105,"order":107},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":109,"path":110,"component":109,"order":111},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":113,"entries":114},"Selection",[115,118,121,124,127,130,133,136,139,142],{"title":116,"path":117,"component":116,"order":11},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":119,"path":120,"component":119,"order":15},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":122,"path":123,"component":122,"order":19},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":125,"path":126,"component":125,"order":47},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":128,"path":129,"component":128,"order":51},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":131,"path":132,"component":131,"order":55},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":134,"path":135,"component":134,"order":95},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":137,"path":138,"component":137,"order":99},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":140,"path":141,"component":140,"order":103},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":143,"path":144,"component":143,"order":107},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":146,"entries":147},"Overlay",[148,151,154,157,160,163,166,169,172,175,178],{"title":149,"path":150,"component":149,"order":11},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":152,"path":153,"component":152,"order":15},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":155,"path":156,"component":155,"order":19},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":158,"path":159,"component":158,"order":47},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":161,"path":162,"component":161,"order":51},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":164,"path":165,"component":164,"order":55},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":167,"path":168,"component":167,"order":95},"BbHoverCard","\u002Fcomponents\u002Fbb-hover-card",{"title":170,"path":171,"component":170,"order":95},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":173,"path":174,"component":173,"order":99},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":176,"path":177,"component":176,"order":103},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":179,"path":180,"component":179,"order":107},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":182,"entries":183},"Navigation",[184,187,190,193,196,199],{"title":185,"path":186,"component":185,"order":11},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":188,"path":189,"component":188,"order":15},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":191,"path":192,"component":191,"order":19},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":194,"path":195,"component":194,"order":47},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":197,"path":198,"component":197,"order":51},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":200,"path":201,"component":200,"order":55},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":203,"entries":204},"Feedback",[205,208,211,214,217,220],{"title":206,"path":207,"component":206,"order":11},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":209,"path":210,"component":209,"order":15},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":212,"path":213,"component":212,"order":19},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":215,"path":216,"component":215,"order":47},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":218,"path":219,"component":218,"order":51},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":221,"path":222,"component":221,"order":55},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":224,"entries":225},"Data Display",[226,229,232],{"title":227,"path":228,"component":227,"order":11},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":230,"path":231,"component":230,"order":15},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":233,"path":234,"component":233,"order":19},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":236,"entries":237},"Layout & Utility",[238],{"title":239,"path":240,"component":239,"order":11},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":242,"entries":243},"Other",[244],{"title":245,"path":246,"component":245,"order":11},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",{"\u002Fit\u002Fcomponenti\u002Fbb-accordion":248,"\u002Fen\u002Fcomponents\u002Fbb-accordion":249,"\u002Fit\u002Fcomponenti\u002Fbb-alert":250,"\u002Fen\u002Fcomponents\u002Fbb-alert":251,"\u002Fit\u002Fcomponenti\u002Fbb-asterisk":252,"\u002Fen\u002Fcomponents\u002Fbb-asterisk":253,"\u002Fit\u002Fcomponenti\u002Fbb-avatar":254,"\u002Fen\u002Fcomponents\u002Fbb-avatar":255,"\u002Fit\u002Fcomponenti\u002Fbb-badge":256,"\u002Fen\u002Fcomponents\u002Fbb-badge":257,"\u002Fit\u002Fcomponenti\u002Fbb-base-button":258,"\u002Fen\u002Fcomponents\u002Fbb-base-button":259,"\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs":260,"\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs":261,"\u002Fit\u002Fcomponenti\u002Fbb-button":262,"\u002Fen\u002Fcomponents\u002Fbb-button":263,"\u002Fit\u002Fcomponenti\u002Fbb-calendar":264,"\u002Fen\u002Fcomponents\u002Fbb-calendar":265,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox":266,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":267,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":268,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":269,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":270,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":271,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":272,"\u002Fen\u002Fcomponents\u002Fbb-color-input":273,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":274,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":275,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":276,"\u002Fen\u002Fcomponents\u002Fbb-confirm":277,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":278,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":279,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":280,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":281,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":282,"\u002Fen\u002Fcomponents\u002Fbb-dialog":283,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":284,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":285,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":286,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":287,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":288,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":289,"\u002Fit\u002Fcomponenti\u002Fbb-form":290,"\u002Fen\u002Fcomponents\u002Fbb-form":291,"\u002Fit\u002Fcomponenti\u002Fbb-hover-card":292,"\u002Fen\u002Fcomponents\u002Fbb-hover-card":293,"\u002Fit\u002Fcomponenti\u002Fbb-icon":294,"\u002Fen\u002Fcomponents\u002Fbb-icon":295,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":296,"\u002Fen\u002Fcomponents\u002Fbb-indicator":297,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":298,"\u002Fen\u002Fcomponents\u002Fbb-number-input":299,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":300,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":301,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":302,"\u002Fen\u002Fcomponents\u002Fbb-pagination":303,"\u002Fit\u002Fcomponenti\u002Fbb-popover":304,"\u002Fen\u002Fcomponents\u002Fbb-popover":305,"\u002Fit\u002Fcomponenti\u002Fbb-progress":306,"\u002Fen\u002Fcomponents\u002Fbb-progress":307,"\u002Fit\u002Fcomponenti\u002Fbb-radio":308,"\u002Fen\u002Fcomponents\u002Fbb-radio":309,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":310,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":311,"\u002Fit\u002Fcomponenti\u002Fbb-rating":312,"\u002Fen\u002Fcomponents\u002Fbb-rating":313,"\u002Fit\u002Fcomponenti\u002Fbb-select":314,"\u002Fen\u002Fcomponents\u002Fbb-select":315,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":316,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":317,"\u002Fit\u002Fcomponenti\u002Fbb-slider":318,"\u002Fen\u002Fcomponents\u002Fbb-slider":319,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":320,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":321,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":322,"\u002Fen\u002Fcomponents\u002Fbb-spinner":323,"\u002Fit\u002Fcomponenti\u002Fbb-switch":324,"\u002Fen\u002Fcomponents\u002Fbb-switch":325,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":326,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":327,"\u002Fit\u002Fcomponenti\u002Fbb-table":328,"\u002Fen\u002Fcomponents\u002Fbb-table":329,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":330,"\u002Fen\u002Fcomponents\u002Fbb-tabs":331,"\u002Fit\u002Fcomponenti\u002Fbb-tag":332,"\u002Fen\u002Fcomponents\u002Fbb-tag":333,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":334,"\u002Fen\u002Fcomponents\u002Fbb-text-input":335,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":336,"\u002Fen\u002Fcomponents\u002Fbb-textarea":337,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":338,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":339,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":340,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":341,"\u002Fit\u002Fcomponenti\u002Fbb-toast":342,"\u002Fen\u002Fcomponents\u002Fbb-toast":343,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":344,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":345,"\u002Fit\u002Fcomponenti\u002Fbb-tree":346,"\u002Fen\u002Fcomponents\u002Fbb-tree":347,"\u002Fit\u002Fguide\u002Fadoption-checklist":348,"\u002Fen\u002Fguides\u002Fadoption-checklist":349,"\u002Fit\u002Fguide\u002Fai-agents":350,"\u002Fen\u002Fguides\u002Fai-agents":351,"\u002Fit\u002Fguide\u002Fcoherence":352,"\u002Fen\u002Fguides\u002Fcoherence":353,"\u002Fit\u002Fguide\u002Fdesign-language":354,"\u002Fen\u002Fguides\u002Fdesign-language":355,"\u002Fit\u002Fguide\u002Fdesign-tokens":356,"\u002Fen\u002Fguides\u002Fdesign-tokens":357,"\u002Fit\u002Fguide\u002Ffetching-data":358,"\u002Fen\u002Fguides\u002Ffetching-data":359,"\u002Fit\u002Fguide\u002Ficons":360,"\u002Fen\u002Fguides\u002Ficons":361,"\u002Fit\u002Fguide\u002Finertia":362,"\u002Fen\u002Fguides\u002Finertia":363,"\u002Fit\u002Fguide\u002Finstallation":364,"\u002Fen\u002Fguides\u002Finstallation":365,"\u002Fit\u002Fguide\u002Fmigration":366,"\u002Fen\u002Fguides\u002Fmigration":367,"\u002Fit\u002Fguide\u002Fnuxt":368,"\u002Fen\u002Fguides\u002Fnuxt":369,"\u002Fit\u002Fguide\u002Foptions-and-items":370,"\u002Fen\u002Fguides\u002Foptions-and-items":371,"\u002Fit\u002Fguide\u002Fpassthrough":372,"\u002Fen\u002Fguides\u002Fpassthrough":373,"\u002Fit\u002Fguide\u002Fpreset-components":374,"\u002Fen\u002Fguides\u002Fpreset-components":375,"\u002Fit\u002Fguide\u002Fvalidated-forms":376,"\u002Fen\u002Fguides\u002Fvalidated-forms":377},"\u002Fen\u002Fcomponents\u002Fbb-accordion","\u002Fit\u002Fcomponenti\u002Fbb-accordion","\u002Fen\u002Fcomponents\u002Fbb-alert","\u002Fit\u002Fcomponenti\u002Fbb-alert","\u002Fen\u002Fcomponents\u002Fbb-asterisk","\u002Fit\u002Fcomponenti\u002Fbb-asterisk","\u002Fen\u002Fcomponents\u002Fbb-avatar","\u002Fit\u002Fcomponenti\u002Fbb-avatar","\u002Fen\u002Fcomponents\u002Fbb-badge","\u002Fit\u002Fcomponenti\u002Fbb-badge","\u002Fen\u002Fcomponents\u002Fbb-base-button","\u002Fit\u002Fcomponenti\u002Fbb-base-button","\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs","\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs","\u002Fen\u002Fcomponents\u002Fbb-button","\u002Fit\u002Fcomponenti\u002Fbb-button","\u002Fen\u002Fcomponents\u002Fbb-calendar","\u002Fit\u002Fcomponenti\u002Fbb-calendar","\u002Fen\u002Fcomponents\u002Fbb-checkbox","\u002Fit\u002Fcomponenti\u002Fbb-checkbox","\u002Fen\u002Fcomponents\u002Fbb-checkbox-group","\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group","\u002Fen\u002Fcomponents\u002Fbb-collapsible","\u002Fit\u002Fcomponenti\u002Fbb-collapsible","\u002Fen\u002Fcomponents\u002Fbb-color-input","\u002Fit\u002Fcomponenti\u002Fbb-color-input","\u002Fen\u002Fcomponents\u002Fbb-color-palette","\u002Fit\u002Fcomponenti\u002Fbb-color-palette","\u002Fen\u002Fcomponents\u002Fbb-confirm","\u002Fit\u002Fcomponenti\u002Fbb-confirm","\u002Fen\u002Fcomponents\u002Fbb-date-picker","\u002Fit\u002Fcomponenti\u002Fbb-date-picker","\u002Fen\u002Fcomponents\u002Fbb-date-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input","\u002Fen\u002Fcomponents\u002Fbb-dialog","\u002Fit\u002Fcomponenti\u002Fbb-dialog","\u002Fen\u002Fcomponents\u002Fbb-dropdown","\u002Fit\u002Fcomponenti\u002Fbb-dropdown","\u002Fen\u002Fcomponents\u002Fbb-dropdown-button","\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button","\u002Fen\u002Fcomponents\u002Fbb-dropzone","\u002Fit\u002Fcomponenti\u002Fbb-dropzone","\u002Fen\u002Fcomponents\u002Fbb-form","\u002Fit\u002Fcomponenti\u002Fbb-form","\u002Fen\u002Fcomponents\u002Fbb-hover-card","\u002Fit\u002Fcomponenti\u002Fbb-hover-card","\u002Fen\u002Fcomponents\u002Fbb-icon","\u002Fit\u002Fcomponenti\u002Fbb-icon","\u002Fen\u002Fcomponents\u002Fbb-indicator","\u002Fit\u002Fcomponenti\u002Fbb-indicator","\u002Fen\u002Fcomponents\u002Fbb-number-input","\u002Fit\u002Fcomponenti\u002Fbb-number-input","\u002Fen\u002Fcomponents\u002Fbb-off-canvas","\u002Fit\u002Fcomponenti\u002Fbb-off-canvas","\u002Fen\u002Fcomponents\u002Fbb-pagination","\u002Fit\u002Fcomponenti\u002Fbb-pagination","\u002Fen\u002Fcomponents\u002Fbb-popover","\u002Fit\u002Fcomponenti\u002Fbb-popover","\u002Fen\u002Fcomponents\u002Fbb-progress","\u002Fit\u002Fcomponenti\u002Fbb-progress","\u002Fen\u002Fcomponents\u002Fbb-radio","\u002Fit\u002Fcomponenti\u002Fbb-radio","\u002Fen\u002Fcomponents\u002Fbb-radio-group","\u002Fit\u002Fcomponenti\u002Fbb-radio-group","\u002Fen\u002Fcomponents\u002Fbb-rating","\u002Fit\u002Fcomponenti\u002Fbb-rating","\u002Fen\u002Fcomponents\u002Fbb-select","\u002Fit\u002Fcomponenti\u002Fbb-select","\u002Fen\u002Fcomponents\u002Fbb-select-popover","\u002Fit\u002Fcomponenti\u002Fbb-select-popover","\u002Fen\u002Fcomponents\u002Fbb-slider","\u002Fit\u002Fcomponenti\u002Fbb-slider","\u002Fen\u002Fcomponents\u002Fbb-smooth-height","\u002Fit\u002Fcomponenti\u002Fbb-smooth-height","\u002Fen\u002Fcomponents\u002Fbb-spinner","\u002Fit\u002Fcomponenti\u002Fbb-spinner","\u002Fen\u002Fcomponents\u002Fbb-switch","\u002Fit\u002Fcomponenti\u002Fbb-switch","\u002Fen\u002Fcomponents\u002Fbb-switch-group","\u002Fit\u002Fcomponenti\u002Fbb-switch-group","\u002Fen\u002Fcomponents\u002Fbb-table","\u002Fit\u002Fcomponenti\u002Fbb-table","\u002Fen\u002Fcomponents\u002Fbb-tabs","\u002Fit\u002Fcomponenti\u002Fbb-tabs","\u002Fen\u002Fcomponents\u002Fbb-tag","\u002Fit\u002Fcomponenti\u002Fbb-tag","\u002Fen\u002Fcomponents\u002Fbb-text-input","\u002Fit\u002Fcomponenti\u002Fbb-text-input","\u002Fen\u002Fcomponents\u002Fbb-textarea","\u002Fit\u002Fcomponenti\u002Fbb-textarea","\u002Fen\u002Fcomponents\u002Fbb-time-picker","\u002Fit\u002Fcomponenti\u002Fbb-time-picker","\u002Fen\u002Fcomponents\u002Fbb-time-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input","\u002Fen\u002Fcomponents\u002Fbb-toast","\u002Fit\u002Fcomponenti\u002Fbb-toast","\u002Fen\u002Fcomponents\u002Fbb-tooltip","\u002Fit\u002Fcomponenti\u002Fbb-tooltip","\u002Fen\u002Fcomponents\u002Fbb-tree","\u002Fit\u002Fcomponenti\u002Fbb-tree","\u002Fen\u002Fguides\u002Fadoption-checklist","\u002Fit\u002Fguide\u002Fadoption-checklist","\u002Fen\u002Fguides\u002Fai-agents","\u002Fit\u002Fguide\u002Fai-agents","\u002Fen\u002Fguides\u002Fcoherence","\u002Fit\u002Fguide\u002Fcoherence","\u002Fen\u002Fguides\u002Fdesign-language","\u002Fit\u002Fguide\u002Fdesign-language","\u002Fen\u002Fguides\u002Fdesign-tokens","\u002Fit\u002Fguide\u002Fdesign-tokens","\u002Fen\u002Fguides\u002Ffetching-data","\u002Fit\u002Fguide\u002Ffetching-data","\u002Fen\u002Fguides\u002Ficons","\u002Fit\u002Fguide\u002Ficons","\u002Fen\u002Fguides\u002Finertia","\u002Fit\u002Fguide\u002Finertia","\u002Fen\u002Fguides\u002Finstallation","\u002Fit\u002Fguide\u002Finstallation","\u002Fen\u002Fguides\u002Fmigration","\u002Fit\u002Fguide\u002Fmigration","\u002Fen\u002Fguides\u002Fnuxt","\u002Fit\u002Fguide\u002Fnuxt","\u002Fen\u002Fguides\u002Foptions-and-items","\u002Fit\u002Fguide\u002Foptions-and-items","\u002Fen\u002Fguides\u002Fpassthrough","\u002Fit\u002Fguide\u002Fpassthrough","\u002Fen\u002Fguides\u002Fpreset-components","\u002Fit\u002Fguide\u002Fpreset-components","\u002Fen\u002Fguides\u002Fvalidated-forms","\u002Fit\u002Fguide\u002Fvalidated-forms",{"id":379,"title":119,"body":380,"component":119,"description":1393,"extension":1394,"group":113,"meta":1395,"navigation":1396,"order":15,"path":120,"sections":1397,"seo":1405,"stem":1406,"__hash__":1407},"docs_en\u002Fcomponents\u002Fbb-checkbox-group.md",{"type":381,"value":382,"toc":1384},"minimark",[383,436,447,453,461,464,468,503,519,530,572,578,581,584,597,614,623,626,638,686,692,716,719,747,757,864,870,886,889,930,936,949,952,962,985,991,1011,1014,1046,1052,1067,1070,1124,1135,1138,1185,1193,1380],[384,385,386,394],"when",{},[387,388,389,390,393],"p",{},"Reach for ",[391,392,119],"code",{}," when the answer is several choices out of one set:\nwhich teams get the alert, which scopes the token carries. You hand it your\nrows, it renders one box per row.",[395,396,398],"template",{"v-slot:else":397},"",[399,400,401,410,417,429],"ul",{},[402,403,404,409],"li",{},[405,406,407],"a",{"href":266},[391,408,116],{},": it is one yes\u002Fno standing alone",[402,411,412,416],{},[405,413,414],{"href":310},[391,415,125],{},": exactly one choice out of the\nset",[402,418,419,423,424,428],{},[405,420,421],{"href":326},[391,422,143],{},": they are on\u002Foff ",[425,426,427],"strong",{},"states",",\nnot answers",[402,430,431,435],{},[405,432,433],{"href":314},[391,434,131],{},": the set is long, searchable or paged.\nForty checkboxes are a scroll, not a control",[387,437,438,439,441,442,441,444,446],{},"Also see: ",[405,440,36],{"href":370},", ",[405,443,39],{"href":358},[405,445,42],{"href":352},".",[387,448,449,450,452],{},"Do not hand-stack ",[391,451,116],{},". The group adds a fieldset, shared validation,\nitem mapping, and selection limits.",[454,455,457],"h2",{"id":456},"default",[458,459,460],"span",{},"Options from your data",[387,462,463],{},"Pass your domain objects as they are, and name the two fields that matter: the\none the user reads, and the one you want in the model.",[465,466],"demo",{"name":467},"BbCheckboxGroup\u002FBasic",[387,469,470,471,474,475,478,479,482,483,489,490,496,497,499,500,502],{},"Objects with a ",[391,472,473],{},"label"," (or ",[391,476,477],{},"text",") and a ",[391,480,481],{},"value"," key need no accessors. For any other shape use ",[405,484,486],{"href":485},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-itemText",[391,487,488],{},"item-text"," and ",[405,491,493],{"href":492},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-itemValue",[391,494,495],{},"item-value","; without ",[391,498,488],{}," each label is the\nobject as JSON. Give every option a unique ",[391,501,495],{},", ideally a primitive id: each value\nappears once in the list.",[387,504,505,511,512,518],{},[405,506,508],{"href":507},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-itemProps",[391,509,510],{},"item-props"," adds a muted second line to each option, and ",[405,513,515],{"href":514},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-listLayout",[391,516,517],{},"list-layout=\"vertical\""," stacks the options once they carry one.",[387,520,521,522,526,527,446],{},"The default model is an array. For one exclusive value, use\n",[405,523,524],{"href":310},[391,525,125],{}," instead of\n",[391,528,529],{},":multiple=\"false\"",[387,531,532,533,536,537,543,544,550,551,557,558,564,565,571],{},"The group renders a real ",[391,534,535],{},"\u003Cfieldset>",", and ",[405,538,540],{"href":539},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-legend",[391,541,542],{},"legend"," is required: it names\nthe set for assistive technology. Use ",[405,545,547],{"href":546},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-hideLegend",[391,548,549],{},"hide-legend"," when a nearby heading\nalready shows the same name. ",[405,552,554],{"href":553},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-hideLabel",[391,555,556],{},"hide-label"," instead hides every option label.\nThe group takes one ",[405,559,561],{"href":560},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-description",[391,562,563],{},"description"," and one ",[405,566,568],{"href":567},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-hint",[391,569,570],{},"hint","; use separate\ncheckboxes when individual options need different explanations.",[454,573,575],{"id":574},"gating",[458,576,577],{},"Locked and capped options",[387,579,580],{},"An option that exists but cannot be chosen is a predicate over the item, not a\nflag inside it.",[465,582],{"name":583},"BbCheckboxGroup\u002FAvailability",[387,585,586,592,593,446],{},[405,587,589],{"href":588},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-selectable",[391,590,591],{},"selectable"," takes a boolean for the whole set or a predicate per item.\nRejected options stay visible and disabled, so give them a reason on screen:\nhere the second line comes from ",[405,594,595],{"href":507},[391,596,510],{},[387,598,599,600,606,607,613],{},"To freeze a group that already carries a selection, use\n",[405,601,603],{"href":602},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-readonly",[391,604,605],{},"readonly",": the options stay focusable and\nthe values still submit. ",[405,608,610],{"href":609},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-disabled",[391,611,612],{},"disabled"," locks every option, ticked ones included, and\nkeeps them out of a native post.",[387,615,616,622],{},[405,617,619],{"href":618},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-max",[391,620,621],{},"max"," caps how many options may be on at once.",[465,624],{"name":625},"BbCheckboxGroup\u002FMaxSelection",[387,627,628,629,631,632,634,635,637],{},"At the cap, unchecked options disable while checked ones stay removable. State\nthe limit in ",[391,630,563],{}," and show a count; the component renders neither.\nThe cap works alongside a ",[391,633,591],{}," predicate: the predicate locks the\noptions it rejects, and ",[391,636,621],{}," caps the rest.",[639,640,642,662],"migration",{"title":641},"disabled on an item → selectable",[387,643,644,645,647,648,650,651,654,655,658,659,661],{},"v2's groups honoured a ",[391,646,612],{}," field on the item object. In v3 it is\nordinary domain data with no UI meaning, so options that used to render locked\nbecome tickable until you move the rule into ",[391,649,591],{},". Grep the code that builds your\n",[391,652,653],{},"items"," for ",[391,656,657],{},"disabled:"," and move each one into ",[391,660,591],{},":",[663,664,668],"pre",{"className":665,"code":666,"language":667,"meta":397,"style":397},"language-diff shiki shiki-themes github-light-high-contrast github-dark-high-contrast","- :items=\"channels.map((c) => ({ ...c, disabled: !c.configured }))\"\n+ :items=\"channels\"\n+ :selectable=\"(c) => c.configured\"\n","diff",[391,669,670,676,681],{"__ignoreMap":397},[458,671,673],{"class":672,"line":11},"line",[458,674,675],{},"- :items=\"channels.map((c) => ({ ...c, disabled: !c.configured }))\"\n",[458,677,678],{"class":672,"line":15},[458,679,680],{},"+ :items=\"channels\"\n",[458,682,683],{"class":672,"line":19},[458,684,685],{},"+ :selectable=\"(c) => c.configured\"\n",[454,687,689],{"id":688},"validation",[458,690,691],{},"Validating the whole set",[387,693,694,695,699,700,536,706,712,713,715],{},"Inside a ",[405,696,697],{"href":290},[391,698,90],{}," the group joins the form under its\n",[405,701,703],{"href":702},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-name",[391,704,705],{},"name",[405,707,709],{"href":708},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-rules",[391,710,711],{},"rules"," validates the whole array as one field.\nWithout a ",[391,714,705],{}," it joins under a slug of the legend, so pass one for a clean key.",[465,717],{"name":718},"BbCheckboxGroup\u002FValidation",[387,720,721,722,725,726,729,730,734,735,739,740,746],{},"There is no ",[391,723,724],{},"required"," prop here: \"at least one\" is a rule, and\n",[391,727,728],{},"rules=\"required\""," (a rule you ",[405,731,733],{"href":732},"\u002Fen\u002Fguides\u002Fvalidated-forms#rules","register once",")\nfails on an empty array. It also marks the legend\n(",[405,736,738],{"href":737},"\u002Fen\u002Fguides\u002Fvalidated-forms#asterisk","the asterisk","). Submit with nothing ticked: the message shows once\nfocus leaves the group or on submit, then clears as soon as a box is ticked\n(",[405,741,743],{"href":742},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-validationMode",[391,744,745],{},"validation-mode"," changes when).",[387,748,749,750,756],{},"Outside a form, compute the one ",[405,751,753],{"href":752},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-errors",[391,754,755],{},"errors"," message for the set yourself:",[663,758,762],{"className":759,"code":760,"language":761,"meta":397,"style":397},"language-vue shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003CBbCheckboxGroup\n    v-model=\"scopes\"\n    :errors=\"submitted && !scopes.length ? 'Choose at least one scope.' : []\"\n    :items=\"available\"\n    legend=\"Token scopes\"\n\u002F>\n","vue",[391,763,764,774,792,834,849,859],{"__ignoreMap":397},[458,765,766,770],{"class":672,"line":11},[458,767,769],{"class":768},"suds8","\u003C",[458,771,773],{"class":772},"sne4z","BbCheckboxGroup\n",[458,775,776,780,783,786,789],{"class":672,"line":15},[458,777,779],{"class":778},"s-5SL","    v-model",[458,781,782],{"class":768},"=",[458,784,785],{"class":768},"\"",[458,787,788],{"class":768},"scopes",[458,790,791],{"class":768},"\"\n",[458,793,794,797,799,801,803,806,810,813,816,819,822,826,829,832],{"class":672,"line":19},[458,795,796],{"class":768},"    :",[458,798,755],{"class":778},[458,800,782],{"class":768},[458,802,785],{"class":768},[458,804,805],{"class":768},"submitted ",[458,807,809],{"class":808},"sHUrx","&&",[458,811,812],{"class":808}," !",[458,814,815],{"class":768},"scopes.",[458,817,818],{"class":778},"length",[458,820,821],{"class":808}," ?",[458,823,825],{"class":824},"sT6z2"," 'Choose at least one scope.'",[458,827,828],{"class":808}," :",[458,830,831],{"class":768}," []",[458,833,791],{"class":768},[458,835,836,838,840,842,844,847],{"class":672,"line":47},[458,837,796],{"class":768},[458,839,653],{"class":778},[458,841,782],{"class":768},[458,843,785],{"class":768},[458,845,846],{"class":768},"available",[458,848,791],{"class":768},[458,850,851,854,856],{"class":672,"line":51},[458,852,853],{"class":778},"    legend",[458,855,782],{"class":768},[458,857,858],{"class":824},"\"Token scopes\"\n",[458,860,861],{"class":672,"line":55},[458,862,863],{"class":768},"\u002F>\n",[454,865,867],{"id":866},"coherence",[458,868,869],{},"When the options change",[387,871,872,873,878,879,885],{},"Give ",[405,874,876],{"href":875},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-items",[391,877,653],{}," a function instead of an array and the group loads its own options.\n",[405,880,882],{"href":881},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-dependencies",[391,883,884],{},"dependencies"," says what makes it load them again.",[465,887],{"name":888},"BbCheckboxGroup\u002FCoherence",[387,890,891,892,894,895,901,902,908,909,915,916,922,923,489,926,929],{},"The provider runs on mount and when ",[391,893,884],{}," change.\n",[405,896,898],{"href":897},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-depsDebounceTime",[391,899,900],{},"deps-debounce-time"," groups rapid changes. Add ",[405,903,905],{"href":904},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-enforceCoherence",[391,906,907],{},"enforce-coherence"," when stale\nselections must be removed after options reload. ",[405,910,912],{"href":911},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-loadingText",[391,913,914],{},"loading-text"," and\n",[405,917,919],{"href":918},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-emptyText",[391,920,921],{},"empty-text"," (or the ",[391,924,925],{},"#loading",[391,927,928],{},"#empty"," slots) cover the wait and an\nempty result.",[454,931,933],{"id":932},"option-content",[458,934,935],{},"Decorating an option",[387,937,938,939,944,945,948],{},"The ",[405,940,942],{"href":941},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#slot-label",[391,943,473],{}," slot replaces the text of ",[425,946,947],{},"every"," option, and receives enough to\ndecide what each one looks like.",[465,950],{"name":951},"BbCheckboxGroup\u002FOptionContent",[387,953,954,955,958,959,961],{},"The scope is ",[391,956,957],{},"{ item, text, checked, description }",". Keep ",[391,960,477],{}," in the rendered label so the\noption retains an accessible name. Use separate checkboxes when only one option\nneeds unique markup.",[639,963,964],{},[387,965,966,489,969,972,973,976,977,980,981,984],{},[391,967,968],{},"#option:prepend",[391,970,971],{},"#option:append"," are gone. Everything they did moves into\n",[391,974,975],{},"#label",", which can put content on either side of the text. Note that ",[391,978,979],{},"#prepend","\nand ",[391,982,983],{},"#append"," still exist and are unrelated. Those inject once into the options\ncontainer, before the first option and after the last.",[454,986,988],{"id":987},"tabs-look",[458,989,990],{},"Pick values with the tabs look",[387,992,993,999,1000,1003,1004,1007,1008,1010],{},[405,994,996],{"href":995},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-variant",[391,997,998],{},"variant=\"pill\""," or\n",[391,1001,1002],{},"variant=\"line\""," gives the group a tab strip's look, for a multi-pick that reads\nas a strip: opening days, channels, filters. ",[391,1005,1006],{},"pill"," draws one pill per run of\nadjacent picks, so Mon–Wed reads as one block: ticking a neighbour stretches\nit, unticking a middle option splits it. ",[391,1009,672],{}," draws a bar under each pick\nacross a baseline, and adjacent bars join.",[465,1012],{"name":1013},"BbCheckboxGroup\u002FTabsLook",[387,1015,1016,1017,1019,1020,1023,1024,1026,1027,1030,1031,1034,1035,1038,1039,1042,1043,1045],{},"It is still a checkbox group: native checkboxes, ",[391,1018,621],{},", forms and validation\nwork. The box is hidden (an ",[391,1021,1022],{},"icon"," slot shows before the label) and the strip\nnever wraps: it scrolls. ",[391,1025,517],{}," stacks it into a column and\n",[391,1028,1029],{},"\"vertical-stretch\""," spans the field. ",[391,1032,1033],{},"pt:indicator"," reaches every pill or bar,\nand a registered ",[391,1036,1037],{},"checkboxVariants: ['brand']"," sets the strip's tokens on\n",[391,1040,1041],{},".bb-checkbox-group__list--brand",", drawing pills per run as ",[391,1044,1006],{}," does.",[454,1047,1049],{"id":1048},"styling",[458,1050,1051],{},"Layout and CSS",[387,1053,1054,1059,1060,1066],{},[405,1055,1056],{"href":514},[391,1057,1058],{},"list-layout"," arranges the options; ",[405,1061,1063],{"href":1062},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-layout",[391,1064,1065],{},"layout"," splits the legend from them.",[465,1068],{"name":1069},"BbCheckboxGroup\u002FLayout",[387,1071,1072,1074,1075,1078,1079,1082,1083,1086,1087,1090,1091,1097,1098,441,1104,980,1110,1116,1117,1123],{},[391,1073,1058],{}," takes ",[391,1076,1077],{},"horizontal"," (the default, a wrapping row), ",[391,1080,1081],{},"vertical",",\n",[391,1084,1085],{},"vertical-stretch"," (every row as wide as the list) and ",[391,1088,1089],{},"tiles",".\n",[405,1092,1094],{"href":1093},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-compact",[391,1095,1096],{},"compact"," tightens the label spacing. ",[405,1099,1101],{"href":1100},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-reverse",[391,1102,1103],{},"reverse",[405,1105,1107],{"href":1106},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-legendPosition",[391,1108,1109],{},"legend-position",[405,1111,1113],{"href":1112},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-inputPosition",[391,1114,1115],{},"input-position"," arrange the legend against the options, and\n",[405,1118,1120],{"href":1119},"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group\u002Fapi#prop-legendMode",[391,1121,1122],{},"legend-mode=\"inside\""," draws the fieldset border with the legend on it.",[387,1125,1126,1127,1130,1131,1134],{},"To align the box, put a class on ",[391,1128,1129],{},"pt:icon",": ",[391,1132,1133],{},"self-start"," pins it to the first\nline of a label that wraps.",[387,1136,1137],{},"Style the rows through each group's own classes, and list all three when a rule\napplies to every group:",[663,1139,1143],{"className":1140,"code":1141,"language":1142,"meta":397,"style":397},"language-css shiki shiki-themes github-light-high-contrast github-dark-high-contrast",".bb-checkbox-group__label,\n.bb-radio-group__label,\n.bb-switch-group__label {\n    font-weight: 500;\n}\n","css",[391,1144,1145,1152,1159,1167,1180],{"__ignoreMap":397},[458,1146,1147,1150],{"class":672,"line":11},[458,1148,1149],{"class":778},".bb-checkbox-group__label",[458,1151,1082],{"class":768},[458,1153,1154,1157],{"class":672,"line":15},[458,1155,1156],{"class":778},".bb-radio-group__label",[458,1158,1082],{"class":768},[458,1160,1161,1164],{"class":672,"line":19},[458,1162,1163],{"class":778},".bb-switch-group__label",[458,1165,1166],{"class":768}," {\n",[458,1168,1169,1172,1174,1177],{"class":672,"line":47},[458,1170,1171],{"class":778},"    font-weight",[458,1173,1130],{"class":768},[458,1175,1176],{"class":778},"500",[458,1178,1179],{"class":768},";\n",[458,1181,1182],{"class":672,"line":51},[458,1183,1184],{"class":768},"}\n",[387,1186,1187,1188,446],{},"For control colours and geometry, use the box variables documented on\n",[405,1189,1191],{"href":1190},"\u002Fen\u002Fcomponents\u002Fbb-checkbox#custom-markup",[391,1192,116],{},[639,1194,1196,1216,1223],{"title":1195},"bb-cr-container → one block per group",[387,1197,1198,1201,1202,1207,1208,1211,1212,1215],{},[391,1199,1200],{},"labelPosition"," is now ",[425,1203,1204],{},[391,1205,1206],{},"legendPosition",", with no behaviour change. A\nleftover ",[391,1209,1210],{},"label-position"," falls through to the DOM and the alignment stops\napplying; a development build warns about the rename, and ",[391,1213,1214],{},"npx bitboss-ui check --fix"," rewrites it.",[387,1217,1218,1219,1222],{},"In v2 one CSS block, ",[391,1220,1221],{},"bb-cr-container",", served all three groups, so a rule\nwritten for checkboxes hit radios too. Each group now has its own block, and\nnothing in v3 renders the old prefix. Search styles and test selectors:",[1224,1225,1226,1239],"table",{},[1227,1228,1229],"thead",{},[1230,1231,1232,1236],"tr",{},[1233,1234,1235],"th",{},"v2",[1233,1237,1238],{},"v3",[1240,1241,1242,1261,1273,1290,1302,1315,1327,1339,1351,1363],"tbody",{},[1230,1243,1244,1250],{},[1245,1246,1247],"td",{},[391,1248,1249],{},".bb-cr-container",[1245,1251,1252,441,1255,441,1258],{},[391,1253,1254],{},".bb-checkbox-group__list",[391,1256,1257],{},".bb-radio-group__list",[391,1259,1260],{},".bb-switch-group__list",[1230,1262,1263,1268],{},[1245,1264,1265],{},[391,1266,1267],{},".bb-cr-container--horizontal",[1245,1269,1270],{},[391,1271,1272],{},".bb-…-group__list--horizontal",[1230,1274,1275,1280],{},[1245,1276,1277],{},[391,1278,1279],{},".bb-cr-container--vertical",[1245,1281,1282,1285,1286,1289],{},[391,1283,1284],{},".bb-…-group__list--vertical-stretch"," (",[391,1287,1288],{},"--vertical"," rows keep their own width)",[1230,1291,1292,1297],{},[1245,1293,1294],{},[391,1295,1296],{},".bb-cr-container--errors",[1245,1298,1299],{},[391,1300,1301],{},".bb-…-group__list--errors",[1230,1303,1304,1309],{},[1245,1305,1306],{},[391,1307,1308],{},".bb-cr-container__container",[1245,1310,1311,1312],{},"merged into ",[391,1313,1314],{},".bb-…-group__list",[1230,1316,1317,1322],{},[1245,1318,1319],{},[391,1320,1321],{},".bb-cr-container__loading-container",[1245,1323,1324],{},[391,1325,1326],{},".bb-…-group__loading",[1230,1328,1329,1334],{},[1245,1330,1331],{},[391,1332,1333],{},".bb-cr-container__no-data-container",[1245,1335,1336],{},[391,1337,1338],{},".bb-…-group__empty",[1230,1340,1341,1346],{},[1245,1342,1343],{},[391,1344,1345],{},".bb-cr-container-option",[1245,1347,1348],{},[391,1349,1350],{},".bb-…-group__item",[1230,1352,1353,1358],{},[1245,1354,1355],{},[391,1356,1357],{},".bb-cr-container-option__text",[1245,1359,1360],{},[391,1361,1362],{},".bb-…-group__label",[1230,1364,1365,1368],{},[1245,1366,1367],{},"—",[1245,1369,1370,441,1373,489,1376,1379],{},[391,1371,1372],{},".bb-…-group__list--tiles",[391,1374,1375],{},"--warnings",[391,1377,1378],{},".bb-…-group__item--selected",", all new",[1381,1382,1383],"style",{},"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 .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 .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}",{"title":397,"searchDepth":19,"depth":19,"links":1385},[1386,1387,1388,1389,1390,1391,1392],{"id":456,"depth":15,"text":460},{"id":574,"depth":15,"text":577},{"id":688,"depth":15,"text":691},{"id":866,"depth":15,"text":869},{"id":932,"depth":15,"text":935},{"id":987,"depth":15,"text":990},{"id":1048,"depth":15,"text":1051},"Several boxes inside one set, with your data as the options and one array as the model.","md",{},true,[1398,1399,1400,1401,1402,1403,1404],{"id":456,"title":460},{"id":574,"title":577},{"id":688,"title":691},{"id":866,"title":869},{"id":932,"title":935},{"id":987,"title":990},{"id":1048,"title":1051},{"title":119,"description":1393},"components\u002Fbb-checkbox-group","_1lxRO3p7aHhv1dkyH1q5Um2hgGD81X7i04Abn95Td8",{"name":119,"slug":1409,"group":113,"description":1410,"entrypoint":1411,"docs":1412,"props":1415,"models":1606,"events":1609,"slots":1649,"exposed":1679,"pt":1680,"validated":3,"migration":1737},"bb-checkbox-group","Manages multiple checkbox options as a group.","bitboss-ui",{"contract":1413,"source":1414},"ai\u002FBbCheckboxGroup.md","ai\u002Fsource\u002FBbCheckboxGroup.md",[1416,1421,1425,1429,1433,1437,1440,1443,1447,1451,1455,1458,1461,1464,1468,1472,1474,1477,1481,1486,1489,1492,1497,1502,1505,1509,1515,1521,1524,1528,1532,1537,1540,1546,1550,1553,1557,1560,1565,1567,1570,1574,1579,1582,1584,1588,1592,1595,1599,1603],{"name":1417,"type":1418,"required":1419,"default":3,"description":1420,"note":3,"demo":3},"autofocus","Booleanish | undefined",false,"Focuses the field when it mounts (a dialog already open included), unless the user is typing in another field.",{"name":1096,"type":1422,"required":1419,"default":1423,"description":1424,"note":3,"demo":1048},"boolean | undefined","false","Compact density. Swaps `--bb-label-spacing-y` for `--bb-label-spacing-y-compact`, so tune a compact group's label gap with the `-compact` token, not the base one.",{"name":884,"type":1426,"required":1419,"default":3,"description":1427,"note":1428,"demo":866},"unknown[] | undefined","Defines an array of dependencies that will trigger actions in the component upon change.","Only meaningful when `items` is a provider function: it names what makes the group call it again. A dependency that is a text field wants `deps-debounce-time` with it; one that is another group does not.",{"name":1430,"type":1431,"required":1419,"default":3,"description":1432,"note":3,"demo":866},"depsDebounceTime","number | undefined","Timeout used to debounce response to changes to dependencies.",{"name":563,"type":1434,"required":1419,"default":3,"description":1435,"note":1436,"demo":456},"string | undefined","Text between the label and the input. Unlike the hint it is always visible; it joins the input's `aria-describedby` after any `errors` \u002F `warnings`, before the `hint`.","One description for the whole set; there is no per-option equivalent. When each option needs its own line, the options are not uniform and a `BbCheckbox` per row is the honest answer.",{"name":612,"type":1422,"required":1419,"default":1423,"description":1438,"note":1439,"demo":574},"Disables the component.","Locks every option, ticked ones included, and keeps the values out of a native post. To freeze a selection that must still be submitted, use `readonly`.",{"name":1441,"type":1434,"required":1419,"default":3,"description":1442,"note":3,"demo":866},"emptyText","String displayed when there are no items to display.",{"name":1444,"type":1422,"required":1419,"default":1423,"description":1445,"note":1446,"demo":866},"enforceCoherence","After every applied, successful load (an empty one included), drops the model values the options no longer contain (a single value resets to `null`). A failed load never prunes.","Drops model entries the current options no longer contain. Worth it when the options depend on another field, and not otherwise: a selection can vanish without the user doing anything.",{"name":755,"type":1448,"required":1419,"default":3,"description":1449,"note":1450,"demo":688},"string | string[] | undefined","Error messages under the field, a string or array, in an `aria-live=\"polite\"` region and first in the control's `aria-describedby`, so they are re-read when it regains focus.","One channel for the whole fieldset, which is the concrete payoff over a hand-stacked row of `BbCheckbox`, where the message has to be pinned to one arbitrary box.",{"name":1452,"type":1434,"required":1419,"default":1453,"description":1454,"note":3,"demo":3},"failedText","the localized `common.failedText` (\"Couldn't load items\")","String displayed in the empty state while the latest load FAILED (the `items` provider threw): the twin of `emptyText` for that case.",{"name":1456,"type":1422,"required":1419,"default":1423,"description":1457,"note":3,"demo":3},"formless","Keep this control out of the enclosing `BbForm` entirely: not submitted, not dirty, not reset, not validated. For a control that is not form data (a filter, a \"show advanced\" switch).",{"name":1459,"type":1422,"required":1419,"default":1423,"description":1460,"note":3,"demo":3},"hasErrors","Define if the component should be in an error state. It usually attaches a CSS class for styling purposes.",{"name":1462,"type":1422,"required":1419,"default":1423,"description":1463,"note":3,"demo":3},"hasWarnings","Define if the component should be in a warning state. Same chrome as errors with `--bb-warn`; errors take priority.",{"name":1465,"type":1422,"required":1419,"default":1423,"description":1466,"note":1467,"demo":3},"hideLabel","Visually hides each option's label text (the text rendered next to every input) while keeping it accessible to screen readers. Does not affect the fieldset legend — use `hideLegend` for that.","Hides each option's text, not the legend. For a group whose options are drawn entirely by the `icon` slot, and nothing else.",{"name":1469,"type":1422,"required":1419,"default":1423,"description":1470,"note":1471,"demo":456},"hideLegend","Visually hides the legend of the fieldset while maintaining accessibility.","Hides the group's name while keeping it for assistive technology. For when a visible heading right above already says the same words, never as a way to avoid writing one.",{"name":570,"type":1434,"required":1419,"default":3,"description":1473,"note":3,"demo":456},"Text box to be displayed near the input, usually to indicate instructions.",{"name":1475,"type":1434,"required":1419,"default":3,"description":1476,"note":3,"demo":3},"id","Prefix for the ids of each option's input and of the label, description and message. Generated when omitted.",{"name":1478,"type":1479,"required":1419,"default":3,"description":1480,"note":3,"demo":3},"inputAlign","FieldCrossAlign | undefined","Vertical position of the control in a side-by-side row; not `inputPosition`, the horizontal one. Omitted, the control's first line meets the label's.",{"name":1482,"type":1483,"required":1419,"default":1484,"description":1485,"note":3,"demo":1048},"inputPosition","\"left\" | \"center\" | \"right\" | undefined","\"left\"","Sets the alignment of the input. Since inputs are inline block they can be aligned just as text can.",{"name":1487,"type":1479,"required":1419,"default":3,"description":1488,"note":3,"demo":3},"itemInputAlign","Vertical position of each option's control in its row; `'center'` is the middle of the label plus its description. Omitted, it sits on the label's first line.",{"name":1490,"type":1479,"required":1419,"default":3,"description":1491,"note":3,"demo":3},"itemLabelAlign","Vertical position of each option's label in its row. Omitted, it stays as it is.",{"name":1493,"type":1494,"required":1419,"default":1495,"description":1496,"note":3,"demo":3},"itemLayout","FieldLayout | undefined","'auto'","How each row's input and label sit together, in the `layout` keywords: `'auto'`, `'vertical'`, `'horizontal'`, `'label-fill'`, `'input-fill'`, or a two-word ratio pattern like `'xx xxxxx'`.",{"name":1498,"type":1499,"required":1419,"default":3,"description":1500,"note":1501,"demo":456},"itemProps","BbOptionGroupItemProps\u003CT> | undefined","ADDITIONAL row fields, never the text or value: `description`, a muted line under the label (it may wrap; announced as the option's description). An object of paths or getters, or a function of the item; nothing is read implicitly.","Only additional row fields: today one, `description`, the muted line under each option. Nothing is read implicitly: an item carrying a `description` field shows nothing until you map it here.",{"name":1503,"type":1422,"required":1419,"default":1423,"description":1504,"note":3,"demo":3},"itemReverse","Swaps each row's input and label from their natural order (input first), in every `item-layout`. `reverse` swaps the legend and the options instead.",{"name":653,"type":1506,"required":1396,"default":3,"description":1507,"note":1508,"demo":456},"T[] | ((context: BbCheckboxGroupItemsContext) => T[] | Promise\u003CT[]>)","The options: an array, or a provider called with a `BbCheckboxGroupItemsContext` (`BbSwitchGroupItemsContext` on a switch group) (`reason`, `modelValue`, `signal`), sync or async. A provider fails by THROWING, never by returning `[]`: the rows clear and `#empty` gets the `error`.","An array, or a function called on mount and after every `dependencies` change, returning an array or a promise. Options whose resolved value duplicates an earlier one are dropped silently, first occurrence winning.",{"name":1510,"type":1511,"required":1419,"default":1512,"description":1513,"note":1514,"demo":456},"itemText","ItemAccessor\u003CT, string> | undefined","own `label`, else `text`, else `JSON.stringify(item)`","Defines a path that returns a property of the object to use as text or a function that returns a string.\n\nUnset: own `label`, else `text` (`{ label, value }` needs no accessor).","A property path (`\"fullName\"`, `\"profile.city\"`) or a function. Omit it for primitive items, where the value is its own label, and for objects with a `label` (or `text`) key, which is read by default.",{"name":1516,"type":1517,"required":1419,"default":1518,"description":1519,"note":1520,"demo":456},"itemValue","ItemAccessor\u003CT> | undefined","own `value`, else the whole item","Defines a path that returns a property of the object to use as value or a function that returns any value.\n\nUnset: own `value`, even `null`.","Prefer a stable primitive id. With this unset the model holds the item's own `value` key when it has one, otherwise the whole item, which works (matching is structural, not by reference), but an id survives a refetch and is readable in a payload.",{"name":1522,"type":1479,"required":1419,"default":3,"description":1523,"note":3,"demo":3},"labelAlign","Vertical position of the label block in a side-by-side row; not `labelPosition`, the horizontal one. Omitted, the label's first line meets the control's.",{"name":1065,"type":1525,"required":1419,"default":3,"description":1526,"note":1527,"demo":1048},"Responsive\u003CFieldLayout> | undefined","How label and input sit together: `'vertical'`, `'horizontal'` (50\u002F50), `'auto'`, `'label-fill'`, `'input-fill'`, a ratio like `'xx xxxxx'`, or a per-breakpoint map (`{ default: 'vertical', md: 'xx xxxxx' }`).","Splits the legend from the options, not the options from each other; that is `list-layout`. Defaults to `vertical`, which is why the legend sits above.",{"name":542,"type":1529,"required":1396,"default":3,"description":1530,"note":1531,"demo":456},"string","Text content of the legend.","Required, because it is the fieldset's accessible name: a screen reader announces it on entry, so every box is heard as an answer to a named question. Hide it with `hide-legend` when a visible heading already carries it.",{"name":1533,"type":1534,"required":1419,"default":3,"description":1535,"note":1536,"demo":1048},"legendMode","\"outside\" | \"inside\" | undefined","Legend rendering mode. `'outside'` renders the legend above the fieldset in the normal flow; `'inside'` overlays the legend inside the fieldset border. Floating mode is not supported for option groups (checkbox, radio or switch) — there is no single field for the legend to float against.","No floating mode here: a group has no single input for a label to float into. `inside` draws the fieldset border and sets the legend on it.",{"name":1206,"type":1483,"required":1419,"default":3,"description":1538,"note":1539,"demo":1048},"Sets the text alignment of the label.","Renamed from v2's `labelPosition`, with no change in behaviour. The rename is silent: an unknown attribute falls through to the DOM, so the alignment just stops applying.",{"name":1541,"type":1542,"required":1419,"default":1543,"description":1544,"note":1545,"demo":1048},"listLayout","ListLayout | undefined","'horizontal'","How the rows sit in the list: `'horizontal'` (on a line, wrapping), `'vertical'` (stacked), `'vertical-stretch'` (stacked, as wide as the list) or `'tiles'` (equal boxes; `--tile-min-width` on `pt:list` sets the narrowest).","Lays the options out inside the fieldset. Defaults to `horizontal`: a wrapping row, not a stack.",{"name":1547,"type":1434,"required":1419,"default":3,"description":1548,"note":1549,"demo":866},"loadingText","String displayed while items are being loaded.","Worth setting to something specific. \"Loading hubs…\" tells the reader more than the default.",{"name":621,"type":1431,"required":1419,"default":3,"description":1551,"note":1552,"demo":574},"Maximum number of selected items.","A shape rule, not a validation rule: it prevents the extra choice rather than complaining about it. Once the cap is reached the options that are off render disabled and the ticked ones stay live, so the user swaps rather than getting stuck.",{"name":1554,"type":1555,"required":1419,"default":3,"description":1556,"note":3,"demo":3},"modelValue","any","Used by v-model. Can be an array of any serializable type.",{"name":1558,"type":1431,"required":1419,"default":3,"description":1559,"note":3,"demo":3},"modelValueDebounceTime","Timeout used to debounce response to changes to modelValue.",{"name":1561,"type":1422,"required":1419,"default":1562,"description":1563,"note":1564,"demo":456},"multiple","true","Enables multi-selection behavior. When true, `modelValue` must be an array. When false, `modelValue` should be a single value.","True by default, so the model is an array: unbound, it starts empty, and a non-array value such as `null` throws on mount. Setting it false gives a single-value control that emits a bare value and `null`; it works, and an exclusive choice drawn as checkboxes is `BbRadioGroup`.",{"name":705,"type":1434,"required":1419,"default":3,"description":1566,"note":3,"demo":3},"Defines the name of the input.",{"name":1568,"type":1422,"required":1419,"default":1423,"description":1569,"note":3,"demo":3},"persistentHint","Keeps the hint displayed.",{"name":1571,"type":1572,"required":1419,"default":3,"description":1573,"note":3,"demo":3},"pt","({ root?: PtValue | undefined; \"root:loading\"?: PtValue | undefined; \"icon:loading\"?: PtValue | undefined; \"root:disabled\"?: PtValue | undefined; \"root:errors\"?: PtValue | undefined; \"root:warnings\"?: PtValue | undefined; \"root:readonly\"?: PtValue | undefined; \"icon:disabled\"?: PtValue | undefined; \"item:disabled\"?: PtValue | undefined; description?: PtValue | undefined; message?: PtValue | undefined; hint?: PtValue | undefined; \"icon:errors\"?: PtValue | undefined; \"icon:warnings\"?: PtValue | undefined; \"icon:readonly\"?: PtValue | undefined; \"icon:checked\"?: PtValue | undefined; \"icon:focused\"?: PtValue | undefined; \"icon:focusVisible\"?: PtValue | undefined; \"label:disabled\"?: PtValue | undefined; \"label:errors\"?: PtValue | undefined; \"label:warnings\"?: PtValue | undefined; \"label:readonly\"?: PtValue | undefined; \"label:checked\"?: PtValue | undefined; \"label:focused\"?: PtValue | undefined; \"label:focusVisible\"?: PtValue | undefined; \"description:disabled\"?: PtValue | undefined; \"description:errors\"?: PtValue | undefined; \"description:warnings\"?: PtValue | undefined; \"description:readonly\"?: PtValue | undefined; \"message:disabled\"?: PtValue | undefined; \"message:errors\"?: PtValue | undefined; \"message:warnings\"?: PtValue | undefined; \"message:readonly\"?: PtValue | undefined; \"hint:disabled\"?: PtValue | undefined; \"hint:errors\"?: PtValue | undefined; \"hint:warnings\"?: PtValue | undefined; \"hint:readonly\"?: PtValue | undefined; legend?: PtValue | undefined; list?: PtValue | undefined; indicator?: PtValue | undefined; \"root:hasValue\"?: PtValue | undefined; \"description:loading\"?: PtValue | undefined; \"description:hasValue\"?: PtValue | undefined; \"message:loading\"?: PtValue | undefined; \"message:hasValue\"?: PtValue | undefined; \"hint:loading\"?: PtValue | undefined; \"hint:hasValue\"?: PtValue | undefined; \"legend:loading\"?: PtValue | undefined; \"legend:disabled\"?: PtValue | undefined; \"legend:errors\"?: PtValue | undefined; \"legend:warnings\"?: PtValue | undefined; \"legend:readonly\"?: PtValue | undefined; \"legend:hasValue\"?: PtValue | undefined; \"list:loading\"?: PtValue | undefined; \"list:disabled\"?: PtValue | undefined; \"list:errors\"?: PtValue | undefined; \"list:warnings\"?: PtValue | undefined; \"list:readonly\"?: PtValue | undefined; \"list:hasValue\"?: PtValue | undefined; \"indicator:loading\"?: PtValue | undefined; \"indicator:disabled\"?: PtValue | undefined; \"indicator:errors\"?: PtValue | undefined; \"indicator:warnings\"?: PtValue | undefined; \"indicator:readonly\"?: PtValue | undefined; \"indicator:hasValue\"?: PtValue | undefined; \"icon:hasValue\"?: PtValue | undefined; \"label:loading\"?: PtValue | undefined; \"label:hasValue\"?: PtValue | undefined; \"item:loading\"?: PtValue | undefined; \"item:errors\"?: PtValue | undefined; \"item:warnings\"?: PtValue | undefined; \"item:readonly\"?: PtValue | undefined; \"item:checked\"?: PtValue | undefined; \"item:focused\"?: PtValue | undefined; \"item:focusVisible\"?: PtValue | undefined; \"item:hasValue\"?: PtValue | undefined; \"itemDescription:loading\"?: PtValue | undefined; \"itemDescription:disabled\"?: PtValue | undefined; \"itemDescription:errors\"?: PtValue | undefined; \"itemDescription:warnings\"?: PtValue | undefined; \"itemDescription:readonly\"?: PtValue | undefined; \"itemDescription:checked\"?: PtValue | undefined; \"itemDescription:focused\"?: PtValue | undefined; \"itemDescription:focusVisible\"?: PtValue | undefined; \"itemDescription:hasValue\"?: PtValue | undefined; } & { icon?: PtValue | PtItemFn\u003CT, GroupPtState, never, { readonly item: T; }> | undefined; label?: PtValue | PtItemFn\u003CT, GroupPtState, never, { readonly item: T; }> | undefined; item?: PtValue | PtItemFn\u003CT, GroupPtState, never, { readonly item: T; }> | undefined; itemDescription?: PtValue | PtItemFn\u003CT, GroupPtState, never, { readonly item: T; }> | undefined; } & { \"indicator:pill\"?: PtValue | undefined; \"indicator:line\"?: PtValue | undefined; \"root:pill\"?: PtValue | undefined; \"root:line\"?: PtValue | undefined; \"icon:pill\"?: PtValue | undefined; \"icon:line\"?: PtValue | undefined; \"label:pill\"?: PtValue | undefined; \"label:line\"?: PtValue | undefined; \"item:pill\"?: PtValue | undefined; \"item:line\"?: PtValue | undefined; \"description:pill\"?: PtValue | undefined; \"description:line\"?: PtValue | undefined; \"message:pill\"?: PtValue | undefined; \"message:line\"?: PtValue | undefined; \"hint:pill\"?: PtValue | undefined; \"hint:line\"?: PtValue | undefined; \"legend:pill\"?: PtValue | undefined; \"legend:line\"?: PtValue | undefined; \"list:pill\"?: PtValue | undefined; \"list:line\"?: PtValue | undefined; \"itemDescription:pill\"?: PtValue | undefined; \"itemDescription:line\"?: PtValue | undefined; }) | undefined","Passthrough, object form: the same keys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":1575,"type":1576,"required":1419,"default":3,"description":1577,"note":3,"demo":1578},"pt:\u003Cpart>","PtValue | ((ctx: PtItemCtx\u003CT, GroupPtState>) => PtItemResult) | undefined","Passthrough, attribute form: one attribute per part, `pt:\u003Cpart>`, and per part and state, `pt:\u003Cpart>:\u003Cstate>`. Parts: `description`, `hint`, `icon`, `indicator`, `item`, `itemDescription`, `label`, `legend`, `list`, `message`, `root`. States: `checked`, `disabled`, `errors`, `focused`, `focusVisible`, `hasValue`, `line`, `loading`, `pill`, `readonly`, `warnings`.","passthrough",{"name":605,"type":1422,"required":1419,"default":1423,"description":1580,"note":1581,"demo":574},"Sets the input in a readonly state.","Keeps every box focusable and submitted while swallowing every change. The right lock for a value the user may read and must not alter.",{"name":1103,"type":1422,"required":1419,"default":1423,"description":1583,"note":3,"demo":1048},"Reverses the layout. Applicable in every direction the order of the label and the input is swapped.",{"name":711,"type":1585,"required":1419,"default":3,"description":1586,"note":1587,"demo":688},"RuleExpression\u003Cany>","vee-validate rules for this field. Only inside a `BbForm`.","Validates the array as a single field, so `required` means \"at least one\". Only inside a `BbForm`; outside one, compute `errors` yourself.",{"name":591,"type":1589,"required":1419,"default":1562,"description":1590,"note":1591,"demo":574},"boolean | ((item: T) => boolean) | undefined","Defines whether options are selectable. Can be a global boolean that affects all options or a function that accepts an item and returns a boolean that only affects that item. Non-selectable options are rendered disabled.","A boolean for the group or a predicate over the item. This is where v2's per-item `disabled` field went: that field is inert in v3, silently, so options that used to render locked become tickable.",{"name":1593,"type":1434,"required":1419,"default":3,"description":1594,"note":3,"demo":3},"validationLabel","The field's name in validation messages (`{field}`): \"Email is not valid\". Defaults to the `label` (or `legend`), then \"This field\"; never the `name`. Set it when the label is hidden or reads badly in a sentence (icon-only, a question). `BbForm` only.",{"name":1596,"type":1597,"required":1419,"default":3,"description":1598,"note":3,"demo":688},"validationMode","ValidationMode | undefined","When the field validates: `aggressive` (each change), `balanced` (on leave, then live while in error), `lazy` (on leave), `submit-only`, `submit-live`. Unset: the `BbForm`'s `validation-mode`, then `formControls.validationMode` (`'balanced'`). `BbForm` only.",{"name":1600,"type":1601,"required":1419,"default":3,"description":1602,"note":3,"demo":3},"variant","keyof CheckboxVariantRegistry | undefined","A tab-strip look (Q76.11 d): `'pill'` (a pill per run of adjacent picks) or `'line'` (a bar under each pick). `list-layout=\"vertical\"` stacks it. Register more with `checkboxVariants`. Unset: the group's own rows.",{"name":1604,"type":1448,"required":1419,"default":3,"description":1605,"note":3,"demo":3},"warnings","Warning messages under the field, a string or array: amber, in their own `aria-live` region and in the control's `aria-describedby` after the errors. Non-empty turns on the warning state; errors win when both are set.",[1607],{"name":1554,"type":1555,"note":1608,"demo":456},"The array of resolved values, re-emitted in full on every change, never the option that moved. Diff it against the previous value when you need to know what changed.",[1610,1614,1618,1622,1626,1629,1632,1635,1639,1642,1645],{"name":1611,"signature":1612,"description":1613,"note":3,"demo":3},"active","(): void","Emitted when the group becomes active (focus\u002Fclick enters it).",{"name":1615,"signature":1616,"description":1617,"note":3,"demo":3},"blur","(event: FocusEvent): void","Emitted when one of the generated checkbox inputs loses focus. Forwards the original DOM `FocusEvent`.",{"name":1619,"signature":1620,"description":1621,"note":3,"demo":3},"change","(event: Event): void","Emitted when an option is toggled. Forwards the original DOM `Event` from the checkbox input.",{"name":1623,"signature":1624,"description":1625,"note":3,"demo":3},"click","(event: MouseEvent): void","Emitted when one of the generated checkbox inputs is clicked. Forwards the original DOM `MouseEvent`.",{"name":1627,"signature":1616,"description":1628,"note":3,"demo":3},"focus","Emitted when one of the generated checkbox inputs receives focus. Forwards the original DOM `FocusEvent`.",{"name":1630,"signature":1612,"description":1631,"note":3,"demo":3},"inactive","Emitted when focus\u002Fclick moves outside the group after it was active. Useful for validation-on-blur flows at group level.",{"name":1633,"signature":1620,"description":1634,"note":3,"demo":3},"input","Emitted on native input events from generated checkbox inputs. Forwards the original DOM `Event`.",{"name":1636,"signature":1637,"description":1638,"note":3,"demo":3},"keydown","(event: KeyboardEvent): void","Emitted for keyboard interaction on generated checkbox inputs. Forwards the original DOM `KeyboardEvent`.",{"name":1640,"signature":1624,"description":1641,"note":3,"demo":3},"mousedown","Emitted when a pointing device button is pressed over a checkbox input. Forwards the original DOM `MouseEvent`.",{"name":1643,"signature":1624,"description":1644,"note":3,"demo":3},"mouseup","Emitted when a pointing device button is released over a checkbox input. Forwards the original DOM `MouseEvent`.",{"name":1646,"signature":1647,"description":1648,"note":3,"demo":3},"update:modelValue","(value: any): void","Emitted with the coherent next selection array whenever selection changes.",[1650,1654,1657,1661,1665,1669,1673,1676],{"name":1651,"type":1652,"description":1653,"note":3,"demo":3},"append","object","Content rendered after the last option, inside the options container.",{"name":563,"type":1655,"description":1656,"note":3,"demo":3},"BbCheckboxGroupDescriptionSlotProps","Replaces the description text. Provided alone (no `description` prop) it still renders the description region and wires it into `aria-describedby`.",{"name":1658,"type":1659,"description":1660,"note":3,"demo":3},"empty","{ error: unknown; }","Content shown when no options are available (replaces the default \"no data\" text). `error` is what the latest failed load rejected with, untouched, and `null` when nothing failed — a failed load clears the rows, so this slot is where it shows.",{"name":1022,"type":1662,"description":1663,"note":1664,"demo":932},"BbCheckboxGroupIconSlotProps\u003CT>","Replaces the default checkmark icon for each checkbox option.","Replaces the box visual per option, and receives `item` and `text` alongside the live state.",{"name":473,"type":1666,"description":1667,"note":1668,"demo":932},"BbCheckboxGroupLabelSlotProps\u003CT>","Replaces the default label text for each option.","One template for every option, scoped `{ item, text, checked, description }`. Decorate `text` rather than dropping it: what renders here is the option's accessible name. This is what replaced v2's removed `#option:prepend` and `#option:append`.",{"name":542,"type":1670,"description":1671,"note":1672,"demo":456},"BbCheckboxGroupLegendSlotProps","Replaces the default fieldset legend text for the group.","Scoped `{ text, hasErrors, hasWarnings }`, plus `showAsterisk` when the required marker shows.",{"name":1674,"type":1652,"description":1675,"note":3,"demo":3},"loading","Content shown while options are loading (replaces the default loading text).",{"name":1677,"type":1652,"description":1678,"note":3,"demo":3},"prepend","Content rendered before the first option, inside the options container.",[],{"parts":1681,"states":1710},[1682,1685,1687,1689,1692,1694,1697,1700,1703,1705,1707],{"name":1683,"description":1684},"root","The group's container (the fieldset).",{"name":542,"description":1686},"The group's heading — the fieldset `\u003Clegend>` (the `legend` prop).",{"name":563,"description":1688},"The muted line under the legend (the `description` prop).",{"name":1690,"description":1691},"message","The errors \u002F warnings line. A node of its own: it can show at the same time as `hint`.",{"name":570,"description":1693},"The helper line (the `hint` prop), shown on focus, or always with `persistent-hint`.",{"name":1695,"description":1696},"list","The node that lays the rows out (flex + wrap, gaps on `--gap` \u002F `--row-gap`): `pt:list=\"grid grid-cols-3\"` re-lays them, `pt:list=\"[--gap:8px]\"` tightens them. With a `variant`, the tab strip. Takes the group-wide states only.",{"name":1698,"description":1699},"indicator","With a `variant`: the shape under the checked option, BbTabs' indicator — the sliding pill or bar of a radio group, a checkbox group's pill per run of adjacent picks (or bar per pick). Takes the group-wide states only.",{"name":1701,"description":1702},"item","One option row — a broadcast, resolved per option with its own `checked` \u002F `disabled` \u002F focus. Takes a per-item function.",{"name":1022,"description":1704},"One row's drawn glyph — the default one: a consumer `icon` slot replaces it. Takes a per-item function.",{"name":473,"description":1706},"One option's label text (the `label` slot's default). Takes a per-item function.",{"name":1708,"description":1709},"itemDescription","One option's muted second line, its description. Takes a per-item function.",[1711,1714,1716,1718,1721,1724,1727,1729,1731,1733,1735],{"name":1712,"description":1713},"checked","Per row, on `item`, `icon`, `label` and `itemDescription`: that option is chosen. Never on a field part.",{"name":612,"description":1715},"Component-wide while the group is `disabled`; also per row, on the row parts of an option that is disabled on its own.",{"name":755,"description":1717},"Component-wide: the group shows errors.",{"name":1719,"description":1720},"focused","Per row, on the row parts: that option's input has focus — any focus, mouse included.",{"name":1722,"description":1723},"focusVisible","Per row, on the row parts: that option's focus is keyboard-visible — where a focus ring belongs.",{"name":1725,"description":1726},"hasValue","Component-wide: at least one option is chosen.",{"name":672,"description":1728},"On every part: `variant: 'line'`. Below the real states, like every variant.",{"name":1674,"description":1730},"Component-wide: the items are being fetched.",{"name":1006,"description":1732},"On every part: `variant: 'pill'`. Merged after the part's base entry and before its states, so the real states still win.",{"name":605,"description":1734},"Component-wide: the group is `readonly`.",{"name":1604,"description":1736},"Component-wide: the group shows warnings and no errors.",{"removed":1738,"renamed":1780},[1739,1746,1751,1756,1760,1763,1768,1771,1775],{"name":1740,"surface":1741,"replacedBy":3,"hint":3,"since":1742,"migration":1743,"silent":1396,"fix":1744},"color","prop","3.0.0-beta.15","ai\u002Fguides\u002Fmigration\u002Fcomponents\u002Fbb-checkbox-group.md",{"kind":1745},"manual",{"name":1747,"surface":1741,"replacedBy":1065,"hint":3,"since":1748,"migration":1743,"silent":1396,"fix":1749},"direction","3.0.0-beta.33",{"kind":1750},"rename",{"name":1752,"surface":1741,"replacedBy":1462,"hint":3,"since":1753,"migration":1754,"silent":1396,"fix":1755},"hasWarning","3.0.0-beta.26","ai\u002Fguides\u002Fmigration\u002Fv2-to-v3.md",{"kind":1750},{"name":1757,"surface":1741,"replacedBy":1541,"hint":3,"since":1748,"migration":1743,"silent":1396,"fix":1758},"inputDirection",{"kind":1750,"valueMap":1759},{"horizontal":1077,"vertical":1085},{"name":1200,"surface":1741,"replacedBy":1206,"hint":3,"since":1761,"migration":1743,"silent":1396,"fix":1762},"3.0.0-alpha.1",{"kind":1750},{"name":1764,"surface":1765,"replacedBy":1658,"hint":3,"since":1766,"migration":1754,"silent":1396,"fix":1767},"no-data","slot","3.0.0-beta.41",{"kind":1750},{"name":1769,"surface":1741,"replacedBy":1441,"hint":3,"since":1766,"migration":1754,"silent":1396,"fix":1770},"noDataText",{"kind":1750},{"name":1772,"surface":1741,"replacedBy":1596,"hint":1773,"since":1766,"migration":1754,"silent":1396,"fix":1774},"validateOn","an array of events became one mode (`aggressive` | `balanced` | `lazy` | `submit-only` | `submit-live`). The old defaults (`['blur']`, `['inactive']`, a toggle's `['update:modelValue', 'change', 'blur']`) are `balanced`, the new default: delete the prop. A text field on `['update:modelValue']` is `validation-mode=\"aggressive\"`. Set it once on `\u003CBbForm validation-mode>` instead of per field",{"kind":1745},{"name":1776,"surface":1741,"replacedBy":3,"hint":1777,"since":1766,"migration":1754,"silent":1396,"fix":1778},"vid","a display name (v2: `vid=\"Email address\"`) is now `validation-label`; a field path (3.0 betas: `vid=\"address.city\"`) is now `name` (brackets for a native post: `address[city]`). `check --fix` picks by the value",{"kind":1779,"display":1593,"key":705},"byValue",[1781,1783,1785,1788,1790,1792,1794],{"from":1747,"to":1065,"surface":1741,"since":1748,"migration":1743,"fix":1782},{"kind":1750},{"from":1752,"to":1462,"surface":1741,"since":1753,"migration":1754,"fix":1784},{"kind":1750},{"from":1757,"to":1541,"surface":1741,"since":1748,"migration":1743,"fix":1786},{"kind":1750,"valueMap":1787},{"horizontal":1077,"vertical":1085},{"from":1200,"to":1206,"surface":1741,"since":1761,"migration":1743,"fix":1789},{"kind":1750},{"from":1764,"to":1658,"surface":1765,"since":1766,"migration":1754,"fix":1791},{"kind":1750},{"from":1769,"to":1441,"surface":1741,"since":1766,"migration":1754,"fix":1793},{"kind":1750},{"from":1772,"to":1596,"surface":1741,"since":1766,"migration":1754,"fix":1795},{"kind":1745},[1797,1803,1807,1811],{"id":1798,"name":1799,"countryCode":1800,"timeZone":1801,"population":1802},"milan","Milan","IT","Europe\u002FRome",3140000,{"id":1804,"name":1805,"countryCode":1800,"timeZone":1801,"population":1806},"rome","Rome",4300000,{"id":1808,"name":1809,"countryCode":1800,"timeZone":1801,"population":1810},"turin","Turin",1800000,{"id":1812,"name":1813,"countryCode":1800,"timeZone":1801,"population":1814},"bologna","Bologna",1020000,1793055138216]