edvoyui-component-library-test-flight 0.0.220 → 0.0.222

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.
@@ -52,6 +52,10 @@ declare const __VLS_component: import('../../../node_modules/vue').DefineCompone
52
52
  type: NumberConstructor;
53
53
  default: number;
54
54
  };
55
+ teleported: {
56
+ type: BooleanConstructor;
57
+ default: boolean;
58
+ };
55
59
  }>, {}, {}, {}, {}, import('../../../node_modules/vue').ComponentOptionsMixin, import('../../../node_modules/vue').ComponentOptionsMixin, {} & {
56
60
  "update:visible": (value: boolean) => any;
57
61
  show: () => any;
@@ -92,6 +96,10 @@ declare const __VLS_component: import('../../../node_modules/vue').DefineCompone
92
96
  type: NumberConstructor;
93
97
  default: number;
94
98
  };
99
+ teleported: {
100
+ type: BooleanConstructor;
101
+ default: boolean;
102
+ };
95
103
  }>> & Readonly<{
96
104
  "onUpdate:visible"?: ((value: boolean) => any) | undefined;
97
105
  onShow?: (() => any) | undefined;
@@ -105,6 +113,7 @@ declare const __VLS_component: import('../../../node_modules/vue').DefineCompone
105
113
  customButton: string;
106
114
  visible: boolean;
107
115
  hoverHideDelay: number;
116
+ teleported: boolean;
108
117
  }, {}, {}, {}, string, import('../../../node_modules/vue').ComponentProvideOptions, true, {
109
118
  popperWrapper: HTMLDivElement;
110
119
  popperButton: HTMLDivElement;
@@ -15,24 +15,30 @@
15
15
  >
16
16
  <slot name="referenceButton" :open="isOpen"/>
17
17
  </div>
18
- <div
19
- ref="tooltip"
20
- :id="tooltipId"
21
- role="tooltip"
22
- :class="['poppertooltip h-auto text-sm font-normal select-none z-50', className]"
23
- :data-show="isOpen ? '' : null"
24
- @click.stop
25
- @mouseenter="handleTooltipMouseEnter"
26
- @mouseleave="handleTooltipMouseLeave"
27
- >
28
- <div ref="arrowElement" class="arrow" data-popper-arrow />
18
+ <!-- When `teleported`, the tooltip is rendered at <body> (Popper uses a
19
+ `fixed` strategy) so it escapes any ancestor `overflow`/stacking
20
+ context — e.g. a scrollable table or a sticky column. Disabled by
21
+ default, so existing usages keep rendering the tooltip in place. -->
22
+ <Teleport to="body" :disabled="!teleported">
29
23
  <div
30
- v-if="title"
31
- class="text-base font-semibold text-current leading-[normal] px-4 py-2"
32
- v-text="title"
33
- />
34
- <slot />
35
- </div>
24
+ ref="tooltip"
25
+ :id="tooltipId"
26
+ role="tooltip"
27
+ :class="['poppertooltip h-auto text-sm font-normal select-none z-50', className]"
28
+ :data-show="isOpen ? '' : null"
29
+ @click.stop
30
+ @mouseenter="handleTooltipMouseEnter"
31
+ @mouseleave="handleTooltipMouseLeave"
32
+ >
33
+ <div ref="arrowElement" class="arrow" data-popper-arrow />
34
+ <div
35
+ v-if="title"
36
+ class="text-base font-semibold text-current leading-[normal] px-4 py-2"
37
+ v-text="title"
38
+ />
39
+ <slot />
40
+ </div>
41
+ </Teleport>
36
42
  </div>
37
43
  </template>
38
44
 
@@ -77,6 +83,12 @@ const props = defineProps({
77
83
  type: Number,
78
84
  default: 100,
79
85
  },
86
+ // Render the tooltip at <body> using a fixed Popper strategy so it can break
87
+ // out of ancestor overflow/stacking contexts. Off by default for back-compat.
88
+ teleported: {
89
+ type: Boolean,
90
+ default: false,
91
+ },
80
92
  });
81
93
 
82
94
  const popperWrapper = ref<HTMLElement | null>(null);
@@ -122,6 +134,9 @@ const initializePopper = () => {
122
134
  if (popperButton.value && tooltip.value && arrowElement.value) {
123
135
  popperInstance.value = createPopper(popperButton.value, tooltip.value, {
124
136
  placement: props.placement,
137
+ // `fixed` keeps the teleported tooltip glued to the trigger without an
138
+ // offset parent; `absolute` (Popper's default) is unchanged otherwise.
139
+ strategy: props.teleported ? 'fixed' : 'absolute',
125
140
  modifiers: [
126
141
  { name: 'offset', options: { offset: [0, 10] } },
127
142
  { name: 'arrow', options: { element: arrowElement.value } },
@@ -229,11 +244,13 @@ onMounted(() => {
229
244
  }
230
245
 
231
246
  if (props.trigger === 'click') {
247
+ // `tooltip` is ignored too: once teleported it lives outside popperWrapper,
248
+ // so clicks inside it would otherwise register as "outside" and close it.
232
249
  onClickOutside(popperWrapper.value, () => {
233
250
  if (isOpen.value) {
234
251
  hide(true);
235
252
  }
236
- }, { ignore: [popperButton] });
253
+ }, { ignore: [popperButton, tooltip] });
237
254
  }
238
255
  });
239
256
 
@@ -27,6 +27,10 @@ declare const __VLS_component: import('../../../node_modules/vue').DefineCompone
27
27
  type: BooleanConstructor;
28
28
  default: boolean;
29
29
  };
30
+ filterable: {
31
+ type: BooleanConstructor;
32
+ default: boolean;
33
+ };
30
34
  isUseCustomSelect: {
31
35
  type: BooleanConstructor;
32
36
  required: false;
@@ -184,6 +188,10 @@ declare const __VLS_component: import('../../../node_modules/vue').DefineCompone
184
188
  type: BooleanConstructor;
185
189
  default: boolean;
186
190
  };
191
+ filterable: {
192
+ type: BooleanConstructor;
193
+ default: boolean;
194
+ };
187
195
  isUseCustomSelect: {
188
196
  type: BooleanConstructor;
189
197
  required: false;
@@ -350,6 +358,7 @@ declare const __VLS_component: import('../../../node_modules/vue').DefineCompone
350
358
  className: string[];
351
359
  value: string | unknown[] | Record<string, any>;
352
360
  clearable: boolean;
361
+ filterable: boolean;
353
362
  isUseCustomSelect: boolean;
354
363
  customWidth: string;
355
364
  customHeight: string;
@@ -12,6 +12,7 @@
12
12
  <vSelect
13
13
  v-model="selected"
14
14
  :filter="isFussySeach ? fuseSearch : undefined"
15
+ :filterable="filterable"
15
16
  :options="items"
16
17
  :label="searchLabel"
17
18
  :name="name"
@@ -315,6 +316,10 @@ const props = defineProps({
315
316
  type: Boolean,
316
317
  default: true,
317
318
  },
319
+ filterable: {
320
+ type: Boolean,
321
+ default: true,
322
+ },
318
323
  isUseCustomSelect: {
319
324
  type: Boolean,
320
325
  required: false,