bitboss-ui 3.0.0-beta.2 → 3.0.0-beta.21

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 (350) hide show
  1. package/README.md +72 -33
  2. package/dist/ai/BbAccordion.md +3 -3
  3. package/dist/ai/BbAlert.md +9 -5
  4. package/dist/ai/BbAsterisk.md +17 -0
  5. package/dist/ai/BbAvatar.md +12 -3
  6. package/dist/ai/BbBadge.md +15 -10
  7. package/dist/ai/BbBadgeButton.md +16 -16
  8. package/dist/ai/BbBaseButton.md +16 -16
  9. package/dist/ai/BbBaseCheckbox.md +8 -8
  10. package/dist/ai/BbBaseCheckboxGroup.md +13 -13
  11. package/dist/ai/BbBaseCheckboxIcon.md +26 -9
  12. package/dist/ai/BbBaseColorInput.md +11 -11
  13. package/dist/ai/BbBaseDatePicker.md +6 -6
  14. package/dist/ai/BbBaseDatePickerInput.md +15 -15
  15. package/dist/ai/BbBaseInputContainer.md +12 -12
  16. package/dist/ai/BbBaseNumberInput.md +8 -8
  17. package/dist/ai/BbBaseRadio.md +5 -5
  18. package/dist/ai/BbBaseRadioGroup.md +7 -7
  19. package/dist/ai/BbBaseRadioIcon.md +25 -9
  20. package/dist/ai/BbBaseRating.md +5 -5
  21. package/dist/ai/BbBaseSelect.md +22 -21
  22. package/dist/ai/BbBaseSlider.md +9 -9
  23. package/dist/ai/BbBaseSwitch.md +8 -8
  24. package/dist/ai/BbBaseSwitchGroup.md +13 -13
  25. package/dist/ai/BbBaseSwitchIcon.md +28 -10
  26. package/dist/ai/BbBaseTag.md +10 -10
  27. package/dist/ai/BbBaseTextInput.md +9 -9
  28. package/dist/ai/BbBaseTextarea.md +9 -9
  29. package/dist/ai/BbBaseTimePickerInput.md +13 -13
  30. package/dist/ai/BbBreadcrumbs.md +2 -2
  31. package/dist/ai/BbButton.md +15 -15
  32. package/dist/ai/BbCheckbox.md +18 -17
  33. package/dist/ai/BbCheckboxGroup.md +15 -14
  34. package/dist/ai/BbCollapsible.md +11 -9
  35. package/dist/ai/BbColorInput.md +15 -15
  36. package/dist/ai/BbColorPalette.md +12 -6
  37. package/dist/ai/BbConfirm.md +12 -5
  38. package/dist/ai/BbDatePicker.md +13 -13
  39. package/dist/ai/BbDatePickerInput.md +20 -20
  40. package/dist/ai/BbDialog.md +78 -12
  41. package/dist/ai/BbDropdown.md +132 -22
  42. package/dist/ai/BbDropdownButton.md +12 -12
  43. package/dist/ai/BbDropdownGroup.md +1 -1
  44. package/dist/ai/BbDropzone.md +4 -4
  45. package/dist/ai/BbForm.md +49 -14
  46. package/dist/ai/BbIcon.md +6 -0
  47. package/dist/ai/BbIndicator.md +5 -5
  48. package/dist/ai/BbNumberInput.md +11 -11
  49. package/dist/ai/BbOffCanvas.md +90 -20
  50. package/dist/ai/BbPagination.md +3 -3
  51. package/dist/ai/BbPopover.md +32 -17
  52. package/dist/ai/BbProgress.md +7 -4
  53. package/dist/ai/BbRadio.md +16 -15
  54. package/dist/ai/BbRadioGroup.md +20 -17
  55. package/dist/ai/BbRating.md +11 -11
  56. package/dist/ai/BbSelect.md +138 -37
  57. package/dist/ai/BbSelectPopover.md +40 -41
  58. package/dist/ai/BbSlider.md +37 -22
  59. package/dist/ai/BbSmoothHeight.md +1 -1
  60. package/dist/ai/BbSwitch.md +25 -10
  61. package/dist/ai/BbSwitchGroup.md +17 -14
  62. package/dist/ai/BbTable.md +920 -109
  63. package/dist/ai/BbTabs.md +28 -14
  64. package/dist/ai/BbTabsList.md +1 -1
  65. package/dist/ai/BbTabsPanes.md +1 -1
  66. package/dist/ai/BbTabsRoot.md +10 -10
  67. package/dist/ai/BbTag.md +14 -14
  68. package/dist/ai/BbTextInput.md +16 -15
  69. package/dist/ai/BbTextarea.md +13 -13
  70. package/dist/ai/BbTimePicker.md +10 -10
  71. package/dist/ai/BbTimePickerInput.md +17 -17
  72. package/dist/ai/BbToast.md +1 -1
  73. package/dist/ai/BbToastPortal.md +1 -1
  74. package/dist/ai/BbTooltip.md +12 -10
  75. package/dist/ai/BbTree.md +1 -1
  76. package/dist/ai/ChipsBox.md +1 -1
  77. package/dist/ai/CommonInputWrapper.md +10 -10
  78. package/dist/ai/CommonPopover.md +6 -6
  79. package/dist/ai/FlatListBox.md +5 -5
  80. package/dist/ai/GroupedListBox.md +5 -5
  81. package/dist/ai/ListBox.md +4 -4
  82. package/dist/ai/OptionsContainer.md +4 -4
  83. package/dist/ai/changelog.json +128 -2
  84. package/dist/ai/components.json +917 -100
  85. package/dist/ai/composables/useBbConfig.md +72 -11
  86. package/dist/ai/composables/useConfirm.md +5 -3
  87. package/dist/ai/guides/ai-router.md +9 -4
  88. package/dist/ai/guides/component-picker.md +18 -18
  89. package/dist/ai/guides/design-language.md +14 -14
  90. package/dist/ai/guides/design-tokens.md +25 -18
  91. package/dist/ai/guides/fetch-items-playbook.md +1 -1
  92. package/dist/ai/guides/icons-policy.md +11 -5
  93. package/dist/ai/guides/installation-and-plugin-setup.md +85 -23
  94. package/dist/ai/guides/migration/components/bb-checkbox-group.md +30 -0
  95. package/dist/ai/guides/migration/components/bb-checkbox.md +37 -3
  96. package/dist/ai/guides/migration/components/bb-collapsible.md +5 -5
  97. package/dist/ai/guides/migration/components/bb-dialog.md +62 -34
  98. package/dist/ai/guides/migration/components/bb-offcanvas.md +29 -13
  99. package/dist/ai/guides/migration/components/bb-rating.md +8 -2
  100. package/dist/ai/guides/migration/components/bb-select.md +5 -2
  101. package/dist/ai/guides/migration/components/bb-table.md +560 -28
  102. package/dist/ai/guides/migration/components/bb-text-input.md +6 -6
  103. package/dist/ai/guides/migration/v2-to-v3.md +260 -89
  104. package/dist/ai/guides/ssr-prefill.md +120 -0
  105. package/dist/ai/index.md +10 -9
  106. package/dist/ai/recipes/inertia/approvals-inbox.md +0 -1
  107. package/dist/ai/recipes/inertia/inline-edit-workspace.md +0 -1
  108. package/dist/ai/recipes/inertia/layout-scaffold.md +5 -1
  109. package/dist/ai/recipes/inertia/ownership-atlas.md +49 -29
  110. package/dist/ai/recipes/inertia/record-form.md +0 -1
  111. package/dist/ai/recipes/inertia/records-workspace.md +26 -8
  112. package/dist/ai/recipes/inertia/upload-center.md +0 -1
  113. package/dist/ai/recipes/nuxt/approvals-inbox.md +0 -1
  114. package/dist/ai/recipes/nuxt/inline-edit-workspace.md +0 -1
  115. package/dist/ai/recipes/nuxt/layout-scaffold.md +5 -1
  116. package/dist/ai/recipes/nuxt/record-form.md +0 -1
  117. package/dist/ai/recipes/nuxt/records-workspace.md +26 -8
  118. package/dist/ai/recipes/nuxt/upload-center.md +0 -1
  119. package/dist/ai/recipes/vue/approvals-inbox.md +0 -1
  120. package/dist/ai/recipes/vue/inline-edit-workspace.md +0 -1
  121. package/dist/ai/recipes/vue/layout-scaffold.md +5 -1
  122. package/dist/ai/recipes/vue/records-workspace.md +26 -8
  123. package/dist/ai/recipes/vue/upload-center.md +0 -1
  124. package/dist/ai/source/BbAlert.md +60 -2
  125. package/dist/ai/source/BbAvatar.md +3 -3
  126. package/dist/ai/source/BbBadge.md +60 -15
  127. package/dist/ai/source/BbBadgeButton.md +8 -2
  128. package/dist/ai/source/BbBaseButton.md +3 -1
  129. package/dist/ai/source/BbBaseCheckboxGroup.md +6 -2
  130. package/dist/ai/source/BbBaseDatePicker.md +3 -1
  131. package/dist/ai/source/BbBaseDatePickerInput.md +5 -1
  132. package/dist/ai/source/BbBaseInputContainer.md +52 -1
  133. package/dist/ai/source/BbBaseRadioGroup.md +4 -0
  134. package/dist/ai/source/BbBaseRating.md +3 -1
  135. package/dist/ai/source/BbBaseSelect.md +71 -16
  136. package/dist/ai/source/BbBaseSwitchGroup.md +4 -0
  137. package/dist/ai/source/BbBaseTimePickerInput.md +5 -1
  138. package/dist/ai/source/BbBreadcrumbs.md +31 -0
  139. package/dist/ai/source/BbButton.md +51 -24
  140. package/dist/ai/source/BbCheckbox.md +15 -1
  141. package/dist/ai/source/BbCheckboxGroup.md +2 -1
  142. package/dist/ai/source/BbCollapsible.md +7 -1
  143. package/dist/ai/source/BbColorInput.md +3 -4
  144. package/dist/ai/source/BbColorPalette.md +3 -4
  145. package/dist/ai/source/BbDatePicker.md +5 -1
  146. package/dist/ai/source/BbDatePickerInput.md +5 -1
  147. package/dist/ai/source/BbDialog.md +175 -19
  148. package/dist/ai/source/BbDropdown.md +376 -69
  149. package/dist/ai/source/BbDropdownGroup.md +330 -59
  150. package/dist/ai/source/BbForm.md +93 -5
  151. package/dist/ai/source/BbIcon.md +46 -36
  152. package/dist/ai/source/BbNumberInput.md +3 -4
  153. package/dist/ai/source/BbOffCanvas.md +474 -194
  154. package/dist/ai/source/BbPopover.md +24 -17
  155. package/dist/ai/source/BbProgress.md +2 -2
  156. package/dist/ai/source/BbRadio.md +15 -1
  157. package/dist/ai/source/BbRadioGroup.md +3 -1
  158. package/dist/ai/source/BbSelect.md +50 -2
  159. package/dist/ai/source/BbSelectPopover.md +171 -23
  160. package/dist/ai/source/BbSlider.md +3 -4
  161. package/dist/ai/source/BbSwitch.md +15 -1
  162. package/dist/ai/source/BbSwitchGroup.md +8 -5
  163. package/dist/ai/source/BbTable.md +5092 -1446
  164. package/dist/ai/source/BbTabs.md +6 -7
  165. package/dist/ai/source/BbTabsList.md +6 -7
  166. package/dist/ai/source/BbTabsPanes.md +6 -7
  167. package/dist/ai/source/BbTabsRoot.md +6 -7
  168. package/dist/ai/source/BbTag.md +3 -4
  169. package/dist/ai/source/BbTextInput.md +3 -4
  170. package/dist/ai/source/BbTextarea.md +3 -4
  171. package/dist/ai/source/BbTimePicker.md +4 -1
  172. package/dist/ai/source/BbTimePickerInput.md +5 -1
  173. package/dist/ai/source/BbToast.md +3 -1
  174. package/dist/ai/source/BbTooltip.md +5 -1
  175. package/dist/ai/source/CommonInputWrapper.md +4 -0
  176. package/dist/ai/source/CommonPopover.md +6 -0
  177. package/dist/ai/source/FlatListBox.md +11 -5
  178. package/dist/ai/source/GroupedListBox.md +7 -5
  179. package/dist/components/BbAlert/BbAlert.vue_vue_type_script_setup_true_lang.js +4 -4
  180. package/dist/components/BbAlert/types.d.ts +10 -1
  181. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +1 -1
  182. package/dist/components/BbAvatar/BbAvatar.vue_vue_type_script_setup_true_lang.js +33 -33
  183. package/dist/components/BbBadge/BadgeBodyContent.vue_vue_type_script_setup_true_lang.js +22 -16
  184. package/dist/components/BbBadge/BbBadge.vue_vue_type_script_setup_true_lang.js +36 -15
  185. package/dist/components/BbBadge/badgeButtonContext.d.ts +21 -8
  186. package/dist/components/BbBadge/types.d.ts +8 -2
  187. package/dist/components/BbBaseButton/BbBaseButton.vue_vue_type_script_setup_true_lang.js +47 -47
  188. package/dist/components/BbBaseButton/RouterComponent.vue_vue_type_script_setup_true_lang.js +14 -14
  189. package/dist/components/BbBaseCheckboxGroup/BbBaseCheckboxGroup.vue_vue_type_script_setup_true_lang.js +30 -28
  190. package/dist/components/BbBaseCheckboxGroup/types.d.ts +2 -2
  191. package/dist/components/BbBaseDatePicker/BbBaseDatePicker.vue_vue_type_script_setup_true_lang.js +167 -167
  192. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue.d.ts +9 -9
  193. package/dist/components/BbBaseDatePicker/BbBaseDatePickerInputDaySelector.vue_vue_type_script_setup_true_lang.js +78 -78
  194. package/dist/components/BbBaseDatePicker/BbBaseDatePickerMonthSelector.vue_vue_type_script_setup_true_lang.js +64 -64
  195. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue.d.ts +1 -1
  196. package/dist/components/BbBaseDatePickerInput/BbBaseDatePickerInput.vue_vue_type_script_setup_true_lang.js +138 -138
  197. package/dist/components/BbBaseInputContainer/BbBaseInputContainer.vue_vue_type_script_setup_true_lang.js +2 -2
  198. package/dist/components/BbBaseRadioGroup/BbBaseRadioGroup.vue_vue_type_script_setup_true_lang.js +24 -22
  199. package/dist/components/BbBaseRating/BbBaseRating.vue_vue_type_script_setup_true_lang.js +40 -40
  200. package/dist/components/BbBaseSelect/BbBaseSelect.vue_vue_type_script_setup_true_lang.js +74 -65
  201. package/dist/components/BbBaseSelect/types.d.ts +22 -0
  202. package/dist/components/BbBaseSlider/BbBaseSlider.vue_vue_type_script_setup_true_lang.js +5 -5
  203. package/dist/components/BbBaseSwitchGroup/BbBaseSwitchGroup.vue_vue_type_script_setup_true_lang.js +30 -28
  204. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue.d.ts +1 -1
  205. package/dist/components/BbBaseTimePickerInput/BbBaseTimePickerInput.vue_vue_type_script_setup_true_lang.js +104 -104
  206. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue_vue_type_script_setup_true_lang.js +35 -35
  207. package/dist/components/BbButton/BbButton.vue_vue_type_script_setup_true_lang.js +85 -81
  208. package/dist/components/BbCheckboxGroup/types.d.ts +2 -1
  209. package/dist/components/BbCollapsible/types.d.ts +7 -1
  210. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -1
  211. package/dist/components/BbColorInput/BbColorInput.vue_vue_type_script_setup_true_lang.js +18 -18
  212. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +2 -2
  213. package/dist/components/BbColorPalette/BbColorPalette.vue_vue_type_script_setup_true_lang.js +50 -50
  214. package/dist/components/BbConfirm/BbConfirm.vue_vue_type_script_setup_true_lang.js +17 -17
  215. package/dist/components/BbDatePicker/BbDatePicker.vue.d.ts +1 -1
  216. package/dist/components/BbDatePicker/BbDatePicker.vue_vue_type_script_setup_true_lang.js +100 -100
  217. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue_vue_type_script_setup_true_lang.js +21 -21
  218. package/dist/components/BbDialog/BbDialog.vue.d.ts +1 -1
  219. package/dist/components/BbDialog/BbDialog.vue_vue_type_script_setup_true_lang.js +133 -107
  220. package/dist/components/BbDialog/types.d.ts +29 -2
  221. package/dist/components/BbDropdown/AdaptiveDropdown.vue.d.ts +2 -0
  222. package/dist/components/BbDropdown/AdaptiveDropdown.vue_vue_type_script_setup_true_lang.js +99 -100
  223. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +2 -2
  224. package/dist/components/BbDropdown/BbDropdown.vue_vue_type_script_setup_true_lang.js +208 -201
  225. package/dist/components/BbDropdown/BbDropdownList.vue_vue_type_script_setup_true_lang.js +225 -208
  226. package/dist/components/BbDropdown/DropdownPipelineResolver.vue_vue_type_script_setup_true_lang.js +21 -21
  227. package/dist/components/BbDropdown/types.d.ts +20 -5
  228. package/dist/components/BbDropdownButton/BbDropdownButton.vue_vue_type_script_setup_true_lang.js +5 -5
  229. package/dist/components/BbIcon/BbIcon.vue_vue_type_script_setup_true_lang.js +46 -46
  230. package/dist/components/BbIcon/iconCache.d.ts +33 -0
  231. package/dist/components/BbIcon/iconCache.js +17 -0
  232. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +1 -1
  233. package/dist/components/BbNumberInput/BbNumberInput.vue_vue_type_script_setup_true_lang.js +15 -15
  234. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -1
  235. package/dist/components/BbOffCanvas/BbOffCanvas.vue_vue_type_script_setup_true_lang.js +254 -208
  236. package/dist/components/BbOffCanvas/types.d.ts +30 -5
  237. package/dist/components/BbPagination/BbPagination.vue.d.ts +1 -1
  238. package/dist/components/BbPopover/BbPopover.vue.d.ts +2 -2
  239. package/dist/components/BbPopover/BbPopover.vue_vue_type_script_setup_true_lang.js +149 -146
  240. package/dist/components/BbPopover/types.d.ts +3 -2
  241. package/dist/components/BbRadioGroup/types.d.ts +3 -1
  242. package/dist/components/BbSelect/BbSelect.vue_vue_type_script_setup_true_lang.js +27 -23
  243. package/dist/components/BbSelect/types.d.ts +32 -0
  244. package/dist/components/BbSelectPopover/BbSelectPopover.vue_vue_type_script_setup_true_lang.js +221 -213
  245. package/dist/components/BbSlider/BbSlider.vue.d.ts +1 -1
  246. package/dist/components/BbSlider/BbSlider.vue_vue_type_script_setup_true_lang.js +20 -20
  247. package/dist/components/BbTable/BbTable.vue.d.ts +10 -4
  248. package/dist/components/BbTable/BbTable.vue_vue_type_script_setup_true_lang.js +1433 -600
  249. package/dist/components/BbTable/BbTableDataRow.d.ts +162 -0
  250. package/dist/components/BbTable/BbTableDataRow.js +136 -0
  251. package/dist/components/BbTable/BbTableExpandRow.d.ts +73 -0
  252. package/dist/components/BbTable/BbTableExpandRow.js +52 -0
  253. package/dist/components/BbTable/types.d.ts +324 -111
  254. package/dist/components/BbTable/utils.d.ts +92 -4
  255. package/dist/components/BbTable/utils.js +71 -36
  256. package/dist/components/BbTabs/types.d.ts +0 -8
  257. package/dist/components/BbTag/BbTag.vue.d.ts +1 -1
  258. package/dist/components/BbTag/BbTag.vue_vue_type_script_setup_true_lang.js +18 -18
  259. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +1 -1
  260. package/dist/components/BbTextInput/BbTextInput.vue_vue_type_script_setup_true_lang.js +18 -18
  261. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +1 -1
  262. package/dist/components/BbTextarea/BbTextarea.vue_vue_type_script_setup_true_lang.js +54 -54
  263. package/dist/components/BbTimePicker/BbTimePicker.vue.d.ts +1 -1
  264. package/dist/components/BbTimePicker/BbTimePicker.vue_vue_type_script_setup_true_lang.js +80 -80
  265. package/dist/components/BbTimePickerInput/BbTimePickerInput.vue_vue_type_script_setup_true_lang.js +61 -61
  266. package/dist/components/BbToast/BbToast.vue_vue_type_script_setup_true_lang.js +17 -17
  267. package/dist/components/BbToast/BbToastMessage.vue_vue_type_script_setup_true_lang.js +13 -13
  268. package/dist/components/BbTooltip/types.d.ts +5 -1
  269. package/dist/components/ChipsBox/ChipsBox.vue_vue_type_script_setup_true_lang.js +17 -17
  270. package/dist/components/ClearableButton/ClearableButton.vue_vue_type_script_setup_true_lang.js +5 -5
  271. package/dist/components/CommonPopover/CommonPopover.vue_vue_type_script_setup_true_lang.js +2 -1
  272. package/dist/components/FlatListBox/FlatListBox.vue_vue_type_script_setup_true_lang.js +83 -83
  273. package/dist/components/GroupedListBox/GroupedListBox.vue_vue_type_script_setup_true_lang.js +56 -56
  274. package/dist/composables/useBaseOptions.js +30 -20
  275. package/dist/composables/useBbConfig.d.ts +27 -6
  276. package/dist/composables/useBbConfig.js +8 -2
  277. package/dist/composables/useConfig.d.ts +59 -0
  278. package/dist/composables/useConfig.js +9 -0
  279. package/dist/composables/useItemsGetter.d.ts +11 -0
  280. package/dist/composables/useItemsGetter.js +44 -18
  281. package/dist/composables/useLocale.js +10 -7
  282. package/dist/composables/useMobile.js +5 -5
  283. package/dist/composables/usePrefill.d.ts +21 -2
  284. package/dist/composables/usePrefill.js +25 -19
  285. package/dist/composables/useSsrState.d.ts +20 -0
  286. package/dist/composables/useSsrState.js +13 -0
  287. package/dist/composables/useTableWidthContext.d.ts +24 -4
  288. package/dist/composables/useTableWidthContext.js +31 -28
  289. package/dist/composables/useToast.js +5 -5
  290. package/dist/deprecation/ai-deprecations.json.d.ts +121 -11
  291. package/dist/deprecation/ai-deprecations.json.js +1 -1
  292. package/dist/directives/bbDropdown.d.ts +15 -4
  293. package/dist/directives/bbDropdown.js +31 -9
  294. package/dist/directives/createPopoverDirective.d.ts +62 -0
  295. package/dist/directives/createPopoverDirective.js +63 -23
  296. package/dist/i18n/locales/cs.json +4 -1
  297. package/dist/i18n/locales/da.json +4 -1
  298. package/dist/i18n/locales/de.json +4 -1
  299. package/dist/i18n/locales/el.json +4 -1
  300. package/dist/i18n/locales/en.json +4 -1
  301. package/dist/i18n/locales/es.json +4 -1
  302. package/dist/i18n/locales/fi.json +4 -1
  303. package/dist/i18n/locales/fr.json +4 -1
  304. package/dist/i18n/locales/hu.json +4 -1
  305. package/dist/i18n/locales/it.json +4 -1
  306. package/dist/i18n/locales/ja.json +4 -1
  307. package/dist/i18n/locales/ko.json +4 -1
  308. package/dist/i18n/locales/nb.json +4 -1
  309. package/dist/i18n/locales/nl.json +4 -1
  310. package/dist/i18n/locales/pl.json +4 -1
  311. package/dist/i18n/locales/pt.json +4 -1
  312. package/dist/i18n/locales/ro.json +4 -1
  313. package/dist/i18n/locales/ru.json +4 -1
  314. package/dist/i18n/locales/sv.json +4 -1
  315. package/dist/i18n/locales/tr.json +4 -1
  316. package/dist/i18n/locales/uk.json +4 -1
  317. package/dist/i18n/locales/zh-cn.json +4 -1
  318. package/dist/index.d.ts +7 -2
  319. package/dist/index.js +69 -67
  320. package/dist/llms-full.txt +3997 -1458
  321. package/dist/llms-medium.txt +140 -73
  322. package/dist/llms.txt +7 -6
  323. package/dist/locale-blueprint.json +4 -1
  324. package/dist/nuxt-auto-imports.d.ts +100 -0
  325. package/dist/nuxt-auto-imports.js +55 -0
  326. package/dist/nuxt-module.d.ts +22 -1
  327. package/dist/nuxt.js +22 -8
  328. package/dist/plugin.d.ts +10 -1
  329. package/dist/plugin.js +20 -19
  330. package/dist/runtime/nuxt-plugin.js +28 -21
  331. package/dist/styles.css +1 -1
  332. package/dist/utilities/misc/listboxMetrics.d.ts +3 -3
  333. package/dist/utilities/misc/listboxMetrics.js +2 -2
  334. package/dist/utilities/misc/ssrStateInjectionKey.d.ts +42 -0
  335. package/dist/utilities/misc/ssrStateInjectionKey.js +4 -0
  336. package/dist/validated/BbForm.vue_vue_type_script_setup_true_lang.js +45 -27
  337. package/dist/validated/BbSelect.vue.d.ts +2 -0
  338. package/dist/validated/BbSelect.vue_vue_type_script_setup_true_lang.js +1 -0
  339. package/dist/validated/useValidatedField.js +25 -23
  340. package/dist/vite.js +7 -3
  341. package/llms.txt +8 -7
  342. package/package.json +2 -2
  343. package/scripts/lib/eslint-plugin.d.ts +19 -1
  344. package/scripts/lib/eslint-plugin.mjs +155 -14
  345. package/scripts/lib/html-attributes.mjs +91 -0
  346. package/scripts/lib/validate-bb-markup.mjs +59 -11
  347. package/dist/assets/svgs/sort.svg_raw.js +0 -4
  348. package/dist/components/BbBadge/BadgeAppendIcon.vue.d.ts +0 -3
  349. package/dist/components/BbBadge/BadgeAppendIcon.vue.js +0 -5
  350. package/dist/components/BbBadge/BadgeAppendIcon.vue_vue_type_script_setup_true_lang.js +0 -22
@@ -1,5 +1,5 @@
1
- import { useItemsGetter as e } from "../../composables/useItemsGetter.js";
2
- import { hash as t } from "../../utilities/functions/hash.js";
1
+ import { hash as e } from "../../utilities/functions/hash.js";
2
+ import { useItemsGetter as t } from "../../composables/useItemsGetter.js";
3
3
  import { useHashedWatcher as n } from "../../composables/useHashedWatcher.js";
4
4
  import r from "../OptionsContainer/OptionsContainer.vue.js";
5
5
  import { useIndexById as i } from "../../composables/useIndexById.js";
@@ -61,39 +61,41 @@ var D = /*@__PURE__*/ g({
61
61
  setup(g, { emit: D }) {
62
62
  let O = g, k = D, A = w(), j = f(() => O.ariaLabelledby || A["aria-labelledby"] || A["aria-label"] ? "radiogroup" : void 0), M = T("container"), { active: N } = c(M);
63
63
  l(N, () => k("inactive")), u(N, () => k("active"));
64
- let { getter: P, items: F, loading: I } = e({ items: S(O, "items") }), L = () => {
65
- O.enforceCoherence && !H.value && k("update:modelValue", null);
66
- }, { hasPrefilled: R } = s({
64
+ let { getter: P, clientReproducible: F, hydratedFromSsr: I, items: L, loading: R } = t({ items: S(O, "items") }), z = () => {
65
+ O.enforceCoherence && !W.value && k("update:modelValue", null);
66
+ }, { hasPrefilled: B } = s({
67
+ alreadyLoaded: I,
68
+ clientReproducible: F,
67
69
  trigger: !0,
68
70
  currentValue: O.modelValue,
69
71
  multiple: !1,
70
72
  fn: async (e) => {
71
- await P(e, O.modelValue), L();
73
+ await P(e, O.modelValue), z();
72
74
  }
73
- }), { data: z } = i({ items: f(() => [].concat(O.modelValue)) }), { options: B } = a({
75
+ }), { data: V } = i({ items: f(() => [].concat(O.modelValue)) }), { options: H } = a({
74
76
  disabled: S(O, "disabled"),
75
- items: F,
77
+ items: L,
76
78
  itemText: O.itemText,
77
79
  itemValue: O.itemValue,
78
80
  max: Infinity,
79
81
  selectable: S(O, "selectable"),
80
- selectedIndexedByHash: z
81
- }), { data: V } = i({
82
- items: B,
82
+ selectedIndexedByHash: V
83
+ }), { data: U } = i({
84
+ items: H,
83
85
  key: "valueHash"
84
- }), { coherent: H } = o({
86
+ }), { coherent: W } = o({
85
87
  modelValue: S(O, "modelValue"),
86
88
  multiple: !1,
87
- iteratee: (e) => !!V.value[t(e)]
88
- }), U = 0;
89
+ iteratee: (t) => !!U.value[e(t)]
90
+ }), G = 0;
89
91
  n(() => O.modelValue, async () => {
90
- U++, H.value || (await P(!0, O.modelValue), L()), U--;
92
+ G++, W.value || (await P(!0, O.modelValue), z()), G--;
91
93
  }, { debounce: O.modelValueDebounceTime }), n(() => [O.dependencies, O.items], async () => {
92
- R.value && (U++, await P(!0, O.modelValue), U === 1 && L(), U--);
94
+ B.value && (G++, await P(!0, O.modelValue), G === 1 && z(), G--);
93
95
  }, { debounce: O.depsDebounceTime });
94
- let W = (e) => {
96
+ let K = (e) => {
95
97
  if (O.id) return [O.id, e.valueHash].filter(Boolean).join("-");
96
- }, G = {
98
+ }, q = {
97
99
  onBlur: (e) => k("blur", e),
98
100
  onChange: (e) => k("change", e),
99
101
  onClick: (e) => k("click", e),
@@ -114,10 +116,10 @@ var D = /*@__PURE__*/ g({
114
116
  "has-errors": e.hasErrors,
115
117
  "has-warning": e.hasWarning,
116
118
  "hide-label": e.hideLabel,
117
- loading: !!C(I),
119
+ loading: !!C(R),
118
120
  "loading-text": e.loadingText,
119
121
  "no-data-text": e.noDataText,
120
- options: C(B),
122
+ options: C(H),
121
123
  role: j.value
122
124
  }, {
123
125
  prepend: E(() => [x(e.$slots, "prepend")]),
@@ -125,7 +127,7 @@ var D = /*@__PURE__*/ g({
125
127
  "no-data": E(() => [x(e.$slots, "no-data")]),
126
128
  label: E((t) => [x(e.$slots, "label", y(_(t)))]),
127
129
  input: E(({ option: t, index: n }) => [h(d, v({
128
- id: W(t),
130
+ id: K(t),
129
131
  "aria-describedby": e.ariaDescribedby,
130
132
  autofocus: e.autofocus && !n,
131
133
  checked: t.selected,
@@ -137,7 +139,7 @@ var D = /*@__PURE__*/ g({
137
139
  readonly: e.readonly,
138
140
  required: e.required,
139
141
  value: t.value
140
- }, G), m({ _: 2 }, [e.$slots.icon ? {
142
+ }, q), m({ _: 2 }, [e.$slots.icon ? {
141
143
  name: "icon",
142
144
  fn: E((n) => [x(e.$slots, "icon", v({
143
145
  item: t.item,
@@ -1,12 +1,12 @@
1
- import { useId as e } from "../../composables/useId.js";
2
- import { useLogger as t } from "../../composables/useLogger.js";
3
- import { parseSize as n } from "../../utilities/functions/parseSize.js";
1
+ import { useConfig as e } from "../../composables/useConfig.js";
2
+ import { useId as t } from "../../composables/useId.js";
3
+ import { useLogger as n } from "../../composables/useLogger.js";
4
4
  import { useLocale as r } from "../../composables/useLocale.js";
5
- import { identity as i } from "../../utilities/functions/identity.js";
6
- import { useActiveInactiveState as a } from "../../composables/useActiveInactiveState.js";
7
- import { useOnFalsy as o } from "../../composables/useOnFalsy.js";
8
- import { useOnTruthy as s } from "../../composables/useOnTruthy.js";
9
- import { config as c } from "virtual:bitboss-ui/config";
5
+ import { parseSize as i } from "../../utilities/functions/parseSize.js";
6
+ import { identity as a } from "../../utilities/functions/identity.js";
7
+ import { useActiveInactiveState as o } from "../../composables/useActiveInactiveState.js";
8
+ import { useOnFalsy as s } from "../../composables/useOnFalsy.js";
9
+ import { useOnTruthy as c } from "../../composables/useOnTruthy.js";
10
10
  import { Fragment as l, computed as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, defineComponent as m, mergeProps as h, normalizeClass as g, openBlock as _, ref as v, renderList as y, renderSlot as b, toDisplayString as x, unref as S, useTemplateRef as C } from "vue";
11
11
  //#region src/components/BbBaseRating/BbBaseRating.vue?vue&type=script&setup=true&lang.ts
12
12
  var w = [
@@ -57,25 +57,25 @@ var w = [
57
57
  "update:modelValue"
58
58
  ],
59
59
  setup(m, { emit: k }) {
60
- let A = m, j = k, { t: M } = r(), N = t(), P = C("container"), { active: F } = a(P), I = u(() => A.id || e().id.value), L = e().id, R = v(!1), z = u(() => A.ariaLabelledby ? "radiogroup" : void 0), B = u(() => A.clearable && !A.disabled && !A.readonly), V = M("rating.clearHint"), H = u(() => {
61
- let e = [A.ariaDescribedby, B.value ? L.value : void 0].filter(Boolean);
60
+ let A = m, j = k, M = e(), { t: N } = r(), P = n(), F = C("container"), { active: I } = o(F), L = u(() => A.id || t().id.value), R = t().id, z = v(!1), B = u(() => A.ariaLabelledby ? "radiogroup" : void 0), V = u(() => A.clearable && !A.disabled && !A.readonly), H = N("rating.clearHint"), U = u(() => {
61
+ let e = [A.ariaDescribedby, V.value ? R.value : void 0].filter(Boolean);
62
62
  return e.length ? e.join(" ") : void 0;
63
63
  });
64
- o(F, () => j("inactive")), s(F, () => j("active"));
65
- let U = (e) => {
64
+ s(I, () => j("inactive")), c(I, () => j("active"));
65
+ let W = (e) => {
66
66
  if (A.readonly) {
67
67
  e.target instanceof HTMLInputElement && (e.target.checked = +e.target.value === A.modelValue);
68
68
  return;
69
69
  }
70
70
  j("change", e), e.target instanceof HTMLInputElement && e.target.checked && j("update:modelValue", +e.target.value);
71
- }, W = (e) => {
72
- A.readonly && e.preventDefault(), j("click", e), !A.readonly && e.target instanceof HTMLInputElement && A.clearable && e.target.checked && +e.target.value === A.modelValue && (R.value = !0, j("update:modelValue", null));
73
- }, G = () => {
74
- R.value &&= !1;
75
- }, K = {
71
+ }, G = (e) => {
72
+ A.readonly && e.preventDefault(), j("click", e), !A.readonly && e.target instanceof HTMLInputElement && A.clearable && e.target.checked && +e.target.value === A.modelValue && (z.value = !0, j("update:modelValue", null));
73
+ }, K = () => {
74
+ z.value &&= !1;
75
+ }, q = {
76
76
  onBlur: (e) => j("blur", e),
77
- onChange: U,
78
- onClick: W,
77
+ onChange: W,
78
+ onClick: G,
79
79
  onFocus: (e) => j("focus", e),
80
80
  onInput: (e) => j("input", e),
81
81
  onKeydown: (e) => {
@@ -95,27 +95,27 @@ var w = [
95
95
  },
96
96
  onMousedown: (e) => j("mousedown", e),
97
97
  onMouseup: (e) => j("mouseup", e)
98
- }, q = u(() => {
98
+ }, J = u(() => {
99
99
  if (A.size != null) try {
100
- return n(A.size, c.iconDefaultSizes);
100
+ return i(A.size, M.iconDefaultSizes);
101
101
  } catch {
102
- N.warn(`Invalid size: "${A.size}" in BbRating. Falling back to the default star size.`);
102
+ P.warn(`Invalid size: "${A.size}" in BbRating. Falling back to the default star size.`);
103
103
  return;
104
104
  }
105
- }), J = u(() => Array.from({ length: A.stars }, (e, t) => t + 1).map((e) => {
106
- let t = [I.value, e].filter(i).join("_"), n = e === A.modelValue, r = e <= (A.modelValue ?? 0);
105
+ }), Y = u(() => Array.from({ length: A.stars }, (e, t) => t + 1).map((e) => {
106
+ let t = [L.value, e].filter(a).join("_"), n = e === A.modelValue, r = e <= (A.modelValue ?? 0);
107
107
  return {
108
108
  checked: n,
109
109
  disabled: !!A.disabled,
110
110
  filled: r,
111
111
  id: t,
112
112
  name: A.name,
113
- size: q.value,
113
+ size: J.value,
114
114
  value: e
115
115
  };
116
- })), Y = u(() => {
116
+ })), X = u(() => {
117
117
  let e = {};
118
- return q.value && (e["--size"] = q.value), {
118
+ return J.value && (e["--size"] = J.value), {
119
119
  class: {
120
120
  "bb-base-rating": !0,
121
121
  "bb-base-rating--has-value": A.modelValue,
@@ -123,28 +123,28 @@ var w = [
123
123
  "bb-base-rating--errors": A.hasErrors,
124
124
  "bb-base-rating--warnings": !!A.hasWarning && !A.hasErrors,
125
125
  "bb-base-rating--readonly": A.readonly,
126
- "bb-base-rating--forced-clear": R.value
126
+ "bb-base-rating--forced-clear": z.value
127
127
  },
128
128
  style: e
129
129
  };
130
130
  });
131
- return (e, t) => (_(), f("span", h(Y.value, {
131
+ return (e, t) => (_(), f("span", h(X.value, {
132
132
  ref_key: "container",
133
- ref: P,
134
- onPointermove: G
133
+ ref: F,
134
+ onPointermove: K
135
135
  }), [p("span", {
136
136
  "aria-labelledby": e.ariaLabelledby,
137
- "aria-readonly": z.value && e.readonly ? !0 : void 0,
137
+ "aria-readonly": B.value && e.readonly ? !0 : void 0,
138
138
  class: "bb-base-rating__inner-container",
139
- role: z.value
139
+ role: B.value
140
140
  }, [
141
141
  b(e.$slots, "prepend"),
142
- B.value ? (_(), f("span", {
142
+ V.value ? (_(), f("span", {
143
143
  key: 0,
144
- id: S(L),
144
+ id: S(R),
145
145
  class: "sr-only"
146
- }, x(S(V)), 9, T)) : d("", !0),
147
- (_(!0), f(l, null, y(J.value, (n, r) => (_(), f("label", {
146
+ }, x(S(H)), 9, T)) : d("", !0),
147
+ (_(!0), f(l, null, y(Y.value, (n, r) => (_(), f("label", {
148
148
  key: n.value,
149
149
  class: g(["bb-base-rating__option", {
150
150
  "bb-base-rating__option--filled": n.filled,
@@ -153,10 +153,10 @@ var w = [
153
153
  "bb-base-rating__option--readonly": e.readonly
154
154
  }])
155
155
  }, [
156
- p("span", E, x(n.value == 1 ? S(M)("rating.singleStar", n.value, A.stars).value : S(M)("rating.multipleStars", n.value, A.stars).value), 1),
156
+ p("span", E, x(n.value == 1 ? S(N)("rating.singleStar", n.value, A.stars).value : S(N)("rating.multipleStars", n.value, A.stars).value), 1),
157
157
  p("input", h({
158
158
  id: n.id,
159
- "aria-describedby": H.value,
159
+ "aria-describedby": U.value,
160
160
  autofocus: e.autofocus && !r,
161
161
  checked: n.checked,
162
162
  class: "sr-only",
@@ -166,7 +166,7 @@ var w = [
166
166
  type: "radio",
167
167
  value: n.value,
168
168
  ref_for: !0
169
- }, K), null, 16, D),
169
+ }, q), null, 16, D),
170
170
  b(e.$slots, "icon", {
171
171
  id: n.id,
172
172
  checked: n.checked,
@@ -9,17 +9,17 @@ import { throttle as a } from "../../utilities/functions/throttle.js";
9
9
  import { when as o } from "../../utilities/functions/when.js";
10
10
  import s from "../BbSelectPopover/BbSelectPopover.vue.js";
11
11
  import { reject as c } from "../../utilities/functions/reject.js";
12
- import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createSlots as h, createTextVNode as ne, createVNode as re, defineComponent as g, guardReactiveProps as _, mergeProps as v, nextTick as y, normalizeClass as b, normalizeProps as x, onMounted as S, onUnmounted as C, openBlock as w, ref as T, renderList as E, renderSlot as D, toDisplayString as O, unref as k, watch as A, withCtx as j, withModifiers as ie } from "vue";
12
+ import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createSlots as h, createTextVNode as g, createVNode as _, defineComponent as v, guardReactiveProps as y, mergeProps as b, nextTick as x, normalizeClass as S, normalizeProps as C, onMounted as w, onUnmounted as T, openBlock as E, ref as D, renderList as O, renderSlot as k, toDisplayString as A, unref as j, watch as M, withCtx as N, withModifiers as ne } from "vue";
13
13
  //#region src/components/BbBaseSelect/BbBaseSelect.vue?vue&type=script&setup=true&lang.ts
14
- var ae = ["id"], oe = [
14
+ var re = ["id"], ie = [
15
15
  "id",
16
16
  "aria-labelledby",
17
17
  "autofocus",
18
18
  "disabled"
19
- ], M = {
19
+ ], ae = {
20
20
  key: 1,
21
21
  class: "bb-base-select__max-reached"
22
- }, N = ["id"], P = /*@__PURE__*/ g({
22
+ }, oe = ["id"], P = /*@__PURE__*/ v({
23
23
  __name: "BbBaseSelect",
24
24
  props: {
25
25
  adaptive: {
@@ -86,48 +86,48 @@ var ae = ["id"], oe = [
86
86
  "update:modelValue",
87
87
  "option:add"
88
88
  ],
89
- setup(i, { emit: g }) {
90
- let P = i, F = g, I = T(), L = T(), R = T(), { t: z } = t(), B = P.id || e().id.value, V = u(() => !r(P.modelValue)), se = u(() => V.value ? !0 : P.prefill), H = u(() => P.multiple ? Array.isArray(P.modelValue) ? P.modelValue.length : P.modelValue == null ? 0 : 1 : 0), U = u(() => P.maxSelectedLabels !== Infinity), W = u(() => !U.value), G = T(!1), K = T(0), q = T(!1), J = u(() => H.value <= 1 ? !1 : U.value ? H.value > P.maxSelectedLabels : G.value), Y = u(() => !P.disabled && !P.readonly), ce = (e) => {
91
- if (Y.value) if (P.multiple) {
89
+ setup(i, { emit: v }) {
90
+ let P = i, F = v, I = D(), L = D(), R = D(), { t: se } = t(), z = P.id || e().id.value, B = u(() => !r(P.modelValue)), ce = u(() => B.value ? !0 : P.prefill), V = u(() => P.multiple ? Array.isArray(P.modelValue) ? P.modelValue.length : P.modelValue == null ? 0 : 1 : 0), H = u(() => P.maxSelectedLabels !== Infinity), U = u(() => !H.value), W = D(!1), G = D(0), K = D(!1), q = u(() => V.value <= 1 ? !1 : H.value ? V.value > P.maxSelectedLabels : W.value), J = u(() => !P.disabled && !P.readonly), Y = (e) => {
91
+ if (J.value) if (P.multiple) {
92
92
  let t = c(P.modelValue, e.value);
93
93
  F("update:modelValue", t);
94
94
  } else F("update:modelValue", null);
95
95
  }, le = () => {
96
96
  (I.value?.$el)?.querySelector(".bb-base-select__activator")?.focus();
97
- }, X = u(() => P.selectedLabelsFn ? P.selectedLabelsFn(H.value) : z("select.multipleMaxReached", H.value).value), ue = (e) => P.multiple ? J.value ? X.value : e : e || P.placeholder || "", de = () => {
98
- q.value = !1, K.value = 0;
97
+ }, X = u(() => P.selectedLabelsFn ? P.selectedLabelsFn(V.value) : se("select.multipleMaxReached", V.value).value), ue = (e) => P.multiple ? q.value ? X.value : e : e || P.placeholder || "", de = () => {
98
+ K.value = !1, G.value = 0;
99
99
  }, fe = () => {
100
- if (q.value || !R.value) return;
100
+ if (K.value || !R.value) return;
101
101
  let e = getComputedStyle(R.value), t = Number.parseFloat(e.marginLeft || "0");
102
- K.value = Math.max(0, -t), q.value = !0;
102
+ G.value = Math.max(0, -t), K.value = !0;
103
103
  }, Z = a(() => {
104
- if (!W.value || !R.value || !L.value || H.value <= 1) {
105
- G.value = !1;
104
+ if (!U.value || !R.value || !L.value || V.value <= 1) {
105
+ W.value = !1;
106
106
  return;
107
107
  }
108
108
  fe();
109
- let e = L.value.clientWidth + K.value;
110
- G.value = R.value.scrollWidth > e + 1;
109
+ let e = L.value.clientWidth + G.value;
110
+ W.value = R.value.scrollWidth > e + 1;
111
111
  }, 100, {
112
112
  leading: !0,
113
113
  trailing: !0
114
114
  }), Q = null, $ = () => {
115
- Q?.disconnect(), Q = null, W.value && (Q = new ResizeObserver(Z), L.value && Q.observe(L.value), y(() => {
115
+ Q?.disconnect(), Q = null, U.value && (Q = new ResizeObserver(Z), L.value && Q.observe(L.value), x(() => {
116
116
  Z();
117
117
  }));
118
118
  };
119
- S($), A(W, $, { flush: "post" }), C(() => {
119
+ w($), M(U, $, { flush: "post" }), T(() => {
120
120
  Q?.disconnect(), Z.cancel();
121
- }), A(() => [P.modelValue, P.maxSelectedLabels], () => {
122
- W.value && y(() => {
121
+ }), M(() => [P.modelValue, P.maxSelectedLabels], () => {
122
+ U.value && x(() => {
123
123
  Z();
124
124
  });
125
- }), A(() => [
125
+ }), M(() => [
126
126
  P.compact,
127
127
  P.comma,
128
128
  P["prepend:icon"]
129
129
  ], () => {
130
- W.value && (de(), y(() => {
130
+ U.value && (de(), x(() => {
131
131
  Z();
132
132
  }));
133
133
  });
@@ -138,8 +138,8 @@ var ae = ["id"], oe = [
138
138
  type: "hidden",
139
139
  value: pe(e)
140
140
  })));
141
- return (e, t) => (w(), d(s, {
142
- id: k(B),
141
+ return (e, t) => (E(), d(s, {
142
+ id: j(z),
143
143
  adaptive: e.adaptive,
144
144
  anchor: I.value,
145
145
  "aria-describedby": e.ariaDescribedby,
@@ -167,7 +167,7 @@ var ae = ["id"], oe = [
167
167
  multiple: e.multiple,
168
168
  "no-data-text": e.noDataText,
169
169
  "off-canvas-props": e.offCanvasProps,
170
- prefill: se.value,
170
+ prefill: ce.value,
171
171
  "query-debounce-time": e.queryDebounceTime,
172
172
  readonly: e.readonly,
173
173
  selectable: e.selectable,
@@ -184,12 +184,12 @@ var ae = ["id"], oe = [
184
184
  "onOption:add": t[7] ||= (t) => e.$emit("option:add", t),
185
185
  "onUpdate:modelValue": t[8] ||= (t) => e.$emit("update:modelValue", t)
186
186
  }, h({
187
- activator: j(({ props: t, shown: r, loading: i, text: a, selectedOptions: o, clear: s, query: c, focus: u, close: g, toggle: S }) => [re(te, {
187
+ activator: N(({ props: t, shown: r, loading: i, text: a, selectedOptions: o, clear: s, query: c, focus: u, close: d, toggle: v }) => [_(te, {
188
188
  ref_key: "wrapperRef",
189
189
  ref: I,
190
190
  active: r,
191
191
  "append:icon": P["append:icon"],
192
- class: b(["bb-base-select", {
192
+ class: S(["bb-base-select", {
193
193
  "bb-base-select--shown": r,
194
194
  "bb-base-select--disabled": e.disabled,
195
195
  "bb-base-select--readonly": e.readonly
@@ -198,79 +198,88 @@ var ae = ["id"], oe = [
198
198
  compact: e.compact,
199
199
  disabled: e.disabled,
200
200
  "has-errors": e.hasErrors,
201
- "has-value": V.value,
201
+ "has-value": B.value,
202
202
  "has-warning": e.hasWarning,
203
203
  loading: i,
204
204
  "prepend:icon": P["prepend:icon"],
205
205
  readonly: e.readonly,
206
206
  "onClick:clear": () => {
207
- s(), y(le);
207
+ s(), x(le);
208
208
  },
209
- "onContainer:click": S
209
+ "onContainer:click": v
210
210
  }, h({
211
- "append-outer": j(() => [D(e.$slots, "append-outer", x(_({
211
+ "append-outer": N(() => [k(e.$slots, "append-outer", C(y({
212
212
  query: c,
213
- close: g
213
+ close: d
214
214
  })))]),
215
- append: j(() => [D(e.$slots, "append", x(_({
215
+ append: N(() => [k(e.$slots, "append", C(y({
216
216
  query: c,
217
217
  focus: u,
218
- close: g
218
+ close: d
219
219
  })))]),
220
- prepend: j(() => [D(e.$slots, "prepend", x(_({
220
+ prepend: N(() => [k(e.$slots, "prepend", C(y({
221
221
  query: c,
222
222
  focus: u,
223
- close: g
223
+ close: d
224
224
  })))]),
225
- "prepend-outer": j(() => [D(e.$slots, "prepend-outer", x(_({
225
+ "prepend-outer": N(() => [k(e.$slots, "prepend-outer", C(y({
226
226
  query: c,
227
- close: g
227
+ close: d
228
228
  })))]),
229
- default: j(() => [m("span", {
230
- id: `${k(B)}__value`,
229
+ default: N(() => [m("span", {
230
+ id: `${j(z)}__value`,
231
231
  ref_key: "valueRef",
232
232
  ref: L,
233
233
  class: "bb-base-select__value"
234
- }, [m("input", v(t, {
235
- id: k(B),
236
- "aria-labelledby": `${k(B)}__label ${k(B)}__selection`,
234
+ }, [m("input", b(t, {
235
+ id: j(z),
236
+ "aria-labelledby": `${j(z)}__label ${j(z)}__selection`,
237
237
  autofocus: e.autofocus,
238
238
  class: "bb-base-select__activator",
239
239
  disabled: e.disabled,
240
240
  type: "button"
241
- }), null, 16, oe), e.multiple ? (w(), p(l, { key: 0 }, [W.value || !J.value ? (w(), p("span", {
241
+ }), null, 16, ie), e.multiple ? (E(), p(l, { key: 0 }, [U.value || !q.value ? (E(), p("span", {
242
242
  key: 0,
243
243
  ref_key: "chipsContainerRef",
244
244
  ref: R,
245
- class: b(["bb-base-select__chips-row", { "bb-base-select__chips-row--hidden": J.value }])
246
- }, [e.comma ? (w(!0), p(l, { key: 0 }, E(o, (e) => (w(), p("span", {
247
- key: k(n)(e.value),
245
+ class: S(["bb-base-select__chips-row", {
246
+ "bb-base-select__chips-row--hidden": q.value,
247
+ "bb-base-select__chips-row--chips": !e.comma && !!o.length
248
+ }])
249
+ }, [e.comma ? (E(!0), p(l, { key: 0 }, O(o, (e) => (E(), p("span", {
250
+ key: j(n)(e.value),
248
251
  class: "bb-base-select__comma-item"
249
- }, O(e.text), 1))), 128)) : (w(!0), p(l, { key: 1 }, E(o, (e) => (w(), d(ee, {
250
- key: k(n)(e.value),
252
+ }, A(e.text), 1))), 128)) : (E(!0), p(l, { key: 1 }, O(o, (t) => k(e.$slots, "chip", {
253
+ key: j(n)(t.value),
254
+ deselect: () => Y(t),
255
+ disabled: !J.value,
256
+ item: t.item,
257
+ text: t.text,
258
+ value: t.value
259
+ }, () => [_(ee, {
251
260
  class: "bb-base-select__chip",
252
- clearable: Y.value,
261
+ clearable: J.value,
253
262
  size: "lg",
254
263
  variant: "secondary",
255
- "onClick:clear": ie((t) => ce(e), ["stop"])
264
+ "onClick:clear": ne((e) => Y(t), ["stop"])
256
265
  }, {
257
- default: j(() => [ne(O(e.text), 1)]),
266
+ default: N(() => [g(A(t.text), 1)]),
258
267
  _: 2
259
- }, 1032, ["clearable", "onClick:clear"]))), 128))], 2)) : f("", !0), J.value ? (w(), p("span", M, O(X.value), 1)) : f("", !0)], 64)) : (w(), p("span", {
268
+ }, 1032, ["clearable", "onClick:clear"])])), 128))], 2)) : f("", !0), q.value ? (E(), p("span", ae, A(X.value), 1)) : f("", !0)], 64)) : (E(), p("span", {
260
269
  key: 1,
261
- class: b(["bb-base-select__display-value", [{ "bb-base-select__placeholder": !a }]])
262
- }, O(a || e.placeholder), 3))], 8, ae), m("span", {
263
- id: `${k(B)}__selection`,
270
+ class: S(["bb-base-select__display-value", [{ "bb-base-select__placeholder": !a }]])
271
+ }, A(a || e.placeholder), 3))], 8, re), m("span", {
272
+ id: `${j(z)}__selection`,
264
273
  class: "sr-only"
265
- }, O(ue(a)), 9, N)]),
274
+ }, A(ue(a)), 9, oe)]),
266
275
  _: 2
267
276
  }, [e.$slots.prefix ? {
268
277
  name: "prefix",
269
- fn: j(() => [D(e.$slots, "prefix")]),
278
+ fn: N(() => [k(e.$slots, "prefix")]),
270
279
  key: "0"
271
280
  } : void 0, e.$slots.suffix ? {
272
281
  name: "suffix",
273
- fn: j(() => [D(e.$slots, "suffix")]),
282
+ fn: N(() => [k(e.$slots, "suffix")]),
274
283
  key: "1"
275
284
  } : void 0]), 1032, [
276
285
  "active",
@@ -287,22 +296,22 @@ var ae = ["id"], oe = [
287
296
  "readonly",
288
297
  "onClick:clear",
289
298
  "onContainer:click"
290
- ]), (w(!0), p(l, null, E(me.value, (e) => (w(), p("input", v({
299
+ ]), (E(!0), p(l, null, O(me.value, (e) => (E(), p("input", b({
291
300
  key: e.value,
292
301
  ref_for: !0
293
302
  }, e), null, 16))), 128))]),
294
- loading: j((t) => [D(e.$slots, "loading", x(_(t)))]),
295
- "no-data": j((t) => [D(e.$slots, "no-data", x(_(t)))]),
296
- option: j((t) => [D(e.$slots, "option", v({ hasErrors: e.hasErrors }, t))]),
297
- group: j((t) => [D(e.$slots, "group", x(_(t)))]),
303
+ loading: N((t) => [k(e.$slots, "loading", C(y(t)))]),
304
+ "no-data": N((t) => [k(e.$slots, "no-data", C(y(t)))]),
305
+ option: N((t) => [k(e.$slots, "option", b({ hasErrors: e.hasErrors }, t))]),
306
+ group: N((t) => [k(e.$slots, "group", C(y(t)))]),
298
307
  _: 2
299
308
  }, [e.$slots.header ? {
300
309
  name: "header",
301
- fn: j((t) => [D(e.$slots, "header", x(_(t)))]),
310
+ fn: N((t) => [k(e.$slots, "header", C(y(t)))]),
302
311
  key: "0"
303
312
  } : void 0, e.$slots.footer ? {
304
313
  name: "footer",
305
- fn: j((t) => [D(e.$slots, "footer", x(_(t)))]),
314
+ fn: N((t) => [k(e.$slots, "footer", C(y(t)))]),
306
315
  key: "1"
307
316
  } : void 0]), 1032, /* @__PURE__ */ "id.adaptive.anchor.aria-describedby.autocomplete.compact.dependencies.deps-debounce-time.disable-writing.disabled.enforce-coherence.filter-by.group-by.has-errors.has-warning.header-height.item-height.item-text.item-value.items.loading.loading-text.max.model-value.model-value-debounce-time.multiple.no-data-text.off-canvas-props.prefill.query-debounce-time.readonly.selectable.stash.transition-duration".split(".")));
308
317
  }
@@ -274,6 +274,26 @@ export type BaseSelectPanelSlotProps = {
274
274
  /** The resolved options that are currently selected. */
275
275
  selectedOptions: BbSelectResolvedOption[];
276
276
  };
277
+ /**
278
+ * Props exposed by the `chip` slot — called once per selected value in
279
+ * `multiple` mode, in place of the default badge. Not called in `comma` mode
280
+ * (there are no chips there) nor for the collapsed "+N" summary.
281
+ */
282
+ export type BaseSelectChipSlotProps<Item = any> = {
283
+ /** The selected item, exactly as it was supplied in `items`. */
284
+ item: Item;
285
+ /** The item's resolved display text (what the default badge prints). */
286
+ text: string;
287
+ /** The item's resolved value — what sits in the v-model. */
288
+ value: any;
289
+ /**
290
+ * `true` while the control is disabled or readonly: the chip must not offer
291
+ * a way to remove itself, and `deselect` is a no-op.
292
+ */
293
+ disabled: boolean;
294
+ /** Drops this value from the selection. No-op while `disabled`. */
295
+ deselect: () => void;
296
+ };
277
297
  export type BaseSelectSlots<Item = any> = {
278
298
  /** Content pinned to the top of the panel, above the search field. */
279
299
  header?: (props: BaseSelectPanelSlotProps) => any;
@@ -294,4 +314,6 @@ export type BaseSelectSlots<Item = any> = {
294
314
  }) => any;
295
315
  option?: (props: BaseSelectOptionSlotProps<Item>) => any;
296
316
  group?: (props: BaseSelectGroupSlotProps<Item>) => any;
317
+ /** Replaces the default badge rendered for each selection in `multiple` mode. */
318
+ chip?: (props: BaseSelectChipSlotProps<Item>) => any;
297
319
  };
@@ -1,6 +1,6 @@
1
1
  import { useLogger as e } from "../../composables/useLogger.js";
2
- import { isNil as t } from "../../utilities/functions/isNil.js";
3
- import { useLocale as n } from "../../composables/useLocale.js";
2
+ import { useLocale as t } from "../../composables/useLocale.js";
3
+ import { isNil as n } from "../../utilities/functions/isNil.js";
4
4
  import { last as r } from "../../utilities/functions/last.js";
5
5
  import { clamp as i } from "../../utilities/functions/clamp.js";
6
6
  import { getAsPercentage as a, getAsPercentageBetween as o, getValueFromPercentageInInterval as s } from "../../utilities/functions/percentage.js";
@@ -69,9 +69,9 @@ var le = {
69
69
  "update:modelValue"
70
70
  ],
71
71
  setup(m, { emit: he }) {
72
- let S = m, C = he, w = e(), { t: T } = n(), E = u(() => S.id ? `${S.id}__label` : void 0), ge = u(() => S.id && S.range ? `${E.value} ${S.id}__thumb_label_lower` : E.value), _e = u(() => S.id && S.range ? `${E.value} ${S.id}__thumb_label_higher` : E.value);
72
+ let S = m, C = he, w = e(), { t: T } = t(), E = u(() => S.id ? `${S.id}__label` : void 0), ge = u(() => S.id && S.range ? `${E.value} ${S.id}__thumb_label_lower` : E.value), _e = u(() => S.id && S.range ? `${E.value} ${S.id}__thumb_label_higher` : E.value);
73
73
  (S.min < -(2 ** 53 - 1) || S.max > 2 ** 53 - 1) && w.throw("BaseSlider min or max is too large"), (!Number.isFinite(S.min) || !Number.isFinite(S.max)) && w.throw("BaseSlider min and max must be finite numbers", TypeError), S.max <= S.min && w.throw("BaseSlider max must be greater than min", RangeError), (!Number.isFinite(S.step) || S.step <= 0) && w.throw("BaseSlider step must be a finite number greater than 0", RangeError), (!Number.isFinite(S.maxPrecision) || S.maxPrecision < 0) && w.throw("BaseSlider maxPrecision must be a non-negative number", RangeError);
74
- let D = v(), O = v(), k = v(), A = v(), j = v(), M = v(0), N = v(0), P = u(() => Array.isArray(S.modelValue) ? ee(S.modelValue) ?? void 0 : t(S.modelValue) ? void 0 : Number(S.modelValue)), F = u(() => Array.isArray(S.modelValue) ? r(S.modelValue) ?? void 0 : t(S.modelValue) ? void 0 : Number(S.modelValue)), I = u(() => [M.value, N.value].sort((e, t) => e - t)), L = v(!1);
74
+ let D = v(), O = v(), k = v(), A = v(), j = v(), M = v(0), N = v(0), P = u(() => Array.isArray(S.modelValue) ? ee(S.modelValue) ?? void 0 : n(S.modelValue) ? void 0 : Number(S.modelValue)), F = u(() => Array.isArray(S.modelValue) ? r(S.modelValue) ?? void 0 : n(S.modelValue) ? void 0 : Number(S.modelValue)), I = u(() => [M.value, N.value].sort((e, t) => e - t)), L = v(!1);
75
75
  S.range && !Array.isArray(S.modelValue) && w.throw("BaseSlider mode is set as range but modelValue is not an array", TypeError), oe(() => {
76
76
  S.autofocus && B();
77
77
  });
@@ -197,7 +197,7 @@ var le = {
197
197
  left: `${I.value[0]}%`
198
198
  }
199
199
  })), ke = (e) => {
200
- if (t(S.modelValue)) return !1;
200
+ if (n(S.modelValue)) return !1;
201
201
  if (Array.isArray(S.modelValue)) {
202
202
  if (S.modelValue.length === 0) return !1;
203
203
  let t = [...S.modelValue].sort((e, t) => e - t);