bitboss-ui 2.1.116 → 2.1.118

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 (292) hide show
  1. package/dist/ai/BaseRating.md +2 -2
  2. package/dist/ai/BaseTag.md +0 -1
  3. package/dist/ai/BbAccordion.md +1 -2
  4. package/dist/ai/BbAlert.md +1 -2
  5. package/dist/ai/BbAvatar.md +0 -1
  6. package/dist/ai/BbBadge.md +107 -49
  7. package/dist/ai/BbBreadcrumbs.md +0 -1
  8. package/dist/ai/BbButton.md +0 -1
  9. package/dist/ai/BbCheckbox.md +0 -1
  10. package/dist/ai/BbCheckboxGroup.md +0 -5
  11. package/dist/ai/BbChip.md +0 -1
  12. package/dist/ai/BbCollapsible.md +0 -1
  13. package/dist/ai/BbColorInput.md +0 -1
  14. package/dist/ai/BbColorPalette.md +0 -1
  15. package/dist/ai/BbDatePickerInput.md +0 -6
  16. package/dist/ai/BbDialog.md +0 -6
  17. package/dist/ai/BbDropdown.md +0 -7
  18. package/dist/ai/BbDropdownButton.md +0 -1
  19. package/dist/ai/BbDropzone.md +0 -6
  20. package/dist/ai/BbIcon.md +0 -1
  21. package/dist/ai/BbIntersection.md +0 -1
  22. package/dist/ai/BbNumberInput.md +0 -1
  23. package/dist/ai/BbOffCanvas.md +0 -1
  24. package/dist/ai/BbPagination.md +0 -1
  25. package/dist/ai/BbPopover.md +0 -1
  26. package/dist/ai/BbProgress.md +0 -1
  27. package/dist/ai/BbRadio.md +0 -1
  28. package/dist/ai/BbRadioGroup.md +0 -1
  29. package/dist/ai/BbRating.md +0 -1
  30. package/dist/ai/BbRatio.md +0 -1
  31. package/dist/ai/BbSelect.md +1 -2
  32. package/dist/ai/BbSelectPopover.md +5 -348
  33. package/dist/ai/BbSlider.md +0 -1
  34. package/dist/ai/BbSmoothHeight.md +0 -1
  35. package/dist/ai/BbSpinner.md +0 -1
  36. package/dist/ai/BbSwitch.md +0 -1
  37. package/dist/ai/BbSwitchGroup.md +0 -1
  38. package/dist/ai/BbTab.md +0 -7
  39. package/dist/ai/BbTag.md +0 -1
  40. package/dist/ai/BbTextInput.md +0 -1
  41. package/dist/ai/BbTextarea.md +0 -1
  42. package/dist/ai/BbToast.md +0 -1
  43. package/dist/ai/BbTooltip.md +0 -1
  44. package/dist/ai/BbTree.md +0 -1
  45. package/dist/ai/ChipsBox.md +0 -1
  46. package/dist/ai/ClearableButton.md +0 -10
  47. package/dist/ai/CommaBox.md +0 -1
  48. package/dist/ai/CommonInputInnerContainer.md +0 -5
  49. package/dist/ai/CommonInputOuterContainer.md +0 -1
  50. package/dist/ai/CommonPopover.md +0 -2
  51. package/dist/ai/ErrorIcon.md +1 -4
  52. package/dist/ai/FlatListBox.md +0 -1
  53. package/dist/ai/GroupedListBox.md +0 -1
  54. package/dist/ai/ListBox.md +0 -1
  55. package/dist/ai/OptionsContainer.md +0 -2
  56. package/dist/components/BaseRating/types.d.ts +1 -1
  57. package/dist/components/BaseTag/BaseTag.vue.d.ts +1 -2
  58. package/dist/components/BbAccordion/BbAccordion.vue.d.ts +1 -2
  59. package/dist/components/BbAccordion/types.d.ts +1 -1
  60. package/dist/components/BbAlert/BbAlert.vue.d.ts +1 -2
  61. package/dist/components/BbAlert/types.d.ts +1 -1
  62. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +0 -1
  63. package/dist/components/BbBadge/BbBadge.vue.d.ts +0 -1
  64. package/dist/components/BbBadge/types.d.ts +4 -0
  65. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +1 -2
  66. package/dist/components/BbButton/BbButton.vue.d.ts +0 -1
  67. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +1 -2
  68. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +15 -7
  69. package/dist/components/BbChip/BbChip.vue.d.ts +1 -2
  70. package/dist/components/BbCollapsible/BbCollapsible.vue.d.ts +0 -1
  71. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +1 -2
  72. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +1 -2
  73. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +1 -3
  74. package/dist/components/BbDialog/BbDialog.vue.d.ts +0 -1
  75. package/dist/components/BbDropdown/BbDropdown.vue.d.ts +1 -2
  76. package/dist/components/BbDropdownButton/BbDropdownButton.vue.d.ts +1 -2
  77. package/dist/components/BbDropzone/BbDropzone.vue.d.ts +1 -2
  78. package/dist/components/BbIcon/BbIcon.vue.d.ts +0 -1
  79. package/dist/components/BbIntersection/BbIntersection.vue.d.ts +1 -2
  80. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +1 -2
  81. package/dist/components/BbOffCanvas/BbOffCanvas.vue.d.ts +1 -2
  82. package/dist/components/BbPagination/BbPagination.vue.d.ts +2 -3
  83. package/dist/components/BbPopover/BbPopover.vue.d.ts +1 -2
  84. package/dist/components/BbProgress/BbProgress.vue.d.ts +0 -1
  85. package/dist/components/BbRadio/BbRadio.vue.d.ts +1 -2
  86. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +15 -7
  87. package/dist/components/BbRating/BbRating.vue.d.ts +1 -2
  88. package/dist/components/BbRatio/BbRatio.vue.d.ts +0 -1
  89. package/dist/components/BbSelect/BbSelect.vue.d.ts +13 -7
  90. package/dist/components/BbSelect/types.d.ts +1 -1
  91. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +1 -312
  92. package/dist/components/BbSlider/BbSlider.vue.d.ts +1 -2
  93. package/dist/components/BbSmoothHeight/BbSmoothHeight.vue.d.ts +0 -1
  94. package/dist/components/BbSpinner/BbSpinner.vue.d.ts +0 -1
  95. package/dist/components/BbSwitch/BbSwitch.vue.d.ts +1 -2
  96. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +15 -7
  97. package/dist/components/BbTag/BbTag.vue.d.ts +1 -2
  98. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +1 -2
  99. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +1 -2
  100. package/dist/components/BbToast/BbToast.vue.d.ts +0 -1
  101. package/dist/components/BbTooltip/BbTooltip.vue.d.ts +0 -1
  102. package/dist/components/BbTree/BbTree.vue.d.ts +0 -1
  103. package/dist/components/ChipsBox/ChipsBox.vue.d.ts +1 -2
  104. package/dist/components/ClearableButton/ClearableButton.vue.d.ts +0 -2
  105. package/dist/components/CommaBox/CommaBox.vue.d.ts +1 -2
  106. package/dist/components/CommonInputInnerContainer/CommonInputInnerContainer.vue.d.ts +1 -2
  107. package/dist/components/CommonInputOuterContainer/CommonInputOuterContainer.vue.d.ts +0 -1
  108. package/dist/components/CommonPopover/CommonPopover.vue.d.ts +0 -2
  109. package/dist/components/ErrorIcon/ErrorIcon.vue.d.ts +0 -2
  110. package/dist/components/FlatListBox/FlatListBox.vue.d.ts +31 -0
  111. package/dist/components/GroupedListBox/GroupedListBox.vue.d.ts +31 -0
  112. package/dist/components/ListBox/ListBox.vue.d.ts +19 -18
  113. package/dist/components/OptionsContainer/OptionsContainer.vue.d.ts +2 -1
  114. package/dist/index.css +1 -1
  115. package/dist/index.d.ts +44 -44
  116. package/dist/index109.js +9 -9
  117. package/dist/index110.js +49 -50
  118. package/dist/index118.js +1 -1
  119. package/dist/index124.js +2 -2
  120. package/dist/index126.js +12 -12
  121. package/dist/index134.js +1 -1
  122. package/dist/index136.js +5 -5
  123. package/dist/index138.js +1 -1
  124. package/dist/index14.js +1 -1
  125. package/dist/index140.js +17 -18
  126. package/dist/index144.js +1 -1
  127. package/dist/index146.js +2 -2
  128. package/dist/index148.js +1 -1
  129. package/dist/index16.js +3 -3
  130. package/dist/index18.js +3 -3
  131. package/dist/index20.js +8 -8
  132. package/dist/index22.js +5 -5
  133. package/dist/index221.js +2 -2
  134. package/dist/index222.js +2 -138
  135. package/dist/index223.js +138 -2
  136. package/dist/index224.js +1 -1
  137. package/dist/index225.js +1 -1
  138. package/dist/index226.js +2 -4
  139. package/dist/index227.js +2 -13
  140. package/dist/index228.js +3 -20
  141. package/dist/index229.js +7 -2
  142. package/dist/index230.js +2 -2
  143. package/dist/index231.js +86 -3
  144. package/dist/index233.js +32 -0
  145. package/dist/index234.js +15 -28
  146. package/dist/index235.js +49 -15
  147. package/dist/index236.js +15 -48
  148. package/dist/index237.js +3 -18
  149. package/dist/index238.js +12 -3
  150. package/dist/index239.js +17 -11
  151. package/dist/index24.js +9 -9
  152. package/dist/index240.js +4 -18
  153. package/dist/index242.js +12 -33
  154. package/dist/index243.js +11 -8
  155. package/dist/index244.js +135 -3
  156. package/dist/index246.js +4 -13
  157. package/dist/index247.js +19 -131
  158. package/dist/index248.js +6 -0
  159. package/dist/index249.js +18 -21
  160. package/dist/index250.js +34 -5
  161. package/dist/index251.js +13 -5
  162. package/dist/index252.js +9 -5
  163. package/dist/index253.js +21 -5
  164. package/dist/index254.js +188 -5
  165. package/dist/index255.js +3 -5
  166. package/dist/index256.js +5 -3
  167. package/dist/index257.js +5 -25
  168. package/dist/index258.js +5 -3
  169. package/dist/index259.js +5 -13
  170. package/dist/index26.js +3 -3
  171. package/dist/index260.js +1 -1
  172. package/dist/index263.js +7 -7
  173. package/dist/index264.js +1 -1
  174. package/dist/index267.js +1 -1
  175. package/dist/index268.js +53 -9
  176. package/dist/index269.js +5 -2
  177. package/dist/index270.js +5 -2
  178. package/dist/index271.js +5 -4
  179. package/dist/index272.js +3 -9
  180. package/dist/index273.js +9 -53
  181. package/dist/index274.js +32 -10
  182. package/dist/index275.js +27 -17
  183. package/dist/index277.js +11 -32
  184. package/dist/index278.js +20 -0
  185. package/dist/index279.js +12 -107
  186. package/dist/index28.js +1 -1
  187. package/dist/index280.js +105 -5
  188. package/dist/index282.js +100 -7
  189. package/dist/index284.js +107 -23
  190. package/dist/index285.js +2 -106
  191. package/dist/index286.js +9 -0
  192. package/dist/index287.js +7 -100
  193. package/dist/index288.js +27 -0
  194. package/dist/index289.js +6 -2
  195. package/dist/index290.js +3 -7
  196. package/dist/index291.js +6 -7
  197. package/dist/index292.js +16 -5
  198. package/dist/index293.js +2 -3
  199. package/dist/index294.js +8 -27
  200. package/dist/index295.js +25 -0
  201. package/dist/index296.js +3 -67
  202. package/dist/index297.js +10 -373
  203. package/dist/index298.js +5 -0
  204. package/dist/index299.js +67 -6
  205. package/dist/index30.js +3 -3
  206. package/dist/index300.js +371 -14
  207. package/dist/index302.js +3 -3
  208. package/dist/index303.js +17 -2
  209. package/dist/index304.js +28 -3
  210. package/dist/index305.js +3 -6
  211. package/dist/index306.js +7 -3
  212. package/dist/index307.js +2 -17
  213. package/dist/index308.js +3 -27
  214. package/dist/index309.js +3 -5
  215. package/dist/index32.js +2 -2
  216. package/dist/index324.js +7 -2
  217. package/dist/index325.js +3 -15
  218. package/dist/index326.js +125 -2
  219. package/dist/index327.js +2 -19
  220. package/dist/index328.js +15 -2
  221. package/dist/index329.js +2 -3
  222. package/dist/index330.js +19 -2
  223. package/dist/index331.js +2 -4
  224. package/dist/index332.js +3 -4
  225. package/dist/index333.js +1 -1
  226. package/dist/index334.js +2 -3
  227. package/dist/index335.js +2 -2
  228. package/dist/index336.js +719 -6
  229. package/dist/index337.js +366 -3
  230. package/dist/index338.js +57 -2
  231. package/dist/index339.js +5 -3
  232. package/dist/index34.js +8 -8
  233. package/dist/index340.js +5 -6
  234. package/dist/index341.js +2 -19
  235. package/dist/index342.js +67 -9
  236. package/dist/index343.js +66 -14
  237. package/dist/index344.js +7 -5
  238. package/dist/index345.js +5 -7
  239. package/dist/index346.js +3 -67
  240. package/dist/index347.js +7 -67
  241. package/dist/index348.js +17 -226
  242. package/dist/index349.js +8 -34
  243. package/dist/index350.js +12 -126
  244. package/dist/index351.js +30 -393
  245. package/dist/index352.js +129 -719
  246. package/dist/index353.js +397 -365
  247. package/dist/index354.js +21 -56
  248. package/dist/index356.js +91 -257
  249. package/dist/index357.js +133 -21
  250. package/dist/{index355.js → index358.js} +6 -6
  251. package/dist/index359.js +259 -7
  252. package/dist/index36.js +4 -4
  253. package/dist/index360.js +225 -131
  254. package/dist/index361.js +2 -93
  255. package/dist/index362.js +1 -1
  256. package/dist/index363.js +441 -2
  257. package/dist/index364.js +114 -427
  258. package/dist/index365.js +46 -127
  259. package/dist/index366.js +67 -44
  260. package/dist/index367.js +516 -66
  261. package/dist/index368.js +45 -515
  262. package/dist/index38.js +19 -19
  263. package/dist/index40.js +6 -6
  264. package/dist/index42.js +2 -2
  265. package/dist/index44.js +8 -8
  266. package/dist/index46.js +5 -5
  267. package/dist/index50.js +2 -2
  268. package/dist/index54.js +1 -1
  269. package/dist/index56.js +1 -1
  270. package/dist/index58.js +25 -20
  271. package/dist/index60.js +2 -2
  272. package/dist/index62.js +5 -5
  273. package/dist/index68.js +1 -1
  274. package/dist/index74.js +4 -4
  275. package/dist/index82.js +6 -6
  276. package/dist/index84.js +1 -1
  277. package/dist/index86.js +2 -2
  278. package/dist/index88.js +2 -2
  279. package/dist/index90.js +1 -1
  280. package/dist/index93.js +3 -3
  281. package/dist/index95.js +2 -2
  282. package/dist/index97.js +5 -5
  283. package/dist/index99.js +1 -1
  284. package/package.json +2 -2
  285. package/dist/index232.js +0 -88
  286. package/dist/index245.js +0 -6
  287. package/dist/index276.js +0 -14
  288. package/dist/index281.js +0 -23
  289. package/dist/index283.js +0 -11
  290. package/dist/index301.js +0 -190
  291. package/dist/index323.js +0 -127
  292. package/dist/index369.js +0 -52
@@ -69,7 +69,7 @@ import type {
69
69
  BaseRatingEvents,
70
70
  BaseRatingSlots,
71
71
  } from './types';
72
- import type { Size } from '../BbIcon/BbIcon.vue';
72
+ import type { Size } from '../BbIcon/types';
73
73
  import { useLocale } from '@/composables/useLocale';
74
74
 
75
75
  type Option = {
@@ -236,7 +236,7 @@ const outerContainerAttributes = computed(() => {
236
236
 
237
237
  ```ts
238
238
  import type { InputHTMLAttributes, HTMLAttributes } from 'vue';
239
- import type { BbIconProps, Size } from '../BbIcon/BbIcon.vue';
239
+ import type { BbIconProps } from '../BbIcon/types';
240
240
 
241
241
  /**
242
242
  * Props for the star rating input component with customizable star count and visual feedback.
@@ -92,7 +92,6 @@ import CommonInputOuterContainer from '../CommonInputOuterContainer/CommonInputO
92
92
  import type { Option as BaseOption } from '@/types/Option';
93
93
  import { isEmpty } from '@/utilities/functions/empty';
94
94
  import type { BaseTagProps, BaseTagEvents, BaseTagSlots } from './types';
95
- export type { BaseTagProps, BaseTagEvents, BaseTagSlots };
96
95
 
97
96
  const props = withDefaults(defineProps<BaseTagProps>(), {
98
97
  autocomplete: 'off',
@@ -36,7 +36,6 @@ import type {
36
36
  BbAccordionEvents,
37
37
  BbAccordionSlots,
38
38
  } from './types';
39
- export type { BbAccordionProps, BbAccordionEvents, BbAccordionSlots };
40
39
 
41
40
  const emit = defineEmits<BbAccordionEvents>();
42
41
 
@@ -75,7 +74,7 @@ defineSlots<BbAccordionSlots>();
75
74
  ## Types
76
75
 
77
76
  ```ts
78
- import type { BbCollapsibleProps } from '../BbCollapsible/BbCollapsible.vue';
77
+ import type { BbCollapsibleProps } from '../BbCollapsible/types';
79
78
  import type { CommonProps } from '@/types/CommonProps';
80
79
 
81
80
  export type BbAccordionProps = Pick<
@@ -57,7 +57,6 @@ import BbCollapsible from '../BbCollapsible/BbCollapsible.vue';
57
57
  import BbIcon from '../BbIcon/BbIcon.vue';
58
58
  import { useLocale } from '@/composables/useLocale';
59
59
  import type { BbAlertProps, BbAlertEvents, BbAlertSlots } from './types';
60
- export type { BbAlertProps, BbAlertEvents, BbAlertSlots };
61
60
 
62
61
  const props = withDefaults(defineProps<BbAlertProps>(), {
63
62
  theme: 'default',
@@ -97,7 +96,7 @@ const onClickClose = () => {
97
96
 
98
97
  ```ts
99
98
  import type { CommonProps } from '@/types/CommonProps';
100
- import type { BbIconProps } from '../BbIcon/BbIcon.vue';
99
+ import type { BbIconProps } from '../BbIcon/types';
101
100
 
102
101
  export type BbAlertProps = Pick<
103
102
  CommonProps,
@@ -28,7 +28,6 @@ import { isCssColor } from '@/utilities/functions/isCssColor';
28
28
  import type { Classes } from '@/types/Classes';
29
29
  import { wait } from '@/utilities/functions/wait';
30
30
  import type { BbAvatarProps, BbAvatarSlots, Size } from './types';
31
- export type { BbAvatarProps, BbAvatarSlots };
32
31
 
33
32
  const props = withDefaults(defineProps<BbAvatarProps>(), {
34
33
  timeout: 400,
@@ -8,7 +8,7 @@
8
8
  <span class="bb-badge__wrapper">
9
9
  <slot></slot>
10
10
  <span class="bb-badge__content-container" v-bind="contentAttributes">
11
- <span class="bb-badge__content-inner"
11
+ <span v-if="!props.dot" class="bb-badge__content-inner"
12
12
  ><slot name="content">{{ content }}</slot></span
13
13
  >
14
14
  </span>
@@ -21,7 +21,6 @@ import { computed, useSlots } from 'vue';
21
21
  import { isCssColor } from '@/utilities/functions/isCssColor';
22
22
  import { isNil } from '@/utilities/functions/isNil';
23
23
  import type { BbBadgeProps, BbBadgeSlots } from './types';
24
- export type { BbBadgeProps, BbBadgeSlots };
25
24
 
26
25
  const slots = useSlots();
27
26
 
@@ -36,7 +35,8 @@ const classes = computed(() => {
36
35
  'bb-badge--left': props.left,
37
36
  'bb-badge--positioned': slots.default,
38
37
  'bb-badge--floating': props.floating,
39
- 'bb-badge--empty': isNil(props.content),
38
+ 'bb-badge--dot': props.dot,
39
+ 'bb-badge--empty': !props.dot && isNil(props.content),
40
40
  [`bb-badge--${props.color}`]: props.color && !isCssColor(props.color),
41
41
  };
42
42
  });
@@ -78,6 +78,10 @@ export type BbBadgeProps = Pick<CommonProps, 'color'> & {
78
78
  * Text content of the badge.
79
79
  */
80
80
  content?: string | number | null;
81
+ /**
82
+ * Renders a small dot with no content instead of the full badge.
83
+ */
84
+ dot?: boolean;
81
85
  /**
82
86
  * Renders the badge a little further from the wrapped component,
83
87
  * making it look like it's floating and not stacked.
@@ -105,77 +109,131 @@ export type BbBadgeSlots = {
105
109
 
106
110
  ```css
107
111
  .bb-badge {
108
- --color: var(--bb-primary);
109
- --radius: 999px;
112
+ /* ── Configurable tokens ─────────────────────────────────── */
113
+ --bb-badge-bg: var(--bb-primary);
114
+ --bb-badge-color: var(--bb-contrasting);
115
+ --bb-badge-radius: 999px;
116
+ --bb-badge-font-size: 0.75rem;
117
+ --bb-badge-min-size: 1.375rem;
118
+ --bb-badge-dot-size: 0.625rem;
119
+ --bb-badge-border-width: 0px;
120
+ --bb-badge-border-color: transparent;
121
+ --bb-badge-offset: 0.625rem;
122
+ --bb-badge-float-offset: 1.25rem;
123
+ --bb-badge-dot-offset: 0.125rem;
124
+ --bb-badge-dot-float-offset: 0.5rem;
125
+
110
126
  display: inline-flex;
111
127
 
128
+ /* ── Positioned mode ─────────────────────────────────────── */
112
129
  &--positioned {
113
130
  position: relative;
114
131
 
115
- &.bb-badge--left {
116
- .bb-badge__content-container {
117
- left: calc(0% - 10px);
118
- }
132
+ .bb-badge__content-container {
133
+ position: absolute;
134
+ top: calc(0% - var(--bb-badge-offset));
135
+ right: calc(0% - var(--bb-badge-offset));
136
+ bottom: auto;
137
+ left: auto;
119
138
  }
120
139
 
121
- &.bb-badge--bottom {
122
- .bb-badge__content-container {
123
- bottom: calc(0% - 10px);
124
- }
140
+ &.bb-badge--left .bb-badge__content-container {
141
+ right: auto;
142
+ left: calc(0% - var(--bb-badge-offset));
125
143
  }
126
144
 
127
- &.bb-badge--empty {
128
- .bb-badge__content-container {
129
- transform: scale(0);
130
- }
145
+ &.bb-badge--bottom .bb-badge__content-container {
146
+ top: auto;
147
+ bottom: calc(0% - var(--bb-badge-offset));
148
+ }
149
+
150
+ &.bb-badge--empty .bb-badge__content-container {
151
+ transform: scale(0);
152
+ }
153
+
154
+ /* Dot: smaller so it needs a tighter offset */
155
+ &.bb-badge--dot .bb-badge__content-container {
156
+ top: calc(0% - var(--bb-badge-dot-offset));
157
+ right: calc(0% - var(--bb-badge-dot-offset));
158
+ }
159
+
160
+ &.bb-badge--dot.bb-badge--left .bb-badge__content-container {
161
+ right: auto;
162
+ left: calc(0% - var(--bb-badge-dot-offset));
131
163
  }
132
164
 
133
- &.bb-badge--floating {
165
+ &.bb-badge--dot.bb-badge--bottom .bb-badge__content-container {
166
+ top: auto;
167
+ bottom: calc(0% - var(--bb-badge-dot-offset));
168
+ }
169
+
170
+ /* Floating */
171
+ &.bb-badge--floating .bb-badge__content-container {
172
+ top: calc(0% - var(--bb-badge-float-offset));
173
+ right: calc(0% - var(--bb-badge-float-offset));
174
+ bottom: auto;
175
+ left: auto;
176
+ }
177
+
178
+ &.bb-badge--floating.bb-badge--left .bb-badge__content-container {
179
+ right: auto;
180
+ left: calc(0% - var(--bb-badge-float-offset));
181
+ }
182
+
183
+ &.bb-badge--floating.bb-badge--bottom .bb-badge__content-container {
184
+ top: auto;
185
+ bottom: calc(0% - var(--bb-badge-float-offset));
186
+ }
187
+
188
+ /* Floating dot */
189
+ &.bb-badge--floating.bb-badge--dot .bb-badge__content-container {
190
+ top: calc(0% - var(--bb-badge-dot-float-offset));
191
+ right: calc(0% - var(--bb-badge-dot-float-offset));
192
+ bottom: auto;
193
+ left: auto;
194
+ }
195
+
196
+ &.bb-badge--floating.bb-badge--dot.bb-badge--left
134
197
  .bb-badge__content-container {
135
- bottom: calc(100% - 4px);
136
- left: calc(100% - 4px);
137
-
138
- &.bb-badge--left {
139
- left: calc(0% + 4px);
140
- transform: translateX(-100%);
141
- }
142
-
143
- &.bb-badge--bottom {
144
- bottom: calc(0% + 4px);
145
- transform: translateY(100%);
146
- }
147
- }
198
+ right: auto;
199
+ left: calc(0% - var(--bb-badge-dot-float-offset));
148
200
  }
149
201
 
150
- .bb-badge__content-container {
151
- bottom: calc(100% - 10px);
152
- left: calc(100% - 10px);
153
- min-height: 18px;
154
- min-width: 18px;
155
- position: absolute;
202
+ &.bb-badge--floating.bb-badge--dot.bb-badge--bottom
203
+ .bb-badge__content-container {
204
+ top: auto;
205
+ bottom: calc(0% - var(--bb-badge-dot-float-offset));
156
206
  }
157
207
  }
158
208
 
209
+ /* ── Badge bubble ────────────────────────────────────────── */
159
210
  &__content-container {
160
211
  align-items: center;
161
- background-color: var(--color);
162
- border-radius: var(--radius);
163
- color: var(--bb-contrasting);
212
+ background-color: var(--bb-badge-bg);
213
+ border: var(--bb-badge-border-width) solid var(--bb-badge-border-color);
214
+ border-radius: var(--bb-badge-radius);
215
+ color: var(--bb-badge-color);
164
216
  display: inline-flex;
165
- font-size: 12px;
217
+ font-size: var(--bb-badge-font-size);
218
+ font-weight: 600;
166
219
  justify-content: center;
167
- line-height: 0;
168
- min-height: 22px;
169
- padding-bottom: 3px;
170
- padding-left: 6px;
171
- padding-right: 6px;
172
- padding-top: 3px;
220
+ line-height: 1;
221
+ min-height: var(--bb-badge-min-size);
222
+ min-width: var(--bb-badge-min-size);
223
+ padding-block: 0.1875rem;
224
+ padding-inline: 0.375rem;
173
225
  transition:
174
226
  color 0.2s,
175
- background-color 0.2s;
227
+ background-color 0.2s,
228
+ transform 0.15s;
229
+ white-space: nowrap;
176
230
  }
177
231
 
178
- &__content-inner {
232
+ /* ── Dot mode ────────────────────────────────────────────── */
233
+ &--dot .bb-badge__content-container {
234
+ min-height: var(--bb-badge-dot-size);
235
+ min-width: var(--bb-badge-dot-size);
236
+ padding: 0;
179
237
  }
180
238
 
181
239
  &__wrapper {
@@ -129,7 +129,6 @@ import {
129
129
  estimateEllipsisWidth,
130
130
  } from './estimateBreadcrumbItemWidth';
131
131
  import type { BbBreadcrumbsProps, BbBreadcrumbsSlots, Item } from './types';
132
- export type { BbBreadcrumbsProps, BbBreadcrumbsSlots, Item };
133
132
 
134
133
  const props = withDefaults(defineProps<BbBreadcrumbsProps>(), {
135
134
  divider: '/',
@@ -66,7 +66,6 @@ import { useLocale } from '@/composables/useLocale';
66
66
  import { extractDomContainer } from '@/utilities/functions/extractDomContainer';
67
67
  import { isEqual } from '@/utilities/functions/isEqual';
68
68
  import type { BbButtonProps, BbButtonSlots } from './types';
69
- export type { BbButtonProps, BbButtonSlots };
70
69
 
71
70
  const BbTooltipAsync = defineAsyncComponent(
72
71
  () => import('../BbTooltip/BbTooltip.vue')
@@ -56,7 +56,6 @@ import type {
56
56
  BbCheckboxEvents,
57
57
  BbCheckboxSlots,
58
58
  } from './types';
59
- export type { BbCheckboxProps, BbCheckboxEvents, BbCheckboxSlots };
60
59
 
61
60
  const props = withDefaults(defineProps<BbCheckboxProps>(), {
62
61
  direction: 'auto',
@@ -80,11 +80,6 @@ import type {
80
80
  BbCheckboxGroupEvents,
81
81
  BbCheckboxGroupSlots,
82
82
  } from './types';
83
- export type {
84
- BbCheckboxGroupProps,
85
- BbCheckboxGroupEvents,
86
- BbCheckboxGroupSlots,
87
- };
88
83
 
89
84
  const props = withDefaults(defineProps<BbCheckboxGroupProps<T>>(), {
90
85
  inputPosition: 'left',
package/dist/ai/BbChip.md CHANGED
@@ -26,7 +26,6 @@
26
26
  <script setup lang="ts">
27
27
  import { useLocale } from '@/composables/useLocale';
28
28
  import type { BbChipProps, BbChipEvents, BbChipSlots } from './types';
29
- export type { BbChipProps, BbChipEvents, BbChipSlots };
30
29
 
31
30
  withDefaults(defineProps<BbChipProps>(), {
32
31
  clearable: true,
@@ -18,7 +18,6 @@
18
18
  <script setup lang="ts">
19
19
  import { computed, ref, watch } from 'vue';
20
20
  import type { BbCollapsibleProps, BbCollapsibleSlots } from './types';
21
- export type { BbCollapsibleProps, BbCollapsibleSlots };
22
21
 
23
22
  const props = withDefaults(defineProps<BbCollapsibleProps>(), {
24
23
  transitionDuration: 250,
@@ -65,7 +65,6 @@ import type {
65
65
  BbColorInputEvents,
66
66
  BbColorInputSlots,
67
67
  } from './types';
68
- export type { BbColorInputProps, BbColorInputEvents, BbColorInputSlots };
69
68
 
70
69
  const props = defineProps<BbColorInputProps>();
71
70
 
@@ -57,7 +57,6 @@ import type {
57
57
  BbColorPaletteEvents,
58
58
  BbColorPaletteSlots,
59
59
  } from './types';
60
- export type { BbColorPaletteProps, BbColorPaletteEvents, BbColorPaletteSlots };
61
60
 
62
61
  const props = withDefaults(defineProps<BbColorPaletteProps>(), {
63
62
  alpha: false,
@@ -72,12 +72,6 @@ import type {
72
72
  BbDatePickerInputSlots,
73
73
  DatePickerInputError,
74
74
  } from './types';
75
- export type {
76
- BbDatePickerInputProps,
77
- BbDatePickerInputEvents,
78
- BbDatePickerInputSlots,
79
- };
80
- export type { DatePickerInputError } from './types';
81
75
 
82
76
  const props = withDefaults(defineProps<BbDatePickerInputProps>(), {
83
77
  allowWriting: true,
@@ -33,12 +33,6 @@ import type {
33
33
  BaseDialogEvents,
34
34
  BaseDialogSlots,
35
35
  } from '../BaseDialog/types';
36
- export type {
37
- BbDialogProps,
38
- BbDialogEvents,
39
- BbDialogSlots,
40
- Sizes,
41
- } from './types';
42
36
 
43
37
  const props = withDefaults(defineProps<BaseDialogProps>(), {
44
38
  showClose: true,
@@ -129,13 +129,6 @@ import type {
129
129
  MappedItem,
130
130
  DropdownTrigger,
131
131
  } from './types';
132
- export type {
133
- BbDropdownProps,
134
- BbDropdownSlots,
135
- Item,
136
- MappedItem,
137
- DropdownTrigger,
138
- };
139
132
 
140
133
  type InferredBodySlots = ColumnName<BbDropdownProps['items'][number]['key']>;
141
134
  defineSlots<BbDropdownSlots>();
@@ -104,7 +104,6 @@ import { ref } from 'vue';
104
104
  import { BbIcon, BbSpinner } from '@/index';
105
105
  import { useLocale } from '@/composables/useLocale';
106
106
  import type { BbDropdownButtonProps, BbDropdownButtonSlots } from './types';
107
- export type { BbDropdownButtonProps, BbDropdownButtonSlots };
108
107
 
109
108
  type Sizes = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
110
109
 
@@ -61,12 +61,6 @@ import type {
61
61
  BbDropzoneSlots,
62
62
  DropZoneError,
63
63
  } from './types';
64
- export type {
65
- BbDropzoneProps,
66
- BbDropzoneEvents,
67
- BbDropzoneSlots,
68
- DropZoneError,
69
- };
70
64
 
71
65
  // This is the dynamic import for mime
72
66
  let mime: any;
package/dist/ai/BbIcon.md CHANGED
@@ -21,7 +21,6 @@ import { isCssColor } from '@/utilities/functions/isCssColor';
21
21
  import { get } from '@/utilities/functions/get';
22
22
  import { useLogger } from '@/composables/useLogger';
23
23
  import type { BbIconProps, Size } from './types';
24
- export type { BbIconProps, Size };
25
24
 
26
25
  const props = withDefaults(defineProps<BbIconProps>(), {
27
26
  size: 'md',
@@ -17,7 +17,6 @@ import type {
17
17
  BbIntersectionEvents,
18
18
  BbIntersectionSlots,
19
19
  } from './types';
20
- export type { BbIntersectionProps, BbIntersectionEvents, BbIntersectionSlots };
21
20
 
22
21
  const props = withDefaults(defineProps<BbIntersectionProps>(), {
23
22
  debounceTime: 0,
@@ -73,7 +73,6 @@ import type {
73
73
  BbNumberInputEvents,
74
74
  BbNumberInputSlots,
75
75
  } from './types';
76
- export type { BbNumberInputProps, BbNumberInputEvents, BbNumberInputSlots };
77
76
 
78
77
  const props = withDefaults(defineProps<BbNumberInputProps>(), {});
79
78
 
@@ -108,7 +108,6 @@ import type {
108
108
  BbOffCanvasSlots,
109
109
  Sizes,
110
110
  } from './types';
111
- export type { BbOffCanvasProps, BbOffCanvasEvents, BbOffCanvasSlots, Sizes };
112
111
 
113
112
  const props = withDefaults(defineProps<BbOffCanvasProps>(), {
114
113
  direction: 'left',
@@ -89,7 +89,6 @@ import type {
89
89
  BbPaginationEvents,
90
90
  BbPaginationSlots,
91
91
  } from './types';
92
- export type { BbPaginationProps, BbPaginationEvents, BbPaginationSlots };
93
92
 
94
93
  const props = withDefaults(defineProps<BbPaginationProps>(), {
95
94
  align: 'right',
@@ -82,7 +82,6 @@ import type {
82
82
  BbPopoverSlots,
83
83
  PopoverTrigger,
84
84
  } from './types';
85
- export type { BbPopoverProps, BbPopoverEvents, BbPopoverSlots, PopoverTrigger };
86
85
 
87
86
  const props = withDefaults(defineProps<BbPopoverProps>(), {
88
87
  arrowPadding: 10,
@@ -19,7 +19,6 @@ import { clamp } from '@/utilities/functions/clamp';
19
19
  import { getAsPercentageBetween } from '@/utilities/functions/percentage';
20
20
  import { computed } from 'vue';
21
21
  import type { BbProgressProps } from './types';
22
- export type { BbProgressProps };
23
22
 
24
23
  /**
25
24
  * You can get percentage between 250 and 370 and have it compute it automatically.
@@ -49,7 +49,6 @@ import BaseInputContainer from '../BaseInputContainer/BaseInputContainer.vue';
49
49
  import BaseRadio from '../BaseRadio/BaseRadio.vue';
50
50
  import { ref, computed } from 'vue';
51
51
  import type { BbRadioProps, BbRadioEvents, BbRadioSlots } from './types';
52
- export type { BbRadioProps, BbRadioEvents, BbRadioSlots };
53
52
 
54
53
  const props = withDefaults(defineProps<BbRadioProps>(), {
55
54
  direction: 'auto',
@@ -79,7 +79,6 @@ import type {
79
79
  BbRadioGroupEvents,
80
80
  BbRadioGroupSlots,
81
81
  } from './types';
82
- export type { BbRadioGroupProps, BbRadioGroupEvents, BbRadioGroupSlots };
83
82
 
84
83
  const props = withDefaults(defineProps<BbRadioGroupProps<T>>(), {
85
84
  inputPosition: 'left',
@@ -54,7 +54,6 @@ import BaseRating from '../BaseRating/BaseRating.vue';
54
54
  import type { BaseRatingEvents } from '../BaseRating/types';
55
55
  import { ref, computed } from 'vue';
56
56
  import type { BbRatingProps, BbRatingEvents, BbRatingSlots } from './types';
57
- export type { BbRatingProps, BbRatingEvents, BbRatingSlots };
58
57
 
59
58
  const props = withDefaults(defineProps<BbRatingProps>(), {
60
59
  inputPosition: 'left',
@@ -16,7 +16,6 @@
16
16
 
17
17
  <script setup lang="ts">
18
18
  import type { BbRatioProps, BbRatioSlots } from './types';
19
- export type { BbRatioProps, BbRatioSlots };
20
19
 
21
20
  withDefaults(defineProps<BbRatioProps>(), {
22
21
  ratio: 1,
@@ -111,7 +111,6 @@ import BaseInputContainer from '../BaseInputContainer/BaseInputContainer.vue';
111
111
  import BaseSelect from '../BaseSelect/BaseSelect.vue';
112
112
  import { ref, computed } from 'vue';
113
113
  import type { BbSelectProps, BbSelectEvents, BbSelectSlots } from './types';
114
- export type { BbSelectProps, BbSelectEvents, BbSelectSlots };
115
114
 
116
115
  const props = withDefaults(defineProps<BbSelectProps<T>>(), {
117
116
  allowWriting: true,
@@ -157,7 +156,7 @@ import type { NestedKeyOf } from '@/types/NestedKeyOf';
157
156
  import type { IconType } from '@/types/Icon';
158
157
  import type { BaseSelectEvents } from '../BaseSelect/types';
159
158
 
160
- export type BbSelectProps<T> = {
159
+ export type BbSelectProps<T = any> = {
161
160
  /**
162
161
  * Allows typing into the input.
163
162
  */