x-next 1.2.0 → 1.3.0

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 (33) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/dropdown/Dropdown.vue.d.ts +27 -1
  3. package/dist/components/dropdown/DropdownButton.vue.d.ts +27 -1
  4. package/dist/components/dropdown/DropdownOption.vue.d.ts +2 -0
  5. package/dist/components/dropdown/DropdownSubmenu.vue.d.ts +158 -1
  6. package/dist/components/dropdown/context.d.ts +14 -1
  7. package/dist/components/dropdown/dropdown-panel.vue.d.ts +7 -1
  8. package/dist/components/dropdown/index.d.ts +588 -6
  9. package/dist/components/dropdown/use-keyboard.d.ts +10 -0
  10. package/dist/components/form-select/hooks/use-select.d.ts +2 -1
  11. package/dist/es/_hooks/use-overflow.js +45 -40
  12. package/dist/es/components/_components/select-view/select-view.js +49 -55
  13. package/dist/es/components/dialog/Dialog.js +106 -97
  14. package/dist/es/components/dropdown/Dropdown.vue.js +18 -15
  15. package/dist/es/components/dropdown/Dropdown.vue2.js +52 -31
  16. package/dist/es/components/dropdown/DropdownOption.vue.js +22 -21
  17. package/dist/es/components/dropdown/DropdownOption.vue2.js +23 -19
  18. package/dist/es/components/dropdown/DropdownSubmenu.vue.js +49 -36
  19. package/dist/es/components/dropdown/DropdownSubmenu.vue2.js +45 -24
  20. package/dist/es/components/dropdown/context.js +3 -2
  21. package/dist/es/components/dropdown/dropdown-panel.vue.js +24 -21
  22. package/dist/es/components/dropdown/dropdown-panel.vue2.js +83 -31
  23. package/dist/es/components/dropdown/use-keyboard.js +45 -0
  24. package/dist/es/components/form-checkbox/Checkbox.js +49 -49
  25. package/dist/es/components/form-select/Select.js +25 -24
  26. package/dist/es/components/form-select/hooks/use-select.js +128 -128
  27. package/dist/es/style.css +1 -1
  28. package/dist/index.cjs +4 -4
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.umd.js +4 -4
  31. package/dist/style/base.css +1 -1
  32. package/dist/style.css +1 -1
  33. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
4
4
 
5
+ ## [1.3.0] - 2026-09-30
6
+
7
+ ### 修复
8
+
9
+ - **Select**:关闭状态不再吞掉 Escape;方向键可打开下拉,键盘选择与关闭后保留焦点,Tab 保留浏览器原生焦点移动。
10
+ - **Checkbox**:原生 `required`、`form`、`tabindex`、`autofocus` 和 `autocomplete` 属性传到内部 input,保留外层 class/style 与组件受控状态。
11
+ - **Dialog / Drawer**:完善顺序 Tab 候选与共享滚动锁清理,正确归还自定义容器的原始样式。
12
+ - **Dropdown**:补齐受控菜单焦点、方向键/Home/End 导航、禁用项跳过、多级菜单进入返回与 Escape 关闭;保留鼠标点击和悬浮行为。
13
+ - **局部暗色主题**:生成完整受影响变量依赖链,让同一暗色容器内的语义覆盖正确传递到表单和组件别名,保留组件自身覆盖。
14
+ - **文档与类型**:补充 `MessageBoxStaticMethod` 根入口类型导出;快速开始明确局部导入与全局注册的区别。
15
+
5
16
  ## [1.2.0] - 2026-09-30
6
17
 
7
18
  ### 新增
@@ -69,5 +80,6 @@
69
80
  - Progress 不支持 `indeterminate` 不确定态与自定义 `format` 文本(可用 `text` 插槽替代)。
70
81
  - Space 不支持 Arco 的 `size` 数组写法与 `wrap`。
71
82
 
83
+ [1.3.0]: https://gitee.com/ztes/x-next/releases/tag/v1.3.0
72
84
  [1.2.0]: https://gitee.com/ztes/x-next/releases/tag/v1.2.0
73
85
  [1.1.0]: https://github.com/ztes/x-next/releases/tag/v1.1.0
@@ -90,6 +90,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
90
90
  default: boolean;
91
91
  };
92
92
  }>, {
93
+ renderTrigger: (attrs: Record<string, unknown>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
94
+ [key: string]: any;
95
+ }>[];
93
96
  className: {
94
97
  block: string;
95
98
  element: (className: string) => string;
@@ -100,6 +103,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
100
103
  handlePopupVisibleChange: (visible: boolean) => void;
101
104
  handleScroll: (ev: Event) => void;
102
105
  handleReachBottom: (ev: Event) => void;
106
+ panelRef: import('vue').Ref<import('./context').DropdownPanelRef | undefined, import('./context').DropdownPanelRef | undefined>;
107
+ handleShow: () => void;
108
+ handleTriggerKeydown: (ev: KeyboardEvent) => void;
109
+ handleTriggerFocus: (ev: FocusEvent) => void;
110
+ handleClose: () => void;
111
+ handleKeyboardSelect: (ev: Event) => void;
103
112
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
104
113
  'update:popupVisible': (visible: boolean) => true;
105
114
  /**
@@ -801,6 +810,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
801
810
  install(app: import('vue').App): void;
802
811
  };
803
812
  DropdownPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
813
+ closeOnArrowLeft: BooleanConstructor;
804
814
  loading: {
805
815
  type: BooleanConstructor;
806
816
  default: boolean;
@@ -831,9 +841,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
831
841
  })[]>;
832
842
  style: import('vue').ComputedRef<import('vue').CSSProperties | undefined>;
833
843
  wrapperRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
844
+ panelElement: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
845
+ handleKeydown: (ev: KeyboardEvent) => void;
834
846
  handleScroll: (e: Event) => void;
835
847
  t: (key: import('../../index.ts').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
836
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("scroll" | "reachBottom")[], "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
848
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "scroll" | "reachBottom")[], "close" | "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
849
+ closeOnArrowLeft: BooleanConstructor;
837
850
  loading: {
838
851
  type: BooleanConstructor;
839
852
  default: boolean;
@@ -853,10 +866,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
853
866
  type: PropType<import('../../_hooks/_types.ts').EmitType<(ev: Event) => void>>;
854
867
  };
855
868
  }>> & Readonly<{
869
+ onClose?: ((...args: any[]) => any) | undefined;
856
870
  onScroll?: ((...args: any[]) => any) | undefined;
857
871
  onReachBottom?: ((...args: any[]) => any) | undefined;
858
872
  }>, {
859
873
  loading: boolean;
874
+ closeOnArrowLeft: boolean;
860
875
  isEmpty: boolean;
861
876
  bottomOffset: number;
862
877
  }, {}, {
@@ -1315,5 +1330,16 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1315
1330
  install(app: import('vue').App): void;
1316
1331
  };
1317
1332
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1333
+ RenderFunction: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
1334
+ renderFunc: {
1335
+ type: PropType<import('../../_container/render-function').RenderFunc>;
1336
+ required: true;
1337
+ };
1338
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
1339
+ renderFunc: {
1340
+ type: PropType<import('../../_container/render-function').RenderFunc>;
1341
+ required: true;
1342
+ };
1343
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1318
1344
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1319
1345
  export default _default;
@@ -667,6 +667,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
667
667
  default: boolean;
668
668
  };
669
669
  }>, {
670
+ renderTrigger: (attrs: Record<string, unknown>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
671
+ [key: string]: any;
672
+ }>[];
670
673
  className: {
671
674
  block: string;
672
675
  element: (className: string) => string;
@@ -677,6 +680,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
677
680
  handlePopupVisibleChange: (visible: boolean) => void;
678
681
  handleScroll: (ev: Event) => void;
679
682
  handleReachBottom: (ev: Event) => void;
683
+ panelRef: import('vue').Ref<import('./context.ts').DropdownPanelRef | undefined, import('./context.ts').DropdownPanelRef | undefined>;
684
+ handleShow: () => void;
685
+ handleTriggerKeydown: (ev: KeyboardEvent) => void;
686
+ handleTriggerFocus: (ev: FocusEvent) => void;
687
+ handleClose: () => void;
688
+ handleKeyboardSelect: (ev: Event) => void;
680
689
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
681
690
  'update:popupVisible': (visible: boolean) => true;
682
691
  popupVisibleChange: (visible: boolean) => true;
@@ -1313,6 +1322,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1313
1322
  install(app: import('vue').App): void;
1314
1323
  };
1315
1324
  DropdownPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
1325
+ closeOnArrowLeft: BooleanConstructor;
1316
1326
  loading: {
1317
1327
  type: BooleanConstructor;
1318
1328
  default: boolean;
@@ -1343,9 +1353,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1343
1353
  })[]>;
1344
1354
  style: import('vue').ComputedRef<import('vue').CSSProperties | undefined>;
1345
1355
  wrapperRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
1356
+ panelElement: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
1357
+ handleKeydown: (ev: KeyboardEvent) => void;
1346
1358
  handleScroll: (e: Event) => void;
1347
1359
  t: (key: import('../../index.ts').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
1348
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("scroll" | "reachBottom")[], "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
1360
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "scroll" | "reachBottom")[], "close" | "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
1361
+ closeOnArrowLeft: BooleanConstructor;
1349
1362
  loading: {
1350
1363
  type: BooleanConstructor;
1351
1364
  default: boolean;
@@ -1365,10 +1378,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1365
1378
  type: PropType<import('../../_hooks/_types.ts').EmitType<(ev: Event) => void>>;
1366
1379
  };
1367
1380
  }>> & Readonly<{
1381
+ onClose?: ((...args: any[]) => any) | undefined;
1368
1382
  onScroll?: ((...args: any[]) => any) | undefined;
1369
1383
  onReachBottom?: ((...args: any[]) => any) | undefined;
1370
1384
  }>, {
1371
1385
  loading: boolean;
1386
+ closeOnArrowLeft: boolean;
1372
1387
  isEmpty: boolean;
1373
1388
  bottomOffset: number;
1374
1389
  }, {}, {
@@ -1827,6 +1842,17 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1827
1842
  install(app: import('vue').App): void;
1828
1843
  };
1829
1844
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1845
+ RenderFunction: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
1846
+ renderFunc: {
1847
+ type: PropType<import('../../_container/render-function.ts').RenderFunc>;
1848
+ required: true;
1849
+ };
1850
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
1851
+ renderFunc: {
1852
+ type: PropType<import('../../_container/render-function.ts').RenderFunc>;
1853
+ required: true;
1854
+ };
1855
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1830
1856
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1831
1857
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
1832
1858
  export default _default;
@@ -27,6 +27,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
27
27
  [x: string]: boolean;
28
28
  })[]>;
29
29
  liRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
30
+ tabIndex: import('vue').ComputedRef<0 | -1>;
31
+ handleFocus: () => void | undefined;
30
32
  handleClick: (ev: Event) => void;
31
33
  handleKeydown: (ev: KeyboardEvent) => void;
32
34
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -62,6 +62,149 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
62
62
  type: ObjectConstructor;
63
63
  };
64
64
  }>, {
65
+ optionRef: import('vue').Ref<import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
66
+ value: {
67
+ type: (StringConstructor | ObjectConstructor | NumberConstructor)[];
68
+ };
69
+ disabled: {
70
+ type: BooleanConstructor;
71
+ default: boolean;
72
+ };
73
+ active: BooleanConstructor;
74
+ uninjectContext: BooleanConstructor;
75
+ }>> & Readonly<{
76
+ onClick?: ((ev: Event) => any) | undefined;
77
+ }>, {
78
+ className: {
79
+ block: string;
80
+ element: (className: string) => string;
81
+ modifier: (className: string) => string;
82
+ is: (className: string) => string;
83
+ };
84
+ cls: import('vue').ComputedRef<(string | {
85
+ [x: string]: boolean;
86
+ })[]>;
87
+ liRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
88
+ tabIndex: import('vue').ComputedRef<0 | -1>;
89
+ handleFocus: () => void | undefined;
90
+ handleClick: (ev: Event) => void;
91
+ handleKeydown: (ev: KeyboardEvent) => void;
92
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
93
+ click: (ev: Event) => true;
94
+ }, import('vue').PublicProps, {
95
+ disabled: boolean;
96
+ active: boolean;
97
+ uninjectContext: boolean;
98
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
99
+ P: {};
100
+ B: {};
101
+ D: {};
102
+ C: {};
103
+ M: {};
104
+ Defaults: {};
105
+ }, Readonly<import('vue').ExtractPropTypes<{
106
+ value: {
107
+ type: (StringConstructor | ObjectConstructor | NumberConstructor)[];
108
+ };
109
+ disabled: {
110
+ type: BooleanConstructor;
111
+ default: boolean;
112
+ };
113
+ active: BooleanConstructor;
114
+ uninjectContext: BooleanConstructor;
115
+ }>> & Readonly<{
116
+ onClick?: ((ev: Event) => any) | undefined;
117
+ }>, {
118
+ className: {
119
+ block: string;
120
+ element: (className: string) => string;
121
+ modifier: (className: string) => string;
122
+ is: (className: string) => string;
123
+ };
124
+ cls: import('vue').ComputedRef<(string | {
125
+ [x: string]: boolean;
126
+ })[]>;
127
+ liRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
128
+ tabIndex: import('vue').ComputedRef<0 | -1>;
129
+ handleFocus: () => void | undefined;
130
+ handleClick: (ev: Event) => void;
131
+ handleKeydown: (ev: KeyboardEvent) => void;
132
+ }, {}, {}, {}, {
133
+ disabled: boolean;
134
+ active: boolean;
135
+ uninjectContext: boolean;
136
+ }> | undefined, import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
137
+ value: {
138
+ type: (StringConstructor | ObjectConstructor | NumberConstructor)[];
139
+ };
140
+ disabled: {
141
+ type: BooleanConstructor;
142
+ default: boolean;
143
+ };
144
+ active: BooleanConstructor;
145
+ uninjectContext: BooleanConstructor;
146
+ }>> & Readonly<{
147
+ onClick?: ((ev: Event) => any) | undefined;
148
+ }>, {
149
+ className: {
150
+ block: string;
151
+ element: (className: string) => string;
152
+ modifier: (className: string) => string;
153
+ is: (className: string) => string;
154
+ };
155
+ cls: import('vue').ComputedRef<(string | {
156
+ [x: string]: boolean;
157
+ })[]>;
158
+ liRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
159
+ tabIndex: import('vue').ComputedRef<0 | -1>;
160
+ handleFocus: () => void | undefined;
161
+ handleClick: (ev: Event) => void;
162
+ handleKeydown: (ev: KeyboardEvent) => void;
163
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
164
+ click: (ev: Event) => true;
165
+ }, import('vue').PublicProps, {
166
+ disabled: boolean;
167
+ active: boolean;
168
+ uninjectContext: boolean;
169
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
170
+ P: {};
171
+ B: {};
172
+ D: {};
173
+ C: {};
174
+ M: {};
175
+ Defaults: {};
176
+ }, Readonly<import('vue').ExtractPropTypes<{
177
+ value: {
178
+ type: (StringConstructor | ObjectConstructor | NumberConstructor)[];
179
+ };
180
+ disabled: {
181
+ type: BooleanConstructor;
182
+ default: boolean;
183
+ };
184
+ active: BooleanConstructor;
185
+ uninjectContext: BooleanConstructor;
186
+ }>> & Readonly<{
187
+ onClick?: ((ev: Event) => any) | undefined;
188
+ }>, {
189
+ className: {
190
+ block: string;
191
+ element: (className: string) => string;
192
+ modifier: (className: string) => string;
193
+ is: (className: string) => string;
194
+ };
195
+ cls: import('vue').ComputedRef<(string | {
196
+ [x: string]: boolean;
197
+ })[]>;
198
+ liRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
199
+ tabIndex: import('vue').ComputedRef<0 | -1>;
200
+ handleFocus: () => void | undefined;
201
+ handleClick: (ev: Event) => void;
202
+ handleKeydown: (ev: KeyboardEvent) => void;
203
+ }, {}, {}, {}, {
204
+ disabled: boolean;
205
+ active: boolean;
206
+ uninjectContext: boolean;
207
+ }> | undefined>;
65
208
  className: {
66
209
  block: string;
67
210
  element: (className: string) => string;
@@ -70,6 +213,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
70
213
  };
71
214
  computedPopupVisible: import('vue').ComputedRef<boolean>;
72
215
  handlePopupVisibleChange: (visible: boolean) => void;
216
+ handleTriggerKeydown: (ev: KeyboardEvent) => void;
217
+ panelRef: import('vue').Ref<import('./context.ts').DropdownPanelRef | undefined, import('./context.ts').DropdownPanelRef | undefined>;
218
+ handleShow: () => void;
219
+ handleTriggerFocus: (ev: FocusEvent) => void;
220
+ handleClose: () => void;
221
+ handleKeyboardSelect: (ev: Event) => void;
73
222
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
74
223
  'update:popupVisible': (visible: boolean) => true;
75
224
  /**
@@ -718,6 +867,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
718
867
  install(app: import('vue').App): void;
719
868
  };
720
869
  DropdownPanel: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
870
+ closeOnArrowLeft: BooleanConstructor;
721
871
  loading: {
722
872
  type: BooleanConstructor;
723
873
  default: boolean;
@@ -748,9 +898,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
748
898
  })[]>;
749
899
  style: import('vue').ComputedRef<import('vue').CSSProperties | undefined>;
750
900
  wrapperRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
901
+ panelElement: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
902
+ handleKeydown: (ev: KeyboardEvent) => void;
751
903
  handleScroll: (e: Event) => void;
752
904
  t: (key: import('../../index.ts').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
753
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("scroll" | "reachBottom")[], "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
905
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "scroll" | "reachBottom")[], "close" | "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
906
+ closeOnArrowLeft: BooleanConstructor;
754
907
  loading: {
755
908
  type: BooleanConstructor;
756
909
  default: boolean;
@@ -770,10 +923,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
770
923
  type: PropType<import('../../_hooks/_types.ts').EmitType<(ev: Event) => void>>;
771
924
  };
772
925
  }>> & Readonly<{
926
+ onClose?: ((...args: any[]) => any) | undefined;
773
927
  onScroll?: ((...args: any[]) => any) | undefined;
774
928
  onReachBottom?: ((...args: any[]) => any) | undefined;
775
929
  }>, {
776
930
  loading: boolean;
931
+ closeOnArrowLeft: boolean;
777
932
  isEmpty: boolean;
778
933
  bottomOffset: number;
779
934
  }, {}, {
@@ -1253,6 +1408,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
1253
1408
  [x: string]: boolean;
1254
1409
  })[]>;
1255
1410
  liRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
1411
+ tabIndex: import('vue').ComputedRef<0 | -1>;
1412
+ handleFocus: () => void | undefined;
1256
1413
  handleClick: (ev: Event) => void;
1257
1414
  handleKeydown: (ev: KeyboardEvent) => void;
1258
1415
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
@@ -1,6 +1,19 @@
1
- import { InjectionKey } from 'vue';
1
+ import { InjectionKey, Ref } from 'vue';
2
2
  export interface DropdownContext {
3
3
  popupMaxHeight: boolean | number;
4
4
  onOptionClick: (value: string | number | Record<string, unknown> | undefined, ev: Event) => void;
5
5
  }
6
6
  export declare const dropdownInjectionKey: InjectionKey<DropdownContext>;
7
+ export interface DropdownMenuItem {
8
+ element: Ref<HTMLElement | undefined>;
9
+ disabled: Readonly<Ref<boolean>>;
10
+ }
11
+ export interface DropdownMenuContext {
12
+ activeItem: Ref<DropdownMenuItem | undefined>;
13
+ registerItem: (item: DropdownMenuItem) => () => void;
14
+ setActiveItem: (item: DropdownMenuItem) => void;
15
+ }
16
+ export interface DropdownPanelRef {
17
+ focus: (edge?: 'first' | 'last') => boolean;
18
+ }
19
+ export declare const dropdownMenuInjectionKey: InjectionKey<DropdownMenuContext>;
@@ -1,6 +1,7 @@
1
1
  import { CSSProperties, PropType } from 'vue';
2
2
  import { EmitType } from '../../_hooks/_types';
3
3
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ closeOnArrowLeft: BooleanConstructor;
4
5
  loading: {
5
6
  type: BooleanConstructor;
6
7
  default: boolean;
@@ -31,9 +32,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
31
32
  })[]>;
32
33
  style: import('vue').ComputedRef<CSSProperties | undefined>;
33
34
  wrapperRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
35
+ panelElement: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
36
+ handleKeydown: (ev: KeyboardEvent) => void;
34
37
  handleScroll: (e: Event) => void;
35
38
  t: (key: import('../../locale').LocaleKey | (string & {}), params?: Record<string, string | number>) => string;
36
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("scroll" | "reachBottom")[], "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
39
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("close" | "scroll" | "reachBottom")[], "close" | "scroll" | "reachBottom", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
40
+ closeOnArrowLeft: BooleanConstructor;
37
41
  loading: {
38
42
  type: BooleanConstructor;
39
43
  default: boolean;
@@ -53,10 +57,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
53
57
  type: PropType<EmitType<(ev: Event) => void>>;
54
58
  };
55
59
  }>> & Readonly<{
60
+ onClose?: ((...args: any[]) => any) | undefined;
56
61
  onScroll?: ((...args: any[]) => any) | undefined;
57
62
  onReachBottom?: ((...args: any[]) => any) | undefined;
58
63
  }>, {
59
64
  loading: boolean;
65
+ closeOnArrowLeft: boolean;
60
66
  isEmpty: boolean;
61
67
  bottomOffset: number;
62
68
  }, {}, {