bitboss-ui 2.1.123 → 2.1.124
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.
- package/dist/ai/BbDropdown.md +20 -5
- package/dist/ai/BbSelect.md +8 -2
- package/dist/ai/BbTooltip.md +83 -13
- package/dist/ai/CommonPopover.md +45 -2
- package/dist/components/BbTooltip/types.d.ts +1 -1
- package/dist/components/CommonPopover/types.d.ts +11 -0
- package/dist/directives/bbDropdown.d.ts +38 -0
- package/dist/directives/bbTooltip.d.ts +36 -0
- package/dist/directives/createPopoverDirective.d.ts +25 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -1
- package/dist/index232.js +68 -67
- package/dist/index270.js +1 -1
- package/dist/index343.js +116 -89
- package/dist/index350.js +53 -837
- package/dist/index351.js +23 -473
- package/dist/index352.js +21 -50
- package/dist/index353.js +838 -6
- package/dist/index354.js +474 -0
- package/dist/index355.js +52 -0
- package/dist/index356.js +7 -0
- package/dist/index58.js +54 -43
- package/package.json +1 -1
package/dist/ai/BbDropdown.md
CHANGED
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
>
|
|
37
37
|
<span
|
|
38
38
|
:id="`menu_${id}`"
|
|
39
|
-
:aria-labelledby="
|
|
40
|
-
|
|
39
|
+
:aria-labelledby="activatorId"
|
|
40
|
+
role="menu"
|
|
41
41
|
class="bb-dropdown__items-container"
|
|
42
42
|
:inert="!open"
|
|
43
43
|
:style="parsedWidth ? { width: parsedWidth } : undefined"
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
:text="item.text"
|
|
63
63
|
></slot>
|
|
64
64
|
<BaseButton
|
|
65
|
-
|
|
65
|
+
role="menuitem"
|
|
66
66
|
class="bb-dropdown__item"
|
|
67
67
|
:class="{
|
|
68
68
|
'bb-dropdown__item--first': index === 0,
|
|
@@ -149,6 +149,12 @@ defineOptions({
|
|
|
149
149
|
});
|
|
150
150
|
|
|
151
151
|
const id = props.id ?? `bb_${useId().id.value}`;
|
|
152
|
+
/**
|
|
153
|
+
* Id used to label the menu (`aria-labelledby`). Defaults to the component id,
|
|
154
|
+
* but adopts the activator's pre-existing id when there is one — so attaching to
|
|
155
|
+
* a user-owned element (e.g. via a directive) never clobbers its id.
|
|
156
|
+
*/
|
|
157
|
+
const activatorId = ref(id);
|
|
152
158
|
const activator = ref<HTMLElement>();
|
|
153
159
|
const activatorDom = computed(() => extractDomContainer(activator.value));
|
|
154
160
|
const hasExternalActivator = computed(() => props.activator != null);
|
|
@@ -465,7 +471,15 @@ watch(
|
|
|
465
471
|
}
|
|
466
472
|
if (!el) return;
|
|
467
473
|
|
|
468
|
-
|
|
474
|
+
// Adopt an existing id rather than overwriting it (the menu is labelled by
|
|
475
|
+
// the activator via `aria-labelledby`); only assign one when absent.
|
|
476
|
+
let assignedId = false;
|
|
477
|
+
if (!el.id) {
|
|
478
|
+
el.id = id;
|
|
479
|
+
assignedId = true;
|
|
480
|
+
}
|
|
481
|
+
activatorId.value = el.id;
|
|
482
|
+
el.setAttribute('aria-haspopup', 'menu');
|
|
469
483
|
|
|
470
484
|
const removers: (() => void)[] = [];
|
|
471
485
|
|
|
@@ -495,7 +509,8 @@ watch(
|
|
|
495
509
|
|
|
496
510
|
cleanupActivator = () => {
|
|
497
511
|
removers.forEach((fn) => fn());
|
|
498
|
-
el.removeAttribute('id');
|
|
512
|
+
if (assignedId) el.removeAttribute('id');
|
|
513
|
+
el.removeAttribute('aria-haspopup');
|
|
499
514
|
el.removeAttribute('aria-expanded');
|
|
500
515
|
el.removeAttribute('aria-controls');
|
|
501
516
|
};
|
package/dist/ai/BbSelect.md
CHANGED
|
@@ -514,7 +514,10 @@ export type BbSelectSlots<T> = {
|
|
|
514
514
|
/**
|
|
515
515
|
* Content appended inside the options list, after the last option.
|
|
516
516
|
*/
|
|
517
|
-
'options:append'?: (props: {
|
|
517
|
+
'options:append'?: (props: {
|
|
518
|
+
focus: () => void;
|
|
519
|
+
close: () => Promise<void>;
|
|
520
|
+
}) => any;
|
|
518
521
|
/**
|
|
519
522
|
* Content appended outside the options list container.
|
|
520
523
|
*/
|
|
@@ -522,7 +525,10 @@ export type BbSelectSlots<T> = {
|
|
|
522
525
|
/**
|
|
523
526
|
* Content prepended inside the options list, before the first option.
|
|
524
527
|
*/
|
|
525
|
-
'options:prepend'?: (props: {
|
|
528
|
+
'options:prepend'?: (props: {
|
|
529
|
+
focus: () => void;
|
|
530
|
+
close: () => Promise<void>;
|
|
531
|
+
}) => any;
|
|
526
532
|
/**
|
|
527
533
|
* Content prepended outside the options list container.
|
|
528
534
|
*/
|
package/dist/ai/BbTooltip.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
```vue
|
|
6
6
|
<template>
|
|
7
|
+
<span v-if="resolvedDescription" :id="descId" class="sr-only">{{
|
|
8
|
+
resolvedDescription
|
|
9
|
+
}}</span>
|
|
10
|
+
|
|
7
11
|
<slot
|
|
8
12
|
v-if="!hasExternalActivator"
|
|
9
13
|
name="activator"
|
|
@@ -49,13 +53,22 @@
|
|
|
49
53
|
/>
|
|
50
54
|
</svg>
|
|
51
55
|
</BaseButton>
|
|
52
|
-
<slot
|
|
56
|
+
<slot>{{ text }}</slot>
|
|
53
57
|
</span>
|
|
54
58
|
</CommonPopover>
|
|
55
59
|
</template>
|
|
56
60
|
|
|
57
61
|
<script setup lang="ts">
|
|
58
|
-
import {
|
|
62
|
+
import {
|
|
63
|
+
Comment,
|
|
64
|
+
computed,
|
|
65
|
+
onBeforeUnmount,
|
|
66
|
+
onMounted,
|
|
67
|
+
ref,
|
|
68
|
+
useTemplateRef,
|
|
69
|
+
watch,
|
|
70
|
+
type VNode,
|
|
71
|
+
} from 'vue';
|
|
59
72
|
import { useId } from '@/composables/useId';
|
|
60
73
|
import { useLocale } from '@/composables/useLocale';
|
|
61
74
|
import { useUntil } from '@/composables/useUntil';
|
|
@@ -76,7 +89,7 @@ const props = withDefaults(defineProps<BbTooltipProps>(), {
|
|
|
76
89
|
timeout: 0,
|
|
77
90
|
});
|
|
78
91
|
|
|
79
|
-
defineSlots<BbTooltipSlots>();
|
|
92
|
+
const slots = defineSlots<BbTooltipSlots>();
|
|
80
93
|
|
|
81
94
|
defineOptions({
|
|
82
95
|
inheritAttrs: false,
|
|
@@ -84,6 +97,47 @@ defineOptions({
|
|
|
84
97
|
|
|
85
98
|
const { t } = useLocale();
|
|
86
99
|
const id = `bb_${props.id ?? useId().id.value}`;
|
|
100
|
+
const descId = `${id}_desc`;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Recursively collect plain text from slot vnodes so a description can be
|
|
104
|
+
* resolved from the default slot (e.g. `<BbTooltip>Some text</BbTooltip>`)
|
|
105
|
+
* without forcing the consumer to also pass the `text` prop. Component vnodes
|
|
106
|
+
* are skipped on purpose, so wrappers used only for styling still resolve while
|
|
107
|
+
* nested components don't leak their content.
|
|
108
|
+
*/
|
|
109
|
+
const slotToText = (nodes?: VNode[]): string => {
|
|
110
|
+
if (!nodes) return '';
|
|
111
|
+
let out = '';
|
|
112
|
+
for (const node of nodes) {
|
|
113
|
+
if (node.type === Comment) continue;
|
|
114
|
+
const children = node.children;
|
|
115
|
+
if (typeof children === 'string') {
|
|
116
|
+
out += children;
|
|
117
|
+
} else if (Array.isArray(children)) {
|
|
118
|
+
out += slotToText(children as VNode[]);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return out;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* The description exposed to assistive technology. Prefers the explicit `text`
|
|
126
|
+
* prop, falling back to text extracted from the default slot. When empty, the
|
|
127
|
+
* component keeps its lazy `aria-describedby`-on-open behaviour.
|
|
128
|
+
*/
|
|
129
|
+
/**
|
|
130
|
+
* Slot reading is disabled until the component is mounted so the slot is only
|
|
131
|
+
* ever invoked inside the render function (reading it during setup — e.g. from
|
|
132
|
+
* a watcher baseline — triggers Vue's "slot invoked outside render" warning).
|
|
133
|
+
*/
|
|
134
|
+
const canReadSlots = ref(false);
|
|
135
|
+
|
|
136
|
+
const resolvedDescription = computed(() => {
|
|
137
|
+
const raw =
|
|
138
|
+
props.text ?? (canReadSlots.value ? slotToText(slots.default?.({})) : '');
|
|
139
|
+
return raw.replace(/\s+/g, ' ').trim();
|
|
140
|
+
});
|
|
87
141
|
const activatorEl = ref<HTMLElement>();
|
|
88
142
|
const hasExternalActivator = computed(() => props.activator != null);
|
|
89
143
|
const popoverRef = useTemplateRef('popover');
|
|
@@ -196,16 +250,31 @@ watch(
|
|
|
196
250
|
{ immediate: true }
|
|
197
251
|
);
|
|
198
252
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
(
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
);
|
|
253
|
+
const applyDescribedBy = () => {
|
|
254
|
+
const el = activatorEl.value;
|
|
255
|
+
if (!el) return;
|
|
256
|
+
// When a description can be resolved up front, associate it eagerly so it is
|
|
257
|
+
// announced on first focus. Otherwise fall back to the lazy popover content,
|
|
258
|
+
// which only exists once the tooltip has opened.
|
|
259
|
+
if (resolvedDescription.value) {
|
|
260
|
+
el.setAttribute('aria-describedby', descId);
|
|
261
|
+
} else if (hasOpenedOnce.value) {
|
|
262
|
+
el.setAttribute('aria-describedby', id);
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
onMounted(() => {
|
|
267
|
+
// Apply the prop-based description first (slot reading is still off, so this
|
|
268
|
+
// never invokes the slot outside render), then enable slot extraction.
|
|
269
|
+
applyDescribedBy();
|
|
270
|
+
canReadSlots.value = true;
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// `flush: 'post'` so the slot-derived description is read from the cached
|
|
274
|
+
// computed *after* render — never by invoking the slot outside the render fn.
|
|
275
|
+
watch([activatorEl, hasOpenedOnce, resolvedDescription], applyDescribedBy, {
|
|
276
|
+
flush: 'post',
|
|
277
|
+
});
|
|
209
278
|
|
|
210
279
|
onBeforeUnmount(() => {
|
|
211
280
|
cleanupActivator?.();
|
|
@@ -257,6 +326,7 @@ export type BbTooltipProps = Pick<
|
|
|
257
326
|
| 'padding'
|
|
258
327
|
| 'placement'
|
|
259
328
|
| 'showClose'
|
|
329
|
+
| 'text'
|
|
260
330
|
| 'theme'
|
|
261
331
|
| 'transitionDuration'
|
|
262
332
|
> & {
|
package/dist/ai/CommonPopover.md
CHANGED
|
@@ -51,7 +51,14 @@ import {
|
|
|
51
51
|
hide,
|
|
52
52
|
size,
|
|
53
53
|
} from '@floating-ui/vue';
|
|
54
|
-
import {
|
|
54
|
+
import {
|
|
55
|
+
computed,
|
|
56
|
+
nextTick,
|
|
57
|
+
onBeforeUnmount,
|
|
58
|
+
onMounted,
|
|
59
|
+
ref,
|
|
60
|
+
watch,
|
|
61
|
+
} from 'vue';
|
|
55
62
|
import type { CommonPopoverProps, CommonPopoverSlots } from './types';
|
|
56
63
|
|
|
57
64
|
const props = withDefaults(defineProps<CommonPopoverProps>(), {
|
|
@@ -131,12 +138,37 @@ const { floatingStyles, placement, middlewareData, update } = useFloating(
|
|
|
131
138
|
wrapper,
|
|
132
139
|
{
|
|
133
140
|
placement: props.placement,
|
|
134
|
-
whileElementsMounted: autoUpdate,
|
|
135
141
|
middleware,
|
|
136
142
|
strategy: 'fixed',
|
|
137
143
|
}
|
|
138
144
|
);
|
|
139
145
|
|
|
146
|
+
/**
|
|
147
|
+
* `autoUpdate` attaches scroll/resize listeners and `ResizeObserver`s for as
|
|
148
|
+
* long as it runs, so we only keep it alive while the popover is visible (or
|
|
149
|
+
* when `forceAutoUpdate` opts back into always-on tracking). Idle popovers then
|
|
150
|
+
* hold no listeners. `toggle()` still calls `update()` on open for the first
|
|
151
|
+
* frame, so gating this loses no positioning accuracy.
|
|
152
|
+
*/
|
|
153
|
+
let stopAutoUpdate: (() => void) | null = null;
|
|
154
|
+
|
|
155
|
+
watch(
|
|
156
|
+
[shown, anchor, wrapper, () => props.forceAutoUpdate] as const,
|
|
157
|
+
([isShown, anchorEl, floatingEl, force]) => {
|
|
158
|
+
stopAutoUpdate?.();
|
|
159
|
+
stopAutoUpdate = null;
|
|
160
|
+
if ((isShown || force) && anchorEl && floatingEl) {
|
|
161
|
+
stopAutoUpdate = autoUpdate(anchorEl, floatingEl, update);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
{ immediate: true }
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
onBeforeUnmount(() => {
|
|
168
|
+
stopAutoUpdate?.();
|
|
169
|
+
stopAutoUpdate = null;
|
|
170
|
+
});
|
|
171
|
+
|
|
140
172
|
/**
|
|
141
173
|
* This mess is due to:
|
|
142
174
|
* - lazy rendering of content
|
|
@@ -465,6 +497,17 @@ export type CommonPopoverProps = Pick<
|
|
|
465
497
|
* @defaultValue `false`
|
|
466
498
|
*/
|
|
467
499
|
scrollable?: boolean;
|
|
500
|
+
/**
|
|
501
|
+
* Keeps floating-ui's `autoUpdate` (scroll/resize/resize-observer tracking)
|
|
502
|
+
* running while the popover is closed.
|
|
503
|
+
*
|
|
504
|
+
* By default the position is only tracked while the popover is open, so idle
|
|
505
|
+
* popovers attach no listeners. Enable this only when the anchor moves while
|
|
506
|
+
* the popover is closed and the next open must be pixel-perfect immediately.
|
|
507
|
+
*
|
|
508
|
+
* @defaultValue `false`
|
|
509
|
+
*/
|
|
510
|
+
forceAutoUpdate?: boolean;
|
|
468
511
|
};
|
|
469
512
|
|
|
470
513
|
export type CommonPopoverEvents = Record<never, never>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonProps } from '../../types/CommonProps';
|
|
2
2
|
import { Placement } from '@floating-ui/vue';
|
|
3
|
-
export type BbTooltipProps = Pick<CommonProps, 'arrowPadding' | 'block' | 'disabled' | 'eager' | 'id' | 'padding' | 'placement' | 'showClose' | 'theme' | 'transitionDuration'> & {
|
|
3
|
+
export type BbTooltipProps = Pick<CommonProps, 'arrowPadding' | 'block' | 'disabled' | 'eager' | 'id' | 'padding' | 'placement' | 'showClose' | 'text' | 'theme' | 'transitionDuration'> & {
|
|
4
4
|
/**
|
|
5
5
|
* External activator element or component ref.
|
|
6
6
|
* When provided, the activator slot is not rendered and event listeners
|
|
@@ -40,6 +40,17 @@ export type CommonPopoverProps = Pick<CommonProps, 'arrowPadding' | 'eager' | 'o
|
|
|
40
40
|
* @defaultValue `false`
|
|
41
41
|
*/
|
|
42
42
|
scrollable?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Keeps floating-ui's `autoUpdate` (scroll/resize/resize-observer tracking)
|
|
45
|
+
* running while the popover is closed.
|
|
46
|
+
*
|
|
47
|
+
* By default the position is only tracked while the popover is open, so idle
|
|
48
|
+
* popovers attach no listeners. Enable this only when the anchor moves while
|
|
49
|
+
* the popover is closed and the next open must be pixel-perfect immediately.
|
|
50
|
+
*
|
|
51
|
+
* @defaultValue `false`
|
|
52
|
+
*/
|
|
53
|
+
forceAutoUpdate?: boolean;
|
|
43
54
|
};
|
|
44
55
|
export type CommonPopoverEvents = Record<never, never>;
|
|
45
56
|
export type CommonPopoverSlots = {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
2
|
+
import { BbDropdownProps, Item } from '../components/BbDropdown/types';
|
|
3
|
+
/**
|
|
4
|
+
* Value accepted by the `v-bb-dropdown` directive.
|
|
5
|
+
*
|
|
6
|
+
* - an array of {@link Item} is used directly as the dropdown items
|
|
7
|
+
* - an object spreads every `BbDropdown` prop plus a required `items` array
|
|
8
|
+
*/
|
|
9
|
+
export type BbDropdownDirectiveValue = Item[] | (Partial<Omit<BbDropdownProps, 'items'>> & {
|
|
10
|
+
items: Item[];
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* `v-bb-dropdown` — attach a {@link BbDropdown} menu to any element without
|
|
14
|
+
* wrapping it. Best used on a focusable/clickable element (e.g. a `<button>`);
|
|
15
|
+
* the keyboard and ARIA wiring is applied to the host element directly.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```html
|
|
19
|
+
* <button v-bb-dropdown="items">Menu</button>
|
|
20
|
+
* <button v-bb-dropdown:bottom="items">Menu</button>
|
|
21
|
+
* <button v-bb-dropdown="{ items, trigger: 'contextMenu', placement: 'right' }">Menu</button>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const vBbDropdown: import('vue').Directive<HTMLElement, BbDropdownDirectiveValue>;
|
|
25
|
+
/**
|
|
26
|
+
* Vue plugin that registers {@link vBbDropdown} globally.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { BbDropdownDirective } from '@bitboss/ui-components';
|
|
31
|
+
* app.use(BbDropdownDirective); // registers `v-bb-dropdown`
|
|
32
|
+
* app.use(BbDropdownDirective, 'dropdown'); // registers `v-dropdown`
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const BbDropdownDirectivePlugin: {
|
|
36
|
+
install(app: App, name?: string): void;
|
|
37
|
+
};
|
|
38
|
+
export default vBbDropdown;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
2
|
+
import { BbTooltipProps } from '../components/BbTooltip/types';
|
|
3
|
+
/**
|
|
4
|
+
* Value accepted by the `v-bb-tooltip` directive.
|
|
5
|
+
*
|
|
6
|
+
* - a string/number is used directly as the tooltip text
|
|
7
|
+
* - an object spreads every `BbTooltip` prop plus a required `text`
|
|
8
|
+
*/
|
|
9
|
+
export type BbTooltipDirectiveValue = string | number | (Partial<BbTooltipProps> & {
|
|
10
|
+
text: string;
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* `v-bb-tooltip` — attach a {@link BbTooltip} to any element without wrapping it.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <span v-bb-tooltip="'North Atlantic Treaty Organization'">Nato</span>
|
|
18
|
+
* <span v-bb-tooltip:bottom="'North Atlantic…'">Nato</span>
|
|
19
|
+
* <span v-bb-tooltip="{ text: 'North Atlantic…', placement: 'right', timeout: 300 }">Nato</span>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const vBbTooltip: import('vue').Directive<HTMLElement, BbTooltipDirectiveValue>;
|
|
23
|
+
/**
|
|
24
|
+
* Vue plugin that registers {@link vBbTooltip} globally.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { BbTooltipDirective } from '@bitboss/ui-components';
|
|
29
|
+
* app.use(BbTooltipDirective); // registers `v-bb-tooltip`
|
|
30
|
+
* app.use(BbTooltipDirective, 'tooltip'); // registers `v-tooltip`
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const BbTooltipDirectivePlugin: {
|
|
34
|
+
install(app: App, name?: string): void;
|
|
35
|
+
};
|
|
36
|
+
export default vBbTooltip;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Directive, DirectiveBinding, VNode } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Shared machinery for directives that attach a floating component (tooltip,
|
|
4
|
+
* dropdown…) to an arbitrary element via that component's external `activator`
|
|
5
|
+
* prop.
|
|
6
|
+
*
|
|
7
|
+
* Every instance for a given app renders into a single
|
|
8
|
+
* `<div data-<name>-host>` container, so the DOM holds one host per directive
|
|
9
|
+
* per app rather than a wrapper element per usage. Keying the host by
|
|
10
|
+
* `AppContext` keeps `useId` prefixes, global config and registered
|
|
11
|
+
* components/icons correct when several Vue apps coexist on a page.
|
|
12
|
+
*/
|
|
13
|
+
export interface PopoverDirectiveConfig<Value, Options> {
|
|
14
|
+
/** Used for the host element's `data-*` attribute and the entry id prefix. */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Normalise the raw binding into the options consumed by {@link build}. */
|
|
17
|
+
resolve: (binding: DirectiveBinding<Value>) => Options;
|
|
18
|
+
/**
|
|
19
|
+
* Build the component vnode for one entry, or return `null` to render
|
|
20
|
+
* nothing (e.g. an empty value). `id` is a stable, unique key/id and `el` is
|
|
21
|
+
* the activator element.
|
|
22
|
+
*/
|
|
23
|
+
build: (id: string, el: HTMLElement, options: Options) => VNode | null;
|
|
24
|
+
}
|
|
25
|
+
export declare const createPopoverDirective: <Value, Options>(config: PopoverDirectiveConfig<Value, Options>) => Directive<HTMLElement, Value>;
|
package/dist/index.d.ts
CHANGED
|
@@ -86,6 +86,10 @@ export { default as BbTextInput } from './components/BbTextInput/BbTextInput.vue
|
|
|
86
86
|
export { default as BbToast } from './components/BbToast/BbToast.vue';
|
|
87
87
|
export { default as BbTooltip } from './components/BbTooltip/BbTooltip.vue';
|
|
88
88
|
export { default as BbTree } from './components/BbTree/BbTree.vue';
|
|
89
|
+
export { vBbTooltip, BbTooltipDirectivePlugin } from './directives/bbTooltip';
|
|
90
|
+
export type { BbTooltipDirectiveValue } from './directives/bbTooltip';
|
|
91
|
+
export { vBbDropdown, BbDropdownDirectivePlugin, } from './directives/bbDropdown';
|
|
92
|
+
export type { BbDropdownDirectiveValue } from './directives/bbDropdown';
|
|
89
93
|
export { default as CommonInputInnerContainer } from './components/CommonInputInnerContainer/CommonInputInnerContainer.vue';
|
|
90
94
|
export { default as CommonInputOuterContainer } from './components/CommonInputOuterContainer/CommonInputOuterContainer.vue';
|
|
91
95
|
export type { BaseButtonProps } from './components/BaseButton/types';
|
package/dist/index.js
CHANGED
|
@@ -77,4 +77,6 @@ import be from "./index337.js";
|
|
|
77
77
|
import xe from "./index342.js";
|
|
78
78
|
import Se from "./index345.js";
|
|
79
79
|
import Ce from "./index349.js";
|
|
80
|
-
|
|
80
|
+
import we, { BbTooltipDirectivePlugin as Te } from "./index351.js";
|
|
81
|
+
import Ee, { BbDropdownDirectivePlugin as De } from "./index352.js";
|
|
82
|
+
export { d as BaseButton, g as BaseCheckbox, _ as BaseCheckboxGroup, h as BaseColorInput, v as BaseDatePicker, y as BaseDatePickerInput, b as BaseDialog, x as BaseInputContainer, S as BaseNumberInput, C as BaseRadio, w as BaseRadioGroup, T as BaseRating, O as BaseSelect, k as BaseSlider, A as BaseSwitch, j as BaseSwitchGroup, M as BaseTag, P as BaseTextInput, N as BaseTextarea, I as BbAccordion, R as BbAlert, z as BbAvatar, B as BbBadge, H as BbBreadcrumbs, U as BbButton, W as BbCheckbox, G as BbCheckboxGroup, D as BbChip, F as BbCollapsible, K as BbColorInput, f as BbColorPalette, J as BbConfirm, Y as BbConfirmPortal, X as BbDatePickerInput, Z as BbDialog, V as BbDropdown, Q as BbDropdownButton, De as BbDropdownDirectivePlugin, $ as BbDropzone, L as BbIcon, ee as BbIntersection, te as BbNumberInput, ne as BbOffCanvas, re as BbPagination, ie as BbPopover, ae as BbProgress, oe as BbRadio, se as BbRadioGroup, ce as BbRating, le as BbRatio, ue as BbRows, fe as BbSelect, de as BbSelectPopover, pe as BbSlider, E as BbSmoothHeight, q as BbSpinner, me as BbSwitch, he as BbSwitchGroup, ge as BbTab, _e as BbTable, ve as BbTag, be as BbTextInput, ye as BbTextarea, xe as BbToast, Se as BbTooltip, Te as BbTooltipDirectivePlugin, Ce as BbTree, p as CommonInputInnerContainer, m as CommonInputOuterContainer, e as useBbConfig, t as useBroadcastChannelInstance, n as useConfirm, r as useCountdown, i as useId, a as useMobile, s as useQuery, o as useQueue, c as useToast, l as useWizard, Ee as vBbDropdown, we as vBbTooltip, u as wizardInjectionKey };
|