[{"data":1,"prerenderedAt":1581},["ShallowReactive",2],{"locale-alternates":3,"docs-nav-en":124,"api-none":352,"page-en-\u002Fcomponents\u002Fbb-number-input":353,"pt-showcase-BbNumberInput":1130},{"\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-checkbox":20,"\u002Fen\u002Fcomponents\u002Fbb-checkbox":21,"\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group":22,"\u002Fen\u002Fcomponents\u002Fbb-checkbox-group":23,"\u002Fit\u002Fcomponenti\u002Fbb-collapsible":24,"\u002Fen\u002Fcomponents\u002Fbb-collapsible":25,"\u002Fit\u002Fcomponenti\u002Fbb-color-input":26,"\u002Fen\u002Fcomponents\u002Fbb-color-input":27,"\u002Fit\u002Fcomponenti\u002Fbb-color-palette":28,"\u002Fen\u002Fcomponents\u002Fbb-color-palette":29,"\u002Fit\u002Fcomponenti\u002Fbb-confirm":30,"\u002Fen\u002Fcomponents\u002Fbb-confirm":31,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker":32,"\u002Fen\u002Fcomponents\u002Fbb-date-picker":33,"\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input":34,"\u002Fen\u002Fcomponents\u002Fbb-date-picker-input":35,"\u002Fit\u002Fcomponenti\u002Fbb-dialog":36,"\u002Fen\u002Fcomponents\u002Fbb-dialog":37,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown":38,"\u002Fen\u002Fcomponents\u002Fbb-dropdown":39,"\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button":40,"\u002Fen\u002Fcomponents\u002Fbb-dropdown-button":41,"\u002Fit\u002Fcomponenti\u002Fbb-dropzone":42,"\u002Fen\u002Fcomponents\u002Fbb-dropzone":43,"\u002Fit\u002Fcomponenti\u002Fbb-form":44,"\u002Fen\u002Fcomponents\u002Fbb-form":45,"\u002Fit\u002Fcomponenti\u002Fbb-icon":46,"\u002Fen\u002Fcomponents\u002Fbb-icon":47,"\u002Fit\u002Fcomponenti\u002Fbb-indicator":48,"\u002Fen\u002Fcomponents\u002Fbb-indicator":49,"\u002Fit\u002Fcomponenti\u002Fbb-number-input":50,"\u002Fen\u002Fcomponents\u002Fbb-number-input":51,"\u002Fit\u002Fcomponenti\u002Fbb-off-canvas":52,"\u002Fen\u002Fcomponents\u002Fbb-off-canvas":53,"\u002Fit\u002Fcomponenti\u002Fbb-pagination":54,"\u002Fen\u002Fcomponents\u002Fbb-pagination":55,"\u002Fit\u002Fcomponenti\u002Fbb-popover":56,"\u002Fen\u002Fcomponents\u002Fbb-popover":57,"\u002Fit\u002Fcomponenti\u002Fbb-progress":58,"\u002Fen\u002Fcomponents\u002Fbb-progress":59,"\u002Fit\u002Fcomponenti\u002Fbb-radio":60,"\u002Fen\u002Fcomponents\u002Fbb-radio":61,"\u002Fit\u002Fcomponenti\u002Fbb-radio-group":62,"\u002Fen\u002Fcomponents\u002Fbb-radio-group":63,"\u002Fit\u002Fcomponenti\u002Fbb-rating":64,"\u002Fen\u002Fcomponents\u002Fbb-rating":65,"\u002Fit\u002Fcomponenti\u002Fbb-select":66,"\u002Fen\u002Fcomponents\u002Fbb-select":67,"\u002Fit\u002Fcomponenti\u002Fbb-select-popover":68,"\u002Fen\u002Fcomponents\u002Fbb-select-popover":69,"\u002Fit\u002Fcomponenti\u002Fbb-slider":70,"\u002Fen\u002Fcomponents\u002Fbb-slider":71,"\u002Fit\u002Fcomponenti\u002Fbb-smooth-height":72,"\u002Fen\u002Fcomponents\u002Fbb-smooth-height":73,"\u002Fit\u002Fcomponenti\u002Fbb-spinner":74,"\u002Fen\u002Fcomponents\u002Fbb-spinner":75,"\u002Fit\u002Fcomponenti\u002Fbb-switch":76,"\u002Fen\u002Fcomponents\u002Fbb-switch":77,"\u002Fit\u002Fcomponenti\u002Fbb-switch-group":78,"\u002Fen\u002Fcomponents\u002Fbb-switch-group":79,"\u002Fit\u002Fcomponenti\u002Fbb-table":80,"\u002Fen\u002Fcomponents\u002Fbb-table":81,"\u002Fit\u002Fcomponenti\u002Fbb-tabs":82,"\u002Fen\u002Fcomponents\u002Fbb-tabs":83,"\u002Fit\u002Fcomponenti\u002Fbb-tag":84,"\u002Fen\u002Fcomponents\u002Fbb-tag":85,"\u002Fit\u002Fcomponenti\u002Fbb-text-input":86,"\u002Fen\u002Fcomponents\u002Fbb-text-input":87,"\u002Fit\u002Fcomponenti\u002Fbb-textarea":88,"\u002Fen\u002Fcomponents\u002Fbb-textarea":89,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker":90,"\u002Fen\u002Fcomponents\u002Fbb-time-picker":91,"\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input":92,"\u002Fen\u002Fcomponents\u002Fbb-time-picker-input":93,"\u002Fit\u002Fcomponenti\u002Fbb-toast":94,"\u002Fen\u002Fcomponents\u002Fbb-toast":95,"\u002Fit\u002Fcomponenti\u002Fbb-tooltip":96,"\u002Fen\u002Fcomponents\u002Fbb-tooltip":97,"\u002Fit\u002Fcomponenti\u002Fbb-tree":98,"\u002Fen\u002Fcomponents\u002Fbb-tree":99,"\u002Fit\u002Fguide\u002Fai-agents":100,"\u002Fen\u002Fguides\u002Fai-agents":101,"\u002Fit\u002Fguide\u002Fcoherence":102,"\u002Fen\u002Fguides\u002Fcoherence":103,"\u002Fit\u002Fguide\u002Fdesign-language":104,"\u002Fen\u002Fguides\u002Fdesign-language":105,"\u002Fit\u002Fguide\u002Fdesign-tokens":106,"\u002Fen\u002Fguides\u002Fdesign-tokens":107,"\u002Fit\u002Fguide\u002Ffetching-data":108,"\u002Fen\u002Fguides\u002Ffetching-data":109,"\u002Fit\u002Fguide\u002Ficons":110,"\u002Fen\u002Fguides\u002Ficons":111,"\u002Fit\u002Fguide\u002Finertia":112,"\u002Fen\u002Fguides\u002Finertia":113,"\u002Fit\u002Fguide\u002Finstallation":114,"\u002Fen\u002Fguides\u002Finstallation":115,"\u002Fit\u002Fguide\u002Fmigration":116,"\u002Fen\u002Fguides\u002Fmigration":117,"\u002Fit\u002Fguide\u002Fnuxt":118,"\u002Fen\u002Fguides\u002Fnuxt":119,"\u002Fit\u002Fguide\u002Foptions-and-items":120,"\u002Fen\u002Fguides\u002Foptions-and-items":121,"\u002Fit\u002Fguide\u002Fvalidated-forms":122,"\u002Fen\u002Fguides\u002Fvalidated-forms":123},"\u002Fen\u002Fcomponents\u002Fbb-accordion","\u002Fit\u002Fcomponenti\u002Fbb-accordion","\u002Fen\u002Fcomponents\u002Fbb-alert","\u002Fit\u002Fcomponenti\u002Fbb-alert","\u002Fen\u002Fcomponents\u002Fbb-asterisk","\u002Fit\u002Fcomponenti\u002Fbb-asterisk","\u002Fen\u002Fcomponents\u002Fbb-avatar","\u002Fit\u002Fcomponenti\u002Fbb-avatar","\u002Fen\u002Fcomponents\u002Fbb-badge","\u002Fit\u002Fcomponenti\u002Fbb-badge","\u002Fen\u002Fcomponents\u002Fbb-base-button","\u002Fit\u002Fcomponenti\u002Fbb-base-button","\u002Fen\u002Fcomponents\u002Fbb-breadcrumbs","\u002Fit\u002Fcomponenti\u002Fbb-breadcrumbs","\u002Fen\u002Fcomponents\u002Fbb-button","\u002Fit\u002Fcomponenti\u002Fbb-button","\u002Fen\u002Fcomponents\u002Fbb-checkbox","\u002Fit\u002Fcomponenti\u002Fbb-checkbox","\u002Fen\u002Fcomponents\u002Fbb-checkbox-group","\u002Fit\u002Fcomponenti\u002Fbb-checkbox-group","\u002Fen\u002Fcomponents\u002Fbb-collapsible","\u002Fit\u002Fcomponenti\u002Fbb-collapsible","\u002Fen\u002Fcomponents\u002Fbb-color-input","\u002Fit\u002Fcomponenti\u002Fbb-color-input","\u002Fen\u002Fcomponents\u002Fbb-color-palette","\u002Fit\u002Fcomponenti\u002Fbb-color-palette","\u002Fen\u002Fcomponents\u002Fbb-confirm","\u002Fit\u002Fcomponenti\u002Fbb-confirm","\u002Fen\u002Fcomponents\u002Fbb-date-picker","\u002Fit\u002Fcomponenti\u002Fbb-date-picker","\u002Fen\u002Fcomponents\u002Fbb-date-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-date-picker-input","\u002Fen\u002Fcomponents\u002Fbb-dialog","\u002Fit\u002Fcomponenti\u002Fbb-dialog","\u002Fen\u002Fcomponents\u002Fbb-dropdown","\u002Fit\u002Fcomponenti\u002Fbb-dropdown","\u002Fen\u002Fcomponents\u002Fbb-dropdown-button","\u002Fit\u002Fcomponenti\u002Fbb-dropdown-button","\u002Fen\u002Fcomponents\u002Fbb-dropzone","\u002Fit\u002Fcomponenti\u002Fbb-dropzone","\u002Fen\u002Fcomponents\u002Fbb-form","\u002Fit\u002Fcomponenti\u002Fbb-form","\u002Fen\u002Fcomponents\u002Fbb-icon","\u002Fit\u002Fcomponenti\u002Fbb-icon","\u002Fen\u002Fcomponents\u002Fbb-indicator","\u002Fit\u002Fcomponenti\u002Fbb-indicator","\u002Fen\u002Fcomponents\u002Fbb-number-input","\u002Fit\u002Fcomponenti\u002Fbb-number-input","\u002Fen\u002Fcomponents\u002Fbb-off-canvas","\u002Fit\u002Fcomponenti\u002Fbb-off-canvas","\u002Fen\u002Fcomponents\u002Fbb-pagination","\u002Fit\u002Fcomponenti\u002Fbb-pagination","\u002Fen\u002Fcomponents\u002Fbb-popover","\u002Fit\u002Fcomponenti\u002Fbb-popover","\u002Fen\u002Fcomponents\u002Fbb-progress","\u002Fit\u002Fcomponenti\u002Fbb-progress","\u002Fen\u002Fcomponents\u002Fbb-radio","\u002Fit\u002Fcomponenti\u002Fbb-radio","\u002Fen\u002Fcomponents\u002Fbb-radio-group","\u002Fit\u002Fcomponenti\u002Fbb-radio-group","\u002Fen\u002Fcomponents\u002Fbb-rating","\u002Fit\u002Fcomponenti\u002Fbb-rating","\u002Fen\u002Fcomponents\u002Fbb-select","\u002Fit\u002Fcomponenti\u002Fbb-select","\u002Fen\u002Fcomponents\u002Fbb-select-popover","\u002Fit\u002Fcomponenti\u002Fbb-select-popover","\u002Fen\u002Fcomponents\u002Fbb-slider","\u002Fit\u002Fcomponenti\u002Fbb-slider","\u002Fen\u002Fcomponents\u002Fbb-smooth-height","\u002Fit\u002Fcomponenti\u002Fbb-smooth-height","\u002Fen\u002Fcomponents\u002Fbb-spinner","\u002Fit\u002Fcomponenti\u002Fbb-spinner","\u002Fen\u002Fcomponents\u002Fbb-switch","\u002Fit\u002Fcomponenti\u002Fbb-switch","\u002Fen\u002Fcomponents\u002Fbb-switch-group","\u002Fit\u002Fcomponenti\u002Fbb-switch-group","\u002Fen\u002Fcomponents\u002Fbb-table","\u002Fit\u002Fcomponenti\u002Fbb-table","\u002Fen\u002Fcomponents\u002Fbb-tabs","\u002Fit\u002Fcomponenti\u002Fbb-tabs","\u002Fen\u002Fcomponents\u002Fbb-tag","\u002Fit\u002Fcomponenti\u002Fbb-tag","\u002Fen\u002Fcomponents\u002Fbb-text-input","\u002Fit\u002Fcomponenti\u002Fbb-text-input","\u002Fen\u002Fcomponents\u002Fbb-textarea","\u002Fit\u002Fcomponenti\u002Fbb-textarea","\u002Fen\u002Fcomponents\u002Fbb-time-picker","\u002Fit\u002Fcomponenti\u002Fbb-time-picker","\u002Fen\u002Fcomponents\u002Fbb-time-picker-input","\u002Fit\u002Fcomponenti\u002Fbb-time-picker-input","\u002Fen\u002Fcomponents\u002Fbb-toast","\u002Fit\u002Fcomponenti\u002Fbb-toast","\u002Fen\u002Fcomponents\u002Fbb-tooltip","\u002Fit\u002Fcomponenti\u002Fbb-tooltip","\u002Fen\u002Fcomponents\u002Fbb-tree","\u002Fit\u002Fcomponenti\u002Fbb-tree","\u002Fen\u002Fguides\u002Fai-agents","\u002Fit\u002Fguide\u002Fai-agents","\u002Fen\u002Fguides\u002Fcoherence","\u002Fit\u002Fguide\u002Fcoherence","\u002Fen\u002Fguides\u002Fdesign-language","\u002Fit\u002Fguide\u002Fdesign-language","\u002Fen\u002Fguides\u002Fdesign-tokens","\u002Fit\u002Fguide\u002Fdesign-tokens","\u002Fen\u002Fguides\u002Ffetching-data","\u002Fit\u002Fguide\u002Ffetching-data","\u002Fen\u002Fguides\u002Ficons","\u002Fit\u002Fguide\u002Ficons","\u002Fen\u002Fguides\u002Finertia","\u002Fit\u002Fguide\u002Finertia","\u002Fen\u002Fguides\u002Finstallation","\u002Fit\u002Fguide\u002Finstallation","\u002Fen\u002Fguides\u002Fmigration","\u002Fit\u002Fguide\u002Fmigration","\u002Fen\u002Fguides\u002Fnuxt","\u002Fit\u002Fguide\u002Fnuxt","\u002Fen\u002Fguides\u002Foptions-and-items","\u002Fit\u002Fguide\u002Foptions-and-items","\u002Fen\u002Fguides\u002Fvalidated-forms","\u002Fit\u002Fguide\u002Fvalidated-forms",[125,136,145,166,178,220,253,286,307,328,340,346],{"label":126,"entries":127},"Getting started",[128,132],{"title":129,"path":130,"order":131},"Installation","\u002Fguides\u002Finstallation",1,{"title":133,"path":134,"order":135},"Migrating from v2","\u002Fguides\u002Fmigration",2,{"label":137,"entries":138},"Design system",[139,142],{"title":140,"path":141,"order":131},"Design tokens","\u002Fguides\u002Fdesign-tokens",{"title":143,"path":144,"order":135},"Design language","\u002Fguides\u002Fdesign-language",{"label":146,"entries":147},"Playbooks",[148,151,154,158,162],{"title":149,"path":150,"order":131},"Options and items","\u002Fguides\u002Foptions-and-items",{"title":152,"path":153,"order":135},"Fetching data","\u002Fguides\u002Ffetching-data",{"title":155,"path":156,"order":157},"Coherence","\u002Fguides\u002Fcoherence",3,{"title":159,"path":160,"order":161},"Validated forms","\u002Fguides\u002Fvalidated-forms",4,{"title":163,"path":164,"order":165},"Icons","\u002Fguides\u002Ficons",5,{"label":167,"entries":168},"Ecosystem",[169,172,175],{"title":170,"path":171,"order":131},"Inertia and Laravel","\u002Fguides\u002Finertia",{"title":173,"path":174,"order":135},"Nuxt","\u002Fguides\u002Fnuxt",{"title":176,"path":177,"order":157},"AI agents","\u002Fguides\u002Fai-agents",{"label":179,"entries":180},"Inputs",[181,184,187,190,193,196,200,204,208,212,216],{"title":182,"path":183,"component":182,"order":131},"BbBaseButton","\u002Fcomponents\u002Fbb-base-button",{"title":185,"path":186,"component":185,"order":135},"BbButton","\u002Fcomponents\u002Fbb-button",{"title":188,"path":189,"component":188,"order":157},"BbColorInput","\u002Fcomponents\u002Fbb-color-input",{"title":191,"path":192,"component":191,"order":161},"BbDatePickerInput","\u002Fcomponents\u002Fbb-date-picker-input",{"title":194,"path":195,"component":194,"order":165},"BbDropzone","\u002Fcomponents\u002Fbb-dropzone",{"title":197,"path":198,"component":197,"order":199},"BbForm","\u002Fcomponents\u002Fbb-form",6,{"title":201,"path":202,"component":201,"order":203},"BbNumberInput","\u002Fcomponents\u002Fbb-number-input",7,{"title":205,"path":206,"component":205,"order":207},"BbTag","\u002Fcomponents\u002Fbb-tag",8,{"title":209,"path":210,"component":209,"order":211},"BbTextarea","\u002Fcomponents\u002Fbb-textarea",9,{"title":213,"path":214,"component":213,"order":215},"BbTextInput","\u002Fcomponents\u002Fbb-text-input",10,{"title":217,"path":218,"component":217,"order":219},"BbTimePickerInput","\u002Fcomponents\u002Fbb-time-picker-input",11,{"label":221,"entries":222},"Selection",[223,226,229,232,235,238,241,244,247,250],{"title":224,"path":225,"component":224,"order":131},"BbCheckbox","\u002Fcomponents\u002Fbb-checkbox",{"title":227,"path":228,"component":227,"order":135},"BbCheckboxGroup","\u002Fcomponents\u002Fbb-checkbox-group",{"title":230,"path":231,"component":230,"order":157},"BbRadio","\u002Fcomponents\u002Fbb-radio",{"title":233,"path":234,"component":233,"order":161},"BbRadioGroup","\u002Fcomponents\u002Fbb-radio-group",{"title":236,"path":237,"component":236,"order":165},"BbRating","\u002Fcomponents\u002Fbb-rating",{"title":239,"path":240,"component":239,"order":199},"BbSelect","\u002Fcomponents\u002Fbb-select",{"title":242,"path":243,"component":242,"order":203},"BbSelectPopover","\u002Fcomponents\u002Fbb-select-popover",{"title":245,"path":246,"component":245,"order":207},"BbSlider","\u002Fcomponents\u002Fbb-slider",{"title":248,"path":249,"component":248,"order":211},"BbSwitch","\u002Fcomponents\u002Fbb-switch",{"title":251,"path":252,"component":251,"order":215},"BbSwitchGroup","\u002Fcomponents\u002Fbb-switch-group",{"label":254,"entries":255},"Overlay",[256,259,262,265,268,271,274,277,280,283],{"title":257,"path":258,"component":257,"order":131},"BbColorPalette","\u002Fcomponents\u002Fbb-color-palette",{"title":260,"path":261,"component":260,"order":135},"BbConfirm","\u002Fcomponents\u002Fbb-confirm",{"title":263,"path":264,"component":263,"order":157},"BbDatePicker","\u002Fcomponents\u002Fbb-date-picker",{"title":266,"path":267,"component":266,"order":161},"BbDialog","\u002Fcomponents\u002Fbb-dialog",{"title":269,"path":270,"component":269,"order":165},"BbDropdown","\u002Fcomponents\u002Fbb-dropdown",{"title":272,"path":273,"component":272,"order":199},"BbDropdownButton","\u002Fcomponents\u002Fbb-dropdown-button",{"title":275,"path":276,"component":275,"order":203},"BbOffCanvas","\u002Fcomponents\u002Fbb-off-canvas",{"title":278,"path":279,"component":278,"order":207},"BbPopover","\u002Fcomponents\u002Fbb-popover",{"title":281,"path":282,"component":281,"order":211},"BbTimePicker","\u002Fcomponents\u002Fbb-time-picker",{"title":284,"path":285,"component":284,"order":215},"BbTooltip","\u002Fcomponents\u002Fbb-tooltip",{"label":287,"entries":288},"Navigation",[289,292,295,298,301,304],{"title":290,"path":291,"component":290,"order":131},"BbAccordion","\u002Fcomponents\u002Fbb-accordion",{"title":293,"path":294,"component":293,"order":135},"BbBreadcrumbs","\u002Fcomponents\u002Fbb-breadcrumbs",{"title":296,"path":297,"component":296,"order":157},"BbCollapsible","\u002Fcomponents\u002Fbb-collapsible",{"title":299,"path":300,"component":299,"order":161},"BbPagination","\u002Fcomponents\u002Fbb-pagination",{"title":302,"path":303,"component":302,"order":165},"BbTabs","\u002Fcomponents\u002Fbb-tabs",{"title":305,"path":306,"component":305,"order":199},"BbTree","\u002Fcomponents\u002Fbb-tree",{"label":308,"entries":309},"Feedback",[310,313,316,319,322,325],{"title":311,"path":312,"component":311,"order":131},"BbAlert","\u002Fcomponents\u002Fbb-alert",{"title":314,"path":315,"component":314,"order":135},"BbBadge","\u002Fcomponents\u002Fbb-badge",{"title":317,"path":318,"component":317,"order":157},"BbIndicator","\u002Fcomponents\u002Fbb-indicator",{"title":320,"path":321,"component":320,"order":161},"BbProgress","\u002Fcomponents\u002Fbb-progress",{"title":323,"path":324,"component":323,"order":165},"BbSpinner","\u002Fcomponents\u002Fbb-spinner",{"title":326,"path":327,"component":326,"order":199},"BbToast","\u002Fcomponents\u002Fbb-toast",{"label":329,"entries":330},"Data Display",[331,334,337],{"title":332,"path":333,"component":332,"order":131},"BbAvatar","\u002Fcomponents\u002Fbb-avatar",{"title":335,"path":336,"component":335,"order":135},"BbIcon","\u002Fcomponents\u002Fbb-icon",{"title":338,"path":339,"component":338,"order":157},"BbTable","\u002Fcomponents\u002Fbb-table",{"label":341,"entries":342},"Layout & Utility",[343],{"title":344,"path":345,"component":344,"order":131},"BbSmoothHeight","\u002Fcomponents\u002Fbb-smooth-height",{"label":347,"entries":348},"Other",[349],{"title":350,"path":351,"component":350,"order":131},"BbAsterisk","\u002Fcomponents\u002Fbb-asterisk",null,{"id":354,"title":201,"body":355,"component":201,"description":1115,"extension":1116,"group":179,"meta":1117,"navigation":850,"order":203,"path":202,"sections":1118,"seo":1127,"stem":1128,"__hash__":1129},"docs_en\u002Fcomponents\u002Fbb-number-input.md",{"type":356,"value":357,"toc":1105},"minimark",[358,411,420,440,447,454,487,491,503,514,520,550,553,560,566,599,602,609,617,636,642,659,662,668,692,702,708,732,735,741,751,757,771,970,984,990,993,996,1012,1018,1035,1038,1055,1065,1068,1077,1101],[359,360,361,377],"when",{},[362,363,364,365,368,369,372,373,376],"p",{},"Reach for ",[366,367,201],"code",{}," whenever the value is a number somebody types: a\nquantity, a price, an age, a threshold, a rate limit. It cleans up what they\ntype, clamps to ",[366,370,371],{},"min"," and ",[366,374,375],{},"max",", and hands you a real number.",[378,379,381],"template",{"v-slot:else":380},"",[382,383,384,393,400],"ul",{},[385,386,387,392],"li",{},[388,389,390],"a",{"href":70},[366,391,245],{},", when a bounded value is better dragged\nthan typed",[385,394,395,399],{},[388,396,397],{"href":64},[366,398,236],{},", when it is a score on a fixed scale",[385,401,402,406,407,410],{},[388,403,404],{"href":86},[366,405,213],{}," with a ",[366,408,409],{},"mask",", when the digits\nare an identifier: a postcode, an order number, anywhere leading zeros matter",[362,412,413,414,416,417,419],{},"In v3, numeric text fields move from ",[366,415,213],{}," to ",[366,418,201],{},":",[421,422,426],"pre",{"className":423,"code":424,"language":425,"meta":380,"style":380},"language-diff shiki shiki-themes github-light-high-contrast github-dark-high-contrast","- \u003CBbTextInput v-model=\"quantity\" type=\"number\" label=\"Quantity\" \u002F>\n+ \u003CBbNumberInput v-model=\"quantity\" label=\"Quantity\" \u002F>\n","diff",[366,427,428,435],{"__ignoreMap":380},[429,430,432],"span",{"class":431,"line":131},"line",[429,433,434],{},"- \u003CBbTextInput v-model=\"quantity\" type=\"number\" label=\"Quantity\" \u002F>\n",[429,436,437],{"class":431,"line":135},[429,438,439],{},"+ \u003CBbNumberInput v-model=\"quantity\" label=\"Quantity\" \u002F>\n",[362,441,442,443,446],{},"The shared field props carry across; ",[366,444,445],{},"type"," does not.",[448,449,451],"h2",{"id":450},"default",[429,452,453],{},"Default",[362,455,456,459,460,463,464,467,468,474,475,478,479,482,483,486],{},[366,457,458],{},"label"," is required, and ",[366,461,462],{},"v-model"," is the whole of the wiring. The model takes\n",[366,465,466],{},"number | string | null"," and the field emits ",[469,470,471],"strong",{},[366,472,473],{},"number | null",". A cleared\nfield emits ",[366,476,477],{},"null",", never ",[366,480,481],{},"''"," and never ",[366,484,485],{},"NaN",".",[488,489],"demo",{"name":490},"BbNumberInput\u002FBasic",[362,492,493,495,496,499,500,502],{},[366,494,458],{}," does not set ",[366,497,498],{},"name",". Pass ",[366,501,498],{}," for native form submission.",[362,504,505,506,509,510,513],{},"While the text is incomplete, such as ",[366,507,508],{},"-"," or ",[366,511,512],{},"12.",", the model keeps its last\nparsed value.",[448,515,517],{"id":516},"bounds",[429,518,519],{},"Bounds and precision",[362,521,522,372,524,526,527,530,531,533,534,537,538,541,542,545,546,549],{},[366,523,371],{},[366,525,375],{}," clamp the ",[469,528,529],{},"emitted"," value: type past the ceiling and it\nsettles back to ",[366,532,375],{},". ",[366,535,536],{},"maxPrecision"," caps decimal places and defaults to ",[366,539,540],{},"8",".\nUse ",[366,543,544],{},"0"," to pin a field to whole numbers, ",[366,547,548],{},"2"," to currency.",[488,551],{"name":552},"BbNumberInput\u002FBounds",[362,554,555,556,559],{},"Clamping is silent, so state the range in ",[366,557,558],{},"hint",". Commas are accepted as the\ndecimal separator and normalized to a period.",[448,561,563],{"id":562},"steppers",[429,564,565],{},"Step controls",[362,567,568,571,572,575,576,579,580,583,584,586,587,372,589,591,592,595,596,486],{},[366,569,570],{},"step"," (default ",[366,573,574],{},"1",") is the increment applied by ArrowUp and ArrowDown, and by\nthe ",[366,577,578],{},"increase()"," \u002F ",[366,581,582],{},"decrease()"," functions the slots hand you. Stepping respects\n",[366,585,371],{},", ",[366,588,375],{},[366,590,536],{},", and does nothing while the field is ",[366,593,594],{},"disabled","\nor ",[366,597,598],{},"readonly",[488,600],{"name":601},"BbNumberInput\u002FStepper",[362,603,604,605,608],{},"Every content slot receives ",[366,606,607],{},"{ increase, decrease }",". Give icon-only step\nbuttons an accessible name.",[362,610,611,613,614,486],{},[366,612,570],{}," affects arrows and buttons, not typed input. Validate required multiples\nwith ",[366,615,616],{},"errors",[618,619,621],"migration",{"title":620},"increase() \u002F decrease() moved to the slots",[362,622,623,624,627,628,631,632,635],{},"The imperative handle is gone. ",[366,625,626],{},"inputRef.value.increase()"," no longer exists, and\na stale call is ",[366,629,630],{},"undefined"," at runtime rather than a compile error. Move\nin-field steppers to the slot scope shown above, and drive an external stepper\nthrough the model (",[366,633,634],{},"quantity += step",").",[448,637,639],{"id":638},"affixes",[429,640,641],{},"Currency, units and icons",[362,643,644,645,372,648,651,652,372,655,658],{},"Money and measurements want a symbol in the field and a plain number in the\nmodel. ",[366,646,647],{},"prefix",[366,649,650],{},"suffix"," render inline, either side of the typed value.\n",[366,653,654],{},"prepend:icon",[366,656,657],{},"append:icon"," put an icon in the same ring.",[488,660],{"name":661},"BbNumberInput\u002FCurrency",[362,663,664,665,486],{},"Affixes do not change the submitted value. Format display values with\n",[366,666,667],{},"Intl.NumberFormat",[362,669,670,671,674,675,678,679,681,682,684,685,687,688,691],{},"The append position is contested, and by priority: clear button → spinner\n(",[366,672,673],{},"loading",") → error icon (",[366,676,677],{},"hasErrors",") → your ",[366,680,657],{},". Put the decorative\nicon in ",[366,683,654],{},", and keep ",[366,686,657],{}," for fields that are neither\n",[366,689,690],{},"clearable"," nor validated.",[362,693,694,695,586,698,701],{},"Put interactive content in ",[366,696,697],{},"prepend",[366,699,700],{},"append",", or the outer slots.",[448,703,705],{"id":704},"messaging",[429,706,707],{},"Hints, errors and warnings",[362,709,710,711,714,715,717,718,721,722,724,725,533,728,731],{},"Four surfaces, four jobs. ",[366,712,713],{},"description"," is always visible between the label and\nthe field. ",[366,716,558],{}," appears below the field on focus, and ",[366,719,720],{},"persistent-hint"," pins\nit there: the right home for the range or the unit. ",[366,723,616],{}," renders below the\nfield, is announced, and sets ",[366,726,727],{},"aria-invalid",[366,729,730],{},"warnings"," is its amber\ncounterpart for a number that is valid and still worth a second look.",[488,733],{"name":734},"BbNumberInput\u002FMessaging",[362,736,737,738,740],{},"Non-empty messages imply their visual state. Errors win over warnings and set\n",[366,739,727],{},"; warnings do not.",[362,742,743,744,372,746,748,749,486],{},"This is where a business rule lives. ",[366,745,371],{},[366,747,375],{}," can only express a range.\nA multiple, a value tied to another field, a limit that depends on the selected\nplan: you compute those and put them in ",[366,750,616],{},[448,752,754],{"id":753},"validation",[429,755,756],{},"Inside a validated form",[362,758,759,760,763,764,767,768,770],{},"Import the same field from ",[366,761,762],{},"bitboss-ui\u002Fvalidated"," and it takes ",[366,765,766],{},"rules",",\nvalidates itself, and renders its own messages through the ",[366,769,616],{}," surface\nabove.",[421,772,776],{"className":773,"code":774,"language":775,"meta":380,"style":380},"language-vue shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003Cscript setup lang=\"ts\">\nimport { BbButton } from 'bitboss-ui';\nimport { BbForm, BbNumberInput } from 'bitboss-ui\u002Fvalidated';\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n    \u003CBbForm @submit=\"addLine\">\n        \u003CBbNumberInput label=\"Quantity\" :min=\"1\" rules=\"required\" \u002F>\n        \u003CBbButton type=\"submit\" variant=\"primary\">Add to order\u003C\u002FBbButton>\n    \u003C\u002FBbForm>\n\u003C\u002Ftemplate>\n","vue",[366,777,778,805,823,837,846,852,860,885,924,953,962],{"__ignoreMap":380},[429,779,780,784,788,792,795,798,802],{"class":431,"line":131},[429,781,783],{"class":782},"suds8","\u003C",[429,785,787],{"class":786},"sne4z","script",[429,789,791],{"class":790},"s-5SL"," setup",[429,793,794],{"class":790}," lang",[429,796,797],{"class":782},"=",[429,799,801],{"class":800},"sT6z2","\"ts\"",[429,803,804],{"class":782},">\n",[429,806,807,811,814,817,820],{"class":431,"line":135},[429,808,810],{"class":809},"sHUrx","import",[429,812,813],{"class":782}," { BbButton } ",[429,815,816],{"class":809},"from",[429,818,819],{"class":800}," 'bitboss-ui'",[429,821,822],{"class":782},";\n",[429,824,825,827,830,832,835],{"class":431,"line":157},[429,826,810],{"class":809},[429,828,829],{"class":782}," { BbForm, BbNumberInput } ",[429,831,816],{"class":809},[429,833,834],{"class":800}," 'bitboss-ui\u002Fvalidated'",[429,836,822],{"class":782},[429,838,839,842,844],{"class":431,"line":161},[429,840,841],{"class":782},"\u003C\u002F",[429,843,787],{"class":786},[429,845,804],{"class":782},[429,847,848],{"class":431,"line":165},[429,849,851],{"emptyLinePlaceholder":850},true,"\n",[429,853,854,856,858],{"class":431,"line":199},[429,855,783],{"class":782},[429,857,378],{"class":786},[429,859,804],{"class":782},[429,861,862,865,867,870,873,875,878,881,883],{"class":431,"line":203},[429,863,864],{"class":782},"    \u003C",[429,866,197],{"class":786},[429,868,869],{"class":782}," @",[429,871,872],{"class":790},"submit",[429,874,797],{"class":782},[429,876,877],{"class":782},"\"",[429,879,880],{"class":782},"addLine",[429,882,877],{"class":782},[429,884,804],{"class":782},[429,886,887,890,892,895,897,900,903,905,907,909,911,913,916,918,921],{"class":431,"line":207},[429,888,889],{"class":782},"        \u003C",[429,891,201],{"class":786},[429,893,894],{"class":790}," label",[429,896,797],{"class":782},[429,898,899],{"class":800},"\"Quantity\"",[429,901,902],{"class":782}," :",[429,904,371],{"class":790},[429,906,797],{"class":782},[429,908,877],{"class":782},[429,910,574],{"class":790},[429,912,877],{"class":782},[429,914,915],{"class":790}," rules",[429,917,797],{"class":782},[429,919,920],{"class":800},"\"required\"",[429,922,923],{"class":782}," \u002F>\n",[429,925,926,928,930,933,935,938,941,943,946,949,951],{"class":431,"line":211},[429,927,889],{"class":782},[429,929,185],{"class":786},[429,931,932],{"class":790}," type",[429,934,797],{"class":782},[429,936,937],{"class":800},"\"submit\"",[429,939,940],{"class":790}," variant",[429,942,797],{"class":782},[429,944,945],{"class":800},"\"primary\"",[429,947,948],{"class":782},">Add to order\u003C\u002F",[429,950,185],{"class":786},[429,952,804],{"class":782},[429,954,955,958,960],{"class":431,"line":215},[429,956,957],{"class":782},"    \u003C\u002F",[429,959,197],{"class":786},[429,961,804],{"class":782},[429,963,964,966,968],{"class":431,"line":219},[429,965,841],{"class":782},[429,967,378],{"class":786},[429,969,804],{"class":782},[362,971,972,973,976,977,980,981,983],{},"The validated entrypoint needs ",[366,974,975],{},"vee-validate",". Use rules for conditions that\nbounds do not cover, such as ",[366,978,979],{},"required","; your own ",[366,982,616],{}," merge with rule\nmessages.",[448,985,987],{"id":986},"states",[429,988,989],{},"Clearable, loading, disabled and readonly",[362,991,992],{},"Four props change what the field will accept, and one of them is not what it\nlooks like.",[488,994],{"name":995},"BbNumberInput\u002FFieldStates",[362,997,998,1000,1001,533,1003,1005,1006,1008,1009,1011],{},[366,999,690],{}," emits ",[366,1002,477],{},[366,1004,673],{}," is visual only. ",[366,1007,594],{}," blocks all\ninteraction, while ",[366,1010,598],{}," keeps the value focusable and copyable.",[448,1013,1015],{"id":1014},"layout",[429,1016,1017],{},"Label modes and density",[362,1019,1020,1023,1024,1027,1028,1031,1032,635],{},[366,1021,1022],{},"label-mode"," puts the label above the field (",[366,1025,1026],{},"outside",", the default), resting\ninside it like a placeholder (",[366,1029,1030],{},"floating","), or pinned small at the top of the\nfield (",[366,1033,1034],{},"inside",[488,1036],{"name":1037},"BbNumberInput\u002FLabelModes",[362,1039,1040,1041,1043,1044,1047,1048,1050,1051,1054],{},"Leave ",[366,1042,1022],{}," unset to use ",[366,1045,1046],{},"defaultInputLabelMode",". Do not pair ",[366,1049,1030],{},"\nwith a placeholder. ",[366,1052,1053],{},"hide-label"," keeps the accessible name.",[362,1056,1057,1060,1061,1064],{},[366,1058,1059],{},"compact"," reduces the control height, and ",[366,1062,1063],{},"direction=\"horizontal\""," puts the\nlabel beside the field. Settings screens are where the pair earns its keep: each\nlimit reads as one dense row, label left and value right.",[488,1066],{"name":1067},"BbNumberInput\u002FSettingsRows",[362,1069,1070,1073,1074,1076],{},[366,1071,1072],{},"direction"," works only with the resolved ",[366,1075,1026],{}," label mode. Embedded label\nmodes force a vertical layout.",[618,1078,1080],{"title":1079},"floating → label-mode",[362,1081,1082,1083,1085,1086,1089,1090,1093,1094,1097,1098,486],{},"A bare ",[366,1084,1030],{}," attribute was never a prop on this family. It fell through\n",[366,1087,1088],{},"$attrs"," onto the root element and did nothing. The spelling is\n",[366,1091,1092],{},"label-mode=\"floating\"",". And if your stylesheets or tests target the shared\ninput wrapper, ",[366,1095,1096],{},".bb-common-input-inner-container*"," was renamed to\n",[366,1099,1100],{},".common-input-wrapper--*",[1102,1103,1104],"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 .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}",{"title":380,"searchDepth":157,"depth":157,"links":1106},[1107,1108,1109,1110,1111,1112,1113,1114],{"id":450,"depth":135,"text":453},{"id":516,"depth":135,"text":519},{"id":562,"depth":135,"text":565},{"id":638,"depth":135,"text":641},{"id":704,"depth":135,"text":707},{"id":753,"depth":135,"text":756},{"id":986,"depth":135,"text":989},{"id":1014,"depth":135,"text":1017},"The numeric field: a real number in the model, clamped to min and max.","md",{},[1119,1120,1121,1122,1123,1124,1125,1126],{"id":450,"title":453},{"id":516,"title":519},{"id":562,"title":565},{"id":638,"title":641},{"id":704,"title":707},{"id":753,"title":756},{"id":986,"title":989},{"id":1014,"title":1017},{"title":201,"description":1115},"components\u002Fbb-number-input","8ClVta0xVaS201rdG9IsNOtwgh6T31Q5vLOiRdkw0f4",{"name":201,"slug":1131,"group":179,"description":1132,"entrypoint":1133,"docs":1134,"props":1137,"models":1427,"events":1430,"slots":1478,"exposed":1507,"pt":1508,"validated":1554,"migration":1570},"bb-number-input","Captures and validates numeric form values, emits a number value.","bitboss-ui",{"contract":1135,"source":1136},"ai\u002FBbNumberInput.md","ai\u002Fsource\u002FBbNumberInput.md",[1138,1143,1147,1151,1156,1159,1162,1166,1169,1173,1176,1180,1183,1186,1189,1193,1198,1202,1205,1210,1213,1217,1222,1225,1228,1231,1234,1238,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365,1367,1369,1371,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1410,1413,1416,1419,1424],{"name":657,"type":1139,"required":1140,"default":352,"description":1141,"note":1142,"demo":638},"string | undefined",false,"Name of the icon to be added at the end of the input.","The append position is contested, by priority: clear button → spinner (`loading`) → error icon (`hasErrors`) → this. On a `clearable` or validatable field your icon is the first thing displaced, so prefer `prepend:icon` for decoration.",{"name":1144,"type":1139,"required":1140,"default":1145,"description":1146,"note":352,"demo":352},"autocomplete","\"off\"","Guides the browser as to the type of information expected in the field.",{"name":1148,"type":1149,"required":1140,"default":352,"description":1150,"note":352,"demo":352},"autofocus","Booleanish | undefined","Sets autofocus on page load.",{"name":690,"type":1152,"required":1140,"default":1153,"description":1154,"note":1155,"demo":986},"boolean | undefined","false","Displays a clear button when the input has a value and is being interacted with.","Emits `null`, not `0` or `''`. Suppressed on `disabled` and `readonly` fields, and it takes the append position from `append:icon`.",{"name":1059,"type":1152,"required":1140,"default":1153,"description":1157,"note":1158,"demo":1014},"Sets the component in a compact state.","The only density knob — this family has no `size` scale. Set it per view rather than per field, so a form does not mix two control heights.",{"name":713,"type":1139,"required":1140,"default":352,"description":1160,"note":1161,"demo":704},"Descriptive text displayed below the label and above the input. Unlike the hint it is always\nvisible, and it is linked to the input via `aria-describedby` (after any\n`errors` \u002F `warnings`, before the `hint`).","For what the user needs before typing. Anything about the acceptable range reads better in `hint`, next to the field they are about to get wrong.",{"name":1072,"type":1163,"required":1140,"default":352,"description":1164,"note":1165,"demo":1014},"InputDirection | undefined","Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.","Ignored — silently — unless the resolved label mode is `outside`. `floating` and `inside` embed the label in the field and force the vertical layout, including when the mode comes from `defaultInputLabelMode` rather than from the call site.",{"name":594,"type":1152,"required":1140,"default":1153,"description":1167,"note":1168,"demo":986},"Disables the component.","Blocks everything, arrow-key stepping included. For a number that is derived or detected rather than forbidden, `readonly` keeps it legible and copyable.",{"name":616,"type":1170,"required":1140,"default":352,"description":1171,"note":1172,"demo":704},"string | string[] | undefined","Can be a string or an array of string containing the messages to display.\nThey render in an `aria-live=\"polite\"` region (announced when they appear)\nand, while the list is non-empty, are referenced FIRST from the control's\n`aria-describedby`, so the reason the field is invalid is re-read whenever\nthe control regains focus.","Where a business rule lives, since `min` and `max` can only express a range and do it without a message. Non-empty is enough — `hasErrors` is only for when the message itself is elsewhere. Inside a validated form these merge with the rule messages rather than replacing them.",{"name":677,"type":1152,"required":1140,"default":1153,"description":1174,"note":1175,"demo":704},"Define if the component should be in an error state.\nIt usually attaches a CSS class for styling purposes.","Forces the error chrome without a message of its own. Reach for it when the text lives in a summary alert above the form.",{"name":1177,"type":1152,"required":1140,"default":1153,"description":1178,"note":1179,"demo":704},"hasWarnings","Define if the component should be in a warning state.\nSame chrome as errors with `--bb-warn`; errors take priority.","The amber counterpart of `hasErrors`, and equally a force-the-chrome flag. It never sets `aria-invalid`: a warning says \"unusual\", not \"wrong\".",{"name":1181,"type":1152,"required":1140,"default":1153,"description":1182,"note":352,"demo":352},"hideLabel","Visually hides the label of the input while maintaining accessibility.",{"name":558,"type":1139,"required":1140,"default":352,"description":1184,"note":1185,"demo":704},"Text box to be displayed near the input, usually to indicate instructions.","The natural home for the range or the unit, because `min` and `max` correct a value in silence. Pair with `persistentHint` when the range matters before focus, not just during it.",{"name":1187,"type":1139,"required":1140,"default":352,"description":1188,"note":352,"demo":352},"id","The identifier of the component.",{"name":458,"type":1190,"required":850,"default":352,"description":1191,"note":1192,"demo":450},"string","Text content of the label of the element.","Names the field for display and for assistive technology only. It does not set `name`, and it is not the field name in a validated form either — that one is a slug of this text.",{"name":1194,"type":1195,"required":1140,"default":352,"description":1196,"note":1197,"demo":1014},"labelMode","\"outside\" | \"floating\" | \"inside\" | undefined","Label rendering mode.","Unset, it falls back to the project-wide `defaultInputLabelMode`, so a product can go all-floating from the plugin config without touching call sites. Do not pair `floating` with a `placeholder` — the resting label already occupies that spot.",{"name":1199,"type":1200,"required":1140,"default":352,"description":1201,"note":352,"demo":352},"labelPosition","\"left\" | \"center\" | \"right\" | undefined","Sets the text alignment of the label.",{"name":673,"type":1152,"required":1140,"default":1153,"description":1203,"note":1204,"demo":986},"Sets the component in a loading state, usually triggering some visual styles.","Visual only. The field stays editable underneath the spinner, so if an async check has to settle before the value is usable, guard that yourself.",{"name":375,"type":1206,"required":1140,"default":1207,"description":1208,"note":1209,"demo":516},"number | undefined","Number.MAX_SAFE_INTEGER","Maximum value cap.","Clamps the emitted value with no message and no event, so a user who types past it sees their number change under them. Say the ceiling in `hint` before they reach it.",{"name":536,"type":1206,"required":1140,"default":540,"description":1211,"note":1212,"demo":516},"Maximum precision of the number.","`0` pins the field to whole numbers and `2` to currency. It caps decimals as they are typed rather than rounding on blur.",{"name":371,"type":1206,"required":1140,"default":1214,"description":1215,"note":1216,"demo":516},"Number.MIN_SAFE_INTEGER","Minimum value cap.","Clamps the emitted value in silence, the same way `max` does. It also makes a `min_value` rule redundant in a validated form: the value can never get low enough to fail it.",{"name":1218,"type":1219,"required":850,"default":477,"description":1220,"note":1221,"demo":450},"modelValue","string | number | null","Used by v-model.","Accepts `number | string | null` and emits `number | null`. A cleared field emits `null`, never `''` and never `NaN`, and an in-progress string (`-`, `.`, `12.`) emits nothing until it parses.",{"name":498,"type":1139,"required":1140,"default":352,"description":1223,"note":1224,"demo":450},"Defines the name of the input.","Not derived from `label`. Leave it unset and the rendered `\u003Cinput>` carries no `name` at all, so a native form post or a `FormData` read silently drops the value.",{"name":1226,"type":1152,"required":1140,"default":1153,"description":1227,"note":352,"demo":352},"persistentHint","Keeps the hint displayed.",{"name":1229,"type":1139,"required":1140,"default":352,"description":1230,"note":352,"demo":352},"placeholder","String displayed when there's no data.",{"name":654,"type":1139,"required":1140,"default":352,"description":1232,"note":1233,"demo":638},"Name of the icon to be added at the start of the input.","The uncontested position: nothing in the component competes for it. Put decorative iconography here and keep `append:icon` for fields that are neither clearable nor validatable.",{"name":1235,"type":1236,"required":1140,"default":352,"description":1237,"note":352,"demo":352},"pt","PtMap\u003CTextControlPtPart, FormControlPtState> | undefined","Passthrough, object form: `{ box: '…', 'box:errors': '…' }` — the same\nkeys as the `pt:*` attributes without the prefix. See the `pt:\u003Cpart>` row.",{"name":1239,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box","PtValue | undefined",{"name":1242,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box:disabled",{"name":1244,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box:errors",{"name":1246,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box:has-value",{"name":1248,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box:loading",{"name":1250,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box:readonly",{"name":1252,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:box:warnings",{"name":1254,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear",{"name":1256,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear:disabled",{"name":1258,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear:errors",{"name":1260,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear:has-value",{"name":1262,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear:loading",{"name":1264,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear:readonly",{"name":1266,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:clear:warnings",{"name":1268,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description",{"name":1270,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description:disabled",{"name":1272,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description:errors",{"name":1274,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description:has-value",{"name":1276,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description:loading",{"name":1278,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description:readonly",{"name":1280,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:description:warnings",{"name":1282,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint",{"name":1284,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint:disabled",{"name":1286,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint:errors",{"name":1288,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint:has-value",{"name":1290,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint:loading",{"name":1292,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint:readonly",{"name":1294,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:hint:warnings",{"name":1296,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon",{"name":1298,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon:disabled",{"name":1300,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon:errors",{"name":1302,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon:has-value",{"name":1304,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon:loading",{"name":1306,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon:readonly",{"name":1308,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:icon:warnings",{"name":1310,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input",{"name":1312,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input:disabled",{"name":1314,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input:errors",{"name":1316,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input:has-value",{"name":1318,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input:loading",{"name":1320,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input:readonly",{"name":1322,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:input:warnings",{"name":1324,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label",{"name":1326,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label:disabled",{"name":1328,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label:errors",{"name":1330,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label:has-value",{"name":1332,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label:loading",{"name":1334,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label:readonly",{"name":1336,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:label:warnings",{"name":1338,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message",{"name":1340,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message:disabled",{"name":1342,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message:errors",{"name":1344,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message:has-value",{"name":1346,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message:loading",{"name":1348,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message:readonly",{"name":1350,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:message:warnings",{"name":1352,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix",{"name":1354,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix:disabled",{"name":1356,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix:errors",{"name":1358,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix:has-value",{"name":1360,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix:loading",{"name":1362,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix:readonly",{"name":1364,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:prefix:warnings",{"name":1366,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root",{"name":1368,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root:disabled",{"name":1370,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root:errors",{"name":1372,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root:has-value",{"name":1374,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root:loading",{"name":1376,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root:readonly",{"name":1378,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:root:warnings",{"name":1380,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner",{"name":1382,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner:disabled",{"name":1384,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner:errors",{"name":1386,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner:has-value",{"name":1388,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner:loading",{"name":1390,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner:readonly",{"name":1392,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:spinner:warnings",{"name":1394,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix",{"name":1396,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix:disabled",{"name":1398,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix:errors",{"name":1400,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix:has-value",{"name":1402,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix:loading",{"name":1404,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix:readonly",{"name":1406,"type":1240,"required":1140,"default":352,"description":352,"note":352,"demo":352},"pt:suffix:warnings",{"name":598,"type":1152,"required":1140,"default":1153,"description":1408,"note":1409,"demo":986},"Sets the input in a readonly state.","The right state for a number that is computed or detected rather than entered — a total, a weight read off a scale. Unlike `disabled` it stays legible and copyable, and it disables stepping just the same.",{"name":979,"type":1152,"required":1140,"default":1153,"description":1411,"note":1412,"demo":352},"Sets the input as required.","Forwards to the native input and validates nothing on its own. In a validated form it is also one of the two things that raise the required asterisk, the other being a literal `required` rule.",{"name":1414,"type":1152,"required":1140,"default":1153,"description":1415,"note":352,"demo":352},"reverse","Reverses the layout. Applicable in every direction the order of the label and the input is swapped.",{"name":570,"type":1206,"required":1140,"default":574,"description":1417,"note":1418,"demo":562},"Incremental unit used by ArrowUp \u002F ArrowDown and by the `increase` and `decrease` functions the slots receive.\nIt is NOT applied to manual input as a step of 5 would prevent the user from inserting a value like `115` because of rounding down.","Drives ArrowUp\u002FArrowDown and the `increase`\u002F`decrease` slot functions, and never constrains typed input. If multiples are a real rule, enforce them through `errors` on blur or on submit.",{"name":1420,"type":1421,"required":1140,"default":1422,"description":1423,"note":352,"demo":352},"variant","InputVariantType | undefined","'outline'","Visual variant of the field box — the same names and tokens as the\n`BbButton` variants. Colours only: height, padding and border width are\nidentical across variants, so a form never reflows when one changes.\n`'ghost'` has no border in any state (errors and warnings show through\nthe icon and the messages); every variant keeps the focus ring.\nRegister extra names with the plugin's `inputVariants` option.",{"name":730,"type":1170,"required":1140,"default":352,"description":1425,"note":1426,"demo":704},"Warning messages to display beneath the field, in their own `aria-live`\nregion and amber (`--bb-text-warn`). A string or array; a non-empty list\nimplies the warning state. Errors suppress warnings when both are set.\nWhile displayed they are also referenced from the control's\n`aria-describedby`, after any errors and before the description\u002Fhint.","For a number that is valid and still worth a second look. Errors win when both are set and the warnings are suppressed, so the field is never amber and red at once.",[1428],{"name":1218,"type":1219,"note":1429,"demo":450},"Seed it with `null` for an empty field rather than `0` — `0` is a number someone chose, and on a floating label it also stops the label from resting inside the field.",[1431,1434,1437,1440,1443,1446,1449,1452,1456,1459,1462,1465,1468,1471,1474],{"name":1432,"signature":1433,"description":352,"note":352,"demo":352},"blur","(event: \"blur\", event: FocusEvent): void",{"name":1435,"signature":1436,"description":352,"note":352,"demo":352},"change","(event: \"change\", event: Event): void",{"name":1438,"signature":1439,"description":352,"note":352,"demo":352},"click","(event: \"click\", event: MouseEvent): void",{"name":1441,"signature":1442,"description":352,"note":352,"demo":352},"compositionend","(event: \"compositionend\", event: CompositionEvent): void",{"name":1444,"signature":1445,"description":352,"note":352,"demo":352},"compositionstart","(event: \"compositionstart\", event: CompositionEvent): void",{"name":1447,"signature":1448,"description":352,"note":352,"demo":562},"decrease","(event: \"decrease\", value: number): void",{"name":1450,"signature":1451,"description":352,"note":352,"demo":352},"focus","(event: \"focus\", event: FocusEvent): void",{"name":1453,"signature":1454,"description":352,"note":1455,"demo":562},"increase","(event: \"increase\", value: number): void","Fires with the **new**, already clamped number, alongside `update:modelValue`. It is for reacting to a step, not for reading the value — `v-model` already has that.",{"name":1457,"signature":1458,"description":352,"note":352,"demo":352},"input","(event: \"input\", event: Event): void",{"name":1460,"signature":1461,"description":352,"note":352,"demo":352},"keydown","(event: \"keydown\", event: KeyboardEvent): void",{"name":1463,"signature":1464,"description":352,"note":352,"demo":352},"keyup","(event: \"keyup\", event: KeyboardEvent): void",{"name":1466,"signature":1467,"description":352,"note":352,"demo":352},"mousedown","(event: \"mousedown\", event: MouseEvent): void",{"name":1469,"signature":1470,"description":352,"note":352,"demo":352},"mouseup","(event: \"mouseup\", event: MouseEvent): void",{"name":1472,"signature":1473,"description":352,"note":352,"demo":352},"paste","(event: \"paste\", event: ClipboardEvent): void",{"name":1475,"signature":1476,"description":352,"note":1477,"demo":450},"update:modelValue","(event: \"update:modelValue\", value: number | null): void","Emits `number | null`. Do not add a watcher that re-parses or re-clamps what arrives here: the component has already done both.",[1479,1483,1487,1490,1494,1497,1500,1504],{"name":700,"type":1480,"description":1481,"note":1482,"demo":562},"BbNumberInputStepSlotProps","Content rendered after the number input, at the end of the inner container.\nTypically used to place increment\u002Fdecrement buttons next to the input.","Same `{ increase, decrease }` scope as `prepend`, and the same accessible-name obligation.",{"name":1484,"type":1480,"description":1485,"note":1486,"demo":352},"append-outer","Content rendered after the entire input control, outside the input chrome.","The uncontested place for an action beside the field, since nothing inside the component competes for it.",{"name":713,"type":1488,"description":1489,"note":352,"demo":352},"BbNumberInputDescriptionSlotProps","Replaces the description text. Provided alone (no `description` prop) it still\nrenders the description region and wires it into `aria-describedby`.",{"name":458,"type":1491,"description":1492,"note":1493,"demo":1014},"BbNumberInputLabelSlotProps","Replaces the default label text rendered above the number input.","Receives `{ text, hasErrors, hasWarnings }`. Replacing it removes anything the control drew beside the label, the required asterisk included, so put `BbAsterisk` back by hand.",{"name":647,"type":1480,"description":1495,"note":1496,"demo":638},"Inline content rendered at the start of the input field area, before the typed number.","Decoration only, inside the field. A currency symbol belongs here and never in the model.",{"name":697,"type":1480,"description":1498,"note":1499,"demo":562},"Content rendered before the number input, at the start of the inner container.","Receives `{ increase, decrease }`, which is how a minus button is built with no state on your side. It is icon-only, so give it an `aria-label`.",{"name":1501,"type":1480,"description":1502,"note":1503,"demo":352},"prepend-outer","Content rendered before the entire input control, outside the input chrome.","Outside the field chrome entirely. Reach for it when a stepper button should not sit inside the border — or when the append position is already taken by a clear button or a spinner.",{"name":650,"type":1480,"description":1505,"note":1506,"demo":638},"Inline content rendered at the end of the input field area, after the typed number.","The unit — `kg`, `°C`, `%`. Like `prefix` it is inert, so anything interactive goes in `prepend`\u002F`append` or the outer pair.",[],{"parts":1509,"states":1540},[1510,1513,1515,1517,1520,1522,1525,1527,1530,1533,1535,1537],{"name":1511,"description":1512},"root","The field's outer container: the label, the box and the lines under it.",{"name":458,"description":1514},"The label text above the box (the `label` prop).",{"name":713,"description":1516},"The muted line under the label (the `description` prop).",{"name":1518,"description":1519},"message","The errors \u002F warnings line under the box. A node of its own: it can show at the same time as `hint`.",{"name":558,"description":1521},"The helper line (the `hint` prop), shown on focus, or always with `persistent-hint`.",{"name":1523,"description":1524},"box","The bordered box around the input — border, background and radius; the `variant` paints here.",{"name":1457,"description":1526},"The native input element inside the box.",{"name":1528,"description":1529},"icon","The content icons, prepend and append — a broadcast. Chrome (the clear ✕, a chevron, the error \u002F warning glyph) is never in it.",{"name":1531,"description":1532},"spinner","The spinner inside the box while `loading`.",{"name":647,"description":1534},"The `#prefix` slot's wrapper, inside the box before the input.",{"name":650,"description":1536},"The `#suffix` slot's wrapper, inside the box after the input.",{"name":1538,"description":1539},"clear","The ✕ that empties this control (`clearable`) — one node, never a chip's own ✕.",[1541,1543,1545,1548,1550,1552],{"name":594,"description":1542},"Component-wide: the control is `disabled`.",{"name":616,"description":1544},"Component-wide: the control is in its error state (`errors` \u002F `has-errors`, or its validation) — the message line and the box turn red.",{"name":1546,"description":1547},"has-value","Component-wide: the control holds a value, by its own rule (`0` counts on `BbNumberInput`, `''` on `BbColorInput`).",{"name":673,"description":1549},"Component-wide: `loading` is on; the box shows its `spinner`.",{"name":598,"description":1551},"Component-wide: the control is `readonly` — shown, focusable, not editable.",{"name":730,"description":1553},"Component-wide: the control is in its warning state (`warnings` \u002F `has-warnings`) and not in an error state — errors win, so the two are never on together.",{"entrypoint":762,"props":1555},[1556,1560,1566],{"name":766,"type":1557,"required":1140,"default":352,"description":1558,"note":1559,"demo":753},"RuleExpression\u003Cstring | number | null>","vee-validate rules for this field.","Available only on the `bitboss-ui\u002Fvalidated` build of this control, which needs the `vee-validate` peer. Spend rules on what `min`\u002F`max` cannot say: they clamp rather than fail, so a rule that restates a bound can never fire.",{"name":1561,"type":1562,"required":1140,"default":1563,"description":1564,"note":1565,"demo":753},"validateOn","ValidateTiming[] | undefined","[\"blur\"]","Which interactions trigger validation (see\n`ValidatedFieldProps.validateOn` for the timing vocabulary).","Defaults to `['blur']` here, so a message appears when the user leaves the field rather than on every keystroke. A field already showing an error re-validates as they type regardless, so the message clears as soon as it is fixed.",{"name":1567,"type":1139,"required":1140,"default":352,"description":1568,"note":1569,"demo":753},"vid","Explicit vee-validate field name. **Usually omit it** — the name is derived\nautomatically from the control's `label`\u002F`legend`. Only set `vid` when that\nderivation wouldn't be unique (e.g. v-for rows, or array `v-model`s that\nshare a label). A control with no `label`\u002F`legend` (like `BbDropzone`) must\nprovide it.","The field name is a slug of `label` — \"Unit price\" becomes `unitprice` — so set `vid` when that would collide across a `v-for`, or when the submitted payload has to carry a specific key.",{"removed":1571,"renamed":1578},[1572],{"name":1573,"replacedBy":1177,"since":1574,"migration":1575,"silent":850,"fix":1576},"hasWarning","3.0.0-unreleased","ai\u002Fguides\u002Fmigration\u002Fv2-to-v3.md",{"kind":1577},"rename",[1579],{"from":1573,"to":1177,"since":1574,"migration":1575,"fix":1580},{"kind":1577},1790005163723]