mdui 2.0.2 → 2.0.4

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 (118) hide show
  1. package/components/avatar/index.d.ts +17 -15
  2. package/components/avatar/index.js +7 -6
  3. package/components/badge/index.d.ts +11 -8
  4. package/components/badge/index.js +9 -7
  5. package/components/bottom-app-bar/index.d.ts +11 -4
  6. package/components/bottom-app-bar/index.js +8 -9
  7. package/components/button/button-base-style.js +1 -1
  8. package/components/button/button-base.d.ts +46 -47
  9. package/components/button/button-base.js +27 -25
  10. package/components/button/index.d.ts +19 -14
  11. package/components/button/index.js +12 -12
  12. package/components/button-icon/index.d.ts +15 -9
  13. package/components/button-icon/index.js +8 -9
  14. package/components/card/index.d.ts +15 -11
  15. package/components/card/index.js +10 -9
  16. package/components/checkbox/index.d.ts +30 -23
  17. package/components/checkbox/index.js +25 -25
  18. package/components/chip/index.d.ts +27 -20
  19. package/components/chip/index.js +19 -20
  20. package/components/circular-progress/index.d.ts +6 -4
  21. package/components/circular-progress/index.js +4 -3
  22. package/components/collapse/collapse-item.d.ts +17 -6
  23. package/components/collapse/collapse-item.js +7 -7
  24. package/components/collapse/collapse.d.ts +16 -11
  25. package/components/collapse/collapse.js +10 -10
  26. package/components/dialog/index.d.ts +22 -15
  27. package/components/dialog/index.js +23 -27
  28. package/components/divider/index.d.ts +7 -5
  29. package/components/divider/index.js +6 -5
  30. package/components/dropdown/index.d.ts +44 -37
  31. package/components/dropdown/index.js +50 -48
  32. package/components/fab/index.d.ts +12 -7
  33. package/components/fab/index.js +6 -6
  34. package/components/icon/index.d.ts +4 -2
  35. package/components/icon/index.js +3 -2
  36. package/components/layout/layout-item-base.d.ts +3 -2
  37. package/components/layout/layout-item-base.js +2 -2
  38. package/components/layout/layout-item.d.ts +11 -10
  39. package/components/layout/layout-item.js +6 -6
  40. package/components/layout/layout-main.d.ts +6 -4
  41. package/components/layout/layout-main.js +5 -4
  42. package/components/layout/layout.d.ts +6 -4
  43. package/components/layout/layout.js +5 -4
  44. package/components/linear-progress/index.d.ts +8 -6
  45. package/components/linear-progress/index.js +6 -5
  46. package/components/list/list-item-style.js +1 -1
  47. package/components/list/list-item.d.ts +24 -20
  48. package/components/list/list-item.js +10 -9
  49. package/components/list/list-subheader.d.ts +6 -4
  50. package/components/list/list-subheader.js +5 -4
  51. package/components/list/list.d.ts +5 -3
  52. package/components/list/list.js +4 -3
  53. package/components/menu/menu-item.d.ts +15 -7
  54. package/components/menu/menu-item.js +11 -15
  55. package/components/menu/menu.d.ts +20 -20
  56. package/components/menu/menu.js +13 -13
  57. package/components/navigation-bar/navigation-bar-item.d.ts +12 -8
  58. package/components/navigation-bar/navigation-bar-item.js +7 -6
  59. package/components/navigation-bar/navigation-bar.d.ts +17 -9
  60. package/components/navigation-bar/navigation-bar.js +15 -13
  61. package/components/navigation-drawer/index.d.ts +27 -21
  62. package/components/navigation-drawer/index.js +51 -38
  63. package/components/navigation-drawer/style.js +1 -1
  64. package/components/navigation-rail/navigation-rail-item.d.ts +13 -9
  65. package/components/navigation-rail/navigation-rail-item.js +7 -6
  66. package/components/navigation-rail/navigation-rail.d.ts +14 -12
  67. package/components/navigation-rail/navigation-rail.js +13 -12
  68. package/components/radio/radio-group.d.ts +20 -15
  69. package/components/radio/radio-group.js +21 -24
  70. package/components/radio/radio.d.ts +11 -6
  71. package/components/radio/radio.js +7 -7
  72. package/components/range-slider/index.d.ts +13 -8
  73. package/components/range-slider/index.js +10 -7
  74. package/components/ripple/index.d.ts +4 -2
  75. package/components/ripple/index.js +3 -2
  76. package/components/ripple/ripple-mixin.d.ts +1 -1
  77. package/components/ripple/ripple-mixin.js +0 -1
  78. package/components/segmented-button/segmented-button-group-style.js +1 -1
  79. package/components/segmented-button/segmented-button-group.d.ts +23 -22
  80. package/components/segmented-button/segmented-button-group.js +20 -23
  81. package/components/segmented-button/segmented-button.d.ts +9 -4
  82. package/components/segmented-button/segmented-button.js +3 -3
  83. package/components/select/index.d.ts +42 -35
  84. package/components/select/index.js +24 -25
  85. package/components/slider/index.d.ts +9 -2
  86. package/components/slider/index.js +5 -10
  87. package/components/slider/slider-base.d.ts +22 -18
  88. package/components/slider/slider-base.js +40 -21
  89. package/components/snackbar/index.d.ts +30 -23
  90. package/components/snackbar/index.js +25 -25
  91. package/components/switch/index.d.ts +24 -17
  92. package/components/switch/index.js +18 -18
  93. package/components/tabs/tab-panel.d.ts +7 -5
  94. package/components/tabs/tab-panel.js +5 -4
  95. package/components/tabs/tab.d.ts +13 -9
  96. package/components/tabs/tab.js +8 -7
  97. package/components/tabs/tabs.d.ts +24 -21
  98. package/components/tabs/tabs.js +24 -21
  99. package/components/text-field/index.d.ts +62 -54
  100. package/components/text-field/index.js +37 -37
  101. package/components/tooltip/index.d.ts +40 -33
  102. package/components/tooltip/index.js +45 -43
  103. package/components/top-app-bar/top-app-bar-title.d.ts +8 -6
  104. package/components/top-app-bar/top-app-bar-title.js +7 -6
  105. package/components/top-app-bar/top-app-bar.d.ts +12 -6
  106. package/components/top-app-bar/top-app-bar.js +9 -10
  107. package/css-data.en.json +2826 -0
  108. package/css-data.zh-cn.json +374 -367
  109. package/custom-elements.json +3844 -3824
  110. package/html-data.en.json +6551 -0
  111. package/html-data.zh-cn.json +1621 -1636
  112. package/jsx.en.d.ts +3303 -0
  113. package/jsx.zh-cn.d.ts +3351 -0
  114. package/mdui.esm.js +9 -9
  115. package/mdui.global.js +9 -9
  116. package/package.json +7 -5
  117. package/web-types.en.json +11718 -0
  118. package/web-types.zh-cn.json +3613 -3623
@@ -1,9 +1,9 @@
1
- import { LitElement } from 'lit';
2
1
  import '@mdui/jq/methods/css.js';
3
2
  import '@mdui/jq/methods/filter.js';
4
3
  import '@mdui/jq/methods/height.js';
5
4
  import '@mdui/jq/methods/prop.js';
6
5
  import '@mdui/jq/methods/width.js';
6
+ import { MduiElement } from '@mdui/shared/base/mdui-element.js';
7
7
  import type { CSSResultGroup, TemplateResult, PropertyValues } from 'lit';
8
8
  /**
9
9
  * @summary 工具提示组件
@@ -19,57 +19,57 @@ import type { CSSResultGroup, TemplateResult, PropertyValues } from 'lit';
19
19
  * @event close - tooltip 开始隐藏时,事件被触发。可以通过调用 `event.preventDefault()` 阻止 tooltip 关闭
20
20
  * @event closed - tooltip 隐藏动画完成时,事件被触发
21
21
  *
22
- * @slot - tooltip 触发的目标元素,仅 `default` slot 中的第一个元素会作为目标元素
23
- * @slot headline - tooltip 的标题,仅 `variant="rich"` 时该 slot 才有效
22
+ * @slot - tooltip 触发的目标元素,只有 `default` slot 中的第一个元素会作为目标元素
23
+ * @slot headline - tooltip 的标题,只有当 `variant="rich"` 时,此 slot 才有效
24
24
  * @slot content - tooltip 的内容,可以包含 HTML。若只包含纯文本,可以使用 `content` 属性代替
25
- * @slot action - tooltip 底部的按钮,仅 `variant="rich"` 时该 slot 才有效
25
+ * @slot action - tooltip 底部的按钮,只有当 `variant="rich"` 时,此 slot 才有效
26
26
  *
27
- * @csspart popup - 工具提示的容器
27
+ * @csspart popup - tooltip 的容器
28
28
  * @csspart headline - 标题
29
29
  * @csspart content - 正文
30
30
  * @csspart action - 操作按钮
31
31
  *
32
- * @cssprop --shape-corner-plain - variant="plain" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
33
- * @cssprop --shape-corner-rich - variant="rich" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
34
- * @cssprop --z-index - 组件的 CSS `z-index` 值
32
+ * @cssprop --shape-corner-plain - variant="plain" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
33
+ * @cssprop --shape-corner-rich - variant="rich" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
34
+ * @cssprop --z-index - 组件的 CSS `z-index` 值
35
35
  */
36
- export declare class Tooltip extends LitElement {
36
+ export declare class Tooltip extends MduiElement<TooltipEventMap> {
37
37
  static styles: CSSResultGroup;
38
38
  /**
39
- * tooltip 的形状。默认为 `plain`。可选值为:
39
+ * tooltip 的形状。默认为 `plain`。可选值包括:
40
40
  *
41
- * * `plain`:纯文本,用于简单的单行文本
42
- * * `rich`:富文本,可包含标题、正文、及操作按钮
41
+ * * `plain`:纯文本,适用于简单的单行文本
42
+ * * `rich`:富文本,可以包含标题、正文和操作按钮
43
43
  */
44
- variant: /*纯文本,用于简单的单行文本*/ 'plain' | /*富文本,可包含标题、正文、及操作按钮*/ 'rich';
44
+ variant: /*纯文本,适用于简单的单行文本*/ 'plain' | /*富文本,可以包含标题、正文和操作按钮*/ 'rich';
45
45
  /**
46
- * tooltip 的位置。默认为 `auto`。可选值为:
46
+ * tooltip 的位置。默认为 `auto`。可选值包括:
47
47
  *
48
48
  * * `auto`:自动判断位置。`variant="plan"` 时,优先使用 `top`;`variant="rich"` 时,优先使用 `bottom-right`
49
49
  * * `top-left`:位于左上方
50
- * * `top-start`:位于上方,且左对齐
51
- * * `top`:位于上方,且居中对齐
52
- * * `top-end`:位于上方,且右对齐
50
+ * * `top-start`:位于上方,左对齐
51
+ * * `top`:位于上方,居中对齐
52
+ * * `top-end`:位于上方,右对齐
53
53
  * * `top-right`:位于右上方
54
54
  * * `bottom-left`:位于左下方
55
- * * `bottom-start`:位于下方,且左对齐
56
- * * `bottom`:位于下方,且居中对齐
57
- * * `bottom-end`:位于下方,且右对齐
55
+ * * `bottom-start`:位于下方,左对齐
56
+ * * `bottom`:位于下方,居中对齐
57
+ * * `bottom-end`:位于下方,右对齐
58
58
  * * `bottom-right`:位于右下方
59
- * * `left-start`:位于左侧,且顶部对齐
60
- * * `left`:位于左侧,且居中对齐
61
- * * `left-end`:位于左侧,且底部对齐
62
- * * `right-start`:位于右侧,且顶部对齐
63
- * * `right`:位于右侧,且居中对齐
64
- * * `right-end`:位于右侧,且底部对齐
59
+ * * `left-start`:位于左侧,顶部对齐
60
+ * * `left`:位于左侧,居中对齐
61
+ * * `left-end`:位于左侧,底部对齐
62
+ * * `right-start`:位于右侧,顶部对齐
63
+ * * `right`:位于右侧,居中对齐
64
+ * * `right-end`:位于右侧,底部对齐
65
65
  */
66
- placement: /*自动判断位置*/ 'auto' | /*位于左上方*/ 'top-left' | /*位于上方,且左对齐*/ 'top-start' | /*位于上方,且居中对齐*/ 'top' | /*位于上方,且右对齐*/ 'top-end' | /*位于右上方*/ 'top-right' | /*位于左下方*/ 'bottom-left' | /*位于下方,且左对齐*/ 'bottom-start' | /*位于下方,且居中对齐*/ 'bottom' | /*位于下方,且右对齐*/ 'bottom-end' | /*位于右下方*/ 'bottom-right' | /*位于左侧,且顶部对齐*/ 'left-start' | /*位于左侧,且居中对齐*/ 'left' | /*位于左侧,且底部对齐*/ 'left-end' | /*位于右侧,且顶部对齐*/ 'right-start' | /*位于右侧,且居中对齐*/ 'right' | /*位于右侧,且底部对齐*/ 'right-end';
66
+ placement: /*自动判断位置*/ 'auto' | /*位于左上方*/ 'top-left' | /*位于上方,左对齐*/ 'top-start' | /*位于上方,居中对齐*/ 'top' | /*位于上方,右对齐*/ 'top-end' | /*位于右上方*/ 'top-right' | /*位于左下方*/ 'bottom-left' | /*位于下方,左对齐*/ 'bottom-start' | /*位于下方,居中对齐*/ 'bottom' | /*位于下方,右对齐*/ 'bottom-end' | /*位于右下方*/ 'bottom-right' | /*位于左侧,顶部对齐*/ 'left-start' | /*位于左侧,居中对齐*/ 'left' | /*位于左侧,底部对齐*/ 'left-end' | /*位于右侧,顶部对齐*/ 'right-start' | /*位于右侧,居中对齐*/ 'right' | /*位于右侧,底部对齐*/ 'right-end';
67
67
  /**
68
- * hover 触发显示的延时,单位为毫秒
68
+ * 鼠标悬浮触发显示的延时,单位为毫秒
69
69
  */
70
70
  openDelay: number;
71
71
  /**
72
- * hover 触发隐藏的延时,单位为毫秒
72
+ * 鼠标悬浮触发隐藏的延时,单位为毫秒
73
73
  */
74
74
  closeDelay: number;
75
75
  /**
@@ -81,14 +81,14 @@ export declare class Tooltip extends LitElement {
81
81
  */
82
82
  content?: string;
83
83
  /**
84
- * 触发方式,支持传入多个值,用空格分隔。可选值为:
84
+ * 触发方式,支持多个值,用空格分隔。可选值包括:
85
85
  *
86
86
  * * `click`:点击时触发
87
- * * `hover`:鼠标悬浮触发
87
+ * * `hover`:鼠标悬浮时触发
88
88
  * * `focus`:聚焦时触发
89
- * * `manual`:使用了该值时,只能使用编程方式打开和关闭 tooltip,且不能再指定其他触发方式
89
+ * * `manual`:只能通过编程方式打开和关闭 tooltip,不能再指定其他触发方式
90
90
  */
91
- trigger: /*点击时触发*/ 'click' | /*鼠标悬浮触发*/ 'hover' | /*聚焦时触发*/ 'focus' | /*使用了该值时,只能使用编程方式打开和关闭 tooltip,且不能再指定其他触发方式*/ 'manual' | string;
91
+ trigger: /*点击时触发*/ 'click' | /*鼠标悬浮时触发*/ 'hover' | /*聚焦时触发*/ 'focus' | /*只能通过编程方式打开和关闭 tooltip,不能再指定其他触发方式*/ 'manual' | string;
92
92
  /**
93
93
  * 是否禁用 tooltip
94
94
  */
@@ -98,6 +98,7 @@ export declare class Tooltip extends LitElement {
98
98
  */
99
99
  open: boolean;
100
100
  private observeResize?;
101
+ private overflowAncestors?;
101
102
  private hoverTimeout;
102
103
  private readonly popupRef;
103
104
  private readonly hasSlotController;
@@ -133,6 +134,12 @@ export declare class Tooltip extends LitElement {
133
134
  private onWindowScroll;
134
135
  private updatePositioner;
135
136
  }
137
+ export interface TooltipEventMap {
138
+ open: CustomEvent<void>;
139
+ opened: CustomEvent<void>;
140
+ close: CustomEvent<void>;
141
+ closed: CustomEvent<void>;
142
+ }
136
143
  declare global {
137
144
  interface HTMLElementTagNameMap {
138
145
  'mdui-tooltip': Tooltip;
@@ -1,21 +1,22 @@
1
1
  import { __decorate } from "tslib";
2
- import { html, LitElement } from 'lit';
2
+ import { html } from 'lit';
3
3
  import { customElement, property } from 'lit/decorators.js';
4
4
  import { createRef, ref } from 'lit/directives/ref.js';
5
5
  import { when } from 'lit/directives/when.js';
6
+ import { getOverflowAncestors } from '@floating-ui/utils/dom';
6
7
  import { $ } from '@mdui/jq/$.js';
7
8
  import '@mdui/jq/methods/css.js';
8
9
  import '@mdui/jq/methods/filter.js';
9
10
  import '@mdui/jq/methods/height.js';
10
11
  import '@mdui/jq/methods/prop.js';
11
12
  import '@mdui/jq/methods/width.js';
13
+ import { MduiElement } from '@mdui/shared/base/mdui-element.js';
12
14
  import { DefinedController } from '@mdui/shared/controllers/defined.js';
13
15
  import { HasSlotController } from '@mdui/shared/controllers/has-slot.js';
14
16
  import { HoverController } from '@mdui/shared/controllers/hover.js';
15
17
  import { watch } from '@mdui/shared/decorators/watch.js';
16
18
  import { animateTo, stopAnimations } from '@mdui/shared/helpers/animate.js';
17
19
  import { booleanConverter } from '@mdui/shared/helpers/decorator.js';
18
- import { emit } from '@mdui/shared/helpers/event.js';
19
20
  import { getDuration, getEasing } from '@mdui/shared/helpers/motion.js';
20
21
  import { observeResize } from '@mdui/shared/helpers/observeResize.js';
21
22
  import { componentStyle } from '@mdui/shared/lit-styles/component-style.js';
@@ -34,67 +35,67 @@ import { style } from './style.js';
34
35
  * @event close - tooltip 开始隐藏时,事件被触发。可以通过调用 `event.preventDefault()` 阻止 tooltip 关闭
35
36
  * @event closed - tooltip 隐藏动画完成时,事件被触发
36
37
  *
37
- * @slot - tooltip 触发的目标元素,仅 `default` slot 中的第一个元素会作为目标元素
38
- * @slot headline - tooltip 的标题,仅 `variant="rich"` 时该 slot 才有效
38
+ * @slot - tooltip 触发的目标元素,只有 `default` slot 中的第一个元素会作为目标元素
39
+ * @slot headline - tooltip 的标题,只有当 `variant="rich"` 时,此 slot 才有效
39
40
  * @slot content - tooltip 的内容,可以包含 HTML。若只包含纯文本,可以使用 `content` 属性代替
40
- * @slot action - tooltip 底部的按钮,仅 `variant="rich"` 时该 slot 才有效
41
+ * @slot action - tooltip 底部的按钮,只有当 `variant="rich"` 时,此 slot 才有效
41
42
  *
42
- * @csspart popup - 工具提示的容器
43
+ * @csspart popup - tooltip 的容器
43
44
  * @csspart headline - 标题
44
45
  * @csspart content - 正文
45
46
  * @csspart action - 操作按钮
46
47
  *
47
- * @cssprop --shape-corner-plain - variant="plain" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
48
- * @cssprop --shape-corner-rich - variant="rich" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
49
- * @cssprop --z-index - 组件的 CSS `z-index` 值
48
+ * @cssprop --shape-corner-plain - variant="plain" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
49
+ * @cssprop --shape-corner-rich - variant="rich" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
50
+ * @cssprop --z-index - 组件的 CSS `z-index` 值
50
51
  */
51
- let Tooltip = class Tooltip extends LitElement {
52
+ let Tooltip = class Tooltip extends MduiElement {
52
53
  constructor() {
53
54
  super();
54
55
  /**
55
- * tooltip 的形状。默认为 `plain`。可选值为:
56
+ * tooltip 的形状。默认为 `plain`。可选值包括:
56
57
  *
57
- * * `plain`:纯文本,用于简单的单行文本
58
- * * `rich`:富文本,可包含标题、正文、及操作按钮
58
+ * * `plain`:纯文本,适用于简单的单行文本
59
+ * * `rich`:富文本,可以包含标题、正文和操作按钮
59
60
  */
60
61
  this.variant = 'plain';
61
62
  /**
62
- * tooltip 的位置。默认为 `auto`。可选值为:
63
+ * tooltip 的位置。默认为 `auto`。可选值包括:
63
64
  *
64
65
  * * `auto`:自动判断位置。`variant="plan"` 时,优先使用 `top`;`variant="rich"` 时,优先使用 `bottom-right`
65
66
  * * `top-left`:位于左上方
66
- * * `top-start`:位于上方,且左对齐
67
- * * `top`:位于上方,且居中对齐
68
- * * `top-end`:位于上方,且右对齐
67
+ * * `top-start`:位于上方,左对齐
68
+ * * `top`:位于上方,居中对齐
69
+ * * `top-end`:位于上方,右对齐
69
70
  * * `top-right`:位于右上方
70
71
  * * `bottom-left`:位于左下方
71
- * * `bottom-start`:位于下方,且左对齐
72
- * * `bottom`:位于下方,且居中对齐
73
- * * `bottom-end`:位于下方,且右对齐
72
+ * * `bottom-start`:位于下方,左对齐
73
+ * * `bottom`:位于下方,居中对齐
74
+ * * `bottom-end`:位于下方,右对齐
74
75
  * * `bottom-right`:位于右下方
75
- * * `left-start`:位于左侧,且顶部对齐
76
- * * `left`:位于左侧,且居中对齐
77
- * * `left-end`:位于左侧,且底部对齐
78
- * * `right-start`:位于右侧,且顶部对齐
79
- * * `right`:位于右侧,且居中对齐
80
- * * `right-end`:位于右侧,且底部对齐
76
+ * * `left-start`:位于左侧,顶部对齐
77
+ * * `left`:位于左侧,居中对齐
78
+ * * `left-end`:位于左侧,底部对齐
79
+ * * `right-start`:位于右侧,顶部对齐
80
+ * * `right`:位于右侧,居中对齐
81
+ * * `right-end`:位于右侧,底部对齐
81
82
  */
82
83
  this.placement = 'auto';
83
84
  /**
84
- * hover 触发显示的延时,单位为毫秒
85
+ * 鼠标悬浮触发显示的延时,单位为毫秒
85
86
  */
86
87
  this.openDelay = 150;
87
88
  /**
88
- * hover 触发隐藏的延时,单位为毫秒
89
+ * 鼠标悬浮触发隐藏的延时,单位为毫秒
89
90
  */
90
91
  this.closeDelay = 150;
91
92
  /**
92
- * 触发方式,支持传入多个值,用空格分隔。可选值为:
93
+ * 触发方式,支持多个值,用空格分隔。可选值包括:
93
94
  *
94
95
  * * `click`:点击时触发
95
- * * `hover`:鼠标悬浮触发
96
+ * * `hover`:鼠标悬浮时触发
96
97
  * * `focus`:聚焦时触发
97
- * * `manual`:使用了该值时,只能使用编程方式打开和关闭 tooltip,且不能再指定其他触发方式
98
+ * * `manual`:只能通过编程方式打开和关闭 tooltip,不能再指定其他触发方式
98
99
  */
99
100
  this.trigger = 'hover focus';
100
101
  /**
@@ -149,10 +150,8 @@ let Tooltip = class Tooltip extends LitElement {
149
150
  await this.updateComplete;
150
151
  }
151
152
  if (hasUpdated) {
152
- const requestOpen = emit(this, 'open', {
153
- cancelable: true,
154
- });
155
- if (requestOpen.defaultPrevented) {
153
+ const eventProceeded = this.emit('open', { cancelable: true });
154
+ if (!eventProceeded) {
156
155
  return;
157
156
  }
158
157
  }
@@ -164,33 +163,36 @@ let Tooltip = class Tooltip extends LitElement {
164
163
  easing,
165
164
  });
166
165
  if (hasUpdated) {
167
- emit(this, 'opened');
166
+ this.emit('opened');
168
167
  }
169
168
  return;
170
169
  }
171
170
  // 关闭
172
171
  if (!this.open && hasUpdated) {
173
- const requestClose = emit(this, 'close', {
174
- cancelable: true,
175
- });
176
- if (requestClose.defaultPrevented) {
172
+ const eventProceeded = this.emit('close', { cancelable: true });
173
+ if (!eventProceeded) {
177
174
  return;
178
175
  }
179
176
  await stopAnimations(this.popupRef.value);
180
177
  await animateTo(this.popupRef.value, [{ transform: 'scale(1)' }, { transform: 'scale(0)' }], { duration, easing });
181
178
  this.popupRef.value.hidden = true;
182
- emit(this, 'closed');
179
+ this.emit('closed');
183
180
  }
184
181
  }
185
182
  connectedCallback() {
186
183
  super.connectedCallback();
187
184
  document.addEventListener('pointerdown', this.onDocumentClick);
188
- window.addEventListener('scroll', this.onWindowScroll);
185
+ this.overflowAncestors = getOverflowAncestors(this.target);
186
+ this.overflowAncestors.forEach((ancestor) => {
187
+ ancestor.addEventListener('scroll', this.onWindowScroll);
188
+ });
189
189
  }
190
190
  disconnectedCallback() {
191
191
  super.disconnectedCallback();
192
192
  document.removeEventListener('pointerdown', this.onDocumentClick);
193
- window.removeEventListener('scroll', this.onWindowScroll);
193
+ this.overflowAncestors?.forEach((ancestor) => {
194
+ ancestor.removeEventListener('scroll', this.onWindowScroll);
195
+ });
194
196
  this.observeResize?.unobserve();
195
197
  }
196
198
  firstUpdated(changedProperties) {
@@ -1,7 +1,7 @@
1
- import { LitElement } from 'lit';
1
+ import { MduiElement } from '@mdui/shared/base/mdui-element.js';
2
2
  import type { CSSResultGroup, TemplateResult } from 'lit';
3
3
  /**
4
- * @summary 顶部应用栏标题组件。需与 `<mdui-top-app-bar>` 组件配合使用
4
+ * @summary 顶部应用栏标题组件。需配合 `<mdui-top-app-bar>` 组件使用
5
5
  *
6
6
  * ```html
7
7
  * <mdui-top-app-bar>
@@ -13,12 +13,12 @@ import type { CSSResultGroup, TemplateResult } from 'lit';
13
13
  * ```
14
14
  *
15
15
  * @slot - 顶部应用栏的标题文本
16
- * @slot label-large - 展开状态的标题文本
16
+ * @slot label-large - 展开状态下的标题文本
17
17
  *
18
- * @csspart label 文本内容
19
- * @csspart label-large 展开状态的文本内容
18
+ * @csspart label 标题文本
19
+ * @csspart label-large 展开状态下的标题文本
20
20
  */
21
- export declare class TopAppBarTitle extends LitElement {
21
+ export declare class TopAppBarTitle extends MduiElement<TopAppBarTitleEventMap> {
22
22
  static styles: CSSResultGroup;
23
23
  /**
24
24
  * 顶部应用栏形状。由 mdui-top-app-bar 组件控制该参数
@@ -39,6 +39,8 @@ export declare class TopAppBarTitle extends LitElement {
39
39
  */
40
40
  private onSlotChange;
41
41
  }
42
+ export interface TopAppBarTitleEventMap {
43
+ }
42
44
  declare global {
43
45
  interface HTMLElementTagNameMap {
44
46
  'mdui-top-app-bar-title': TopAppBarTitle;
@@ -1,14 +1,15 @@
1
1
  import { __decorate } from "tslib";
2
- import { html, LitElement } from 'lit';
2
+ import { html } from 'lit';
3
3
  import { customElement, state } from 'lit/decorators.js';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
5
  import { createRef, ref } from 'lit/directives/ref.js';
6
+ import { MduiElement } from '@mdui/shared/base/mdui-element.js';
6
7
  import { HasSlotController } from '@mdui/shared/controllers/has-slot.js';
7
8
  import { getInnerHtmlFromSlot } from '@mdui/shared/helpers/slot.js';
8
9
  import { componentStyle } from '@mdui/shared/lit-styles/component-style.js';
9
10
  import { topAppBarTitleStyle } from './top-app-bar-title-style.js';
10
11
  /**
11
- * @summary 顶部应用栏标题组件。需与 `<mdui-top-app-bar>` 组件配合使用
12
+ * @summary 顶部应用栏标题组件。需配合 `<mdui-top-app-bar>` 组件使用
12
13
  *
13
14
  * ```html
14
15
  * <mdui-top-app-bar>
@@ -20,12 +21,12 @@ import { topAppBarTitleStyle } from './top-app-bar-title-style.js';
20
21
  * ```
21
22
  *
22
23
  * @slot - 顶部应用栏的标题文本
23
- * @slot label-large - 展开状态的标题文本
24
+ * @slot label-large - 展开状态下的标题文本
24
25
  *
25
- * @csspart label 文本内容
26
- * @csspart label-large 展开状态的文本内容
26
+ * @csspart label 标题文本
27
+ * @csspart label-large 展开状态下的标题文本
27
28
  */
28
- let TopAppBarTitle = class TopAppBarTitle extends LitElement {
29
+ let TopAppBarTitle = class TopAppBarTitle extends MduiElement {
29
30
  constructor() {
30
31
  super(...arguments);
31
32
  /**
@@ -22,13 +22,13 @@ declare const TopAppBar_base: import("@open-wc/dedupe-mixin").Constructor<import
22
22
  *
23
23
  * @slot - 顶部应用栏内部的元素
24
24
  *
25
- * @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
26
- * @cssprop --z-index - 组件的 CSS `z-index` 值
25
+ * @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
26
+ * @cssprop --z-index - 组件的 CSS `z-index` 值
27
27
  */
28
- export declare class TopAppBar extends TopAppBar_base {
28
+ export declare class TopAppBar extends TopAppBar_base<TopAppBarEventMap> {
29
29
  static styles: CSSResultGroup;
30
30
  /**
31
- * 顶部应用栏形状。默认为 `small`。可选值为:
31
+ * 顶部应用栏的形状。默认为 `small`。可选值包括:
32
32
  *
33
33
  * * `center-aligned`:小型应用栏,标题居中
34
34
  * * `small`:小型应用栏
@@ -41,11 +41,11 @@ export declare class TopAppBar extends TopAppBar_base {
41
41
  */
42
42
  hide: boolean;
43
43
  /**
44
- * 是否缩小成 `variant="small"` 的样式,仅在 `variant="medium"` 或 `variant="large"` 时生效
44
+ * 是否缩小为 `variant="small"` 的样式,仅在 `variant="medium"` 或 `variant="large"` 时生效
45
45
  */
46
46
  shrink: boolean;
47
47
  /**
48
- * 滚动行为。可同时使用多个值,多个值之间用空格分割。可选值为:
48
+ * 滚动行为。可同时使用多个值,用空格分隔。可选值包括:
49
49
  *
50
50
  * * `hide`:滚动时隐藏
51
51
  * * `shrink`:在中型、大型应用栏中可使用,滚动时缩小成小型应用栏的样式
@@ -66,6 +66,12 @@ export declare class TopAppBar extends TopAppBar_base {
66
66
  protected runScrollNoThreshold(isScrollingUp: boolean, scrollTop: number): void;
67
67
  protected runScrollThreshold(isScrollingUp: boolean, scrollTop: number): void;
68
68
  }
69
+ export interface TopAppBarEventMap {
70
+ show: CustomEvent<void>;
71
+ shown: CustomEvent<void>;
72
+ hide: CustomEvent<void>;
73
+ hidden: CustomEvent<void>;
74
+ }
69
75
  declare global {
70
76
  interface HTMLElementTagNameMap {
71
77
  'mdui-top-app-bar': TopAppBar;
@@ -3,7 +3,6 @@ import { html } from 'lit';
3
3
  import { customElement, property, queryAssignedElements, } from 'lit/decorators.js';
4
4
  import { watch } from '@mdui/shared/decorators/watch.js';
5
5
  import { booleanConverter } from '@mdui/shared/helpers/decorator.js';
6
- import { emit } from '@mdui/shared/helpers/event.js';
7
6
  import { componentStyle } from '@mdui/shared/lit-styles/component-style.js';
8
7
  import { ScrollBehaviorMixin } from '@mdui/shared/mixins/scrollBehavior.js';
9
8
  import { LayoutItemBase } from '../layout/layout-item-base.js';
@@ -27,14 +26,14 @@ import { topAppBarStyle } from './top-app-bar-style.js';
27
26
  *
28
27
  * @slot - 顶部应用栏内部的元素
29
28
  *
30
- * @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐[引用设计令牌](/docs/2/styles/design-tokens#shape-corner)
31
- * @cssprop --z-index - 组件的 CSS `z-index` 值
29
+ * @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
30
+ * @cssprop --z-index - 组件的 CSS `z-index` 值
32
31
  */
33
32
  let TopAppBar = class TopAppBar extends ScrollBehaviorMixin(LayoutItemBase) {
34
33
  constructor() {
35
34
  super(...arguments);
36
35
  /**
37
- * 顶部应用栏形状。默认为 `small`。可选值为:
36
+ * 顶部应用栏的形状。默认为 `small`。可选值包括:
38
37
  *
39
38
  * * `center-aligned`:小型应用栏,标题居中
40
39
  * * `small`:小型应用栏
@@ -47,7 +46,7 @@ let TopAppBar = class TopAppBar extends ScrollBehaviorMixin(LayoutItemBase) {
47
46
  */
48
47
  this.hide = false;
49
48
  /**
50
- * 是否缩小成 `variant="small"` 的样式,仅在 `variant="medium"` 或 `variant="large"` 时生效
49
+ * 是否缩小为 `variant="small"` 的样式,仅在 `variant="medium"` 或 `variant="large"` 时生效
51
50
  */
52
51
  this.shrink = false;
53
52
  /**
@@ -88,7 +87,7 @@ let TopAppBar = class TopAppBar extends ScrollBehaviorMixin(LayoutItemBase) {
88
87
  super.firstUpdated(_changedProperties);
89
88
  this.addEventListener('transitionend', (e) => {
90
89
  if (e.target === this) {
91
- emit(this, this.hide ? 'hidden' : 'shown');
90
+ this.emit(this.hide ? 'hidden' : 'shown');
92
91
  }
93
92
  });
94
93
  }
@@ -119,15 +118,15 @@ let TopAppBar = class TopAppBar extends ScrollBehaviorMixin(LayoutItemBase) {
119
118
  if (this.hasScrollBehavior('hide')) {
120
119
  // 向下滚动
121
120
  if (!isScrollingUp && !this.hide) {
122
- const requestHide = emit(this, 'hide');
123
- if (!requestHide.defaultPrevented) {
121
+ const eventProceeded = this.emit('hide', { cancelable: true });
122
+ if (eventProceeded) {
124
123
  this.hide = true;
125
124
  }
126
125
  }
127
126
  // 向上滚动
128
127
  if (isScrollingUp && this.hide) {
129
- const requestShow = emit(this, 'show');
130
- if (!requestShow.defaultPrevented) {
128
+ const eventProceeded = this.emit('show', { cancelable: true });
129
+ if (eventProceeded) {
131
130
  this.hide = false;
132
131
  }
133
132
  }