bitboss-ui 3.0.0-beta.4 → 3.0.0-beta.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (947) hide show
  1. package/README.md +365 -98
  2. package/bin/bitboss-ui-mcp.mjs +2500 -74
  3. package/bin/bitboss-ui.mjs +729 -72
  4. package/dist/ai/BbAccordion.md +178 -56
  5. package/dist/ai/BbAlert.md +142 -30
  6. package/dist/ai/BbAsterisk.md +65 -4
  7. package/dist/ai/BbAvatar.md +194 -53
  8. package/dist/ai/BbBadge.md +253 -50
  9. package/dist/ai/BbBadgeButton.md +77 -21
  10. package/dist/ai/BbBaseButton.md +132 -51
  11. package/dist/ai/BbBaseCheckboxIcon.md +118 -26
  12. package/dist/ai/BbBaseRadioIcon.md +115 -26
  13. package/dist/ai/BbBaseSwitchIcon.md +123 -28
  14. package/dist/ai/BbBreadcrumbs.md +234 -58
  15. package/dist/ai/BbButton.md +389 -107
  16. package/dist/ai/BbCalendar.md +675 -0
  17. package/dist/ai/BbCheckbox.md +250 -80
  18. package/dist/ai/BbCheckboxGroup.md +575 -66
  19. package/dist/ai/BbCollapsible.md +158 -39
  20. package/dist/ai/BbColorInput.md +323 -82
  21. package/dist/ai/BbColorPalette.md +272 -66
  22. package/dist/ai/BbConfirm.md +220 -51
  23. package/dist/ai/BbConfirmPortal.md +1 -1
  24. package/dist/ai/BbDatePicker.md +274 -39
  25. package/dist/ai/BbDatePickerInput.md +331 -96
  26. package/dist/ai/BbDialog.md +492 -87
  27. package/dist/ai/BbDropdown.md +1187 -105
  28. package/dist/ai/BbDropdownButton.md +245 -66
  29. package/dist/ai/BbDropdownGroup.md +5 -5
  30. package/dist/ai/BbDropzone.md +140 -36
  31. package/dist/ai/BbForm.md +1187 -40
  32. package/dist/ai/BbIcon.md +102 -33
  33. package/dist/ai/BbIndicator.md +79 -12
  34. package/dist/ai/BbNumberInput.md +260 -87
  35. package/dist/ai/BbOffCanvas.md +396 -91
  36. package/dist/ai/BbPagination.md +202 -32
  37. package/dist/ai/BbPopover.md +221 -55
  38. package/dist/ai/BbProgress.md +137 -71
  39. package/dist/ai/BbPtScope.md +136 -0
  40. package/dist/ai/BbRadio.md +234 -43
  41. package/dist/ai/BbRadioGroup.md +529 -91
  42. package/dist/ai/BbRating.md +246 -61
  43. package/dist/ai/BbSelect.md +706 -123
  44. package/dist/ai/BbSelectPopover.md +441 -123
  45. package/dist/ai/BbSlider.md +276 -80
  46. package/dist/ai/BbSmoothHeight.md +145 -36
  47. package/dist/ai/BbSpinner.md +179 -81
  48. package/dist/ai/BbSwitch.md +255 -63
  49. package/dist/ai/BbSwitchGroup.md +394 -65
  50. package/dist/ai/BbTable.md +1767 -237
  51. package/dist/ai/BbTabs.md +901 -179
  52. package/dist/ai/BbTabsList.md +81 -7
  53. package/dist/ai/BbTabsPanels.md +77 -0
  54. package/dist/ai/BbTabsRoot.md +16 -15
  55. package/dist/ai/BbTag.md +265 -79
  56. package/dist/ai/BbTextInput.md +484 -102
  57. package/dist/ai/BbTextarea.md +318 -100
  58. package/dist/ai/BbTimePicker.md +164 -26
  59. package/dist/ai/BbTimePickerInput.md +282 -47
  60. package/dist/ai/BbToast.md +286 -40
  61. package/dist/ai/BbToastPortal.md +3 -3
  62. package/dist/ai/BbTooltip.md +187 -34
  63. package/dist/ai/BbTree.md +260 -85
  64. package/dist/ai/ChipsBox.md +46 -2
  65. package/dist/ai/ClearableButton.md +12 -0
  66. package/dist/ai/CommaBox.md +2 -1
  67. package/dist/ai/CommonField.md +64 -0
  68. package/dist/ai/CommonFieldInput.md +91 -0
  69. package/dist/ai/CommonPopover.md +17 -12
  70. package/dist/ai/CommonTimeSelector.md +63 -0
  71. package/dist/ai/ErrorIcon.md +20 -0
  72. package/dist/ai/FlatListBox.md +41 -11
  73. package/dist/ai/GroupedListBox.md +42 -12
  74. package/dist/ai/ListBox.md +46 -11
  75. package/dist/ai/OptionsContainer.md +13 -10
  76. package/dist/ai/WarningIcon.md +20 -0
  77. package/dist/ai/changelog.json +5076 -141
  78. package/dist/ai/components.json +52226 -10010
  79. package/dist/ai/composables/useBbConfig.md +72 -11
  80. package/dist/ai/composables/useBbDropdownContext.md +168 -0
  81. package/dist/ai/composables/useBbFormContext.md +51 -24
  82. package/dist/ai/composables/useBbFormField.md +145 -0
  83. package/dist/ai/composables/useBbTableContext.md +41 -19
  84. package/dist/ai/composables/useConfirm.md +16 -8
  85. package/dist/ai/composables/useCountdown.md +1 -1
  86. package/dist/ai/composables/useId.md +10 -10
  87. package/dist/ai/composables/useMobile.md +17 -10
  88. package/dist/ai/composables/useToast.md +25 -19
  89. package/dist/ai/design-tokens.json +947 -0
  90. package/dist/ai/design-tokens.manifest.yaml +175 -0
  91. package/dist/ai/guides/agent-contract.md +178 -22
  92. package/dist/ai/guides/ai-router.md +79 -40
  93. package/dist/ai/guides/app-layout.md +8 -4
  94. package/dist/ai/guides/coherence-playbook.md +8 -8
  95. package/dist/ai/guides/component-picker.md +42 -34
  96. package/dist/ai/guides/design-language.md +279 -99
  97. package/dist/ai/guides/design-tokens.md +512 -114
  98. package/dist/ai/guides/fetch-items-playbook.md +22 -16
  99. package/dist/ai/guides/icons-policy.md +70 -40
  100. package/dist/ai/guides/inertia-helpers.md +4 -1
  101. package/dist/ai/guides/inline-edit-playbook.md +13 -6
  102. package/dist/ai/guides/installation-and-plugin-setup.md +821 -73
  103. package/dist/ai/guides/migration/components/bb-accordion.md +37 -0
  104. package/dist/ai/guides/migration/components/bb-alert.md +2 -2
  105. package/dist/ai/guides/migration/components/bb-avatar.md +13 -14
  106. package/dist/ai/guides/migration/components/bb-badge.md +5 -5
  107. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +10 -8
  108. package/dist/ai/guides/migration/components/bb-button.md +80 -20
  109. package/dist/ai/guides/migration/components/bb-checkbox-group.md +116 -29
  110. package/dist/ai/guides/migration/components/bb-checkbox.md +53 -10
  111. package/dist/ai/guides/migration/components/bb-chip.md +6 -6
  112. package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
  113. package/dist/ai/guides/migration/components/bb-color-input.md +5 -5
  114. package/dist/ai/guides/migration/components/bb-color-palette.md +16 -9
  115. package/dist/ai/guides/migration/components/bb-date-picker-input.md +45 -35
  116. package/dist/ai/guides/migration/components/bb-dialog.md +69 -36
  117. package/dist/ai/guides/migration/components/bb-dropdown-button.md +7 -1
  118. package/dist/ai/guides/migration/components/bb-dropdown.md +31 -8
  119. package/dist/ai/guides/migration/components/bb-dropzone.md +8 -0
  120. package/dist/ai/guides/migration/components/bb-icon.md +7 -7
  121. package/dist/ai/guides/migration/components/bb-intersection.md +1 -1
  122. package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -31
  123. package/dist/ai/guides/migration/components/bb-pagination.md +10 -0
  124. package/dist/ai/guides/migration/components/bb-popover.md +19 -11
  125. package/dist/ai/guides/migration/components/bb-radio-group.md +14 -0
  126. package/dist/ai/guides/migration/components/bb-rating.md +61 -24
  127. package/dist/ai/guides/migration/components/bb-select-popover.md +9 -1
  128. package/dist/ai/guides/migration/components/bb-select.md +21 -4
  129. package/dist/ai/guides/migration/components/bb-slider.md +19 -6
  130. package/dist/ai/guides/migration/components/bb-switch-group.md +14 -0
  131. package/dist/ai/guides/migration/components/bb-table.md +574 -33
  132. package/dist/ai/guides/migration/components/bb-tabs.md +91 -41
  133. package/dist/ai/guides/migration/components/bb-tag.md +9 -7
  134. package/dist/ai/guides/migration/components/bb-text-input.md +12 -12
  135. package/dist/ai/guides/migration/components/bb-toast.md +2 -2
  136. package/dist/ai/guides/migration/components/bb-tooltip.md +18 -0
  137. package/dist/ai/guides/migration/components/bb-tree.md +11 -9
  138. package/dist/ai/guides/migration/components/use-confirm.md +9 -1
  139. package/dist/ai/guides/migration/v2-to-v3.md +852 -241
  140. package/dist/ai/guides/migration/v3-beta-css-classes.md +751 -0
  141. package/dist/ai/guides/migration/v3-beta-tooling.md +149 -0
  142. package/dist/ai/guides/options-items-playbook.md +161 -12
  143. package/dist/ai/guides/page-shell.md +1 -1
  144. package/dist/ai/guides/passthrough.md +968 -0
  145. package/dist/ai/guides/preset-components.md +364 -0
  146. package/dist/ai/guides/ssr-prefill.md +150 -0
  147. package/dist/ai/guides/validated-forms.md +471 -55
  148. package/dist/ai/guides/validation-libraries.md +171 -0
  149. package/dist/ai/guides/validation-providers.md +113 -0
  150. package/dist/ai/index.md +45 -44
  151. package/dist/ai/recipes/inertia/approvals-inbox.md +26 -10
  152. package/dist/ai/recipes/inertia/command-palette.md +2 -2
  153. package/dist/ai/recipes/inertia/inline-edit-workspace.md +46 -30
  154. package/dist/ai/recipes/inertia/layout-scaffold.md +6 -2
  155. package/dist/ai/recipes/inertia/onboarding.md +30 -8
  156. package/dist/ai/recipes/inertia/ownership-atlas.md +72 -49
  157. package/dist/ai/recipes/inertia/record-form.md +53 -19
  158. package/dist/ai/recipes/inertia/records-workspace.md +201 -49
  159. package/dist/ai/recipes/inertia/settings-workspace.md +3815 -0
  160. package/dist/ai/recipes/inertia/upload-center.md +54 -43
  161. package/dist/ai/recipes/inertia/wizard-form.md +98 -14
  162. package/dist/ai/recipes/nuxt/approvals-inbox.md +26 -10
  163. package/dist/ai/recipes/nuxt/command-palette.md +2 -2
  164. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +68 -52
  165. package/dist/ai/recipes/nuxt/layout-scaffold.md +6 -2
  166. package/dist/ai/recipes/nuxt/onboarding.md +30 -8
  167. package/dist/ai/recipes/nuxt/record-form.md +66 -22
  168. package/dist/ai/recipes/nuxt/records-workspace.md +199 -48
  169. package/dist/ai/recipes/nuxt/settings-workspace.md +3904 -0
  170. package/dist/ai/recipes/nuxt/upload-center.md +52 -41
  171. package/dist/ai/recipes/nuxt/wizard-form.md +98 -14
  172. package/dist/ai/recipes/vue/approvals-inbox.md +28 -12
  173. package/dist/ai/recipes/vue/command-palette.md +2 -2
  174. package/dist/ai/recipes/vue/inline-edit-workspace.md +69 -53
  175. package/dist/ai/recipes/vue/layout-scaffold.md +6 -2
  176. package/dist/ai/recipes/vue/onboarding.md +32 -8
  177. package/dist/ai/recipes/vue/record-form.md +81 -54
  178. package/dist/ai/recipes/vue/records-workspace.md +198 -49
  179. package/dist/ai/recipes/vue/settings-workspace.md +3842 -0
  180. package/dist/ai/recipes/vue/upload-center.md +53 -42
  181. package/dist/ai/recipes/vue/wizard-form.md +97 -14
  182. package/dist/ai/source/BbAccordion.md +90 -24
  183. package/dist/ai/source/BbAlert.md +209 -62
  184. package/dist/ai/source/BbAsterisk.md +54 -4
  185. package/dist/ai/source/BbAvatar.md +73 -16
  186. package/dist/ai/source/BbBadge.md +299 -97
  187. package/dist/ai/source/BbBadgeButton.md +252 -79
  188. package/dist/ai/source/BbBaseButton.md +108 -12
  189. package/dist/ai/source/BbBaseCheckboxIcon.md +153 -36
  190. package/dist/ai/source/BbBaseRadioIcon.md +123 -18
  191. package/dist/ai/source/BbBaseSwitchIcon.md +145 -33
  192. package/dist/ai/source/BbBreadcrumbs.md +392 -71
  193. package/dist/ai/source/BbButton.md +576 -172
  194. package/dist/ai/source/BbCalendar.md +1855 -0
  195. package/dist/ai/source/BbCheckbox.md +489 -68
  196. package/dist/ai/source/BbCheckboxGroup.md +984 -95
  197. package/dist/ai/source/BbCollapsible.md +96 -8
  198. package/dist/ai/source/BbColorInput.md +627 -67
  199. package/dist/ai/source/BbColorPalette.md +1335 -69
  200. package/dist/ai/source/BbConfirm.md +149 -7
  201. package/dist/ai/source/BbConfirmPortal.md +89 -3
  202. package/dist/ai/source/BbDatePicker.md +527 -381
  203. package/dist/ai/source/BbDatePickerInput.md +2077 -118
  204. package/dist/ai/source/BbDialog.md +531 -64
  205. package/dist/ai/source/BbDropdown.md +885 -175
  206. package/dist/ai/source/BbDropdownButton.md +405 -79
  207. package/dist/ai/source/BbDropdownGroup.md +687 -96
  208. package/dist/ai/source/BbDropzone.md +140 -31
  209. package/dist/ai/source/BbForm.md +878 -18
  210. package/dist/ai/source/BbIcon.md +134 -53
  211. package/dist/ai/source/BbIndicator.md +117 -60
  212. package/dist/ai/source/BbNumberInput.md +684 -84
  213. package/dist/ai/source/BbOffCanvas.md +1007 -261
  214. package/dist/ai/source/BbPagination.md +221 -31
  215. package/dist/ai/source/BbPopover.md +278 -89
  216. package/dist/ai/source/BbProgress.md +88 -26
  217. package/dist/ai/source/BbPtScope.md +54 -0
  218. package/dist/ai/source/BbRadio.md +388 -58
  219. package/dist/ai/source/BbRadioGroup.md +950 -109
  220. package/dist/ai/source/BbRating.md +742 -84
  221. package/dist/ai/source/BbSelect.md +1108 -96
  222. package/dist/ai/source/BbSelectPopover.md +879 -116
  223. package/dist/ai/source/BbSlider.md +1396 -103
  224. package/dist/ai/source/BbSmoothHeight.md +54 -4
  225. package/dist/ai/source/BbSpinner.md +62 -6
  226. package/dist/ai/source/BbSwitch.md +316 -60
  227. package/dist/ai/source/BbSwitchGroup.md +769 -83
  228. package/dist/ai/source/BbTable.md +7135 -1870
  229. package/dist/ai/source/BbTabs.md +368 -111
  230. package/dist/ai/source/BbTabsList.md +503 -146
  231. package/dist/ai/source/BbTabsPanels.md +625 -0
  232. package/dist/ai/source/BbTabsRoot.md +319 -100
  233. package/dist/ai/source/BbTag.md +841 -88
  234. package/dist/ai/source/BbTextInput.md +528 -68
  235. package/dist/ai/source/BbTextarea.md +536 -65
  236. package/dist/ai/source/BbTimePicker.md +395 -69
  237. package/dist/ai/source/BbTimePickerInput.md +1271 -106
  238. package/dist/ai/source/BbToast.md +250 -74
  239. package/dist/ai/source/BbToastPortal.md +210 -66
  240. package/dist/ai/source/BbTooltip.md +181 -30
  241. package/dist/ai/source/BbTree.md +88 -11
  242. package/dist/ai/source/ChipsBox.md +25 -5
  243. package/dist/ai/source/CommaBox.md +21 -6
  244. package/dist/ai/source/{BbBaseInputContainer.md → CommonField.md} +496 -250
  245. package/dist/ai/source/CommonFieldInput.md +869 -0
  246. package/dist/ai/source/CommonPopover.md +116 -30
  247. package/dist/ai/source/CommonTimeSelector.md +736 -0
  248. package/dist/ai/source/ErrorIcon.md +2 -2
  249. package/dist/ai/source/FlatListBox.md +192 -17
  250. package/dist/ai/source/GroupedListBox.md +240 -44
  251. package/dist/ai/source/GuidesComponent.md +14 -7
  252. package/dist/ai/source/ListBox.md +50 -8
  253. package/dist/ai/source/OptionsContainer.md +288 -60
  254. package/dist/ai/source/WarningIcon.md +2 -2
  255. package/dist/assets/css/reset.css_inline.js +1 -1
  256. package/dist/assets/svgs/star.svg_raw.js +4 -0
  257. package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +49 -32
  258. package/dist/components/BbAccordion/types.d.ts +35 -3
  259. package/dist/components/BbAccordion/types.js +11 -0
  260. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +46 -30
  261. package/dist/components/BbAlert/types.d.ts +37 -3
  262. package/dist/components/BbAlert/types.js +13 -0
  263. package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
  264. package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +23 -8
  265. package/dist/components/BbAsterisk/types.d.ts +18 -0
  266. package/dist/components/BbAsterisk/types.js +7 -0
  267. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
  268. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +57 -44
  269. package/dist/components/BbAvatar/types.d.ts +23 -0
  270. package/dist/components/BbAvatar/types.js +7 -0
  271. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +24 -18
  272. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +96 -53
  273. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +27 -8
  274. package/dist/components/BbBadge/badgeButtonContext.d.ts +25 -8
  275. package/dist/components/BbBadge/types.d.ts +46 -3
  276. package/dist/components/BbBadge/types.js +13 -0
  277. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +109 -96
  278. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +11 -11
  279. package/dist/components/BbBaseButton/types.d.ts +33 -3
  280. package/dist/components/BbBaseButton/types.js +9 -2
  281. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +50 -18
  282. package/dist/components/BbBaseCheckboxIcon/types.d.ts +31 -2
  283. package/dist/components/BbBaseCheckboxIcon/types.js +8 -0
  284. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +45 -15
  285. package/dist/components/BbBaseRadioIcon/types.d.ts +31 -2
  286. package/dist/components/BbBaseRadioIcon/types.js +8 -0
  287. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +48 -16
  288. package/dist/components/BbBaseSwitchIcon/types.d.ts +31 -2
  289. package/dist/components/BbBaseSwitchIcon/types.js +8 -0
  290. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +191 -134
  291. package/dist/components/BbBreadcrumbs/types.d.ts +45 -3
  292. package/dist/components/BbBreadcrumbs/types.js +12 -0
  293. package/dist/components/BbButton/BbButton.vue.d.ts +5 -0
  294. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +107 -81
  295. package/dist/components/BbButton/types.d.ts +113 -2
  296. package/dist/components/BbButton/types.js +12 -0
  297. package/dist/components/BbCalendar/BbCalendar.vue.d.ts +34 -0
  298. package/dist/components/BbCalendar/BbCalendar.vue.js +6 -0
  299. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +610 -0
  300. package/dist/components/BbCalendar/CalendarMonthPanel.vue.js +5 -0
  301. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +124 -0
  302. package/dist/components/BbCalendar/CalendarYearPanel.vue.js +5 -0
  303. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +129 -0
  304. package/dist/components/BbCalendar/calendarHost.d.ts +29 -0
  305. package/dist/components/BbCalendar/calendarHost.js +10 -0
  306. package/dist/components/BbCalendar/types.d.ts +229 -0
  307. package/dist/components/BbCalendar/types.js +29 -0
  308. package/dist/components/{BbBaseDatePicker/useDatePickerContext.d.ts → BbCalendar/useCalendarContext.d.ts} +10 -7
  309. package/dist/components/BbCalendar/useCalendarContext.js +11 -0
  310. package/dist/components/BbCalendar/useCalendarGrid.d.ts +208 -0
  311. package/dist/components/BbCalendar/useCalendarGrid.js +274 -0
  312. package/dist/components/BbCalendar/useDayGrid.d.ts +79 -0
  313. package/dist/components/BbCalendar/useDayGrid.js +204 -0
  314. package/dist/components/BbCalendar/useToday.d.ts +23 -0
  315. package/dist/components/BbCalendar/useToday.js +21 -0
  316. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +7 -7
  317. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +218 -72
  318. package/dist/components/BbCheckbox/types.d.ts +180 -13
  319. package/dist/components/BbCheckbox/types.js +8 -0
  320. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +15 -3
  321. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +343 -90
  322. package/dist/components/BbCheckboxGroup/types.d.ts +195 -20
  323. package/dist/components/BbCheckboxGroup/types.js +10 -0
  324. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
  325. package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +41 -19
  326. package/dist/components/BbCollapsible/types.d.ts +44 -1
  327. package/dist/components/BbCollapsible/types.js +7 -0
  328. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +17 -7
  329. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +332 -86
  330. package/dist/components/BbColorInput/types.d.ts +230 -12
  331. package/dist/components/BbColorInput/types.js +24 -0
  332. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +10 -2
  333. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +530 -108
  334. package/dist/components/BbColorPalette/types.d.ts +86 -10
  335. package/dist/components/BbColorPalette/types.js +12 -0
  336. package/dist/components/BbConfirm/BbConfirm.vue.d.ts +2 -1
  337. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +125 -76
  338. package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +1 -0
  339. package/dist/components/BbConfirm/types.d.ts +49 -0
  340. package/dist/components/BbConfirm/types.js +17 -0
  341. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +16 -10
  342. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +320 -223
  343. package/dist/components/BbDatePicker/types.d.ts +111 -17
  344. package/dist/components/BbDatePicker/types.js +33 -0
  345. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +16 -4
  346. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1187 -87
  347. package/dist/components/BbDatePickerInput/types.d.ts +224 -19
  348. package/dist/components/BbDatePickerInput/types.js +39 -0
  349. package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -3
  350. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +227 -136
  351. package/dist/components/BbDialog/types.d.ts +92 -3
  352. package/dist/components/BbDialog/types.js +16 -0
  353. package/dist/components/BbDialog/useDialogStack.d.ts +12 -0
  354. package/dist/components/BbDialog/useDialogStack.js +9 -2
  355. package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
  356. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +108 -96
  357. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +10 -2
  358. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +337 -268
  359. package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +5 -1
  360. package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +8 -2
  361. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +377 -293
  362. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +129 -118
  363. package/dist/components/BbDropdown/normalizeGroups.js +55 -31
  364. package/dist/components/BbDropdown/types.d.ts +288 -30
  365. package/dist/components/BbDropdown/types.js +21 -2
  366. package/dist/components/BbDropdown/useDropdownContext.d.ts +10 -4
  367. package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +1 -0
  368. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +18 -3
  369. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +179 -40
  370. package/dist/components/BbDropdownButton/types.d.ts +137 -8
  371. package/dist/components/BbDropdownButton/types.js +35 -0
  372. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +2 -2
  373. package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +186 -144
  374. package/dist/components/BbDropzone/types.d.ts +38 -4
  375. package/dist/components/BbDropzone/types.js +16 -0
  376. package/dist/components/BbForm/BbForm.vue.d.ts +96 -0
  377. package/dist/{validated → components/BbForm}/BbForm.vue.js +1 -1
  378. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +314 -0
  379. package/dist/components/BbForm/BbFormCustomField.d.ts +14 -0
  380. package/dist/components/BbForm/BbFormCustomField.js +43 -0
  381. package/dist/components/BbForm/bindFormField.d.ts +43 -0
  382. package/dist/components/BbForm/bindFormField.js +86 -0
  383. package/dist/components/BbForm/formFields.d.ts +64 -0
  384. package/dist/components/BbForm/formFields.js +11 -0
  385. package/dist/components/BbForm/formSchema.d.ts +56 -0
  386. package/dist/components/BbForm/formSchema.js +196 -0
  387. package/dist/components/BbForm/standardSchema.d.ts +59 -0
  388. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +59 -48
  389. package/dist/components/BbIcon/iconCache.d.ts +63 -0
  390. package/dist/components/BbIcon/iconCache.js +35 -0
  391. package/dist/components/BbIcon/types.d.ts +22 -2
  392. package/dist/components/BbIcon/types.js +7 -0
  393. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +34 -21
  394. package/dist/components/BbIndicator/types.d.ts +24 -0
  395. package/dist/components/BbIndicator/types.js +7 -0
  396. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +12 -8
  397. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +313 -85
  398. package/dist/components/BbNumberInput/types.d.ts +202 -18
  399. package/dist/components/BbNumberInput/types.js +8 -0
  400. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +3 -3
  401. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +311 -210
  402. package/dist/components/BbOffCanvas/types.d.ts +79 -6
  403. package/dist/components/BbOffCanvas/types.js +15 -0
  404. package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -2
  405. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +125 -90
  406. package/dist/components/BbPagination/types.d.ts +38 -0
  407. package/dist/components/BbPagination/types.js +13 -0
  408. package/dist/components/BbPopover/BbPopover.vue.d.ts +4 -4
  409. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +219 -179
  410. package/dist/components/BbPopover/types.d.ts +51 -5
  411. package/dist/components/BbPopover/types.js +14 -0
  412. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +29 -16
  413. package/dist/components/BbProgress/types.d.ts +25 -0
  414. package/dist/components/BbProgress/types.js +7 -0
  415. package/dist/components/BbPtScope/BbPtScope.vue.d.ts +12 -0
  416. package/dist/components/BbPtScope/BbPtScope.vue.js +5 -0
  417. package/dist/components/BbPtScope/BbPtScope.vue_vue_type_script_setup_true_lang.js +13 -0
  418. package/dist/components/BbPtScope/types.d.ts +15 -0
  419. package/dist/components/BbRadio/BbRadio.vue.d.ts +7 -7
  420. package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +172 -59
  421. package/dist/components/BbRadio/types.d.ts +152 -13
  422. package/dist/components/BbRadio/types.js +8 -0
  423. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +14 -2
  424. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +326 -92
  425. package/dist/components/BbRadioGroup/types.d.ts +198 -22
  426. package/dist/components/BbRadioGroup/types.js +10 -0
  427. package/dist/components/BbRating/BbRating.vue.d.ts +10 -8
  428. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +261 -78
  429. package/dist/components/BbRating/types.d.ts +174 -13
  430. package/dist/components/BbRating/types.js +21 -0
  431. package/dist/components/BbSelect/BbSelect.vue.d.ts +17 -3
  432. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +558 -84
  433. package/dist/components/BbSelect/types.d.ts +241 -20
  434. package/dist/components/BbSelect/types.js +41 -0
  435. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +15 -1
  436. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +529 -360
  437. package/dist/components/BbSelectPopover/sheetChipAttrs.d.ts +18 -0
  438. package/dist/components/BbSelectPopover/sheetChipAttrs.js +5 -0
  439. package/dist/components/BbSelectPopover/types.d.ts +127 -9
  440. package/dist/components/BbSelectPopover/types.js +24 -0
  441. package/dist/components/BbSlider/BbSlider.vue.d.ts +13 -8
  442. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +470 -97
  443. package/dist/components/BbSlider/types.d.ts +202 -17
  444. package/dist/components/BbSlider/types.js +26 -0
  445. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
  446. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +60 -48
  447. package/dist/components/BbSmoothHeight/types.d.ts +19 -0
  448. package/dist/components/BbSmoothHeight/types.js +7 -0
  449. package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +27 -14
  450. package/dist/components/BbSpinner/types.d.ts +22 -1
  451. package/dist/components/BbSpinner/types.js +7 -0
  452. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +7 -7
  453. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +224 -78
  454. package/dist/components/BbSwitch/types.d.ts +25 -10
  455. package/dist/components/BbSwitch/types.js +5 -0
  456. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +14 -2
  457. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +343 -90
  458. package/dist/components/BbSwitchGroup/types.d.ts +30 -7
  459. package/dist/components/BbSwitchGroup/types.js +5 -0
  460. package/dist/components/BbTable/BbTable.vue.d.ts +27 -6
  461. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +2054 -688
  462. package/dist/components/BbTable/BbTableDataRow.d.ts +196 -0
  463. package/dist/components/BbTable/BbTableDataRow.js +151 -0
  464. package/dist/components/BbTable/BbTableExpandRow.d.ts +84 -0
  465. package/dist/components/BbTable/BbTableExpandRow.js +62 -0
  466. package/dist/components/BbTable/BbTableSelectToggle.d.ts +120 -0
  467. package/dist/components/BbTable/BbTableSelectToggle.js +122 -0
  468. package/dist/components/BbTable/gridWidgets.d.ts +30 -0
  469. package/dist/components/BbTable/gridWidgets.js +14 -0
  470. package/dist/components/BbTable/types.d.ts +473 -123
  471. package/dist/components/BbTable/types.js +31 -0
  472. package/dist/components/BbTable/utils.d.ts +145 -4
  473. package/dist/components/BbTable/utils.js +154 -37
  474. package/dist/components/BbTabs/BbTabs.vue.d.ts +3 -1
  475. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +62 -26
  476. package/dist/components/BbTabs/BbTabsList.vue.d.ts +3 -10
  477. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +143 -81
  478. package/dist/components/BbTabs/BbTabsPanels.vue.d.ts +12 -0
  479. package/dist/components/{BbBaseSwitch/BbBaseSwitch.vue.js → BbTabs/BbTabsPanels.vue.js} +2 -2
  480. package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +59 -0
  481. package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +3 -1
  482. package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +2 -1
  483. package/dist/components/BbTabs/types.d.ts +183 -23
  484. package/dist/components/BbTabs/types.js +34 -0
  485. package/dist/components/BbTag/BbTag.vue.d.ts +13 -10
  486. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +397 -92
  487. package/dist/components/BbTag/types.d.ts +141 -15
  488. package/dist/components/BbTag/types.js +22 -0
  489. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +10 -8
  490. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +265 -84
  491. package/dist/components/BbTextInput/types.d.ts +168 -13
  492. package/dist/components/BbTextInput/types.js +8 -0
  493. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +7 -7
  494. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +297 -94
  495. package/dist/components/BbTextarea/types.d.ts +158 -14
  496. package/dist/components/BbTextarea/types.js +8 -0
  497. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +12 -4
  498. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +199 -122
  499. package/dist/components/BbTimePicker/types.d.ts +94 -7
  500. package/dist/components/BbTimePicker/types.js +18 -0
  501. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +14 -4
  502. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +762 -86
  503. package/dist/components/BbTimePickerInput/types.d.ts +171 -22
  504. package/dist/components/BbTimePickerInput/types.js +25 -0
  505. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +63 -25
  506. package/dist/components/BbToast/BbToastMessage.vue.d.ts +4 -1
  507. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +79 -76
  508. package/dist/components/BbToast/BbToastPortal.vue.d.ts +1 -0
  509. package/dist/components/BbToast/BbToastRegion.vue.d.ts +4 -1
  510. package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +72 -64
  511. package/dist/components/BbToast/types.d.ts +54 -1
  512. package/dist/components/BbToast/types.js +28 -0
  513. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +104 -87
  514. package/dist/components/BbTooltip/types.d.ts +40 -2
  515. package/dist/components/BbTooltip/types.js +7 -0
  516. package/dist/components/BbTree/BbTree.vue.d.ts +15 -3
  517. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +49 -29
  518. package/dist/components/BbTree/BbTreeLevel.vue.d.ts +1 -1
  519. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +17 -16
  520. package/dist/components/BbTree/context.d.ts +9 -1
  521. package/dist/components/BbTree/types.d.ts +40 -5
  522. package/dist/components/BbTree/types.js +7 -0
  523. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +46 -44
  524. package/dist/components/ChipsBox/types.d.ts +7 -0
  525. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
  526. package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +11 -7
  527. package/dist/components/CommaBox/types.d.ts +7 -0
  528. package/dist/components/{BbBaseInputContainer/BbBaseInputContainer.vue.d.ts → CommonField/CommonField.vue.d.ts} +5 -5
  529. package/dist/components/{BbBaseRadio/BbBaseRadio.vue.js → CommonField/CommonField.vue.js} +2 -2
  530. package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +195 -0
  531. package/dist/components/CommonField/messageHeightMatrix.d.ts +2 -0
  532. package/dist/components/{BbBaseInputContainer → CommonField}/types.d.ts +59 -16
  533. package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.d.ts → CommonFieldInput/CommonFieldInput.vue.d.ts} +5 -4
  534. package/dist/components/{BbBaseRadioGroup/BbBaseRadioGroup.vue.js → CommonFieldInput/CommonFieldInput.vue.js} +2 -2
  535. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +120 -0
  536. package/dist/components/CommonFieldInput/boxBorderMatrix.d.ts +10 -0
  537. package/dist/components/{CommonInputWrapper → CommonFieldInput}/types.d.ts +27 -8
  538. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +11 -2
  539. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +76 -63
  540. package/dist/components/CommonPopover/types.d.ts +27 -8
  541. package/dist/components/{BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts → CommonTimeSelector/CommonTimeSelector.vue.d.ts} +21 -2
  542. package/dist/components/{BbBaseColorPalette/BbBaseColorPalette.vue.js → CommonTimeSelector/CommonTimeSelector.vue.js} +2 -2
  543. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +236 -0
  544. package/dist/components/CommonTimeSelector/types.d.ts +6 -0
  545. package/dist/components/FlatListBox/FlatListBox.vue.d.ts +5 -1
  546. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +165 -95
  547. package/dist/components/FlatListBox/types.d.ts +28 -2
  548. package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +5 -1
  549. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +217 -134
  550. package/dist/components/GroupedListBox/types.d.ts +28 -2
  551. package/dist/components/ListBox/ListBox.vue.d.ts +5 -1
  552. package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +95 -69
  553. package/dist/components/ListBox/types.d.ts +28 -2
  554. package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -1
  555. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +109 -37
  556. package/dist/components/OptionsContainer/types.d.ts +53 -9
  557. package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +8 -8
  558. package/dist/components/Transitions/Slide.vue.js +1 -1
  559. package/dist/composables/ssrMarker.d.ts +15 -0
  560. package/dist/composables/ssrMarker.js +19 -0
  561. package/dist/composables/useBaseOptions.d.ts +12 -1
  562. package/dist/composables/useBaseOptions.js +83 -37
  563. package/dist/composables/useBbConfig.d.ts +27 -6
  564. package/dist/composables/useBbConfig.js +8 -2
  565. package/dist/composables/useBbDropdownContext.d.ts +5 -0
  566. package/dist/composables/useBbFormContext.d.ts +131 -8
  567. package/dist/composables/useBbFormContext.js +49 -30
  568. package/dist/composables/useBbFormField.d.ts +51 -0
  569. package/dist/composables/useBbFormField.js +55 -0
  570. package/dist/composables/useBbTableContext.d.ts +45 -1
  571. package/dist/composables/useBbTableContext.js +93 -87
  572. package/dist/composables/useBbTabsContext.d.ts +15 -9
  573. package/dist/composables/useBbTabsContext.js +121 -90
  574. package/dist/composables/useClosingInert.d.ts +4 -4
  575. package/dist/composables/useCoarsePointer.js +7 -10
  576. package/dist/composables/useCoherence.js +1 -1
  577. package/dist/composables/useConfig.d.ts +59 -0
  578. package/dist/composables/useConfig.js +15 -0
  579. package/dist/composables/useConfirm.d.ts +39 -7
  580. package/dist/composables/useConfirm.js +50 -41
  581. package/dist/composables/useEscapeStackEntry.d.ts +13 -0
  582. package/dist/composables/useEscapeStackEntry.js +16 -0
  583. package/dist/composables/useFormBinding.d.ts +124 -0
  584. package/dist/composables/useFormBinding.js +44 -0
  585. package/dist/composables/useHydrated.d.ts +18 -0
  586. package/dist/composables/useHydrated.js +13 -7
  587. package/dist/composables/useId.d.ts +4 -3
  588. package/dist/composables/useId.js +1 -7
  589. package/dist/composables/useItemsGetter.d.ts +39 -0
  590. package/dist/composables/useItemsGetter.js +56 -18
  591. package/dist/composables/useKeyboardInset.d.ts +28 -0
  592. package/dist/composables/useKeyboardInset.js +32 -0
  593. package/dist/composables/useLocale.js +10 -7
  594. package/dist/composables/useMobile.js +7 -10
  595. package/dist/composables/usePassthrough.d.ts +228 -0
  596. package/dist/composables/usePassthrough.js +247 -0
  597. package/dist/composables/usePrefill.d.ts +22 -2
  598. package/dist/composables/usePrefill.js +36 -19
  599. package/dist/composables/useSafeAreaInternal.js +1 -1
  600. package/dist/composables/useSegmentedFields.d.ts +2 -2
  601. package/dist/composables/useServerPrefetch.d.ts +28 -0
  602. package/dist/composables/useServerPrefetch.js +9 -0
  603. package/dist/composables/useSsrState.d.ts +28 -0
  604. package/dist/composables/useSsrState.js +13 -0
  605. package/dist/composables/useTableWidthContext.d.ts +24 -4
  606. package/dist/composables/useTableWidthContext.js +31 -28
  607. package/dist/composables/useToast.d.ts +18 -1
  608. package/dist/composables/useToast.js +31 -18
  609. package/dist/composables/useToggleInput.d.ts +44 -0
  610. package/dist/composables/useToggleInput.js +39 -0
  611. package/dist/composables/useViewportWidth.d.ts +5 -25
  612. package/dist/composables/useViewportWidth.js +14 -7
  613. package/dist/deprecation/ai-deprecations.json.d.ts +2008 -285
  614. package/dist/deprecation/ai-deprecations.json.js +1 -1
  615. package/dist/deprecation/removedProps.js +9 -4
  616. package/dist/directives/bbDropdown.d.ts +15 -4
  617. package/dist/directives/bbDropdown.js +31 -9
  618. package/dist/directives/bbTooltip.d.ts +6 -0
  619. package/dist/directives/createPopoverDirective.d.ts +62 -0
  620. package/dist/directives/createPopoverDirective.js +92 -37
  621. package/dist/i18n/index.d.ts +10 -16
  622. package/dist/i18n/locales/cs.json +9 -5
  623. package/dist/i18n/locales/da.json +9 -5
  624. package/dist/i18n/locales/de.json +9 -5
  625. package/dist/i18n/locales/el.json +9 -5
  626. package/dist/i18n/locales/en.json +9 -5
  627. package/dist/i18n/locales/es.json +9 -5
  628. package/dist/i18n/locales/fi.json +9 -5
  629. package/dist/i18n/locales/fr.json +9 -5
  630. package/dist/i18n/locales/hu.json +9 -5
  631. package/dist/i18n/locales/it.json +9 -5
  632. package/dist/i18n/locales/ja.json +9 -5
  633. package/dist/i18n/locales/ko.json +9 -5
  634. package/dist/i18n/locales/nb.json +9 -5
  635. package/dist/i18n/locales/nl.json +9 -5
  636. package/dist/i18n/locales/pl.json +9 -5
  637. package/dist/i18n/locales/pt.json +9 -5
  638. package/dist/i18n/locales/ro.json +9 -5
  639. package/dist/i18n/locales/ru.json +9 -5
  640. package/dist/i18n/locales/sv.json +9 -5
  641. package/dist/i18n/locales/tr.json +9 -5
  642. package/dist/i18n/locales/uk.json +9 -5
  643. package/dist/i18n/locales/zh-cn.json +9 -5
  644. package/dist/icon-scan.d.ts +276 -0
  645. package/dist/icon-scan.js +485 -0
  646. package/dist/icons-whitelist.d.ts +5 -4
  647. package/dist/index.d.ts +40 -21
  648. package/dist/index.js +78 -71
  649. package/dist/llms-full.txt +61619 -28049
  650. package/dist/llms-medium.txt +1501 -368
  651. package/dist/llms.txt +32 -15
  652. package/dist/locale-blueprint.json +9 -5
  653. package/dist/nuxt-auto-imports.d.ts +76 -0
  654. package/dist/nuxt-auto-imports.js +32 -0
  655. package/dist/nuxt-module.d.ts +30 -15
  656. package/dist/nuxt.js +35 -9
  657. package/dist/passthrough-deduper.js +5 -0
  658. package/dist/plugin.d.ts +10 -1
  659. package/dist/plugin.js +29 -19
  660. package/dist/project-dts.d.ts +84 -0
  661. package/dist/project-dts.js +170 -0
  662. package/dist/reset.css +1 -1
  663. package/dist/runtime/nuxt-plugin.js +34 -21
  664. package/dist/styles.css +3 -2
  665. package/dist/types/AlertVariant.d.ts +10 -1
  666. package/dist/types/BadgeVariant.d.ts +16 -5
  667. package/dist/types/ButtonVariant.d.ts +12 -1
  668. package/dist/types/ColumnName.d.ts +30 -3
  669. package/dist/types/CommonProps.d.ts +2 -2
  670. package/dist/types/Config.d.ts +94 -1
  671. package/dist/types/ConfirmVariant.d.ts +8 -1
  672. package/dist/types/DropdownItemVariant.d.ts +8 -1
  673. package/dist/types/FieldLayout.d.ts +32 -0
  674. package/dist/types/IndicatorVariant.d.ts +11 -1
  675. package/dist/types/InputVariant.d.ts +30 -0
  676. package/dist/types/ItemProps.d.ts +50 -0
  677. package/dist/types/Option.d.ts +6 -0
  678. package/dist/types/PtScope.d.ts +15 -0
  679. package/dist/types/RegistryKey.d.ts +10 -0
  680. package/dist/types/TabsVariant.d.ts +25 -0
  681. package/dist/types/ToastVariant.d.ts +12 -2
  682. package/dist/types/TooltipVariant.d.ts +8 -1
  683. package/dist/types/passthrough.d.ts +362 -0
  684. package/dist/types/passthrough.js +78 -0
  685. package/dist/types/ptComponentMap.d.ts +62 -0
  686. package/dist/utilities/functions/hasVnodeListener.d.ts +16 -0
  687. package/dist/utilities/functions/hasVnodeListener.js +12 -0
  688. package/dist/utilities/functions/isImeComposing.d.ts +7 -0
  689. package/dist/utilities/functions/isImeComposing.js +4 -0
  690. package/dist/utilities/functions/itemProps.d.ts +46 -0
  691. package/dist/utilities/functions/itemProps.js +47 -0
  692. package/dist/utilities/functions/slotKey.d.ts +13 -8
  693. package/dist/utilities/functions/slotKey.js +78 -2
  694. package/dist/utilities/functions/snapToStep.js +2 -1
  695. package/dist/utilities/functions/toggleInput.d.ts +114 -0
  696. package/dist/utilities/functions/toggleInput.js +61 -0
  697. package/dist/utilities/functions/warnRemovedAttrs.d.ts +27 -1
  698. package/dist/utilities/functions/warnRemovedAttrs.js +85 -14
  699. package/dist/utilities/misc/listboxMetrics.d.ts +9 -3
  700. package/dist/utilities/misc/listboxMetrics.js +5 -2
  701. package/dist/utilities/misc/ssrStateInjectionKey.d.ts +47 -0
  702. package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
  703. package/dist/utilities/misc/ssrValue.d.ts +20 -0
  704. package/dist/utilities/misc/ssrValue.js +7 -0
  705. package/dist/utils/cssLayers.d.ts +91 -0
  706. package/dist/utils/cssLayers.js +43 -0
  707. package/dist/utils/injectLibraryStyles.d.ts +3 -1
  708. package/dist/utils/injectLibraryStyles.js +24 -23
  709. package/dist/utils/overlayEscapeStack.d.ts +10 -0
  710. package/dist/utils/overlayEscapeStack.js +5 -3
  711. package/dist/utils/passthrough.d.ts +67 -0
  712. package/dist/utils/passthrough.js +100 -0
  713. package/dist/utils/passthroughDeduper.d.ts +2 -0
  714. package/dist/utils/ptScope.d.ts +8 -0
  715. package/dist/utils/ptScope.js +4 -0
  716. package/dist/utils/versionCheck.d.ts +19 -0
  717. package/dist/utils/versionCheck.js +18 -0
  718. package/dist/vite-plugin.d.ts +301 -53
  719. package/dist/vite.js +554 -375
  720. package/llms.txt +33 -16
  721. package/package.json +50 -27
  722. package/scripts/lib/check-fix.mjs +129 -0
  723. package/scripts/lib/component-attr-targets.ts +123 -0
  724. package/scripts/lib/component-tree.ts +648 -0
  725. package/scripts/lib/css-class-check.mjs +326 -0
  726. package/scripts/lib/css-class-surface.mjs +292 -0
  727. package/scripts/lib/css-color-resolve.mjs +172 -0
  728. package/scripts/lib/css-local-check.mjs +267 -0
  729. package/scripts/lib/design-token-manifest.mjs +499 -0
  730. package/scripts/lib/doc-sections.mjs +250 -0
  731. package/scripts/lib/ensure-manifest.mjs +28 -5
  732. package/scripts/lib/eslint-disable.mjs +146 -0
  733. package/scripts/lib/eslint-plugin.d.ts +68 -1
  734. package/scripts/lib/eslint-plugin.mjs +1525 -30
  735. package/scripts/lib/form-v-model.mjs +190 -0
  736. package/scripts/lib/hand-imported-styles.mjs +326 -0
  737. package/scripts/lib/hand-roll-hints.mjs +50 -6
  738. package/scripts/lib/html-attributes.mjs +353 -0
  739. package/scripts/lib/local-components.mjs +177 -0
  740. package/scripts/lib/mcp-config.mjs +87 -58
  741. package/scripts/lib/migrate-fix.mjs +62 -3
  742. package/scripts/lib/project-variant-dts.mjs +144 -0
  743. package/scripts/lib/public-type-exports.mjs +273 -0
  744. package/scripts/lib/reactive-v-model.mjs +221 -0
  745. package/scripts/lib/slot-key.mjs +147 -0
  746. package/scripts/lib/slot-renames.mjs +46 -0
  747. package/scripts/lib/squashed-slot-words.mjs +133 -0
  748. package/scripts/lib/validate-bb-markup.mjs +2350 -105
  749. package/scripts/lib/wrapper-props.mjs +188 -0
  750. package/dist/ai/BbBaseCheckbox.md +0 -49
  751. package/dist/ai/BbBaseCheckboxGroup.md +0 -64
  752. package/dist/ai/BbBaseColorInput.md +0 -65
  753. package/dist/ai/BbBaseColorPalette.md +0 -39
  754. package/dist/ai/BbBaseDatePicker.md +0 -43
  755. package/dist/ai/BbBaseDatePickerInput.md +0 -73
  756. package/dist/ai/BbBaseInputContainer.md +0 -48
  757. package/dist/ai/BbBaseNumberInput.md +0 -71
  758. package/dist/ai/BbBaseRadio.md +0 -46
  759. package/dist/ai/BbBaseRadioGroup.md +0 -64
  760. package/dist/ai/BbBaseRating.md +0 -52
  761. package/dist/ai/BbBaseSelect.md +0 -88
  762. package/dist/ai/BbBaseSlider.md +0 -56
  763. package/dist/ai/BbBaseSwitch.md +0 -49
  764. package/dist/ai/BbBaseSwitchGroup.md +0 -64
  765. package/dist/ai/BbBaseTag.md +0 -68
  766. package/dist/ai/BbBaseTextInput.md +0 -75
  767. package/dist/ai/BbBaseTextarea.md +0 -62
  768. package/dist/ai/BbBaseTimePickerInput.md +0 -62
  769. package/dist/ai/BbTabsPanes.md +0 -27
  770. package/dist/ai/CommonInputWrapper.md +0 -42
  771. package/dist/ai/source/BbBaseCheckbox.md +0 -461
  772. package/dist/ai/source/BbBaseCheckboxGroup.md +0 -554
  773. package/dist/ai/source/BbBaseColorInput.md +0 -431
  774. package/dist/ai/source/BbBaseColorPalette.md +0 -942
  775. package/dist/ai/source/BbBaseDatePicker.md +0 -1448
  776. package/dist/ai/source/BbBaseDatePickerInput.md +0 -1940
  777. package/dist/ai/source/BbBaseNumberInput.md +0 -617
  778. package/dist/ai/source/BbBaseRadio.md +0 -381
  779. package/dist/ai/source/BbBaseRadioGroup.md +0 -539
  780. package/dist/ai/source/BbBaseRating.md +0 -607
  781. package/dist/ai/source/BbBaseSelect.md +0 -945
  782. package/dist/ai/source/BbBaseSlider.md +0 -1144
  783. package/dist/ai/source/BbBaseSwitch.md +0 -246
  784. package/dist/ai/source/BbBaseSwitchGroup.md +0 -302
  785. package/dist/ai/source/BbBaseTag.md +0 -694
  786. package/dist/ai/source/BbBaseTextInput.md +0 -511
  787. package/dist/ai/source/BbBaseTextarea.md +0 -504
  788. package/dist/ai/source/BbBaseTimePickerInput.md +0 -1037
  789. package/dist/ai/source/BbTabsPanes.md +0 -377
  790. package/dist/ai/source/CommonInputWrapper.md +0 -584
  791. package/dist/alert-variants.d.ts +0 -19
  792. package/dist/assets/svgs/sort.svg_raw.js +0 -4
  793. package/dist/badge-variants.d.ts +0 -19
  794. package/dist/button-variants.d.ts +0 -21
  795. package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
  796. package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
  797. package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
  798. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +0 -40
  799. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +0 -6
  800. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +0 -145
  801. package/dist/components/BbBaseCheckbox/types.d.ts +0 -224
  802. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +0 -19
  803. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +0 -6
  804. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -190
  805. package/dist/components/BbBaseCheckboxGroup/types.d.ts +0 -257
  806. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +0 -43
  807. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +0 -6
  808. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +0 -184
  809. package/dist/components/BbBaseColorInput/types.d.ts +0 -219
  810. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +0 -13
  811. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +0 -395
  812. package/dist/components/BbBaseColorPalette/types.d.ts +0 -40
  813. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.d.ts +0 -20
  814. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +0 -6
  815. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +0 -407
  816. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +0 -47
  817. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +0 -5
  818. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +0 -318
  819. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +0 -5
  820. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +0 -115
  821. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +0 -5
  822. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +0 -116
  823. package/dist/components/BbBaseDatePicker/types.d.ts +0 -108
  824. package/dist/components/BbBaseDatePicker/useDatePickerContext.js +0 -11
  825. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +0 -31
  826. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +0 -6
  827. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -737
  828. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +0 -6
  829. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +0 -204
  830. package/dist/components/BbBaseDatePickerInput/types.d.ts +0 -325
  831. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +0 -6
  832. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +0 -190
  833. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +0 -52
  834. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +0 -6
  835. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +0 -215
  836. package/dist/components/BbBaseNumberInput/types.d.ts +0 -211
  837. package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +0 -33
  838. package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +0 -113
  839. package/dist/components/BbBaseRadio/types.d.ts +0 -179
  840. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +0 -19
  841. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -179
  842. package/dist/components/BbBaseRadioGroup/types.d.ts +0 -223
  843. package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +0 -38
  844. package/dist/components/BbBaseRating/BbBaseRating.vue.js +0 -6
  845. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +0 -192
  846. package/dist/components/BbBaseRating/types.d.ts +0 -176
  847. package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +0 -19
  848. package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +0 -6
  849. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +0 -311
  850. package/dist/components/BbBaseSelect/types.d.ts +0 -297
  851. package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +0 -35
  852. package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +0 -6
  853. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +0 -340
  854. package/dist/components/BbBaseSlider/types.d.ts +0 -200
  855. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +0 -35
  856. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +0 -146
  857. package/dist/components/BbBaseSwitch/types.d.ts +0 -10
  858. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +0 -19
  859. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +0 -6
  860. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -190
  861. package/dist/components/BbBaseSwitchGroup/types.d.ts +0 -8
  862. package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +0 -50
  863. package/dist/components/BbBaseTag/BbBaseTag.vue.js +0 -6
  864. package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +0 -266
  865. package/dist/components/BbBaseTag/types.d.ts +0 -160
  866. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +0 -45
  867. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +0 -6
  868. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +0 -200
  869. package/dist/components/BbBaseTextInput/types.d.ts +0 -209
  870. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +0 -39
  871. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +0 -6
  872. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +0 -187
  873. package/dist/components/BbBaseTextarea/types.d.ts +0 -170
  874. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +0 -27
  875. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +0 -6
  876. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -519
  877. package/dist/components/BbBaseTimePickerInput/types.d.ts +0 -151
  878. package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +0 -16
  879. package/dist/components/BbTabs/BbTabsPanes.vue.js +0 -6
  880. package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +0 -35
  881. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +0 -6
  882. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +0 -107
  883. package/dist/confirm-variants.d.ts +0 -17
  884. package/dist/dropdown-item-variants.d.ts +0 -17
  885. package/dist/indicator-variants.d.ts +0 -20
  886. package/dist/locale-registry.d.ts +0 -37
  887. package/dist/toast-variants.d.ts +0 -20
  888. package/dist/tooltip-variants.d.ts +0 -17
  889. package/dist/types/InputDirection.d.ts +0 -15
  890. package/dist/validated/BbCheckbox.vue.d.ts +0 -29
  891. package/dist/validated/BbCheckbox.vue.js +0 -5
  892. package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +0 -75
  893. package/dist/validated/BbCheckboxGroup.vue.d.ts +0 -34
  894. package/dist/validated/BbCheckboxGroup.vue.js +0 -5
  895. package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -82
  896. package/dist/validated/BbColorInput.vue.d.ts +0 -37
  897. package/dist/validated/BbColorInput.vue.js +0 -5
  898. package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +0 -75
  899. package/dist/validated/BbDatePickerInput.vue.d.ts +0 -41
  900. package/dist/validated/BbDatePickerInput.vue.js +0 -5
  901. package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -90
  902. package/dist/validated/BbDropzone.vue.d.ts +0 -24
  903. package/dist/validated/BbDropzone.vue.js +0 -5
  904. package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +0 -45
  905. package/dist/validated/BbForm.vue.d.ts +0 -28
  906. package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +0 -42
  907. package/dist/validated/BbNumberInput.vue.d.ts +0 -36
  908. package/dist/validated/BbNumberInput.vue.js +0 -5
  909. package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +0 -72
  910. package/dist/validated/BbRadioGroup.vue.d.ts +0 -34
  911. package/dist/validated/BbRadioGroup.vue.js +0 -5
  912. package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -78
  913. package/dist/validated/BbRating.vue.d.ts +0 -30
  914. package/dist/validated/BbRating.vue.js +0 -5
  915. package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +0 -63
  916. package/dist/validated/BbSelect.vue.d.ts +0 -46
  917. package/dist/validated/BbSelect.vue.js +0 -5
  918. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +0 -109
  919. package/dist/validated/BbSlider.vue.d.ts +0 -36
  920. package/dist/validated/BbSlider.vue.js +0 -5
  921. package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +0 -69
  922. package/dist/validated/BbSwitch.vue.d.ts +0 -29
  923. package/dist/validated/BbSwitch.vue.js +0 -5
  924. package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +0 -75
  925. package/dist/validated/BbSwitchGroup.vue.d.ts +0 -34
  926. package/dist/validated/BbSwitchGroup.vue.js +0 -5
  927. package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -82
  928. package/dist/validated/BbTag.vue.d.ts +0 -36
  929. package/dist/validated/BbTag.vue.js +0 -5
  930. package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +0 -72
  931. package/dist/validated/BbTextInput.vue.d.ts +0 -36
  932. package/dist/validated/BbTextInput.vue.js +0 -5
  933. package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +0 -72
  934. package/dist/validated/BbTextarea.vue.d.ts +0 -36
  935. package/dist/validated/BbTextarea.vue.js +0 -5
  936. package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +0 -70
  937. package/dist/validated/BbTimePickerInput.vue.d.ts +0 -37
  938. package/dist/validated/BbTimePickerInput.vue.js +0 -5
  939. package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -81
  940. package/dist/validated/index.d.ts +0 -43
  941. package/dist/validated/useValidatedField.d.ts +0 -93
  942. package/dist/validated/useValidatedField.js +0 -51
  943. package/dist/validated.js +0 -21
  944. /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts → BbCalendar/CalendarMonthPanel.vue.d.ts} +0 -0
  945. /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts → BbCalendar/CalendarYearPanel.vue.d.ts} +0 -0
  946. /package/dist/{components/BbBaseDatePicker/typeahead.d.ts → composables/useTypeahead.d.ts} +0 -0
  947. /package/dist/{components/BbBaseDatePicker/typeahead.js → composables/useTypeahead.js} +0 -0
@@ -6,98 +6,196 @@
6
6
 
7
7
  ```vue
8
8
  <template>
9
- <BaseInputContainer
9
+ <CommonField
10
10
  :id="id"
11
11
  class="bb-number-input"
12
12
  :clearable="isClearable"
13
13
  :compact="compact"
14
14
  :description="description"
15
- :direction="direction"
16
15
  :disabled="disabled"
17
- :errors="errors"
16
+ :errors="fieldErrors"
18
17
  :has-errors="hasErrors"
19
18
  :has-value="hasValue"
20
- :has-warning="hasWarning"
19
+ :has-warnings="hasWarnings"
21
20
  :hide-label="hideLabel"
22
21
  :hint="hint"
23
22
  :label="label"
24
23
  :label-mode="resolvedLabelMode"
25
24
  :label-position="labelPosition"
25
+ :layout="layout"
26
26
  :loading="loading"
27
- :model-value="modelValue"
28
27
  :name="name"
28
+ :passthrough="passthrough"
29
29
  :readonly="readonly"
30
30
  :reverse="reverse"
31
+ :show-asterisk="showAsterisk"
31
32
  :show-hint="showHint"
32
33
  :warnings="warnings"
34
+ v-bind="passthrough.forwardAttrs"
33
35
  >
34
36
  <template #label="data"><slot name="label" v-bind="data"></slot></template>
35
- <template #input="{ id, hasErrors, hasWarning, ariaDescribedby }">
36
- <BaseNumberInput
37
- :id="id"
37
+ <template v-if="$slots.description" #description="data"
38
+ ><slot name="description" v-bind="data"></slot
39
+ ></template>
40
+ <template
41
+ #input="{
42
+ id: fieldId,
43
+ hasErrors: fieldHasErrors,
44
+ hasWarnings: fieldHasWarnings,
45
+ ariaDescribedby,
46
+ ariaLabelledby,
47
+ }"
48
+ >
49
+ <CommonFieldInput
38
50
  :append:icon="props['append:icon']"
39
- :aria-describedby="ariaDescribedby"
40
- :autocomplete="autocomplete"
41
- :autofocus="autofocus"
42
51
  :clearable="clearable"
43
52
  :compact="compact"
44
53
  :disabled="disabled"
45
- :has-errors="hasErrors"
46
- :has-warning="hasWarning"
54
+ :has-errors="fieldHasErrors"
55
+ :has-value="hasValue"
56
+ :has-warnings="fieldHasWarnings"
47
57
  :loading="loading"
48
- :max="max"
49
- :max-precision="maxPrecision"
50
- :min="min"
51
- :model-value="modelValue"
52
- :name="name"
53
- :placeholder="placeholder"
58
+ :passthrough="passthrough"
54
59
  :prepend:icon="props['prepend:icon']"
55
60
  :readonly="readonly"
56
- :required="required"
57
- :step="step"
58
- v-bind="eventListeners"
61
+ :reserve-append-space="clearable"
62
+ :variant="variant"
63
+ @click:clear="emit('update:modelValue', null)"
59
64
  >
60
- <template #append-outer="data"
61
- ><slot name="append-outer" v-bind="data"
65
+ <template #prepend:outer
66
+ ><slot
67
+ :decrease="decrease"
68
+ :increase="increase"
69
+ name="prepend:outer"
70
+ ></slot
71
+ ></template>
72
+ <template #prepend
73
+ ><slot :decrease="decrease" :increase="increase" name="prepend"
62
74
  /></template>
63
- <template #append="data"><slot name="append" v-bind="data" /></template>
64
- <template v-if="$slots.prefix" #prefix="data"
65
- ><slot name="prefix" v-bind="data"
75
+ <template v-if="$slots.prefix" #prefix
76
+ ><slot :decrease="decrease" :increase="increase" name="prefix"
66
77
  /></template>
67
- <template #prepend="data"
68
- ><slot name="prepend" v-bind="data"
78
+ <!-- eslint-disable vue/attributes-order -- `pt` binds LAST so a consumer listener runs after ours (PASSTHROUGH.md T17) -->
79
+ <input
80
+ :id="fieldId"
81
+ ref="input"
82
+ :aria-describedby="ariaDescribedby"
83
+ :aria-disabled="disabled || undefined"
84
+ :aria-invalid="fieldHasErrors || undefined"
85
+ :aria-labelledby="ariaLabelledby"
86
+ :aria-readonly="readonly || undefined"
87
+ :aria-valuemax="max !== Number.MAX_SAFE_INTEGER ? max : undefined"
88
+ :aria-valuemin="min !== Number.MIN_SAFE_INTEGER ? min : undefined"
89
+ :aria-valuenow="isNotNil(fieldModel) ? fieldModel : undefined"
90
+ :autocomplete="autocomplete"
91
+ :autofocus="autofocus"
92
+ class="bb-number-input__input"
93
+ :disabled="disabled"
94
+ inputmode="decimal"
95
+ :name="name"
96
+ :placeholder="placeholder"
97
+ :readonly="readonly"
98
+ :required="fieldRequired"
99
+ :aria-required="fieldAriaRequired"
100
+ role="spinbutton"
101
+ size="1"
102
+ type="text"
103
+ v-ssr-value="ssrDisplayValue"
104
+ @input.stop="onInput"
105
+ v-bind="mergeProps(passthrough.controlAttrs, inputBindings)"
106
+ />
107
+ <!-- eslint-enable vue/attributes-order -->
108
+ <template #append
109
+ ><slot :decrease="decrease" :increase="increase" name="append"
69
110
  /></template>
70
- <template v-if="$slots.suffix" #suffix="data"
71
- ><slot name="suffix" v-bind="data"
111
+ <template v-if="$slots.suffix" #suffix
112
+ ><slot :decrease="decrease" :increase="increase" name="suffix"
72
113
  /></template>
73
- <template #prepend-outer="data"
74
- ><slot name="prepend-outer" v-bind="data"
75
- /></template>
76
- </BaseNumberInput>
114
+ <template #append:outer
115
+ ><slot
116
+ :decrease="decrease"
117
+ :increase="increase"
118
+ name="append:outer"
119
+ ></slot
120
+ ></template>
121
+ </CommonFieldInput>
77
122
  </template>
78
- </BaseInputContainer>
123
+ </CommonField>
79
124
  </template>
80
125
 
81
126
  <script setup lang="ts">
82
- import BaseInputContainer from '../BbBaseInputContainer/BbBaseInputContainer.vue';
83
- import BaseNumberInput from '../BbBaseNumberInput/BbBaseNumberInput.vue';
84
- import { computed, ref } from 'vue';
85
- import { config } from 'virtual:bitboss-ui/config';
127
+ import { removedPropsFor } from '@/deprecation/removedProps';
128
+ import { warnRemovedAttrs } from '@/utilities/functions/warnRemovedAttrs';
129
+ /**
130
+ * BbNumberInput
131
+ *
132
+ * Numeric text input with resilient sanitization and editing ergonomics.
133
+ *
134
+ * Key behaviors:
135
+ * - Accepts free-form keyboard input and normalizes progressively.
136
+ * - Preserves intermediate states users type while composing a number
137
+ * (for example ".", "-.", "12.").
138
+ * - Emits `null` for empty/invalid input and `number` for finite values.
139
+ * - Clamps output to `max` while typing and to `min` on blur and Enter; limits
140
+ * decimals via `maxPrecision`.
141
+ * - Supports keyboard stepping with ArrowUp/ArrowDown.
142
+ * - Hands `increase()` / `decrease()` to every slot for step controls.
143
+ */
144
+ import { computed, mergeProps, onMounted, ref, useAttrs, watch } from 'vue';
145
+ import CommonField from '../CommonField/CommonField.vue';
146
+ import CommonFieldInput from '../CommonFieldInput/CommonFieldInput.vue';
147
+ import { useConfig } from '@/composables/useConfig';
148
+ import { useFormBinding } from '@/composables/useFormBinding';
149
+ import {
150
+ formControlPtActive,
151
+ TEXT_CONTROL_NATIVE_ATTRS,
152
+ usePassthrough,
153
+ } from '@/composables/usePassthrough';
154
+ import { clamp } from '@/utilities/functions/clamp';
155
+ import { clampPrecision } from '@/utilities/functions/clampPrecision';
156
+ import { isNil } from '@/utilities/functions/isNil';
86
157
  import { isNotNil } from '@/utilities/functions/isNotNil';
87
- import type {
88
- BbNumberInputProps,
89
- BbNumberInputEvents,
90
- BbNumberInputSlots,
158
+ import { vSsrValue } from '@/utilities/misc/ssrValue';
159
+ import {
160
+ BB_NUMBER_INPUT_PT,
161
+ type BbNumberInputProps,
162
+ type BbNumberInputEvents,
163
+ type BbNumberInputSlots,
91
164
  } from './types';
92
- export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
93
165
 
94
- const props = withDefaults(defineProps<BbNumberInputProps>(), {
95
- modelValue: null,
166
+ defineOptions({ inheritAttrs: false });
167
+ // `min` / `max` / `step` / `maxPrecision` drive the clamp and step math and
168
+ // `aria-valuemin` / `aria-valuemax` (the SAFE_INTEGER sentinels stay silent),
169
+ // so they are defaulted here, before anything reads them.
170
+ const declaredProps = withDefaults(defineProps<BbNumberInputProps>(), {
171
+ autocomplete: 'off',
172
+ max: Number.MAX_SAFE_INTEGER,
173
+ maxPrecision: 8,
174
+ min: Number.MIN_SAFE_INTEGER,
175
+ step: 1,
96
176
  });
97
177
 
98
- const emit = defineEmits<BbNumberInputEvents>();
99
-
178
+ const declaredEmit = defineEmits<BbNumberInputEvents>();
100
179
  defineSlots<BbNumberInputSlots>();
180
+ // Inside a BbForm the field joins it (Q54.4): `props` / `emit` are bound.
181
+ const {
182
+ props,
183
+ emit,
184
+ showAsterisk,
185
+ errors: fieldErrors,
186
+ required: fieldRequired,
187
+ ariaRequired: fieldAriaRequired,
188
+ model: fieldModel,
189
+ } = useFormBinding(declaredProps, declaredEmit, {
190
+ componentName: 'BbNumberInput',
191
+ identifierFallback: () => declaredProps.label,
192
+ emptyValue: () => null,
193
+ leaveOn: 'blur',
194
+ });
195
+ if (process.env.NODE_ENV !== 'production')
196
+ warnRemovedAttrs('BbNumberInput', removedPropsFor('BbNumberInput'));
197
+ const config = useConfig();
198
+ export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
101
199
 
102
200
  const active = ref(false);
103
201
  const showHint = computed(() => props.persistentHint || active.value);
@@ -110,11 +208,251 @@ const resolvedLabelMode = computed(
110
208
  );
111
209
 
112
210
  /**
113
- * These events are just propagated
211
+ * Passthrough (plans/passthrough/BbNumberInput.md). The frame binds `root` /
212
+ * `label` / `description` / `message` / `hint`, the box row binds `box` /
213
+ * `icon` / `spinner` / `prefix` / `suffix` / `clear`, and `input` lands on the
214
+ * native control below. `hasValue` follows this control's own notion of a
215
+ * value.
216
+ */
217
+ const passthrough = usePassthrough({
218
+ component: 'BbNumberInput',
219
+ attrs: useAttrs(),
220
+ controlAttrs: TEXT_CONTROL_NATIVE_ATTRS,
221
+ props,
222
+ parts: BB_NUMBER_INPUT_PT.parts,
223
+ states: BB_NUMBER_INPUT_PT.states,
224
+ active: formControlPtActive(props, () => hasValue.value),
225
+ });
226
+
227
+ const input = ref<HTMLInputElement | null>(null);
228
+
229
+ /**
230
+ * Applies precision and range guards to finalized numeric values. While the
231
+ * user types, only `max` applies (`withMin: false`): the digits of 15 pass
232
+ * through 1, and snapping that to a `min` of 10 would turn "15" into "105".
233
+ * `min` applies on blur and on Enter (`applyMin`).
234
+ */
235
+ const normalizeNumericValue = (value: number, withMin = true): number => {
236
+ const precisionAligned = Number(
237
+ clampPrecision(value.toString(), props.maxPrecision)
238
+ );
239
+ return clamp(precisionAligned, withMin ? props.min : -Infinity, props.max);
240
+ };
241
+
242
+ /**
243
+ * On blur and on Enter, raises a value typed below `min` to `min`, in the
244
+ * field and in the model. Never while typing: the live clamp ignores `min`, or
245
+ * "15" with min 10 could not be typed through its "1".
246
+ */
247
+ const applyMin = () => {
248
+ if (!input.value?.value) return;
249
+ const typed = Number(makeValidNumberString(input.value.value));
250
+ if (!Number.isFinite(typed) || typed >= props.min) return;
251
+ input.value.value = props.min.toString();
252
+ emit('update:modelValue', props.min);
253
+ };
254
+
255
+ /**
256
+ * Resolves the next stepped value relative to the current model.
257
+ */
258
+ const nextStep = (value: number) => {
259
+ const base = Number(props.modelValue || 0);
260
+ return normalizeNumericValue(base + value);
261
+ };
262
+
263
+ /**
264
+ * Decrements value by `step` and emits both semantic and model events.
265
+ */
266
+ const decrease = () => {
267
+ if (props.disabled || props.readonly) return;
268
+ const valueToEmit = nextStep(props.step * -1);
269
+ emit('decrease', valueToEmit);
270
+ emit('update:modelValue', valueToEmit);
271
+ };
272
+
273
+ /**
274
+ * Increments value by `step` and emits both semantic and model events.
275
+ */
276
+ const increase = () => {
277
+ if (props.disabled || props.readonly) return;
278
+ const valueToEmit = nextStep(props.step);
279
+ emit('increase', valueToEmit);
280
+ emit('update:modelValue', valueToEmit);
281
+ };
282
+
283
+ /**
284
+ * Input normalization pipeline.
285
+ *
286
+ * Order matters:
287
+ * 1) Limit total length to guard against very large pasted payloads.
288
+ * 2) Normalize decimal separator (comma -> period).
289
+ * 3) Strip unsupported characters and duplicate separators/signs.
290
+ * 4) Keep transient but valid-in-progress states (like "." -> "0.").
291
+ * 5) Clamp parsable values to `min`/`max`.
292
+ * 6) Emit normalized numeric model value.
293
+ * 7) Sync visible input and preserve caret position when transformed.
294
+ */
295
+ const onInput = (event: Event) => {
296
+ if (!input.value) return;
297
+ if (event.target instanceof HTMLInputElement) {
298
+ const value = event.target.value;
299
+ const selectionStart = event.target.selectionStart;
300
+ const selectionEnd = event.target.selectionEnd;
301
+ emit('input', event);
302
+
303
+ let nextInputValue = value;
304
+ nextInputValue = limitLength(nextInputValue);
305
+ nextInputValue = replaceCommaWithPeriod(nextInputValue);
306
+ nextInputValue = removeUnwantedSymbols(nextInputValue);
307
+ nextInputValue = defaultPad(nextInputValue);
308
+ if (isParsableString(nextInputValue)) {
309
+ nextInputValue = clampValue(nextInputValue);
310
+ }
311
+ let valueToEmit: null | number = null;
312
+ if (nextInputValue) {
313
+ const validString = makeValidNumberString(nextInputValue);
314
+ const parsedValue = Number(validString);
315
+ if (Number.isFinite(parsedValue)) {
316
+ valueToEmit = normalizeNumericValue(parsedValue, false);
317
+ }
318
+ }
319
+ emit('update:modelValue', valueToEmit);
320
+ const clamped = clampPrecision(nextInputValue, props.maxPrecision);
321
+ if (input.value.value !== clamped) {
322
+ input.value.value = clamped;
323
+ if (selectionStart !== null && selectionEnd !== null) {
324
+ const delta = clamped.length - value.length;
325
+ const nextStart = Math.max(0, selectionStart + delta);
326
+ const nextEnd = Math.max(0, selectionEnd + delta);
327
+ input.value.setSelectionRange(nextStart, nextEnd);
328
+ }
329
+ }
330
+ }
331
+ };
332
+
333
+ /**
334
+ * Handles keyboard step controls while still propagating keydown events.
335
+ */
336
+ const onKeydown = (event: KeyboardEvent) => {
337
+ if (event.key === 'ArrowUp') {
338
+ event.preventDefault();
339
+ increase();
340
+ } else if (event.key === 'ArrowDown') {
341
+ event.preventDefault();
342
+ decrease();
343
+ } else if (event.key === 'Enter') {
344
+ // Q56.14: before the browser's implicit submission (it follows keydown),
345
+ // so a surrounding form submits the corrected value, not the typed one.
346
+ applyMin();
347
+ }
348
+ };
349
+
350
+ /**
351
+ * Normalises the decimal separator to a period and drops grouping separators,
352
+ * so a pasted or typed European number is not read a thousand times smaller
353
+ * (`1.234,56` used to become 1.23456):
354
+ * - both `.` and `,` present: the LAST one is the decimal, the rest group
355
+ * (`1.234,56` → 1234.56, `1,234.56` → 1234.56);
356
+ * - one kind repeated: it groups (`1.234.567` → 1234567);
357
+ * - one separator: it is the decimal, comma or period (`1,5` → 1.5).
358
+ */
359
+ const replaceCommaWithPeriod = (value: string): string => {
360
+ const lastComma = value.lastIndexOf(',');
361
+ const lastPeriod = value.lastIndexOf('.');
362
+ const count = (ch: string) => value.split(ch).length - 1;
363
+ if (lastComma !== -1 && lastPeriod !== -1) {
364
+ const decimal = lastComma > lastPeriod ? lastComma : lastPeriod;
365
+ return [...value]
366
+ .map((ch, i) =>
367
+ ch === ',' || ch === '.' ? (i === decimal ? '.' : '') : ch
368
+ )
369
+ .join('');
370
+ }
371
+ const separator = lastComma !== -1 ? ',' : '.';
372
+ if (count(separator) > 1) return value.replaceAll(separator, '');
373
+ return value.replace(',', '.');
374
+ };
375
+
376
+ /**
377
+ * Keeps only the first sign/decimal separator and drops other characters.
378
+ */
379
+ const removeUnwantedSymbols = (value: string): string => {
380
+ if (!value.length) return '';
381
+ const noDashes = value[0] + value.slice(1).replaceAll('-', '');
382
+ const onlyOnePeriod = [...noDashes]
383
+ .reduce((acc: string[], curr: string) => {
384
+ if (curr === '.' && acc.includes('.')) return acc;
385
+ acc.push(curr);
386
+ return acc;
387
+ }, [])
388
+ .join('');
389
+ const onlyNumbers = onlyOnePeriod.replaceAll(/[^\d.-]/g, '');
390
+ return onlyNumbers;
391
+ };
392
+
393
+ /**
394
+ * Converts edge typing states into valid progressive forms.
395
+ */
396
+ const defaultPad = (value: string): string => {
397
+ if (value.startsWith('.') && value.length === 1) return `0.`;
398
+ if (value.startsWith('-.') && value.length === 2) return `-0.`;
399
+ return value;
400
+ };
401
+
402
+ /**
403
+ * Restricts raw input length before deeper parsing/sanitization.
404
+ */
405
+ const limitLength = (value: string): string => {
406
+ return value.slice(0, 20);
407
+ };
408
+
409
+ /**
410
+ * Applies the `max` boundary to parsable input strings (`min` waits for
411
+ * blur, see `normalizeNumericValue`).
412
+ */
413
+ const clampValue = (value: string): string => {
414
+ const parsed = Number(value);
415
+ const clamped = clamp(parsed, -Infinity, props.max);
416
+ const canonical = clamped.toString();
417
+ // Below 1e-6 `toString()` goes exponential ("1e-7"); an unclamped value
418
+ // keeps the typed decimal so the next keystroke extends it.
419
+ if (clamped === parsed && canonical.includes('e')) return value;
420
+ return canonical;
421
+ };
422
+
423
+ /**
424
+ * Distinguishes fully parsable values from in-progress user input.
425
+ */
426
+ const isParsableString = (value: string): boolean => {
427
+ if (value.length === 0) return false;
428
+ if (value.endsWith('.')) return false;
429
+ if (value.endsWith('-')) return false;
430
+ if (value.endsWith('-0')) return false;
431
+ if (/\.\d*0+$/.test(value)) return false;
432
+ return true;
433
+ };
434
+
435
+ /**
436
+ * Produces a canonical decimal representation before Number parsing.
437
+ */
438
+ const makeValidNumberString = (value: string): string => {
439
+ let [first, second] = value.split('.');
440
+ first = first || '0';
441
+ if (!second) return first;
442
+ second = second?.slice(0, props.maxPrecision) || '0';
443
+ const unified = `${first}.${second}`;
444
+ return unified;
445
+ };
446
+
447
+ /**
448
+ * Native DOM events re-emitted as component events; `focus` / `blur` also
449
+ * drive the hint. Keydown is intercepted first for step shortcuts; `input` is
450
+ * bound separately (`@input.stop`).
114
451
  */
115
452
  const eventListeners = {
116
453
  onBlur: (event: FocusEvent) => {
117
454
  active.value = false;
455
+ applyMin();
118
456
  emit('blur', event);
119
457
  },
120
458
  onChange: (event: Event) => emit('change', event),
@@ -122,21 +460,84 @@ const eventListeners = {
122
460
  onCompositionend: (event: CompositionEvent) => emit('compositionend', event),
123
461
  onCompositionstart: (event: CompositionEvent) =>
124
462
  emit('compositionstart', event),
125
- onDecrease: (event: number) => emit('decrease', event),
126
463
  onFocus: (event: FocusEvent) => {
127
464
  active.value = true;
128
465
  emit('focus', event);
129
466
  },
130
- onIncrease: (event: number) => emit('increase', event),
131
- onInput: (event: Event) => emit('input', event),
132
- onKeydown: (event: KeyboardEvent) => emit('keydown', event),
467
+ onKeydown: (event: KeyboardEvent) => {
468
+ onKeydown(event);
469
+ emit('keydown', event);
470
+ },
133
471
  onKeyup: (event: KeyboardEvent) => emit('keyup', event),
134
472
  onMousedown: (event: MouseEvent) => emit('mousedown', event),
135
473
  onMouseup: (event: MouseEvent) => emit('mouseup', event),
136
474
  onPaste: (event: ClipboardEvent) => emit('paste', event),
137
- 'onUpdate:modelValue': (value: number | null) =>
138
- emit('update:modelValue', value),
139
475
  };
476
+
477
+ /**
478
+ * The native control's whole `v-bind`: the listeners, then `pt:input` LAST —
479
+ * one object, because two `v-bind`s on one element are a duplicate attribute.
480
+ * `mergeProps` keeps the contract: a class appends, an attribute wins, a
481
+ * listener concatenates after ours.
482
+ */
483
+ const inputBindings = computed(() =>
484
+ passthrough.input
485
+ ? mergeProps(eventListeners, passthrough.input)
486
+ : eventListeners
487
+ );
488
+
489
+ /**
490
+ * Synchronizes rendered input value with external model updates.
491
+ *
492
+ * It intentionally avoids overriding in-progress non-parsable user states,
493
+ * such as when the field currently contains "-0." while typing.
494
+ */
495
+ const alignInputValue = (value: string | number | null) => {
496
+ if (isNil(input.value)) return;
497
+
498
+ const currentValue = input.value.value;
499
+ // This is triggered while the user is writing numbers like -0.75. Only while
500
+ // they are: once the field lost focus an in-progress shape like "1.50" is
501
+ // just a display, and must not lock out the next external write.
502
+ if (
503
+ !isNil(value) &&
504
+ document.activeElement === input.value &&
505
+ !isParsableString(currentValue) &&
506
+ currentValue.length > 0
507
+ ) {
508
+ return;
509
+ }
510
+
511
+ let nextValue = value;
512
+ if (isNil(nextValue)) {
513
+ nextValue = '';
514
+ }
515
+ input.value.value = nextValue?.toString() || '';
516
+ };
517
+
518
+ /**
519
+ * Keeps the raw DOM value in sync with v-model changes.
520
+ */
521
+ watch(
522
+ () => props.modelValue,
523
+ (value) => {
524
+ alignInputValue(value);
525
+ }
526
+ );
527
+
528
+ /**
529
+ * Q56.3: the server has no mounted hook to paint the value, so it prints it as
530
+ * the `value` attribute (`v-ssr-value`, server-only) — the same string the
531
+ * mount-time `alignInputValue` writes, so nothing changes at hydration.
532
+ */
533
+ const ssrDisplayValue = () => props.modelValue?.toString() || '';
534
+
535
+ /**
536
+ * Ensures initial value is painted once the native input ref exists.
537
+ */
538
+ onMounted(() => {
539
+ alignInputValue(props.modelValue);
540
+ });
140
541
  </script>
141
542
 
142
543
  <style lang="postcss">
@@ -147,15 +548,56 @@ const eventListeners = {
147
548
  ## Types
148
549
 
149
550
  ```ts
551
+ import type { InputVariantType } from '@/types/InputVariant';
150
552
  import type { HTMLAttributes, InputHTMLAttributes } from 'vue';
151
- import type { InputDirection } from '@/types/InputDirection';
553
+ import type { FieldLayout } from '@/types/FieldLayout';
152
554
  import type { IconType } from '@/types/Icon';
153
- import type {
154
- BaseNumberInputEvents,
155
- BaseNumberInputSlots,
156
- } from '../BbBaseNumberInput/types';
555
+ import {
556
+ FORM_CONTROL_PT_STATES,
557
+ TEXT_CONTROL_PT_PARTS,
558
+ type FormControlPtState,
559
+ type PtMap,
560
+ type PtValue,
561
+ type TextControlPtPart,
562
+ } from '@/types/passthrough';
563
+ import type { FormFieldProps } from '@/composables/useFormBinding';
564
+
565
+ /**
566
+ * Passthrough parts of `BbNumberInput` (plans/passthrough/BbNumberInput.md) — the form-control
567
+ * family vocabulary: `root` (the container), `label`, `description`, `message`, `hint`
568
+ * (the errors / warnings region), `box` (the bordered box), `input` (the
569
+ * native control), `icon` (the prepend + append content icons — a broadcast;
570
+ * the clear button and the error / warning glyphs are chrome), `spinner`
571
+ * (the spinner shown while `loading`),
572
+ * `prefix`, `suffix`.
573
+ */
574
+ export type BbNumberInputPtPart = TextControlPtPart;
575
+ /** Passthrough states of `BbNumberInput`: the family's six, true while the matching `--` modifier is on. */
576
+ export type BbNumberInputPtState = FormControlPtState;
577
+ /** The runtime lists the resolver is wired with — kept next to the types so the two cannot drift. */
578
+ export const BB_NUMBER_INPUT_PT = {
579
+ parts: TEXT_CONTROL_PT_PARTS,
580
+ states: FORM_CONTROL_PT_STATES,
581
+ } as const satisfies {
582
+ parts: readonly BbNumberInputPtPart[];
583
+ states: readonly BbNumberInputPtState[];
584
+ };
157
585
 
586
+ // The passthrough props are a mapped type written INLINE with this
587
+ // component's own unions (Vue's SFC type resolver does not substitute a
588
+ // generic alias's type parameters — plans/PASSTHROUGH.md T20); the test
589
+ // asserts the resolved prop names.
590
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
158
591
  export type BbNumberInputProps = {
592
+ [K in
593
+ | `pt:${BbNumberInputPtPart}`
594
+ | `pt:${BbNumberInputPtPart}:${BbNumberInputPtState}`]?: PtValue;
595
+ } & {
596
+ /**
597
+ * Passthrough, object form: `{ box: '…', 'box:errors': '…' }` — the same
598
+ * keys as the `pt:*` attributes without the prefix. See the `pt:<part>` row.
599
+ */
600
+ pt?: PtMap<BbNumberInputPtPart, BbNumberInputPtState>;
159
601
  /**
160
602
  * Name of the icon to be added at the end of the input.
161
603
  */
@@ -163,6 +605,8 @@ export type BbNumberInputProps = {
163
605
  'append:icon'?: IconType;
164
606
  /**
165
607
  * Guides the browser as to the type of information expected in the field.
608
+ *
609
+ * @defaultValue `'off'`
166
610
  */
167
611
  autocomplete?: InputHTMLAttributes['autocomplete'];
168
612
 
@@ -177,10 +621,32 @@ export type BbNumberInputProps = {
177
621
  clearable?: boolean;
178
622
 
179
623
  /**
180
- * Sets the component in a compact state.
624
+ * Compact density. Swaps `--bb-input-h`, `--bb-input-py` and
625
+ * `--bb-label-spacing-y` for their `-compact` twins on the field, so a
626
+ * `--bb-input-h` you set on the component is ignored while `compact` is on:
627
+ * size a compact field with `--bb-input-h-compact` (and
628
+ * `--bb-input-py-compact`) instead.
181
629
  */
182
630
  compact?: boolean;
183
631
 
632
+ /**
633
+ * Visual variant of the field box — the same names and tokens as the
634
+ * `BbButton` variants. Colours only: height, padding and border width are
635
+ * identical across variants, so a form never reflows when one changes.
636
+ * `'ghost'` has no border in any state (errors and warnings show through
637
+ * the icon and the messages); every variant keeps the focus ring.
638
+ * Register extra names with the plugin's `inputVariants` option.
639
+ *
640
+ * `'none'` is a blank starting point: the field keeps its structure and
641
+ * behaviour but takes no look, so your own classes don't fight a built-in
642
+ * one. You then own hover, focus, disabled and the error / warning states.
643
+ * Fine for a one-off; keep inline styling short, and register a real
644
+ * variant (`inputVariants`) when the look recurs.
645
+ *
646
+ * @defaultValue `'outline'`
647
+ */
648
+ variant?: InputVariantType;
649
+
184
650
  /**
185
651
  * Descriptive text displayed below the label and above the input. Unlike the hint it is always
186
652
  * visible, and it is linked to the input via `aria-describedby` (after any
@@ -189,9 +655,12 @@ export type BbNumberInputProps = {
189
655
  description?: string;
190
656
 
191
657
  /**
192
- * Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.
658
+ * How the label and the input sit together: `'vertical'`, `'horizontal'` (50/50),
659
+ * `'auto'`, `'label-fill'` (the label takes the free space, the input keeps
660
+ * its size), `'input-fill'` (the other way round), or a two-word ratio
661
+ * pattern like `'xx xxxxx'`.
193
662
  */
194
- direction?: InputDirection;
663
+ layout?: FieldLayout;
195
664
 
196
665
  /**
197
666
  * Disables the component.
@@ -226,7 +695,7 @@ export type BbNumberInputProps = {
226
695
  * Define if the component should be in a warning state.
227
696
  * Same chrome as errors with `--bb-warn`; errors take priority.
228
697
  */
229
- hasWarning?: boolean;
698
+ hasWarnings?: boolean;
230
699
 
231
700
  /**
232
701
  * Visually hides the label of the input while maintaining accessibility.
@@ -239,7 +708,8 @@ export type BbNumberInputProps = {
239
708
  hint?: string;
240
709
 
241
710
  /**
242
- * The identifier of the component.
711
+ * The `id` of the native control; the label's `for` and the description
712
+ * and message ids derive from it. Generated when omitted.
243
713
  */
244
714
  id?: HTMLAttributes['id'];
245
715
 
@@ -265,16 +735,24 @@ export type BbNumberInputProps = {
265
735
 
266
736
  /**
267
737
  * Maximum value cap.
738
+ *
739
+ * @defaultValue `Number.MAX_SAFE_INTEGER`
268
740
  */
269
741
  max?: number;
270
742
 
271
743
  /**
272
744
  * Maximum precision of the number.
745
+ *
746
+ * @defaultValue `8`
273
747
  */
274
748
  maxPrecision?: number;
275
749
 
276
750
  /**
277
- * Minimum value cap.
751
+ * Minimum value cap. Applied on blur and on Enter (before a surrounding
752
+ * form submits), not while typing, so a value above a `min` greater than 1
753
+ * can be typed digit by digit.
754
+ *
755
+ * @defaultValue `Number.MIN_SAFE_INTEGER`
278
756
  */
279
757
  min?: number;
280
758
 
@@ -283,7 +761,7 @@ export type BbNumberInputProps = {
283
761
  *
284
762
  * @defaultValue `null`
285
763
  */
286
- modelValue: number | string | null;
764
+ modelValue?: number | string | null;
287
765
 
288
766
  /**
289
767
  * Defines the name of the input.
@@ -322,18 +800,98 @@ export type BbNumberInputProps = {
322
800
  reverse?: boolean;
323
801
 
324
802
  /**
325
- * Incremental unit used in the exposed `increase` and `decrease` functions.
803
+ * Incremental unit used by ArrowUp / ArrowDown and by the `increase` and `decrease` functions the slots receive.
326
804
  * It 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.
805
+ *
806
+ * @defaultValue `1`
327
807
  */
328
808
  step?: number;
809
+ } & FormFieldProps<number | string | null>;
810
+
811
+ export type BbNumberInputEvents = {
812
+ /**
813
+ * Emitted when the native input loses focus.
814
+ * Forwards the original DOM `FocusEvent`.
815
+ */
816
+ (e: 'blur', event: FocusEvent): void;
817
+ /**
818
+ * Emitted when the native input fires a change event.
819
+ * Forwards the original DOM `Event`.
820
+ */
821
+ (e: 'change', event: Event): void;
822
+ /**
823
+ * Emitted when the input receives a click interaction.
824
+ * Forwards the original DOM `MouseEvent`.
825
+ */
826
+ (e: 'click', event: MouseEvent): void;
827
+ /**
828
+ * Emitted when a composition session ends (e.g. CJK IME confirmed).
829
+ * Forwards the original DOM `CompositionEvent`.
830
+ */
831
+ (e: 'compositionend', event: CompositionEvent): void;
832
+ /**
833
+ * Emitted when a composition session starts (e.g. CJK IME begins).
834
+ * Forwards the original DOM `CompositionEvent`.
835
+ */
836
+ (e: 'compositionstart', event: CompositionEvent): void;
837
+ /**
838
+ * Emitted by the `decrease` helper with the clamped value after decrementing by one `step`.
839
+ */
840
+ (e: 'decrease', value: number): void;
841
+ /**
842
+ * Emitted when the native input gains focus.
843
+ * Forwards the original DOM `FocusEvent`.
844
+ */
845
+ (e: 'focus', event: FocusEvent): void;
846
+ /**
847
+ * Emitted by the `increase` helper with the clamped value after incrementing by one `step`.
848
+ */
849
+ (e: 'increase', value: number): void;
850
+ /**
851
+ * Emitted on native input events from the number input.
852
+ * Forwards the original DOM `Event`.
853
+ */
854
+ (e: 'input', event: Event): void;
855
+ /**
856
+ * Emitted for keyboard interaction on the input.
857
+ * Forwards the original DOM `KeyboardEvent`.
858
+ */
859
+ (e: 'keydown', event: KeyboardEvent): void;
860
+ /**
861
+ * Emitted when a key is released over the input.
862
+ * Forwards the original DOM `KeyboardEvent`.
863
+ */
864
+ (e: 'keyup', event: KeyboardEvent): void;
865
+ /**
866
+ * Emitted when a pointing device button is pressed over the input.
867
+ * Forwards the original DOM `MouseEvent`.
868
+ */
869
+ (e: 'mousedown', event: MouseEvent): void;
870
+ /**
871
+ * Emitted when a pointing device button is released over the input.
872
+ * Forwards the original DOM `MouseEvent`.
873
+ */
874
+ (e: 'mouseup', event: MouseEvent): void;
875
+ /**
876
+ * Emitted when content is pasted into the input.
877
+ * Forwards the original DOM `ClipboardEvent`.
878
+ */
879
+ (e: 'paste', event: ClipboardEvent): void;
880
+ /**
881
+ * Emitted on any value change with the parsed number or `null` when the field is empty.
882
+ */
883
+ (e: 'update:modelValue', value: number | null): void;
329
884
  };
330
885
 
331
- /**
332
- * Event contract of `BbNumberInput` — identical to `BbBaseNumberInput`'s.
333
- * Declared as a structural interface (rather than a re-export alias) so the
334
- * `defineEmits` macro can resolve it directly.
335
- */
336
- export type BbNumberInputEvents = BaseNumberInputEvents;
886
+ /** Props exposed by the `description` slot. */
887
+ export type BbNumberInputDescriptionSlotProps = {
888
+ /** The `description` prop value (empty when only the slot is provided). */
889
+ text: string;
890
+ /** Whether the field is in an error state. */
891
+ hasErrors: boolean;
892
+ /** Whether the field is in a warning state (suppressed when errors win). */
893
+ hasWarnings: boolean;
894
+ };
337
895
 
338
896
  /** Props exposed by the `label` slot. */
339
897
  export type BbNumberInputLabelSlotProps = {
@@ -342,25 +900,67 @@ export type BbNumberInputLabelSlotProps = {
342
900
  /** Whether the input is in an error state. */
343
901
  hasErrors: boolean;
344
902
  /** Whether the input is in a warning state (suppressed when errors win). */
345
- hasWarning: boolean;
903
+ hasWarnings: boolean;
904
+ };
905
+
906
+ /**
907
+ * Props every slot of `BbNumberInput` receives (`prefix`, `suffix`, `append`,
908
+ * `append:outer`, `prepend`, `prepend:outer`): the step helpers.
909
+ */
910
+ export type BbNumberInputStepSlotProps = {
911
+ /**
912
+ * Increments the value by one `step`.
913
+ */
914
+ increase: () => void;
915
+ /**
916
+ * Decrements the value by one `step`.
917
+ */
918
+ decrease: () => void;
346
919
  };
347
920
 
348
- export type BbNumberInputSlots = BaseNumberInputSlots & {
921
+ export type BbNumberInputSlots = {
922
+ /**
923
+ * Inline content rendered at the start of the input field area, before the typed number.
924
+ */
925
+ prefix?: (props: BbNumberInputStepSlotProps) => any;
926
+ /**
927
+ * Content rendered after the number input, at the end of the inner container.
928
+ * Typically used to place increment/decrement buttons next to the input.
929
+ */
930
+ append?: (props: BbNumberInputStepSlotProps) => any;
931
+ /**
932
+ * Content rendered after the entire input control, outside the input chrome.
933
+ */
934
+ 'append:outer'?: (props: BbNumberInputStepSlotProps) => any;
935
+ /**
936
+ * Content rendered before the number input, at the start of the inner container.
937
+ */
938
+ prepend?: (props: BbNumberInputStepSlotProps) => any;
939
+ /**
940
+ * Content rendered before the entire input control, outside the input chrome.
941
+ */
942
+ 'prepend:outer'?: (props: BbNumberInputStepSlotProps) => any;
943
+ /**
944
+ * Inline content rendered at the end of the input field area, after the typed number.
945
+ */
946
+ suffix?: (props: BbNumberInputStepSlotProps) => any;
349
947
  /**
350
948
  * Replaces the default label text rendered above the number input.
351
949
  */
352
950
  label?: (props: BbNumberInputLabelSlotProps) => any;
951
+ /**
952
+ * Replaces the description text. Provided alone (no `description` prop) it still
953
+ * renders the description region and wires it into `aria-describedby`.
954
+ */
955
+ description?: (props: BbNumberInputDescriptionSlotProps) => any;
353
956
  };
354
957
  ```
355
958
 
356
959
  ## Styles
357
960
 
358
961
  ```css
359
- .bb-number-input {
360
- /* The control column is a grid that sizes children to content; text-like
361
- inputs must fill it. */
362
- .bb-base-number-input {
363
- width: 100%;
364
- }
365
- }
962
+ /* BbNumberInput has no rules of its own: the frame, the box row and the native
963
+ input are styled by the shared field chrome (CommonField / CommonFieldInput),
964
+ and the box row fills the control column through the shared
965
+ `.bb-field__input-wrapper > .bb-field-input` rule. */
366
966
  ```