@xihan-ui/web-components 1.0.0-alpha.0 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/define.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as XhReactiveElement } from "./element-DRoFjrYO.js";
2
2
  import { t as Spreader } from "./spread-Ch8ZXZDC.js";
3
3
  import { ActionVariant, ControlVariant, Direction, HighlighterPort, IconRecord, Orientation, Placement, Size, Tone } from "@xihan-ui/kernel";
4
- import { AccordionNode, AlertSchema, AnchorTranslations, BadgeVariant, BreadcrumbTranslations, CalendarDay, CalendarSelectionMode, CalendarWeekDay, CalendarWeekdayFormat, CarouselTranslations, CascaderExpandTrigger, CascaderNode, CascaderValue, CheckboxCheckedState, CheckboxGroupNode, ColorPickerFormat, ColorPickerTranslations, ComboboxInputBehavior, ComboboxNode, ComponentMeta, ComposerRunStatus, ComposerTranslations, ContextMenuNode, DateGranularity, DatePickerSchema, DateSegmentType, DrawerSchema, EditableActivationMode, EditableSubmitMode, EmptyStateLive, FileUploadTranslations, FormErrorPatch, FormSchema, FormValidateOn, FormValues, IconWeight, ListboxNode, ListboxSelectionMode, LoadingBarTranslations, MenuNode, MenubarNode, NavigationMenuNode, NavigationMenuTranslations, PaginationTranslations, PinInputTranslations, PinInputType, PopoverTranslations, RadioGroupNode, ResolvedToast, ScrollAreaOrientation, ScrollAreaType, SelectNode, SkeletonVariant, SliderValueTextDetails, SpinnerTranslations, SplitterPanelProps, TableColumnDef, TableRowDef, TableSelection, TableSelectionMode, TableSortDescriptor, TabsActivationMode, TabsNode, TabsVariant, TagsInputBlurBehavior, ThreadStatus, ThreadTranslations, TimeGranularity, TimeHourCycle, ToastOptions, ToastPlacement, ToastRecord, ToastTranslations, ToastType, ToasterTranslations, ToggleGroupNode, TourStep, TourTranslations, TransferFilter, TransferItem, TreeNode, TreeSelectionMode, VirtualizerAlign, VirtualizerItemState } from "@xihan-ui/headless";
4
+ import { AccordionNode, AlertSchema, AnchorTranslations, BadgeVariant, BreadcrumbTranslations, CalendarDay, CalendarSelectionMode, CalendarWeekDay, CalendarWeekdayFormat, CarouselTranslations, CascaderExpandTrigger, CascaderNode, CascaderSchema, CascaderValue, CheckboxCheckedState, CheckboxGroupNode, ColorPickerFormat, ColorPickerTranslations, ComboboxInputBehavior, ComboboxNode, ComponentMeta, ComposerRunStatus, ComposerTranslations, ContextMenuNode, ContextMenuSchema, DateGranularity, DatePickerSchema, DateSegmentType, DrawerSchema, EditableActivationMode, EditableSubmitMode, EmptyStateLive, FileUploadRemoteFile, FileUploadSchema, FileUploadTranslations, FormErrorPatch, FormSchema, FormValidateOn, FormValues, IconWeight, ImageViewerItem, ImageViewerTranslations, ListboxNode, ListboxSelectionMode, LoadingBarTranslations, MenuNode, MenubarNode, NavigationMenuNode, NavigationMenuTranslations, PaginationTranslations, PinInputTranslations, PinInputType, PopoverTranslations, ProgressGapPosition, ProgressVariant, RadioGroupNode, ResolvedToast, ScrollAreaOrientation, ScrollAreaType, SelectNode, SelectSchema, SideNavNode, SideNavSchema, SideNavTranslations, SkeletonVariant, SliderSchema, SliderValueTextDetails, SpinnerTranslations, SplitterPanelProps, TableColumnDef, TableRowDef, TableSelection, TableSelectionMode, TableSortDescriptor, TabsActivationMode, TabsNode, TabsVariant, TagsInputBlurBehavior, TextFieldSchema, ThreadStatus, ThreadTranslations, TimeGranularity, TimeHourCycle, ToastOptions, ToastPlacement, ToastRecord, ToastTranslations, ToastType, ToasterTranslations, ToggleGroupNode, TourStep, TourTranslations, TransferFilter, TransferItem, TreeNode, TreeSchema, TreeSelectSchema, TreeSelectionMode, VirtualizerAlign, VirtualizerItemState } from "@xihan-ui/headless";
5
5
  //#region src/dom/part-contract.d.ts
6
6
  /** 只取校验用得上的两项,避免把 `Anatomy<具体 part 联合>` 收窄成 `Anatomy<string>` 时不可赋值。 */
7
7
  interface PartContract {
@@ -103,7 +103,7 @@ declare abstract class XhElement extends XhReactiveElement {
103
103
  */
104
104
  declare class XhAccordionElement extends XhElement {
105
105
  static partContract: {
106
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "header" | "indicator" | "trigger">;
106
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "header" | "indicator" | "item" | "trigger" | "content">;
107
107
  meta: import("@xihan-ui/headless").ComponentMeta;
108
108
  };
109
109
  static properties: {
@@ -232,7 +232,7 @@ declare class XhAlertElement extends XhElement {
232
232
  */
233
233
  declare class XhAnchorElement extends XhElement {
234
234
  static partContract: {
235
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "indicator" | "list" | "link">;
235
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "list" | "link">;
236
236
  meta: import("@xihan-ui/headless").ComponentMeta;
237
237
  };
238
238
  static properties: {
@@ -656,7 +656,7 @@ declare class XhCalendarElement extends XhElement {
656
656
  */
657
657
  declare class XhCarouselElement extends XhElement {
658
658
  static partContract: {
659
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "viewport" | "indicator" | "prev-trigger" | "next-trigger" | "item-group" | "indicator-group">;
659
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "prev-trigger" | "next-trigger" | "viewport" | "item-group" | "indicator-group">;
660
660
  meta: import("@xihan-ui/headless").ComponentMeta;
661
661
  };
662
662
  static properties: {
@@ -767,6 +767,9 @@ declare class XhCarouselElement extends XhElement {
767
767
  * @attr {'click'|'hover'} expand-trigger - 子列由点还是悬停展开,默认 click
768
768
  * @attr {boolean} change-on-select - 中间层(分支)也能落值
769
769
  * @attr {boolean} multiple - 多选:选中后浮层不收起,焦点留在列里
770
+ * @attr {boolean} searchable - 开启搜索:input 部件可用,输入后整条路径连缀过滤、候选替换列视图
771
+ * @attr {boolean} cascade - 多选下父子级联勾选(整枝传导/半选/禁用冻结),默认 false
772
+ * @attr {string} checked-strategy - 级联下对外值的收敛策略:child(默认)/ parent / all
770
773
  * @attr {boolean} disabled - 整个控件禁用:trigger 用原生 disabled,浮层展不开
771
774
  * @attr {boolean} read-only - 只读:浮层照常展开、列照常浏览,但选中值改不动、也清不掉
772
775
  * @attr {boolean} invalid - 校验失败标注
@@ -788,7 +791,11 @@ declare class XhCarouselElement extends XhElement {
788
791
  * @csspart indicator - 展开指示符(aria-hidden,data-state 随开合)
789
792
  * @csspart clear-trigger - 清空按钮,须是原生 button;不占 Tab 位且对读屏隐藏
790
793
  * @csspart positioner - 浮层定位容器,坐标由引擎写成内联样式
791
- * @csspart content - 浮层壳(焦点域与消解层的根节点),键盘在此收口,收起时带 hidden
794
+ * @csspart content - 浮层壳(焦点域与消解层的根节点),键盘在此收口,收起时带 hidden;根列没有条目时带 data-empty
795
+ * @csspart input - 搜索框(content 顶部);没开 searchable 时带 hidden。上下键走候选、Enter 选中、Escape 先清词
796
+ * @csspart search-list - 候选列表容器;不在搜索视图时带 hidden,无候选时带 data-empty
797
+ * @csspart search-item - 一条候选,须用 value 属性写整条路径的 JSON 数组串(如 value='["a","b"]');词换了不匹配的带 hidden
798
+ * @csspart empty - 空态占位:搜索无候选或 collection 为空时露面,其余时候带 hidden。标记里没写就由元素在 content 末尾补一个并填缺省文案;写了就用作者那份,文案也归作者
792
799
  * @csspart column - role=listbox 的一列,须自带 level 属性标识它是第几列;砍掉时带 hidden
793
800
  * @csspart item - role=option 的条目,须自带 value 属性标识身份;不在当前列里时带 hidden
794
801
  * @csspart item-text - 条目文本
@@ -796,7 +803,7 @@ declare class XhCarouselElement extends XhElement {
796
803
  */
797
804
  declare class XhCascaderElement extends XhElement {
798
805
  static partContract: {
799
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "indicator" | "trigger" | "label" | "positioner" | "item-text" | "item-indicator" | "clear-trigger" | "value-text" | "column">;
806
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "trigger" | "content" | "label" | "positioner" | "item-text" | "item-indicator" | "input" | "empty" | "clear-trigger" | "value-text" | "column" | "search-list" | "search-item">;
800
807
  meta: import("@xihan-ui/headless").ComponentMeta;
801
808
  };
802
809
  static properties: {
@@ -833,6 +840,18 @@ declare class XhCascaderElement extends XhElement {
833
840
  multiple: {
834
841
  type: BooleanConstructor;
835
842
  };
843
+ searchable: {
844
+ type: BooleanConstructor;
845
+ };
846
+ cascade: {
847
+ type: BooleanConstructor;
848
+ };
849
+ checkedStrategy: {
850
+ converter: {
851
+ fromAttribute: (v: string | null) => string | undefined;
852
+ };
853
+ attribute: string;
854
+ };
836
855
  disabled: {
837
856
  type: BooleanConstructor;
838
857
  };
@@ -872,6 +891,9 @@ declare class XhCascaderElement extends XhElement {
872
891
  fromAttribute: (v: string | null) => string | undefined;
873
892
  };
874
893
  };
894
+ translations: {
895
+ attribute: boolean;
896
+ };
875
897
  placement: {
876
898
  converter: {
877
899
  fromAttribute: (v: string | null) => string | undefined;
@@ -902,6 +924,9 @@ declare class XhCascaderElement extends XhElement {
902
924
  expandTrigger?: CascaderExpandTrigger;
903
925
  changeOnSelect?: boolean;
904
926
  multiple?: boolean;
927
+ searchable?: boolean;
928
+ cascade?: boolean;
929
+ checkedStrategy?: CascaderSchema['props']['checkedStrategy'];
905
930
  disabled?: boolean;
906
931
  readOnly?: boolean;
907
932
  invalid?: boolean;
@@ -914,12 +939,15 @@ declare class XhCascaderElement extends XhElement {
914
939
  offset?: number;
915
940
  loop?: boolean;
916
941
  direction?: Direction;
942
+ translations?: CascaderSchema['props']['translations'];
917
943
  private readonly idGen;
918
944
  private readonly cascaderScope;
919
945
  private readonly positionEngine;
920
946
  private config;
921
947
  /** value-text 是否归元素填:首次见到该节点时定,之后不再回读(回读到的会是自己写的字)。 */
922
948
  private readonly ownsValueText;
949
+ /** 空态占位的文案是否归元素填,判定同 ownsValueText。 */
950
+ private readonly ownsEmptyText;
923
951
  private readonly notifyValue;
924
952
  private readonly notifyOpen;
925
953
  private readonly ctrl;
@@ -943,8 +971,13 @@ declare class XhCascaderElement extends XhElement {
943
971
  private levelOf;
944
972
  /** 摘掉作者写在条目上的原生 disabled,条目禁用一律由 collection 决定并以 aria-disabled 表达。 */
945
973
  private stripNativeDisabled;
946
- /** 把整条路径的文字填进 value-text;首次见到该节点时若已有内容则判为归作者,之后一概不碰。 */
947
- private fillValueText;
974
+ /** 把文字填进角色节点;首次见到该节点时若已有内容则判为归作者,之后一概不碰。 */
975
+ private fillOwnedText;
976
+ /**
977
+ * 取空态占位;标记里没写就在 content 末尾补一个,位置与 Vue 侧一致。
978
+ * 作者写了就用作者那份,只接线不新建。补出来的节点下一轮由 discoverParts 收进 partMap。
979
+ */
980
+ private ensureEmpty;
948
981
  protected wire(): void;
949
982
  disconnectedCallback(): void;
950
983
  }
@@ -962,10 +995,12 @@ declare class XhCascaderElement extends XhElement {
962
995
  * @fires checked-change - checked 状态变化;detail 为 `{ checked: boolean }`
963
996
  * @csspart root - role=checkbox 的按钮(承载 aria-checked / data-state)
964
997
  * @csspart indicator - 选中标记
998
+ * @attr {string} name - 表单字段名;给了 hidden-input 才参与提交
999
+ * @csspart hidden-input - type=hidden 的表单出口,省略该节点即不参与表单
965
1000
  */
966
1001
  declare class XhCheckboxElement extends XhElement {
967
1002
  static partContract: {
968
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator">;
1003
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "hidden-input">;
969
1004
  meta: import("@xihan-ui/headless").ComponentMeta;
970
1005
  };
971
1006
  static properties: {
@@ -983,12 +1018,24 @@ declare class XhCheckboxElement extends XhElement {
983
1018
  disabled: {
984
1019
  type: BooleanConstructor;
985
1020
  };
1021
+ name: {
1022
+ converter: {
1023
+ fromAttribute: (v: string | null) => string | undefined;
1024
+ };
1025
+ };
1026
+ value: {
1027
+ converter: {
1028
+ fromAttribute: (v: string | null) => string | undefined;
1029
+ };
1030
+ };
986
1031
  tone: {};
987
1032
  size: {};
988
1033
  };
989
1034
  checked?: CheckboxCheckedState;
990
1035
  defaultChecked?: CheckboxCheckedState;
991
1036
  disabled?: boolean;
1037
+ name?: string;
1038
+ value?: string;
992
1039
  tone?: Tone;
993
1040
  size?: Size;
994
1041
  private readonly notify;
@@ -1000,7 +1047,7 @@ declare class XhCheckboxElement extends XhElement {
1000
1047
  //#region src/elements/checkbox-group.d.ts
1001
1048
  /**
1002
1049
  * `<xh-checkbox-group>` —— Light-DOM 行为宿主:作者写 root/label 与若干 item 角色节点,
1003
- * 每个 item 内自带 item-hidden-input/item-control/item-text,元素跑 checkbox-group 机器
1050
+ * 每个 item 内自带 hidden-input/indicator/item-text,元素跑 checkbox-group 机器
1004
1051
  * 并把 connect 产出打上去。条目身份取自条目节点上的 value 属性。
1005
1052
  *
1006
1053
  * 不做 roving tabindex:组内每一项都是独立的 Tab 停靠点(禁用项也保留),容器自己不占位。
@@ -1018,14 +1065,14 @@ declare class XhCheckboxElement extends XhElement {
1018
1065
  * @csspart root - role=group 容器
1019
1066
  * @csspart label - 组标题(aria-labelledby 目标)
1020
1067
  * @csspart item - role=checkbox 条目,作者用 value 属性声明身份
1021
- * @csspart item-control - 条目的视觉方框(对读屏隐藏)
1068
+ * @csspart indicator - 条目的视觉方框(对读屏隐藏)
1022
1069
  * @csspart item-text - 条目文本,条目的可及名来源
1023
- * @csspart item-hidden-input - 条目的表单影子输入(必须是原生 input)
1070
+ * @csspart hidden-input - 条目的表单影子输入(必须是原生 input)
1024
1071
  * @csspart trigger - 全选/半选的父复选框,须写在 root 之内
1025
1072
  */
1026
1073
  declare class XhCheckboxGroupElement extends XhElement {
1027
1074
  static partContract: {
1028
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "trigger" | "label" | "item-text" | "item-control" | "item-hidden-input">;
1075
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "trigger" | "label" | "item-text" | "hidden-input">;
1029
1076
  meta: import("@xihan-ui/headless").ComponentMeta;
1030
1077
  };
1031
1078
  static properties: {
@@ -1124,7 +1171,7 @@ declare class XhCheckboxGroupElement extends XhElement {
1124
1171
  */
1125
1172
  declare class XhClipboardElement extends XhElement {
1126
1173
  static partContract: {
1127
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "trigger" | "label" | "control" | "input">;
1174
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "trigger" | "label" | "input" | "control">;
1128
1175
  meta: import("@xihan-ui/headless").ComponentMeta;
1129
1176
  };
1130
1177
  static properties: {
@@ -1220,7 +1267,7 @@ declare class XhCodeBlockElement extends XhElement {
1220
1267
  */
1221
1268
  declare class XhCollapsibleElement extends XhElement {
1222
1269
  static partContract: {
1223
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger">;
1270
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "trigger" | "content">;
1224
1271
  meta: import("@xihan-ui/headless").ComponentMeta;
1225
1272
  };
1226
1273
  static properties: {
@@ -1274,6 +1321,7 @@ declare class XhCollapsibleElement extends XhElement {
1274
1321
  * @attr {'ltr'|'rtl'} dir - 文字方向,只改写横轴上左右两键与指针的语义,默认 ltr
1275
1322
  * @attr {string} placement - 首选放置位,默认 bottom-start;避让后的实际位写在 data-placement 上
1276
1323
  * @attr {number} offset - 浮层与锚点的间距(px)
1324
+ * @attr {string} name - 表单字段名;给了 hidden-input 才带 name 并参与提交
1277
1325
  * @fires value-change - 颜色变化;detail 为 `{ value: string }`
1278
1326
  * @fires open-change - open 状态变化;detail 为 `{ open: boolean }`
1279
1327
  * @csspart root - 组件根容器(承载 data-state/data-disabled/data-readonly)
@@ -1292,10 +1340,11 @@ declare class XhCollapsibleElement extends XhElement {
1292
1340
  * @csspart eye-dropper-trigger - 屏幕取色按钮,须是原生 button;环境不支持时自动禁用
1293
1341
  * @csspart swatch-group - role=group 的预设色板容器
1294
1342
  * @csspart swatch-item - 预设色板一格,须是原生 button 且自带 value 属性
1343
+ * @csspart hidden-input - type=hidden 的表单出口,值是当前颜色串;作者不写这个部件就不参与提交
1295
1344
  */
1296
1345
  declare class XhColorPickerElement extends XhElement {
1297
1346
  static partContract: {
1298
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger" | "label" | "positioner" | "value-text" | "area" | "swatch" | "area-thumb" | "channel-slider" | "channel-slider-track" | "channel-slider-thumb" | "channel-input" | "eye-dropper-trigger" | "swatch-group" | "swatch-item">;
1347
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "trigger" | "content" | "label" | "positioner" | "value-text" | "hidden-input" | "area" | "swatch" | "area-thumb" | "channel-slider" | "channel-slider-track" | "channel-slider-thumb" | "channel-input" | "eye-dropper-trigger" | "swatch-group" | "swatch-item">;
1299
1348
  meta: import("@xihan-ui/headless").ComponentMeta;
1300
1349
  };
1301
1350
  static properties: {
@@ -1345,6 +1394,11 @@ declare class XhColorPickerElement extends XhElement {
1345
1394
  fromAttribute: (v: string | null) => string[] | undefined;
1346
1395
  };
1347
1396
  };
1397
+ name: {
1398
+ converter: {
1399
+ fromAttribute: (v: string | null) => string | undefined;
1400
+ };
1401
+ };
1348
1402
  direction: {
1349
1403
  converter: {
1350
1404
  fromAttribute: (v: string | null) => string | undefined;
@@ -1374,6 +1428,7 @@ declare class XhColorPickerElement extends XhElement {
1374
1428
  readOnly?: boolean;
1375
1429
  alpha?: boolean;
1376
1430
  swatches?: string[];
1431
+ name?: string;
1377
1432
  direction?: Direction;
1378
1433
  placement?: Placement;
1379
1434
  offset?: number;
@@ -1449,17 +1504,24 @@ declare class XhColorPickerElement extends XhElement {
1449
1504
  * @csspart item-indicator - 候选选中标记(aria-hidden)
1450
1505
  * @csspart item-group - role=group 分组容器,须自带 value 属性标识身份
1451
1506
  * @csspart item-group-label - 分组标题(本组 aria-labelledby 的目标)
1507
+ * @attr {string} name - 表单字段名;给了 hidden-input 才参与提交(多选按逗号拼成一串)
1508
+ * @csspart hidden-input - type=hidden 的表单出口,省略该节点即不参与表单
1452
1509
  * @csspart empty - 无匹配项提示;须放在 positioner 里当 content 的兄弟(列表内只允许 option 与 group)
1453
1510
  */
1454
1511
  declare class XhComboboxElement extends XhElement {
1455
1512
  static partContract: {
1456
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "trigger" | "label" | "item-group" | "positioner" | "item-text" | "item-indicator" | "clear-trigger" | "control" | "input" | "item-group-label" | "empty">;
1513
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "trigger" | "content" | "label" | "item-group" | "positioner" | "item-text" | "item-indicator" | "input" | "empty" | "clear-trigger" | "hidden-input" | "control" | "item-group-label">;
1457
1514
  meta: import("@xihan-ui/headless").ComponentMeta;
1458
1515
  };
1459
1516
  static properties: {
1460
1517
  collection: {
1461
1518
  attribute: boolean;
1462
1519
  };
1520
+ name: {
1521
+ converter: {
1522
+ fromAttribute: (v: string | null) => string | undefined;
1523
+ };
1524
+ };
1463
1525
  value: {
1464
1526
  converter: {
1465
1527
  fromAttribute: (v: string | null) => string | undefined;
@@ -1571,6 +1633,7 @@ declare class XhComboboxElement extends XhElement {
1571
1633
  readOnly?: boolean;
1572
1634
  invalid?: boolean;
1573
1635
  loop?: boolean;
1636
+ name?: string;
1574
1637
  placeholder?: string;
1575
1638
  allowCustomValue?: boolean;
1576
1639
  openOnClick?: boolean;
@@ -1716,7 +1779,7 @@ declare class XhComposerElement extends XhElement {
1716
1779
  */
1717
1780
  declare class XhContextMenuElement extends XhElement {
1718
1781
  static partContract: {
1719
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "trigger" | "separator" | "positioner" | "item-text" | "item-indicator" | "group" | "group-label" | "arrow">;
1782
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "trigger" | "content" | "separator" | "positioner" | "item-text" | "item-indicator" | "group" | "group-label" | "arrow">;
1720
1783
  meta: import("@xihan-ui/headless").ComponentMeta;
1721
1784
  };
1722
1785
  static properties: {
@@ -1752,6 +1815,9 @@ declare class XhContextMenuElement extends XhElement {
1752
1815
  fromAttribute: (v: string | null) => boolean | undefined;
1753
1816
  };
1754
1817
  };
1818
+ translations: {
1819
+ attribute: boolean;
1820
+ };
1755
1821
  direction: {
1756
1822
  converter: {
1757
1823
  fromAttribute: (v: string | null) => string | undefined;
@@ -1782,6 +1848,8 @@ declare class XhContextMenuElement extends XhElement {
1782
1848
  offset?: number;
1783
1849
  loop?: boolean;
1784
1850
  typeahead?: boolean;
1851
+ /** 读屏文案(菜单名字);对象进不了属性,只作为 property 暴露。 */
1852
+ translations?: ContextMenuSchema['props']['translations'];
1785
1853
  direction?: Direction;
1786
1854
  longPressDelay?: number;
1787
1855
  tone?: Tone;
@@ -1858,7 +1926,7 @@ type SegmentTexts = { readonly [K in DateSegmentType]?: string; };
1858
1926
  */
1859
1927
  declare class XhDateFieldElement extends XhElement {
1860
1928
  static partContract: {
1861
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "control" | "hidden-input" | "segment">;
1929
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "hidden-input" | "control" | "segment">;
1862
1930
  meta: import("@xihan-ui/headless").ComponentMeta;
1863
1931
  };
1864
1932
  static properties: {
@@ -2021,6 +2089,9 @@ declare class XhDateFieldElement extends XhElement {
2021
2089
  * @csspart positioner - 浮层定位容器,坐标由引擎写成内联样式
2022
2090
  * @csspart content - role=dialog 浮层(消解层的根节点),收起时带 hidden
2023
2091
  * @csspart calendar - 内嵌日历的挂载点,同时充当日历的根节点
2092
+ * @csspart time-column - showTime 的时间列,须自带 unit 属性(hour/minute/second);没开时带 hidden
2093
+ * @csspart time-item - 时间选项,须自带 value 属性(两位补零串);点按把该单位写进值
2094
+ * @csspart confirm-trigger - showTime 的收口按钮;没开时带 hidden
2024
2095
  * @csspart header - 日历标题栏外壳(data-scope="calendar")
2025
2096
  * @csspart prev-trigger - 上一月;越过 min 时转原生 disabled
2026
2097
  * @csspart next-trigger - 下一月;越过 max 时转原生 disabled
@@ -2036,9 +2107,9 @@ declare class XhDateFieldElement extends XhElement {
2036
2107
  */
2037
2108
  declare class XhDatePickerElement extends XhElement {
2038
2109
  static partContract: {
2039
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger" | "label" | "positioner" | "clear-trigger" | "control" | "input" | "calendar">;
2110
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "trigger" | "content" | "label" | "positioner" | "input" | "clear-trigger" | "control" | "confirm-trigger" | "calendar" | "time-column" | "time-item">;
2040
2111
  meta: import("@xihan-ui/headless").ComponentMeta;
2041
- delegates: (import("@xihan-ui/kernel").Anatomy<"root" | "header" | "grid" | "heading" | "prev-trigger" | "next-trigger" | "grid-head" | "week-day" | "grid-body" | "week-row" | "cell" | "cell-trigger"> | import("@xihan-ui/kernel").Anatomy<"root" | "label" | "control" | "hidden-input" | "segment">)[];
2112
+ delegates: (import("@xihan-ui/kernel").Anatomy<"root" | "header" | "grid" | "heading" | "prev-trigger" | "next-trigger" | "grid-head" | "week-day" | "grid-body" | "week-row" | "cell" | "cell-trigger"> | import("@xihan-ui/kernel").Anatomy<"root" | "label" | "hidden-input" | "control" | "segment">)[];
2042
2113
  };
2043
2114
  static properties: {
2044
2115
  value: {
@@ -2139,6 +2210,18 @@ declare class XhDatePickerElement extends XhElement {
2139
2210
  };
2140
2211
  attribute: string;
2141
2212
  };
2213
+ showTime: {
2214
+ converter: {
2215
+ fromAttribute: (v: string | null) => boolean | undefined;
2216
+ };
2217
+ attribute: string;
2218
+ };
2219
+ timeGranularity: {
2220
+ converter: {
2221
+ fromAttribute: (v: string | null) => string | undefined;
2222
+ };
2223
+ attribute: string;
2224
+ };
2142
2225
  isDateUnavailable: {
2143
2226
  attribute: boolean;
2144
2227
  };
@@ -2162,6 +2245,8 @@ declare class XhDatePickerElement extends XhElement {
2162
2245
  placement?: Placement;
2163
2246
  offset?: number;
2164
2247
  closeOnSelect?: boolean;
2248
+ showTime?: boolean;
2249
+ timeGranularity?: DatePickerSchema['props']['timeGranularity'];
2165
2250
  isDateUnavailable?: (value: string) => boolean;
2166
2251
  private readonly idGen;
2167
2252
  private readonly pickerScope;
@@ -2224,7 +2309,7 @@ declare class XhDatePickerElement extends XhElement {
2224
2309
  */
2225
2310
  declare class XhDialogElement extends XhElement {
2226
2311
  static partContract: {
2227
- anatomy: import("@xihan-ui/kernel").Anatomy<"content" | "trigger" | "title" | "description" | "close-trigger" | "positioner" | "backdrop">;
2312
+ anatomy: import("@xihan-ui/kernel").Anatomy<"trigger" | "content" | "title" | "description" | "close-trigger" | "positioner" | "backdrop">;
2228
2313
  meta: import("@xihan-ui/headless").ComponentMeta;
2229
2314
  };
2230
2315
  static properties: {
@@ -2310,7 +2395,7 @@ declare class XhDialogElement extends XhElement {
2310
2395
  */
2311
2396
  declare class XhDrawerElement extends XhElement {
2312
2397
  static partContract: {
2313
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger" | "title" | "description" | "close-trigger" | "positioner" | "backdrop">;
2398
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "trigger" | "content" | "title" | "description" | "close-trigger" | "positioner" | "backdrop">;
2314
2399
  meta: import("@xihan-ui/headless").ComponentMeta;
2315
2400
  };
2316
2401
  static properties: {
@@ -2429,7 +2514,7 @@ declare class XhDrawerElement extends XhElement {
2429
2514
  */
2430
2515
  declare class XhEditableElement extends XhElement {
2431
2516
  static partContract: {
2432
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "control" | "input" | "area" | "submit-trigger" | "cancel-trigger" | "preview" | "edit-trigger">;
2517
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "input" | "control" | "area" | "submit-trigger" | "cancel-trigger" | "preview" | "edit-trigger">;
2433
2518
  meta: import("@xihan-ui/headless").ComponentMeta;
2434
2519
  };
2435
2520
  static properties: {
@@ -2664,7 +2749,11 @@ declare class XhFieldElement extends XhElement {
2664
2749
  * @attr {boolean} allow-drop - 是否接受拖拽投放,默认 true;写 allow-drop="false" 关掉
2665
2750
  * @attr {boolean} directory - 选目录而不是选文件(隐藏输入带 webkitdirectory)
2666
2751
  * @attr {'user'|'environment'} capture - 移动端直接调用摄像头/麦克风采集
2752
+ * @attr {boolean} auto-upload - 收下即自动开传(须配 upload 实现),默认 true;写 auto-upload="false" 关掉
2667
2753
  * @fires files-change - 列表变化;detail 为 `{ files: File[] }`
2754
+ * @fires remote-files-change - 远程附件列表变化;detail 为 `{ files: FileUploadRemoteFile[] }`
2755
+ * @fires upload-complete - 单个文件传完;detail 为 `{ file, url? }`
2756
+ * @fires upload-error - 单个文件传败;detail 为 `{ file, error }`
2668
2757
  * @fires file-accept - 本次收下了哪些;detail 为 `{ files: File[] }`
2669
2758
  * @fires file-reject - 本次拒了哪些、各自为什么;detail 为 `{ files: { file, reasons }[] }`
2670
2759
  * @csspart root - 组件根容器,承载 data-dragging / data-disabled / data-invalid / data-empty
@@ -2692,6 +2781,21 @@ declare class XhFileUploadElement extends XhElement {
2692
2781
  defaultFiles: {
2693
2782
  attribute: boolean;
2694
2783
  };
2784
+ remoteFiles: {
2785
+ attribute: boolean;
2786
+ };
2787
+ defaultRemoteFiles: {
2788
+ attribute: boolean;
2789
+ };
2790
+ upload: {
2791
+ attribute: boolean;
2792
+ };
2793
+ autoUpload: {
2794
+ converter: {
2795
+ fromAttribute: (v: string | null) => boolean | undefined;
2796
+ };
2797
+ attribute: string;
2798
+ };
2695
2799
  accept: {
2696
2800
  converter: {
2697
2801
  fromAttribute: (v: string | null) => string | undefined;
@@ -2746,6 +2850,10 @@ declare class XhFileUploadElement extends XhElement {
2746
2850
  };
2747
2851
  files?: File[];
2748
2852
  defaultFiles?: File[];
2853
+ remoteFiles?: FileUploadRemoteFile[];
2854
+ defaultRemoteFiles?: FileUploadRemoteFile[];
2855
+ upload?: FileUploadSchema['props']['upload'];
2856
+ autoUpload?: boolean;
2749
2857
  accept?: string | string[];
2750
2858
  maxFiles?: number;
2751
2859
  maxFileSize?: number;
@@ -2761,6 +2869,9 @@ declare class XhFileUploadElement extends XhElement {
2761
2869
  private readonly notifyChange;
2762
2870
  private readonly notifyAccept;
2763
2871
  private readonly notifyReject;
2872
+ private readonly notifyRemoteChange;
2873
+ private readonly notifyUploadComplete;
2874
+ private readonly notifyUploadError;
2764
2875
  private readonly ctrl;
2765
2876
  private machineProps;
2766
2877
  /** 命令式入口共用的取法;机器要到进文档(hostConnected)才建,未建则抛。 */
@@ -2806,6 +2917,9 @@ declare class XhFileUploadElement extends XhElement {
2806
2917
  *
2807
2918
  * @customElement xh-form
2808
2919
  * @attr {string} validate-on - 校验时机:submit(默认)/ blur / change
2920
+ * @attr {string} layout - 排布:vertical(默认)/ horizontal(标签左置两列)/ inline(横排一行流)
2921
+ * @attr {string} label-width - horizontal 下标签列宽(CSS 长度),整表统一对齐
2922
+ * @attr {string} label-align - horizontal 下标签对齐缘:end(默认,贴控件)/ start
2809
2923
  * @attr {boolean} disabled - 整个表单禁用:提交、重置、写值一概不发生,两颗按钮带原生 disabled
2810
2924
  * @attr {boolean} read-only - 只读:写值与重置不发生,但仍可提交
2811
2925
  * @fires values-change - 值表变化;detail 为 `{ values }`
@@ -2813,7 +2927,8 @@ declare class XhFileUploadElement extends XhElement {
2813
2927
  * @fires submit - 校验通过才派发;detail 为 `{ values }`
2814
2928
  * @fires invalid - 校验不通过时派发;detail 为 `{ errors, values }`
2815
2929
  * @csspart root - 表单根容器,必须是原生 `<form>`(承载 data-state/data-disabled/data-readonly/data-invalid)
2816
- * @csspart field-group - 单个字段的容器,须自带 value 属性标识字段名;带 id 供摘要链接指向
2930
+ * @csspart field-group - 单个字段的容器,须自带 value 属性标识字段名;带 id 供摘要链接指向。
2931
+ * 组里的 `<xh-field>` 由表单驱动 invalid/required/disabled,作者显式设的会被顶掉
2817
2932
  * @csspart error-summary - role=alert 的错误汇总,提交失败且仍有错误时才显形
2818
2933
  * @csspart error-summary-item - 摘要里的一条,须是原生 `<a>` 且自带 value 属性标识字段名;无对应错误时带 hidden
2819
2934
  * @csspart submit-trigger - 提交键,须是原生 button(连接层写成 type=submit)
@@ -2821,7 +2936,7 @@ declare class XhFileUploadElement extends XhElement {
2821
2936
  */
2822
2937
  declare class XhFormElement extends XhElement {
2823
2938
  static partContract: {
2824
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "submit-trigger" | "field-group" | "error-summary" | "error-summary-item" | "reset-trigger">;
2939
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "submit-trigger" | "reset-trigger" | "field-group" | "error-summary" | "error-summary-item">;
2825
2940
  meta: import("@xihan-ui/headless").ComponentMeta;
2826
2941
  };
2827
2942
  static properties: {
@@ -2840,12 +2955,35 @@ declare class XhFormElement extends XhElement {
2840
2955
  validate: {
2841
2956
  attribute: boolean;
2842
2957
  };
2958
+ rules: {
2959
+ attribute: boolean;
2960
+ };
2961
+ validateMessages: {
2962
+ attribute: boolean;
2963
+ };
2843
2964
  validateOn: {
2844
2965
  converter: {
2845
2966
  fromAttribute: (v: string | null) => string | undefined;
2846
2967
  };
2847
2968
  attribute: string;
2848
2969
  };
2970
+ layout: {
2971
+ converter: {
2972
+ fromAttribute: (v: string | null) => string | undefined;
2973
+ };
2974
+ };
2975
+ labelWidth: {
2976
+ converter: {
2977
+ fromAttribute: (v: string | null) => string | undefined;
2978
+ };
2979
+ attribute: string;
2980
+ };
2981
+ labelAlign: {
2982
+ converter: {
2983
+ fromAttribute: (v: string | null) => string | undefined;
2984
+ };
2985
+ attribute: string;
2986
+ };
2849
2987
  disabled: {
2850
2988
  converter: {
2851
2989
  fromAttribute: (v: string | null) => boolean | undefined;
@@ -2863,7 +3001,13 @@ declare class XhFormElement extends XhElement {
2863
3001
  errors?: FormErrorPatch;
2864
3002
  defaultErrors?: FormErrorPatch;
2865
3003
  validate?: FormSchema['props']['validate'];
3004
+ /** 声明式校验规则;对象进不了属性,只作为 property 暴露。 */
3005
+ rules?: FormSchema['props']['rules'];
3006
+ validateMessages?: FormSchema['props']['validateMessages'];
2866
3007
  validateOn?: FormValidateOn;
3008
+ layout?: FormSchema['props']['layout'];
3009
+ labelWidth?: string;
3010
+ labelAlign?: FormSchema['props']['labelAlign'];
2867
3011
  disabled?: boolean;
2868
3012
  readOnly?: boolean;
2869
3013
  private readonly notifyValues;
@@ -2930,7 +3074,7 @@ declare class XhFormElement extends XhElement {
2930
3074
  */
2931
3075
  declare class XhHoverCardElement extends XhElement {
2932
3076
  static partContract: {
2933
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger" | "positioner" | "arrow">;
3077
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "trigger" | "content" | "positioner" | "arrow">;
2934
3078
  meta: import("@xihan-ui/headless").ComponentMeta;
2935
3079
  };
2936
3080
  static properties: {
@@ -3134,6 +3278,151 @@ declare class XhImageElement extends XhElement {
3134
3278
  protected wire(): void;
3135
3279
  }
3136
3280
  //#endregion
3281
+ //#region src/elements/image-viewer.d.ts
3282
+ /**
3283
+ * `<xh-image-viewer>` —— Light-DOM 行为宿主,跑 image-viewer 机器:
3284
+ * 模态看片浮层,滚轮缩放、拖拽平移、旋转翻转与多图翻页。
3285
+ *
3286
+ * @customElement xh-image-viewer
3287
+ * @attr {boolean} open - 受控开合;缺省该属性即非受控
3288
+ * @attr {boolean} default-open - 非受控初始为打开
3289
+ * @attr {number} index - 受控下标(0 起)
3290
+ * @attr {number} default-index - 非受控初始下标,默认 0
3291
+ * @attr {boolean} loop - 前后翻页到头回绕,默认 true;写 loop="false" 关掉
3292
+ * @attr {number} zoom-step - 缩放步长(加法),默认 0.5
3293
+ * @attr {number} min-scale - 缩放下限,默认 0.25
3294
+ * @attr {number} max-scale - 缩放上限,默认 8
3295
+ * @attr {boolean} close-on-escape - Esc 关闭,默认 true
3296
+ * @attr {boolean} close-on-interact-outside - 点遮罩关闭,默认 true
3297
+ * @attr {boolean} restore-focus - 关闭后把焦点归还触发元素,默认 true
3298
+ * @fires open-change - open 状态变化;detail 为 `{ open: boolean }`
3299
+ * @fires index-change - 下标变化;detail 为 `{ index: number }`
3300
+ * @csspart trigger - 触发按钮
3301
+ * @csspart backdrop - 遮罩层
3302
+ * @csspart positioner - 浮层定位容器
3303
+ * @csspart content - 看片容器(role=dialog + aria-modal;方向键翻页在这里)
3304
+ * @csspart viewport - 手势视口(滚轮缩放、拖拽平移)
3305
+ * @csspart image - 当前那张图(src/alt/transform 由元素代填)
3306
+ * @csspart toolbar - 工具条容器
3307
+ * @csspart zoom-in-trigger - 放大
3308
+ * @csspart zoom-out-trigger - 缩小
3309
+ * @csspart rotate-left-trigger - 左转 90°
3310
+ * @csspart rotate-right-trigger - 右转 90°
3311
+ * @csspart flip-horizontal-trigger - 水平翻转
3312
+ * @csspart flip-vertical-trigger - 垂直翻转
3313
+ * @csspart reset-trigger - 变换归零
3314
+ * @csspart prev-trigger - 上一张
3315
+ * @csspart next-trigger - 下一张
3316
+ * @csspart counter - 「第 n / 共 m」计数(元素代填)
3317
+ * @csspart close-trigger - 关闭
3318
+ */
3319
+ declare class XhImageViewerElement extends XhElement {
3320
+ static partContract: {
3321
+ anatomy: import("@xihan-ui/kernel").Anatomy<"trigger" | "content" | "close-trigger" | "image" | "prev-trigger" | "next-trigger" | "viewport" | "positioner" | "backdrop" | "reset-trigger" | "toolbar" | "zoom-in-trigger" | "zoom-out-trigger" | "rotate-left-trigger" | "rotate-right-trigger" | "flip-horizontal-trigger" | "flip-vertical-trigger" | "counter">;
3322
+ meta: import("@xihan-ui/headless").ComponentMeta;
3323
+ };
3324
+ static properties: {
3325
+ open: {
3326
+ converter: {
3327
+ fromAttribute: (v: string | null) => boolean | undefined;
3328
+ };
3329
+ };
3330
+ defaultOpen: {
3331
+ type: BooleanConstructor;
3332
+ attribute: string;
3333
+ };
3334
+ index: {
3335
+ converter: {
3336
+ fromAttribute: (v: string | null) => number | undefined;
3337
+ };
3338
+ };
3339
+ defaultIndex: {
3340
+ converter: {
3341
+ fromAttribute: (v: string | null) => number | undefined;
3342
+ };
3343
+ attribute: string;
3344
+ };
3345
+ loop: {
3346
+ converter: {
3347
+ fromAttribute: (v: string | null) => boolean | undefined;
3348
+ };
3349
+ };
3350
+ zoomStep: {
3351
+ converter: {
3352
+ fromAttribute: (v: string | null) => number | undefined;
3353
+ };
3354
+ attribute: string;
3355
+ };
3356
+ minScale: {
3357
+ converter: {
3358
+ fromAttribute: (v: string | null) => number | undefined;
3359
+ };
3360
+ attribute: string;
3361
+ };
3362
+ maxScale: {
3363
+ converter: {
3364
+ fromAttribute: (v: string | null) => number | undefined;
3365
+ };
3366
+ attribute: string;
3367
+ };
3368
+ closeOnEscape: {
3369
+ converter: {
3370
+ fromAttribute: (v: string | null) => boolean | undefined;
3371
+ };
3372
+ attribute: string;
3373
+ };
3374
+ closeOnInteractOutside: {
3375
+ converter: {
3376
+ fromAttribute: (v: string | null) => boolean | undefined;
3377
+ };
3378
+ attribute: string;
3379
+ };
3380
+ restoreFocus: {
3381
+ converter: {
3382
+ fromAttribute: (v: string | null) => boolean | undefined;
3383
+ };
3384
+ attribute: string;
3385
+ };
3386
+ items: {
3387
+ attribute: boolean;
3388
+ };
3389
+ translations: {
3390
+ attribute: boolean;
3391
+ };
3392
+ };
3393
+ open?: boolean;
3394
+ defaultOpen?: boolean;
3395
+ index?: number;
3396
+ defaultIndex?: number;
3397
+ loop?: boolean;
3398
+ zoomStep?: number;
3399
+ minScale?: number;
3400
+ maxScale?: number;
3401
+ closeOnEscape?: boolean;
3402
+ closeOnInteractOutside?: boolean;
3403
+ restoreFocus?: boolean;
3404
+ /** 图片清单。看单张就给长度 1 的数组。 */
3405
+ items?: ImageViewerItem[];
3406
+ /** 工具条按钮的可及名与计数文案;connect 每帧重写,只能从这里给。 */
3407
+ translations?: Partial<ImageViewerTranslations>;
3408
+ private readonly idGen;
3409
+ private readonly viewerScope;
3410
+ private config;
3411
+ private contentNode;
3412
+ private backdropNode;
3413
+ /** counter 的文本归属:首帧为空才代填,作者写过内容就不碰。 */
3414
+ private counterOwned;
3415
+ private readonly notifyOpen;
3416
+ private readonly notifyIndex;
3417
+ private readonly ctrl;
3418
+ private machineProps;
3419
+ private ensureConfig;
3420
+ private readonly registerLayer;
3421
+ private injectRefs;
3422
+ protected wire(): void;
3423
+ disconnectedCallback(): void;
3424
+ }
3425
+ //#endregion
3137
3426
  //#region src/elements/listbox.d.ts
3138
3427
  /**
3139
3428
  * `<xh-listbox>` —— Light-DOM 行为宿主:作者写 root/label/content 与若干 item 角色节点,
@@ -3387,7 +3676,7 @@ declare class XhLoadingBarElement extends XhElement {
3387
3676
  */
3388
3677
  declare class XhMenuElement extends XhElement {
3389
3678
  static partContract: {
3390
- anatomy: import("@xihan-ui/kernel").Anatomy<"item" | "content" | "trigger" | "separator" | "positioner" | "arrow">;
3679
+ anatomy: import("@xihan-ui/kernel").Anatomy<"item" | "trigger" | "content" | "separator" | "positioner" | "arrow">;
3391
3680
  meta: import("@xihan-ui/headless").ComponentMeta;
3392
3681
  };
3393
3682
  static properties: {
@@ -3434,6 +3723,29 @@ declare class XhMenuElement extends XhElement {
3434
3723
  fromAttribute: (v: string | null) => string | undefined;
3435
3724
  };
3436
3725
  };
3726
+ submenu: {
3727
+ converter: {
3728
+ fromAttribute: (v: string | null) => boolean | undefined;
3729
+ };
3730
+ };
3731
+ openOnHover: {
3732
+ converter: {
3733
+ fromAttribute: (v: string | null) => boolean | undefined;
3734
+ };
3735
+ attribute: string;
3736
+ };
3737
+ hoverOpenDelay: {
3738
+ converter: {
3739
+ fromAttribute: (v: string | null) => number | undefined;
3740
+ };
3741
+ attribute: string;
3742
+ };
3743
+ hoverCloseDelay: {
3744
+ converter: {
3745
+ fromAttribute: (v: string | null) => number | undefined;
3746
+ };
3747
+ attribute: string;
3748
+ };
3437
3749
  };
3438
3750
  collection?: MenuNode[];
3439
3751
  open?: boolean;
@@ -3444,6 +3756,10 @@ declare class XhMenuElement extends XhElement {
3444
3756
  direction?: Direction;
3445
3757
  tone?: Tone;
3446
3758
  size?: Size;
3759
+ submenu?: boolean;
3760
+ openOnHover?: boolean;
3761
+ hoverOpenDelay?: number;
3762
+ hoverCloseDelay?: number;
3447
3763
  private readonly idGen;
3448
3764
  private readonly menuScope;
3449
3765
  private readonly positionEngine;
@@ -3513,7 +3829,7 @@ declare class XhMenuElement extends XhElement {
3513
3829
  */
3514
3830
  declare class XhMenubarElement extends XhElement {
3515
3831
  static partContract: {
3516
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "trigger" | "separator" | "positioner" | "item-text" | "item-indicator" | "group" | "group-label">;
3832
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "trigger" | "content" | "separator" | "positioner" | "item-text" | "item-indicator" | "group" | "group-label">;
3517
3833
  meta: import("@xihan-ui/headless").ComponentMeta;
3518
3834
  };
3519
3835
  static properties: {
@@ -3648,7 +3964,7 @@ declare class XhMenubarElement extends XhElement {
3648
3964
  */
3649
3965
  declare class XhNavigationMenuElement extends XhElement {
3650
3966
  static partContract: {
3651
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "viewport" | "content" | "indicator" | "trigger" | "list" | "link">;
3967
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "trigger" | "content" | "list" | "link" | "viewport">;
3652
3968
  meta: import("@xihan-ui/headless").ComponentMeta;
3653
3969
  };
3654
3970
  static properties: {
@@ -4113,7 +4429,7 @@ declare class XhPinInputElement extends XhElement {
4113
4429
  */
4114
4430
  declare class XhPopoverElement extends XhElement {
4115
4431
  static partContract: {
4116
- anatomy: import("@xihan-ui/kernel").Anatomy<"content" | "trigger" | "title" | "description" | "close-trigger" | "positioner" | "arrow">;
4432
+ anatomy: import("@xihan-ui/kernel").Anatomy<"trigger" | "content" | "title" | "description" | "close-trigger" | "positioner" | "arrow">;
4117
4433
  meta: import("@xihan-ui/headless").ComponentMeta;
4118
4434
  };
4119
4435
  static properties: {
@@ -4195,20 +4511,39 @@ declare class XhPopoverElement extends XhElement {
4195
4511
  //#endregion
4196
4512
  //#region src/elements/progress.d.ts
4197
4513
  /**
4198
- * `<xh-progress>` —— Light-DOM 行为宿主,无状态机,把 connectProgress 产出打到 root/track/range 角色节点。
4514
+ * `<xh-progress>` —— Light-DOM 行为宿主,无状态机,把 connectProgress 产出打到各角色节点。
4515
+ *
4516
+ * 线形写三层 div(root > track > range);环形要把 track 与 range 写成 `<circle>`、
4517
+ * 外面套一层 `<svg>` 当 canvas,环心的文字放进 label:
4518
+ *
4519
+ * ```html
4520
+ * <xh-progress variant="circle" value="60">
4521
+ * <div data-part="root">
4522
+ * <svg data-part="canvas"><circle data-part="track" /><circle data-part="range" /></svg>
4523
+ * <div data-part="label">60%</div>
4524
+ * </div>
4525
+ * </xh-progress>
4526
+ * ```
4199
4527
  *
4200
4528
  * @customElement xh-progress
4201
4529
  * @attr {number} value - 当前进度值,越界会被夹到 [0, max],默认 0
4202
4530
  * @attr {number} max - 满值上限,默认 100
4531
+ * @attr {'line'|'circle'|'dashboard'} variant - 形态,默认 line
4532
+ * @attr {number} stroke-width - 环的线宽(viewBox 单位),默认 6;只对 circle / dashboard 生效
4533
+ * @attr {number} gap-degree - 缺口角度,默认 75;只对 dashboard 生效
4534
+ * @attr {'top'|'right'|'bottom'|'left'} gap-position - 缺口朝向,默认 bottom;只对 dashboard 生效
4535
+ * @attr {string} value-text - 读屏播报的文字,覆盖默认的数值播报
4203
4536
  * @attr {'brand'|'neutral'|'success'|'warning'|'danger'|'info'} tone - 语气
4204
- * @attr {'sm'|'md'|'lg'} size - 尺寸
4537
+ * @attr {'sm'|'md'|'lg'} size - 尺寸:线形改厚度,环形改直径
4205
4538
  * @csspart root - role=progressbar 的容器(承载 aria-valuenow/aria-valuemax/data-state)
4206
- * @csspart track - 进度轨道(满长背景)
4207
- * @csspart range - 已完成区段,长度按百分比写成内联 inline-size
4539
+ * @csspart canvas - 承载环的 svg(线形不用)
4540
+ * @csspart track - 进度轨道:线形是满长背景,环形是整段弧
4541
+ * @csspart range - 已完成区段:线形写内联 inline-size,环形写 stroke-dashoffset
4542
+ * @csspart label - 环心那一块,写什么由使用者决定(线形不用)
4208
4543
  */
4209
4544
  declare class XhProgressElement extends XhElement {
4210
4545
  static partContract: {
4211
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "track" | "range">;
4546
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "track" | "range" | "canvas">;
4212
4547
  meta: import("@xihan-ui/headless").ComponentMeta;
4213
4548
  };
4214
4549
  static properties: {
@@ -4218,11 +4553,31 @@ declare class XhProgressElement extends XhElement {
4218
4553
  max: {
4219
4554
  type: NumberConstructor;
4220
4555
  };
4556
+ variant: {};
4557
+ strokeWidth: {
4558
+ type: NumberConstructor;
4559
+ attribute: string;
4560
+ };
4561
+ gapDegree: {
4562
+ type: NumberConstructor;
4563
+ attribute: string;
4564
+ };
4565
+ gapPosition: {
4566
+ attribute: string;
4567
+ };
4568
+ valueText: {
4569
+ attribute: string;
4570
+ };
4221
4571
  tone: {};
4222
4572
  size: {};
4223
4573
  };
4224
4574
  value?: number;
4225
4575
  max?: number;
4576
+ variant?: ProgressVariant;
4577
+ strokeWidth?: number;
4578
+ gapDegree?: number;
4579
+ gapPosition?: ProgressGapPosition;
4580
+ valueText?: string;
4226
4581
  tone?: Tone;
4227
4582
  size?: Size;
4228
4583
  protected wire(): void;
@@ -4254,7 +4609,7 @@ declare class XhProgressElement extends XhElement {
4254
4609
  */
4255
4610
  declare class XhRadioGroupElement extends XhElement {
4256
4611
  static partContract: {
4257
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "indicator" | "label" | "item-text" | "hidden-input">;
4612
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "label" | "item-text" | "hidden-input">;
4258
4613
  meta: import("@xihan-ui/headless").ComponentMeta;
4259
4614
  };
4260
4615
  static properties: {
@@ -4318,6 +4673,7 @@ declare class XhRadioGroupElement extends XhElement {
4318
4673
  * @attr {number} default-value - 非受控初值,缺省 0(还没评)
4319
4674
  * @attr {number} count - 星星颗数,默认 5
4320
4675
  * @attr {boolean} allow-half - 允许半颗星:档位从 1 变成 0.5
4676
+ * @attr {boolean} allow-clear - 再点当前档位清零,键盘最低档再往下也清;默认开,写 "false" 关
4321
4677
  * @attr {boolean} disabled - 整个不可交互:整条带子退出 Tab 序列,指针与键盘都不认
4322
4678
  * @attr {boolean} read-only - 只读:仍可聚焦与朗读,但改不动,也没有悬停预览
4323
4679
  * @attr {boolean} required - 必填标注;表单影子据此参与原生校验
@@ -4336,7 +4692,7 @@ declare class XhRadioGroupElement extends XhElement {
4336
4692
  */
4337
4693
  declare class XhRatingElement extends XhElement {
4338
4694
  static partContract: {
4339
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "label" | "control" | "hidden-input">;
4695
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "label" | "hidden-input" | "control">;
4340
4696
  meta: import("@xihan-ui/headless").ComponentMeta;
4341
4697
  };
4342
4698
  static properties: {
@@ -4362,6 +4718,12 @@ declare class XhRatingElement extends XhElement {
4362
4718
  };
4363
4719
  attribute: string;
4364
4720
  };
4721
+ allowClear: {
4722
+ converter: {
4723
+ fromAttribute: (v: string | null) => boolean | undefined;
4724
+ };
4725
+ attribute: string;
4726
+ };
4365
4727
  disabled: {
4366
4728
  converter: {
4367
4729
  fromAttribute: (v: string | null) => boolean | undefined;
@@ -4404,6 +4766,7 @@ declare class XhRatingElement extends XhElement {
4404
4766
  defaultValue?: number;
4405
4767
  count?: number;
4406
4768
  allowHalf?: boolean;
4769
+ allowClear?: boolean;
4407
4770
  disabled?: boolean;
4408
4771
  readOnly?: boolean;
4409
4772
  required?: boolean;
@@ -4456,7 +4819,7 @@ declare class XhRatingElement extends XhElement {
4456
4819
  */
4457
4820
  declare class XhScrollAreaElement extends XhElement {
4458
4821
  static partContract: {
4459
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "viewport" | "content" | "thumb" | "scrollbar" | "corner">;
4822
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "viewport" | "thumb" | "scrollbar" | "corner">;
4460
4823
  meta: import("@xihan-ui/headless").ComponentMeta;
4461
4824
  };
4462
4825
  static properties: {
@@ -4517,6 +4880,8 @@ declare class XhScrollAreaElement extends XhElement {
4517
4880
  * @attr {boolean} open - 受控开合;缺省该属性即非受控
4518
4881
  * @attr {boolean} default-open - 非受控初始为展开
4519
4882
  * @attr {boolean} disabled - 整个控件禁用:trigger 用原生 disabled,表单影子不参与提交
4883
+ * @attr {boolean} invalid - 校验错误态:trigger 标红并输出 aria-invalid
4884
+ * @attr {number} max-tag-count - 多选标签最多摆几个,其余折进 api 的 overflowCount;缺省全摆
4520
4885
  * @attr {boolean} required - 原生表单校验:无选中值时提交被拦下;多选下的门槛是至少选中一项
4521
4886
  * @attr {string} name - 表单字段名;给定后表单影子才带 name 并参与提交
4522
4887
  * @attr {string} placeholder - 无选中时 value-text 显示的占位文字
@@ -4535,6 +4900,10 @@ declare class XhScrollAreaElement extends XhElement {
4535
4900
  * @csspart trigger - 触发按钮(aria-haspopup=listbox/aria-expanded/aria-controls 所在),同时是定位锚点,须是原生 button
4536
4901
  * @csspart value-text - 选中项文本的显示位;留空即由元素填入 displayText,作者写了内容则归作者
4537
4902
  * @csspart indicator - 展开指示符(aria-hidden,data-state 随开合)
4903
+ * @csspart control - 触发器与清空按钮的收纳容器兼定位基准;清空钮据此嵌进触发器右端、悬停时替换展开指示符
4904
+ * @csspart clear-trigger - 清空按钮:trigger 的兄弟节点(放进 control 即内嵌形态),没选中或禁用时带 hidden;可及名走 translations.clear
4905
+ * @csspart tag - 多选标签,须自带 value 属性标识选中值;放触发器里是纯展示,放外面配 tag-remove 可删
4906
+ * @csspart tag-remove - 标签删除按钮,须放在 tag 里;点按摘掉所在标签的选中值,可及名走 translations.removeTag
4538
4907
  * @csspart positioner - 浮层定位容器,坐标由引擎写成内联样式
4539
4908
  * @csspart content - role=listbox 容器(焦点域与消解层的根节点,键盘在此收口),收起时带 hidden
4540
4909
  * @csspart item - role=option 条目,须自带 value 属性标识身份;禁用写 aria-disabled="true"
@@ -4544,7 +4913,7 @@ declare class XhScrollAreaElement extends XhElement {
4544
4913
  */
4545
4914
  declare class XhSelectElement extends XhElement {
4546
4915
  static partContract: {
4547
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "indicator" | "trigger" | "label" | "positioner" | "item-text" | "item-indicator" | "value-text" | "hidden-select">;
4916
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "trigger" | "content" | "label" | "positioner" | "item-text" | "item-indicator" | "clear-trigger" | "value-text" | "control" | "tag" | "tag-remove" | "hidden-select">;
4548
4917
  meta: import("@xihan-ui/headless").ComponentMeta;
4549
4918
  };
4550
4919
  static properties: {
@@ -4574,6 +4943,9 @@ declare class XhSelectElement extends XhElement {
4574
4943
  disabled: {
4575
4944
  type: BooleanConstructor;
4576
4945
  };
4946
+ invalid: {
4947
+ type: BooleanConstructor;
4948
+ };
4577
4949
  required: {
4578
4950
  type: BooleanConstructor;
4579
4951
  };
@@ -4626,6 +4998,15 @@ declare class XhSelectElement extends XhElement {
4626
4998
  fromAttribute: (v: string | null) => string | undefined;
4627
4999
  };
4628
5000
  };
5001
+ translations: {
5002
+ attribute: boolean;
5003
+ };
5004
+ maxTagCount: {
5005
+ converter: {
5006
+ fromAttribute: (v: string | null) => number | undefined;
5007
+ };
5008
+ attribute: string;
5009
+ };
4629
5010
  };
4630
5011
  collection?: SelectNode[];
4631
5012
  value?: string | string[];
@@ -4633,6 +5014,7 @@ declare class XhSelectElement extends XhElement {
4633
5014
  open?: boolean;
4634
5015
  defaultOpen?: boolean;
4635
5016
  disabled?: boolean;
5017
+ invalid?: boolean;
4636
5018
  required?: boolean;
4637
5019
  name?: string;
4638
5020
  placeholder?: string;
@@ -4644,6 +5026,9 @@ declare class XhSelectElement extends XhElement {
4644
5026
  variant?: ControlVariant;
4645
5027
  tone?: Tone;
4646
5028
  size?: Size;
5029
+ /** 读屏文案(clear 等);对象进不了属性,只作为 property 暴露。 */
5030
+ translations?: SelectSchema['props']['translations'];
5031
+ maxTagCount?: number;
4647
5032
  private readonly idGen;
4648
5033
  private readonly selectScope;
4649
5034
  private readonly positionEngine;
@@ -4713,6 +5098,128 @@ declare class XhSeparatorElement extends XhElement {
4713
5098
  protected wire(): void;
4714
5099
  }
4715
5100
  //#endregion
5101
+ //#region src/elements/side-nav.d.ts
5102
+ /**
5103
+ * `<xh-side-nav>` —— Light-DOM 行为宿主:管理后台侧栏导航。
5104
+ * 作者写 root/list 与若干 branch / link 角色节点,元素跑 side-nav 机器并把 connect 产出打上去。
5105
+ * 节点身份取自节点上的 value 属性;href 与禁用查 `collection` 这份树数据。
5106
+ *
5107
+ * @customElement xh-side-nav
5108
+ * @attr {string} value - 受控选中的叶子;缺省该属性即非受控
5109
+ * @attr {string} default-value - 非受控初始选中
5110
+ * @attr {boolean} accordion - 同层手风琴:展开一枝收起同层其余,默认 false
5111
+ * @attr {boolean} collapsed - 折叠成图标栏(内嵌展开整体收起、文字由皮肤藏掉;顶层分支换装浮层弹出)
5112
+ * @attr {boolean} collapsed-popout - 折叠态下顶层分支是否弹出子级面板,默认 true
5113
+ * @attr {boolean} disabled - 整个侧栏禁用
5114
+ * @attr {boolean} loop - 上下键走到首尾回绕,默认关
5115
+ * @attr {'ltr'|'rtl'} dir - 文字方向,只对调左右方向键的展开/收起语义,默认 ltr
5116
+ * @fires value-change - 选中变化;detail 为 `{ value: string | null }`
5117
+ * @fires expanded-change - 展开集合变化;detail 为 `{ value: string[] }`
5118
+ * @csspart root - nav 地标根容器(aria-label 由 translations.root 给)
5119
+ * @csspart list - 顶层列表容器
5120
+ * @csspart group - role=group 分组,须自带 value 属性
5121
+ * @csspart group-label - 分组标题(aria-labelledby 目标)
5122
+ * @csspart branch - 分支行容器,须自带 value 属性;它裹着自己的 branch-content
5123
+ * @csspart branch-trigger - 展开/收起按钮(aria-expanded / aria-controls)
5124
+ * @csspart branch-text - 行文字载体,折叠成图标栏时隐藏
5125
+ * @csspart branch-indicator - 展开方向指示符(aria-hidden)
5126
+ * @csspart branch-content - 内嵌子层容器,收起时隐藏
5127
+ * @csspart link - 去处链接,须自带 value 属性;选中输出 aria-current="page"
5128
+ * @csspart link-text - 链接文字载体,折叠成图标栏时隐藏
5129
+ */
5130
+ declare class XhSideNavElement extends XhElement {
5131
+ static partContract: {
5132
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "list" | "link" | "group" | "group-label" | "branch" | "branch-trigger" | "branch-text" | "branch-indicator" | "branch-content" | "link-text">;
5133
+ meta: import("@xihan-ui/headless").ComponentMeta;
5134
+ };
5135
+ static properties: {
5136
+ value: {
5137
+ converter: {
5138
+ fromAttribute: (v: string | null) => string | undefined;
5139
+ };
5140
+ };
5141
+ defaultValue: {
5142
+ converter: {
5143
+ fromAttribute: (v: string | null) => string | undefined;
5144
+ };
5145
+ attribute: string;
5146
+ };
5147
+ accordion: {
5148
+ converter: {
5149
+ fromAttribute: (v: string | null) => boolean | undefined;
5150
+ };
5151
+ };
5152
+ collapsed: {
5153
+ converter: {
5154
+ fromAttribute: (v: string | null) => boolean | undefined;
5155
+ };
5156
+ };
5157
+ collapsedPopout: {
5158
+ converter: {
5159
+ fromAttribute: (v: string | null) => boolean | undefined;
5160
+ };
5161
+ attribute: string;
5162
+ };
5163
+ disabled: {
5164
+ converter: {
5165
+ fromAttribute: (v: string | null) => boolean | undefined;
5166
+ };
5167
+ };
5168
+ loop: {
5169
+ converter: {
5170
+ fromAttribute: (v: string | null) => boolean | undefined;
5171
+ };
5172
+ };
5173
+ direction: {
5174
+ converter: {
5175
+ fromAttribute: (v: string | null) => string | undefined;
5176
+ };
5177
+ attribute: string;
5178
+ };
5179
+ collection: {
5180
+ attribute: boolean;
5181
+ };
5182
+ expandedValue: {
5183
+ attribute: boolean;
5184
+ };
5185
+ defaultExpandedValue: {
5186
+ attribute: boolean;
5187
+ };
5188
+ translations: {
5189
+ attribute: boolean;
5190
+ };
5191
+ };
5192
+ value?: string;
5193
+ defaultValue?: string;
5194
+ accordion?: boolean;
5195
+ collapsed?: boolean;
5196
+ collapsedPopout?: boolean;
5197
+ disabled?: boolean;
5198
+ loop?: boolean;
5199
+ direction?: SideNavSchema['props']['dir'];
5200
+ /** 入口树,href/禁用/层级的唯一事实源,须与标记同源。 */
5201
+ collection?: SideNavNode[];
5202
+ expandedValue?: string[];
5203
+ defaultExpandedValue?: string[];
5204
+ translations?: Partial<SideNavTranslations>;
5205
+ private readonly notifyValue;
5206
+ private readonly notifyExpanded;
5207
+ private readonly idGen;
5208
+ private readonly navScope;
5209
+ private readonly positionEngine;
5210
+ private config;
5211
+ private readonly ctrl;
5212
+ private machineProps;
5213
+ private ensureConfig;
5214
+ /** 当前弹出分支名下的角色节点:按归属分支的 value 现查。 */
5215
+ private findPopoutPart;
5216
+ private readonly registerLayer;
5217
+ private injectRefs;
5218
+ private nodeOf;
5219
+ disconnectedCallback(): void;
5220
+ protected wire(): void;
5221
+ }
5222
+ //#endregion
4716
5223
  //#region src/elements/skeleton.d.ts
4717
5224
  /**
4718
5225
  * `<xh-skeleton>` —— 骨架屏宿主,无状态机,把 connectSkeleton 产出的属性打到角色节点上。
@@ -4768,6 +5275,7 @@ declare class XhSkeletonElement extends XhElement {
4768
5275
  * @attr {number} step - 方向键与吸附网格的步长,默认 1
4769
5276
  * @attr {number} large-step - PageUp/PageDown 的步长,默认 10 倍 step
4770
5277
  * @attr {number} min-steps-between-thumbs - 相邻滑块至少隔几格,默认 0
5278
+ * @attr {boolean} snap-to-marks - 只认刻度落点:拖动、点按与键盘都吸到最近/下一档刻度;刻度表经 marks property 赋
4771
5279
  * @attr {'horizontal'|'vertical'} orientation - 轨道朝向,默认 horizontal
4772
5280
  * @attr {'ltr'|'rtl'} dir - 文字方向,只改写水平轨道上左右两键与指针的语义,默认 ltr
4773
5281
  * @attr {boolean} disabled - 禁用:拇指退出 Tab 序列、推不动、不参与表单提交
@@ -4783,12 +5291,15 @@ declare class XhSkeletonElement extends XhElement {
4783
5291
  * @csspart control - 指针命中区,按下即跳到落点并接管拖动
4784
5292
  * @csspart track - 轨道本体,值与坐标的换算以它的矩形为准
4785
5293
  * @csspart range - 已选区间,起止由内联逻辑属性给出
5294
+ * @csspart marks - 刻度容器
5295
+ * @csspart mark - 刻度点(纯装饰),须自带 value 属性;落进已选区间带 data-active
5296
+ * @csspart mark-label - 刻度文案,须自带 value 属性;点按把最近的滑块跳到这一档
4786
5297
  * @csspart thumb - role=slider 的拇指,键盘交互全在它身上;多滑块须写 index 属性
4787
5298
  * @csspart hidden-input - 拇指内的表单影子(须是原生 input)
4788
5299
  */
4789
5300
  declare class XhSliderElement extends XhElement {
4790
5301
  static partContract: {
4791
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "control" | "hidden-input" | "track" | "range" | "thumb">;
5302
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "hidden-input" | "control" | "track" | "range" | "thumb" | "mark" | "marks" | "mark-label">;
4792
5303
  meta: import("@xihan-ui/headless").ComponentMeta;
4793
5304
  };
4794
5305
  static properties: {
@@ -4830,6 +5341,15 @@ declare class XhSliderElement extends XhElement {
4830
5341
  };
4831
5342
  attribute: string;
4832
5343
  };
5344
+ snapToMarks: {
5345
+ converter: {
5346
+ fromAttribute: (v: string | null) => boolean | undefined;
5347
+ };
5348
+ attribute: string;
5349
+ };
5350
+ marks: {
5351
+ attribute: boolean;
5352
+ };
4833
5353
  orientation: {
4834
5354
  converter: {
4835
5355
  fromAttribute: (v: string | null) => string | undefined;
@@ -4883,6 +5403,9 @@ declare class XhSliderElement extends XhElement {
4883
5403
  step?: number;
4884
5404
  largeStep?: number;
4885
5405
  minStepsBetweenThumbs?: number;
5406
+ /** 刻度表;数组进不了属性,只作为 property 暴露。 */
5407
+ marks?: SliderSchema['props']['marks'];
5408
+ snapToMarks?: boolean;
4886
5409
  orientation?: Orientation;
4887
5410
  direction?: Direction;
4888
5411
  disabled?: boolean;
@@ -4969,16 +5492,16 @@ declare class XhSpinnerElement extends XhElement {
4969
5492
  * 第 index 条分隔条坐在第 index 与第 index+1 块面板之间,调整的是前一块。
4970
5493
  *
4971
5494
  * @customElement xh-splitter
4972
- * @attr {string} size - 受控布局,逗号分隔的百分比(如 "30,70");缺省该属性即非受控
4973
- * @attr {string} default-size - 非受控初值,同样逗号分隔;缺省时按面板数等分
5495
+ * @attr {string} sizes - 受控布局,逗号分隔的百分比(如 "30,70");缺省该属性即非受控
5496
+ * @attr {string} default-sizes - 非受控初值,同样逗号分隔;缺省时按面板数等分
4974
5497
  * @attr {string} panels - 逐块约束的 JSON 数组:id / min / max / collapsible / collapsedSize
4975
5498
  * @attr {'horizontal'|'vertical'} orientation - 面板排布轴,默认 horizontal(并排)
4976
5499
  * @attr {'ltr'|'rtl'} dir - 文字方向,只对调水平排布下左右两键与指针位移的正负,默认 ltr
4977
5500
  * @attr {boolean} disabled - 禁用:分隔条退出 Tab 序列、拖不动也推不动
4978
5501
  * @attr {number} step - 方向键的步长(百分比),默认 1
4979
5502
  * @attr {number} large-step - Shift + 方向键的步长(百分比),默认 10
4980
- * @fires size-change - 布局变化(拖动途中会连发);detail 为 `{ size: number[] }`
4981
- * @fires size-change-end - 一次拖拽收尾发一次;detail 为 `{ size: number[], index: number }`
5503
+ * @fires sizes-change - 布局变化(拖动途中会连发);detail 为 `{ sizes: number[] }`
5504
+ * @fires sizes-change-end - 一次拖拽收尾发一次;detail 为 `{ sizes: number[], index: number }`
4982
5505
  * @csspart root - 承载 data-orientation / data-disabled / data-dragging 的容器,矩形以它为准
4983
5506
  * @csspart panel - 一块面板;尺寸由内联 flex-basis 给出,折叠时带 data-collapsed
4984
5507
  * @csspart resize-trigger - role=separator 的分隔条,指针与键盘交互全在它身上
@@ -4989,12 +5512,12 @@ declare class XhSplitterElement extends XhElement {
4989
5512
  meta: import("@xihan-ui/headless").ComponentMeta;
4990
5513
  };
4991
5514
  static properties: {
4992
- size: {
5515
+ sizes: {
4993
5516
  converter: {
4994
5517
  fromAttribute: (v: string | null) => number[] | undefined;
4995
5518
  };
4996
5519
  };
4997
- defaultSize: {
5520
+ defaultSizes: {
4998
5521
  converter: {
4999
5522
  fromAttribute: (v: string | null) => number[] | undefined;
5000
5523
  };
@@ -5033,8 +5556,8 @@ declare class XhSplitterElement extends XhElement {
5033
5556
  attribute: string;
5034
5557
  };
5035
5558
  };
5036
- size?: number[];
5037
- defaultSize?: number[];
5559
+ sizes?: number[];
5560
+ defaultSizes?: number[];
5038
5561
  panels?: SplitterPanelProps[];
5039
5562
  orientation?: Orientation;
5040
5563
  direction?: Direction;
@@ -5092,7 +5615,7 @@ declare class XhSplitterElement extends XhElement {
5092
5615
  */
5093
5616
  declare class XhStepsElement extends XhElement {
5094
5617
  static partContract: {
5095
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "indicator" | "trigger" | "title" | "description" | "list" | "separator">;
5618
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "trigger" | "content" | "title" | "description" | "list" | "separator">;
5096
5619
  meta: import("@xihan-ui/headless").ComponentMeta;
5097
5620
  };
5098
5621
  static properties: {
@@ -5180,15 +5703,18 @@ declare class XhStepsElement extends XhElement {
5180
5703
  * @attr {boolean} checked - 受控开合;缺省该属性即非受控
5181
5704
  * @attr {boolean} default-checked - 非受控初始为选中
5182
5705
  * @attr {boolean} disabled - 禁用
5706
+ * @attr {boolean} loading - 提交中:交互挂起、滑块转圈,仍可聚焦(aria-busy)
5183
5707
  * @attr {'brand'|'neutral'|'success'|'warning'|'danger'|'info'} tone - 语气
5184
5708
  * @attr {'sm'|'md'|'lg'} size - 尺寸
5185
5709
  * @fires checked-change - checked 状态变化;detail 为 `{ checked: boolean }`
5186
5710
  * @csspart root - role=switch 的按钮(承载 aria-checked / data-state)
5187
5711
  * @csspart thumb - 滑块
5712
+ * @attr {string} name - 表单字段名;给了 hidden-input 才参与提交
5713
+ * @csspart hidden-input - type=hidden 的表单出口,省略该节点即不参与表单
5188
5714
  */
5189
5715
  declare class XhSwitchElement extends XhElement {
5190
5716
  static partContract: {
5191
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "thumb">;
5717
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "hidden-input" | "thumb">;
5192
5718
  meta: import("@xihan-ui/headless").ComponentMeta;
5193
5719
  };
5194
5720
  static properties: {
@@ -5204,12 +5730,28 @@ declare class XhSwitchElement extends XhElement {
5204
5730
  disabled: {
5205
5731
  type: BooleanConstructor;
5206
5732
  };
5733
+ loading: {
5734
+ type: BooleanConstructor;
5735
+ };
5736
+ name: {
5737
+ converter: {
5738
+ fromAttribute: (v: string | null) => string | undefined;
5739
+ };
5740
+ };
5741
+ value: {
5742
+ converter: {
5743
+ fromAttribute: (v: string | null) => string | undefined;
5744
+ };
5745
+ };
5207
5746
  tone: {};
5208
5747
  size: {};
5209
5748
  };
5210
5749
  checked?: boolean;
5211
5750
  defaultChecked?: boolean;
5212
5751
  disabled?: boolean;
5752
+ loading?: boolean;
5753
+ name?: string;
5754
+ value?: string;
5213
5755
  tone?: Tone;
5214
5756
  size?: Size;
5215
5757
  private readonly notify;
@@ -5257,12 +5799,12 @@ declare class XhSwitchElement extends XhElement {
5257
5799
  * @csspart sort-trigger - 排序把手,自占一个 Tab 位;按住 Shift 点是追加到排序链
5258
5800
  * @csspart expand-trigger - 展开把手(aria-hidden 且不占 Tab 位,键盘那一路由左右方向键承担)
5259
5801
  * @csspart expanded-row - role=row 详情行,须自带 value 属性与它所属的数据行配对,内部须放一个 cell 承载详情;收起时 hidden
5260
- * @csspart empty-state - 空态节点,表体为空且不在加载时显形
5802
+ * @csspart empty - 空态节点,表体为空且不在加载时显形
5261
5803
  * @csspart loading-state - 加载态节点,表体为空且正在加载时显形
5262
5804
  */
5263
5805
  declare class XhTableElement extends XhElement {
5264
5806
  static partContract: {
5265
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "header" | "cell" | "expand-trigger" | "body" | "footer" | "empty-state" | "select-all-trigger" | "row" | "column-header" | "caption" | "row-select-trigger" | "sort-trigger" | "expanded-row" | "loading-state">;
5807
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "header" | "cell" | "empty" | "expand-trigger" | "body" | "footer" | "select-all-trigger" | "row" | "column-header" | "caption" | "row-select-trigger" | "sort-trigger" | "expanded-row" | "loading-state">;
5266
5808
  meta: import("@xihan-ui/headless").ComponentMeta;
5267
5809
  };
5268
5810
  static properties: {
@@ -5386,7 +5928,7 @@ declare class XhTableElement extends XhElement {
5386
5928
  */
5387
5929
  declare class XhTabsElement extends XhElement {
5388
5930
  static partContract: {
5389
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger" | "list">;
5931
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "trigger" | "content" | "list">;
5390
5932
  meta: import("@xihan-ui/headless").ComponentMeta;
5391
5933
  };
5392
5934
  static properties: {
@@ -5508,7 +6050,7 @@ declare class XhTabsElement extends XhElement {
5508
6050
  */
5509
6051
  declare class XhTagsInputElement extends XhElement {
5510
6052
  static partContract: {
5511
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "label" | "item-text" | "clear-trigger" | "control" | "input" | "hidden-input" | "item-preview" | "item-delete-trigger" | "item-input">;
6053
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "label" | "item-text" | "input" | "clear-trigger" | "hidden-input" | "control" | "item-preview" | "item-delete-trigger" | "item-input">;
5512
6054
  meta: import("@xihan-ui/headless").ComponentMeta;
5513
6055
  };
5514
6056
  static properties: {
@@ -5667,6 +6209,7 @@ declare class XhTagsInputElement extends XhElement {
5667
6209
  * @attr {string} name - 表单字段名;给了才参与提交
5668
6210
  * @attr {number} max-length - 字符数上限;同时落成原生 maxlength 与机器侧截断
5669
6211
  * @attr {boolean} clearable - 开启清空:清空按钮显出并在有值时可用,Escape 接管
6212
+ * @attr {boolean} auto-size - 多行宿主(input 部件写成 textarea)的自动高度;行数界限对象经 autoSize property 赋
5670
6213
  * @attr {'outline'|'subtle'|'ghost'} variant - 视觉变体
5671
6214
  * @attr {'brand'|'neutral'|'success'|'warning'|'danger'|'info'} tone - 语气
5672
6215
  * @attr {'sm'|'md'|'lg'} size - 尺寸
@@ -5678,7 +6221,7 @@ declare class XhTagsInputElement extends XhElement {
5678
6221
  */
5679
6222
  declare class XhTextFieldElement extends XhElement {
5680
6223
  static partContract: {
5681
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "clear-trigger" | "input">;
6224
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "input" | "clear-trigger">;
5682
6225
  meta: import("@xihan-ui/headless").ComponentMeta;
5683
6226
  };
5684
6227
  static properties: {
@@ -5735,6 +6278,12 @@ declare class XhTextFieldElement extends XhElement {
5735
6278
  fromAttribute: (v: string | null) => boolean | undefined;
5736
6279
  };
5737
6280
  };
6281
+ autoSize: {
6282
+ converter: {
6283
+ fromAttribute: (v: string | null) => boolean | undefined;
6284
+ };
6285
+ attribute: string;
6286
+ };
5738
6287
  variant: {
5739
6288
  converter: {
5740
6289
  fromAttribute: (v: string | null) => string | undefined;
@@ -5761,6 +6310,8 @@ declare class XhTextFieldElement extends XhElement {
5761
6310
  name?: string;
5762
6311
  maxLength?: number;
5763
6312
  clearable?: boolean;
6313
+ /** 布尔走 auto-size 属性;行数界限对象进不了属性,只作为 property 赋。 */
6314
+ autoSize?: TextFieldSchema['props']['autoSize'];
5764
6315
  variant?: ControlVariant;
5765
6316
  tone?: Tone;
5766
6317
  size?: Size;
@@ -5787,7 +6338,7 @@ declare class XhTextFieldElement extends XhElement {
5787
6338
  */
5788
6339
  declare class XhThreadElement extends XhElement {
5789
6340
  static partContract: {
5790
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "viewport" | "content" | "scroll-button" | "live-region">;
6341
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "viewport" | "scroll-button" | "live-region">;
5791
6342
  meta: import("@xihan-ui/headless").ComponentMeta;
5792
6343
  };
5793
6344
  static properties: {
@@ -5858,7 +6409,7 @@ declare class XhThreadElement extends XhElement {
5858
6409
  */
5859
6410
  declare class XhTimeFieldElement extends XhElement {
5860
6411
  static partContract: {
5861
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "control" | "hidden-input" | "segment">;
6412
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "label" | "hidden-input" | "control" | "segment">;
5862
6413
  meta: import("@xihan-ui/headless").ComponentMeta;
5863
6414
  };
5864
6415
  static properties: {
@@ -5978,7 +6529,7 @@ declare class XhTimeFieldElement extends XhElement {
5978
6529
  //#region src/elements/time-picker.d.ts
5979
6530
  /**
5980
6531
  * `<xh-time-picker>` —— Light-DOM 行为宿主:作者写 root/label/control/input(多个)/trigger/
5981
- * clear-trigger/positioner/content/column(多个)/option(多个)/hidden-input 角色节点,
6532
+ * clear-trigger/positioner/content/column(多个)/item(多个)/hidden-input 角色节点,
5982
6533
  * 元素跑 time-picker 机器并把 connect 产出打上去。浮层定位引擎在本元素里建好、经 refs 注入机器,
5983
6534
  * 锚点取 control(浮层因此与整个输入行对齐),被定位的浮层取 positioner。
5984
6535
  *
@@ -6016,12 +6567,12 @@ declare class XhTimeFieldElement extends XhElement {
6016
6567
  * @csspart positioner - 浮层定位容器,坐标由引擎写成内联样式
6017
6568
  * @csspart content - 浮层容器(消解层与焦点域的根节点),收起时带 hidden
6018
6569
  * @csspart column - role=listbox 的一列,可自带 unit 属性声明单位,缺省按文档序
6019
- * @csspart option - role=option 的一格,须自带 value 属性(两位补零的显示串)
6570
+ * @csspart item - role=option 的一格,须自带 value 属性(两位补零的显示串)
6020
6571
  * @csspart hidden-input - type=hidden 的表单出口,值是完整 ISO 串
6021
6572
  */
6022
6573
  declare class XhTimePickerElement extends XhElement {
6023
6574
  static partContract: {
6024
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "content" | "trigger" | "label" | "positioner" | "clear-trigger" | "column" | "control" | "input" | "hidden-input" | "option">;
6575
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "trigger" | "content" | "label" | "positioner" | "input" | "clear-trigger" | "column" | "hidden-input" | "control">;
6025
6576
  meta: import("@xihan-ui/headless").ComponentMeta;
6026
6577
  };
6027
6578
  static properties: {
@@ -6634,7 +7185,7 @@ declare class XhToolbarElement extends XhElement {
6634
7185
  */
6635
7186
  declare class XhTooltipElement extends XhElement {
6636
7187
  static partContract: {
6637
- anatomy: import("@xihan-ui/kernel").Anatomy<"content" | "trigger" | "positioner" | "arrow">;
7188
+ anatomy: import("@xihan-ui/kernel").Anatomy<"trigger" | "content" | "positioner" | "arrow">;
6638
7189
  meta: import("@xihan-ui/headless").ComponentMeta;
6639
7190
  };
6640
7191
  static properties: {
@@ -6723,6 +7274,7 @@ declare class XhTooltipElement extends XhElement {
6723
7274
  * @attr {boolean} close-on-interact-outside - 层外交互关闭,默认 false;写 "true" 打开
6724
7275
  * @attr {boolean} show-backdrop - 画遮罩,默认 true;写 show-backdrop="false" 关掉
6725
7276
  * @attr {number} spotlight-padding - 高亮框在目标四周留出的空白(px),默认 8
7277
+ * @attr {boolean} auto-scroll - 展开与换步时自动把目标滚进视口(nearest),默认 true;写 auto-scroll="false" 关掉
6726
7278
  * @fires open-change - open 状态变化;detail 为 `{ open: boolean }`
6727
7279
  * @fires step-change - 步序变化;detail 为 `{ step: number }`
6728
7280
  * @fires complete - 末步再按下一步;detail 为 `{ step: number }`
@@ -6801,6 +7353,12 @@ declare class XhTourElement extends XhElement {
6801
7353
  };
6802
7354
  attribute: string;
6803
7355
  };
7356
+ autoScroll: {
7357
+ converter: {
7358
+ fromAttribute: (v: string | null) => boolean | undefined;
7359
+ };
7360
+ attribute: string;
7361
+ };
6804
7362
  steps: {
6805
7363
  attribute: boolean;
6806
7364
  };
@@ -6818,6 +7376,7 @@ declare class XhTourElement extends XhElement {
6818
7376
  closeOnInteractOutside?: boolean;
6819
7377
  showBackdrop?: boolean;
6820
7378
  spotlightPadding?: number;
7379
+ autoScroll?: boolean;
6821
7380
  /** 步骤清单。它是步序的上界,也是读屏"第 m 步,共 n 步"的分母。 */
6822
7381
  steps?: TourStep[];
6823
7382
  /** 关闭按钮的无障碍名与进度文案;connect 每帧重写,作者写在节点上会被盖掉,只能从这里给。 */
@@ -6854,6 +7413,8 @@ declare class XhTourElement extends XhElement {
6854
7413
  */
6855
7414
  private fillText;
6856
7415
  protected wire(): void;
7416
+ /** 重量高亮框与浮层位置:目标节点被外部改动(换位、变尺寸)后调它校准。 */
7417
+ remeasure(): void;
6857
7418
  private wireWith;
6858
7419
  disconnectedCallback(): void;
6859
7420
  }
@@ -6864,7 +7425,7 @@ declare class XhTourElement extends XhElement {
6864
7425
  * root/source-panel/target-panel/panel-header/panel-title/panel-count/search/list/item/...
6865
7426
  * 角色节点,元素跑 transfer 机器并把 connect 产出打上去。
6866
7427
  *
6867
- * 条目全集由 `items` 属性(property)给出,它是标签与禁用的唯一事实源;
7428
+ * 条目全集由 `collection` 属性(property)给出,它是标签与禁用的唯一事实源;
6868
7429
  * **两侧面板各挂一份全集**,不属于本侧、或被搜索筛掉的那一份由元素打上 hidden,
6869
7430
  * 节点不卸载。条目身份取节点上的 `value` 属性,归哪一侧则取它落在哪个面板里。
6870
7431
  *
@@ -6873,8 +7434,8 @@ declare class XhTourElement extends XhElement {
6873
7434
  * 导航与勾选在事件那一刻按 data-scope+data-part 查活 DOM,依赖 connect 回写的 data-value,
6874
7435
  * 因此 wire 必须先于交互跑过(基类 updated 已保证)。
6875
7436
  *
6876
- * 集合类输入(items / value / selected / filter)都表达不成属性,只能走 property:
6877
- * `el.items = [...]`、`el.value = ['a']`。
7437
+ * 集合类输入(collection / value / selected / filter)都表达不成属性,只能走 property:
7438
+ * `el.collection = [...]`、`el.value = ['a']`。
6878
7439
  *
6879
7440
  * @customElement xh-transfer
6880
7441
  * @attr {boolean} searchable - 每侧带一个搜索框;关掉时搜索框仍在 DOM 里但带 hidden
@@ -6883,7 +7444,7 @@ declare class XhTourElement extends XhElement {
6883
7444
  * @attr {boolean} loop - 列表内方向键走到尽头回绕,默认 true;写 loop="false" 关掉
6884
7445
  * @attr {'ltr'|'rtl'} dir - 文字方向,决定列表内哪个横向方向键是"搬向对面",默认 ltr
6885
7446
  * @fires value-change - 落在右侧的值变化;detail 为 `{ value: string[] }`
6886
- * @fires selected-change - 勾选集合变化;detail 为 `{ selected: string[] }`
7447
+ * @fires selection-change - 勾选集合变化;detail 为 `{ selected: string[] }`
6887
7448
  * @csspart root - 组件根容器(承载 data-disabled/data-one-way)
6888
7449
  * @csspart source-panel - 左侧面板容器,其内的角色节点一律归左侧
6889
7450
  * @csspart target-panel - 右侧面板容器,其内的角色节点一律归右侧
@@ -6892,7 +7453,7 @@ declare class XhTourElement extends XhElement {
6892
7453
  * @csspart panel-count - 计数节点,只带 data-count / data-checked-count,文案由作者写
6893
7454
  * @csspart search - 本侧搜索框,须是原生 input;searchable 关掉时带 hidden
6894
7455
  * @csspart list - role=listbox 容器,键盘在此收口,也是 roving tabindex 的兜底位
6895
- * @csspart item - role=option 条目,须自带 value 属性标识身份;禁用写在 items 里,不写在节点上
7456
+ * @csspart item - role=option 条目,须自带 value 属性标识身份;禁用写在 collection 里,不写在节点上
6896
7457
  * @csspart item-text - 条目文本
6897
7458
  * @csspart item-checkbox - 条目勾选标记(aria-hidden);oneWay 下右侧的那一份带 hidden
6898
7459
  * @csspart select-all-trigger - 本侧全选格,须是原生 button;三态经 aria-checked 上报
@@ -6905,7 +7466,7 @@ declare class XhTransferElement extends XhElement {
6905
7466
  meta: import("@xihan-ui/headless").ComponentMeta;
6906
7467
  };
6907
7468
  static properties: {
6908
- items: {
7469
+ collection: {
6909
7470
  attribute: boolean;
6910
7471
  };
6911
7472
  value: {
@@ -6945,7 +7506,7 @@ declare class XhTransferElement extends XhElement {
6945
7506
  attribute: string;
6946
7507
  };
6947
7508
  };
6948
- items?: TransferItem[];
7509
+ collection?: TransferItem[];
6949
7510
  value?: string[];
6950
7511
  defaultValue?: string[];
6951
7512
  selected?: string[];
@@ -6983,6 +7544,8 @@ declare class XhTransferElement extends XhElement {
6983
7544
  *
6984
7545
  * @customElement xh-tree
6985
7546
  * @attr {'single'|'multiple'} selection-mode - 选择模式,默认 single
7547
+ * @attr {boolean} cascade - multiple 下父子级联勾选(整枝传导/半选/禁用冻结),默认 false
7548
+ * @attr {string} checked-strategy - 级联下对外值的收敛策略:child(默认)/ parent / all
6986
7549
  * @attr {boolean} expand-on-click - 点分支行顺带展开/收起,默认开;写 expand-on-click="false" 关掉
6987
7550
  * @attr {boolean} disabled - 整棵树禁用:所有节点转 aria-disabled,键盘与点击都改不了展开与选中
6988
7551
  * @attr {boolean} loop - 上下键走到首尾回绕,默认关;写 loop="true" 打开
@@ -7005,7 +7568,7 @@ declare class XhTransferElement extends XhElement {
7005
7568
  */
7006
7569
  declare class XhTreeElement extends XhElement {
7007
7570
  static partContract: {
7008
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "label" | "item-text" | "item-indicator" | "tree" | "branch" | "branch-control" | "branch-trigger" | "branch-indicator" | "branch-text" | "branch-content">;
7571
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "label" | "item-text" | "item-indicator" | "branch" | "branch-trigger" | "branch-text" | "branch-indicator" | "branch-content" | "tree" | "branch-control">;
7009
7572
  meta: import("@xihan-ui/headless").ComponentMeta;
7010
7573
  };
7011
7574
  static properties: {
@@ -7030,6 +7593,15 @@ declare class XhTreeElement extends XhElement {
7030
7593
  };
7031
7594
  attribute: string;
7032
7595
  };
7596
+ cascade: {
7597
+ type: BooleanConstructor;
7598
+ };
7599
+ checkedStrategy: {
7600
+ converter: {
7601
+ fromAttribute: (v: string | null) => string | undefined;
7602
+ };
7603
+ attribute: string;
7604
+ };
7033
7605
  expandOnClick: {
7034
7606
  converter: {
7035
7607
  fromAttribute: (v: string | null) => boolean | undefined;
@@ -7062,6 +7634,8 @@ declare class XhTreeElement extends XhElement {
7062
7634
  selectedValue?: string[];
7063
7635
  defaultSelectedValue?: string[];
7064
7636
  selectionMode?: TreeSelectionMode;
7637
+ cascade?: boolean;
7638
+ checkedStrategy?: TreeSchema['props']['checkedStrategy'];
7065
7639
  expandOnClick?: boolean;
7066
7640
  disabled?: boolean;
7067
7641
  loop?: boolean;
@@ -7108,6 +7682,8 @@ declare class XhTreeElement extends XhElement {
7108
7682
  * @attr {boolean} open - 受控开合;缺省该属性即非受控
7109
7683
  * @attr {boolean} default-open - 非受控初始为展开
7110
7684
  * @attr {boolean} multiple - 多选:选中后浮层不收起,焦点留在树里
7685
+ * @attr {boolean} cascade - 多选下父子级联勾选(整枝传导/半选/禁用冻结),默认 false
7686
+ * @attr {string} checked-strategy - 级联下对外值的收敛策略:child(默认)/ parent / all
7111
7687
  * @attr {boolean} disabled - 整个控件禁用:trigger 用原生 disabled,表单出口不参与提交
7112
7688
  * @attr {boolean} read-only - 只读:浮层照常展开、树照常浏览,但选中值改不动、也清不掉
7113
7689
  * @attr {boolean} invalid - 校验失败标注
@@ -7130,8 +7706,8 @@ declare class XhTreeElement extends XhElement {
7130
7706
  * @csspart indicator - 展开指示符(aria-hidden,data-state 随开合)
7131
7707
  * @csspart clear-trigger - 清空按钮,须是原生 button;不占 Tab 位且对读屏隐藏
7132
7708
  * @csspart positioner - 浮层定位容器,坐标由引擎写成内联样式
7133
- * @csspart content - 浮层壳(焦点域与消解层的根节点),收起时带 hidden
7134
- * @csspart tree - role=tree 容器,键盘在此收口,也是没有锚点时的 Tab 兜底位
7709
+ * @csspart content - 浮层壳(焦点域与消解层的根节点,键盘在此收口),收起时带 hidden
7710
+ * @csspart tree - role=tree 容器,没有锚点时的 Tab 兜底位与落焦点
7135
7711
  * @csspart item - role=treeitem 叶子,须自带 value 属性标识身份
7136
7712
  * @csspart item-text - 叶子文本
7137
7713
  * @csspart item-indicator - 叶子选中标记(aria-hidden)
@@ -7145,7 +7721,7 @@ declare class XhTreeElement extends XhElement {
7145
7721
  */
7146
7722
  declare class XhTreeSelectElement extends XhElement {
7147
7723
  static partContract: {
7148
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "indicator" | "trigger" | "label" | "positioner" | "item-text" | "item-indicator" | "clear-trigger" | "value-text" | "hidden-input" | "tree" | "branch" | "branch-control" | "branch-trigger" | "branch-indicator" | "branch-text" | "branch-content">;
7724
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "indicator" | "item" | "trigger" | "content" | "label" | "positioner" | "item-text" | "item-indicator" | "clear-trigger" | "value-text" | "hidden-input" | "branch" | "branch-trigger" | "branch-text" | "branch-indicator" | "branch-content" | "tree" | "branch-control">;
7149
7725
  meta: import("@xihan-ui/headless").ComponentMeta;
7150
7726
  };
7151
7727
  static properties: {
@@ -7181,6 +7757,15 @@ declare class XhTreeSelectElement extends XhElement {
7181
7757
  multiple: {
7182
7758
  type: BooleanConstructor;
7183
7759
  };
7760
+ cascade: {
7761
+ type: BooleanConstructor;
7762
+ };
7763
+ checkedStrategy: {
7764
+ converter: {
7765
+ fromAttribute: (v: string | null) => string | undefined;
7766
+ };
7767
+ attribute: string;
7768
+ };
7184
7769
  disabled: {
7185
7770
  type: BooleanConstructor;
7186
7771
  };
@@ -7215,6 +7800,9 @@ declare class XhTreeSelectElement extends XhElement {
7215
7800
  fromAttribute: (v: string | null) => string | undefined;
7216
7801
  };
7217
7802
  };
7803
+ translations: {
7804
+ attribute: boolean;
7805
+ };
7218
7806
  placement: {
7219
7807
  converter: {
7220
7808
  fromAttribute: (v: string | null) => string | undefined;
@@ -7250,6 +7838,8 @@ declare class XhTreeSelectElement extends XhElement {
7250
7838
  open?: boolean;
7251
7839
  defaultOpen?: boolean;
7252
7840
  multiple?: boolean;
7841
+ cascade?: boolean;
7842
+ checkedStrategy?: TreeSelectSchema['props']['checkedStrategy'];
7253
7843
  disabled?: boolean;
7254
7844
  readOnly?: boolean;
7255
7845
  invalid?: boolean;
@@ -7257,6 +7847,8 @@ declare class XhTreeSelectElement extends XhElement {
7257
7847
  tone?: Tone;
7258
7848
  size?: Size;
7259
7849
  placeholder?: string;
7850
+ /** 读屏文案(树容器兜底名字);对象进不了属性,只作为 property 暴露。 */
7851
+ translations?: TreeSelectSchema['props']['translations'];
7260
7852
  placement?: Placement;
7261
7853
  offset?: number;
7262
7854
  loop?: boolean;
@@ -7326,7 +7918,7 @@ declare class XhTreeSelectElement extends XhElement {
7326
7918
  */
7327
7919
  declare class XhVirtualizerElement extends XhElement {
7328
7920
  static partContract: {
7329
- anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "viewport" | "content">;
7921
+ anatomy: import("@xihan-ui/kernel").Anatomy<"root" | "item" | "content" | "viewport">;
7330
7922
  meta: import("@xihan-ui/headless").ComponentMeta;
7331
7923
  };
7332
7924
  static properties: {
@@ -7422,5 +8014,5 @@ declare class XhVirtualizerElement extends XhElement {
7422
8014
  //#region src/define.d.ts
7423
8015
  declare function defineXhElements(): void;
7424
8016
  //#endregion
7425
- export { XhAccordionElement, XhAlertElement, XhAnchorElement, XhAvatarElement, XhBadgeElement, XhBreadcrumbElement, XhButtonElement, XhCalendarElement, XhCarouselElement, XhCascaderElement, XhCheckboxElement, XhCheckboxGroupElement, XhClipboardElement, XhCodeBlockElement, XhCollapsibleElement, XhColorPickerElement, XhComboboxElement, XhComposerElement, XhContextMenuElement, XhDateFieldElement, XhDatePickerElement, XhDialogElement, XhDrawerElement, XhEditableElement, XhEmptyStateElement, XhFieldElement, XhFileUploadElement, XhFormElement, XhHoverCardElement, XhIconElement, XhImageElement, XhListboxElement, XhLoadingBarElement, XhMenuElement, XhMenubarElement, XhNavigationMenuElement, XhNumberFieldElement, XhPaginationElement, XhPinInputElement, XhPopoverElement, XhProgressElement, XhRadioGroupElement, XhRatingElement, XhScrollAreaElement, XhSelectElement, XhSeparatorElement, XhSkeletonElement, XhSliderElement, XhSpinnerElement, XhSplitterElement, XhStepsElement, XhSwitchElement, XhTableElement, XhTabsElement, XhTagsInputElement, XhTextFieldElement, XhThreadElement, XhTimeFieldElement, XhTimePickerElement, XhToastElement, XhToasterElement, XhToggleElement, XhToggleGroupElement, XhToolbarElement, XhTooltipElement, XhTourElement, XhTransferElement, XhTreeElement, XhTreeSelectElement, XhVirtualizerElement, defineXhElements };
8017
+ export { XhAccordionElement, XhAlertElement, XhAnchorElement, XhAvatarElement, XhBadgeElement, XhBreadcrumbElement, XhButtonElement, XhCalendarElement, XhCarouselElement, XhCascaderElement, XhCheckboxElement, XhCheckboxGroupElement, XhClipboardElement, XhCodeBlockElement, XhCollapsibleElement, XhColorPickerElement, XhComboboxElement, XhComposerElement, XhContextMenuElement, XhDateFieldElement, XhDatePickerElement, XhDialogElement, XhDrawerElement, XhEditableElement, XhEmptyStateElement, XhFieldElement, XhFileUploadElement, XhFormElement, XhHoverCardElement, XhIconElement, XhImageElement, XhImageViewerElement, XhListboxElement, XhLoadingBarElement, XhMenuElement, XhMenubarElement, XhNavigationMenuElement, XhNumberFieldElement, XhPaginationElement, XhPinInputElement, XhPopoverElement, XhProgressElement, XhRadioGroupElement, XhRatingElement, XhScrollAreaElement, XhSelectElement, XhSeparatorElement, XhSideNavElement, XhSkeletonElement, XhSliderElement, XhSpinnerElement, XhSplitterElement, XhStepsElement, XhSwitchElement, XhTableElement, XhTabsElement, XhTagsInputElement, XhTextFieldElement, XhThreadElement, XhTimeFieldElement, XhTimePickerElement, XhToastElement, XhToasterElement, XhToggleElement, XhToggleGroupElement, XhToolbarElement, XhTooltipElement, XhTourElement, XhTransferElement, XhTreeElement, XhTreeSelectElement, XhVirtualizerElement, defineXhElements };
7426
8018
  //# sourceMappingURL=define.d.ts.map