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

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