antdv-next 1.5.6 → 1.6.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 (159) hide show
  1. package/dist/_util/PurePanel.js +17 -14
  2. package/dist/_util/fallbackProp.d.ts +13 -0
  3. package/dist/_util/fallbackProp.js +15 -0
  4. package/dist/_util/hooks/useAllowClear.d.ts +19 -0
  5. package/dist/_util/hooks/useAllowClear.js +16 -0
  6. package/dist/_util/hooks/useMergeSemantic.js +3 -2
  7. package/dist/_util/omitUndefined.d.ts +13 -0
  8. package/dist/_util/omitUndefined.js +20 -0
  9. package/dist/_util/statusUtils.d.ts +1 -1
  10. package/dist/_util/vueNode.d.ts +2 -6
  11. package/dist/_util/wave/index.js +4 -2
  12. package/dist/_util/wave/style.d.ts +5 -1
  13. package/dist/_util/wave/useWave.d.ts +2 -1
  14. package/dist/_util/wave/useWave.js +4 -3
  15. package/dist/affix/style/index.d.ts +5 -1
  16. package/dist/alert/Alert.d.ts +6 -2
  17. package/dist/alert/Alert.js +131 -128
  18. package/dist/alert/style/index.d.ts +4 -1
  19. package/dist/alert/style/index.js +9 -6
  20. package/dist/anchor/style/index.d.ts +5 -1
  21. package/dist/antd-with-locales.esm.js +18709 -16277
  22. package/dist/antd-with-locales.js +80 -80
  23. package/dist/antd.css +1 -1
  24. package/dist/antd.esm.js +17119 -14687
  25. package/dist/antd.js +80 -80
  26. package/dist/app/style/index.d.ts +5 -1
  27. package/dist/avatar/style/index.d.ts +5 -1
  28. package/dist/badge/index.js +1 -1
  29. package/dist/badge/style/index.d.ts +5 -1
  30. package/dist/badge/style/index.js +2 -9
  31. package/dist/badge/style/ribbon.d.ts +5 -1
  32. package/dist/border-beam/style/index.d.ts +5 -1
  33. package/dist/breadcrumb/BreadcrumbItem.js +1 -1
  34. package/dist/breadcrumb/style/index.d.ts +5 -1
  35. package/dist/button/style/index.d.ts +5 -1
  36. package/dist/calendar/style/index.d.ts +4 -1
  37. package/dist/card/Card.js +1 -1
  38. package/dist/card/style/index.d.ts +5 -1
  39. package/dist/carousel/index.js +1 -1
  40. package/dist/carousel/style/index.d.ts +5 -1
  41. package/dist/carousel/style/index.js +1 -1
  42. package/dist/cascader/index.js +3 -2
  43. package/dist/cascader/style/index.d.ts +5 -1
  44. package/dist/cascader/style/panel.d.ts +5 -1
  45. package/dist/checkbox/style/index.d.ts +4 -1
  46. package/dist/collapse/style/index.d.ts +4 -1
  47. package/dist/color-picker/ColorPicker.js +7 -11
  48. package/dist/color-picker/style/index.d.ts +5 -1
  49. package/dist/config-provider/context.d.ts +16 -21
  50. package/dist/config-provider/context.js +32 -38
  51. package/dist/config-provider/define.d.ts +3 -1
  52. package/dist/config-provider/hooks/useCSSVarCls.d.ts +3 -0
  53. package/dist/config-provider/hooks/useCSSVarCls.js +4 -3
  54. package/dist/config-provider/index.d.ts +2 -2
  55. package/dist/config-provider/index.js +24 -1
  56. package/dist/date-picker/generatePicker/generateRangePicker.js +10 -3
  57. package/dist/date-picker/generatePicker/generateSinglePicker.js +13 -5
  58. package/dist/date-picker/generatePicker/useComponents.d.ts +3 -3
  59. package/dist/date-picker/style/index.d.ts +5 -1
  60. package/dist/date-picker/util.d.ts +8 -12
  61. package/dist/date-picker/util.js +14 -7
  62. package/dist/descriptions/Cell.js +80 -75
  63. package/dist/descriptions/Row.js +14 -11
  64. package/dist/descriptions/hooks/useItems.d.ts +6 -6
  65. package/dist/descriptions/style/index.d.ts +5 -1
  66. package/dist/divider/style/index.d.ts +5 -1
  67. package/dist/drawer/DrawerPanel.js +6 -6
  68. package/dist/drawer/index.d.ts +0 -2
  69. package/dist/drawer/index.js +0 -1
  70. package/dist/drawer/style/index.d.ts +5 -1
  71. package/dist/dropdown/dropdown.js +2 -1
  72. package/dist/dropdown/style/index.d.ts +5 -1
  73. package/dist/empty/style/index.d.ts +5 -1
  74. package/dist/flex/index.js +1 -1
  75. package/dist/flex/style/index.d.ts +5 -1
  76. package/dist/float-button/FloatButtonGroup.js +1 -1
  77. package/dist/float-button/style/index.d.ts +5 -1
  78. package/dist/form/FormItem/index.js +36 -16
  79. package/dist/form/context.d.ts +1 -1
  80. package/dist/form/hooks/useVariant.d.ts +1 -1
  81. package/dist/form/style/index.d.ts +5 -1
  82. package/dist/grid/style/index.d.ts +5 -2
  83. package/dist/image/hooks/usePreviewConfig.d.ts +9 -9
  84. package/dist/image/style/index.d.ts +4 -1
  85. package/dist/input/style/index.d.ts +5 -2
  86. package/dist/input/style/otp.d.ts +5 -1
  87. package/dist/input/style/search.d.ts +5 -1
  88. package/dist/input/style/textarea.d.ts +5 -1
  89. package/dist/input-number/style/index.d.ts +5 -1
  90. package/dist/layout/style/index.d.ts +5 -1
  91. package/dist/layout/style/sider.d.ts +5 -1
  92. package/dist/listy/style/index.d.ts +5 -1
  93. package/dist/locale/useLocale.d.ts +1 -1
  94. package/dist/masonry/style/index.d.ts +4 -1
  95. package/dist/mentions/index.js +1 -1
  96. package/dist/mentions/style/index.d.ts +5 -1
  97. package/dist/menu/MenuItem.js +2 -1
  98. package/dist/message/style/index.d.ts +5 -1
  99. package/dist/modal/style/index.d.ts +3 -1
  100. package/dist/notification/style/index.d.ts +4 -1
  101. package/dist/package.js +1 -1
  102. package/dist/pagination/style/index.d.ts +5 -1
  103. package/dist/popconfirm/style/index.d.ts +5 -1
  104. package/dist/popover/index.js +4 -3
  105. package/dist/popover/style/index.d.ts +5 -1
  106. package/dist/progress/style/index.d.ts +5 -1
  107. package/dist/qrcode/index.js +0 -21
  108. package/dist/qrcode/interface.d.ts +1 -1
  109. package/dist/qrcode/style/index.d.ts +5 -1
  110. package/dist/radio/style/index.d.ts +5 -1
  111. package/dist/rate/style/index.d.ts +5 -1
  112. package/dist/result/style/index.d.ts +5 -1
  113. package/dist/segmented/style/index.d.ts +5 -1
  114. package/dist/select/index.js +2 -2
  115. package/dist/select/style/index.d.ts +5 -1
  116. package/dist/skeleton/style/index.d.ts +5 -1
  117. package/dist/slider/style/index.d.ts +5 -1
  118. package/dist/space/Compact.d.ts +1 -1
  119. package/dist/space/style/addon.d.ts +5 -1
  120. package/dist/space/style/compact.d.ts +5 -1
  121. package/dist/space/style/index.d.ts +5 -1
  122. package/dist/spin/style/index.d.ts +5 -1
  123. package/dist/splitter/style/index.d.ts +5 -1
  124. package/dist/statistic/style/index.d.ts +5 -1
  125. package/dist/steps/style/index.d.ts +5 -1
  126. package/dist/switch/style/index.d.ts +5 -1
  127. package/dist/table/InternalTable.js +52 -48
  128. package/dist/table/hooks/useSelection.js +19 -6
  129. package/dist/table/style/index.d.ts +5 -1
  130. package/dist/table/style/selection.js +1 -1
  131. package/dist/table/util.d.ts +1 -1
  132. package/dist/tabs/style/index.d.ts +5 -1
  133. package/dist/tag/CheckableTagGroup.d.ts +2 -2
  134. package/dist/tag/hooks/useColor.d.ts +1 -1
  135. package/dist/tag/style/index.d.ts +5 -1
  136. package/dist/theme/context.js +2 -1
  137. package/dist/theme/useToken.d.ts +6 -2
  138. package/dist/theme/useToken.js +46 -14
  139. package/dist/theme/util/genStyleUtils.d.ts +13 -3
  140. package/dist/theme/util/genStyleUtils.js +42 -28
  141. package/dist/timeline/style/index.d.ts +5 -1
  142. package/dist/timeline/useItems.d.ts +2 -2
  143. package/dist/timeline/useItems.js +1 -1
  144. package/dist/tooltip/index.js +1 -1
  145. package/dist/tooltip/style/index.d.ts +2 -2
  146. package/dist/tour/style/index.d.ts +5 -1
  147. package/dist/transfer/Transfer.js +2 -0
  148. package/dist/transfer/style/index.d.ts +5 -1
  149. package/dist/tree/DirectoryTree.js +1 -1
  150. package/dist/tree/style/index.d.ts +4 -1
  151. package/dist/tree-select/index.js +1 -1
  152. package/dist/tree-select/style/index.d.ts +2 -2
  153. package/dist/typography/style/index.d.ts +5 -1
  154. package/dist/upload/style/index.d.ts +5 -1
  155. package/dist/version/token.json +1 -1
  156. package/global.d.ts +5 -0
  157. package/package.json +11 -11
  158. package/web-tags.json +5007 -3018
  159. package/web-types.json +12961 -7217
@@ -64,6 +64,7 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
64
64
  "column"
65
65
  ]);
66
66
  const configCtx = useConfig();
67
+ const mergedScroll = computed(() => props.scroll ?? contextScroll.value);
67
68
  const ariaProps = computed(() => pickAttrs(attrs, { aria: true }));
68
69
  const hasAriaProps = computed(() => Object.keys(ariaProps.value).length > 0);
69
70
  provide(HeaderTableContextKey, computed(() => ({
@@ -113,8 +114,10 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
113
114
  if (props.columns) return props.columns;
114
115
  return convertColumnsToColumnProps(slots.default?.() ?? []);
115
116
  }), computed(() => props.column ?? contextColumn.value));
116
- const screens = useBreakpoint(computed(() => baseColumns.value.some((col) => col.responsive)), null);
117
+ const needResponsive = computed(() => baseColumns.value.some((col) => col.responsive));
118
+ const screens = useBreakpoint(needResponsive, null);
117
119
  const mergedColumns = computed(() => {
120
+ if (!needResponsive.value) return baseColumns.value;
118
121
  const matched = new Set(Object.keys(screens.value || {}).filter((m) => screens.value?.[m]));
119
122
  return baseColumns.value.filter((c) => !c.responsive || c.responsive.some((r) => matched.has(r)));
120
123
  });
@@ -167,7 +170,7 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
167
170
  if (changeInfo.pagination?.current) changeInfo.pagination.current = 1;
168
171
  if (props.pagination && typeof props.pagination === "object") props.pagination.onChange?.(1, changeInfo.pagination?.pageSize);
169
172
  }
170
- if (props.scroll?.scrollToFirstRowOnChange !== false && internalRefs.body?.value) scrollTo(0, { getContainer: () => internalRefs.body.value });
173
+ if (mergedScroll.value && mergedScroll.value.scrollToFirstRowOnChange !== false && internalRefs.body?.value) scrollTo(0, { getContainer: () => internalRefs.body.value });
171
174
  emit("change", changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {
172
175
  currentDataSource: getFilterData(getSortData(rawData.value, changeInfo.sorterStates, childrenColumnName.value), changeInfo.filterStates, childrenColumnName.value),
173
176
  action
@@ -292,14 +295,47 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
292
295
  return node;
293
296
  };
294
297
  const columnTitleProps = useColumnTitleProps(sorterTitleProps, filters);
298
+ const transformTitleColumns = computed(() => useTitleColumns(columnTitleProps.value)[0]);
299
+ const renderExpandedRow = slots.expandedRowRender ? (record, index, indent, expanded) => getSlotPropsFnRun(slots, props, "expandedRowRender", true, {
300
+ record,
301
+ index,
302
+ indent,
303
+ expanded
304
+ }) : void 0;
305
+ const renderFilterDropdown = slots.filterDropdown ? (ctx) => getSlotPropsFnRun(slots, props, "filterDropdown", false, ctx) : void 0;
306
+ const renderFilterIcon = slots.filterIcon ? (ctx) => getSlotPropsFnRun(slots, props, "filterIcon", false, ctx) : void 0;
307
+ const transformFilterColumns = computed(() => useFilter({
308
+ prefixCls: prefixCls.value,
309
+ dropdownPrefixCls: getPrefixCls("dropdown", props.dropdownPrefixCls),
310
+ mergedFilterStates: mergedFilterStates.value,
311
+ filterStates,
312
+ onFilterChange,
313
+ filterDropdown: renderFilterDropdown,
314
+ filterIcon: renderFilterIcon,
315
+ getPopupContainer: props.getPopupContainer || contextGetPopupContainer,
316
+ locale: mergedLocale.value,
317
+ rootClassName: clsx(props.rootClass, cssVarCls.value, rootCls.value, hashId.value)
318
+ })[0]);
319
+ const transformColumns = (innerColumns) => transformTitleColumns.value(transformSelectionColumns(transformFilterColumns.value(transformSorterColumns(innerColumns))));
320
+ const expandType = computed(() => {
321
+ if (rawData.value.some((item) => item?.[childrenColumnName.value])) return "nest";
322
+ if (renderExpandedRow || mergedExpandable.value.expandedRowRender) return "row";
323
+ return null;
324
+ });
325
+ const mergedExpandableConfig = computed(() => {
326
+ const expandable = { ...mergedExpandable.value };
327
+ expandable.__PARENT_RENDER_ICON__ = expandable.expandIcon;
328
+ if (renderExpandedRow) expandable.expandedRowRender = renderExpandedRow;
329
+ expandable.expandIcon = expandable.expandIcon || renderExpandIcon(mergedLocale.value);
330
+ if (expandType.value === "nest" && expandable.expandIconColumnIndex === void 0) expandable.expandIconColumnIndex = mergedRowSelection.value ? 1 : 0;
331
+ else if (expandType.value === "nest" && expandable.expandIconColumnIndex > 0 && mergedRowSelection.value) expandable.expandIconColumnIndex -= 1;
332
+ if (typeof expandable.indentSize !== "number") expandable.indentSize = typeof props.indentSize === "number" ? props.indentSize : 15;
333
+ return expandable;
334
+ });
335
+ const measureRowRender = (measureRow) => createVNode(TableMeasureRowContextProvider, { "value": true }, { default: () => [createVNode(ConfigProvider, { "getPopupContainer": (node) => node }, _isSlot(measureRow) ? measureRow : { default: () => [measureRow] })] });
336
+ const onInternalUpdateExpandedRowKeys = (keys) => emit("update:expandedRowKeys", keys);
337
+ const onInternalResizeColumn = (width, column, columnKey) => emit("resizeColumn", width, column, columnKey);
295
338
  return () => {
296
- const [transformTitleColumns] = useTitleColumns(columnTitleProps.value);
297
- const renderExpandedRow = slots.expandedRowRender ? (record, index, indent, expanded) => getSlotPropsFnRun(slots, props, "expandedRowRender", true, {
298
- record,
299
- index,
300
- indent,
301
- expanded
302
- }) : void 0;
303
339
  const { locale } = props;
304
340
  const mergedEmptyNodeFn = () => {
305
341
  if (spinProps.value?.spinning && rawData.value === EMPTY_LIST) return null;
@@ -308,42 +344,11 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
308
344
  return renderEmpty?.value?.("Table") || createVNode(DefaultRenderEmpty, { "componentName": "Table" }, null);
309
345
  };
310
346
  const mergedEmptyNode = mergedEmptyNodeFn();
311
- const mergedGetPopupContainer = props.getPopupContainer || contextGetPopupContainer;
312
- const renderFilterDropdown = slots.filterDropdown ? (ctx) => getSlotPropsFnRun(slots, props, "filterDropdown", false, ctx) : void 0;
313
- const renderFilterIcon = slots.filterIcon ? (ctx) => getSlotPropsFnRun(slots, props, "filterIcon", false, ctx) : void 0;
314
- const [transformFilterColumns] = useFilter({
315
- prefixCls: prefixCls.value,
316
- dropdownPrefixCls: getPrefixCls("dropdown", props.dropdownPrefixCls),
317
- mergedFilterStates: mergedFilterStates.value,
318
- filterStates,
319
- onFilterChange,
320
- filterDropdown: renderFilterDropdown,
321
- filterIcon: renderFilterIcon,
322
- getPopupContainer: mergedGetPopupContainer,
323
- locale: mergedLocale.value,
324
- rootClassName: clsx(props.rootClass, cssVarCls.value, rootCls.value, hashId.value)
325
- });
326
- const transformColumns = (innerColumns) => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns))));
327
- const expandType = (() => {
328
- if (rawData.value.some((item) => item?.[childrenColumnName.value])) return "nest";
329
- if (renderExpandedRow || mergedExpandable.value.expandedRowRender) return "row";
330
- return null;
331
- })();
332
- const mergedExpandableConfig = (() => {
333
- const expandable = { ...mergedExpandable.value };
334
- expandable.__PARENT_RENDER_ICON__ = expandable.expandIcon;
335
- if (renderExpandedRow) expandable.expandedRowRender = renderExpandedRow;
336
- expandable.expandIcon = expandable.expandIcon || renderExpandIcon(mergedLocale.value);
337
- if (expandType === "nest" && expandable.expandIconColumnIndex === void 0) expandable.expandIconColumnIndex = mergedRowSelection.value ? 1 : 0;
338
- else if (expandType === "nest" && expandable.expandIconColumnIndex > 0 && mergedRowSelection.value) expandable.expandIconColumnIndex -= 1;
339
- if (typeof expandable.indentSize !== "number") expandable.indentSize = typeof props.indentSize === "number" ? props.indentSize : 15;
340
- return expandable;
341
- })();
342
347
  const renderPagination = (placement = "end") => {
343
348
  const paginationProps = mergedPagination.value;
344
349
  const paginationSize = getPaginationSize(paginationProps.size, mergedSize.value);
345
- const paginationClasses = (info) => mergeClassNames({}, mergedClassNames.value.pagination, resolveStyleOrClass(paginationProps.classes, info));
346
- const paginationStyles = (info) => mergeStyles(resolveStyleOrClass(paginationProps.styles, info), mergedStyles.value.pagination);
350
+ const paginationClasses = (info) => mergeClassNames({}, mergedClassNames.value.pagination, resolveStyleOrClass(paginationProps.classes ?? {}, info));
351
+ const paginationStyles = (info) => mergeStyles(resolveStyleOrClass(paginationProps.styles ?? {}, info), mergedStyles.value.pagination);
347
352
  return createVNode(pagination_default, mergeProps(paginationProps, {
348
353
  "classes": paginationClasses,
349
354
  "styles": paginationStyles,
@@ -391,7 +396,6 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
391
396
  }, cssVarCls.value, rootCls.value, hashId.value);
392
397
  const TableComp = TableComponent.value;
393
398
  const virtualProps = mergedVirtual.value ? { listItemHeight: listItemHeight.value } : {};
394
- const mergedScroll = props.scroll ?? contextScroll.value;
395
399
  return createVNode("div", {
396
400
  "ref": rootRef,
397
401
  "class": wrapperCls,
@@ -409,7 +413,7 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
409
413
  "emptyText": mergedEmptyNode,
410
414
  "classNames": mergedClassNames.value,
411
415
  "styles": mergedStyles.value,
412
- "expandable": mergedExpandableConfig,
416
+ "expandable": mergedExpandableConfig.value,
413
417
  "prefixCls": prefixCls.value,
414
418
  "direction": direction.value,
415
419
  "headerCell": slots.headerCell || contextHeaderCell.value || props.headerCell ? renderHeaderCell : void 0,
@@ -419,13 +423,13 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
419
423
  "internalRefs": internalRefs,
420
424
  "transformColumns": transformColumns,
421
425
  "getContainerWidth": getContainerWidth,
422
- "scroll": mergedScroll,
423
- "measureRowRender": (measureRow) => createVNode(TableMeasureRowContextProvider, { "value": true }, { default: () => [createVNode(ConfigProvider, { "getPopupContainer": (node) => node }, _isSlot(measureRow) ? measureRow : { default: () => [measureRow] })] }),
426
+ "scroll": mergedScroll.value,
427
+ "measureRowRender": measureRowRender,
424
428
  "title": title,
425
429
  "footer": footer,
426
430
  "summary": summary,
427
- "onUpdate:expandedRowKeys": (keys) => emit("update:expandedRowKeys", keys),
428
- "onResizeColumn": (width, column, columnKey) => emit("resizeColumn", width, column, columnKey)
431
+ "onUpdate:expandedRowKeys": onInternalUpdateExpandedRowKeys,
432
+ "onResizeColumn": onInternalResizeColumn
429
433
  }), null),
430
434
  paginationNodes.bottom
431
435
  ] })]);
@@ -60,6 +60,16 @@ function useSelection(config, rowSelection) {
60
60
  preserveRecordsRef.value = newCache;
61
61
  }
62
62
  };
63
+ let lastClickEvent;
64
+ const takeClickEvent = (event) => {
65
+ const clickEvent = lastClickEvent;
66
+ lastClickEvent = void 0;
67
+ return clickEvent ?? event?.nativeEvent;
68
+ };
69
+ const getSelectedRecord = (key) => {
70
+ const record = getRecordByKey(key);
71
+ return !record && preserveSelectedRowKeys.value ? preserveRecordsRef.value.get(key) : record;
72
+ };
63
73
  watch([
64
74
  mergedSelectedKeys,
65
75
  data,
@@ -134,7 +144,7 @@ function useSelection(config, rowSelection) {
134
144
  };
135
145
  const triggerSingleSelection = (key, selected, keys, event) => {
136
146
  if (selectionConfig.value.onSelect) {
137
- const rows = keys.map((k) => getRecordByKey(k));
147
+ const rows = keys.map((k) => getSelectedRecord(k));
138
148
  selectionConfig.value.onSelect(getRecordByKey(key), selected, rows, event);
139
149
  }
140
150
  setSelectedKeys(keys, "single");
@@ -217,7 +227,7 @@ function useSelection(config, rowSelection) {
217
227
  }
218
228
  });
219
229
  const keys = Array.from(keySet);
220
- selectionConfig.value.onSelectAll?.(!checkedCurrentAll, keys.map((k) => getRecordByKey(k)), changeKeys.map((k) => getRecordByKey(k)));
230
+ selectionConfig.value.onSelectAll?.(!checkedCurrentAll, keys.map((k) => getSelectedRecord(k)), changeKeys.map((k) => getRecordByKey(k)));
221
231
  setSelectedKeys(keys, "all");
222
232
  updatePrevSelectedIndex(null);
223
233
  };
@@ -279,11 +289,13 @@ function useSelection(config, rowSelection) {
279
289
  node: createVNode(radio_default, mergeProps({ "aria-label": `Select row ${index + 1}` }, checkboxProps, {
280
290
  "checked": checked,
281
291
  "onClick": (e) => {
292
+ lastClickEvent = e;
282
293
  e.stopPropagation();
283
294
  checkboxProps?.onClick?.(e);
284
295
  },
285
296
  "onChange": (event) => {
286
- if (!keySet.has(key)) triggerSingleSelection(key, true, [key], event.nativeEvent);
297
+ const nativeEvent = takeClickEvent(event);
298
+ if (!keySet.has(key)) triggerSingleSelection(key, true, [key], nativeEvent);
287
299
  checkboxProps?.onChange?.(event);
288
300
  }
289
301
  }), null),
@@ -306,18 +318,19 @@ function useSelection(config, rowSelection) {
306
318
  "checked": checked,
307
319
  "skipGroup": true,
308
320
  "onClick": (e) => {
321
+ lastClickEvent = e;
309
322
  e.stopPropagation();
310
323
  checkboxProps?.onClick?.(e);
311
324
  },
312
325
  "onChange": (event) => {
313
- const nativeEvent = event.nativeEvent;
314
- const { shiftKey } = nativeEvent;
326
+ const nativeEvent = takeClickEvent(event);
327
+ const shiftKey = !!nativeEvent?.shiftKey;
315
328
  const currentSelectedIndex = recordKeys.indexOf(key);
316
329
  const isMultiple = derivedSelectedKeySet.value.size > 0 && recordKeys.some((key) => derivedSelectedKeySet.value.has(key));
317
330
  if (shiftKey && checkStrictly.value && isMultiple) {
318
331
  const changedKeys = multipleSelect(currentSelectedIndex, recordKeys, keySet);
319
332
  const keys = Array.from(keySet);
320
- selectionConfig.value.onSelectMultiple?.(!checked, keys.map((recordKey) => getRecordByKey(recordKey)), changedKeys.map((recordKey) => getRecordByKey(recordKey)));
333
+ selectionConfig.value.onSelectMultiple?.(!checked, keys.map((recordKey) => getSelectedRecord(recordKey)), changedKeys.map((recordKey) => getRecordByKey(recordKey)));
321
334
  setSelectedKeys(keys, "multiple");
322
335
  } else {
323
336
  const originCheckedKeys = derivedSelectedKeys.value[0];
@@ -1,4 +1,8 @@
1
+ import { SeedToken } from "../../theme/interface/seeds.js";
2
+ import { AliasToken } from "../../theme/interface/alias.js";
3
+ import { ComponentTokenMap } from "../../theme/interface/components.js";
1
4
  import { FullToken, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
5
+ import "../../theme/interface/index.js";
2
6
  import "../../theme/internal.js";
3
7
  //#region src/table/style/index.d.ts
4
8
  interface ComponentToken {
@@ -211,6 +215,6 @@ interface TableToken extends FullToken<'Table'> {
211
215
  tableScrollBg: string;
212
216
  }
213
217
  declare const prepareComponentToken: GetDefaultToken<'Table'>;
214
- declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
218
+ declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
215
219
  //#endregion
216
220
  export { ComponentToken, TableToken, _default as default, prepareComponentToken };
@@ -21,7 +21,7 @@ const genSelectionStyle = (token) => {
21
21
  textAlign: "center",
22
22
  [`${antCls}-radio-wrapper`]: { marginInlineEnd: 0 }
23
23
  },
24
- [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-left`]: { zIndex: calc(token.zIndexTableFixed).add(1).equal({ unit: false }) },
24
+ [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-start`]: { zIndex: `calc(var(--z-offset, 0) + ${token.zIndexTableFixed})` },
25
25
  [`table tr th${componentCls}-selection-column::after`]: { backgroundColor: "transparent !important" },
26
26
  [`${componentCls}-selection`]: {
27
27
  position: "relative",
@@ -11,7 +11,7 @@ declare function renderColumnTitle<RecordType extends AnyObject = AnyObject>(tit
11
11
  * Should filter [object Object]
12
12
  */
13
13
  declare function safeColumnTitle<RecordType extends AnyObject = AnyObject>(title: ColumnTitle<RecordType>, props: ColumnTitleProps<RecordType>): any;
14
- declare function normalizePlacement(pos: TablePaginationPlacement | TablePaginationPosition): "start" | "end" | "center";
14
+ declare function normalizePlacement(pos: TablePaginationPlacement | TablePaginationPosition): "center" | "end" | "start";
15
15
  declare function getPaginationSize(paginationSize: SizeType, mergedSize: SizeType): SizeType;
16
16
  //#endregion
17
17
  export { getColumnKey, getColumnPos, getPaginationSize, normalizePlacement, renderColumnTitle, safeColumnTitle };
@@ -1,4 +1,8 @@
1
+ import { SeedToken } from "../../theme/interface/seeds.js";
2
+ import { AliasToken } from "../../theme/interface/alias.js";
3
+ import { ComponentTokenMap } from "../../theme/interface/components.js";
1
4
  import { FullToken, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
5
+ import "../../theme/interface/index.js";
2
6
  import "../../theme/internal.js";
3
7
  //#region src/tabs/style/index.d.ts
4
8
  interface ComponentToken {
@@ -143,6 +147,6 @@ interface TabsToken extends FullToken<'Tabs'> {
143
147
  tabsHorizontalItemMarginRTL: string;
144
148
  }
145
149
  declare const prepareComponentToken: GetDefaultToken<'Tabs'>;
146
- declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
150
+ declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
147
151
  //#endregion
148
152
  export { ComponentToken, TabsToken, _default as default, prepareComponentToken };
@@ -43,7 +43,7 @@ interface CheckableTagGroupEmitsProps<CheckableTagValue = CheckableTagDefaultVal
43
43
  onChange?: CheckableTagGroupEmits<CheckableTagValue>['change'];
44
44
  'onUpdate:value'?: CheckableTagGroupEmits<CheckableTagValue>['update:value'];
45
45
  }
46
- interface InternalCheckableTagGroupProps extends CheckableTagGroupProps, CheckableTagGroupEmitsProps {}
47
- declare const CheckableTagGroup: import("vue").DefineSetupFnComponent<InternalCheckableTagGroupProps, CheckableTagGroupEmits<CheckableTagDefaultValue>, {}, InternalCheckableTagGroupProps, import("vue").PublicProps>;
46
+ type InternalCheckableTagGroupProps = CheckableTagGroupProps & /* @vue-ignore */ CheckableTagGroupEmitsProps;
47
+ declare const CheckableTagGroup: import("vue").DefineSetupFnComponent<InternalCheckableTagGroupProps, CheckableTagGroupEmits<CheckableTagDefaultValue>, {}, InternalCheckableTagGroupProps & {}, import("vue").PublicProps>;
48
48
  //#endregion
49
49
  export { CheckableTagGroupEmits, CheckableTagGroupEmitsProps, CheckableTagGroupProps, CheckableTagGroupRef, CheckableTagOption, SemanticName, CheckableTagGroup as default };
@@ -9,6 +9,6 @@ declare function useColor(props: {
9
9
  color: Ref<TagProps['color']>;
10
10
  variant: Ref<TagProps['variant']>;
11
11
  bordered: Ref<TagProps['bordered']>;
12
- }, contextVariant?: Ref<TagProps['variant']>): readonly [import("vue").ComputedRef<"solid" | "filled" | "outlined">, import("vue").ComputedRef<string | undefined>, import("vue").ComputedRef<boolean>, import("vue").ComputedRef<boolean>, import("vue").ComputedRef<CSSProperties>];
12
+ }, contextVariant?: Ref<TagProps['variant']>): readonly [import("vue").ComputedRef<"outlined" | "solid" | "filled">, import("vue").ComputedRef<string | undefined>, import("vue").ComputedRef<boolean>, import("vue").ComputedRef<boolean>, import("vue").ComputedRef<CSSProperties>];
13
13
  //#endregion
14
14
  export { useColor as default };
@@ -1,4 +1,8 @@
1
+ import { SeedToken } from "../../theme/interface/seeds.js";
2
+ import { AliasToken } from "../../theme/interface/alias.js";
3
+ import { ComponentTokenMap } from "../../theme/interface/components.js";
1
4
  import { FullToken, GenStyleFn, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
5
+ import "../../theme/interface/index.js";
2
6
  import "../../theme/internal.js";
3
7
  import { CSSProperties } from "vue";
4
8
  //#region src/tag/style/index.d.ts
@@ -28,6 +32,6 @@ interface TagToken extends FullToken<'Tag'> {
28
32
  }
29
33
  declare function prepareToken(token: Parameters<GenStyleFn<'Tag'>>[0]): TagToken;
30
34
  declare const prepareComponentToken: GetDefaultToken<'Tag'>;
31
- declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
35
+ declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
32
36
  //#endregion
33
37
  export { ComponentToken, TagToken, _default as default, prepareComponentToken, prepareToken };
@@ -17,8 +17,9 @@ const DesignTokenProvider = defineComponent((props, { slots }) => {
17
17
  return slots?.default?.();
18
18
  };
19
19
  }, { props: ["value"] });
20
+ const defaultDesignTokenRef = computed(() => defaultConfig);
20
21
  function useDesignToken() {
21
- return inject(DesignTokenContextKey, computed(() => defaultConfig));
22
+ return inject(DesignTokenContextKey, defaultDesignTokenRef);
22
23
  }
23
24
  //#endregion
24
25
  export { DesignTokenContextKey, DesignTokenProvider, defaultConfig, defaultTheme, useDesignToken, useDesignTokenProvide };
@@ -11,6 +11,10 @@ declare const ignore: { [key in keyof AliasToken]?: boolean; };
11
11
  declare function getComputedToken(originToken: SeedToken, overrideToken: DesignTokenProviderProps['components'] & {
12
12
  override?: Partial<AliasToken>;
13
13
  }, theme: Theme<any, any>): any;
14
- declare function useToken(): [theme: Ref<Theme<SeedToken, AliasToken>>, token: Ref<GlobalToken>, hashId: Ref<string>, realToken: Ref<GlobalToken>, cssVar: Ref<DesignTokenProviderProps['cssVar']>, zeroRuntime: Ref<boolean>];
14
+ type UseTokenResult = [theme: Ref<Theme<SeedToken, AliasToken>>, token: Ref<GlobalToken>, hashId: Ref<string>, realToken: Ref<GlobalToken>, cssVar: Ref<{
15
+ prefix: string;
16
+ key: string;
17
+ }>, zeroRuntime: Ref<boolean>];
18
+ declare function useToken(): UseTokenResult;
15
19
  //#endregion
16
- export { useToken as default, getComputedToken, ignore, unitless };
20
+ export { UseTokenResult, useToken as default, getComputedToken, ignore, unitless };
@@ -4,8 +4,8 @@ import { useDesignToken } from "./context.js";
4
4
  import { useConfig } from "../config-provider/context.js";
5
5
  import version_default from "../version/index.js";
6
6
  import formatToken from "./util/alias.js";
7
- import { computed } from "vue";
8
- import { useCacheToken } from "@antdv-next/cssinjs";
7
+ import { computed, effectScope } from "vue";
8
+ import { createCacheToken, useGlobalCacheEntry, useStyleContext } from "@antdv-next/cssinjs";
9
9
  //#region src/theme/useToken.ts
10
10
  const unitless = {
11
11
  lineHeight: true,
@@ -67,9 +67,13 @@ function getComputedToken(originToken, overrideToken, theme) {
67
67
  });
68
68
  return mergedDerivativeToken;
69
69
  }
70
- function useToken() {
71
- const designContext = useDesignToken();
72
- const config = useConfig();
70
+ /**
71
+ * The derived token only depends on the three injected contexts, so compute it
72
+ * once per (design token, config, style context) triple and let every component
73
+ * instance under those providers reuse the same computeds. Each instance only
74
+ * holds a reference on the cache entry (`useGlobalCacheEntry`).
75
+ */
76
+ function createSharedToken(designContext, config, styleContext) {
73
77
  const salt = computed(() => `${version_default}-${designContext.value.hashed || ""}`);
74
78
  const mergedTheme = computed(() => designContext.value?.theme || defaultTheme);
75
79
  const cssVar = computed(() => {
@@ -79,7 +83,7 @@ function useToken() {
79
83
  key: cssVar?.key ?? "css-var-root"
80
84
  };
81
85
  });
82
- const cachedToken = useCacheToken(mergedTheme, computed(() => [seedToken, designContext.value.token]), computed(() => {
86
+ const entry = createCacheToken(styleContext, mergedTheme, computed(() => [seedToken, designContext.value.token]), computed(() => {
83
87
  return {
84
88
  salt: salt.value,
85
89
  override: designContext.value.override,
@@ -93,14 +97,42 @@ function useToken() {
93
97
  nonce: designContext.value.csp?.nonce ?? config.value?.csp?.nonce
94
98
  };
95
99
  }));
96
- return [
97
- mergedTheme,
98
- computed(() => cachedToken.value[2]),
99
- computed(() => designContext.value.hashed ? cachedToken.value[1] : ""),
100
- computed(() => cachedToken.value[0]),
101
- cssVar,
102
- computed(() => !!designContext.value?.zeroRuntime)
103
- ];
100
+ const cachedToken = entry.value;
101
+ return {
102
+ entry,
103
+ result: [
104
+ mergedTheme,
105
+ computed(() => cachedToken.value[2]),
106
+ computed(() => designContext.value.hashed ? cachedToken.value[1] : ""),
107
+ computed(() => cachedToken.value[0]),
108
+ cssVar,
109
+ computed(() => !!designContext.value?.zeroRuntime)
110
+ ]
111
+ };
112
+ }
113
+ const sharedTokenMap = /* @__PURE__ */ new WeakMap();
114
+ function getSharedToken(designContext, config, styleContext) {
115
+ let byConfig = sharedTokenMap.get(designContext);
116
+ if (!byConfig) {
117
+ byConfig = /* @__PURE__ */ new WeakMap();
118
+ sharedTokenMap.set(designContext, byConfig);
119
+ }
120
+ let byStyle = byConfig.get(config);
121
+ if (!byStyle) {
122
+ byStyle = /* @__PURE__ */ new WeakMap();
123
+ byConfig.set(config, byStyle);
124
+ }
125
+ let shared = byStyle.get(styleContext);
126
+ if (!shared) {
127
+ shared = effectScope(true).run(() => createSharedToken(designContext, config, styleContext));
128
+ byStyle.set(styleContext, shared);
129
+ }
130
+ return shared;
131
+ }
132
+ function useToken() {
133
+ const shared = getSharedToken(useDesignToken(), useConfig(), useStyleContext());
134
+ useGlobalCacheEntry(shared.entry);
135
+ return shared.result;
104
136
  }
105
137
  //#endregion
106
138
  export { useToken as default, getComputedToken, ignore, unitless };
@@ -1,7 +1,17 @@
1
+ import { SeedToken } from "../interface/seeds.js";
1
2
  import { AliasToken } from "../interface/alias.js";
2
3
  import { ComponentTokenMap } from "../interface/components.js";
3
4
  import "../interface/index.js";
5
+ import { ComputedRef } from "vue";
6
+ import { UseTokenReturn } from "@antdv-next/cssinjs";
4
7
  //#region src/theme/util/genStyleUtils.d.ts
8
+ type StyleTokenResult = UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken>;
9
+ /**
10
+ * `useToken()` in the shape the cssinjs style hooks consume. Components that
11
+ * need the token themselves (e.g. Wave) call this once and pass the result to
12
+ * their style hook so the token is resolved a single time per instance.
13
+ */
14
+ declare function useStyleToken(): StyleTokenResult;
5
15
  declare const genComponentStyleHook: <C extends keyof ComponentTokenMap>(componentName: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
6
16
  resetStyle?: boolean;
7
17
  resetFont?: boolean;
@@ -10,7 +20,7 @@ declare const genComponentStyleHook: <C extends keyof ComponentTokenMap>(compone
10
20
  order?: number;
11
21
  injectStyle?: boolean;
12
22
  unitless?: Partial<Record<keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>, boolean>> | undefined;
13
- } | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => import("vue").Ref<string, string>, genStyleHooks: <C extends keyof ComponentTokenMap>(component: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
23
+ } | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => import("vue").Ref<string, string>, genStyleHooks: <C extends keyof ComponentTokenMap>(component: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
14
24
  resetStyle?: boolean;
15
25
  resetFont?: boolean;
16
26
  deprecatedTokens?: [keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>, keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>][] | undefined;
@@ -22,7 +32,7 @@ declare const genComponentStyleHook: <C extends keyof ComponentTokenMap>(compone
22
32
  prefixCls: string;
23
33
  rootCls: string;
24
34
  }) => string[]);
25
- } | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>], genSubStyleComponent: <C extends keyof ComponentTokenMap>(componentName: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
35
+ } | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, ComputedRef<string | undefined>], genSubStyleComponent: <C extends keyof ComponentTokenMap>(componentName: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
26
36
  resetStyle?: boolean;
27
37
  resetFont?: boolean;
28
38
  deprecatedTokens?: [keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>, keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>][] | undefined;
@@ -41,4 +51,4 @@ type CssVarName = (name: string) => `--${string}`;
41
51
  type CssVarRef = (name: string, fallback?: string | number) => `var(--${string})`;
42
52
  declare function genCssVar(antCls: string, component: string): readonly [varName: CssVarName, varRef: CssVarRef];
43
53
  //#endregion
44
- export { genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent };
54
+ export { StyleTokenResult, genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent, useStyleToken };
@@ -1,38 +1,52 @@
1
1
  import { useConfig } from "../../config-provider/context.js";
2
2
  import useToken, { unitless } from "../useToken.js";
3
3
  import { genCommonStyle, genIconStyle, genLinkStyle } from "../../style/index.js";
4
- import { computed } from "vue";
4
+ import { computed, effectScope } from "vue";
5
5
  import { genStyleUtils } from "@antdv-next/cssinjs/cssinjs-utils";
6
6
  //#region src/theme/util/genStyleUtils.ts
7
+ /**
8
+ * Derive a computed from the injected config ref once per ref instead of once
9
+ * per component instance. The config ref is stable per ConfigProvider (and a
10
+ * module singleton without one), so the WeakMap entry lives exactly as long
11
+ * as the provider.
12
+ */
13
+ function memoByConfig(cache, create) {
14
+ const config = useConfig();
15
+ let result = cache.get(config);
16
+ if (!result) {
17
+ result = effectScope(true).run(() => computed(() => create(config)));
18
+ cache.set(config, result);
19
+ }
20
+ return result;
21
+ }
22
+ const prefixCache = /* @__PURE__ */ new WeakMap();
23
+ const cspCache = /* @__PURE__ */ new WeakMap();
24
+ /**
25
+ * `useToken()` in the shape the cssinjs style hooks consume. Components that
26
+ * need the token themselves (e.g. Wave) call this once and pass the result to
27
+ * their style hook so the token is resolved a single time per instance.
28
+ */
29
+ function useStyleToken() {
30
+ const [theme, realToken, hashId, token, cssVar, zeroRuntime] = useToken();
31
+ return {
32
+ theme,
33
+ realToken,
34
+ hashId,
35
+ token,
36
+ cssVar,
37
+ zeroRuntime
38
+ };
39
+ }
7
40
  const { genComponentStyleHook, genStyleHooks, genSubStyleComponent } = genStyleUtils({
8
- usePrefix: () => {
9
- const configCtx = useConfig();
10
- return computed(() => {
11
- const { getPrefixCls, iconPrefixCls } = configCtx.value;
12
- return {
13
- rootPrefixCls: getPrefixCls(),
14
- iconPrefixCls
15
- };
16
- });
17
- },
18
- useToken() {
19
- const [theme, realToken, hashId, token, cssVar, zeroRuntime] = useToken();
41
+ usePrefix: () => memoByConfig(prefixCache, (configCtx) => {
42
+ const { getPrefixCls, iconPrefixCls } = configCtx.value;
20
43
  return {
21
- theme,
22
- realToken,
23
- hashId: computed(() => hashId.value ?? ""),
24
- token,
25
- cssVar: computed(() => cssVar?.value ?? {
26
- prefix: "",
27
- key: ""
28
- }),
29
- zeroRuntime
44
+ rootPrefixCls: getPrefixCls(),
45
+ iconPrefixCls
30
46
  };
31
- },
32
- useCSP: () => {
33
- const configCtx = useConfig();
34
- return computed(() => configCtx.value?.csp ?? {});
35
- },
47
+ }),
48
+ useToken: useStyleToken,
49
+ useCSP: () => memoByConfig(cspCache, (configCtx) => configCtx.value?.csp ?? {}),
36
50
  getResetStyles: (token, config) => {
37
51
  const linkStyle = genLinkStyle(token);
38
52
  const { prefix } = config ?? {};
@@ -56,4 +70,4 @@ function genCssVar(antCls, component) {
56
70
  return [varName, varRef];
57
71
  }
58
72
  //#endregion
59
- export { genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent };
73
+ export { genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent, useStyleToken };
@@ -1,4 +1,8 @@
1
+ import { SeedToken } from "../../theme/interface/seeds.js";
2
+ import { AliasToken } from "../../theme/interface/alias.js";
3
+ import { ComponentTokenMap } from "../../theme/interface/components.js";
1
4
  import { FullToken, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
5
+ import "../../theme/interface/index.js";
2
6
  import "../../theme/internal.js";
3
7
  //#region src/timeline/style/index.d.ts
4
8
  interface ComponentToken {
@@ -39,6 +43,6 @@ interface TimelineToken extends FullToken<'Timeline'> {
39
43
  paddingInlineEnd: number;
40
44
  }
41
45
  declare const prepareComponentToken: GetDefaultToken<'Timeline'>;
42
- declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
46
+ declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
43
47
  //#endregion
44
48
  export { ComponentToken, TimelineToken, _default as default, prepareComponentToken };
@@ -1,11 +1,11 @@
1
1
  import { TimelineItemType, TimelineMode, TimelineProps } from "./Timeline.js";
2
- import { ComputedRef } from "vue";
2
+ import { ComputedRef, Ref } from "vue";
3
3
  //#region src/timeline/useItems.d.ts
4
4
  interface TimelineItemRenders {
5
5
  dotRender?: TimelineProps['dotRender'];
6
6
  labelRender?: TimelineProps['labelRender'];
7
7
  contentRender?: TimelineProps['contentRender'];
8
8
  }
9
- declare function useItems(rootPrefixCls: ComputedRef<string>, prefixCls: ComputedRef<string>, mode: ComputedRef<TimelineMode>, items?: ComputedRef<TimelineItemType[] | undefined>, pending?: ComputedRef<TimelineProps['pending']>, pendingDot?: ComputedRef<TimelineProps['pendingDot']>, renders?: ComputedRef<TimelineItemRenders>): ComputedRef<TimelineItemType[]>;
9
+ declare function useItems(rootPrefixCls: Ref<string>, prefixCls: Ref<string>, mode: ComputedRef<TimelineMode>, items?: ComputedRef<TimelineItemType[] | undefined>, pending?: ComputedRef<TimelineProps['pending']>, pendingDot?: ComputedRef<TimelineProps['pendingDot']>, renders?: ComputedRef<TimelineItemRenders>): ComputedRef<TimelineItemType[]>;
10
10
  //#endregion
11
11
  export { TimelineItemRenders, useItems as default };
@@ -24,7 +24,7 @@ function useItems(rootPrefixCls, prefixCls, mode, items, pending, pendingDot, re
24
24
  ].includes(color)) mergedClass = classNames(className, `${itemCls.value}-color-${color}`);
25
25
  else mergedStyle = {
26
26
  [varName("item-icon-dot-color")]: color,
27
- ...normalizeStyle$1(style) || {}
27
+ ...normalizeStyle$1(style)
28
28
  };
29
29
  const mergedPlacement = placement ?? position ?? (mode.value === "alternate" ? index % 2 === 0 ? "start" : "end" : mode.value);
30
30
  mergedClass = classNames(mergedClass, `${itemCls.value}-placement-${mergedPlacement}`);
@@ -106,7 +106,7 @@ const InternalTooltip = /* @__PURE__ */ defineComponent((props, { slots, attrs,
106
106
  "form": true
107
107
  }, _isSlot(memoOverlay) ? memoOverlay : { default: () => [memoOverlay] });
108
108
  let child = filterEmpty(slots.default?.())?.[0];
109
- child = isVNode(child) ? child : createVNode("span", null, [child]);
109
+ child = isVNode(child) && typeof child.type !== "symbol" ? child : createVNode("span", null, [child]);
110
110
  const childProps = child?.props ?? {};
111
111
  const childCls = !childProps?.class || typeof childProps?.class === "string" ? clsx(childProps.class, openClass || `${prefixCls.value}-open`) : childProps.class;
112
112
  const colorInfo = parseColor(rootPrefixCls.value, prefixCls.value, color);