bitboss-ui 3.0.0-beta.5 → 3.0.0-beta.50

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 (1229) hide show
  1. package/README.md +388 -99
  2. package/bin/bitboss-ui-mcp.mjs +2684 -124
  3. package/bin/bitboss-ui.mjs +1034 -80
  4. package/dist/ai/BbAccordion.md +202 -58
  5. package/dist/ai/BbAlert.md +150 -32
  6. package/dist/ai/BbAsterisk.md +65 -4
  7. package/dist/ai/BbAvatar.md +202 -56
  8. package/dist/ai/BbBadge.md +256 -50
  9. package/dist/ai/BbBadgeButton.md +77 -21
  10. package/dist/ai/BbBaseButton.md +132 -51
  11. package/dist/ai/BbBaseCheckboxIcon.md +118 -26
  12. package/dist/ai/BbBaseRadioIcon.md +115 -26
  13. package/dist/ai/BbBaseSwitchIcon.md +123 -28
  14. package/dist/ai/BbBreadcrumbs.md +280 -104
  15. package/dist/ai/BbButton.md +445 -111
  16. package/dist/ai/BbCalendar.md +686 -0
  17. package/dist/ai/BbCheckbox.md +258 -82
  18. package/dist/ai/BbCheckboxGroup.md +597 -83
  19. package/dist/ai/BbCollapsible.md +158 -39
  20. package/dist/ai/BbColorInput.md +327 -82
  21. package/dist/ai/BbColorPalette.md +273 -67
  22. package/dist/ai/BbConfirm.md +228 -51
  23. package/dist/ai/BbConfirmPortal.md +2 -2
  24. package/dist/ai/BbDatePicker.md +275 -40
  25. package/dist/ai/BbDatePickerInput.md +357 -111
  26. package/dist/ai/BbDialog.md +510 -108
  27. package/dist/ai/BbDropdown.md +1335 -206
  28. package/dist/ai/BbDropdownButton.md +290 -107
  29. package/dist/ai/BbDropdownGroup.md +6 -6
  30. package/dist/ai/BbDropzone.md +380 -72
  31. package/dist/ai/BbForm.md +1261 -46
  32. package/dist/ai/BbHoverCard.md +527 -0
  33. package/dist/ai/BbHoverCardPortal.md +29 -0
  34. package/dist/ai/BbIcon.md +125 -40
  35. package/dist/ai/BbIndicator.md +79 -12
  36. package/dist/ai/BbNumberInput.md +345 -100
  37. package/dist/ai/BbOffCanvas.md +403 -96
  38. package/dist/ai/BbPagination.md +204 -34
  39. package/dist/ai/BbPopover.md +360 -64
  40. package/dist/ai/BbPopoverPortal.md +29 -0
  41. package/dist/ai/BbProgress.md +182 -90
  42. package/dist/ai/BbPtScope.md +136 -0
  43. package/dist/ai/BbRadio.md +242 -43
  44. package/dist/ai/BbRadioGroup.md +550 -111
  45. package/dist/ai/BbRating.md +256 -62
  46. package/dist/ai/BbSelect.md +1121 -289
  47. package/dist/ai/BbSelectPopover.md +676 -192
  48. package/dist/ai/BbSlider.md +285 -80
  49. package/dist/ai/BbSmoothHeight.md +144 -37
  50. package/dist/ai/BbSpinner.md +179 -81
  51. package/dist/ai/BbSwitch.md +276 -63
  52. package/dist/ai/BbSwitchGroup.md +421 -87
  53. package/dist/ai/BbTable.md +1941 -296
  54. package/dist/ai/BbTabs.md +992 -231
  55. package/dist/ai/BbTabsList.md +81 -7
  56. package/dist/ai/BbTabsPanels.md +77 -0
  57. package/dist/ai/BbTabsRoot.md +18 -16
  58. package/dist/ai/BbTag.md +271 -80
  59. package/dist/ai/BbTextInput.md +535 -105
  60. package/dist/ai/BbTextarea.md +414 -138
  61. package/dist/ai/BbTimePicker.md +166 -27
  62. package/dist/ai/BbTimePickerInput.md +290 -49
  63. package/dist/ai/BbToast.md +287 -40
  64. package/dist/ai/BbToastPortal.md +3 -3
  65. package/dist/ai/BbTooltip.md +231 -46
  66. package/dist/ai/BbTree.md +272 -94
  67. package/dist/ai/ChipsBox.md +46 -2
  68. package/dist/ai/ClearableButton.md +12 -0
  69. package/dist/ai/CommaBox.md +2 -1
  70. package/dist/ai/CommonField.md +75 -0
  71. package/dist/ai/CommonFieldInput.md +91 -0
  72. package/dist/ai/CommonPopover.md +17 -12
  73. package/dist/ai/CommonTimeSelector.md +63 -0
  74. package/dist/ai/ErrorIcon.md +20 -0
  75. package/dist/ai/FlatListBox.md +42 -11
  76. package/dist/ai/GroupedListBox.md +43 -12
  77. package/dist/ai/ListBox.md +47 -11
  78. package/dist/ai/OptionsContainer.md +17 -10
  79. package/dist/ai/WarningIcon.md +20 -0
  80. package/dist/ai/changelog.json +5750 -141
  81. package/dist/ai/components.json +475 -16272
  82. package/dist/ai/composables/useBbConfig.md +72 -11
  83. package/dist/ai/composables/useBbDropdownContext.md +168 -0
  84. package/dist/ai/composables/useBbFormContext.md +51 -24
  85. package/dist/ai/composables/useBbFormField.md +149 -0
  86. package/dist/ai/composables/useBbTableContext.md +41 -19
  87. package/dist/ai/composables/useBbTabsContext.md +14 -14
  88. package/dist/ai/composables/useConfirm.md +16 -8
  89. package/dist/ai/composables/useCountdown.md +1 -1
  90. package/dist/ai/composables/useId.md +10 -10
  91. package/dist/ai/composables/useMobile.md +17 -10
  92. package/dist/ai/composables/useToast.md +25 -19
  93. package/dist/ai/design-tokens.json +967 -0
  94. package/dist/ai/design-tokens.manifest.yaml +175 -0
  95. package/dist/ai/guides/agent-contract.md +182 -23
  96. package/dist/ai/guides/ai-router.md +87 -43
  97. package/dist/ai/guides/app-layout.md +8 -4
  98. package/dist/ai/guides/coherence-playbook.md +25 -21
  99. package/dist/ai/guides/component-picker.md +60 -46
  100. package/dist/ai/guides/design-language.md +280 -99
  101. package/dist/ai/guides/design-tokens.md +600 -117
  102. package/dist/ai/guides/fetch-items-playbook.md +127 -81
  103. package/dist/ai/guides/icons-policy.md +75 -45
  104. package/dist/ai/guides/inertia-helpers.md +201 -82
  105. package/dist/ai/guides/inline-edit-playbook.md +13 -6
  106. package/dist/ai/guides/installation-and-plugin-setup.md +912 -91
  107. package/dist/ai/guides/migration/components/bb-accordion.md +37 -0
  108. package/dist/ai/guides/migration/components/bb-alert.md +2 -2
  109. package/dist/ai/guides/migration/components/bb-avatar.md +13 -14
  110. package/dist/ai/guides/migration/components/bb-badge.md +5 -5
  111. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +13 -10
  112. package/dist/ai/guides/migration/components/bb-button.md +80 -20
  113. package/dist/ai/guides/migration/components/bb-checkbox-group.md +116 -29
  114. package/dist/ai/guides/migration/components/bb-checkbox.md +53 -10
  115. package/dist/ai/guides/migration/components/bb-chip.md +6 -6
  116. package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
  117. package/dist/ai/guides/migration/components/bb-color-input.md +5 -5
  118. package/dist/ai/guides/migration/components/bb-color-palette.md +16 -9
  119. package/dist/ai/guides/migration/components/bb-date-picker-input.md +51 -38
  120. package/dist/ai/guides/migration/components/bb-dialog.md +69 -36
  121. package/dist/ai/guides/migration/components/bb-dropdown-button.md +15 -8
  122. package/dist/ai/guides/migration/components/bb-dropdown.md +33 -9
  123. package/dist/ai/guides/migration/components/bb-dropzone.md +8 -0
  124. package/dist/ai/guides/migration/components/bb-icon.md +7 -7
  125. package/dist/ai/guides/migration/components/bb-intersection.md +1 -1
  126. package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -31
  127. package/dist/ai/guides/migration/components/bb-pagination.md +10 -0
  128. package/dist/ai/guides/migration/components/bb-popover.md +19 -11
  129. package/dist/ai/guides/migration/components/bb-radio-group.md +15 -0
  130. package/dist/ai/guides/migration/components/bb-rating.md +61 -24
  131. package/dist/ai/guides/migration/components/bb-select-popover.md +20 -2
  132. package/dist/ai/guides/migration/components/bb-select.md +39 -8
  133. package/dist/ai/guides/migration/components/bb-slider.md +19 -6
  134. package/dist/ai/guides/migration/components/bb-switch-group.md +15 -0
  135. package/dist/ai/guides/migration/components/bb-table.md +586 -33
  136. package/dist/ai/guides/migration/components/bb-tabs.md +94 -43
  137. package/dist/ai/guides/migration/components/bb-tag.md +9 -7
  138. package/dist/ai/guides/migration/components/bb-text-input.md +12 -12
  139. package/dist/ai/guides/migration/components/bb-toast.md +2 -2
  140. package/dist/ai/guides/migration/components/bb-tooltip.md +19 -1
  141. package/dist/ai/guides/migration/components/bb-tree.md +11 -9
  142. package/dist/ai/guides/migration/components/use-confirm.md +9 -1
  143. package/dist/ai/guides/migration/v2-to-v3.md +1203 -277
  144. package/dist/ai/guides/migration/v3-beta-css-classes.md +753 -0
  145. package/dist/ai/guides/migration/v3-beta-tooling.md +208 -0
  146. package/dist/ai/guides/options-items-playbook.md +177 -22
  147. package/dist/ai/guides/page-shell.md +13 -7
  148. package/dist/ai/guides/passthrough.md +968 -0
  149. package/dist/ai/guides/preset-components.md +387 -0
  150. package/dist/ai/guides/ssr-prefill.md +150 -0
  151. package/dist/ai/guides/typescript-generic-components.md +87 -0
  152. package/dist/ai/guides/validated-forms.md +460 -55
  153. package/dist/ai/guides/validation-libraries.md +174 -0
  154. package/dist/ai/guides/validation-providers.md +127 -0
  155. package/dist/ai/helpers/inertia/manifest.json +636 -0
  156. package/dist/ai/helpers/inertia/types.ts +15 -0
  157. package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
  158. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
  159. package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
  160. package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
  161. package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
  162. package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
  163. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
  164. package/dist/ai/helpers/inertia/useLoading.ts +20 -0
  165. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
  166. package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
  167. package/dist/ai/helpers/inertia/useProp.ts +63 -0
  168. package/dist/ai/helpers/inertia/useQuery.ts +19 -0
  169. package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
  170. package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
  171. package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
  172. package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
  173. package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
  174. package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
  175. package/dist/ai/helpers/inertia/useUntil.ts +33 -0
  176. package/dist/ai/helpers/inertia/utils.ts +24 -0
  177. package/dist/ai/index.md +61 -57
  178. package/dist/ai/manifest/components/BbAccordion.json +42 -0
  179. package/dist/ai/manifest/components/BbAccordion.tree.json +26 -0
  180. package/dist/ai/manifest/components/BbAlert.json +56 -0
  181. package/dist/ai/manifest/components/BbAlert.tree.json +80 -0
  182. package/dist/ai/manifest/components/BbAsterisk.json +26 -0
  183. package/dist/ai/manifest/components/BbAsterisk.tree.json +13 -0
  184. package/dist/ai/manifest/components/BbAvatar.json +38 -0
  185. package/dist/ai/manifest/components/BbAvatar.tree.json +39 -0
  186. package/dist/ai/manifest/components/BbBadge.json +50 -0
  187. package/dist/ai/manifest/components/BbBadge.tree.json +86 -0
  188. package/dist/ai/manifest/components/BbBadgeButton.json +67 -0
  189. package/dist/ai/manifest/components/BbBadgeButton.tree.json +32 -0
  190. package/dist/ai/manifest/components/BbBaseButton.json +69 -0
  191. package/dist/ai/manifest/components/BbBaseButton.tree.json +25 -0
  192. package/dist/ai/manifest/components/BbBaseCheckboxIcon.json +46 -0
  193. package/dist/ai/manifest/components/BbBaseCheckboxIcon.tree.json +41 -0
  194. package/dist/ai/manifest/components/BbBaseRadioIcon.json +44 -0
  195. package/dist/ai/manifest/components/BbBaseRadioIcon.tree.json +36 -0
  196. package/dist/ai/manifest/components/BbBaseSwitchIcon.json +46 -0
  197. package/dist/ai/manifest/components/BbBaseSwitchIcon.tree.json +44 -0
  198. package/dist/ai/manifest/components/BbBreadcrumbs.json +56 -0
  199. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +45 -0
  200. package/dist/ai/manifest/components/BbButton.json +102 -0
  201. package/dist/ai/manifest/components/BbButton.tree.json +206 -0
  202. package/dist/ai/manifest/components/BbCalendar.json +86 -0
  203. package/dist/ai/manifest/components/BbCalendar.tree.json +99 -0
  204. package/dist/ai/manifest/components/BbCheckbox.json +99 -0
  205. package/dist/ai/manifest/components/BbCheckbox.tree.json +22 -0
  206. package/dist/ai/manifest/components/BbCheckboxGroup.json +133 -0
  207. package/dist/ai/manifest/components/BbCheckboxGroup.tree.json +61 -0
  208. package/dist/ai/manifest/components/BbCollapsible.json +32 -0
  209. package/dist/ai/manifest/components/BbCollapsible.tree.json +17 -0
  210. package/dist/ai/manifest/components/BbColorInput.json +133 -0
  211. package/dist/ai/manifest/components/BbColorInput.tree.json +37 -0
  212. package/dist/ai/manifest/components/BbColorPalette.json +73 -0
  213. package/dist/ai/manifest/components/BbColorPalette.tree.json +55 -0
  214. package/dist/ai/manifest/components/BbConfirm.json +34 -0
  215. package/dist/ai/manifest/components/BbConfirm.tree.json +30 -0
  216. package/dist/ai/manifest/components/BbConfirmPortal.json +21 -0
  217. package/dist/ai/manifest/components/BbDatePicker.json +108 -0
  218. package/dist/ai/manifest/components/BbDatePicker.tree.json +54 -0
  219. package/dist/ai/manifest/components/BbDatePickerInput.json +167 -0
  220. package/dist/ai/manifest/components/BbDatePickerInput.tree.json +50 -0
  221. package/dist/ai/manifest/components/BbDialog.json +76 -0
  222. package/dist/ai/manifest/components/BbDialog.tree.json +74 -0
  223. package/dist/ai/manifest/components/BbDropdown.json +102 -0
  224. package/dist/ai/manifest/components/BbDropdown.tree.json +122 -0
  225. package/dist/ai/manifest/components/BbDropdownButton.json +107 -0
  226. package/dist/ai/manifest/components/BbDropdownButton.tree.json +28 -0
  227. package/dist/ai/manifest/components/BbDropdownGroup.json +25 -0
  228. package/dist/ai/manifest/components/BbDropzone.json +68 -0
  229. package/dist/ai/manifest/components/BbDropzone.tree.json +36 -0
  230. package/dist/ai/manifest/components/BbForm.json +42 -0
  231. package/dist/ai/manifest/components/BbHoverCard.json +63 -0
  232. package/dist/ai/manifest/components/BbHoverCard.tree.json +31 -0
  233. package/dist/ai/manifest/components/BbHoverCardPortal.json +21 -0
  234. package/dist/ai/manifest/components/BbIcon.json +33 -0
  235. package/dist/ai/manifest/components/BbIcon.tree.json +19 -0
  236. package/dist/ai/manifest/components/BbIndicator.json +39 -0
  237. package/dist/ai/manifest/components/BbIndicator.tree.json +67 -0
  238. package/dist/ai/manifest/components/BbNumberInput.json +128 -0
  239. package/dist/ai/manifest/components/BbNumberInput.tree.json +28 -0
  240. package/dist/ai/manifest/components/BbOffCanvas.json +72 -0
  241. package/dist/ai/manifest/components/BbOffCanvas.tree.json +115 -0
  242. package/dist/ai/manifest/components/BbPagination.json +61 -0
  243. package/dist/ai/manifest/components/BbPagination.tree.json +69 -0
  244. package/dist/ai/manifest/components/BbPopover.json +82 -0
  245. package/dist/ai/manifest/components/BbPopover.tree.json +36 -0
  246. package/dist/ai/manifest/components/BbPopoverPortal.json +21 -0
  247. package/dist/ai/manifest/components/BbProgress.json +31 -0
  248. package/dist/ai/manifest/components/BbProgress.tree.json +26 -0
  249. package/dist/ai/manifest/components/BbPtScope.json +21 -0
  250. package/dist/ai/manifest/components/BbRadio.json +88 -0
  251. package/dist/ai/manifest/components/BbRadio.tree.json +22 -0
  252. package/dist/ai/manifest/components/BbRadioGroup.json +132 -0
  253. package/dist/ai/manifest/components/BbRadioGroup.tree.json +61 -0
  254. package/dist/ai/manifest/components/BbRating.json +100 -0
  255. package/dist/ai/manifest/components/BbRating.tree.json +55 -0
  256. package/dist/ai/manifest/components/BbSelect.json +174 -0
  257. package/dist/ai/manifest/components/BbSelect.tree.json +53 -0
  258. package/dist/ai/manifest/components/BbSelectPopover.json +124 -0
  259. package/dist/ai/manifest/components/BbSelectPopover.tree.json +112 -0
  260. package/dist/ai/manifest/components/BbSlider.json +109 -0
  261. package/dist/ai/manifest/components/BbSlider.tree.json +89 -0
  262. package/dist/ai/manifest/components/BbSmoothHeight.json +31 -0
  263. package/dist/ai/manifest/components/BbSmoothHeight.tree.json +16 -0
  264. package/dist/ai/manifest/components/BbSpinner.json +31 -0
  265. package/dist/ai/manifest/components/BbSpinner.tree.json +31 -0
  266. package/dist/ai/manifest/components/BbSwitch.json +99 -0
  267. package/dist/ai/manifest/components/BbSwitch.tree.json +22 -0
  268. package/dist/ai/manifest/components/BbSwitchGroup.json +133 -0
  269. package/dist/ai/manifest/components/BbSwitchGroup.tree.json +61 -0
  270. package/dist/ai/manifest/components/BbTable.json +163 -0
  271. package/dist/ai/manifest/components/BbTable.tree.json +214 -0
  272. package/dist/ai/manifest/components/BbTabs.json +86 -0
  273. package/dist/ai/manifest/components/BbTabs.tree.json +88 -0
  274. package/dist/ai/manifest/components/BbTabsList.json +48 -0
  275. package/dist/ai/manifest/components/BbTabsList.tree.json +94 -0
  276. package/dist/ai/manifest/components/BbTabsPanels.json +32 -0
  277. package/dist/ai/manifest/components/BbTabsPanels.tree.json +69 -0
  278. package/dist/ai/manifest/components/BbTabsRoot.json +63 -0
  279. package/dist/ai/manifest/components/BbTag.json +130 -0
  280. package/dist/ai/manifest/components/BbTag.tree.json +40 -0
  281. package/dist/ai/manifest/components/BbTextInput.json +129 -0
  282. package/dist/ai/manifest/components/BbTextInput.tree.json +27 -0
  283. package/dist/ai/manifest/components/BbTextarea.json +124 -0
  284. package/dist/ai/manifest/components/BbTextarea.tree.json +37 -0
  285. package/dist/ai/manifest/components/BbTimePicker.json +76 -0
  286. package/dist/ai/manifest/components/BbTimePicker.tree.json +37 -0
  287. package/dist/ai/manifest/components/BbTimePickerInput.json +133 -0
  288. package/dist/ai/manifest/components/BbTimePickerInput.tree.json +44 -0
  289. package/dist/ai/manifest/components/BbToast.json +43 -0
  290. package/dist/ai/manifest/components/BbToast.tree.json +91 -0
  291. package/dist/ai/manifest/components/BbToastPortal.json +18 -0
  292. package/dist/ai/manifest/components/BbTooltip.json +60 -0
  293. package/dist/ai/manifest/components/BbTooltip.tree.json +41 -0
  294. package/dist/ai/manifest/components/BbTree.json +51 -0
  295. package/dist/ai/manifest/components/BbTree.tree.json +31 -0
  296. package/dist/ai/manifest/components/ChipsBox.json +32 -0
  297. package/dist/ai/manifest/components/ChipsBox.tree.json +11 -0
  298. package/dist/ai/manifest/components/ClearableButton.json +19 -0
  299. package/dist/ai/manifest/components/ClearableButton.tree.json +19 -0
  300. package/dist/ai/manifest/components/CommaBox.json +30 -0
  301. package/dist/ai/manifest/components/CommonField.json +56 -0
  302. package/dist/ai/manifest/components/CommonField.tree.json +110 -0
  303. package/dist/ai/manifest/components/CommonFieldInput.json +47 -0
  304. package/dist/ai/manifest/components/CommonFieldInput.tree.json +95 -0
  305. package/dist/ai/manifest/components/CommonPopover.json +44 -0
  306. package/dist/ai/manifest/components/CommonPopover.tree.json +26 -0
  307. package/dist/ai/manifest/components/CommonTimeSelector.json +31 -0
  308. package/dist/ai/manifest/components/CommonTimeSelector.tree.json +43 -0
  309. package/dist/ai/manifest/components/ErrorIcon.json +17 -0
  310. package/dist/ai/manifest/components/ErrorIcon.tree.json +22 -0
  311. package/dist/ai/manifest/components/FlatListBox.json +43 -0
  312. package/dist/ai/manifest/components/FlatListBox.tree.json +16 -0
  313. package/dist/ai/manifest/components/GroupedListBox.json +45 -0
  314. package/dist/ai/manifest/components/GroupedListBox.tree.json +16 -0
  315. package/dist/ai/manifest/components/GuidesComponent.json +17 -0
  316. package/dist/ai/manifest/components/ListBox.json +43 -0
  317. package/dist/ai/manifest/components/ListBox.tree.json +9 -0
  318. package/dist/ai/manifest/components/OptionsContainer.json +45 -0
  319. package/dist/ai/manifest/components/WarningIcon.json +17 -0
  320. package/dist/ai/manifest/components/WarningIcon.tree.json +22 -0
  321. package/dist/ai/manifest/index.json +121 -0
  322. package/dist/ai/manifest/meta.json +456 -0
  323. package/dist/ai/manifest/types.advanced.json +66 -0
  324. package/dist/ai/manifest/types.api.json +52 -0
  325. package/dist/ai/manifest/types.wrapper.json +119 -0
  326. package/dist/ai/recipes/inertia/approvals-inbox.md +206 -139
  327. package/dist/ai/recipes/inertia/inline-edit-workspace.md +218 -143
  328. package/dist/ai/recipes/inertia/layout-scaffold.md +93 -58
  329. package/dist/ai/recipes/inertia/onboarding.md +114 -87
  330. package/dist/ai/recipes/inertia/ownership-atlas.md +322 -322
  331. package/dist/ai/recipes/inertia/record-form.md +407 -218
  332. package/dist/ai/recipes/inertia/records-workspace.md +600 -219
  333. package/dist/ai/recipes/inertia/settings-workspace.md +3098 -0
  334. package/dist/ai/recipes/inertia/upload-center.md +189 -177
  335. package/dist/ai/recipes/inertia/wizard-form.md +233 -100
  336. package/dist/ai/recipes/nuxt/approvals-inbox.md +272 -158
  337. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +298 -166
  338. package/dist/ai/recipes/nuxt/layout-scaffold.md +94 -59
  339. package/dist/ai/recipes/nuxt/onboarding.md +178 -117
  340. package/dist/ai/recipes/nuxt/ownership-atlas.md +1406 -0
  341. package/dist/ai/recipes/nuxt/record-form.md +506 -223
  342. package/dist/ai/recipes/nuxt/records-workspace.md +653 -206
  343. package/dist/ai/recipes/nuxt/settings-workspace.md +3189 -0
  344. package/dist/ai/recipes/nuxt/upload-center.md +282 -190
  345. package/dist/ai/recipes/nuxt/wizard-form.md +251 -102
  346. package/dist/ai/recipes/vue/approvals-inbox.md +248 -146
  347. package/dist/ai/recipes/vue/inline-edit-workspace.md +278 -157
  348. package/dist/ai/recipes/vue/layout-scaffold.md +93 -58
  349. package/dist/ai/recipes/vue/onboarding.md +112 -83
  350. package/dist/ai/recipes/vue/ownership-atlas.md +1360 -0
  351. package/dist/ai/recipes/vue/record-form.md +251 -130
  352. package/dist/ai/recipes/vue/records-workspace.md +609 -191
  353. package/dist/ai/recipes/vue/settings-workspace.md +3130 -0
  354. package/dist/ai/recipes/vue/upload-center.md +229 -176
  355. package/dist/ai/recipes/vue/wizard-form.md +190 -85
  356. package/dist/ai/source/BbAccordion.md +130 -32
  357. package/dist/ai/source/BbAlert.md +211 -64
  358. package/dist/ai/source/BbAsterisk.md +54 -4
  359. package/dist/ai/source/BbAvatar.md +73 -16
  360. package/dist/ai/source/BbBadge.md +305 -99
  361. package/dist/ai/source/BbBadgeButton.md +259 -81
  362. package/dist/ai/source/BbBaseButton.md +109 -13
  363. package/dist/ai/source/BbBaseCheckboxIcon.md +153 -36
  364. package/dist/ai/source/BbBaseRadioIcon.md +124 -18
  365. package/dist/ai/source/BbBaseSwitchIcon.md +146 -33
  366. package/dist/ai/source/BbBreadcrumbs.md +437 -95
  367. package/dist/ai/source/BbButton.md +695 -188
  368. package/dist/ai/source/BbCalendar.md +1884 -0
  369. package/dist/ai/source/BbCheckbox.md +509 -68
  370. package/dist/ai/source/BbCheckboxGroup.md +1132 -98
  371. package/dist/ai/source/BbCollapsible.md +99 -10
  372. package/dist/ai/source/BbColorInput.md +645 -68
  373. package/dist/ai/source/BbColorPalette.md +1337 -70
  374. package/dist/ai/source/BbConfirm.md +167 -8
  375. package/dist/ai/source/BbConfirmPortal.md +109 -9
  376. package/dist/ai/source/BbDatePicker.md +532 -383
  377. package/dist/ai/source/BbDatePickerInput.md +2166 -123
  378. package/dist/ai/source/BbDialog.md +557 -70
  379. package/dist/ai/source/BbDropdown.md +1320 -331
  380. package/dist/ai/source/BbDropdownButton.md +438 -93
  381. package/dist/ai/source/BbDropdownGroup.md +1023 -203
  382. package/dist/ai/source/BbDropzone.md +219 -38
  383. package/dist/ai/source/BbForm.md +1006 -18
  384. package/dist/ai/source/BbHoverCard.md +975 -0
  385. package/dist/ai/source/BbHoverCardPortal.md +314 -0
  386. package/dist/ai/source/BbIcon.md +139 -53
  387. package/dist/ai/source/BbIndicator.md +121 -60
  388. package/dist/ai/source/BbNumberInput.md +1571 -91
  389. package/dist/ai/source/BbOffCanvas.md +1057 -274
  390. package/dist/ai/source/BbPagination.md +231 -35
  391. package/dist/ai/source/BbPopover.md +491 -115
  392. package/dist/ai/source/BbPopoverPortal.md +387 -0
  393. package/dist/ai/source/BbProgress.md +156 -30
  394. package/dist/ai/source/BbPtScope.md +54 -0
  395. package/dist/ai/source/BbRadio.md +407 -58
  396. package/dist/ai/source/BbRadioGroup.md +1078 -112
  397. package/dist/ai/source/BbRating.md +775 -86
  398. package/dist/ai/source/BbSelect.md +1187 -104
  399. package/dist/ai/source/BbSelectPopover.md +1209 -205
  400. package/dist/ai/source/BbSlider.md +1422 -103
  401. package/dist/ai/source/BbSmoothHeight.md +59 -4
  402. package/dist/ai/source/BbSpinner.md +62 -6
  403. package/dist/ai/source/BbSwitch.md +322 -60
  404. package/dist/ai/source/BbSwitchGroup.md +834 -84
  405. package/dist/ai/source/BbTable.md +7684 -1945
  406. package/dist/ai/source/BbTabs.md +409 -124
  407. package/dist/ai/source/BbTabsList.md +538 -159
  408. package/dist/ai/source/BbTabsPanels.md +647 -0
  409. package/dist/ai/source/BbTabsRoot.md +360 -113
  410. package/dist/ai/source/BbTag.md +866 -89
  411. package/dist/ai/source/BbTextInput.md +615 -73
  412. package/dist/ai/source/BbTextarea.md +631 -70
  413. package/dist/ai/source/BbTimePicker.md +396 -70
  414. package/dist/ai/source/BbTimePickerInput.md +1353 -107
  415. package/dist/ai/source/BbToast.md +259 -80
  416. package/dist/ai/source/BbToastPortal.md +219 -72
  417. package/dist/ai/source/BbTooltip.md +303 -42
  418. package/dist/ai/source/BbTree.md +109 -14
  419. package/dist/ai/source/ChipsBox.md +25 -5
  420. package/dist/ai/source/CommaBox.md +21 -6
  421. package/dist/ai/source/CommonField.md +1707 -0
  422. package/dist/ai/source/CommonFieldInput.md +880 -0
  423. package/dist/ai/source/CommonPopover.md +141 -34
  424. package/dist/ai/source/CommonTimeSelector.md +744 -0
  425. package/dist/ai/source/ErrorIcon.md +2 -2
  426. package/dist/ai/source/FlatListBox.md +218 -18
  427. package/dist/ai/source/GroupedListBox.md +266 -45
  428. package/dist/ai/source/GuidesComponent.md +14 -7
  429. package/dist/ai/source/ListBox.md +57 -8
  430. package/dist/ai/source/OptionsContainer.md +346 -61
  431. package/dist/ai/source/WarningIcon.md +2 -2
  432. package/dist/assets/css/reset.css_inline.js +1 -1
  433. package/dist/assets/svgs/star.svg_raw.js +4 -0
  434. package/dist/components/BbAccordion/BbAccordion.vue_vue_type_script_setup_true_lang.js +59 -38
  435. package/dist/components/BbAccordion/types.d.ts +43 -3
  436. package/dist/components/BbAccordion/types.js +11 -0
  437. package/dist/components/BbAlert/BbAlert.vue.d.ts +1 -3
  438. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +46 -30
  439. package/dist/components/BbAlert/types.d.ts +37 -3
  440. package/dist/components/BbAlert/types.js +13 -0
  441. package/dist/components/BbAsterisk/BbAsterisk.vue.d.ts +3 -1
  442. package/dist/components/BbAsterisk/BbAsterisk.vue_vue_type_script_setup_true_lang.js +23 -8
  443. package/dist/components/BbAsterisk/types.d.ts +18 -0
  444. package/dist/components/BbAsterisk/types.js +7 -0
  445. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +2 -4
  446. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +57 -44
  447. package/dist/components/BbAvatar/types.d.ts +23 -0
  448. package/dist/components/BbAvatar/types.js +7 -0
  449. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +24 -18
  450. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +96 -53
  451. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +32 -11
  452. package/dist/components/BbBadge/badgeButtonContext.d.ts +25 -8
  453. package/dist/components/BbBadge/types.d.ts +46 -3
  454. package/dist/components/BbBadge/types.js +13 -0
  455. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +109 -96
  456. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +11 -11
  457. package/dist/components/BbBaseButton/types.d.ts +33 -3
  458. package/dist/components/BbBaseButton/types.js +9 -2
  459. package/dist/components/BbBaseCheckboxIcon/BbBaseCheckboxIcon.vue_vue_type_script_setup_true_lang.js +50 -18
  460. package/dist/components/BbBaseCheckboxIcon/types.d.ts +31 -2
  461. package/dist/components/BbBaseCheckboxIcon/types.js +8 -0
  462. package/dist/components/BbBaseRadioIcon/BbBaseRadioIcon.vue_vue_type_script_setup_true_lang.js +45 -15
  463. package/dist/components/BbBaseRadioIcon/types.d.ts +31 -2
  464. package/dist/components/BbBaseRadioIcon/types.js +8 -0
  465. package/dist/components/BbBaseSwitchIcon/BbBaseSwitchIcon.vue_vue_type_script_setup_true_lang.js +48 -16
  466. package/dist/components/BbBaseSwitchIcon/types.d.ts +31 -2
  467. package/dist/components/BbBaseSwitchIcon/types.js +8 -0
  468. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +197 -140
  469. package/dist/components/BbBreadcrumbs/types.d.ts +62 -12
  470. package/dist/components/BbBreadcrumbs/types.js +12 -0
  471. package/dist/components/BbButton/BbButton.vue.d.ts +5 -0
  472. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +145 -101
  473. package/dist/components/BbButton/toggleRoving.d.ts +6 -0
  474. package/dist/components/BbButton/toggleRoving.js +45 -0
  475. package/dist/components/BbButton/types.d.ts +122 -3
  476. package/dist/components/BbButton/types.js +16 -0
  477. package/dist/components/BbCalendar/BbCalendar.vue.d.ts +33 -0
  478. package/dist/components/BbCalendar/BbCalendar.vue.js +6 -0
  479. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +614 -0
  480. package/dist/components/BbCalendar/CalendarMonthPanel.vue.js +5 -0
  481. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +124 -0
  482. package/dist/components/BbCalendar/CalendarYearPanel.vue.js +5 -0
  483. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +129 -0
  484. package/dist/components/BbCalendar/calendarHost.d.ts +29 -0
  485. package/dist/components/BbCalendar/calendarHost.js +10 -0
  486. package/dist/components/BbCalendar/types.d.ts +231 -0
  487. package/dist/components/BbCalendar/types.js +29 -0
  488. package/dist/components/{BbBaseDatePicker/useDatePickerContext.d.ts → BbCalendar/useCalendarContext.d.ts} +10 -7
  489. package/dist/components/BbCalendar/useCalendarContext.js +11 -0
  490. package/dist/components/BbCalendar/useCalendarGrid.d.ts +211 -0
  491. package/dist/components/BbCalendar/useCalendarGrid.js +282 -0
  492. package/dist/components/BbCalendar/useDayGrid.d.ts +82 -0
  493. package/dist/components/BbCalendar/useDayGrid.js +246 -0
  494. package/dist/components/BbCalendar/useDayjsLocale.d.ts +64 -0
  495. package/dist/components/BbCalendar/useDayjsLocale.js +35 -0
  496. package/dist/components/BbCalendar/useToday.d.ts +23 -0
  497. package/dist/components/BbCalendar/useToday.js +21 -0
  498. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +7 -7
  499. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +224 -72
  500. package/dist/components/BbCheckbox/types.d.ts +192 -13
  501. package/dist/components/BbCheckbox/types.js +8 -0
  502. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +15 -3
  503. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +350 -106
  504. package/dist/components/BbCheckboxGroup/types.d.ts +256 -23
  505. package/dist/components/BbCheckboxGroup/types.js +10 -0
  506. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +2 -1
  507. package/dist/components/BbCollapsible/BbCollapsible.vue_vue_type_script_setup_true_lang.js +41 -19
  508. package/dist/components/BbCollapsible/types.d.ts +46 -2
  509. package/dist/components/BbCollapsible/types.js +7 -0
  510. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +17 -7
  511. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +339 -87
  512. package/dist/components/BbColorInput/types.d.ts +242 -12
  513. package/dist/components/BbColorInput/types.js +24 -0
  514. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +10 -2
  515. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +530 -108
  516. package/dist/components/BbColorPalette/types.d.ts +88 -11
  517. package/dist/components/BbColorPalette/types.js +12 -0
  518. package/dist/components/BbConfirm/BbConfirm.vue.d.ts +2 -1
  519. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +125 -76
  520. package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +3 -5
  521. package/dist/components/BbConfirm/types.d.ts +64 -0
  522. package/dist/components/BbConfirm/types.js +17 -0
  523. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +15 -10
  524. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +324 -224
  525. package/dist/components/BbDatePicker/types.d.ts +114 -18
  526. package/dist/components/BbDatePicker/types.js +33 -0
  527. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +16 -4
  528. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +1225 -88
  529. package/dist/components/BbDatePickerInput/dateFieldLayout.d.ts +23 -0
  530. package/dist/components/BbDatePickerInput/dateFieldLayout.js +38 -0
  531. package/dist/components/BbDatePickerInput/types.d.ts +241 -21
  532. package/dist/components/BbDatePickerInput/types.js +39 -0
  533. package/dist/components/BbDialog/BbDialog.vue.d.ts +3 -3
  534. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +230 -133
  535. package/dist/components/BbDialog/types.d.ts +98 -4
  536. package/dist/components/BbDialog/types.js +16 -0
  537. package/dist/components/BbDialog/useDialogStack.d.ts +12 -0
  538. package/dist/components/BbDialog/useDialogStack.js +9 -2
  539. package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
  540. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +132 -107
  541. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +10 -2
  542. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +448 -328
  543. package/dist/components/BbDropdown/BbDropdownGroup.vue.d.ts +16 -5
  544. package/dist/components/BbDropdown/BbDropdownGroup.vue_vue_type_script_setup_true_lang.js +48 -19
  545. package/dist/components/BbDropdown/BbDropdownList.vue.d.ts +8 -2
  546. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +396 -340
  547. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +152 -122
  548. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
  549. package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
  550. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
  551. package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
  552. package/dist/components/BbDropdown/normalizeGroups.js +70 -32
  553. package/dist/components/BbDropdown/types.d.ts +437 -102
  554. package/dist/components/BbDropdown/types.js +21 -2
  555. package/dist/components/BbDropdown/useDropdownContext.d.ts +12 -4
  556. package/dist/components/BbDropdown/useDropdownGroupRegistry.d.ts +62 -0
  557. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +18 -3
  558. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +193 -43
  559. package/dist/components/BbDropdownButton/types.d.ts +139 -10
  560. package/dist/components/BbDropdownButton/types.js +35 -0
  561. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +2 -2
  562. package/dist/components/BbDropzone/BbDropzone.vue_vue_type_script_setup_true_lang.js +211 -143
  563. package/dist/components/BbDropzone/types.d.ts +54 -5
  564. package/dist/components/BbDropzone/types.js +17 -0
  565. package/dist/components/BbForm/BbForm.vue.d.ts +121 -0
  566. package/dist/{validated → components/BbForm}/BbForm.vue.js +1 -1
  567. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +360 -0
  568. package/dist/components/BbForm/BbFormCustomField.d.ts +14 -0
  569. package/dist/components/BbForm/BbFormCustomField.js +49 -0
  570. package/dist/components/BbForm/bindFormField.d.ts +43 -0
  571. package/dist/components/BbForm/bindFormField.js +88 -0
  572. package/dist/components/BbForm/formFields.d.ts +77 -0
  573. package/dist/components/BbForm/formFields.js +11 -0
  574. package/dist/components/BbForm/formSchema.d.ts +56 -0
  575. package/dist/components/BbForm/formSchema.js +196 -0
  576. package/dist/components/BbForm/standardSchema.d.ts +59 -0
  577. package/dist/components/BbHoverCard/BbHoverCard.vue.d.ts +43 -0
  578. package/dist/components/{BbBaseRadio/BbBaseRadio.vue.js → BbHoverCard/BbHoverCard.vue.js} +2 -2
  579. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +300 -0
  580. package/dist/components/BbHoverCard/BbHoverCardPortal.vue.d.ts +23 -0
  581. package/dist/components/BbHoverCard/BbHoverCardPortal.vue.js +5 -0
  582. package/dist/components/BbHoverCard/BbHoverCardPortal.vue_vue_type_script_setup_true_lang.js +13 -0
  583. package/dist/components/BbHoverCard/hoverCardFocus.d.ts +29 -0
  584. package/dist/components/BbHoverCard/hoverCardFocus.js +29 -0
  585. package/dist/components/BbHoverCard/types.d.ts +188 -0
  586. package/dist/components/BbHoverCard/types.js +13 -0
  587. package/dist/components/BbIcon/BbIcon.vue.d.ts +1 -3
  588. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +59 -48
  589. package/dist/components/BbIcon/iconCache.d.ts +63 -0
  590. package/dist/components/BbIcon/iconCache.js +35 -0
  591. package/dist/components/BbIcon/types.d.ts +22 -2
  592. package/dist/components/BbIcon/types.js +7 -0
  593. package/dist/components/BbIndicator/BbIndicator.vue_vue_type_script_setup_true_lang.js +34 -21
  594. package/dist/components/BbIndicator/types.d.ts +24 -0
  595. package/dist/components/BbIndicator/types.js +7 -0
  596. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +11 -8
  597. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +667 -87
  598. package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
  599. package/dist/components/BbNumberInput/numberDisplay.js +499 -0
  600. package/dist/components/BbNumberInput/types.d.ts +268 -19
  601. package/dist/components/BbNumberInput/types.js +8 -0
  602. package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
  603. package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
  604. package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
  605. package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
  606. package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
  607. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +4 -6
  608. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +311 -204
  609. package/dist/components/BbOffCanvas/hostCloseLabel.d.ts +3 -0
  610. package/dist/components/BbOffCanvas/hostCloseLabel.js +8 -0
  611. package/dist/components/BbOffCanvas/types.d.ts +85 -7
  612. package/dist/components/BbOffCanvas/types.js +15 -0
  613. package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -2
  614. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +146 -110
  615. package/dist/components/BbPagination/types.d.ts +38 -0
  616. package/dist/components/BbPagination/types.js +13 -0
  617. package/dist/components/BbPopover/BbPopover.vue.d.ts +5 -4
  618. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +285 -193
  619. package/dist/components/BbPopover/BbPopoverPortal.vue.d.ts +23 -0
  620. package/dist/components/BbPopover/BbPopoverPortal.vue.js +5 -0
  621. package/dist/components/BbPopover/BbPopoverPortal.vue_vue_type_script_setup_true_lang.js +13 -0
  622. package/dist/components/BbPopover/types.d.ts +77 -6
  623. package/dist/components/BbPopover/types.js +14 -0
  624. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +38 -17
  625. package/dist/components/BbProgress/types.d.ts +41 -0
  626. package/dist/components/BbProgress/types.js +7 -0
  627. package/dist/components/BbPtScope/BbPtScope.vue.d.ts +12 -0
  628. package/dist/components/BbPtScope/BbPtScope.vue.js +5 -0
  629. package/dist/components/BbPtScope/BbPtScope.vue_vue_type_script_setup_true_lang.js +13 -0
  630. package/dist/components/BbPtScope/types.d.ts +15 -0
  631. package/dist/components/BbRadio/BbRadio.vue.d.ts +7 -7
  632. package/dist/components/BbRadio/BbRadio.vue_vue_type_script_setup_true_lang.js +178 -59
  633. package/dist/components/BbRadio/types.d.ts +164 -13
  634. package/dist/components/BbRadio/types.js +8 -0
  635. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +14 -2
  636. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +333 -108
  637. package/dist/components/BbRadioGroup/types.d.ts +258 -25
  638. package/dist/components/BbRadioGroup/types.js +10 -0
  639. package/dist/components/BbRating/BbRating.vue.d.ts +10 -8
  640. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +269 -78
  641. package/dist/components/BbRating/types.d.ts +188 -13
  642. package/dist/components/BbRating/types.js +21 -0
  643. package/dist/components/BbSelect/BbSelect.vue.d.ts +17 -3
  644. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +565 -108
  645. package/dist/components/BbSelect/types.d.ts +302 -23
  646. package/dist/components/BbSelect/types.js +41 -0
  647. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +15 -1
  648. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +587 -362
  649. package/dist/components/BbSelectPopover/sheetChipAttrs.d.ts +18 -0
  650. package/dist/components/BbSelectPopover/sheetChipAttrs.js +5 -0
  651. package/dist/components/BbSelectPopover/types.d.ts +177 -15
  652. package/dist/components/BbSelectPopover/types.js +24 -0
  653. package/dist/components/BbSlider/BbSlider.vue.d.ts +13 -8
  654. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +477 -97
  655. package/dist/components/BbSlider/types.d.ts +214 -17
  656. package/dist/components/BbSlider/types.js +26 -0
  657. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +1 -1
  658. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue_vue_type_script_setup_true_lang.js +60 -48
  659. package/dist/components/BbSmoothHeight/types.d.ts +19 -0
  660. package/dist/components/BbSmoothHeight/types.js +7 -0
  661. package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -3
  662. package/dist/components/BbSpinner/BbSpinner.vue_vue_type_script_setup_true_lang.js +27 -14
  663. package/dist/components/BbSpinner/types.d.ts +22 -1
  664. package/dist/components/BbSpinner/types.js +7 -0
  665. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +7 -7
  666. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +230 -78
  667. package/dist/components/BbSwitch/types.d.ts +25 -10
  668. package/dist/components/BbSwitch/types.js +5 -0
  669. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +14 -2
  670. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +350 -106
  671. package/dist/components/BbSwitchGroup/types.d.ts +36 -8
  672. package/dist/components/BbSwitchGroup/types.js +5 -0
  673. package/dist/components/BbTable/BbTable.vue.d.ts +31 -50
  674. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +2217 -685
  675. package/dist/components/BbTable/BbTableDataRow.d.ts +198 -0
  676. package/dist/components/BbTable/BbTableDataRow.js +151 -0
  677. package/dist/components/BbTable/BbTableEdgeRow.d.ts +110 -0
  678. package/dist/components/BbTable/BbTableEdgeRow.js +65 -0
  679. package/dist/components/BbTable/BbTableExpandRow.d.ts +84 -0
  680. package/dist/components/BbTable/BbTableExpandRow.js +62 -0
  681. package/dist/components/BbTable/BbTableSelectToggle.d.ts +128 -0
  682. package/dist/components/BbTable/BbTableSelectToggle.js +131 -0
  683. package/dist/components/BbTable/gridWidgets.d.ts +30 -0
  684. package/dist/components/BbTable/gridWidgets.js +14 -0
  685. package/dist/components/BbTable/types.d.ts +571 -151
  686. package/dist/components/BbTable/types.js +33 -0
  687. package/dist/components/BbTable/utils.d.ts +145 -4
  688. package/dist/components/BbTable/utils.js +161 -37
  689. package/dist/components/BbTabs/BbTabs.vue.d.ts +3 -1
  690. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +66 -26
  691. package/dist/components/BbTabs/BbTabsList.vue.d.ts +3 -10
  692. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +143 -81
  693. package/dist/components/BbTabs/BbTabsPanels.vue.d.ts +12 -0
  694. package/dist/components/{BbBaseSwitch/BbBaseSwitch.vue.js → BbTabs/BbTabsPanels.vue.js} +2 -2
  695. package/dist/components/BbTabs/BbTabsPanels.vue_vue_type_script_setup_true_lang.js +59 -0
  696. package/dist/components/BbTabs/BbTabsRoot.vue.d.ts +3 -1
  697. package/dist/components/BbTabs/BbTabsRoot.vue_vue_type_script_setup_true_lang.js +6 -1
  698. package/dist/components/BbTabs/types.d.ts +221 -39
  699. package/dist/components/BbTabs/types.js +34 -0
  700. package/dist/components/BbTag/BbTag.vue.d.ts +13 -10
  701. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +404 -93
  702. package/dist/components/BbTag/types.d.ts +153 -15
  703. package/dist/components/BbTag/types.js +22 -0
  704. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +31 -37
  705. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +312 -107
  706. package/dist/components/BbTextInput/types.d.ts +204 -14
  707. package/dist/components/BbTextInput/types.js +12 -0
  708. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +31 -37
  709. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +342 -114
  710. package/dist/components/BbTextarea/types.d.ts +194 -15
  711. package/dist/components/BbTextarea/types.js +12 -0
  712. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +12 -4
  713. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +199 -122
  714. package/dist/components/BbTimePicker/types.d.ts +94 -7
  715. package/dist/components/BbTimePicker/types.js +18 -0
  716. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue.d.ts +14 -4
  717. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +779 -86
  718. package/dist/components/BbTimePickerInput/types.d.ts +183 -22
  719. package/dist/components/BbTimePickerInput/types.js +25 -0
  720. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +63 -25
  721. package/dist/components/BbToast/BbToastMessage.vue.d.ts +4 -1
  722. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +79 -76
  723. package/dist/components/BbToast/BbToastPortal.vue.d.ts +1 -0
  724. package/dist/components/BbToast/BbToastRegion.vue.d.ts +4 -1
  725. package/dist/components/BbToast/BbToastRegion.vue_vue_type_script_setup_true_lang.js +72 -64
  726. package/dist/components/BbToast/types.d.ts +54 -1
  727. package/dist/components/BbToast/types.js +28 -0
  728. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +127 -92
  729. package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
  730. package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
  731. package/dist/components/BbTooltip/types.d.ts +50 -5
  732. package/dist/components/BbTooltip/types.js +7 -0
  733. package/dist/components/BbTree/BbTree.vue.d.ts +15 -3
  734. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +57 -29
  735. package/dist/components/BbTree/BbTreeLevel.vue.d.ts +1 -1
  736. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +24 -20
  737. package/dist/components/BbTree/context.d.ts +9 -1
  738. package/dist/components/BbTree/types.d.ts +40 -5
  739. package/dist/components/BbTree/types.js +7 -0
  740. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +46 -44
  741. package/dist/components/ChipsBox/types.d.ts +7 -0
  742. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
  743. package/dist/components/CommaBox/CommaBox.vue_vue_type_script_setup_true_lang.js +11 -7
  744. package/dist/components/CommaBox/types.d.ts +7 -0
  745. package/dist/components/{BbBaseInputContainer/BbBaseInputContainer.vue.d.ts → CommonField/CommonField.vue.d.ts} +5 -5
  746. package/dist/components/{BbTabs/BbTabsPanes.vue.js → CommonField/CommonField.vue.js} +2 -2
  747. package/dist/components/CommonField/CommonField.vue_vue_type_script_setup_true_lang.js +231 -0
  748. package/dist/components/CommonField/messageHeightMatrix.d.ts +2 -0
  749. package/dist/components/{BbBaseInputContainer → CommonField}/types.d.ts +78 -16
  750. package/dist/components/{CommonInputWrapper/CommonInputWrapper.vue.d.ts → CommonFieldInput/CommonFieldInput.vue.d.ts} +5 -4
  751. package/dist/components/{BbBaseRadioGroup/BbBaseRadioGroup.vue.js → CommonFieldInput/CommonFieldInput.vue.js} +2 -2
  752. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +121 -0
  753. package/dist/components/CommonFieldInput/boxBorderMatrix.d.ts +10 -0
  754. package/dist/components/{CommonInputWrapper → CommonFieldInput}/types.d.ts +27 -8
  755. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +11 -2
  756. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +80 -65
  757. package/dist/components/CommonPopover/types.d.ts +29 -9
  758. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue.d.ts +49 -0
  759. package/dist/components/{BbBaseColorPalette/BbBaseColorPalette.vue.js → CommonTimeSelector/CommonTimeSelector.vue.js} +2 -2
  760. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +241 -0
  761. package/dist/components/CommonTimeSelector/types.d.ts +6 -0
  762. package/dist/components/CommonTimeSelector/useMeridiem.d.ts +19 -0
  763. package/dist/components/CommonTimeSelector/useMeridiem.js +41 -0
  764. package/dist/components/FlatListBox/FlatListBox.vue.d.ts +5 -1
  765. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +176 -98
  766. package/dist/components/FlatListBox/types.d.ts +33 -2
  767. package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +5 -1
  768. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +237 -146
  769. package/dist/components/GroupedListBox/types.d.ts +33 -2
  770. package/dist/components/ListBox/ListBox.vue.d.ts +5 -1
  771. package/dist/components/ListBox/ListBox.vue_vue_type_script_setup_true_lang.js +100 -69
  772. package/dist/components/ListBox/types.d.ts +33 -2
  773. package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +1 -1
  774. package/dist/components/OptionsContainer/OptionsContainer.vue_vue_type_script_setup_true_lang.js +117 -37
  775. package/dist/components/OptionsContainer/types.d.ts +79 -10
  776. package/dist/components/Transitions/ScaleFade.vue_vue_type_script_setup_true_lang.js +8 -8
  777. package/dist/components/Transitions/Slide.vue.js +1 -1
  778. package/dist/composables/formSubmitLock.d.ts +8 -0
  779. package/dist/composables/formSubmitLock.js +4 -0
  780. package/dist/composables/ssrMarker.d.ts +15 -0
  781. package/dist/composables/ssrMarker.js +19 -0
  782. package/dist/composables/useBaseOptions.d.ts +18 -1
  783. package/dist/composables/useBaseOptions.js +83 -37
  784. package/dist/composables/useBbConfig.d.ts +27 -6
  785. package/dist/composables/useBbConfig.js +8 -2
  786. package/dist/composables/useBbDropdownContext.d.ts +13 -8
  787. package/dist/composables/useBbFormContext.d.ts +142 -8
  788. package/dist/composables/useBbFormContext.js +62 -30
  789. package/dist/composables/useBbFormField.d.ts +60 -0
  790. package/dist/composables/useBbFormField.js +57 -0
  791. package/dist/composables/useBbTableContext.d.ts +45 -1
  792. package/dist/composables/useBbTableContext.js +93 -87
  793. package/dist/composables/useBbTabsContext.d.ts +24 -18
  794. package/dist/composables/useBbTabsContext.js +154 -112
  795. package/dist/composables/useCharacterCounter.d.ts +33 -0
  796. package/dist/composables/useCharacterCounter.js +29 -0
  797. package/dist/composables/useClosingInert.d.ts +4 -4
  798. package/dist/composables/useCoarsePointer.js +7 -10
  799. package/dist/composables/useCoherence.js +1 -1
  800. package/dist/composables/useConfig.d.ts +59 -0
  801. package/dist/composables/useConfig.js +15 -0
  802. package/dist/composables/useConfirm.d.ts +39 -7
  803. package/dist/composables/useConfirm.js +50 -41
  804. package/dist/composables/useEscapeStackEntry.d.ts +13 -0
  805. package/dist/composables/useEscapeStackEntry.js +16 -0
  806. package/dist/composables/useFormBinding.d.ts +135 -0
  807. package/dist/composables/useFormBinding.js +46 -0
  808. package/dist/composables/useHydrated.d.ts +30 -0
  809. package/dist/composables/useHydrated.js +31 -7
  810. package/dist/composables/useId.d.ts +4 -3
  811. package/dist/composables/useId.js +1 -7
  812. package/dist/composables/useItemText.d.ts +5 -1
  813. package/dist/composables/useItemText.js +8 -3
  814. package/dist/composables/useItemValue.d.ts +5 -1
  815. package/dist/composables/useItemValue.js +8 -3
  816. package/dist/composables/useItemsGetter.d.ts +73 -2
  817. package/dist/composables/useItemsGetter.js +81 -21
  818. package/dist/composables/useKeyboardInset.d.ts +28 -0
  819. package/dist/composables/useKeyboardInset.js +32 -0
  820. package/dist/composables/useLocale.js +13 -9
  821. package/dist/composables/useMobile.js +7 -10
  822. package/dist/composables/useOverlayYield.d.ts +23 -0
  823. package/dist/composables/useOverlayYield.js +20 -0
  824. package/dist/composables/usePassthrough.d.ts +228 -0
  825. package/dist/composables/usePassthrough.js +247 -0
  826. package/dist/composables/usePrefill.d.ts +26 -5
  827. package/dist/composables/usePrefill.js +36 -19
  828. package/dist/composables/useSafeAreaInternal.js +1 -1
  829. package/dist/composables/useSegmentedFields.d.ts +2 -2
  830. package/dist/composables/useSegmentedFields.js +4 -4
  831. package/dist/composables/useServerPrefetch.d.ts +28 -0
  832. package/dist/composables/useServerPrefetch.js +9 -0
  833. package/dist/composables/useSsrState.d.ts +28 -0
  834. package/dist/composables/useSsrState.js +13 -0
  835. package/dist/composables/useTableWidthContext.d.ts +24 -4
  836. package/dist/composables/useTableWidthContext.js +31 -28
  837. package/dist/composables/useToast.d.ts +18 -1
  838. package/dist/composables/useToast.js +31 -18
  839. package/dist/composables/useToggleInput.d.ts +44 -0
  840. package/dist/composables/useToggleInput.js +39 -0
  841. package/dist/composables/useViewportWidth.d.ts +5 -25
  842. package/dist/composables/useViewportWidth.js +14 -7
  843. package/dist/deprecation/ai-deprecations.json.d.ts +2259 -263
  844. package/dist/deprecation/ai-deprecations.json.js +1 -1
  845. package/dist/deprecation/removedProps.js +9 -4
  846. package/dist/directives/bbDropdown.d.ts +15 -4
  847. package/dist/directives/bbDropdown.js +42 -10
  848. package/dist/directives/bbHoverCard.d.ts +59 -0
  849. package/dist/directives/bbHoverCard.js +33 -0
  850. package/dist/directives/bbPopover.d.ts +60 -0
  851. package/dist/directives/bbPopover.js +40 -0
  852. package/dist/directives/bbTooltip.d.ts +8 -0
  853. package/dist/directives/createPopoverDirective.d.ts +86 -0
  854. package/dist/directives/createPopoverDirective.js +111 -33
  855. package/dist/directives/directivePortal.d.ts +75 -0
  856. package/dist/directives/directivePortal.js +37 -0
  857. package/dist/directives/renderingInstance.d.ts +2 -0
  858. package/dist/directives/renderingInstance.js +25 -0
  859. package/dist/i18n/index.d.ts +14 -25
  860. package/dist/i18n/locales/cs.json +28 -18
  861. package/dist/i18n/locales/da.json +31 -21
  862. package/dist/i18n/locales/de-CH.json +137 -0
  863. package/dist/i18n/locales/de.json +30 -20
  864. package/dist/i18n/locales/el.json +28 -18
  865. package/dist/i18n/locales/en-GB.json +137 -0
  866. package/dist/i18n/locales/en.json +25 -15
  867. package/dist/i18n/locales/es-MX.json +137 -0
  868. package/dist/i18n/locales/es.json +34 -24
  869. package/dist/i18n/locales/fi.json +26 -16
  870. package/dist/i18n/locales/fr.json +36 -26
  871. package/dist/i18n/locales/hu.json +26 -16
  872. package/dist/i18n/locales/it.json +29 -19
  873. package/dist/i18n/locales/ja.json +31 -21
  874. package/dist/i18n/locales/ko.json +28 -18
  875. package/dist/i18n/locales/nb.json +31 -21
  876. package/dist/i18n/locales/nl.json +39 -29
  877. package/dist/i18n/locales/pl.json +27 -17
  878. package/dist/i18n/locales/{pt.json → pt-BR.json} +36 -26
  879. package/dist/i18n/locales/pt-PT.json +137 -0
  880. package/dist/i18n/locales/ro.json +40 -30
  881. package/dist/i18n/locales/ru.json +27 -17
  882. package/dist/i18n/locales/sv.json +34 -24
  883. package/dist/i18n/locales/tr.json +32 -22
  884. package/dist/i18n/locales/uk.json +27 -17
  885. package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +28 -18
  886. package/dist/i18n/locales/zh-HK.json +137 -0
  887. package/dist/i18n/locales/zh-TW.json +137 -0
  888. package/dist/i18n/regionHints.d.ts +16 -0
  889. package/dist/i18n/regionHints.js +49 -0
  890. package/dist/i18n/regions.d.ts +286 -0
  891. package/dist/i18n/regions.js +265 -0
  892. package/dist/icon-scan.d.ts +276 -0
  893. package/dist/icon-scan.js +485 -0
  894. package/dist/icons-whitelist.d.ts +5 -4
  895. package/dist/index.d.ts +61 -23
  896. package/dist/index.js +84 -72
  897. package/dist/llms-full.txt +98740 -60296
  898. package/dist/llms-medium.txt +1617 -393
  899. package/dist/llms.txt +40 -23
  900. package/dist/locale-blueprint.json +33 -17
  901. package/dist/nuxt-auto-imports.d.ts +76 -0
  902. package/dist/nuxt-auto-imports.js +32 -0
  903. package/dist/nuxt-module.d.ts +30 -15
  904. package/dist/nuxt.js +35 -9
  905. package/dist/passthrough-deduper.js +5 -0
  906. package/dist/plugin.d.ts +10 -1
  907. package/dist/plugin.js +33 -19
  908. package/dist/project-dts.d.ts +92 -0
  909. package/dist/project-dts.js +173 -0
  910. package/dist/reset.css +1 -1
  911. package/dist/runtime/nuxt-plugin.js +36 -21
  912. package/dist/styles.css +3 -2
  913. package/dist/types/AlertVariant.d.ts +10 -1
  914. package/dist/types/BadgeVariant.d.ts +16 -5
  915. package/dist/types/ButtonVariant.d.ts +12 -1
  916. package/dist/types/ColumnName.d.ts +30 -3
  917. package/dist/types/CommonProps.d.ts +15 -5
  918. package/dist/types/Config.d.ts +112 -1
  919. package/dist/types/ConfirmVariant.d.ts +8 -1
  920. package/dist/types/DropdownItemVariant.d.ts +8 -1
  921. package/dist/types/FieldLayout.d.ts +39 -0
  922. package/dist/types/FieldLayout.js +8 -0
  923. package/dist/types/IndicatorVariant.d.ts +11 -1
  924. package/dist/types/InputVariant.d.ts +30 -0
  925. package/dist/types/ItemProps.d.ts +50 -0
  926. package/dist/types/ItemsProvider.d.ts +94 -0
  927. package/dist/types/Option.d.ts +6 -0
  928. package/dist/types/PtScope.d.ts +15 -0
  929. package/dist/types/RegistryKey.d.ts +10 -0
  930. package/dist/types/TabsVariant.d.ts +25 -0
  931. package/dist/types/ToastVariant.d.ts +12 -2
  932. package/dist/types/TooltipVariant.d.ts +8 -1
  933. package/dist/types/passthrough.d.ts +378 -0
  934. package/dist/types/passthrough.js +78 -0
  935. package/dist/types/ptComponentMap.d.ts +63 -0
  936. package/dist/utilities/functions/animationsSettled.d.ts +7 -0
  937. package/dist/utilities/functions/animationsSettled.js +6 -0
  938. package/dist/utilities/functions/elementLabel.d.ts +8 -0
  939. package/dist/utilities/functions/elementLabel.js +6 -0
  940. package/dist/utilities/functions/hasVnodeListener.d.ts +16 -0
  941. package/dist/utilities/functions/hasVnodeListener.js +12 -0
  942. package/dist/utilities/functions/isImeComposing.d.ts +7 -0
  943. package/dist/utilities/functions/isImeComposing.js +4 -0
  944. package/dist/utilities/functions/itemProps.d.ts +46 -0
  945. package/dist/utilities/functions/itemProps.js +47 -0
  946. package/dist/utilities/functions/parseSize.d.ts +2 -1
  947. package/dist/utilities/functions/readableValue.d.ts +6 -0
  948. package/dist/utilities/functions/readableValue.js +4 -0
  949. package/dist/utilities/functions/settlesVisible.d.ts +20 -0
  950. package/dist/utilities/functions/settlesVisible.js +18 -0
  951. package/dist/utilities/functions/slotKey.d.ts +13 -8
  952. package/dist/utilities/functions/slotKey.js +78 -2
  953. package/dist/utilities/functions/snapToStep.js +2 -1
  954. package/dist/utilities/functions/throttle.d.ts +1 -4
  955. package/dist/utilities/functions/throttle.js +1 -4
  956. package/dist/utilities/functions/toggleInput.d.ts +114 -0
  957. package/dist/utilities/functions/toggleInput.js +61 -0
  958. package/dist/utilities/functions/warnRemovedAttrs.d.ts +39 -1
  959. package/dist/utilities/functions/warnRemovedAttrs.js +85 -14
  960. package/dist/utilities/misc/listboxMetrics.d.ts +9 -3
  961. package/dist/utilities/misc/listboxMetrics.js +5 -2
  962. package/dist/utilities/misc/ssrStateInjectionKey.d.ts +47 -0
  963. package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
  964. package/dist/utilities/misc/ssrValue.d.ts +20 -0
  965. package/dist/utilities/misc/ssrValue.js +7 -0
  966. package/dist/utils/cssLayers.d.ts +91 -0
  967. package/dist/utils/cssLayers.js +43 -0
  968. package/dist/utils/injectLibraryStyles.d.ts +3 -1
  969. package/dist/utils/injectLibraryStyles.js +24 -23
  970. package/dist/utils/overlayEscapeStack.d.ts +39 -1
  971. package/dist/utils/overlayEscapeStack.js +19 -8
  972. package/dist/utils/passthrough.d.ts +67 -0
  973. package/dist/utils/passthrough.js +100 -0
  974. package/dist/utils/passthroughDeduper.d.ts +2 -0
  975. package/dist/utils/ptScope.d.ts +8 -0
  976. package/dist/utils/ptScope.js +4 -0
  977. package/dist/utils/versionCheck.d.ts +19 -0
  978. package/dist/utils/versionCheck.js +18 -0
  979. package/dist/vite-plugin.d.ts +324 -71
  980. package/dist/vite.js +577 -385
  981. package/llms.txt +41 -24
  982. package/package.json +74 -38
  983. package/scripts/README.md +35 -33
  984. package/scripts/lib/agent-manifest.mjs +510 -0
  985. package/scripts/lib/check-fix.mjs +129 -0
  986. package/scripts/lib/component-attr-targets.ts +123 -0
  987. package/scripts/lib/component-tree.ts +648 -0
  988. package/scripts/lib/css-class-check.mjs +329 -0
  989. package/scripts/lib/css-class-surface.mjs +292 -0
  990. package/scripts/lib/css-color-resolve.mjs +296 -0
  991. package/scripts/lib/css-local-check.mjs +432 -0
  992. package/scripts/lib/design-token-manifest.mjs +506 -0
  993. package/scripts/lib/doc-sections.mjs +250 -0
  994. package/scripts/lib/ensure-manifest.mjs +106 -10
  995. package/scripts/lib/eslint-disable.mjs +167 -0
  996. package/scripts/lib/eslint-plugin.d.ts +84 -1
  997. package/scripts/lib/eslint-plugin.mjs +2190 -33
  998. package/scripts/lib/example-checks.mjs +337 -0
  999. package/scripts/lib/form-v-model.mjs +190 -0
  1000. package/scripts/lib/guide-claims.mjs +452 -0
  1001. package/scripts/lib/hand-imported-styles.mjs +362 -0
  1002. package/scripts/lib/hand-roll-hints.mjs +50 -6
  1003. package/scripts/lib/helper-canon.mjs +176 -0
  1004. package/scripts/lib/helpers-add.mjs +1303 -0
  1005. package/scripts/lib/html-attributes.mjs +353 -0
  1006. package/scripts/lib/items-provider-context.mjs +842 -0
  1007. package/scripts/lib/linked-target.mjs +30 -0
  1008. package/scripts/lib/local-components.mjs +206 -0
  1009. package/scripts/lib/locale-check.mjs +182 -0
  1010. package/scripts/lib/manifest-pointers.mjs +71 -0
  1011. package/scripts/lib/mcp-config.mjs +93 -58
  1012. package/scripts/lib/migrate-fix.mjs +62 -3
  1013. package/scripts/lib/portal-names.mjs +458 -0
  1014. package/scripts/lib/project-variant-dts.mjs +144 -0
  1015. package/scripts/lib/public-type-exports.mjs +273 -0
  1016. package/scripts/lib/reactive-v-model.mjs +221 -0
  1017. package/scripts/lib/redundant-item-accessor.mjs +398 -0
  1018. package/scripts/lib/renamed-item-field.mjs +343 -0
  1019. package/scripts/lib/slot-key.mjs +147 -0
  1020. package/scripts/lib/slot-renames.mjs +45 -0
  1021. package/scripts/lib/squashed-slot-words.mjs +133 -0
  1022. package/scripts/lib/text-null-value.mjs +260 -0
  1023. package/scripts/lib/toolchain-check.mjs +217 -0
  1024. package/scripts/lib/unimported-components.mjs +263 -0
  1025. package/scripts/lib/validate-bb-markup.mjs +2932 -100
  1026. package/scripts/lib/wrapper-props.mjs +188 -0
  1027. package/dist/ai/BbBaseCheckbox.md +0 -49
  1028. package/dist/ai/BbBaseCheckboxGroup.md +0 -64
  1029. package/dist/ai/BbBaseColorInput.md +0 -65
  1030. package/dist/ai/BbBaseColorPalette.md +0 -39
  1031. package/dist/ai/BbBaseDatePicker.md +0 -43
  1032. package/dist/ai/BbBaseDatePickerInput.md +0 -73
  1033. package/dist/ai/BbBaseInputContainer.md +0 -48
  1034. package/dist/ai/BbBaseNumberInput.md +0 -71
  1035. package/dist/ai/BbBaseRadio.md +0 -46
  1036. package/dist/ai/BbBaseRadioGroup.md +0 -64
  1037. package/dist/ai/BbBaseRating.md +0 -52
  1038. package/dist/ai/BbBaseSelect.md +0 -88
  1039. package/dist/ai/BbBaseSlider.md +0 -56
  1040. package/dist/ai/BbBaseSwitch.md +0 -49
  1041. package/dist/ai/BbBaseSwitchGroup.md +0 -64
  1042. package/dist/ai/BbBaseTag.md +0 -68
  1043. package/dist/ai/BbBaseTextInput.md +0 -75
  1044. package/dist/ai/BbBaseTextarea.md +0 -62
  1045. package/dist/ai/BbBaseTimePickerInput.md +0 -62
  1046. package/dist/ai/BbTabsPanes.md +0 -27
  1047. package/dist/ai/CommonInputWrapper.md +0 -42
  1048. package/dist/ai/recipes/inertia/command-palette.md +0 -311
  1049. package/dist/ai/recipes/nuxt/command-palette.md +0 -300
  1050. package/dist/ai/recipes/vue/command-palette.md +0 -297
  1051. package/dist/ai/source/BbBaseCheckbox.md +0 -461
  1052. package/dist/ai/source/BbBaseCheckboxGroup.md +0 -554
  1053. package/dist/ai/source/BbBaseColorInput.md +0 -431
  1054. package/dist/ai/source/BbBaseColorPalette.md +0 -942
  1055. package/dist/ai/source/BbBaseDatePicker.md +0 -1448
  1056. package/dist/ai/source/BbBaseDatePickerInput.md +0 -1940
  1057. package/dist/ai/source/BbBaseInputContainer.md +0 -1211
  1058. package/dist/ai/source/BbBaseNumberInput.md +0 -617
  1059. package/dist/ai/source/BbBaseRadio.md +0 -381
  1060. package/dist/ai/source/BbBaseRadioGroup.md +0 -539
  1061. package/dist/ai/source/BbBaseRating.md +0 -607
  1062. package/dist/ai/source/BbBaseSelect.md +0 -945
  1063. package/dist/ai/source/BbBaseSlider.md +0 -1144
  1064. package/dist/ai/source/BbBaseSwitch.md +0 -246
  1065. package/dist/ai/source/BbBaseSwitchGroup.md +0 -302
  1066. package/dist/ai/source/BbBaseTag.md +0 -694
  1067. package/dist/ai/source/BbBaseTextInput.md +0 -511
  1068. package/dist/ai/source/BbBaseTextarea.md +0 -504
  1069. package/dist/ai/source/BbBaseTimePickerInput.md +0 -1037
  1070. package/dist/ai/source/BbTabsPanes.md +0 -377
  1071. package/dist/ai/source/CommonInputWrapper.md +0 -584
  1072. package/dist/alert-variants.d.ts +0 -19
  1073. package/dist/assets/svgs/sort.svg_raw.js +0 -4
  1074. package/dist/badge-variants.d.ts +0 -19
  1075. package/dist/button-variants.d.ts +0 -21
  1076. package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
  1077. package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
  1078. package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
  1079. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.d.ts +0 -40
  1080. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue.js +0 -6
  1081. package/dist/components/BbBaseCheckbox/BbBaseCheckbox.vue_vue_type_script_setup_true_lang.js +0 -145
  1082. package/dist/components/BbBaseCheckbox/types.d.ts +0 -224
  1083. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.d.ts +0 -19
  1084. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue.js +0 -6
  1085. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -190
  1086. package/dist/components/BbBaseCheckboxGroup/types.d.ts +0 -257
  1087. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.d.ts +0 -43
  1088. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue.js +0 -6
  1089. package/dist/components/BbBaseColorInput/BbBaseColorInput.vue_vue_type_script_setup_true_lang.js +0 -184
  1090. package/dist/components/BbBaseColorInput/types.d.ts +0 -219
  1091. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue.d.ts +0 -13
  1092. package/dist/components/BbBaseColorPalette/BbBaseColorPalette.vue_vue_type_script_setup_true_lang.js +0 -395
  1093. package/dist/components/BbBaseColorPalette/types.d.ts +0 -40
  1094. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.d.ts +0 -20
  1095. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue.js +0 -6
  1096. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +0 -407
  1097. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +0 -47
  1098. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.js +0 -5
  1099. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +0 -318
  1100. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.js +0 -5
  1101. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +0 -115
  1102. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.js +0 -5
  1103. package/dist/components/BbBaseDatePicker/BbBaseDatePickerYearSelector.vue_vue_type_script_setup_true_lang.js +0 -116
  1104. package/dist/components/BbBaseDatePicker/types.d.ts +0 -108
  1105. package/dist/components/BbBaseDatePicker/useDatePickerContext.js +0 -11
  1106. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +0 -31
  1107. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.js +0 -6
  1108. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -737
  1109. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.d.ts +0 -30
  1110. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue.js +0 -6
  1111. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerTimeSelector.vue_vue_type_script_setup_true_lang.js +0 -204
  1112. package/dist/components/BbBaseDatePickerInput/types.d.ts +0 -325
  1113. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue.js +0 -6
  1114. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +0 -190
  1115. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.d.ts +0 -52
  1116. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue.js +0 -6
  1117. package/dist/components/BbBaseNumberInput/BbBaseNumberInput.vue_vue_type_script_setup_true_lang.js +0 -215
  1118. package/dist/components/BbBaseNumberInput/types.d.ts +0 -211
  1119. package/dist/components/BbBaseRadio/BbBaseRadio.vue.d.ts +0 -33
  1120. package/dist/components/BbBaseRadio/BbBaseRadio.vue_vue_type_script_setup_true_lang.js +0 -113
  1121. package/dist/components/BbBaseRadio/types.d.ts +0 -179
  1122. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue.d.ts +0 -19
  1123. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -179
  1124. package/dist/components/BbBaseRadioGroup/types.d.ts +0 -223
  1125. package/dist/components/BbBaseRating/BbBaseRating.vue.d.ts +0 -38
  1126. package/dist/components/BbBaseRating/BbBaseRating.vue.js +0 -6
  1127. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +0 -192
  1128. package/dist/components/BbBaseRating/types.d.ts +0 -176
  1129. package/dist/components/BbBaseSelect/BbBaseSelect.vue.d.ts +0 -19
  1130. package/dist/components/BbBaseSelect/BbBaseSelect.vue.js +0 -6
  1131. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +0 -311
  1132. package/dist/components/BbBaseSelect/types.d.ts +0 -297
  1133. package/dist/components/BbBaseSlider/BbBaseSlider.vue.d.ts +0 -35
  1134. package/dist/components/BbBaseSlider/BbBaseSlider.vue.js +0 -6
  1135. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +0 -340
  1136. package/dist/components/BbBaseSlider/types.d.ts +0 -200
  1137. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue.d.ts +0 -35
  1138. package/dist/components/BbBaseSwitch/BbBaseSwitch.vue_vue_type_script_setup_true_lang.js +0 -146
  1139. package/dist/components/BbBaseSwitch/types.d.ts +0 -10
  1140. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.d.ts +0 -19
  1141. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue.js +0 -6
  1142. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -190
  1143. package/dist/components/BbBaseSwitchGroup/types.d.ts +0 -8
  1144. package/dist/components/BbBaseTag/BbBaseTag.vue.d.ts +0 -50
  1145. package/dist/components/BbBaseTag/BbBaseTag.vue.js +0 -6
  1146. package/dist/components/BbBaseTag/BbBaseTag.vue_vue_type_script_setup_true_lang.js +0 -266
  1147. package/dist/components/BbBaseTag/types.d.ts +0 -160
  1148. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.d.ts +0 -45
  1149. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue.js +0 -6
  1150. package/dist/components/BbBaseTextInput/BbBaseTextInput.vue_vue_type_script_setup_true_lang.js +0 -200
  1151. package/dist/components/BbBaseTextInput/types.d.ts +0 -209
  1152. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.d.ts +0 -39
  1153. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue.js +0 -6
  1154. package/dist/components/BbBaseTextarea/BbBaseTextarea.vue_vue_type_script_setup_true_lang.js +0 -187
  1155. package/dist/components/BbBaseTextarea/types.d.ts +0 -170
  1156. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +0 -27
  1157. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.js +0 -6
  1158. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -519
  1159. package/dist/components/BbBaseTimePickerInput/types.d.ts +0 -151
  1160. package/dist/components/BbTabs/BbTabsPanes.vue.d.ts +0 -16
  1161. package/dist/components/BbTabs/BbTabsPanes.vue_vue_type_script_setup_true_lang.js +0 -35
  1162. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue.js +0 -6
  1163. package/dist/components/CommonInputWrapper/CommonInputWrapper.vue_vue_type_script_setup_true_lang.js +0 -107
  1164. package/dist/confirm-variants.d.ts +0 -17
  1165. package/dist/dropdown-item-variants.d.ts +0 -17
  1166. package/dist/i18n/index.js +0 -27
  1167. package/dist/indicator-variants.d.ts +0 -20
  1168. package/dist/locale-registry.d.ts +0 -37
  1169. package/dist/toast-variants.d.ts +0 -20
  1170. package/dist/tooltip-variants.d.ts +0 -17
  1171. package/dist/types/InputDirection.d.ts +0 -15
  1172. package/dist/validated/BbCheckbox.vue.d.ts +0 -29
  1173. package/dist/validated/BbCheckbox.vue.js +0 -5
  1174. package/dist/validated/BbCheckbox.vue_vue_type_script_setup_true_lang.js +0 -75
  1175. package/dist/validated/BbCheckboxGroup.vue.d.ts +0 -34
  1176. package/dist/validated/BbCheckboxGroup.vue.js +0 -5
  1177. package/dist/validated/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +0 -82
  1178. package/dist/validated/BbColorInput.vue.d.ts +0 -37
  1179. package/dist/validated/BbColorInput.vue.js +0 -5
  1180. package/dist/validated/BbColorInput.vue_vue_type_script_setup_true_lang.js +0 -75
  1181. package/dist/validated/BbDatePickerInput.vue.d.ts +0 -41
  1182. package/dist/validated/BbDatePickerInput.vue.js +0 -5
  1183. package/dist/validated/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +0 -90
  1184. package/dist/validated/BbDropzone.vue.d.ts +0 -24
  1185. package/dist/validated/BbDropzone.vue.js +0 -5
  1186. package/dist/validated/BbDropzone.vue_vue_type_script_setup_true_lang.js +0 -45
  1187. package/dist/validated/BbForm.vue.d.ts +0 -28
  1188. package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +0 -42
  1189. package/dist/validated/BbNumberInput.vue.d.ts +0 -36
  1190. package/dist/validated/BbNumberInput.vue.js +0 -5
  1191. package/dist/validated/BbNumberInput.vue_vue_type_script_setup_true_lang.js +0 -72
  1192. package/dist/validated/BbRadioGroup.vue.d.ts +0 -34
  1193. package/dist/validated/BbRadioGroup.vue.js +0 -5
  1194. package/dist/validated/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +0 -78
  1195. package/dist/validated/BbRating.vue.d.ts +0 -30
  1196. package/dist/validated/BbRating.vue.js +0 -5
  1197. package/dist/validated/BbRating.vue_vue_type_script_setup_true_lang.js +0 -63
  1198. package/dist/validated/BbSelect.vue.d.ts +0 -46
  1199. package/dist/validated/BbSelect.vue.js +0 -5
  1200. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +0 -109
  1201. package/dist/validated/BbSlider.vue.d.ts +0 -36
  1202. package/dist/validated/BbSlider.vue.js +0 -5
  1203. package/dist/validated/BbSlider.vue_vue_type_script_setup_true_lang.js +0 -69
  1204. package/dist/validated/BbSwitch.vue.d.ts +0 -29
  1205. package/dist/validated/BbSwitch.vue.js +0 -5
  1206. package/dist/validated/BbSwitch.vue_vue_type_script_setup_true_lang.js +0 -75
  1207. package/dist/validated/BbSwitchGroup.vue.d.ts +0 -34
  1208. package/dist/validated/BbSwitchGroup.vue.js +0 -5
  1209. package/dist/validated/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +0 -82
  1210. package/dist/validated/BbTag.vue.d.ts +0 -36
  1211. package/dist/validated/BbTag.vue.js +0 -5
  1212. package/dist/validated/BbTag.vue_vue_type_script_setup_true_lang.js +0 -72
  1213. package/dist/validated/BbTextInput.vue.d.ts +0 -36
  1214. package/dist/validated/BbTextInput.vue.js +0 -5
  1215. package/dist/validated/BbTextInput.vue_vue_type_script_setup_true_lang.js +0 -72
  1216. package/dist/validated/BbTextarea.vue.d.ts +0 -36
  1217. package/dist/validated/BbTextarea.vue.js +0 -5
  1218. package/dist/validated/BbTextarea.vue_vue_type_script_setup_true_lang.js +0 -70
  1219. package/dist/validated/BbTimePickerInput.vue.d.ts +0 -37
  1220. package/dist/validated/BbTimePickerInput.vue.js +0 -5
  1221. package/dist/validated/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +0 -81
  1222. package/dist/validated/index.d.ts +0 -43
  1223. package/dist/validated/useValidatedField.d.ts +0 -93
  1224. package/dist/validated/useValidatedField.js +0 -51
  1225. package/dist/validated.js +0 -21
  1226. /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue.d.ts → BbCalendar/CalendarMonthPanel.vue.d.ts} +0 -0
  1227. /package/dist/components/{BbBaseDatePicker/BbBaseDatePickerYearSelector.vue.d.ts → BbCalendar/CalendarYearPanel.vue.d.ts} +0 -0
  1228. /package/dist/{components/BbBaseDatePicker/typeahead.d.ts → composables/useTypeahead.d.ts} +0 -0
  1229. /package/dist/{components/BbBaseDatePicker/typeahead.js → composables/useTypeahead.js} +0 -0
@@ -18,10 +18,11 @@
18
18
  :style="{
19
19
  '--transition-duration': `${props.transitionDuration}ms`,
20
20
  }"
21
+ v-bind="passthrough.rootAttrs"
21
22
  >
22
23
  <!-- The inner measuring element mirrors `tag`, so the pair is always
23
24
  div-in-div or span-in-span — both valid. `.bb-smooth-height__content`
24
- forces `display: block`, so a span measures the same as a div. This is
25
+ forces `display: flow-root`, so a span measures the same as a div. This is
25
26
  why `tag` is limited to those two: any element with a restricted content
26
27
  model would nest invalidly inside itself. -->
27
28
  <component :is="props.tag" ref="content" class="bb-smooth-height__content">
@@ -32,10 +33,16 @@
32
33
 
33
34
  <script setup lang="ts">
34
35
  import { transitions } from '@/utilities/misc/transitions';
35
- import type { BbSmoothHeightProps, BbSmoothHeightSlots } from './types';
36
+ import {
37
+ BB_SMOOTH_HEIGHT_PT,
38
+ type BbSmoothHeightProps,
39
+ type BbSmoothHeightSlots,
40
+ } from './types';
41
+ import { usePassthrough } from '@/composables/usePassthrough';
36
42
  export type { BbSmoothHeightProps, BbSmoothHeightSlots };
37
- import { ref, onMounted, onBeforeUnmount, watch } from 'vue';
43
+ import { onBeforeUnmount, onMounted, ref, useAttrs, watch } from 'vue';
38
44
 
45
+ defineOptions({ inheritAttrs: false });
39
46
  const props = withDefaults(defineProps<BbSmoothHeightProps>(), {
40
47
  transitionDuration: transitions.medium,
41
48
  disabled: false,
@@ -46,6 +53,18 @@ const props = withDefaults(defineProps<BbSmoothHeightProps>(), {
46
53
 
47
54
  defineSlots<BbSmoothHeightSlots>();
48
55
 
56
+ /**
57
+ * Passthrough (plans/passthrough/BbSmoothHeight.md). `root` only — the component is one element and everything it paints is configuration, not state.
58
+ */
59
+ const passthrough = usePassthrough({
60
+ component: 'BbSmoothHeight',
61
+ attrs: useAttrs(),
62
+ props,
63
+ parts: BB_SMOOTH_HEIGHT_PT.parts,
64
+ states: BB_SMOOTH_HEIGHT_PT.states,
65
+ active: {},
66
+ });
67
+
49
68
  const container = ref<HTMLElement | null>(null);
50
69
  const content = ref<HTMLElement | null>(null);
51
70
  const observer = ref<ResizeObserver | MutationObserver | null>(null);
@@ -187,8 +206,35 @@ onBeforeUnmount(() => {
187
206
 
188
207
  ```ts
189
208
  import type { LayoutElementTag } from '@/types/CommonProps';
209
+ import type { PtMap, PtValue } from '@/types/passthrough';
210
+
211
+ /**
212
+ * Passthrough parts of `BbSmoothHeight` (plans/passthrough/BbSmoothHeight.md). `root` is the animating box. Nothing it paints is a state.
213
+ *
214
+ * @part root - The box whose height animates.
215
+ */
216
+ export type BbSmoothHeightPtPart = 'root';
217
+ /** The runtime lists the resolver is wired with — no states: nothing this component paints is a state. */
218
+ export const BB_SMOOTH_HEIGHT_PT = {
219
+ parts: ['root'],
220
+ states: [],
221
+ } as const satisfies {
222
+ parts: readonly BbSmoothHeightPtPart[];
223
+ states: readonly never[];
224
+ };
190
225
 
226
+ // Spelled INLINE with this component's own union (Vue's SFC type resolver
227
+ // does not substitute a generic alias's type parameters — PASSTHROUGH.md T20).
228
+ // No state axis: a `never` state does not resolve to finite keys.
229
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
191
230
  export type BbSmoothHeightProps = {
231
+ [K in `pt:${BbSmoothHeightPtPart}`]?: PtValue;
232
+ } & {
233
+ /**
234
+ * Passthrough, object form: the same keys as the `pt:*` attributes
235
+ * without the prefix. See the `pt:<part>` row.
236
+ */
237
+ pt?: PtMap<BbSmoothHeightPtPart, never>;
192
238
  /**
193
239
  * Disable smooth-height behavior and allow natural content height.
194
240
  *
@@ -235,6 +281,11 @@ export type BbSmoothHeightSlots = {
235
281
  /* @inherit --transition-duration — set inline by the component */
236
282
  .bb-smooth-height {
237
283
  display: block;
284
+ /* The reset's `interpolate-size: allow-keywords` would make the first px
285
+ height (set at mount, from `auto`) a real transition: every mount animated,
286
+ and anything measured in that window read a box mid-way (Q61.17). Only
287
+ px → px changes animate. */
288
+ interpolate-size: numeric-only;
238
289
  /* Clip only the vertical axis so height can animate without hiding content
239
290
  that legitimately overflows horizontally (shadows, focus rings, tooltips,
240
291
  popovers). `visible` paired with `clip` is the one mix the spec leaves
@@ -252,8 +303,12 @@ export type BbSmoothHeightSlots = {
252
303
  transition: none;
253
304
  }
254
305
 
306
+ /* `flow-root`, not `block`: a new formatting context CONTAINS the slot's
307
+ vertical margins. As a plain block, a child's margin collapsed through it,
308
+ `scrollHeight` left the margin out and the clip cut off whatever sat in
309
+ it (Q56.18). It is still block-level, so a span measures like a div. */
255
310
  &__content {
256
- display: block;
311
+ display: flow-root;
257
312
  }
258
313
  }
259
314
 
@@ -7,22 +7,49 @@
7
7
  ```vue
8
8
  <template>
9
9
  <span v-if="label" role="status">
10
- <BbIcon class="bb-spinner" :icon="spinnerSvg" :size="size" />
11
- <span class="sr-only">{{ label }}</span>
10
+ <BbIcon
11
+ class="bb-spinner"
12
+ :icon="spinnerSvg"
13
+ :size="size"
14
+ v-bind="passthrough.rootAttrs"
15
+ />
16
+ <span class="bb-sr-only">{{ label }}</span>
12
17
  </span>
13
- <BbIcon v-else class="bb-spinner" :icon="spinnerSvg" :size="size" />
18
+ <BbIcon
19
+ v-else
20
+ class="bb-spinner"
21
+ :icon="spinnerSvg"
22
+ :size="size"
23
+ v-bind="passthrough.rootAttrs"
24
+ />
14
25
  </template>
15
26
 
16
27
  <script setup lang="ts">
17
28
  import spinnerSvg from '@/assets/svgs/spinner.svg?raw';
18
29
  import { removedPropsFor } from '@/deprecation/removedProps';
19
30
  import { warnRemovedAttrs } from '@/utilities/functions/warnRemovedAttrs';
20
- import type { BbSpinnerProps } from './types';
31
+ import { BB_SPINNER_PT, type BbSpinnerProps } from './types';
32
+ import { usePassthrough } from '@/composables/usePassthrough';
21
33
  import BbIcon from '../BbIcon/BbIcon.vue';
34
+ import { useAttrs } from 'vue';
22
35
 
23
- withDefaults(defineProps<BbSpinnerProps>(), {
36
+ defineOptions({ inheritAttrs: false });
37
+ const props = withDefaults(defineProps<BbSpinnerProps>(), {
24
38
  size: 'md',
25
39
  });
40
+ /**
41
+ * Passthrough (plans/passthrough/BbSpinner.md). `root` is the glyph in both
42
+ * branches, and so is everything bound on the component — a `class` included —
43
+ * so a labelled spinner styles the same node as a bare one.
44
+ */
45
+ const passthrough = usePassthrough({
46
+ component: 'BbSpinner',
47
+ attrs: useAttrs(),
48
+ props,
49
+ parts: BB_SPINNER_PT.parts,
50
+ states: BB_SPINNER_PT.states,
51
+ active: {},
52
+ });
26
53
 
27
54
  if (process.env.NODE_ENV !== 'production')
28
55
  warnRemovedAttrs('BbSpinner', removedPropsFor('BbSpinner'));
@@ -37,6 +64,7 @@ if (process.env.NODE_ENV !== 'production')
37
64
 
38
65
  ```ts
39
66
  import type { BbIconProps, BbIconSize as IconSize } from '../BbIcon/types';
67
+ import type { PtMap, PtValue } from '@/types/passthrough';
40
68
 
41
69
  /**
42
70
  * Maps size key strings to pixel dimensions. Re-exported for consumers that
@@ -44,10 +72,38 @@ import type { BbIconProps, BbIconSize as IconSize } from '../BbIcon/types';
44
72
  */
45
73
  export type Size = IconSize;
46
74
 
75
+ /**
76
+ * Passthrough parts of `BbSpinner` (plans/passthrough/BbSpinner.md). Nothing it
77
+ * paints is a state.
78
+ *
79
+ * @part root - The spinning glyph. With a `label`, the status wrapper around
80
+ * it is not a part.
81
+ */
82
+ export type BbSpinnerPtPart = 'root';
83
+ /** The runtime lists the resolver is wired with — no states: nothing this component paints is a state. */
84
+ export const BB_SPINNER_PT = {
85
+ parts: ['root'],
86
+ states: [],
87
+ } as const satisfies {
88
+ parts: readonly BbSpinnerPtPart[];
89
+ states: readonly never[];
90
+ };
91
+
92
+ // Spelled INLINE with this component's own union (Vue's SFC type resolver
93
+ // does not substitute a generic alias's type parameters — PASSTHROUGH.md T20).
94
+ // No state axis: a `never` state does not resolve to finite keys.
95
+ // eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
47
96
  export type BbSpinnerProps = Pick<BbIconProps, 'size'> & {
97
+ [K in `pt:${BbSpinnerPtPart}`]?: PtValue;
98
+ } & {
99
+ /**
100
+ * Passthrough, object form: the same keys as the `pt:*` attributes
101
+ * without the prefix. See the `pt:<part>` row.
102
+ */
103
+ pt?: PtMap<BbSpinnerPtPart, never>;
48
104
  /**
49
105
  * Accessible loading announcement. When set, the spinner is wrapped in a
50
- * `role="status"` element containing this text rendered `sr-only`, so
106
+ * `role="status"` element containing this text rendered `bb-sr-only`, so
51
107
  * screen readers announce the loading state. When omitted the markup is
52
108
  * unchanged and the spinner is purely decorative.
53
109
  */
@@ -6,97 +6,315 @@
6
6
 
7
7
  ```vue
8
8
  <template>
9
- <BaseInputContainer
9
+ <CommonField
10
10
  :id="id"
11
11
  class="bb-switch"
12
+ :compact="compact"
12
13
  :description="description"
13
- :direction="direction"
14
- :errors="errors"
14
+ :disabled="disabled"
15
+ :errors="fieldErrors"
15
16
  :has-errors="hasErrors"
16
- :has-warning="hasWarning"
17
+ :has-warnings="hasWarnings"
17
18
  :hide-label="hideLabel"
18
19
  :hint="hint"
20
+ :input-align="inputAlign"
19
21
  :input-position="inputPosition"
20
22
  :label="label"
23
+ :label-align="labelAlign"
21
24
  :label-position="labelPosition"
22
25
  label-tag="span"
26
+ :layout="layout"
23
27
  :name="name"
28
+ :passthrough="passthrough"
29
+ :readonly="fieldReadonly"
24
30
  :reverse="reverse"
31
+ :show-asterisk="showAsterisk"
25
32
  :show-hint="showHint"
26
33
  tag="label"
27
34
  :warnings="warnings"
35
+ v-bind="passthrough.forwardAttrs"
28
36
  >
29
37
  <template #label="data"><slot name="label" v-bind="data"></slot></template>
30
- <template #input="{ id, hasErrors, hasWarning, ariaDescribedby }">
31
- <BaseSwitch
32
- :id="id"
33
- :aria-describedby="ariaDescribedby"
34
- :autofocus="autofocus"
35
- :checked="checked"
36
- :disabled="disabled"
37
- :false-value="falseValue"
38
- :has-errors="hasErrors"
39
- :has-warning="hasWarning"
40
- :indeterminate="indeterminate"
41
- :model-value="modelValue"
42
- :name="name"
43
- :readonly="readonly"
44
- :required="required"
45
- :submit-when-false="submitWhenFalse"
46
- :true-value="trueValue"
47
- v-bind="eventListeners"
38
+ <template v-if="$slots.description" #description="data"
39
+ ><slot name="description" v-bind="data"></slot
40
+ ></template>
41
+ <template
42
+ #input="{
43
+ id: fieldId,
44
+ hasErrors: fieldHasErrors,
45
+ hasWarnings: fieldHasWarnings,
46
+ ariaDescribedby,
47
+ ariaLabelledby,
48
+ }"
49
+ >
50
+ <input
51
+ v-if="!paintedChecked && submitWhenFalse && !arrayModel"
52
+ v-bind="
53
+ hiddenSubmitAttrs({ disabled, falseValue: resolvedFalseValue, name })
54
+ "
55
+ />
56
+ <input
57
+ ref="switchInput"
58
+ v-bind="inputAttrs(fieldId, ariaDescribedby, ariaLabelledby)"
59
+ />
60
+ <slot
61
+ name="icon"
62
+ v-bind="iconSlotProps(fieldId, fieldHasErrors, fieldHasWarnings)"
63
+ :text="label"
48
64
  >
49
- <template #icon="data"
50
- ><slot name="icon" v-bind="data" :text="label"
51
- /></template>
52
- </BaseSwitch>
65
+ <!-- eslint-disable vue/attributes-order -- `pt:icon` binds LAST (PASSTHROUGH.md T17) -->
66
+ <BbBaseSwitchIcon
67
+ :checked="paintedChecked"
68
+ :disabled="!!disabled"
69
+ :focus-visible="focusVisible"
70
+ :focused="focused"
71
+ :has-errors="!!fieldHasErrors"
72
+ :has-warnings="!!fieldHasWarnings && !fieldHasErrors"
73
+ :indeterminate="!!indeterminate"
74
+ :readonly="!!fieldReadonly"
75
+ v-bind="passthrough.icon"
76
+ />
77
+ <!-- eslint-enable vue/attributes-order -->
78
+ </slot>
53
79
  </template>
54
- </BaseInputContainer>
80
+ </CommonField>
55
81
  </template>
56
82
 
57
83
  <script setup lang="ts">
58
- import BaseInputContainer from '../BbBaseInputContainer/BbBaseInputContainer.vue';
59
- import BaseSwitch from '../BbBaseSwitch/BbBaseSwitch.vue';
60
- import { computed, ref } from 'vue';
61
- import type { BbSwitchProps, BbSwitchEvents, BbSwitchSlots } from './types';
84
+ import CommonField from '../CommonField/CommonField.vue';
85
+ import BbBaseSwitchIcon from '../BbBaseSwitchIcon/BbBaseSwitchIcon.vue';
86
+ import {
87
+ formControlPtActive,
88
+ pickActive,
89
+ usePassthrough,
90
+ } from '@/composables/usePassthrough';
91
+ import {
92
+ usePaintedChecked,
93
+ useToggleFocus,
94
+ } from '@/composables/useToggleInput';
95
+ import { isEqual } from '@/utilities/functions/isEqual';
96
+ import {
97
+ hiddenSubmitAttrs,
98
+ preventReadonlyClick,
99
+ preventReadonlyKeydown,
100
+ revertReadonlyChange,
101
+ syncCheckedToData,
102
+ syncIndeterminate,
103
+ toggleInputAttrs,
104
+ toggleInputValue,
105
+ isMembershipModel,
106
+ toggleModelChecked,
107
+ nextToggleModel,
108
+ } from '@/utilities/functions/toggleInput';
109
+ import { computed, ref, useAttrs } from 'vue';
110
+ import {
111
+ BB_SWITCH_PT,
112
+ type BbSwitchIconSlotProps,
113
+ type BbSwitchProps,
114
+ type BbSwitchEvents,
115
+ type BbSwitchSlots,
116
+ } from './types';
117
+ import { useFormBinding } from '@/composables/useFormBinding';
62
118
  export type { BbSwitchProps, BbSwitchEvents, BbSwitchSlots };
63
119
 
64
- const props = withDefaults(defineProps<BbSwitchProps>(), {
120
+ defineOptions({ inheritAttrs: false });
121
+ const declaredProps = withDefaults(defineProps<BbSwitchProps>(), {
65
122
  // booleanish `checked` — default: undefined so an unset prop isn't coerced to
66
- // `false` and forwarded down; lets BaseSwitch derive it from `modelValue`.
123
+ // `false`; the checked state then derives from `modelValue`.
67
124
  checked: undefined,
68
- direction: 'auto',
125
+ layout: 'auto',
69
126
  // Control-first: always left-align, like BbCheckbox/BbRadio (never right, even
70
127
  // in a horizontal layout).
71
128
  inputPosition: 'left',
72
129
  });
73
130
 
74
- const emit = defineEmits<BbSwitchEvents>();
75
-
131
+ const declaredEmit = defineEmits<BbSwitchEvents>();
76
132
  defineSlots<BbSwitchSlots>();
133
+ // Inside a BbForm the field joins it (Q54.4): `props` / `emit` are bound.
134
+ const {
135
+ props,
136
+ emit,
137
+ showAsterisk,
138
+ errors: fieldErrors,
139
+ ariaRequired: fieldAriaRequired,
140
+ readonly: fieldReadonly,
141
+ } = useFormBinding(declaredProps, declaredEmit, {
142
+ componentName: 'BbSwitch',
143
+ identifierFallback: () => declaredProps.label,
144
+ leaveOn: 'blur',
145
+ commits: true,
146
+ });
147
+ /**
148
+ * `trueValue` / `falseValue` default to `true` / `false`, applied where they
149
+ * are read rather than in `withDefaults`: a literal `true` default there would
150
+ * make the `true-value` attribute shorthand a silent no-op (check-api's
151
+ * boolean-default-true rule). `=== undefined` is exactly when Vue would have
152
+ * applied a default.
153
+ */
154
+ const resolvedTrueValue = computed(() =>
155
+ props.trueValue === undefined ? true : props.trueValue
156
+ );
157
+ const resolvedFalseValue = computed(() =>
158
+ props.falseValue === undefined ? false : props.falseValue
159
+ );
77
160
 
78
- const active = ref(false);
79
- const showHint = computed(() => props.persistentHint || active.value);
161
+ const switchInput = ref<HTMLInputElement | null>(null);
162
+
163
+ /** The native input's focus, and whether it is keyboard-visible — the glyph draws its ring from these. */
164
+ const { focused, focusVisible, onFocus, onBlur } = useToggleFocus();
165
+ const showHint = computed(() => props.persistentHint || focused.value);
80
166
  // We use the negative to avoid the awkward syntax of :reverse="false" from outside
81
167
  const reverse = computed(() => !props.reverse);
82
168
 
83
- const eventListeners = {
169
+ /**
170
+ * The checked state the control PAINTS. Controlled (a `modelValue` or
171
+ * `checked` is passed), it is exactly what the data says: a click emits the
172
+ * change and the control moves only when the parent applies it. Uncontrolled
173
+ * (neither is passed — a plain form field), the control keeps the click
174
+ * itself, as a native input does.
175
+ */
176
+ const toggleValues = computed(() => ({
177
+ trueValue: resolvedTrueValue.value,
178
+ falseValue: resolvedFalseValue.value,
179
+ }));
180
+ /** An array model with scalar values: one member of a list, like Vue's native checkbox (Q56.28). */
181
+ const arrayModel = computed(() =>
182
+ isMembershipModel(props.modelValue, toggleValues.value)
183
+ );
184
+
185
+ const controlled = computed(
186
+ () => props.checked !== undefined || props.modelValue !== undefined
187
+ );
188
+ const paintedChecked = usePaintedChecked(
189
+ () =>
190
+ props.checked !== undefined
191
+ ? props.checked
192
+ : toggleModelChecked(props.modelValue, toggleValues.value, isEqual),
193
+ { indeterminate: () => props.indeterminate, input: switchInput }
194
+ );
195
+
196
+ /**
197
+ * Passthrough (plans/passthrough/BbSwitch.md). Resolved here, where the states
198
+ * are known, and handed DOWN as bindings to the container and the glyph.
199
+ * `checked` is the checked state the switch paints; `focused` is the native
200
+ * input's focus (any focus — T19).
201
+ */
202
+ const passthrough = usePassthrough({
203
+ component: 'BbSwitch',
204
+ attrs: useAttrs(),
205
+ props,
206
+ parts: BB_SWITCH_PT.parts,
207
+ states: BB_SWITCH_PT.states,
208
+ active: {
209
+ ...pickActive(formControlPtActive(props), [
210
+ 'errors',
211
+ 'warnings',
212
+ 'disabled',
213
+ 'readonly',
214
+ ]),
215
+ checked: () => paintedChecked.value,
216
+ focused: () => focused.value,
217
+ focusVisible: () => focusVisible.value,
218
+ indeterminate: () => !!props.indeterminate,
219
+ },
220
+ });
221
+
222
+ const inputListeners = {
84
223
  onBlur: (event: FocusEvent) => {
85
- active.value = false;
224
+ onBlur();
86
225
  emit('blur', event);
87
226
  },
88
- onChange: (event: Event) => emit('change', event),
89
- onClick: (event: MouseEvent) => emit('click', event),
227
+ onChange: (event: Event) => {
228
+ if (!(event.target instanceof HTMLInputElement)) return;
229
+ if (
230
+ revertReadonlyChange(event.target, props.readonly, paintedChecked.value)
231
+ ) {
232
+ syncIndeterminate(switchInput.value, props.indeterminate);
233
+ return;
234
+ }
235
+ if (!controlled.value) paintedChecked.value = event.target.checked;
236
+ syncIndeterminate(switchInput.value, props.indeterminate);
237
+ emit('change', event);
238
+ emit(
239
+ 'update:modelValue',
240
+ nextToggleModel(
241
+ props.modelValue,
242
+ event.target.checked,
243
+ toggleValues.value,
244
+ isEqual
245
+ )
246
+ );
247
+ if (controlled.value) {
248
+ syncCheckedToData(
249
+ () => switchInput.value,
250
+ () => paintedChecked.value,
251
+ () => props.indeterminate
252
+ );
253
+ }
254
+ },
90
255
  onFocus: (event: FocusEvent) => {
91
- active.value = true;
256
+ onFocus(event);
92
257
  emit('focus', event);
93
258
  },
259
+ onClick: (event: MouseEvent) => {
260
+ preventReadonlyClick(event, props.readonly);
261
+ emit('click', event);
262
+ },
94
263
  onInput: (event: Event) => emit('input', event),
95
- onKeydown: (event: KeyboardEvent) => emit('keydown', event),
264
+ onKeydown: (event: KeyboardEvent) => {
265
+ preventReadonlyKeydown(event, props.readonly);
266
+ emit('keydown', event);
267
+ },
96
268
  onMousedown: (event: MouseEvent) => emit('mousedown', event),
97
269
  onMouseup: (event: MouseEvent) => emit('mouseup', event),
98
- 'onUpdate:modelValue': (value: any) => emit('update:modelValue', value),
99
270
  };
271
+
272
+ /** The native input: the frame's resolved id and ARIA wiring, our state, our listeners. */
273
+ const inputAttrs = (
274
+ fieldId: string,
275
+ ariaDescribedby: string | undefined,
276
+ ariaLabelledby: string | undefined
277
+ ) => ({
278
+ ...toggleInputAttrs('switch', {
279
+ ariaDescribedby,
280
+ ariaLabelledby,
281
+ autofocus: props.autofocus,
282
+ checked: paintedChecked.value,
283
+ disabled: props.disabled,
284
+ id: fieldId,
285
+ indeterminate: props.indeterminate,
286
+ name: props.name,
287
+ readonly: props.readonly,
288
+ required: props.required,
289
+ ariaRequired: fieldAriaRequired.value,
290
+ value: resolvedTrueValue.value,
291
+ }),
292
+ ...inputListeners,
293
+ });
294
+
295
+ /** The `icon` slot payload (the label text is added in the template). */
296
+ const iconSlotProps = (
297
+ fieldId: string,
298
+ fieldHasErrors: boolean,
299
+ fieldHasWarnings: boolean
300
+ ): Omit<BbSwitchIconSlotProps, 'text'> => ({
301
+ checked: paintedChecked.value,
302
+ disabled: !!props.disabled,
303
+ falseValue: resolvedFalseValue.value,
304
+ focused: focused.value,
305
+ focusVisible: focusVisible.value,
306
+ hasErrors: !!fieldHasErrors,
307
+ hasWarnings: Boolean(fieldHasWarnings) && !fieldHasErrors,
308
+ id: fieldId,
309
+ indeterminate: props.indeterminate,
310
+ name: props.name,
311
+ parsedValue: toggleInputValue('switch', resolvedTrueValue.value),
312
+ readonly: !!props.readonly,
313
+ trueValue: resolvedTrueValue.value,
314
+ value: paintedChecked.value
315
+ ? resolvedTrueValue.value
316
+ : resolvedFalseValue.value,
317
+ });
100
318
  </script>
101
319
 
102
320
  <style lang="postcss">
@@ -107,8 +325,15 @@ const eventListeners = {
107
325
  ## Types
108
326
 
109
327
  ```ts
110
- import type { BaseCheckboxIconSlotProps } from '../BbBaseCheckbox/types';
111
- import type { BbCheckboxEvents, BbCheckboxProps } from '../BbCheckbox/types';
328
+ import {
329
+ BB_CHECKBOX_PT,
330
+ type BbCheckboxEvents,
331
+ type BbCheckboxIconSlotProps,
332
+ type BbCheckboxProps,
333
+ } from '../BbCheckbox/types';
334
+
335
+ /** `BbSwitch` shares `BbCheckbox`'s passthrough vocabulary (its props are the same type). */
336
+ export const BB_SWITCH_PT = BB_CHECKBOX_PT;
112
337
 
113
338
  /** Re-export of BbCheckboxProps for the switch variant. */
114
339
  export type BbSwitchProps = BbCheckboxProps;
@@ -116,6 +341,16 @@ export type BbSwitchProps = BbCheckboxProps;
116
341
  /** Re-export for consumers importing events type from BbSwitch. */
117
342
  export type BbSwitchEvents = BbCheckboxEvents;
118
343
 
344
+ /** Props exposed by the `description` slot. */
345
+ export type BbSwitchDescriptionSlotProps = {
346
+ /** The `description` prop value (empty when only the slot is provided). */
347
+ text: string;
348
+ /** Whether the field is in an error state. */
349
+ hasErrors: boolean;
350
+ /** Whether the field is in a warning state (suppressed when errors win). */
351
+ hasWarnings: boolean;
352
+ };
353
+
119
354
  /** Props exposed by the `label` slot. */
120
355
  export type BbSwitchLabelSlotProps = {
121
356
  /** The `label` prop value. */
@@ -123,14 +358,11 @@ export type BbSwitchLabelSlotProps = {
123
358
  /** Whether the switch is in an error state. */
124
359
  hasErrors: boolean;
125
360
  /** Whether the switch is in a warning state (suppressed when errors). */
126
- hasWarning: boolean;
361
+ hasWarnings: boolean;
127
362
  };
128
363
 
129
- /** Props exposed by the `icon` slot. Extends BaseSwitch icon slot with the label text. */
130
- export type BbSwitchIconSlotProps = BaseCheckboxIconSlotProps & {
131
- /** The `label` prop value. */
132
- text: string;
133
- };
364
+ /** Props exposed by the `icon` slot: the switch state plus the label text (the same payload as BbCheckbox's). */
365
+ export type BbSwitchIconSlotProps = BbCheckboxIconSlotProps;
134
366
 
135
367
  export type BbSwitchSlots = {
136
368
  /**
@@ -138,8 +370,13 @@ export type BbSwitchSlots = {
138
370
  */
139
371
  label?: (props: BbSwitchLabelSlotProps) => any;
140
372
  /**
141
- * Replaces the default toggle track visual inside the switch. Receives `BaseSwitch` slot
142
- * attributes plus the label text.
373
+ * Replaces the description text. Provided alone (no `description` prop) it still
374
+ * renders the description region and wires it into `aria-describedby`.
375
+ */
376
+ description?: (props: BbSwitchDescriptionSlotProps) => any;
377
+ /**
378
+ * Replaces the default toggle track visual inside the switch. Receives the
379
+ * switch state plus the label text.
143
380
  */
144
381
  icon?: (props: BbSwitchIconSlotProps) => any;
145
382
  };
@@ -149,7 +386,15 @@ export type BbSwitchSlots = {
149
386
 
150
387
  ```css
151
388
  .bb-switch {
152
- .bb-base-input-container__layout {
389
+ /* `grid-auto-flow: column` keeps a multi-node `icon` slot in ONE row (the
390
+ glyph and a badge beside it sit side by side, not stacked). The column
391
+ stays a grid because `justify-items` is the only `input-position` lever
392
+ (see the described-row note below, Q20.2). */
393
+ .bb-field__input-wrapper {
394
+ grid-auto-flow: column;
395
+ }
396
+
397
+ .bb-field__layout {
153
398
  cursor: pointer;
154
399
 
155
400
  &--horizontal {
@@ -160,13 +405,30 @@ export type BbSwitchSlots = {
160
405
 
161
406
  /* With a description the label block spans two lines: align the switch with
162
407
  the first line (the label text) instead of centering on the block. */
163
- &.bb-base-input-container--description {
164
- .bb-base-input-container__layout--horizontal {
408
+ &.bb-field--description {
409
+ /* Only while neither `labelAlign` nor `inputAlign` is set (Q56.45):
410
+ either prop aims the columns itself, and the pin would hold the
411
+ control on the first line against it. */
412
+ .bb-field__layout--horizontal:not(.bb-field__layout--aligned) {
165
413
  align-items: flex-start;
166
414
 
167
- .bb-base-input-container__control {
415
+ /*
416
+ * `align-items` + `min-height` are what pin the control to the
417
+ * LABEL'S FIRST LINE instead of the block centre — measured: with a
418
+ * 4-line label the control's mid sits exactly on the first line's
419
+ * mid, and 28px above the block centre.
420
+ *
421
+ * There used to be a `display: inline-flex` here too, and it was
422
+ * doing none of that vertical work — but it silently killed
423
+ * `input-position`, whose only lever is `justify-items` (a grid
424
+ * property, inert on a flex container). So a described row with
425
+ * `input-position="right"` painted its control at the START of the
426
+ * column: 166px out on a 198px column (Q20.2). Removing the one
427
+ * declaration restores left/center/right and leaves the vertical
428
+ * geometry byte-identical.
429
+ */
430
+ .bb-field__input-wrapper {
168
431
  align-items: center;
169
- display: inline-flex;
170
432
  min-height: var(--bb-label-lh);
171
433
  }
172
434
  }