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,13 +1,13 @@
1
1
  import { BB_BASE_BUTTON_PROP_KEYS as e } from "../BbBaseButton/types.js";
2
- import { matchAnyKey as t } from "../../utilities/functions/matchAnyKey.js";
3
- import { slotKey as n } from "../../utilities/functions/slotKey.js";
4
- import { useLocale as r } from "../../composables/useLocale.js";
2
+ import { useLocale as t } from "../../composables/useLocale.js";
3
+ import { matchAnyKey as n } from "../../utilities/functions/matchAnyKey.js";
4
+ import { slotKey as r } from "../../utilities/functions/slotKey.js";
5
5
  import { useDropdownContext as i } from "./useDropdownContext.js";
6
- import { useArray as a } from "../../composables/useArray.js";
7
- import { useItemsGetter as o } from "../../composables/useItemsGetter.js";
8
- import { useItemText as ee } from "../../composables/useItemText.js";
9
- import { useItemValue as te } from "../../composables/useItemValue.js";
10
- import { hash as s } from "../../utilities/functions/hash.js";
6
+ import { hash as a } from "../../utilities/functions/hash.js";
7
+ import { useArray as o } from "../../composables/useArray.js";
8
+ import { useItemsGetter as ee } from "../../composables/useItemsGetter.js";
9
+ import { useItemText as te } from "../../composables/useItemText.js";
10
+ import { useItemValue as s } from "../../composables/useItemValue.js";
11
11
  import { useHashedWatcher as c } from "../../composables/useHashedWatcher.js";
12
12
  import { useDropdownGroupRegistry as l } from "./useDropdownGroupRegistry.js";
13
13
  import { computed as u, defineComponent as d, getCurrentInstance as f, onUnmounted as p, ref as m, renderSlot as h, watch as g, watchEffect as _ } from "vue";
@@ -27,40 +27,40 @@ var v = "__bb-dropdown-group:loading__", y = "__bb-dropdown-group:no-data__", b
27
27
  "append:icon",
28
28
  "variant",
29
29
  "onClick"
30
- ], S = l(), C = i(), w = f().uid, T = u(() => S?.configFor(b.id)), { t: E } = r(), D = E("common.loadingText"), ne = E("common.noDataText"), re = E("select.searchToStart"), O = u(() => !!T.value?.searchable), k = u(() => C.queryFor(b.id)), ie = u(() => T.value?.filterBy ?? []), A = u(() => T.value?.prefill ?? "interaction"), j = u(() => A.value === !1), M = () => S?.modelValueFor(b.id), N = (e, t) => {
30
+ ], S = l(), C = i(), w = f().uid, T = u(() => S?.configFor(b.id)), { t: E } = t(), D = E("common.loadingText"), ne = E("common.noDataText"), re = E("select.searchToStart"), O = u(() => !!T.value?.searchable), k = u(() => C.queryFor(b.id)), ie = u(() => T.value?.filterBy ?? []), A = u(() => T.value?.prefill ?? "interaction"), j = u(() => A.value === !1), M = () => S?.modelValueFor(b.id), N = (e, t) => {
31
31
  let n = e ? G : W;
32
32
  return O.value ? n(k.value, t, M()) : n(t, M());
33
- }, P = m(!1), F = u(() => !!T.value?.stash), { array: I, add: L } = a(), { getItemText: R } = ee(), { getItemValue: z } = te(), B = (e) => z(e, T.value?.itemValue), V = (e) => R(e, T.value?.itemText), H = (e) => {
33
+ }, P = m(!1), F = u(() => !!T.value?.stash), { array: I, add: L } = o(), { getItemText: R } = te(), { getItemValue: z } = s(), B = (e) => z(e, T.value?.itemValue), V = (e) => R(e, T.value?.itemText), H = (e) => {
34
34
  if (Array.isArray(e)) return e.map((e) => H(e));
35
35
  if (!e || typeof e != "object") return e;
36
36
  let t = e;
37
37
  return Object.keys(t).sort().reduce((e, n) => (e[n] = H(t[n]), e), {});
38
38
  }, U = (e) => {
39
- if (typeof e == "string") return n(e);
40
- if (e == null || typeof e == "number" || typeof e == "boolean") return n(String(e));
39
+ if (typeof e == "string") return r(e);
40
+ if (e == null || typeof e == "number" || typeof e == "boolean") return r(String(e));
41
41
  try {
42
- return n(JSON.stringify(H(e)) ?? String(e));
42
+ return r(JSON.stringify(H(e)) ?? String(e));
43
43
  } catch {
44
- return n(String(e));
44
+ return r(String(e));
45
45
  }
46
- }, { getter: W, debouncedGetter: G, items: K, loading: q } = o({
46
+ }, { getter: W, debouncedGetter: G, items: K, loading: q } = ee({
47
47
  items: u(() => T.value?.items),
48
48
  debounce: C.queryDebounceTime.value
49
49
  }), J = u(() => {
50
50
  let e = /* @__PURE__ */ new Map();
51
- for (let t of K.value) e.set(s(B(t)), t);
51
+ for (let t of K.value) e.set(a(B(t)), t);
52
52
  return e;
53
53
  }), ae = u(() => {
54
54
  let e = K.value;
55
55
  if (!F.value || !I.value.length) return e;
56
- let t = new Set(e.map((e) => s(B(e)))), n = I.value.filter((e) => !t.has(s(B(e))));
56
+ let t = new Set(e.map((e) => a(B(e)))), n = I.value.filter((e) => !t.has(a(B(e))));
57
57
  return n.length ? [...e, ...n] : e;
58
58
  });
59
59
  _(() => {
60
60
  if (!F.value) return;
61
61
  let e = S?.selectionFor(b.id) ?? [];
62
62
  if (!e.length) return;
63
- let t = new Set(I.value.map((e) => s(B(e))));
63
+ let t = new Set(I.value.map((e) => a(B(e))));
64
64
  for (let n of e) {
65
65
  if (t.has(n)) continue;
66
66
  let e = J.value.get(n);
@@ -70,13 +70,13 @@ var v = "__bb-dropdown-group:loading__", y = "__bb-dropdown-group:no-data__", b
70
70
  let Y = u(() => ae.value.map((e) => ({
71
71
  item: e,
72
72
  value: B(e),
73
- key: s(B(e)),
73
+ key: a(B(e)),
74
74
  slotToken: U(B(e)),
75
75
  text: V(e)
76
76
  }))), oe = u(() => {
77
77
  if (!O.value || !k.value) return Y.value;
78
- let e = k.value.trim(), n = ie.value;
79
- return Y.value.filter((r) => n.length ? t(r.item, n, e) : t({ text: r.text }, ["text"], e));
78
+ let e = k.value.trim(), t = ie.value;
79
+ return Y.value.filter((r) => t.length ? n(r.item, t, e) : n({ text: r.text }, ["text"], e));
80
80
  }), X = u(() => {
81
81
  let e = /* @__PURE__ */ new Map();
82
82
  for (let t of Y.value) e.set(t.key, t.value);
@@ -187,11 +187,14 @@ export type InternalGroup = DropdownEntryBase & {
187
187
  * predictable size regardless of row content. A `number` is pixels; a `string`
188
188
  * is any CSS length (`'50vh'`, `'20rem'`). `'none'` (or `0`) removes the cap.
189
189
  *
190
- * `searchable` groups default to `280` (≈ 10 rows of 28px), since a searched
191
- * list is usually long; set your own value to tweak, or `'none'` to uncap.
192
- * Non-searchable groups are uncapped unless you set this.
190
+ * `searchable` groups default to `280` (≈ 10 rows of 28px) **on the flyout**,
191
+ * since a searched list is usually long; set your own value to tweak, or
192
+ * `'none'` to uncap. The adaptive sheet ignores the cap so the OffCanvas
193
+ * body stays the only scroller (nested group overflow trapped swipes that
194
+ * started on a row). Non-searchable flyout groups are uncapped unless you
195
+ * set this.
193
196
  *
194
- * @defaultValue `280` for `searchable` groups, otherwise unset
197
+ * @defaultValue `280` for `searchable` flyout groups, otherwise unset
195
198
  */
196
199
  maxHeight?: number | string;
197
200
  /**
@@ -345,6 +348,17 @@ export type BbDropdownProps = {
345
348
  * @defaultValue `config.adaptive` (`true`)
346
349
  */
347
350
  adaptive?: boolean;
351
+ /**
352
+ * Apply the compact density variant — the same ladder `BbSelect` uses, on
353
+ * both surfaces: flyout rows go 28px → 24px, sheet rows 44px → 36px. The
354
+ * label size does not change; density here is height, as it is for a select.
355
+ *
356
+ * A menu row is a touch target in a way a select option is not quite — a
357
+ * mis-tap fires the neighbouring COMMAND rather than picking the wrong value
358
+ * — so the compact sheet stops at 36px and never follows the flyout down to
359
+ * 24px. That is the same floor the select's sheet holds.
360
+ */
361
+ compact?: boolean;
348
362
  /**
349
363
  * Element the panel positions itself against, when it should differ from the
350
364
  * activator — e.g. a wrapper that the activator is only a part of, so the menu
@@ -424,7 +438,8 @@ export type BbDropdownProps = {
424
438
  padding?: number;
425
439
  /**
426
440
  * Position of the dropdown relative to the activator.
427
- * Use `'cursor'` to anchor at the mouse/touch coordinates (hides arrow).
441
+ * Use `'cursor'` to anchor at the mouse/touch coordinates.
442
+ * (No arrow is drawn either way — arrows are tooltip-only in v3.)
428
443
  *
429
444
  * @defaultValue `'bottom'`
430
445
  */
@@ -2,8 +2,8 @@ import { removedPropsFor as e } from "../../deprecation/removedProps.js";
2
2
  import { warnRemovedAttrs as t } from "../../utilities/functions/warnRemovedAttrs.js";
3
3
  import { useLocale as n } from "../../composables/useLocale.js";
4
4
  import { groupItemsAsArray as r, isGroup as i } from "../BbDropdown/types.js";
5
- import a from "../BbDropdown/BbDropdown.vue.js";
6
- import o from "../BbButton/BbButton.vue.js";
5
+ import a from "../BbButton/BbButton.vue.js";
6
+ import o from "../BbDropdown/BbDropdown.vue.js";
7
7
  import "../../assets/svgs/chevron_down.svg_raw.js";
8
8
  import { computed as s, createElementBlock as c, createSlots as l, createVNode as u, defineComponent as d, guardReactiveProps as f, mergeProps as p, normalizeClass as m, normalizeProps as h, openBlock as g, renderList as _, renderSlot as v, unref as y, useTemplateRef as b, withCtx as x } from "vue";
9
9
  //#region src/components/BbDropdownButton/BbDropdownButton.vue?vue&type=script&setup=true&lang.ts
@@ -43,7 +43,7 @@ var S = /*@__PURE__*/ d({
43
43
  ref_key: "root",
44
44
  ref: T,
45
45
  class: m(["bb-dropdown-button", { "bb-dropdown-button--block": e.block }])
46
- }, [u(o, p(M.value, {
46
+ }, [u(a, p(M.value, {
47
47
  "append:icon": S["append:icon"],
48
48
  class: "bb-dropdown-button__main-btn",
49
49
  "disable-auto-loading": e.disableAutoLoading,
@@ -61,7 +61,7 @@ var S = /*@__PURE__*/ d({
61
61
  "prepend:icon",
62
62
  "size",
63
63
  "variant"
64
- ]), u(a, {
64
+ ]), u(o, {
65
65
  id: e.id,
66
66
  ref_key: "dropdown",
67
67
  ref: E,
@@ -75,7 +75,7 @@ var S = /*@__PURE__*/ d({
75
75
  "transition-duration": e.transitionDuration,
76
76
  width: e.width
77
77
  }, l({
78
- activator: x(({ props: t, open: n }) => [u(o, p({
78
+ activator: x(({ props: t, open: n }) => [u(a, p({
79
79
  "aria-label": D.value,
80
80
  class: "bb-dropdown-button__dropdown-btn",
81
81
  "disable-auto-loading": "",
@@ -1,70 +1,70 @@
1
- import { removedPropsFor as e } from "../../deprecation/removedProps.js";
2
- import { useLogger as t } from "../../composables/useLogger.js";
3
- import { warnRemovedAttrs as n } from "../../utilities/functions/warnRemovedAttrs.js";
4
- import { parseSize as r } from "../../utilities/functions/parseSize.js";
5
- import { ICONS_INJECTION_KEY as i } from "../../utilities/misc/iconsInjectionKey.js";
6
- import { config as a } from "virtual:bitboss-ui/config";
7
- import { computed as o, createElementBlock as s, defineComponent as c, inject as l, mergeProps as u, onBeforeMount as d, onServerPrefetch as f, openBlock as p, ref as m, watch as h } from "vue";
1
+ import { useConfig as e } from "../../composables/useConfig.js";
2
+ import { removedPropsFor as t } from "../../deprecation/removedProps.js";
3
+ import { useLogger as n } from "../../composables/useLogger.js";
4
+ import { warnRemovedAttrs as r } from "../../utilities/functions/warnRemovedAttrs.js";
5
+ import { parseSize as i } from "../../utilities/functions/parseSize.js";
6
+ import { ICONS_INJECTION_KEY as a } from "../../utilities/misc/iconsInjectionKey.js";
7
+ import { EMPTY_ICON as o, cacheKeyFor as s, parseIcon as c, parsedIcons as l } from "./iconCache.js";
8
+ import { computed as u, createElementBlock as d, defineComponent as f, inject as p, mergeProps as m, onBeforeMount as h, onServerPrefetch as g, openBlock as _, ref as v, watch as y } from "vue";
8
9
  //#region src/components/BbIcon/BbIcon.vue?vue&type=script&setup=true&lang.ts
9
- var g = ["innerHTML"], _ = /*@__PURE__*/ c({
10
+ var b = ["innerHTML"], x = /*@__PURE__*/ f({
10
11
  __name: "BbIcon",
11
12
  props: {
12
13
  label: {},
13
14
  icon: {},
14
15
  size: { default: "md" }
15
16
  },
16
- setup(c) {
17
- let _ = c;
18
- process.env.NODE_ENV !== "production" && n("BbIcon", e("BbIcon"));
19
- let v = t(), y = m(), b = m(null), x = o(() => b.value ? b.value.replace(/<\?xml[^?]*\?>/gi, "").replace(/<!DOCTYPE[^>]*>/gi, "").replace(/<\/?svg(?:[^>"']|"[^"]*"|'[^']*')*>/gi, "") : null), S = () => {
20
- y.value = l(i) ?? l("icons"), y.value || v.throw("Failed to load icons. Make sure the plugin for your platform (Vue, Nuxt, or Inertia) is installed.");
21
- }, C = (e) => /<svg[\s>]/i.test(e), w = /* @__PURE__ */ RegExp("<(?:[^>\"']|\"[^\"]*\"|'[^']*')*[\\s/]on[a-z]+\\s*=", "i"), T = /<script[\s/>]/i, E = (e) => w.test(e) ? "inline event handler attributes" : T.test(e) ? "an embedded <script> element" : null, D = async () => {
22
- if (C(_.icon)) {
23
- let e = E(_.icon);
24
- if (e) {
25
- b.value = "", v.warn(`Inline SVG icon rejected: it carries ${e} and did not pass sanitation, so the icon was dropped. bitboss-ui never sanitizes inline SVG — pass trusted markup (e.g. an import with \`?raw\`), never a string from a CMS, an API, or user input.`);
17
+ setup(f) {
18
+ let x = f, S = e();
19
+ process.env.NODE_ENV !== "production" && r("BbIcon", t("BbIcon"));
20
+ let C = n(), w = v(), T = () => {
21
+ w.value = p(a) ?? p("icons"), w.value || C.throw("Failed to load icons. Make sure the plugin for your platform (Vue, Nuxt, or Inertia) is installed.");
22
+ }, E = (e) => /<svg[\s>]/i.test(e), D = /* @__PURE__ */ RegExp("<(?:[^>\"']|\"[^\"]*\"|'[^']*')*[\\s/]on[a-z]+\\s*=", "i"), O = /<script[\s/>]/i, k = (e) => D.test(e) ? "inline event handler attributes" : O.test(e) ? "an embedded <script> element" : null, A = (e) => s(e, E(e)), j = v(l.get(A(x.icon)) ?? null), M = async () => {
23
+ let e = A(x.icon), t = l.get(e);
24
+ if (t) {
25
+ j.value = t;
26
+ return;
27
+ }
28
+ if (E(x.icon)) {
29
+ let t = k(x.icon);
30
+ if (t) {
31
+ j.value = o, C.warn(`Inline SVG icon rejected: it carries ${t} and did not pass sanitation, so the icon was dropped. bitboss-ui never sanitizes inline SVG — pass trusted markup (e.g. an import with \`?raw\`), never a string from a CMS, an API, or user input.`);
26
32
  return;
27
33
  }
28
- b.value = _.icon;
34
+ j.value = l.set(e, c(x.icon)).get(e);
29
35
  return;
30
36
  }
31
- y.value || v.throw("Icons have not been loaded");
32
- let e = _.icon.includes(":") ? _.icon : `local:${_.icon}`, t = y.value[e];
33
- t || v.throw(`Icon "${e}" does not exist.`), b.value = await t();
37
+ w.value || C.throw("Icons have not been loaded");
38
+ let n = w.value[e];
39
+ n || C.throw(`Icon "${e}" does not exist.`);
40
+ let r = await n();
41
+ j.value = l.set(e, c(r)).get(e);
34
42
  };
35
- f(async () => {
36
- C(_.icon) || S(), await D();
37
- }), d(async () => {
38
- !y.value && !C(_.icon) && S(), b.value || await D();
39
- }), h(() => _.icon, D);
40
- let O = o(() => {
43
+ g(async () => {
44
+ E(x.icon) || T(), await M();
45
+ }), h(async () => {
46
+ !w.value && !E(x.icon) && T(), j.value || await M();
47
+ }), y(() => x.icon, M);
48
+ let N = u(() => {
41
49
  try {
42
- return r(_.size, a.iconDefaultSizes);
50
+ return i(x.size, S.iconDefaultSizes);
43
51
  } catch {
44
- return v.warn(`Invalid size: "${_.size}" in BbIcon. Falling back to "md".`), `${a.iconDefaultSizes.md}px`;
45
- }
46
- }), k = o(() => {
47
- let e = { "bb-icon": !0 }, t = { "--w": O.value }, n = {};
48
- if (b.value) {
49
- let e = b.value.match(/<svg((?:[^>"']|"[^"]*"|'[^']*')*)>/i);
50
- if (e) {
51
- let t = /([\w-]+)="([^"]*)"/g, r;
52
- for (; (r = t.exec(e[1])) !== null;) n[r[1]] = r[2];
53
- }
52
+ return C.warn(`Invalid size: "${x.size}" in BbIcon. Falling back to "md".`), `${S.iconDefaultSizes.md}px`;
54
53
  }
55
- let r = {
54
+ }), P = u(() => {
55
+ let e = { "bb-icon": !0 }, t = { "--w": N.value }, n = {
56
56
  viewBox: "0 0 1 1",
57
- ...n,
57
+ ...j.value?.attributes ?? {},
58
58
  class: e,
59
59
  style: t
60
60
  };
61
- return _.label ? (r.role = "img", r["aria-label"] = _.label.trim()) : r["aria-hidden"] = "true", r.focusable = "false", r;
61
+ return x.label ? (n.role = "img", n["aria-label"] = x.label.trim()) : n["aria-hidden"] = "true", n.focusable = "false", n;
62
62
  });
63
- return (e, t) => (p(), s("svg", u(k.value, {
63
+ return (e, t) => (_(), d("svg", m(P.value, {
64
64
  "data-allow-mismatch": "",
65
- innerHTML: x.value
66
- }), null, 16, g));
65
+ innerHTML: j.value?.content
66
+ }), null, 16, b));
67
67
  }
68
68
  });
69
69
  //#endregion
70
- export { _ as default };
70
+ export { x as default };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Module-wide store of icons this page has already resolved.
3
+ *
4
+ * MUST live in its own module: a `const` at the top of a `<script setup>` block
5
+ * compiles into `setup()` and is therefore per-instance state, not module
6
+ * state — the same trap that once gave every `BbDropdown` pipeline resolver the
7
+ * same uid.
8
+ *
9
+ * What it saves, per mounted icon:
10
+ *
11
+ * 1. **A render pass.** `icons[key]` is an `import()`; even for a module the
12
+ * bundler already holds, the promise settles a microtask later, so an icon
13
+ * rendered an empty `<svg>` first and patched its content in on a second
14
+ * pass. Two icons in a table row is two wasted passes per row, on every
15
+ * window move of a virtualized body.
16
+ * 2. **Four regex passes over a full SVG string** — three to strip the wrapper
17
+ * tag, one to read the wrapper's attributes back off. Both results are pure
18
+ * functions of the source markup, and the source for a given key never
19
+ * changes within a page, so they are derived exactly once.
20
+ */
21
+ export type ParsedIcon = {
22
+ /** Inner markup for `v-html`, or `null` to render nothing at all. */
23
+ content: string | null;
24
+ /** Attributes copied from the source's root `<svg>` element. */
25
+ attributes: Record<string, string>;
26
+ };
27
+ /** Keyed by registry key (`lucide:x`, `local:y`) or, for inline SVG, its markup. */
28
+ export declare const parsedIcons: Map<string, ParsedIcon>;
29
+ /** The "no icon at all" outcome: a rejected payload, or a value we never got. */
30
+ export declare const EMPTY_ICON: ParsedIcon;
31
+ export declare const parseIcon: (source: string) => ParsedIcon;
32
+ /** Registry key for a name, or the markup itself for an inline payload. */
33
+ export declare const cacheKeyFor: (value: string, isInlineSvg: boolean) => string;
@@ -0,0 +1,17 @@
1
+ //#region src/components/BbIcon/iconCache.ts
2
+ var e = /* @__PURE__ */ new Map(), t = {
3
+ content: null,
4
+ attributes: {}
5
+ }, n = (e) => {
6
+ let t = e.replace(/<\?xml[^?]*\?>/gi, "").replace(/<!DOCTYPE[^>]*>/gi, "").replace(/<\/?svg(?:[^>"']|"[^"]*"|'[^']*')*>/gi, ""), n = {}, r = e.match(/<svg((?:[^>"']|"[^"]*"|'[^']*')*)>/i);
7
+ if (r) {
8
+ let e = /([\w-]+)="([^"]*)"/g, t;
9
+ for (; (t = e.exec(r[1])) !== null;) n[t[1]] = t[2];
10
+ }
11
+ return {
12
+ content: t,
13
+ attributes: n
14
+ };
15
+ }, r = (e, t) => t || e.includes(":") ? e : `local:${e}`;
16
+ //#endregion
17
+ export { t as EMPTY_ICON, r as cacheKeyFor, n as parseIcon, e as parsedIcons };
@@ -1,6 +1,6 @@
1
1
  import { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots } from './types';
2
- export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
3
2
  type __VLS_Slots = BbNumberInputSlots;
3
+ export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
4
4
  declare const __VLS_base: import('vue').DefineComponent<BbNumberInputProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
5
5
  input: (event: Event) => any;
6
6
  click: (event: MouseEvent) => any;
@@ -1,7 +1,7 @@
1
- import { isNotNil as e } from "../../utilities/functions/isNotNil.js";
2
- import t from "../BbBaseInputContainer/BbBaseInputContainer.vue.js";
3
- import n from "../BbBaseNumberInput/BbBaseNumberInput.vue.js";
4
- import { config as r } from "virtual:bitboss-ui/config";
1
+ import { useConfig as e } from "../../composables/useConfig.js";
2
+ import { isNotNil as t } from "../../utilities/functions/isNotNil.js";
3
+ import n from "../BbBaseInputContainer/BbBaseInputContainer.vue.js";
4
+ import r from "../BbBaseNumberInput/BbBaseNumberInput.vue.js";
5
5
  import { computed as i, createBlock as a, createSlots as o, createVNode as s, defineComponent as c, guardReactiveProps as l, mergeProps as u, normalizeProps as d, openBlock as f, ref as p, renderSlot as m, withCtx as h } from "vue";
6
6
  //#region src/components/BbNumberInput/BbNumberInput.vue?vue&type=script&setup=true&lang.ts
7
7
  var g = /*@__PURE__*/ c({
@@ -57,9 +57,9 @@ var g = /*@__PURE__*/ c({
57
57
  "update:modelValue"
58
58
  ],
59
59
  setup(c, { emit: g }) {
60
- let _ = c, v = g, y = p(!1), b = i(() => _.persistentHint || y.value), x = i(() => e(_.modelValue)), S = i(() => !!_.clearable && x.value), C = i(() => _.labelMode ?? r.defaultInputLabelMode), w = {
60
+ let _ = c, v = g, y = e(), b = p(!1), x = i(() => _.persistentHint || b.value), S = i(() => t(_.modelValue)), C = i(() => !!_.clearable && S.value), w = i(() => _.labelMode ?? y.defaultInputLabelMode), T = {
61
61
  onBlur: (e) => {
62
- y.value = !1, v("blur", e);
62
+ b.value = !1, v("blur", e);
63
63
  },
64
64
  onChange: (e) => v("change", e),
65
65
  onClick: (e) => v("click", e),
@@ -67,7 +67,7 @@ var g = /*@__PURE__*/ c({
67
67
  onCompositionstart: (e) => v("compositionstart", e),
68
68
  onDecrease: (e) => v("decrease", e),
69
69
  onFocus: (e) => {
70
- y.value = !0, v("focus", e);
70
+ b.value = !0, v("focus", e);
71
71
  },
72
72
  onIncrease: (e) => v("increase", e),
73
73
  onInput: (e) => v("input", e),
@@ -78,33 +78,33 @@ var g = /*@__PURE__*/ c({
78
78
  onPaste: (e) => v("paste", e),
79
79
  "onUpdate:modelValue": (e) => v("update:modelValue", e)
80
80
  };
81
- return (e, r) => (f(), a(t, {
81
+ return (e, t) => (f(), a(n, {
82
82
  id: e.id,
83
83
  class: "bb-number-input",
84
- clearable: S.value,
84
+ clearable: C.value,
85
85
  compact: e.compact,
86
86
  description: e.description,
87
87
  direction: e.direction,
88
88
  disabled: e.disabled,
89
89
  errors: e.errors,
90
90
  "has-errors": e.hasErrors,
91
- "has-value": x.value,
91
+ "has-value": S.value,
92
92
  "has-warning": e.hasWarning,
93
93
  "hide-label": e.hideLabel,
94
94
  hint: e.hint,
95
95
  label: e.label,
96
- "label-mode": C.value,
96
+ "label-mode": w.value,
97
97
  "label-position": e.labelPosition,
98
98
  loading: e.loading,
99
99
  "model-value": e.modelValue,
100
100
  name: e.name,
101
101
  readonly: e.readonly,
102
102
  reverse: e.reverse,
103
- "show-hint": b.value,
103
+ "show-hint": x.value,
104
104
  warnings: e.warnings
105
105
  }, {
106
106
  label: h((t) => [m(e.$slots, "label", d(l(t)))]),
107
- input: h(({ id: t, hasErrors: r, hasWarning: i, ariaDescribedby: a }) => [s(n, u({
107
+ input: h(({ id: t, hasErrors: n, hasWarning: i, ariaDescribedby: a }) => [s(r, u({
108
108
  id: t,
109
109
  "append:icon": _["append:icon"],
110
110
  "aria-describedby": a,
@@ -113,7 +113,7 @@ var g = /*@__PURE__*/ c({
113
113
  clearable: e.clearable,
114
114
  compact: e.compact,
115
115
  disabled: e.disabled,
116
- "has-errors": r,
116
+ "has-errors": n,
117
117
  "has-warning": i,
118
118
  loading: e.loading,
119
119
  max: e.max,
@@ -126,7 +126,7 @@ var g = /*@__PURE__*/ c({
126
126
  readonly: e.readonly,
127
127
  required: e.required,
128
128
  step: e.step
129
- }, w), o({
129
+ }, T), o({
130
130
  "append-outer": h((t) => [m(e.$slots, "append-outer", d(l(t)))]),
131
131
  append: h((t) => [m(e.$slots, "append", d(l(t)))]),
132
132
  prepend: h((t) => [m(e.$slots, "prepend", d(l(t)))]),
@@ -1,7 +1,7 @@
1
1
  import { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes } from './types';
2
- export type { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes };
3
2
  type __VLS_Props = BbOffCanvasProps;
4
3
  type __VLS_Slots = BbOffCanvasSlots;
4
+ export type { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes };
5
5
  type __VLS_ModelProps = {
6
6
  /**
7
7
  * Used by v-model to open / close the panel. A panel with no `v-model`