bitboss-ui 3.0.0-beta.47 → 3.0.0-beta.49

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 (398) hide show
  1. package/README.md +24 -7
  2. package/bin/bitboss-ui-mcp.mjs +15 -3
  3. package/bin/bitboss-ui.mjs +167 -14
  4. package/dist/ai/BbAccordion.md +1 -1
  5. package/dist/ai/BbAvatar.md +1 -1
  6. package/dist/ai/BbBreadcrumbs.md +65 -65
  7. package/dist/ai/BbButton.md +28 -8
  8. package/dist/ai/BbCheckbox.md +0 -2
  9. package/dist/ai/BbCheckboxGroup.md +13 -20
  10. package/dist/ai/BbCollapsible.md +1 -1
  11. package/dist/ai/BbColorPalette.md +1 -1
  12. package/dist/ai/BbConfirm.md +8 -0
  13. package/dist/ai/BbConfirmPortal.md +1 -1
  14. package/dist/ai/BbDatePickerInput.md +4 -2
  15. package/dist/ai/BbDialog.md +1 -8
  16. package/dist/ai/BbDropdown.md +231 -220
  17. package/dist/ai/BbDropdownButton.md +65 -65
  18. package/dist/ai/BbDropdownGroup.md +2 -2
  19. package/dist/ai/BbDropzone.md +10 -10
  20. package/dist/ai/BbForm.md +43 -52
  21. package/dist/ai/BbHoverCard.md +19 -7
  22. package/dist/ai/BbHoverCardPortal.md +1 -1
  23. package/dist/ai/BbNumberInput.md +88 -21
  24. package/dist/ai/BbPopover.md +47 -40
  25. package/dist/ai/BbPopoverPortal.md +1 -1
  26. package/dist/ai/BbProgress.md +48 -22
  27. package/dist/ai/BbRadioGroup.md +13 -19
  28. package/dist/ai/BbSelect.md +16 -36
  29. package/dist/ai/BbSelectPopover.md +14 -30
  30. package/dist/ai/BbSmoothHeight.md +0 -2
  31. package/dist/ai/BbSwitchGroup.md +13 -20
  32. package/dist/ai/BbTable.md +11 -10
  33. package/dist/ai/BbTabs.md +107 -106
  34. package/dist/ai/BbTabsList.md +2 -2
  35. package/dist/ai/BbTabsPanels.md +1 -1
  36. package/dist/ai/BbTabsRoot.md +3 -3
  37. package/dist/ai/BbTooltip.md +29 -13
  38. package/dist/ai/BbTree.md +14 -11
  39. package/dist/ai/CommonPopover.md +1 -1
  40. package/dist/ai/changelog.json +297 -6
  41. package/dist/ai/components.json +50 -45
  42. package/dist/ai/composables/useBbDropdownContext.md +16 -16
  43. package/dist/ai/composables/useBbFormField.md +5 -1
  44. package/dist/ai/composables/useBbTabsContext.md +14 -14
  45. package/dist/ai/guides/agent-contract.md +27 -27
  46. package/dist/ai/guides/ai-router.md +1 -1
  47. package/dist/ai/guides/component-picker.md +3 -3
  48. package/dist/ai/guides/fetch-items-playbook.md +1 -1
  49. package/dist/ai/guides/icons-policy.md +10 -10
  50. package/dist/ai/guides/inertia-helpers.md +120 -67
  51. package/dist/ai/guides/installation-and-plugin-setup.md +45 -15
  52. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +3 -2
  53. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -16
  54. package/dist/ai/guides/migration/components/bb-dropdown-button.md +9 -8
  55. package/dist/ai/guides/migration/components/bb-dropdown.md +15 -14
  56. package/dist/ai/guides/migration/components/bb-radio-group.md +2 -1
  57. package/dist/ai/guides/migration/components/bb-select-popover.md +6 -1
  58. package/dist/ai/guides/migration/components/bb-select.md +10 -2
  59. package/dist/ai/guides/migration/components/bb-switch-group.md +2 -1
  60. package/dist/ai/guides/migration/components/bb-tabs.md +9 -8
  61. package/dist/ai/guides/migration/components/bb-tooltip.md +1 -1
  62. package/dist/ai/guides/migration/v2-to-v3.md +143 -28
  63. package/dist/ai/guides/migration/v3-beta-css-classes.md +29 -27
  64. package/dist/ai/guides/migration/v3-beta-tooling.md +11 -0
  65. package/dist/ai/guides/options-items-playbook.md +30 -24
  66. package/dist/ai/guides/passthrough.md +4 -4
  67. package/dist/ai/guides/preset-components.md +18 -3
  68. package/dist/ai/guides/typescript-generic-components.md +1 -1
  69. package/dist/ai/guides/validated-forms.md +11 -22
  70. package/dist/ai/guides/validation-providers.md +4 -3
  71. package/dist/ai/helpers/inertia/manifest.json +636 -0
  72. package/dist/ai/helpers/inertia/types.ts +15 -0
  73. package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
  74. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
  75. package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
  76. package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
  77. package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
  78. package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
  79. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
  80. package/dist/ai/helpers/inertia/useLoading.ts +20 -0
  81. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
  82. package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
  83. package/dist/ai/helpers/inertia/useProp.ts +63 -0
  84. package/dist/ai/helpers/inertia/useQuery.ts +19 -0
  85. package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
  86. package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
  87. package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
  88. package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
  89. package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
  90. package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
  91. package/dist/ai/helpers/inertia/useUntil.ts +33 -0
  92. package/dist/ai/helpers/inertia/utils.ts +24 -0
  93. package/dist/ai/index.md +6 -6
  94. package/dist/ai/manifest/components/BbAccordion.json +1 -1
  95. package/dist/ai/manifest/components/BbBreadcrumbs.json +10 -6
  96. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  97. package/dist/ai/manifest/components/BbButton.json +2 -1
  98. package/dist/ai/manifest/components/BbButton.tree.json +1 -1
  99. package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
  100. package/dist/ai/manifest/components/BbCollapsible.json +1 -1
  101. package/dist/ai/manifest/components/BbColorPalette.json +1 -1
  102. package/dist/ai/manifest/components/BbConfirmPortal.json +5 -2
  103. package/dist/ai/manifest/components/BbDropdown.json +23 -20
  104. package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
  105. package/dist/ai/manifest/components/BbDropdownButton.json +22 -19
  106. package/dist/ai/manifest/components/BbDropdownButton.tree.json +1 -1
  107. package/dist/ai/manifest/components/BbDropdownGroup.json +2 -2
  108. package/dist/ai/manifest/components/BbForm.json +1 -0
  109. package/dist/ai/manifest/components/BbHoverCard.json +1 -1
  110. package/dist/ai/manifest/components/BbHoverCardPortal.json +2 -2
  111. package/dist/ai/manifest/components/BbNumberInput.json +6 -1
  112. package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
  113. package/dist/ai/manifest/components/BbPopover.json +2 -1
  114. package/dist/ai/manifest/components/BbPopoverPortal.json +2 -2
  115. package/dist/ai/manifest/components/BbProgress.json +6 -6
  116. package/dist/ai/manifest/components/BbProgress.tree.json +1 -0
  117. package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
  118. package/dist/ai/manifest/components/BbSelect.json +2 -2
  119. package/dist/ai/manifest/components/BbSelect.tree.json +2 -2
  120. package/dist/ai/manifest/components/BbSelectPopover.json +2 -2
  121. package/dist/ai/manifest/components/BbSelectPopover.tree.json +1 -1
  122. package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
  123. package/dist/ai/manifest/components/BbTabs.json +8 -7
  124. package/dist/ai/manifest/components/BbTabsList.json +3 -3
  125. package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
  126. package/dist/ai/manifest/components/BbTabsRoot.json +6 -5
  127. package/dist/ai/manifest/components/BbTag.tree.json +1 -1
  128. package/dist/ai/manifest/components/BbTooltip.json +2 -2
  129. package/dist/ai/manifest/components/ChipsBox.tree.json +1 -1
  130. package/dist/ai/manifest/components/CommonPopover.json +1 -1
  131. package/dist/ai/manifest/index.json +2 -2
  132. package/dist/ai/manifest/meta.json +5 -0
  133. package/dist/ai/manifest/types.advanced.json +10 -9
  134. package/dist/ai/manifest/types.api.json +8 -5
  135. package/dist/ai/manifest/types.wrapper.json +1 -0
  136. package/dist/ai/recipes/inertia/approvals-inbox.md +16 -18
  137. package/dist/ai/recipes/inertia/inline-edit-workspace.md +23 -33
  138. package/dist/ai/recipes/inertia/layout-scaffold.md +16 -16
  139. package/dist/ai/recipes/inertia/onboarding.md +6 -10
  140. package/dist/ai/recipes/inertia/ownership-atlas.md +15 -18
  141. package/dist/ai/recipes/inertia/record-form.md +11 -11
  142. package/dist/ai/recipes/inertia/records-workspace.md +38 -41
  143. package/dist/ai/recipes/inertia/settings-workspace.md +26 -38
  144. package/dist/ai/recipes/inertia/upload-center.md +31 -39
  145. package/dist/ai/recipes/inertia/wizard-form.md +10 -19
  146. package/dist/ai/recipes/nuxt/approvals-inbox.md +7 -8
  147. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +14 -24
  148. package/dist/ai/recipes/nuxt/layout-scaffold.md +16 -16
  149. package/dist/ai/recipes/nuxt/onboarding.md +2 -6
  150. package/dist/ai/recipes/nuxt/ownership-atlas.md +7 -9
  151. package/dist/ai/recipes/nuxt/record-form.md +5 -5
  152. package/dist/ai/recipes/nuxt/records-workspace.md +29 -31
  153. package/dist/ai/recipes/nuxt/settings-workspace.md +22 -34
  154. package/dist/ai/recipes/nuxt/upload-center.md +22 -29
  155. package/dist/ai/recipes/nuxt/wizard-form.md +3 -11
  156. package/dist/ai/recipes/vue/approvals-inbox.md +7 -8
  157. package/dist/ai/recipes/vue/inline-edit-workspace.md +14 -24
  158. package/dist/ai/recipes/vue/layout-scaffold.md +16 -16
  159. package/dist/ai/recipes/vue/onboarding.md +2 -6
  160. package/dist/ai/recipes/vue/ownership-atlas.md +7 -9
  161. package/dist/ai/recipes/vue/record-form.md +5 -5
  162. package/dist/ai/recipes/vue/records-workspace.md +29 -31
  163. package/dist/ai/recipes/vue/settings-workspace.md +22 -34
  164. package/dist/ai/recipes/vue/upload-center.md +22 -29
  165. package/dist/ai/recipes/vue/wizard-form.md +3 -11
  166. package/dist/ai/source/BbAccordion.md +1 -1
  167. package/dist/ai/source/BbAlert.md +3 -3
  168. package/dist/ai/source/BbBadge.md +14 -10
  169. package/dist/ai/source/BbBadgeButton.md +17 -12
  170. package/dist/ai/source/BbBaseButton.md +1 -1
  171. package/dist/ai/source/BbBaseRadioIcon.md +1 -0
  172. package/dist/ai/source/BbBaseSwitchIcon.md +1 -0
  173. package/dist/ai/source/BbBreadcrumbs.md +63 -42
  174. package/dist/ai/source/BbButton.md +84 -38
  175. package/dist/ai/source/BbCalendar.md +17 -16
  176. package/dist/ai/source/BbCheckbox.md +3 -2
  177. package/dist/ai/source/BbCheckboxGroup.md +11 -4
  178. package/dist/ai/source/BbCollapsible.md +2 -1
  179. package/dist/ai/source/BbColorInput.md +10 -9
  180. package/dist/ai/source/BbColorPalette.md +2 -1
  181. package/dist/ai/source/BbConfirm.md +18 -1
  182. package/dist/ai/source/BbConfirmPortal.md +20 -6
  183. package/dist/ai/source/BbDatePicker.md +2 -2
  184. package/dist/ai/source/BbDatePickerInput.md +47 -20
  185. package/dist/ai/source/BbDialog.md +5 -5
  186. package/dist/ai/source/BbDropdown.md +231 -158
  187. package/dist/ai/source/BbDropdownButton.md +19 -12
  188. package/dist/ai/source/BbDropdownGroup.md +127 -93
  189. package/dist/ai/source/BbForm.md +25 -1
  190. package/dist/ai/source/BbHoverCard.md +30 -3
  191. package/dist/ai/source/BbHoverCardPortal.md +18 -3
  192. package/dist/ai/source/BbIndicator.md +4 -0
  193. package/dist/ai/source/BbNumberInput.md +855 -19
  194. package/dist/ai/source/BbOffCanvas.md +27 -11
  195. package/dist/ai/source/BbPagination.md +3 -3
  196. package/dist/ai/source/BbPopover.md +185 -12
  197. package/dist/ai/source/BbPopoverPortal.md +30 -3
  198. package/dist/ai/source/BbProgress.md +82 -18
  199. package/dist/ai/source/BbRadioGroup.md +12 -5
  200. package/dist/ai/source/BbRating.md +11 -9
  201. package/dist/ai/source/BbSelect.md +16 -10
  202. package/dist/ai/source/BbSelectPopover.md +29 -23
  203. package/dist/ai/source/BbSlider.md +12 -6
  204. package/dist/ai/source/BbSwitch.md +3 -2
  205. package/dist/ai/source/BbSwitchGroup.md +5 -2
  206. package/dist/ai/source/BbTable.md +102 -18
  207. package/dist/ai/source/BbTabs.md +30 -24
  208. package/dist/ai/source/BbTabsList.md +29 -23
  209. package/dist/ai/source/BbTabsPanels.md +29 -23
  210. package/dist/ai/source/BbTabsRoot.md +28 -22
  211. package/dist/ai/source/BbTag.md +10 -9
  212. package/dist/ai/source/BbTextInput.md +5 -4
  213. package/dist/ai/source/BbTextarea.md +6 -5
  214. package/dist/ai/source/BbTimePicker.md +1 -1
  215. package/dist/ai/source/BbTimePickerInput.md +46 -9
  216. package/dist/ai/source/BbToast.md +10 -7
  217. package/dist/ai/source/BbToastPortal.md +10 -7
  218. package/dist/ai/source/BbTooltip.md +88 -11
  219. package/dist/ai/source/BbTree.md +21 -3
  220. package/dist/ai/source/CommonField.md +6 -4
  221. package/dist/ai/source/CommonFieldInput.md +15 -10
  222. package/dist/ai/source/CommonPopover.md +8 -1
  223. package/dist/ai/source/CommonTimeSelector.md +5 -4
  224. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +10 -8
  225. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +8 -8
  226. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +45 -45
  227. package/dist/components/BbBreadcrumbs/types.d.ts +25 -17
  228. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +88 -70
  229. package/dist/components/BbButton/toggleRoving.d.ts +6 -0
  230. package/dist/components/BbButton/toggleRoving.js +45 -0
  231. package/dist/components/BbButton/types.d.ts +12 -4
  232. package/dist/components/BbButton/types.js +5 -1
  233. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +178 -178
  234. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -15
  235. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +28 -28
  236. package/dist/components/BbCalendar/useCalendarGrid.js +141 -139
  237. package/dist/components/BbCalendar/useDayjsLocale.d.ts +38 -15
  238. package/dist/components/BbCalendar/useDayjsLocale.js +31 -30
  239. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +48 -48
  240. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +81 -80
  241. package/dist/components/BbCheckboxGroup/types.d.ts +6 -2
  242. package/dist/components/BbCollapsible/types.d.ts +2 -1
  243. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
  244. package/dist/components/BbColorPalette/types.d.ts +2 -1
  245. package/dist/components/BbConfirm/BbConfirmPortal.vue.d.ts +2 -5
  246. package/dist/components/BbConfirm/types.d.ts +15 -0
  247. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +363 -349
  248. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +91 -86
  249. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +298 -289
  250. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +322 -356
  251. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +17 -15
  252. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
  253. package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
  254. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
  255. package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
  256. package/dist/components/BbDropdown/normalizeGroups.js +60 -46
  257. package/dist/components/BbDropdown/types.d.ts +120 -88
  258. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +11 -2
  259. package/dist/components/BbDropdownButton/types.d.ts +2 -2
  260. package/dist/components/BbForm/BbForm.vue.d.ts +9 -0
  261. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +114 -105
  262. package/dist/components/BbForm/BbFormCustomField.js +1 -1
  263. package/dist/components/BbForm/bindFormField.js +2 -1
  264. package/dist/components/BbForm/formFields.d.ts +5 -0
  265. package/dist/components/BbHoverCard/BbHoverCard.vue_vue_type_script_setup_true_lang.js +145 -142
  266. package/dist/components/BbHoverCard/BbHoverCardPortal.vue.d.ts +2 -2
  267. package/dist/components/BbHoverCard/types.d.ts +14 -1
  268. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +0 -1
  269. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +452 -125
  270. package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
  271. package/dist/components/BbNumberInput/numberDisplay.js +499 -0
  272. package/dist/components/BbNumberInput/types.d.ts +54 -1
  273. package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
  274. package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
  275. package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
  276. package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
  277. package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
  278. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +7 -7
  279. package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -0
  280. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +207 -162
  281. package/dist/components/BbPopover/BbPopoverPortal.vue.d.ts +2 -2
  282. package/dist/components/BbPopover/types.d.ts +26 -1
  283. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +15 -7
  284. package/dist/components/BbProgress/types.d.ts +23 -7
  285. package/dist/components/BbProgress/types.js +1 -1
  286. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +102 -101
  287. package/dist/components/BbRadioGroup/types.d.ts +6 -2
  288. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +63 -63
  289. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +156 -154
  290. package/dist/components/BbSelect/types.d.ts +6 -2
  291. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  292. package/dist/components/BbSelectPopover/types.d.ts +6 -2
  293. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +153 -153
  294. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +62 -62
  295. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +131 -130
  296. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +711 -676
  297. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +1 -1
  298. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +1 -1
  299. package/dist/components/BbTabs/types.d.ts +28 -22
  300. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +76 -76
  301. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +58 -58
  302. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +82 -82
  303. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +246 -236
  304. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +99 -86
  305. package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
  306. package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
  307. package/dist/components/BbTooltip/types.d.ts +10 -3
  308. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +29 -21
  309. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +10 -7
  310. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +37 -36
  311. package/dist/components/CommonPopover/types.d.ts +2 -1
  312. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +9 -9
  313. package/dist/composables/formSubmitLock.d.ts +6 -0
  314. package/dist/composables/formSubmitLock.js +4 -0
  315. package/dist/composables/useBaseOptions.d.ts +7 -1
  316. package/dist/composables/useBaseOptions.js +32 -32
  317. package/dist/composables/useBbDropdownContext.d.ts +8 -8
  318. package/dist/composables/useBbFormField.d.ts +9 -0
  319. package/dist/composables/useBbFormField.js +5 -3
  320. package/dist/composables/useBbTabsContext.d.ts +10 -10
  321. package/dist/composables/useBbTabsContext.js +18 -18
  322. package/dist/composables/useFormBinding.d.ts +11 -0
  323. package/dist/composables/useFormBinding.js +15 -13
  324. package/dist/composables/useItemText.d.ts +5 -1
  325. package/dist/composables/useItemText.js +8 -3
  326. package/dist/composables/useItemValue.d.ts +5 -1
  327. package/dist/composables/useItemValue.js +8 -3
  328. package/dist/composables/useLocale.js +10 -9
  329. package/dist/deprecation/ai-deprecations.json.d.ts +130 -0
  330. package/dist/deprecation/ai-deprecations.json.js +1 -1
  331. package/dist/deprecation/removedProps.js +1 -1
  332. package/dist/directives/bbDropdown.js +1 -1
  333. package/dist/directives/directivePortal.d.ts +13 -7
  334. package/dist/directives/directivePortal.js +1 -4
  335. package/dist/i18n/index.d.ts +7 -12
  336. package/dist/i18n/locales/cs.json +11 -14
  337. package/dist/i18n/locales/da.json +13 -16
  338. package/dist/i18n/locales/de-CH.json +137 -0
  339. package/dist/i18n/locales/de.json +14 -17
  340. package/dist/i18n/locales/el.json +10 -13
  341. package/dist/i18n/locales/en-GB.json +137 -0
  342. package/dist/i18n/locales/en.json +8 -11
  343. package/dist/i18n/locales/es-MX.json +137 -0
  344. package/dist/i18n/locales/es.json +16 -19
  345. package/dist/i18n/locales/fi.json +8 -11
  346. package/dist/i18n/locales/fr.json +23 -26
  347. package/dist/i18n/locales/hu.json +8 -11
  348. package/dist/i18n/locales/it.json +12 -15
  349. package/dist/i18n/locales/ja.json +13 -16
  350. package/dist/i18n/locales/ko.json +10 -13
  351. package/dist/i18n/locales/nb.json +13 -16
  352. package/dist/i18n/locales/nl.json +21 -24
  353. package/dist/i18n/locales/pl.json +10 -13
  354. package/dist/i18n/locales/{pt.json → pt-BR.json} +19 -22
  355. package/dist/i18n/locales/pt-PT.json +137 -0
  356. package/dist/i18n/locales/ro.json +22 -25
  357. package/dist/i18n/locales/ru.json +11 -14
  358. package/dist/i18n/locales/sv.json +16 -19
  359. package/dist/i18n/locales/tr.json +14 -17
  360. package/dist/i18n/locales/uk.json +11 -14
  361. package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +10 -13
  362. package/dist/i18n/locales/zh-HK.json +137 -0
  363. package/dist/i18n/locales/zh-TW.json +137 -0
  364. package/dist/i18n/regionHints.d.ts +16 -0
  365. package/dist/i18n/regionHints.js +49 -0
  366. package/dist/i18n/regions.d.ts +286 -0
  367. package/dist/i18n/regions.js +265 -0
  368. package/dist/index.d.ts +4 -4
  369. package/dist/index.js +4 -4
  370. package/dist/llms-full.txt +1914 -1714
  371. package/dist/llms-medium.txt +76 -46
  372. package/dist/llms.txt +7 -7
  373. package/dist/locale-blueprint.json +16 -13
  374. package/dist/styles.css +2 -2
  375. package/dist/types/passthrough.d.ts +1 -1
  376. package/dist/types/ptComponentMap.d.ts +2 -2
  377. package/dist/utilities/functions/slotKey.d.ts +2 -2
  378. package/dist/utils/versionCheck.js +1 -1
  379. package/dist/vite-plugin.d.ts +22 -19
  380. package/dist/vite.js +309 -297
  381. package/llms.txt +7 -7
  382. package/package.json +5 -3
  383. package/scripts/lib/agent-manifest.mjs +2 -1
  384. package/scripts/lib/eslint-disable.mjs +17 -4
  385. package/scripts/lib/eslint-plugin.d.ts +9 -1
  386. package/scripts/lib/eslint-plugin.mjs +256 -6
  387. package/scripts/lib/helper-canon.mjs +176 -0
  388. package/scripts/lib/helpers-add.mjs +1303 -0
  389. package/scripts/lib/local-components.mjs +33 -4
  390. package/scripts/lib/locale-check.mjs +165 -0
  391. package/scripts/lib/portal-names.mjs +458 -0
  392. package/scripts/lib/redundant-item-accessor.mjs +398 -0
  393. package/scripts/lib/renamed-item-field.mjs +343 -0
  394. package/scripts/lib/slot-key.mjs +2 -2
  395. package/scripts/lib/slot-renames.mjs +1 -1
  396. package/scripts/lib/unimported-components.mjs +5 -2
  397. package/scripts/lib/validate-bb-markup.mjs +123 -56
  398. package/dist/i18n/index.js +0 -27
@@ -506,7 +506,7 @@ export type BbAlertSlots = {
506
506
  letter-spacing: -0.01em;
507
507
  line-height: var(--title-lh);
508
508
  margin-bottom: 2px;
509
- padding-right: calc(var(--close-size) + var(--gap));
509
+ padding-inline-end: calc(var(--close-size) + var(--gap));
510
510
  }
511
511
 
512
512
  .bb-alert__text {
@@ -526,9 +526,9 @@ export type BbAlertSlots = {
526
526
  );
527
527
  --right-p: var(--top-p); /* same inset on the right edge */
528
528
  color: var(--fg-muted);
529
+ inset-inline-end: var(--right-p);
529
530
  padding: 2px;
530
531
  position: absolute;
531
- right: var(--right-p);
532
532
  top: var(--top-p);
533
533
  .bb-icon {
534
534
  --size: var(--close-size);
@@ -569,8 +569,8 @@ export type BbAlertSlots = {
569
569
  --hit: 44px;
570
570
  content: '';
571
571
  height: var(--hit);
572
+ inset-inline-end: calc(-1 * var(--right-p));
572
573
  position: absolute;
573
- right: calc(-1 * var(--right-p));
574
574
  top: calc(-1 * var(--top-p));
575
575
  width: var(--hit);
576
576
  }
@@ -632,7 +632,7 @@ export type BbBadgeButtonSlots = {
632
632
  &:has(> .bb-badge__trailing) {
633
633
  .bb-badge__body {
634
634
  border-radius: var(--r) 0 0 var(--r);
635
- padding-right: 0;
635
+ padding-inline-end: 0;
636
636
  }
637
637
  }
638
638
 
@@ -659,7 +659,7 @@ export type BbBadgeButtonSlots = {
659
659
  /* Overlap the (hidden) clear button onto the append icon so they share the
660
660
  trailing slot and cross-fade in place on hover/focus. */
661
661
  &:has(+ .bb-badge__clear) {
662
- margin-right: calc(
662
+ margin-inline-end: calc(
663
663
  (
664
664
  var(--gap) + (var(--clear-size) - var(--icon-size)) / 2 +
665
665
  var(--icon-size)
@@ -751,20 +751,24 @@ export type BbBadgeButtonSlots = {
751
751
  /* ---- Touch target: a chip's remove × (Q44.19) -------------------------
752
752
  * Scoped to the chips a field lays out (`.bb-tag__badge`: BbTag, and
753
753
  * BbSelect's chips row), where the library owns the spacing: chips sit 4px
754
- * apart. On a coarse pointer only, the × (the chip's full height, 16px wide)
755
- * gets an invisible `::after` 2px past the chip on every outer side, half the
756
- * gap, and 6px inward over the end of its own label: 24×24, the WCAG 2.5.8
757
- * floor. A 44px × would need a 44px chip inside a 32px field (see the notes);
758
- * a free-standing `clearable` badge is placed by the consumer and unchanged. */
754
+ * apart. On a coarse pointer only, the × gets an invisible `::after` that
755
+ * spans the chip's full height (the × itself sits inside the pill border,
756
+ * `--bw`) and reaches 2px past the chip on its outer sides, half the gap, and
757
+ * 6px inward over the end of its own label: a 20px chip gives 24×24, the WCAG
758
+ * 2.5.8 floor (Q61.24: it was 24×22, measured inside the border). The × and
759
+ * its glyph do not move. A 44px × would need a 44px chip inside a 32px field
760
+ * (see the notes); a free-standing `clearable` badge is placed by the
761
+ * consumer and unchanged. */
759
762
  @media (pointer: coarse) {
760
763
  .bb-tag__badge .bb-badge__clear {
761
764
  position: relative;
762
765
 
763
766
  &::after {
764
767
  content: '';
765
- inset-block: -2px; /* half the 4px chip gap */
766
- inset-inline-end: -2px;
767
- inset-inline-start: -6px; /* over the label's end: 16 + 6 + 2 = 24 */
768
+ /* half the 4px chip gap, past the pill border */
769
+ inset-block: calc(-2px - var(--bw));
770
+ inset-inline-end: calc(-2px - var(--bw));
771
+ inset-inline-start: -6px; /* over the label's end */
768
772
  position: absolute;
769
773
  }
770
774
  }
@@ -88,8 +88,9 @@ const bindings = computed(() => {
88
88
  .concat(onClick ?? [])
89
89
  .filter((fn): fn is ClickListener => typeof fn === 'function');
90
90
  return mergeProps(rest, props as Record<string, unknown>, {
91
- 'aria-disabled': loading.value ? true : undefined,
92
- tabindex: loading.value ? -1 : undefined,
91
+ // Only while loading: an `undefined` here would erase the consumer's own
92
+ // `aria-disabled` / `tabindex`, which `rest` carries.
93
+ ...(loading.value ? { 'aria-disabled': true, tabindex: -1 } : {}),
93
94
  onClick: (event: MouseEvent) => {
94
95
  if (loading.value) {
95
96
  // A link or submit body must not act either.
@@ -506,7 +507,7 @@ export type BbBadgeButtonSlots = {
506
507
  &:has(> .bb-badge__trailing) {
507
508
  .bb-badge__body {
508
509
  border-radius: var(--r) 0 0 var(--r);
509
- padding-right: 0;
510
+ padding-inline-end: 0;
510
511
  }
511
512
  }
512
513
 
@@ -533,7 +534,7 @@ export type BbBadgeButtonSlots = {
533
534
  /* Overlap the (hidden) clear button onto the append icon so they share the
534
535
  trailing slot and cross-fade in place on hover/focus. */
535
536
  &:has(+ .bb-badge__clear) {
536
- margin-right: calc(
537
+ margin-inline-end: calc(
537
538
  (
538
539
  var(--gap) + (var(--clear-size) - var(--icon-size)) / 2 +
539
540
  var(--icon-size)
@@ -625,20 +626,24 @@ export type BbBadgeButtonSlots = {
625
626
  /* ---- Touch target: a chip's remove × (Q44.19) -------------------------
626
627
  * Scoped to the chips a field lays out (`.bb-tag__badge`: BbTag, and
627
628
  * BbSelect's chips row), where the library owns the spacing: chips sit 4px
628
- * apart. On a coarse pointer only, the × (the chip's full height, 16px wide)
629
- * gets an invisible `::after` 2px past the chip on every outer side, half the
630
- * gap, and 6px inward over the end of its own label: 24×24, the WCAG 2.5.8
631
- * floor. A 44px × would need a 44px chip inside a 32px field (see the notes);
632
- * a free-standing `clearable` badge is placed by the consumer and unchanged. */
629
+ * apart. On a coarse pointer only, the × gets an invisible `::after` that
630
+ * spans the chip's full height (the × itself sits inside the pill border,
631
+ * `--bw`) and reaches 2px past the chip on its outer sides, half the gap, and
632
+ * 6px inward over the end of its own label: a 20px chip gives 24×24, the WCAG
633
+ * 2.5.8 floor (Q61.24: it was 24×22, measured inside the border). The × and
634
+ * its glyph do not move. A 44px × would need a 44px chip inside a 32px field
635
+ * (see the notes); a free-standing `clearable` badge is placed by the
636
+ * consumer and unchanged. */
633
637
  @media (pointer: coarse) {
634
638
  .bb-tag__badge .bb-badge__clear {
635
639
  position: relative;
636
640
 
637
641
  &::after {
638
642
  content: '';
639
- inset-block: -2px; /* half the 4px chip gap */
640
- inset-inline-end: -2px;
641
- inset-inline-start: -6px; /* over the label's end: 16 + 6 + 2 = 24 */
643
+ /* half the 4px chip gap, past the pill border */
644
+ inset-block: calc(-2px - var(--bw));
645
+ inset-inline-end: calc(-2px - var(--bw));
646
+ inset-inline-start: -6px; /* over the label's end */
642
647
  position: absolute;
643
648
  }
644
649
  }
@@ -883,7 +883,7 @@ export const BB_BASE_BUTTON_PROP_KEYS = Object.keys(baseButtonPropMap) as Array<
883
883
  cursor: pointer;
884
884
  outline: 2px solid transparent;
885
885
  outline-offset: 2px;
886
- text-align: left;
886
+ text-align: start;
887
887
  transition-duration: var(--bb-transition-fast);
888
888
  transition-property:
889
889
  color, background-color, border-color, text-decoration-color, box-shadow;
@@ -205,6 +205,7 @@ export type BbBaseRadioIconProps = {
205
205
  /* Inner disc inset must track the glyph stroke, not a leftover 2px,
206
206
  or a 3px plate theme clips the checked dot. */
207
207
  height: calc(100% - 2 * var(--bb-border-w-sm) - var(--space));
208
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: centred with a physical translate */
208
209
  left: 50%;
209
210
  position: absolute;
210
211
  top: 50%;
@@ -234,6 +234,7 @@ export type BbBaseSwitchIconProps = {
234
234
  border-radius: calc(var(--r) * 0.8);
235
235
  display: inline-block;
236
236
  height: var(--thumb);
237
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb travels by a physical translate */
237
238
  left: var(--inset);
238
239
  position: absolute;
239
240
  top: var(--inset);
@@ -80,7 +80,7 @@
80
80
  <!-- Visible breadcrumb items (index >= overflowCount) -->
81
81
  <template
82
82
  v-for="(item, index) in items"
83
- :key="item.key ?? `:keyless-${index}`"
83
+ :key="item.value ?? `:keyless-${index}`"
84
84
  >
85
85
  <template v-if="index >= overflowCount">
86
86
  <li
@@ -109,13 +109,13 @@
109
109
  :disabled="item.disabled || disabled"
110
110
  :tag="isCurrent(item, index) ? 'span' : undefined"
111
111
  >
112
- <!-- prepend: <key>:prepend | item:prepend | inline prepend:icon -->
112
+ <!-- prepend: <value>:prepend | item:prepend | inline prepend:icon -->
113
113
  <slot
114
114
  :disabled="!!(item.disabled || disabled)"
115
115
  :index="index"
116
116
  :item="item"
117
+ :label="item.label"
117
118
  :name="edgeSlot(item, 'prepend').name"
118
- :text="item.text"
119
119
  />
120
120
  <BbIcon
121
121
  v-if="
@@ -135,7 +135,7 @@
135
135
  class="bb-breadcrumbs__text"
136
136
  :title="
137
137
  items.length > 1 && overflowCount === items.length - 1
138
- ? item.text
138
+ ? item.label
139
139
  : undefined
140
140
  "
141
141
  v-bind="
@@ -149,18 +149,18 @@
149
149
  :disabled="!!(item.disabled || disabled)"
150
150
  :index="index"
151
151
  :item="item"
152
+ :label="item.label"
152
153
  :name="itemSlotBase(item)"
153
- :text="item.text"
154
- >{{ item.text }}</slot
154
+ >{{ item.label }}</slot
155
155
  >
156
156
  </span>
157
- <!-- append: <key>:append | item:append | inline append:icon -->
157
+ <!-- append: <value>:append | item:append | inline append:icon -->
158
158
  <slot
159
159
  :disabled="!!(item.disabled || disabled)"
160
160
  :index="index"
161
161
  :item="item"
162
+ :label="item.label"
162
163
  :name="edgeSlot(item, 'append').name"
163
- :text="item.text"
164
164
  />
165
165
  <BbIcon
166
166
  v-if="!edgeSlot(item, 'append').exists && item['append:icon']"
@@ -233,12 +233,12 @@ const props = withDefaults(defineProps<BbBreadcrumbsProps>(), {
233
233
 
234
234
  defineSlots<BbBreadcrumbsSlots>();
235
235
 
236
- // Per-crumb slots are named after each item's `key` through `slotKey`, so a
236
+ // Per-crumb slots are named after each item's `value` through `slotKey`, so a
237
237
  // removed prop or a slot spelled the pre-reset way is reported, as on BbTable
238
238
  // / BbTabs (Q56.28).
239
239
  if (process.env.NODE_ENV !== 'production')
240
240
  warnRemovedAttrs('BbBreadcrumbs', removedPropsFor('BbBreadcrumbs'), {
241
- slotKeys: () => props.items.map((item) => item.key),
241
+ slotKeys: () => props.items.map((item) => item.value),
242
242
  });
243
243
  /**
244
244
  * Passthrough (plans/passthrough/BbBreadcrumbs.md). `item` is resolved per crumb (`active` = the current page: the last crumb, when it has no target).
@@ -291,14 +291,16 @@ const STRUCTURAL_SLOTS = new Set([
291
291
  ]);
292
292
 
293
293
  /**
294
- * Normalized slot base for an item (`slotKey(key)`), shared with every family
295
- * component. A crumb without a `key` gets `:keyless` — a name `slotKey` never
294
+ * Normalized slot base for an item (`slotKey(value)`), shared with every family
295
+ * component. A crumb without a `value` gets `:keyless` — a name `slotKey` never
296
296
  * produces and no template can write — so it has no slot of its own and falls
297
297
  * back to the generic ones (Q53.16 / owner doctrine 2026-09-24: slot names are
298
- * written, never derived from the text).
298
+ * written, never derived from the label).
299
299
  */
300
300
  const itemSlotBase = (item: Item) =>
301
- item.key == null || item.key === '' ? ':keyless' : slotKey(String(item.key));
301
+ item.value == null || item.value === ''
302
+ ? ':keyless'
303
+ : slotKey(String(item.value));
302
304
 
303
305
  /**
304
306
  * Item props forwarded to the inner `BbBaseButton`, minus the edge-icon fields
@@ -324,14 +326,20 @@ const isCurrent = (item: Item, index: number) =>
324
326
  !item.onClick;
325
327
 
326
328
  const buttonProps = (item: Item, index: number) => {
327
- const { ['prepend:icon']: _p, ['append:icon']: _a, ...rest } = item;
329
+ const {
330
+ ['prepend:icon']: _p,
331
+ ['append:icon']: _a,
332
+ value: _value,
333
+ label: _label,
334
+ ...rest
335
+ } = item;
328
336
  return isCurrent(item, index)
329
337
  ? { ...rest, 'aria-current': 'page' as const }
330
338
  : rest;
331
339
  };
332
340
 
333
341
  /**
334
- * Resolves an edge region's precedence — `<key>:suffix` (per-item) →
342
+ * Resolves an edge region's precedence — `<value>:suffix` (per-item) →
335
343
  * `item:suffix` (generic) → inline `prepend:icon`/`append:icon`. Returns the
336
344
  * winning slot `name` plus whether a slot actually `exists`; when it doesn't,
337
345
  * `name` is the (absent) per-key name so the outlet renders nothing and the
@@ -369,7 +377,7 @@ const resolvedEllipsisAriaLabel = computed(
369
377
  * Estimates one breadcrumb item width using weighted character categories.
370
378
  */
371
379
  const estimateItemWidth = (item: Item) => {
372
- const label = item.text ?? String(item.key);
380
+ const label = item.label ?? '';
373
381
  return estimateBreadcrumbItemWidth(label, {
374
382
  estimationBias: resolvedEstimationBias.value,
375
383
  fontWidth: FONT_WIDTH,
@@ -492,7 +500,9 @@ const recompute = (availableWidth: number) => {
492
500
  // Observe this component width so overflow is based on real allocated space.
493
501
  const breadcrumbsEl = computed(() => navRef.value);
494
502
  const itemsWidthSignature = computed(() =>
495
- props.items.map((item) => `${String(item.key)}::${item.text ?? ''}`).join('|')
503
+ props.items
504
+ .map((item) => `${String(item.value)}::${item.label ?? ''}`)
505
+ .join('|')
496
506
  );
497
507
  // --- Recompute scheduling + runaway-loop guard ------------------------------
498
508
  // The ResizeObserver watches this element, but a recompute can flip
@@ -641,15 +651,15 @@ onBeforeUnmount(() => {
641
651
  }
642
652
  });
643
653
 
644
- // Map hidden items to BbDropdown item format. `prepend:icon` / `append:icon`
645
- // carry over verbatim (same field names as a dropdown item), and per-item slots
646
- // are forwarded below, so an overflowed item renders the same content.
647
- const overflowDropdownItems = computed<DropdownItem[]>(() => {
648
- return props.items.slice(0, overflowCount.value).map((item) => ({
649
- ...item,
650
- text: item.text ?? item.key ?? '',
651
- }));
652
- });
654
+ // Hidden crumbs ARE dropdown rows: the same `{ label, value }` shape and the
655
+ // same `prepend:icon` / `append:icon`, so they pass straight through, and the
656
+ // per-crumb slots are forwarded below, so an overflowed crumb renders the same
657
+ // content. A crumb without a label is a row without one.
658
+ const overflowDropdownItems = computed<DropdownItem[]>(() =>
659
+ props.items
660
+ .slice(0, overflowCount.value)
661
+ .map((item) => ({ ...item, label: item.label ?? '' }) as DropdownItem)
662
+ );
653
663
  </script>
654
664
 
655
665
  <style lang="postcss">
@@ -664,27 +674,38 @@ import type { BbBaseButtonProps } from '../BbBaseButton/types';
664
674
  import type { PtMap, PtValue } from '@/types/passthrough';
665
675
  import type { IconType } from '@/types/Icon';
666
676
 
667
- export type Item = Omit<BbBaseButtonProps, 'block' | 'tag' | 'type'> & {
677
+ export type Item = Omit<
678
+ BbBaseButtonProps,
679
+ 'block' | 'tag' | 'type' | 'text'
680
+ > & {
668
681
  /**
669
682
  * Click handler of the button.
670
683
  */
671
684
  onClick?: (event: MouseEvent) => void | Promise<void>;
685
+ /** The crumb's text. */
686
+ label?: string;
672
687
  /**
673
- * Key that uniquely identifies the breadcrumb, and the base for its own
674
- * named slots (`slotKey(key)`, kebab-case). Optional unless the crumb has a
675
- * slot of its own: a keyless crumb renders with the generic slots only
676
- * (Q53.17 — slot names are written, never derived from the text).
688
+ * Identifies the crumb, and names its own slots (`slotKey(value)`,
689
+ * kebab-case: `#<value>`, `#<value>:prepend`, `#<value>:append`). Optional
690
+ * unless the crumb has a slot of its own: a crumb without one renders with
691
+ * the generic slots only (Q53.17 — slot names are written, never derived
692
+ * from the label). A crumb hidden in the overflow menu is a dropdown row with
693
+ * the same `label` and `value`.
677
694
  */
678
- key?: string;
695
+ value?: string;
696
+ /** Crumbs have no `key` (that is `value`). Guards against the old shape. */
697
+ key?: never;
698
+ /** Crumbs have no `text` (that is `label`). Guards against the old shape. */
699
+ text?: never;
679
700
  /**
680
701
  * Icon rendered before the breadcrumb label, in the leading edge region
681
702
  * (outside the link, so it never inherits the link's text styling). Acts as
682
- * the fallback when no `<key>:prepend` / `item:prepend` slot is provided.
703
+ * the fallback when no `<value>:prepend` / `item:prepend` slot is provided.
683
704
  */
684
705
  'prepend:icon'?: IconType;
685
706
  /**
686
707
  * Icon rendered after the breadcrumb label, in the trailing edge region.
687
- * Fallback when no `<key>:append` / `item:append` slot is provided.
708
+ * Fallback when no `<value>:append` / `item:append` slot is provided.
688
709
  */
689
710
  'append:icon'?: IconType;
690
711
  };
@@ -786,8 +807,8 @@ export type BbBreadcrumbsItemSlotProps = {
786
807
  index: number;
787
808
  /** The raw item object from the `items` prop. */
788
809
  item: Item;
789
- /** The resolved display text for this item. */
790
- text?: string;
810
+ /** The crumb's label. */
811
+ label?: string;
791
812
  };
792
813
 
793
814
  /** Props exposed by the `ellipsis` slot. */
@@ -806,9 +827,9 @@ export type BbBreadcrumbsEllipsisSlotProps = {
806
827
  };
807
828
 
808
829
  /**
809
- * @dynamicSlot `<key>` {BbBreadcrumbsItemSlotProps} - One crumb's label, by its `key` through `slotKey`; falls back to `item.text`. A crumb folded into the overflow menu follows BbDropdown's slot rules instead.
810
- * @dynamicSlot `<key>:prepend` {BbBreadcrumbsItemSlotProps} - The glyph before one crumb's label; beats `item:prepend`, which beats its `prepend:icon`.
811
- * @dynamicSlot `<key>:append` {BbBreadcrumbsItemSlotProps} - The glyph after one crumb's label; beats `item:append`, which beats its `append:icon`.
830
+ * @dynamicSlot `<value>` {BbBreadcrumbsItemSlotProps} - One crumb's label, by its `value` through `slotKey`; falls back to `item.label`. A crumb folded into the overflow menu follows BbDropdown's slot rules instead (the same `#<value>` names).
831
+ * @dynamicSlot `<value>:prepend` {BbBreadcrumbsItemSlotProps} - The glyph before one crumb's label; beats `item:prepend`, which beats its `prepend:icon`.
832
+ * @dynamicSlot `<value>:append` {BbBreadcrumbsItemSlotProps} - The glyph after one crumb's label; beats `item:append`, which beats its `append:icon`.
812
833
  */
813
834
  export type BbBreadcrumbsSlots = {
814
835
  /**
@@ -821,14 +842,14 @@ export type BbBreadcrumbsSlots = {
821
842
  append?: (props: BbBreadcrumbsEdgeSlotProps) => any;
822
843
  /**
823
844
  * Content rendered before **every** breadcrumb item's link/button, in the
824
- * leading edge region. Generic fallback: a per-item `<key>:prepend` slot
845
+ * leading edge region. Generic fallback: a per-item `<value>:prepend` slot
825
846
  * takes precedence, and the item's `prepend:icon` is used when neither slot
826
847
  * is present.
827
848
  */
828
849
  'item:prepend'?: (props: BbBreadcrumbsItemSlotProps) => any;
829
850
  /**
830
851
  * Content rendered after **every** breadcrumb item's link/button. Generic
831
- * fallback below a per-item `<key>:append` slot and above the item's
852
+ * fallback below a per-item `<value>:append` slot and above the item's
832
853
  * `append:icon`.
833
854
  */
834
855
  'item:append'?: (props: BbBreadcrumbsItemSlotProps) => any;