bitboss-ui 3.0.0-beta.48 → 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 (356) hide show
  1. package/README.md +24 -7
  2. package/bin/bitboss-ui-mcp.mjs +15 -3
  3. package/bin/bitboss-ui.mjs +115 -13
  4. package/dist/ai/BbAvatar.md +1 -1
  5. package/dist/ai/BbBreadcrumbs.md +65 -65
  6. package/dist/ai/BbButton.md +16 -5
  7. package/dist/ai/BbCheckbox.md +0 -2
  8. package/dist/ai/BbCheckboxGroup.md +13 -20
  9. package/dist/ai/BbDatePickerInput.md +4 -2
  10. package/dist/ai/BbDialog.md +1 -8
  11. package/dist/ai/BbDropdown.md +231 -220
  12. package/dist/ai/BbDropdownButton.md +65 -65
  13. package/dist/ai/BbDropdownGroup.md +2 -2
  14. package/dist/ai/BbDropzone.md +10 -10
  15. package/dist/ai/BbForm.md +43 -52
  16. package/dist/ai/BbHoverCard.md +4 -2
  17. package/dist/ai/BbNumberInput.md +88 -21
  18. package/dist/ai/BbPopover.md +29 -23
  19. package/dist/ai/BbProgress.md +48 -22
  20. package/dist/ai/BbRadioGroup.md +13 -19
  21. package/dist/ai/BbSelect.md +16 -36
  22. package/dist/ai/BbSelectPopover.md +14 -30
  23. package/dist/ai/BbSmoothHeight.md +0 -2
  24. package/dist/ai/BbSwitchGroup.md +13 -20
  25. package/dist/ai/BbTable.md +11 -10
  26. package/dist/ai/BbTabs.md +106 -105
  27. package/dist/ai/BbTabsList.md +2 -2
  28. package/dist/ai/BbTabsPanels.md +1 -1
  29. package/dist/ai/BbTabsRoot.md +2 -2
  30. package/dist/ai/BbTooltip.md +24 -10
  31. package/dist/ai/BbTree.md +14 -11
  32. package/dist/ai/changelog.json +256 -5
  33. package/dist/ai/components.json +36 -34
  34. package/dist/ai/composables/useBbDropdownContext.md +16 -16
  35. package/dist/ai/composables/useBbFormField.md +5 -1
  36. package/dist/ai/composables/useBbTabsContext.md +14 -14
  37. package/dist/ai/guides/agent-contract.md +27 -27
  38. package/dist/ai/guides/ai-router.md +1 -1
  39. package/dist/ai/guides/component-picker.md +3 -3
  40. package/dist/ai/guides/fetch-items-playbook.md +1 -1
  41. package/dist/ai/guides/icons-policy.md +10 -10
  42. package/dist/ai/guides/inertia-helpers.md +120 -67
  43. package/dist/ai/guides/installation-and-plugin-setup.md +43 -15
  44. package/dist/ai/guides/migration/components/bb-breadcrumbs.md +3 -2
  45. package/dist/ai/guides/migration/components/bb-checkbox-group.md +16 -16
  46. package/dist/ai/guides/migration/components/bb-dropdown-button.md +9 -8
  47. package/dist/ai/guides/migration/components/bb-dropdown.md +15 -14
  48. package/dist/ai/guides/migration/components/bb-radio-group.md +2 -1
  49. package/dist/ai/guides/migration/components/bb-select-popover.md +6 -1
  50. package/dist/ai/guides/migration/components/bb-select.md +10 -2
  51. package/dist/ai/guides/migration/components/bb-switch-group.md +2 -1
  52. package/dist/ai/guides/migration/components/bb-tabs.md +9 -8
  53. package/dist/ai/guides/migration/components/bb-tooltip.md +1 -1
  54. package/dist/ai/guides/migration/v2-to-v3.md +114 -17
  55. package/dist/ai/guides/migration/v3-beta-tooling.md +11 -0
  56. package/dist/ai/guides/options-items-playbook.md +30 -24
  57. package/dist/ai/guides/passthrough.md +2 -2
  58. package/dist/ai/guides/preset-components.md +18 -3
  59. package/dist/ai/guides/typescript-generic-components.md +1 -1
  60. package/dist/ai/guides/validated-forms.md +11 -22
  61. package/dist/ai/guides/validation-providers.md +4 -3
  62. package/dist/ai/helpers/inertia/manifest.json +636 -0
  63. package/dist/ai/helpers/inertia/types.ts +15 -0
  64. package/dist/ai/helpers/inertia/useAsyncFn.ts +110 -0
  65. package/dist/ai/helpers/inertia/useConfirmOnRouteLeave.ts +102 -0
  66. package/dist/ai/helpers/inertia/useDeleteCmd.ts +30 -0
  67. package/dist/ai/helpers/inertia/useHasChanged.ts +36 -0
  68. package/dist/ai/helpers/inertia/useIndexById.ts +23 -0
  69. package/dist/ai/helpers/inertia/useLazyProp.ts +148 -0
  70. package/dist/ai/helpers/inertia/useLazyPropGetter.ts +50 -0
  71. package/dist/ai/helpers/inertia/useLoading.ts +20 -0
  72. package/dist/ai/helpers/inertia/usePaginatedResponseContext.ts +88 -0
  73. package/dist/ai/helpers/inertia/usePromiseForm.ts +62 -0
  74. package/dist/ai/helpers/inertia/useProp.ts +63 -0
  75. package/dist/ai/helpers/inertia/useQuery.ts +19 -0
  76. package/dist/ai/helpers/inertia/useQueryObject.ts +116 -0
  77. package/dist/ai/helpers/inertia/useResourceContext.ts +69 -0
  78. package/dist/ai/helpers/inertia/useRouteQuery.ts +54 -0
  79. package/dist/ai/helpers/inertia/useScreenSizes.ts +23 -0
  80. package/dist/ai/helpers/inertia/useTableContext.ts +34 -0
  81. package/dist/ai/helpers/inertia/useTableSelectionContext.ts +48 -0
  82. package/dist/ai/helpers/inertia/useUntil.ts +33 -0
  83. package/dist/ai/helpers/inertia/utils.ts +24 -0
  84. package/dist/ai/index.md +6 -6
  85. package/dist/ai/manifest/components/BbBreadcrumbs.json +10 -6
  86. package/dist/ai/manifest/components/BbBreadcrumbs.tree.json +1 -1
  87. package/dist/ai/manifest/components/BbButton.json +1 -1
  88. package/dist/ai/manifest/components/BbCheckboxGroup.json +2 -2
  89. package/dist/ai/manifest/components/BbDropdown.json +23 -20
  90. package/dist/ai/manifest/components/BbDropdown.tree.json +2 -2
  91. package/dist/ai/manifest/components/BbDropdownButton.json +22 -19
  92. package/dist/ai/manifest/components/BbDropdownButton.tree.json +1 -1
  93. package/dist/ai/manifest/components/BbDropdownGroup.json +2 -2
  94. package/dist/ai/manifest/components/BbForm.json +1 -0
  95. package/dist/ai/manifest/components/BbNumberInput.json +6 -1
  96. package/dist/ai/manifest/components/BbNumberInput.tree.json +2 -1
  97. package/dist/ai/manifest/components/BbPopover.json +1 -0
  98. package/dist/ai/manifest/components/BbProgress.json +6 -6
  99. package/dist/ai/manifest/components/BbProgress.tree.json +1 -0
  100. package/dist/ai/manifest/components/BbRadioGroup.json +2 -2
  101. package/dist/ai/manifest/components/BbSelect.json +2 -2
  102. package/dist/ai/manifest/components/BbSelectPopover.json +2 -2
  103. package/dist/ai/manifest/components/BbSwitchGroup.json +2 -2
  104. package/dist/ai/manifest/components/BbTabs.json +7 -6
  105. package/dist/ai/manifest/components/BbTabsList.json +3 -3
  106. package/dist/ai/manifest/components/BbTabsPanels.json +1 -1
  107. package/dist/ai/manifest/components/BbTabsRoot.json +5 -4
  108. package/dist/ai/manifest/components/BbTooltip.json +1 -1
  109. package/dist/ai/manifest/index.json +2 -2
  110. package/dist/ai/manifest/meta.json +2 -0
  111. package/dist/ai/manifest/types.advanced.json +10 -9
  112. package/dist/ai/manifest/types.api.json +5 -4
  113. package/dist/ai/recipes/inertia/approvals-inbox.md +16 -18
  114. package/dist/ai/recipes/inertia/inline-edit-workspace.md +23 -33
  115. package/dist/ai/recipes/inertia/layout-scaffold.md +16 -16
  116. package/dist/ai/recipes/inertia/onboarding.md +6 -10
  117. package/dist/ai/recipes/inertia/ownership-atlas.md +15 -18
  118. package/dist/ai/recipes/inertia/record-form.md +11 -11
  119. package/dist/ai/recipes/inertia/records-workspace.md +38 -41
  120. package/dist/ai/recipes/inertia/settings-workspace.md +26 -38
  121. package/dist/ai/recipes/inertia/upload-center.md +31 -39
  122. package/dist/ai/recipes/inertia/wizard-form.md +10 -19
  123. package/dist/ai/recipes/nuxt/approvals-inbox.md +7 -8
  124. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +14 -24
  125. package/dist/ai/recipes/nuxt/layout-scaffold.md +16 -16
  126. package/dist/ai/recipes/nuxt/onboarding.md +2 -6
  127. package/dist/ai/recipes/nuxt/ownership-atlas.md +7 -9
  128. package/dist/ai/recipes/nuxt/record-form.md +5 -5
  129. package/dist/ai/recipes/nuxt/records-workspace.md +29 -31
  130. package/dist/ai/recipes/nuxt/settings-workspace.md +22 -34
  131. package/dist/ai/recipes/nuxt/upload-center.md +22 -29
  132. package/dist/ai/recipes/nuxt/wizard-form.md +3 -11
  133. package/dist/ai/recipes/vue/approvals-inbox.md +7 -8
  134. package/dist/ai/recipes/vue/inline-edit-workspace.md +14 -24
  135. package/dist/ai/recipes/vue/layout-scaffold.md +16 -16
  136. package/dist/ai/recipes/vue/onboarding.md +2 -6
  137. package/dist/ai/recipes/vue/ownership-atlas.md +7 -9
  138. package/dist/ai/recipes/vue/record-form.md +5 -5
  139. package/dist/ai/recipes/vue/records-workspace.md +29 -31
  140. package/dist/ai/recipes/vue/settings-workspace.md +22 -34
  141. package/dist/ai/recipes/vue/upload-center.md +22 -29
  142. package/dist/ai/recipes/vue/wizard-form.md +3 -11
  143. package/dist/ai/source/BbAccordion.md +1 -1
  144. package/dist/ai/source/BbAlert.md +3 -3
  145. package/dist/ai/source/BbBadge.md +2 -2
  146. package/dist/ai/source/BbBadgeButton.md +5 -4
  147. package/dist/ai/source/BbBaseButton.md +1 -1
  148. package/dist/ai/source/BbBaseRadioIcon.md +1 -0
  149. package/dist/ai/source/BbBaseSwitchIcon.md +1 -0
  150. package/dist/ai/source/BbBreadcrumbs.md +63 -42
  151. package/dist/ai/source/BbButton.md +71 -33
  152. package/dist/ai/source/BbCalendar.md +17 -16
  153. package/dist/ai/source/BbCheckbox.md +3 -2
  154. package/dist/ai/source/BbCheckboxGroup.md +11 -4
  155. package/dist/ai/source/BbColorInput.md +10 -9
  156. package/dist/ai/source/BbConfirm.md +1 -1
  157. package/dist/ai/source/BbConfirmPortal.md +1 -1
  158. package/dist/ai/source/BbDatePicker.md +2 -2
  159. package/dist/ai/source/BbDatePickerInput.md +47 -20
  160. package/dist/ai/source/BbDialog.md +5 -5
  161. package/dist/ai/source/BbDropdown.md +230 -158
  162. package/dist/ai/source/BbDropdownButton.md +19 -12
  163. package/dist/ai/source/BbDropdownGroup.md +126 -93
  164. package/dist/ai/source/BbForm.md +25 -1
  165. package/dist/ai/source/BbIndicator.md +4 -0
  166. package/dist/ai/source/BbNumberInput.md +855 -19
  167. package/dist/ai/source/BbOffCanvas.md +27 -11
  168. package/dist/ai/source/BbPagination.md +3 -3
  169. package/dist/ai/source/BbPopover.md +152 -8
  170. package/dist/ai/source/BbPopoverPortal.md +11 -0
  171. package/dist/ai/source/BbProgress.md +82 -18
  172. package/dist/ai/source/BbRadioGroup.md +12 -5
  173. package/dist/ai/source/BbRating.md +11 -9
  174. package/dist/ai/source/BbSelect.md +16 -10
  175. package/dist/ai/source/BbSelectPopover.md +29 -23
  176. package/dist/ai/source/BbSlider.md +12 -6
  177. package/dist/ai/source/BbSwitch.md +3 -2
  178. package/dist/ai/source/BbSwitchGroup.md +5 -2
  179. package/dist/ai/source/BbTable.md +102 -18
  180. package/dist/ai/source/BbTabs.md +27 -23
  181. package/dist/ai/source/BbTabsList.md +26 -22
  182. package/dist/ai/source/BbTabsPanels.md +26 -22
  183. package/dist/ai/source/BbTabsRoot.md +25 -21
  184. package/dist/ai/source/BbTag.md +10 -9
  185. package/dist/ai/source/BbTextInput.md +5 -4
  186. package/dist/ai/source/BbTextarea.md +6 -5
  187. package/dist/ai/source/BbTimePicker.md +1 -1
  188. package/dist/ai/source/BbTimePickerInput.md +46 -9
  189. package/dist/ai/source/BbToast.md +10 -7
  190. package/dist/ai/source/BbToastPortal.md +10 -7
  191. package/dist/ai/source/BbTooltip.md +54 -8
  192. package/dist/ai/source/BbTree.md +21 -3
  193. package/dist/ai/source/CommonField.md +6 -4
  194. package/dist/ai/source/CommonFieldInput.md +15 -10
  195. package/dist/ai/source/CommonPopover.md +6 -0
  196. package/dist/ai/source/CommonTimeSelector.md +5 -4
  197. package/dist/components/BbBadge/BbBadgeButton.vue_vue_type_script_setup_true_lang.js +10 -8
  198. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +8 -8
  199. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +45 -45
  200. package/dist/components/BbBreadcrumbs/types.d.ts +25 -17
  201. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +84 -71
  202. package/dist/components/BbButton/toggleRoving.d.ts +6 -0
  203. package/dist/components/BbButton/toggleRoving.js +45 -0
  204. package/dist/components/BbButton/types.d.ts +4 -1
  205. package/dist/components/BbCalendar/BbCalendar.vue_vue_type_script_setup_true_lang.js +178 -178
  206. package/dist/components/BbCalendar/CalendarMonthPanel.vue_vue_type_script_setup_true_lang.js +15 -15
  207. package/dist/components/BbCalendar/CalendarYearPanel.vue_vue_type_script_setup_true_lang.js +28 -28
  208. package/dist/components/BbCalendar/useCalendarGrid.js +141 -139
  209. package/dist/components/BbCalendar/useDayjsLocale.d.ts +38 -15
  210. package/dist/components/BbCalendar/useDayjsLocale.js +31 -30
  211. package/dist/components/BbCheckbox/BbCheckbox.vue_vue_type_script_setup_true_lang.js +48 -48
  212. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue_vue_type_script_setup_true_lang.js +81 -80
  213. package/dist/components/BbCheckboxGroup/types.d.ts +6 -2
  214. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +69 -69
  215. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +363 -349
  216. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +91 -86
  217. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +298 -289
  218. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +322 -356
  219. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +17 -15
  220. package/dist/components/BbDropdown/DropdownRow.vue.d.ts +40 -0
  221. package/dist/components/BbDropdown/DropdownRow.vue.js +5 -0
  222. package/dist/components/BbDropdown/DropdownRow.vue_vue_type_script_setup_true_lang.js +60 -0
  223. package/dist/components/BbDropdown/normalizeGroups.d.ts +8 -2
  224. package/dist/components/BbDropdown/normalizeGroups.js +60 -46
  225. package/dist/components/BbDropdown/types.d.ts +119 -88
  226. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +11 -2
  227. package/dist/components/BbDropdownButton/types.d.ts +2 -2
  228. package/dist/components/BbForm/BbForm.vue.d.ts +9 -0
  229. package/dist/components/BbForm/BbForm.vue_vue_type_script_setup_true_lang.js +114 -105
  230. package/dist/components/BbForm/BbFormCustomField.js +1 -1
  231. package/dist/components/BbForm/bindFormField.js +2 -1
  232. package/dist/components/BbForm/formFields.d.ts +5 -0
  233. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +0 -1
  234. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +452 -125
  235. package/dist/components/BbNumberInput/numberDisplay.d.ts +256 -0
  236. package/dist/components/BbNumberInput/numberDisplay.js +499 -0
  237. package/dist/components/BbNumberInput/types.d.ts +54 -1
  238. package/dist/components/BbNumberInput/warroom/corpus.d.ts +58 -0
  239. package/dist/components/BbNumberInput/warroom/currency-verify.rows.d.ts +28 -0
  240. package/dist/components/BbNumberInput/warroom/currency.rows.d.ts +2 -0
  241. package/dist/components/BbNumberInput/warroom/harness.d.ts +217 -0
  242. package/dist/components/BbNumberInput/warroom/oracle.d.ts +150 -0
  243. package/dist/components/BbPagination/BbPagination.vue_vue_type_script_setup_true_lang.js +7 -7
  244. package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -0
  245. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +207 -164
  246. package/dist/components/BbPopover/types.d.ts +11 -0
  247. package/dist/components/BbProgress/BbProgress.vue_vue_type_script_setup_true_lang.js +15 -7
  248. package/dist/components/BbProgress/types.d.ts +23 -7
  249. package/dist/components/BbProgress/types.js +1 -1
  250. package/dist/components/BbRadioGroup/BbRadioGroup.vue_vue_type_script_setup_true_lang.js +102 -101
  251. package/dist/components/BbRadioGroup/types.d.ts +6 -2
  252. package/dist/components/BbRating/BbRating.vue_vue_type_script_setup_true_lang.js +63 -63
  253. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +156 -154
  254. package/dist/components/BbSelect/types.d.ts +6 -2
  255. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  256. package/dist/components/BbSelectPopover/types.d.ts +6 -2
  257. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +153 -153
  258. package/dist/components/BbSwitch/BbSwitch.vue_vue_type_script_setup_true_lang.js +62 -62
  259. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue_vue_type_script_setup_true_lang.js +131 -130
  260. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +711 -676
  261. package/dist/components/BbTabs/BbTabs.vue_vue_type_script_setup_true_lang.js +1 -1
  262. package/dist/components/BbTabs/BbTabsList.vue_vue_type_script_setup_true_lang.js +1 -1
  263. package/dist/components/BbTabs/types.d.ts +25 -21
  264. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +76 -76
  265. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +58 -58
  266. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +82 -82
  267. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +246 -236
  268. package/dist/components/BbTooltip/BbTooltip.vue_vue_type_script_setup_true_lang.js +102 -97
  269. package/dist/components/BbTooltip/tooltipWarmup.d.ts +23 -0
  270. package/dist/components/BbTooltip/tooltipWarmup.js +7 -0
  271. package/dist/components/BbTooltip/types.d.ts +7 -2
  272. package/dist/components/BbTree/BbTree.vue_vue_type_script_setup_true_lang.js +29 -21
  273. package/dist/components/BbTree/BbTreeLevel.vue_vue_type_script_setup_true_lang.js +10 -7
  274. package/dist/components/CommonFieldInput/CommonFieldInput.vue_vue_type_script_setup_true_lang.js +37 -36
  275. package/dist/components/CommonTimeSelector/CommonTimeSelector.vue_vue_type_script_setup_true_lang.js +9 -9
  276. package/dist/composables/formSubmitLock.d.ts +6 -0
  277. package/dist/composables/formSubmitLock.js +4 -0
  278. package/dist/composables/useBaseOptions.d.ts +7 -1
  279. package/dist/composables/useBaseOptions.js +32 -32
  280. package/dist/composables/useBbDropdownContext.d.ts +8 -8
  281. package/dist/composables/useBbFormField.d.ts +9 -0
  282. package/dist/composables/useBbFormField.js +5 -3
  283. package/dist/composables/useBbTabsContext.d.ts +10 -10
  284. package/dist/composables/useBbTabsContext.js +18 -18
  285. package/dist/composables/useFormBinding.d.ts +11 -0
  286. package/dist/composables/useFormBinding.js +15 -13
  287. package/dist/composables/useItemText.d.ts +5 -1
  288. package/dist/composables/useItemText.js +8 -3
  289. package/dist/composables/useItemValue.d.ts +5 -1
  290. package/dist/composables/useItemValue.js +8 -3
  291. package/dist/composables/useLocale.js +10 -9
  292. package/dist/deprecation/ai-deprecations.json.d.ts +130 -0
  293. package/dist/deprecation/ai-deprecations.json.js +1 -1
  294. package/dist/deprecation/removedProps.js +1 -1
  295. package/dist/directives/bbDropdown.js +1 -1
  296. package/dist/i18n/index.d.ts +7 -12
  297. package/dist/i18n/locales/cs.json +11 -14
  298. package/dist/i18n/locales/da.json +13 -16
  299. package/dist/i18n/locales/de-CH.json +137 -0
  300. package/dist/i18n/locales/de.json +14 -17
  301. package/dist/i18n/locales/el.json +10 -13
  302. package/dist/i18n/locales/en-GB.json +137 -0
  303. package/dist/i18n/locales/en.json +8 -11
  304. package/dist/i18n/locales/es-MX.json +137 -0
  305. package/dist/i18n/locales/es.json +16 -19
  306. package/dist/i18n/locales/fi.json +8 -11
  307. package/dist/i18n/locales/fr.json +23 -26
  308. package/dist/i18n/locales/hu.json +8 -11
  309. package/dist/i18n/locales/it.json +12 -15
  310. package/dist/i18n/locales/ja.json +13 -16
  311. package/dist/i18n/locales/ko.json +10 -13
  312. package/dist/i18n/locales/nb.json +13 -16
  313. package/dist/i18n/locales/nl.json +21 -24
  314. package/dist/i18n/locales/pl.json +10 -13
  315. package/dist/i18n/locales/{pt.json → pt-BR.json} +19 -22
  316. package/dist/i18n/locales/pt-PT.json +137 -0
  317. package/dist/i18n/locales/ro.json +22 -25
  318. package/dist/i18n/locales/ru.json +11 -14
  319. package/dist/i18n/locales/sv.json +16 -19
  320. package/dist/i18n/locales/tr.json +14 -17
  321. package/dist/i18n/locales/uk.json +11 -14
  322. package/dist/i18n/locales/{zh-cn.json → zh-CN.json} +10 -13
  323. package/dist/i18n/locales/zh-HK.json +137 -0
  324. package/dist/i18n/locales/zh-TW.json +137 -0
  325. package/dist/i18n/regionHints.d.ts +16 -0
  326. package/dist/i18n/regionHints.js +49 -0
  327. package/dist/i18n/regions.d.ts +286 -0
  328. package/dist/i18n/regions.js +265 -0
  329. package/dist/index.d.ts +1 -1
  330. package/dist/index.js +4 -4
  331. package/dist/llms-full.txt +1785 -1637
  332. package/dist/llms-medium.txt +74 -46
  333. package/dist/llms.txt +7 -7
  334. package/dist/locale-blueprint.json +16 -13
  335. package/dist/styles.css +2 -2
  336. package/dist/types/ptComponentMap.d.ts +1 -1
  337. package/dist/utilities/functions/slotKey.d.ts +2 -2
  338. package/dist/utils/versionCheck.js +1 -1
  339. package/dist/vite-plugin.d.ts +22 -19
  340. package/dist/vite.js +309 -297
  341. package/llms.txt +7 -7
  342. package/package.json +5 -3
  343. package/scripts/lib/agent-manifest.mjs +2 -1
  344. package/scripts/lib/eslint-disable.mjs +12 -4
  345. package/scripts/lib/eslint-plugin.d.ts +5 -1
  346. package/scripts/lib/eslint-plugin.mjs +187 -6
  347. package/scripts/lib/helper-canon.mjs +176 -0
  348. package/scripts/lib/helpers-add.mjs +1303 -0
  349. package/scripts/lib/local-components.mjs +33 -4
  350. package/scripts/lib/locale-check.mjs +165 -0
  351. package/scripts/lib/redundant-item-accessor.mjs +398 -0
  352. package/scripts/lib/renamed-item-field.mjs +343 -0
  353. package/scripts/lib/slot-key.mjs +2 -2
  354. package/scripts/lib/slot-renames.mjs +1 -1
  355. package/scripts/lib/validate-bb-markup.mjs +123 -56
  356. package/dist/i18n/index.js +0 -27
@@ -27,7 +27,7 @@
27
27
  :layout="layout"
28
28
  :name="resolvedName"
29
29
  :passthrough="passthrough"
30
- :readonly="readonly"
30
+ :readonly="fieldReadonly"
31
31
  :reverse="reverse"
32
32
  :show-asterisk="showAsterisk"
33
33
  :show-hint="showHint"
@@ -59,7 +59,7 @@
59
59
  'bb-rating__stars--errors': fieldHasErrors,
60
60
  'bb-rating__stars--warnings':
61
61
  Boolean(fieldHasWarnings) && !fieldHasErrors,
62
- 'bb-rating__stars--readonly': readonly,
62
+ 'bb-rating__stars--readonly': fieldReadonly,
63
63
  'bb-rating__stars--forced-clear': suppressHoverPreview,
64
64
  }"
65
65
  data-bb-no-drag
@@ -68,7 +68,7 @@
68
68
  >
69
69
  <span
70
70
  :aria-labelledby="hasLegend() ? `${fieldId}__label` : undefined"
71
- :aria-readonly="groupRole() && readonly ? true : undefined"
71
+ :aria-readonly="groupRole() && fieldReadonly ? true : undefined"
72
72
  :aria-required="groupRole() ? fieldAriaRequired : undefined"
73
73
  class="bb-rating__options"
74
74
  :role="groupRole()"
@@ -85,7 +85,7 @@
85
85
  'bb-rating__item--filled': option.filled,
86
86
  'bb-rating__item--empty': !option.filled,
87
87
  'bb-rating__item--disabled': option.disabled,
88
- 'bb-rating__item--readonly': readonly,
88
+ 'bb-rating__item--readonly': fieldReadonly,
89
89
  }"
90
90
  v-bind="
91
91
  passthrough.part('item', {
@@ -107,7 +107,7 @@
107
107
  class="bb-sr-only"
108
108
  :disabled="option.disabled"
109
109
  :name="option.name"
110
- :required="readonly ? undefined : fieldRequired || undefined"
110
+ :required="fieldReadonly ? undefined : fieldRequired || undefined"
111
111
  type="radio"
112
112
  :value="option.value"
113
113
  v-bind="eventListeners"
@@ -181,6 +181,7 @@ const {
181
181
  required: fieldRequired,
182
182
  ariaRequired: fieldAriaRequired,
183
183
  model: fieldModel,
184
+ readonly: fieldReadonly,
184
185
  } = useFormBinding(declaredProps, declaredEmit, {
185
186
  componentName: 'BbRating',
186
187
  identifierFallback: () => declaredProps.legend,
@@ -913,8 +914,8 @@ export type BbRatingSlots = {
913
914
  cursor: pointer;
914
915
  display: flex;
915
916
  justify-content: center;
916
- padding-left: 2px;
917
- padding-right: 2px;
917
+ padding-inline-end: 2px;
918
+ padding-inline-start: 2px;
918
919
 
919
920
  &:has(:focus-visible) {
920
921
  box-shadow: 0px 0px 0px var(--bb-ring-size) var(--ring-color);
@@ -959,8 +960,8 @@ export type BbRatingSlots = {
959
960
  background-color: var(--bg);
960
961
  border: var(--bb-border-w) solid var(--bb-field-border);
961
962
  border-radius: var(--bb-radius);
962
- padding-left: var(--bb-input-px);
963
- padding-right: var(--bb-input-px);
963
+ padding-inline-end: var(--bb-input-px);
964
+ padding-inline-start: var(--bb-input-px);
964
965
  padding-top: calc(var(--bb-label-lh-sm) + var(--bb-input-py));
965
966
  position: relative;
966
967
  transition:
@@ -1016,6 +1017,7 @@ export type BbRatingSlots = {
1016
1017
 
1017
1018
  .bb-field__layout--horizontal {
1018
1019
  .bb-field__label {
1020
+ /* stylelint-disable-next-line declaration-property-value-disallowed-list -- support: `float: inline-start` needs Chrome 118, above the 114 floor */
1019
1021
  float: left;
1020
1022
  }
1021
1023
  }
@@ -29,7 +29,7 @@
29
29
  :mobile="isMobile"
30
30
  :name="name"
31
31
  :passthrough="passthrough"
32
- :readonly="readonly"
32
+ :readonly="fieldReadonly"
33
33
  :reverse="reverse"
34
34
  :show-asterisk="showAsterisk"
35
35
  :show-hint="showHint"
@@ -81,7 +81,7 @@
81
81
  :prefill="computedPrefill"
82
82
  :pt="popoverPt()"
83
83
  :query-debounce-time="queryDebounceTime"
84
- :readonly="readonly"
84
+ :readonly="fieldReadonly"
85
85
  :selectable="selectable"
86
86
  :stash="stash"
87
87
  :transition-duration="transitionDuration"
@@ -110,7 +110,7 @@
110
110
  :class="{
111
111
  'bb-select__field--shown': shown,
112
112
  'bb-select__field--disabled': disabled,
113
- 'bb-select__field--readonly': readonly,
113
+ 'bb-select__field--readonly': fieldReadonly,
114
114
  }"
115
115
  :clearable="clearable"
116
116
  :compact="compact"
@@ -121,7 +121,7 @@
121
121
  :loading="activatorLoading"
122
122
  :passthrough="boxRowPassthrough(activatorLoading)"
123
123
  :prepend:icon="declaredProps['prepend:icon']"
124
- :readonly="readonly"
124
+ :readonly="fieldReadonly"
125
125
  :variant="variant"
126
126
  @click:clear="
127
127
  () => {
@@ -145,6 +145,7 @@
145
145
  <input
146
146
  :id="fieldId"
147
147
  :aria-labelledby="`${fieldId}__label ${fieldId}__selection`"
148
+ :aria-readonly="fieldReadonly || undefined"
148
149
  :aria-required="activatorAriaRequired"
149
150
  :autofocus="autofocus"
150
151
  class="bb-select__activator"
@@ -388,6 +389,7 @@ const {
388
389
  ariaRequired: fieldAriaRequired,
389
390
  required: fieldRequired,
390
391
  model: fieldModel,
392
+ readonly: fieldReadonly,
391
393
  } = useFormBinding(declaredProps, declaredEmit, {
392
394
  componentName: 'BbSelect',
393
395
  identifierFallback: () => declaredProps.label,
@@ -1205,7 +1207,9 @@ export type BbSelectProps<T> = {
1205
1207
  * Defines a path that returns a property of the object to use as text or a function
1206
1208
  * that returns a string.
1207
1209
  *
1208
- * @defaultValue `JSON.stringify(item)`
1210
+ * Unset: own `label`, else `text` (`{ label, value }` needs no accessor).
1211
+ *
1212
+ * @defaultValue own `label`, else `text`, else `JSON.stringify(item)`
1209
1213
  */
1210
1214
  itemText?: ItemAccessor<T, string>;
1211
1215
 
@@ -1235,7 +1239,9 @@ export type BbSelectProps<T> = {
1235
1239
  * Defines a path that returns a property of the object to use as value or a function
1236
1240
  * that returns any value.
1237
1241
  *
1238
- * @defaultValue the whole item
1242
+ * Unset: own `value`, even `null`.
1243
+ *
1244
+ * @defaultValue own `value`, else the whole item
1239
1245
  */
1240
1246
  itemValue?: ItemAccessor<T>;
1241
1247
 
@@ -1651,7 +1657,7 @@ export type BbSelectSlots<T> = {
1651
1657
  it smoothly couples with the border */
1652
1658
  &:not(:has(.bb-field-input__prepend-icon)) {
1653
1659
  .bb-select__chips-row--chips {
1654
- margin-left: calc(
1660
+ margin-inline-start: calc(
1655
1661
  var(--bb-input-px) * var(--compensation-multiplier) * -1
1656
1662
  );
1657
1663
  }
@@ -1681,7 +1687,7 @@ export type BbSelectSlots<T> = {
1681
1687
  min-width: 0;
1682
1688
  pointer-events: none;
1683
1689
  position: relative;
1684
- text-align: left;
1690
+ text-align: start;
1685
1691
 
1686
1692
  & input[type='button'] {
1687
1693
  pointer-events: auto;
@@ -1694,7 +1700,8 @@ export type BbSelectSlots<T> = {
1694
1700
  display: flex;
1695
1701
  flex: 1 1 auto;
1696
1702
  flex-wrap: nowrap;
1697
- left: 0;
1703
+ inset-inline-end: 0;
1704
+ inset-inline-start: 0;
1698
1705
  min-width: 0;
1699
1706
  overflow: hidden;
1700
1707
  /* Sits above the absolute activator overlay (later in DOM), so re-enable
@@ -1703,7 +1710,6 @@ export type BbSelectSlots<T> = {
1703
1710
  The activator stays behind purely as the keyboard/focus target. */
1704
1711
  pointer-events: auto;
1705
1712
  position: absolute;
1706
- right: 0;
1707
1713
  top: 0;
1708
1714
 
1709
1715
  &--hidden {
@@ -1166,13 +1166,14 @@ const { options } = useBaseOptions({
1166
1166
  itemText: props.itemText,
1167
1167
  itemProps: toRef(props, 'itemProps'),
1168
1168
  itemValue: props.itemValue,
1169
+ optionDefaults: true,
1169
1170
  // A ref, not the setup-time number: a runtime `:max` change must re-gate rows.
1170
1171
  max: toRef(props, 'max'),
1171
1172
  selectable: toRef(props, 'selectable'),
1172
1173
  selectedIndexedByHash: modelValueIndexedByHash,
1173
1174
  });
1174
1175
 
1175
- const { getItemValue } = useItemValue();
1176
+ const { getOptionValue } = useItemValue();
1176
1177
 
1177
1178
  // `stash` holds SELECTED items only, so it follows the model: a list unselect,
1178
1179
  // a field-chip ✕ and a parent write (a form reset) all end here. Without it a
@@ -1181,7 +1182,8 @@ const { getItemValue } = useItemValue();
1181
1182
  watch(modelValueIndexedByHash, (selected) => {
1182
1183
  if (!props.stash || !innerStash.value.length) return;
1183
1184
  removeFromStash(
1184
- (item) => selected[hash(getItemValue(item, props.itemValue))] !== undefined
1185
+ (item) =>
1186
+ selected[hash(getOptionValue(item, props.itemValue))] !== undefined
1185
1187
  );
1186
1188
  });
1187
1189
 
@@ -1216,7 +1218,7 @@ const fetchedValueHashes = computed(
1216
1218
  () =>
1217
1219
  new Set(
1218
1220
  internalItems.value.map((item) =>
1219
- hash(getItemValue(item, props.itemValue))
1221
+ hash(getOptionValue(item, props.itemValue))
1220
1222
  )
1221
1223
  )
1222
1224
  );
@@ -2477,7 +2479,9 @@ export type BbSelectPopoverProps<Item> = {
2477
2479
  /**
2478
2480
  * Path to item property for display text or function to extract it.
2479
2481
  *
2480
- * @defaultValue `JSON.stringify(item)`
2482
+ * Unset: own `label`, else `text` (`{ label, value }` needs no accessor).
2483
+ *
2484
+ * @defaultValue own `label`, else `text`, else `JSON.stringify(item)`
2481
2485
  */
2482
2486
  itemText?: ItemAccessor<Item, string>;
2483
2487
  /**
@@ -2504,7 +2508,9 @@ export type BbSelectPopoverProps<Item> = {
2504
2508
  /**
2505
2509
  * Path to item property for value or function to extract it.
2506
2510
  *
2507
- * @defaultValue the whole item
2511
+ * Unset: own `value`, even `null`.
2512
+ *
2513
+ * @defaultValue own `value`, else the whole item
2508
2514
  */
2509
2515
  itemValue?: ItemAccessor<Item>;
2510
2516
  /**
@@ -2820,7 +2826,7 @@ export type BbSelectPopoverSlots<Item> = {
2820
2826
  elements, which declare both on the panel */
2821
2827
  .bb-select-popover {
2822
2828
  overflow: visible;
2823
- text-align: left;
2829
+ text-align: start;
2824
2830
  width: var(--w, 320px);
2825
2831
 
2826
2832
  .bb-common-popover__bubble {
@@ -2855,10 +2861,10 @@ export type BbSelectPopoverSlots<Item> = {
2855
2861
  .bb-select-popover__clear {
2856
2862
  color: var(--bb-text-muted);
2857
2863
  flex-shrink: 0;
2864
+ inset-inline-end: 0.75rem;
2858
2865
  opacity: 0;
2859
2866
  pointer-events: none;
2860
2867
  position: absolute;
2861
- right: 0.75rem;
2862
2868
  top: 50%;
2863
2869
  transform: translateY(-50%);
2864
2870
  transition:
@@ -2882,7 +2888,7 @@ export type BbSelectPopoverSlots<Item> = {
2882
2888
  }
2883
2889
 
2884
2890
  .bb-select-popover__clear {
2885
- right: calc(0.75rem - 3px);
2891
+ inset-inline-end: calc(0.75rem - 3px);
2886
2892
  }
2887
2893
 
2888
2894
  .bb-select-popover__clear:hover {
@@ -2898,7 +2904,7 @@ export type BbSelectPopoverSlots<Item> = {
2898
2904
  line-height: var(--bb-leading);
2899
2905
  outline: none;
2900
2906
  padding: 0;
2901
- padding-right: calc(var(--bb-input-icon) + 0.5rem);
2907
+ padding-inline-end: calc(var(--bb-input-icon) + 0.5rem);
2902
2908
  width: 100%;
2903
2909
 
2904
2910
  /* Same cue BbDropdown's group search uses — empty field still reads as
@@ -3028,7 +3034,7 @@ export type BbSelectPopoverSlots<Item> = {
3028
3034
  min-height: var(--option-h);
3029
3035
  opacity: 0;
3030
3036
  padding: 0.125rem 0.5rem;
3031
- text-align: left;
3037
+ text-align: start;
3032
3038
  transition: opacity calc(var(--transition-duration) * 2);
3033
3039
  }
3034
3040
 
@@ -3063,7 +3069,7 @@ export type BbSelectPopoverSlots<Item> = {
3063
3069
  .bb-listbox__inner-container {
3064
3070
  .bb-listbox__loading {
3065
3071
  display: block;
3066
- text-align: left;
3072
+ text-align: start;
3067
3073
  }
3068
3074
  }
3069
3075
  }
@@ -3096,7 +3102,7 @@ export type BbSelectPopoverSlots<Item> = {
3096
3102
  overflow: auto;
3097
3103
  overflow-x: clip;
3098
3104
  padding: 0.25rem;
3099
- text-align: left;
3105
+ text-align: start;
3100
3106
 
3101
3107
  .bb-listbox__loading,
3102
3108
  .bb-listbox__empty {
@@ -3114,7 +3120,7 @@ export type BbSelectPopoverSlots<Item> = {
3114
3120
 
3115
3121
  .bb-listbox__group {
3116
3122
  display: block;
3117
- left: 0;
3123
+ inset-inline-start: 0;
3118
3124
  position: absolute;
3119
3125
  top: 0;
3120
3126
  width: 100%;
@@ -3136,7 +3142,7 @@ export type BbSelectPopoverSlots<Item> = {
3136
3142
  font-size: calc(var(--option-font-size, var(--bb-fs)) - 0.125rem);
3137
3143
  font-weight: 500;
3138
3144
  overflow: hidden;
3139
- text-align: left;
3145
+ text-align: start;
3140
3146
  text-overflow: ellipsis;
3141
3147
  white-space: nowrap;
3142
3148
  }
@@ -3166,9 +3172,9 @@ export type BbSelectPopoverSlots<Item> = {
3166
3172
  display: flex;
3167
3173
  gap: 0.5rem;
3168
3174
  height: var(--option-h);
3169
- left: 0;
3170
- padding-left: 0.5rem;
3171
- padding-right: 0.5rem;
3175
+ inset-inline-start: 0;
3176
+ padding-inline-end: 0.5rem;
3177
+ padding-inline-start: 0.5rem;
3172
3178
  position: absolute;
3173
3179
  top: 0;
3174
3180
  transition: background-color var(--bb-transition-fast)
@@ -3262,7 +3268,7 @@ export type BbSelectPopoverSlots<Item> = {
3262
3268
  font-size: var(--option-font-size, var(--bb-fs));
3263
3269
  min-width: 0;
3264
3270
  overflow: hidden;
3265
- text-align: left;
3271
+ text-align: start;
3266
3272
  text-overflow: ellipsis;
3267
3273
  white-space: nowrap;
3268
3274
  }
@@ -3272,7 +3278,7 @@ export type BbSelectPopoverSlots<Item> = {
3272
3278
  font-size: calc(var(--option-font-size, var(--bb-fs)) - 2px);
3273
3279
  line-height: 1.3;
3274
3280
  overflow: hidden;
3275
- text-align: left;
3281
+ text-align: start;
3276
3282
  text-overflow: ellipsis;
3277
3283
  white-space: nowrap;
3278
3284
  }
@@ -3335,7 +3341,7 @@ export type BbSelectPopoverSlots<Item> = {
3335
3341
  text-align: center;
3336
3342
 
3337
3343
  &:has(~ .bb-close-button) {
3338
- padding-left: calc(var(--close-size) + 4px);
3344
+ padding-inline-start: calc(var(--close-size) + 4px);
3339
3345
  }
3340
3346
  }
3341
3347
 
@@ -3377,7 +3383,7 @@ export type BbSelectPopoverSlots<Item> = {
3377
3383
  the title, not three stacked bands. Inline inset is the OffCanvas
3378
3384
  body's `--px`. */
3379
3385
  padding: 0 0 0.5rem;
3380
- text-align: left;
3386
+ text-align: start;
3381
3387
  }
3382
3388
 
3383
3389
  .bb-select-popover__sheet-chips {
@@ -3443,13 +3449,13 @@ export type BbSelectPopoverSlots<Item> = {
3443
3449
  otherwise win and swallow the extra 4px. */
3444
3450
  span[role='listbox'] .bb-listbox__option,
3445
3451
  .bb-listbox__group > .bb-listbox__option {
3446
- padding-left: calc(0.5rem + 4px);
3452
+ padding-inline-start: calc(0.5rem + 4px);
3447
3453
  }
3448
3454
 
3449
3455
  .bb-listbox__group-header,
3450
3456
  .bb-listbox__loading,
3451
3457
  .bb-listbox__empty {
3452
- padding-left: calc(0.5rem + 4px);
3458
+ padding-inline-start: calc(0.5rem + 4px);
3453
3459
  }
3454
3460
  }
3455
3461
  }
@@ -25,7 +25,7 @@
25
25
  :layout="layout"
26
26
  :name="name"
27
27
  :passthrough="passthrough"
28
- :readonly="readonly"
28
+ :readonly="fieldReadonly"
29
29
  :reverse="reverse"
30
30
  :show-asterisk="showAsterisk"
31
31
  :show-hint="showHint"
@@ -52,7 +52,7 @@
52
52
  'bb-slider__body--errors': fieldHasErrors,
53
53
  'bb-slider__body--warnings':
54
54
  Boolean(fieldHasWarnings) && !fieldHasErrors,
55
- 'bb-slider__body--readonly': readonly,
55
+ 'bb-slider__body--readonly': fieldReadonly,
56
56
  }"
57
57
  >
58
58
  <slot :decrease="decrease" :increase="increase" name="prepend"></slot>
@@ -128,7 +128,7 @@
128
128
  :aria-disabled="disabled ? 'true' : undefined"
129
129
  :aria-labelledby="thumbLabelledby(fieldId, 'lower')"
130
130
  aria-orientation="horizontal"
131
- :aria-readonly="readonly ? 'true' : undefined"
131
+ :aria-readonly="fieldReadonly ? 'true' : undefined"
132
132
  :aria-valuemax="max"
133
133
  :aria-valuemin="min"
134
134
  :aria-valuenow="valueNowLower"
@@ -170,7 +170,7 @@
170
170
  :aria-disabled="disabled ? 'true' : undefined"
171
171
  :aria-labelledby="thumbLabelledby(fieldId, 'higher')"
172
172
  aria-orientation="horizontal"
173
- :aria-readonly="readonly ? 'true' : undefined"
173
+ :aria-readonly="fieldReadonly ? 'true' : undefined"
174
174
  :aria-valuemax="max"
175
175
  :aria-valuemin="min"
176
176
  :aria-valuenow="valueNowHigher"
@@ -279,6 +279,7 @@ const {
279
279
  emit,
280
280
  showAsterisk,
281
281
  errors: fieldErrors,
282
+ readonly: fieldReadonly,
282
283
  } = useFormBinding(declaredProps, declaredEmit, {
283
284
  componentName: 'BbSlider',
284
285
  identifierFallback: () => declaredProps.label,
@@ -1494,9 +1495,9 @@ export type BbSliderSlots = {
1494
1495
  flex-grow: 1;
1495
1496
  min-height: calc(var(--control-h) + var(--inside-label-clearance));
1496
1497
  min-width: 100px;
1498
+ padding-inline-end: var(--px);
1499
+ padding-inline-start: var(--px);
1497
1500
  padding-bottom: var(--py);
1498
- padding-left: var(--px);
1499
- padding-right: var(--px);
1500
1501
  padding-top: var(--py);
1501
1502
  position: relative;
1502
1503
  -webkit-touch-callout: none;
@@ -1524,8 +1525,10 @@ export type BbSliderSlots = {
1524
1525
  cursor: pointer;
1525
1526
  display: block;
1526
1527
  height: var(--track);
1528
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
1527
1529
  left: var(--track-inset);
1528
1530
  position: absolute;
1531
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
1529
1532
  right: var(--track-inset);
1530
1533
  top: var(--centre);
1531
1534
  transform: translateY(-50%);
@@ -1534,11 +1537,14 @@ export type BbSliderSlots = {
1534
1537
  /* The bar: the selected span, positioned and sized from JS. */
1535
1538
  .bb-slider__bar {
1536
1539
  background-color: var(--accent);
1540
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
1537
1541
  border-bottom-left-radius: var(--r);
1542
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
1538
1543
  border-top-left-radius: var(--r);
1539
1544
  cursor: pointer;
1540
1545
  display: block;
1541
1546
  height: 100%;
1547
+ /* stylelint-disable-next-line property-disallowed-list -- geometry: the thumb and fill are placed by physical percentages set in JS */
1542
1548
  left: 0;
1543
1549
  position: absolute;
1544
1550
  top: 0;
@@ -26,7 +26,7 @@
26
26
  :layout="layout"
27
27
  :name="name"
28
28
  :passthrough="passthrough"
29
- :readonly="readonly"
29
+ :readonly="fieldReadonly"
30
30
  :reverse="reverse"
31
31
  :show-asterisk="showAsterisk"
32
32
  :show-hint="showHint"
@@ -71,7 +71,7 @@
71
71
  :has-errors="!!fieldHasErrors"
72
72
  :has-warnings="!!fieldHasWarnings && !fieldHasErrors"
73
73
  :indeterminate="!!indeterminate"
74
- :readonly="!!readonly"
74
+ :readonly="!!fieldReadonly"
75
75
  v-bind="passthrough.icon"
76
76
  />
77
77
  <!-- eslint-enable vue/attributes-order -->
@@ -137,6 +137,7 @@ const {
137
137
  showAsterisk,
138
138
  errors: fieldErrors,
139
139
  ariaRequired: fieldAriaRequired,
140
+ readonly: fieldReadonly,
140
141
  } = useFormBinding(declaredProps, declaredEmit, {
141
142
  componentName: 'BbSwitch',
142
143
  identifierFallback: () => declaredProps.label,
@@ -29,7 +29,7 @@
29
29
  :loading="loading"
30
30
  :name="name"
31
31
  :passthrough="containerPassthrough"
32
- :readonly="readonly"
32
+ :readonly="fieldReadonly"
33
33
  :reverse="reverse"
34
34
  :show-asterisk="showAsterisk"
35
35
  :show-hint="showHint"
@@ -112,7 +112,7 @@
112
112
  :has-errors="!!fieldHasErrors"
113
113
  :has-warnings="!!fieldHasWarnings && !fieldHasErrors"
114
114
  :indeterminate="false"
115
- :readonly="!!readonly"
115
+ :readonly="!!fieldReadonly"
116
116
  v-bind="passthrough.part('icon', rowStates, option.item)"
117
117
  />
118
118
  <!-- eslint-enable vue/attributes-order -->
@@ -197,6 +197,7 @@ const {
197
197
  emit,
198
198
  showAsterisk,
199
199
  errors: fieldErrors,
200
+ readonly: fieldReadonly,
200
201
  } = useFormBinding(declaredProps, declaredEmit, {
201
202
  componentName: 'BbSwitchGroup',
202
203
  identifierFallback: () => declaredProps.legend,
@@ -301,6 +302,7 @@ const { options } = useBaseOptions({
301
302
  itemText: props.itemText as any,
302
303
  itemProps: toRef(props, 'itemProps'),
303
304
  itemValue: props.itemValue as any,
305
+ optionDefaults: true,
304
306
  // A ref, not the setup-time number: a runtime `:max` change must re-gate rows.
305
307
  max: toRef(props, 'max'),
306
308
  selectable: toRef(props, 'selectable'),
@@ -639,6 +641,7 @@ export type BbSwitchGroupSlots<T> = {
639
641
  .bb-switch-group {
640
642
  .bb-field__layout--horizontal {
641
643
  .bb-field__label {
644
+ /* stylelint-disable-next-line declaration-property-value-disallowed-list -- support: `float: inline-start` needs Chrome 118, above the 114 floor */
642
645
  float: left;
643
646
  }
644
647
  }