bitboss-ui 2.1.102 → 2.1.104

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 (312) hide show
  1. package/dist/components/BaseColorInput/BaseColorInput.vue.d.ts +21 -47
  2. package/dist/components/BaseColorInput/ColorPalette.vue.d.ts +36 -0
  3. package/dist/components/BbBreadcrumbs/BbBreadcrumbs.vue.d.ts +1 -1
  4. package/dist/components/BbColorInput/BbColorInput.vue.d.ts +17 -0
  5. package/dist/components/BbColorPalette/BbColorPalette.vue.d.ts +207 -0
  6. package/dist/components/BbSelectPopover/BbSelectPopover.vue.d.ts +277 -0
  7. package/dist/components/FlatListBox.vue.d.ts +4 -1
  8. package/dist/components/GroupedListBox.vue.d.ts +4 -1
  9. package/dist/components/ListBox.vue.d.ts +5 -1
  10. package/dist/composables/useCoherence.d.ts +1 -0
  11. package/dist/composables/usePrefill.d.ts +13 -3
  12. package/dist/i18n/en.d.ts +5 -0
  13. package/dist/i18n/it.d.ts +5 -0
  14. package/dist/index.css +1 -1
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.js +79 -77
  17. package/dist/index109.js +132 -175
  18. package/dist/index11.js +1 -1
  19. package/dist/index110.js +185 -0
  20. package/dist/{index115.js → index116.js} +1 -1
  21. package/dist/index12.js +2 -2
  22. package/dist/{index121.js → index122.js} +10 -10
  23. package/dist/{index123.js → index124.js} +15 -17
  24. package/dist/index13.js +6 -6
  25. package/dist/{index131.js → index132.js} +1 -1
  26. package/dist/{index133.js → index134.js} +6 -6
  27. package/dist/{index135.js → index136.js} +1 -1
  28. package/dist/{index137.js → index138.js} +4 -4
  29. package/dist/index14.js +1 -1
  30. package/dist/index140.js +13 -11
  31. package/dist/index141.js +11 -2
  32. package/dist/index142.js +2 -419
  33. package/dist/index143.js +417 -7
  34. package/dist/index144.js +8 -8
  35. package/dist/index145.js +9 -25
  36. package/dist/index146.js +25 -2
  37. package/dist/index147.js +2 -5
  38. package/dist/index148.js +5 -6
  39. package/dist/index149.js +5 -4
  40. package/dist/index150.js +5 -3
  41. package/dist/index151.js +1 -1
  42. package/dist/index152.js +1 -1
  43. package/dist/index153.js +1 -1
  44. package/dist/index154.js +1 -1
  45. package/dist/index155.js +1 -1
  46. package/dist/index156.js +1 -1
  47. package/dist/index157.js +1 -1
  48. package/dist/index158.js +1 -1
  49. package/dist/index159.js +1 -1
  50. package/dist/index16.js +80 -94
  51. package/dist/index160.js +1 -1
  52. package/dist/index161.js +1 -1
  53. package/dist/index162.js +1 -1
  54. package/dist/index163.js +1 -1
  55. package/dist/index164.js +1 -1
  56. package/dist/index165.js +1 -1
  57. package/dist/index166.js +1 -1
  58. package/dist/index167.js +1 -1
  59. package/dist/index168.js +1 -1
  60. package/dist/index169.js +1 -1
  61. package/dist/index170.js +1 -1
  62. package/dist/index171.js +1 -1
  63. package/dist/index172.js +1 -1
  64. package/dist/index173.js +1 -1
  65. package/dist/index174.js +1 -1
  66. package/dist/index175.js +1 -1
  67. package/dist/index176.js +1 -1
  68. package/dist/index177.js +1 -1
  69. package/dist/index178.js +1 -1
  70. package/dist/index179.js +1 -1
  71. package/dist/index18.js +3 -3
  72. package/dist/index180.js +1 -1
  73. package/dist/index181.js +1 -1
  74. package/dist/index182.js +1 -1
  75. package/dist/index183.js +2 -3
  76. package/dist/index184.js +1 -1
  77. package/dist/index185.js +1 -1
  78. package/dist/index186.js +1 -1
  79. package/dist/index187.js +1 -1
  80. package/dist/index188.js +3 -2
  81. package/dist/index189.js +1 -1
  82. package/dist/index190.js +2 -3
  83. package/dist/index191.js +1 -1
  84. package/dist/index192.js +1 -1
  85. package/dist/index193.js +1 -1
  86. package/dist/index194.js +2 -2
  87. package/dist/index195.js +1 -1
  88. package/dist/index196.js +1 -1
  89. package/dist/index197.js +1 -1
  90. package/dist/index198.js +3 -2
  91. package/dist/index199.js +1 -1
  92. package/dist/index20.js +14 -14
  93. package/dist/index200.js +2 -3
  94. package/dist/index201.js +1 -1
  95. package/dist/index202.js +1 -1
  96. package/dist/index203.js +1 -1
  97. package/dist/index204.js +1 -1
  98. package/dist/index205.js +1 -1
  99. package/dist/index206.js +1 -1
  100. package/dist/index207.js +1 -1
  101. package/dist/index208.js +1 -1
  102. package/dist/index209.js +1 -1
  103. package/dist/index210.js +1 -1
  104. package/dist/index211.js +1 -1
  105. package/dist/index212.js +1 -1
  106. package/dist/index213.js +1 -1
  107. package/dist/index214.js +5 -0
  108. package/dist/index215.js +3 -7
  109. package/dist/index217.js +7 -2
  110. package/dist/index218.js +2 -2
  111. package/dist/index219.js +137 -4
  112. package/dist/index22.js +14 -14
  113. package/dist/index220.js +2 -8
  114. package/dist/index221.js +3 -33
  115. package/dist/index222.js +5 -28
  116. package/dist/index223.js +10 -0
  117. package/dist/index224.js +2 -2
  118. package/dist/index225.js +66 -12
  119. package/dist/index226.js +86 -2
  120. package/dist/index228.js +30 -3
  121. package/dist/index229.js +17 -5
  122. package/dist/index230.js +51 -5
  123. package/dist/index231.js +18 -5
  124. package/dist/index232.js +3 -5
  125. package/dist/index233.js +12 -3
  126. package/dist/index234.js +18 -2
  127. package/dist/index235.js +13 -6
  128. package/dist/index236.js +12 -7
  129. package/dist/index237.js +13 -268
  130. package/dist/index238.js +2 -52
  131. package/dist/index239.js +101 -47
  132. package/dist/index24.js +13 -13
  133. package/dist/index241.js +95 -55
  134. package/dist/index243.js +3 -5
  135. package/dist/index244.js +18 -5
  136. package/dist/index245.js +12 -5
  137. package/dist/index246.js +4 -2
  138. package/dist/index247.js +135 -3
  139. package/dist/index249.js +102 -130
  140. package/dist/index250.js +4 -0
  141. package/dist/index251.js +11 -4
  142. package/dist/index252.js +2 -4
  143. package/dist/index253.js +2 -201
  144. package/dist/index254.js +9 -0
  145. package/dist/index255.js +6 -187
  146. package/dist/index256.js +5 -3
  147. package/dist/index257.js +9 -3
  148. package/dist/index258.js +23 -2
  149. package/dist/index259.js +4 -86
  150. package/dist/index26.js +4 -4
  151. package/dist/index260.js +25 -0
  152. package/dist/index261.js +8 -29
  153. package/dist/index262.js +9 -17
  154. package/dist/index263.js +25 -51
  155. package/dist/index264.js +6 -15
  156. package/dist/index265.js +16 -12
  157. package/dist/index266.js +3 -16
  158. package/dist/index267.js +2 -25
  159. package/dist/index268.js +2 -106
  160. package/dist/index269.js +9 -0
  161. package/dist/index270.js +5 -100
  162. package/dist/index271.js +7 -0
  163. package/dist/index272.js +5 -67
  164. package/dist/index273.js +5 -18
  165. package/dist/index274.js +5 -12
  166. package/dist/index275.js +5 -104
  167. package/dist/index276.js +19 -12
  168. package/dist/index277.js +3 -10
  169. package/dist/index278.js +8 -12
  170. package/dist/index279.js +21 -5
  171. package/dist/index28.js +2 -2
  172. package/dist/index280.js +33 -6
  173. package/dist/index281.js +27 -15
  174. package/dist/index285.js +3 -4
  175. package/dist/index286.js +372 -8
  176. package/dist/index288.js +184 -19
  177. package/dist/index289.js +3 -7
  178. package/dist/index290.js +5 -2
  179. package/dist/index291.js +6 -7
  180. package/dist/index292.js +268 -7
  181. package/dist/index293.js +50 -7
  182. package/dist/index294.js +51 -20
  183. package/dist/index295.js +31 -52
  184. package/dist/index296.js +60 -9
  185. package/dist/index298.js +53 -3
  186. package/dist/index299.js +2 -7
  187. package/dist/index30.js +6 -6
  188. package/dist/index300.js +5 -2
  189. package/dist/index301.js +2 -4
  190. package/dist/index302.js +3 -5
  191. package/dist/index303.js +17 -5
  192. package/dist/index304.js +27 -279
  193. package/dist/index305.js +3 -2
  194. package/dist/index306.js +3 -16
  195. package/dist/index307.js +4 -2
  196. package/dist/index308.js +7 -16
  197. package/dist/index310.js +3 -27
  198. package/dist/index311.js +3 -2
  199. package/dist/index312.js +1 -1
  200. package/dist/index313.js +5 -2
  201. package/dist/index314.js +719 -2
  202. package/dist/index315.js +366 -2
  203. package/dist/index316.js +52 -23
  204. package/dist/index317.js +280 -2
  205. package/dist/index318.js +2 -3
  206. package/dist/index319.js +125 -3
  207. package/dist/index32.js +2 -2
  208. package/dist/index320.js +2 -125
  209. package/dist/index321.js +15 -2
  210. package/dist/index322.js +2 -15
  211. package/dist/index323.js +16 -2
  212. package/dist/index324.js +2 -19
  213. package/dist/index325.js +16 -2
  214. package/dist/index326.js +2 -3
  215. package/dist/index327.js +18 -16
  216. package/dist/index328.js +2 -2
  217. package/dist/index329.js +1 -1
  218. package/dist/index330.js +27 -3
  219. package/dist/index331.js +2 -719
  220. package/dist/index332.js +2 -366
  221. package/dist/index333.js +2 -57
  222. package/dist/index334.js +1 -1
  223. package/dist/index335.js +2 -4
  224. package/dist/index336.js +2 -6
  225. package/dist/index337.js +227 -6
  226. package/dist/index338.js +5 -18
  227. package/dist/index339.js +67 -9
  228. package/dist/index34.js +12 -12
  229. package/dist/index340.js +66 -14
  230. package/dist/index341.js +4 -5
  231. package/dist/index342.js +34 -7
  232. package/dist/index343.js +6 -6
  233. package/dist/index344.js +128 -7
  234. package/dist/index345.js +397 -6
  235. package/dist/index346.js +199 -34
  236. package/dist/index347.js +258 -5
  237. package/dist/index348.js +85 -121
  238. package/dist/index349.js +114 -378
  239. package/dist/index350.js +2 -228
  240. package/dist/index351.js +2 -62
  241. package/dist/index352.js +5 -62
  242. package/dist/index353.js +6 -92
  243. package/dist/index354.js +7 -191
  244. package/dist/index355.js +17 -256
  245. package/dist/index356.js +9 -22
  246. package/dist/index357.js +17 -0
  247. package/dist/index358.js +21 -133
  248. package/dist/index36.js +5 -5
  249. package/dist/index360.js +441 -2
  250. package/dist/index361.js +114 -427
  251. package/dist/index362.js +46 -127
  252. package/dist/index363.js +67 -44
  253. package/dist/index364.js +516 -66
  254. package/dist/index365.js +45 -515
  255. package/dist/index38.js +245 -245
  256. package/dist/index40.js +8 -8
  257. package/dist/index42.js +2 -2
  258. package/dist/index44.js +27 -29
  259. package/dist/index46.js +9 -9
  260. package/dist/index48.js +4 -4
  261. package/dist/index50.js +4 -4
  262. package/dist/index54.js +2 -2
  263. package/dist/index56.js +2 -2
  264. package/dist/index58.js +2 -2
  265. package/dist/index60.js +4 -4
  266. package/dist/index62.js +6 -6
  267. package/dist/index68.js +1 -1
  268. package/dist/index7.js +2 -2
  269. package/dist/index72.js +16 -10
  270. package/dist/index74.js +119 -79
  271. package/dist/index75.js +85 -0
  272. package/dist/index77.js +17 -123
  273. package/dist/index78.js +127 -0
  274. package/dist/{index81.js → index82.js} +10 -10
  275. package/dist/{index83.js → index84.js} +4 -4
  276. package/dist/{index85.js → index86.js} +3 -3
  277. package/dist/{index87.js → index88.js} +3 -3
  278. package/dist/index9.js +1 -1
  279. package/dist/index90.js +37 -125
  280. package/dist/index91.js +134 -0
  281. package/dist/{index92.js → index93.js} +4 -4
  282. package/dist/{index94.js → index95.js} +3 -3
  283. package/dist/{index96.js → index97.js} +6 -6
  284. package/dist/{index98.js → index99.js} +2 -2
  285. package/package.json +2 -2
  286. package/dist/components/BaseColorInput/ColorPallette.vue.d.ts +0 -13
  287. package/dist/index108.js +0 -144
  288. package/dist/index139.js +0 -15
  289. package/dist/index216.js +0 -140
  290. package/dist/index227.js +0 -4
  291. package/dist/index240.js +0 -34
  292. package/dist/index242.js +0 -5
  293. package/dist/index248.js +0 -22
  294. package/dist/index287.js +0 -25
  295. package/dist/index309.js +0 -4
  296. package/dist/index359.js +0 -4
  297. package/dist/index366.js +0 -52
  298. package/dist/index76.js +0 -21
  299. package/dist/index89.js +0 -46
  300. /package/dist/{index100.js → index101.js} +0 -0
  301. /package/dist/{index102.js → index103.js} +0 -0
  302. /package/dist/{index104.js → index105.js} +0 -0
  303. /package/dist/{index106.js → index107.js} +0 -0
  304. /package/dist/{index111.js → index112.js} +0 -0
  305. /package/dist/{index113.js → index114.js} +0 -0
  306. /package/dist/{index117.js → index118.js} +0 -0
  307. /package/dist/{index119.js → index120.js} +0 -0
  308. /package/dist/{index125.js → index126.js} +0 -0
  309. /package/dist/{index127.js → index128.js} +0 -0
  310. /package/dist/{index129.js → index130.js} +0 -0
  311. /package/dist/{index282.js → index297.js} +0 -0
  312. /package/dist/{index79.js → index80.js} +0 -0
@@ -2,9 +2,15 @@ import { HTMLAttributes, InputHTMLAttributes } from 'vue';
2
2
  import { IconType } from '../../types/Icon';
3
3
  /**
4
4
  * Color input with hex value masking and an optional palette popover.
5
- * Accepts and emits `#RRGGBB` values via v-model and supports full input chrome slots.
5
+ * Accepts and emits `#RRGGBB` (or `#RRGGBBAA` when `alpha` is enabled) values via v-model
6
+ * and supports full input chrome slots.
6
7
  */
7
8
  export type BaseColorInputProps = {
9
+ /**
10
+ * Enable the alpha channel. When true the picker shows an opacity slider and
11
+ * emits / accepts `#RRGGBBAA` hex8 values.
12
+ */
13
+ alpha?: boolean;
8
14
  /**
9
15
  * Name of the icon to render at the right hand side of the input.
10
16
  */
@@ -72,6 +78,19 @@ export type BaseColorInputProps = {
72
78
  * Mark the input as required.
73
79
  */
74
80
  required?: boolean;
81
+ /**
82
+ * Show an eyedropper button to sample any color on screen.
83
+ * Uses the native EyeDropper API — hidden automatically on unsupported browsers.
84
+ * @default false
85
+ */
86
+ picker?: boolean;
87
+ /**
88
+ * Controls swatches display in the picker:
89
+ * - `true` — show the built-in Material-palette swatches
90
+ * - `string[][]` — show custom swatches (each inner array = a column of shades)
91
+ * - `false` / omitted — no swatches section
92
+ */
93
+ swatches?: boolean | string[][];
75
94
  /**
76
95
  * Transition duration (ms) of the palette popover.
77
96
  * @default 250
@@ -216,29 +235,6 @@ declare function __VLS_template(): {
216
235
  suffix?(_: {}): any;
217
236
  };
218
237
  }) | null;
219
- indicator: HTMLButtonElement;
220
- pallette: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
221
- modelValue: string | null;
222
- }> & Readonly<{
223
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
224
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
225
- "update:modelValue": (value: string) => any;
226
- }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
227
- paletteRef: HTMLSpanElement;
228
- mainCanvasRef: HTMLCanvasElement;
229
- hueCanvasRef: HTMLCanvasElement;
230
- }, HTMLSpanElement, import('vue').ComponentProvideOptions, {
231
- P: {};
232
- B: {};
233
- D: {};
234
- C: {};
235
- M: {};
236
- Defaults: {};
237
- }, Readonly<{
238
- modelValue: string | null;
239
- }> & Readonly<{
240
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
241
- }>, {}, {}, {}, {}, {}> | null;
242
238
  };
243
239
  rootEl: HTMLSpanElement;
244
240
  };
@@ -266,6 +262,7 @@ declare const __VLS_component: import('vue').DefineComponent<BaseColorInputProps
266
262
  }>, {
267
263
  autocomplete: string;
268
264
  transitionDuration: number;
265
+ alpha: boolean;
269
266
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
270
267
  wrapper: ({
271
268
  $: import('vue').ComponentInternalInstance;
@@ -373,29 +370,6 @@ declare const __VLS_component: import('vue').DefineComponent<BaseColorInputProps
373
370
  suffix?(_: {}): any;
374
371
  };
375
372
  }) | null;
376
- indicator: HTMLButtonElement;
377
- pallette: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
378
- modelValue: string | null;
379
- }> & Readonly<{
380
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
381
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
382
- "update:modelValue": (value: string) => any;
383
- }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
384
- paletteRef: HTMLSpanElement;
385
- mainCanvasRef: HTMLCanvasElement;
386
- hueCanvasRef: HTMLCanvasElement;
387
- }, HTMLSpanElement, import('vue').ComponentProvideOptions, {
388
- P: {};
389
- B: {};
390
- D: {};
391
- C: {};
392
- M: {};
393
- Defaults: {};
394
- }, Readonly<{
395
- modelValue: string | null;
396
- }> & Readonly<{
397
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
398
- }>, {}, {}, {}, {}, {}> | null;
399
373
  }, HTMLSpanElement>;
400
374
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
401
375
  export default _default;
@@ -0,0 +1,36 @@
1
+ export type ColorPaletteProps = {
2
+ modelValue: string | null;
3
+ alpha?: boolean;
4
+ /**
5
+ * Show an eyedropper button that lets the user sample any color on screen.
6
+ * Uses the native EyeDropper API — hidden automatically on unsupported browsers.
7
+ * @default false
8
+ */
9
+ picker?: boolean;
10
+ /**
11
+ * Controls swatches display:
12
+ * - `true` — show the built-in Material-palette swatches
13
+ * - `string[][]` — show custom swatches (each inner array = a column of shades)
14
+ * - `false` / omitted — no swatches section
15
+ */
16
+ swatches?: boolean | string[][];
17
+ };
18
+ declare const _default: import('vue').DefineComponent<ColorPaletteProps, {
19
+ el: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
20
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
21
+ "update:modelValue": (value: string) => any;
22
+ }, string, import('vue').PublicProps, Readonly<ColorPaletteProps> & Readonly<{
23
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
24
+ }>, {
25
+ alpha: boolean;
26
+ picker: boolean;
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
28
+ pickerRef: HTMLDivElement;
29
+ canvasWrapRef: HTMLDivElement;
30
+ mainCanvasRef: HTMLCanvasElement;
31
+ hueWrapRef: HTMLDivElement;
32
+ hueCanvasRef: HTMLCanvasElement;
33
+ alphaWrapRef: HTMLDivElement;
34
+ alphaCanvasRef: HTMLCanvasElement;
35
+ }, HTMLDivElement>;
36
+ export default _default;
@@ -126,10 +126,10 @@ declare function __VLS_template(): {
126
126
  };
127
127
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
128
128
  declare const __VLS_component: import('vue').DefineComponent<BbBreadcrumbsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BbBreadcrumbsProps> & Readonly<{}>, {
129
+ offsetWidth: number;
129
130
  divider: string;
130
131
  dividerWidth: number;
131
132
  gapWidth: number;
132
- offsetWidth: number;
133
133
  estimationBias: number;
134
134
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
135
135
  navRef: HTMLElement;
@@ -2,6 +2,10 @@ import { BaseColorInputEvents, BaseColorInputSlots } from '../BaseColorInput/Bas
2
2
  import { HTMLAttributes, InputHTMLAttributes } from 'vue';
3
3
  import { IconType } from '../../types/Icon';
4
4
  export type BbColorInputProps = {
5
+ /**
6
+ * Enable the alpha channel. Shows an opacity slider and uses `#RRGGBBAA` hex8 format.
7
+ */
8
+ alpha?: boolean;
5
9
  /**
6
10
  * Name of the icon to be added at the end of the input.
7
11
  */
@@ -95,6 +99,19 @@ export type BbColorInputProps = {
95
99
  * Reverses the layout. Applicable in every direction the order of the label and the input is swapped.
96
100
  */
97
101
  reverse?: boolean;
102
+ /**
103
+ * Show an eyedropper button to sample any color on screen.
104
+ * Uses the native EyeDropper API — hidden automatically on unsupported browsers.
105
+ * @default false
106
+ */
107
+ picker?: boolean;
108
+ /**
109
+ * Controls swatches display in the picker:
110
+ * - `true` — show the built-in Material-palette swatches
111
+ * - `string[][]` — show custom swatches (each inner array = a column of shades)
112
+ * - `false` / omitted — no swatches section
113
+ */
114
+ swatches?: boolean | string[][];
98
115
  };
99
116
  export type BbColorInputEvents = BaseColorInputEvents;
100
117
  export type BbColorInputSlots = BaseColorInputSlots & {
@@ -0,0 +1,207 @@
1
+ import { CommonProps } from '../../types/CommonProps';
2
+ export type BbColorPaletteProps = Pick<CommonProps, 'arrowPadding' | 'eager' | 'offset' | 'padding' | 'placement' | 'transitionDuration'> & {
3
+ /**
4
+ * v-model: the current color as a `#RRGGBB` hex string (or `#RRGGBBAA` when
5
+ * `alpha` is enabled), or `null` when empty.
6
+ */
7
+ modelValue: string | null;
8
+ /**
9
+ * Enable the alpha channel. The picker shows an opacity slider and emits
10
+ * `#RRGGBBAA` hex8 values.
11
+ */
12
+ alpha?: boolean;
13
+ /**
14
+ * Controls swatches display in the picker:
15
+ * - `true` — show the built-in Material-palette swatches
16
+ * - `string[][]` — show custom swatches (each inner array = a column of shades)
17
+ * - `false` / omitted — no swatches section
18
+ */
19
+ swatches?: boolean | string[][];
20
+ /**
21
+ * External activator element or component ref.
22
+ * When provided, the `activator` slot is not rendered and click listeners are
23
+ * attached programmatically to the referenced element — mirroring the
24
+ * BbDropdown activator API.
25
+ */
26
+ activator?: HTMLElement | Record<string, any> | null;
27
+ /**
28
+ * Element or component ref the popover positions itself relative to.
29
+ * Defaults to the activator element when omitted, allowing the popover to
30
+ * be anchored to a larger container (e.g. the full input row) while a
31
+ * smaller element (e.g. a color dot) remains the click target.
32
+ */
33
+ anchor?: HTMLElement | Record<string, any> | null;
34
+ /**
35
+ * Constrains the popover within a bounding element.
36
+ * Accepts an HTMLElement, a Vue component ref, or a CSS selector string.
37
+ */
38
+ boundary?: HTMLElement | Record<string, any> | string | null;
39
+ /**
40
+ * Whether to flip the popover to the opposite side when there is not enough space.
41
+ * @default true
42
+ */
43
+ flip?: boolean;
44
+ /**
45
+ * Show the popover arrow. Hidden by default since the palette has its own visual frame.
46
+ * @default false
47
+ */
48
+ showArrow?: boolean;
49
+ /**
50
+ * Disable all interaction (activator and palette).
51
+ */
52
+ disabled?: boolean;
53
+ /**
54
+ * Prevent opening the palette while keeping the activator visible.
55
+ */
56
+ readonly?: boolean;
57
+ /**
58
+ * Accessible label applied to the activator element via `aria-label`.
59
+ * Defaults to the locale string for "Open color picker" when omitted.
60
+ */
61
+ label?: string;
62
+ /**
63
+ * Show an eyedropper button inside the palette to sample any color on screen.
64
+ * Uses the native EyeDropper API — hidden automatically on unsupported browsers.
65
+ * @default false
66
+ */
67
+ picker?: boolean;
68
+ };
69
+ export type BbColorPaletteEvents = {
70
+ (e: 'update:modelValue', value: string | null): void;
71
+ /** Fires whenever the popover opens or closes. */
72
+ (e: 'update:open', value: boolean): void;
73
+ };
74
+ export type BbColorPaletteSlots = {
75
+ /**
76
+ * Custom activator element.
77
+ * Apply `v-bind="props"` to the element you want to use as the trigger —
78
+ * this wires up the ref callback that lets BbColorPalette track the element.
79
+ *
80
+ * @example
81
+ * ```vue
82
+ * <BbColorPalette v-model="color">
83
+ * <template #activator="{ props: dotProps, open, color }">
84
+ * <button v-bind="dotProps" :style="{ background: color }">Pick</button>
85
+ * </template>
86
+ * </BbColorPalette>
87
+ * ```
88
+ */
89
+ activator?: (props: {
90
+ /**
91
+ * Spread onto your activator element to register the ref.
92
+ * ARIA attributes (`aria-haspopup`, `aria-expanded`, `aria-label`) are set
93
+ * programmatically so they stay correct for both the slot and external activator paths.
94
+ */
95
+ props: {
96
+ ref: (el: unknown) => void;
97
+ };
98
+ /**
99
+ * Spread onto a wrapping element when you want the popover to anchor to
100
+ * something larger than the click target (e.g. the full input row).
101
+ * When unused the activator element is also the anchor.
102
+ */
103
+ anchorProps: {
104
+ ref: (el: unknown) => void;
105
+ };
106
+ /** Whether the palette popover is currently open. */
107
+ open: boolean;
108
+ /** The current color value (mirrors `modelValue`). */
109
+ color: string | null;
110
+ disabled?: boolean;
111
+ }) => any;
112
+ };
113
+ declare function __VLS_template(): {
114
+ attrs: Partial<{}>;
115
+ slots: Readonly<BbColorPaletteSlots> & BbColorPaletteSlots;
116
+ refs: {
117
+ paletteRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../BaseColorInput/ColorPalette.vue').ColorPaletteProps> & Readonly<{
118
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
119
+ }>, {
120
+ el: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
121
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
122
+ "update:modelValue": (value: string) => any;
123
+ }, import('vue').PublicProps, {
124
+ alpha: boolean;
125
+ picker: boolean;
126
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
127
+ pickerRef: HTMLDivElement;
128
+ canvasWrapRef: HTMLDivElement;
129
+ mainCanvasRef: HTMLCanvasElement;
130
+ hueWrapRef: HTMLDivElement;
131
+ hueCanvasRef: HTMLCanvasElement;
132
+ alphaWrapRef: HTMLDivElement;
133
+ alphaCanvasRef: HTMLCanvasElement;
134
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
135
+ P: {};
136
+ B: {};
137
+ D: {};
138
+ C: {};
139
+ M: {};
140
+ Defaults: {};
141
+ }, Readonly<import('../BaseColorInput/ColorPalette.vue').ColorPaletteProps> & Readonly<{
142
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
143
+ }>, {
144
+ el: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
145
+ }, {}, {}, {}, {
146
+ alpha: boolean;
147
+ picker: boolean;
148
+ }> | null;
149
+ };
150
+ rootEl: any;
151
+ };
152
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
153
+ declare const __VLS_component: import('vue').DefineComponent<BbColorPaletteProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
154
+ "update:modelValue": (value: string | null) => any;
155
+ "update:open": (value: boolean) => any;
156
+ }, string, import('vue').PublicProps, Readonly<BbColorPaletteProps> & Readonly<{
157
+ "onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
158
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
159
+ }>, {
160
+ transitionDuration: number;
161
+ offset: number;
162
+ padding: number;
163
+ alpha: boolean;
164
+ picker: boolean;
165
+ flip: boolean;
166
+ showArrow: boolean;
167
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
168
+ paletteRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('../BaseColorInput/ColorPalette.vue').ColorPaletteProps> & Readonly<{
169
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
170
+ }>, {
171
+ el: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
172
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
173
+ "update:modelValue": (value: string) => any;
174
+ }, import('vue').PublicProps, {
175
+ alpha: boolean;
176
+ picker: boolean;
177
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
178
+ pickerRef: HTMLDivElement;
179
+ canvasWrapRef: HTMLDivElement;
180
+ mainCanvasRef: HTMLCanvasElement;
181
+ hueWrapRef: HTMLDivElement;
182
+ hueCanvasRef: HTMLCanvasElement;
183
+ alphaWrapRef: HTMLDivElement;
184
+ alphaCanvasRef: HTMLCanvasElement;
185
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
186
+ P: {};
187
+ B: {};
188
+ D: {};
189
+ C: {};
190
+ M: {};
191
+ Defaults: {};
192
+ }, Readonly<import('../BaseColorInput/ColorPalette.vue').ColorPaletteProps> & Readonly<{
193
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
194
+ }>, {
195
+ el: import('vue').Ref<HTMLDivElement | null, HTMLDivElement | null>;
196
+ }, {}, {}, {}, {
197
+ alpha: boolean;
198
+ picker: boolean;
199
+ }> | null;
200
+ }, any>;
201
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
202
+ export default _default;
203
+ type __VLS_WithTemplateSlots<T, S> = T & {
204
+ new (): {
205
+ $slots: S;
206
+ };
207
+ };
@@ -0,0 +1,277 @@
1
+ import { HTMLAttributes, InputHTMLAttributes } from 'vue';
2
+ import { CommonProps } from '../../types/CommonProps';
3
+ export type BbSelectPopoverProps<Item> = {
4
+ /**
5
+ * External activator element or component ref.
6
+ * When provided, the activator slot is not rendered and event listeners
7
+ * are attached programmatically to the referenced element.
8
+ */
9
+ activator?: HTMLElement | Record<string, any> | null;
10
+ /**
11
+ * Controls whether the search input is shown inside the popover panel.
12
+ * Use `'not-mobile'` to hide the search input on mobile.
13
+ * @default false
14
+ */
15
+ allowWriting?: boolean | 'not-mobile';
16
+ /**
17
+ * Browser autocomplete hint for the popover search input.
18
+ * @default 'off'
19
+ */
20
+ autocomplete?: InputHTMLAttributes['autocomplete'];
21
+ /**
22
+ * Apply the compact density variant.
23
+ */
24
+ compact?: boolean;
25
+ /**
26
+ * Space the arrow keeps from popover edges.
27
+ * Useful with rounded corners.
28
+ * @default 10
29
+ */
30
+ arrowPadding?: CommonProps['arrowPadding'];
31
+ /**
32
+ * Constrains the popover to a specific boundary element.
33
+ */
34
+ boundary?: HTMLElement | Record<string, any> | string | null;
35
+ /**
36
+ * Additional dependencies that trigger item reloading when changed.
37
+ * @default []
38
+ */
39
+ dependencies?: any[];
40
+ /**
41
+ * Debounce delay (ms) for dependency-triggered reloads.
42
+ * @default 0
43
+ */
44
+ depsDebounceTime?: number;
45
+ /**
46
+ * Disables the component.
47
+ */
48
+ disabled?: boolean;
49
+ /**
50
+ * Marks the component as being in error state.
51
+ */
52
+ hasErrors?: boolean;
53
+ /**
54
+ * Explicit invalid state for accessibility semantics.
55
+ * Falls back to `hasErrors` when not provided.
56
+ */
57
+ ariaInvalid?: boolean;
58
+ /**
59
+ * Space-separated IDREF(s) that describe this field for assistive technologies.
60
+ * Accepts either a string or array of ids.
61
+ */
62
+ ariaDescribedby?: string | string[];
63
+ /**
64
+ * Enable or disable floating flip behavior.
65
+ * @default true
66
+ */
67
+ flip?: boolean;
68
+ /**
69
+ * Whether the floating arrow is hidden.
70
+ * @default true
71
+ */
72
+ hideArrow?: boolean;
73
+ /**
74
+ * Reset modelValue to `null` or empty array if it no longer matches available items.
75
+ */
76
+ enforceCoherence?: boolean;
77
+ /**
78
+ * Controls how options are filtered during search.
79
+ * Options are always filtered by display text, but can also match additional properties
80
+ * when set to a string path, array of paths, or custom function.
81
+ * Set to `false` to disable filtering, or `'not_stashed'` to exclude stashed items.
82
+ * @default () => []
83
+ */
84
+ filterBy?: string | string[] | false | 'not_stashed' | ((value: any, item: any, query: string | null) => boolean) | null;
85
+ groupBy?: string | ((item: Item) => string | number | symbol);
86
+ /**
87
+ * Height of group headers in the listbox (px). Defaults to 24px (compact) or 32px.
88
+ * Only applies when `groupBy` is set.
89
+ */
90
+ headerHeight?: number;
91
+ /**
92
+ * Explicit id for the component. Used to generate ids for listbox and options.
93
+ */
94
+ id?: HTMLAttributes['id'];
95
+ /**
96
+ * Array of items or function to load them asynchronously.
97
+ * Functions receive `(query, prefill, modelValue)` and can return a promise.
98
+ * @default []
99
+ */
100
+ items: Item[] | ((query: string, prefill: boolean, modelValue: any[]) => Promise<Item[]>) | ((query: string, prefill: boolean, modelValue: any[]) => Item[]);
101
+ /**
102
+ * Height of the options in the listbox (px).
103
+ * @default 40
104
+ */
105
+ itemHeight?: number;
106
+ /**
107
+ * Path to item property for display text or function to extract it.
108
+ */
109
+ itemText?: string | ((item: Item) => string) | undefined;
110
+ /**
111
+ * Path to item property for value or function to extract it.
112
+ */
113
+ itemValue?: string | ((item: Item) => string) | undefined;
114
+ /**
115
+ * Display the loading state styles.
116
+ */
117
+ loading?: boolean;
118
+ /**
119
+ * Message shown while items are being loaded.
120
+ */
121
+ loadingText?: string;
122
+ /**
123
+ * Maximum number of selectable items (limits selection when `multiple` is true).
124
+ * @default Infinity
125
+ */
126
+ max?: number;
127
+ /**
128
+ * v-model value. Single value for single select, array for multiple select.
129
+ */
130
+ modelValue: any;
131
+ /**
132
+ * Debounce delay (ms) for modelValue change handling.
133
+ * @default 0
134
+ */
135
+ modelValueDebounceTime?: number;
136
+ /**
137
+ * Enable multiple item selection. When true, modelValue must be an array.
138
+ */
139
+ multiple?: boolean;
140
+ /**
141
+ * Message displayed when no items are available.
142
+ */
143
+ noDataText?: string;
144
+ /**
145
+ * Distance (px) between the activator and the popover.
146
+ * @default 4
147
+ */
148
+ offset?: number;
149
+ /**
150
+ * Minimum page padding used by floating shift middleware.
151
+ * @default 0
152
+ */
153
+ padding?: CommonProps['padding'];
154
+ /**
155
+ * Floating placement of the popover.
156
+ * @default 'bottom'
157
+ */
158
+ placement?: CommonProps['placement'];
159
+ /**
160
+ * Controls when items are pre-loaded.
161
+ * `'interaction'` loads on first user interaction (first popover open),
162
+ * `true` loads immediately, `false` loads only on explicit search/open flows.
163
+ * @default 'interaction'
164
+ */
165
+ prefill?: boolean | 'interaction';
166
+ /**
167
+ * Debounce delay (ms) before triggering search queries after user input stops.
168
+ * @default 500
169
+ */
170
+ queryDebounceTime?: number;
171
+ /**
172
+ * Prevents opening the popover while keeping the activator accessible.
173
+ */
174
+ readonly?: boolean;
175
+ /**
176
+ * Accessible label used by the search input rendered inside the popover.
177
+ * @default 'Search options'
178
+ */
179
+ searchInputAriaLabel?: string;
180
+ /**
181
+ * Accumulate selected items across searches instead of replacing them.
182
+ */
183
+ stash?: boolean;
184
+ /**
185
+ * Transition duration (ms) for popover show/hide animations.
186
+ * @default 300
187
+ */
188
+ transitionDuration?: number;
189
+ /**
190
+ * Width of the popover in pixels, percentage, or `'auto'`.
191
+ */
192
+ width?: number | string;
193
+ };
194
+ export type BbSelectPopoverEvents = {
195
+ (e: 'blur', event: FocusEvent): void;
196
+ (e: 'change', event: Event): void;
197
+ (e: 'click', event: MouseEvent): void;
198
+ (e: 'focus', event: FocusEvent): void;
199
+ (e: 'inactive'): void;
200
+ (e: 'input', event: Event): void;
201
+ (e: 'update:modelValue', value: any): void;
202
+ (e: 'option:add', text: string): void;
203
+ };
204
+ export type BbSelectPopoverSlots<Item> = {
205
+ activator?: (props: {
206
+ props: {
207
+ ref: (reference: unknown) => void;
208
+ };
209
+ shown: boolean;
210
+ disabled: boolean | undefined;
211
+ readonly: boolean | undefined;
212
+ loading: boolean;
213
+ query: string;
214
+ clear: () => void;
215
+ open: () => Promise<void>;
216
+ close: () => Promise<void>;
217
+ toggle: () => Promise<void>;
218
+ }) => any;
219
+ loading?: (props: {
220
+ query: string;
221
+ }) => any;
222
+ 'no-data'?: (props: {
223
+ query: string;
224
+ focus: () => void;
225
+ }) => any;
226
+ option?: (props: {
227
+ disabled: boolean;
228
+ focused: boolean;
229
+ index: number;
230
+ item: Item;
231
+ loading: boolean;
232
+ selected: boolean;
233
+ text: string;
234
+ value: any;
235
+ }) => any;
236
+ group?: (props: {
237
+ text: string;
238
+ item: Item;
239
+ index: number;
240
+ length: number;
241
+ disabled: boolean;
242
+ }) => any;
243
+ 'options:append'?: (props: {
244
+ focus: () => void;
245
+ }) => any;
246
+ 'options:append:outer'?: (props: {
247
+ focus: () => void;
248
+ }) => any;
249
+ 'options:prepend'?: (props: {
250
+ focus: () => void;
251
+ }) => any;
252
+ 'options:prepend:outer'?: (props: {
253
+ focus: () => void;
254
+ }) => any;
255
+ };
256
+ declare const _default: <Item = any>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
257
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
258
+ readonly onInput?: ((event: Event) => any) | undefined;
259
+ readonly "onUpdate:modelValue"?: ((value: any) => any) | undefined;
260
+ readonly onBlur?: ((event: FocusEvent) => any) | undefined;
261
+ readonly onChange?: ((event: Event) => any) | undefined;
262
+ readonly onClick?: ((event: MouseEvent) => any) | undefined;
263
+ readonly onFocus?: ((event: FocusEvent) => any) | undefined;
264
+ readonly onInactive?: (() => any) | undefined;
265
+ readonly "onOption:add"?: ((text: string) => any) | undefined;
266
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onFocus" | "onBlur" | "onChange" | "onInput" | "onClick" | "onUpdate:modelValue" | "onInactive" | "onOption:add"> & BbSelectPopoverProps<Item> & Partial<{}>> & import('vue').PublicProps;
267
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
268
+ attrs: any;
269
+ slots: Readonly<BbSelectPopoverSlots<Item>> & BbSelectPopoverSlots<Item>;
270
+ emit: BbSelectPopoverEvents;
271
+ }>) => import('vue').VNode & {
272
+ __ctx?: Awaited<typeof __VLS_setup>;
273
+ };
274
+ export default _default;
275
+ type __VLS_PrettifyLocal<T> = {
276
+ [K in keyof T]: T[K];
277
+ } & {};