@expcat/tigercat-vue 1.2.16 → 1.2.23

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 (187) hide show
  1. package/dist/{chunk-2GQE47OY.mjs → chunk-DSHV7EAX.mjs} +45 -4
  2. package/dist/{chunk-FXS5GHQZ.js → chunk-IQZX54SQ.js} +45 -4
  3. package/dist/{chunk-LDDGBB3V.mjs → chunk-IXJSZIAE.mjs} +100 -23
  4. package/dist/{chunk-4OOR4524.js → chunk-ZNGRSXFK.js} +107 -30
  5. package/dist/components/ActivityFeed.d.mts +6 -6
  6. package/dist/components/ActivityFeed.d.ts +6 -6
  7. package/dist/components/Alert.d.mts +2 -2
  8. package/dist/components/Alert.d.ts +2 -2
  9. package/dist/components/Anchor.d.mts +1 -1
  10. package/dist/components/Anchor.d.ts +1 -1
  11. package/dist/components/AreaChart.d.mts +1 -1
  12. package/dist/components/AreaChart.d.ts +1 -1
  13. package/dist/components/AutoComplete.d.mts +2 -2
  14. package/dist/components/AutoComplete.d.ts +2 -2
  15. package/dist/components/Avatar.d.mts +1 -1
  16. package/dist/components/Avatar.d.ts +1 -1
  17. package/dist/components/Badge.d.mts +3 -3
  18. package/dist/components/Badge.d.ts +3 -3
  19. package/dist/components/BarChart.d.mts +1 -1
  20. package/dist/components/BarChart.d.ts +1 -1
  21. package/dist/components/Breadcrumb.d.mts +2 -2
  22. package/dist/components/Breadcrumb.d.ts +2 -2
  23. package/dist/components/Button.d.mts +3 -3
  24. package/dist/components/Button.d.ts +3 -3
  25. package/dist/components/ButtonGroup.d.mts +1 -1
  26. package/dist/components/ButtonGroup.d.ts +1 -1
  27. package/dist/components/Calendar.d.mts +1 -1
  28. package/dist/components/Calendar.d.ts +1 -1
  29. package/dist/components/Card.d.mts +2 -2
  30. package/dist/components/Card.d.ts +2 -2
  31. package/dist/components/ChatWindow.d.mts +3 -3
  32. package/dist/components/ChatWindow.d.ts +3 -3
  33. package/dist/components/CodeEditor.d.mts +2 -2
  34. package/dist/components/CodeEditor.d.ts +2 -2
  35. package/dist/components/Collapse.d.mts +1 -1
  36. package/dist/components/Collapse.d.ts +1 -1
  37. package/dist/components/CollapsePanel.d.mts +1 -1
  38. package/dist/components/CollapsePanel.d.ts +1 -1
  39. package/dist/components/ColorSwatch.d.mts +1 -1
  40. package/dist/components/ColorSwatch.d.ts +1 -1
  41. package/dist/components/CommentThread.d.mts +2 -2
  42. package/dist/components/CommentThread.d.ts +2 -2
  43. package/dist/components/ConfigProvider.d.mts +1 -1
  44. package/dist/components/ConfigProvider.d.ts +1 -1
  45. package/dist/components/DataTableWithToolbar.d.mts +8 -8
  46. package/dist/components/DataTableWithToolbar.d.ts +8 -8
  47. package/dist/components/DatePicker.d.mts +2 -2
  48. package/dist/components/DatePicker.d.ts +2 -2
  49. package/dist/components/Descriptions.d.mts +2 -2
  50. package/dist/components/Descriptions.d.ts +2 -2
  51. package/dist/components/DonutChart.d.mts +2 -2
  52. package/dist/components/DonutChart.d.ts +2 -2
  53. package/dist/components/Drawer.d.mts +74 -5
  54. package/dist/components/Drawer.d.ts +74 -5
  55. package/dist/components/Drawer.js +2 -2
  56. package/dist/components/Drawer.mjs +1 -1
  57. package/dist/components/FileManager.d.mts +1 -1
  58. package/dist/components/FileManager.d.ts +1 -1
  59. package/dist/components/FloatButton.d.mts +3 -3
  60. package/dist/components/FloatButton.d.ts +3 -3
  61. package/dist/components/Form.d.mts +1 -1
  62. package/dist/components/Form.d.ts +1 -1
  63. package/dist/components/FormWizard.d.mts +4 -4
  64. package/dist/components/FormWizard.d.ts +4 -4
  65. package/dist/components/FunnelChart.d.mts +1 -1
  66. package/dist/components/FunnelChart.d.ts +1 -1
  67. package/dist/components/Gantt.d.mts +1 -1
  68. package/dist/components/Gantt.d.ts +1 -1
  69. package/dist/components/GaugeChart.d.mts +1 -1
  70. package/dist/components/GaugeChart.d.ts +1 -1
  71. package/dist/components/HeatmapChart.d.mts +2 -2
  72. package/dist/components/HeatmapChart.d.ts +2 -2
  73. package/dist/components/Image.d.mts +2 -2
  74. package/dist/components/Image.d.ts +2 -2
  75. package/dist/components/ImageAnnotation.d.mts +3 -3
  76. package/dist/components/ImageAnnotation.d.ts +3 -3
  77. package/dist/components/InfiniteScroll.d.mts +2 -2
  78. package/dist/components/InfiniteScroll.d.ts +2 -2
  79. package/dist/components/Input.d.mts +4 -4
  80. package/dist/components/Input.d.ts +4 -4
  81. package/dist/components/InputGroup.d.mts +1 -1
  82. package/dist/components/InputGroup.d.ts +1 -1
  83. package/dist/components/InputNumber.d.mts +1 -1
  84. package/dist/components/InputNumber.d.ts +1 -1
  85. package/dist/components/Kanban.d.mts +1 -1
  86. package/dist/components/Kanban.d.ts +1 -1
  87. package/dist/components/LineChart.d.mts +1 -1
  88. package/dist/components/LineChart.d.ts +1 -1
  89. package/dist/components/Link.d.mts +1 -1
  90. package/dist/components/Link.d.ts +1 -1
  91. package/dist/components/List.d.mts +6 -6
  92. package/dist/components/List.d.ts +6 -6
  93. package/dist/components/Loading.d.mts +5 -5
  94. package/dist/components/Loading.d.ts +5 -5
  95. package/dist/components/MarkdownEditor.d.mts +2 -2
  96. package/dist/components/MarkdownEditor.d.ts +2 -2
  97. package/dist/components/Mentions.d.mts +2 -2
  98. package/dist/components/Mentions.d.ts +2 -2
  99. package/dist/components/Menu.d.mts +25 -4
  100. package/dist/components/Menu.d.ts +25 -4
  101. package/dist/components/Menu.js +3 -2
  102. package/dist/components/Menu.mjs +2 -1
  103. package/dist/components/MenuItem.js +4 -3
  104. package/dist/components/MenuItem.mjs +2 -1
  105. package/dist/components/MenuItemGroup.js +4 -3
  106. package/dist/components/MenuItemGroup.mjs +2 -1
  107. package/dist/components/Modal.d.mts +7 -7
  108. package/dist/components/Modal.d.ts +7 -7
  109. package/dist/components/NotificationCenter.d.mts +5 -5
  110. package/dist/components/NotificationCenter.d.ts +5 -5
  111. package/dist/components/NumberKeyboard.d.mts +2 -2
  112. package/dist/components/NumberKeyboard.d.ts +2 -2
  113. package/dist/components/OrgChart.d.mts +1 -1
  114. package/dist/components/OrgChart.d.ts +1 -1
  115. package/dist/components/Pagination.d.mts +3 -3
  116. package/dist/components/Pagination.d.ts +3 -3
  117. package/dist/components/PieChart.d.mts +2 -2
  118. package/dist/components/PieChart.d.ts +2 -2
  119. package/dist/components/Popconfirm.d.mts +3 -3
  120. package/dist/components/Popconfirm.d.ts +3 -3
  121. package/dist/components/Popover.d.mts +1 -1
  122. package/dist/components/Popover.d.ts +1 -1
  123. package/dist/components/Progress.d.mts +2 -2
  124. package/dist/components/Progress.d.ts +2 -2
  125. package/dist/components/QRCode.d.mts +1 -1
  126. package/dist/components/QRCode.d.ts +1 -1
  127. package/dist/components/RadarChart.d.mts +1 -1
  128. package/dist/components/RadarChart.d.ts +1 -1
  129. package/dist/components/RichTextEditor.d.mts +1 -1
  130. package/dist/components/RichTextEditor.d.ts +1 -1
  131. package/dist/components/Row.d.mts +1 -1
  132. package/dist/components/Row.d.ts +1 -1
  133. package/dist/components/ScatterChart.d.mts +1 -1
  134. package/dist/components/ScatterChart.d.ts +1 -1
  135. package/dist/components/ScrollSpy.d.mts +2 -2
  136. package/dist/components/ScrollSpy.d.ts +2 -2
  137. package/dist/components/Select.d.mts +1 -1
  138. package/dist/components/Select.d.ts +1 -1
  139. package/dist/components/Signature.d.mts +2 -2
  140. package/dist/components/Signature.d.ts +2 -2
  141. package/dist/components/Skeleton.d.mts +1 -1
  142. package/dist/components/Skeleton.d.ts +1 -1
  143. package/dist/components/Space.d.mts +2 -2
  144. package/dist/components/Space.d.ts +2 -2
  145. package/dist/components/Splitter.d.mts +1 -1
  146. package/dist/components/Splitter.d.ts +1 -1
  147. package/dist/components/Spotlight.d.mts +4 -4
  148. package/dist/components/Spotlight.d.ts +4 -4
  149. package/dist/components/Steps.d.mts +2 -2
  150. package/dist/components/Steps.d.ts +2 -2
  151. package/dist/components/SubMenu.js +4 -3
  152. package/dist/components/SubMenu.mjs +2 -1
  153. package/dist/components/SunburstChart.d.mts +1 -1
  154. package/dist/components/SunburstChart.d.ts +1 -1
  155. package/dist/components/Table.d.mts +5 -5
  156. package/dist/components/Table.d.ts +5 -5
  157. package/dist/components/Tabs.d.mts +2 -2
  158. package/dist/components/Tabs.d.ts +2 -2
  159. package/dist/components/Tag.d.mts +1 -1
  160. package/dist/components/Tag.d.ts +1 -1
  161. package/dist/components/TaskBoard.d.mts +1 -1
  162. package/dist/components/TaskBoard.d.ts +1 -1
  163. package/dist/components/Text.d.mts +3 -3
  164. package/dist/components/Text.d.ts +3 -3
  165. package/dist/components/Textarea.d.mts +1 -1
  166. package/dist/components/Textarea.d.ts +1 -1
  167. package/dist/components/TimePicker.d.mts +3 -3
  168. package/dist/components/TimePicker.d.ts +3 -3
  169. package/dist/components/Timeline.d.mts +3 -3
  170. package/dist/components/Timeline.d.ts +3 -3
  171. package/dist/components/Tooltip.d.mts +1 -1
  172. package/dist/components/Tooltip.d.ts +1 -1
  173. package/dist/components/Tour.d.mts +2 -2
  174. package/dist/components/Tour.d.ts +2 -2
  175. package/dist/components/Tree.d.mts +2 -2
  176. package/dist/components/Tree.d.ts +2 -2
  177. package/dist/components/TreeMapChart.d.mts +1 -1
  178. package/dist/components/TreeMapChart.d.ts +1 -1
  179. package/dist/components/Upload.d.mts +4 -4
  180. package/dist/components/Upload.d.ts +4 -4
  181. package/dist/components/VirtualTable.d.mts +2 -2
  182. package/dist/components/VirtualTable.d.ts +2 -2
  183. package/dist/components/Watermark.d.mts +1 -1
  184. package/dist/components/Watermark.d.ts +1 -1
  185. package/dist/index.js +3 -3
  186. package/dist/index.mjs +2 -2
  187. package/package.json +2 -2
@@ -1,4 +1,9 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/components/Menu.ts
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _chunkJDCVS4SJjs = require('./chunk-JDCVS4SJ.js');
5
+
6
+ // src/components/Menu.ts
2
7
 
3
8
 
4
9
 
@@ -43,6 +48,7 @@ var _vue = require('vue');
43
48
 
44
49
 
45
50
 
51
+
46
52
 
47
53
 
48
54
  var _tigercatcore = require('@expcat/tigercat-core');
@@ -126,6 +132,10 @@ var Menu = _vue.defineComponent.call(void 0, {
126
132
  type: Number,
127
133
  default: 24
128
134
  },
135
+ popupPortal: {
136
+ type: Boolean,
137
+ default: false
138
+ },
129
139
  className: {
130
140
  type: String,
131
141
  default: void 0
@@ -165,6 +175,9 @@ var Menu = _vue.defineComponent.call(void 0, {
165
175
  ],
166
176
  setup(props, { slots, emit, attrs }) {
167
177
  const menuEl = _vue.ref.call(void 0, null);
178
+ const resolvedMode = _vue.computed.call(void 0,
179
+ () => props.collapsed && props.mode === "inline" ? "vertical" : props.mode
180
+ );
168
181
  const internalSelectedKeys = _vue.ref.call(void 0, props.defaultSelectedKeys);
169
182
  const internalOpenKeys = _vue.ref.call(void 0, props.defaultOpenKeys);
170
183
  const internalSearchValue = _vue.ref.call(void 0, props.defaultSearchValue);
@@ -201,7 +214,7 @@ var Menu = _vue.defineComponent.call(void 0, {
201
214
  };
202
215
  const menuClasses = _vue.computed.call(void 0, () => {
203
216
  return _tigercatcore.classNames.call(void 0,
204
- _tigercatcore.getMenuClasses.call(void 0, props.mode, props.theme, props.collapsed),
217
+ _tigercatcore.getMenuClasses.call(void 0, resolvedMode.value, props.theme, props.collapsed),
205
218
  props.className,
206
219
  _tigercatcore.coerceClassValue.call(void 0, attrs.class)
207
220
  );
@@ -217,15 +230,17 @@ var Menu = _vue.defineComponent.call(void 0, {
217
230
  const { class: _class, style: _style, ...rest } = attrs;
218
231
  return rest;
219
232
  });
220
- const modeRef = _vue.computed.call(void 0, () => props.mode);
233
+ const modeRef = _vue.computed.call(void 0, () => resolvedMode.value);
221
234
  const themeRef = _vue.computed.call(void 0, () => props.theme);
222
235
  const collapsedRef = _vue.computed.call(void 0, () => props.collapsed);
223
236
  const inlineIndentRef = _vue.computed.call(void 0, () => props.inlineIndent);
237
+ const popupPortalRef = _vue.computed.call(void 0, () => props.popupPortal);
224
238
  _vue.provide.call(void 0, MenuContextKey, {
225
239
  mode: modeRef,
226
240
  theme: themeRef,
227
241
  collapsed: collapsedRef,
228
242
  inlineIndent: inlineIndentRef,
243
+ popupPortal: popupPortalRef,
229
244
  selectedKeys: currentSelectedKeys,
230
245
  openKeys: currentOpenKeys,
231
246
  handleSelect,
@@ -298,7 +313,8 @@ var Menu = _vue.defineComponent.call(void 0, {
298
313
  style: menuStyle.value,
299
314
  role: "menu",
300
315
  "data-tiger-menu-root": "true",
301
- "data-tiger-menu-mode": props.mode,
316
+ "data-tiger-menu-mode": resolvedMode.value,
317
+ "data-tiger-menu-requested-mode": props.mode,
302
318
  ...passthroughAttrs.value
303
319
  },
304
320
  [...searchChild, ...dataChildren, ...slotChildren, ...emptyChild]
@@ -493,6 +509,10 @@ var MenuItemGroup = _vue.defineComponent.call(void 0, {
493
509
  type: Number,
494
510
  default: 0
495
511
  },
512
+ collapsed: {
513
+ type: Boolean,
514
+ default: void 0
515
+ },
496
516
  className: {
497
517
  type: String,
498
518
  default: void 0
@@ -519,8 +539,13 @@ var MenuItemGroup = _vue.defineComponent.call(void 0, {
519
539
  const isTarget = name === "TigerMenuItem" || name === "TigerSubMenu";
520
540
  if (!isTarget) return node;
521
541
  const existingProps = _nullishCoalesce(node.props, () => ( {}));
522
- if (existingProps.level != null) return node;
523
- return _vue.cloneVNode.call(void 0, node, { level });
542
+ if (existingProps.level != null && existingProps.collapsed != null) return node;
543
+ const nextProps = {};
544
+ if (existingProps.level == null) nextProps.level = level;
545
+ if (props.collapsed !== void 0 && existingProps.collapsed == null) {
546
+ nextProps.collapsed = props.collapsed;
547
+ }
548
+ return _vue.cloneVNode.call(void 0, node, nextProps);
524
549
  });
525
550
  };
526
551
  return () => {
@@ -619,8 +644,11 @@ var SubMenu = _vue.defineComponent.call(void 0, {
619
644
  });
620
645
  const isHovered = _vue.ref.call(void 0, false);
621
646
  const isOpenByKeyboard = _vue.ref.call(void 0, false);
647
+ const titleEl = _vue.ref.call(void 0, null);
648
+ const popupEl = _vue.ref.call(void 0, null);
622
649
  const submenuContentEl = _vue.ref.call(void 0, null);
623
650
  let heightTransitionController = null;
651
+ let popupCloseTimer = null;
624
652
  const effectiveCollapsed = _vue.computed.call(void 0, () => {
625
653
  return _nullishCoalesce(props.collapsed, () => ( (menuContext ? menuContext.collapsed.value : false)));
626
654
  });
@@ -629,15 +657,30 @@ var SubMenu = _vue.defineComponent.call(void 0, {
629
657
  if (menuContext.mode.value === "horizontal") return true;
630
658
  return menuContext.mode.value === "vertical" && effectiveCollapsed.value;
631
659
  });
660
+ const popupPortal = _vue.computed.call(void 0, () => Boolean(isPopup.value && _optionalChain([menuContext, 'optionalAccess', _7 => _7.popupPortal, 'access', _8 => _8.value])));
632
661
  const isExpanded = _vue.computed.call(void 0, () => {
633
- if (_optionalChain([menuContext, 'optionalAccess', _7 => _7.mode, 'access', _8 => _8.value]) === "horizontal" || isPopup.value) {
662
+ if (_optionalChain([menuContext, 'optionalAccess', _9 => _9.mode, 'access', _10 => _10.value]) === "horizontal" || isPopup.value) {
634
663
  return isHovered.value || isOpenByKeyboard.value;
635
664
  }
636
665
  return isOpen.value;
637
666
  });
638
667
  const hasRenderedInline = _vue.ref.call(void 0, !isPopup.value && isExpanded.value);
668
+ const popupPlacement = _vue.computed.call(void 0,
669
+ () => _optionalChain([menuContext, 'optionalAccess', _11 => _11.mode, 'access', _12 => _12.value]) === "horizontal" && props.level === 0 ? "bottom-start" : "right-start"
670
+ );
671
+ const {
672
+ x: popupX,
673
+ y: popupY,
674
+ placement: currentPopupPlacement
675
+ } = _chunkJDCVS4SJjs.useVueFloating.call(void 0, {
676
+ referenceRef: titleEl,
677
+ floatingRef: popupEl,
678
+ enabled: _vue.computed.call(void 0, () => popupPortal.value && isExpanded.value),
679
+ placement: popupPlacement.value,
680
+ offset: 4
681
+ });
639
682
  const disposeHeightTransition = () => {
640
- _optionalChain([heightTransitionController, 'optionalAccess', _9 => _9.dispose, 'call', _10 => _10()]);
683
+ _optionalChain([heightTransitionController, 'optionalAccess', _13 => _13.dispose, 'call', _14 => _14()]);
641
684
  heightTransitionController = null;
642
685
  };
643
686
  const syncHeightTransition = async () => {
@@ -668,7 +711,10 @@ var SubMenu = _vue.defineComponent.call(void 0, {
668
711
  _vue.watch.call(void 0, hasRenderedInline, () => {
669
712
  void syncHeightTransition();
670
713
  });
671
- _vue.onBeforeUnmount.call(void 0, disposeHeightTransition);
714
+ _vue.onBeforeUnmount.call(void 0, () => {
715
+ disposeHeightTransition();
716
+ if (popupCloseTimer) clearTimeout(popupCloseTimer);
717
+ });
672
718
  const titleClasses = _vue.computed.call(void 0, () => {
673
719
  if (!menuContext) return "";
674
720
  return _tigercatcore.classNames.call(void 0,
@@ -707,14 +753,14 @@ var SubMenu = _vue.defineComponent.call(void 0, {
707
753
  };
708
754
  const focusFirstChild = async () => {
709
755
  await _vue.nextTick.call(void 0, );
710
- const titleEl = document.activeElement;
711
- if (titleEl) _tigercatcore.focusFirstChildItem.call(void 0, titleEl);
756
+ const titleEl2 = document.activeElement;
757
+ if (titleEl2) _tigercatcore.focusFirstChildItem.call(void 0, titleEl2);
712
758
  };
713
759
  const handleTitleKeyDown = async (event) => {
714
760
  if (!menuContext || props.disabled) return;
715
761
  const current = event.currentTarget;
716
762
  const rootMenu = current.closest('ul[role="menu"]');
717
- const isRoot = _optionalChain([rootMenu, 'optionalAccess', _11 => _11.dataset, 'access', _12 => _12.tigerMenuRoot]) === "true";
763
+ const isRoot = _optionalChain([rootMenu, 'optionalAccess', _15 => _15.dataset, 'access', _16 => _16.tigerMenuRoot]) === "true";
718
764
  const isHorizontalRoot = isRoot && menuContext.mode.value === "horizontal";
719
765
  const nextKey = isHorizontalRoot ? "ArrowRight" : "ArrowDown";
720
766
  const prevKey = isHorizontalRoot ? "ArrowLeft" : "ArrowUp";
@@ -777,14 +823,25 @@ var SubMenu = _vue.defineComponent.call(void 0, {
777
823
  }
778
824
  };
779
825
  const handleMouseEnter = () => {
780
- if (_optionalChain([menuContext, 'optionalAccess', _13 => _13.mode, 'access', _14 => _14.value]) === "horizontal" || isPopup.value) {
826
+ if (popupCloseTimer) {
827
+ clearTimeout(popupCloseTimer);
828
+ popupCloseTimer = null;
829
+ }
830
+ if (_optionalChain([menuContext, 'optionalAccess', _17 => _17.mode, 'access', _18 => _18.value]) === "horizontal" || isPopup.value) {
781
831
  isHovered.value = true;
782
832
  }
783
833
  };
784
834
  const handleMouseLeave = () => {
785
- if (_optionalChain([menuContext, 'optionalAccess', _15 => _15.mode, 'access', _16 => _16.value]) === "horizontal" || isPopup.value) {
786
- isHovered.value = false;
787
- isOpenByKeyboard.value = false;
835
+ if (_optionalChain([menuContext, 'optionalAccess', _19 => _19.mode, 'access', _20 => _20.value]) === "horizontal" || isPopup.value) {
836
+ const close = () => {
837
+ isHovered.value = false;
838
+ isOpenByKeyboard.value = false;
839
+ };
840
+ if (popupPortal.value) {
841
+ popupCloseTimer = setTimeout(close, 120);
842
+ return;
843
+ }
844
+ close();
788
845
  }
789
846
  };
790
847
  const indentStyle = _vue.computed.call(void 0, () => {
@@ -806,6 +863,9 @@ var SubMenu = _vue.defineComponent.call(void 0, {
806
863
  const nextProps = {
807
864
  level: _nullishCoalesce(existingProps.level, () => ( nextLevel))
808
865
  };
866
+ if (existingProps.collapsed == null && isPopup.value) {
867
+ nextProps.collapsed = false;
868
+ }
809
869
  return _vue.cloneVNode.call(void 0, node, nextProps);
810
870
  });
811
871
  };
@@ -838,6 +898,7 @@ var SubMenu = _vue.defineComponent.call(void 0, {
838
898
  "button",
839
899
  {
840
900
  type: "button",
901
+ ref: titleEl,
841
902
  class: titleClasses.value,
842
903
  style: titleStyle.value,
843
904
  onClick: handleTitleClick,
@@ -853,19 +914,35 @@ var SubMenu = _vue.defineComponent.call(void 0, {
853
914
  },
854
915
  titleChildren
855
916
  );
856
- const contentNode = isPopup.value ? _vue.h.call(void 0,
857
- "ul",
858
- {
859
- class: contentClasses.value,
860
- style: {
861
- display: isExpanded.value ? "block" : "none",
862
- ...popupZIndex.value
917
+ const popupContentNode = () => {
918
+ const popupStyle = popupPortal.value ? {
919
+ display: isExpanded.value ? "block" : "none",
920
+ position: "absolute",
921
+ left: `${popupX.value}px`,
922
+ top: `${popupY.value}px`,
923
+ transformOrigin: _tigercatcore.getTransformOrigin.call(void 0, currentPopupPlacement.value),
924
+ ...popupZIndex.value
925
+ } : {
926
+ display: isExpanded.value ? "block" : "none",
927
+ ...popupZIndex.value
928
+ };
929
+ const node = _vue.h.call(void 0,
930
+ "ul",
931
+ {
932
+ ref: popupPortal.value ? popupEl : void 0,
933
+ class: contentClasses.value,
934
+ style: popupStyle,
935
+ role: "menu",
936
+ "aria-hidden": isExpanded.value ? void 0 : "true",
937
+ onMouseenter: popupPortal.value ? handleMouseEnter : void 0,
938
+ onMouseleave: popupPortal.value ? handleMouseLeave : void 0,
939
+ "data-tiger-submenu-popup": ""
863
940
  },
864
- role: "menu",
865
- "aria-hidden": isExpanded.value ? void 0 : "true"
866
- },
867
- withChildLevel(_optionalChain([slots, 'access', _17 => _17.default, 'optionalCall', _18 => _18()]))
868
- ) : hasRenderedInline.value ? _vue.h.call(void 0,
941
+ withChildLevel(_optionalChain([slots, 'access', _21 => _21.default, 'optionalCall', _22 => _22()]))
942
+ );
943
+ return popupPortal.value ? _chunkJDCVS4SJjs.renderVueBodyTeleport.call(void 0, node) : node;
944
+ };
945
+ const contentNode = isPopup.value ? popupContentNode() : hasRenderedInline.value ? _vue.h.call(void 0,
869
946
  "div",
870
947
  {
871
948
  ref: submenuContentEl,
@@ -882,14 +959,14 @@ var SubMenu = _vue.defineComponent.call(void 0, {
882
959
  class: contentClasses.value,
883
960
  role: "menu"
884
961
  },
885
- withChildLevel(_optionalChain([slots, 'access', _19 => _19.default, 'optionalCall', _20 => _20()]))
962
+ withChildLevel(_optionalChain([slots, 'access', _23 => _23.default, 'optionalCall', _24 => _24()]))
886
963
  )
887
964
  ]
888
965
  ) : null;
889
966
  return _vue.h.call(void 0,
890
967
  "li",
891
968
  {
892
- class: isPopup.value ? "relative" : "",
969
+ class: isPopup.value && !popupPortal.value ? "relative" : "",
893
970
  onMouseenter: handleMouseEnter,
894
971
  onMouseleave: handleMouseLeave,
895
972
  role: "none"
@@ -107,18 +107,18 @@ declare const ActivityFeed: vue.DefineComponent<vue.ExtractPropTypes<{
107
107
  default: undefined;
108
108
  };
109
109
  }>> & Readonly<{}>, {
110
+ loadingText: string;
111
+ emptyText: string;
112
+ className: string;
113
+ style: Record<string, string | number>;
114
+ loading: boolean;
115
+ groupBy: (item: ActivityItem) => string;
110
116
  items: ActivityItem[];
111
117
  groups: ActivityGroup[];
112
- groupBy: (item: ActivityItem) => string;
113
118
  groupOrder: string[];
114
- loading: boolean;
115
- loadingText: string;
116
- emptyText: string;
117
119
  showAvatar: boolean;
118
120
  showTime: boolean;
119
121
  showGroupTitle: boolean;
120
- className: string;
121
- style: Record<string, string | number>;
122
122
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
123
123
 
124
124
  export { ActivityFeed, type VueActivityFeedProps, ActivityFeed as default };
@@ -107,18 +107,18 @@ declare const ActivityFeed: vue.DefineComponent<vue.ExtractPropTypes<{
107
107
  default: undefined;
108
108
  };
109
109
  }>> & Readonly<{}>, {
110
+ loadingText: string;
111
+ emptyText: string;
112
+ className: string;
113
+ style: Record<string, string | number>;
114
+ loading: boolean;
115
+ groupBy: (item: ActivityItem) => string;
110
116
  items: ActivityItem[];
111
117
  groups: ActivityGroup[];
112
- groupBy: (item: ActivityItem) => string;
113
118
  groupOrder: string[];
114
- loading: boolean;
115
- loadingText: string;
116
- emptyText: string;
117
119
  showAvatar: boolean;
118
120
  showTime: boolean;
119
121
  showGroupTitle: boolean;
120
- className: string;
121
- style: Record<string, string | number>;
122
122
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
123
123
 
124
124
  export { ActivityFeed, type VueActivityFeedProps, ActivityFeed as default };
@@ -204,13 +204,13 @@ declare const Alert: vue.DefineComponent<vue.ExtractPropTypes<{
204
204
  }>> & Readonly<{
205
205
  onClose?: ((...args: any[]) => any) | undefined;
206
206
  }>, {
207
+ type: AlertType;
208
+ closeAriaLabel: string;
207
209
  size: AlertSize;
208
210
  className: string;
209
211
  style: Record<string, string | number>;
210
- type: AlertType;
211
212
  title: string;
212
213
  closable: boolean;
213
- closeAriaLabel: string;
214
214
  showIcon: boolean;
215
215
  description: string;
216
216
  duration: number;
@@ -204,13 +204,13 @@ declare const Alert: vue.DefineComponent<vue.ExtractPropTypes<{
204
204
  }>> & Readonly<{
205
205
  onClose?: ((...args: any[]) => any) | undefined;
206
206
  }>, {
207
+ type: AlertType;
208
+ closeAriaLabel: string;
207
209
  size: AlertSize;
208
210
  className: string;
209
211
  style: Record<string, string | number>;
210
- type: AlertType;
211
212
  title: string;
212
213
  closable: boolean;
213
- closeAriaLabel: string;
214
214
  showIcon: boolean;
215
215
  description: string;
216
216
  duration: number;
@@ -236,9 +236,9 @@ declare const Anchor: vue.DefineComponent<vue.ExtractPropTypes<{
236
236
  onChange?: ((...args: any[]) => any) | undefined;
237
237
  onClick?: ((...args: any[]) => any) | undefined;
238
238
  }>, {
239
+ direction: AnchorDirection;
239
240
  className: string;
240
241
  style: Record<string, unknown>;
241
- direction: AnchorDirection;
242
242
  offsetTop: number;
243
243
  targetOffset: number;
244
244
  bounds: number;
@@ -236,9 +236,9 @@ declare const Anchor: vue.DefineComponent<vue.ExtractPropTypes<{
236
236
  onChange?: ((...args: any[]) => any) | undefined;
237
237
  onClick?: ((...args: any[]) => any) | undefined;
238
238
  }>, {
239
+ direction: AnchorDirection;
239
240
  className: string;
240
241
  style: Record<string, unknown>;
241
- direction: AnchorDirection;
242
242
  offsetTop: number;
243
243
  targetOffset: number;
244
244
  bounds: number;
@@ -403,11 +403,11 @@ declare const AreaChart: vue.DefineComponent<vue.ExtractPropTypes<{
403
403
  "onSeries-click"?: ((...args: any[]) => any) | undefined;
404
404
  "onSeries-hover"?: ((...args: any[]) => any) | undefined;
405
405
  }>, {
406
- hoverable: boolean;
407
406
  width: number;
408
407
  height: number;
409
408
  padding: ChartPadding;
410
409
  gradient: boolean;
410
+ hoverable: boolean;
411
411
  strokeWidth: number;
412
412
  fillOpacity: number;
413
413
  selectable: boolean;
@@ -403,11 +403,11 @@ declare const AreaChart: vue.DefineComponent<vue.ExtractPropTypes<{
403
403
  "onSeries-click"?: ((...args: any[]) => any) | undefined;
404
404
  "onSeries-hover"?: ((...args: any[]) => any) | undefined;
405
405
  }>, {
406
- hoverable: boolean;
407
406
  width: number;
408
407
  height: number;
409
408
  padding: ChartPadding;
410
409
  gradient: boolean;
410
+ hoverable: boolean;
411
411
  strokeWidth: number;
412
412
  fillOpacity: number;
413
413
  selectable: boolean;
@@ -46,7 +46,7 @@ declare const AutoComplete: vue.DefineComponent<vue.ExtractPropTypes<{
46
46
  };
47
47
  }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
48
48
  [key: string]: any;
49
- }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("change" | "select" | "search" | "update:modelValue")[], "change" | "select" | "search" | "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
49
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("search" | "select" | "change" | "update:modelValue")[], "search" | "select" | "change" | "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
50
50
  modelValue: {
51
51
  type: PropType<string | number>;
52
52
  default: string;
@@ -88,8 +88,8 @@ declare const AutoComplete: vue.DefineComponent<vue.ExtractPropTypes<{
88
88
  default: boolean;
89
89
  };
90
90
  }>> & Readonly<{
91
- onChange?: ((...args: any[]) => any) | undefined;
92
91
  onSelect?: ((...args: any[]) => any) | undefined;
92
+ onChange?: ((...args: any[]) => any) | undefined;
93
93
  onSearch?: ((...args: any[]) => any) | undefined;
94
94
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
95
95
  }>, {
@@ -46,7 +46,7 @@ declare const AutoComplete: vue.DefineComponent<vue.ExtractPropTypes<{
46
46
  };
47
47
  }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
48
48
  [key: string]: any;
49
- }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("change" | "select" | "search" | "update:modelValue")[], "change" | "select" | "search" | "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
49
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("search" | "select" | "change" | "update:modelValue")[], "search" | "select" | "change" | "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
50
50
  modelValue: {
51
51
  type: PropType<string | number>;
52
52
  default: string;
@@ -88,8 +88,8 @@ declare const AutoComplete: vue.DefineComponent<vue.ExtractPropTypes<{
88
88
  default: boolean;
89
89
  };
90
90
  }>> & Readonly<{
91
- onChange?: ((...args: any[]) => any) | undefined;
92
91
  onSelect?: ((...args: any[]) => any) | undefined;
92
+ onChange?: ((...args: any[]) => any) | undefined;
93
93
  onSearch?: ((...args: any[]) => any) | undefined;
94
94
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
95
95
  }>, {
@@ -151,9 +151,9 @@ declare const Avatar: vue.DefineComponent<vue.ExtractPropTypes<{
151
151
  size: AvatarSize;
152
152
  className: string;
153
153
  style: Record<string, string | number>;
154
+ text: string;
154
155
  src: string;
155
156
  alt: string;
156
- text: string;
157
157
  shape: AvatarShape;
158
158
  bgColor: string;
159
159
  textColor: string;
@@ -151,9 +151,9 @@ declare const Avatar: vue.DefineComponent<vue.ExtractPropTypes<{
151
151
  size: AvatarSize;
152
152
  className: string;
153
153
  style: Record<string, string | number>;
154
+ text: string;
154
155
  src: string;
155
156
  alt: string;
156
- text: string;
157
157
  shape: AvatarShape;
158
158
  bgColor: string;
159
159
  textColor: string;
@@ -92,14 +92,14 @@ declare const Badge: vue.DefineComponent<vue.ExtractPropTypes<{
92
92
  default: undefined;
93
93
  };
94
94
  }>> & Readonly<{}>, {
95
+ type: BadgeType;
95
96
  size: BadgeSize;
96
97
  className: string;
97
98
  style: Record<string, string | number>;
98
- type: BadgeType;
99
99
  variant: BadgeVariant;
100
- position: BadgePosition;
101
- content: string | number;
102
100
  max: number;
101
+ content: string | number;
102
+ position: BadgePosition;
103
103
  showZero: boolean;
104
104
  standalone: boolean;
105
105
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
@@ -92,14 +92,14 @@ declare const Badge: vue.DefineComponent<vue.ExtractPropTypes<{
92
92
  default: undefined;
93
93
  };
94
94
  }>> & Readonly<{}>, {
95
+ type: BadgeType;
95
96
  size: BadgeSize;
96
97
  className: string;
97
98
  style: Record<string, string | number>;
98
- type: BadgeType;
99
99
  variant: BadgeVariant;
100
- position: BadgePosition;
101
- content: string | number;
102
100
  max: number;
101
+ content: string | number;
102
+ position: BadgePosition;
103
103
  showZero: boolean;
104
104
  standalone: boolean;
105
105
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
@@ -364,11 +364,11 @@ declare const BarChart: vue.DefineComponent<vue.ExtractPropTypes<{
364
364
  "onBar-click"?: ((...args: any[]) => any) | undefined;
365
365
  "onBar-hover"?: ((...args: any[]) => any) | undefined;
366
366
  }>, {
367
- hoverable: boolean;
368
367
  width: number;
369
368
  height: number;
370
369
  padding: ChartPadding;
371
370
  gradient: boolean;
371
+ hoverable: boolean;
372
372
  selectable: boolean;
373
373
  xTicks: number;
374
374
  yTicks: number;
@@ -364,11 +364,11 @@ declare const BarChart: vue.DefineComponent<vue.ExtractPropTypes<{
364
364
  "onBar-click"?: ((...args: any[]) => any) | undefined;
365
365
  "onBar-hover"?: ((...args: any[]) => any) | undefined;
366
366
  }>, {
367
- hoverable: boolean;
368
367
  width: number;
369
368
  height: number;
370
369
  padding: ChartPadding;
371
370
  gradient: boolean;
371
+ hoverable: boolean;
372
372
  selectable: boolean;
373
373
  xTicks: number;
374
374
  yTicks: number;
@@ -136,12 +136,12 @@ declare const BreadcrumbItem: vue.DefineComponent<vue.ExtractPropTypes<{
136
136
  }>, {
137
137
  className: string;
138
138
  style: Record<string, unknown>;
139
- href: string;
140
- target: "_blank" | "_self" | "_parent" | "_top";
141
139
  icon: string | VNode<vue.RendererNode, vue.RendererElement, {
142
140
  [key: string]: any;
143
141
  }>;
144
142
  separator: string;
143
+ href: string;
144
+ target: "_blank" | "_self" | "_parent" | "_top";
145
145
  current: boolean;
146
146
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
147
147
  declare const Breadcrumb: vue.DefineComponent<vue.ExtractPropTypes<{
@@ -136,12 +136,12 @@ declare const BreadcrumbItem: vue.DefineComponent<vue.ExtractPropTypes<{
136
136
  }>, {
137
137
  className: string;
138
138
  style: Record<string, unknown>;
139
- href: string;
140
- target: "_blank" | "_self" | "_parent" | "_top";
141
139
  icon: string | VNode<vue.RendererNode, vue.RendererElement, {
142
140
  [key: string]: any;
143
141
  }>;
144
142
  separator: string;
143
+ href: string;
144
+ target: "_blank" | "_self" | "_parent" | "_top";
145
145
  current: boolean;
146
146
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
147
147
  declare const Breadcrumb: vue.DefineComponent<vue.ExtractPropTypes<{
@@ -132,13 +132,13 @@ declare const Button: vue.DefineComponent<vue.ExtractPropTypes<{
132
132
  onClick?: ((...args: any[]) => any) | undefined;
133
133
  }>, {
134
134
  size: ButtonSize;
135
- loading: boolean;
136
135
  className: string;
137
136
  style: Record<string, unknown>;
138
- variant: ButtonVariant;
139
- danger: boolean;
140
137
  disabled: boolean;
138
+ loading: boolean;
141
139
  block: boolean;
140
+ danger: boolean;
141
+ variant: ButtonVariant;
142
142
  iconPosition: ButtonIconPosition;
143
143
  htmlType: ButtonHtmlType;
144
144
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
@@ -132,13 +132,13 @@ declare const Button: vue.DefineComponent<vue.ExtractPropTypes<{
132
132
  onClick?: ((...args: any[]) => any) | undefined;
133
133
  }>, {
134
134
  size: ButtonSize;
135
- loading: boolean;
136
135
  className: string;
137
136
  style: Record<string, unknown>;
138
- variant: ButtonVariant;
139
- danger: boolean;
140
137
  disabled: boolean;
138
+ loading: boolean;
141
139
  block: boolean;
140
+ danger: boolean;
141
+ variant: ButtonVariant;
142
142
  iconPosition: ButtonIconPosition;
143
143
  htmlType: ButtonHtmlType;
144
144
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
@@ -34,9 +34,9 @@ declare const ButtonGroup: vue.DefineComponent<vue.ExtractPropTypes<{
34
34
  default: undefined;
35
35
  };
36
36
  }>> & Readonly<{}>, {
37
+ vertical: boolean;
37
38
  size: ButtonSize;
38
39
  className: string;
39
- vertical: boolean;
40
40
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
41
41
 
42
42
  export { BUTTON_GROUP_INJECTION_KEY, ButtonGroup, type ButtonGroupContext, type VueButtonGroupProps, ButtonGroup as default };
@@ -34,9 +34,9 @@ declare const ButtonGroup: vue.DefineComponent<vue.ExtractPropTypes<{
34
34
  default: undefined;
35
35
  };
36
36
  }>> & Readonly<{}>, {
37
+ vertical: boolean;
37
38
  size: ButtonSize;
38
39
  className: string;
39
- vertical: boolean;
40
40
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
41
41
 
42
42
  export { BUTTON_GROUP_INJECTION_KEY, ButtonGroup, type ButtonGroupContext, type VueButtonGroupProps, ButtonGroup as default };
@@ -60,8 +60,8 @@ declare const Calendar: vue.DefineComponent<vue.ExtractPropTypes<{
60
60
  }>, {
61
61
  className: string;
62
62
  mode: CalendarMode;
63
- fullscreen: boolean;
64
63
  modelValue: Date;
64
+ fullscreen: boolean;
65
65
  disabledDate: (date: Date) => boolean;
66
66
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
67
67