titleItemsRef.current.push(ref)}
onClick={() => tabChange(item)}
className={classNames(`${classPrefix}-titles-item`, {
- [`nut-tabs-titles-item-active`]:
- !item.disabled && String(item.value) === String(value),
+ [`nut-tabs-titles-item-active`]: isActive,
[`nut-tabs-titles-item-disabled`]: item.disabled,
[`nut-tabs-titles-item-${align}`]: align,
+ [`${classPrefix}-titles-item-active--flush-left`]:
+ flush.left,
+ [`${classPrefix}-titles-item-active--flush-right`]:
+ flush.right,
})}
>
+ {activeType === 'card' && isActive && (
+ <>
+
+ >
+ )}
{activeType === 'line' && (
{
+ if (count <= 0 || index < 0 || index >= count) return NO_FLUSH
+
+ // 起始边/结束边:书写方向决定其在物理方向上的映射(RTL 呈镜像)
+ const startSide: PositionX = options.rtl ? 'right' : 'left'
+ const endSide: PositionX = options.rtl ? 'left' : 'right'
+ const isFirst = index === 0
+ const isLast = index === count - 1
+
+ // 内容可滑动时,DOM 首/末项分别贴住起始/结束边
+ if (options.scrollable) {
+ return {
+ left: (isFirst && startSide === 'left') || (isLast && endSide === 'left'),
+ right:
+ (isFirst && startSide === 'right') || (isLast && endSide === 'right'),
+ }
+ }
+
+ // 不可滑动时(仅在设置了 align 时出现),内容整体靠向 align 指定的一侧,
+ // 只有贴靠该侧的那一项才是贴边项
+ const packedSide = options.align === 'right' ? endSide : startSide
+ const packedItem = packedSide === startSide ? isFirst : isLast
+
+ return {
+ left: packedItem && packedSide === 'left',
+ right: packedItem && packedSide === 'right',
+ }
+}
diff --git a/src/styles/variables-daojia.scss b/src/styles/variables-daojia.scss
index f8aed1b0af..7b339d695b 100644
--- a/src/styles/variables-daojia.scss
+++ b/src/styles/variables-daojia.scss
@@ -1381,9 +1381,13 @@ $pagination-progress-inactive-color: var(
$tabs-titles-height: var(--nutui-tabs-titles-height, 44px) !default;
$tabs-titles-background-color: var(--nutui-tabs-titles-background-color,
$color-background) !default;
-$tabs-titles-gap: var(--nutui-tabs-titles-gap, 12px) !default;
+$tabs-titles-gap: var(--nutui-tabs-titles-gap, 8px) !default;
$tabs-titles-font-size: var(--nutui-tabs-titles-font-size,
- $font-size-base) !default;
+ $font-size-md) !default;
+$tabs-titles-item-font-family: var(--nutui-tabs-titles-item-font-family,
+ PingFangSC-Semibold) !default;
+$tabs-titles-item-font-weight: var(--nutui-tabs-titles-item-font-weight,
+ $font-weight-bold) !default;
$tabs-titles-item-min-width: var(--nutui-tabs-titles-item-min-width,
50px) !default;
$tabs-titles-item-color: var(--nutui-tabs-titles-item-color,
@@ -1392,8 +1396,10 @@ $tabs-titles-item-active-color: var(--nutui-tabs-titles-item-active-color,
$color-primary) !default;
$tabs-titles-item-active-font-weight: var(--nutui-tabs-titles-item-active-font-weight,
$font-weight-bold) !default;
+$tabs-titles-item-active-font-family: var(--nutui-tabs-titles-item-active-font-family,
+ PingFangSC-Semibold) !default;
$tabs-titles-item-active-font-size: var(--nutui-tabs-titles-item-active-font-size,
- $font-size-l) !default;
+ $font-size-md) !default;
$tabs-titles-item-active-background-color: var(--nutui-tabs-titles-item-active-background-color,
$color-background-overlay) !default;
$tabs-tab-line-width: var(--nutui-tabs-tab-line-width, 12px) !default;
@@ -1405,10 +1411,18 @@ $tabs-tab-line-border-radius: var(--nutui-tabs-line-border-radius,
$tabs-tab-line-opacity: var(--nutui-tabs-tab-line-opacity, 1) !default;
$tabs-tab-button-border-radius: var(--nutui-tabs-button-border-radius,
$radius-circle) !default;
+$tabs-tab-button-font-size: var(--nutui-tabs-button-font-size,
+ $font-size-base) !default;
+$tabs-tab-button-active-font-size: var(--nutui-tabs-button-active-font-size,
+ $font-size-base) !default;
+$tabs-tab-button-active-font-weight: var(--nutui-tabs-button-active-font-weight,
+ $font-weight-bold) !default;
+$tabs-tab-button-background-color: var(--nutui-tabs-button-background-color,
+ var(--nutui-color-background-component)) !default;
$tabs-tab-button-active-background-color: var(--nutui-tabs-button-active-background-color,
$color-primary-light-pressed) !default;
$tabs-tab-button-active-border: var(--nutui-tabs-button-active-border,
- 1px solid $color-primary) !default;
+ inset 0 0 0 1px $color-primary) !default;
$tabs-vertical-titles-width: var(--nutui-tabs-vertical-titles-width,
100px) !default;
$tabs-vertical-titles-item-height: var(--nutui-tabs-vertical-titles-item-height,
@@ -1422,7 +1436,7 @@ $tabs-vertical-tab-line-width: var(--nutui-tabs-vertical-tab-line-width,
$tabs-vertical-tab-line-height: var(--nutui-tabs-vertical-tab-line-height,
12px) !default;
$tabs-titles-item-smile-bottom: var(--nutui-tabs-titles-item-smile-bottom,
- -10%) !default;
+ 4%) !default;
$tabs-tabpane-padding: var(--nutui-tabs-tabpane-padding, 24px 20px) !default;
$tabs-tabpane-background-color: var(--nutui-tabs-tabpane-background-color,
#fff) !default;
diff --git a/src/styles/variables-jmapp.scss b/src/styles/variables-jmapp.scss
index a5490e6f8d..a1f79f54fc 100644
--- a/src/styles/variables-jmapp.scss
+++ b/src/styles/variables-jmapp.scss
@@ -2240,10 +2240,18 @@ $tabs-titles-background-color: var(
--nutui-tabs-titles-background-color,
$white
) !default;
-$tabs-titles-gap: var(--nutui-tabs-titles-gap, 12px) !default;
+$tabs-titles-gap: var(--nutui-tabs-titles-gap, 8px) !default;
$tabs-titles-font-size: var(
--nutui-tabs-titles-font-size,
- $font-size-base
+ $font-size-md
+) !default;
+$tabs-titles-item-font-family: var(
+ --nutui-tabs-titles-item-font-family,
+ PingFangSC-Semibold
+) !default;
+$tabs-titles-item-font-weight: var(
+ --nutui-tabs-titles-item-font-weight,
+ $font-weight-bold
) !default;
$tabs-titles-item-min-width: var(
--nutui-tabs-titles-item-min-width,
@@ -2261,9 +2269,13 @@ $tabs-titles-item-active-font-weight: var(
--nutui-tabs-titles-item-active-font-weight,
$font-weight-bold
) !default;
+$tabs-titles-item-active-font-family: var(
+ --nutui-tabs-titles-item-active-font-family,
+ PingFangSC-Semibold
+) !default;
$tabs-titles-item-active-font-size: var(
--nutui-tabs-titles-item-active-font-size,
- $font-size-l
+ $font-size-md
) !default;
$tabs-titles-item-active-background-color: var(
--nutui-tabs-titles-item-active-background-color,
@@ -2282,13 +2294,29 @@ $tabs-tab-button-border-radius: var(
--nutui-tabs-button-border-radius,
$radius-xs
) !default;
+$tabs-tab-button-font-size: var(
+ --nutui-tabs-button-font-size,
+ $font-size-base
+) !default;
+$tabs-tab-button-active-font-size: var(
+ --nutui-tabs-button-active-font-size,
+ $font-size-base
+) !default;
+$tabs-tab-button-active-font-weight: var(
+ --nutui-tabs-button-active-font-weight,
+ $font-weight-bold
+) !default;
+$tabs-tab-button-background-color: var(
+ --nutui-tabs-button-background-color,
+ var(--nutui-color-background-component)
+) !default;
$tabs-tab-button-active-background-color: var(
--nutui-tabs-button-active-background-color,
$color-primary-light-pressed
) !default;
$tabs-tab-button-active-border: var(
--nutui-tabs-button-active-border,
- 1px solid $color-primary
+ inset 0 0 0 1px $color-primary
) !default;
$tabs-vertical-titles-width: var(
--nutui-tabs-vertical-titles-width,
@@ -2316,7 +2344,7 @@ $tabs-vertical-tab-line-height: var(
) !default;
$tabs-titles-item-smile-bottom: var(
--nutui-tabs-titles-item-smile-bottom,
- -10px
+ 4%
) !default;
$tabs-tabpane-padding: var(--nutui-tabs-tabpane-padding, 24px 20px) !default;
$tabs-tabpane-background-color: var(
diff --git a/src/styles/variables-jrkf.scss b/src/styles/variables-jrkf.scss
index 230b1d000f..8a70775be0 100644
--- a/src/styles/variables-jrkf.scss
+++ b/src/styles/variables-jrkf.scss
@@ -2347,10 +2347,18 @@ $tabs-titles-background-color: var(
--nutui-tabs-titles-background-color,
$white
) !default;
-$tabs-titles-gap: var(--nutui-tabs-titles-gap, 12px) !default;
+$tabs-titles-gap: var(--nutui-tabs-titles-gap, 8px) !default;
$tabs-titles-font-size: var(
--nutui-tabs-titles-font-size,
- $font-size-base
+ $font-size-md
+) !default;
+$tabs-titles-item-font-family: var(
+ --nutui-tabs-titles-item-font-family,
+ PingFangSC-Semibold
+) !default;
+$tabs-titles-item-font-weight: var(
+ --nutui-tabs-titles-item-font-weight,
+ $font-weight-bold
) !default;
$tabs-titles-item-min-width: var(
--nutui-tabs-titles-item-min-width,
@@ -2368,9 +2376,13 @@ $tabs-titles-item-active-font-weight: var(
--nutui-tabs-titles-item-active-font-weight,
$font-weight-bold
) !default;
+$tabs-titles-item-active-font-family: var(
+ --nutui-tabs-titles-item-active-font-family,
+ PingFangSC-Semibold
+) !default;
$tabs-titles-item-active-font-size: var(
--nutui-tabs-titles-item-active-font-size,
- $font-size-l
+ $font-size-md
) !default;
$tabs-titles-item-active-background-color: var(
--nutui-tabs-titles-item-active-background-color,
@@ -2389,13 +2401,29 @@ $tabs-tab-button-border-radius: var(
--nutui-tabs-button-border-radius,
$radius-xs
) !default;
+$tabs-tab-button-font-size: var(
+ --nutui-tabs-button-font-size,
+ $font-size-base
+) !default;
+$tabs-tab-button-active-font-size: var(
+ --nutui-tabs-button-active-font-size,
+ $font-size-base
+) !default;
+$tabs-tab-button-active-font-weight: var(
+ --nutui-tabs-button-active-font-weight,
+ $font-weight-bold
+) !default;
+$tabs-tab-button-background-color: var(
+ --nutui-tabs-button-background-color,
+ var(--nutui-color-background-component)
+) !default;
$tabs-tab-button-active-background-color: var(
--nutui-tabs-button-active-background-color,
$color-primary-light
) !default;
$tabs-tab-button-active-border: var(
--nutui-tabs-button-active-border,
- 1px solid $color-primary
+ inset 0 0 0 1px $color-primary
) !default;
$tabs-vertical-titles-width: var(
--nutui-tabs-vertical-titles-width,
@@ -2419,7 +2447,7 @@ $tabs-vertical-tab-line-height: var(
) !default;
$tabs-titles-item-smile-bottom: var(
--nutui-tabs-titles-item-smile-bottom,
- -10px
+ 4%
) !default;
$tabs-tabpane-padding: var(--nutui-tabs-tabpane-padding, 24px 20px) !default;
$tabs-tabpane-background-color: var(
diff --git a/src/styles/variables.scss b/src/styles/variables.scss
index 8aba0bd585..25c09c2134 100644
--- a/src/styles/variables.scss
+++ b/src/styles/variables.scss
@@ -2249,15 +2249,23 @@ $pagination-progress-inactive-color: var(
) !default;
// tabs(✅)
-$tabs-titles-height: var(--nutui-tabs-titles-height, scale-px(44px)) !default;
+$tabs-titles-height: var(--nutui-tabs-titles-height, scale-px(36px)) !default;
$tabs-titles-background-color: var(
--nutui-tabs-titles-background-color,
- $color-background
+ $color-background-overlay
) !default;
-$tabs-titles-gap: var(--nutui-tabs-titles-gap, scale-px(12px)) !default;
+$tabs-titles-gap: var(--nutui-tabs-titles-gap, scale-px(8px)) !default;
$tabs-titles-font-size: var(
--nutui-tabs-titles-font-size,
- $font-size-base
+ $font-size-md
+) !default;
+$tabs-titles-item-font-family: var(
+ --nutui-tabs-titles-item-font-family,
+ PingFangSC-Semibold
+) !default;
+$tabs-titles-item-font-weight: var(
+ --nutui-tabs-titles-item-font-weight,
+ $font-weight-bold
) !default;
$tabs-titles-item-min-width: var(
--nutui-tabs-titles-item-min-width,
@@ -2275,15 +2283,19 @@ $tabs-titles-item-active-font-weight: var(
--nutui-tabs-titles-item-active-font-weight,
$font-weight-bold
) !default;
+$tabs-titles-item-active-font-family: var(
+ --nutui-tabs-titles-item-active-font-family,
+ PingFangSC-Semibold
+) !default;
$tabs-titles-item-active-font-size: var(
--nutui-tabs-titles-item-active-font-size,
- $font-size-l
+ $font-size-md
) !default;
$tabs-titles-item-active-background-color: var(
--nutui-tabs-titles-item-active-background-color,
$color-background-overlay
) !default;
-$tabs-tab-line-width: var(--nutui-tabs-tab-line-width, scale-px(12px)) !default;
+$tabs-tab-line-width: var(--nutui-tabs-tab-line-width, scale-px(16px)) !default;
$tabs-tab-line-height: var(--nutui-tabs-tab-line-height, scale-px(2px)) !default;
$tabs-tab-line-color: var(--nutui-tabs-tab-line-color, $color-primary) !default;
$tabs-tab-line-bottom: var(--nutui-tabs-line-bottom, 15%) !default;
@@ -2294,7 +2306,23 @@ $tabs-tab-line-border-radius: var(
$tabs-tab-line-opacity: var(--nutui-tabs-tab-line-opacity, 1) !default;
$tabs-tab-button-border-radius: var(
--nutui-tabs-button-border-radius,
- $radius-circle
+ scale-px(6px)
+) !default;
+$tabs-tab-button-font-size: var(
+ --nutui-tabs-button-font-size,
+ $font-size-base
+) !default;
+$tabs-tab-button-active-font-size: var(
+ --nutui-tabs-button-active-font-size,
+ $font-size-base
+) !default;
+$tabs-tab-button-active-font-weight: var(
+ --nutui-tabs-button-active-font-weight,
+ $font-weight-bold
+) !default;
+$tabs-tab-button-background-color: var(
+ --nutui-tabs-button-background-color,
+ var(--nutui-color-background-component)
) !default;
$tabs-tab-button-active-background-color: var(
--nutui-tabs-button-active-background-color,
@@ -2302,7 +2330,7 @@ $tabs-tab-button-active-background-color: var(
) !default;
$tabs-tab-button-active-border: var(
--nutui-tabs-button-active-border,
- scale-px(1px) solid $color-primary
+ inset 0 0 0 scale-px(1px) $color-primary
) !default;
$tabs-vertical-titles-width: var(
--nutui-tabs-vertical-titles-width,
@@ -2330,7 +2358,7 @@ $tabs-vertical-tab-line-height: var(
) !default;
$tabs-titles-item-smile-bottom: var(
--nutui-tabs-titles-item-smile-bottom,
- -10%
+ 4%
) !default;
$tabs-tabpane-padding: var(--nutui-tabs-tabpane-padding, scale-px(24px) scale-px(20px)) !default;
$tabs-tabpane-background-color: var(
diff --git a/src/types/spec/dialog/base.ts b/src/types/spec/dialog/base.ts
index 17e00c8d37..64500fb2de 100644
--- a/src/types/spec/dialog/base.ts
+++ b/src/types/spec/dialog/base.ts
@@ -21,8 +21,7 @@ export interface BaseContentProps extends BasicComponent {
footerDirection: DialogFooterDirection
}
export interface DialogWrapProps
- extends WebOverlayProps,
- Omit
{
+ extends WebOverlayProps, Omit {
visible: boolean
overlay: boolean
overlayStyle: CSSProperties
@@ -56,8 +55,9 @@ export type DialogReturnProps = {
close: () => void
}
-export interface DialogComponent
- extends ForwardRefExoticComponent>> {
+export interface DialogComponent extends ForwardRefExoticComponent<
+ PropsWithChildren>
+> {
confirm: (props: Partial) => DialogReturnProps
alert: (props: Partial) => DialogReturnProps
config: (config: DialogConfigType) => void